From f74f393604c98770a5dd789c2ed0d09ca571c063 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 10 Oct 2025 14:13:42 +0600 Subject: [PATCH] Added new warning --- source/ubl-settings-usergroups-user.c | 33 +++++++++++++++++++++++++++ source/ubl-settings-usergroups.h | 1 + source/ubl-strings.h | 4 +++- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/source/ubl-settings-usergroups-user.c b/source/ubl-settings-usergroups-user.c index 093ea0a..5469338 100644 --- a/source/ubl-settings-usergroups-user.c +++ b/source/ubl-settings-usergroups-user.c @@ -149,6 +149,37 @@ void on_homedir_changed(GtkComboBox *self, GtkWidget *target){ } +void on_home_changed(GtkWidget *self,ubl_settings_usergroups_user_window *window){ + const char *homepath = gtk_entry_get_text(GTK_ENTRY(self)); + if (yon_char_is_empty(homepath)) return; + char *home_parameter = yon_char_unite("--home-dir ",homepath,NULL); + int size; + config_str parameters = yon_config_get_all_by_key(USERADD_SEARCH_macro,&size); + for (int i=0;iStatusBox),HOMEDIR_USED_LABEL,5,BACKGROUND_IMAGE_INFO_TYPE); + yon_ubl_status_highlight_incorrect(window->userHomeEntry); + break; + } + yon_char_parsed_free(parsed,parsed_size); + } + yon_char_parsed_free(parameters,size); + + for (int i=0;iStatusBox),HOMEDIR_USED_LABEL,5,BACKGROUND_IMAGE_INFO_TYPE); + yon_ubl_status_highlight_incorrect(window->userHomeEntry); + break; + } + yon_char_parsed_free(parsed,parsed_size); + } + free(home_parameter); +} + ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ ubl_settings_usergroups_user_window *window = malloc(sizeof(ubl_settings_usergroups_user_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubl_settings_usergroups_user); @@ -263,6 +294,7 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ g_signal_connect(G_OBJECT(window->userPasswordCombo),"changed",G_CALLBACK(on_toggle_button_set_active_from_combo_box),window); g_signal_connect(G_OBJECT(window->userPasswordEntry),"changed",G_CALLBACK(on_password_user_changed),window); g_signal_connect(G_OBJECT(window->userHomeEntry),"changed",G_CALLBACK(on_parameter_changed),window); + g_signal_connect(G_OBJECT(window->userHomeEntry),"changed",G_CALLBACK(on_home_changed),window); g_signal_connect(G_OBJECT(window->userHomeCombo),"changed",G_CALLBACK(on_parameter_changed),window); g_signal_connect(G_OBJECT(window->userShellCombo),"changed",G_CALLBACK(on_parameter_changed),window); g_signal_connect(G_OBJECT(window->userShellEntry),"changed",G_CALLBACK(on_parameter_changed),window); @@ -335,6 +367,7 @@ void on_user_login_update(GtkWidget *, ubl_settings_usergroups_user_window *wind void on_user_save(GtkWidget *self, dictionary *dict){ main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); ubl_settings_usergroups_user_window *window = yon_dictionary_get_data(dict->first->next,ubl_settings_usergroups_user_window*); + yon_ubl_status_box_despawn(GTK_CONTAINER(window->StatusBox)); char *final_user=""; char *uid_string = NULL; char *password = NULL; diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h index 8f51fb9..4a4285e 100644 --- a/source/ubl-settings-usergroups.h +++ b/source/ubl-settings-usergroups.h @@ -626,4 +626,5 @@ int yon_system_group_sync(char *group); int yon_system_user_sync(char *user); void on_homedir_changed(GtkComboBox *self, GtkWidget *target); int yon_config_check_valid(); +void on_home_changed(GtkWidget *self,ubl_settings_usergroups_user_window *window); #endif \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 925e368..0889f0c 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -299,4 +299,6 @@ #define DMY_FORMAT_LABEL _("DD.MM.YYYY") #define DMY_MINUS_FORMAT_LABEL _("DD-MM-YYYY") #define DMY_SLASH_FORMAT_LABEL _("DD/MM/YYYY") -#define MDY_FORMAT_LABEL _("MM-DD-YYYY") \ No newline at end of file +#define MDY_FORMAT_LABEL _("MM-DD-YYYY") + +#define HOMEDIR_USED_LABEL _("The selected home directory is used by another user") \ No newline at end of file