Project "Tuxbox-GIT: apps":

The branch, master has been updated
       via  bd00fae5b436145ba55b97d1bc5056abee856698 (commit)
       via  4f76e176def4541676ac9e44812c75d9afae05df (commit)
       via  7862e38aaad151995d71e141ed3b812ffd026262 (commit)
       via  68338e9ab270c785739e97dc486775d31fa4c0b3 (commit)
       via  b49a57572b4db68d2d0dd1cc7432cefa11c7c957 (commit)
       via  694871113da9a46acbe08f93c283fb1720b07578 (commit)
       via  5325ad02c6314a9305a93deee136b1cc0ea9f4cf (commit)
       via  067efa9cbed00c3cb4dc3816982b60b5b62b304b (commit)
       via  0ce6377a3bdcef3ef02d49584406ca711d107860 (commit)
       via  e3e1e3d6c932ea703aafed575327567584710a1c (commit)
       via  8deee4ac2f9956970c85bec9e3f46fd600930e04 (commit)
       via  702f16a4f19c1f930c4c508d3f8df8420355aff8 (commit)
       via  149ec5eb1e9cad174d41a27fa5e9380e5d0ceca3 (commit)
       via  08c0889ae2944cdc2ce974b6b1bb42a7fbd08503 (commit)
      from  cf5068a2199ba084d381239034416c9b7e439d1a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit bd00fae5b436145ba55b97d1bc5056abee856698
Author: Christian Schuett <gaucho...@hotmail.com>
Date:   Tue Dec 16 19:47:51 2014 +0100

    Neutrino language setup: don't show the same language twice
    
    * if a language file is present in both directories
      /var/tuxbox/config/locale/ and /share/tuxbox/neutrino/locale/
      it is shown twice
    * also show current language in OSD settings
    
    Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/neutrino/src/gui/osd_setup.cpp 
b/tuxbox/neutrino/src/gui/osd_setup.cpp
index 89dfbc8..8539241 100644
--- a/tuxbox/neutrino/src/gui/osd_setup.cpp
+++ b/tuxbox/neutrino/src/gui/osd_setup.cpp
@@ -270,7 +270,7 @@ int COsdSetup::showOsdSetup()
 
        // language
        COsdLangSetup *osd_lang = new COsdLangSetup(menue_title);
-       CMenuForwarder *osd_lang_fw = new 
CMenuForwarder(LOCALE_MAINSETTINGS_LANGUAGE, true, NULL, osd_lang, NULL, 
CRCInput::RC_red);
+       CMenuForwarder *osd_lang_fw = new 
CMenuForwarder(LOCALE_MAINSETTINGS_LANGUAGE, true, g_settings.language, 
osd_lang, NULL, CRCInput::RC_red);
        
        //osd color setup forwarder
        CMenuForwarder *osd_setup_color_sub_fw  = new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_HEAD, true, NULL, osd_setup_colors, 
NULL, CRCInput::RC_green);
diff --git a/tuxbox/neutrino/src/gui/osdlang_setup.cpp 
b/tuxbox/neutrino/src/gui/osdlang_setup.cpp
index cec7552..bc30daf 100644
--- a/tuxbox/neutrino/src/gui/osdlang_setup.cpp
+++ b/tuxbox/neutrino/src/gui/osdlang_setup.cpp
@@ -107,7 +107,8 @@ int COsdLangSetup::showSetup()
        int n;
        //              printf("scanning locale dir now....(perhaps)\n");
 
-       const char *pfad[] = {DATADIR 
"/neutrino/locale","/var/tuxbox/config/locale"};
+       const char *pfad[] = {DATADIR "/neutrino/locale", CONFIGDIR "/locale"};
+       std::string locales = "|";
 
        for(int p = 0;p < 2;p++)
        {
@@ -125,9 +126,15 @@ int COsdLangSetup::showSetup()
                                if(pos != NULL)
                                {
                                        *pos = '\0';
-                                       CMenuForwarder* oj = new 
CMenuForwarder(locale, true, "", this, locale);
-                                       
oj->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true);
-                                       osdl_setup->addItem(oj, 
strcmp(g_settings.language, locale) == 0);
+                                       if(locales.find("|" + 
std::string(locale) + "|") == std::string::npos)
+                                       {
+                                               locales += locale;
+                                               locales += "|";
+
+                                               CMenuForwarder* oj = new 
CMenuForwarder(locale, true, NULL, this, locale);
+                                               
oj->setItemButton(NEUTRINO_ICON_BUTTON_OKAY, true);
+                                               osdl_setup->addItem(oj, 
strcmp(g_settings.language, locale) == 0);
+                                       }
                                }
                                free(namelist[count]);
                        }
diff --git a/tuxbox/neutrino/src/system/localize.cpp 
b/tuxbox/neutrino/src/system/localize.cpp
index 5ab8489..39cc775 100644
--- a/tuxbox/neutrino/src/system/localize.cpp
+++ b/tuxbox/neutrino/src/system/localize.cpp
@@ -181,7 +181,7 @@ CLocaleManager::~CLocaleManager()
        delete[] localeData;
 }
 
-const char * path[2] = {"/var/tuxbox/config/locale/", DATADIR 
"/neutrino/locale/"};
+const char * path[2] = {CONFIGDIR "/locale/", DATADIR "/neutrino/locale/"};
 
 CLocaleManager::loadLocale_ret_t CLocaleManager::loadLocale(const char * const 
locale)
 {

commit 4f76e176def4541676ac9e44812c75d9afae05df
Author: Christian Schuett <gaucho...@hotmail.com>
Date:   Tue Dec 16 19:26:13 2014 +0100

    Neutrino CMenuOptionChooser: update option name string when painting
    
    this avoids menu entry names in the previous and not the current
    language after switching it
    
    Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/neutrino/src/gui/widget/menue.cpp 
b/tuxbox/neutrino/src/gui/widget/menue.cpp
index b49cdd3..aad8b95 100644
--- a/tuxbox/neutrino/src/gui/widget/menue.cpp
+++ b/tuxbox/neutrino/src/gui/widget/menue.cpp
@@ -988,6 +988,9 @@ int CMenuOptionChooser::paint( bool selected )
 {
        int height = getHeight();
 
+       if (optionName != NONEXISTANT_LOCALE)
+               optionNameString = g_Locale->getText(optionName);
+
        neutrino_locale_t option = NONEXISTANT_LOCALE;
        for(unsigned int count = 0 ; count < number_of_options; count++)
        {

commit 7862e38aaad151995d71e141ed3b812ffd026262
Author: Christian Schuett <gaucho...@hotmail.com>
Date:   Sat Dec 13 20:45:38 2014 +0100

    Neutrino english.locale: fix typo
    
    Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/neutrino/data/locale/english.locale 
b/tuxbox/neutrino/data/locale/english.locale
index d81b188..6f95b6e 100644
--- a/tuxbox/neutrino/data/locale/english.locale
+++ b/tuxbox/neutrino/data/locale/english.locale
@@ -816,11 +816,11 @@ moviebrowser.book_position Position:
 moviebrowser.book_type Jump (<0 back, >0 for):
 moviebrowser.book_type_backward Repeat
 moviebrowser.book_type_forward Jump over
-moviebrowser.browser_frame_high Browser hight [Pixel]
+moviebrowser.browser_frame_high Browser height [Pixel]
 moviebrowser.browser_row_head Row settings
 moviebrowser.browser_row_item Row item
 moviebrowser.browser_row_nr Number of rows
-moviebrowser.browser_row_width Row width
+moviebrowser.browser_row_width Row width [Pixel]
 moviebrowser.change_view Change view
 moviebrowser.delete_info Delete files, please wait...
 moviebrowser.dir Path

commit 68338e9ab270c785739e97dc486775d31fa4c0b3
Author: Christian Schuett <gaucho...@hotmail.com>
Date:   Sat Dec 13 19:43:28 2014 +0100

    Neutrino moviebrowser: sort column item option choosers alphabetically
    
    also add missing entry 'info2' to this option choosers and remove
    duplicate entry 'filename' from them
    
    Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/neutrino/data/locale/deutsch.locale 
b/tuxbox/neutrino/data/locale/deutsch.locale
index 4ffe974..4f2b9fd 100644
--- a/tuxbox/neutrino/data/locale/deutsch.locale
+++ b/tuxbox/neutrino/data/locale/deutsch.locale
@@ -850,12 +850,12 @@ moviebrowser.hint_newbook_backward Neue Wiederholung\n 
'blau' für Endposition
 moviebrowser.hint_newbook_forward Neuer Werbesprung\n 'blau' für Endposition
 moviebrowser.info_audio Audio
 moviebrowser.info_channel Kanal
-moviebrowser.info_filename Name
+moviebrowser.info_filename Dateiname
 moviebrowser.info_film_delete Film löschen
 moviebrowser.info_film_during Während der Filmwiedergabe:
 moviebrowser.info_film_reload Filminfos neu laden
 moviebrowser.info_genre_major Genre
-moviebrowser.info_genre_minor Genre
+moviebrowser.info_genre_minor Genre (untergeordnet)
 moviebrowser.info_head Film Informationen
 moviebrowser.info_head_update Inhalte in allen sichtbaren Filminfos speichern
 moviebrowser.info_info1 Info 1
@@ -879,7 +879,7 @@ moviebrowser.info_serie Serie
 moviebrowser.info_size Dateigröße (MB)
 moviebrowser.info_subtitles Untertitel
 moviebrowser.info_title Titel
-moviebrowser.info_videoformat Bild
+moviebrowser.info_videoformat Bildformat
 moviebrowser.last_play_max_items Zeilen 'zuletzt aufgenommen'
 moviebrowser.last_record_max_items Zeilen 'zuletzt gesehen'
 moviebrowser.load_default Lade Voreinstellung
diff --git a/tuxbox/neutrino/data/locale/english.locale 
b/tuxbox/neutrino/data/locale/english.locale
index 0954d71..d81b188 100644
--- a/tuxbox/neutrino/data/locale/english.locale
+++ b/tuxbox/neutrino/data/locale/english.locale
@@ -850,12 +850,12 @@ moviebrowser.hint_newbook_backward New jump back\n 'blue' 
for endposition
 moviebrowser.hint_newbook_forward New jump forward\n 'blue' for endposition
 moviebrowser.info_audio Audio
 moviebrowser.info_channel Channel
-moviebrowser.info_filename Name
+moviebrowser.info_filename Filename
 moviebrowser.info_film_delete Delete movie
 moviebrowser.info_film_during During movie playback:
 moviebrowser.info_film_reload Reload movie infos
 moviebrowser.info_genre_major Genre
-moviebrowser.info_genre_minor Genre
+moviebrowser.info_genre_minor Genre (minor)
 moviebrowser.info_head Film Informations
 moviebrowser.info_head_update Save changes in all movie info files
 moviebrowser.info_info1 Info 1
diff --git a/tuxbox/neutrino/src/gui/moviebrowser.cpp 
b/tuxbox/neutrino/src/gui/moviebrowser.cpp
index 235f3cd..ef64780 100644
--- a/tuxbox/neutrino/src/gui/moviebrowser.cpp
+++ b/tuxbox/neutrino/src/gui/moviebrowser.cpp
@@ -106,8 +106,10 @@ const CMenuOptionChooser::keyval 
MESSAGEBOX_BROWSER_ROW_ITEM[MESSAGEBOX_BROWSER_
        { MB_INFO_INFO1, LOCALE_MOVIEBROWSER_INFO_INFO1        },
        { MB_INFO_MAJOR_GENRE, LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR             
},
        { MB_INFO_MINOR_GENRE, LOCALE_MOVIEBROWSER_INFO_GENRE_MINOR             
},
+       { MB_INFO_INFO2, LOCALE_MOVIEBROWSER_INFO_INFO2        },
        { MB_INFO_PARENTAL_LOCKAGE, LOCALE_MOVIEBROWSER_INFO_PARENTAL_LOCKAGE   
        },
        { MB_INFO_CHANNEL, LOCALE_MOVIEBROWSER_INFO_CHANNEL             },
+       { MB_INFO_BOOKMARK, LOCALE_MOVIEBROWSER_MENU_MAIN_BOOKMARKS             
},
        { MB_INFO_QUALITY, LOCALE_MOVIEBROWSER_INFO_QUALITY             },
        { MB_INFO_PREVPLAYDATE, LOCALE_MOVIEBROWSER_INFO_PREVPLAYDATE           
},
        { MB_INFO_RECORDDATE, LOCALE_MOVIEBROWSER_INFO_RECORDDATE               
},
@@ -116,9 +118,7 @@ const CMenuOptionChooser::keyval 
MESSAGEBOX_BROWSER_ROW_ITEM[MESSAGEBOX_BROWSER_
        { MB_INFO_GEOMETRIE, LOCALE_MOVIEBROWSER_INFO_VIDEOFORMAT               
},
        { MB_INFO_AUDIO, LOCALE_MOVIEBROWSER_INFO_AUDIO         },
        { MB_INFO_LENGTH, LOCALE_MOVIEBROWSER_INFO_LENGTH               },
-       { MB_INFO_SIZE, LOCALE_MOVIEBROWSER_INFO_SIZE           },
-       { MB_INFO_BOOKMARK, LOCALE_MOVIEBROWSER_MENU_MAIN_BOOKMARKS             
},
-       { MB_INFO_FILENAME, LOCALE_MOVIEBROWSER_INFO_FILENAME           }
+       { MB_INFO_SIZE, LOCALE_MOVIEBROWSER_INFO_SIZE           }
  };
 
 #define MESSAGEBOX_YES_NO_OPTIONS_COUNT 2
@@ -3210,7 +3210,7 @@ bool CMovieBrowser::showMenu(MI_MOVIE_INFO* 
/*movie_info*/)
        for(i=0; i<MB_MAX_ROWS; i++)
        {
                optionsMenuBrowser.addItem(GenericMenuSeparator);
-               optionsMenuBrowser.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_BROWSER_ROW_ITEM, 
(int*)(&m_settings.browserRowItem[i]), MESSAGEBOX_BROWSER_ROW_ITEM, 
MESSAGEBOX_BROWSER_ROW_ITEM_COUNT, true, NULL, 
CRCInput::convertDigitToKey(i+1), "", true));
+               optionsMenuBrowser.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_BROWSER_ROW_ITEM, 
(int*)(&m_settings.browserRowItem[i]), MESSAGEBOX_BROWSER_ROW_ITEM, 
MESSAGEBOX_BROWSER_ROW_ITEM_COUNT, true, NULL, 
CRCInput::convertDigitToKey(i+1), "", true, true));
                optionsMenuBrowser.addItem( new 
CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_BROWSER_ROW_WIDTH, 
&m_settings.browserRowWidth[i], true, 10, 500, 0, 0, NONEXISTANT_LOCALE, NULL, 
NULL, CRCInput::RC_nokey, "", true));
        }
 
diff --git a/tuxbox/neutrino/src/gui/moviebrowser.h 
b/tuxbox/neutrino/src/gui/moviebrowser.h
index f3173a4..795dd70 100644
--- a/tuxbox/neutrino/src/gui/moviebrowser.h
+++ b/tuxbox/neutrino/src/gui/moviebrowser.h
@@ -158,7 +158,7 @@ typedef struct
        int* used;
 }MB_DIR;
 
-#define MB_MAX_ROWS 6
+#define MB_MAX_ROWS LF_MAX_ROWS
 #define MB_MAX_DIRS 5
 /* MB_SETTINGS to be stored in g_settings anytime ....*/
 typedef struct

commit b49a57572b4db68d2d0dd1cc7432cefa11c7c957
Author: svenhoefer <svenhoe...@svenhoefer.com>
Date:   Sat Dec 13 17:57:17 2014 +0100

    Neutrino moviebrowser: add hotkeys to options to setup
    
    Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/neutrino/src/gui/moviebrowser.cpp 
b/tuxbox/neutrino/src/gui/moviebrowser.cpp
index 7fdfa4b..235f3cd 100644
--- a/tuxbox/neutrino/src/gui/moviebrowser.cpp
+++ b/tuxbox/neutrino/src/gui/moviebrowser.cpp
@@ -3210,7 +3210,7 @@ bool CMovieBrowser::showMenu(MI_MOVIE_INFO* 
/*movie_info*/)
        for(i=0; i<MB_MAX_ROWS; i++)
        {
                optionsMenuBrowser.addItem(GenericMenuSeparator);
-               optionsMenuBrowser.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_BROWSER_ROW_ITEM, 
(int*)(&m_settings.browserRowItem[i]), MESSAGEBOX_BROWSER_ROW_ITEM, 
MESSAGEBOX_BROWSER_ROW_ITEM_COUNT, true, NULL, CRCInput::RC_nokey, "", true));
+               optionsMenuBrowser.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_BROWSER_ROW_ITEM, 
(int*)(&m_settings.browserRowItem[i]), MESSAGEBOX_BROWSER_ROW_ITEM, 
MESSAGEBOX_BROWSER_ROW_ITEM_COUNT, true, NULL, 
CRCInput::convertDigitToKey(i+1), "", true));
                optionsMenuBrowser.addItem( new 
CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_BROWSER_ROW_WIDTH, 
&m_settings.browserRowWidth[i], true, 10, 500, 0, 0, NONEXISTANT_LOCALE, NULL, 
NULL, CRCInput::RC_nokey, "", true));
        }
 

commit 694871113da9a46acbe08f93c283fb1720b07578
Author: svenhoefer <svenhoe...@svenhoefer.com>
Date:   Sat Dec 13 17:55:00 2014 +0100

    Neutrino moviebrowser: use pulldown-menu to show options to setup
    
    Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/neutrino/src/gui/moviebrowser.cpp 
b/tuxbox/neutrino/src/gui/moviebrowser.cpp
index 2eaec48..7fdfa4b 100644
--- a/tuxbox/neutrino/src/gui/moviebrowser.cpp
+++ b/tuxbox/neutrino/src/gui/moviebrowser.cpp
@@ -3210,7 +3210,7 @@ bool CMovieBrowser::showMenu(MI_MOVIE_INFO* 
/*movie_info*/)
        for(i=0; i<MB_MAX_ROWS; i++)
        {
                optionsMenuBrowser.addItem(GenericMenuSeparator);
-               optionsMenuBrowser.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_BROWSER_ROW_ITEM, 
(int*)(&m_settings.browserRowItem[i]), MESSAGEBOX_BROWSER_ROW_ITEM, 
MESSAGEBOX_BROWSER_ROW_ITEM_COUNT, true ));
+               optionsMenuBrowser.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_BROWSER_ROW_ITEM, 
(int*)(&m_settings.browserRowItem[i]), MESSAGEBOX_BROWSER_ROW_ITEM, 
MESSAGEBOX_BROWSER_ROW_ITEM_COUNT, true, NULL, CRCInput::RC_nokey, "", true));
                optionsMenuBrowser.addItem( new 
CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_BROWSER_ROW_WIDTH, 
&m_settings.browserRowWidth[i], true, 10, 500, 0, 0, NONEXISTANT_LOCALE, NULL, 
NULL, CRCInput::RC_nokey, "", true));
        }
 

