WIP languages table

pull/83/head
parent dda7986284
commit 1aa8145627
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -78,6 +78,8 @@ endif()
set(SOURCE_FILES
ubl-settings-system.c
ubl-settings-system-language.c
ubl-settings-system-domain.c
ubl-settings-system.h
ubl-strings.h
)

@ -0,0 +1,301 @@
#include "ubl-settings-system.h"
void on_domain_address_save(GtkEntry *self){
char *adress = (char*)gtk_entry_get_text(self);
if (!yon_char_is_empty(adress)){
yon_config_register(DOMAIN,DOMAIN_get_command,adress);
}
}
domain_info_window *yon_information_window_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_domain_view_path);
domain_info_window *window = malloc(sizeof(domain_info_window));
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
window->ExecuteTerminal = yon_gtk_builder_get_widget(builder,"ExecuteTerminal");
window->TerminalScroll = yon_gtk_builder_get_widget(builder,"TerminalScroll");
yon_gtk_widget_set_scroll_window_for_scroll(window->Window,GTK_SCROLLBAR(window->TerminalScroll));
GdkRGBA rgba;
vte_terminal_get_color_background_for_draw(VTE_TERMINAL(window->ExecuteTerminal),&rgba);
vte_terminal_set_color_cursor(VTE_TERMINAL(window->ExecuteTerminal),&rgba);
yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,TITLE_LABEL,"com.ublinux.ubl-settings-system","InfoWindow");
yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"loading",LOADING_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
g_signal_connect(G_OBJECT(window->ExecuteTerminal), "child-exited", G_CALLBACK(on_terminal_command_ended), window);
return window;
}
void on_domain_connect(GtkWidget *, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
connection_window *window = yon_dictionary_get_data(dict->first->next,connection_window*);
char *adress = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
if (yon_char_is_empty(adress)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->AdressEntry);
return;
}
char *login = (char*)gtk_entry_get_text(GTK_ENTRY(window->LoginEntry));
char *password = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
char *kerberos = (char*)gtk_entry_get_text(GTK_ENTRY(window->KerberosServerEntry));
char *dns = (char*)gtk_entry_get_text(GTK_ENTRY(window->DNSEntry));
char *ou = (char*)gtk_entry_get_text(GTK_ENTRY(window->OuEntry));
char *client = NULL;
if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->ClientCombo))){
client = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ClientCombo));
}
char *final = yon_char_unite(!yon_char_is_empty(kerberos)?kerberos_addition_command(kerberos):"",!yon_char_is_empty(kerberos)?" ":"",!yon_char_is_empty(dns)?dns_addition_command(dns):"",!yon_char_is_empty(dns)?" ":"",!yon_char_is_empty(client)?client_addition_command(client):"",!yon_char_is_empty(client)?" ":"",NULL);
char *command = domain_connect_command(adress,login,password,final,ou);
yon_debug_output("%s\n",command);
domain_info_window *dialog = yon_information_window_new();
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,command);
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);
on_config_reload(NULL,widgets);
}
void on_status_clicked(GtkWidget *, connection_window *window){
char *target = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
if (!yon_char_is_empty(target)){
yon_debug_output("%s\n",domain_info(target));
domain_info_window *dialog = yon_information_window_new();
yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_info(target));
gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window));
gtk_widget_show(dialog->Window);
}
}
void on_find_domains_clicked(GtkWidget *, main_window *window){
domain_info_window *dialog = yon_information_window_new();
yon_terminal_integrated_start(dialog->ExecuteTerminal,domains_seek_command);
gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window));
gtk_widget_show(dialog->Window);
// yon_terminal_window_launch(GTK_WINDOW(window->Window),yon_debug_output("%s\n",domains_seek_command),yon_char_get_localised_from_lib(SUCCESS_LABEL),yon_char_get_localised_from_lib(FAIL_LABEL));
}
void on_main_window_domain_status_clicked(GtkWidget *, GtkEntryIconPosition icon_pos,GdkEvent* ,main_window *widgets){
if (icon_pos==GTK_ENTRY_ICON_SECONDARY&&main_config.domain_connected){
char *target = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->DomainEntry));
if (!yon_char_is_empty(target)){
yon_debug_output("%s\n",get_domain_info_command);
domain_info_window *dialog = yon_information_window_new();
gtk_label_set_text(GTK_LABEL(dialog->HeadLabel),INFO_TITLE_LABEL);
yon_terminal_integrated_start(dialog->ExecuteTerminal,get_domain_info_command);
gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(widgets->Window));
gtk_widget_show(dialog->Window);
}
}
}
int update_thread_buzy = 0;
gboolean on_main_window_domain_status_update(connection_window *window){
const char *target = gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
if (!yon_char_is_empty(target)){
int status = system(domain_check_alive(target));
if (!status){
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(window->AdressEntry),GTK_ENTRY_ICON_SECONDARY,domain_connected_icon);
} else {
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(window->AdressEntry),GTK_ENTRY_ICON_SECONDARY,domain_disconnected_icon);
}
} else {
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(window->AdressEntry),GTK_ENTRY_ICON_SECONDARY,domain_disconnected_icon);
}
g_mutex_lock(&main_config.ThreadMutex);
update_thread_buzy = 0;
g_mutex_unlock(&main_config.ThreadMutex);
return G_SOURCE_REMOVE;
}
// gboolean yon_update_thread(GtkWidget *self, GdkEvent *event, connection_window *window){
gboolean yon_update_thread(GtkWidget *, connection_window *window){
g_mutex_lock(&main_config.ThreadMutex);
if (!update_thread_buzy){
update_thread_buzy=1;
g_mutex_unlock(&main_config.ThreadMutex);
g_idle_add((GSourceFunc)on_main_window_domain_status_update,window);
} else {
g_mutex_unlock(&main_config.ThreadMutex);
}
return 1;
}
connection_window *yon_connection_window_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_connection_path);
connection_window *window = malloc(sizeof(connection_window));
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
window->AdressEntry = yon_gtk_builder_get_widget(builder,"AdressEntry");
window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
window->StatusEntry = yon_gtk_builder_get_widget(builder,"StatusEntry");
window->LoginEntry = yon_gtk_builder_get_widget(builder,"LoginEntry");
window->PasswordEntry = yon_gtk_builder_get_widget(builder,"PasswordEntry");
window->KerberosServerEntry = yon_gtk_builder_get_widget(builder,"KerberosServerEntry");
window->DNSEntry = yon_gtk_builder_get_widget(builder,"DNSEntry");
window->ClientCombo = yon_gtk_builder_get_widget(builder,"ClientCombo");
window->AdditionalCombo = yon_gtk_builder_get_widget(builder,"AdditionalCombo");
window->EditButton = yon_gtk_builder_get_widget(builder,"EditButton");
window->SettingsTree = yon_gtk_builder_get_widget(builder,"SettingsTree");
window->SaveButton = yon_gtk_builder_get_widget(builder,"SaveButton");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->CheckButton = yon_gtk_builder_get_widget(builder,"CheckButton");
window->OuEntry = yon_gtk_builder_get_widget(builder,"OuEntry");
window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
yon_gtk_entry_block_symbols(GTK_ENTRY(window->OuEntry),"!\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~.");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->StatusEntry),"clicked",G_CALLBACK(on_status_clicked),window);
g_signal_connect(G_OBJECT(window->CheckButton),"clicked",G_CALLBACK(yon_update_thread),window);
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry));
return window;
}
void on_domain_disconnect(GtkWidget *, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
domain_window *window = yon_dictionary_get_data(dict->first->next,domain_window*);
char *adress = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
char *login = (char*)gtk_entry_get_text(GTK_ENTRY(window->LoginEntry));
char *password = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
if (yon_char_is_empty(adress)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->AdressEntry);
return;
}
yon_debug_output("%s\n",domain_disconnect_command(adress,login,password));
domain_info_window *dialog = yon_information_window_new();
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);
}
domain_window *yon_domain_window_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_domain_path);
domain_window *window = malloc(sizeof(domain_window));
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->SaveButton = yon_gtk_builder_get_widget(builder,"SaveButton");
window->AdressEntry = yon_gtk_builder_get_widget(builder,"AdressEntry");
window->LoginEntry = yon_gtk_builder_get_widget(builder,"LoginEntry");
window->PasswordEntry = yon_gtk_builder_get_widget(builder,"PasswordEntry");
window->DNSEntry = yon_gtk_builder_get_widget(builder,"DNSEntry");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry));
return window;
}
void on_domain_opened(GtkWidget *, main_window *widgets){
if (main_config.domain_connected){
domain_window *window = yon_domain_window_new();
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);
char *login = yon_char_divide_search(password,":",-1);
char *dns = config(DOMAIN_DNS);
if (!yon_char_is_empty(login))
gtk_entry_set_text(GTK_ENTRY(window->LoginEntry),login);
if (!yon_char_is_empty(password))
gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password);
if (!yon_char_is_empty(domain))
gtk_entry_set_text(GTK_ENTRY(window->AdressEntry),domain);
if (!yon_char_is_empty(dns))
gtk_entry_set_text(GTK_ENTRY(window->DNSEntry),dns);
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_domain_disconnect),dict);
g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_check_domain_connected),widgets);
gtk_widget_show(window->Window);
} else {
connection_window *window = yon_connection_window_new();
gtk_label_set_text(GTK_LABEL(window->HeadLabel),DOMAIN_CONNECTING_LABEL);
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),DOMAIN_CONNECTING_LABEL,"com.ublinux.ubl-settings-system","ConnectWindow");
char *domain = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->DomainEntry));
char *dns = config(DOMAIN_DNS);
char *client = yon_config_get_by_key(DOMAIN_CLIENT);
char *kerberos = yon_config_get_by_key(DOMAIN_SERVER);
char *password = yon_config_get_by_key(DOMAIN_ADMANGER);
char *login = yon_char_divide_search(password,":",-1);
if (!yon_char_is_empty(login))
gtk_entry_set_text(GTK_ENTRY(window->LoginEntry),login);
if (!yon_char_is_empty(password))
gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password);
if (!yon_char_is_empty(domain))
gtk_entry_set_text(GTK_ENTRY(window->AdressEntry),domain);
if (!yon_char_is_empty(kerberos))
gtk_entry_set_text(GTK_ENTRY(window->KerberosServerEntry),kerberos);
if (!yon_char_is_empty(dns))
gtk_entry_set_text(GTK_ENTRY(window->DNSEntry),dns);
if (!yon_char_is_empty(client)){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->ClientCombo),client);
}
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_domain_connect),dict);
g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_check_domain_connected),widgets);
// yon_update_thread(NULL,NULL,window);
gtk_widget_show(window->Window);
}
}
// standard functions
void on_check_domain_connected(GtkWidget *, main_window *widgets){
int ansv = system(domain_connect_check);
if (!ansv){
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,domain_connected_icon);
gtk_button_set_label(GTK_BUTTON(widgets->DomainButton),DOMAIN_DISCONNECT_LABEL);
gtk_widget_set_tooltip_markup(widgets->DomainButton,DDISCONNECTION_LABEL);
gtk_entry_set_icon_tooltip_markup(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,DOMAIN_CONNECTED_LABEL);
main_config.domain_connected=1;
} else {
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,domain_disconnected_icon);
gtk_button_set_label(GTK_BUTTON(widgets->DomainButton),DOMAIN_CONNECT_LABEL);
gtk_widget_set_tooltip_markup(widgets->DomainButton,CONNECTION_LABEL);
gtk_entry_set_icon_tooltip_markup(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,DOMAIN_DISCONNECTED_LABEL);
main_config.domain_connected=0;
}
YON_CONFIG_TYPE type;
switch(main_config.load_mode){
case 0: type=YON_CONFIG_GLOBAL;
yon_config_load_config(type,yon_config_parameter_prepare_command(DOMAIN_get_command,"global",NULL,NULL), yon_config_parameter_prepare_command(HOSTNAME_get_command,"global",NULL,NULL),NULL);
break;
case 1: type=YON_CONFIG_LOCAL;
yon_config_load_config(type,yon_config_parameter_prepare_command(DOMAIN_get_command,"system",NULL,NULL), yon_config_parameter_prepare_command(HOSTNAME_get_command,"system",NULL,NULL),NULL);
break;
case 3: type=YON_CONFIG_CUSTOM;
if (!yon_char_is_empty(main_config.custom_load_path))
yon_config_load_config(type,yon_config_parameter_prepare_command(DOMAIN_get_command,main_config.custom_load_path,NULL,NULL), yon_config_parameter_prepare_command(HOSTNAME_get_command,main_config.custom_load_path,NULL,NULL),NULL);
break;
}
char *hostname = yon_config_get_by_key(hostname_parameter);
char *domain = yon_config_get_by_key(DOMAIN);
if (!yon_char_is_empty(hostname))
gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),hostname);
if (!yon_char_is_empty(domain))
gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),domain);
}

