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>
<gresource prefix="/com/ublinux/ui">
<file>ubl-settings-datetime.glade</file>
<file>ubl-settings-datetime-error.glade</file>
</gresource>
<gresource prefix="/com/ublinux/css">
<file>ubl-settings-datetime.css</file>

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

@ -2,7 +2,34 @@
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){
int mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->DHCPCombo));
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));
if (yon_file_is_directory(active)){
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++){
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);
}
free(active);
@ -255,15 +284,21 @@ void on_ntp_sync(GtkWidget *, main_window *widgets){
switch(mode){
case 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;
case 1:
gtk_widget_set_sensitive(widgets->NTPEntry,0);
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
break;
case 2:
gtk_widget_set_sensitive(widgets->NTPEntry,0);
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
break;
case 3:
gtk_widget_set_sensitive(widgets->NTPEntry,1);
gtk_entry_set_text(GTK_ENTRY(widgets->NTPEntry),"");
break;
}
}
@ -317,6 +352,17 @@ void config_init(){
main_config.lock_save_global=0;
main_config.lock_save_local=0;
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)
@ -352,23 +398,23 @@ void yon_main_window_complete(main_window *widgets){
}
// Signal configuration
{
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets);
g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_save_global),widgets);
g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_save_local),widgets);
g_signal_connect(G_OBJECT(widgets->SaveCustomMenuItem),"activate",G_CALLBACK(on_config_save_custom),widgets);
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_load_global),widgets);
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_load_local),widgets);
g_signal_connect(G_OBJECT(widgets->LoadCustomMenuItem),"activate",G_CALLBACK(on_config_load_custom),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->SyncHardwareButton),"clicked",G_CALLBACK(on_sync_hardware_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(on_region_changed),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->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets);
g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_save_global),widgets);
g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(on_config_save_local),widgets);
g_signal_connect(G_OBJECT(widgets->SaveCustomMenuItem),"activate",G_CALLBACK(on_config_save_custom),widgets);
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_load_global),widgets);
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_load_local),widgets);
g_signal_connect(G_OBJECT(widgets->LoadCustomMenuItem),"activate",G_CALLBACK(on_config_load_custom),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->SyncHardwareButton),"clicked",G_CALLBACK(on_sync_hardware_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(on_region_changed),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);
}
// Initial data loading
{

@ -59,6 +59,7 @@ char *local;
typedef struct {
template_config_fields
char *ntp_default;
} config;
typedef struct {
@ -136,4 +137,8 @@ void on_date_clicked(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]=Дата и Время
GenericName=Date and Time
GenericName[ru]=Дата и Время
Comment=Setting the system date and time
Comment=Date and time configuration
Comment[ru]=Настройка даты и времени системы
Type=Application
Exec=pkexec ubl-settings-datetime

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

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

Loading…
Cancel
Save