summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsvntcreutz <svntcreutz@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-26 01:22:11 +0000
committersvntcreutz <svntcreutz@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-26 01:22:11 +0000
commit8c69e3880a9c0e48ea130962ceddd43c661f3888 (patch)
tree5c2c6520da93c4b799b13e1dd0de6c68fe99ca22
parentae81d6bd575ea768cfe062b88423edc4ab1a6054 (diff)
downloadvdr-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.cpp8
-rw-r--r--src/menuconfiguration.h2
-rw-r--r--src/pluginmenunode.cpp13
-rw-r--r--src/pluginmenunode.h5
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();
};