Menüs aufgeräumt

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: Menüs aufgeräumt

Beitrag von bellum »

dbt hat geschrieben:Das und noch einige andere Sachen gerade korrigiert. Die Einträge für die Pinaktivierung für Einstellungen und Service fehlten auch noch
Ups, kann es sein dass da noch etwas schief ist?
Habe heute morgen komplett frisch ausgecheckt und bekomme das hier...
Gestern Abend mit dem vorherigen Stand liefs noch durch...

Code: Alles auswählen

dbox2/cdkroot/include/tuxbox/mpegtools   -I../../lib -I/home/bellum/tuxbox/dbox2/cdkroot/include -I/home/bellum/tuxbox/tuxbox-cvs/driver/include     -I/home/bellum/tuxbox/tuxbox-cvs/driver/dvb/include -I/home/bellum/tuxbox/tuxbox-cvs/driver/include -Wextra -Wshadow  -Wall -pipe -Os -MT neutrino_menu.o -MD -MP -MF .deps/neutrino_menu.Tpo -c -o neutrino_menu.o neutrino_menu.cpp
neutrino_menu.cpp: In member function `void CNeutrinoApp::InitMenuMain()':
neutrino_menu.cpp:234: error: 'struct SNeutrinoSettings' has no member named 'personalize_upnpbrowser'
make[5]: *** [neutrino_menu.o] Error 1
make[5]: Leaving directory `/home/bellum/tuxbox/cvs/cvs_101017/apps/tuxbox/neutrino/src/gui'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/bellum/tuxbox/cvs/cvs_101017/apps/tuxbox/neutrino/src/gui'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/bellum/tuxbox/cvs/cvs_101017/apps/tuxbox/neutrino/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/bellum/tuxbox/cvs/cvs_101017/apps/tuxbox/neutrino'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/bellum/tuxbox/cvs/cvs_101017/apps/tuxbox/neutrino'
make: *** [neutrino] Error 2 
Gruß bellum
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Menüs aufgeräumt

Beitrag von rhabarber1848 »

Ich wollte gerade die selbe Fehlermeldung posten, ich baue ohne upnp-Support, Fix:

Code: Alles auswählen

--- apps/tuxbox/neutrino/src/system/settings.h    2010-10-16 20:14:22.000000000 +0200
+++ apps/tuxbox/neutrino/src/system/settings.h    2010-10-17 12:36:56.000000000 +0200
@@ -213,9 +213,7 @@
     int personalize_esound;
     int personalize_movieplayer;
     int personalize_pictureviewer;
-#ifdef ENABLE_UPNP
     int personalize_upnpbrowser;
-#endif
     int personalize_scripts;
     int personalize_settings;
     int personalize_service;
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

Das wäre zwar einfach, aber wenn man es genau machen will liegts daran:

Code: Alles auswählen

neutrino_menu.cpp:234: error: 'struct SNeutrinoSettings' has no member named 'personalize_upnpbrowser'
und wenn man's noch genauer nimmt, müsste man es dann hier und da eigentlich auch noch anpassen. da fliegen einem aber die grausamen #ifdefs gewaltig um die Ohren :evil: Hier mal eine Auswahl.

Code: Alles auswählen

Index: src/neutrino.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/neutrino.cpp,v
retrieving revision 1.1048
diff -U3 -r1.1048 neutrino.cpp
--- src/neutrino.cpp	16 Oct 2010 18:14:22 -0000	1.1048
+++ src/neutrino.cpp	17 Oct 2010 11:24:33 -0000
@@ -549,11 +549,21 @@
 	g_settings.personalize_reboot = configfile.getInt32("personalize_reboot", CPersonalizeGui::PERSONALIZE_MODE_VISIBLE);
 
 	g_settings.personalize_games = configfile.getInt32("personalize_games", CPersonalizeGui::PERSONALIZE_MODE_VISIBLE);
+#if ENABLE_AUDIOPLAYER
 	g_settings.personalize_audioplayer = configfile.getInt32("personalize_audioplayer", CPersonalizeGui::PERSONALIZE_MODE_VISIBLE);