commit 5325ad02c6314a9305a93deee136b1cc0ea9f4cf
Author: GetAway <get-a...@t-online.de>
Date:   Sun Dec 7 22:27:22 2014 +0100

    tuxmaild: localize and initialize some variables
    
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/plugins/tuxmail/daemon/tuxmaild.c 
b/tuxbox/plugins/tuxmail/daemon/tuxmaild.c
index d3e5820..71172c2 100644
--- a/tuxbox/plugins/tuxmail/daemon/tuxmaild.c
+++ b/tuxbox/plugins/tuxmail/daemon/tuxmaild.c
@@ -3134,11 +3134,11 @@ int SaveMail(int account, char* mailuid)
 {
        int loop;
        char mailnumber[12];
-       char imap1 = 0;
+       char imap = 0;
        
        if( account_db[account].imap[0] != '\0' )
        {
-               imap1 = 1;
+               imap = 1;
        }
        
        if((fd_mail = fopen(POP3FILE, "w")))
@@ -3148,7 +3148,7 @@ int SaveMail(int account, char* mailuid)
 
        // get mail count
 
-               if( !imap1 )
+               if( !imap )
                {
                        if(!SendPOPCommand(INIT, account_db[account].pop3, 
account_db[account].ssl))
                        {
@@ -3233,7 +3233,7 @@ int SaveMail(int account, char* mailuid)
                {
                        sprintf(mailnumber, "%d", loop);
 
-                       if( !imap1 )
+                       if( !imap )
                        {
                                if(!SendPOPCommand(UIDL, mailnumber, 
account_db[account].ssl))
                                {
@@ -3263,7 +3263,7 @@ int SaveMail(int account, char* mailuid)
                        {
                                printf("TuxMailD <SaveFile idx(%u) uid(%s)>\n", 
loop,uid);
 
-                               if( !imap1 )
+                               if( !imap )
                                { 
                                        if(!SendPOPCommand(RETR, mailnumber, 
account_db[account].ssl))
                                        {
@@ -3324,7 +3324,7 @@ int SaveMail(int account, char* mailuid)
 
                fclose(fd_mail);
                
-               if( !imap1 )
+               if( !imap )
                {
                        SendPOPCommand(QUIT, "", account_db[account].ssl);
                }
@@ -3448,15 +3448,19 @@ int ScanMail(char* mailfile,int account,char* 
mailnumber, FILE* fd_status)
        {
                return 0;
        }
-       
+
+       FILE* fd_mail;
+       if ((fd_mail = fopen(mailfile, "r")) == NULL)
+       {
+               return 0;
+       }
+
        int scancnt = 20;
        char spam = 0;
-       FILE* fd_mail;
-       fd_mail = fopen(mailfile, "r");
        char linebuffer[256];
-  int filesize;
-  char *known_uids = 0;
-       char *pointer;
+       int filesize = 0;
+       char *known_uids = 0;
+       char *pointer = 0;
        
        // scan the first x lines of th file for a spam-tag
        do
@@ -3529,12 +3533,18 @@ int AddNewMailFile(int account, char *mailnumber, FILE 
*fd_status)
        char idxfile[256];
        char mailfile[256];
        FILE *fd_mailidx;
-       
+       char imap = 0;
+
        // if we do not store the mails
        if( !mailcache )
        {
                return 0;
        }
+
+       if( account_db[account].imap[0] != '\0' )
+       {
+               imap = 1;
+       }
        
        sprintf(idxfile,"%stuxmail.idx%u",maildir,account);
        
@@ -3667,25 +3677,27 @@ int CheckAccount(int account)
 {
        int loop, minloop = 0;
        FILE *fd_status, *fd_idx;
-       int filesize, skip_uid_check = 0;
+       int filesize = 0, skip_uid_check = 0;
        char statusfile[] = "/tmp/tuxmail.?";
        char *known_uids = 0, *ptr = 0;
        char mailnumber[12];
        int readmails = 0;
        int knownmails = 0;
-
-       imap = 0;
+       char imap = 0;
                
        // timestamp
 
-       time(&tt);
+       time_t tt = time((time_t *)0);
        strftime(timeinfo, 22, "%R", localtime(&tt));
 
        // check if we should use an IMAP server
        if( account_db[account].imap[0] != '\0' )
        {
                imap = 1;
+       }
 
+       if( imap )
+       {
                // init connection to server
                if(!SendIMAPCommand(INIT, account_db[account].imap, "", 
account_db[account].ssl))
                {
@@ -4844,10 +4856,11 @@ void SigHandler(int signal)
 
 int main(int argc, char **argv)
 {
-       char cvs_revision[] = "$Revision: 1.56 $";
+       char cvs_revision[] = "$Revision: 1.57 $";
        int param = 0, nodelay = 0, account = 0, mailstatus = 0, 
unread_mailstatus = 0;
        pthread_t thread_id;
        void *thread_result = 0;
+       FILE *fd_pid;
 
        // check commandline parameter
 
@@ -4951,7 +4964,7 @@ int main(int argc, char **argv)
                
                sscanf(cvs_revision, "%*s %s", versioninfo);
 
-               time(&tt);
+               time_t tt = time((time_t *)0);
                strftime(timeinfo, 22, "%d.%m.%Y - %T", localtime(&tt));
 
                switch(fork())
diff --git a/tuxbox/plugins/tuxmail/daemon/tuxmaild.h 
b/tuxbox/plugins/tuxmail/daemon/tuxmaild.h
index d4de994..c989ab7 100644
--- a/tuxbox/plugins/tuxmail/daemon/tuxmaild.h
+++ b/tuxbox/plugins/tuxmail/daemon/tuxmaild.h
@@ -214,7 +214,6 @@ connection *c;
 // some data
 
 char versioninfo[12];
-FILE *fd_pid;
 int slog = 0;
 int pid;
 int webport;
@@ -226,21 +225,19 @@ int video, typeflag;
 char online = 1;
 char mailread = 0;
 char inPOPCmd = 0;
-int accounts;
+int accounts = 0;
 int sock;
-int messages, deleted_messages;
+int messages = 0, deleted_messages = 0;
 int stringindex;
 int use_spamfilter, spam_entries, spam_detected;
 char uid[128];
 long v_uid;
 long m_uid;
-char imap;
 char header[1024];
 char timeinfo[22];
 char maildir[256];
 char security[80];
 int mailcache = 0;
-time_t tt;
 
 // lcd stuff
 

commit 067efa9cbed00c3cb4dc3816982b60b5b62b304b
Author: GetAway <get-a...@t-online.de>
Date:   Sun Dec 7 21:47:02 2014 +0100

    tuxmaild: introduce check multiline of subject:
    
    remove unused code
    version bump 1.56
    
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/plugins/tuxmail/daemon/tuxmaild.c 
b/tuxbox/plugins/tuxmail/daemon/tuxmaild.c
index 74029fa..d3e5820 100644
--- a/tuxbox/plugins/tuxmail/daemon/tuxmaild.c
+++ b/tuxbox/plugins/tuxmail/daemon/tuxmaild.c
@@ -1763,7 +1763,6 @@ int SendPOPCommand(int command, char *param, int ssl)
                                case TOP:
 
                                        stringindex = 0;
-                                       headersize = strlen(recv_buffer);
                                        memset(header, 0, sizeof(header));
 
                                        if((ptr = strstr(recv_buffer, 
"\nDate:")))
@@ -1890,6 +1889,13 @@ int SendPOPCommand(int command, char *param, int ssl)
                                                        {
                                                                
memcpy(&header[stringindex++], ptr++, 1);
                                                        }
+                                                       if(*ptr == '\r' && 
(*(ptr + 2) == ' ' || *(ptr + 2) == 0x09)) // check multiline
+                                                       {
+                                                               if(*(ptr + 3) 
== '=' && *(ptr + 4) == '?')
+                                                                       ptr += 
3;
+                                                               else
+                                                                       ptr += 
2;
+                                                       }
                                                }
 
                                                if(use_spamfilter)
@@ -2389,7 +2395,6 @@ int SendIMAPCommand(int command, char *param, char 
*param2, int ssl)
                                case FETCH:
 
                                        stringindex = 0;
-                                       headersize = strlen(recv_buffer);
                                        memset(header, 0, sizeof(header));
 
                                        if((ptr = strstr(recv_buffer, 
"\nDate:")))
@@ -2516,6 +2521,13 @@ int SendIMAPCommand(int command, char *param, char 
*param2, int ssl)
                                                        {
                                                                
memcpy(&header[stringindex++], ptr++, 1);
                                                        }
+                                                       if(*ptr == '\r' && 
(*(ptr + 2) == ' ' || *(ptr + 2) == 0x09)) // check multiline
+                                                       {
+                                                               if(*(ptr + 3) 
== '=' && *(ptr + 4) == '?')
+                                                                       ptr += 
3;
+                                                               else
+                                                                       ptr += 
2;
+                                                       }
                                                }
                                                
                                                if(use_spamfilter)
@@ -4832,7 +4844,7 @@ void SigHandler(int signal)
 
 int main(int argc, char **argv)
 {
-       char cvs_revision[] = "$Revision: 1.55 $";
+       char cvs_revision[] = "$Revision: 1.56 $";
        int param = 0, nodelay = 0, account = 0, mailstatus = 0, 
unread_mailstatus = 0;
        pthread_t thread_id;
        void *thread_result = 0;
diff --git a/tuxbox/plugins/tuxmail/daemon/tuxmaild.h 
b/tuxbox/plugins/tuxmail/daemon/tuxmaild.h
index 1888765..d4de994 100644
--- a/tuxbox/plugins/tuxmail/daemon/tuxmaild.h
+++ b/tuxbox/plugins/tuxmail/daemon/tuxmaild.h
@@ -236,7 +236,6 @@ long v_uid;
 long m_uid;
 char imap;
 char header[1024];
-int headersize;
 char timeinfo[22];
 char maildir[256];
 char security[80];

commit 0ce6377a3bdcef3ef02d49584406ca711d107860
Author: GetAway <get-a...@t-online.de>
Date:   Sun Dec 7 19:05:14 2014 +0100

    tuxmail: add EURO hack
    
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/plugins/tuxmail/tuxmail.c b/tuxbox/plugins/tuxmail/tuxmail.c
index 043bc73..5491f04 100644
--- a/tuxbox/plugins/tuxmail/tuxmail.c
+++ b/tuxbox/plugins/tuxmail/tuxmail.c
@@ -939,8 +939,22 @@ void RenderString(char *string, int sx, int sy, int 
maxwidth, int layout, int si
                while(*rptr != '\0')
                {
                        int uml = 0;
-                       switch(*rptr)    /* skip Umlauts */
-                       {
+                       switch(*rptr)    /* skip Umlauts, EURO Hack */
+                       {
+                               case '\xe2':
+                                                       if (*(rptr + 1) == 
'\x82' && *(rptr + 2) == '\xac') { // U+20AC
+                                                               *(rptr)   = 'E';
+                                                               *(rptr+1) = 'U';
+                                                               *(rptr+2) = 'R';
+                                                               uml=1;
+                                                       }
+                                                       else if (*(rptr + 1) == 
'\x80' && *(rptr + 2) == '\xa6') { // U+2026
+                                                               *(rptr)   = '.';
+                                                               *(rptr+1) = '.';
+                                                               *(rptr+2) = '.';
+                                                               uml=1;
+                                                       }
+                                                       break;
                                case '\xc4':
                                case '\xd6':
                                case '\xdc':
@@ -3806,7 +3820,7 @@ void SaveAndReloadDB(int iSave)
 
 void plugin_exec(PluginParam *par)
 {
-       char cvs_revision[] = "$Revision: 1.56B $";
+       char cvs_revision[] = "$Revision: 1.57 $";
        int loop, account, mailindex;
        FILE *fd_run;
        FT_Error error;

commit e3e1e3d6c932ea703aafed575327567584710a1c
Author: GetAway <get-a...@t-online.de>
Date:   Sun Dec 7 18:48:33 2014 +0100

    tuxmaild: prevent buffer overflow
    
    fix converting tables
    fix wrong if-statement
    remove linelen restriction
    initialize some variables
    bump version 1.55
    
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/plugins/tuxmail/daemon/tuxmaild.c 
b/tuxbox/plugins/tuxmail/daemon/tuxmaild.c
index b8d7b46..74029fa 100644
--- a/tuxbox/plugins/tuxmail/daemon/tuxmaild.c
+++ b/tuxbox/plugins/tuxmail/daemon/tuxmaild.c
@@ -1014,7 +1014,12 @@ void doOneChar( char c )
                // normal, not in a tag, translation or special char            
                case cTrans :
                        {
-//                             printf("U: (%c:%u) nTr:%u\r\n",c,c,nTr);
+//                             printf("U: (%c:%u) nTr:%u\tCharInWord 
%d\n",c,c,nTr,nCharInWord);
+                               if (nCharInWord >= (int)sizeof(sWord)) // 
prevent buffer overflow
+                               {
+                                       nCharInWord = 0;
+                                       break;
+                               }
                                if(nTr == 0)
                                {
                                        sWord[nCharInWord++] = c;
@@ -1336,9 +1341,9 @@ void doOneChar( char c )
                                } 
                                else 
                                { // we didn't find a conversion
-                                       char sTmp[300];
+                                       char sTmp[512];
 
-                                       sprintf(sTmp,"&%s%c",sSond,c);          
                        
+                                       snprintf(sTmp, 512, "&%s%c", sSond, c);
                                        int iLen = strlen(sTmp);
                                        for( i = 0 ; i < iLen; i++)
                                        {
@@ -1388,7 +1393,7 @@ void doOneChar( char c )
 
 void writeFOut( char *s)
 {
-       char sSond[255];
+       char sSond[512];
 
        // paint a line ?
        if( s[0] == '\n' ) 
@@ -1712,10 +1717,7 @@ int SendPOPCommand(int command, char *param, int ssl)
 
                                if(stringindex < sizeof(recv_buffer) - 4)
                                {
-                                       if((linelen < 256) || (command != TOP)) 
        // restrict linelen
-                                       {
                                                stringindex++;
-                                       } 
                                }
                                else
                                {
@@ -4830,8 +4832,8 @@ void SigHandler(int signal)
 
 int main(int argc, char **argv)
 {
-       char cvs_revision[] = "$Revision: 1.54 $";
-       int param, nodelay = 0, account, mailstatus, unread_mailstatus;
+       char cvs_revision[] = "$Revision: 1.55 $";
+       int param = 0, nodelay = 0, account = 0, mailstatus = 0, 
unread_mailstatus = 0;
        pthread_t thread_id;
        void *thread_result = 0;
 
@@ -4866,19 +4868,18 @@ int main(int argc, char **argv)
                                                return -1;
                                        }
                                        param++;
-                                       int account = atoi(argv[param]);
+                                       account = atoi(argv[param]);
                                        param++;
                                        FILE* pipeout;
-                                       pipeout = fopen(SMTPFILE,"w");
-                                       if(pipeout == NULL)
+                                       if ((pipeout = fopen(SMTPFILE,"w")) == 
NULL)
                                        {
                                                return -1;
                                        }
                                        FILE* pipein;
-                                       pipein = fopen(argv[param+1],"r");
-                                       if(pipeout == NULL)
+                                       if ((pipein = fopen(argv[param+1],"r")) 
== NULL)
                                        {
                                                fclose(pipeout);
+                                               fclose(pipeout);
                                                return -1;
                                        }
        
diff --git a/tuxbox/plugins/tuxmail/daemon/tuxmaild.h 
b/tuxbox/plugins/tuxmail/daemon/tuxmaild.h
index f067e9f..1888765 100644
--- a/tuxbox/plugins/tuxmail/daemon/tuxmaild.h
+++ b/tuxbox/plugins/tuxmail/daemon/tuxmaild.h
@@ -68,7 +68,7 @@ int  nCRLF = 0;
 int  nLine = 1; 
 int  nRef  = 1;
 int   nHyp  = 0 ;
-char  sSond[355],sRef[355], sWord[85];
+char  sSond[512],sRef[512], sWord[85];
 static enum  t_state { cNorm, cInTag, cSond, cInComment, cTrans } state ;
 
 #define szsize 64
@@ -77,7 +77,7 @@ char *szTab[szsize] = {
   /*192 */ "Agrave"  ,   /*193 */ "Aacute"  ,
   /*194 */ "Acirc"   ,   /*195 */ "Atilde"  ,
   /*196 */ "Auml"    ,   /*197 */ "Aring"   ,
-  /*198 */ "Aelig"   ,   /*199 */ "Ccedil"  ,
+  /*198 */ "AElig"   ,   /*199 */ "Ccedil"  ,
   /*200 */ "Egrave"  ,   /*201 */ "Eacute"  ,
   /*202 */ "Ecirc"   ,   /*203 */ "Euml"    ,
   /*204 */ "Igrave"  ,   /*205 */ "Iacute"  ,
@@ -85,7 +85,7 @@ char *szTab[szsize] = {
   /*208 */ "ETH"     ,   /*209 */ "Ntilde"  ,
   /*210 */ "Ograve"  ,   /*211 */ "Oacute"  ,
   /*212 */ "Ocirc"   ,   /*213 */ "Otilde"  ,
-  /*214 */ "Ouml"    ,   /*215 */ "XXXXXX"  ,
+  /*214 */ "Ouml"    ,   /*215 */ "times"   ,
   /*216 */ "Oslash"  ,   /*217 */ "Ugrave"  ,
   /*218 */ "Uacute"  ,   /*219 */ "Ucirc"   ,
   /*220 */ "Uuml"    ,   /*221 */ "Yacute"  ,
@@ -101,25 +101,27 @@ char *szTab[szsize] = {
   /*240 */ "eth"     ,   /*241 */ "ntilde"  ,
   /*242 */ "ograve"  ,   /*243 */ "oacute"  ,
   /*244 */ "ocirc"   ,   /*245 */ "otilde"  ,
-  /*246 */ "ouml"    ,   /*247 */ "XXXXXX"  ,
+  /*246 */ "ouml"    ,   /*247 */ "divide"  ,
   /*248 */ "oslash"  ,   /*249 */ "ugrave"  ,
   /*250 */ "uacute"  ,   /*251 */ "ucirc"   ,
   /*252 */ "uuml"    ,   /*253 */ "yacute"  ,
   /*254 */ "thorn"   ,   /*255 */ "yuml"
 };
 
-#define ttsize  9
+#define ttsize  11
 
 char ttable[ttsize*3] = {
-       'F','C', 252,
-       'D','F', 223,
-       'E','4', 228,
-       'F','6', 246,
-       'D','6', 214,
-       '3','D', '=',
-       '2','0',  20,
-       '0','D',  13,
-       13 , 10,  0
+       'C','4', 196, // Ä
+       'D','6', 214, // Ö
+       'D','C', 220, // Ü
+       'D','F', 223, // ß
+       'E','4', 228, // ä
+       'F','6', 246, // ö
+       'F','C', 252, // ü
+       '3','D',  61, // =
+       '2','0',  20, // DC4
+       '0','D',  13, // CR
+       13 , 10,   0
 };
 
 // functions

commit 8deee4ac2f9956970c85bec9e3f46fd600930e04
Author: Christian Schuett <gaucho...@hotmail.com>
Date:   Sat Dec 6 21:03:20 2014 +0100

    Neutrino: get icon names for direct keys in menu items automatically
    
    based on idea by martii <m4r...@gmx.de> in Neutrino-MP Git
    
    Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/neutrino/src/gui/drive_setup.cpp 
b/tuxbox/neutrino/src/gui/drive_setup.cpp
index 4f67985..0bf5300 100644
--- a/tuxbox/neutrino/src/gui/drive_setup.cpp
+++ b/tuxbox/neutrino/src/gui/drive_setup.cpp
@@ -673,10 +673,10 @@ void CDriveSetup::showHddSetupMain()
        m.setPreselected(selected_main);
        
        // apply
-       CMenuForwarder *m1 = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_SAVESETTINGS, true, NULL, this, "apply", 
CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+       CMenuForwarder *m1 = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_SAVESETTINGS, true, NULL, this, "apply", 
CRCInput::RC_red);
        
        // help
-       CMenuForwarder *m_help = new CMenuForwarder(LOCALE_SETTINGS_HELP, true, 
NULL, this, "show_help", CRCInput::RC_help, NEUTRINO_ICON_BUTTON_HELP);
+       CMenuForwarder *m_help = new CMenuForwarder(LOCALE_SETTINGS_HELP, true, 
NULL, this, "show_help", CRCInput::RC_help);
        
        // activate/deactivate ide interface
        if (isIdeInterfaceActive()){
@@ -799,7 +799,7 @@ void CDriveSetup::showExtMenu(CMenuWidget *extsettings)
        CMenuForwarder * fw_moduldir = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_ADVANCED_SETTINGS_CUSTOM_MODULDIR, true, 
d_settings.drive_modul_dir, dirchooser_moduldir);
 
        //extended settings: reset settings
-       CMenuForwarder *fw_reset = new CMenuForwarder(LOCALE_DRIVE_SETUP_RESET, 
true, NULL, this, "reset_drive_setup", CRCInput::RC_red, 
NEUTRINO_ICON_BUTTON_RED);
+       CMenuForwarder *fw_reset = new CMenuForwarder(LOCALE_DRIVE_SETUP_RESET, 
true, NULL, this, "reset_drive_setup", CRCInput::RC_red);
 
        //extended settings: filesystem format options
        vector<CMenuForwarder*> v_fs_opts_items;
@@ -1009,10 +1009,10 @@ void CDriveSetup::showHddSetupSub()
                add_swap_active = false;
 
        //add swap
-       CMenuForwarder *swap_add = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_HDD_ADD_SWAP_PARTITION, add_swap_active, 
NULL, sub_add_swap, NULL/*"add_swap_partition"*/, CRCInput::RC_red, 
NEUTRINO_ICON_BUTTON_RED);
+       CMenuForwarder *swap_add = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_HDD_ADD_SWAP_PARTITION, add_swap_active, 
NULL, sub_add_swap, NULL/*"add_swap_partition"*/, CRCInput::RC_red);
 
        //add part
-       CMenuForwarder *part_add = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_HDD_ADD_PARTITION, add_activate, NULL, 
sub_add, NULL/*"add_partition"*/, CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN);
+       CMenuForwarder *part_add = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_HDD_ADD_PARTITION, add_activate, NULL, 
sub_add, NULL/*"add_partition"*/, CRCInput::RC_green);
 
        //menue add: prepare subhead: add part
        string add_subhead_txt = dev_name + " >> " + 
iToString(next_part_number+1) + ". " + 
g_Locale->getText(LOCALE_DRIVE_SETUP_HDD_ADD_PARTITION);
@@ -1046,7 +1046,7 @@ void CDriveSetup::showHddSetupSub()
        CMenuSeparator *add_swap_subhead = new 
CMenuSeparator(CMenuSeparator::ALIGN_LEFT | CMenuSeparator::SUB_HEAD | 
CMenuSeparator::STRING);
        add_swap_subhead->setString(add_swap_subhead_txt);
 
-       CMenuForwarder *make_swap = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_HDD_FORMAT_PARTITION, true, NULL, this, 
"make_swap", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+       CMenuForwarder *make_swap = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_HDD_FORMAT_PARTITION, true, NULL, this, 
"make_swap", CRCInput::RC_red);
 
        //menue add: prepare start_cylinder for add partition
        setStartCylinder();
@@ -1058,10 +1058,10 @@ void CDriveSetup::showHddSetupSub()
        bool have_parts = haveActiveParts(current_device);
        
        //menue sub: prepare item: mount all partitions
-       CMenuForwarder *mount_all =  new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_MOUNT_NOW_DEVICE, (!have_mounts ? 
have_parts:false), NULL, this, "mount_device_partitions", CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW);
+       CMenuForwarder *mount_all =  new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_MOUNT_NOW_DEVICE, (!have_mounts ? 
have_parts:false), NULL, this, "mount_device_partitions", CRCInput::RC_yellow);
 
        //menue sub: prepare item: unmount all partitions
-       CMenuForwarder *ummount_all =  new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_UNMOUNT_NOW_DEVICE, (have_mounts ? 
true:false), NULL, this, "unmount_device_partitions", CRCInput::RC_blue, 
NEUTRINO_ICON_BUTTON_BLUE);
+       CMenuForwarder *ummount_all =  new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_UNMOUNT_NOW_DEVICE, (have_mounts ? 
true:false), NULL, this, "unmount_device_partitions", CRCInput::RC_blue);
 
        //menue sub: prepare separator: partlist
        CMenuSeparator *separator = new CMenuSeparator(CMenuSeparator::LINE | 
CMenuSeparator::STRING, LOCALE_DRIVE_SETUP_HDD_EDIT_PARTITION);
@@ -1221,7 +1221,7 @@ void CDriveSetup::showHddSetupSub()
                fw_cylinders[i]         = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_CURRENT_CYLINDERS, false, 
ed_cylinders[i].c_str());
 
                //enable/disable partition
-               activate[i] = new 
CMenuOptionChooser(LOCALE_DRIVE_SETUP_PARTITION_ACTIVATE, 
&d_settings.drive_partition_activ[current_device][i], OPTIONS_YES_NO_OPTIONS, 
OPTIONS_YES_NO_OPTION_COUNT, true , NULL, CRCInput::RC_standby, 
NEUTRINO_ICON_BUTTON_POWER );
+               activate[i] = new 
CMenuOptionChooser(LOCALE_DRIVE_SETUP_PARTITION_ACTIVATE, 
&d_settings.drive_partition_activ[current_device][i], OPTIONS_YES_NO_OPTIONS, 
OPTIONS_YES_NO_OPTION_COUNT, true, NULL, CRCInput::RC_standby);
 
                //set mountstatus for enable/disable menue items
                if (isMountedPartition(partname[i]) || 
isSwapPartition(partname[i]))
@@ -1251,7 +1251,7 @@ void CDriveSetup::showHddSetupSub()
 #if defined ENABLE_NFSSERVER || defined ENABLE_SAMBASERVER
                bool share_chooser_activ = 
((string)d_settings.drive_partition_fstype[current_device][i] == "swap" ? false 
: true);
                //prepare submenue for server shares
-               part_srv_fw[i]  = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_SERVER_SHARE, share_chooser_activ, 
NULL, part_srv_shares[i], NULL, CRCInput::RC_0, NEUTRINO_ICON_BUTTON_0);
+               part_srv_fw[i]  = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_SERVER_SHARE, share_chooser_activ, 
NULL, part_srv_shares[i], NULL, CRCInput::RC_0);
 
                //forwarder with current mountpoint as shared path
                srv_path_fw[i]  = new 
CMenuForwarder(LOCALE_SAMBASERVER_SETUP_SHARES_PATH, false, 
d_settings.drive_partition_mountpoint[current_device][i]);
@@ -1261,20 +1261,20 @@ void CDriveSetup::showHddSetupSub()
                        nfs_host_ip[i] = new 
CIPInput(LOCALE_DRIVE_SETUP_PARTITION_NFS_HOST_IP , 
d_settings.drive_partition_nfs_host_ip[current_device][i]);
        
                        //prepare option nfs    
-                       nfs_host_ip_fw[i] = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_NFS_HOST_IP, 
d_settings.drive_partition_nfs[current_device][i], 
d_settings.drive_partition_nfs_host_ip[current_device][i], nfs_host_ip[i], 
NULL, CRCInput::RC_1, NEUTRINO_ICON_BUTTON_1 );
+                       nfs_host_ip_fw[i] = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_NFS_HOST_IP, 
d_settings.drive_partition_nfs[current_device][i], 
d_settings.drive_partition_nfs_host_ip[current_device][i], nfs_host_ip[i], 
NULL, CRCInput::RC_1);
        
                        //prepare option nfs chooser
                        nfsHostNotifier[i] = new COnOffNotifier(); //enable 
disable entry for input nfs host ip
                        nfsHostNotifier[i]->addItem(nfs_host_ip_fw[i]);
-                       nfs_chooser[i] = new 
CMenuOptionChooser(LOCALE_DRIVE_SETUP_PARTITION_NFS, 
&d_settings.drive_partition_nfs[current_device][i], OPTIONS_YES_NO_OPTIONS, 
OPTIONS_YES_NO_OPTION_COUNT, share_chooser_activ, nfsHostNotifier[i], 
CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED  );              
+                       nfs_chooser[i] = new 
CMenuOptionChooser(LOCALE_DRIVE_SETUP_PARTITION_NFS, 
&d_settings.drive_partition_nfs[current_device][i], OPTIONS_YES_NO_OPTIONS, 
OPTIONS_YES_NO_OPTION_COUNT, share_chooser_activ, nfsHostNotifier[i], 
CRCInput::RC_red);
                #endif /*ENABLE_NFSSERVER*/
                
                #ifdef ENABLE_SAMBASERVER
-                       srv_smb_globals[i]= new 
CMenuForwarder(LOCALE_SAMBASERVER_SETUP,  
d_settings.drive_partition_samba[current_device][i], NULL, new 
CSambaSetup(LOCALE_DRIVE_SETUP_HEAD, msg_icon), NULL, CRCInput::RC_0, 
NEUTRINO_ICON_BUTTON_0);
+                       srv_smb_globals[i]= new 
CMenuForwarder(LOCALE_SAMBASERVER_SETUP, 
d_settings.drive_partition_samba[current_device][i], NULL, new 
CSambaSetup(LOCALE_DRIVE_SETUP_HEAD, msg_icon), NULL, CRCInput::RC_0);
 
                        //prepare share name
                        smb_share_name_input[i] = new 
CStringInputSMS(LOCALE_SAMBASERVER_SETUP_SHARES_NAME, 
&d_settings.drive_partition_samba_share_name[current_device][i], 20, false, 
LOCALE_SAMBASERVER_SETUP_SHARES_NAME_HINT1, 
LOCALE_SAMBASERVER_SETUP_SHARES_NAME_HINT2, 
"abcdefghijklmnopqrstuvwxyz0123456789!""\xA7$%&/()=?-_. ");
-                       smb_share_name_fw[i] = new 
CMenuForwarder(LOCALE_SAMBASERVER_SETUP_SHARES_NAME, 
d_settings.drive_partition_samba[current_device][i], 
d_settings.drive_partition_samba_share_name[current_device][i], 
smb_share_name_input[i], NULL, CRCInput::RC_2, NEUTRINO_ICON_BUTTON_2);
+                       smb_share_name_fw[i] = new 
CMenuForwarder(LOCALE_SAMBASERVER_SETUP_SHARES_NAME, 
d_settings.drive_partition_samba[current_device][i], 
d_settings.drive_partition_samba_share_name[current_device][i], 
smb_share_name_input[i], NULL, CRCInput::RC_2);
                        
                        //prepare comment and set a default comment if no 
comment was found
                        if 
(d_settings.drive_partition_samba_share_comment[current_device][i].empty())
@@ -1282,10 +1282,10 @@ void CDriveSetup::showHddSetupSub()
                        smb_share_comment_fw[i] = new 
CMenuForwarder(LOCALE_SAMBASERVER_SETUP_SHARES_COMMENT, false, 
d_settings.drive_partition_samba_share_comment[current_device][i]);
 
                        //prepare option read only
-                       smb_ro_chooser[i] = new 
CMenuOptionChooser(LOCALE_SAMBASERVER_SETUP_SHARES_RO, 
&d_settings.drive_partition_samba_ro[current_device][i], 
OPTIONS_YES_NO_OPTIONS, OPTIONS_YES_NO_OPTION_COUNT, 
d_settings.drive_partition_samba[current_device][i], NULL, CRCInput::RC_3, 
NEUTRINO_ICON_BUTTON_3 );
+                       smb_ro_chooser[i] = new 
CMenuOptionChooser(LOCALE_SAMBASERVER_SETUP_SHARES_RO, 
&d_settings.drive_partition_samba_ro[current_device][i], 
OPTIONS_YES_NO_OPTIONS, OPTIONS_YES_NO_OPTION_COUNT, 
d_settings.drive_partition_samba[current_device][i], NULL, CRCInput::RC_3);
 
                        //prepare option guest ok 
-                       smb_public_chooser[i] = new 
CMenuOptionChooser(LOCALE_SAMBASERVER_SETUP_SHARES_PUBLIC, 
&d_settings.drive_partition_samba_public[current_device][i], 
OPTIONS_YES_NO_OPTIONS, OPTIONS_YES_NO_OPTION_COUNT, 
d_settings.drive_partition_samba[current_device][i], NULL, CRCInput::RC_4, 
NEUTRINO_ICON_BUTTON_4 );
+                       smb_public_chooser[i] = new 
CMenuOptionChooser(LOCALE_SAMBASERVER_SETUP_SHARES_PUBLIC, 
&d_settings.drive_partition_samba_public[current_device][i], 
OPTIONS_YES_NO_OPTIONS, OPTIONS_YES_NO_OPTION_COUNT, 
d_settings.drive_partition_samba[current_device][i], NULL, CRCInput::RC_4);
 
                        //prepare on off use
                        //only active if samba binaries are available or if no 
samba installed, show info message
@@ -1294,7 +1294,7 @@ void CDriveSetup::showHddSetupSub()
                        sambaNotifier[i]->addItem(smb_share_name_fw[i]);
                        sambaNotifier[i]->addItem(smb_ro_chooser[i]);
                        sambaNotifier[i]->addItem(smb_public_chooser[i]);
-                       smb_chooser[i] = new 
CMenuOptionChooser(LOCALE_DRIVE_SETUP_PARTITION_SAMBA, 
&d_settings.drive_partition_samba[current_device][i], OPTIONS_YES_NO_OPTIONS, 
OPTIONS_YES_NO_OPTION_COUNT, have_samba, sambaNotifier[i], CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN );  
+                       smb_chooser[i] = new 
CMenuOptionChooser(LOCALE_DRIVE_SETUP_PARTITION_SAMBA, 
&d_settings.drive_partition_samba[current_device][i], OPTIONS_YES_NO_OPTIONS, 
OPTIONS_YES_NO_OPTION_COUNT, have_samba, sambaNotifier[i], CRCInput::RC_green);
                #endif /*ENABLE_SAMBASERVER*/
 #endif /*ENABLE_NFSSERVER || definied ENABLE_SAMBASERVER*/
 
@@ -1320,11 +1320,11 @@ void CDriveSetup::showHddSetupSub()
 
                //prepare make partition
                ak_make_partition[i] = MAKE_PARTITION + iToString(i);
-               mkpart[i] = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_HDD_FORMAT_PARTITION, true, NULL, this, 
ak_make_partition[i].c_str(), CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+               mkpart[i] = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_HDD_FORMAT_PARTITION, true, NULL, this, 
ak_make_partition[i].c_str(), CRCInput::RC_red);
 
                //prepare format partition
                ak_format_partition[i] = FORMAT_PARTITION + iToString(i);
-               format_part[i] = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_FORMAT, true, NULL, this, 
ak_format_partition[i].c_str(), CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+               format_part[i] = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_FORMAT, true, NULL, this, 
ak_format_partition[i].c_str(), CRCInput::RC_red);
 
                //prepare mount/unmount partition, swap caption and actionkey 
strings
                if(is_mounted[i])
@@ -1337,15 +1337,15 @@ void CDriveSetup::showHddSetupSub()
                        ak_mount_umount_partition[i] = MOUNT_PARTITION + 
iToString(i);
                        locale_mount_umount[i] = 
LOCALE_DRIVE_SETUP_PARTITION_MOUNT_NOW;
                }
-               mount_umount[i] = new CMenuForwarder(locale_mount_umount[i], 
true, NULL, this, ak_mount_umount_partition[i].c_str(), CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN);
+               mount_umount[i] = new CMenuForwarder(locale_mount_umount[i], 
true, NULL, this, ak_mount_umount_partition[i].c_str(), CRCInput::RC_green);
 
                //prepare delete partition
                ak_delete_partition[i] = DELETE_PARTITION + iToString(i);
-               delete_part[i] = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_DELETE, true, NULL, this, 
ak_delete_partition[i].c_str(), CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW);
+               delete_part[i] = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_DELETE, true, NULL, this, 
ak_delete_partition[i].c_str(), CRCInput::RC_yellow);
 
                //prepare check partition
                ak_check_partition[i] = CHECK_PARTITION + iToString(i);
-               check_part[i] = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_CHECK, true, NULL, this, 
ak_check_partition[i].c_str(), CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE);
+               check_part[i] = new 
CMenuForwarder(LOCALE_DRIVE_SETUP_PARTITION_CHECK, true, NULL, this, 
ak_check_partition[i].c_str(), CRCInput::RC_blue);
 
                //edit partition
                part[i]->addItem(p_subhead[i]);                 //subhead
@@ -1384,7 +1384,7 @@ void CDriveSetup::showHddSetupSub()
                #ifdef ENABLE_SAMBASERVER
                        part_srv_shares[i]->addItem(srv_smb_sep);               
//samba separator
                        if (!have_samba)
-                               part_srv_shares[i]->addItem(new 
CMenuForwarder(LOCALE_MESSAGEBOX_INFO, true, NULL, this, "missing_samba", 
CRCInput::RC_help, NEUTRINO_ICON_BUTTON_HELP));//samba info
+                               part_srv_shares[i]->addItem(new 
CMenuForwarder(LOCALE_MESSAGEBOX_INFO, true, NULL, this, "missing_samba", 
CRCInput::RC_help));//samba info
                        part_srv_shares[i]->addItem(smb_chooser[i]);            
//samba on/off
                        //------------------------
                        part_srv_shares[i]->addItem(GenericMenuSeparatorLine);  
//separator
diff --git a/tuxbox/neutrino/src/gui/epg_menu.cpp 
b/tuxbox/neutrino/src/gui/epg_menu.cpp
index 0fa41bb..5d6a823 100644
--- a/tuxbox/neutrino/src/gui/epg_menu.cpp
+++ b/tuxbox/neutrino/src/gui/epg_menu.cpp
@@ -77,12 +77,12 @@ int CEPGMenuHandler::doMenu ()
 
        // EPGSelector.addItem(GenericMenuSeparator);
 
-       EPGSelector.addItem(new CMenuForwarder(LOCALE_EPGMENU_EVENTLIST , true, 
NULL, new CEventListHandler(), NULL, CRCInput::RC_red   , 
NEUTRINO_ICON_BUTTON_RED   ), false);
+       EPGSelector.addItem(new CMenuForwarder(LOCALE_EPGMENU_EVENTLIST, true, 
NULL, new CEventListHandler(), NULL, CRCInput::RC_red));
 #ifdef ENABLE_EPGPLUS
-       EPGSelector.addItem(new CMenuForwarder(LOCALE_EPGMENU_EPGPLUS   , true, 
NULL, new CEPGplusHandler()  , NULL, CRCInput::RC_green , 
NEUTRINO_ICON_BUTTON_GREEN ), false);
+       EPGSelector.addItem(new CMenuForwarder(LOCALE_EPGMENU_EPGPLUS, true, 
NULL, new CEPGplusHandler(), NULL, CRCInput::RC_green));
 #endif
-       EPGSelector.addItem(new CMenuForwarder(LOCALE_EPGMENU_EVENTINFO , true, 
NULL, new CEPGDataHandler()  , NULL, CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW), false);
-       EPGSelector.addItem(new CMenuForwarder(LOCALE_EPGMENU_STREAMINFO, true, 
NULL, new CStreamInfo2Handler()     , NULL, CRCInput::RC_blue  , 
NEUTRINO_ICON_BUTTON_BLUE  ), false);
+       EPGSelector.addItem(new CMenuForwarder(LOCALE_EPGMENU_EVENTINFO, true, 
NULL, new CEPGDataHandler(), NULL, CRCInput::RC_yellow));
+       EPGSelector.addItem(new CMenuForwarder(LOCALE_EPGMENU_STREAMINFO, true, 
NULL, new CStreamInfo2Handler(), NULL, CRCInput::RC_blue));
 
        EPGSelector.addItem(GenericMenuSeparator);
 
diff --git a/tuxbox/neutrino/src/gui/epgplus.cpp 
b/tuxbox/neutrino/src/gui/epgplus.cpp
index 97eeafc..2b3c5fb 100644
--- a/tuxbox/neutrino/src/gui/epgplus.cpp
+++ b/tuxbox/neutrino/src/gui/epgplus.cpp
@@ -1033,9 +1033,9 @@ int EpgPlus::exec(CChannelList* _channelList, int 
selectedChannelIndex, CBouquet
 
                                CMenuWidget 
menuWidgetActions(LOCALE_EPGPLUS_ACTIONS, NEUTRINO_ICON_FEATURES, 400);
                                
menuWidgetActions.addIntroItems(NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, 
CMenuWidget::BTN_TYPE_CANCEL);
-                               menuWidgetActions.addItem(new 
CMenuForwarder(LOCALE_EPGPLUS_RECORD     , true, NULL, 
&menuTargetAddRecordTimer, NULL, CRCInput::RC_red   , NEUTRINO_ICON_BUTTON_RED  
 ), false);
-                               menuWidgetActions.addItem(new 
CMenuForwarder(LOCALE_EPGPLUS_REFRESH_EPG, true, NULL, &menuTargetRefreshEpg    
, NULL, CRCInput::RC_green , NEUTRINO_ICON_BUTTON_GREEN ), false);
-                               menuWidgetActions.addItem(new 
CMenuForwarder(LOCALE_EPGPLUS_REMIND     , true, NULL, &menuTargetAddReminder   
, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW), false);
+                               menuWidgetActions.addItem(new 
CMenuForwarder(LOCALE_EPGPLUS_RECORD     , true, NULL, 
&menuTargetAddRecordTimer, NULL, CRCInput::RC_red   ));
+                               menuWidgetActions.addItem(new 
CMenuForwarder(LOCALE_EPGPLUS_REFRESH_EPG, true, NULL, &menuTargetRefreshEpg    
, NULL, CRCInput::RC_green ));
+                               menuWidgetActions.addItem(new 
CMenuForwarder(LOCALE_EPGPLUS_REMIND     , true, NULL, &menuTargetAddReminder   
, NULL, CRCInput::RC_yellow));
 
                                if (selectedChannelEntry)
                                        menuWidgetActions.exec(NULL, "");
@@ -1682,7 +1682,7 @@ 
EpgPlus::MenuOptionChooserSwitchSwapMode::MenuOptionChooserSwitchSwapMode(EpgPlu
        : CMenuOptionChooser(LOCALE_EPGPLUS_SWAP_MODE, 
(int*)(int)&_epgPlus->currentSwapMode,
                             menuOptionChooserSwitchSwapModes,
                             sizeof(menuOptionChooserSwitchSwapModes) / 
sizeof(CMenuOptionChooser::keyval),
-                            true, NULL, CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW)
+                            true, NULL, CRCInput::RC_yellow)
 {
        epgPlus = _epgPlus;
        oldSwapMode = _epgPlus->currentSwapMode;
@@ -1730,7 +1730,7 @@ 
EpgPlus::MenuOptionChooserSwitchViewMode::MenuOptionChooserSwitchViewMode(EpgPlu
        : CMenuOptionChooser(LOCALE_EPGPLUS_VIEW_MODE, 
(int*)(int)&epgPlus->currentViewMode,
                             menuOptionChooserSwitchViewModes,
                             sizeof(menuOptionChooserSwitchViewModes) / 
sizeof(CMenuOptionChooser::keyval),
-                            true, NULL, CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN)
+                            true, NULL, CRCInput::RC_green)
 {
        oldTimingMenuSettings = 
g_settings.timing[SNeutrinoSettings::TIMING_MENU];
 }
@@ -1759,7 +1759,7 @@ struct CMenuOptionChooser::keyval 
menuOptionChooserSwitchFontsize[] =
 EpgPlus::MenuOptionChooserSwitchFontsize::MenuOptionChooserSwitchFontsize()
        : CMenuOptionChooser(LOCALE_EPGPLUS_FONTSIZE, &switch_bigfont, 
menuOptionChooserSwitchFontsize,
                             sizeof(menuOptionChooserSwitchFontsize) / 
sizeof(CMenuOptionChooser::keyval),
-                            true, NULL, CRCInput::RC_blue, 
NEUTRINO_ICON_BUTTON_BLUE)
+                            true, NULL, CRCInput::RC_blue)
 {
        oldTimingMenuSettings = 
g_settings.timing[SNeutrinoSettings::TIMING_MENU];
 };
@@ -1880,10 +1880,10 @@ int EpgPlus::MenuWidgetSettings::exec(CMenuTarget* 
parent, const std::string & a
 {
        Settings settings(this->epgPlus->settings);
 
-       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_SAVE_SETTINGS , true, 
NULL, new MenuTargetSaveSettings (this->epgPlus                        ), NULL, 
CRCInput::RC_red   , NEUTRINO_ICON_BUTTON_RED   ), false);
-       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_RESET_SETTINGS, true, 
NULL, new MenuTargetResetSettings(this->epgPlus, &settings             ), NULL, 
CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW), false);
-       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_EDIT_FONTS    , true, 
NULL, new MenuTargetFontSettings (this->epgPlus, &settings.fontSettings), NULL, 
CRCInput::RC_1                                  ), false);
-       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_EDIT_SIZES    , true, 
NULL, new MenuTargetSizeSettings (this->epgPlus, &settings.sizeSettings), NULL, 
CRCInput::RC_2                                  ), false);
+       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_SAVE_SETTINGS , true, 
NULL, new MenuTargetSaveSettings (this->epgPlus                        ), NULL, 
CRCInput::RC_red   ));
+       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_RESET_SETTINGS, true, 
NULL, new MenuTargetResetSettings(this->epgPlus, &settings             ), NULL, 
CRCInput::RC_yellow));
+       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_EDIT_FONTS    , true, 
NULL, new MenuTargetFontSettings (this->epgPlus, &settings.fontSettings), NULL, 
CRCInput::RC_1     ));
+       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_EDIT_SIZES    , true, 
NULL, new MenuTargetSizeSettings (this->epgPlus, &settings.sizeSettings), NULL, 
CRCInput::RC_2     ));
 
        CMenuWidget::exec(parent, "");
 
