|
|
|
@ -8,19 +8,24 @@ int yon_char_parsed_compare(const void *a, const void *b){
|
|
|
|
const config_str str_a = (const config_str)a;
|
|
|
|
const config_str str_a = (const config_str)a;
|
|
|
|
const config_str str_b = (const config_str)b;
|
|
|
|
const config_str str_b = (const config_str)b;
|
|
|
|
|
|
|
|
|
|
|
|
// if (strstr(*str_a,"+")&&strstr(*str_b,"-")) return 1;
|
|
|
|
if ((strstr(_(*str_a),"-")||strstr(_(*str_a),"+"))&&(strstr(_(*str_b),"-")||strstr(_(*str_b),"+"))){
|
|
|
|
// else if (strstr(*str_a,"-")&&strstr(*str_b,"+")) return -1;
|
|
|
|
int a = atoi(_(*str_a)+3);
|
|
|
|
|
|
|
|
int b = atoi(_(*str_b)+3);
|
|
|
|
// if (strstr(*str_a,"-")&&strstr(*str_b,"-")) return strcmp(*str_b,*str_a);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ((strstr(*str_a,"-")||strstr(*str_a,"+"))&&(strstr(*str_b,"-")||strstr(*str_b,"+"))){
|
|
|
|
|
|
|
|
int a = atoi(*str_a+3);
|
|
|
|
|
|
|
|
int b = atoi(*str_b+3);
|
|
|
|
|
|
|
|
if (a>b) return 1;
|
|
|
|
if (a>b) return 1;
|
|
|
|
else if (b>a) return -1;
|
|
|
|
else if (b>a) return -1;
|
|
|
|
else return 0;
|
|
|
|
else return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return strcmp(*str_a, *str_b);
|
|
|
|
return strcoll(_(*str_a), _(*str_b));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
config_str yon_char_parsed_localize(config_str parsed, int size){
|
|
|
|
|
|
|
|
config_str new_parsed = yon_char_parsed_copy(parsed,size);
|
|
|
|
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
|
|
|
char *temp = yon_char_new(_(new_parsed[i]));
|
|
|
|
|
|
|
|
free(new_parsed[i]);
|
|
|
|
|
|
|
|
new_parsed[i]=temp;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return new_parsed;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
config_str yon_char_parsed_sort(config_str parsed, int size){
|
|
|
|
config_str yon_char_parsed_sort(config_str parsed, int size){
|
|
|
|
@ -30,18 +35,23 @@ 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){
|
|
|
|
|
|
|
|
if (self == widgets->DHCPCombo||self == widgets->NTPEntry){
|
|
|
|
int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo));
|
|
|
|
int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo));
|
|
|
|
switch(mode){
|
|
|
|
switch(mode){
|
|
|
|
case 0:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default");
|
|
|
|
case 0:yon_config_remove_by_key(NTPSERVERS_parameter);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop");
|
|
|
|
case 1:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"dhcp");
|
|
|
|
case 2:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"default");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
case 3:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"ntp-ru");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 5:yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,"stop");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 4:
|
|
|
|
char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NTPEntry));
|
|
|
|
char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NTPEntry));
|
|
|
|
if (yon_char_is_empty(value)) {
|
|
|
|
if (yon_char_is_empty(value)&&self == widgets->NTPEntry) {
|
|
|
|
yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
yon_ubl_status_highlight_incorrect(widgets->NTPEntry);
|
|
|
|
yon_ubl_status_highlight_incorrect(widgets->NTPEntry);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
@ -49,75 +59,81 @@ void yon_save_parameters(main_window *widgets){
|
|
|
|
yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,value);
|
|
|
|
yon_config_register(NTPSERVERS_parameter,NTPSERVERS_parameter_command,value);
|
|
|
|
break;
|
|
|
|
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);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else if (self == widgets->RegionCombo||self == widgets->ZoneCombo){
|
|
|
|
const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo));
|
|
|
|
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));
|
|
|
|
const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo));
|
|
|
|
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(region)&&!yon_char_is_empty(zone)){
|
|
|
|
if (!yon_char_is_empty(region)&&!yon_char_is_empty(zone)){
|
|
|
|
char *zone_parameter = yon_char_unite((char*)region,"/",(char*)zone,NULL);
|
|
|
|
char *zone_parameter = yon_char_unite((char*)region,"/",(char*)zone,NULL);
|
|
|
|
yon_config_register(ZONE_parameter,ZONE_parameter_command,zone_parameter);
|
|
|
|
yon_config_register(ZONE_parameter,ZONE_parameter_command,zone_parameter);
|
|
|
|
free(zone_parameter);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo))==0){
|
|
|
|
|
|
|
|
yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"localtime");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
yon_config_register(HWCLOCK_SYNC_parameter,HWCLOCK_SYNC_parameter_command,"utc");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
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_global_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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_config_load_global(){
|
|
|
|
void on_config_load_global(GtkWidget *,main_window *widgets){
|
|
|
|
main_config.load_mode=1;
|
|
|
|
main_config.load_mode=1;
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
textdomain(LocaleName);
|
|
|
|
textdomain(LocaleName);
|
|
|
|
yon_load_proceed(YON_CONFIG_GLOBAL);
|
|
|
|
yon_load_proceed(YON_CONFIG_GLOBAL);
|
|
|
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_config_load_local(){
|
|
|
|
void on_config_load_local(GtkWidget *,main_window *widgets){
|
|
|
|
main_config.load_mode=0;
|
|
|
|
main_config.load_mode=0;
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
textdomain(LocaleName);
|
|
|
|
textdomain(LocaleName);
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_config_load_custom(){
|
|
|
|
void on_config_load_custom(GtkWidget *,main_window *widgets){
|
|
|
|
main_config.load_mode=2;
|
|
|
|
main_config.load_mode=2;
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
textdomain(LocaleName);
|
|
|
|
textdomain(LocaleName);
|
|
|
|
yon_load_proceed(YON_CONFIG_CUSTOM);
|
|
|
|
yon_load_proceed(YON_CONFIG_CUSTOM);
|
|
|
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void yon_load_proceed(YON_CONFIG_TYPE type){
|
|
|
|
void yon_load_proceed(YON_CONFIG_TYPE type){
|
|
|
|
|
|
|
|
if (type!=YON_CONFIG_CUSTOM){
|
|
|
|
yon_config_clean();
|
|
|
|
yon_config_clean();
|
|
|
|
|
|
|
|
}
|
|
|
|
if (!yon_char_is_empty(config_get_default_command))
|
|
|
|
if (!yon_char_is_empty(config_get_default_command))
|
|
|
|
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
|
|
|
|
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
|
|
|
|
if (type==YON_CONFIG_GLOBAL){
|
|
|
|
if (type==YON_CONFIG_GLOBAL){
|
|
|
|
@ -142,12 +158,13 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
|
|
|
|
if (!yon_char_is_empty(file)){
|
|
|
|
if (!yon_char_is_empty(file)){
|
|
|
|
path=file;
|
|
|
|
path=file;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
yon_config_clean();
|
|
|
|
|
|
|
|
char *command = yon_config_get_custom_command(path);
|
|
|
|
|
|
|
|
yon_config_load_config(type,command,NULL);
|
|
|
|
gtk_widget_destroy(dialog);
|
|
|
|
gtk_widget_destroy(dialog);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
gtk_widget_destroy(dialog);
|
|
|
|
gtk_widget_destroy(dialog);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
char *command = yon_config_get_custom_command(path);
|
|
|
|
|
|
|
|
yon_config_load_config(type,command,NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -168,57 +185,74 @@ void on_save_done(main_window *widgets, config_str output, int size){
|
|
|
|
yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
case 2:
|
|
|
|
case 3:
|
|
|
|
|
|
|
|
yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
|
|
yon_ubl_status_box_render(SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
textdomain(LocaleName);
|
|
|
|
textdomain(LocaleName);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void yon_interface_update(main_window *widgets){
|
|
|
|
void yon_interface_update(main_window *widgets){
|
|
|
|
char *ntp = config(NTPSERVERS_parameter);
|
|
|
|
g_signal_handlers_block_by_func(G_OBJECT(widgets->NTPEntry),G_CALLBACK(yon_save_parameters),widgets);
|
|
|
|
|
|
|
|
g_signal_handlers_block_by_func(G_OBJECT(widgets->DHCPCombo),G_CALLBACK(yon_save_parameters),widgets);
|
|
|
|
|
|
|
|
g_signal_handlers_block_by_func(G_OBJECT(widgets->TimeSyncTypeCombo),G_CALLBACK(yon_save_parameters),widgets);
|
|
|
|
|
|
|
|
g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionCombo),G_CALLBACK(yon_save_parameters),widgets);
|
|
|
|
|
|
|
|
g_signal_handlers_block_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(yon_save_parameters),widgets);
|
|
|
|
char *zone = config(ZONE_parameter);
|
|
|
|
char *zone = config(ZONE_parameter);
|
|
|
|
|
|
|
|
zone = yon_char_new(zone);
|
|
|
|
if (!yon_char_is_empty(zone)&&strstr(zone,"/")){
|
|
|
|
if (!yon_char_is_empty(zone)&&strstr(zone,"/")){
|
|
|
|
char *region = yon_char_divide_search(zone,"/",-1);
|
|
|
|
char *region = yon_char_divide_search(zone,"/",-1);
|
|
|
|
|
|
|
|
g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionCombo),on_region_changed,widgets);
|
|
|
|
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),region);
|
|
|
|
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),region);
|
|
|
|
while (gtk_events_pending()) gtk_main_iteration();
|
|
|
|
on_region_changed(GTK_COMBO_BOX(widgets->RegionCombo),widgets);
|
|
|
|
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),zone);
|
|
|
|
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),zone);
|
|
|
|
|
|
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionCombo),on_region_changed,widgets);
|
|
|
|
free(zone);
|
|
|
|
free(zone);
|
|
|
|
free(region);
|
|
|
|
free(region);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
char *ntp = config(NTPSERVERS_parameter);
|
|
|
|
if (!yon_char_is_empty(ntp)){
|
|
|
|
if (!yon_char_is_empty(ntp)){
|
|
|
|
if (!strcmp(ntp,"stop")){
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),1);
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,0);
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,0);
|
|
|
|
|
|
|
|
if (!strcmp(ntp,"dhcp")){
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),1);
|
|
|
|
} else if (!strcmp(ntp,"default")){
|
|
|
|
} else if (!strcmp(ntp,"default")){
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),0);
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,0);
|
|
|
|
|
|
|
|
} else if (!strcmp(ntp,"dhcp")){
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),2);
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),2);
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,0);
|
|
|
|
} else if (!strcmp(ntp,"ntp-ru")){
|
|
|
|
} else {
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),3);
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),3);
|
|
|
|
|
|
|
|
} else if (!strcmp(ntp,"stop")||!strcmp(ntp,"no")||!strcmp(ntp,"disable")){
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),5);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),4);
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,1);
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,1);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),ntp);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),ntp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,0);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->DHCPCombo),0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
char *hwclock_sync = config(HWCLOCK_SYNC_parameter);
|
|
|
|
char *hwclock_sync = config(HWCLOCK_SYNC_parameter);
|
|
|
|
if (!yon_char_is_empty(hwclock_sync)){
|
|
|
|
if (!yon_char_is_empty(hwclock_sync)){
|
|
|
|
if (!strcmp(hwclock_sync,"utc")){
|
|
|
|
if (!strcmp(hwclock_sync,"utc")){
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),2);
|
|
|
|
|
|
|
|
} else if (!strcmp(hwclock_sync,"localtime")){
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),1);
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),1);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),0);
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),0);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TimeSyncTypeCombo),0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
GDateTime *datetime = g_date_time_new_now_local();
|
|
|
|
GDateTime *datetime = g_date_time_new_now_local();
|
|
|
|
char *time = g_date_time_format(datetime,"%H %M");
|
|
|
|
char *time = g_date_time_format(datetime,"%H %M");
|
|
|
|
char *date = g_date_time_format(datetime,"%Y.%m.%d");
|
|
|
|
char *date = g_date_time_format(datetime,yon_settings_configuration_get(date_format_parameter));
|
|
|
|
gtk_calendar_select_month(GTK_CALENDAR(widgets->DateCalendar),g_date_time_get_month(datetime),g_date_time_get_year(datetime));
|
|
|
|
gtk_calendar_select_month(GTK_CALENDAR(widgets->DateCalendar),g_date_time_get_month(datetime)-1,g_date_time_get_year(datetime));
|
|
|
|
gtk_calendar_select_day(GTK_CALENDAR(widgets->DateCalendar),g_date_time_get_day_of_month(datetime));
|
|
|
|
gtk_calendar_select_day(GTK_CALENDAR(widgets->DateCalendar),g_date_time_get_day_of_month(datetime));
|
|
|
|
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(time)){
|
|
|
|
if (!yon_char_is_empty(time)){
|
|
|
|
@ -239,6 +273,12 @@ void yon_interface_update(main_window *widgets){
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->DateEntry),"");
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->DateEntry),"");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->NTPEntry),G_CALLBACK(yon_save_parameters),widgets);
|
|
|
|
|
|
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->DHCPCombo),G_CALLBACK(yon_save_parameters),widgets);
|
|
|
|
|
|
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->TimeSyncTypeCombo),G_CALLBACK(yon_save_parameters),widgets);
|
|
|
|
|
|
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionCombo),G_CALLBACK(yon_save_parameters),widgets);
|
|
|
|
|
|
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(yon_save_parameters),widgets);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_date_clicked(GtkWidget *,main_window *widgets){
|
|
|
|
void on_date_clicked(GtkWidget *,main_window *widgets){
|
|
|
|
@ -255,6 +295,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++){
|
|
|
|
|
|
|
|
if (strstr(parsed_sorted[i],"GMT")){
|
|
|
|
|
|
|
|
char *temp = yon_char_unite("UTC",parsed_sorted[i]+3," (",parsed_sorted[i],")",NULL);
|
|
|
|
|
|
|
|
free(parsed_sorted[i]);
|
|
|
|
|
|
|
|
parsed_sorted[i]=temp;
|
|
|
|
|
|
|
|
}
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->ZoneCombo),parsed_sorted[i],_(parsed_sorted[i]));
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->ZoneCombo),parsed_sorted[i],_(parsed_sorted[i]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (size) yon_char_parsed_free(parsed_sorted,size);
|
|
|
|
if (size) yon_char_parsed_free(parsed_sorted,size);
|
|
|
|
@ -268,10 +313,34 @@ struct datetime_arg {
|
|
|
|
const char *date;
|
|
|
|
const char *date;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
void *on_sync_error(void*){
|
|
|
|
gboolean on_sync_error(void*){
|
|
|
|
yon_ubl_status_box_render(SYNC_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
yon_ubl_status_box_render(SYNC_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
g_thread_exit(NULL);
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void yon_date_tooltip_update(main_window *widgets){
|
|
|
|
|
|
|
|
char *format = yon_settings_configuration_get(date_format_parameter);
|
|
|
|
|
|
|
|
char *temp = yon_char_replace(format,"%Y",YEAR_FORMAT_LABEL);
|
|
|
|
|
|
|
|
char *month_temp = yon_char_replace(temp,"%m",MONTH_FORMAT_LABEL);
|
|
|
|
|
|
|
|
char *day_temp = yon_char_replace(month_temp,"%d",DAY_FORMAT_LABEL);
|
|
|
|
|
|
|
|
char *tooltip = yon_char_unite(DATE_DORMAT_TOOLTIP_LABEL,": ",day_temp,NULL);
|
|
|
|
|
|
|
|
gtk_widget_set_tooltip_text(widgets->DateEntry,tooltip);
|
|
|
|
|
|
|
|
free(tooltip);
|
|
|
|
|
|
|
|
free(temp);
|
|
|
|
|
|
|
|
free(month_temp);
|
|
|
|
|
|
|
|
free(day_temp);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_date_format_changed(GtkWidget *, main_window *widgets){
|
|
|
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
|
|
|
|
yon_date_tooltip_update(widgets);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean on_operation_success(void*){
|
|
|
|
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
|
|
|
|
yon_ubl_status_box_render(SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|
|
|
|
textdomain(LocaleName);
|
|
|
|
|
|
|
|
return G_SOURCE_REMOVE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void *yon_sync_thread_start(void *arg){
|
|
|
|
void *yon_sync_thread_start(void *arg){
|
|
|
|
@ -282,8 +351,10 @@ void *yon_sync_thread_start(void *arg){
|
|
|
|
free(command_time);
|
|
|
|
free(command_time);
|
|
|
|
free(command_date);
|
|
|
|
free(command_date);
|
|
|
|
if (system(yon_debug_output("%s\n",command))){
|
|
|
|
if (system(yon_debug_output("%s\n",command))){
|
|
|
|
g_thread_new("status_thread",(GThreadFunc)on_sync_error,NULL);
|
|
|
|
gdk_threads_add_idle((GSourceFunc)on_sync_error,NULL);
|
|
|
|
};
|
|
|
|
} else {
|
|
|
|
|
|
|
|
gdk_threads_add_idle((GSourceFunc)on_operation_success,NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
pthread_exit(NULL);
|
|
|
|
pthread_exit(NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -301,7 +372,23 @@ void on_sync_clicked(GtkWidget *, main_window *widgets){
|
|
|
|
data->time=time;
|
|
|
|
data->time=time;
|
|
|
|
if (!yon_char_is_empty(date)){
|
|
|
|
if (!yon_char_is_empty(date)){
|
|
|
|
int size;
|
|
|
|
int size;
|
|
|
|
config_str parsed = yon_char_parse((char*)date,&size,".");
|
|
|
|
char *format = yon_settings_configuration_get(date_format_parameter);
|
|
|
|
|
|
|
|
config_str parsed = yon_char_parse((char*)date,&size,!strcmp(format,"%d.%m.%Y")?".":!strcmp(format,"%d/%m/%Y")?"/":"-");
|
|
|
|
|
|
|
|
if (!strcmp(format,"%m-%d-%Y")){
|
|
|
|
|
|
|
|
char *year = parsed[2];
|
|
|
|
|
|
|
|
char *month = parsed[0];
|
|
|
|
|
|
|
|
char *day = parsed[1];
|
|
|
|
|
|
|
|
parsed[0]=year;
|
|
|
|
|
|
|
|
parsed[1]=month;
|
|
|
|
|
|
|
|
parsed[2]=day;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
char *year = parsed[2];
|
|
|
|
|
|
|
|
char *month = parsed[1];
|
|
|
|
|
|
|
|
char *day = parsed[0];
|
|
|
|
|
|
|
|
parsed[0]=year;
|
|
|
|
|
|
|
|
parsed[1]=month;
|
|
|
|
|
|
|
|
parsed[2]=day;
|
|
|
|
|
|
|
|
}
|
|
|
|
data->date=yon_char_parsed_to_string(parsed,size,"");
|
|
|
|
data->date=yon_char_parsed_to_string(parsed,size,"");
|
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -318,22 +405,20 @@ void on_sync_clicked(GtkWidget *, main_window *widgets){
|
|
|
|
|
|
|
|
|
|
|
|
void on_ntp_sync(GtkWidget *, main_window *widgets){
|
|
|
|
void on_ntp_sync(GtkWidget *, main_window *widgets){
|
|
|
|
int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo));
|
|
|
|
int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo));
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,0);
|
|
|
|
switch(mode){
|
|
|
|
switch(mode){
|
|
|
|
case 0:
|
|
|
|
case 0:
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,0);
|
|
|
|
|
|
|
|
if (main_config.ntp_default){
|
|
|
|
if (main_config.ntp_default){
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),main_config.ntp_default);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),main_config.ntp_default);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
case 1:
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,0);
|
|
|
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 2:
|
|
|
|
case 2:
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,0);
|
|
|
|
case 3:
|
|
|
|
|
|
|
|
case 5:
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
case 4:
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,1);
|
|
|
|
gtk_widget_set_sensitive(widgets->NTPEntry,1);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
@ -342,7 +427,7 @@ void on_ntp_sync(GtkWidget *, main_window *widgets){
|
|
|
|
|
|
|
|
|
|
|
|
void *yon_sync_hardware_thread_start(void*){
|
|
|
|
void *yon_sync_hardware_thread_start(void*){
|
|
|
|
if (system(hardware_datetime_sync_command)){
|
|
|
|
if (system(hardware_datetime_sync_command)){
|
|
|
|
g_thread_new("status_thread",(GThreadFunc)on_sync_error,NULL);
|
|
|
|
gdk_threads_add_idle((GSourceFunc)on_sync_error,NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
pthread_exit(NULL);
|
|
|
|
pthread_exit(NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -359,10 +444,8 @@ void on_sync_hardware_clicked(){
|
|
|
|
void on_date_accept(GtkWidget *,main_window *widgets){
|
|
|
|
void on_date_accept(GtkWidget *,main_window *widgets){
|
|
|
|
guint year=0, month=0, day=0;
|
|
|
|
guint year=0, month=0, day=0;
|
|
|
|
gtk_calendar_get_date(GTK_CALENDAR(widgets->DateCalendar),&year,&month,&day);
|
|
|
|
gtk_calendar_get_date(GTK_CALENDAR(widgets->DateCalendar),&year,&month,&day);
|
|
|
|
char *ye_str = yon_char_from_int(year);
|
|
|
|
GDateTime *datetime = g_date_time_new_local(year,++month,day,0,0,0);
|
|
|
|
char *mo_str = yon_char_from_int(++month);
|
|
|
|
char *date = g_date_time_format(datetime,yon_settings_configuration_get(date_format_parameter));
|
|
|
|
char *da_str = yon_char_from_int(day);
|
|
|
|
|
|
|
|
char *date = yon_char_unite(ye_str,".",month<10?"0":"",mo_str,".",day<10?"0":"",da_str,NULL);
|
|
|
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->DateEntry),date);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->DateEntry),date);
|
|
|
|
gtk_popover_popdown(GTK_POPOVER(widgets->DatePopover));
|
|
|
|
gtk_popover_popdown(GTK_POPOVER(widgets->DatePopover));
|
|
|
|
free(date);
|
|
|
|
free(date);
|
|
|
|
@ -391,7 +474,7 @@ void config_init(){
|
|
|
|
main_config.load_mode=1;
|
|
|
|
main_config.load_mode=1;
|
|
|
|
main_config.ntp_default = NULL;
|
|
|
|
main_config.ntp_default = NULL;
|
|
|
|
|
|
|
|
|
|
|
|
char *ntp_command = yon_config_parameter_prepare_command(NTPSERVERS_parameter_command,"default",NULL,NULL);
|
|
|
|
char *ntp_command = yon_config_parameter_prepare_command(NTPSERVERS_parameter_raw_command,"default",NULL,NULL);
|
|
|
|
int size;
|
|
|
|
int size;
|
|
|
|
config_str parsed = yon_config_load(ntp_command,&size);
|
|
|
|
config_str parsed = yon_config_load(ntp_command,&size);
|
|
|
|
if (size>0){
|
|
|
|
if (size>0){
|
|
|
|
@ -408,8 +491,10 @@ void config_init(){
|
|
|
|
* [RU]
|
|
|
|
* [RU]
|
|
|
|
* Функция настройки основного окна приложения. [widgets] - структура со стандартным интерфейсом.
|
|
|
|
* Функция настройки основного окна приложения. [widgets] - структура со стандартным интерфейсом.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
void yon_main_window_complete(main_window *widgets){
|
|
|
|
void yon_main_window_complete(main_window **window){
|
|
|
|
widgets = yon_remalloc(widgets,sizeof(main_window));
|
|
|
|
|
|
|
|
|
|
|
|
main_window *widgets = yon_remalloc(*window,sizeof(main_window));
|
|
|
|
|
|
|
|
(*window) = widgets;
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
|
|
|
|
gtk_box_pack_start(GTK_BOX(widgets->InterfaceBox),yon_gtk_builder_get_widget(builder,"BoxMain"),1,1,0);
|
|
|
|
gtk_box_pack_start(GTK_BOX(widgets->InterfaceBox),yon_gtk_builder_get_widget(builder,"BoxMain"),1,1,0);
|
|
|
|
|
|
|
|
|
|
|
|
@ -452,17 +537,26 @@ 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
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->DHCPCombo),yon_get_default_label_with_parameter("network",NTPSERVERS_parameter));
|
|
|
|
|
|
|
|
gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->TimeSyncTypeCombo),yon_get_default_label_with_parameter("clock",HWCLOCK_SYNC_parameter));
|
|
|
|
|
|
|
|
|
|
|
|
int size;
|
|
|
|
int size;
|
|
|
|
config_str parsed = yon_dir_get_contents(zone_path,&size);
|
|
|
|
config_str parsed = yon_dir_get_contents(zone_path,&size);
|
|
|
|
|
|
|
|
config_str sorted = yon_char_parsed_sort(parsed,size);
|
|
|
|
|
|
|
|
config_str localized = yon_char_parsed_localize(sorted,size);
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
if (!strstr(parsed[i],".")&&strcmp(parsed[i],"posix")&&strcmp(parsed[i],"right")){
|
|
|
|
if (!strstr(sorted[i],".")&&strcmp(sorted[i],"posix")&&strcmp(sorted[i],"right")){
|
|
|
|
char *path = yon_char_append(zone_path,parsed[i]);
|
|
|
|
char *path = yon_char_append(zone_path,sorted[i]);
|
|
|
|
if (yon_file_is_directory(path)){
|
|
|
|
if (yon_file_is_directory(path)){
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->RegionCombo),parsed[i],_(parsed[i]));
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->RegionCombo),sorted[i],(localized[i]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
free(path);
|
|
|
|
free(path);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -471,12 +565,42 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->RegionCombo),0);
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->RegionCombo),0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gtk_window_resize(GTK_WINDOW(widgets->Window),100,150);
|
|
|
|
|
|
|
|
while(gtk_events_pending()) gtk_main_iteration();
|
|
|
|
|
|
|
|
yon_window_config_setup(GTK_WINDOW(widgets->Window));
|
|
|
|
|
|
|
|
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
|
|
|
|
|
|
|
|
yon_window_config_load(path);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
yon_ubl_settings_window_init(GTK_MENU(gtk_widget_get_parent(widgets->DocumentationMenuItem)));
|
|
|
|
|
|
|
|
GList *menu_items = gtk_container_get_children(GTK_CONTAINER(gtk_widget_get_parent(widgets->DocumentationMenuItem)));
|
|
|
|
|
|
|
|
for (guint i=0;i<g_list_length(menu_items);i++){
|
|
|
|
|
|
|
|
if (i==0){
|
|
|
|
|
|
|
|
gtk_style_context_remove_class(gtk_widget_get_style_context((GtkWidget*)g_list_nth_data(menu_items,i)),"menuitembottom");
|
|
|
|
|
|
|
|
gtk_style_context_remove_class(gtk_widget_get_style_context((GtkWidget*)g_list_nth_data(menu_items,i)),"menuitemmiddle");
|
|
|
|
|
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context((GtkWidget*)g_list_nth_data(menu_items,i)),"menuitemtop");
|
|
|
|
|
|
|
|
} else if (i==g_list_length(menu_items)-1){
|
|
|
|
|
|
|
|
gtk_style_context_remove_class(gtk_widget_get_style_context((GtkWidget*)g_list_nth_data(menu_items,i)),"menuitemmiddle");
|
|
|
|
|
|
|
|
gtk_style_context_remove_class(gtk_widget_get_style_context((GtkWidget*)g_list_nth_data(menu_items,i)),"menuitemtop");
|
|
|
|
|
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context((GtkWidget*)g_list_nth_data(menu_items,i)),"menuitembottom");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
gtk_style_context_remove_class(gtk_widget_get_style_context((GtkWidget*)g_list_nth_data(menu_items,i)),"menuitembottom");
|
|
|
|
|
|
|
|
gtk_style_context_remove_class(gtk_widget_get_style_context((GtkWidget*)g_list_nth_data(menu_items,i)),"menuitemtop");
|
|
|
|
|
|
|
|
gtk_style_context_add_class(gtk_widget_get_style_context((GtkWidget*)g_list_nth_data(menu_items,i)),"menuitemmiddle");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
g_list_free(menu_items);
|
|
|
|
|
|
|
|
yon_configuration_window_add_combo_box_parameter(CONFIGURATION_PARAMETER_BOOL,date_format_parameter,DATE_FORMAT_SETTINGS_LABEL,G_CALLBACK(on_date_format_changed),widgets,"%d.%m.%Y",DMY_FORMAT_LABEL,"%d-%m-%Y",DMY_MINUS_FORMAT_LABEL,"%d/%m/%Y",DMY_SLASH_FORMAT_LABEL,"%m-%d-%Y",MDY_FORMAT_LABEL,NULL);
|
|
|
|
|
|
|
|
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
yon_save_window_set_postsave_function(on_save_done,widgets);
|
|
|
|
yon_save_window_set_postsave_function(on_save_done,widgets);
|
|
|
|
|
|
|
|
yon_date_tooltip_update(widgets);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int main(int argc, char *argv[]){
|
|
|
|
int main(int argc, char *argv[]){
|
|
|
|
|
|
|
|
setlocale(LC_COLLATE, "ru_RU.UTF-8");
|
|
|
|
local=setlocale(LC_ALL, "");
|
|
|
|
local=setlocale(LC_ALL, "");
|
|
|
|
textdomain (LocaleName);
|
|
|
|
textdomain (LocaleName);
|
|
|
|
config_init();
|
|
|
|
config_init();
|
|
|
|
@ -488,9 +612,7 @@ int main(int argc, char *argv[]){
|
|
|
|
yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL);
|
|
|
|
yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL);
|
|
|
|
gtk_init(&argc,&argv);
|
|
|
|
gtk_init(&argc,&argv);
|
|
|
|
template_main_window *widgets = yon_ubl_window_setup();
|
|
|
|
template_main_window *widgets = yon_ubl_window_setup();
|
|
|
|
yon_main_window_complete((main_window*)widgets);
|
|
|
|
yon_main_window_complete((main_window**)&widgets);
|
|
|
|
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
|
|
|
|
|
|
|
|
yon_window_config_load(path);
|
|
|
|
|
|
|
|
if (getuid()!=0){
|
|
|
|
if (getuid()!=0){
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|