Installation saving fix

pull/95/head
parent cd0dc1ea9e
commit 68822fec17
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -1,7 +1,7 @@
#include "ubinstall-gtk.h"
int yon_keyboard_save(main_window *widgets){
GtkTreeIter iter;
GtkTreeIter iter,iter_child;
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->LayoutList),&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),LAYOUTS_CHOSEN_BUT_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->LayoutTree));
@ -12,9 +12,23 @@ int yon_keyboard_save(main_window *widgets){
char *cur_layout=NULL;
for_iter(layouts_model,&iter){
int chosen=0;
gtk_tree_model_get(layouts_model,&iter,0,&cur_layout,3,&chosen,-1);
int primary=0;
gtk_tree_model_get(layouts_model,&iter,0,&cur_layout,3,&chosen,4,&primary,-1);
if (chosen)
layouts_list = yon_char_unite(layouts_list,yon_char_is_empty(layouts_list)?"":",",cur_layout,NULL);
if (primary){
yon_config_register(xkbvariant_parameter,xkbvariant_parameter_command,cur_layout);
}
if (gtk_tree_model_iter_children(layouts_model,&iter_child,&iter)){
for(int valid2=1;valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->LayoutList),&iter_child)){
gtk_tree_model_get(layouts_model,&iter_child,0,&cur_layout,3,&chosen,4,&primary,-1);
if (chosen)
layouts_list = yon_char_unite(layouts_list,yon_char_is_empty(layouts_list)?"":",",cur_layout,NULL);
if (primary){
yon_config_register(xkbvariant_parameter,xkbvariant_parameter_command,cur_layout);
}
}
}
}
if (yon_char_is_empty(layouts_list))
@ -211,6 +225,7 @@ void on_keyboard_clicked (GtkWidget *, main_window *widgets){
ubinstall_keyboard_window *window = yon_ubinstall_keyboard_new();
yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),KEYBOARD_TITLE_LABEL,icon_path,"keyboard-window");
gtk_tree_view_set_model(GTK_TREE_VIEW(window->LayoutsTree),GTK_TREE_MODEL(widgets->LayoutList));
gtk_tree_view_column_clicked(gtk_tree_view_get_column(GTK_TREE_VIEW(window->LayoutsTree),1));
g_signal_connect(G_OBJECT(window->ActiveToggle),"toggled",G_CALLBACK(on_layout_toggle),window);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_keyboard_accept),widgets);
@ -228,7 +243,7 @@ void yon_layout_build(char *key, GHashTable *value, main_window *widgets){
for (iterator=list;iterator;iterator=iterator->next){
if (!yon_char_is_empty((char*)iterator->data)){
gtk_tree_store_append(widgets->LayoutList,&iter,&parent);
gtk_tree_store_set(widgets->LayoutList,&iter,0,(char*)iterator->data,1,_((char*)g_hash_table_lookup(value,iterator->data)),2,1,3,0,-1);
gtk_tree_store_set(widgets->LayoutList,&iter,0,(char*)iterator->data,1,_((char*)g_hash_table_lookup(value,iterator->data)),2,1,3,0,4,1,-1);
}
}
}
@ -299,4 +314,33 @@ void yon_keyboard_init(main_window *widgets){
} else {
}
}
void on_keyboard_layout_chosen(GtkCellRenderer *, gchar *path, main_window *widgets){
GtkTreeIter iter, itar, itor, itur;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->LayoutsFilter),&iter,path);
int status;
char *target;
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),&itur,&iter);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LayoutList),&itur,4,&status,1,&target,-1);
// g_signal_handlers_block_by_func(self,G_CALLBACK(on_keyboard_layout_chosen),widgets);
for_iter(GTK_TREE_MODEL(widgets->LayoutsFilter),&itar){
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),&itor,&itar);
// gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT(widgets->LayoutList),&itar,&itor);
gtk_tree_store_set(widgets->LayoutList,&itor,4,0,-1);
GtkTreeIter itor_child;
if (gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->LayoutList),&itor_child,&itor)){
for(int valid2=1;valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->LayoutList),&itor_child)){
gtk_tree_store_set(widgets->LayoutList,&itor_child,4,0,-1);
}
}
}
gtk_tree_store_set(widgets->LayoutList,&itur,4,!status,-1);
// g_signal_handlers_unblock_by_func(self,G_CALLBACK(on_keyboard_layout_chosen),widgets);
if (!status){
yon_config_register(xkbvariant_parameter,xkbvariant_parameter_command,target);
} else {
yon_config_remove_by_key(xkbvariant_parameter);
}
}

