Fixed Source saving; Fixed packages saving

pull/228/head
parent 3e6c713f88
commit b42bc3f439

@ -4,7 +4,7 @@
int yon_kernel_save(main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelListBox));
char *config_val = config(packages_parameter);
if (yon_char_is_empty(config_val)) yon_config_register(packages_parameter,packages_parameter_command,"");
if (yon_char_is_empty(config_val)) yon_config_register(packages_parameter,packages_parameter_command,NULL);
char *enabled_module = NULL;
int overall_size = 0;
int active_size = 0;
@ -91,8 +91,7 @@ os_row *yon_os_row_new(){
row->modules=NULL;
row->version=NULL;
row->row = gtk_list_box_row_new();
gtk_container_add(GTK_CONTAINER(row->row),row->RowBox);
row->row = yon_gtk_builder_get_widget(builder,"MainRow");
gtk_widget_show(row->row);
g_object_set_data(G_OBJECT(row->InstallCheck),"kernel_row",row);
@ -236,7 +235,7 @@ int yon_software_save(main_window *widgets){
GList *iter;
char *config_val = config(packages_parameter);
if (yon_char_is_empty(config_val)){
yon_config_register(packages_parameter,packages_parameter_command,"");
yon_config_register(packages_parameter,packages_parameter_command,NULL);
}
for(iter = list;iter;iter=iter->next){
os_row *row = g_object_get_data(iter->data,"kernel_row");
@ -285,6 +284,18 @@ void yon_software_init(main_window *widgets){
row->version = yon_packages_get_version(YON_PACKAGES_ALL,base[i]);
row->name = yon_char_new(base[i]);
row->tags = yon_packages_get_groups(YON_PACKAGES_ALL,base[i]);
int parsed_size;
config_str tags_parsed = yon_char_parse(row->tags,&parsed_size," ");
if (parsed_size){
int ubmodule_pos = yon_char_parsed_check_exist(tags_parsed,parsed_size,"ubmodule");
if (ubmodule_pos>-1){
free(tags_parsed[ubmodule_pos]);
tags_parsed[ubmodule_pos] = NULL;
row->tags = yon_char_parsed_to_string(tags_parsed,parsed_size," ");
}
yon_char_parsed_free(tags_parsed,parsed_size);
}
row->description = yon_packages_get_description(YON_PACKAGES_ALL,base[i]);
long size = yon_packages_get_size(YON_PACKAGES_ALL,base[i]);
char mod = '\0';
@ -342,9 +353,90 @@ void yon_pacman_init(main_window *widgets){
for (int i=0;i<size;i++){
char *description = yon_packages_get_description(YON_PACKAGES_SYNC,parsed[i]);
char *version = yon_packages_get_version(YON_PACKAGES_SYNC,parsed[i]);
long pkgsize = yon_packages_get_installed_size(YON_PACKAGES_SYNC,parsed[i]);
char mod = '\n';
double size_converted = yon_size_long_convert_automatic(pkgsize,&mod);
char *size_str = yon_char_unite(yon_char_from_double(size_converted)," ", yon_size_get_name_from_letter(mod),NULL);
GtkTreeIter iter;
gtk_list_store_append(widgets->PacmanSoftwareChosenList,&iter);
gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,_(description),-1);
gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,_(description),4,size_str,-1);
free(size_str);
}
yon_char_parsed_free(parsed,size);
}
void on_pacman_software_all_toggled(GtkWidget *, char *path, main_window *widgets){
GtkTreeIter iter;
char *name, *type, *description, *size_str;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PacmanSoftwareAllList),&iter,path);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PacmanSoftwareAllList),&iter,1,&name,2,&type,3,&description,4,&size_str,-1);
gtk_list_store_remove(widgets->PacmanSoftwareAllList,&iter);
gtk_list_store_append(widgets->PacmanSoftwareChosenList,&iter);
gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,name,2,type,3,description,4,size_str,-1);
g_hash_table_add(widgets->pacmanchosen,yon_char_new(name));
}
void on_pacman_software_chosen_toggled(GtkWidget *, char *path, main_window *widgets){
GtkTreeIter iter;
char *name, *type, *description, *size_str;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList),&iter,path);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList),&iter,1,&name,2,&type,3,&description,4,&size_str,-1);
gtk_list_store_remove(widgets->PacmanSoftwareChosenList,&iter);
gtk_list_store_append(widgets->PacmanSoftwareAllList,&iter);
gtk_list_store_set(widgets->PacmanSoftwareAllList,&iter,0,0,1,name,2,type,3,description,4,size_str,-1);
g_hash_table_remove(widgets->pacmanchosen,name);
}
gboolean yon_pacman_fill(struct pacman_struct *pacman){
main_window *widgets = pacman->widgets;
config_str loaded = pacman->packages;
int size = pacman->packages_size;
for (int i=0;i<size;i++){
if (g_hash_table_contains(widgets->pacmanchosen,loaded[i])) continue;
char *version = yon_packages_get_version(YON_PACKAGES_SYNC,loaded[i]);
char *description = yon_packages_get_description(YON_PACKAGES_SYNC,loaded[i]);
GtkTreeIter iter;
long pkgsize = yon_packages_get_installed_size(YON_PACKAGES_SYNC,loaded[i]);
char mod = '\n';
double size_converted = yon_size_long_convert_automatic(pkgsize,&mod);
char *size_str = yon_char_unite(yon_char_from_double(size_converted)," ", yon_size_get_name_from_letter(mod),NULL);
gtk_list_store_append(widgets->PacmanSoftwareAllList,&iter);
gtk_list_store_set(widgets->PacmanSoftwareAllList,&iter,0,0,1,loaded[i],2,version,3,description,4,size_str,-1);
if (!yon_char_is_empty(version))free(version);
if (!yon_char_is_empty(description)) free(description);
}
yon_char_parsed_free(loaded,size);
gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,1);
gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,1);
gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,1);
g_object_ref(G_OBJECT(widgets->MainSpinner));
gtk_container_remove(GTK_CONTAINER(widgets->PacmanLoadingOverlay),widgets->MainSpinner);
return G_SOURCE_REMOVE;
}
void *yon_pacman_load(struct pacman_struct *pacman){
const char *find_package = pacman->find_package;
// char *command = get_local_module_info_command(find_package);
pacman->packages = yon_packages_find(YON_PACKAGES_SYNC,find_package,&pacman->packages_size);
g_idle_add((GSourceFunc)yon_pacman_fill,pacman);
return NULL;
}
void on_pacman_icon_press(GtkEntry *self,GtkEntryIconPosition icon_pos,GdkEvent* ,main_window *widgets){
if(icon_pos != GTK_ENTRY_ICON_SECONDARY) return;
gtk_list_store_clear(widgets->PacmanSoftwareAllList);
const char *find_package = gtk_entry_get_text(self);
struct pacman_struct *pacman = new (struct pacman_struct);
pacman->widgets=widgets;
pacman->find_package=find_package;
gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,0);
gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,0);
gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,0);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->PacmanLoadingOverlay),widgets->MainSpinner);
g_thread_new("pacman_modules_get_thread",(GThreadFunc)yon_pacman_load,pacman);
}

