Loading changes

pull/60/head
parent ddf0f9a3d2
commit c7a4cf0f0e

@ -72,81 +72,45 @@ int yon_load_proceed(YON_CONFIG_TYPE type){
}
void yon_config_local_load(GtkWidget *self, main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_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);
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);
yon_load_proceed(YON_CONFIG_LOCAL);
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);
}
char *id = yon_config_get_by_key(id_parameter);
if (id&&!strcmp(id,"random"))
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),1);
else if (id&&!strcmp(id,"hardware"))
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),2);
else if (id){
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),id);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),3);
} else {
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),0);
gtk_widget_set_sensitive(widgets->IDEntry,0);
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
main_config.load_mode=1;
yon_interface_update(widgets);
}
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 (lang){
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 (code&&!strcmp(code,lang)) gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->LanguageCombo),&iter);
if (avlocale)
for (int i=0;i<locsize;i++)
if (!strcmp(code,locale_parsed[i])) {
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);
}
}
if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
void yon_config_global_load(GtkWidget *self, main_window *widgets){
yon_load_proceed(YON_CONFIG_GLOBAL);
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
main_config.load_mode=0;
yon_interface_update(widgets);
}
void yon_config_custom_load(GtkWidget *self, main_window *widgets){
if (!yon_load_proceed(YON_CONFIG_CUSTOM))
return;
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
main_config.load_mode=1;
yon_interface_update(widgets);
}
void yon_config_global_load(GtkWidget *self, main_window *widgets){
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);
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);
@ -157,7 +121,6 @@ void yon_config_global_load(GtkWidget *self, main_window *widgets){
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);
yon_load_proceed(YON_CONFIG_GLOBAL);
char *hostname = yon_config_get_by_key(hostname_parameter);
if (!yon_char_is_empty(hostname)){
gtk_entry_set_text(GTK_ENTRY(widgets->HostnameEntry),hostname);
@ -211,12 +174,9 @@ void yon_config_global_load(GtkWidget *self, main_window *widgets){
if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
}
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
main_config.load_mode=0;
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);
}
void yon_config_global_local_save(){
@ -231,81 +191,6 @@ void yon_config_global_local_save(){
}
void yon_config_custom_load(GtkWidget *self, main_window *widgets){
if (!yon_load_proceed(YON_CONFIG_CUSTOM))
return;
g_signal_handlers_block_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_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);
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);
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);
}
char *id = yon_config_get_by_key(id_parameter);
if (id&&!strcmp(id,"random"))
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),1);
else if (id&&!strcmp(id,"hardware"))
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),2);
else if (id){
gtk_entry_set_text(GTK_ENTRY(widgets->IDEntry),id);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),3);
} else {
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->IDCombo),0);
gtk_widget_set_sensitive(widgets->IDEntry,0);
}
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 (lang){
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 (code&&!strcmp(code,lang)) gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->LanguageCombo),&iter);
if (avlocale)
for (int i=0;i<locsize;i++)
if (!strcmp(code,locale_parsed[i])) {
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);
}
}
if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
}
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
if (getuid()==0){
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
main_config.load_mode=1;
}
void yon_config_local_save(){
main_config.save_config=1;
int changed = yon_config_get_status(id_parameter)==1;
@ -546,6 +431,7 @@ void on_domain_connect(GtkWidget *self, dictionary *dict){
gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window));
gtk_widget_show(dialog->Window);
gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress);
}
void on_status_clicked(GtkWidget *self, connection_window *window){
@ -596,16 +482,22 @@ gboolean on_main_window_domain_status_update(connection_window *window){
} 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;
return GDK_EVENT_PROPAGATE;
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 *self, connection_window *window){
g_mutex_lock(&main_config.ThreadMutex);
if (!update_thread_buzy){
update_thread_buzy=1;
g_mutex_unlock(&main_config.ThreadMutex);
pthread_t thread_id;
pthread_create(&thread_id, NULL, (void *)on_main_window_domain_status_update,window);
g_idle_add((GSourceFunc)on_main_window_domain_status_update,window);
} else {
g_mutex_unlock(&main_config.ThreadMutex);
}
return 1;
}

@ -100,6 +100,7 @@ typedef struct {
GtkListStore *localeslist;
int save_config;
int domain_connected;
GMutex ThreadMutex;
} config;
typedef struct {
@ -197,4 +198,7 @@ typedef struct {
main_window *setup_window();
void on_id_changed(GtkEntry *self, main_window *widgets);
void on_check_domain_connected(GtkWidget *self, main_window *widgets);
void on_check_domain_connected(GtkWidget *self, main_window *widgets);
void yon_interface_update(main_window *widgets);
void on_hostname_changed(GtkEntry *self, main_window *widgets);

@ -515,7 +515,7 @@
<object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System configuration</property>
<property name="label" translatable="yes">Connect to domain</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>

@ -215,7 +215,7 @@
<object class="GtkLabel" id="HeadLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">System configuration</property>
<property name="label" translatable="yes">Disconnect from domain</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>

Loading…
Cancel
Save