Fixed parameters saving

pull/164/head
parent 221e6fb729
commit b654f6d3c1

@ -35,66 +35,66 @@ config_str yon_char_parsed_sort(config_str parsed, int size){
} }
//Config functions //Config functions
void yon_save_parameters(main_window *widgets){ void yon_save_parameters(GtkWidget *self, main_window *widgets){
int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo)); if (self == widgets->DHCPCombo||self == widgets->NTPEntry){
switch(mode){ int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo));
case 0:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default"); switch(mode){
break; case 0:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default");
case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop"); break;
break; case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop");
case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp"); break;
break; case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp");
case 3: break;
char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NTPEntry)); case 3:
if (yon_char_is_empty(value)) { char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NTPEntry));
yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); if (yon_char_is_empty(value)) {
yon_ubl_status_highlight_incorrect(widgets->NTPEntry); yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
return; yon_ubl_status_highlight_incorrect(widgets->NTPEntry);
} return;
yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,value); }
break; yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,value);
} break;
const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo)); }
const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo)); } else if (self == widgets->TimeSyncTypeCombo){
int hwclock_sync = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo));
if (hwclock_sync==1){
yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"localtime");
} else if (hwclock_sync == 2) {
yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"utc");
} else {
yon_config_remove_by_key(HWCLOCK_SYNC_parameter);
}
if (!yon_char_is_empty(region)&&!yon_char_is_empty(zone)){ } else if (self == widgets->RegionCombo||self == widgets->ZoneCombo){
char *zone_parameter = yon_char_unite((char*)region,"/",(char*)zone,NULL); const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo));
yon_config_register(ZONE_parameter,ZONE_parameter_command,zone_parameter); const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo));
free(zone_parameter);
}
int hwclock_sync = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo)); if (!yon_char_is_empty(region)&&!yon_char_is_empty(zone)){
if (hwclock_sync==1){ char *zone_parameter = yon_char_unite((char*)region,"/",(char*)zone,NULL);
yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"localtime"); yon_config_register(ZONE_parameter,ZONE_parameter_command,zone_parameter);
} else if (hwclock_sync == 2) { free(zone_parameter);
yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"utc"); }
} else {
yon_config_remove_by_key(HWCLOCK_SYNC_parameter);
} }
} }
void on_config_save(GtkWidget *, main_window *widgets){ void on_config_save(GtkWidget *){
main_config.save_config=2; main_config.save_config=2;
yon_save_parameters(widgets);
yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL); yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL);
} }
void on_config_save_global(GtkWidget *, main_window *widgets){ void on_config_save_global(GtkWidget *){
main_config.save_config=0; main_config.save_config=0;
yon_save_parameters(widgets);
yon_save_proceed(NULL,YON_CONFIG_GLOBAL,config_get_global_command,NULL); yon_save_proceed(NULL,YON_CONFIG_GLOBAL,config_get_global_command,NULL);
} }
void on_config_save_local(GtkWidget *, main_window *widgets){ void on_config_save_local(GtkWidget *){
main_config.save_config=1; main_config.save_config=1;
yon_save_parameters(widgets);
yon_save_proceed(NULL,YON_CONFIG_LOCAL,config_get_local_command,NULL); yon_save_proceed(NULL,YON_CONFIG_LOCAL,config_get_local_command,NULL);
} }
void on_config_save_custom(GtkWidget *, main_window *widgets){ void on_config_save_custom(GtkWidget *){
main_config.save_config=3; main_config.save_config=3;
yon_save_parameters(widgets);
yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_global_command,NULL); yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_global_command,NULL);
} }
@ -478,6 +478,11 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->DateButton),"clicked",G_CALLBACK(on_date_clicked),widgets); g_signal_connect(G_OBJECT(widgets->DateButton),"clicked",G_CALLBACK(on_date_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->DateCancelButton),"clicked",G_CALLBACK(on_date_cancel),widgets); g_signal_connect(G_OBJECT(widgets->DateCancelButton),"clicked",G_CALLBACK(on_date_cancel),widgets);
g_signal_connect(G_OBJECT(widgets->DateAcceptButton),"clicked",G_CALLBACK(on_date_accept),widgets); g_signal_connect(G_OBJECT(widgets->DateAcceptButton),"clicked",G_CALLBACK(on_date_accept),widgets);
g_signal_connect(G_OBJECT(widgets->DHCPCombo),"changed",G_CALLBACK(yon_save_parameters),widgets);
g_signal_connect(G_OBJECT(widgets->NTPEntry),"changed",G_CALLBACK(yon_save_parameters),widgets);
g_signal_connect(G_OBJECT(widgets->TimeSyncTypeCombo),"changed",G_CALLBACK(yon_save_parameters),widgets);
g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(yon_save_parameters),widgets);
g_signal_connect(G_OBJECT(widgets->ZoneCombo),"changed",G_CALLBACK(yon_save_parameters),widgets);
} }
// Initial data loading // Initial data loading
{ {

@ -116,15 +116,15 @@ void on_sync_clicked(GtkWidget *, main_window *widgets);
void on_ntp_sync(GtkWidget *, main_window *widgets); void on_ntp_sync(GtkWidget *, main_window *widgets);
void yon_save_parameters(main_window *widgets); void yon_save_parameters(GtkWidget *self,main_window *widgets);
void on_config_save(GtkWidget *, main_window *widgets); void on_config_save(GtkWidget *);
void on_config_save_global(GtkWidget *, main_window *widgets); void on_config_save_global(GtkWidget *);
void on_config_save_local(GtkWidget *, main_window *widgets); void on_config_save_local(GtkWidget *);
void on_config_save_custom(GtkWidget *, main_window *widgets); void on_config_save_custom(GtkWidget *);
void on_config_load_global(); void on_config_load_global();

Loading…
Cancel
Save