+#if ENABLE_INTERNETRADIO	
 	g_settings.personalize_inetradio = configfile.getInt32("personalize_inetradio", CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE);
+#endif
+#endif
+#if ENABLE_ESOUND
 	g_settings.personalize_esound = configfile.getInt32("personalize_esound", CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE);
+#endif
+#ifdef ENABLE_MOVIEPLAYER
 	g_settings.personalize_movieplayer = configfile.getInt32("personalize_movieplayer", CPersonalizeGui::PERSONALIZE_MODE_VISIBLE);
+#endif
+#ifdef ENABLE_PICTUREVIEWER
 	g_settings.personalize_pictureviewer = configfile.getInt32("personalize_pictureviewer", CPersonalizeGui::PERSONALIZE_MODE_VISIBLE);
+#endif
 #ifdef ENABLE_UPNP
  	g_settings.personalize_upnpbrowser = configfile.getInt32("personalize_upnpbrowser", CPersonalizeGui::PERSONALIZE_MODE_VISIBLE);
 #endif
Index: src/gui/neutrino_menu.cpp
===================================================================
RCS file: /cvs/tuxbox/apps/tuxbox/neutrino/src/gui/neutrino_menu.cpp,v
retrieving revision 1.119
diff -U3 -r1.119 neutrino_menu.cpp
--- src/gui/neutrino_menu.cpp	16 Oct 2010 18:14:22 -0000	1.119
+++ src/gui/neutrino_menu.cpp	17 Oct 2010 11:24:33 -0000
@@ -226,12 +226,26 @@
 
 #if defined(ENABLE_AUDIOPLAYER) || defined(ENABLE_INTERNETRADIO) || defined(ENABLE_ESD) || defined(ENABLE_MOVIEPLAYER) || defined(ENABLE_PICTUREVIEWER) || defined(ENABLE_UPNP)
 	// separator
-	if (	g_settings.personalize_audioplayer	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
-		g_settings.personalize_inetradio	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
-		g_settings.personalize_esound		== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
-		g_settings.personalize_movieplayer	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
-		g_settings.personalize_pictureviewer	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
-		g_settings.personalize_upnpbrowser	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE)
+	if (
+	#if ENABLE_AUDIOPLAYER	
+			g_settings.personalize_audioplayer	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE 
+	#if ENABLE_INTERNETRADIO
+		&& 	g_settings.personalize_inetradio	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE
+	#endif
+	#endif
+	#if ENABLE_ESD
+		&&	g_settings.personalize_esound		== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE
+	#endif
+	#ifdef ENABLE_MOVIEPLAYER
+		&&	g_settings.personalize_movieplayer	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE
+	#endif
+	#ifdef ENABLE_PICTUREVIEWER
+		&&	g_settings.personalize_pictureviewer	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE
+	#endif
+	#if ENABLE_UPNP
+		&&	g_settings.personalize_upnpbrowser	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE
+	#endif 
+		)
 		;// Stop seperator from appearing when menu entries have been hidden
 	else
 		personalize->addSeparator(menu, NONEXISTANT_LOCALE, false); //don't show this separator in personal menu
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

Habs grad geändert, aber unter dem Vorbehalt, dass man das mal anders Lösen sollte!
bellum
bbs-Maintainer
Beiträge: 282
Registriert: Montag 23. Oktober 2006, 22:13

Re: Menüs aufgeräumt

Beitrag von bellum »

dbt hat geschrieben:Habs grad geändert, aber unter dem Vorbehalt, dass man das mal anders Lösen sollte!
Jetzt hats auch in meinem YADD mit (deaktiviertem UPNP-Browser) durchgebaut...
... und wow das ist ja alles wirklich klasse geworden.
Ich kannte ja bisher nur den Stand vom 11.04.2010, da hat sich ja schon einiges positiv verändert und sieht richtig klasse aus.
Well done! :up:

Gruß bellum
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

