Test build for advanced installation options

pull/15/head
parent 0d34a4b230
commit f5601a8292

@ -1039,7 +1039,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
GtkTreeIter iter,itar;
GtkTreeModel *model,*model2;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateDevicesTree)),&model,&iter)){
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateUserSysSectionTree)),&model2,&itar)){
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateSysSectionTree)),&model2,&itar)){
char *cur_device, *system_section, *user_section;
gtk_tree_model_get(model,&iter,0,&cur_device,-1);
gtk_tree_model_get(model2,&itar,0,&system_section,-1);
@ -1191,6 +1191,56 @@ void on_partition_changed(GtkWidget *self, main_window *widgets){
}
void on_separate_installation_changed(GtkWidget *self, main_window *widgets);
void on_separate_installation_changed(GtkWidget *self, main_window *widgets){
gtk_list_store_clear(widgets->PartitionsList);
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(self)),&model,&iter)){
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateUserDevicesTree)),&iter);
char *disk_path="";
gtk_tree_model_get(model,&iter,0,&disk_path,-1);
int size;
config_str parsed;
parsed = yon_config_load(get_parts_and_devices_command,&size);
char *string = yon_char_parsed_to_string(parsed,size,"");
struct json_object *root;
struct json_object *blockdevices;
root = json_tokener_parse(string);
json_object_object_get_ex(root, "blockdevices", &blockdevices);
for (long unsigned int i = 0; i < json_object_array_length(blockdevices); i++) {
struct json_object *device = json_object_array_get_idx(blockdevices, i);
struct json_object *type, *path, *size, *model, *fstype, *fsused;
json_object_object_get_ex(device, "type", &type);
if (strcmp("part",json_object_get_string(type)))
continue;
json_object_object_get_ex(device, "path", &path);
if (!strstr(json_object_get_string(path),disk_path)){
continue;
}
json_object_object_get_ex(device, "size", &size);
json_object_object_get_ex(device, "model", &model);
json_object_object_get_ex(device, "fstype", &fstype);
json_object_object_get_ex(device, "fsused", &fsused);
float free_space=0;
char *free_space_string="";
if (size&&fsused){
free_space = atof(json_object_get_string(size))-atof(json_object_get_string(fsused));
free_space_string = yon_char_append(yon_char_from_float(free_space)," ");
free_space_string[strlen(free_space_string)-1]=json_object_get_string(size)[strlen(json_object_get_string(size))-1];
}
// gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),0.0);
gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)),0.0);
gtk_list_store_append(widgets->PartitionsList,&iter);
gtk_list_store_set(widgets->PartitionsList,&iter,0,json_object_get_string(path),1,json_object_get_string(size),2,free_space_string,3,json_object_get_string(fstype),-1);
}
yon_char_parsed_free(parsed,size);
}
}
void on_near_installation_device_changed(GtkWidget *self, main_window *widgets);
void on_near_installation_device_changed(GtkWidget *self, main_window *widgets){
gtk_list_store_clear(widgets->PartitionsList);
@ -1406,7 +1456,7 @@ main_window *yon_main_window_complete(){
widgets->SeparateSysSectionTree = yon_gtk_builder_get_widget(builder,"SeparateSysSectionTree");
widgets->GpartedSeparateUserButton = yon_gtk_builder_get_widget(builder,"GpartedSeparateUserButton");
widgets->SeparateUserDevicesTree = yon_gtk_builder_get_widget(builder,"SeparateUserDevicesTree");
widgets->SeparateUserSysSectionTree = yon_gtk_builder_get_widget(builder,"SeparateUse-rSysSectionTree");
widgets->SeparateUserSysSectionTree = yon_gtk_builder_get_widget(builder,"SeparateUserSysSectionTree");
widgets->GpartedOSButton = yon_gtk_builder_get_widget(builder,"GpartedOSButton");
widgets->OSDevicesTree = yon_gtk_builder_get_widget(builder,"OSDevicesTree");
@ -1449,6 +1499,9 @@ main_window *yon_main_window_complete(){
g_signal_connect(G_OBJECT(widgets->CompletionToggle),"toggled",G_CALLBACK(on_toggle_block),NULL);
g_signal_connect(G_OBJECT(widgets->InstallationNearSysDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets);
g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets);
g_signal_connect(G_OBJECT(widgets->UserdataDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets);
g_signal_connect(G_OBJECT(widgets->OSDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets);
g_signal_connect(G_OBJECT(widgets->SeparateDevicesTree),"cursor-changed",G_CALLBACK(on_separate_installation_changed),widgets);
g_signal_connect(G_OBJECT(widgets->ConfigurationModeMenuItem),"toggled",G_CALLBACK(on_configuration_mode_switch),widgets);
g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),widgets);

@ -919,6 +919,7 @@ and help you install UBLinux on your computer</property>
</child>
<child>
<object class="GtkRadioButton" id="InstallationWindowsRadio">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
@ -5550,6 +5551,7 @@ separately into the selected partition.</property>
<child>
<object class="GtkTreeView" id="SeparateUserDevicesTree">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="model">DevicesList</property>
<property name="search-column">0</property>

Loading…
Cancel
Save