@@ -2000,7 +2000,6 @@ 
EpgPlus::MenuWidgetFontSetting::MenuOptionChooserFontStyle::MenuOptionChooserFon
       , true
       , NULL
       , CRCInput::RC_yellow
-      , NEUTRINO_ICON_BUTTON_GREEN
       )
 {
   this->epgPlus     = epgPlus;
@@ -2045,11 +2044,11 @@ EpgPlus::MenuWidgetFontSetting::MenuWidgetFontSetting
 
 int EpgPlus::MenuWidgetFontSetting::exec(CMenuTarget* parent, const 
std::string & actionKey)
 {
-       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_SELECT_FONT_NAME, true, 
NULL, new MenuTargetSelectFontName(this->epgPlus, this->fontSetting), NULL, 
CRCInput::RC_red   , NEUTRINO_ICON_BUTTON_RED   ), false);
+       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_SELECT_FONT_NAME, true, 
NULL, new MenuTargetSelectFontName(this->epgPlus, this->fontSetting), NULL, 
CRCInput::RC_red   ));
 
        this->addItem(new MenuOptionChooserFontStyle(this->epgPlus, 
this->fontSetting), false);
 
-       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_CHANGE_FONT_SIZE, true, 
NULL, new MenuTargetChangeFontSize(this->epgPlus, this->fontSetting), NULL, 
CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW), false);
+       this->addItem(new CMenuForwarder(LOCALE_EPGPLUS_CHANGE_FONT_SIZE, true, 
NULL, new MenuTargetChangeFontSize(this->epgPlus, this->fontSetting), NULL, 
CRCInput::RC_yellow));
 
        return CMenuWidget::exec(parent, "");
 }
diff --git a/tuxbox/neutrino/src/gui/eventlist.cpp 
b/tuxbox/neutrino/src/gui/eventlist.cpp
index fa78f29..10f09c6 100644
--- a/tuxbox/neutrino/src/gui/eventlist.cpp
+++ b/tuxbox/neutrino/src/gui/eventlist.cpp
@@ -1245,11 +1245,11 @@ int CEventFinderMenu::showMenu(void)
        
        CStringInputSMS stringInput(LOCALE_EVENTFINDER_KEYWORD, 
m_search_keyword, 20, false, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, 
"abcdefghijklmnopqrstuvwxyz\xE4\xF6\xFC\xDF""0123456789-_/()<>=.,:!?\\'\"& ");
        