Ich habe mal einige Stellen, an denen die Startposition eines Fensters direkt berechnet wird, durch getScreenStartX und getScreenStartY ersetzt. Das ganze ist aber ungetestet.

Link entfernt, da Patch im CVS
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

Da sind definitiv noch mehr Stellen wo man das ersetzen kann.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

Das ist richtig, aber irgendwo muss man ja mal anfangen. Das kann doch ruhig auch Stück für Stück ins CVS wandern, oder nicht?
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

klar
Edit: Hier hatte ich das schon mal wegen der WSS-Umschaltung vorweggenommen.
http://www.tuxbox.org/ulc/index.p ... y=Patches&
Ghostbob
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 7. September 2001, 00:00

Re: Menüs aufgeräumt

Beitrag von Ghostbob »

Nur zur Info:
Bei mir ist beim Wechsel von dem JTG-Image von 15.10.200 auf 29.10.2010 aufgefallen, dass in der Personalierung der Jugendschutz fehlt.

MFG Ghostbob
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

Bei mir sieht's aus wie auf dem Bild im Wiki. Komisch, dass es bei dir anders ist. :gruebel: Ich nutze auch den JtG-Snap vom 29.10.2010.

http://wiki.tuxbox.org/wiki/index.php/B ... ttings.png
Ghostbob
Neugieriger
Neugieriger
Beiträge: 14
Registriert: Freitag 7. September 2001, 00:00

Re: Menüs aufgeräumt

Beitrag von Ghostbob »

Ich habe den Jugendschutz als einzigste als "nicht sichtbar" eingestellt.

Im JTG 15.10.2010 wird der Jugendschutz als "nicht sichtbar" angezeigt

Im JTG 29.10.2010 ist der Jugendschutz verschwunden.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

@dbt

Ich glaube, dass in neutrino_menu.cpp von Zeile 297 bis 310 noch der Wurm drin steckt. Der Fall "g_settings.personalize_youth == CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE" ist nicht abgedeckt und verursacht den beschriebenen Fehler, wenn ich das richtig sehe.

Edit: Nachdem ich jetzt ein wenig auf den Code geschaut habe, würde ich sagen, dass der folgende Fix helfen könnte. Probiert habe ich das aber nicht.
Link entfernt, da Patch im CVS
Zuletzt geändert von Gaucho316 am Freitag 5. November 2010, 20:29, insgesamt 1-mal geändert.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

:dash: Ja, das ist sowas wie der abgesägter Ast auf dem man sitzt, kann es aber im Moment nicht testen oder comitten. Erst frühesetens am Wochenende, vlt. kanns aber jemand anders kurzfristig machen.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

Nutzt jemand in der Personalisierung die Möglichkeit "sichtbar mit PIN"? Funktioniert das überhaupt noch nach den letzten Änderungen von dbt? Ich glaube nämlich, dass das nicht mehr geht. Vielleicht habe ich aber auch nur den Code falsch verstanden, als ich ihn mir gestern angesehen habe. :gruebel:
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

Gaucho316 hat geschrieben:Nutzt jemand in der Personalisierung die Möglichkeit "sichtbar mit PIN"?... Ich glaube nämlich, dass das nicht mehr geht. ... :gruebel:
Habe das gerade korrigiert, der dafür notwendige Eintrag hatte tatsächlich noch gefehlt :dash: Nebenbei habe ich auch noch die Behandlung des Esoundeintrags etwas optimiert. Der wird im Hauptmenü wie gehabt nicht angezeigt, aber dafür im Personalisierungsmenü jedoch deaktiviert dargestellt.
Ich hoffe das ist so vertretbar. :wink:
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

Wäre es nicht sinnvoll, das Spiele-Menü auch nur anzuzeigen, wenn Spiele vorhanden sind, also so, wie beim Skripte-Menü?
dbt hat geschrieben:Nebenbei habe ich auch noch die Behandlung des Esoundeintrags etwas optimiert. Der wird im Hauptmenü wie gehabt nicht angezeigt, aber dafür im Personalisierungsmenü jedoch deaktiviert dargestellt.
Wäre das nicht auch was für das Spiele- und das Skripte-Menü?
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