@ -0,0 +1,69 @@
#include "ubl-settings-system.h"
void on_locale_toggle(GtkCellRendererToggle *,GtkTreePath* path,GtkTreeViewColumn* ,language_window *window){
GtkTreeIter iter;
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(window->LanguagesTree));
gtk_tree_model_get_iter(model,&iter,path);
gboolean is_active;
gtk_tree_model_get(model,&iter,0,&is_active,-1);
gtk_list_store_set(GTK_LIST_STORE(model),&iter,0,!is_active,-1);
}
void on_locale_accept(GtkWidget *self, language_window *window){
main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets");
yon_interface_update(widgets);
on_subwindow_close(self);
}
language_window *yon_language_window_new(){
language_window *window = malloc(sizeof(language_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_locales_path);
window->Window = yon_gtk_builder_get_widget(builder,"Window");
window->LanguagesTree = yon_gtk_builder_get_widget(builder,"LanguagesTree");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
window->DefaultSwitch = yon_gtk_builder_get_widget(builder,"DefaultSwitch");
window->ToggleCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ToggleCell"));
window->LanguagesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"LanguagesList"));
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->DefaultSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),window->LanguagesTree);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_locale_accept),window);
g_signal_connect(G_OBJECT(window->LanguagesTree),"row-activated",G_CALLBACK(on_locale_toggle),window);
char *config_value = config(language_parameter);
int parsed_size;
config_str config_parsed = yon_char_parse(config_value,&parsed_size,";");
int size;
GtkTreeIter iter;
config_str languages = yon_config_load(languages_command,&size);
for (int i=0;i<size;i++){
yon_char_remove_last_symbol(languages[i],'\n');
gtk_list_store_append(window->LanguagesList,&iter);
gtk_list_store_set(window->LanguagesList,&iter,1,languages[0],2,languages[1],3,languages[2],-1);
char *found = yon_char_parsed_check_exist_begins_with(config_parsed,parsed_size,languages[i]);
if (!yon_char_is_empty(found)){
gtk_list_store_set(window->LanguagesList,&iter,0,1,-1);
}
}
yon_char_parsed_free(config_parsed,parsed_size);
return window;
}
void on_language_open(GtkWidget *, main_window *widgets){
language_window *window = yon_language_window_new();
g_object_set_data(G_OBJECT(window->Window),"widgets",widgets);
if (!config(locale_parameter)){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultSwitch),1);
}
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),TITLE_LABEL,main_icon,"LocalesWindow");
gtk_dialog_run(GTK_DIALOG(window->Window));
}

