|
|
|
|
@ -120,7 +120,8 @@ void on_save(){
|
|
|
|
|
char *add_flagged = NULL;
|
|
|
|
|
char *origin_flagged = NULL;
|
|
|
|
|
char *name_flagged = NULL;
|
|
|
|
|
GtkTreeIter iter, childIter;
|
|
|
|
|
char *packnames = "";
|
|
|
|
|
GtkTreeIter iter, childIter, *deleteIter;
|
|
|
|
|
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.tree_store),&iter);
|
|
|
|
|
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.tree_store),&iter)){
|
|
|
|
|
remove_flagged = NULL;
|
|
|
|
|
@ -131,33 +132,45 @@ void on_save(){
|
|
|
|
|
*(add) = 1;
|
|
|
|
|
char *old_name=NULL;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&iter,1,&name_flagged,3,&origin_flagged,4,&repostatus,6,&old_name,7,&renamed,-1);
|
|
|
|
|
if (repostatus==-1) {
|
|
|
|
|
yon_window_config_erase_custom_parameter(yon_char_unite(origin_flagged,"/",name_flagged,NULL),"repos");
|
|
|
|
|
remove_command = yon_char_unite("rm -rdf ",origin_flagged,"/",name_flagged,NULL);
|
|
|
|
|
system (remove_command);
|
|
|
|
|
gtk_tree_store_remove(main_config.tree_store,&iter);
|
|
|
|
|
continue; }
|
|
|
|
|
else if (repostatus==1)
|
|
|
|
|
yon_window_config_add_custom_parameter(yon_char_unite(origin_flagged,"/",name_flagged,NULL),"repos",add,YON_TYPE_INT);
|
|
|
|
|
// if (!strstr(name_flagged,".db.tar.gz")) name_flagged = yon_char_append(name_flagged,".db.tar.gz");
|
|
|
|
|
remove_command = yon_char_unite(command," remove -d ", origin_flagged, " -r ", name_flagged, NULL);
|
|
|
|
|
add_command = yon_char_unite(command," add -d ", origin_flagged, " -r ", name_flagged, NULL);
|
|
|
|
|
int valid_child=gtk_tree_model_iter_children(GTK_TREE_MODEL(main_config.tree_store),&childIter,&iter);
|
|
|
|
|
add_command = yon_char_unite(command," add -d ", origin_flagged,"/",name_flagged, " -r ", name_flagged, NULL);
|
|
|
|
|
gboolean valid_child=gtk_tree_model_iter_children(GTK_TREE_MODEL(main_config.tree_store),&childIter,&iter);
|
|
|
|
|
for (;valid_child;valid_child=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.tree_store),&childIter)){
|
|
|
|
|
int status = 0,deleted = 0;
|
|
|
|
|
char *path=NULL;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&childIter,3,&path,4,&status,5,&deleted,-1);
|
|
|
|
|
char *name=NULL;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&childIter,1,&name,3,&path,4,&status,5,&deleted,-1);
|
|
|
|
|
if (name)
|
|
|
|
|
packnames = yon_char_unite(packnames, strcmp(packnames,"")!=0 ? " " : "", name, NULL);
|
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&childIter,4,0,5,0,-1);
|
|
|
|
|
if (status==-1) { remove_flagged = yon_char_unite(remove_flagged ? yon_char_append(remove_flagged,",") : " -p ",path,NULL); /*gtk_tree_store_remove(main_config.tree_store,&childIter);*/}
|
|
|
|
|
if (status==-1) { remove_flagged = yon_char_unite(remove_flagged ? yon_char_append(remove_flagged,",") : " -p ",path,NULL);}
|
|
|
|
|
else if (status == 1&&deleted==0) { add_flagged = yon_char_unite(add_flagged ? yon_char_append(add_flagged,",") : " -p ",path,NULL);gtk_tree_store_set(main_config.tree_store,&childIter,0,"com.ublinux.ubl-settings-repomanager.document-symbolic",-1); }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (repostatus==1){
|
|
|
|
|
mkdir((origin_flagged = yon_char_unite(origin_flagged,"/",name_flagged,NULL)),0766);
|
|
|
|
|
yon_window_config_add_custom_parameter(yon_char_unite(origin_flagged,"/",name_flagged,NULL),"repos",packnames,YON_TYPE_STRING);
|
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,0,folder_no_edits,4,0,-1);
|
|
|
|
|
}
|
|
|
|
|
if (origin_flagged)
|
|
|
|
|
remove_command = remove_flagged ? yon_char_unite(remove_command,remove_flagged,NULL) : NULL;
|
|
|
|
|
add_command = add_flagged ? yon_char_unite(add_command, add_flagged,NULL) : add_command;
|
|
|
|
|
printf("%s\n%s\n",remove_command,add_command);
|
|
|
|
|
if (remove_command) system(remove_command);
|
|
|
|
|
if (add_command) system(add_command);
|
|
|
|
|
if (repostatus==-1) {
|
|
|
|
|
yon_window_config_erase_custom_parameter(yon_char_unite(origin_flagged,"/",name_flagged,NULL),"repos");
|
|
|
|
|
remove_command = yon_char_unite("rm -rdf ",origin_flagged,"/",name_flagged,NULL);
|
|
|
|
|
system (remove_command);
|
|
|
|
|
deleteIter = gtk_tree_iter_copy(&iter);
|
|
|
|
|
if (gtk_tree_model_iter_previous(GTK_TREE_MODEL(main_config.tree_store),&iter))
|
|
|
|
|
gtk_tree_store_remove(main_config.tree_store,deleteIter);
|
|
|
|
|
else {
|
|
|
|
|
gtk_tree_store_remove(main_config.tree_store,deleteIter);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
continue; }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -389,11 +402,29 @@ void yon_repo_remove_package(main_window *widgets){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_repo_remove(main_window *widgets){
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
GtkTreeIter iter, childIter, *deletecopy;
|
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store);
|
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){
|
|
|
|
|
if(gtk_tree_store_iter_depth(main_config.tree_store,&iter)==0){
|
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,4,-1,0,folder_deleted,-1);
|
|
|
|
|
int repostatus=0;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&iter,4,&repostatus,-1);
|
|
|
|
|
if (repostatus ==0){
|
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&iter,4,-1,0,folder_deleted,-1);
|
|
|
|
|
int valid=gtk_tree_model_iter_children(model,&childIter,&iter);
|
|
|
|
|
for (;valid;valid=gtk_tree_model_iter_next(model,&childIter)){
|
|
|
|
|
int status=0;
|
|
|
|
|
gtk_tree_model_get(model,&childIter,4,&status,-1);
|
|
|
|
|
if (status==1){
|
|
|
|
|
deletecopy = gtk_tree_iter_copy(&childIter);
|
|
|
|
|
gtk_tree_model_iter_previous(model,&childIter);
|
|
|
|
|
gtk_tree_store_remove(main_config.tree_store,deletecopy);
|
|
|
|
|
} else if (status == 0){
|
|
|
|
|
gtk_tree_store_set(main_config.tree_store,&childIter, 0,document_deleted,4,-1,5,1,-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else if (repostatus == 1) {
|
|
|
|
|
gtk_tree_store_remove(main_config.tree_store,&iter);
|
|
|
|
|
}
|
|
|
|
|
}else yon_ubl_status_box_render(CHOOSE_REPO_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
} else yon_ubl_status_box_render(NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
}
|
|
|
|
|
|