diff --git a/source/ubl-settings-system.c b/source/ubl-settings-system.c index 8e33e2f..97cc529 100644 --- a/source/ubl-settings-system.c +++ b/source/ubl-settings-system.c @@ -36,6 +36,7 @@ void on_config_reload(GtkWidget *,main_window *widgets){ } else if (main_config.load_mode==1){ yon_config_local_load(NULL,widgets); } + yon_interface_update(widgets); } int yon_load_proceed(YON_CONFIG_TYPE type){ @@ -122,6 +123,7 @@ void yon_interface_update(main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),""); gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),""); gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),DEFAULT_LABEL); + gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),""); int size; GtkTreeIter iter; config_str rtn = yon_file_open(get_id_command,&size); @@ -150,6 +152,11 @@ void yon_interface_update(main_window *widgets){ gtk_widget_set_sensitive(widgets->IDEntry,0); } + char *domain = config(DOMAIN); + if (!yon_char_is_empty(domain)){ + gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),domain); + } + char *code; char *cons_font = yon_config_get_by_key(console_font_parameter); if (cons_font){ @@ -414,15 +421,22 @@ void on_language_changed(GtkComboBox *self, main_window *widgets){ } } +void on_terminal_done(VteTerminal *terminal, gint status, dictionary *dict){ + main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); + GtkWidget *window = yon_dictionary_get_data(dict->first->next,GtkWidget*); + if (!status){ + gtk_widget_destroy(window); + on_config_reload(NULL,widgets); + } +} + void on_terminal_command_ended(VteTerminal *terminal, gint status, domain_info_window *window){ - textdomain(template_ui_LocaleName); // yon_ubl_status_box_despawn_infinite(GTK_CONTAINER(window->StatusBox)); - if (!status) + if (!status){ yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"success",yon_char_get_localised_from_lib(SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE); - else { + } else { yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"failure",yon_char_get_localised_from_lib(FAIL_LABEL),BACKGROUND_IMAGE_FAIL_TYPE); } - textdomain(LocaleName); } domain_info_window *yon_information_window_new(){ @@ -468,10 +482,12 @@ void on_domain_connect(GtkWidget *self, dictionary *dict){ gtk_label_set_text(GTK_LABEL(dialog->HeadLabel),DOMAIN_CONNECTING_LABEL); gtk_window_set_title(GTK_WINDOW(dialog->Window),DOMAIN_CONNECTING_LABEL); yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_connect_command(adress,login,password,final)); + dictionary *dc = NULL; + yon_dictionary_add_or_create_if_exists_with_data(dc,"widgets",widgets); + yon_dictionary_add_or_create_if_exists_with_data(dc,"window",window->Window); + g_signal_connect(G_OBJECT(dialog->ExecuteTerminal),"child-exited",G_CALLBACK(on_terminal_done),dc); gtk_widget_show(dialog->Window); gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress); - gtk_widget_destroy(window->Window); - free(window); on_config_reload(NULL,widgets); } @@ -588,11 +604,12 @@ void on_domain_disconnect(GtkWidget *self, dictionary *dict){ gtk_label_set_text(GTK_LABEL(dialog->HeadLabel),DISCONNECTION_LABEL); gtk_window_set_title(GTK_WINDOW(dialog->Window),DISCONNECTION_LABEL); yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_disconnect_command(adress,login,password)); + dictionary *dc = NULL; + yon_dictionary_add_or_create_if_exists_with_data(dc,"widgets",widgets); + yon_dictionary_add_or_create_if_exists_with_data(dc,"window",window->Window); + g_signal_connect(G_OBJECT(dialog->ExecuteTerminal),"child-exited",G_CALLBACK(on_terminal_done),dc); gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress); gtk_widget_show(dialog->Window); - gtk_widget_destroy(window->Window); - free(window); - on_config_reload(NULL,widgets); } domain_window *yon_domain_window_new(){ @@ -616,7 +633,7 @@ domain_window *yon_domain_window_new(){ void on_domain_opened(GtkWidget *self, main_window *widgets){ if (main_config.domain_connected){ domain_window *window = yon_domain_window_new(); - gtk_label_set_text(GTK_LABEL(window->HeadLabel),DOMAIN_CONNECTING_LABEL); + gtk_label_set_text(GTK_LABEL(window->HeadLabel),DISCONNECTION_LABEL); yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),DISCONNECTION_LABEL,"com.ublinux.ubl-settings-system","DomainWindow"); char *domain = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->DomainEntry)); char *password = yon_config_get_by_key(DOMAIN_ADMANGER); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 068b7f5..67a69c4 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -55,8 +55,8 @@ #define CHECK_NAME_LABEL _("Check domain name") #define LIST_ALL_LABEL _("List all domains") -#define DOMAIN_CONNECTING_LABEL _("Connecting to domain") -#define DISCONNECTION_LABEL _("Disconnecting from domain") +#define DOMAIN_CONNECTING_LABEL _("Join domain") +#define DISCONNECTION_LABEL _("Leave domain") #define DOMAIN_CONNECT_LABEL _("Join") #define DOMAIN_DISCONNECT_LABEL _("Leave") diff --git a/ubl-settings-system.pot b/ubl-settings-system.pot index 9c14dd5..237fb55 100644 --- a/ubl-settings-system.pot +++ b/ubl-settings-system.pot @@ -206,11 +206,11 @@ msgid "List all domains" msgstr "" #: source/ubl-strings.h:58 -msgid "Connecting to domain" +msgid "Join domain" msgstr "" #: source/ubl-strings.h:59 -msgid "Disconnecting from domain" +msgid "Leave domain" msgstr "" #: source/ubl-strings.h:60 diff --git a/ubl-settings-system_ru.po b/ubl-settings-system_ru.po index 7926e68..d3f0cf6 100644 --- a/ubl-settings-system_ru.po +++ b/ubl-settings-system_ru.po @@ -207,11 +207,11 @@ msgid "List all domains" msgstr "Показать все домены" #: source/ubl-strings.h:58 -msgid "Connecting to domain" +msgid "Join domain" msgstr "Присоединиться к домену" #: source/ubl-strings.h:59 -msgid "Disconnecting from domain" +msgid "Leave domain" msgstr "Отсоединиться от домена" #: source/ubl-strings.h:60