@ -174,6 +174,7 @@ int yon_network_save(main_window *widgets){
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainPasswordEntry);
return 0;
}
yon_char_remove_last_symbol(encrypted_password[0],'\n');
char *admin_string_full = yon_char_unite(domain_admin,":",encrypted_password[0],NULL);
yon_config_register(DOMAIN_admanger_parameter,DOMAIN_parameter_command,admin_string_full);
} else {

@ -520,16 +520,16 @@ void *on_config_save(void *data){
enum INSTALL_TYPE install_mode = yon_ubl_get_install_mode();
switch(install_mode){
case INSTALL_COMMON:
parameters = yon_config_get_selection_by_key_no_ignored(&size,install_common_parameters,NULL);
parameters = yon_config_get_selection_by_key_no_ignored(&size,install_common_parameters,modules_parameter,NULL);
break;
case INSTALL_PART:
parameters = yon_config_get_selection_by_key_no_ignored(&size,install_part_parameters,NULL);
parameters = yon_config_get_selection_by_key_no_ignored(&size,install_part_parameters,modules_parameter,NULL);
break;
case INSTALL_NEXT:
parameters = yon_config_get_selection_by_key_no_ignored(&size,install_next_parameters,NULL);
parameters = yon_config_get_selection_by_key_no_ignored(&size,install_next_parameters,modules_parameter,NULL);
break;
case INSTALL_ADVANCED:
parameters = yon_config_get_selection_by_key_no_ignored(&size,install_advanced_parameters,NULL);
parameters = yon_config_get_selection_by_key_no_ignored(&size,install_advanced_parameters,modules_parameter,NULL);
break;
case INSTALL_GRUB_INSTALL:
case INSTALL_GRUB_UPDATE:
@ -603,7 +603,6 @@ void *on_setup_system_configuration(void * data){
NTPSERVERS_parameter,
modules_extra_parameter,
KERNEL_BOOT_parameter,
modules_parameter,
packages_parameter,
NULL);
int user_size=0;
@ -637,6 +636,27 @@ void *on_setup_system_configuration(void * data){
}
if (all_parameters){
for (int i=0;i<size;i++){
char *parameter = yon_char_divide_search(all_parameters[i],"=",-1);
if (!strstr(parameter,"'")){
char *key = yon_config_parameter_get_key(parameter);
free(parameter);
char *tmp = yon_char_unite("'",key,"'",NULL);
free(key);
parameter = AUTOINSTALL(tmp);
free(tmp);
}
if (!strstr(all_parameters[i],"'")){
char *temp = yon_char_unite("'",all_parameters[i],"'",NULL);
free(all_parameters[i]);
all_parameters[i]=temp;
}
char *temp = yon_char_unite(parameter,"=",all_parameters[i],NULL);
free(all_parameters[i]);
all_parameters[i]=temp;
}
char *parameter_string = yon_char_parsed_to_string(all_parameters,size," ");
char *command = set_user_config_command(parameter_string);
if (system(yon_debug_output("%s\n",command))){};

@ -444,6 +444,7 @@ main_window *yon_main_window_complete(){
widgets->RegionAspect = yon_gtk_builder_get_widget(builder,"RegionAspect");
widgets->KeyboardImage = yon_gtk_builder_get_widget(builder,"KeyboardImage");
widgets->KeyboardBox = yon_gtk_builder_get_widget(builder,"KeyboardBox");
widgets->KeyboardLayoutChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"KeyboardLayoutChosenCell"));
widgets->AdditionalSoftwareList = GTK_LIST_STORE(gtk_builder_get_object(builder,"AdditionalSoftwareList"));
widgets->AdditionalSoftwareTree = yon_gtk_builder_get_widget(builder,"AdditionalSoftwareTree");
@ -622,6 +623,7 @@ main_window *yon_main_window_complete(){
g_signal_connect(G_OBJECT(widgets->AdvancedAddButton),"clicked",G_CALLBACK(on_install_advanced_add_new),widgets);
g_signal_connect(G_OBJECT(widgets->AdvancedDeviceChosenCell),"toggled",G_CALLBACK(on_install_advanced_device_chosen),widgets);
g_signal_connect(G_OBJECT(widgets->AdvancedPartChosenCell),"toggled",G_CALLBACK(on_install_advanced_partition_chosen),widgets);
g_signal_connect(G_OBJECT(widgets->KeyboardLayoutChosenCell),"toggled",G_CALLBACK(on_keyboard_layout_chosen),widgets);
// g_signal_connect(G_OBJECT(widgets->AdvancedPartitionAddBox),"add",G_CALLBACK(on_advanced_parts_added),widgets);
// g_signal_connect(G_OBJECT(widgets->AdvancedPartitionAddBox),"remove",G_CALLBACK(on_advanced_parts_removed),widgets);
g_signal_connect(G_OBJECT(widgets->StartScenarioButton),"clicked",G_CALLBACK(yon_quick_install),widgets);

@ -119,6 +119,7 @@ layout && /description:/ {\
#define get_devices_command "lsblk --noheadings --nodeps -Jo PATH,SIZE,MODEL,VENDOR,SERIAL --exclude 7,253"
#define get_parts_and_devices_command "lsblk --noheadings --bytes -o TYPE,PATH,SIZE,FSTYPE,LABEL,PARTLABEL,MOUNTPOINT,FSUSED,FSUSE% --exclude 7,253 |awk '{print ($1\";\"$2\";\"$3\";\"$4\";\"$5\";\"$6\";\"$7\";\"$8\";\"$9)}'"
#define AUTOINSTALL(target) yon_char_unite("AUTOINSTALL[",target,"]",NULL)
#define AUTOINSTALL_TYPE_INSTALL "AUTOINSTALL[install_type]"
#define AUTOINSTALL_TYPE_INSTALL_command "ubconfig --source global get [autoinstall] AUTOINSTALL[install_type]"
@ -185,7 +186,7 @@ layout && /description:/ {\
#define packages_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[packages]"
#define device_typevfs_parameter "AUTOINSTALL[device_typevfs]"
#define device_typevfs_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[device_typevfs]"
#define NTPSERVERS_parameter "AOUTINSTALL['ubconfig set [network] NTPSERVERS]"
#define NTPSERVERS_parameter "AOUTINSTALL[ubconfig set [network] NTPSERVERS]"
#define NTPSERVERS_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [network] NTPSERVERS']"
#define DOMAIN_parameter "AOUTINSTALL['ubconfig set [network] DOMAIN]"
#define DOMAIN_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [network] DOMAIN']"
@ -470,6 +471,7 @@ typedef struct {
GtkWidget *RegionAspect;
GtkWidget *KeyboardImage;
GtkWidget *KeyboardBox;
GtkCellRenderer *KeyboardLayoutChosenCell;
GtkWidget *Notebook;
GtkWidget *LicenceLabel;
@ -1049,4 +1051,5 @@ void yon_advanced_partition_clear(main_window *widgets);
void yon_layout_build(char *key, GHashTable *value, main_window *widgets);
void yon_os_row_setup(os_row *row, char *name, char *version,char *tags, char *description);
os_row *yon_os_row_new();
void yon_quick_install(GtkWidget *, main_window *widgets);
void yon_quick_install(GtkWidget *, main_window *widgets);
void on_keyboard_layout_chosen(GtkCellRenderer *self, gchar *path, main_window *widgets);

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css -->
@ -52,6 +52,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="expander-column">treeviewcolumn1</property>
<property name="search-column">0</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
@ -70,6 +71,8 @@
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Id</property>
<property name="sort-indicator">True</property>
<property name="sort-column-id">0</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>

@ -97,6 +97,8 @@
<column type="gboolean"/>
<!-- column-name Active -->
<column type="gboolean"/>
<!-- column-name MainLayout -->
<column type="gboolean"/>
</columns>
</object>
<object class="GtkTreeModelFilter" id="LayoutsFilter">
@ -2947,13 +2949,10 @@ and help you install UBLinux on your computer</property>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">column</property>
<child>
<object class="GtkCellRendererToggle">
<property name="radio">True</property>
</object>
<object class="GtkCellRendererToggle" id="KeyboardLayoutChosenCell"/>
<attributes>
<attribute name="activatable">3</attribute>
<attribute name="active">4</attribute>
</attributes>
</child>
</object>

Loading…
Cancel
Save