summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-26 13:31:42 +0000
committersvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-26 13:31:42 +0000
commita1059732ffdca86f4dc01afe25788e8e428b9aec (patch)
treee4aef318f4d05f6f04d731c4a0efe5335c29d91b /src
parent8c827812bd737d24f6366481854a5e5d5578501c (diff)
downloadvdr-plugin-menuorg-a1059732ffdca86f4dc01afe25788e8e428b9aec.tar.gz
vdr-plugin-menuorg-a1059732ffdca86f4dc01afe25788e8e428b9aec.tar.bz2
reparse the menu each time the the root menu is requested
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/menuorg/trunk@6003 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
Diffstat (limited to 'src')
-rw-r--r--src/mainmenuitemsprovider.cpp9
-rw-r--r--src/mainmenuitemsprovider.h4
-rw-r--r--src/menuorg.cpp15
3 files changed, 12 insertions, 16 deletions
diff --git a/src/mainmenuitemsprovider.cpp b/src/mainmenuitemsprovider.cpp
index 6e0bb00..e0b6a7f 100644
--- a/src/mainmenuitemsprovider.cpp
+++ b/src/mainmenuitemsprovider.cpp
@@ -26,16 +26,17 @@
#include "pluginmenunode.h"
#include <vdr/plugin.h>
#include "childlock.h"
+#include "menuconfiguration.h"
-MainMenuItemsProvider::MainMenuItemsProvider(MenuNode* rootMenu)
+MainMenuItemsProvider::MainMenuItemsProvider(MenuConfiguration& menuConfiguration)
+ :_menuConfiguration(menuConfiguration)
{
- _currentMenu = _rootMenu = rootMenu;
+ EnterRootMenu();
}
MainMenuItemsProvider::~MainMenuItemsProvider()
{
ResetMainMenuItemsList();
- delete _rootMenu;
}
MenuItemDefinitions* MainMenuItemsProvider::MainMenuItems()
@@ -67,7 +68,7 @@ void MainMenuItemsProvider::ResetMainMenuItemsList()
void MainMenuItemsProvider::EnterRootMenu()
{
- _currentMenu = _rootMenu;
+ _currentMenu = _rootMenu = _menuConfiguration.MenuTree();;
}
void MainMenuItemsProvider::EnterSubMenu(cOsdItem* item)
diff --git a/src/mainmenuitemsprovider.h b/src/mainmenuitemsprovider.h
index e7ae029..46f4748 100644
--- a/src/mainmenuitemsprovider.h
+++ b/src/mainmenuitemsprovider.h
@@ -26,6 +26,7 @@
#include <vdr/mainmenuitemsprovider.h>
class MenuNode;
+class MenuConfiguration;
class MainMenuItemsProvider: public IMainMenuItemsProvider
{
@@ -33,9 +34,10 @@ class MainMenuItemsProvider: public IMainMenuItemsProvider
MenuNode* _rootMenu;
MenuNode* _currentMenu;
MenuItemDefinitions _currentMainMenuItems;
+ MenuConfiguration& _menuConfiguration;
public:
- MainMenuItemsProvider(MenuNode* rootMenu);
+ MainMenuItemsProvider(MenuConfiguration& menuConfiguration);
~MainMenuItemsProvider();
virtual MenuItemDefinitions* MainMenuItems();
virtual void EnterRootMenu();
diff --git a/src/menuorg.cpp b/src/menuorg.cpp
index b764f07..d87fda0 100644
--- a/src/menuorg.cpp
+++ b/src/menuorg.cpp
@@ -50,8 +50,8 @@ MenuOrgPlugin::MenuOrgPlugin(void)
MenuOrgPlugin::~MenuOrgPlugin()
{
- delete _subMenuProvider;
- delete _menuConfiguration;
+ delete _subMenuProvider;
+ delete _menuConfiguration;
}
const char* MenuOrgPlugin::Version(void)
@@ -110,16 +110,9 @@ bool MenuOrgPlugin::Initialize(void)
configFile = (string) ConfigDirectory() + "/menuorg.xml";
_menuConfiguration = new MenuConfiguration(configFile);
+ // TODO need handling of unloadable config File here!!!
- MenuNode* menu = _menuConfiguration->MenuTree();
- if (menu)
- {
- _subMenuProvider = new MainMenuItemsProvider(menu);
- }
- else
- {
- _subMenuProvider = NULL;
- }
+ _subMenuProvider = new MainMenuItemsProvider(*_menuConfiguration);
RegisterI18n(Phrases);