WIP advanced installation rework

pull/250/head
parent 10b822f768
commit 5ba059ac2a

File diff suppressed because it is too large Load Diff

@ -240,11 +240,10 @@ void yon_configuration_hub_add(GtkFlowBox *target, char *name, char *icon, enum
config_hub_icon *cur_icon = malloc(sizeof(config_hub_icon)); config_hub_icon *cur_icon = malloc(sizeof(config_hub_icon));
memset(cur_icon,0,sizeof(config_hub_icon)); memset(cur_icon,0,sizeof(config_hub_icon));
GtkIconInfo *info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(),icon,54,1,GTK_ICON_LOOKUP_FORCE_SIZE);
cur_icon->MainBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); cur_icon->MainBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
cur_icon->Label = gtk_label_new(name); cur_icon->Label = gtk_label_new(name);
cur_icon->Image = gtk_image_new_from_pixbuf(gtk_icon_info_load_icon(info,NULL)); cur_icon->Image = gtk_image_new_from_icon_name(icon,GTK_ICON_SIZE_BUTTON);
gtk_image_set_pixel_size(GTK_IMAGE(cur_icon->Image),54);
cur_icon->page = page; cur_icon->page = page;
GtkWidget *flow = gtk_flow_box_child_new(); GtkWidget *flow = gtk_flow_box_child_new();
gtk_style_context_add_class(gtk_widget_get_style_context(flow),"bggrey"); gtk_style_context_add_class(gtk_widget_get_style_context(flow),"bggrey");

@ -50,11 +50,11 @@ void yon_install_slider_update(main_window *widgets){
GtkWidget *Image = NULL; GtkWidget *Image = NULL;
int chosen = iter==main_config.chosen_slide||(main_config.chosen_slide->next&&iter==main_config.chosen_slide->next)||(!main_config.chosen_slide->next&&iter==g_list_first(main_config.chosen_slide)); int chosen = iter==main_config.chosen_slide||(main_config.chosen_slide->next&&iter==main_config.chosen_slide->next)||(!main_config.chosen_slide->next&&iter==g_list_first(main_config.chosen_slide));
if (chosen){ if (chosen){
GtkIconInfo *info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(),toggled_icon_path,8,1,GTK_ICON_LOOKUP_FORCE_SIZE); Image = gtk_image_new_from_icon_name(toggled_icon_path,GTK_ICON_SIZE_BUTTON);
Image = gtk_image_new_from_pixbuf(gtk_icon_info_load_icon(info,NULL)); gtk_image_set_pixel_size(GTK_IMAGE(Image),8);
} else { } else {
GtkIconInfo *info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(),untoggled_icon_path,8,1,GTK_ICON_LOOKUP_FORCE_SIZE); Image = gtk_image_new_from_icon_name(untoggled_icon_path,GTK_ICON_SIZE_BUTTON);
Image = gtk_image_new_from_pixbuf(gtk_icon_info_load_icon(info,NULL)); gtk_image_set_pixel_size(GTK_IMAGE(Image),8);
} }
gtk_box_pack_start(GTK_BOX(widgets->SliderProgressBox),Image,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->SliderProgressBox),Image,0,0,0);
gtk_widget_show(Image); gtk_widget_show(Image);

