summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/menuorg.cpp4
-rw-r--r--src/menuorg.h2
-rw-r--r--src/submenuprovider.cc30
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()