diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 5062e9a..e4c2bb9 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -1359,7 +1359,53 @@ void config_init(){ } yon_char_parsed_free(login_defs,login_size); } + +void on_selection_changed(GtkWidget *self, main_window *widgets){ + GtkTreeIter iter; + if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==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->DeleteButton,1); + gtk_widget_set_sensitive(widgets->EditButton,1); + } else { + gtk_widget_set_sensitive(widgets->DeleteButton,0); + gtk_widget_set_sensitive(widgets->EditButton,0); + } + } else { + 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->DeleteButton,1); + gtk_widget_set_sensitive(widgets->EditButton,1); + } else { + gtk_widget_set_sensitive(widgets->DeleteButton,0); + gtk_widget_set_sensitive(widgets->EditButton,0); + } + } +} +void on_notebook_page_changed(GtkWidget *self, GtkWidget *page, int num, main_window *widgets){ + GtkTreeIter iter; + if (num==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->DeleteButton,1); + gtk_widget_set_sensitive(widgets->EditButton,1); + } else { + gtk_widget_set_sensitive(widgets->DeleteButton,0); + gtk_widget_set_sensitive(widgets->EditButton,0); + } + } else { + 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->DeleteButton,1); + gtk_widget_set_sensitive(widgets->EditButton,1); + } else { + gtk_widget_set_sensitive(widgets->DeleteButton,0); + gtk_widget_set_sensitive(widgets->EditButton,0); + } + } +} + /**yon_main_window_complete(main_window *widgets) * [EN] * @@ -1411,6 +1457,9 @@ main_window *yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->button1),"clicked",G_CALLBACK(on_settings_usergroups_system_open),widgets); g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_config_update),widgets); g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets); + g_signal_connect(G_OBJECT(widgets->UsersTree),"cursor-changed",G_CALLBACK(on_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->GroupsTree),"cursor-changed",G_CALLBACK(on_selection_changed),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); g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_local_save),widgets); diff --git a/ubl-settings-usergroups.glade b/ubl-settings-usergroups.glade index ef20803..a38802d 100644 --- a/ubl-settings-usergroups.glade +++ b/ubl-settings-usergroups.glade @@ -189,6 +189,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. True + False True True Edit @@ -206,6 +207,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. True + False True True Remove