diff options
author | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-08-19 22:04:15 +0000 |
---|---|---|
committer | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-08-19 22:04:15 +0000 |
commit | 02c6596cb35774e222840724a8843da593530b60 (patch) | |
tree | 05ddd2fda200e4ce60a7e5a54945e6c3b384a47a /src/menuconfiguration.cpp | |
parent | b916f43b2d857d2f86aeae48016f9c55c8b4ca41 (diff) | |
download | vdr-plugin-menuorg-02c6596cb35774e222840724a8843da593530b60.tar.gz vdr-plugin-menuorg-02c6596cb35774e222840724a8843da593530b60.tar.bz2 |
add unconfigured plugins at the end of the root main menu
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/submenu/trunk@5836 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
Diffstat (limited to 'src/menuconfiguration.cpp')
-rw-r--r-- | src/menuconfiguration.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/menuconfiguration.cpp b/src/menuconfiguration.cpp index ec3de5e..78df2ac 100644 --- a/src/menuconfiguration.cpp +++ b/src/menuconfiguration.cpp @@ -60,6 +60,8 @@ MenuNode* MenuConfiguration::LoadMenu(string menuFileName) const Element* rootElement = parser.get_document()->get_root_node(); ParseElement(rootElement, menuRoot); + + AddUnconfiguredPlugins(menuRoot); } catch(const std::exception& ex) { @@ -123,6 +125,7 @@ void MenuConfiguration::AddPluginMenuNode(string pluginName, MenuNode* menu) if (FindPluginByName(pluginName, &pluginMainMenuEntry, pluginIndex)) { + _configuredPlugins.push_back(pluginName); menu->AddChild(new PluginMenuNode(pluginMainMenuEntry, pluginIndex)); } } @@ -177,3 +180,20 @@ bool MenuConfiguration::FindPluginByName(string name, const char** mainMenuEntry return false; } + +void MenuConfiguration::AddUnconfiguredPlugins(MenuNode* menu) +{ + int i = 0; + + while (cPlugin *plugin = cPluginManager::GetPlugin(i)) + { + if (const char *item = plugin->MainMenuEntry()) + { + if (find(_configuredPlugins.begin(), _configuredPlugins.end(), plugin->Name()) == _configuredPlugins.end()) + { + menu->AddChild(new PluginMenuNode(item, i)); + } + } + i++; + } +} |