@ -183,61 +183,61 @@ int yon_install_same_partition_save(main_window *widgets){
return 1; return 1;
} }
int yon_advanced_sections_save(dictionary *dict){ // int yon_advanced_sections_save(dictionary *dict){
if (!dict) return 0; // if (!dict) return 0;
advanced_part_widgets *first_section = yon_dictionary_get_data(dict->first,advanced_part_widgets*); // advanced_part_widgets *first_section = yon_dictionary_get_data(dict->first,advanced_part_widgets*);
advanced_part_widgets *last_section = NULL; // advanced_part_widgets *last_section = NULL;
if (dict->first->next){ // if (dict->first->next){
last_section = yon_dictionary_get_data(dict->first->next,advanced_part_widgets*); // last_section = yon_dictionary_get_data(dict->first->next,advanced_part_widgets*);
} // }
char *part_first = first_section->part; // char *part_first = first_section->part;
char *part_last = last_section?last_section->part:NULL; // char *part_last = last_section?last_section->part:NULL;
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);
int format_first_active = gtk_switch_get_active(GTK_SWITCH(first_section->FormatCombo)); // int format_first_active = gtk_switch_get_active(GTK_SWITCH(first_section->FormatCombo));
int format_last_active = gtk_switch_get_active(GTK_SWITCH(last_section->FormatCombo)); // 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_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_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);
if (!yon_char_is_empty(format)){ // if (!yon_char_is_empty(format)){
char *size_first = g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(first_section->SizeSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(first_section->SizeCombo)))); // char *size_first = g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(first_section->SizeSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(first_section->SizeCombo))));
char *size_last = last_section&&!strcmp(format_last,"yes")?g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(last_section->SizeSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(last_section->SizeCombo)))):NULL; // char *size_last = last_section&&!strcmp(format_last,"yes")?g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(last_section->SizeSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(last_section->SizeCombo)))):NULL;
char *size = yon_char_unite(size_first,size_last?",":NULL,size_last,NULL); // char *size = yon_char_unite(size_first,size_last?",":NULL,size_last,NULL);
yon_config_register(part_size_parameter,part_size_parameter_command,size); // yon_config_register(part_size_parameter,part_size_parameter_command,size);
char *part_label_first = (char*)gtk_entry_get_text(GTK_ENTRY(first_section->PartLabelEntry)); // char *part_label_first = (char*)gtk_entry_get_text(GTK_ENTRY(first_section->PartLabelEntry));
char *part_label_last = last_section&&!strcmp(format_last,"yes")?(char*)gtk_entry_get_text(GTK_ENTRY(last_section->PartLabelEntry)):NULL; // char *part_label_last = last_section&&!strcmp(format_last,"yes")?(char*)gtk_entry_get_text(GTK_ENTRY(last_section->PartLabelEntry)):NULL;
char *part_label = yon_char_unite(part_label_first,part_label_last?",":NULL,part_label_last,NULL); // char *part_label = yon_char_unite(part_label_first,part_label_last?",":NULL,part_label_last,NULL);
yon_config_register(part_label_parameter,part_label_parameter_command,part_label); // yon_config_register(part_label_parameter,part_label_parameter_command,part_label);
char *fs_label_first = (char*)gtk_entry_get_text(GTK_ENTRY(first_section->FileSystemLabelEntry)); // char *fs_label_first = (char*)gtk_entry_get_text(GTK_ENTRY(first_section->FileSystemLabelEntry));
char *fs_label_last = last_section&&!strcmp(format_last,"yes")?(char*)gtk_entry_get_text(GTK_ENTRY(last_section->FileSystemLabelEntry)):NULL; // char *fs_label_last = last_section&&!strcmp(format_last,"yes")?(char*)gtk_entry_get_text(GTK_ENTRY(last_section->FileSystemLabelEntry)):NULL;
char *fs_label = yon_char_unite(fs_label_first,fs_label_last?",":NULL,fs_label_last,NULL); // char *fs_label = yon_char_unite(fs_label_first,fs_label_last?",":NULL,fs_label_last,NULL);
yon_config_register(part_fs_label_parameter,part_fs_label_parameter_command,fs_label); // yon_config_register(part_fs_label_parameter,part_fs_label_parameter_command,fs_label);
char *fs_type_first = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(first_section->FileSystemTypeCombo)); // char *fs_type_first = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(first_section->FileSystemTypeCombo));
char *fs_type_last = last_section&&!strcmp(format_last,"yes")?(char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(last_section->FileSystemTypeCombo)):NULL; // char *fs_type_last = last_section&&!strcmp(format_last,"yes")?(char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(last_section->FileSystemTypeCombo)):NULL;
char *fs_type = yon_char_unite(fs_type_first,fs_type_last?",":NULL,fs_type_last,NULL); // char *fs_type = yon_char_unite(fs_type_first,fs_type_last?",":NULL,fs_type_last,NULL);
yon_config_register(part_fs_type_parameter,part_fs_type_parameter_command,fs_type); // yon_config_register(part_fs_type_parameter,part_fs_type_parameter_command,fs_type);
char *part_crypt_first = gtk_combo_box_get_active(GTK_COMBO_BOX(first_section->EncryptionCombo))?(char*)gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL; // char *part_crypt_first = gtk_combo_box_get_active(GTK_COMBO_BOX(first_section->EncryptionCombo))?(char*)gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL;
char *part_crypt_last = last_section&&!strcmp(format_last,"yes")&&gtk_combo_box_get_active(GTK_COMBO_BOX(last_section->EncryptionCombo))?(char*)gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL; // char *part_crypt_last = last_section&&!strcmp(format_last,"yes")&&gtk_combo_box_get_active(GTK_COMBO_BOX(last_section->EncryptionCombo))?(char*)gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL;
char *part_crypt = NULL; // char *part_crypt = NULL;
if (part_crypt_first||part_crypt_last){ // if (part_crypt_first||part_crypt_last){
part_crypt = yon_char_unite(part_crypt_first,part_crypt_last?",":NULL,part_crypt_last,NULL); // part_crypt = yon_char_unite(part_crypt_first,part_crypt_last?",":NULL,part_crypt_last,NULL);
} // }
if (part_crypt){ // if (part_crypt){
yon_config_register(part_crypt_parameter,part_crypt_parameter_command,part_crypt); // yon_config_register(part_crypt_parameter,part_crypt_parameter_command,part_crypt);
} else { // } else {
yon_config_remove_by_key(part_crypt_parameter); // yon_config_remove_by_key(part_crypt_parameter);
} // }
} // }
return 1; // return 1;
} // }
void yon_size_changed(GtkSpinButton *self, main_window *widgets){ void yon_size_changed(GtkSpinButton *self, main_window *widgets){
int cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)); int cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook));
@ -276,6 +276,9 @@ void yon_size_changed(GtkSpinButton *self, main_window *widgets){
void *yon_partitions_list_load(main_window *){ void *yon_partitions_list_load(main_window *){
main_config.partitions = yon_config_load(yon_debug_output("%s\n",get_parts_for_device_command),&main_config.part_size); main_config.partitions = yon_config_load(yon_debug_output("%s\n",get_parts_for_device_command),&main_config.part_size);
for (int i=0;i<main_config.part_size;i++){
yon_char_remove_last_symbol(main_config.partitions[i],'\n');
}
g_thread_exit(NULL); g_thread_exit(NULL);
} }

@ -467,7 +467,9 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){
case YON_PAGE_PACKAGES: case YON_PAGE_PACKAGES:
yon_packages_tab_init(widgets); yon_packages_tab_init(widgets);
break; break;
case YON_PAGE_INSTALL_ADVANCED: case YON_PAGE_INSTALL_ADVANCED:
yon_advanced_init(widgets);
break;
case YON_PAGE_INSTALL_COMMON: case YON_PAGE_INSTALL_COMMON:
case YON_PAGE_INSTALL_SEPARATE: case YON_PAGE_INSTALL_SEPARATE:
case YON_PAGE_INSTALL_SAME_PARTITION: case YON_PAGE_INSTALL_SAME_PARTITION:

@ -79,8 +79,8 @@ void yon_map_status_show(main_window *widgets, char *icon_name, char *title, cha
gtk_label_set_text(GTK_LABEL(widgets->TimeZoneMapOverlayInfoLabel),title_info); gtk_label_set_text(GTK_LABEL(widgets->TimeZoneMapOverlayInfoLabel),title_info);
if (!yon_char_is_empty(icon_name)){ if (!yon_char_is_empty(icon_name)){
gtk_widget_show(widgets->TimeZoneMapOverlayImage); gtk_widget_show(widgets->TimeZoneMapOverlayImage);
GtkIconInfo *info = gtk_icon_theme_lookup_icon_for_scale(gtk_icon_theme_get_default(), icon_path, 48,1,GTK_ICON_LOOKUP_FORCE_SIZE); widgets->TimeZoneMapOverlayImage = gtk_image_new_from_icon_name(icon_path,GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->TimeZoneMapOverlayImage),gtk_icon_info_load_icon(info,NULL)); gtk_image_set_pixel_size(GTK_IMAGE(widgets->TimeZoneMapOverlayImage),48);
} else { } else {
gtk_widget_hide(widgets->TimeZoneMapOverlayImage); gtk_widget_hide(widgets->TimeZoneMapOverlayImage);
} }

@ -773,11 +773,13 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->AdvancedSwapFixedSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AdvancedSwapFixedSpin); g_signal_connect(G_OBJECT(widgets->AdvancedSwapFixedSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AdvancedSwapFixedSpin);
g_signal_connect(G_OBJECT(widgets->AdvancedSwapFixedSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AdvancedSwapFixedSizeSwitch); g_signal_connect(G_OBJECT(widgets->AdvancedSwapFixedSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->AdvancedSwapFixedSizeSwitch);
// g_signal_connect(G_OBJECT(widgets->AdvancedDeviceChosenCell),"toggled",G_CALLBACK(on_install_advanced_device_chosen),widgets); g_signal_connect(G_OBJECT(widgets->AdvancedPartitionAddBox),"add",G_CALLBACK(on_advanced_part_content_changed),widgets);
g_signal_connect(G_OBJECT(widgets->AdvancedPartitionAddBox),"remove",G_CALLBACK(on_advanced_part_content_changed),widgets);
g_signal_connect(G_OBJECT(widgets->AdvancedDeviceChosenCell),"toggled",G_CALLBACK(on_install_advanced_device_chosen),widgets);
g_signal_connect(G_OBJECT(widgets->StartScenarioButton),"clicked",G_CALLBACK(yon_quick_install),widgets); g_signal_connect(G_OBJECT(widgets->StartScenarioButton),"clicked",G_CALLBACK(yon_quick_install),widgets);
g_signal_connect(G_OBJECT(widgets->SourceButton),"clicked",G_CALLBACK(on_source_clicked),widgets); g_signal_connect(G_OBJECT(widgets->SourceButton),"clicked",G_CALLBACK(on_source_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->AdvancedAddButton),"clicked",G_CALLBACK(on_advanced_part_create),widgets); g_signal_connect(G_OBJECT(widgets->AdvancedAddButton),"clicked",G_CALLBACK(on_advanced_part_create),widgets);
// g_signal_connect(G_OBJECT(widgets->AdvancedPartChosenCell),"toggled",G_CALLBACK(on_install_advanced_partition_chosen),widgets); g_signal_connect(G_OBJECT(widgets->AdvancedPartChosenCell),"toggled",G_CALLBACK(on_install_advanced_partition_chosen),widgets);
g_signal_connect(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),"changed",G_CALLBACK(on_advanced_virtual_device_changed),widgets); g_signal_connect(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),"changed",G_CALLBACK(on_advanced_virtual_device_changed),widgets);
g_signal_connect(G_OBJECT(widgets->PackagesTree),"cursor-changed",G_CALLBACK(yon_on_packages_selected),widgets); g_signal_connect(G_OBJECT(widgets->PackagesTree),"cursor-changed",G_CALLBACK(yon_on_packages_selected),widgets);
g_signal_connect(G_OBJECT(widgets->PackagesTree),"row-activated",G_CALLBACK(yon_on_packages_activated),widgets); g_signal_connect(G_OBJECT(widgets->PackagesTree),"row-activated",G_CALLBACK(yon_on_packages_activated),widgets);

@ -823,11 +823,6 @@ typedef struct
GtkWidget *EncryptionEntry; GtkWidget *EncryptionEntry;
GtkWidget *EncryptionButton; GtkWidget *EncryptionButton;
GtkWidget *SectionPartitionLabel; GtkWidget *SectionPartitionLabel;
GSequenceIter *order_iter;
enum ADVANCED_PART_TYPE part_type;
char *part;
char *device;
} advanced_part_widgets; } advanced_part_widgets;
typedef struct typedef struct
@ -1100,7 +1095,7 @@ typedef struct
char *format; char *format;
gulong full_part_size; gulong full_part_size;
unsigned long size; unsigned long size;
char size_letter; // char size_letter;
char *part_label; char *part_label;
char *fs_type; char *fs_type;
char *fs_label; char *fs_label;
@ -1295,7 +1290,7 @@ int yon_install_advanced_save(main_window *widgets);
int yon_network_save(main_window *widgets); int yon_network_save(main_window *widgets);
void on_connection_add(GtkWidget *, main_window *widgets); void on_connection_add(GtkWidget *, main_window *widgets);
void on_ntp_sync(GtkWidget *, main_window *widgets); void on_ntp_sync(GtkWidget *, main_window *widgets);
int yon_advanced_sections_save(dictionary *dict); // int yon_advanced_sections_save(dictionary *dict);
void yon_configuration_mode_check(main_window *widgets); void yon_configuration_mode_check(main_window *widgets);
void on_configuration_mode_switch(GtkWidget *self, main_window *widgets); void on_configuration_mode_switch(GtkWidget *self, main_window *widgets);
void *_yon_installation_start(main_window *widgets); void *_yon_installation_start(main_window *widgets);
@ -1537,11 +1532,19 @@ void yon_advanced_part_choose(main_window *widgets, const char *part);
advanced_part_data *yon_advanced_part_data_new(); advanced_part_data *yon_advanced_part_data_new();
char *yon_advanced_part_data_get_parameter(const char *config_param, int pos); char *yon_advanced_part_data_get_parameter(const char *config_param, int pos);
advanced_part_data *yon_advanced_get_config_data(int pos); advanced_part_data *yon_advanced_get_config_data(int pos);
void yon_advanced_part_create_for_device(advanced_part_data *data, main_window *widgets); void yon_advanced_part_create_for_device(GtkTreeIter *iter, main_window *widgets);
void yon_advanced_part_add_parts_for_device(const char *device_name, main_window *widgets); void yon_advanced_part_add_parts_for_device(const char *device_name, main_window *widgets);
void yon_advanced_part_remove_parts_for_device(const char *device_name, main_window *widgets); void yon_advanced_part_remove_parts_for_device(const char *device_name, main_window *widgets);
void yon_advanced_init(main_window *widgets); void yon_advanced_init(main_window *widgets);
advanced_part_widgets *yon_advanced_part_create(advanced_part_data *part_data); advanced_part_widgets *yon_advanced_part_create(advanced_part_data *part_data);
void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets); void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets);
void on_advanced_part_create(GtkWidget *self, main_window *widgets); void on_advanced_part_create(GtkWidget *self, main_window *widgets);
int yon_advanced_part_select_for_data(advanced_part_data *data, main_window *widgets); int yon_advanced_part_select_for_data(advanced_part_data *data, main_window *widgets);
int yon_advanced_part_check_count(main_window *widgets);
advanced_part_widgets *yon_advanced_part_get_for_name(const char *part_name,main_window *widgets);
void yon_advanced_part_create_for_part(GtkTreeIter *iter, main_window *widgets);
int yon_advanced_part_get_pos(advanced_part_widgets *part, main_window *widgets);
int yon_advanced_part_get_size(advanced_part_widgets *part, main_window *widgets);
void yon_advanced_part_update_from_data(advanced_part_widgets *part, advanced_part_data *data);
void yon_advanced_part_data_unref(advanced_part_data *data);
void on_advanced_part_content_changed(GtkWidget *, GtkWidget *, main_window *widgets);
Loading…
Cancel
Save