diff --git a/README.md b/README.md index f17b7ad..5a8ac35 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ In order to build ubl-ubl-settings-usergroups you will need: - CMake - C compiler - GTK+ 3 & dependencies -- webkit2gtk (optional) +- webkit2gtk - [libublsettings-ui](https://gitea.ublinux.ru/Applications/libublsettings-ui) Once you have all the necessary dependencies, you can use: diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index c9374b7..1843f6e 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -12,18 +12,38 @@ void yon_save_proceed(char *section,YON_CONFIG_TYPE type){ } void on_filechooser_open(GtkWidget *self, GtkEntry *output_target){ + // ubl_settings_usergroups_additional_settings_window *window = yon_ubl_settings_usergroups_additional_settings_new(); + // g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + // gtk_widget_show(window->Window); } void on_groups_clicked(GtkWidget *self, GtkEntry *output_target){ + ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(); + gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(window->GroupsTree),0),0); + g_signal_connect(G_OBJECT(window->GroupsOkButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + gtk_widget_show(window->GroupsWindow); + +} + +void on_groups_multiple_clicked(GtkWidget *self, GtkEntry *output_target){ + ubl_settings_usergroups_group_window *window = yon_ubl_settings_usergroups_group_new(); + g_signal_connect(G_OBJECT(window->GroupsOkButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + gtk_widget_show(window->GroupsWindow); } void on_password_change(GtkWidget *self, GtkEntry *output_target){ + ubl_settings_usergroups_password_window *window = yon_ubl_settings_usergroups_password_new(); + g_signal_connect(G_OBJECT(window->UserOkButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + gtk_widget_show(window->CreateGroupWindow); } -void on_additional_groups_clicked(GtkWidget *self, GtkEntry *output_target){ +void on_additional_settings_clicked(GtkWidget *self, GtkEntry *output_target){ + ubl_settings_usergroups_additional_settings_window *window = yon_ubl_settings_usergroups_additional_settings_new(); + g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + gtk_widget_show(window->Window); } @@ -76,6 +96,16 @@ ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group window->UserAdditionalGroupsButton=yon_gtk_builder_get_widget(builder,"UserAdditionalGroupsButton"); window->UserCancelButton=yon_gtk_builder_get_widget(builder,"UserCancelButton"); window->UserOkButton=yon_gtk_builder_get_widget(builder,"UserOkButton"); + window->AdditionalGroupsButton=yon_gtk_builder_get_widget(builder,"AdditionalGroupsButton"); + window->UnuniqueGIDCheck=yon_gtk_builder_get_widget(builder,"UnuniqueGIDCheck"); + window->SystemGroupCheck=yon_gtk_builder_get_widget(builder,"SystemGroupCheck"); + window->PasswordCombo=yon_gtk_builder_get_widget(builder,"PasswordCombo"); + window->PasswordEntry=yon_gtk_builder_get_widget(builder,"PasswordEntry"); + window->ChangePasswordButton=yon_gtk_builder_get_widget(builder,"ChangePasswordButton"); + + g_signal_connect(G_OBJECT(window->UnuniqueGIDCheck),"clicked",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->userLoginEntry); + g_signal_connect(G_OBJECT(window->AdditionalGroupsButton),"clicked",G_CALLBACK(on_groups_multiple_clicked),window->userGroupsEntry); + g_signal_connect(G_OBJECT(window->ChangePasswordButton),"clicked",G_CALLBACK(on_password_change),window->PasswordEntry); g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); return window; } @@ -102,6 +132,7 @@ ubl_settings_usergroups_group_window *yon_ubl_settings_usergroups_group_new(){ window->GroupsTree=yon_gtk_builder_get_widget(builder,"GroupsTree"); window->GroupsCancelButton=yon_gtk_builder_get_widget(builder,"GroupsCancelButton"); window->GroupsOkButton=yon_gtk_builder_get_widget(builder,"GroupsOkButton"); + g_signal_connect(G_OBJECT(window->GroupsCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); return window; } @@ -191,11 +222,12 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ window->UserCancelButton=yon_gtk_builder_get_widget(builder,"UserCancelButton"); window->UserOkButton=yon_gtk_builder_get_widget(builder,"UserOkButton"); + g_signal_connect(G_OBJECT(window->UserCancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->userUIDAutoCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->userUIDEntry); g_signal_connect(G_OBJECT(window->userHomeButton),"clicked",G_CALLBACK(on_filechooser_open),window->userHomeEntry); g_signal_connect(G_OBJECT(window->UserGroupsButton),"clicked",G_CALLBACK(on_groups_clicked),window->userGroupsEntry); g_signal_connect(G_OBJECT(window->userPasswordButton),"clicked",G_CALLBACK(on_password_change),window->userPasswordEntry); - g_signal_connect(G_OBJECT(window->userAdditionalGroupsButton),"clicked",G_CALLBACK(on_additional_groups_clicked),window->userAdditionalGroupsEntry); + g_signal_connect(G_OBJECT(window->userAdditionalGroupsButton),"clicked",G_CALLBACK(on_groups_multiple_clicked),window->userAdditionalGroupsEntry); g_signal_connect(G_OBJECT(window->userPasswordExpirationButton),"clicked",G_CALLBACK(on_expiration_clicked),window->userPasswordExpirationEntry); return window; } diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h index e85cc5b..4ee3e97 100644 --- a/source/ubl-settings-usergroups.h +++ b/source/ubl-settings-usergroups.h @@ -143,6 +143,12 @@ typedef struct{ GtkWidget *UserAdditionalGroupsButton; GtkWidget *UserCancelButton; GtkWidget *UserOkButton; + GtkWidget *AdditionalGroupsButton; + GtkWidget *UnuniqueGIDCheck; + GtkWidget *SystemGroupCheck; + GtkWidget *PasswordCombo; + GtkWidget *PasswordEntry; + GtkWidget *ChangePasswordButton; } ubl_settings_usergroups_group_creation_window; typedef struct{ @@ -218,3 +224,20 @@ typedef struct{ } ubl_settings_usergroups_user_window; +ubl_settings_usergroups_additional_settings_window *yon_ubl_settings_usergroups_additional_settings_new(); + +void on_ubl_settings_usergroups_additional_settings_open(GtkWidget *self, main_window *widgets); + +ubl_settings_usergroups_group_creation_window *yon_ubl_settings_usergroups_group_creation_new(); + +ubl_settings_usergroups_group_window *yon_ubl_settings_usergroups_group_new(); + +void on_standard_groups_open(GtkWidget *self, main_window *widgets); + +ubl_settings_usergroups_password_window *yon_ubl_settings_usergroups_password_new(); + +ubl_settings_usergroups_system_window *yon_ubl_settings_usergroups_system_new(); + +void on_settings_usergroups_system_open(GtkWidget *self, main_window *widgets); + +ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(); \ No newline at end of file diff --git a/ubl-settings-usergroups-additional-settings.glade b/ubl-settings-usergroups-additional-settings.glade index d5a324f..3ff73e0 100644 --- a/ubl-settings-usergroups-additional-settings.glade +++ b/ubl-settings-usergroups-additional-settings.glade @@ -17,6 +17,7 @@ 350 False False + True com.ublinux.ubl-settings-usergroups diff --git a/ubl-settings-usergroups-group-creation.glade b/ubl-settings-usergroups-group-creation.glade index b078dda..65f806f 100644 --- a/ubl-settings-usergroups-group-creation.glade +++ b/ubl-settings-usergroups-group-creation.glade @@ -78,7 +78,7 @@ - + Automatically True True @@ -179,7 +179,7 @@ - + True True True @@ -281,7 +281,7 @@ vertical 5 - + Create group with ununique GID True True @@ -295,7 +295,7 @@ - + Create system group True True @@ -326,7 +326,7 @@ - + True False 0 @@ -344,7 +344,7 @@ - + True True False @@ -359,7 +359,7 @@ - + True True True