summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CommandItemSetup.cpp25
-rw-r--r--src/CommandItemSetup.h8
-rw-r--r--src/CommandMenuNode.cpp15
-rw-r--r--src/CommandMenuNode.h3
-rw-r--r--src/MenuEditMenusFactory.cpp10
-rw-r--r--src/PluginItemSetup.cpp26
-rw-r--r--src/PluginItemSetup.h8
-rw-r--r--src/PluginMenuNode.cpp15
-rw-r--r--src/PluginMenuNode.h2
-rw-r--r--src/RecursiveMenuSetup.h4
-rw-r--r--src/SeparatorItemSetup.cpp23
-rw-r--r--src/SeparatorItemSetup.h8
-rw-r--r--src/SeparatorMenuNode.cpp5
-rw-r--r--src/SeparatorMenuNode.h1
-rw-r--r--src/SubMenuItemSetup.cpp22
-rw-r--r--src/SubMenuItemSetup.h8
-rw-r--r--src/SubMenuNode.cpp5
-rw-r--r--src/SubMenuNode.h1
-rw-r--r--src/SystemItemSetup.cpp25
-rw-r--r--src/SystemItemSetup.h8
-rw-r--r--src/SystemMenuNode.cpp10
-rw-r--r--src/SystemMenuNode.h2
22 files changed, 191 insertions, 43 deletions
diff --git a/src/CommandItemSetup.cpp b/src/CommandItemSetup.cpp
index 7262795..9085b95 100644
--- a/src/CommandItemSetup.cpp
+++ b/src/CommandItemSetup.cpp
@@ -24,21 +24,22 @@
const char AllowedChars[] = "$ abcdefghijklmnopqrstuvwxyz0123456789-.#~\\^$[]|()*+?{}/:%";
-cCommandItemSetup::cCommandItemSetup(CommandMenuNode* node)
+CommandItemSetup::CommandItemSetup(CommandMenuNode* node)
:cOsdMenu(tr("Edit Command Menu Item"), 10)
{
strn0cpy(_newName, node->Text().c_str(), sizeof(_newName));
strn0cpy(_newCommand, node->Command().c_str(), sizeof(_newCommand));
_newConfirm = (int) node->ShouldConfirm();
+ _node = node;
CreateMenuItems();
}
-cCommandItemSetup::~cCommandItemSetup()
+CommandItemSetup::~CommandItemSetup()
{
// TODO: write back the changes
}
-void cCommandItemSetup::CreateMenuItems()
+void CommandItemSetup::CreateMenuItems()
{
// Add textItem for name attribute
Add(new cMenuEditStrItem(tr("name"), _newName, sizeof(_newName), tr(AllowedChars)));
@@ -50,8 +51,24 @@ void cCommandItemSetup::CreateMenuItems()
Add(new cMenuEditBoolItem(tr("confirm"), &_newConfirm));
}
-eOSState cCommandItemSetup::ProcessKey(eKeys Key)
+void CommandItemSetup::Store()
+{
+ _node->Text(_newName);
+ _node->Command(_newCommand);
+ _node->ShouldConfirm(_newConfirm);
+}
+
+eOSState CommandItemSetup::ProcessKey(eKeys Key)
{
eOSState state = cOsdMenu::ProcessKey(Key);
+
+ if(state == osUnknown)
+ {
+ if(Key == kOk)
+ {
+ Store();
+ state = osBack;
+ }
+ }
return state;
}
diff --git a/src/CommandItemSetup.h b/src/CommandItemSetup.h
index 9275cee..e054198 100644
--- a/src/CommandItemSetup.h
+++ b/src/CommandItemSetup.h
@@ -26,20 +26,22 @@
#include <vdr/menu.h>
#include "CommandMenuNode.h"
-class cCommandItemSetup : public cOsdMenu
+class CommandItemSetup : public cOsdMenu
{
private:
char _newName[256];
char _newCommand[256];
int _newConfirm;
+ CommandMenuNode* _node;
public:
- cCommandItemSetup(CommandMenuNode* node);
- ~cCommandItemSetup(void);
+ CommandItemSetup(CommandMenuNode* node);
+ ~CommandItemSetup(void);
virtual eOSState ProcessKey(eKeys Key);
private:
void CreateMenuItems(void);
+ void Store(void);
};
#endif
diff --git a/src/CommandMenuNode.cpp b/src/CommandMenuNode.cpp
index ce8d523..5ebb5a5 100644
--- a/src/CommandMenuNode.cpp
+++ b/src/CommandMenuNode.cpp
@@ -96,12 +96,27 @@ string CommandMenuNode::Command()
return _command;
}
+void CommandMenuNode::Command(string newCommand)
+{
+ _command = newCommand;
+}
+
bool CommandMenuNode::ShouldConfirm()
{
return _confirm;
}
+void CommandMenuNode::ShouldConfirm(bool newConfirm)
+{
+ _confirm = newConfirm;
+}
+
string CommandMenuNode::Text()
{
return _text;
}
+
+void CommandMenuNode::Text(string newText)
+{
+ _text = newText;
+}
diff --git a/src/CommandMenuNode.h b/src/CommandMenuNode.h
index 2607337..638cee0 100644
--- a/src/CommandMenuNode.h
+++ b/src/CommandMenuNode.h
@@ -38,8 +38,11 @@ class CommandMenuNode: public MenuNode
public:
CommandMenuNode(std::string text, std::string _command, bool confirm);
std::string Text();
+ void Text(std::string newText);
std::string Command();
+ void Command(std::string newCommand);
bool ShouldConfirm();
+ void ShouldConfirm(bool newConfirm);
// MenuNode
virtual void Process(IMenuNodeProcessor* menuNodeProcessor);
diff --git a/src/MenuEditMenusFactory.cpp b/src/MenuEditMenusFactory.cpp
index b402c69..c82bae8 100644
--- a/src/MenuEditMenusFactory.cpp
+++ b/src/MenuEditMenusFactory.cpp
@@ -46,12 +46,12 @@ cOsdMenu* MenuEditMenusFactory::Create(MenuNode& menuNode, bool openSubmenuInste
void MenuEditMenusFactory::ProcessSystemMenuNode(SystemMenuNode* node)
{
- _menu = new cSystemItemSetup(node);
+ _menu = new SystemItemSetup(node);
}
void MenuEditMenusFactory::ProcessPluginMenuNode(PluginMenuNode* node)
{
- _menu = new cPluginItemSetup(node);
+ _menu = new PluginItemSetup(node);
}
void MenuEditMenusFactory::ProcessSubMenuNode(SubMenuNode* node)
@@ -62,18 +62,18 @@ void MenuEditMenusFactory::ProcessSubMenuNode(SubMenuNode* node)
}
else
{
- _menu = new cSubMenuItemSetup(node);
+ _menu = new SubMenuItemSetup(node);
}
}
void MenuEditMenusFactory::ProcessCommandMenuNode(CommandMenuNode* node)
{
- _menu = new cCommandItemSetup(node);
+ _menu = new CommandItemSetup(node);
}
void MenuEditMenusFactory::ProcessSeparatorMenuNode(SeparatorMenuNode* node)
{
- _menu = new cSeparatorItemSetup(node);
+ _menu = new SeparatorItemSetup(node);
}
MenuEditMenusFactory::MenuEditMenusFactory(cOsdMenu*& menu, bool openSubmenuInsteadOfEditing)
diff --git a/src/PluginItemSetup.cpp b/src/PluginItemSetup.cpp
index bb2f40a..02316c4 100644
--- a/src/PluginItemSetup.cpp
+++ b/src/PluginItemSetup.cpp
@@ -23,22 +23,23 @@
#include <vdr/plugin.h>
#include "PluginItemSetup.h"
-cPluginItemSetup::cPluginItemSetup(PluginMenuNode* node)
+PluginItemSetup::PluginItemSetup(PluginMenuNode* node)
:cOsdMenu(tr("Edit Plugin Menu Item"), 10)
{
_newPluginIndex = node->PluginIndex();
strn0cpy(_newTitle, node->CustomTitle().c_str(), sizeof(_newTitle));
+ _node = node;
getPlugins();
CreateMenuItems();
}
-cPluginItemSetup::~cPluginItemSetup()
+PluginItemSetup::~PluginItemSetup()
{
// TODO: write back the changes
//delete[] pluginList;
}
-void cPluginItemSetup::CreateMenuItems()
+void PluginItemSetup::CreateMenuItems()
{
// Add listItem of unused plugins or a submenu with the items
//Add(new cMenuEditStraItem(tr("available Plugins Items"), &_newPluginIndex, pluginList.size(), pluginList));
@@ -47,7 +48,7 @@ void cPluginItemSetup::CreateMenuItems()
Add(new cMenuEditStrItem(tr("title"), _newTitle, sizeof(_newTitle), NULL));
}
-void cPluginItemSetup::getPlugins()
+void PluginItemSetup::getPlugins()
{
int i=0;
while (cPlugin *currentPlugin = cPluginManager::GetPlugin(i))
@@ -58,8 +59,23 @@ void cPluginItemSetup::getPlugins()
}
}
-eOSState cPluginItemSetup::ProcessKey(eKeys Key)
+void PluginItemSetup::Store()
+{
+ //_node->Text(_newName);
+ _node->CustomTitle(_newTitle);
+}
+
+eOSState PluginItemSetup::ProcessKey(eKeys Key)
{
eOSState state = cOsdMenu::ProcessKey(Key);
+
+ if(state == osUnknown)
+ {
+ if(Key == kOk)
+ {
+ Store();
+ state = osBack;
+ }
+ }
return state;
}
diff --git a/src/PluginItemSetup.h b/src/PluginItemSetup.h
index f34dd0a..8ba8908 100644
--- a/src/PluginItemSetup.h
+++ b/src/PluginItemSetup.h
@@ -27,22 +27,24 @@
#include <vdr/menu.h>
#include "PluginMenuNode.h"
-class cPluginItemSetup : public cOsdMenu
+class PluginItemSetup : public cOsdMenu
{
private:
//std::vector<const char*> pluginList;
char **pluginList;
int _newPluginIndex;
char _newTitle[256];
+ PluginMenuNode* _node;
public:
- cPluginItemSetup(PluginMenuNode* node);
- ~cPluginItemSetup(void);
+ PluginItemSetup(PluginMenuNode* node);
+ ~PluginItemSetup(void);
virtual eOSState ProcessKey(eKeys Key);
private:
void CreateMenuItems(void);
void getPlugins(void);
+ void Store(void);
};
#endif
diff --git a/src/PluginMenuNode.cpp b/src/PluginMenuNode.cpp
index 26f01c2..80cfeb2 100644
--- a/src/PluginMenuNode.cpp
+++ b/src/PluginMenuNode.cpp
@@ -50,11 +50,26 @@ string PluginMenuNode::CustomTitle()
return _customTitle;
}
+void PluginMenuNode::CustomTitle(string newCustomTitle)
+{
+ _customTitle = newCustomTitle;
+}
+
string PluginMenuNode::PluginName()
{
return _pluginName;
}
+void PluginMenuNode::PluginName(string newPluginName)
+{
+ _pluginName = newPluginName;
+ if (!FindPluginByName(newPluginName, _plugin, _pluginIndex))
+ {
+ _plugin = NULL;
+ _pluginIndex = -1;
+ }
+}
+
bool PluginMenuNode::IsHidden()
{
return (!HasMainMenuEntry()) || ChildLock::IsPluginHidden(_plugin);
diff --git a/src/PluginMenuNode.h b/src/PluginMenuNode.h
index 0f7effd..4a08102 100644
--- a/src/PluginMenuNode.h
+++ b/src/PluginMenuNode.h
@@ -40,7 +40,9 @@ class PluginMenuNode: public MenuNode
public:
PluginMenuNode(std::string pluginName, std::string customTitle = "");
std::string CustomTitle();
+ void CustomTitle(std::string newCustomTitle);
std::string PluginName();
+ void PluginName(std::string newPluginName);
int PluginIndex();
std::string DisplayText();
diff --git a/src/RecursiveMenuSetup.h b/src/RecursiveMenuSetup.h
index 8817ed4..c41d71f 100644
--- a/src/RecursiveMenuSetup.h
+++ b/src/RecursiveMenuSetup.h
@@ -41,8 +41,8 @@ class RecursiveMenuSetup: public cOsdMenu
RecursiveMenuSetup(MenuConfigurationRepository* menuConfigurationRepository, SubMenuNode* rootMenuNode = NULL);
~RecursiveMenuSetup();
- // cOsdMenu
- eOSState ProcessKey(eKeys Key);
+ // cOsdMenu
+ eOSState ProcessKey(eKeys Key);
private:
void CreateMenuItems();
diff --git a/src/SeparatorItemSetup.cpp b/src/SeparatorItemSetup.cpp
index 0703d12..87d1732 100644
--- a/src/SeparatorItemSetup.cpp
+++ b/src/SeparatorItemSetup.cpp
@@ -22,26 +22,41 @@
#include "SeparatorItemSetup.h"
-cSeparatorItemSetup::cSeparatorItemSetup(SeparatorMenuNode* node)
+SeparatorItemSetup::SeparatorItemSetup(SeparatorMenuNode* node)
:cOsdMenu(tr("Edit Separator Menu Item"), 10)
{
strn0cpy(_newTitle, node->CustomTitle().c_str(), sizeof(_newTitle));
+ _node = node;
CreateMenuItems();
}
-cSeparatorItemSetup::~cSeparatorItemSetup()
+SeparatorItemSetup::~SeparatorItemSetup()
{
// TODO: write back the changes
}
-void cSeparatorItemSetup::CreateMenuItems()
+void SeparatorItemSetup::CreateMenuItems()
{
// Add textItem for title attribute
Add(new cMenuEditStrItem(tr("title"), _newTitle, sizeof(_newTitle), NULL));
}
-eOSState cSeparatorItemSetup::ProcessKey(eKeys Key)
+void SeparatorItemSetup::Store()
+{
+ _node->CustomTitle(_newTitle);
+}
+
+eOSState SeparatorItemSetup::ProcessKey(eKeys Key)
{
eOSState state = cOsdMenu::ProcessKey(Key);
+
+ if(state == osUnknown)
+ {
+ if(Key == kOk)
+ {
+ Store();
+ state = osBack;
+ }
+ }
return state;
}
diff --git a/src/SeparatorItemSetup.h b/src/SeparatorItemSetup.h
index 017aef3..3178586 100644
--- a/src/SeparatorItemSetup.h
+++ b/src/SeparatorItemSetup.h
@@ -26,18 +26,20 @@
#include <vdr/menu.h>
#include "SeparatorMenuNode.h"
-class cSeparatorItemSetup : public cOsdMenu
+class SeparatorItemSetup : public cOsdMenu
{
private:
char _newTitle[256];
+ SeparatorMenuNode* _node;
public:
- cSeparatorItemSetup(SeparatorMenuNode* node);
- ~cSeparatorItemSetup(void);
+ SeparatorItemSetup(SeparatorMenuNode* node);
+ ~SeparatorItemSetup(void);
virtual eOSState ProcessKey(eKeys Key);
private:
void CreateMenuItems(void);
+ void Store(void);
};
#endif
diff --git a/src/SeparatorMenuNode.cpp b/src/SeparatorMenuNode.cpp
index da881d9..2d5ce14 100644
--- a/src/SeparatorMenuNode.cpp
+++ b/src/SeparatorMenuNode.cpp
@@ -45,6 +45,11 @@ string SeparatorMenuNode::CustomTitle()
return _customTitle;
}
+void SeparatorMenuNode::CustomTitle(string newCustomTitle)
+{
+ _customTitle = newCustomTitle;
+}
+
string SeparatorMenuNode::DisplayText()
{
if (_customTitle.empty())
diff --git a/src/SeparatorMenuNode.h b/src/SeparatorMenuNode.h
index c140eb4..06d9f09 100644
--- a/src/SeparatorMenuNode.h
+++ b/src/SeparatorMenuNode.h
@@ -36,6 +36,7 @@ class SeparatorMenuNode: public MenuNode
public:
SeparatorMenuNode(std::string customTitle);
std::string CustomTitle();
+ void CustomTitle(std::string newCustomTitle);
std::string DisplayText();
// MenuNode
diff --git a/src/SubMenuItemSetup.cpp b/src/SubMenuItemSetup.cpp
index 5a5b1b5..c64d16a 100644
--- a/src/SubMenuItemSetup.cpp
+++ b/src/SubMenuItemSetup.cpp
@@ -24,26 +24,40 @@
const char AllowedChars[] = "$ abcdefghijklmnopqrstuvwxyz0123456789-.#~\\^$[]|()*+?{}/:%";
-cSubMenuItemSetup::cSubMenuItemSetup(SubMenuNode* node)
+SubMenuItemSetup::SubMenuItemSetup(SubMenuNode* node)
:cOsdMenu(tr("Edit Sub Menu Item"), 10)
{
strn0cpy(_newName, node->Text().c_str(), sizeof(_newName));
CreateMenuItems();
}
-cSubMenuItemSetup::~cSubMenuItemSetup()
+SubMenuItemSetup::~SubMenuItemSetup()
{
// TODO: write back the changes
}
-void cSubMenuItemSetup::CreateMenuItems()
+void SubMenuItemSetup::CreateMenuItems()
{
// Add textItem for name attribute
Add(new cMenuEditStrItem(tr("name"), _newName, sizeof(_newName), tr(AllowedChars)));
}
-eOSState cSubMenuItemSetup::ProcessKey(eKeys Key)
+void SubMenuItemSetup::Store()
+{
+ _node->Text(_newName);
+}
+
+eOSState SubMenuItemSetup::ProcessKey(eKeys Key)
{
eOSState state = cOsdMenu::ProcessKey(Key);
+
+ if(state == osUnknown)
+ {
+ if(Key == kOk)
+ {
+ Store();
+ state = osBack;
+ }
+ }
return state;
}
diff --git a/src/SubMenuItemSetup.h b/src/SubMenuItemSetup.h
index 41d2571..27853af 100644
--- a/src/SubMenuItemSetup.h
+++ b/src/SubMenuItemSetup.h
@@ -26,18 +26,20 @@
#include <vdr/menu.h>
#include "SubMenuNode.h"
-class cSubMenuItemSetup : public cOsdMenu
+class SubMenuItemSetup : public cOsdMenu
{
private:
char _newName[256];
+ SubMenuNode* _node;
public:
- cSubMenuItemSetup(SubMenuNode* node);
- ~cSubMenuItemSetup(void);
+ SubMenuItemSetup(SubMenuNode* node);
+ ~SubMenuItemSetup(void);
virtual eOSState ProcessKey(eKeys Key);
private:
void CreateMenuItems(void);
+ void Store(void);
};
#endif
diff --git a/src/SubMenuNode.cpp b/src/SubMenuNode.cpp
index 664b009..9d5de39 100644
--- a/src/SubMenuNode.cpp
+++ b/src/SubMenuNode.cpp
@@ -67,6 +67,11 @@ string SubMenuNode::Text()
return _text;
}
+void SubMenuNode::Text(string newText)
+{
+ _text = newText;
+}
+
bool SubMenuNode::IsHidden()
{
return ChildLock::IsMenuHidden(_text.c_str());
diff --git a/src/SubMenuNode.h b/src/SubMenuNode.h
index aa2299b..b83c841 100644
--- a/src/SubMenuNode.h
+++ b/src/SubMenuNode.h
@@ -38,6 +38,7 @@ class SubMenuNode: public MenuNode
SubMenuNode(std::string text);
virtual ~SubMenuNode();
std::string Text();
+ void Text(std::string newText);
// MenuNode
SubMenuNode* Clone();
diff --git a/src/SystemItemSetup.cpp b/src/SystemItemSetup.cpp
index dfcfd1d..e56ee86 100644
--- a/src/SystemItemSetup.cpp
+++ b/src/SystemItemSetup.cpp
@@ -21,21 +21,23 @@
*/
#include "SystemItemSetup.h"
+#include "VdrState.h"
-cSystemItemSetup::cSystemItemSetup(SystemMenuNode* node)
+SystemItemSetup::SystemItemSetup(SystemMenuNode* node)
:cOsdMenu(tr("Edit System Menu Item"), 10)
{
strn0cpy(_newName, node->State().Name().c_str(), sizeof(_newName));
strn0cpy(_newTitle, node->CustomTitle().c_str(), sizeof(_newTitle));
+ _node = node;
CreateMenuItems();
}
-cSystemItemSetup::~cSystemItemSetup()
+SystemItemSetup::~SystemItemSetup()
{
// TODO: write back the changes
}
-void cSystemItemSetup::CreateMenuItems()
+void SystemItemSetup::CreateMenuItems()
{
// Add listItem of valid System Items
//Add(new cMenuEditStraItem(tr("available System Items"),))
@@ -44,8 +46,23 @@ void cSystemItemSetup::CreateMenuItems()
Add(new cMenuEditStrItem(tr("title"), _newTitle, sizeof(_newTitle), NULL));
}
-eOSState cSystemItemSetup::ProcessKey(eKeys Key)
+void SystemItemSetup::Store()
+{
+ _node->State(VdrState::ByName(_newName));
+ _node->CustomTitle(_newTitle);
+}
+
+eOSState SystemItemSetup::ProcessKey(eKeys Key)
{
eOSState state = cOsdMenu::ProcessKey(Key);
+
+ if(state == osUnknown)
+ {
+ if(Key == kOk)
+ {
+ Store();
+ state = osBack;
+ }
+ }
return state;
}
diff --git a/src/SystemItemSetup.h b/src/SystemItemSetup.h
index 1fb0c63..13c8fbc 100644
--- a/src/SystemItemSetup.h
+++ b/src/SystemItemSetup.h
@@ -26,19 +26,21 @@
#include <vdr/menu.h>
#include "SystemMenuNode.h"
-class cSystemItemSetup : public cOsdMenu
+class SystemItemSetup : public cOsdMenu
{
private:
char _newName[265];
char _newTitle[265];
+ SystemMenuNode* _node;
public:
- cSystemItemSetup(SystemMenuNode* node);
- ~cSystemItemSetup(void);
+ SystemItemSetup(SystemMenuNode* node);
+ ~SystemItemSetup(void);
virtual eOSState ProcessKey(eKeys Key);
private:
void CreateMenuItems(void);
+ void Store(void);
};
#endif
diff --git a/src/SystemMenuNode.cpp b/src/SystemMenuNode.cpp
index 23766fa..aac4cf5 100644
--- a/src/SystemMenuNode.cpp
+++ b/src/SystemMenuNode.cpp
@@ -53,11 +53,21 @@ VdrState SystemMenuNode::State()
return _state;
}
+void SystemMenuNode::State(VdrState newState)
+{
+ _state = newState;
+}
+
string SystemMenuNode::CustomTitle()
{
return _customTitle;
}
+void SystemMenuNode::CustomTitle(string newCustomTitle)
+{
+ _customTitle = newCustomTitle;
+}
+
string SystemMenuNode::DisplayText()
{
if (_customTitle.empty())
diff --git a/src/SystemMenuNode.h b/src/SystemMenuNode.h
index 6e7b5cd..091c7f9 100644
--- a/src/SystemMenuNode.h
+++ b/src/SystemMenuNode.h
@@ -39,7 +39,9 @@ class SystemMenuNode: public MenuNode
SystemMenuNode(VdrState state, std::string customTitle);
std::string CustomTitle();
+ void CustomTitle(std::string newCustomTitle);
VdrState State();
+ void State(VdrState newState);
std::string DisplayText();
// MenuNode