diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/menuorg.cpp | 4 | ||||
-rw-r--r-- | src/menuorg.h | 2 | ||||
-rw-r--r-- | src/submenuprovider.cc | 30 |
3 files changed, 18 insertions, 18 deletions
diff --git a/src/menuorg.cpp b/src/menuorg.cpp index 9864efe..3da8a12 100644 --- a/src/menuorg.cpp +++ b/src/menuorg.cpp @@ -26,6 +26,7 @@ MenuOrgPlugin::MenuOrgPlugin(void) MenuOrgPlugin::~MenuOrgPlugin() { // Clean up after yourself! + delete _subMenuProvider; } const char* MenuOrgPlugin::Version(void) @@ -57,6 +58,7 @@ bool MenuOrgPlugin::ProcessArgs(int argc, char *argv[]) bool MenuOrgPlugin::Initialize(void) { + _subMenuProvider = new SubMenuProvider(); // Initialize any background activities the plugin shall perform. return true; } @@ -112,7 +114,7 @@ bool MenuOrgPlugin::Service(const char *Id, void *Data) if (strcmp(Id, "SubMenuPatch-v0.1::SubMenuProvider") == 0) { ISubMenuProvider** ptr = (ISubMenuProvider**)Data; - *ptr = &_subMenuProvider; + *ptr = _subMenuProvider; return true; } diff --git a/src/menuorg.h b/src/menuorg.h index 04b6f62..f6ca6be 100644 --- a/src/menuorg.h +++ b/src/menuorg.h @@ -11,7 +11,7 @@ using namespace SubMenuPatch; class MenuOrgPlugin : public cPlugin { private: - SubMenuProvider _subMenuProvider; + SubMenuProvider* _subMenuProvider; public: MenuOrgPlugin(void); diff --git a/src/submenuprovider.cc b/src/submenuprovider.cc index cf6b34c..beeb736 100644 --- a/src/submenuprovider.cc +++ b/src/submenuprovider.cc @@ -18,22 +18,20 @@ void SubMenuProvider::CreateTestMenus() MenuNode* subMenu1_1 = subMenu1->AddChild(new SubMenuItem("Custom menu 1.1")); subMenu1_1->AddChild(new VdrMenuItem(tr("Timers"), osTimers)); subMenu1_1->AddChild(new VdrMenuItem(tr("Recordings"), osRecordings)); - MenuNode* subMenu2 =_rootMenuNode.AddChild(new SubMenuItem("Custom menu 2")); - //plugins - for (int i = 0; ; i++) - { - cPlugin *p = cPluginManager::GetPlugin(i); - if (p) - { - const char *item = p->MainMenuEntry(); - if (item) - { - subMenu2->AddChild(new PluginMenuItem(item, i)); - } - } - else - break; - } + MenuNode* subMenu2 =_rootMenuNode.AddChild(new SubMenuItem("Custom menu 2")); + //plugins + int i=0; + while (cPlugin *p = cPluginManager::GetPlugin(i)) + { + if (const char *item = p->MainMenuEntry()) + { + subMenu2->AddChild(new PluginMenuItem(item, i)); + } + i++; + } + _rootMenuNode.AddChild(new VdrMenuItem(tr("Setup"), osSetup)); + if (Commands.Count()) + _rootMenuNode.AddChild(new VdrMenuItem(tr("Commands"), osCommands)); } MainMenuItemsList* SubMenuProvider::MainMenuItems() |