@ -97,45 +97,28 @@ void yon_config_custom_load(GtkWidget *, main_window *widgets){
yon_interface_update(widgets);
}
void yon_language_update(main_window *widgets){
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->LanguageCombo));
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->LanguageCombo),DEFAULT_LABEL);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
GtkTreeIter iter;
for_iter(GTK_TREE_MODEL(widgets->languagelist),&iter){
char *target, *code;
int active;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&target,1,&code,2,&active,-1);
if (active){
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->LanguageCombo),code,target);
}
}
}
void yon_interface_update(main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->HostnameEntry),G_CALLBACK(on_hostname_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->ConsoleFontCombo),G_CALLBACK(on_console_font_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->LanguageCombo),G_CALLBACK(on_language_changed),widgets);
// g_signal_handlers_block_by_func(G_OBJECT(widgets->LanguageCombo),G_CALLBACK(on_language_changed),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->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);
rtn[0]=yon_char_divide_search(rtn[0],"\n",-1);
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),*rtn);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ConsoleFontCombo),0);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
char *hostname = yon_config_get_by_key(hostname_parameter);
if (!yon_char_is_empty(hostname)){
gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),hostname);
}
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)){
gtk_list_store_set(widgets->languagelist,&iter,2,0,-1);
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)){
gtk_list_store_set(widgets->LanguageList,&iter,2,0,-1);
}
char *id = yon_config_get_by_key(id_parameter);
if (id&&!strcmp(id,"random"))
@ -155,46 +138,36 @@ void yon_interface_update(main_window *widgets){
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){
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->fontlist),&iter);
for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->fontlist),&iter)){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->fontlist),&iter,0,&code,-1);
if (code&&!strcmp(code,cons_font)) gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->ConsoleFontCombo),&iter);
}
}
char *lang = yon_config_get_by_key(language_parameter);
char *avlocale = yon_config_get_by_key(locale_parameter);
int locsize;
if (avlocale){};
config_str locale_parsed = yon_char_parse(avlocale,&locsize,",");
gboolean is_active;
char *locale_string="";
char *loc_name;
if (!yon_char_is_empty(avlocale)){
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)){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&loc_name,1,&code,2,&is_active,-1);
if (yon_char_parsed_check_exist(locale_parsed,locsize,code)>-1){
gtk_list_store_set(widgets->languagelist,&iter,2,1,-1);
char *temp = yon_char_unite(yon_char_is_empty(locale_string)?"":locale_string,yon_char_is_empty(locale_string)?"":"; ",loc_name,NULL);
if (!yon_char_is_empty(locale_string)) free(locale_string);
locale_string = temp;
}
}
if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
}
yon_language_update(widgets);
if (!yon_char_is_empty(lang)) {
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LanguageCombo),lang);
} else {
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
}
// char *lang = yon_config_get_by_key(language_parameter);
// char *avlocale = yon_config_get_by_key(locale_parameter);
// int locsize;
// if (avlocale){};
// config_str locale_parsed = yon_char_parse(avlocale,&locsize,",");
// gboolean is_active;
// char *locale_string="";
// char *loc_name;
// if (!yon_char_is_empty(avlocale)){
// 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)){
// gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&loc_name,1,&code,2,&is_active,-1);
// if (yon_char_parsed_check_exist(locale_parsed,locsize,code)>-1){
// gtk_list_store_set(widgets->languagelist,&iter,2,1,-1);
// char *temp = yon_char_unite(yon_char_is_empty(locale_string)?"":locale_string,yon_char_is_empty(locale_string)?"":"; ",loc_name,NULL);
// if (!yon_char_is_empty(locale_string)) free(locale_string);
// locale_string = temp;
// }
// }
// if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
// }
// yon_language_update(widgets);
// if (!yon_char_is_empty(lang)) {
// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LanguageCombo),lang);
// } else {
// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
// }
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->HostnameEntry),G_CALLBACK(on_hostname_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ConsoleFontCombo),G_CALLBACK(on_console_font_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->LanguageCombo),G_CALLBACK(on_language_changed),widgets);
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->LanguageCombo),G_CALLBACK(on_language_changed),widgets);
}
void yon_config_global_local_save(){
@ -238,14 +211,6 @@ void yon_config_custom_save(){
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_command("system"),NULL);
if (window){};
}
void on_domain_address_save(GtkEntry *self){
char *adress = (char*)gtk_entry_get_text(self);
if (!yon_char_is_empty(adress)){
yon_config_register(DOMAIN,DOMAIN_get_command,adress);
}
}
void yon_gtk_windget_set_sensitive_from_entry_emptiness(GtkEntry *self, GtkWidget *target){
if (yon_char_is_empty(gtk_entry_get_text(self))){
gtk_widget_set_sensitive(target,0);
@ -254,76 +219,6 @@ void yon_gtk_windget_set_sensitive_from_entry_emptiness(GtkEntry *self, GtkWidge
}
}
void on_locale_toggle(GtkCellRendererToggle *,GtkTreePath* path,GtkTreeViewColumn* ,locals_window *window){
GtkTreeIter iter;
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(window->MainTree));
gtk_tree_model_get_iter(model,&iter,path);
gboolean is_active;
gtk_tree_model_get(model,&iter,2,&is_active,-1);
gtk_list_store_set(GTK_LIST_STORE(model),&iter,2,!is_active,-1);
}
void on_locale_accept(GtkWidget *self, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
locals_window *window = yon_dictionary_get_data(dict->first->next,locals_window*);
GtkTreeIter iter;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DefaultCheck))){
yon_config_remove_by_key(locale_parameter);
yon_config_remove_by_key(language_parameter);
gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),DEFAULT_LABEL);
for_iter (GTK_TREE_MODEL(widgets->languagelist),&iter){
gtk_list_store_set(widgets->languagelist,&iter,2,0,-1);
}
} else {
gboolean is_active;
char *final_string = "";
char *final_ids = "";
char *name, *id;
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)){
gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&name,1,&id,2,&is_active,-1);
if (is_active){
final_string = yon_char_unite(strcmp(final_string,"") ? yon_char_append(final_string,"; ") : final_string,name,NULL);
final_ids = yon_char_unite(strcmp(final_ids,"") ? yon_char_append(final_ids,",") : final_ids,id,NULL);
}
}
yon_config_register(locale_parameter,LOCALE_get_command,final_ids);
gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),final_string);
}
yon_language_update(widgets);
on_subwindow_close(self);
}
void on_locale_open(GtkWidget *, main_window *widgets){
locals_window *window = malloc(sizeof(locals_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_locales_path);
window->Window = yon_gtk_builder_get_widget(builder,"localesLayoutsWindow");
window->MainTree = yon_gtk_builder_get_widget(builder,"localesTree");
window->CloseButton = yon_gtk_builder_get_widget(builder,"localesCancelButton");
window->AcceptButton = yon_gtk_builder_get_widget(builder,"localesAcceptButton");
window->DefaultCheck = yon_gtk_builder_get_widget(builder,"DefaultCheck");
window->ToggleCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"toggleCell"));
gtk_tree_view_set_model(GTK_TREE_VIEW(window->MainTree), GTK_TREE_MODEL(widgets->languagelist));
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->CloseButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->DefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->MainTree);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_locale_accept),dict);
g_signal_connect(G_OBJECT(window->MainTree),"row-activated",G_CALLBACK(on_locale_toggle),window);
if (!config(locale_parameter)){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1);
}
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),TITLE_LABEL,main_icon,"LocalesWindow");
gtk_dialog_run(GTK_DIALOG(window->Window));
}
void on_hostname_changed(GtkEntry *self, main_window *){
char *text = (char*)gtk_entry_get_text(self);
@ -384,32 +279,6 @@ void on_id_copy(GtkButton *, main_window *widgets){
yon_ubl_status_box_render(COPY_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
}
void on_console_font_changed(GtkComboBox *self, main_window *widgets){
GtkTreeIter iter;
if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ConsoleFontCombo))==0){
yon_config_remove_by_key(console_font_parameter);
} else {
gtk_combo_box_get_active_iter(self,&iter);
char *code;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->fontlist),&iter,0,&code,-1);
if (code){
if (yon_config_get_by_key(console_font_parameter)){
yon_config_set(console_font_parameter,code);
} else {
yon_config_register(console_font_parameter,CONSOLE_FONT_get_command,code);
}
}
}
}
void on_language_changed(GtkComboBox *, main_window *widgets){
const char *code;
code = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->LanguageCombo));
if (code){
yon_config_register(language_parameter,LANG_get_command,(char*)code);
}
}
void on_terminal_done(VteTerminal *, 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*);
@ -428,299 +297,6 @@ void on_terminal_command_ended(VteTerminal *, gint status, domain_info_window *w
}
}
domain_info_window *yon_information_window_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_domain_view_path);
domain_info_window *window = malloc(sizeof(domain_info_window));
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
window->ExecuteTerminal = yon_gtk_builder_get_widget(builder,"ExecuteTerminal");
window->TerminalScroll = yon_gtk_builder_get_widget(builder,"TerminalScroll");
yon_gtk_widget_set_scroll_window_for_scroll(window->Window,GTK_SCROLLBAR(window->TerminalScroll));
GdkRGBA rgba;
vte_terminal_get_color_background_for_draw(VTE_TERMINAL(window->ExecuteTerminal),&rgba);
vte_terminal_set_color_cursor(VTE_TERMINAL(window->ExecuteTerminal),&rgba);
yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,TITLE_LABEL,"com.ublinux.ubl-settings-system","InfoWindow");
yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"loading",LOADING_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
g_signal_connect(G_OBJECT(window->ExecuteTerminal), "child-exited", G_CALLBACK(on_terminal_command_ended), window);
return window;
}
void on_domain_connect(GtkWidget *, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
connection_window *window = yon_dictionary_get_data(dict->first->next,connection_window*);
char *adress = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
if (yon_char_is_empty(adress)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->AdressEntry);
return;
}
char *login = (char*)gtk_entry_get_text(GTK_ENTRY(window->LoginEntry));
char *password = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
char *kerberos = (char*)gtk_entry_get_text(GTK_ENTRY(window->KerberosServerEntry));
char *dns = (char*)gtk_entry_get_text(GTK_ENTRY(window->DNSEntry));
char *ou = (char*)gtk_entry_get_text(GTK_ENTRY(window->OuEntry));
char *client = NULL;
if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->ClientCombo))){
client = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ClientCombo));
}
char *final = yon_char_unite(!yon_char_is_empty(kerberos)?kerberos_addition_command(kerberos):"",!yon_char_is_empty(kerberos)?" ":"",!yon_char_is_empty(dns)?dns_addition_command(dns):"",!yon_char_is_empty(dns)?" ":"",!yon_char_is_empty(client)?client_addition_command(client):"",!yon_char_is_empty(client)?" ":"",NULL);
char *command = domain_connect_command(adress,login,password,final,ou);
yon_debug_output("%s\n",command);
domain_info_window *dialog = yon_information_window_new();
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,command);
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);
on_config_reload(NULL,widgets);
}
void on_status_clicked(GtkWidget *, connection_window *window){
char *target = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
if (!yon_char_is_empty(target)){
yon_debug_output("%s\n",domain_info(target));
domain_info_window *dialog = yon_information_window_new();
yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_info(target));
gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window));
gtk_widget_show(dialog->Window);
}
}
void on_find_domains_clicked(GtkWidget *, main_window *window){
domain_info_window *dialog = yon_information_window_new();
yon_terminal_integrated_start(dialog->ExecuteTerminal,domains_seek_command);
gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window));
gtk_widget_show(dialog->Window);
// yon_terminal_window_launch(GTK_WINDOW(window->Window),yon_debug_output("%s\n",domains_seek_command),yon_char_get_localised_from_lib(SUCCESS_LABEL),yon_char_get_localised_from_lib(FAIL_LABEL));
}
void on_main_window_domain_status_clicked(GtkWidget *, GtkEntryIconPosition icon_pos,GdkEvent* ,main_window *widgets){
if (icon_pos==GTK_ENTRY_ICON_SECONDARY&&main_config.domain_connected){
char *target = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->DomainEntry));
if (!yon_char_is_empty(target)){
yon_debug_output("%s\n",get_domain_info_command);
domain_info_window *dialog = yon_information_window_new();
gtk_label_set_text(GTK_LABEL(dialog->HeadLabel),INFO_TITLE_LABEL);
yon_terminal_integrated_start(dialog->ExecuteTerminal,get_domain_info_command);
gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(widgets->Window));
gtk_widget_show(dialog->Window);
}
}
}
int update_thread_buzy = 0;
gboolean on_main_window_domain_status_update(connection_window *window){
const char *target = gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
if (!yon_char_is_empty(target)){
int status = system(domain_check_alive(target));
if (!status){
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(window->AdressEntry),GTK_ENTRY_ICON_SECONDARY,domain_connected_icon);
} else {
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(window->AdressEntry),GTK_ENTRY_ICON_SECONDARY,domain_disconnected_icon);
}
} else {
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(window->AdressEntry),GTK_ENTRY_ICON_SECONDARY,domain_disconnected_icon);
}
g_mutex_lock(&main_config.ThreadMutex);
update_thread_buzy = 0;
g_mutex_unlock(&main_config.ThreadMutex);
return G_SOURCE_REMOVE;
}
// gboolean yon_update_thread(GtkWidget *self, GdkEvent *event, connection_window *window){
gboolean yon_update_thread(GtkWidget *, connection_window *window){
g_mutex_lock(&main_config.ThreadMutex);
if (!update_thread_buzy){
update_thread_buzy=1;
g_mutex_unlock(&main_config.ThreadMutex);
g_idle_add((GSourceFunc)on_main_window_domain_status_update,window);
} else {
g_mutex_unlock(&main_config.ThreadMutex);
}
return 1;
}
connection_window *yon_connection_window_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_connection_path);
connection_window *window = malloc(sizeof(connection_window));
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
window->AdressEntry = yon_gtk_builder_get_widget(builder,"AdressEntry");
window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
window->StatusEntry = yon_gtk_builder_get_widget(builder,"StatusEntry");
window->LoginEntry = yon_gtk_builder_get_widget(builder,"LoginEntry");
window->PasswordEntry = yon_gtk_builder_get_widget(builder,"PasswordEntry");
window->KerberosServerEntry = yon_gtk_builder_get_widget(builder,"KerberosServerEntry");
window->DNSEntry = yon_gtk_builder_get_widget(builder,"DNSEntry");
window->ClientCombo = yon_gtk_builder_get_widget(builder,"ClientCombo");
window->AdditionalCombo = yon_gtk_builder_get_widget(builder,"AdditionalCombo");
window->EditButton = yon_gtk_builder_get_widget(builder,"EditButton");
window->SettingsTree = yon_gtk_builder_get_widget(builder,"SettingsTree");
window->SaveButton = yon_gtk_builder_get_widget(builder,"SaveButton");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->CheckButton = yon_gtk_builder_get_widget(builder,"CheckButton");
window->OuEntry = yon_gtk_builder_get_widget(builder,"OuEntry");
window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
yon_gtk_entry_block_symbols(GTK_ENTRY(window->OuEntry),"!\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~.");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->StatusEntry),"clicked",G_CALLBACK(on_status_clicked),window);
g_signal_connect(G_OBJECT(window->CheckButton),"clicked",G_CALLBACK(yon_update_thread),window);
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry));
return window;
}
void on_domain_disconnect(GtkWidget *, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
domain_window *window = yon_dictionary_get_data(dict->first->next,domain_window*);
char *adress = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry));
char *login = (char*)gtk_entry_get_text(GTK_ENTRY(window->LoginEntry));
char *password = (char*)gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
if (yon_char_is_empty(adress)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->AdressEntry);
return;
}
yon_debug_output("%s\n",domain_disconnect_command(adress,login,password));
domain_info_window *dialog = yon_information_window_new();
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);
}
domain_window *yon_domain_window_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_domain_path);
domain_window *window = malloc(sizeof(domain_window));
window->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->SaveButton = yon_gtk_builder_get_widget(builder,"SaveButton");
window->AdressEntry = yon_gtk_builder_get_widget(builder,"AdressEntry");
window->LoginEntry = yon_gtk_builder_get_widget(builder,"LoginEntry");
window->PasswordEntry = yon_gtk_builder_get_widget(builder,"PasswordEntry");
window->DNSEntry = yon_gtk_builder_get_widget(builder,"DNSEntry");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry));
return window;
}
void on_domain_opened(GtkWidget *, main_window *widgets){
if (main_config.domain_connected){
domain_window *window = yon_domain_window_new();
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);
char *login = yon_char_divide_search(password,":",-1);
char *dns = config(DOMAIN_DNS);
if (!yon_char_is_empty(login))
gtk_entry_set_text(GTK_ENTRY(window->LoginEntry),login);
if (!yon_char_is_empty(password))
gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password);
if (!yon_char_is_empty(domain))
gtk_entry_set_text(GTK_ENTRY(window->AdressEntry),domain);
if (!yon_char_is_empty(dns))
gtk_entry_set_text(GTK_ENTRY(window->DNSEntry),dns);
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_domain_disconnect),dict);
g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_check_domain_connected),widgets);
gtk_widget_show(window->Window);
} else {
connection_window *window = yon_connection_window_new();
gtk_label_set_text(GTK_LABEL(window->HeadLabel),DOMAIN_CONNECTING_LABEL);
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),DOMAIN_CONNECTING_LABEL,"com.ublinux.ubl-settings-system","ConnectWindow");
char *domain = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->DomainEntry));
char *dns = config(DOMAIN_DNS);
char *client = yon_config_get_by_key(DOMAIN_CLIENT);
char *kerberos = yon_config_get_by_key(DOMAIN_SERVER);
char *password = yon_config_get_by_key(DOMAIN_ADMANGER);
char *login = yon_char_divide_search(password,":",-1);
if (!yon_char_is_empty(login))
gtk_entry_set_text(GTK_ENTRY(window->LoginEntry),login);
if (!yon_char_is_empty(password))
gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password);
if (!yon_char_is_empty(domain))
gtk_entry_set_text(GTK_ENTRY(window->AdressEntry),domain);
if (!yon_char_is_empty(kerberos))
gtk_entry_set_text(GTK_ENTRY(window->KerberosServerEntry),kerberos);
if (!yon_char_is_empty(dns))
gtk_entry_set_text(GTK_ENTRY(window->DNSEntry),dns);
if (!yon_char_is_empty(client)){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(window->ClientCombo),client);
}
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_domain_connect),dict);
g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_check_domain_connected),widgets);
// yon_update_thread(NULL,NULL,window);
gtk_widget_show(window->Window);
}
}
// standard functions
void on_check_domain_connected(GtkWidget *, main_window *widgets){
int ansv = system(domain_connect_check);
if (!ansv){
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,domain_connected_icon);
gtk_button_set_label(GTK_BUTTON(widgets->DomainButton),DOMAIN_DISCONNECT_LABEL);
gtk_widget_set_tooltip_markup(widgets->DomainButton,DDISCONNECTION_LABEL);
gtk_entry_set_icon_tooltip_markup(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,DOMAIN_CONNECTED_LABEL);
main_config.domain_connected=1;
} else {
gtk_entry_set_icon_from_icon_name(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,domain_disconnected_icon);
gtk_button_set_label(GTK_BUTTON(widgets->DomainButton),DOMAIN_CONNECT_LABEL);
gtk_widget_set_tooltip_markup(widgets->DomainButton,CONNECTION_LABEL);
gtk_entry_set_icon_tooltip_markup(GTK_ENTRY(widgets->DomainEntry),GTK_ENTRY_ICON_SECONDARY,DOMAIN_DISCONNECTED_LABEL);
main_config.domain_connected=0;
}
YON_CONFIG_TYPE type;
switch(main_config.load_mode){
case 0: type=YON_CONFIG_GLOBAL;
yon_config_load_config(type,yon_config_parameter_prepare_command(DOMAIN_get_command,"global",NULL,NULL), yon_config_parameter_prepare_command(HOSTNAME_get_command,"global",NULL,NULL),NULL);
break;
case 1: type=YON_CONFIG_LOCAL;
yon_config_load_config(type,yon_config_parameter_prepare_command(DOMAIN_get_command,"system",NULL,NULL), yon_config_parameter_prepare_command(HOSTNAME_get_command,"system",NULL,NULL),NULL);
break;
case 3: type=YON_CONFIG_CUSTOM;
if (!yon_char_is_empty(main_config.custom_load_path))
yon_config_load_config(type,yon_config_parameter_prepare_command(DOMAIN_get_command,main_config.custom_load_path,NULL,NULL), yon_config_parameter_prepare_command(HOSTNAME_get_command,main_config.custom_load_path,NULL,NULL),NULL);
break;
}
char *hostname = yon_config_get_by_key(hostname_parameter);
char *domain = yon_config_get_by_key(DOMAIN);
if (!yon_char_is_empty(hostname))
gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),hostname);
if (!yon_char_is_empty(domain))
gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),domain);
}
main_window *yon_main_window_complete(main_window *widgets){
/* Widgets getting | Получение виджетов */
widgets = yon_remalloc(widgets,sizeof(main_window));
@ -731,18 +307,17 @@ main_window *yon_main_window_complete(main_window *widgets){
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");
widgets->LanguageCombo = yon_gtk_builder_get_widget(builder,"LanguageCombo");
widgets->LocaleButton = yon_gtk_builder_get_widget(builder,"getLocalesButton");
widgets->LocaleEntry = yon_gtk_builder_get_widget(builder,"localeEntry");
widgets->LocaleTree = yon_gtk_builder_get_widget(builder,"LocaleTree");
widgets->LocaleAddButton = yon_gtk_builder_get_widget(builder,"LocaleAddButton");
widgets->LocaleRemoveButton = yon_gtk_builder_get_widget(builder,"LocaleRemoveButton");
widgets->LocaleDefaultSwitch = yon_gtk_builder_get_widget(builder,"LocaleDefaultSwitch");
widgets->FindButton = yon_gtk_builder_get_widget(builder,"FindButton");
widgets->DomainButton = yon_gtk_builder_get_widget(builder,"DomainButton");
widgets->DomainEntry = yon_gtk_builder_get_widget(builder,"DomainEntry");
widgets->fontlist = GTK_LIST_STORE(gtk_builder_get_object(builder,"fontlist"));
widgets->languagelist = GTK_LIST_STORE(gtk_builder_get_object(builder,"languagelist"));
widgets->LanguageList = GTK_LIST_STORE(gtk_builder_get_object(builder,"LanguageList"));
widgets->DocumentationMenuItem = yon_ubl_menu_item_documentation_new(DOCUMENTATION_LABEL);
widgets->AboutMenuItem = yon_ubl_menu_item_about_new(ABOUT_LABEL);
@ -773,9 +348,11 @@ main_window *yon_main_window_complete(main_window *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->LocaleButton),"clicked",G_CALLBACK(on_locale_open),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->LocaleAddButton),"clicked",G_CALLBACK(on_language_open),widgets);
// g_signal_connect(G_OBJECT(widgets->LocaleRemoveButton),"clicked",G_CALLBACK(on_language_remove),widgets);
g_signal_connect(G_OBJECT(widgets->LocaleDefaultSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->LocaleTree);
g_signal_connect(G_OBJECT(widgets->LocaleDefaultSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->LocaleAddButton);
g_signal_connect(G_OBJECT(widgets->LocaleDefaultSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->LocaleRemoveButton);
g_signal_connect(G_OBJECT(widgets->DomainButton),"clicked",G_CALLBACK(on_domain_opened),widgets);
g_signal_connect(G_OBJECT(widgets->DomainEntry),"icon-press",G_CALLBACK(on_main_window_domain_status_clicked),widgets);
@ -798,17 +375,10 @@ main_window *yon_main_window_complete(main_window *widgets){
int locsize;
locales[i]=yon_char_divide_search(locales[i],"\n",-1);
config_str loc_parsed = yon_char_parse(locales[i],&locsize,";");
gtk_list_store_append(widgets->languagelist,&iter);
gtk_list_store_set(widgets->languagelist,&iter,0,_(loc_parsed[1]),1,loc_parsed[0],2,0,-1);
gtk_list_store_append(widgets->LanguageList,&iter);
gtk_list_store_set(widgets->LanguageList,&iter,0,_(loc_parsed[1]),1,loc_parsed[0],2,0,-1);
}
yon_char_parsed_free(locales,size);
config_str fonts = yon_resource_open_file(get_fonts_command,&size);
for (int i=1;i<size;i++){
fonts[i]=yon_char_divide_search(fonts[i],"\n",-1);
gtk_list_store_append(widgets->fontlist,&iter);
gtk_list_store_set(widgets->fontlist,&iter,0,fonts[i],-1);
}
yon_char_parsed_free(fonts,size);
if (main_config.lock_load_global == 1){
gtk_widget_set_sensitive(widgets->LoadGlobalMenuItem,0);
}
@ -830,7 +400,7 @@ main_window *yon_main_window_complete(main_window *widgets){
}
int main(int argc, char *argv[]){
local=setlocale(LC_ALL, "");
setlocale(LC_ALL, "");
textdomain (LocaleName);
yon_ubl_connect_config((_template_config*)&main_config);
yon_ubl_window_init(TITLE_LABEL,TITLE_INFO_LABEL,LocaleName,CssPath,LocaleName,version_application,WIKI_LINK);

@ -46,21 +46,7 @@
#define config_get_global_only_parameters ""
#define config_get_local_only_parameters ""
#define hostname_parameter "HOSTNAME"
#define id_parameter "MACHINEID"
#define keyboard_layout_parameter "XKBLAYOUT"
#define console_font_parameter "CONSOLE_FONT"
#define num_lock_boot_parameter "NUMLOCK"
#define language_parameter "LANG"
#define locale_parameter "LOCALE"
#define LOCALE_get_command "ubconfig --source global get [locale] LOCALE"
#define HOSTNAME_get_command "ubconfig --source global get [system] HOSTNAME"
#define MACHINEID_get_command "ubconfig --source global get [system] MACHINEID"
#define CONSOLE_FONT_get_command "ubconfig --source global get [locale] CONSOLE_FONT"
// #define NUMLOCK_get_command "ubconfig --source global get [locale] NUMLOCK"
#define LANG_get_command "ubconfig --source global get [locale] LANG"
#define DOMAIN_get_command "ubconfig --source global get [network] DOMAIN"
#define languages_command "while IFS= read SELECT_LOCALE; do SELECT_LOCALE=\"${SELECT_LOCALE% *}\"; [[ $(< /usr/share/i18n/locales/${SELECT_LOCALE%.*}) =~ \"title\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*=\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\" ]] && echo \"${BASH_REMATCH[2]}|${BASH_REMATCH[3]}|${SELECT_LOCALE}|${BASH_REMATCH[1]}\" || echo \"||${SELECT_LOCALE}|\"; done < \"/usr/share/i18n/SUPPORTED\""
#define check_domain_access_command(targeet) yon_char_append("adcli info --domain ",target)
#define get_domain_info_command "ubdomain-client list "
@ -82,17 +68,32 @@
#define terminal_command_start(title,command) yon_char_unite("vte-2.91 --name=vte --cursor-shape=ibeam --cursor-blink=off --keep --no-pty --title=\"",title,"\" --no-shell --icon-title --no-context-menu --background-color='rgb(0,0,0)' --foreground-color='rgb(255,255,255)' --whole-window-transparent --no-geometry-hints -- ", command, NULL)
#define locale_parameter "LOCALE"
#define LOCALE_get_command "ubconfig --source global get [locale] LOCALE"
#define hostname_parameter "HOSTNAME"
#define HOSTNAME_get_command "ubconfig --source global get [system] HOSTNAME"
#define id_parameter "MACHINEID"
#define MACHINEID_get_command "ubconfig --source global get [system] MACHINEID"
#define CONSOLE_FONT_get_command "ubconfig --source global get [locale] CONSOLE_FONT"
#define language_parameter "LANG"
#define LANG_get_command "ubconfig --source global get [locale] LANG"
#define DOMAIN "DOMAIN"
#define DOMAIN_ADMANGER "DOMAIN[admanger]"
#define DOMAIN_SERVER "DOMAIN[server]"
#define DOMAIN_DNS "DOMAIN[dns]"
#define DOMAIN_CLIENT "DOMAIN[client]"
#define DOMAIN_get_command "ubconfig --source global get [network] DOMAIN"
typedef char* string;
typedef char* string;
__attribute__((unused)) static \
string version_application;
char *local;
typedef struct {
template_config_fields
@ -101,6 +102,7 @@ typedef struct {
int domain_connected;
GMutex ThreadMutex;
} config;
extern config main_config;
typedef struct {
template_window_fields
@ -109,18 +111,16 @@ typedef struct {
GtkWidget *IDCombo;
GtkWidget *IDEntry;
GtkWidget *IDCopyButton;
GtkWidget *ConsoleFontCombo;
GtkWidget *LanguageCombo;
GtkWidget *LocaleButton;
GtkWidget *LocaleEntry;
GtkWidget *LocaleDefaultSwitch;
GtkWidget *LocaleTree;
GtkWidget *LocaleAddButton;
GtkWidget *LocaleRemoveButton;
GtkWidget *DomainEntry;
GtkWidget *DomainButton;
GtkWidget *FindButton;
GtkListStore *fontlist;
GtkListStore *languagelist;
GtkListStore *LanguageList;
} main_window;
@ -133,20 +133,22 @@ typedef struct {
GtkWidget *InfoText;
GtkWidget *AlwaysOpenCheck;
GtkWidget *CloseButton;
GtkWidget *CancelButton;
GtkWidget *AcceptButton;
} documentation_confirmation_window;
typedef struct {
GtkWidget *Window;
GtkWidget *MainTree;
GtkWidget *LanguagesTree;
GtkWidget *CloseButton;
GtkWidget *CancelButton;
GtkWidget *AcceptButton;
GtkWidget *DefaultCheck;
GtkWidget *DefaultSwitch;
GtkCellRenderer *ToggleCell;
} locals_window;
GtkListStore *LanguagesList;
} language_window;
typedef struct {
GtkWidget *Window;
@ -224,9 +226,9 @@ void yon_config_global_save();
void yon_config_custom_save();
void on_domain_address_save(GtkEntry *self);
void yon_gtk_windget_set_sensitive_from_entry_emptiness(GtkEntry *self, GtkWidget *target);
void on_locale_toggle(GtkCellRendererToggle *self,GtkTreePath* path,GtkTreeViewColumn* column,locals_window *window);
void on_locale_accept(GtkWidget *self, dictionary *dict);
void on_locale_open(GtkWidget *self, main_window *widgets);
void on_locale_toggle(GtkCellRendererToggle *self,GtkTreePath* path,GtkTreeViewColumn* column,language_window *window);
void on_locale_accept(GtkWidget *self, language_window *window);
void on_language_open(GtkWidget *self, main_window *widgets);
void on_hostname_changed(GtkEntry *self, main_window *widgets);
void on_id_combo_toggled(GtkComboBox *self, main_window *widgets);
void on_id_changed(GtkEntry *self, main_window *widgets);
@ -248,4 +250,5 @@ domain_window *yon_domain_window_new();
void on_domain_opened(GtkWidget *self, main_window *widgets);
void on_check_domain_connected(GtkWidget *self, main_window *widgets);
main_window *yon_main_window_complete(main_window *widgets);
void yon_language_update(main_window *widgets);
void yon_language_update(main_window *widgets);
language_window *yon_language_window_new();

@ -1,152 +1,140 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkListStore" id="LanguagesList">
<columns>
<!-- column-name Chosen -->
<column type="gboolean"/>
<!-- column-name Code -->
<column type="gchararray"/>
<!-- column-name Name -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">process-stop-symbolic</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.cancel-uncolored-symbolic</property>
</object>
<object class="GtkImage" id="image9">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.accept-symbolic</property>
</object>
<object class="GtkDialog" id="localesLayoutsWindow">
<object class="GtkWindow" id="Window">
<property name="width-request">450</property>
<property name="height-request">550</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-system</property>
<property name="type-hint">dialog</property>
<child internal-child="vbox">
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child internal-child="action_area">
<object class="GtkButtonBox">
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="layout-style">end</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkButton" id="localesCancelButton">
<property name="label" translatable="yes">Cancel</property>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="spacing">5</property>
<child>
<object class="GtkSwitch" id="DefaultSwitch">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image8</property>
<style>
<class name="button"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="localesAcceptButton">
<property name="label" translatable="yes">Accept</property>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image9</property>
<style>
<class name="button"/>
</style>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Default</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">2</property>
<property name="margin-end">2</property>
<property name="margin-top">2</property>
<property name="margin-bottom">2</property>
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<child>
<object class="GtkCheckButton" id="DefaultCheck">
<property name="label" translatable="yes">Default</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<property name="can-focus">True</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">5</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkScrolledWindow">
<object class="GtkTreeView" id="LanguagesTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<property name="model">LanguagesList</property>
<property name="headers-visible">False</property>
<property name="activate-on-single-click">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeView" id="localesTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="headers-visible">False</property>
<property name="activate-on-single-click">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection">
<property name="mode">none</property>
</object>
</child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">column</property>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">column</property>
<child>
<object class="GtkCellRendererToggle" id="toggleCell"/>
<attributes>
<attribute name="active">2</attribute>
</attributes>
</child>
</object>
<object class="GtkCellRendererToggle" id="ToggleCell"/>
<attributes>
<attribute name="active">2</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">column</property>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">column</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="position">2</property>
</packing>
</child>
</object>
@ -157,7 +145,7 @@
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="webHeaderNameLabel">
<object class="GtkLabel" id="TitleLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System configuration</property>
@ -166,6 +154,34 @@
</attributes>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image8</property>
<style>
<class name="button"/>
</style>
</object>
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image9</property>
<style>
<class name="button"/>
</style>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2
<!-- Generated with glade 3.40.0
ubl-settings-system -
Copyright (C) UBGroup
@ -25,19 +25,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<!-- interface-license-type gplv2 -->
<!-- interface-name ubl-settings-system -->
<!-- interface-copyright UBGroup -->
<object class="GtkListStore" id="fontlist">
<object class="GtkListStore" id="LanguageList">
<columns>
<!-- column-name LocaleName -->
<column type="gchararray"/>
<!-- column-name FontCode -->
<!-- column-name LanguageCode -->
<column type="gchararray"/>
<!-- column-name gboolean1 -->
<column type="gboolean"/>
</columns>
<data>
<row>
<col id="0" translatable="yes">Default</col>
<col id="1" translatable="yes"> </col>
</row>
</data>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
@ -47,7 +43,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">document-edit-symbolic</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.increase-symbolic</property>
</object>
<object class="GtkImage" id="image3">
<property name="visible">True</property>
@ -59,6 +55,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.zoom-symbolic</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
</object>
<object class="GtkBox" id="BoxMain">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -316,12 +317,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label4">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Console font:</property>
<property name="single-line-mode">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Available languages in the system:</property>
</object>
<packing>
<property name="expand">False</property>
@ -330,106 +329,21 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</packing>
</child>
<child>
<object class="GtkComboBox" id="ConsoleFontCombo">
<object class="GtkSwitch" id="LocaleDefaultSwitch">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="model">fontlist</property>
<property name="active">0</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Console</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="bottom-padding">5</property>
<property name="left-padding">5</property>
<property name="right-padding">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Locale:</property>
<property name="xalign">0</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="localeEntry">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="getLocalesButton">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
</style>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Default</property>
</object>
<packing>
<property name="expand">False</property>
@ -450,33 +364,74 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label6">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Language:</property>
<property name="single-line-mode">True</property>
<property name="xalign">0</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="LocaleTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="LanguageCombo">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkButton" id="LocaleAddButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="LocaleRemoveButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image5</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@ -489,12 +444,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Locale</property>
<property name="label" translatable="yes">Language</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
@ -503,24 +458,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
<widget name="label4"/>
<widget name="label6"/>
<widget name="label3"/>
<widget name="label6"/>
<widget name="label5"/>
<widget name="label2"/>
</widgets>
</object>
<object class="GtkListStore" id="languagelist">
<columns>
<!-- column-name LocaleName -->
<column type="gchararray"/>
<!-- column-name LanguageCode -->
<column type="gchararray"/>
<!-- column-name gboolean1 -->
<column type="gboolean"/>
</columns>
</object>
<object class="GtkMenu" id="menu1">
<property name="visible">True</property>
<property name="can-focus">False</property>

Loading…
Cancel
Save