-       CMenuForwarder* mf0 = new CMenuForwarder(LOCALE_EVENTFINDER_KEYWORD, 
true, *m_search_keyword, &stringInput, NULL, CRCInput::RC_red, 
NEUTRINO_ICON_BUTTON_RED);
-       CMenuOptionChooser* mo0 = new 
CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_LIST, m_search_list, 
SEARCH_LIST_OPTIONS, SEARCH_LIST_OPTION_COUNT, true, this, CRCInput::RC_1, 
NEUTRINO_ICON_BUTTON_1);
-       m_search_channelname_mf = new CMenuForwarder("", *m_search_list != 
EventList::SEARCH_LIST_ALL, m_search_channelname, this, "select_channel", 
CRCInput::RC_2, NEUTRINO_ICON_BUTTON_2);
-       CMenuOptionChooser* mo1 = new 
CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_EPG, m_search_epg_item, 
SEARCH_EPG_OPTIONS, SEARCH_EPG_OPTION_COUNT, true, NULL, CRCInput::RC_3, 
NEUTRINO_ICON_BUTTON_3);
-       CMenuForwarder* mf1 = new 
CMenuForwarder(LOCALE_EVENTFINDER_START_SEARCH, true, NULL, this, 
"start_search", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
+       CMenuForwarder* mf0 = new CMenuForwarder(LOCALE_EVENTFINDER_KEYWORD, 
true, *m_search_keyword, &stringInput, NULL, CRCInput::RC_red);
+       CMenuOptionChooser* mo0 = new 
CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_LIST, m_search_list, 
SEARCH_LIST_OPTIONS, SEARCH_LIST_OPTION_COUNT, true, this, CRCInput::RC_1);
+       m_search_channelname_mf = new CMenuForwarder("", *m_search_list != 
EventList::SEARCH_LIST_ALL, m_search_channelname, this, "select_channel", 
CRCInput::RC_2);
+       CMenuOptionChooser* mo1 = new 
CMenuOptionChooser(LOCALE_EVENTFINDER_SEARCH_WITHIN_EPG, m_search_epg_item, 
SEARCH_EPG_OPTIONS, SEARCH_EPG_OPTION_COUNT, true, NULL, CRCInput::RC_3);
+       CMenuForwarder* mf1 = new 
CMenuForwarder(LOCALE_EVENTFINDER_START_SEARCH, true, NULL, this, 
"start_search", CRCInput::RC_green);
        
        CMenuWidget searchMenu(LOCALE_EVENTFINDER_HEAD, NEUTRINO_ICON_FEATURES, 
450);
 
diff --git a/tuxbox/neutrino/src/gui/keybind_setup.cpp 
b/tuxbox/neutrino/src/gui/keybind_setup.cpp
index b9b3c3d..ffd562a 100644
--- a/tuxbox/neutrino/src/gui/keybind_setup.cpp
+++ b/tuxbox/neutrino/src/gui/keybind_setup.cpp
@@ -179,7 +179,7 @@ int CKeybindSetup::showSetup()
 
        //remote control
        CMenuWidget * ks_rc             = new CMenuWidget(menue_title, 
menue_icon, width);
-       CMenuForwarder *ks_rc_fw        = new 
CMenuForwarder(LOCALE_KEYBINDINGMENU, true, NULL, ks_rc, NULL, 
CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+       CMenuForwarder *ks_rc_fw        = new 
CMenuForwarder(LOCALE_KEYBINDINGMENU, true, NULL, ks_rc, NULL, 
CRCInput::RC_red);
 
        CStringInput 
keySettings_repeat_genericblocker(LOCALE_KEYBINDINGMENU_REPEATBLOCKGENERIC, 
g_settings.repeat_genericblocker, 3, LOCALE_REPEATBLOCKER_HINT_1, 
LOCALE_REPEATBLOCKER_HINT_2, "0123456789 ", this);
        CStringInput 
keySettings_repeatBlocker(LOCALE_KEYBINDINGMENU_REPEATBLOCK, 
g_settings.repeat_blocker, 3, LOCALE_REPEATBLOCKER_HINT_1, 
LOCALE_REPEATBLOCKER_HINT_2, "0123456789 ", this);
diff --git a/tuxbox/neutrino/src/gui/mediaplayer_setup.cpp 
b/tuxbox/neutrino/src/gui/mediaplayer_setup.cpp
index 9b52931..2cf01d8 100644
--- a/tuxbox/neutrino/src/gui/mediaplayer_setup.cpp
+++ b/tuxbox/neutrino/src/gui/mediaplayer_setup.cpp
@@ -106,7 +106,7 @@ int CMediaPlayerSetup::showMediaPlayerSetup()
 #ifdef ENABLE_AUDIOPLAYER
        // audioplayer
        CAudioPlayerSetup* audioPlayerSetup = new CAudioPlayerSetup();
-       mediaSetup->addItem(new CMenuForwarder(LOCALE_MAINMENU_AUDIOPLAYER, 
true, NULL, audioPlayerSetup, NULL, CRCInput::RC_red, 
NEUTRINO_ICON_BUTTON_RED));
+       mediaSetup->addItem(new CMenuForwarder(LOCALE_MAINMENU_AUDIOPLAYER, 
true, NULL, audioPlayerSetup, NULL, CRCInput::RC_red));
 #endif
 #ifdef ENABLE_ESD
        // esound
@@ -114,18 +114,18 @@ int CMediaPlayerSetup::showMediaPlayerSetup()
        if (access("/bin/esd", X_OK) == 0 || access("/var/bin/esd", X_OK) == 0)
        {
                esdSetup = new CEsdSetup();
-               mediaSetup->addItem(new CMenuForwarder(LOCALE_ESOUND_NAME, 
true, NULL, esdSetup, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN));
+               mediaSetup->addItem(new CMenuForwarder(LOCALE_ESOUND_NAME, 
true, NULL, esdSetup, NULL, CRCInput::RC_green));
        }
 #endif
 #ifdef ENABLE_MOVIEPLAYER
        // movieplayer
        CMoviePlayerSetup* moviePlayerSetup = new CMoviePlayerSetup();
-       mediaSetup->addItem(new CMenuForwarder(LOCALE_MAINSETTINGS_STREAMING, 
true, NULL, moviePlayerSetup, NULL, CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW));
+       mediaSetup->addItem(new CMenuForwarder(LOCALE_MAINSETTINGS_STREAMING, 
true, NULL, moviePlayerSetup, NULL, CRCInput::RC_yellow));
 #endif
 #ifdef ENABLE_PICTUREVIEWER
        // pictureviewer
        CPictureViewerSetup* pictureViewerSetup = new CPictureViewerSetup();
-       mediaSetup->addItem(new CMenuForwarder(LOCALE_PICTUREVIEWER_HEAD, true, 
NULL, pictureViewerSetup, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE));
+       mediaSetup->addItem(new CMenuForwarder(LOCALE_PICTUREVIEWER_HEAD, true, 
NULL, pictureViewerSetup, NULL, CRCInput::RC_blue));
 #endif
 
        int res = mediaSetup->exec(NULL, "");
diff --git a/tuxbox/neutrino/src/gui/miscsettings_menu.cpp 
b/tuxbox/neutrino/src/gui/miscsettings_menu.cpp
index 325a821..c6d14a2 100644
--- a/tuxbox/neutrino/src/gui/miscsettings_menu.cpp
+++ b/tuxbox/neutrino/src/gui/miscsettings_menu.cpp
@@ -175,13 +175,13 @@ int CMiscMenue::showMenue()
        misc_menue->addIntroItems(menue_title != LOCALE_MISCSETTINGS_HEAD ? 
LOCALE_MISCSETTINGS_HEAD : NONEXISTANT_LOCALE);
 
        // general
-       misc_menue->addItem(new 
CMenuForwarder(LOCALE_MISCSETTINGS_RC_STANDBY_MODES,    true, NULL, 
misc_menue_energy, NULL,  CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));     
+       misc_menue->addItem(new 
CMenuForwarder(LOCALE_MISCSETTINGS_RC_STANDBY_MODES, true, NULL, 
misc_menue_energy, NULL,  CRCInput::RC_red));  
        // epg settings
-       misc_menue->addItem(new CMenuForwarder(LOCALE_MISCSETTINGS_EPG_HEAD,    
        true, NULL, misc_menue_epg, NULL, CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN));
+       misc_menue->addItem(new CMenuForwarder(LOCALE_MISCSETTINGS_EPG_HEAD, 
true, NULL, misc_menue_epg, NULL, CRCInput::RC_green));
        // zapit settings
-       misc_menue->addItem(new CMenuForwarder(LOCALE_ZAPITCONFIG_HEAD,         
        true, NULL, misc_menue_zapit, NULL, CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW));
+       misc_menue->addItem(new CMenuForwarder(LOCALE_ZAPITCONFIG_HEAD, true, 
NULL, misc_menue_zapit, NULL, CRCInput::RC_yellow));
        // filebrowser
-       misc_menue->addItem(new CMenuForwarder(LOCALE_FILEBROWSER_HEAD,         
        true, NULL, misc_menue_filebrowser, NULL, CRCInput::RC_blue, 
NEUTRINO_ICON_BUTTON_BLUE));
+       misc_menue->addItem(new CMenuForwarder(LOCALE_FILEBROWSER_HEAD, true, 
NULL, misc_menue_filebrowser, NULL, CRCInput::RC_blue));
 
        misc_menue->addItem(GenericMenuSeparatorLine);
 #ifndef TUXTXT_CFG_STANDALONE
diff --git a/tuxbox/neutrino/src/gui/moviebrowser.cpp 
b/tuxbox/neutrino/src/gui/moviebrowser.cpp
index 1904de3..2eaec48 100644
--- a/tuxbox/neutrino/src/gui/moviebrowser.cpp
+++ b/tuxbox/neutrino/src/gui/moviebrowser.cpp
@@ -3008,7 +3008,7 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* 
movie_info)
 
        CMenuWidget bookmarkMenu(LOCALE_MOVIEBROWSER_INFO_HEAD, 
NEUTRINO_ICON_STREAMING);
        bookmarkMenu.addIntroItems(LOCALE_MOVIEBROWSER_BOOK_HEAD);
-       bookmarkMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_CLEAR_ALL, true, NULL, this, 
"book_clear_all",CRCInput::RC_red,   NEUTRINO_ICON_BUTTON_RED));
+       bookmarkMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_CLEAR_ALL, true, NULL, this, 
"book_clear_all", CRCInput::RC_red));
        bookmarkMenu.addItem(GenericMenuSeparatorLine);
        bookmarkMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_MOVIESTART,    true, 
bookStartIntInput.getValue(), &bookStartIntInput));
        bookmarkMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_MOVIEEND,      true, 
bookEndIntInput.getValue(),   &bookEndIntInput));
@@ -3062,19 +3062,19 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* 
movie_info)
 
        CMenuWidget movieInfoMenuUpdate(LOCALE_MOVIEBROWSER_INFO_HEAD, 
NEUTRINO_ICON_STREAMING, m_cBoxFrame.iWidth);
        movieInfoMenuUpdate.addIntroItems(LOCALE_MOVIEBROWSER_INFO_HEAD_UPDATE);
-       movieInfoMenuUpdate.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_SAVE_ALL, true, NULL, this, 
"save_movie_info_all",CRCInput::RC_red,   NEUTRINO_ICON_BUTTON_RED), true);
+       movieInfoMenuUpdate.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_SAVE_ALL, true, NULL, this, 
"save_movie_info_all", CRCInput::RC_red), true);
        movieInfoMenuUpdate.addItem(GenericMenuSeparatorLine);
-       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_UPDATE_IF_DEST_EMPTY_ONLY, 
(&movieInfoUpdateAllIfDestEmptyOnly), MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL,CRCInput::RC_green,   
NEUTRINO_ICON_BUTTON_GREEN ));
+       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_UPDATE_IF_DEST_EMPTY_ONLY, 
(&movieInfoUpdateAllIfDestEmptyOnly), MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_green));
        movieInfoMenuUpdate.addItem(GenericMenuSeparatorLine);
-       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_TITLE,             
&movieInfoUpdateAll[MB_INFO_TITLE], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_1, 
NEUTRINO_ICON_BUTTON_1));
-       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_INFO1,             
&movieInfoUpdateAll[MB_INFO_INFO1], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_2, 
NEUTRINO_ICON_BUTTON_2));
-       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_SERIE,             
&movieInfoUpdateAll[MB_INFO_SERIE], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_3, 
NEUTRINO_ICON_BUTTON_3));
-       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_QUALITY,           
&movieInfoUpdateAll[MB_INFO_QUALITY], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true ,NULL, CRCInput::RC_4, 
NEUTRINO_ICON_BUTTON_4));
-       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PARENTAL_LOCKAGE,  
&movieInfoUpdateAll[MB_INFO_PARENTAL_LOCKAGE], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_5, 
NEUTRINO_ICON_BUTTON_5 ));
-       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR,       
&movieInfoUpdateAll[MB_INFO_MAJOR_GENRE], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_6, 
NEUTRINO_ICON_BUTTON_6));
-       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PRODYEAR,          
&movieInfoUpdateAll[MB_INFO_PRODDATE], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_7, 
NEUTRINO_ICON_BUTTON_7));
-       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY,       
&movieInfoUpdateAll[MB_INFO_COUNTRY], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_8, 
NEUTRINO_ICON_BUTTON_8));
-       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_LENGTH,            
&movieInfoUpdateAll[MB_INFO_LENGTH], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true,NULL, CRCInput::RC_9, 
NEUTRINO_ICON_BUTTON_9));
+       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_TITLE, 
&movieInfoUpdateAll[MB_INFO_TITLE], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_1));
+       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_INFO1, 
&movieInfoUpdateAll[MB_INFO_INFO1], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_2));
+       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_SERIE, 
&movieInfoUpdateAll[MB_INFO_SERIE], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_3));
+       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_QUALITY, 
&movieInfoUpdateAll[MB_INFO_QUALITY], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_4));
+       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PARENTAL_LOCKAGE, 
&movieInfoUpdateAll[MB_INFO_PARENTAL_LOCKAGE], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_5));
+       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR, 
&movieInfoUpdateAll[MB_INFO_MAJOR_GENRE], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_6));
+       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, 
&movieInfoUpdateAll[MB_INFO_PRODDATE], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_7));
+       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, 
&movieInfoUpdateAll[MB_INFO_COUNTRY], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_8));
+       movieInfoMenuUpdate.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_LENGTH, 
&movieInfoUpdateAll[MB_INFO_LENGTH], MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true, NULL, CRCInput::RC_9));
 
 /********************************************************************/
 /**  movieInfo  ******************************************************/
@@ -3097,27 +3097,27 @@ int CMovieBrowser::showMovieInfoMenu(MI_MOVIE_INFO* 
movie_info)
 
        CMenuWidget movieInfoMenu(LOCALE_MOVIEBROWSER_MENU_MAIN_HEAD, 
NEUTRINO_ICON_STREAMING, m_cBoxFrame.iWidth);
        movieInfoMenu.addIntroItems(LOCALE_MOVIEBROWSER_INFO_HEAD);
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_SAVE,     true, NULL, this, 
"save_movie_info", CRCInput::RC_red,   NEUTRINO_ICON_BUTTON_RED), true);
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_HEAD_UPDATE, true, NULL,      
&movieInfoMenuUpdate, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN));
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_SAVE, true, NULL, this, 
"save_movie_info", CRCInput::RC_red), true);
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_HEAD_UPDATE, true, NULL, 
&movieInfoMenuUpdate, NULL, CRCInput::RC_green));
        movieInfoMenu.addItem(GenericMenuSeparatorLine);
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_TITLE,          true, 
movie_info->epgTitle,  &titelUserInput,NULL, CRCInput::RC_1, 
NEUTRINO_ICON_BUTTON_1));
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_SERIE,          true, 
movie_info->serieName, &serieMenu,NULL, CRCInput::RC_2, 
NEUTRINO_ICON_BUTTON_2));
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_INFO1,          true, 
movie_info->epgInfo1,      &epgUserInput,NULL, CRCInput::RC_3, 
NEUTRINO_ICON_BUTTON_3));
-       movieInfoMenu.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR, 
&movie_info->genreMajor, GENRE_ALL, GENRE_ALL_COUNT, true, NULL, 
CRCInput::RC_4, NEUTRINO_ICON_BUTTON_4, true, true));
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_TITLE, true, movie_info->epgTitle, 
&titelUserInput,NULL, CRCInput::RC_1));
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_SERIE, true, movie_info->serieName, 
&serieMenu,NULL, CRCInput::RC_2));
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_INFO1, true, movie_info->epgInfo1, 
&epgUserInput,NULL, CRCInput::RC_3));
+       movieInfoMenu.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_GENRE_MAJOR, 
&movie_info->genreMajor, GENRE_ALL, GENRE_ALL_COUNT, true, NULL, 
CRCInput::RC_4, "", true, true));
        movieInfoMenu.addItem(GenericMenuSeparatorLine);
-       movieInfoMenu.addItem( new 
CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_INFO_QUALITY, 
&movie_info->quality, true, 0, 3, 0, 0, NONEXISTANT_LOCALE, NULL, NULL, 
CRCInput::RC_5, NEUTRINO_ICON_BUTTON_5));
-       movieInfoMenu.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PARENTAL_LOCKAGE, 
&movie_info->parentalLockAge, MESSAGEBOX_PARENTAL_LOCKAGE_OPTIONS, 
MESSAGEBOX_PARENTAL_LOCKAGE_OPTION_COUNT, true,NULL,         CRCInput::RC_6, 
NEUTRINO_ICON_BUTTON_6 ));
-       movieInfoMenu.addItem( new 
CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, 
&movie_info->productionDate, true, 0, 9999, 0, 0, NONEXISTANT_LOCALE, NULL, 
NULL, CRCInput::RC_7, NEUTRINO_ICON_BUTTON_7, true));
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY,    true, 
movie_info->productionCountry,         &countryUserInput,NULL,      
CRCInput::RC_8, NEUTRINO_ICON_BUTTON_8));
-       movieInfoMenu.addItem( new 
CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_INFO_LENGTH, &movie_info->length, 
true, 0, 999, 0, 0, NONEXISTANT_LOCALE, NULL, NULL, CRCInput::RC_9, 
NEUTRINO_ICON_BUTTON_9, true));
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_CHANNEL,        true, 
movie_info->epgChannel,    &channelUserInput,NULL,                  
CRCInput::RC_0, NEUTRINO_ICON_BUTTON_0));//LOCALE_TIMERLIST_CHANNEL
+       movieInfoMenu.addItem( new 
CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_INFO_QUALITY, 
&movie_info->quality, true, 0, 3, 0, 0, NONEXISTANT_LOCALE, NULL, NULL, 
CRCInput::RC_5));
+       movieInfoMenu.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_INFO_PARENTAL_LOCKAGE, 
&movie_info->parentalLockAge, MESSAGEBOX_PARENTAL_LOCKAGE_OPTIONS, 
MESSAGEBOX_PARENTAL_LOCKAGE_OPTION_COUNT, true, NULL, CRCInput::RC_6));
+       movieInfoMenu.addItem( new 
CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_INFO_PRODYEAR, 
&movie_info->productionDate, true, 0, 9999, 0, 0, NONEXISTANT_LOCALE, NULL, 
NULL, CRCInput::RC_7, "", true));
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PRODCOUNTRY, true, 
movie_info->productionCountry, &countryUserInput, NULL, CRCInput::RC_8));
+       movieInfoMenu.addItem( new 
CMenuOptionNumberChooser(LOCALE_MOVIEBROWSER_INFO_LENGTH, &movie_info->length, 
true, 0, 999, 0, 0, NONEXISTANT_LOCALE, NULL, NULL, CRCInput::RC_9, "", true));
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_CHANNEL, true, movie_info->epgChannel, 
&channelUserInput, NULL, CRCInput::RC_0));//LOCALE_TIMERLIST_CHANNEL
        movieInfoMenu.addItem(GenericMenuSeparatorLine);
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PATH,           false, dirItNr)); 
//LOCALE_TIMERLIST_RECORDING_DIR
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PREVPLAYDATE,   false, 
dateUserDateInput.getValue()));//LOCALE_FLASHUPDATE_CURRENTVERSIONDATE
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_RECORDDATE,     false, 
recUserDateInput.getValue()));//LOCALE_FLASHUPDATE_CURRENTVERSIONDATE
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_SIZE,           false, size,     NULL));
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PATH, false, dirItNr)); 
//LOCALE_TIMERLIST_RECORDING_DIR
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_PREVPLAYDATE, false, 
dateUserDateInput.getValue()));//LOCALE_FLASHUPDATE_CURRENTVERSIONDATE
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_RECORDDATE, false, 
recUserDateInput.getValue()));//LOCALE_FLASHUPDATE_CURRENTVERSIONDATE
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_SIZE, false, size));
        movieInfoMenu.addItem(GenericMenuSeparatorLine);
-       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_HEAD,        true, NULL,      
&bookmarkMenu, NULL, CRCInput::RC_yellow,  NEUTRINO_ICON_BUTTON_YELLOW));
+       movieInfoMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_BOOK_HEAD, true, NULL, &bookmarkMenu, NULL, 
CRCInput::RC_yellow));
 
        int returnval = movieInfoMenu.exec(NULL,"");
 
@@ -3219,10 +3219,10 @@ bool CMovieBrowser::showMenu(MI_MOVIE_INFO* 
/*movie_info*/)
 
        CMenuWidget optionsMenu(LOCALE_MOVIEBROWSER_MENU_MAIN_HEAD, 
NEUTRINO_ICON_STREAMING, 450);
        optionsMenu.addIntroItems(LOCALE_EPGPLUS_OPTIONS);
-       optionsMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_LOAD_DEFAULT, true, NULL, this, 
"loaddefault",              CRCInput::RC_red,  NEUTRINO_ICON_BUTTON_RED));
-       optionsMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_OPTION_BROWSER, true, NULL, 
&optionsMenuBrowser,NULL,       CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN));
-       optionsMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD, true, NULL, 
&optionsMenuDir,NULL,    CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW));
-       optionsMenu.addItem( new 
CLockedMenuForwarder(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_HEAD, 
g_settings.parentallock_pincode, m_parentalLock != MB_PARENTAL_LOCK_OFF, true, 
NULL, &parentalMenu, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE));
+       optionsMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_LOAD_DEFAULT, true, NULL, this, 
"loaddefault", CRCInput::RC_red));
+       optionsMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_OPTION_BROWSER, true, NULL, 
&optionsMenuBrowser, NULL, CRCInput::RC_green));
+       optionsMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD, true, NULL, 
&optionsMenuDir, NULL, CRCInput::RC_yellow));
+       optionsMenu.addItem( new 
CLockedMenuForwarder(LOCALE_MOVIEBROWSER_MENU_PARENTAL_LOCK_HEAD, 
g_settings.parentallock_pincode, m_parentalLock != MB_PARENTAL_LOCK_OFF, true, 
NULL, &parentalMenu, NULL, CRCInput::RC_blue));
        optionsMenu.addItem(GenericMenuSeparatorLine);
        optionsMenu.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_RELOAD_AT_START,   
(int*)(&m_settings.reload), MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true ));
        optionsMenu.addItem( new 
CMenuOptionChooser(LOCALE_MOVIEBROWSER_REMOUNT_AT_START,  
(int*)(&m_settings.remount), MESSAGEBOX_YES_NO_OPTIONS, 
MESSAGEBOX_YES_NO_OPTIONS_COUNT, true ));
@@ -3239,20 +3239,20 @@ bool CMovieBrowser::showMenu(MI_MOVIE_INFO* 
/*movie_info*/)
 
        CMenuWidget mainMenu(LOCALE_MOVIEBROWSER_MENU_MAIN_HEAD, 
NEUTRINO_ICON_STREAMING);
        mainMenu.addIntroItems();
-       mainMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_HEAD, 
(m_movieSelectionHandler != NULL), NULL, this,   "show_movie_info_menu",    
CRCInput::RC_red,    NEUTRINO_ICON_BUTTON_RED), true);
+       mainMenu.addItem( new CMenuForwarder(LOCALE_MOVIEBROWSER_INFO_HEAD, 
(m_movieSelectionHandler != NULL), NULL, this, "show_movie_info_menu", 
CRCInput::RC_red), true);
        mainMenu.addItem(GenericMenuSeparatorLine);