@ -223,7 +223,7 @@ void on_source_accept(GtkWidget *,source_window *window){
}
if (!main_config.configure_mode){
int size;
config_str parameters = yon_config_get_save_parameters_by_key(&size,locale_parameter,lang_parameter,zone_parameter,NULL);
config_str parameters = yon_config_get_save_parameters_by_key(&size,source_parameter,NULL);
if (parameters){
char *command_parameters = yon_char_parsed_to_string(parameters,size," -- ");
char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL);

@ -161,78 +161,6 @@ void on_vnc_toggled(GtkWidget *self, main_window *){
g_list_free(children);
}
void on_pacman_software_all_toggled(GtkWidget *, char *path, main_window *widgets){
GtkTreeIter iter;
char *name, *type, *description;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PacmanSoftwareAllList),&iter,path);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PacmanSoftwareAllList),&iter,1,&name,2,&type,3,&description,-1);
gtk_list_store_remove(widgets->PacmanSoftwareAllList,&iter);
gtk_list_store_append(widgets->PacmanSoftwareChosenList,&iter);
gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,name,2,type,3,description,-1);
g_hash_table_add(widgets->pacmanchosen,yon_char_new(name));
}
void on_pacman_software_chosen_toggled(GtkWidget *, char *path, main_window *widgets){
GtkTreeIter iter;
char *name, *type, *description;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList),&iter,path);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList),&iter,1,&name,2,&type,3,&description,-1);
gtk_list_store_remove(widgets->PacmanSoftwareChosenList,&iter);
gtk_list_store_append(widgets->PacmanSoftwareAllList,&iter);
gtk_list_store_set(widgets->PacmanSoftwareAllList,&iter,0,0,1,name,2,type,3,description,-1);
g_hash_table_remove(widgets->pacmanchosen,name);
}
gboolean yon_pacman_fill(struct pacman_struct *pacman){
main_window *widgets = pacman->widgets;
config_str loaded = pacman->packages;
int size = pacman->packages_size;
for (int i=0;i<size;i++){
if (g_hash_table_contains(widgets->pacmanchosen,loaded[i])) continue;
char *version = yon_packages_get_version(YON_PACKAGES_SYNC,loaded[i]);
char *description = yon_packages_get_description(YON_PACKAGES_SYNC,loaded[i]);
GtkTreeIter iter;
gtk_list_store_append(widgets->PacmanSoftwareAllList,&iter);
gtk_list_store_set(widgets->PacmanSoftwareAllList,&iter,0,0,1,loaded[i],2,version,3,description,-1);
if (!yon_char_is_empty(version))free(version);
if (!yon_char_is_empty(description)) free(description);
}
yon_char_parsed_free(loaded,size);
gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,1);
gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,1);
gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,1);
g_object_ref(G_OBJECT(widgets->MainSpinner));
gtk_container_remove(GTK_CONTAINER(widgets->PacmanLoadingOverlay),widgets->MainSpinner);
return G_SOURCE_REMOVE;
}
void *yon_pacman_load(struct pacman_struct *pacman){
const char *find_package = pacman->find_package;
// char *command = get_local_module_info_command(find_package);
pacman->packages = yon_packages_find(YON_PACKAGES_SYNC,find_package,&pacman->packages_size);
g_idle_add((GSourceFunc)yon_pacman_fill,pacman);
return NULL;
}
void on_pacman_icon_press(GtkEntry *self,GtkEntryIconPosition icon_pos,GdkEvent* ,main_window *widgets){
if(icon_pos != GTK_ENTRY_ICON_SECONDARY) return;
gtk_list_store_clear(widgets->PacmanSoftwareAllList);
const char *find_package = gtk_entry_get_text(self);
struct pacman_struct *pacman = new (struct pacman_struct);
pacman->widgets=widgets;
pacman->find_package=find_package;
gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,0);
gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,0);
gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,0);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->PacmanLoadingOverlay),widgets->MainSpinner);
g_thread_new("pacman_modules_get_thread",(GThreadFunc)yon_pacman_load,pacman);
}
void on_toggle_button_switch_on(GtkWidget *, GtkToggleButton *toggle){
gtk_toggle_button_set_active(toggle,1);
}

