mmenu; fix for minor bug -- when 'do not show app in main cat, if it has subcats...
[pandora-libraries.git] / minimenu / mmconf.c
index d0db0ba..ce9cbec 100644 (file)
@@ -11,6 +11,8 @@
 #include "pnd_container.h"
 #include "pnd_conf.h"
 #include "pnd_discovery.h"
+#include "pnd_notify.h"
+#include "pnd_dbusnotify.h"
 
 #include "mmenu.h"
 #include "mmconf.h"
@@ -32,9 +34,11 @@ 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 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 },
-  { "Keep bad categories in Other?", "Lazy dev! Put broken categories into Other to keep clean", "1",               "categories.good_cats_only", ct_boolean },
+  // dropped option -- we now strictly enforce free desktop categories (or user defined, but no more bogus PXML categories)
+  //    { "Keep bad categories in Other?", "Lazy dev! Put broken categories into Other to keep clean", "1",               "categories.good_cats_only", ct_boolean },
   { "Set CPU speed when leaving",    "Whether the next setting is applied or not",              "0",                "minimenu.use_run_speed",  ct_boolean },
   { "CPU speed when leaving",        "Before running app, set this speed; app may override.",   "500",              "minimenu.run_speed",      ct_cpu_speed },
   { "Wrap tab change",               "Changing tab left or right, does it wrap around?",        "0",                "tabs.wraparound",         ct_boolean },
@@ -569,6 +573,7 @@ unsigned char conf_prepare_page ( confitem_t *page ) {
       unsigned int i;
       char catname [ 512 ];
       char *actual_catname;
+      char finalbuf [ 101 ];
 
       for ( i = 0;  i < g_categorycount; i++ ) {
 
@@ -587,7 +592,13 @@ unsigned char conf_prepare_page ( confitem_t *page ) {
          continue;
        }
 
-       p -> text = strndup ( actual_catname, 40 );
+       if ( g_categories [ i ] -> parent_catname ) {
+         snprintf ( finalbuf, 100, "%s [%s]", actual_catname, g_categories [ i ] -> parent_catname );
+       } else {
+         strncpy ( finalbuf, actual_catname, 100 );
+       }
+
+       p -> text = strndup ( finalbuf, 40 );
        p -> desc = NULL;
        p -> def = NULL;