-       mainMenu.addItem( new CMenuForwarder(LOCALE_EPGPLUS_OPTIONS,            
        true, NULL, &optionsMenu,NULL,                                  
CRCInput::RC_green,  NEUTRINO_ICON_BUTTON_GREEN));
-       mainMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD, true, NULL, &dirMenu, 
   NULL,                                  CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW));
-       mainMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES,       true, NULL, this,     
   "reload_movie_info",                   CRCInput::RC_blue,   
NEUTRINO_ICON_BUTTON_BLUE));
+       mainMenu.addItem( new CMenuForwarder(LOCALE_EPGPLUS_OPTIONS, true, 
NULL, &optionsMenu, NULL, CRCInput::RC_green));
+       mainMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_DIRECTORIES_HEAD, true, NULL, &dirMenu, 
NULL, CRCInput::RC_yellow));
+       mainMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_SCAN_FOR_MOVIES,true, NULL, this, 
"reload_movie_info", CRCInput::RC_blue));
 #ifdef ENABLE_GUI_MOUNT
-       //mainMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_NFS_HEAD,       true, NULL, nfs,        
 NULL,                                  CRCInput::RC_setup,  
NEUTRINO_ICON_BUTTON_DBOX));
+       //mainMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_NFS_HEAD, true, NULL, nfs, NULL, 
CRCInput::RC_setup));
 #endif
 #ifdef MOVEMANAGER
        mainMenu.addItem(GenericMenuSeparatorLine);
-       mainMenu.addItem( new CMenuForwarder("Kopierwerk",        true, NULL,  
CMoveManager::getInstance(),   NULL));
+       mainMenu.addItem( new CMenuForwarder("Kopierwerk", true, NULL, 
CMoveManager::getInstance()));
 #endif // MOVEMANAGER
        mainMenu.addItem(GenericMenuSeparatorLine);
-       mainMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_HELP_HEAD,        true, NULL, 
movieHelp,   NULL,                                  CRCInput::RC_help,   
NEUTRINO_ICON_BUTTON_HELP));
+       mainMenu.addItem( new 
CMenuForwarder(LOCALE_MOVIEBROWSER_MENU_HELP_HEAD, true, NULL, movieHelp, NULL, 
CRCInput::RC_help));
        mainMenu.exec(NULL, " ");
 
        // post menu handling
diff --git a/tuxbox/neutrino/src/gui/movieplayer_menu.cpp 
b/tuxbox/neutrino/src/gui/movieplayer_menu.cpp
index 988564a..63daf2b 100644
--- a/tuxbox/neutrino/src/gui/movieplayer_menu.cpp
+++ b/tuxbox/neutrino/src/gui/movieplayer_menu.cpp
@@ -90,7 +90,7 @@ int CMoviePlayerMenue::showMoviePlayerMenue()
        mpmenue->addIntroItems();
 
        //ts playback 
-       mpmenue->addItem(new CMenuForwarder(LOCALE_MOVIEPLAYER_TSPLAYBACK, 
true, NULL, moviePlayerGui, "tsplayback", CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN));
+       mpmenue->addItem(new CMenuForwarder(LOCALE_MOVIEPLAYER_TSPLAYBACK, 
true, NULL, moviePlayerGui, "tsplayback", CRCInput::RC_green));
        //ts playback pin 
        mpmenue->addItem(new CMenuForwarder(LOCALE_MOVIEPLAYER_TSPLAYBACK_PC, 
true, NULL, moviePlayerGui, "tsplayback_pc", CRCInput::RC_1));
 
@@ -114,24 +114,24 @@ int CMoviePlayerMenue::showMoviePlayerMenue()
        mpmenue->addItem(GenericMenuSeparatorLine);
 
        //vlc file play
-       toNotify.push_back(new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK, 
g_settings.streaming_type == 1, NULL, moviePlayerGui, "fileplayback", 
CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));
+       toNotify.push_back(new CMenuForwarder(LOCALE_MOVIEPLAYER_FILEPLAYBACK, 
g_settings.streaming_type == 1, NULL, moviePlayerGui, "fileplayback", 
CRCInput::RC_red));
        mpmenue->addItem(toNotify.back());
        //vlc dvd play
-       toNotify.push_back(new CMenuForwarder(LOCALE_MOVIEPLAYER_DVDPLAYBACK, 
g_settings.streaming_type == 1, NULL, moviePlayerGui, "dvdplayback", 
CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW));
+       toNotify.push_back(new CMenuForwarder(LOCALE_MOVIEPLAYER_DVDPLAYBACK, 
g_settings.streaming_type == 1, NULL, moviePlayerGui, "dvdplayback", 
CRCInput::RC_yellow));
        mpmenue->addItem(toNotify.back());
        //vlc vcd play
-       toNotify.push_back(new CMenuForwarder(LOCALE_MOVIEPLAYER_VCDPLAYBACK, 
g_settings.streaming_type == 1, NULL, moviePlayerGui, "vcdplayback", 
CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE));
+       toNotify.push_back(new CMenuForwarder(LOCALE_MOVIEPLAYER_VCDPLAYBACK, 
g_settings.streaming_type == 1, NULL, moviePlayerGui, "vcdplayback", 
CRCInput::RC_blue));
        mpmenue->addItem(toNotify.back());
 
        mpmenue->addItem(GenericMenuSeparatorLine);
 
        //settings
-       mpmenue->addItem(new CMenuForwarder(LOCALE_MAINMENU_SETTINGS, true, 
NULL, moviePlayerSetup, NULL, CRCInput::RC_help, NEUTRINO_ICON_BUTTON_HELP));
+       mpmenue->addItem(new CMenuForwarder(LOCALE_MAINMENU_SETTINGS, true, 
NULL, moviePlayerSetup, NULL, CRCInput::RC_help));
 
 #ifdef ENABLE_GUI_MOUNT
        //neutrino mount
        CNFSSmallMenu* nfsSmallMenu = new CNFSSmallMenu();
-       mpmenue->addItem(new CMenuForwarder(LOCALE_NETWORKMENU_MOUNT, true, 
NULL, nfsSmallMenu, NULL, CRCInput::RC_setup, NEUTRINO_ICON_BUTTON_DBOX));
+       mpmenue->addItem(new CMenuForwarder(LOCALE_NETWORKMENU_MOUNT, true, 
NULL, nfsSmallMenu, NULL, CRCInput::RC_setup));
 #endif
 
        int res = mpmenue->exec(NULL, "");
diff --git a/tuxbox/neutrino/src/gui/movieplayer_setup.cpp 
b/tuxbox/neutrino/src/gui/movieplayer_setup.cpp
index b7e30d8..5ef9cdb 100644
--- a/tuxbox/neutrino/src/gui/movieplayer_setup.cpp
+++ b/tuxbox/neutrino/src/gui/movieplayer_setup.cpp
@@ -143,7 +143,7 @@ int CMoviePlayerSetup::showMoviePlayerSetup()
        mp_setup->setPreselected(selected);
 
        CMenuWidget* mp_streaming_setup = new 
CMenuWidget(LOCALE_MAINSETTINGS_STREAMING, NEUTRINO_ICON_STREAMING, width);
-       CMenuForwarder* mp_streaming_setup_mf = new 
CMenuForwarder(LOCALE_STREAMINGMENU_STREAMING_SETTINGS, true, NULL, 
mp_streaming_setup, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+       CMenuForwarder* mp_streaming_setup_mf = new 
CMenuForwarder(LOCALE_STREAMINGMENU_STREAMING_SETTINGS, true, NULL, 
mp_streaming_setup, NULL, CRCInput::RC_red);
 
        // intros
        mp_setup->addIntroItems(LOCALE_MAINSETTINGS_STREAMING);
diff --git a/tuxbox/neutrino/src/gui/network_setup.cpp 
b/tuxbox/neutrino/src/gui/network_setup.cpp
index 2749514..42886de 100644
--- a/tuxbox/neutrino/src/gui/network_setup.cpp
+++ b/tuxbox/neutrino/src/gui/network_setup.cpp
@@ -165,7 +165,7 @@ int CNetworkSetup::showNetworkSetup()
                networkSettings->setPreselected(selected);
 
                //apply button
-               CMenuForwarder *m0 = new 
CMenuForwarder(LOCALE_NETWORKMENU_SETUPNOW, true, NULL, this, "networkapply", 
CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+               CMenuForwarder *m0 = new 
CMenuForwarder(LOCALE_NETWORKMENU_SETUPNOW, true, NULL, this, "networkapply", 
CRCInput::RC_red);
        
                //prepare input entries
                CIPInput networkSettings_NetworkIP  
(LOCALE_NETWORKMENU_IPADDRESS , network_address   , LOCALE_IPSETUP_HINT_1, 
LOCALE_IPSETUP_HINT_2, this);
@@ -196,8 +196,8 @@ int CNetworkSetup::showNetworkSetup()
        
                networkSettings->addItem( m0 );
        
-               networkSettings->addItem(new 
CMenuForwarder(LOCALE_NETWORKMENU_TEST, true, NULL, this, "networktest", 
CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN));
-               networkSettings->addItem(new 
CMenuForwarder(LOCALE_NETWORKMENU_SHOW, true, NULL, this, "networkshow", 
CRCInput::RC_help, NEUTRINO_ICON_BUTTON_HELP));
+               networkSettings->addItem(new 
CMenuForwarder(LOCALE_NETWORKMENU_TEST, true, NULL, this, "networktest", 
CRCInput::RC_green));
+               networkSettings->addItem(new 
CMenuForwarder(LOCALE_NETWORKMENU_SHOW, true, NULL, this, "networkshow", 
CRCInput::RC_help));
                networkSettings->addItem(GenericMenuSeparatorLine);
        
                networkSettings->addItem(o1);
@@ -221,7 +221,7 @@ int CNetworkSetup::showNetworkSetup()
                CStringInput 
networkSettings_NtpRefresh(LOCALE_NETWORKMENU_NTPREFRESH, 
&g_settings.network_ntprefresh, 3, false, LOCALE_NETWORKMENU_NTPREFRESH_HINT1, 
LOCALE_NETWORKMENU_NTPREFRESH_HINT2 , "0123456789 ", this);
 
                CMenuWidget* ntp = new CMenuWidget(LOCALE_MAINSETTINGS_NETWORK, 
NEUTRINO_ICON_SETTINGS, width);
-               networkSettings->addItem(new 
CMenuForwarder(LOCALE_NETWORKMENU_NTPTITLE, true, NULL, ntp, NULL, 
CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW));
+               networkSettings->addItem(new 
CMenuForwarder(LOCALE_NETWORKMENU_NTPTITLE, true, NULL, ntp, NULL, 
CRCInput::RC_yellow));
                ntp->addIntroItems(LOCALE_NETWORKMENU_NTPTITLE);
                CMenuOptionChooser *ntp1 = new 
CMenuOptionChooser(LOCALE_NETWORKMENU_NTPENABLE, &g_settings.network_ntpenable, 
OPTIONS_NTPENABLE_OPTIONS, OPTIONS_NTPENABLE_OPTION_COUNT, true, this);
                CMenuForwarder *ntp2 = new 
CMenuForwarder(LOCALE_NETWORKMENU_NTPSERVER, true, 
g_settings.network_ntpserver, &networkSettings_NtpServer);
@@ -234,27 +234,27 @@ int CNetworkSetup::showNetworkSetup()
 
        #ifdef ENABLE_GUI_MOUNT
                CMenuWidget* networkmounts = new 
CMenuWidget(LOCALE_MAINSETTINGS_NETWORK, NEUTRINO_ICON_SETTINGS, width);
-               networkSettings->addItem(new 
CMenuForwarder(LOCALE_NETWORKMENU_MOUNT, true, NULL, networkmounts, NULL, 
CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE));
+               networkSettings->addItem(new 
CMenuForwarder(LOCALE_NETWORKMENU_MOUNT, true, NULL, networkmounts, NULL, 
CRCInput::RC_blue));
                networkmounts->addIntroItems(LOCALE_NETWORKMENU_MOUNT);
 
                CNFSMountGui* nfsMountGui = new CNFSMountGui();
-               networkmounts->addItem(new CMenuForwarder(LOCALE_NFS_MOUNT , 
true, NULL, nfsMountGui, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));
+               networkmounts->addItem(new CMenuForwarder(LOCALE_NFS_MOUNT, 
true, NULL, nfsMountGui, NULL, CRCInput::RC_red));
 
                CNFSUmountGui* nfsUmountGui = new CNFSUmountGui();
-               networkmounts->addItem(new CMenuForwarder(LOCALE_NFS_UMOUNT, 
true, NULL, nfsUmountGui, NULL, CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN));
+               networkmounts->addItem(new CMenuForwarder(LOCALE_NFS_UMOUNT, 
true, NULL, nfsUmountGui, NULL, CRCInput::RC_green));
        #endif
 
        #ifndef DISABLE_INTERNET_UPDATE
        #ifndef HAVE_DREAMBOX_HARDWARE
                //proxyserver
                CProxySetup* proxySetup = new 
CProxySetup(LOCALE_MAINSETTINGS_NETWORK);
-               networkSettings->addItem(new 
CMenuForwarder(LOCALE_FLASHUPDATE_PROXYSERVER_SEP, true, NULL, proxySetup, 
NULL, CRCInput::RC_0, NEUTRINO_ICON_BUTTON_0));
+               networkSettings->addItem(new 
CMenuForwarder(LOCALE_FLASHUPDATE_PROXYSERVER_SEP, true, NULL, proxySetup, 
NULL, CRCInput::RC_0));
        #endif 
        #endif
 
        #if defined ENABLE_DRIVE_GUI && defined ENABLE_SAMBASERVER
                CSambaSetup* sambaSetup = new 
CSambaSetup(LOCALE_MAINSETTINGS_NETWORK);
-               networkSettings->addItem(new 
CMenuForwarder(LOCALE_NETWORKMENU_SAMBA, true, NULL, sambaSetup, NULL, 
CRCInput::RC_1, NEUTRINO_ICON_BUTTON_1));
+               networkSettings->addItem(new 
CMenuForwarder(LOCALE_NETWORKMENU_SAMBA, true, NULL, sambaSetup, NULL, 
CRCInput::RC_1));
        #endif
 
                res = networkSettings->exec(NULL, "");
diff --git a/tuxbox/neutrino/src/gui/neutrino_menu.cpp 
b/tuxbox/neutrino/src/gui/neutrino_menu.cpp
index 3ebe6c2..4d2fdef 100644
--- a/tuxbox/neutrino/src/gui/neutrino_menu.cpp
+++ b/tuxbox/neutrino/src/gui/neutrino_menu.cpp
@@ -157,19 +157,19 @@ void CNeutrinoApp::InitMenuMain()
        personalize->addItem(MENU_MAIN, GenericMenuSeparator, NULL, false, 
CPersonalizeGui::PERSONALIZE_SHOW_NO);
 
        //tv-mode
-       CMenuItem *tvswitch = new CMenuForwarder(LOCALE_MAINMENU_TVMODE, true, 
NULL, this, "tv", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+       CMenuItem *tvswitch = new CMenuForwarder(LOCALE_MAINMENU_TVMODE, true, 
NULL, this, "tv", CRCInput::RC_red);
        personalize->addItem(MENU_MAIN, tvswitch, 
&g_settings.personalize_tvmode, (g_settings.startmode == STARTMODE_TV || 
firstchannel.mode != 'r' ));
        
        //radio-mode
-       CMenuItem *radioswitch = new CMenuForwarder(LOCALE_MAINMENU_RADIOMODE, 
true, NULL, this, "radio", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
+       CMenuItem *radioswitch = new CMenuForwarder(LOCALE_MAINMENU_RADIOMODE, 
true, NULL, this, "radio", CRCInput::RC_green);
        personalize->addItem(MENU_MAIN, radioswitch, 
&g_settings.personalize_radiomode, (g_settings.startmode == STARTMODE_RADIO || 
(!(g_settings.startmode == STARTMODE_TV) && firstchannel.mode == 'r')));
 
        //scart
-       personalize->addItem(MENU_MAIN, new 
CMenuForwarder(LOCALE_MAINMENU_SCARTMODE, true, NULL, this, "scart", 
CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW), 
&g_settings.personalize_scartmode);
+       personalize->addItem(MENU_MAIN, new 
CMenuForwarder(LOCALE_MAINMENU_SCARTMODE, true, NULL, this, "scart", 
CRCInput::RC_yellow), &g_settings.personalize_scartmode);
 
        //games
        menuGamesIsVisible = g_PluginList->hasPlugin(CPlugins::P_TYPE_GAME);
-       personalize->addItem(MENU_MAIN, new 
CMenuForwarder(LOCALE_MAINMENU_GAMES, menuGamesIsVisible, NULL, new 
CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME), "", 
CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE),
+       personalize->addItem(MENU_MAIN, new 
CMenuForwarder(LOCALE_MAINMENU_GAMES, menuGamesIsVisible, NULL, new 
CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME), NULL, 
CRCInput::RC_blue),
                &g_settings.personalize_games, false, 
CPersonalizeGui::PERSONALIZE_SHOW_AS_ITEM_OPTION, &menuGamesIsVisible);
 
        //separator
@@ -237,7 +237,7 @@ void CNeutrinoApp::InitMenuMain()
        personalize->addItem(MENU_MAIN, new 
CMenuForwarder(LOCALE_MAINMENU_REBOOT, true, NULL, this, "reboot"), 
&g_settings.personalize_reboot);
 
        // shutdown
-       personalize->addItem(MENU_MAIN, new 
CMenuForwarder(LOCALE_MAINMENU_SHUTDOWN, true, NULL, this, "shutdown", 
CRCInput::RC_standby, NEUTRINO_ICON_BUTTON_POWER), 
&g_settings.personalize_shutdown);
+       personalize->addItem(MENU_MAIN, new 
CMenuForwarder(LOCALE_MAINMENU_SHUTDOWN, true, NULL, this, "shutdown", 
CRCInput::RC_standby), &g_settings.personalize_shutdown);
 }
 
 //settings menue
@@ -253,7 +253,7 @@ void CNeutrinoApp::InitMenuSettings()
        personalize->addIntroItems(MENU_SETTINGS);
        
        // save
-       personalize->addItem(MENU_SETTINGS, new 
CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, 
"savesettings", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED), 
&g_settings.personalize_true);
+       personalize->addItem(MENU_SETTINGS, new 
CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, 
"savesettings", CRCInput::RC_red), &g_settings.personalize_true);
        
        // separator line
        personalize->addItem(MENU_SETTINGS, GenericMenuSeparatorLine, NULL, 
false, CPersonalizeGui::PERSONALIZE_SHOW_NO);
@@ -290,14 +290,14 @@ void CNeutrinoApp::InitMenuSettings()
        
        //blue (audioplayer, pictureviewer, esd, mediaplayer)
 #if defined(ENABLE_AUDIOPLAYER) || defined(ENABLE_PICTUREVIEWER) || 
defined(ENABLE_ESD) || defined(ENABLE_MOVIEPLAYER)
-       personalize->addItem(MENU_SETTINGS, new 
CMenuForwarder(LOCALE_MEDIAPLAYERSETTINGS_GENERAL, true, NULL, new 
CMediaPlayerSetup, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE), 
&g_settings.personalize_mediaplayer);
+       personalize->addItem(MENU_SETTINGS, new 
CMenuForwarder(LOCALE_MEDIAPLAYERSETTINGS_GENERAL, true, NULL, new 
CMediaPlayerSetup, NULL, CRCInput::RC_blue), 
&g_settings.personalize_mediaplayer);
 #endif
 
        //green (driver/boot settings)
-       personalize->addItem(MENU_SETTINGS, new 
CMenuForwarder(LOCALE_MAINSETTINGS_DRIVER, true, NULL, new 
CDriverBootSetup(LOCALE_MAINMENU_SETTINGS), NULL, CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN), &g_settings.personalize_driver);
+       personalize->addItem(MENU_SETTINGS, new 
CMenuForwarder(LOCALE_MAINSETTINGS_DRIVER, true, NULL, new 
CDriverBootSetup(LOCALE_MAINMENU_SETTINGS), NULL, CRCInput::RC_green), 
&g_settings.personalize_driver);
        
        //yellow (miscSettings)
-       personalize->addItem(MENU_SETTINGS, new 
CMenuForwarder(LOCALE_MAINSETTINGS_MISC, true, NULL, new 
CMiscMenue(LOCALE_MAINMENU_SETTINGS), NULL, CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW), &g_settings.personalize_misc);
+       personalize->addItem(MENU_SETTINGS, new 
CMenuForwarder(LOCALE_MAINSETTINGS_MISC, true, NULL, new 
CMiscMenue(LOCALE_MAINMENU_SETTINGS), NULL, CRCInput::RC_yellow), 
&g_settings.personalize_misc);
        
        //separator
        personalize->addSeparator(MENU_SETTINGS);
@@ -325,10 +325,10 @@ void CNeutrinoApp::InitMenuService()
        personalize->addIntroItems(MENU_SERVICE);
 
        // bouquets
-       personalize->addItem(MENU_SERVICE, new 
CMenuForwarder(LOCALE_BOUQUETEDITOR_NAME, true, NULL, new CBEBouquetWidget(), 
NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED), 
&g_settings.personalize_bouqueteditor);
+       personalize->addItem(MENU_SERVICE, new 
CMenuForwarder(LOCALE_BOUQUETEDITOR_NAME, true, NULL, new CBEBouquetWidget(), 
NULL, CRCInput::RC_red), &g_settings.personalize_bouqueteditor);
 
        // channel scan
-       personalize->addItem(MENU_SERVICE, new 
CMenuForwarder(LOCALE_SERVICEMENU_SCANTS, true, NULL, new CScanSetup, NULL, 
CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN), 
&g_settings.personalize_scants);
+       personalize->addItem(MENU_SERVICE, new 
CMenuForwarder(LOCALE_SERVICEMENU_SCANTS, true, NULL, new CScanSetup, NULL, 
CRCInput::RC_green), &g_settings.personalize_scants);
 
        // separator
        personalize->addSeparator(MENU_SERVICE); 
@@ -357,13 +357,13 @@ void CNeutrinoApp::InitMenuService()
        personalize->addSeparator(MENU_SERVICE); 
 
        //yellow imageinfo