@ -3,6 +3,12 @@
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css -->
<object class="GtkListBoxRow" id="MainRow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="activatable">False</property>
<property name="selectable">False</property>
<child>
<object class="GtkBox" id="TableRow">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -12,6 +18,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="margin-start">5</property>
<property name="draw-indicator">True</property>
<child>
<object class="GtkBox">
@ -116,7 +123,7 @@
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
@ -153,7 +160,7 @@
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
@ -175,16 +182,20 @@
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="DescriptionLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Description</property>
<property name="wrap">True</property>
<property name="xalign">0</property>
@ -193,7 +204,24 @@
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
@ -272,4 +300,6 @@
<class name="bggrey"/>
</style>
</object>
</child>
</object>
</interface>

@ -223,6 +223,8 @@
<column type="gchararray"/>
<!-- column-name Description -->
<column type="gchararray"/>
<!-- column-name Size -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="PacmanSoftwareChosenList">
@ -235,6 +237,10 @@
<column type="gchararray"/>
<!-- column-name Description -->
<column type="gchararray"/>
<!-- column-name Size -->
<column type="gchararray"/>
<!-- column-name SizeLong -->
<column type="glong"/>
</columns>
</object>
<object class="GtkAdjustment" id="PartitionSize">
@ -3489,7 +3495,18 @@ agreement</property>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Type</property>
<property name="title" translatable="yes">Size</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">4</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Version</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
@ -3592,7 +3609,18 @@ agreement</property>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Type</property>
<property name="title" translatable="yes">Size</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">4</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Version</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>

Loading…
Cancel
Save