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));
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->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;
GtkWidget *flow = gtk_flow_box_child_new();
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;
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){
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_pixbuf(gtk_icon_info_load_icon(info,NULL));
Image = gtk_image_new_from_icon_name(toggled_icon_path,GTK_ICON_SIZE_BUTTON);
gtk_image_set_pixel_size(GTK_IMAGE(Image),8);
} 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_pixbuf(gtk_icon_info_load_icon(info,NULL));
Image = gtk_image_new_from_icon_name(untoggled_icon_path,GTK_ICON_SIZE_BUTTON);
gtk_image_set_pixel_size(GTK_IMAGE(Image),8);
}
gtk_box_pack_start(GTK_BOX(widgets->SliderProgressBox),Image,0,0,0);
gtk_widget_show(Image);

@ -183,61 +183,61 @@ int yon_install_same_partition_save(main_window *widgets){
return 1;
}
int yon_advanced_sections_save(dictionary *dict){
if (!dict) return 0;
advanced_part_widgets *first_section = yon_dictionary_get_data(dict->first,advanced_part_widgets*);
advanced_part_widgets *last_section = NULL;
if (dict->first->next){
last_section = yon_dictionary_get_data(dict->first->next,advanced_part_widgets*);
}
char *part_first = first_section->part;
char *part_last = last_section?last_section->part:NULL;
char *part = yon_char_unite(part_first,last_section?",":NULL,part_last,NULL);
yon_config_register(part_parameter,part_parameter_command,part);
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));
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);
yon_config_register(part_format_parameter,part_format_parameter_command,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_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);
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_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);
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_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);
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_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);
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_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;
if (part_crypt_first||part_crypt_last){
part_crypt = yon_char_unite(part_crypt_first,part_crypt_last?",":NULL,part_crypt_last,NULL);
}
if (part_crypt){
yon_config_register(part_crypt_parameter,part_crypt_parameter_command,part_crypt);
} else {
yon_config_remove_by_key(part_crypt_parameter);
}
}
return 1;
}
// int yon_advanced_sections_save(dictionary *dict){
// if (!dict) return 0;
// advanced_part_widgets *first_section = yon_dictionary_get_data(dict->first,advanced_part_widgets*);
// advanced_part_widgets *last_section = NULL;
// if (dict->first->next){
// last_section = yon_dictionary_get_data(dict->first->next,advanced_part_widgets*);
// }
// char *part_first = first_section->part;
// char *part_last = last_section?last_section->part:NULL;
// char *part = yon_char_unite(part_first,last_section?",":NULL,part_last,NULL);
// yon_config_register(part_parameter,part_parameter_command,part);
// 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));
// 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);
// yon_config_register(part_format_parameter,part_format_parameter_command,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_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);
// 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_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);
// 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_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);
// 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_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);
// 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_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;
// if (part_crypt_first||part_crypt_last){
// part_crypt = yon_char_unite(part_crypt_first,part_crypt_last?",":NULL,part_crypt_last,NULL);
// }
// if (part_crypt){
// yon_config_register(part_crypt_parameter,part_crypt_parameter_command,part_crypt);
// } else {
// yon_config_remove_by_key(part_crypt_parameter);
// }
// }
// return 1;
// }
void yon_size_changed(GtkSpinButton *self, main_window *widgets){
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 *){
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);
}

@ -468,6 +468,8 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){
yon_packages_tab_init(widgets);
break;
case YON_PAGE_INSTALL_ADVANCED:
yon_advanced_init(widgets);
break;
case YON_PAGE_INSTALL_COMMON:
case YON_PAGE_INSTALL_SEPARATE:
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);
if (!yon_char_is_empty(icon_name)){
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);
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->TimeZoneMapOverlayImage),gtk_icon_info_load_icon(info,NULL));
widgets->TimeZoneMapOverlayImage = gtk_image_new_from_icon_name(icon_path,GTK_ICON_SIZE_BUTTON);
gtk_image_set_pixel_size(GTK_IMAGE(widgets->TimeZoneMapOverlayImage),48);
} else {
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->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->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->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->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);

@ -823,11 +823,6 @@ typedef struct
GtkWidget *EncryptionEntry;
GtkWidget *EncryptionButton;
GtkWidget *SectionPartitionLabel;
GSequenceIter *order_iter;
enum ADVANCED_PART_TYPE part_type;
char *part;
char *device;
} advanced_part_widgets;
typedef struct
@ -1100,7 +1095,7 @@ typedef struct
char *format;
gulong full_part_size;
unsigned long size;
char size_letter;
// char size_letter;
char *part_label;
char *fs_type;
char *fs_label;
@ -1295,7 +1290,7 @@ int yon_install_advanced_save(main_window *widgets);
int yon_network_save(main_window *widgets);
void on_connection_add(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 on_configuration_mode_switch(GtkWidget *self, main_window *widgets);
void *_yon_installation_start(main_window *widgets);
@ -1537,7 +1532,7 @@ void yon_advanced_part_choose(main_window *widgets, const char *part);
advanced_part_data *yon_advanced_part_data_new();
char *yon_advanced_part_data_get_parameter(const char *config_param, 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_remove_parts_for_device(const char *device_name, main_window *widgets);
void yon_advanced_init(main_window *widgets);
@ -1545,3 +1540,11 @@ 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_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_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