diff --git a/gresource.xml b/gresource.xml
index 0c44160..0ed7fcf 100644
--- a/gresource.xml
+++ b/gresource.xml
@@ -12,6 +12,7 @@
ubinstall-gtk-menu.glade
ubinstall-gtk-menu-item.glade
ubinstall-gtk-kernel-row.glade
+ ubinstall-gtk-os-row.glade
ubinstall-gtk-service-window.glade
ubinstall-gtk-bootloader-user.glade
ubinstall-gtk-network-box.glade
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index 8d983f6..990ee99 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -69,6 +69,7 @@ set(DEPENDFILES
../ubinstall-gtk-menu.glade
../ubinstall-gtk-menu-item.glade
../ubinstall-gtk-kernel-row.glade
+ ../ubinstall-gtk-os-row.glade
../ubinstall-gtk-service-window.glade
../ubinstall-gtk-bootloader-user.glade
../ubinstall-gtk-network-box.glade
diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c
index e637f86..45e586d 100644
--- a/source/ubinstall-gtk-components.c
+++ b/source/ubinstall-gtk-components.c
@@ -52,18 +52,19 @@ int yon_kernel_addon_save(main_window *widgets){
}
int yon_os_components_save(main_window *widgets){
- GtkTreeIter iter;
- GtkTreeModel *model = GTK_TREE_MODEL(widgets->OSSoftwareList);
- int size = 0;
+ GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
+ GList *iter;
+ int size;
config_str modules = NULL;
- for_iter(model,&iter){
- char *target;
- int status;
- gtk_tree_model_get(model,&iter,0,&status,1,&target,-1);
+ for(iter = list;iter;iter=iter->next){
+ kernel_row *row = g_object_get_data(iter->data,"kernel_row");
+ char *target = row->name;
+ int status = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck));
if (status){
yon_char_parsed_add_or_create_if_exists(modules,&size,target);
}
}
+ g_list_free(list);
if (size){
char *final = yon_char_parsed_to_string(modules,size,",");
yon_config_register(modules_parameter,modules_parameter_command,final);
@@ -73,26 +74,79 @@ int yon_os_components_save(main_window *widgets){
return 1;
}
+os_row *yon_os_row_new(){
+ os_row *row = new(os_row);
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_os_row);
+ row->RowBox = yon_gtk_builder_get_widget(builder,"TableRow");
+ row->InstallCheck = yon_gtk_builder_get_widget(builder,"InstallCheck");
+ row->NameLabel = yon_gtk_builder_get_widget(builder,"NameLabel");
+ row->TagsBox = yon_gtk_builder_get_widget(builder,"TagsBox");
+ row->VersionLabel = yon_gtk_builder_get_widget(builder,"VersionLabel");
+ row->DescriptionLabel = yon_gtk_builder_get_widget(builder,"DescriptionLabel");
+ row->name=NULL;
+ row->modules=NULL;
+ row->version=NULL;
+
+ g_signal_connect(G_OBJECT(row->InstallCheck),"toggled",G_CALLBACK(on_kernel_install_enabled),row);
+
+ row->row = gtk_list_box_row_new();
+ gtk_container_add(GTK_CONTAINER(row->row),row->RowBox);
+ gtk_widget_show(row->row);
+
+ g_object_set_data(G_OBJECT(row->InstallCheck),"kernel_row",row);
+ g_object_set_data(G_OBJECT(row->row),"kernel_row",row);
+
+ return row;
+}
+
+void yon_os_row_setup(os_row *row, char *name, char *version,char *tags, char *description){
+ row->name = yon_char_new(name);
+
+ char *description_full = yon_char_new(description);
+ if (strlen(description)>100){
+ guint size;
+ config_str description_wrapped = yon_char_wrap_to_lines(description,3,&size);
+ description_full = yon_char_parsed_to_string(description_wrapped,size,"\n");
+ yon_char_parsed_free(description_wrapped,size);
+ }
+ gtk_label_set_label(GTK_LABEL(row->NameLabel),name);
+ gtk_label_set_label(GTK_LABEL(row->VersionLabel),version);
+ gtk_label_set_label(GTK_LABEL(row->DescriptionLabel),description_full);
+
+ yon_kernel_row_setup_tags((kernel_row*)row,tags);
+ free(description_full);
+}
+
void yon_os_components_init(main_window *widgets){
- GtkTreeIter iter;
- if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->OSSoftwareList),&iter)){
+ int size = 0;
+ GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
+ GList *iter;
+ if (!list){
int base_size;
- config_str base = yon_file_ls(system_base_modules_path,&base_size);
+ config_str base = yon_config_load(get_modules_command,&base_size);
for (int i=0;iOSSoftwareList,&iter);
- gtk_list_store_set(widgets->OSSoftwareList,&iter,0,0,1,base[i],2,version,3,description,-1);
+ int parsed_size;
+ config_str parsed = yon_char_parse(base[i],&parsed_size,";");
+ char *version = parsed[1];
+ char *name = parsed[0];
+ char *tags = yon_char_replace(parsed[2]," ",", ");
+ char *description = parsed[3];
+ os_row *row = yon_os_row_new();
+ yon_os_row_setup(row,name,version,tags,description);
+ gtk_list_box_insert(GTK_LIST_BOX(widgets->OSSoftwareListBox),row->row,-1);
+ int min_size=0;
+ gtk_widget_get_preferred_width(row->NameLabel,&min_size,NULL);
+ if (min_size>size) size=min_size;
+
+
}
- int modules_size;
- config_str modules = yon_file_ls(system_modules_path,&modules_size);
- for (int i=0;iOSSoftwareList,&iter);
- char *version = yon_packages_get_version(YON_PACKAGES_SYNC,base[i]);
- char *description = yon_packages_get_description(YON_PACKAGES_SYNC,base[i]);
- gtk_list_store_set(widgets->OSSoftwareList,&iter,0,0,1,modules[i],2,version,3,description,-1);
+ yon_char_parsed_free(base,base_size);
+ while(gtk_events_pending()) gtk_main_iteration();
+ list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
+ for(iter = list;iter;iter=iter->next){
+ os_row *row = g_object_get_data(iter->data,"kernel_row");
+ gtk_widget_set_size_request(row->NameLabel,size,-1);
}
}
@@ -100,17 +154,16 @@ void yon_os_components_init(main_window *widgets){
if (!yon_char_is_empty(modules)){
int parsed_size;
config_str parsed = yon_char_parse(modules,&parsed_size,",");
- GtkTreeIter iter;
- for_iter (GTK_TREE_MODEL(widgets->OSSoftwareList),&iter){
- char *target;
- gtk_tree_model_get(GTK_TREE_MODEL(widgets->OSSoftwareList),&iter,1,&target,-1);
+ for(iter = list;iter;iter=iter->next){
+ os_row *row = g_object_get_data(iter->data,"kernel_row");
+ char *target = row->name;
if (yon_char_parsed_check_exist(parsed,parsed_size,target)>-1){
- gtk_list_store_set(widgets->OSSoftwareList,0,1,-1);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1);
} else {
- gtk_list_store_set(widgets->OSSoftwareList,0,0,-1);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1);
}
}
- yon_char_parsed_free(parsed,parsed_size);
+ yon_char_parsed_free(parsed,parsed_size);
}
}
diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c
index 04e0f5a..3b9d3bf 100644
--- a/source/ubinstall-gtk-kernel.c
+++ b/source/ubinstall-gtk-kernel.c
@@ -85,7 +85,9 @@ void yon_kernel_row_setup_tags(kernel_row *row, char *tags){
tag_type = "tag_blue";
} else if (!strcmp(tag_name,REACTIVE_TAG)){
tag_type = "tag_purple";
- } else continue;
+ } else{
+ tag_type = "tag_green";
+ };
yon_tag_add(GTK_BOX(row->TagsBox),tag_name,tag_type,NULL);
}
}
diff --git a/source/ubinstall-gtk-log.c b/source/ubinstall-gtk-log.c
index 27c54a5..5de4a71 100644
--- a/source/ubinstall-gtk-log.c
+++ b/source/ubinstall-gtk-log.c
@@ -65,7 +65,7 @@ void on_process_log_view(GtkWidget *,main_window *widgets){
window->monitor = g_file_monitor_file(file,G_FILE_MONITOR_NONE,NULL,NULL);
g_signal_connect(G_OBJECT(window->monitor),"changed",G_CALLBACK(yon_read_log),window);
g_object_unref(file);
- yon_read_log(NULL,NULL,NULL,NULL,window);
+ yon_read_log(NULL,NULL,NULL,G_FILE_MONITOR_EVENT_CHANGED,window);
}
void on_summary_log_view(GtkWidget *,main_window *widgets){
@@ -80,7 +80,7 @@ void on_summary_log_view(GtkWidget *,main_window *widgets){
window->monitor = g_file_monitor_file(file,G_FILE_MONITOR_NONE,NULL,NULL);
g_signal_connect(G_OBJECT(window->monitor),"changed",G_CALLBACK(yon_read_log),window);
g_object_unref(file);
- yon_read_log(NULL,NULL,NULL,NULL,window);
+ yon_read_log(NULL,NULL,NULL,G_FILE_MONITOR_EVENT_CHANGED,window);
}
void yon_installation_progress_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_window *widgets) {
diff --git a/source/ubinstall-gtk-network.c b/source/ubinstall-gtk-network.c
index 5aa2ebb..24a0e8b 100644
--- a/source/ubinstall-gtk-network.c
+++ b/source/ubinstall-gtk-network.c
@@ -151,8 +151,8 @@ void on_connection_add(GtkWidget *,main_window *widgets){
int yon_network_save(main_window *widgets){
if (gtk_switch_get_active(GTK_SWITCH(widgets->NetworkDomainSwitch))){
const char *domain_name = gtk_entry_get_text(GTK_ENTRY(widgets->NetworkDomainNameEntry));
- if (!yon_char_is_empty(domain_name)){
- yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
+ if (yon_char_is_empty(domain_name)){
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainNameEntry);
return 0;
}
@@ -161,7 +161,7 @@ int yon_network_save(main_window *widgets){
if (!yon_char_is_empty(domain_name)) yon_config_register(DOMAIN_parameter,DOMAIN_parameter_command,(char*)domain_name);
else yon_config_remove_by_key(DOMAIN_parameter);
if ((!yon_char_is_empty(domain_admin)&&yon_char_is_empty(domain_password))||(yon_char_is_empty(domain_admin)&&!yon_char_is_empty(domain_password))){
- yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainAdminEntry);
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainPasswordEntry);
return 0;
@@ -170,7 +170,7 @@ int yon_network_save(main_window *widgets){
int size;
config_str encrypted_password = yon_config_load(encrypt_domain_password_command(domain_password),&size);
if (!size){
- yon_ubl_status_box_render(ENCRYPT_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),ENCRYPT_ERROR_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->NetworkDomainPasswordEntry);
return 0;
}
@@ -199,7 +199,7 @@ int yon_network_save(main_window *widgets){
case 4:
char *value = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NetworkNTPEntry));
if (yon_char_is_empty(value)) {
- yon_ubl_status_box_render(EMPTY_IMPORTANT_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
+ yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->NetworkNTPEntry);
return 0;
}
diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c
index 7914afc..cdb47bd 100644
--- a/source/ubinstall-gtk-page-switch.c
+++ b/source/ubinstall-gtk-page-switch.c
@@ -20,10 +20,10 @@ enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){
case YON_PAGE_STARTUP: return YON_PAGE_BOOTLOADER; break;
case YON_PAGE_BOOTLOADER: return YON_PAGE_NETWORK; break;
case YON_PAGE_NETWORK: return main_config.configure_mode? YON_PAGE_CONFIGURE_END : YON_PAGE_INSTALLATION; break;
- case YON_PAGE_INSTALL_COMMON: return main_config.configure_mode?YON_PAGE_KERNEL:YON_PAGE_INSTALLATION_BEGIN; break;
- case YON_PAGE_INSTALL_SEPARATE: return main_config.configure_mode?YON_PAGE_KERNEL:YON_PAGE_INSTALLATION_BEGIN; break;
- case YON_PAGE_INSTALL_SAME_PARTITION: return main_config.configure_mode?YON_PAGE_KERNEL:YON_PAGE_INSTALLATION_BEGIN; break;
- case YON_PAGE_INSTALL_ADVANCED: return main_config.configure_mode?YON_PAGE_KERNEL:YON_PAGE_INSTALLATION_BEGIN; break;
+ case YON_PAGE_INSTALL_COMMON: return main_config.configure_mode?YON_PAGE_KERNEL:YON_PAGE_OS_COMPONENTS; break;
+ case YON_PAGE_INSTALL_SEPARATE: return main_config.configure_mode?YON_PAGE_KERNEL:YON_PAGE_OS_COMPONENTS; break;
+ case YON_PAGE_INSTALL_SAME_PARTITION: return main_config.configure_mode?YON_PAGE_KERNEL:YON_PAGE_OS_COMPONENTS; break;
+ case YON_PAGE_INSTALL_ADVANCED: return main_config.configure_mode?YON_PAGE_KERNEL:YON_PAGE_OS_COMPONENTS; break;
case YON_PAGE_INSTALL_RECOVERY: return yon_recovery_get_next(widgets); break;
case YON_PAGE_RECOVERY_GRUB_INSTALL: return main_config.configure_mode?YON_PAGE_INSTALLATION:YON_PAGE_INSTALLATION_BEGIN; break;
case YON_PAGE_RECOVERY_GRUB_UPDATE: return main_config.configure_mode?YON_PAGE_INSTALLATION:YON_PAGE_INSTALLATION_BEGIN; break;
@@ -338,6 +338,14 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){
break;
case YON_PAGE_INSTALLATION:
main_config.save_configured=1;
+ g_mutex_lock(&main_config.install_mutex);
+ if (main_config.install_complete){
+ g_mutex_unlock(&main_config.install_mutex);
+ on_setup_system_configuration(widgets);
+ on_page_next_clicked(NULL,widgets);
+ } else {
+ g_mutex_unlock(&main_config.install_mutex);
+ }
break;
default: break;
}
diff --git a/source/ubinstall-gtk-saving.c b/source/ubinstall-gtk-saving.c
index b032a1b..11b49bb 100644
--- a/source/ubinstall-gtk-saving.c
+++ b/source/ubinstall-gtk-saving.c
@@ -580,9 +580,6 @@ void *on_setup_system_configuration(void * data){
if (widgets){};
int size;
config_str all_parameters = yon_config_get_selection_by_key(&size,
- user_name_parameter,
- user_gecos_parameter,
- user_password_parameter,
root_password_parameter,
autologin_parameter,
xkbmodel_parameter,
@@ -593,7 +590,49 @@ void *on_setup_system_configuration(void * data){
zone_parameter,
lang_parameter,
locale_parameter,
+ SERVICES_ENABLE_parameter,
+ GRUB_DEFAULT_parameter,
+ GRUB_TIMEOUT_parameter,
+ AUTOLOGINUSER_parameter,
+ GRUB_SUPERUSERS_parameter,
+ DOMAIN_parameter,
+ DOMAIN_admanger_parameter,
+ NTPSERVERS_parameter,
+ modules_extra_parameter,
+ KERNEL_BOOT_parameter,
+ modules_parameter,
+ packages_parameter,
NULL);
+ int user_size=0;
+ config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&user_size);
+ if (user_size){
+ int final_size;
+ config_str final = yon_char_parsed_merge(all_parameters,size,users,user_size,&final_size);
+ yon_char_parsed_free(users,user_size);
+ if (size) yon_char_parsed_free(all_parameters,size);
+ all_parameters = final;
+ size = final_size;
+ }
+ users = yon_config_get_all_by_key(GRUB_PASSWORD_parameter_search,&user_size);
+ if (users){
+ int final_size;
+ config_str final = yon_char_parsed_merge(all_parameters,size,users,user_size,&final_size);
+ yon_char_parsed_free(users,user_size);
+ if (size) yon_char_parsed_free(all_parameters,size);
+ all_parameters = final;
+ size = final_size;
+ }
+ int network_size;
+ config_str networks = yon_config_get_all_by_key(NETWORK_parameter_search,&network_size);
+ if (network_size){
+ int final_size;
+ config_str final = yon_char_parsed_merge(all_parameters,size,networks,network_size,&final_size);
+ yon_char_parsed_free(networks,network_size);
+ if (size) yon_char_parsed_free(all_parameters,size);
+ all_parameters = final;
+ size = final_size;
+ }
+
if (all_parameters){
char *parameter_string = yon_char_parsed_to_string(all_parameters,size," ");
char *command = set_user_config_command(parameter_string);
diff --git a/source/ubinstall-gtk-startup-services.c b/source/ubinstall-gtk-startup-services.c
index 92005b4..aaa0fbd 100644
--- a/source/ubinstall-gtk-startup-services.c
+++ b/source/ubinstall-gtk-startup-services.c
@@ -144,7 +144,7 @@ int yon_startup_save(main_window *widgets){
list_size++;
char *target;
int status;
- gtk_tree_model_get(model,&iter,0,&status,1,&target,-1);
+ gtk_tree_model_get(model,&iter,0,&status,2,&target,-1);
if (status){
yon_char_parsed_add_or_create_if_exists(modules,&size,target);
}
diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c
index 4088503..046599c 100644
--- a/source/ubinstall-gtk.c
+++ b/source/ubinstall-gtk.c
@@ -6,14 +6,6 @@ int cur_slide=0;
// //functions
-void on_os_components_toggled(GtkWidget*, char *path, main_window *widgets){
- GtkTreeIter iter;
- int status;
- gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->OSSoftwareList),&iter,path);
- gtk_tree_model_get(GTK_TREE_MODEL(widgets->OSSoftwareList),&iter,0,&status,-1);
- gtk_list_store_set(widgets->OSSoftwareList,&iter,0,!status,-1);
-}
-
void on_pacman_software_all_toggled(GtkWidget *, char *path, main_window *widgets){
GtkTreeIter iter;
char *name, *type, *description;
@@ -485,9 +477,11 @@ main_window *yon_main_window_complete(){
widgets->KernelAddonModulesLabel = yon_gtk_builder_get_widget(builder,"KernelAddonModulesLabel");
widgets->KernelAddonDescriptionLabel = yon_gtk_builder_get_widget(builder,"KernelAddonDescriptionLabel");
- widgets->OSSoftwareTree = yon_gtk_builder_get_widget(builder,"OSSoftwareTree");
- widgets->OSSoftwareList = GTK_LIST_STORE(gtk_builder_get_object(builder,"OSSoftwareList"));
- widgets->OSSoftwareCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"OSSoftwareCell"));
+ widgets->OSSoftwareListBox = yon_gtk_builder_get_widget(builder,"OSSoftwareListBox");
+ widgets->OSSoftwareInstallLabel = yon_gtk_builder_get_widget(builder,"OSSoftwareInstallLabel");
+ widgets->OSSoftwareNameLabel = yon_gtk_builder_get_widget(builder,"OSSoftwareNameLabel");
+ widgets->OSSoftwareTagsLabel = yon_gtk_builder_get_widget(builder,"OSSoftwareTagsLabel");
+ widgets->OSSoftwareDescriptionLabel = yon_gtk_builder_get_widget(builder,"OSSoftwareDescriptionLabel");
widgets->PacmanSoftwareSearchEntry = yon_gtk_builder_get_widget(builder,"PacmanSoftwareSearchEntry");
widgets->PacmanSoftwareStatusImage = yon_gtk_builder_get_widget(builder,"PacmanSoftwareStatusImage");
@@ -607,7 +601,6 @@ main_window *yon_main_window_complete(){
yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->NextInstallationFormatRevealer),GTK_SWITCH(widgets->NextInstallationFormatSwitch));
yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->SameInstallationFormatRevealer),GTK_SWITCH(widgets->SameInstallationFormatSwitch));
- g_signal_connect(G_OBJECT(widgets->OSSoftwareCell),"toggled",G_CALLBACK(on_os_components_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->PacmanSoftwareAllCell),"toggled",G_CALLBACK(on_pacman_software_all_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->PacmanSoftwareChosenCell),"toggled",G_CALLBACK(on_pacman_software_chosen_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->PacmanSoftwareSearchEntry),"icon-press",G_CALLBACK(on_pacman_icon_press),widgets);
diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h
index 344da05..92bb622 100755
--- a/source/ubinstall-gtk.h
+++ b/source/ubinstall-gtk.h
@@ -30,6 +30,7 @@
#define glade_path_menu_window "/com/ublinux/ui/ubinstall-gtk-menu.glade"
#define glade_path_menu_item "/com/ublinux/ui/ubinstall-gtk-menu-item.glade"
#define glade_path_kernel_row "/com/ublinux/ui/ubinstall-gtk-kernel-row.glade"
+#define glade_path_os_row "/com/ublinux/ui/ubinstall-gtk-os-row.glade"
#define glade_path_service "/com/ublinux/ui/ubinstall-gtk-service-window.glade"
#define glade_path_bootloader_user "/com/ublinux/ui/ubinstall-gtk-bootloader-user.glade"
#define glade_path_advanced_part "/com/ublinux/ui/ubinstall-gtk-advanced-box.glade"
@@ -78,6 +79,8 @@
"/com/ublinux/images/slide-12.png", \
NULL
+#define get_modules_command "pacman --color never -Ss ^ubm- | sed -Enr -e 'N;s/\\n/ ;/' -e \"s/^([^\\/]+)\\/([^[:blank:]]+)[[:blank:]]+([^[:blank:]]+)[[:blank:]]+(\\(([^\\)]+)\\)[^\\;]+|[^\\;]*);[[:blank:]]*(.*)/\\2;\\3;\\5;\\6/p\""
+
#define get_local_module_info_command(target) yon_char_unite("pacman --color never -Sp $(pacman -Ssq '",target,"') --print-format '%n;%v;%d' | grep -v \"^::\"",NULL);
#define get_menus_entry_command "/usr/lib/ublinux/scripts/grub-functions exec_get_all_menuentry"
@@ -132,32 +135,32 @@ layout && /description:/ {\
#define modules_extra_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[modules_extra]"
/*------------------------------------------------------------*/
-#define user_name_parameter "AUTOINSTALL[user_name]"
-#define user_name_parameter_command "ubconfig --source global --conarg get [autoinstall] AUTOINSTALL[user_name]"
-#define user_gecos_parameter "AUTOINSTALL[user_gecos]"
-#define user_gecos_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[user_gecos]"
-#define user_password_parameter "AUTOINSTALL[user_password]"
-#define user_password_parameter_command "ubconfig --source global --conarg get [autoinstall] AUTOINSTALL[user_password]"
-#define root_password_parameter "AUTOINSTALL[root_password]"
-#define root_password_parameter_command "ubconfig --source global --conarg get [autoinstall] AUTOINSTALL[root_password]"
-#define autologin_parameter "AUTOINSTALL[autologin]"
-#define autologin_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[autologin]"
-#define xkbmodel_parameter "AUTOINSTALL[xkbmodel]"
-#define xkbmodel_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[xkbmodel]"
-#define xkblayout_parameter "AUTOINSTALL[xkblayout]"
-#define xkblayout_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[xkblayout]"
-#define xkbvariant_parameter "AUTOINSTALL[xkbvariant]"
-#define xkbvariant_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[xkbvariant]"
-#define xkboptions_parameter "AUTOINSTALL[xkboptions]"
-#define xkboptions_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[xkboptions]"
-#define hostname_parameter "AUTOINSTALL[hostname]"
-#define hostname_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[hostname]"
-#define zone_parameter "AUTOINSTALL[zone]"
-#define zone_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[zone]"
-#define lang_parameter "AUTOINSTALL[lang]"
-#define lang_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[lang]"
-#define locale_parameter "AUTOINSTALL[locale]"
-#define locale_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[locale]"
+// #define user_name_parameter "AUTOINSTALL[user_name]"
+// #define user_name_parameter_command "ubconfig --source global --conarg get [autoinstall] AUTOINSTALL[user_name]"
+// #define user_gecos_parameter "AUTOINSTALL[user_gecos]"
+// #define user_gecos_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[user_gecos]"
+// #define user_password_parameter "AUTOINSTALL[user_password]"
+// #define user_password_parameter_command "ubconfig --source global --conarg get [autoinstall] AUTOINSTALL[user_password]"
+#define root_password_parameter "AUTOINSTALL['ubconfig set [users] DEFAULTROOTPASSWD']"
+#define root_password_parameter_command "ubconfig --source global --conarg get [autoinstall] AUTOINSTALL['ubconfig set [users] DEFAULTROOTPASSWD']"
+#define autologin_parameter "AUTOINSTALL['ubconfig set [desktop] AUTOLOGINUSER']"
+#define autologin_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [desktop] AUTOLOGINUSER']"
+#define xkbmodel_parameter "AUTOINSTALL['ubconfig set [keyboard] XKBMODEL']"
+#define xkbmodel_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBMODEL']"
+#define xkblayout_parameter "AUTOINSTALL['ubconfig set [keyboard] XKBLAYOUT']"
+#define xkblayout_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBLAYOUT']"
+#define xkbvariant_parameter "AUTOINSTALL['ubconfig set [keyboard] XKBVARIANT']"
+#define xkbvariant_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBVARIANT']"
+#define xkboptions_parameter "AUTOINSTALL['ubconfig set [keyboard] XKBOPTIONS']"
+#define xkboptions_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBOPTIONS']"
+#define hostname_parameter "AUTOINSTALL['ubconfig set [system] HOSTNAME']"
+#define hostname_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [system] HOSTNAME']"
+#define zone_parameter "AUTOINSTALL['ubconfig set [clock] ZONE']"
+#define zone_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [clock] ZONE']"
+#define lang_parameter "AUTOINSTALL['ubconfig set [locale] LANG']"
+#define lang_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [locale] LANG']"
+#define locale_parameter "AUTOINSTALL['ubconfig set [locale] LOCALE']"
+#define locale_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [locale] LOCALE']"
/*------------------------------------------------------------*/
#define part_size_parameter "AUTOINSTALL[part_size]"
@@ -587,9 +590,11 @@ typedef struct {
GtkWidget *KernelAddonModulesLabel;
GtkWidget *KernelAddonDescriptionLabel;
- GtkWidget *OSSoftwareTree;
- GtkListStore *OSSoftwareList;
- GtkCellRenderer *OSSoftwareCell;
+ GtkWidget *OSSoftwareListBox;
+ GtkWidget *OSSoftwareInstallLabel;
+ GtkWidget *OSSoftwareNameLabel;
+ GtkWidget *OSSoftwareTagsLabel;
+ GtkWidget *OSSoftwareDescriptionLabel;
GtkWidget *PacmanSoftwareSearchEntry;
GtkWidget *PacmanSoftwareStatusImage;
@@ -812,10 +817,10 @@ typedef struct {
typedef struct {
GtkWidget *row;
GtkWidget *RowBox;
+ GtkWidget *TagsBox;
GtkWidget *InstallCheck;
GtkWidget *EnableRadio;
GtkWidget *EnableSeparator;
- GtkWidget *TagsBox;
GtkWidget *TagsSeparator;
GtkWidget *NameLabel;
GtkWidget *DescriptionLabel;
@@ -826,6 +831,20 @@ typedef struct {
char *package;
} kernel_row;
+typedef struct {
+ GtkWidget *row;
+ GtkWidget *RowBox;
+ GtkWidget *TagsBox;
+ GtkWidget *InstallCheck;
+ GtkWidget *NameLabel;
+ GtkWidget *VersionLabel;
+ GtkWidget *DescriptionLabel;
+
+ char *name;
+ char *modules;
+ char *version;
+} os_row;
+
typedef struct {
GtkWidget *Window;
GtkWidget *StatusBox;
@@ -1000,7 +1019,6 @@ void on_startup_add_accept(GtkWidget *, main_window *widgets);
void yon_startup_services_setup(main_window *widgets);
void on_startup_services_remove(GtkWidget *self,main_window *widgets);
void on_startup_services_selection_changed(GtkWidget *,main_window *widgets);
-void on_os_components_toggled(GtkWidget*, char *path, main_window *widgets);
void on_pacman_software_all_toggled(GtkWidget *, char *path, main_window *widgets);
void on_pacman_software_chosen_toggled(GtkWidget *, char *path, main_window *widgets);
int yon_pacman_software_save(main_window *widgets);
@@ -1040,4 +1058,6 @@ void yon_advanced_set_device_sensitivity(main_window *widgets, gboolean state);
void on_advanced_parts_removed(GtkWidget *,GtkWidget*,main_window *widgets);
void on_advanced_parts_added(GtkWidget *,GtkWidget*,main_window *widgets);
void yon_advanced_partition_clear(main_window *widgets);
-void yon_layout_build(char *key, GHashTable *value, main_window *widgets);
\ No newline at end of file
+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();
\ No newline at end of file
diff --git a/ubinstall-gtk-kernel-row.glade b/ubinstall-gtk-kernel-row.glade
index b41c8db..7a5bd27 100644
--- a/ubinstall-gtk-kernel-row.glade
+++ b/ubinstall-gtk-kernel-row.glade
@@ -1,5 +1,5 @@
-
+
diff --git a/ubinstall-gtk-os-row.glade b/ubinstall-gtk-os-row.glade
new file mode 100644
index 0000000..6bde8c2
--- /dev/null
+++ b/ubinstall-gtk-os-row.glade
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade
index 796b36b..4355f51 100644
--- a/ubinstall-gtk.glade
+++ b/ubinstall-gtk.glade
@@ -731,6 +731,7 @@ agreement
5
5
left
+ False
True
@@ -1405,55 +1406,31 @@ and help you install UBLinux on your computer
True
in
-
+
True
- True
- OSSoftwareList
- 0
- both
-
-
-
-
-
-
-
-
- 0
-
-
-
-
-
-
- Module name
-
-
-
- 1
-
-
-
-
-
-
- Type
-
-
-
- 2
-
-
-
-
+ False
+ 5
+ 5
+ 5
+ 5
+ 5
+ 5
-
- Description
+
+ True
+ False
+ vertical
-
-
- 3
-
+
+ True
+ False
+ none
+
+
+ True
+ True
+ 1
+