Ja, das wäre konsequent :gruebel:
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

@dbt

Kann es sein, dass du mit deinen letzten Änderungen in "personalize.cpp" ein Speicherleck geschaffen hast? In Zeile 373 legst du mit "new" einen "CLockedMenuForwarder" an, verlierst dabei aber die Verbindung zum übergebenen "CMenuForwarder". Fehlt da nicht irgendwo ein "delete"? :gruebel:
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

Auf den ersten Blick könnte man es denken, aber eigentlich wird nur die vom Parameter übergebene Adresse, die ja nur durchgereicht wird, mit dem CLockedForwarder aufgefüllt. Der eigentliche Forwarder wird an der Stelle ja nicht mehr gebraucht und nur ersetzt. Ein delete lässt's aber krachen. Genauer kann ich es aber auch nicht prüfen, aber jedes Wald und Wiesenchecking-Tool würde da wohl schon zumindest ein possible Memleak anzeigen.
tomworld
Einsteiger
Einsteiger
Beiträge: 247
Registriert: Sonntag 24. August 2008, 03:44

Re: Menüs aufgeräumt

Beitrag von tomworld »

hi,

das mit den Spielen habe ich so wie "früher" gelöst:

Code: Alles auswählen

	//games
	if (g_PluginList->hasPlugin(CPlugins::P_TYPE_GAME))
	personalize->addItem(&menu, new CMenuForwarder(LOCALE_MAINMENU_GAMES, true, NULL, new CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME), "", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE), &g_settings.personalize_games);
halt nur die Zeile mit der Abfrage ob Spiele vorhanden sind und es funktioniert auch so bei mir

was nicht funktioniert ist das sperren per Pin von einzelnen Menüpunkten über die Personalisierung, in der Art, wie für Einstellungen und Service

mfg
Tom
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

so gehts wie beim esound Eintrag:

Code: Alles auswählen

@@ -173,11 +173,15 @@ void CNeutrinoApp::InitMenuMain()
 
 	//scart
 	personalize->addItem(&menu, new CMenuForwarder(LOCALE_MAINMENU_SCARTMODE, true, NULL, this, "scart", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW), &g_settings.personalize_scartmode);
 
 	//games
