diff --git a/source/ubl-settings-kernel.c b/source/ubl-settings-kernel.c index 71e3fd3..2be8423 100644 --- a/source/ubl-settings-kernel.c +++ b/source/ubl-settings-kernel.c @@ -125,7 +125,8 @@ gboolean yon_tab_create_tags(kernels_tab *tab){ } g_list_free(list); if (!getuid()){ - if (tab->module_installed){ + switch(tab->module_installed){ + case 1:{ 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); @@ -133,23 +134,36 @@ gboolean yon_tab_create_tags(kernels_tab *tab){ gtk_widget_show(tab->update_module_button); gtk_widget_hide(tab->install_module_button); - } else { + } break; + case 0:{ gtk_widget_hide(tab->remove_module_button); gtk_widget_hide(tab->update_module_button); gtk_widget_show(tab->install_module_button); + } break; + case -1: { + gtk_widget_hide(tab->remove_module_button); + gtk_widget_hide(tab->update_module_button); + gtk_widget_hide(tab->install_module_button); + } break; } - { - if (tab->package_installed){ + switch (tab->package_installed){ + case 1: { 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); gtk_widget_hide(tab->install_package_button); gtk_widget_show(tab->remove_package_button); gtk_widget_show(tab->update_package_button); - } else { + } break; + case 0:{ gtk_widget_show(tab->install_package_button); gtk_widget_hide(tab->remove_package_button); gtk_widget_hide(tab->update_package_button); + }break; + case -1:{ + gtk_widget_hide(tab->remove_package_button); + gtk_widget_hide(tab->update_package_button); + gtk_widget_hide(tab->install_package_button); } } if (tab->package_installed||tab->module_installed){ @@ -198,31 +212,41 @@ char *yon_package_string_set(char *target){ 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); //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); //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); //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); //if package has updates - if (!system(yon_debug_output("%s\n",check_install_command))){ - tab->package_updated = 0; - } else tab->package_updated = 1; - free(check_install_command); - + char *check_install_command = NULL; + if (yon_char_is_empty(target_module)){ + tab->module_installed=-1; + } else { + 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_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); + } + if (yon_char_is_empty(target_package)){ + tab->package_installed=-1; + } else { + 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_package); //if package has updates + if (!system(yon_debug_output("%s\n",check_install_command))){ + tab->package_updated = 0; + } else tab->package_updated = 1; + free(check_install_command); + } + if (tab->package_installed==-1&&tab->module_installed==-1){ + gtk_widget_destroy(tab->main_box); + tab->main_box=NULL; + } gdk_threads_add_idle((GSourceFunc)yon_tab_create_tags,tab); return NULL; }