summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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();
};