diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 4349f6c..3e66e80 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -2325,20 +2325,45 @@ void config_init(){ void on_selection_changed(GtkWidget *, main_window *widgets){ GtkTreeIter iter; - if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){ + int page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook)); + if (page==0){ GtkTreeModel *model = GTK_TREE_MODEL(widgets->UsersList); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter)){ gtk_widget_set_sensitive(widgets->EditButton,1); + gtk_widget_set_sensitive(widgets->DeleteButton,1); } else { gtk_widget_set_sensitive(widgets->EditButton,0); + gtk_widget_set_sensitive(widgets->DeleteButton,0); } - } else { + } else if (page==1){ GtkTreeModel *model = GTK_TREE_MODEL(widgets->GroupsList); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)){ gtk_widget_set_sensitive(widgets->EditButton,1); + gtk_widget_set_sensitive(widgets->DeleteButton,1); } else { gtk_widget_set_sensitive(widgets->EditButton,0); + gtk_widget_set_sensitive(widgets->DeleteButton,0); + } + } else if (page == 2){ + GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore1); + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){ + gtk_widget_set_sensitive(widgets->UserAddToConfigButton,1); + gtk_widget_set_sensitive(widgets->DeleteButton,1); + } else { + gtk_widget_set_sensitive(widgets->UserAddToConfigButton,0); + gtk_widget_set_sensitive(widgets->DeleteButton,0); } + + } else if (page == 3){ + GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore2); + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){ + gtk_widget_set_sensitive(widgets->UserAddToConfigButton,1); + gtk_widget_set_sensitive(widgets->DeleteButton,1); + } else { + gtk_widget_set_sensitive(widgets->UserAddToConfigButton,0); + gtk_widget_set_sensitive(widgets->DeleteButton,0); + } + } } @@ -2352,8 +2377,10 @@ void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *wi GtkTreeModel *model = GTK_TREE_MODEL(widgets->UsersList); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->UsersTree)),&model,&iter)){ gtk_widget_set_sensitive(widgets->EditButton,1); + gtk_widget_set_sensitive(widgets->DeleteButton,1); } else { gtk_widget_set_sensitive(widgets->EditButton,0); + gtk_widget_set_sensitive(widgets->DeleteButton,0); } } else if (num==1){ gtk_widget_show(widgets->AddButton); @@ -2363,13 +2390,36 @@ void on_notebook_page_changed(GtkWidget *, GtkWidget *, int num, main_window *wi GtkTreeModel *model = GTK_TREE_MODEL(widgets->GroupsList); if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree)),&model,&iter)){ gtk_widget_set_sensitive(widgets->EditButton,1); + gtk_widget_set_sensitive(widgets->DeleteButton,0); } else { gtk_widget_set_sensitive(widgets->EditButton,0); + gtk_widget_set_sensitive(widgets->DeleteButton,0); } - } else if (num==2||num==3){ + } else if (num==2){ gtk_widget_hide(widgets->AddButton); gtk_widget_hide(widgets->EditButton); gtk_widget_show(widgets->UserAddToConfigButton); + GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore1); + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemTree)),&model,&iter)){ + gtk_widget_set_sensitive(widgets->UserAddToConfigButton,1); + gtk_widget_set_sensitive(widgets->DeleteButton,1); + } else { + gtk_widget_set_sensitive(widgets->UserAddToConfigButton,0); + gtk_widget_set_sensitive(widgets->DeleteButton,0); + } + } else if (num==3){ + + gtk_widget_hide(widgets->AddButton); + gtk_widget_hide(widgets->EditButton); + gtk_widget_show(widgets->UserAddToConfigButton); + GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore2); + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SystemGroupsTree)),&model,&iter)){ + gtk_widget_set_sensitive(widgets->UserAddToConfigButton,1); + gtk_widget_set_sensitive(widgets->DeleteButton,1); + } else { + gtk_widget_set_sensitive(widgets->UserAddToConfigButton,0); + gtk_widget_set_sensitive(widgets->DeleteButton,0); + } } } @@ -2455,6 +2505,8 @@ main_window *yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->UsersTree),"cursor-changed",G_CALLBACK(on_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->UsersTree),"row-activated",G_CALLBACK(on_main_edit_activate),widgets); g_signal_connect(G_OBJECT(widgets->GroupsTree),"cursor-changed",G_CALLBACK(on_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->SystemTree),"cursor-changed",G_CALLBACK(on_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->SystemGroupsTree),"cursor-changed",G_CALLBACK(on_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->GroupsTree),"row-activated",G_CALLBACK(on_main_edit_activate),widgets); g_signal_connect(G_OBJECT(widgets->MainNotebook),"switch-page",G_CALLBACK(on_notebook_page_changed),widgets); g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),widgets);