-	personalize->addItem(&menu, new CMenuForwarder(LOCALE_MAINMENU_GAMES, true, NULL, new CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME), "", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE), &g_settings.personalize_games);
+	bool show_games = g_PluginList->hasPlugin(CPlugins::P_TYPE_GAME);
+	//don't show games item, if no game installed
+	if (!show_games)
+		g_settings.personalize_games = CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE;
+	personalize->addItem(&menu, new CMenuForwarder(LOCALE_MAINMENU_GAMES, show_games, NULL, new CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME), "", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE), &g_settings.personalize_games);
 
 	//separator	
 	if (	g_settings.personalize_tvmode		== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
 		g_settings.personalize_radiomode	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
 		g_settings.personalize_scartmode	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE &&
was nicht funktioniert ist das sperren per Pin von einzelnen Menüpunkten über die Personalisierung, in der Art, wie für Einstellungen und Service
Wenn du das haben willst, musst du nur die Parameter setzen, nur hast du dann einen deaktivierten Eintrag im Hauptmenu, wenn keine installiert sind. Damit sollte man leben können.

Code: Alles auswählen

@@ -173,11 +173,15 @@ void CNeutrinoApp::InitMenuMain()
 
 	//scart
 	personalize->addItem(&menu, new CMenuForwarder(LOCALE_MAINMENU_SCARTMODE, true, NULL, this, "scart", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW), &g_settings.personalize_scartmode);
 
 	//games
-	personalize->addItem(&menu, new CMenuForwarder(LOCALE_MAINMENU_GAMES, true, NULL, new CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME), "", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE), &g_settings.personalize_games);
+	bool show_games = g_PluginList->hasPlugin(CPlugins::P_TYPE_GAME);
+	//don't show games item, if no game installed
+	if (!show_games)
+		g_settings.personalize_games = CPersonalizeGui::PROTECT_MODE_NOT_PROTECTED;
+	personalize->addItem(&menu, new CMenuForwarder(LOCALE_MAINMENU_GAMES, show_games, NULL, new CPluginList(LOCALE_MAINMENU_GAMES,CPlugins::P_TYPE_GAME), "", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE), &g_settings.personalize_games, false, CPersonalizeGui::PERSONALIZE_SHOW_AS_ACCESS_OPTION);
 
 	//separator	
 	if (	g_settings.personalize_tvmode		== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
 		g_settings.personalize_radiomode	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
 		g_settings.personalize_scartmode	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE &&
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

dbt hat geschrieben:Nebenbei habe ich auch noch die Behandlung des Esoundeintrags etwas optimiert. Der wird im Hauptmenü wie gehabt nicht angezeigt, aber dafür im Personalisierungsmenü jedoch deaktiviert dargestellt.
Ich habe mir das hier noch einmal durch den Kopf gehen lassen und habe folgenden Vorschlag. Im Hauptmenü werden die Menüpunkte "Spiele", "Esound" und "Skripte" nicht verborgen sondern nur ausgegraut, wenn keine Spiele bzw. Skripte vorhanden sind bzw. das ESD-Binary nicht vorhanden ist. In der Personalisierung wird nichts mehr ausgegraut und man kann die Hauptmenüpunkte bei Bedarf verbergen, wenn einen die ausgegrauten Menüeinträge stören. Was haltet ihr davon?
tomworld
Einsteiger
Einsteiger
Beiträge: 247
Registriert: Sonntag 24. August 2008, 03:44

Re: Menüs aufgeräumt

Beitrag von tomworld »

hi,

das Obere verstehe ich zwar nicht so :roll: , bin gerade noch beim erlernen von C++, da wie geschrieben es auch so bei mir mit den Spielen funktionierte, wie mit den Scripten (in Abwandlung)

aber der Rest funktionier jetzt einwandfrei :dafuer:

vielen Dank @dbt

PS. ich habe jetzt nicht bei jeden Menü in der Personalisierung ausprobiert mit der Pin-Vorsperre, denke aber es funktioniert auf Allen

mfg
Tom

//EDIT
ESD bau ich nicht mit
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

tomworld hat geschrieben:hi,

das Obere verstehe ich zwar nicht so :roll: , bin gerade noch beim erlernen von C++, da wie geschrieben es auch so bei mir mit den Spielen funktionierte, wie mit den Scripten (in Abwandlung)

aber der Rest funktionier jetzt einwandfrei :dafuer:

vielen Dank @dbt

PS. ich habe jetzt nicht bei jeden Menü in der Personalisierung ausprobiert mit der Pin-Vorsperre, denke aber es funktioniert auf Allen

mfg
Tom

//EDIT
ESD bau ich nicht mit
Naja, Sinn der Sache war ja, dass die Personalisierungsklasse unabhängig ist. So ist man jedenfalls flexibler und vermeidet ewig viele sich wiederholende Codeketten und trägt keine #ifdefs und sowas da rein, wie das mal der Fall war. Es besteht zwar noch Spielraum für Optimierungen und die Erweiterungsmöglichkeiten für noch weitergehende Menüanpassungen (z.B. benutzerdefinierte Reihenfolge), aber das sollte erst mal reichen.
Ich habe mir das hier noch einmal durch den Kopf gehen lassen und habe folgenden Vorschlag. Im Hauptmenü werden die Menüpunkte "Spiele", "Esound" und "Skripte" nicht verborgen sondern nur ausgegraut, wenn keine Spiele bzw. Skripte vorhanden sind bzw. das ESD-Binary nicht vorhanden ist. In der Personalisierung wird nichts mehr ausgegraut und man kann die Hauptmenüpunkte bei Bedarf verbergen, wenn einen die ausgegrauten Menüeinträge stören. Was haltet ihr davon?
Klingt gut.