master #63

Merged
asmeron merged 4 commits from YanTheKaller/ubl-settings-system:master into master 7 months ago

@ -30,6 +30,14 @@ void on_save_done(main_window *widgets, config_str output, int size){
} }
void on_config_reload(GtkWidget *,main_window *widgets){
if (main_config.load_mode==0){
yon_config_global_load(NULL,widgets);
} else if (main_config.load_mode==1){
yon_config_local_load(NULL,widgets);
}
}
int yon_load_proceed(YON_CONFIG_TYPE type){ int yon_load_proceed(YON_CONFIG_TYPE type){
if (type!=YON_CONFIG_CUSTOM){ if (type!=YON_CONFIG_CUSTOM){
yon_config_clean(); yon_config_clean();
@ -163,13 +171,21 @@ void yon_interface_update(main_window *widgets){
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->languagelist),&iter); int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->languagelist),&iter);
for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->languagelist),&iter)){ for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->languagelist),&iter)){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&loc_name,1,&code,2,&is_active,-1); gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&loc_name,1,&code,2,&is_active,-1);
if (code&&!strcmp(code,lang)) gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->LanguageCombo),&iter); if (avlocale){
if (avlocale) for (int i=0;i<locsize;i++){
for (int i=0;i<locsize;i++)
if (!strcmp(code,locale_parsed[i])) { if (!strcmp(code,locale_parsed[i])) {
gtk_list_store_set(widgets->languagelist,&iter,2,1,-1); gtk_list_store_set(widgets->languagelist,&iter,2,1,-1);
locale_string = yon_char_unite(strcmp(locale_string,"") ? yon_char_append(locale_string,"; ") : locale_string, loc_name,NULL); locale_string = yon_char_unite(strcmp(locale_string,"") ? yon_char_append(locale_string,"; ") : locale_string, loc_name,NULL);
} }
}
}
if (code&&!strcmp(code,lang)) {
GtkTreeIter filter_iter;
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.localefilter));
while(gtk_events_pending()) gtk_main_iteration();
gtk_tree_model_filter_convert_child_iter_to_iter(GTK_TREE_MODEL_FILTER(main_config.localefilter),&filter_iter,&iter);
gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->LanguageCombo),&filter_iter);
}
} }
if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string); if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
} }
@ -270,6 +286,7 @@ void on_locale_accept(GtkWidget *self, dictionary *dict){
yon_config_register(locale_parameter,LOCALE_get_command,final_ids); yon_config_register(locale_parameter,LOCALE_get_command,final_ids);
gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),final_string); gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),final_string);
} }
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.localefilter));
on_subwindow_close(self); on_subwindow_close(self);
} }
@ -381,15 +398,19 @@ void on_console_font_changed(GtkComboBox *self, main_window *widgets){
} }
void on_language_changed(GtkComboBox *self, main_window *widgets){ void on_language_changed(GtkComboBox *self, main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter, child;
gtk_combo_box_get_active_iter(self,&iter); if (gtk_combo_box_get_active_iter(self,&iter)){
char *code; char *code;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,1,&code,-1);
if (code) gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(main_config.localefilter),&child,&iter);
if (yon_config_get_by_key(language_parameter)){ gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&child,1,&code,-1);
yon_config_set(language_parameter,code); if (code){
} else { if (yon_config_get_by_key(language_parameter)){
yon_config_register(language_parameter,LANG_get_command,code); yon_config_set(language_parameter,code);
} else {
yon_config_register(language_parameter,LANG_get_command,code);
}
}
} }
} }
@ -449,10 +470,11 @@ void on_domain_connect(GtkWidget *self, dictionary *dict){
gtk_window_set_title(GTK_WINDOW(dialog->Window),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)); yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_connect_command(adress,login,password,final));
gtk_widget_show(dialog->Window); gtk_widget_show(dialog->Window);
gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress); gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress);
gtk_widget_destroy(window->Window); gtk_widget_destroy(window->Window);
free(window); free(window);
on_config_reload(NULL,widgets);
} }
void on_status_clicked(GtkWidget *self, connection_window *window){ void on_status_clicked(GtkWidget *self, connection_window *window){
@ -571,6 +593,7 @@ void on_domain_disconnect(GtkWidget *self, dictionary *dict){
gtk_widget_show(dialog->Window); gtk_widget_show(dialog->Window);
gtk_widget_destroy(window->Window); gtk_widget_destroy(window->Window);
free(window); free(window);
on_config_reload(NULL,widgets);
} }
domain_window *yon_domain_window_new(){ domain_window *yon_domain_window_new(){
@ -764,13 +787,16 @@ main_window *yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->DomainEntry),"focus-out-event",G_CALLBACK(on_domain_address_save),NULL); g_signal_connect(G_OBJECT(widgets->DomainEntry),"focus-out-event",G_CALLBACK(on_domain_address_save),NULL);
g_signal_connect(G_OBJECT(widgets->FindButton),"clicked",G_CALLBACK(on_find_domains_clicked),widgets); g_signal_connect(G_OBJECT(widgets->FindButton),"clicked",G_CALLBACK(on_find_domains_clicked),widgets);
gtk_widget_set_size_request(widgets->Window,800,440); gtk_widget_set_size_request(widgets->Window,800,440);
// g_timeout_add(1000,(GSourceFunc)on_check_domain_connected,widgets); // g_timeout_add(1000,(GSourceFunc)on_check_domain_connected,widgets);
on_check_domain_connected(NULL, widgets); on_check_domain_connected(NULL, widgets);
main_config.localeslist = gtk_list_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN); main_config.localefilter = gtk_tree_model_filter_new(GTK_TREE_MODEL(widgets->languagelist),NULL);
gtk_combo_box_set_model(GTK_COMBO_BOX(widgets->LanguageCombo),main_config.localefilter);
gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(main_config.localefilter),2);
int size; int size;
config_str locales = yon_file_open(get_locales_command,&size); config_str locales = yon_file_open(get_locales_command,&size);
GtkTreeIter iter; GtkTreeIter iter;