-       personalize->addItem(MENU_SERVICE, new 
CMenuForwarder(LOCALE_SERVICEMENU_IMAGEINFO, true, NULL, new CImageInfo(), 
NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW), 
&g_settings.personalize_imageinfo);
+       personalize->addItem(MENU_SERVICE, new 
CMenuForwarder(LOCALE_SERVICEMENU_IMAGEINFO, true, NULL, new CImageInfo(), 
NULL, CRCInput::RC_yellow), &g_settings.personalize_imageinfo);
 
        //softupdate
        if(softupdate)
        {
                // blue software update
-               personalize->addItem(MENU_SERVICE, new 
CMenuForwarder(LOCALE_SERVICEMENU_UPDATE, true, NULL, new CSoftwareUpdate(), 
NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE), 
&g_settings.personalize_update, false, 
CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION);
+               personalize->addItem(MENU_SERVICE, new 
CMenuForwarder(LOCALE_SERVICEMENU_UPDATE, true, NULL, new CSoftwareUpdate(), 
NULL, CRCInput::RC_blue), &g_settings.personalize_update, false, 
CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION);
        }
 
 }
@@ -668,7 +668,7 @@ bool CNeutrinoApp::showUserMenu(int button)
                menu_items ++;
                menu_key++;
                // FYI: there is a memory leak with 'new 
CExperimentalSettingsMenuHandler()
-               menu_item = new CMenuForwarder(LOCALE_EXPERIMENTALSETTINGS, 
true, NULL, new CExperimentalSettingsMenuHandler(), "-1", 
CRCInput::convertDigitToKey(menu_key), "");
+               menu_item = new CMenuForwarder(LOCALE_EXPERIMENTALSETTINGS, 
true, NULL, new CExperimentalSettingsMenuHandler(), "-1", 
CRCInput::convertDigitToKey(menu_key));
                menu->addItem(menu_item, false);
 #endif
        }
diff --git a/tuxbox/neutrino/src/gui/osd_setup.cpp 
b/tuxbox/neutrino/src/gui/osd_setup.cpp
index 5af85ce..89dfbc8 100644
--- a/tuxbox/neutrino/src/gui/osd_setup.cpp
+++ b/tuxbox/neutrino/src/gui/osd_setup.cpp
@@ -270,32 +270,32 @@ int COsdSetup::showOsdSetup()
 
        // language
        COsdLangSetup *osd_lang = new COsdLangSetup(menue_title);
-       CMenuForwarder *osd_lang_fw = new 
CMenuForwarder(LOCALE_MAINSETTINGS_LANGUAGE, true, NULL, osd_lang, NULL, 
CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+       CMenuForwarder *osd_lang_fw = new 
CMenuForwarder(LOCALE_MAINSETTINGS_LANGUAGE, true, NULL, osd_lang, NULL, 
CRCInput::RC_red);
        
        //osd color setup forwarder
-       CMenuForwarder *osd_setup_color_sub_fw  = new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_HEAD, true, NULL, osd_setup_colors, 
NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
+       CMenuForwarder *osd_setup_color_sub_fw  = new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_HEAD, true, NULL, osd_setup_colors, 
NULL, CRCInput::RC_green);
                //osd menue colors forwarder
-               CMenuForwarder *osd_menucolor_fw = new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_MENUCOLORS, true, NULL, this, 
"show_menue_color_setup", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+               CMenuForwarder *osd_menucolor_fw = new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_MENUCOLORS, true, NULL, this, 
"show_menue_color_setup", CRCInput::RC_red);
                //osd infobar setup forwarder
-               CMenuForwarder *osd_sbcolor_fw = new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_STATUSBAR, true, NULL, this, 
"show_infobar_color_setup", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
+               CMenuForwarder *osd_sbcolor_fw = new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_STATUSBAR, true, NULL, this, 
"show_infobar_color_setup", CRCInput::RC_green);
                //osd themes setup forwarder
                CThemes *osd_themes = new CThemes(menue_title);
-               CMenuForwarder *osd_themes_fw   = new 
CMenuForwarder(LOCALE_OSDSETTINGS_THEMESELECT, true, NULL, osd_themes, NULL, 
CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW);
+               CMenuForwarder *osd_themes_fw   = new 
CMenuForwarder(LOCALE_OSDSETTINGS_THEMESELECT, true, NULL, osd_themes, NULL, 
CRCInput::RC_yellow);
                
 
        //osd progressbar color
        CMenuOptionChooser *osd_pbcolor_ch = new 
CMenuOptionChooser(LOCALE_OSDSETTINGS_COLORMENU_PROGRESSBAR, 
&g_settings.progressbar_color, OPTIONS_OFF0_ON1_OPTIONS, 
OPTIONS_OFF0_ON1_OPTION_COUNT, true);
        //osd fontsize setup
-       CMenuForwarder *osd_fontsize_fw = new 
CMenuForwarder(LOCALE_FONTMENU_HEAD, true, NULL, this, "show_fontsize_setup", 
CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW);
+       CMenuForwarder *osd_fontsize_fw = new 
CMenuForwarder(LOCALE_FONTMENU_HEAD, true, NULL, this, "show_fontsize_setup", 
CRCInput::RC_yellow);
        //osd timeout setup forwarder
-       CMenuForwarder *osd_timeout_fw = new CMenuForwarder(LOCALE_TIMING_HEAD, 
true, NULL,  this, "show_timeout_setup", CRCInput::RC_blue, 
NEUTRINO_ICON_BUTTON_BLUE);
+       CMenuForwarder *osd_timeout_fw = new CMenuForwarder(LOCALE_TIMING_HEAD, 
true, NULL,  this, "show_timeout_setup", CRCInput::RC_blue);
        //osd screen setup
        CScreenSetup *osd_screen = new CScreenSetup();
-       CMenuForwarder *osd_screen_fw = new 
CMenuForwarder(LOCALE_VIDEOMENU_SCREENSETUP, true, NULL, osd_screen, NULL, 
CRCInput::RC_1, NEUTRINO_ICON_BUTTON_1);
+       CMenuForwarder *osd_screen_fw = new 
CMenuForwarder(LOCALE_VIDEOMENU_SCREENSETUP, true, NULL, osd_screen, NULL, 
CRCInput::RC_1);
        //osd infobar setup
-       CMenuForwarder *osd_infobar_fw = new 
CMenuForwarder(LOCALE_OSDSETTINGS_INFOBAR, true, NULL, this, 
"show_infobar_setup", CRCInput::RC_2, NEUTRINO_ICON_BUTTON_2);
+       CMenuForwarder *osd_infobar_fw = new 
CMenuForwarder(LOCALE_OSDSETTINGS_INFOBAR, true, NULL, this, 
"show_infobar_setup", CRCInput::RC_2);
        //osd channellist setup
-       CMenuForwarder *osd_chanlist_fw = new 
CMenuForwarder(LOCALE_MISCSETTINGS_CHANNELLIST, true, NULL, this, 
"show_channellist_setup", CRCInput::RC_3, NEUTRINO_ICON_BUTTON_3);
+       CMenuForwarder *osd_chanlist_fw = new 
CMenuForwarder(LOCALE_MISCSETTINGS_CHANNELLIST, true, NULL, this, 
"show_channellist_setup", CRCInput::RC_3);
 
        //osd volumbar position
        CMenuOptionChooser* osd_volumbarpos_ch = new 
CMenuOptionChooser(LOCALE_OSDSETTINGS_VOLUMEBAR_DISP_POS, 
&g_settings.volumebar_disp_pos, VOLUMEBAR_DISP_POS_OPTIONS, 
VOLUMEBAR_DISP_POS_OPTIONS_COUNT, true);
@@ -337,7 +337,7 @@ int COsdSetup::showOsdSetup()
        {
                //GTX
                osd_alpha = new 
CAlphaSetup(LOCALE_OSDSETTINGS_COLORMENU_GTX_ALPHA);
-               osd_setup->addItem(new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_GTX_ALPHA, true, NULL, osd_alpha, 
NULL, CRCInput::RC_4, NEUTRINO_ICON_BUTTON_4));
+               osd_setup->addItem(new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_GTX_ALPHA, true, NULL, osd_alpha, 
NULL, CRCInput::RC_4));
        }
 #else  
        //Dream and TD
@@ -655,7 +655,7 @@ int COsdSetup::showOsdFontSizeSetup()
        CFile font_file;
        font_file.Name = g_settings.font_file;
        font_file_name = font_file.getFileName();
-       CMenuForwarder *mf = new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_FONT, true, font_file_name, this, 
"select_font", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+       CMenuForwarder *mf = new 
CMenuForwarder(LOCALE_OSDSETTINGS_COLORMENU_FONT, true, font_file_name, this, 
"select_font", CRCInput::RC_red);
        fontSettings->addItem(mf);
        fontSettings->addItem(new CMenuSeparator(CMenuSeparator::LINE | 
CMenuSeparator::STRING, LOCALE_FONTMENU_SIZES));
 
diff --git a/tuxbox/neutrino/src/gui/personalize.cpp 
b/tuxbox/neutrino/src/gui/personalize.cpp
index 6e0372e..167b61e 100644
--- a/tuxbox/neutrino/src/gui/personalize.cpp
+++ b/tuxbox/neutrino/src/gui/personalize.cpp
@@ -98,7 +98,7 @@
        foo->addWidgets(widget_struct, count of available widgets);
 
        //create a forwarder object:
-       CMenuItem *item = new CMenuForwarder(LOCALE_MAINMENU_TVMODE, true, 
NULL, this, "tv", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+       CMenuItem *item = new CMenuForwarder(LOCALE_MAINMENU_TVMODE, true, 
NULL, this, "tv", CRCInput::RC_red);
 
        //now you can add this to personalization
        foo->addItem(&mn, tvswitch, &g_settings.personalize_tvmode);
@@ -295,13 +295,13 @@ int CPersonalizeGui::ShowPersonalizationMenu()
        CUserMenuSetup* userMenuSetupBlue = new 
CUserMenuSetup(LOCALE_USERMENU_BUTTON_BLUE, SNeutrinoSettings::BUTTON_BLUE);
 
        pMenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | 
CMenuSeparator::STRING, LOCALE_USERMENU_HEAD));
-       pMenu->addItem(new CMenuForwarder(LOCALE_USERMENU_BUTTON_RED, true, 
NULL, userMenuSetupRed, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));
-       pMenu->addItem(new CMenuForwarder(LOCALE_USERMENU_BUTTON_GREEN, true, 
NULL, userMenuSetupGreen, NULL, CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN));
-       pMenu->addItem(new CMenuForwarder(LOCALE_USERMENU_BUTTON_YELLOW, true, 
NULL, userMenuSetupYellow, NULL, CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW));
-       pMenu->addItem(new CMenuForwarder(LOCALE_USERMENU_BUTTON_BLUE, true, 
NULL, userMenuSetupBlue, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE));
+       pMenu->addItem(new CMenuForwarder(LOCALE_USERMENU_BUTTON_RED, true, 
NULL, userMenuSetupRed, NULL, CRCInput::RC_red));
+       pMenu->addItem(new CMenuForwarder(LOCALE_USERMENU_BUTTON_GREEN, true, 
NULL, userMenuSetupGreen, NULL, CRCInput::RC_green));
+       pMenu->addItem(new CMenuForwarder(LOCALE_USERMENU_BUTTON_YELLOW, true, 
NULL, userMenuSetupYellow, NULL, CRCInput::RC_yellow));
+       pMenu->addItem(new CMenuForwarder(LOCALE_USERMENU_BUTTON_BLUE, true, 
NULL, userMenuSetupBlue, NULL, CRCInput::RC_blue));
 
        pMenu->addItem(GenericMenuSeparatorLine);
-       pMenu->addItem(new CMenuForwarder(LOCALE_PERSONALIZE_HELP, true, NULL, 
this, "personalize_help", CRCInput::RC_help, NEUTRINO_ICON_BUTTON_HELP));
+       pMenu->addItem(new CMenuForwarder(LOCALE_PERSONALIZE_HELP, true, NULL, 
this, "personalize_help", CRCInput::RC_help));
 
        int res = pMenu->exec(NULL, "");
        selected = pMenu->getSelected();
@@ -564,7 +564,7 @@ void CPersonalizeGui::addPersonalizedItems()
                                        fw->active = *v_item[i].item_active;
 
                                //get shortcut
-                               if (fw->iconName.empty() && fw->active ) //if 
no icon is defined and item is active, allow to generate a shortcut, 
+                               if (fw->active && (d_key == CRCInput::RC_nokey 
|| CRCInput::isNumeric(d_key))) //if item is active and numeric or no key is 
assigned, allow to generate a shortcut
                                {
                                        add_shortcut = true;
                                        d_key = getShortcut(short_cut);
diff --git a/tuxbox/neutrino/src/gui/proxyserver_setup.cpp 
b/tuxbox/neutrino/src/gui/proxyserver_setup.cpp
index 6f801e4..6ce5a0e 100644
--- a/tuxbox/neutrino/src/gui/proxyserver_setup.cpp
+++ b/tuxbox/neutrino/src/gui/proxyserver_setup.cpp
@@ -80,13 +80,13 @@ int CProxySetup::showProxySetup()
        mn->addIntroItems(menue_title != LOCALE_FLASHUPDATE_PROXYSERVER_SEP ? 
LOCALE_FLASHUPDATE_PROXYSERVER_SEP : NONEXISTANT_LOCALE);
 
        CStringInputSMS softUpdate_proxy(LOCALE_FLASHUPDATE_PROXYSERVER, 
g_settings.softupdate_proxyserver, 23, LOCALE_FLASHUPDATE_PROXYSERVER_HINT1, 
LOCALE_FLASHUPDATE_PROXYSERVER_HINT2, "abcdefghijklmnopqrstuvwxyz0123456789-.: 
");
-       mn->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYSERVER, true, 
g_settings.softupdate_proxyserver, &softUpdate_proxy, NULL, CRCInput::RC_red, 
NEUTRINO_ICON_BUTTON_RED));
+       mn->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYSERVER, true, 
g_settings.softupdate_proxyserver, &softUpdate_proxy, NULL, CRCInput::RC_red));
 
        CStringInputSMS softUpdate_proxyuser(LOCALE_FLASHUPDATE_PROXYUSERNAME, 
g_settings.softupdate_proxyusername, 23, 
LOCALE_FLASHUPDATE_PROXYUSERNAME_HINT1, LOCALE_FLASHUPDATE_PROXYUSERNAME_HINT2, 
"abcdefghijklmnopqrstuvwxyz0123456789!""\xA7$%&/()=?-. ");
-       mn->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYUSERNAME, true, 
g_settings.softupdate_proxyusername, &softUpdate_proxyuser, NULL, 
CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN));
+       mn->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYUSERNAME, true, 
g_settings.softupdate_proxyusername, &softUpdate_proxyuser, NULL, 
CRCInput::RC_green));
 
        CStringInputSMS softUpdate_proxypass(LOCALE_FLASHUPDATE_PROXYPASSWORD, 
g_settings.softupdate_proxypassword, 20, 
LOCALE_FLASHUPDATE_PROXYPASSWORD_HINT1, LOCALE_FLASHUPDATE_PROXYPASSWORD_HINT2, 
"abcdefghijklmnopqrstuvwxyz0123456789!""\xA7$%&/()=?-. ");
-       mn->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYPASSWORD, true, 
g_settings.softupdate_proxypassword, &softUpdate_proxypass, NULL, 
CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW));
+       mn->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_PROXYPASSWORD, true, 
g_settings.softupdate_proxypassword, &softUpdate_proxypass, NULL, 
CRCInput::RC_yellow));
 
        int res = mn->exec(NULL, "");
        selected = mn->getSelected();
diff --git a/tuxbox/neutrino/src/gui/record_setup.cpp 
b/tuxbox/neutrino/src/gui/record_setup.cpp
index aedfcd1..fb413da 100644
--- a/tuxbox/neutrino/src/gui/record_setup.cpp
+++ b/tuxbox/neutrino/src/gui/record_setup.cpp
@@ -183,7 +183,7 @@ int CRecordSetup::showRecordSetup()
        //timersettings submenue
        CMenuWidget *timerRecordingSettings = new 
CMenuWidget(LOCALE_MAINSETTINGS_RECORDING, NEUTRINO_ICON_TIMER, width);
        toDelete.push_back(timerRecordingSettings);
-       CMenuForwarder* mf15 = new 
CMenuForwarder(LOCALE_TIMERSETTINGS_SEPARATOR ,true, NULL, 
timerRecordingSettings, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW);
+       CMenuForwarder* mf15 = new 
CMenuForwarder(LOCALE_TIMERSETTINGS_SEPARATOR ,true, NULL, 
timerRecordingSettings, NULL, CRCInput::RC_yellow);
 
        //prepare time before
        CStringInput 
timerSettings_record_safety_time_before(LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_BEFORE,
 record_safety_time_before, 2, 
LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_BEFORE_HINT_1, 
LOCALE_TIMERSETTINGS_RECORD_SAFETY_TIME_BEFORE_HINT_2,"0123456789 ", this);
@@ -203,7 +203,7 @@ int CRecordSetup::showRecordSetup()
        // default recording audio pids
        CMenuWidget *apidRecordingSettings = new 
CMenuWidget(LOCALE_MAINSETTINGS_RECORDING, NEUTRINO_ICON_AUDIO, width);
        toDelete.push_back(apidRecordingSettings);
-       CMenuForwarder* mf13 = new CMenuForwarder(LOCALE_RECORDINGMENU_APIDS 
,true, NULL, apidRecordingSettings, NULL, CRCInput::RC_blue, 
NEUTRINO_ICON_BUTTON_BLUE);
+       CMenuForwarder* mf13 = new CMenuForwarder(LOCALE_RECORDINGMENU_APIDS, 
true, NULL, apidRecordingSettings, NULL, CRCInput::RC_blue);
 
        recording_audio_pids_std = ( g_settings.recording_audio_pids_default & 
TIMERD_APIDS_STD ) ? 1 : 0 ;
        recording_audio_pids_alt = ( g_settings.recording_audio_pids_default & 
TIMERD_APIDS_ALT ) ? 1 : 0 ;
@@ -264,7 +264,7 @@ int CRecordSetup::showRecordSetup()
        // for direct recording
        CMenuWidget *directRecordingSettings = new 
CMenuWidget(LOCALE_MAINSETTINGS_RECORDING, NEUTRINO_ICON_RECORDING, width);
        toDelete.push_back(directRecordingSettings);
-       CMenuForwarder* mf7 = new 
CMenuForwarder(LOCALE_RECORDINGMENU_FILESETTINGS,(g_settings.recording_type == 
RECORDING_FILE), NULL, directRecordingSettings, NULL, CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN);
+       CMenuForwarder* mf7 = new 
CMenuForwarder(LOCALE_RECORDINGMENU_FILESETTINGS, (g_settings.recording_type == 
RECORDING_FILE), NULL, directRecordingSettings, NULL, CRCInput::RC_green);
 
        CStringInput 
recordingSettings_splitsize(LOCALE_RECORDINGMENU_SPLITSIZE, 
g_settings.recording_splitsize_default, 6, LOCALE_IPSETUP_HINT_1, 
LOCALE_IPSETUP_HINT_2, "0123456789 ");
        CMenuForwarder* mf9 = new 
CMenuForwarder(LOCALE_RECORDINGMENU_SPLITSIZE, true, 
g_settings.recording_splitsize_default, &recordingSettings_splitsize);
@@ -301,8 +301,8 @@ int CRecordSetup::showRecordSetup()
        //intros
        recordingSettings->addIntroItems(LOCALE_MAINSETTINGS_RECORDING);
 
-       recordingSettings->addItem(new 
CMenuForwarder(LOCALE_RECORDINGMENU_SETUPNOW, true, NULL, this, "recording", 
CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));
-       recordingSettings->addItem(new CMenuForwarder(LOCALE_SETTINGS_HELP, 
true, NULL, this, "help_recording", CRCInput::RC_help, 
NEUTRINO_ICON_BUTTON_HELP));
+       recordingSettings->addItem(new 
CMenuForwarder(LOCALE_RECORDINGMENU_SETUPNOW, true, NULL, this, "recording", 
CRCInput::RC_red));
+       recordingSettings->addItem(new CMenuForwarder(LOCALE_SETTINGS_HELP, 
true, NULL, this, "help_recording", CRCInput::RC_help));
        recordingSettings->addItem(GenericMenuSeparatorLine);
        recordingSettings->addItem( oj1); //recording type (off, server, vcr, 
direct) 
        recordingSettings->addItem(GenericMenuSeparatorLine);
@@ -331,7 +331,7 @@ int CRecordSetup::showRecordSetup()
        recordingSettings->addItem( mf13);//audio pid settings
                //intros
                
directRecordingSettings->addIntroItems(LOCALE_RECORDINGMENU_FILESETTINGS);
-               directRecordingSettings->addItem(new 
CMenuForwarder(LOCALE_RECORDINGMENU_DEFDIR, true, NULL, dirMenu, NULL, 
CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));
+               directRecordingSettings->addItem(new 
CMenuForwarder(LOCALE_RECORDINGMENU_DEFDIR, true, NULL, dirMenu, NULL, 
CRCInput::RC_red));
                directRecordingSettings->addItem(oj10);
                directRecordingSettings->addItem(oj15); //max. recording time
                directRecordingSettings->addItem(mf11);
diff --git a/tuxbox/neutrino/src/gui/sambaserver_setup.cpp 
b/tuxbox/neutrino/src/gui/sambaserver_setup.cpp
index e60d5c0..bd78313 100644
--- a/tuxbox/neutrino/src/gui/sambaserver_setup.cpp
+++ b/tuxbox/neutrino/src/gui/sambaserver_setup.cpp
@@ -126,11 +126,11 @@ int CSambaSetup::showSambaSetup()
                g_settings.smb_setup_samba_on_off = ON;
 
        CSambaOnOffNotifier smb_notifier(SAMBA_MARKER);
