diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mainmenuitemsprovider.cpp | 9 | ||||
-rw-r--r-- | src/mainmenuitemsprovider.h | 4 | ||||
-rw-r--r-- | src/menuorg.cpp | 15 |
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); |