diff options
-rw-r--r-- | src/CommandItemSetup.cpp | 25 | ||||
-rw-r--r-- | src/CommandItemSetup.h | 8 | ||||
-rw-r--r-- | src/CommandMenuNode.cpp | 15 | ||||
-rw-r--r-- | src/CommandMenuNode.h | 3 | ||||
-rw-r--r-- | src/MenuEditMenusFactory.cpp | 10 | ||||
-rw-r--r-- | src/PluginItemSetup.cpp | 26 | ||||
-rw-r--r-- | src/PluginItemSetup.h | 8 | ||||
-rw-r--r-- | src/PluginMenuNode.cpp | 15 | ||||
-rw-r--r-- | src/PluginMenuNode.h | 2 | ||||
-rw-r--r-- | src/RecursiveMenuSetup.h | 4 | ||||
-rw-r--r-- | src/SeparatorItemSetup.cpp | 23 | ||||
-rw-r--r-- | src/SeparatorItemSetup.h | 8 | ||||
-rw-r--r-- | src/SeparatorMenuNode.cpp | 5 | ||||
-rw-r--r-- | src/SeparatorMenuNode.h | 1 | ||||
-rw-r--r-- | src/SubMenuItemSetup.cpp | 22 | ||||
-rw-r--r-- | src/SubMenuItemSetup.h | 8 | ||||
-rw-r--r-- | src/SubMenuNode.cpp | 5 | ||||
-rw-r--r-- | src/SubMenuNode.h | 1 | ||||
-rw-r--r-- | src/SystemItemSetup.cpp | 25 | ||||
-rw-r--r-- | src/SystemItemSetup.h | 8 | ||||
-rw-r--r-- | src/SystemMenuNode.cpp | 10 | ||||
-rw-r--r-- | src/SystemMenuNode.h | 2 |
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 |