#!/bin/sh /usr/share/dpatch/dpatch-run ## fix-null-dirs patch - by Thomas Günther ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Fixes the submenu plugin to get rid of (null)/plugins/MainMenu.conf. @DPATCH@ --- submenu-0.0.1/submenu-setup.c +++ submenu-0.0.1/submenu-setup.c @@ -3,7 +3,6 @@ #include #include -cSubMenu SMSetup; static char *System[6] = { "Channels","Recordings","Timers","Setup","Commands","Schedule"}; @@ -11,7 +10,7 @@ // // --------------------------------------------------------------------------- -cSubMenuSelectType::cSubMenuSelectType(int pos,int ou) : cOsdMenu(tr("Select Item type to insert"),10) +cSubMenuSelectType::cSubMenuSelectType(int pos,int ou,cSubMenu &SM) : cOsdMenu(tr("Select Item type to insert"),10), SMSetup(SM) { close=false; position=pos; @@ -33,15 +32,15 @@ { case osUser7 : close=true; - return AddSubMenu(new cSubMenuSubMenuItem(position,where)); + return AddSubMenu(new cSubMenuSubMenuItem(position,where,SMSetup)); break; case osUser8 : close=true; - return AddSubMenu(new cSubMenuSystemItem(position,where)); + return AddSubMenu(new cSubMenuSystemItem(position,where,SMSetup)); break; case osUser9: close=true; - return AddSubMenu(new cSubMenuPluginItem(position,where)); + return AddSubMenu(new cSubMenuPluginItem(position,where,SMSetup)); break; default: break; @@ -53,7 +52,7 @@ // //---------------------------------------------------------------------------------- -cSubMenuPluginItem::cSubMenuPluginItem(int pos,int ou) : cOsdMenu(tr("Insert Plugin Item"),10) +cSubMenuPluginItem::cSubMenuPluginItem(int pos,int ou,cSubMenu &SM) : cOsdMenu(tr("Insert Plugin Item"),10), SMSetup(SM) { position=pos; where=ou; @@ -128,7 +127,7 @@ // // ---------------------------------------------------------------------------- -cSubMenuSystemItem::cSubMenuSystemItem(int pos,int ou) : cOsdMenu(tr("Insert System Item"),10) +cSubMenuSystemItem::cSubMenuSystemItem(int pos,int ou,cSubMenu &SM) : cOsdMenu(tr("Insert System Item"),10), SMSetup(SM) { position=pos; where=ou; @@ -191,7 +190,7 @@ // --------------------------------------------- -cSubMenuSubMenuItem::cSubMenuSubMenuItem(int position,int ou) : cOsdMenu(tr("Insert SubMenu Item"),10) +cSubMenuSubMenuItem::cSubMenuSubMenuItem(int position,int ou,cSubMenu &SM) : cOsdMenu(tr("Insert SubMenu Item"),10), SMSetup(SM) { where=ou; strn0cpy(Name," ",64); @@ -201,10 +200,6 @@ Display(); } -cSubMenuSubMenuItem::cSubMenuSubMenuItem(char *Name,int position, int menuLevel,int kindOfItem) : cOsdMenu(tr("Edit SubMenu"),10) -{ -} - cSubMenuSubMenuItem::~cSubMenuSubMenuItem() { delete Name; @@ -238,8 +233,6 @@ cSubMenuSetup::cSubMenuSetup(void) { curLevel = 0; - SMSetup.LoadInfoSubMenu(); - SMSetup.Arbo.Populate(&SMSetup); fromsub=false; MarkIndex=-1; Marked=false; @@ -339,7 +332,7 @@ DrawMenu(); Created=false; CreateIndex=-1; - return AddSubMenu(new cSubMenuSelectType(SMSetup.Arbo.CurrentIndex[Current()],0)); + return AddSubMenu(new cSubMenuSelectType(SMSetup.Arbo.CurrentIndex[Current()],0,SMSetup)); } else if (Marked) { @@ -357,7 +350,7 @@ { Created=false; CreateIndex=-1; - return AddSubMenu(new cSubMenuSelectType(SMSetup.Arbo.CurrentIndex[Current()],1)); + return AddSubMenu(new cSubMenuSelectType(SMSetup.Arbo.CurrentIndex[Current()],1,SMSetup)); } else if(Marked) { @@ -383,7 +376,7 @@ { Created=false; CreateIndex=-1; - return AddSubMenu(new cSubMenuSelectType(SMSetup.Arbo.CurrentIndex[Current()],2 ) ); + return AddSubMenu(new cSubMenuSelectType(SMSetup.Arbo.CurrentIndex[Current()],2,SMSetup ) ); } } DrawButton(); --- submenu-0.0.1/submenu-setup.h +++ submenu-0.0.1/submenu-setup.h @@ -7,11 +7,12 @@ class cSubMenuSelectType : public cOsdMenu { private: + cSubMenu &SMSetup; int position; int where; bool close; public: - cSubMenuSelectType(int pos,int ou); + cSubMenuSelectType(int pos,int ou,cSubMenu &SMSetup); ~cSubMenuSelectType(void); eOSState ProcessKey(eKeys Key); }; @@ -19,12 +20,13 @@ class cSubMenuPluginItem : public cOsdMenu { private: + cSubMenu &SMSetup; int position; int where; int *ToDisp; int *DispOrder; public: - cSubMenuPluginItem(int pos,int ou); + cSubMenuPluginItem(int pos,int ou,cSubMenu &SMSetup); ~cSubMenuPluginItem(void); eOSState ProcessKey(eKeys Key); }; @@ -33,11 +35,12 @@ class cSubMenuSystemItem : public cOsdMenu { private: + cSubMenu &SMSetup; int position; int where; int * DispOrder; public: - cSubMenuSystemItem(int pos,int ou); + cSubMenuSystemItem(int pos,int ou,cSubMenu &SMSetup); ~cSubMenuSystemItem(void); eOSState ProcessKey(eKeys Key); }; @@ -45,12 +48,12 @@ class cSubMenuSubMenuItem : public cOsdMenu { private: + cSubMenu &SMSetup; int pos; int where; char Name[64]; public: - cSubMenuSubMenuItem(int position,int ou); - cSubMenuSubMenuItem(char *Name,int position,int menuLevel, int kindOfItem); + cSubMenuSubMenuItem(int position,int ou,cSubMenu &SMSetup); ~cSubMenuSubMenuItem(); eOSState ProcessKey(eKeys Key); }; @@ -58,6 +61,7 @@ class cSubMenuSetup : public cMenuSetupPage { private: + cSubMenu SMSetup; void DrawMenu(void); void DrawSubMenu(int level); bool fromsub; @@ -69,12 +73,10 @@ protected: virtual void Store(void); public: - cSubMenu *SM; cSubMenuSetup(void); ~cSubMenuSetup(void); virtual eOSState ProcessKey(eKeys key); void DrawButton(void); }; -extern cSubMenu SMSetup; #endif //_SUBMENUSETUP_H