From f1e7580424cad883e895d813d061339537e504b5 Mon Sep 17 00:00:00 2001 From: skeezix Date: Sat, 12 Feb 2011 22:28:09 -0500 Subject: [PATCH] mmenu; fix for minor bug -- when 'do not show app in main cat, if it has subcats assigned', files with ovr that were in other for bad cat sake, and also have subcat, could get hidden. (see Abiword.) Fixed. --- minimenu/mmcat.c | 5 ++++- minimenu/mmcat.h | 2 +- minimenu/mmconf.c | 2 +- minimenu/mmenu.c | 9 ++++++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/minimenu/mmcat.c b/minimenu/mmcat.c index 7dbfa54..ab3e9d4 100644 --- a/minimenu/mmcat.c +++ b/minimenu/mmcat.c @@ -539,7 +539,10 @@ unsigned char category_meta_push ( char *catname, char *parentcatname, pnd_disco // so, is the cat we're looking at right now the apps main (or main alt) cat? if ( parentp ) { // and does this app have sub/altsub cats? - if ( app -> main_category1 || app -> main_category2 || app -> alt_category1 || app -> alt_category2 ) { + if ( ( parentp == 1 && ( app -> main_category1 || app -> main_category2 ) ) || + ( parentp == 2 && ( app -> alt_category1 || app -> alt_category2 ) ) + ) + { // and we're only desiring the subcat version of the app? if ( pnd_conf_get_as_int_d ( g_conf, "tabs.subcat_to_parent", 1 ) == 0 ) { // create the parent category, since we need to be able to place a folder here maybe diff --git a/minimenu/mmcat.h b/minimenu/mmcat.h index 6ee2108..612b670 100644 --- a/minimenu/mmcat.h +++ b/minimenu/mmcat.h @@ -57,7 +57,7 @@ typedef struct { unsigned char category_map_setup ( void ); // set up the mappings mm_category_t *category_map_query ( char *cat ); -unsigned char category_meta_push ( char *catname, char *parentcatname, pnd_disco_t *app, pnd_conf_handle ovrh, unsigned char visiblep, unsigned char parentp ); +unsigned char category_meta_push ( char *catname, char *parentcatname, pnd_disco_t *app, pnd_conf_handle ovrh, unsigned char visiblep, unsigned char parentp ); // parentp is 0 for child, 1 for parent - main, 2 for parent - alt // filesystem browser unsigned char category_fs_restock ( mm_category_t *cat ); diff --git a/minimenu/mmconf.c b/minimenu/mmconf.c index 7621802..ce9cbec 100644 --- a/minimenu/mmconf.c +++ b/minimenu/mmconf.c @@ -34,7 +34,7 @@ confitem_t page_general[] = { { "Show directory browser tabs", "Show a tab for each SD card?", "0", "filesystem.do_browser", ct_boolean }, { "Detail panel on start?", "Show or hide the detail panel when menu starts", "1", "display.show_detail_pane", ct_boolean }, { "Sub-categories as folders?", "If no, uses tabs instead of folders within tabs.", "1", "tabs.subcat_as_folders", ct_boolean }, - { "Sub-category apps in main cat?","If no, apps with subcategories are only in subcategories","1", "tabs.subcat_to_parent", ct_boolean }, + { "Sub-category apps in their main cat?","If no, apps with subcategories are only in subcategories","1", "tabs.subcat_to_parent", ct_boolean }, { "Start with app selected", "Whethor selection is placed by default or not", "0", "minimenu.start_selected", ct_boolean }, { "Auto discover pnd apps?", "If no, turn on diectory browser to manually find apps", "1", "filesystem.do_pnd_disco", ct_boolean }, // dropped option -- we now strictly enforce free desktop categories (or user defined, but no more bogus PXML categories) diff --git a/minimenu/mmenu.c b/minimenu/mmenu.c index f8ba263..6ada53f 100644 --- a/minimenu/mmenu.c +++ b/minimenu/mmenu.c @@ -677,12 +677,19 @@ void applications_scan ( void ) { // is this app suppressed? if not, show it in whatever categories the user is allowing if ( iter -> unique_id && app_is_visible ( g_conf, iter -> unique_id ) ) { +#if 0 + pnd_log ( pndn_rem, "App %s [%s] cat %s %s %s alt %s %s %s\n", + iter -> unique_id, IFNULL(iter->title_en,"n/a"), + IFNULL(iter->main_category,"n/a"), IFNULL(iter->main_category1,"n/a"), IFNULL(iter->main_category2,"n/a"), + IFNULL(iter->alt_category,"n/a"), IFNULL(iter->alt_category1,"n/a"), IFNULL(iter->alt_category2,"n/a") ); +#endif + // main categories category_meta_push ( iter -> main_category, NULL /* no parent cat */, iter, ovrh, cat_is_visible ( g_conf, iter -> main_category ), 1); category_meta_push ( iter -> main_category1, iter -> main_category, iter, ovrh, cat_is_visible ( g_conf, iter -> main_category1 ), 0 ); category_meta_push ( iter -> main_category2, iter -> main_category, iter, ovrh, cat_is_visible ( g_conf, iter -> main_category2 ), 0 ); // alt categories - category_meta_push ( iter -> alt_category, NULL /* no parent cat */, iter, ovrh, cat_is_visible ( g_conf, iter -> alt_category ), 1 ); + category_meta_push ( iter -> alt_category, NULL /* no parent cat */, iter, ovrh, cat_is_visible ( g_conf, iter -> alt_category ), 2 ); category_meta_push ( iter -> alt_category1, iter -> alt_category, iter, ovrh, cat_is_visible ( g_conf, iter -> alt_category1 ), 0 ); category_meta_push ( iter -> alt_category2, iter -> alt_category, iter, ovrh, cat_is_visible ( g_conf, iter -> alt_category2 ), 0 ); -- 2.39.2