From b410af45eaf4fa5c053967963dc346f6b165e8d0 Mon Sep 17 00:00:00 2001 From: svntobi Date: Sat, 25 Aug 2007 14:54:04 +0000 Subject: cPlugin::MainMenuEntry() mus be called after all plugins have been initilized and started, because otherwise, the main menu entry will not be translated, because most plugins register their i18n phrase in Initialize() or Start(). git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/menuorg/trunk@5979 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f --- src/menuconfiguration.cpp | 4 ++-- src/pluginmenunode.cpp | 9 ++++----- src/pluginmenunode.h | 6 ++++-- 3 files changed, 10 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/menuconfiguration.cpp b/src/menuconfiguration.cpp index 39d2e34..9a24e85 100644 --- a/src/menuconfiguration.cpp +++ b/src/menuconfiguration.cpp @@ -211,8 +211,8 @@ void MenuConfiguration::AddCommandMenuNode(string name, string command, bool con void MenuConfiguration::AddPluginMenuNode(cPlugin* plugin, int pluginIndex, MenuNode* menu) { - if (const char *item = plugin->MainMenuEntry()) + if (plugin->MainMenuEntry()) { - menu->AddChild(new PluginMenuNode(item, pluginIndex)); + menu->AddChild(new PluginMenuNode(plugin, pluginIndex)); } } diff --git a/src/pluginmenunode.cpp b/src/pluginmenunode.cpp index 6745960..1f2eec9 100644 --- a/src/pluginmenunode.cpp +++ b/src/pluginmenunode.cpp @@ -26,19 +26,18 @@ #include "pluginitemdefinition.h" #include "childlock.h" -PluginMenuNode::PluginMenuNode(const char* pluginMainMenuEntry, int pluginIndex) +PluginMenuNode::PluginMenuNode(cPlugin* plugin, int pluginIndex) { - _pluginMainMenuEntry = pluginMainMenuEntry; + _plugin = plugin; _pluginIndex = pluginIndex; } IMenuItemDefinition* PluginMenuNode::CreateMenuItemDefinition() { - return new PluginItemDefinition(_pluginMainMenuEntry, _pluginIndex); + return new PluginItemDefinition(_plugin->MainMenuEntry(), _pluginIndex); } bool PluginMenuNode::IsHidden() { - cPlugin* plugin = cPluginManager::GetPlugin(_pluginIndex); - return ChildLock::IsPluginHidden(plugin); + return ChildLock::IsPluginHidden(_plugin); } diff --git a/src/pluginmenunode.h b/src/pluginmenunode.h index cbf3477..4954752 100644 --- a/src/pluginmenunode.h +++ b/src/pluginmenunode.h @@ -25,14 +25,16 @@ #include "menunode.h" +class cPlugin; + class PluginMenuNode: public MenuNode { private: - const char* _pluginMainMenuEntry; + cPlugin* _plugin; int _pluginIndex; public: - PluginMenuNode(const char* pluginMainMenuEntry, int pluginIndex); + PluginMenuNode(cPlugin* plugin, int pluginIndex); IMenuItemDefinition* CreateMenuItemDefinition(); bool IsHidden(); }; -- cgit v1.2.3