Test fix for installation and removal buttons visibility logic

pull/24/head
parent 6a93cf973f
commit 071131160d

@ -133,6 +133,11 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
gtk_widget_show(tab->update_module_button);
gtk_widget_hide(tab->install_module_button);
} else {
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->update_module_button);
gtk_widget_show(tab->install_module_button);
}
{
if (tab->package_installed){
@ -141,6 +146,10 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
gtk_widget_hide(tab->install_package_button);
gtk_widget_show(tab->remove_package_button);
gtk_widget_show(tab->update_package_button);
} else {
gtk_widget_show(tab->install_package_button);
gtk_widget_hide(tab->remove_package_button);
gtk_widget_hide(tab->update_package_button);
}
}
if (tab->package_installed||tab->module_installed){
@ -194,23 +203,25 @@ void *yon_tab_set_installed(kernels_tab *tab){
char *target_module = yon_package_string_set(tab->module);
char *target_package = yon_package_string_set(tab->package);
char *check_install_command = get_package_is_installed_command(target_module);
char *check_install_command = get_package_is_installed_command(target_module); //if module installed
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->module_installed=1;
} else tab->module_installed=0;
free(check_install_command);
check_install_command = get_package_is_installed_command(target_package);
check_install_command = get_package_is_installed_command(target_package); //if package installed
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->package_installed=1;
} else tab->package_installed=0;
free(check_install_command);
check_install_command = get_package_is_updated_command(target_module);
check_install_command = get_package_is_updated_command(target_module); //if module has updates
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->module_updated = 0;
} else tab->module_updated = 1;
free(check_install_command);
check_install_command = get_package_is_updated_command(target_package);
check_install_command = get_package_is_updated_command(target_package); //if package has updates
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->package_updated = 0;
} else tab->package_updated = 1;
@ -567,7 +578,6 @@ void on_module_remove_clicked(GtkWidget *self,dictionary *dict){
char *command = remove_command(target);
char *command_unload = unload_command(target);
system(yon_debug_output("%s\n",command_unload));
// system(yon_debug_output("%s\n",command));
g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_module_remove_done),tab);
yon_command_execute_async(command,widgets);
tab->module_installed=0;
@ -609,44 +619,8 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
int size;
config_str parsed = yon_char_parse(target_string,&size,";");
if (size){
int types_size;
dictionary *cur = yon_dictionary_get(&main_config.kernel_tabs,parsed[2]);
kernels_tab *tab = NULL;
if (cur){
tab = (kernels_tab*)cur->data;
gtk_widget_hide(tab->changelog_button);
gtk_widget_show(tab->launch_button);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),"",GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),"",GTK_ICON_SIZE_BUTTON);
if (tab->module_installed){
gtk_widget_show(tab->remove_module_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_show(tab->remove_module_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->update_module_button);
gtk_widget_show(tab->install_module_button);
}
if (tab->package_installed){
gtk_widget_show(tab->remove_package_button);
gtk_widget_hide(tab->install_package_button);
gtk_widget_show(tab->changelog_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->remove_package_button);
gtk_widget_hide(tab->update_package_button);
gtk_widget_show(tab->install_package_button);
}
if (!tab->package_installed&&!tab->module_installed){
gtk_widget_hide(tab->launch_button);
}
} else {
int types_size;
tab = malloc(sizeof(kernels_tab));
@ -738,7 +712,6 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->RunSizeGroup),tab->run_tags_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),tab->description_label);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->ButtonsSizeGroup),gtk_widget_get_parent(tab->launch_button));
}
@ -748,42 +721,11 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
}
additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *target_string, main_window *widgets){
int size;
int size=0;
config_str parsed = yon_char_parse(target_string,&size,";");
if (size){
dictionary *cur = yon_dictionary_get(&main_config.addition_tabs,parsed[2]);
additions_kernels_tab *tab = NULL;
if (cur){
tab = (additions_kernels_tab*)cur->data;
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),"",GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),"",GTK_ICON_SIZE_BUTTON);
if (tab->module_installed){
gtk_widget_show(tab->remove_module_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_show(tab->update_module_button);
gtk_widget_show(tab->remove_module_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->update_module_button);
gtk_widget_hide(tab->remove_module_button);
gtk_widget_show(tab->install_module_button);
}
if (tab->package_installed){
gtk_widget_show(tab->update_package_button);
gtk_widget_show(tab->remove_package_button);
gtk_widget_hide(tab->install_package_button);
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_hide(tab->update_package_button);
gtk_widget_hide(tab->remove_package_button);
gtk_widget_show(tab->install_package_button);
}
} else {
GtkBuilder *builder = gtk_builder_new_from_resource(glade_additions_table_row_path);
tab = malloc(sizeof(additions_kernels_tab));
@ -819,28 +761,23 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
g_signal_connect(G_OBJECT(tab->remove_package_button),"clicked",G_CALLBACK(on_package_remove_clicked),dict);
gtk_list_box_insert(target,tab->main_box,-1);
int size;
config_str parsed = yon_char_parse(target_string,&size,";");
if (size){
tab->name = yon_char_new(parsed[0]);
tab->module = yon_char_new(parsed[1]);
tab->package = yon_char_new(parsed[2]);
char *name = yon_char_unite("<b>",tab->name,"</b>",NULL);
char *module = yon_char_unite("<i>",MODULE_LABEL," ",tab->module,"</i>",NULL);
char *package = yon_char_unite("<i>",PACKAGE_LABEL," ",tab->package,"</i>",NULL);
yon_dictionary_add_or_create_if_exists_with_data(main_config.addition_tabs,tab->package,tab);
gtk_label_set_markup(GTK_LABEL(tab->name_label),name);
gtk_label_set_markup(GTK_LABEL(tab->module_label),module);
gtk_label_set_markup(GTK_LABEL(tab->package_label),package);
gtk_label_set_text(GTK_LABEL(tab->description_label),parsed[3]);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->KernelSizeGroup),gtk_widget_get_parent(gtk_widget_get_parent(tab->name_label)));
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->InstallSizeGroup),tab->install_tags_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),tab->description_label);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->ButtonsSizeGroup),gtk_widget_get_parent(tab->remove_module_button));
}
}
tab->name = yon_char_new(parsed[0]);
tab->module = yon_char_new(parsed[1]);
tab->package = yon_char_new(parsed[2]);
char *name = yon_char_unite("<b>",tab->name,"</b>",NULL);
char *module = yon_char_unite("<i>",MODULE_LABEL," ",tab->module,"</i>",NULL);
char *package = yon_char_unite("<i>",PACKAGE_LABEL," ",tab->package,"</i>",NULL);
yon_dictionary_add_or_create_if_exists_with_data(main_config.addition_tabs,tab->package,tab);
gtk_label_set_markup(GTK_LABEL(tab->name_label),name);
gtk_label_set_markup(GTK_LABEL(tab->module_label),module);
gtk_label_set_markup(GTK_LABEL(tab->package_label),package);
gtk_label_set_text(GTK_LABEL(tab->description_label),parsed[3]);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->KernelSizeGroup),gtk_widget_get_parent(gtk_widget_get_parent(tab->name_label)));
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->InstallSizeGroup),tab->install_tags_box);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->DescriptionSizeGroup),tab->description_label);
gtk_size_group_add_widget(GTK_SIZE_GROUP(widgets->ButtonsSizeGroup),gtk_widget_get_parent(tab->remove_module_button));
return tab;
}
return NULL;

Loading…
Cancel
Save