diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index 71db915..43f8528 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -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;iPacmanSoftwareChosenList,&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;ipacmanchosen,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); } \ No newline at end of file diff --git a/source/ubinstall-gtk-source.c b/source/ubinstall-gtk-source.c index 1179c12..793e480 100644 --- a/source/ubinstall-gtk-source.c +++ b/source/ubinstall-gtk-source.c @@ -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); diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index f3cd3bb..1359eb3 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -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;ipacmanchosen,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); } diff --git a/ubinstall-gtk-os-row.glade b/ubinstall-gtk-os-row.glade index 9590bb8..1fd90f5 100644 --- a/ubinstall-gtk-os-row.glade +++ b/ubinstall-gtk-os-row.glade @@ -3,47 +3,84 @@ - + True - False - 5 + True + False + False - + True - True - False - True + False + 5 - + True - False - 5 - 5 - 5 - 5 + True + False + 5 + True True False - 1 - vertical + 5 + 5 + 5 5 True False - 7 + 1 + vertical + 5 - + True False - Name - 0 - False - 0 - - - + 7 + + + True + False + Name + 0 + False + 0 + + + + + + False + True + 0 + + + + + True + False + center + start + 3 + 5 + 2 + + + + + + False + True + end + 2 + + + False @@ -52,68 +89,57 @@ - + True False - center - start - 3 - 5 - 2 - - - False True - end - 2 + 1 - - - - False - True - 0 - - - - - True - False - - - False - True - 1 - - - - - True - False - 5 True False - vertical 5 True False + vertical 5 - + True False - Source: - 0 + 5 + + + True + False + Source: + 0 + + + True + True + 0 + + + + + True + False + 0 + + + False + True + 1 + + False @@ -122,17 +148,83 @@ - + True False - 0 + 5 + + + True + False + Version: + 0 + + + True + True + 0 + + + + + True + False + True + 15 + False + 0 + + + False + True + 1 + + - False + True True 1 + + + True + False + 5 + + + True + False + Description + True + 0 + 0 + + + True + True + 0 + + + + + True + False + + + False + True + 1 + + + + + True + True + 2 + + False @@ -144,12 +236,14 @@ True False + start 5 True False - Version: + start + Size: 0 @@ -159,12 +253,9 @@ - + True False - True - 15 - False 0 @@ -177,62 +268,7 @@ False True - 1 - - - - - True - False - 2 - Description - True - 0 - 0 - - - True - True end - 2 - - - - - False - True - 0 - - - - - True - False - start - 5 - - - True - False - start - Size: - 0 - - - False - True - 0 - - - - - True - False - 0 - - - False - True 1 @@ -240,36 +276,30 @@ False True - end - 1 + 2 - False + True True - 2 + 0 - - True - True - 0 - + + True + True + 0 + + - - True - True - 0 - - diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index c564068..5b04e9d 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -223,6 +223,8 @@ + + @@ -235,6 +237,10 @@ + + + + @@ -3489,7 +3495,18 @@ agreement - Type + Size + + + + 4 + + + + + + + Version @@ -3592,7 +3609,18 @@ agreement - Type + Size + + + + 4 + + + + + + + Version