-       CMenuOptionChooser * sm_start = new 
CMenuOptionChooser(LOCALE_SAMBASERVER_SETUP_STAT, 
&g_settings.smb_setup_samba_on_off, SMB_YES_NO_OPTIONS, 
SMB_YES_NO_OPTION_COUNT, true, &smb_notifier, CRCInput::RC_standby, 
NEUTRINO_ICON_BUTTON_POWER);
+       CMenuOptionChooser * sm_start = new 
CMenuOptionChooser(LOCALE_SAMBASERVER_SETUP_STAT, 
&g_settings.smb_setup_samba_on_off, SMB_YES_NO_OPTIONS, 
SMB_YES_NO_OPTION_COUNT, true, &smb_notifier, CRCInput::RC_standby);
 
        //workroup, domainname
        CStringInputSMS sm_input_domain(LOCALE_SAMBASERVER_SETUP_WORKGROUP, 
&g_settings.smb_setup_samba_workgroup, 15, false, 
LOCALE_SAMBASERVER_SETUP_WORKGROUP_HINT1, 
LOCALE_SAMBASERVER_SETUP_WORKGROUP_HINT2, 
"abcdefghijklmnopqrstuvwxyz0123456789_ ");
-       CMenuForwarder * sm_fw_domain = new 
CMenuForwarder(LOCALE_SAMBASERVER_SETUP_WORKGROUP, true, 
g_settings.smb_setup_samba_workgroup, &sm_input_domain, NULL, 
CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
+       CMenuForwarder * sm_fw_domain = new 
CMenuForwarder(LOCALE_SAMBASERVER_SETUP_WORKGROUP, true, 
g_settings.smb_setup_samba_workgroup, &sm_input_domain, NULL, 
CRCInput::RC_green);
 
        //address,interface
        CMenuForwarder * sm_fw_interface = new 
CMenuForwarder(LOCALE_SAMBASERVER_SETUP_INTERFACE, false, interface);
diff --git a/tuxbox/neutrino/src/gui/scan_setup.cpp 
b/tuxbox/neutrino/src/gui/scan_setup.cpp
index 4eccd7e..7280e13 100644
--- a/tuxbox/neutrino/src/gui/scan_setup.cpp
+++ b/tuxbox/neutrino/src/gui/scan_setup.cpp
@@ -212,16 +212,16 @@ int CScanSetup::showScanService()
        scansetup->setPreselected(selected);
 
        //prepare scantype green
-       CMenuOptionChooser* ojScantype = new 
CMenuOptionChooser(LOCALE_ZAPIT_SCANTYPE, (int *)&scanSettings.scanType, 
SCANTS_ZAPIT_SCANTYPE, SCANTS_ZAPIT_SCANTYPE_COUNT, true, NULL, 
CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
+       CMenuOptionChooser* ojScantype = new 
CMenuOptionChooser(LOCALE_ZAPIT_SCANTYPE, (int *)&scanSettings.scanType, 
SCANTS_ZAPIT_SCANTYPE, SCANTS_ZAPIT_SCANTYPE_COUNT, true, NULL, 
CRCInput::RC_green);
 
        //prepare bouquet mode yellow
-       CMenuOptionChooser* ojBouquets = new 
CMenuOptionChooser(LOCALE_SCANTS_BOUQUET, (int *)&scanSettings.bouquetMode, 
SCANTS_BOUQUET_OPTIONS, SCANTS_BOUQUET_OPTION_COUNT, true, NULL, 
CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW);
+       CMenuOptionChooser* ojBouquets = new 
CMenuOptionChooser(LOCALE_SCANTS_BOUQUET, (int *)&scanSettings.bouquetMode, 
SCANTS_BOUQUET_OPTIONS, SCANTS_BOUQUET_OPTION_COUNT, true, NULL, 
CRCInput::RC_yellow);
 
        // intros
        scansetup->addIntroItems(LOCALE_SERVICEMENU_SCANTS);
 
        //save button red
-       scansetup->addItem(new 
CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, 
"save_action", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));
+       scansetup->addItem(new 
CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, 
"save_action", CRCInput::RC_red));
        scansetup->addItem(GenericMenuSeparatorLine);
 
        //prepare sat-lnb-settings
@@ -285,7 +285,7 @@ int CScanSetup::showScanService()
                extMotorSettings->addIntroItems();
                
                //save motorsettings red
-               extMotorSettings->addItem(new 
CMenuForwarder(LOCALE_SATSETUP_SAVESETTINGSNOW, true, NULL, this, 
"save_action", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));
+               extMotorSettings->addItem(new 
CMenuForwarder(LOCALE_SATSETUP_SAVESETTINGSNOW, true, NULL, this, 
"save_action", CRCInput::RC_red));
                extMotorSettings->addItem(GenericMenuSeparatorLine);
 
                //motorspeed (how long to set wait timer for dish to travel to 
correct position) 
@@ -310,7 +310,7 @@ int CScanSetup::showScanService()
                
                //manual motor control
                motorControl = new CMotorControl();
-               extMotorSettings->addItem(new 
CMenuForwarder(LOCALE_SATSETUP_MOTORCONTROL, true, NULL, motorControl, NULL, 
CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN));
+               extMotorSettings->addItem(new 
CMenuForwarder(LOCALE_SATSETUP_MOTORCONTROL, true, NULL, motorControl, NULL, 
CRCInput::RC_green));
                extMotorSettings->addItem(GenericMenuSeparatorLine);
 
                //prepare motor control
@@ -405,7 +405,7 @@ int CScanSetup::showScanService()
        scansetup->addItem(GenericMenuSeparatorLine);
 
        CScanTs* scanTs = new CScanTs();
-       scansetup->addItem(new CMenuForwarder(LOCALE_SCANTS_STARTNOW, true, 
NULL, scanTs, NULL, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE));
+       scansetup->addItem(new CMenuForwarder(LOCALE_SCANTS_STARTNOW, true, 
NULL, scanTs, NULL, CRCInput::RC_blue));
 
        int res = scansetup->exec(NULL, "");
        selected = scansetup->getSelected();
diff --git a/tuxbox/neutrino/src/gui/software_update.cpp 
b/tuxbox/neutrino/src/gui/software_update.cpp
index 8a0c80a..7733395 100755
--- a/tuxbox/neutrino/src/gui/software_update.cpp
+++ b/tuxbox/neutrino/src/gui/software_update.cpp
@@ -98,7 +98,7 @@ int CSoftwareUpdate::showSoftwareUpdate()
        softUpdate->addIntroItems(LOCALE_SERVICEMENU_UPDATE);
 
        // experts-functions 
-       softUpdate->addItem( new 
CMenuForwarder(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, true, ""  , this     , 
"experts",CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));
+       softUpdate->addItem(new 
CMenuForwarder(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS, true, NULL, this, "experts", 
CRCInput::RC_red));
 
 #ifndef DISABLE_INTERNET_UPDATE
 #ifndef HAVE_DREAMBOX_HARDWARE
@@ -114,7 +114,7 @@ int CSoftwareUpdate::showSoftwareUpdate()
        // update check
        CFlashUpdate* flashUpdate = new CFlashUpdate();
        softUpdate->addItem(GenericMenuSeparatorLine);
-       softUpdate->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_CHECKUPDATE, 
true, NULL, flashUpdate, NULL, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN));
+       softUpdate->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_CHECKUPDATE, 
true, NULL, flashUpdate, NULL, CRCInput::RC_green));
 
        int res = softUpdate->exec (NULL, "");
        selected = softUpdate->getSelected();
@@ -133,13 +133,13 @@ int CSoftwareUpdate::showSoftwareUpdateExpert()
        CMenuWidget* mtdexpert = new CMenuWidget(LOCALE_SERVICEMENU_UPDATE, 
NEUTRINO_ICON_UPDATE);
        mtdexpert->addIntroItems(LOCALE_FLASHUPDATE_EXPERTFUNCTIONS);
        
-       mtdexpert->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_READFLASH    , 
true, NULL, fe, "readflash"       , CRCInput::RC_red, 
NEUTRINO_ICON_BUTTON_RED));
-       mtdexpert->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_WRITEFLASH   , 
true, NULL, fe, "writeflash"      , CRCInput::RC_green, 
NEUTRINO_ICON_BUTTON_GREEN));
+       mtdexpert->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_READFLASH, 
true, NULL, fe, "readflash", CRCInput::RC_red));
+       mtdexpert->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_WRITEFLASH, 
true, NULL, fe, "writeflash", CRCInput::RC_green));
 
        mtdexpert->addItem(GenericMenuSeparatorLine);
 
-       mtdexpert->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_READFLASHMTD , 
true, NULL, fe, "readflashmtd"    , CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW));
-       mtdexpert->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_WRITEFLASHMTD, 
true, NULL, fe, "writeflashmtd"   , CRCInput::RC_blue, 
NEUTRINO_ICON_BUTTON_BLUE));
+       mtdexpert->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_READFLASHMTD, 
true, NULL, fe, "readflashmtd", CRCInput::RC_yellow));
+       mtdexpert->addItem(new CMenuForwarder(LOCALE_FLASHUPDATE_WRITEFLASHMTD, 
true, NULL, fe, "writeflashmtd", CRCInput::RC_blue));
 
 #ifndef DISABLE_INTERNET_UPDATE
        mtdexpert->addItem(GenericMenuSeparatorLine);
diff --git a/tuxbox/neutrino/src/gui/subchannel_select.cpp 
b/tuxbox/neutrino/src/gui/subchannel_select.cpp
index b39af9d..16c347a 100644
--- a/tuxbox/neutrino/src/gui/subchannel_select.cpp
+++ b/tuxbox/neutrino/src/gui/subchannel_select.cpp
@@ -106,7 +106,7 @@ int CSubChannelSelectMenu::doMenu()
                else
                {
                        if (count == 0)
-                               SubChannelSelector.addItem(new 
CMenuForwarder(Latin1_to_UTF8(e->subservice_name).c_str(), true, NULL, this, 
nvod_id, CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE));
+                               SubChannelSelector.addItem(new 
CMenuForwarder(Latin1_to_UTF8(e->subservice_name).c_str(), true, NULL, this, 
nvod_id, CRCInput::RC_blue));
                        else
                                SubChannelSelector.addItem(new 
CMenuForwarder(Latin1_to_UTF8(e->subservice_name).c_str(), true, NULL, this, 
nvod_id, CRCInput::convertDigitToKey(count)), count == 
g_RemoteControl->selected_subchannel);
                }
@@ -117,7 +117,7 @@ int CSubChannelSelectMenu::doMenu()
        if (g_RemoteControl->are_subchannels)
        {
                SubChannelSelector.addItem(GenericMenuSeparatorLine);
-               SubChannelSelector.addItem(new 
CMenuOptionChooser(LOCALE_NVODSELECTOR_DIRECTORMODE, 
&g_RemoteControl->director_mode, OPTIONS_OFF0_ON1_OPTIONS, 
OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL, CRCInput::RC_yellow, 
NEUTRINO_ICON_BUTTON_YELLOW));
+               SubChannelSelector.addItem(new 
CMenuOptionChooser(LOCALE_NVODSELECTOR_DIRECTORMODE, 
&g_RemoteControl->director_mode, OPTIONS_OFF0_ON1_OPTIONS, 
OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL, CRCInput::RC_yellow));
        }
 
        return SubChannelSelector.exec(NULL, "");
diff --git a/tuxbox/neutrino/src/gui/themes.cpp 
b/tuxbox/neutrino/src/gui/themes.cpp
index 8c2f6ab..013bc80 100644
--- a/tuxbox/neutrino/src/gui/themes.cpp
+++ b/tuxbox/neutrino/src/gui/themes.cpp
@@ -159,7 +159,7 @@ int CThemes::Show()
        themes.addIntroItems(menue_title != LOCALE_COLORTHEMEMENU_HEAD2 ? 
LOCALE_COLORTHEMEMENU_HEAD2 : NONEXISTANT_LOCALE);
        
        //set default theme
-       themes.addItem(new CMenuForwarder(LOCALE_COLORTHEMEMENU_NEUTRINO_THEME, 
true, NULL, this, "theme_neutrino", CRCInput::RC_red, 
NEUTRINO_ICON_BUTTON_RED));
+       themes.addItem(new CMenuForwarder(LOCALE_COLORTHEMEMENU_NEUTRINO_THEME, 
true, NULL, this, "theme_neutrino", CRCInput::RC_red));
 
        readThemes(themes);
 
diff --git a/tuxbox/neutrino/src/gui/timerlist.cpp 
b/tuxbox/neutrino/src/gui/timerlist.cpp
index 2d40b99..f663d66 100644
--- a/tuxbox/neutrino/src/gui/timerlist.cpp
+++ b/tuxbox/neutrino/src/gui/timerlist.cpp
@@ -928,7 +928,7 @@ int CTimerList::modifyTimer()
        CMenuWidget timerSettings(LOCALE_TIMERLIST_MENUMODIFY, 
NEUTRINO_ICON_TIMER, width);
        //main items
        timerSettings.addIntroItems(NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, 
CMenuWidget::BTN_TYPE_CANCEL);
-       timerSettings.addItem(new CMenuForwarder(LOCALE_TIMERLIST_SAVE, true, 
NULL, this, "modifytimer", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));
+       timerSettings.addItem(new CMenuForwarder(LOCALE_TIMERLIST_SAVE, true, 
NULL, this, "modifytimer", CRCInput::RC_red));
        timerSettings.addItem(GenericMenuSeparatorLine);
 
        char type[80];
@@ -1019,7 +1019,7 @@ int CTimerList::newTimer()
 
        CMenuWidget timerSettings(LOCALE_TIMERLIST_MENUNEW, 
NEUTRINO_ICON_TIMER, width);
        timerSettings.addIntroItems(NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, 
CMenuWidget::BTN_TYPE_CANCEL);
-       timerSettings.addItem(new CMenuForwarder(LOCALE_TIMERLIST_SAVE, true, 
NULL, this, "newtimer", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED));
+       timerSettings.addItem(new CMenuForwarder(LOCALE_TIMERLIST_SAVE, true, 
NULL, this, "newtimer", CRCInput::RC_red));
        timerSettings.addItem(GenericMenuSeparatorLine);
 
        CDateInput timerSettings_alarmTime(LOCALE_TIMERLIST_ALARMTIME, 
&(timerNew.alarmTime));
diff --git a/tuxbox/neutrino/src/gui/video_setup.cpp 
b/tuxbox/neutrino/src/gui/video_setup.cpp
index 0a4f6b4..71af9a1 100644
--- a/tuxbox/neutrino/src/gui/video_setup.cpp
+++ b/tuxbox/neutrino/src/gui/video_setup.cpp
@@ -142,7 +142,7 @@ int CVideoSetup::showVideoSetup()
        //rgb centering
        CRGBCSyncControler * RGBCSyncControler = new 
