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
void yon_save_parameters(main_window *widgets){
int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo));
switch(mode){
case 0:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default");
break;
case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop");
break;
case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp");
break;
case 3:
char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NTPEntry));
if (yon_char_is_empty(value)) {
yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->NTPEntry);
return;
}
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));
void yon_save_parameters(GtkWidget *self, main_window *widgets){
if (self == widgets->DHCPCombo||self == widgets->NTPEntry){
int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo));
switch(mode){
case 0:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default");
break;
case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop");
break;
case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp");
break;
case 3:
char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NTPEntry));
if (yon_char_is_empty(value)) {
yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->NTPEntry);
return;
}
yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,value);
break;
}
} 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)){
char *zone_parameter = yon_char_unite((char*)region,"/",(char*)zone,NULL);
yon_config_register(ZONE_parameter,ZONE_parameter_command,zone_parameter);
free(zone_parameter);
}
} else if (self == widgets->RegionCombo||self == widgets->ZoneCombo){
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));
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)){
char *zone_parameter = yon_char_unite((char*)region,"/",(char*)zone,NULL);
yon_config_register(ZONE_parameter,ZONE_parameter_command,zone_parameter);
free(zone_parameter);
}
}
}
void on_config_save(GtkWidget *, main_window *widgets){
void on_config_save(GtkWidget *){
main_config.save_config=2;
yon_save_parameters(widgets);
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;
yon_save_parameters(widgets);
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;
yon_save_parameters(widgets);
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;
yon_save_parameters(widgets);
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->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->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
{

@ -116,15 +116,15 @@ void on_sync_clicked(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();

Loading…
Cancel
Save