|
|
|
@ -237,6 +237,34 @@ int yon_advanced_sections_save(dictionary *dict){
|
|
|
|
return 1;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_partition_size_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
|
|
|
|
GtkAdjustment *adj = NULL;
|
|
|
|
|
|
|
|
GtkWidget *tree = NULL;
|
|
|
|
|
|
|
|
if (self == widgets->OSFormatSizeCombo){
|
|
|
|
|
|
|
|
adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->OSFormatSizeSpin));
|
|
|
|
|
|
|
|
tree = widgets->OSDevicesTree;
|
|
|
|
|
|
|
|
} else if (self == widgets->UserdataFormatSizeCombo){
|
|
|
|
|
|
|
|
adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->UserdataFormatSizeSpin));
|
|
|
|
|
|
|
|
tree = widgets->UserdataDevicesTree;
|
|
|
|
|
|
|
|
} else if (self == widgets->NextInstallationSizeTypeSpin){
|
|
|
|
|
|
|
|
adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->NextInstallationSizeSpin));
|
|
|
|
|
|
|
|
tree = widgets->NextInstallationSysSectionTree;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
GtkTreeModel *model;
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
|
|
|
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)),&model,&iter)) return;
|
|
|
|
|
|
|
|
long selected_size =0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,&iter,6,&selected_size,-1);
|
|
|
|
|
|
|
|
if (!selected_size){
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,&iter,5,&selected_size,-1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
const char *sizemod = gtk_combo_box_get_active_id(GTK_COMBO_BOX(self));
|
|
|
|
|
|
|
|
double new_size = yon_size_long_convert_to_mod(selected_size,sizemod[0]);
|
|
|
|
|
|
|
|
gtk_adjustment_set_upper(adj,new_size);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_button, GtkComboBox *spin_combo){
|
|
|
|
void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_button, GtkComboBox *spin_combo){
|
|
|
|
GtkTreeModel *model;
|
|
|
|
GtkTreeModel *model;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
@ -251,29 +279,26 @@ void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_but
|
|
|
|
const char *sizemod = gtk_combo_box_get_active_id(spin_combo);
|
|
|
|
const char *sizemod = gtk_combo_box_get_active_id(spin_combo);
|
|
|
|
double new_size = yon_size_long_convert_to_mod(selected_size,sizemod[0]);
|
|
|
|
double new_size = yon_size_long_convert_to_mod(selected_size,sizemod[0]);
|
|
|
|
gtk_adjustment_set_upper(adj,new_size);
|
|
|
|
gtk_adjustment_set_upper(adj,new_size);
|
|
|
|
gdouble old_value = gtk_adjustment_get_value(adj);
|
|
|
|
char *command = yon_config_parameter_prepare_command(part_size_parameter_command,"default",NULL,NULL);
|
|
|
|
if (old_value>new_size){
|
|
|
|
int size=0;
|
|
|
|
gtk_adjustment_set_value(adj,new_size);
|
|
|
|
config_str parsed = yon_config_load(command,&size);
|
|
|
|
|
|
|
|
if (size&&strcmp(parsed[0],"(null)\n")){
|
|
|
|
|
|
|
|
yon_char_remove_last_symbol(parsed[0],'\n');
|
|
|
|
|
|
|
|
free(yon_char_divide_search(parsed[0],"=",-1));
|
|
|
|
|
|
|
|
yon_char_remove_brackets(parsed[0]);
|
|
|
|
|
|
|
|
char *parameter = parsed[0];
|
|
|
|
|
|
|
|
if (!yon_char_is_empty(parameter)){
|
|
|
|
|
|
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin_button),atol(parameter));
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(spin_combo),yon_get_size_get_from_letter(parameter[strlen(parameter)-1])-1);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin_button),3);
|
|
|
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(spin_combo),2);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// char *parameter = config(part_size_parameter);
|
|
|
|
|
|
|
|
// if (!yon_char_is_empty(parameter)){
|
|
|
|
|
|
|
|
// GtkAdjustment *adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->OSFormatSizeSpin));
|
|
|
|
|
|
|
|
// gtk_adjustment_set_value(adj,atol(parameter));
|
|
|
|
|
|
|
|
// g_signal_handlers_block_by_func(G_OBJECT(widgets->NextInstallationSizeTypeSpin),G_CALLBACK(on_partition_changed),widgets);
|
|
|
|
|
|
|
|
// g_signal_handlers_block_by_func(G_OBJECT(widgets->OSFormatSizeCombo),G_CALLBACK(on_partition_changed),widgets);
|
|
|
|
|
|
|
|
// g_signal_handlers_block_by_func(G_OBJECT(widgets->UserdataFormatSizeCombo),G_CALLBACK(on_partition_changed),widgets);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->OSFormatSizeCombo),yon_get_size_get_from_letter(parameter[strlen(parameter)-1])-1);
|
|
|
|
|
|
|
|
// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UserdataFormatSizeCombo),yon_get_size_get_from_letter(parameter[strlen(parameter)-1])-1);
|
|
|
|
|
|
|
|
// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NextInstallationSizeTypeSpin),yon_get_size_get_from_letter(parameter[strlen(parameter)-1])-1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->NextInstallationSizeTypeSpin),G_CALLBACK(on_partition_changed),widgets);
|
|
|
|
|
|
|
|
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->OSFormatSizeCombo),G_CALLBACK(on_partition_changed),widgets);
|
|
|
|
|
|
|
|
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->UserdataFormatSizeCombo),G_CALLBACK(on_partition_changed),widgets);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void on_partition_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
void on_partition_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
if (self==widgets->NextInstallationSysSectionTree||self == widgets->NextInstallationSizeTypeSpin){
|
|
|
|
if (self==widgets->NextInstallationSysSectionTree||self == widgets->NextInstallationSizeTypeSpin){
|
|
|
|
@ -282,6 +307,11 @@ void on_partition_changed(GtkWidget *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);
|
|
|
|
|
|
|
|
g_thread_exit(NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_device_selection_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
void on_device_selection_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
gtk_list_store_clear(widgets->PartitionsList);
|
|
|
|
gtk_list_store_clear(widgets->PartitionsList);
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
@ -289,10 +319,11 @@ void on_device_selection_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(self)),&model,&iter)){
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(self)),&model,&iter)){
|
|
|
|
char *disk_path;
|
|
|
|
char *disk_path;
|
|
|
|
gtk_tree_model_get(model,&iter,0,&disk_path,-1);
|
|
|
|
gtk_tree_model_get(model,&iter,0,&disk_path,-1);
|
|
|
|
int size;
|
|
|
|
int size = main_config.part_size;
|
|
|
|
config_str partitions;
|
|
|
|
config_str partitions;
|
|
|
|
partitions = yon_config_load(yon_debug_output("%s\n",get_parts_and_devices_command),&size);
|
|
|
|
partitions = main_config.partitions;
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
|
|
|
if(!strstr(partitions[i],disk_path)) continue;
|
|
|
|
yon_char_remove_last_symbol(partitions[i],'\n');
|
|
|
|
yon_char_remove_last_symbol(partitions[i],'\n');
|
|
|
|
int parsed_size;
|
|
|
|
int parsed_size;
|
|
|
|
config_str parsed = yon_char_parse(partitions[i],&parsed_size,";");
|
|
|
|
config_str parsed = yon_char_parse(partitions[i],&parsed_size,";");
|
|
|
|
@ -345,36 +376,30 @@ void yon_devices_setup(main_window *widgets){
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gtk_list_store_clear(widgets->DevicesList);
|
|
|
|
gtk_list_store_clear(widgets->DevicesList);
|
|
|
|
int size;
|
|
|
|
int size;
|
|
|
|
config_str parsed = NULL;
|
|
|
|
config_str parameters = NULL;
|
|
|
|
parsed = yon_config_load(yon_debug_output("%s\n",get_devices_command),&size);
|
|
|
|
parameters = yon_config_load(yon_debug_output("%s\n",get_devices_command),&size);
|
|
|
|
char *string = yon_char_parsed_to_string(parsed,size,"");
|
|
|
|
for (int i=1;i<size;i++){
|
|
|
|
struct json_object *root;
|
|
|
|
yon_char_remove_last_symbol(parameters[i],'\n');
|
|
|
|
struct json_object *blockdevices;
|
|
|
|
int parsed_size;
|
|
|
|
root = json_tokener_parse(string);
|
|
|
|
config_str parsed = yon_char_parse(parameters[i],&parsed_size,";");
|
|
|
|
free(string);
|
|
|
|
char sizemod;
|
|
|
|
json_object_object_get_ex(root, "blockdevices", &blockdevices);
|
|
|
|
double size_converted = yon_size_long_convert_automatic(atol(parsed[1]),&sizemod);
|
|
|
|
for (long unsigned int i = 0; i < json_object_array_length(blockdevices); i++) {
|
|
|
|
char *size_string = yon_char_unite(yon_char_from_double(size_converted)," ", yon_size_get_name_from_letter(sizemod),NULL);
|
|
|
|
struct json_object *device = json_object_array_get_idx(blockdevices, i);
|
|
|
|
|
|
|
|
struct json_object *path, *size, *model, *vendor, *serial;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
json_object_object_get_ex(device, "path", &path);
|
|
|
|
|
|
|
|
json_object_object_get_ex(device, "size", &size);
|
|
|
|
|
|
|
|
json_object_object_get_ex(device, "model", &model);
|
|
|
|
|
|
|
|
json_object_object_get_ex(device, "vendor", &vendor);
|
|
|
|
|
|
|
|
json_object_object_get_ex(device, "serial", &serial);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gtk_list_store_append(widgets->DevicesList,&iter);
|
|
|
|
gtk_list_store_append(widgets->DevicesList,&iter);
|
|
|
|
char *size_string = yon_char_new(json_object_get_string(size));
|
|
|
|
gtk_list_store_set(widgets->DevicesList,&iter,
|
|
|
|
char *size_str = yon_size_get_name_from_letter(size_string[strlen(size_string)-1]);
|
|
|
|
0,yon_char_return_if_exist(parsed[0],""),
|
|
|
|
size_string[strlen(size_string)-1] = '\0';
|
|
|
|
1,yon_char_return_if_exist(parsed[2],""),
|
|
|
|
char *size_final_string = yon_char_unite(size_string," ",size_str,NULL);
|
|
|
|
2,yon_char_return_if_exist(parsed[4],""),
|
|
|
|
gtk_list_store_set(widgets->DevicesList,&iter,0,json_object_get_string(path),1,json_object_get_string(model),2,json_object_get_string(serial),3,size_final_string,4,json_object_get_string(vendor),6,1,-1);
|
|
|
|
3,yon_char_return_if_exist(size_string,""),
|
|
|
|
free(size_string);
|
|
|
|
4,yon_char_return_if_exist(parsed[3],""),
|
|
|
|
free(size_str);
|
|
|
|
6,1,-1);
|
|
|
|
free(size_final_string);
|
|
|
|
// gtk_list_store_set(widgets->DevicesList,&iter,,1,json_object_get_string(model),2,json_object_get_string(serial),3,size_final_string,4,json_object_get_string(vendor),6,1,-1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
yon_char_parsed_free(parsed,parsed_size);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
|
yon_char_parsed_free(parameters,size);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void yon_os_password_open(GtkWidget *, main_window *widgets){
|
|
|
|
void yon_os_password_open(GtkWidget *, main_window *widgets){
|
|
|
|
|