Merge pull request 'master' (#227) from YanTheKaller/ubinstall-gtk:master into master

Reviewed-on: #227
pull/239/head
Dmitry Razumov 3 months ago
commit 616e5f02a6

@ -693,14 +693,7 @@ void yon_advanced_part_parameter_changed(GtkWidget *self, advanced_partition *pa
section->encryption = yon_char_new(gtk_combo_box_get_active_id(GTK_COMBO_BOX(part->EncryptionCombo))); section->encryption = yon_char_new(gtk_combo_box_get_active_id(GTK_COMBO_BOX(part->EncryptionCombo)));
section->encryption_password = yon_char_new(gtk_entry_get_text(GTK_ENTRY(part->EncryptionEntry))); section->encryption_password = yon_char_new(gtk_entry_get_text(GTK_ENTRY(part->EncryptionEntry)));
} else if (self == part->FormatCombo){ } else if (self == part->FormatCombo){
int format_active = gtk_combo_box_get_active(GTK_COMBO_BOX(part->FormatCombo)); section->format = gtk_combo_box_get_active(GTK_COMBO_BOX(part->FormatCombo));
if (format_active == 2){
section->format=2;
} else if (format_active == 1){
section->format=1;
} else {
section->format=0;
}
} }
} }
@ -743,8 +736,8 @@ advanced_partition *yon_advanced_partition_new(){
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(part->SizeCombo),"T",_("Tb")); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(part->SizeCombo),"T",_("Tb"));
gtk_combo_box_set_active(GTK_COMBO_BOX(part->SizeCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(part->SizeCombo),0);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(part->FormatCombo),DEFAULT_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(part->FormatCombo),DO_NOT_FORMAT_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(part->FormatCombo),DO_NOT_FORMAT_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(part->FormatCombo),AUTOMATIC_FORMAT_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(part->FormatCombo),FORMAT_LABEL); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(part->FormatCombo),FORMAT_LABEL);
gtk_combo_box_set_active(GTK_COMBO_BOX(part->FormatCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(part->FormatCombo),0);

@ -194,8 +194,10 @@ int yon_advanced_sections_save(dictionary *dict){
char *part = yon_char_unite(part_first,last_section?",":NULL,part_last,NULL); char *part = yon_char_unite(part_first,last_section?",":NULL,part_last,NULL);
yon_config_register(part_parameter,part_parameter_command,part); yon_config_register(part_parameter,part_parameter_command,part);
char * format_first = gtk_switch_get_active(GTK_SWITCH(first_section->FormatCombo))?"yes":"no"; int format_first_active = gtk_switch_get_active(GTK_SWITCH(first_section->FormatCombo));
char * format_last = last_section?gtk_switch_get_active(GTK_SWITCH(last_section->FormatCombo))?"yes":"no":NULL; int format_last_active = gtk_switch_get_active(GTK_SWITCH(last_section->FormatCombo));
char * format_first = format_first_active==1?"yes":format_first_active==2?"no":NULL;
char * format_last = format_last_active==1?"yes":format_last_active==2?"no":NULL;
char *format = yon_char_unite(format_first,part_last?",":NULL,format_last,NULL); char *format = yon_char_unite(format_first,part_last?",":NULL,format_last,NULL);
yon_config_register(part_format_parameter,part_format_parameter_command,format); yon_config_register(part_format_parameter,part_format_parameter_command,format);

@ -27,12 +27,14 @@ void on_region_changed(GtkComboBox *self, main_window *widgets){
char *active = (char*)gtk_combo_box_get_active_id(self); char *active = (char*)gtk_combo_box_get_active_id(self);
size_t size; size_t size;
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_char_is_empty(active)){
config_str parsed = yon_timezone_get_zones_from_region(active,&size); config_str parsed = yon_timezone_get_zones_from_region(active,&size);
for (size_t i=0;i<size;i++){ for (size_t 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[i],_(parsed[i]));
} }
if (size) yon_char_parsed_free(parsed,size); if (size) yon_char_parsed_free(parsed,size);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ZoneCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ZoneCombo),0);
}
} }
#ifdef TIMEZONEMAP_INCLUDE #ifdef TIMEZONEMAP_INCLUDE
@ -108,25 +110,37 @@ void on_map_selection_changed(GtkWidget *,CcTimezoneLocation *location,main_wind
g_signal_handlers_block_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(on_zone_changed),widgets); g_signal_handlers_block_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(on_zone_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionEntry),G_CALLBACK(on_region_entry_changed),widgets); g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionEntry),G_CALLBACK(on_region_entry_changed),widgets);
char *zone = yon_char_new(cc_timezone_location_get_zone(location)); char *zone = yon_char_new(cc_timezone_location_get_zone(location));
char *timezone = yon_char_divide_search(zone,"/",-1); char *region = yon_char_divide_search(zone,"/",-1);
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),timezone);
while(gtk_events_pending()) gtk_main_iteration();
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),zone);
if (!yon_char_is_empty(timezone)) free(timezone);
timezone = (char*)cc_timezone_location_get_zone(location);
char *timezone = (char*)cc_timezone_location_get_zone(location);
GtkTreeIter iter; GtkTreeIter iter;
int found = 0;
for_iter(widgets->RegionTimezoneCompletionList,&iter){ for_iter(widgets->RegionTimezoneCompletionList,&iter){
char *render, *tz; char *render, *tz;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->RegionTimezoneCompletionList),&iter,0,&render,1,&tz,-1); gtk_tree_model_get(GTK_TREE_MODEL(widgets->RegionTimezoneCompletionList),&iter,0,&render,1,&tz,-1);
if (!strcmp(timezone,tz)){ if (!strcmp(timezone,tz)){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),region);
while(gtk_events_pending()) gtk_main_iteration();
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),zone);
gtk_entry_set_text(GTK_ENTRY(widgets->RegionEntry),render); gtk_entry_set_text(GTK_ENTRY(widgets->RegionEntry),render);
char *utc = yon_timezone_get_utc(tz); char *utc = yon_timezone_get_utc(tz);
yon_map_status_show(widgets,NULL,MAP_TITLE_LABEL(utc),render); yon_map_status_show(widgets,NULL,MAP_TITLE_LABEL(utc),render);
found = 1;
} }
} }
if (!found){
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));
char *timezone = yon_char_unite(region,"/",zone,NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),timezone);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
free(timezone);
}
if (!yon_char_is_empty(region)) free(region);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(on_zone_changed),widgets); g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(on_zone_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionEntry),G_CALLBACK(on_region_entry_changed),widgets); g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionEntry),G_CALLBACK(on_region_entry_changed),widgets);
} }
@ -216,17 +230,17 @@ void yon_region_init(main_window *widgets){
char *zone_name = yon_char_unite(_(zone_city),", ", _(zone_country),NULL); char *zone_name = yon_char_unite(_(zone_city),", ", _(zone_country),NULL);
gtk_list_store_append(widgets->RegionTimezoneCompletionList,&iter); gtk_list_store_append(widgets->RegionTimezoneCompletionList,&iter);
gtk_list_store_set(widgets->RegionTimezoneCompletionList,&iter,0,zone_name,1,parsed[i],-1); gtk_list_store_set(widgets->RegionTimezoneCompletionList,&iter,0,zone_name,1,parsed[i],-1);
g_hash_table_add(timezones_list,zone); g_hash_table_add(timezones_list,yon_char_new(zone));
} }
yon_char_parsed_free(parsed,size); yon_char_parsed_free(parsed,size);
size_t zones_size; size_t zones_size=0;
parsed = (config_str)g_hash_table_get_keys_as_array(timezones_list,(guint*)&zones_size); config_str keys = (config_str)g_hash_table_get_keys_as_array(timezones_list,(guint*)&zones_size);
qsort(parsed,zones_size,sizeof(char*),(__compar_fn_t)yon_char_parsed_compare); qsort(keys,zones_size,sizeof(char*),(__compar_fn_t)yon_char_parsed_compare);
for (size_t i=0;i<zones_size;i++){ for (size_t i=0;i<zones_size;i++){
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),keys[i],_(keys[i]));
} }
yon_char_parsed_free(parsed,zones_size); yon_char_parsed_free(keys,zones_size);
textdomain(LocaleName); textdomain(LocaleName);
while(gtk_events_pending()) gtk_main_iteration(); while(gtk_events_pending()) gtk_main_iteration();
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->RegionCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->RegionCombo),0);

@ -3840,6 +3840,7 @@ agreement</property>
<child> <child>
<object class="GtkEntry" id="RegionEntry"> <object class="GtkEntry" id="RegionEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="completion">entrycompletion1</property> <property name="completion">entrycompletion1</property>
</object> </object>

Loading…
Cancel
Save