|
|
|
|
@ -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);
|
|
|
|
|
}
|