diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index d283a05..e12014d 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -152,10 +152,12 @@ void yon_os_row_setup(os_row *row, char *name, char *version,char *tags, char *d free(description_full); } -gboolean yon_os_component_insert(os_row *row){ - main_window *widgets = g_object_get_data(G_OBJECT(row->row),"widgets"); +gboolean yon_os_component_insert(struct row_data *row_input){ + os_row *row = yon_os_row_new(); + + main_window *widgets = row_input->widgets; gtk_list_box_insert(GTK_LIST_BOX(widgets->OSSoftwareListBox),row->row,-1); - yon_os_row_setup(row,row->name,row->version,row->tags,row->description); + yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,row_input->description); return G_SOURCE_REMOVE; } @@ -172,12 +174,12 @@ void *yon_os_components_setup(main_window *widgets){ yon_char_remove_last_symbol(base[i],'\n'); int parsed_size; config_str parsed = yon_char_parse(base[i],&parsed_size,";"); - os_row *row = yon_os_row_new(); + struct row_data *row = malloc(sizeof(struct row_data)); row->version = parsed[1]; row->name = parsed[0]; row->tags = yon_char_replace(parsed[2]," ",", "); row->description = parsed[3]; - g_object_set_data(G_OBJECT(row->row),"widgets",widgets); + row->widgets=widgets; g_idle_add((GSourceFunc)yon_os_component_insert,row); } g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 98729f2..cdeb5ea 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -962,6 +962,14 @@ typedef struct { advanced_partition *partition_widgets; } advanced_section; +struct row_data { + main_window *widgets; + char *version; + char *name; + char *tags; + char *description; +}; + void config_init(); main_window *yon_main_window_complete(); @@ -1164,7 +1172,7 @@ void set_locales_list(main_window *widgets); void on_installer_language_changed(GtkWidget *self, main_window *widgets); gboolean on_country_filter(GtkTreeModel *self, GtkTreeIter *iter, main_window *widgets); int yon_char_parsed_compare(const void *a, const void *b); -gboolean yon_os_component_insert(os_row *row); +gboolean yon_os_component_insert(struct row_data *row_input); void *yon_os_components_setup(main_window *widgets); gboolean yon_spinner_switch_off(GtkSpinner *target); void on_advanced_added(GtkWidget *, char *, main_window *); @@ -1188,4 +1196,5 @@ int yon_advanced_section_get_by_part(advanced_partition *part); void yon_advanced_section_remove_by_name(char *part); void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets); int yon_advanced_section_append(advanced_section *section); -gboolean on_format_changed(GtkWidget *self, gboolean state, advanced_partition *part); \ No newline at end of file +gboolean on_format_changed(GtkWidget *self, gboolean state, advanced_partition *part); +int yon_layouts_get(); \ No newline at end of file