Added status icons for packages and repos; redesigned and improved saving

pull/4/head
parent 00e37cebff
commit 9e1eeeb0f8

@ -111,7 +111,11 @@ void on_save(){
for (;valid;valid=gtk_tree_model_iter_next(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; remove_flagged = NULL;
add_flagged = ""; add_flagged = "";
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&iter,3,&origin_flagged,1,&name_flagged,-1); int repostatus=0;
gboolean renamed=0;
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 (!strstr(name_flagged,".db.tar.gz")) name_flagged = yon_char_get_augumented(name_flagged,".db.tar.gz"); if (!strstr(name_flagged,".db.tar.gz")) name_flagged = yon_char_get_augumented(name_flagged,".db.tar.gz");
remove_command = yon_char_unite(command," remove -d ", origin_flagged, " -r ", name_flagged, " -p ",NULL); remove_command = yon_char_unite(command," remove -d ", origin_flagged, " -r ", name_flagged, " -p ",NULL);
add_command = yon_char_unite(command," add -d ", origin_flagged, " -r ", name_flagged, " -p ",NULL); add_command = yon_char_unite(command," add -d ", origin_flagged, " -r ", name_flagged, " -p ",NULL);
@ -127,7 +131,6 @@ void on_save(){
if (origin_flagged) if (origin_flagged)
remove_command = remove_flagged ? yon_char_unite(remove_command,remove_flagged,NULL) : NULL; 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) : NULL; add_command = add_flagged ? yon_char_unite(add_command, add_flagged,NULL) : NULL;
printf("%s\n%s\n",remove_command,add_command);
if (remove_command) system(remove_command); if (remove_command) system(remove_command);
if (add_command) system(add_command); if (add_command) system(add_command);
} }
@ -143,29 +146,10 @@ void on_tree_selection_changed(GtkWidget *self,main_window *widgets){
} }
} }
int yon_add_branches(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, void *dct){
printf("%d\n",1);
dictionary *dict=(dictionary*)dct;
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
repo_create_window *window = yon_dictionary_get_data(dict->first->next,repo_create_window*);
char *name=NULL;
gtk_tree_model_get(model,iter,0,&name,-1);
if(name){
printf("%s\n",name);
GtkTreeIter ITER,iters;
if(gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&ITER)){
gtk_tree_store_append(main_config.tree_store,&iters,&ITER);
gtk_tree_store_set(main_config.tree_store,&iters,1,name,-1);
}
}
return 0;
}
int yon_char_find_last(char *source, char find){ int yon_char_find_last(char *source, char find){
int size = strlen(source); int size = strlen(source);
int i=size; int i=size;
for (;source[i]!=find&&i>0;i--) for (;source[i]!=find&&i>0;i--);
printf("%d\n",i);
return i; return i;
} }
@ -179,7 +163,7 @@ void on_repo_add_new(GtkWidget *self, dictionary *dict){
window->path = yon_char_divide(name,yon_char_find_last(window->path, '/')); window->path = yon_char_divide(name,yon_char_find_last(window->path, '/'));
if (!name||strcmp(name,"")!=0){ if (!name||strcmp(name,"")!=0){
GtkTreeIter *iter = yon_repo_append(widgets, name, YON_REPO_LINE_REPO_TYPE); GtkTreeIter *iter = yon_repo_append(widgets, name, YON_REPO_LINE_REPO_TYPE);
gtk_tree_store_set(main_config.tree_store,iter,2,window->BranchesListStore,3,window->path,-1); gtk_tree_store_set(main_config.tree_store,iter,0,"com.ublinux.ubl-settings-repomanager.folder-green-symbolic",2,window->BranchesListStore,3,window->path,-1);
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else { } else {
yon_ubl_status_box_render(EMPTY_NAME_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(EMPTY_NAME_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
@ -264,7 +248,13 @@ void on_repo_configure_done(GtkWidget *self, dictionary *dict){
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&iter)){
if (gtk_tree_model_iter_parent(GTK_TREE_MODEL(main_config.tree_store),&parentIter,&iter)) if (gtk_tree_model_iter_parent(GTK_TREE_MODEL(main_config.tree_store),&parentIter,&iter))
iter=parentIter; iter=parentIter;
char *oldname=NULL;
int status=0;
char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry)); char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry));
gtk_tree_model_get(model,&iter,1,&oldname,4,&status,-1);
if (status==0)
gtk_tree_store_set(main_config.tree_store,&iter,1,name,6,oldname,7,1,-1);
else if (status==1)
gtk_tree_store_set(main_config.tree_store,&iter,1,name,-1); gtk_tree_store_set(main_config.tree_store,&iter,1,name,-1);
} }
on_close_subwindow(self); on_close_subwindow(self);
@ -302,14 +292,14 @@ GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYP
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store); 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,&parentIter)){ if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&parentIter)){
if (type==YON_REPO_LINE_REPO_TYPE){ if (type==YON_REPO_LINE_REPO_TYPE){
icon = gtk_icon_theme_load_icon_for_scale(theme,"folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL); icon = gtk_icon_theme_load_icon_for_scale(theme,"com.ublinux.ubl-settings-repomanager.folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
gtk_tree_store_append(main_config.tree_store,&iter,NULL); gtk_tree_store_append(main_config.tree_store,&iter,NULL);
gtk_tree_store_set(main_config.tree_store,&iter,0, "folder-symbolic", 1, name_short,3,name,4,1,5,fls,-1); gtk_tree_store_set(main_config.tree_store,&iter,0, "com.ublinux.ubl-settings-repomanager.folder-symbolic", 1, name_short,3,name,4,1,5,fls,-1);
retIter = gtk_tree_iter_copy(&iter); retIter = gtk_tree_iter_copy(&iter);
} }
else if (type==YON_REPO_LINE_FILE_TYPE){ else if (type==YON_REPO_LINE_FILE_TYPE){
GtkTreeIter branch; GtkTreeIter branch;
icon = gtk_icon_theme_load_icon_for_scale(theme,"follder-documents-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL); icon = gtk_icon_theme_load_icon_for_scale(theme,"com.ublinux.ubl-settings-repomanager.follder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
if (gtk_tree_model_iter_parent(model,&branch,&parentIter)){ if (gtk_tree_model_iter_parent(model,&branch,&parentIter)){
GtkTreeIter repo; GtkTreeIter repo;
gtk_tree_store_append(main_config.tree_store,&iter,&branch); gtk_tree_store_append(main_config.tree_store,&iter,&branch);
@ -326,9 +316,9 @@ GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYP
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter); gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter);
} }
else if (type==YON_REPO_LINE_REPO_TYPE){ else if (type==YON_REPO_LINE_REPO_TYPE){
icon = gtk_icon_theme_load_icon_for_scale(theme,"folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL); icon = gtk_icon_theme_load_icon_for_scale(theme,"com.ublinux.ubl-settings-repomanager.folder-symbolic",16,1,GTK_ICON_LOOKUP_FORCE_SIZE,NULL);
gtk_tree_store_append(main_config.tree_store,&iter,NULL); gtk_tree_store_append(main_config.tree_store,&iter,NULL);
gtk_tree_store_set(main_config.tree_store,&iter,0, "folder-symbolic", 1, name_short,3,name,4,1,5,fls,-1); gtk_tree_store_set(main_config.tree_store,&iter,0, "com.ublinux.ubl-settings-repomanager.folder-symbolic", 1, name_short,3,name,4,1,5,fls,-1);
retIter = gtk_tree_iter_copy(&iter); retIter = gtk_tree_iter_copy(&iter);
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter); gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter);
} else { } else {
@ -348,7 +338,7 @@ void yon_repo_remove_package(main_window *widgets){
gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&iter,4,&status,-1); gtk_tree_model_get(GTK_TREE_MODEL(main_config.tree_store),&iter,4,&status,-1);
if (status != 1) if (status != 1)
gtk_tree_store_set(main_config.tree_store,&iter,4,-1,-1); gtk_tree_store_set(main_config.tree_store,&iter,4,-1,-1);
gtk_tree_store_set(main_config.tree_store,&iter,5,1,-1); gtk_tree_store_set(main_config.tree_store,&iter,0,"com.ublinux.ubl-settings-repomanager.document-red-symbolic",-1);
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
}else yon_ubl_status_box_render(CHOOSE_PACK_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); }else yon_ubl_status_box_render(CHOOSE_PACK_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
} }
@ -359,28 +349,11 @@ void yon_repo_remove(main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store); 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_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){ if(gtk_tree_store_iter_depth(main_config.tree_store,&iter)==0){
gtk_tree_store_remove(main_config.tree_store,&iter); gtk_tree_store_set(main_config.tree_store,&iter,4,-1,5,1,-1);
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
}else yon_ubl_status_box_render(CHOOSE_REPO_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); }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); } else yon_ubl_status_box_render(NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
} }
void yon_repo_configure(main_window *widgets){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_repo_path);
GtkTreeIter iter;
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)){
GtkTreeIter iterparent;
if (gtk_tree_model_iter_parent(model,&iterparent,&iter)){
GtkTreeIter parentparent;
if (gtk_tree_model_iter_parent(model,&parentparent,&iterparent)){
gtk_tree_store_remove(main_config.tree_store,&iter);
yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else yon_ubl_status_box_render(CHOOSE_PACK_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
}
}
}
void yon_add_file(main_window *widgets){ void yon_add_file(main_window *widgets){
GtkFileFilter *file_filter = gtk_file_filter_new(); GtkFileFilter *file_filter = gtk_file_filter_new();
@ -392,7 +365,8 @@ void yon_add_file(main_window *widgets){
if (res==GTK_RESPONSE_ACCEPT){ if (res==GTK_RESPONSE_ACCEPT){
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));
yon_repo_append(widgets,filename,YON_REPO_LINE_FILE_TYPE); GtkTreeIter *iter = yon_repo_append(widgets,filename,YON_REPO_LINE_FILE_TYPE);
gtk_tree_store_set(main_config.tree_store,iter,0,"com.ublinux.ubl-settings-repomanager.document-green-symbolic",-1);
} }
on_close_subwindow(chooser); on_close_subwindow(chooser);

@ -204,6 +204,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<column type="gint"/> <column type="gint"/>
<!-- column-name HideDeleted --> <!-- column-name HideDeleted -->
<column type="gboolean"/> <column type="gboolean"/>
<!-- column-name OldName -->
<column type="gchararray"/>
<!-- column-name Renamed -->
<column type="gboolean"/>
<!-- column-name OldRepo -->
<column type="gchararray"/>
<!-- column-name NewRepo -->
<column type="gchararray"/>
<!-- column-name Moved -->
<column type="gboolean"/>
</columns> </columns>
</object> </object>
<object class="GtkAdjustment" id="adjustment1"> <object class="GtkAdjustment" id="adjustment1">

Loading…
Cancel
Save