diff options
author | svntcreutz <svntcreutz@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-08-26 01:22:11 +0000 |
---|---|---|
committer | svntcreutz <svntcreutz@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-08-26 01:22:11 +0000 |
commit | 8c69e3880a9c0e48ea130962ceddd43c661f3888 (patch) | |
tree | 5c2c6520da93c4b799b13e1dd0de6c68fe99ca22 | |
parent | ae81d6bd575ea768cfe062b88423edc4ab1a6054 (diff) | |
download | vdr-plugin-menuorg-8c69e3880a9c0e48ea130962ceddd43c661f3888.tar.gz vdr-plugin-menuorg-8c69e3880a9c0e48ea130962ceddd43c661f3888.tar.bz2 |
fixed title handling for plugins
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/menuorg/trunk@5996 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
-rw-r--r-- | src/menuconfiguration.cpp | 8 | ||||
-rw-r--r-- | src/menuconfiguration.h | 2 | ||||
-rw-r--r-- | src/pluginmenunode.cpp | 13 | ||||
-rw-r--r-- | src/pluginmenunode.h | 5 |
4 files changed, 21 insertions, 7 deletions
diff --git a/src/menuconfiguration.cpp b/src/menuconfiguration.cpp index 4845f44..c8b0f0e 100644 --- a/src/menuconfiguration.cpp +++ b/src/menuconfiguration.cpp @@ -115,8 +115,8 @@ void MenuConfiguration::ParseElement(const Element* element, MenuNode* menuNode) else if (type == "plugin") { const xmlpp::Attribute* titleAttribute = childElement->get_attribute("title"); - name = titleAttribute ? (string) UnicodeToLocaleOrIso8859(titleAttribute->get_value()) : name; - AddPluginMenuNode(name, menuNode); + string title = titleAttribute ? (string) UnicodeToLocaleOrIso8859(titleAttribute->get_value()) : name; + AddPluginMenuNode(name, menuNode, title); } else if (type == "command") { @@ -139,7 +139,7 @@ void MenuConfiguration::AddSystemMenuNode(string name, MenuNode* menu) menu->AddChild(new SystemMenuNode(name, MenuTextToVdrState(name))); } -void MenuConfiguration::AddPluginMenuNode(string pluginName, MenuNode* menu) +void MenuConfiguration::AddPluginMenuNode(string pluginName, MenuNode* menu, string title) { int pluginIndex; cPlugin* plugin; @@ -147,7 +147,7 @@ void MenuConfiguration::AddPluginMenuNode(string pluginName, MenuNode* menu) if (FindPluginByName(pluginName, plugin, pluginIndex)) { _configuredPlugins.push_back(pluginName); - menu->AddChild(new PluginMenuNode(plugin, pluginIndex)); + menu->AddChild(new PluginMenuNode(plugin, pluginIndex, title)); } } diff --git a/src/menuconfiguration.h b/src/menuconfiguration.h index 5979150..f11d2f4 100644 --- a/src/menuconfiguration.h +++ b/src/menuconfiguration.h @@ -47,7 +47,7 @@ class MenuConfiguration bool FindPluginByName(std::string name, cPlugin*& plugin, int& pluginIndex); MenuNode* AddSubMenuNode(std::string name, MenuNode* menu); void AddSystemMenuNode(std::string name, MenuNode* menu); - void AddPluginMenuNode(std::string pluginName, MenuNode* menu); + void AddPluginMenuNode(std::string pluginName, MenuNode* menu, std::string title); void AddUnconfiguredPlugins(MenuNode* menu); void AddCommandMenuNode(std::string name, std::string command, bool confirm, MenuNode* menu); std::string UnicodeToLocaleOrIso8859(Glib::ustring unicodeString); diff --git a/src/pluginmenunode.cpp b/src/pluginmenunode.cpp index 3296c0c..996cffc 100644 --- a/src/pluginmenunode.cpp +++ b/src/pluginmenunode.cpp @@ -20,21 +20,32 @@ * */ +#include <string> #include "pluginmenunode.h" #include <vdr/mainmenuitemsprovider.h> #include <vdr/plugin.h> #include "pluginitemdefinition.h" #include "childlock.h" +using namespace std; + PluginMenuNode::PluginMenuNode(cPlugin* plugin, int pluginIndex) { _plugin = plugin; _pluginIndex = pluginIndex; } +PluginMenuNode::PluginMenuNode(cPlugin* plugin, int pluginIndex, string title) +{ + _plugin = plugin; + _pluginIndex = pluginIndex; + _title = title; +} + IMenuItemDefinition* PluginMenuNode::CreateMenuItemDefinition() { - return new PluginItemDefinition(_plugin->MainMenuEntry(), _pluginIndex); + const char* title = _title.empty() ? _plugin->MainMenuEntry() : _title.c_str(); + return new PluginItemDefinition(title, _pluginIndex); } bool PluginMenuNode::IsHidden() diff --git a/src/pluginmenunode.h b/src/pluginmenunode.h index 4281701..5698fb1 100644 --- a/src/pluginmenunode.h +++ b/src/pluginmenunode.h @@ -23,6 +23,7 @@ #ifndef ___PLUGINMENUNODE_H #define ___PLUGINMENUNODE_H +#include <string> #include "menunode.h" class cPlugin; @@ -32,12 +33,14 @@ class PluginMenuNode: public MenuNode private: cPlugin* _plugin; int _pluginIndex; + std::string _title; public: PluginMenuNode(cPlugin* plugin, int pluginIndex); + PluginMenuNode(cPlugin* plugin, int pluginIndex, std::string title); IMenuItemDefinition* CreateMenuItemDefinition(); bool IsHidden(); - + private: bool HasMainMenuEntry(); }; |