Test crash fixes

pull/200/head
parent fefb6a8385
commit 7002036521

@ -67,7 +67,9 @@ void yon_save_parameters(GtkWidget *self, main_window *widgets){
if (!yon_window_config_check_init()) return; if (!yon_window_config_check_init()) return;
GTimeZone *tz = g_time_zone_new_identifier(config(ZONE_parameter)); char *parameter = config(ZONE_parameter);
GTimeZone *tz = g_time_zone_new_identifier(parameter);
if (!tz) return;
GDateTime *datetime = g_date_time_new_now(tz); GDateTime *datetime = g_date_time_new_now(tz);
long hours = atol(g_date_time_format(datetime,"%H")); long hours = atol(g_date_time_format(datetime,"%H"));
long minutes = atol(g_date_time_format(datetime,"%M")); long minutes = atol(g_date_time_format(datetime,"%M"));
@ -97,75 +99,22 @@ int check_input(main_window *widgets){
return 1; return 1;
} }
void on_config_save(GtkWidget *,main_window *widgets){ void yon_load_proceed(YON_CONFIG_TYPE type){
if (!check_input(widgets)) return;
main_config.save_config=2;
yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL);
}
void on_config_save_global(GtkWidget *,main_window *widgets){
if (!check_input(widgets)) return;
main_config.save_config=0;
yon_save_proceed(NULL,YON_CONFIG_GLOBAL,config_get_global_command,NULL);
}
void on_config_save_local(GtkWidget *,main_window *widgets){
if (!check_input(widgets)) return;
main_config.save_config=1;
yon_save_proceed(NULL,YON_CONFIG_LOCAL,config_get_local_command,NULL);
}
void on_config_save_custom(GtkWidget *,main_window *widgets){
if (!check_input(widgets)) return;
main_config.save_config=3;
yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_global_command,NULL);
}
void on_config_load_global(GtkWidget *,main_window *widgets){
main_config.load_mode=YON_CONFIG_GLOBAL;
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
yon_load_proceed(YON_CONFIG_GLOBAL);
yon_interface_update(widgets);
}
void on_config_load_local(GtkWidget *,main_window *widgets){
main_config.load_mode=YON_CONFIG_LOCAL;
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
yon_load_proceed(YON_CONFIG_LOCAL);
yon_interface_update(widgets);
}
void on_config_load_custom(GtkWidget *,main_window *widgets){
main_config.load_mode=YON_CONFIG_CUSTOM;
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
yon_load_proceed(YON_CONFIG_CUSTOM);
yon_interface_update(widgets);
}
void yon_load_proceed(YON_CONFIG_TYPE type){
if (type!=YON_CONFIG_CUSTOM){ if (type!=YON_CONFIG_CUSTOM){
yon_config_clean(); yon_config_clean();
if (!yon_char_is_empty(config_get_default_command))
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
} }
if (!yon_char_is_empty(config_get_default_command))
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
if (type==YON_CONFIG_GLOBAL){ if (type==YON_CONFIG_GLOBAL){
yon_config_load_config(type,config_get_global_command,NULL); yon_config_load_config(type,config_get_command("global"),NULL);
} else if (type==YON_CONFIG_LOCAL){ } else if (type==YON_CONFIG_LOCAL){
yon_config_load_config(type,config_get_local_command,NULL); yon_config_load_config(type,config_get_command("system"),NULL);
} else if (type==YON_CONFIG_CUSTOM){ } else if (type==YON_CONFIG_CUSTOM){
char *path=""; char *path="";
textdomain(template_ui_LocaleName); textdomain(template_ui_LocaleName);
GtkWidget *dialog = gtk_file_chooser_dialog_new(template_app_information.app_title,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL); GtkWidget *dialog = gtk_file_chooser_dialog_new(template_app_information.app_title,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
textdomain(LocaleName); textdomain(LocaleName);
gtk_window_set_icon_name(GTK_WINDOW(dialog),icon_name); gtk_window_set_icon_name(GTK_WINDOW(dialog),"com.ublinux.ubl-settings-services");
gtk_window_set_title(GTK_WINDOW(dialog),TITLE_LABEL); gtk_window_set_title(GTK_WINDOW(dialog),TITLE_LABEL);
GtkFileFilter *filter = gtk_file_filter_new(); GtkFileFilter *filter = gtk_file_filter_new();
gtk_file_filter_add_pattern(filter,"*.ini"); gtk_file_filter_add_pattern(filter,"*.ini");
@ -179,7 +128,9 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
path=file; path=file;
} }
yon_config_clean(); yon_config_clean();
char *command = yon_config_get_custom_command(path); if (!yon_char_is_empty(config_get_default_command))
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
char *command = config_get_command(path);
yon_config_load_config(type,command,NULL); yon_config_load_config(type,command,NULL);
gtk_widget_destroy(dialog); gtk_widget_destroy(dialog);
} else { } else {
@ -188,6 +139,49 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
} }
} }
void on_config_local_load(GtkWidget *self,main_window *widgets){
if (self){};
yon_load_proceed(YON_CONFIG_LOCAL);
main_config.load_mode=1;
yon_interface_update(widgets);
}
void on_config_global_load(GtkWidget *self,main_window *widgets){
if (self){}
yon_load_proceed(YON_CONFIG_GLOBAL);
main_config.load_mode=0;
yon_interface_update(widgets);
}
void on_config_custom_load(GtkWidget *self,main_window *widgets){
if (self){}
yon_load_proceed(YON_CONFIG_CUSTOM);
main_config.load_mode=3;
yon_interface_update(widgets);
}
void on_config_global_local_save(){
main_config.save_config=YON_CONFIG_BOTH;
yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_command("global"),NULL);
}
void on_config_local_save(){
main_config.save_config=YON_CONFIG_LOCAL;
yon_save_proceed("system",YON_CONFIG_LOCAL,config_get_command("system"),NULL);
}
void on_config_global_save(){
main_config.save_config=YON_CONFIG_GLOBAL;
yon_save_proceed("global",YON_CONFIG_GLOBAL,config_get_command("global"),NULL);
}
void on_config_custom_save(GtkWidget *self, main_window *widgets){
if (self&&widgets){}
main_config.save_config=YON_CONFIG_CUSTOM;
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_command("system"),NULL);
if (window){};
}
void on_save_done(main_window *widgets, config_str output, int size){ void on_save_done(main_window *widgets, config_str output, int size){
char *final_output = yon_char_parsed_to_string(output,size,""); char *final_output = yon_char_parsed_to_string(output,size,"");
if (final_output){ if (final_output){
@ -321,6 +315,11 @@ void on_region_changed(GtkComboBox *self, main_window *widgets){
config_str parsed_sorted = yon_char_parsed_sort(parsed,size); config_str parsed_sorted = yon_char_parsed_sort(parsed,size);
yon_char_parsed_free(parsed,size); yon_char_parsed_free(parsed,size);
for (int i=0;i<size;i++){ for (int i=0;i<size;i++){
char *tzone = yon_char_unite(active_name,"/",parsed_sorted[i],NULL);
GTimeZone *tz = g_time_zone_new_identifier(tzone);
if (!tz)
continue;
g_time_zone_unref(tz);
char *name_string = NULL; char *name_string = NULL;
if (strstr(parsed_sorted[i],"GMT")){ if (strstr(parsed_sorted[i],"GMT")){
char *temp = yon_char_unite("UTC",parsed_sorted[i]+3," (",parsed_sorted[i],")",NULL); char *temp = yon_char_unite("UTC",parsed_sorted[i]+3," (",parsed_sorted[i],")",NULL);
@ -621,14 +620,14 @@ void yon_main_window_complete(main_window **window){
main_config.widgets=widgets; main_config.widgets=widgets;
// Signal configuration // Signal configuration
{ {
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets); g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_global_local_save),widgets);
g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_save_global),widgets); g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),widgets);
g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_save_local),widgets); g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_local_save),widgets);
g_signal_connect(G_OBJECT(widgets->SaveCustomMenuItem),"activate",G_CALLBACK(on_config_save_custom),widgets); g_signal_connect(G_OBJECT(widgets->SaveCustomMenuItem),"activate",G_CALLBACK(on_config_custom_save),widgets);
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_load_global),widgets); g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_load_local),widgets); g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadCustomMenuItem),"activate",G_CALLBACK(on_config_load_custom),widgets); g_signal_connect(G_OBJECT(widgets->LoadCustomMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets);
g_signal_connect(G_OBJECT(widgets->DHCPCombo),"changed",G_CALLBACK(on_ntp_sync),widgets); g_signal_connect(G_OBJECT(widgets->DHCPCombo),"changed",G_CALLBACK(on_ntp_sync),widgets);
g_signal_connect(G_OBJECT(widgets->SyncButton),"clicked",G_CALLBACK(on_sync_clicked),widgets); g_signal_connect(G_OBJECT(widgets->SyncButton),"clicked",G_CALLBACK(on_sync_clicked),widgets);

@ -29,9 +29,7 @@
#define icon_name "com.ublinux.ubl-settings-datetime" #define icon_name "com.ublinux.ubl-settings-datetime"
#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get clock HWCLOCK_SYNC ZONE", "ubconfig --source ",target," get network NTPSERVERS",NULL) #define config_get_command(target) yon_char_unite("ubconfig --source ",target," get clock HWCLOCK_SYNC ZONE -- get network NTPSERVERS",NULL)
#define config_get_local_command "ubconfig --source system get clock HWCLOCK_SYNC ZONE", "ubconfig --source system get network NTPSERVERS"
#define config_get_global_command "ubconfig --source global get clock HWCLOCK_SYNC ZONE", "ubconfig --source global get network NTPSERVERS"
#define config_get_default_command "" #define config_get_default_command ""
#define config_get_global_only_parameters "" #define config_get_global_only_parameters ""
@ -129,21 +127,14 @@ void yon_save_parameters(GtkWidget *self,main_window *widgets);
int check_input(main_window *widgets); int check_input(main_window *widgets);
void on_config_save(GtkWidget *,main_window *widgets);
void on_config_save_global(GtkWidget *,main_window *widgets);
void on_config_save_local(GtkWidget *,main_window *widgets);
void on_config_save_custom(GtkWidget *,main_window *widgets);
void on_config_load_global();
void on_config_load_local();
void on_config_load_custom();
void yon_load_proceed(YON_CONFIG_TYPE type); void yon_load_proceed(YON_CONFIG_TYPE type);
void on_config_local_load(GtkWidget *self,main_window *widgets);
void on_config_global_load(GtkWidget *self,main_window *widgets);
void on_config_custom_load(GtkWidget *self,main_window *widgets);
void on_config_global_local_save();
void on_config_local_save();
void on_config_global_save();
void on_config_custom_save(GtkWidget *self, main_window *widgets);
void on_date_clicked(GtkWidget *,main_window *widgets); void on_date_clicked(GtkWidget *,main_window *widgets);

@ -142,7 +142,7 @@
<object class="GtkEntry" id="DateEntry"> <object class="GtkEntry" id="DateEntry">
<property name="width-request">-1</property> <property name="width-request">-1</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<property name="tooltip-text" translatable="yes">Date <property name="tooltip-text" translatable="yes">Date
format</property> format</property>
</object> </object>

Loading…
Cancel
Save