CRGBCSyncControler(LOCALE_VIDEOMENU_RGB_CENTERING, &g_settings.video_csync);
        bool sc_active = ((video_out_signal == 
CControldClient::VIDEOOUTPUT_RGB) || (video_out_signal == 
CControldClient::VIDEOOUTPUT_YUV_VBS) || (video_out_signal ==  
CControldClient::VIDEOOUTPUT_YUV_CVBS));
-       SyncControlerForwarder = new 
CMenuForwarder(LOCALE_VIDEOMENU_RGB_CENTERING, sc_active, NULL , 
RGBCSyncControler, NULL, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
+       SyncControlerForwarder = new 
CMenuForwarder(LOCALE_VIDEOMENU_RGB_CENTERING, sc_active, NULL, 
RGBCSyncControler, NULL, CRCInput::RC_red);
 #endif
 
        videosetup->addItem(oj1);       //video format
diff --git a/tuxbox/neutrino/src/gui/widget/menue.cpp 
b/tuxbox/neutrino/src/gui/widget/menue.cpp
index 4a4171d..b49cdd3 100644
--- a/tuxbox/neutrino/src/gui/widget/menue.cpp
+++ b/tuxbox/neutrino/src/gui/widget/menue.cpp
@@ -168,18 +168,10 @@ void CMenuItem::paintItemButton(const bool select_mode, 
const int &item_height,
        int height = item_height;
        bool icon_painted = false;
 
-       std::string icon_name = iconName;
+       std::string icon_name = getIconName();
        int icon_w = 0;
        int icon_h = 0;
 
-       if (icon_name.empty() && CRCInput::isNumeric(directKey) && 
g_settings.menu_numbers_as_icons)
-       {
-               char i_name[6]; /* X.raw +'\0' */
-               snprintf(i_name, 6, "%d.raw", 
CRCInput::getNumericValue(directKey));
-               i_name[5] = '\0'; /* even if snprintf truncated the string, 
ensure termination */
-               icon_name = i_name;
-       }
-
        if (selected && offx > 0)
        {
                if (!selected_iconName.empty())
@@ -239,6 +231,53 @@ void CMenuItem::paintItemButton(const bool select_mode, 
const int &item_height,
        }
 }
 
+std::string CMenuItem::getIconName()
+{
+       std::string icon_name;
+
+       if (!iconName.empty())
+       {
+               icon_name = iconName;
+       }
+       else if (CRCInput::isNumeric(directKey))
+       {
+               if (g_settings.menu_numbers_as_icons)
+               {
+                       icon_name = CRCInput::getKeyName(directKey);
+                       icon_name += ".raw";
+               }
+       }
+       else
+       {
+               switch (directKey)
+               {
+                       case CRCInput::RC_red:
+                               icon_name = NEUTRINO_ICON_BUTTON_RED;
+                               break;
+                       case CRCInput::RC_green:
+                               icon_name = NEUTRINO_ICON_BUTTON_GREEN;
+                               break;
+                       case CRCInput::RC_yellow:
+                               icon_name = NEUTRINO_ICON_BUTTON_YELLOW;
+                               break;
+                       case CRCInput::RC_blue:
+                               icon_name = NEUTRINO_ICON_BUTTON_BLUE;
+                               break;
+                       case CRCInput::RC_standby:
+                               icon_name = NEUTRINO_ICON_BUTTON_POWER;
+                               break;
+                       case CRCInput::RC_setup:
+                               icon_name = NEUTRINO_ICON_BUTTON_DBOX;
+                               break;
+                       case CRCInput::RC_help:
+                               icon_name = NEUTRINO_ICON_BUTTON_HELP;
+                               break;
+               }
+       }
+
+       return icon_name;
+}
+
 
 CMenuWidget::CMenuWidget(const neutrino_locale_t Name, const std::string & 
Icon, const int mwidth, const int mheight)
 {
diff --git a/tuxbox/neutrino/src/gui/widget/menue.h 
b/tuxbox/neutrino/src/gui/widget/menue.h
index 6411aff..488be79 100644
--- a/tuxbox/neutrino/src/gui/widget/menue.h
+++ b/tuxbox/neutrino/src/gui/widget/menue.h
@@ -78,6 +78,9 @@ class CMenuTarget
 
 class CMenuItem
 {
+       private:
+               std::string getIconName();
+
        protected:
                int x, y, dx, offx;
                bool used;

commit 702f16a4f19c1f930c4c508d3f8df8420355aff8
Author: Christian Schuett <gaucho...@hotmail.com>
Date:   Thu Dec 4 19:42:50 2014 +0100

    Neutrino: add setting for showing menu numbers as icons automatically
    
    based on code by martii <m4r...@gmx.de> in Neutrino-MP Git
    
    Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt 
b/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt
index d98bacb..16bb55c 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt
+++ b/tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt
@@ -1,5 +1,5 @@
-version=2.7.0.31
-date=11.01.2014
+version=2.7.0.32
+date=04.12.2014
 type=Release
 info=
 
diff --git a/tuxbox/neutrino/daemons/nhttpd/web/Y_neutrino_Blocks.txt 
b/tuxbox/neutrino/daemons/nhttpd/web/Y_neutrino_Blocks.txt
index 2b1b86b..4f77c14 100644
--- a/tuxbox/neutrino/daemons/nhttpd/web/Y_neutrino_Blocks.txt
+++ b/tuxbox/neutrino/daemons/nhttpd/web/Y_neutrino_Blocks.txt
@@ -715,6 +715,13 @@ start-block~neutrino_form-data_diverse
                        <tr>
                                <td colspan="2" width="35%" 
class="y_form_header">OSD-Extras</td>
                        </tr>
+                       <tr title="shape of corners: angular/rounded">
+                               <td>Eckendarstellung</td>
+                               <td>
+                                       <input type="radio" 
name="rounded_corners" value="false"/>eckig&nbsp;
+                                       <input type="radio" 
name="rounded_corners" value="true"/>abgerundet
+                               </td>
+                       </tr>
                        <tr>
                                <td>Lautst&auml;rkeanzeige</td>
                                <td>
@@ -737,6 +744,13 @@ start-block~neutrino_form-data_diverse
                                        <input type="radio" 
name="show_mute_icon" value="2"/>nicht bei AC3
                                </td>
                        </tr>
+                       <tr title="menu numbers as icons: off/on">
+                               <td>Men&uuml;-Zahlen als Icons</td>
+                               <td>
+                                       <input type="radio" 
name="menu_numbers_as_icons" value="false"/>AUS&nbsp;
+                                       <input type="radio" 
name="menu_numbers_as_icons" value="true"/>AN
+                               </td>
+                       </tr>
                        <tr>
                                <td colspan="2" width="35%" 
class="y_form_header">Infobar</td>
                        </tr>
@@ -914,9 +928,11 @@ function form_init()
        obj_set_radio_value('shutdown_real_rcdelay', 
"{=ini-get:/var/tuxbox/config/neutrino.conf;shutdown_real_rcdelay;true~cache=}");
        obj_set_radio_value('tuxtxt_cache', 
"{=ini-get:/var/tuxbox/config/neutrino.conf;tuxtxt_cache;false~cache=}");
        
+       obj_set_radio_value('rounded_corners', 
"{=ini-get:/var/tuxbox/config/neutrino.conf;rounded_corners;true~cache=}");
        val = 
"{=ini-get:/var/tuxbox/config/neutrino.conf;volumebar_disp_pos;4=}";
                document.f.volumebar_disp_pos.selectedIndex = val;
        obj_set_radio_value('show_mute_icon', 
"{=ini-get:/var/tuxbox/config/neutrino.conf;show_mute_icon;1~cache=}");
+       obj_set_radio_value('menu_numbers_as_icons', 
"{=ini-get:/var/tuxbox/config/neutrino.conf;menu_numbers_as_icons;false~cache=}");
 
        obj_set_radio_value('infobar_sat_display', 
"{=ini-get:/var/tuxbox/config/neutrino.conf;infobar_sat_display;true~cache=}");
        val = 
"{=ini-get:/var/tuxbox/config/neutrino.conf;infobar_subchan_disp_pos;0=}";
@@ -972,9 +988,11 @@ start-block~neutrino_diverse_save_settings
 
{=ini-set:/var/tuxbox/config/neutrino.conf;infobar_sat_display;{=infobar_sat_display=}~cache=}
 
{=ini-set:/var/tuxbox/config/neutrino.conf;infobar_show;{=infobar_show=}~cache=}
 
{=ini-set:/var/tuxbox/config/neutrino.conf;infobar_subchan_disp_pos;{=infobar_subchan_disp_pos=}~cache=}
+{=ini-set:/var/tuxbox/config/neutrino.conf;menu_numbers_as_icons;{=menu_numbers_as_icons=}~cache=}
 
{=ini-set:/var/tuxbox/config/neutrino.conf;radiotext_enable;{=radiotext=}~cache=}
 
{=ini-set:/var/tuxbox/config/neutrino.conf;repeat_blocker;{=repeat_blocker=}~cache=}
 
{=ini-set:/var/tuxbox/config/neutrino.conf;repeat_genericblocker;{=repeat_genericblocker=}~cache=}
+{=ini-set:/var/tuxbox/config/neutrino.conf;rounded_corners;{=rounded_corners=}~cache=}
 
{=ini-set:/var/tuxbox/config/neutrino.conf;show_mute_icon;{=show_mute_icon=}~cache=}
 
{=ini-set:/var/tuxbox/config/neutrino.conf;shutdown_count;{=shutdown_count=}~cache=}
 
{=ini-set:/var/tuxbox/config/neutrino.conf;shutdown_real;{=shutdown_real=}~cache=}
diff --git a/tuxbox/neutrino/data/locale/deutsch.locale 
b/tuxbox/neutrino/data/locale/deutsch.locale
index 3e1ab5f..4ffe974 100644
--- a/tuxbox/neutrino/data/locale/deutsch.locale
+++ b/tuxbox/neutrino/data/locale/deutsch.locale
@@ -1082,6 +1082,7 @@ osdsettings.infobar_show Info bei EPG Änderung
 osdsettings.infobar_virtual_zap_mode Virtual Zap
 osdsettings.infoviewer.radiotext Radiotext
 osdsettings.infoviewer.subchan_disp_pos Unterkanalanzeige
+osdsettings.menu_numbers_as_icons Menü-Zahlen als Icons
 osdsettings.rounded_corners Eckendarstellung
 osdsettings.rounded_corners_off eckig
 osdsettings.rounded_corners_on abgerundet
diff --git a/tuxbox/neutrino/data/locale/english.locale 
b/tuxbox/neutrino/data/locale/english.locale
index 2970d98..0954d71 100644
--- a/tuxbox/neutrino/data/locale/english.locale
+++ b/tuxbox/neutrino/data/locale/english.locale
@@ -1082,6 +1082,7 @@ osdsettings.infobar_show EPG Info
 osdsettings.infobar_virtual_zap_mode Virtual Zap
 osdsettings.infoviewer.radiotext Radiotext
 osdsettings.infoviewer.subchan_disp_pos Subchannel Display
+osdsettings.menu_numbers_as_icons Menu numbers as icons
 osdsettings.rounded_corners Shape of corners
 osdsettings.rounded_corners_off angular
 osdsettings.rounded_corners_on rounded
diff --git a/tuxbox/neutrino/src/gui/osd_setup.cpp 
b/tuxbox/neutrino/src/gui/osd_setup.cpp
index 9679ec4..5af85ce 100644
--- a/tuxbox/neutrino/src/gui/osd_setup.cpp
+++ b/tuxbox/neutrino/src/gui/osd_setup.cpp
@@ -303,6 +303,8 @@ int COsdSetup::showOsdSetup()
        CMenuOptionChooser* osd_mute_icon_ch = new 
CMenuOptionChooser(LOCALE_OSDSETTINGS_SHOW_MUTE_ICON, 
&g_settings.show_mute_icon, SHOW_MUTE_ICON_OPTIONS, 
SHOW_MUTE_ICON_OPTIONS_COUNT, true);
        //osd corner chooser
        CMenuOptionChooser* osd_corners_ch = new 
CMenuOptionChooser(LOCALE_OSDSETTINGS_ROUNDED_CORNERS, 
&g_settings.rounded_corners, COLORMENU_CORNERSETTINGS_TYPE_OPTIONS, 
COLORMENU_CORNERSETTINGS_TYPE_OPTION_COUNT, true, this);
+       //osd menu numbers
+       CMenuOptionChooser* osd_menu_numbers_ch = new 
CMenuOptionChooser(LOCALE_OSDSETTINGS_MENU_NUMBERS_AS_ICONS, 
&g_settings.menu_numbers_as_icons, OPTIONS_OFF0_ON1_OPTIONS, 
OPTIONS_OFF0_ON1_OPTION_COUNT, true, this);
 
        //osd main settings, intros
        osd_setup->addIntroItems(menue_title != LOCALE_MAINSETTINGS_OSD ? 
LOCALE_MAINSETTINGS_OSD : NONEXISTANT_LOCALE);
@@ -346,6 +348,7 @@ int COsdSetup::showOsdSetup()
        osd_setup->addItem(osd_corners_ch); //corner style
        osd_setup->addItem(osd_volumbarpos_ch); //volumebar
        osd_setup->addItem(osd_mute_icon_ch);   //mute icon
+       osd_setup->addItem(osd_menu_numbers_ch);        //menu numbers
 
        int res = osd_setup->exec(NULL, "");
        selected = osd_setup->getSelected();
@@ -761,7 +764,8 @@ bool CFontSizeNotifier::changeNotify(const 
neutrino_locale_t OptionName, void *
 
 bool COsdSetup::changeNotify(const neutrino_locale_t OptionName, void *)
 {
-       if (ARE_LOCALES_EQUAL(OptionName, LOCALE_OSDSETTINGS_ROUNDED_CORNERS))
+       if (ARE_LOCALES_EQUAL(OptionName, LOCALE_OSDSETTINGS_ROUNDED_CORNERS) ||
+           ARE_LOCALES_EQUAL(OptionName, 
LOCALE_OSDSETTINGS_MENU_NUMBERS_AS_ICONS))
        {
                osd_setup->hide();
                return true;
diff --git a/tuxbox/neutrino/src/gui/widget/menue.cpp 
b/tuxbox/neutrino/src/gui/widget/menue.cpp
index 8a6cc27..4a4171d 100644
--- a/tuxbox/neutrino/src/gui/widget/menue.cpp
+++ b/tuxbox/neutrino/src/gui/widget/menue.cpp
@@ -172,18 +172,13 @@ void CMenuItem::paintItemButton(const bool select_mode, 
const int &item_height,
        int icon_w = 0;
        int icon_h = 0;
 
-//we can paint number buttons automaticly without parameter, but it isn't a 
good idea for expensive menue painting with all possible numbers (like in 
mainmenue)
-//on slower machine like dbox2.
-//if you want to do this nevertheless, remove or comment out the following 
#ifndef-lines
-#ifndef HAVE_DBOX_HARDWARE
-       if (icon_name.empty() && CRCInput::isNumeric(directKey))
+       if (icon_name.empty() && CRCInput::isNumeric(directKey) && 
g_settings.menu_numbers_as_icons)
        {
                char i_name[6]; /* X.raw +'\0' */
                snprintf(i_name, 6, "%d.raw", 
CRCInput::getNumericValue(directKey));
                i_name[5] = '\0'; /* even if snprintf truncated the string, 
ensure termination */
                icon_name = i_name;
        }
-#endif
 
        if (selected && offx > 0)
        {
diff --git a/tuxbox/neutrino/src/neutrino.cpp b/tuxbox/neutrino/src/neutrino.cpp
index 93996a5..bb55e0d 100644
--- a/tuxbox/neutrino/src/neutrino.cpp
+++ b/tuxbox/neutrino/src/neutrino.cpp
@@ -436,6 +436,15 @@ int CNeutrinoApp::loadSetup()
        //corners
        g_settings.rounded_corners = configfile.getBool("rounded_corners", 
true);
 
+       //menu numbers
+#ifndef HAVE_DBOX_HARDWARE
+       g_settings.menu_numbers_as_icons = 
configfile.getBool("menu_numbers_as_icons", true);
+#else
+       //we can paint number buttons in menus automatically without parameter, 
but it isn't a good idea for
+       //expensive menu painting with all possible numbers (like in mainmenu) 
on slower machines like dbox2.
+       g_settings.menu_numbers_as_icons = 
configfile.getBool("menu_numbers_as_icons", false);
+#endif
+
        //network
        char cfg_key[81];
        for(int i=0 ; i < NETWORK_NFS_NR_OF_ENTRIES ; i++)
@@ -975,6 +984,9 @@ void CNeutrinoApp::saveSetup()
        //corners
        configfile.setBool( "rounded_corners", g_settings.rounded_corners );
 
+       //menu numbers
+       configfile.setBool( "menu_numbers_as_icons", 
g_settings.menu_numbers_as_icons );
+
        //network
        char cfg_key[81];
        for(int i=0 ; i < NETWORK_NFS_NR_OF_ENTRIES ; i++)
diff --git a/tuxbox/neutrino/src/system/locals.h 
b/tuxbox/neutrino/src/system/locals.h
index bd6891e..d772f7b 100644
--- a/tuxbox/neutrino/src/system/locals.h
+++ b/tuxbox/neutrino/src/system/locals.h
@@ -1109,6 +1109,7 @@ typedef enum
        LOCALE_OSDSETTINGS_INFOBAR_VIRTUAL_ZAP_MODE,
        LOCALE_OSDSETTINGS_INFOVIEWER_RADIOTEXT,
        LOCALE_OSDSETTINGS_INFOVIEWER_SUBCHAN_DISP_POS,
+       LOCALE_OSDSETTINGS_MENU_NUMBERS_AS_ICONS,
        LOCALE_OSDSETTINGS_ROUNDED_CORNERS,
        LOCALE_OSDSETTINGS_ROUNDED_CORNERS_OFF,
        LOCALE_OSDSETTINGS_ROUNDED_CORNERS_ON,
diff --git a/tuxbox/neutrino/src/system/locals_intern.h 
b/tuxbox/neutrino/src/system/locals_intern.h
index a19ea99..47a6218 100644
--- a/tuxbox/neutrino/src/system/locals_intern.h
+++ b/tuxbox/neutrino/src/system/locals_intern.h
@@ -1109,6 +1109,7 @@ const char * locale_real_names[] =
        "osdsettings.infobar_virtual_zap_mode",
        "osdsettings.infoviewer.radiotext",
        "osdsettings.infoviewer.subchan_disp_pos",
+       "osdsettings.menu_numbers_as_icons",
        "osdsettings.rounded_corners",
        "osdsettings.rounded_corners_off",
        "osdsettings.rounded_corners_on",
diff --git a/tuxbox/neutrino/src/system/settings.h 
b/tuxbox/neutrino/src/system/settings.h
index 5ba4f12..5651d8b 100644
--- a/tuxbox/neutrino/src/system/settings.h
+++ b/tuxbox/neutrino/src/system/settings.h
@@ -186,6 +186,9 @@ struct SNeutrinoSettings
        //corners
        int rounded_corners;
 
+       //menu numbers
+       int     menu_numbers_as_icons;
+
        //network
 #define NETWORK_NFS_NR_OF_ENTRIES 8
        std::string network_nfs_ip[NETWORK_NFS_NR_OF_ENTRIES];

commit 149ec5eb1e9cad174d41a27fa5e9380e5d0ceca3
Author: Christian Schuett <gaucho...@hotmail.com>
Date:   Sat Nov 29 20:27:38 2014 +0100

    sectionsd: disable currently unused VPS/PDC code
    
    Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/neutrino/daemons/sectionsd/SIevents.cpp 
b/tuxbox/neutrino/daemons/sectionsd/SIevents.cpp
index ff4a644..08cd50f 100644
--- a/tuxbox/neutrino/daemons/sectionsd/SIevents.cpp
+++ b/tuxbox/neutrino/daemons/sectionsd/SIevents.cpp
@@ -108,7 +108,9 @@ SIevent::SIevent(const SIevent &e)
        ratings=e.ratings;
        linkage_descs=e.linkage_descs;
        running=e.running;
+#ifdef ENABLE_PDC
        vps = e.vps;
+#endif
        table_id = e.table_id;
 }
 
diff --git a/tuxbox/neutrino/daemons/sectionsd/SIevents.hpp 
b/tuxbox/neutrino/daemons/sectionsd/SIevents.hpp
index 6125550..8c6b187 100644
--- a/tuxbox/neutrino/daemons/sectionsd/SIevents.hpp
+++ b/tuxbox/neutrino/daemons/sectionsd/SIevents.hpp
@@ -89,6 +89,7 @@ struct descr_linkage_header {
        unsigned linkage_type                   : 8;
 } __attribute__ ((packed)) ;
 
+#ifdef ENABLE_PDC
 struct descr_pdc_header {
        unsigned descriptor_tag                 : 8;
        unsigned descriptor_length              : 8;
@@ -96,6 +97,7 @@ struct descr_pdc_header {
        unsigned pil1                           : 8;
        unsigned pil2                           : 8;
 } __attribute__ ((packed)) ;
+#endif
 
 class SIlinkage {
 public:
@@ -401,7 +403,9 @@ public:
                original_network_id = 0;
                transport_stream_id = 0;
                eventID    = 0;
+#ifdef ENABLE_PDC
                vps = 0;
+#endif
                table_id = 0xFF; /* 0xFF means "not set" */
                running = 0;
 //      dauer=0;
@@ -443,7 +447,9 @@ public:
     SIparentalRatings ratings;
     SIlinkage_descs linkage_descs;
     SItimes times;
+#ifdef ENABLE_PDC
     time_t vps;
+#endif
     unsigned char table_id;
     // Der Operator zum sortieren
     bool operator < (const SIevent& e) const {
diff --git a/tuxbox/neutrino/daemons/sectionsd/SIsections.cpp 
b/tuxbox/neutrino/daemons/sectionsd/SIsections.cpp
index 2c8629c..ef7be8f 100644
--- a/tuxbox/neutrino/daemons/sectionsd/SIsections.cpp
+++ b/tuxbox/neutrino/daemons/sectionsd/SIsections.cpp
@@ -160,6 +160,7 @@ void SIsectionEIT::parseLinkageDescriptor(const char *buf, 
SIevent &e, unsigned
        }
 }
 
+#ifdef ENABLE_PDC
 void SIsectionEIT::parsePDCDescriptor(const char *buf, SIevent &e, unsigned 
maxlen)
 {
        if (maxlen >= sizeof(struct descr_pdc_header))
@@ -183,6 +184,7 @@ void SIsectionEIT::parsePDCDescriptor(const char *buf, 
SIevent &e, unsigned maxl
                // fprintf(stderr, "SIsectionEIT::parsePDCDescriptor: vps: %ld 
%s", e.vps, ctime(&e.vps));
        }
 }
+#endif
 
 void SIsectionEIT::parseComponentDescriptor(const char *buf, SIevent &e, 
unsigned maxlen)
 {
@@ -476,8 +478,10 @@ void SIsectionEIT::parseDescriptors(const char *des, 
unsigned len, SIevent &e)
                        parseParentalRatingDescriptor((const char *)desc, e, 
len);
                else if(desc->descriptor_tag==0x4A)
                        parseLinkageDescriptor((const char *)desc, e, len);
+#ifdef ENABLE_PDC
                else if(desc->descriptor_tag==0x69)
                        parsePDCDescriptor((const char *)desc, e, len);
+#endif
                if((unsigned)(desc->descriptor_length+2)>len)
                        break;
                len-=desc->descriptor_length+2;
diff --git a/tuxbox/neutrino/daemons/sectionsd/SIsections.hpp 
b/tuxbox/neutrino/daemons/sectionsd/SIsections.hpp
index 3e7c332..52eb688 100644
--- a/tuxbox/neutrino/daemons/sectionsd/SIsections.hpp
+++ b/tuxbox/neutrino/daemons/sectionsd/SIsections.hpp
@@ -539,7 +539,9 @@ protected:
        void parseComponentDescriptor(const char *buf, SIevent &e, unsigned 
maxlen);
        void parseParentalRatingDescriptor(const char *buf, SIevent &e, 
unsigned maxlen);
        void parseLinkageDescriptor(const char *buf, SIevent &e, unsigned 
maxlen);
+#ifdef ENABLE_PDC
        void parsePDCDescriptor(const char *buf, SIevent &e, unsigned maxlen);
+#endif
 #ifdef ENABLE_FREESATEPG
        std::string freesatHuffmanDecode(std::string input);
 #endif
diff --git a/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp 
b/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp
index 4fd90e6..893fc20 100644
--- a/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp
+++ b/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp
@@ -786,7 +786,9 @@ static void addEvent(const SIevent &evt, const time_t zeit, 
bool cn = false)
                si->second->userClassification = evt.userClassification;
                si->second->itemDescription = evt.itemDescription;
                si->second->item = evt.item;
+#ifdef ENABLE_PDC
                si->second->vps = evt.vps;
+#endif
                if (!evt.getExtendedText().empty() &&
                                (evt.times.begin()->startzeit < zeit + 
secondsExtendedTextCache))
                        
si->second->setExtendedText("OFF",evt.getExtendedText().c_str());

commit 08c0889ae2944cdc2ce974b6b1bb42a7fbd08503
Author: Christian Schuett <gaucho...@hotmail.com>
Date:   Sat Nov 29 20:07:28 2014 +0100

    sectionsd: avoid comparing iterators from different containers
    
    Signed-off-by: Christian Schuett <gaucho...@hotmail.com>
    Signed-off-by: GetAway <get-a...@t-online.de>

diff --git a/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp 
b/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp
index a1e7c83..4fd90e6 100644
--- a/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp
+++ b/tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp
@@ -1924,7 +1924,6 @@ static const SIevent &findNextSIevent(const event_id_t 
uniqueKey, SItime &zeit)
        if (eFirst != mySIeventsOrderUniqueKey.end())
        {
                SItimes::iterator nextnvodtimes = eFirst->second->times.end();
-               SItimes::iterator nexttimes = eFirst->second->times.end();
 
                if (eFirst->second->times.size() > 1)
                {
@@ -1939,6 +1938,8 @@ static const SIevent &findNextSIevent(const event_id_t 
uniqueKey, SItime &zeit)
                }
 
                MySIeventsOrderFirstEndTimeServiceIDEventUniqueKey::iterator 
eNext;
+               SItimes::iterator nexttimes;
+               bool nexttimes_valid = false;
 
                //if ((nextnvodtimes != eFirst->second->times.begin()) && 
(nextnvodtimes != eFirst->second->times.end())) {
                        //Startzeit not first - we can't use the ordered list...
@@ -1947,7 +1948,7 @@ static const SIevent &findNextSIevent(const event_id_t 
uniqueKey, SItime &zeit)
                                if ((*e)->get_channel_id() == 
eFirst->second->get_channel_id()) {
                                        for (SItimes::iterator t = 
(*e)->times.begin(); t != (*e)->times.end(); ++t) {
                                                if (t->startzeit > 
zeit.startzeit) {
-                                                       if (nexttimes != 
eFirst->second->times.end()) {
+                                                       if (nexttimes_valid) {
                                                                if 
(t->startzeit < nexttimes->startzeit) {
                                                                        eNext = 
e;
                                                                        
nexttimes = t;
@@ -1956,6 +1957,7 @@ static const SIevent &findNextSIevent(const event_id_t 
uniqueKey, SItime &zeit)
                                                        else {
                                                                eNext = e;
                                                                nexttimes = t;
+                                                               nexttimes_valid 
= true;
                                                        }
                                                }
                                        }
@@ -1964,19 +1966,22 @@ static const SIevent &findNextSIevent(const event_id_t 
uniqueKey, SItime &zeit)
 /*             } else {
                        //find next normal
                        eNext = 
mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.find(eFirst->second);
-                       eNext++;
+                       ++eNext;
 
                        if (eNext != 
mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.end())
                        {
                                if ((*eNext)->get_channel_id() == 
eFirst->second->get_channel_id())
+                               {
                                        nexttimes = (*eNext)->times.begin();
+                                       nexttimes_valid = true;
+                               }
                        }
                }
 */
                if (nextnvodtimes != eFirst->second->times.end())
                        ++nextnvodtimes;
                //Compare
-               if (nexttimes != eFirst->second->times.end()) {
+               if (nexttimes_valid) {
                        if (nextnvodtimes != eFirst->second->times.end()) {
                                //both times are set - take the first
                                if (nexttimes->startzeit < 
nextnvodtimes->startzeit) {

-----------------------------------------------------------------------

Summary of changes:
 tuxbox/neutrino/daemons/nhttpd/web/Y_Version.txt   |    4 +-
 .../daemons/nhttpd/web/Y_neutrino_Blocks.txt       |   18 ++++
 tuxbox/neutrino/daemons/sectionsd/SIevents.cpp     |    2 +
 tuxbox/neutrino/daemons/sectionsd/SIevents.hpp     |    6 ++
 tuxbox/neutrino/daemons/sectionsd/SIsections.cpp   |    4 +
 tuxbox/neutrino/daemons/sectionsd/SIsections.hpp   |    2 +
 tuxbox/neutrino/daemons/sectionsd/sectionsd.cpp    |   15 +++-
 tuxbox/neutrino/data/locale/deutsch.locale         |    7 +-
 tuxbox/neutrino/data/locale/english.locale         |    9 +-
 tuxbox/neutrino/src/gui/drive_setup.cpp            |   46 +++++-----
 tuxbox/neutrino/src/gui/epg_menu.cpp               |    8 +-
 tuxbox/neutrino/src/gui/epgplus.cpp                |   25 +++---
 tuxbox/neutrino/src/gui/eventlist.cpp              |   10 +-
 tuxbox/neutrino/src/gui/keybind_setup.cpp          |    2 +-
 tuxbox/neutrino/src/gui/mediaplayer_setup.cpp      |    8 +-
 tuxbox/neutrino/src/gui/miscsettings_menu.cpp      |    8 +-
 tuxbox/neutrino/src/gui/moviebrowser.cpp           |   88 +++++++++---------
 tuxbox/neutrino/src/gui/moviebrowser.h             |    2 +-
 tuxbox/neutrino/src/gui/movieplayer_menu.cpp       |   12 ++--
 tuxbox/neutrino/src/gui/movieplayer_setup.cpp      |    2 +-
 tuxbox/neutrino/src/gui/network_setup.cpp          |   18 ++--
 tuxbox/neutrino/src/gui/neutrino_menu.cpp          |   28 +++---
 tuxbox/neutrino/src/gui/osd_setup.cpp              |   30 ++++---
 tuxbox/neutrino/src/gui/osdlang_setup.cpp          |   15 +++-
 tuxbox/neutrino/src/gui/personalize.cpp            |   14 ++--
 tuxbox/neutrino/src/gui/proxyserver_setup.cpp      |    6 +-
 tuxbox/neutrino/src/gui/record_setup.cpp           |   12 ++--
 tuxbox/neutrino/src/gui/sambaserver_setup.cpp      |    4 +-
 tuxbox/neutrino/src/gui/scan_setup.cpp             |   12 ++--
 tuxbox/neutrino/src/gui/software_update.cpp        |   12 ++--
 tuxbox/neutrino/src/gui/subchannel_select.cpp      |    4 +-
 tuxbox/neutrino/src/gui/themes.cpp                 |    2 +-
 tuxbox/neutrino/src/gui/timerlist.cpp              |    4 +-
 tuxbox/neutrino/src/gui/video_setup.cpp            |    2 +-
 tuxbox/neutrino/src/gui/widget/menue.cpp           |   65 +++++++++++---
 tuxbox/neutrino/src/gui/widget/menue.h             |    3 +
 tuxbox/neutrino/src/neutrino.cpp                   |   12 +++
 tuxbox/neutrino/src/system/localize.cpp            |    2 +-
 tuxbox/neutrino/src/system/locals.h                |    1 +
 tuxbox/neutrino/src/system/locals_intern.h         |    1 +
 tuxbox/neutrino/src/system/settings.h              |    3 +
 tuxbox/plugins/tuxmail/daemon/tuxmaild.c           |   94 +++++++++++++-------
 tuxbox/plugins/tuxmail/daemon/tuxmaild.h           |   38 ++++----
 tuxbox/plugins/tuxmail/tuxmail.c                   |   20 ++++-
 44 files changed, 413 insertions(+), 267 deletions(-)


-- 
Tuxbox-GIT: apps

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
Tuxbox-cvs-commits mailing list
Tuxbox-cvs-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tuxbox-cvs-commits

Reply via email to