diff --git a/source/ubl-settings-system.c b/source/ubl-settings-system.c index 91ae403..86422f3 100644 --- a/source/ubl-settings-system.c +++ b/source/ubl-settings-system.c @@ -113,16 +113,18 @@ void yon_load_proceed(YON_CONFIG_TYPE type){ void yon_config_local_load(GtkWidget *self, main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),""); gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),""); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->IDRandomCheck),0); + gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),""); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ConsoleFontCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0); yon_load_proceed(YON_CONFIG_LOCAL); gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),yon_config_get_by_key(hostname_parameter)); char *id = yon_config_get_by_key(id_parameter); - if (strcmp(id,"Random")) - gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),id); + if (!strcmp(id,"Random")) + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),1); + else if (!strcmp(id,"hardware")) + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),2); else - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->IDRandomCheck),1); + gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),id); GtkTreeIter iter; char *code; @@ -148,16 +150,18 @@ void yon_config_local_load(GtkWidget *self, main_window *widgets){ void yon_config_global_load(GtkWidget *self, main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),""); gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),""); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->IDRandomCheck),0); + gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),""); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ConsoleFontCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0); yon_load_proceed(YON_CONFIG_GLOBAL); gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),yon_config_get_by_key(hostname_parameter)); char *id = yon_config_get_by_key(id_parameter); - if (strcmp(id,"Random")) - gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),id); + if (!strcmp(id,"Random")) + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),1); + else if (!strcmp(id,"hardware")) + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),2); else - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->IDRandomCheck),1); + gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),id); GtkTreeIter iter; char *code; @@ -205,11 +209,23 @@ void on_hostname_changed(GtkEntry *self, main_window *widgets){ } } -void on_id_random_toggled(GtkToggleButton *self, main_window *widgets){ - if (yon_config_get_by_key(id_parameter)){ - yon_config_set(id_parameter,gtk_toggle_button_get_active(self)? "Random":""); - } else { - yon_config_register(id_parameter,"config",gtk_toggle_button_get_active(self)? "Random":""); +void on_id_combo_toggled(GtkComboBox *self, main_window *widgets){ + int id = gtk_combo_box_get_active(self); + if (id==2||id==1){ + if (yon_config_get_by_key(id_parameter)){ + yon_config_set(id_parameter, id == 1 ? "Random" : "hardware"); + } else { + yon_config_register(id_parameter,"config", id == 1 ? "Random":"hardware"); + } + } + if (id<3){ + + gtk_widget_set_sensitive(widgets->IDEntry,0); + gtk_widget_set_sensitive(widgets->IDCopyButton,0); + } + else { + gtk_widget_set_sensitive(widgets->IDCopyButton,1); + gtk_widget_set_sensitive(widgets->IDEntry,1); } } @@ -312,7 +328,7 @@ main_window *setup_window(){ widgets->LeftBox = yon_gtk_builder_get_widget(builder,"HeaderLeftBox"); widgets->HostnameEntry = yon_gtk_builder_get_widget(builder,"HostnameEntry"); - widgets->IDRandomCheck = yon_gtk_builder_get_widget(builder,"IDCheck"); + widgets->IDCombo = yon_gtk_builder_get_widget(builder,"IDCombo"); widgets->IDEntry = yon_gtk_builder_get_widget(builder,"IDEntry"); widgets->IDCopyButton = yon_gtk_builder_get_widget(builder,"IDCopyButton"); widgets->ConsoleFontCombo = yon_gtk_builder_get_widget(builder,"ConsoleFontCombo"); @@ -358,13 +374,13 @@ main_window *setup_window(){ g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(yon_config_local_save),widgets); g_signal_connect(G_OBJECT(widgets->HostnameEntry),"changed",G_CALLBACK(on_hostname_changed),widgets); - g_signal_connect(G_OBJECT(widgets->IDRandomCheck),"toggled",G_CALLBACK(on_id_random_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->IDCombo),"changed",G_CALLBACK(on_id_combo_toggled),widgets); g_signal_connect(G_OBJECT(widgets->IDEntry),"changed",G_CALLBACK(on_id_changed),widgets); g_signal_connect(G_OBJECT(widgets->IDCopyButton),"clicked",G_CALLBACK(on_id_copy),widgets); g_signal_connect(G_OBJECT(widgets->ConsoleFontCombo),"changed",G_CALLBACK(on_console_font_changed),widgets); g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_language_changed),widgets); - g_signal_connect(G_OBJECT(widgets->IDRandomCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->IDCopyButton); - g_signal_connect(G_OBJECT(widgets->IDRandomCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->IDEntry); + // g_signal_connect(G_OBJECT(widgets->IDRandomCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->IDCopyButton); + // g_signal_connect(G_OBJECT(widgets->IDRandomCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->IDEntry); int size; config_str locales = yon_config_load(get_locales_command,&size); GtkTreeIter iter; diff --git a/source/ubl-settings-system.h b/source/ubl-settings-system.h index 4fec797..02f4723 100644 --- a/source/ubl-settings-system.h +++ b/source/ubl-settings-system.h @@ -87,7 +87,7 @@ typedef struct { GtkWidget *AboutMenuItem; // Custom GtkWidget *HostnameEntry; - GtkWidget *IDRandomCheck; + GtkWidget *IDCombo; GtkWidget *IDEntry; GtkWidget *IDCopyButton; GtkWidget *ConsoleFontCombo; diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 7120aa1..e8136b9 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -41,6 +41,8 @@ #define ID_LABEL _("Work station ID:") #define SYSTEM_LABEL _("System") #define RANDOM_LABEL _("Random") +#define HARDWARE_LABEL _("Hardware") +#define MANUAL_LABEL _("Manual") #define CONSOLE_LABEL _("Console") #define FONT_LABEL _("Console font:") #define LOCALE_LABEL _("Locale") diff --git a/ubl-settings-system.glade b/ubl-settings-system.glade index 41f7217..85456f4 100644 --- a/ubl-settings-system.glade +++ b/ubl-settings-system.glade @@ -495,7 +495,6 @@ translated and supported by community. 800 - 600 False 800 600 @@ -691,12 +690,16 @@ translated and supported by community. False 5 - - Random + True - True - False - True + False + 0 + + Default + Random + Hardware + Manual + False diff --git a/ubl-settings-system.pot b/ubl-settings-system.pot index 4fc0d85..c0517de 100644 --- a/ubl-settings-system.pot +++ b/ubl-settings-system.pot @@ -190,26 +190,34 @@ msgid "Random" msgstr "" #: source/ubl-strings.h:44 -msgid "Console" +msgid "Hardware" msgstr "" #: source/ubl-strings.h:45 -msgid "Console font:" +msgid "Manual" msgstr "" #: source/ubl-strings.h:46 -msgid "Locale" +msgid "Console" msgstr "" #: source/ubl-strings.h:47 -msgid "Language:" +msgid "Console font:" +msgstr "" + +#: source/ubl-strings.h:48 +msgid "Locale" msgstr "" #: source/ubl-strings.h:49 -msgid "Default" +msgid "Language:" msgstr "" #: source/ubl-strings.h:51 +msgid "Default" +msgstr "" + +#: source/ubl-strings.h:53 msgid "Machine ID has been copied" msgstr "" diff --git a/ubl-settings-system_ru.po b/ubl-settings-system_ru.po index 43e3cf7..a47ba90 100644 --- a/ubl-settings-system_ru.po +++ b/ubl-settings-system_ru.po @@ -194,26 +194,34 @@ msgid "Random" msgstr "Случайный" #: source/ubl-strings.h:44 +msgid "Hardware" +msgstr "Системный" + +#: source/ubl-strings.h:45 +msgid "Manual" +msgstr "Вручную" + +#: source/ubl-strings.h:46 msgid "Console" msgstr "Консоль" -#: source/ubl-strings.h:45 +#: source/ubl-strings.h:47 msgid "Console font:" msgstr "Шрифт в консоли" -#: source/ubl-strings.h:46 +#: source/ubl-strings.h:48 msgid "Locale" msgstr "Локаль" -#: source/ubl-strings.h:47 +#: source/ubl-strings.h:49 msgid "Language:" msgstr "Язык" -#: source/ubl-strings.h:49 +#: source/ubl-strings.h:51 msgid "Default" msgstr "По умолчанию" -#: source/ubl-strings.h:51 +#: source/ubl-strings.h:53 msgid "Machine ID has been copied" msgstr "ID рабочей станции скопирован"