Merge pull request 'master' (#148) from YanTheKaller/ubl-settings-datetime:master into master

Reviewed-on: #148
pull/189/head v2.12
Dmitry Razumov 2 years ago
commit a80423f16a

@ -2,7 +2,6 @@
<gresources> <gresources>
<gresource prefix="/com/ublinux/ui"> <gresource prefix="/com/ublinux/ui">
<file>ubl-settings-datetime.glade</file> <file>ubl-settings-datetime.glade</file>
<file>ubl-settings-datetime-error.glade</file>
</gresource> </gresource>
<gresource prefix="/com/ublinux/css"> <gresource prefix="/com/ublinux/css">
<file>ubl-settings-datetime.css</file> <file>ubl-settings-datetime.css</file>

@ -32,7 +32,6 @@ add_custom_target(GLADE ubl-settings-datetime.glade)
set(DEPENDFILES set(DEPENDFILES
../ubl-settings-datetime.glade ../ubl-settings-datetime.glade
../ubl-settings-datetime-error.glade
../gresource.xml ../gresource.xml
../ubl-settings-datetime-banner.png ../ubl-settings-datetime-banner.png
../ubl-settings-datetime.css ../ubl-settings-datetime.css

@ -3,6 +3,33 @@
config main_config; config main_config;
// functions // functions
int yon_char_parsed_compare(const void *a, const void *b){
const config_str str_a = (const config_str)a;
const config_str str_b = (const config_str)b;
// if (strstr(*str_a,"+")&&strstr(*str_b,"-")) return 1;
// else if (strstr(*str_a,"-")&&strstr(*str_b,"+")) return -1;
// 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;
else if (b>a) return -1;
else return 0;
}
return strcmp(*str_a, *str_b);
}
config_str yon_char_parsed_sort(config_str parsed, int size){
config_str new_parsed = yon_char_parsed_copy(parsed,size);
qsort(new_parsed,size,sizeof(char*),yon_char_parsed_compare);
return new_parsed;
}
//Config functions
void yon_save_parameters(main_window *widgets){ void yon_save_parameters(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));
switch(mode){ switch(mode){
@ -188,10 +215,12 @@ void on_region_changed(GtkComboBox *self, main_window *widgets){
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->ZoneCombo)); gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->ZoneCombo));
if (yon_file_is_directory(active)){ if (yon_file_is_directory(active)){
config_str parsed = yon_file_ls(active,&size); config_str parsed = yon_file_ls(active,&size);
config_str parsed_sorted = yon_char_parsed_sort(parsed,size);
yon_char_parsed_free(parsed,size);
for (int i=0;i<size;i++){ for (int i=0;i<size;i++){
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->ZoneCombo),parsed[i],_(parsed[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,size); if (size) yon_char_parsed_free(parsed_sorted,size);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ZoneCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ZoneCombo),0);
} }
free(active); free(active);
@ -255,15 +284,21 @@ void on_ntp_sync(GtkWidget *, main_window *widgets){
switch(mode){ switch(mode){
case 0: case 0:
gtk_widget_set_sensitive(widgets->NTPEntry,0); gtk_widget_set_sensitive(widgets->NTPEntry,0);
if (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_widget_set_sensitive(widgets->NTPEntry,0);
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
break; break;
case 2: case 2:
gtk_widget_set_sensitive(widgets->NTPEntry,0); gtk_widget_set_sensitive(widgets->NTPEntry,0);
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
break; break;
case 3: case 3:
gtk_widget_set_sensitive(widgets->NTPEntry,1); gtk_widget_set_sensitive(widgets->NTPEntry,1);
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
break; break;
} }
} }
@ -317,6 +352,17 @@ void config_init(){
main_config.lock_save_global=0; main_config.lock_save_global=0;
main_config.lock_save_local=0; main_config.lock_save_local=0;
main_config.load_mode=1; main_config.load_mode=1;
main_config.ntp_default = NULL;
char *ntp_command = yon_config_parameter_prepare_command(NTPSERVERS_parameter_command,"default",NULL,NULL);
int size;
config_str parsed = yon_config_load(ntp_command,&size);
if (size>0){
if (strcmp(parsed[0],"(null)\n")){
yon_char_remove_last_symbol(parsed[0],'\n');
main_config.ntp_default = parsed[0];
}
}
} }
/**yon_main_window_complete(main_window *widgets) /**yon_main_window_complete(main_window *widgets)

@ -59,6 +59,7 @@ char *local;
typedef struct { typedef struct {
template_config_fields template_config_fields
char *ntp_default;
} config; } config;
typedef struct { typedef struct {
@ -137,3 +138,7 @@ void on_date_clicked(GtkWidget *,main_window *widgets);
void on_date_accept(GtkWidget *,main_window *widgets); void on_date_accept(GtkWidget *,main_window *widgets);
void on_date_cancel(GtkWidget *, main_window *widgets); void on_date_cancel(GtkWidget *, main_window *widgets);
config_str yon_char_parsed_sort(config_str parsed, int size);
int yon_char_parsed_compare(const void *a, const void *b);

@ -4,7 +4,7 @@ Name=Date and Time
Name[ru]=Дата и Время Name[ru]=Дата и Время
GenericName=Date and Time GenericName=Date and Time
GenericName[ru]=Дата и Время GenericName[ru]=Дата и Время
Comment=Setting the system date and time Comment=Date and time configuration
Comment[ru]=Настройка даты и времени системы Comment[ru]=Настройка даты и времени системы
Type=Application Type=Application
Exec=pkexec ubl-settings-datetime Exec=pkexec ubl-settings-datetime

@ -633,12 +633,6 @@ msgstr ""
msgid "Funafuti" msgid "Funafuti"
msgstr "" msgstr ""
msgid "GMT-1"
msgstr ""
msgid "GMT-3"
msgstr ""
msgid "Gaborone" msgid "Gaborone"
msgstr "" msgstr ""

@ -638,12 +638,6 @@ msgstr "Фритаун"
msgid "Funafuti" msgid "Funafuti"
msgstr "Фунафути" msgstr "Фунафути"
msgid "GMT-1"
msgstr "ГМТ-1"
msgid "GMT-3"
msgstr "ГМТ-3"
msgid "Gaborone" msgid "Gaborone"
msgstr "Габороне" msgstr "Габороне"

Loading…
Cancel
Save