@ -98,6 +98,7 @@ char *local;
typedef struct { typedef struct {
template_config_fields template_config_fields
GtkListStore *localeslist; GtkListStore *localeslist;
GtkTreeModel *localefilter;
int save_config; int save_config;
int domain_connected; int domain_connected;
GMutex ThreadMutex; GMutex ThreadMutex;
@ -196,6 +197,10 @@ typedef struct {
GtkWidget *TerminalScroll; GtkWidget *TerminalScroll;
} domain_info_window; } domain_info_window;
void yon_config_local_load(GtkWidget *self, main_window *widgets);
void yon_config_global_load(GtkWidget *self, main_window *widgets);
void yon_config_custom_load(GtkWidget *self, main_window *widgets);
main_window *setup_window(); main_window *setup_window();
void on_id_changed(GtkEntry *self, main_window *widgets); void on_id_changed(GtkEntry *self, main_window *widgets);
@ -205,4 +210,5 @@ void yon_interface_update(main_window *widgets);
void on_hostname_changed(GtkEntry *self, main_window *widgets); void on_hostname_changed(GtkEntry *self, main_window *widgets);
void on_language_changed(GtkComboBox *self, main_window *widgets); void on_language_changed(GtkComboBox *self, main_window *widgets);
void on_console_font_changed(GtkComboBox *self, main_window *widgets); void on_console_font_changed(GtkComboBox *self, main_window *widgets);
void on_hostname_changed(GtkEntry *self, main_window *widgets); void on_hostname_changed(GtkEntry *self, main_window *widgets);
void on_locale_window_closed();

@ -48,6 +48,8 @@
#define OFF_AUTOMATICALLY_LABEL _("Switch client off or automatically") #define OFF_AUTOMATICALLY_LABEL _("Switch client off or automatically")
#define INFO_LABEL _("Domain information") #define INFO_LABEL _("Domain information")
#define INFO_TITLE_LABEL _("Current domain information") #define INFO_TITLE_LABEL _("Current domain information")
#define KERBEROS_TOOLTIP_LABEL _("DNS server that resolves the Kerberos/AD server name")
#define DNS_TOOLTIP_LABEL _("Full DNS name or IP address")
#define CONNECTION_LABEL _("Connect to domain") #define CONNECTION_LABEL _("Connect to domain")
#define DDISCONNECTION_LABEL _("Disconnect from domain") #define DDISCONNECTION_LABEL _("Disconnect from domain")
#define CHECK_NAME_LABEL _("Check domain name") #define CHECK_NAME_LABEL _("Check domain name")

@ -255,6 +255,7 @@
<object class="GtkEntry" id="KerberosServerEntry"> <object class="GtkEntry" id="KerberosServerEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="tooltip-text" translatable="yes">DNS server that resolves the Kerberos/AD server name</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -290,6 +291,7 @@
<object class="GtkEntry" id="DNSEntry"> <object class="GtkEntry" id="DNSEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="tooltip-text" translatable="yes">Full DNS name or IP address</property>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>

@ -182,50 +182,58 @@ msgid "Current domain information"
msgstr "" msgstr ""
#: source/ubl-strings.h:51 #: source/ubl-strings.h:51
msgid "Connect to domain" msgid "DNS server that resolves the Kerberos/AD server name"
msgstr "" msgstr ""
#: source/ubl-strings.h:52 #: source/ubl-strings.h:52
msgid "Disconnect from domain" msgid "Full DNS name or IP address"
msgstr "" msgstr ""
#: source/ubl-strings.h:53 #: source/ubl-strings.h:53
msgid "Check domain name" msgid "Connect to domain"
msgstr "" msgstr ""
#: source/ubl-strings.h:54 #: source/ubl-strings.h:54
msgid "List all domains" msgid "Disconnect from domain"
msgstr ""
#: source/ubl-strings.h:55
msgid "Check domain name"
msgstr "" msgstr ""
#: source/ubl-strings.h:56 #: source/ubl-strings.h:56
msgid "List all domains"
msgstr ""
#: source/ubl-strings.h:58
msgid "Connecting to domain" msgid "Connecting to domain"
msgstr "" msgstr ""
#: source/ubl-strings.h:57 #: source/ubl-strings.h:59
msgid "Disconnecting from domain" msgid "Disconnecting from domain"
msgstr "" msgstr ""
#: source/ubl-strings.h:58 #: source/ubl-strings.h:60
msgid "Join" msgid "Join"
msgstr "" msgstr ""
#: source/ubl-strings.h:59 #: source/ubl-strings.h:61
msgid "Leave" msgid "Leave"
msgstr "" msgstr ""
#: source/ubl-strings.h:61 #: source/ubl-strings.h:63
msgid "Connected to domain" msgid "Connected to domain"
msgstr "" msgstr ""
#: source/ubl-strings.h:62 #: source/ubl-strings.h:64
msgid "Disconnected from domain" msgid "Disconnected from domain"
msgstr "" msgstr ""
#: source/ubl-strings.h:64 #: source/ubl-strings.h:66
msgid "Loading..." msgid "Loading..."
msgstr "" msgstr ""
#: source/ubl-strings.h:65 #: source/ubl-strings.h:67
msgid "Check" msgid "Check"
msgstr "" msgstr ""
@ -586,9 +594,6 @@ msgstr ""
msgid "Serbian, Serbia (Latin)" msgid "Serbian, Serbia (Latin)"
msgstr "" msgstr ""
msgid ""
msgstr ""
msgid "Tamil, India" msgid "Tamil, India"
msgstr "" msgstr ""

@ -183,50 +183,58 @@ msgid "Current domain information"
msgstr "Информация о подключенном домене" msgstr "Информация о подключенном домене"
#: source/ubl-strings.h:51 #: source/ubl-strings.h:51
msgid "DNS server that resolves the Kerberos/AD server name"
msgstr "DNS сервер, который опознает имя сервере Kerberos/AD"
#: source/ubl-strings.h:52
msgid "Full DNS name or IP address"
msgstr "Полное имя DNS или IP-адрес"
#: source/ubl-strings.h:53
msgid "Connect to domain" msgid "Connect to domain"
msgstr "Присоединиться к домену" msgstr "Присоединиться к домену"
#: source/ubl-strings.h:52 #: source/ubl-strings.h:54
msgid "Disconnect from domain" msgid "Disconnect from domain"
msgstr "Отсоединиться от домена" msgstr "Отсоединиться от домена"
#: source/ubl-strings.h:53 #: source/ubl-strings.h:55
msgid "Check domain name" msgid "Check domain name"
msgstr "Проверить домен" msgstr "Проверить домен"
#: source/ubl-strings.h:54 #: source/ubl-strings.h:56
msgid "List all domains" msgid "List all domains"
msgstr "Показать все домены" msgstr "Показать все домены"
#: source/ubl-strings.h:56 #: source/ubl-strings.h:58
msgid "Connecting to domain" msgid "Connecting to domain"
msgstr "Подключение к домену" msgstr "Подключение к домену"
#: source/ubl-strings.h:57 #: source/ubl-strings.h:59
msgid "Disconnecting from domain" msgid "Disconnecting from domain"
msgstr "Отключение от домена" msgstr "Отключение от домена"
#: source/ubl-strings.h:58 #: source/ubl-strings.h:60
msgid "Join" msgid "Join"
msgstr "Присоединиться" msgstr "Присоединиться"
#: source/ubl-strings.h:59 #: source/ubl-strings.h:61
msgid "Leave" msgid "Leave"
msgstr "Отсоединиться" msgstr "Отсоединиться"
#: source/ubl-strings.h:61 #: source/ubl-strings.h:63
msgid "Connected to domain" msgid "Connected to domain"
msgstr "Подключен к домену" msgstr "Подключен к домену"
#: source/ubl-strings.h:62 #: source/ubl-strings.h:64
msgid "Disconnected from domain" msgid "Disconnected from domain"
msgstr "Не подключен к домену" msgstr "Не подключен к домену"
#: source/ubl-strings.h:64 #: source/ubl-strings.h:66
msgid "Loading..." msgid "Loading..."
msgstr "Загрузка..." msgstr "Загрузка..."
#: source/ubl-strings.h:65 #: source/ubl-strings.h:67
msgid "Check" msgid "Check"
msgstr "Проверка" msgstr "Проверка"
@ -587,9 +595,6 @@ msgstr "Сербский, Сербия"
msgid "Serbian, Serbia (Latin)" msgid "Serbian, Serbia (Latin)"
msgstr "Сербский, Сербия" msgstr "Сербский, Сербия"
msgid "Swedish, Sweden"
msgstr "Шведский, Швеция"
msgid "Tamil, India" msgid "Tamil, India"
msgstr "Тамильский, Индия" msgstr "Тамильский, Индия"
@ -619,3 +624,6 @@ msgstr "Китайский, Сингапур"
msgid "Traditional Chinese, Taiwan" msgid "Traditional Chinese, Taiwan"
msgstr "Традиционный Китайский, Тайвань" msgstr "Традиционный Китайский, Тайвань"
msgid "Swedish, Sweden"
msgstr "Шведский, Швеция"

Loading…
Cancel
Save