Menüs aufgeräumt

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

Bei meinen letzten Code-Studien ist mir aufgefallen, dass die Membervariable "AlwaysAsk" der Klasse CLockedMenuForwarder überflüssig geworden ist. Diese wird sowieso an allen Stellen, an denen ein LockedMenuForwarder erzeugt wird, auf true gesetzt. Ich habe deshalb den Code der Klasse CLockedMenuForwarder vereinfacht. Im Prinzip habe ich mir die Änderungen vom 02.02.2003 angesehen und sie wieder rückgängig gemacht. Der Patch ist leider wieder ungetestet.

Patch entfernt
Zuletzt geändert von Gaucho316 am Dienstag 23. November 2010, 19:19, insgesamt 1-mal geändert.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Menüs aufgeräumt

Beitrag von rhabarber1848 »

Gaucho316 hat geschrieben:sondern nur ausgegraut, wenn keine Spiele bzw. Skripte vorhanden sind bzw. das ESD-Binary nicht vorhanden ist.
Ob das code-technisch einfacher ist, kann ich nicht beurteilen. Im Sinne des Erfinders (esd-Unterstützung) ist
das allerdings nicht. Wenn das esd-binary nicht da ist, soll in Neutrino nichts von esd-Unterstützung zu sehen
sein, unabhängig von Personalisierungseinstellungen.
tomworld
Einsteiger
Einsteiger
Beiträge: 247
Registriert: Sonntag 24. August 2008, 03:44

Re: Menüs aufgeräumt

Beitrag von tomworld »

:D

ich habe jetzt alle Menü mit einen Pin-Code darauf getestet, es funktioniert jetzt (Image am 09.11.2010 18:50 Uhr ausgescheckt und gebaut)

denke, das es auch ausreicht :up: und es "als erfüllt und abgehakt" bezeichnet werden kann :D

mit meinen Hinweiss, wie ich Spiele behandele, wenn keine da sind in der neutrino_menu.cpp, kann ich es so behandeln, wie mit nicht vorhandenen Scripten:

Code: Alles auswählen

   //games mit Pruefung ob Spiele-Plugins vorhanden
   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);
mfg
Tom
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

rhabarber1848 hat geschrieben:
Gaucho316 hat geschrieben:sondern nur ausgegraut, wenn keine Spiele bzw. Skripte vorhanden sind bzw. das ESD-Binary nicht vorhanden ist.
Wenn das esd-binary nicht da ist, soll in Neutrino nichts von esd-Unterstützung zu sehen sein, unabhängig von Personalisierungseinstellungen.
Schade, ich habe das wirklich für 'ne gute Idee gehalten, aber wenn das nicht gewünscht ist, muss es natürlich nicht sein. Konsequenterweise müsste dann aber im Medienwiedergabeeinstellungsmenü der Esound-Eintrag auch rausfliegen, wenn das ESD-Binary nicht vorhanden ist.


Edit: @dbt
dbt hat geschrieben:Nebenbei habe ich auch noch die Behandlung des Esoundeintrags etwas optimiert. Der wird im Hauptmenü wie gehabt nicht angezeigt, ...
Bist du dir sicher? Ich hab's jetzt nicht getestet, aber laut Code müsste "Esound" jetzt ausgegraut im Hauptmenü angezeigt werden, wenn das ESD-Binary nicht vorhanden ist und man den Esound-Eintrag in der Personalisierung auf "sichtbar" gestellt hat. Oder liege ich falsch? :gruebel:
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Menüs aufgeräumt

Beitrag von rhabarber1848 »

Gaucho316 hat geschrieben: Konsequenterweise müsste dann aber im Medienwiedergabeeinstellungsmenü der Esound-Eintrag auch rausfliegen, wenn das ESD-Binary nicht vorhanden ist.
So hat es zu dem Zeitpunkt funktioniert, als ich die esd-Patches committed habe.
Ob das heute noch der Fall ist, kann ich nicht sagen, da ich Images immer mit
esd-Support erstelle.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

Bist du dir sicher? Ich hab's jetzt nicht getestet, aber laut Code müsste "Esound" jetzt ausgegraut im Hauptmenü angezeigt werden, wenn das ESD-Binary nicht vorhanden ist und man den Esound-Eintrag in der Personalisierung auf "sichtbar" gestellt hat. Oder liege ich falsch? :gruebel:
Hast schon recht, aber ich ging von einem jungfäulichem Image aus, dann ist das weg. Nur im Personalisierungsmenü sollte es nur informativ, also ausgegraut sein und kann auch nicht geändert werden und wenn es nicht mit gebaut wurde, also das #ifdef false ist, dann ist es in jedem Fall, also auch im Personalisierungsmenü so wie es rhabarber gesagt hat komplett weg.
Wenn das esd-binary nicht da ist, soll in Neutrino nichts von esd-Unterstützung zu sehen
sein, unabhängig von Personalisierungseinstellungen.
In dem Beispiel von hier mit den Games ist es aber so gelöst, dass es wirklich nicht mehr zum Vorschein kommt, weil dort die Einstellung zurückgesetzt wird.

Code: Alles auswählen

g_settings.personalize_games = CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE;
Mann könnte es noch optimieren, weitere Vorschläge?
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Menüs aufgeräumt

Beitrag von rhabarber1848 »

Mein Gedanke beim esd-Patch war die Nachrüstbarkeit von /var/bin/esd.
Ein Image mit vollem esd-Support, ohne esd-binary, soll genauso aussehen
wie ein Image ohne esd-Support. Wenn die esd-binary dann nachgerüstet
wird, sollen die esd-Menüpunkte automatisch erscheinen.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

dbt hat geschrieben:Hast schon recht, aber ich ging von einem jungfäulichem Image aus, dann ist das weg.
Ahh ok, mir war entgangen, dass personalize_esound standardmäßig auf PERSONALIZE_MODE_NOTVISIBLE steht. Ich dachte, dass hätte ich selbst so konfiguriert. Dann bedeutet das aber, dass es jetzt schon so ist, dass Esound nicht automatisch auftaucht.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

Gaucho316 hat geschrieben:[... Dann bedeutet das aber, dass es jetzt schon so ist, dass Esound nicht automatisch auftaucht.
Ja eigentlich ist alles wie vorher, man muss es auf sichtbar stellen, wenn man es nutzen will, auch wenn es drin ist. Daran hat sich so nicht wirklich etwas geändert. :wink: Anderer Weg, gleiches Ziel...
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

dbt hat geschrieben:In dem Beispiel von hier mit den Games ist es aber so gelöst, dass es wirklich nicht mehr zum Vorschein kommt, weil dort die Einstellung zurückgesetzt wird.

Code: Alles auswählen

g_settings.personalize_games = CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE;
Vom automatischen Ändern von Personalisierungseinstellungen während der Hauptmenüerstellung halte ich nichts. Das Ausgrauen und händische Unsichtbarmachen nicht benötigter Einträge fände ich besser. Vielleicht können wir ja rhabarber1848 doch noch überzeugen. Der aktuelle Stand ist ja auch nicht mehr so, wie er es erwartet.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Menüs aufgeräumt

Beitrag von rhabarber1848 »

Gaucho316 hat geschrieben:Vielleicht können wir ja rhabarber1848 doch noch überzeugen. Der aktuelle Stand ist ja auch nicht mehr so, wie er es erwartet.
Ich schaue es mir noch mal an und melde mich.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

Man könnte auch folgendes machen: In Zeile 441 von personalize.cpp müsste noch "v_item[ i ].menuItem->active" reingebastelt werden, so dass ein deaktivierter Menüpunkt tatsächlich nicht nur ausgegraut sondern gar nicht gezeichnet wird. Dann kann man auch das Ausgrauen in der Personalisierung drin lassen. Dann sollte noch "personalize_esound" standardmäßig auf PERSONALIZE_MODE_VISIBLE stehen. Nun müsste es so sein, wie von rhabarber1848 gedacht und gewünscht. So kann man das dann auch für Spiele und Skripte machen. Ich hoffe, dass ich es verständlich genug beschrieben habe. Probiert habe ich das allerdings nicht, sondern mir nur überlegt.


Edit: Ein (ungetesteter) Code sagt mehr als tausend Worte:
Link entfernt, da Patch im CVS


Edit: Ich habe den Patch eben aktualisiert und das hier mit eingebaut.
Konsequenterweise müsste dann aber im Medienwiedergabeeinstellungsmenü der Esound-Eintrag auch rausfliegen, wenn das ESD-Binary nicht vorhanden ist.


Edit: Ich habe die 2 Patches, also den aus diesem Posting und den aus dem Posting weiter oben, endlich testen können. Sie funktionieren und können, wenn nichts dagegen spricht, ins CVS eingecheckt werden.
Zuletzt geändert von Gaucho316 am Donnerstag 18. November 2010, 22:05, insgesamt 2-mal geändert.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Menüs aufgeräumt

Beitrag von GetAway »

@dbt

Ich muss hier eine Fehlfunktion von personalize->addSeparator(menu); feststellen.

Werden Menüpunkte auf nicht sichtbar gestellt, so dass dadurch in den Menü's auch die Sepatorline
verschwindet, so verschwinden diese ebenfalls im Personalisierungsmenü. Da sollten sie doch erhalten bleiben,
da sich das Personalisierungsmenü ja nie ändert.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

GetAway hat geschrieben:...
Werden Menüpunkte auf nicht sichtbar gestellt, so dass dadurch in den Menü's auch die Sepatorline
verschwindet, so verschwinden diese ebenfalls im Personalisierungsmenü. Da sollten sie doch erhalten bleiben,
da sich das Personalisierungsmenü ja nie ändert.
Danke für die Info, sollte jetzt gehen.
Gaucho316 hat geschrieben:Man könnte auch folgendes machen: In Zeile 441 von personalize.cpp müsste noch "v_item[ i ].menuItem->active" reingebastelt werden, so dass ein deaktivierter Menüpunkt tatsächlich nicht nur ausgegraut sondern gar nicht gezeichnet wird. Dann kann man auch das Ausgrauen in der Personalisierung drin lassen. Dann sollte noch "personalize_esound" standardmäßig auf PERSONALIZE_MODE_VISIBLE stehen. Nun müsste es so sein, wie von rhabarber1848 gedacht und gewünscht. So kann man das dann auch für Spiele und Skripte machen. Ich hoffe, dass ich es verständlich genug beschrieben habe. Probiert habe ich das allerdings nicht, sondern mir nur überlegt.


Edit: Ein (ungetesteter) Code sagt mehr als tausend Worte:
Link entfernt, da Patch im CVS


Edit: Ich habe den Patch eben aktualisiert und das hier mit eingebaut.
Zitat:
Konsequenterweise müsste dann aber im Medienwiedergabeeinstellungsmenü der Esound-Eintrag auch rausfliegen, wenn das ESD-Binary nicht vorhanden ist.
Ich habe das jetzt so wie in deinem Patch reingenommen.
Gaucho316 hat geschrieben:Bei meinen letzten Code-Studien ist mir aufgefallen, dass die Membervariable "AlwaysAsk" der Klasse CLockedMenuForwarder überflüssig geworden ist. Diese wird sowieso an allen Stellen, an denen ein LockedMenuForwarder erzeugt wird, auf true gesetzt. Ich habe deshalb den Code der Klasse CLockedMenuForwarder vereinfacht. Im Prinzip habe ich mir die Änderungen vom 02.02.2003 angesehen und sie wieder rückgängig gemacht. Der Patch ist leider wieder ungetestet.

Link entfernt, da Patch im CVS
Also manchmal sieht man den Wald vor leuter Bäumen nicht. Ich lasse das drin und habe das auch gleich für die Übergabe des Personalisierungsmenüs im Einstellungsmenü hergenommen. Hat wieder 7 Zeilen an Code gespart. :dash:
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

dbt hat geschrieben:Also manchmal sieht man den Wald vor leuter Bäumen nicht. Ich lasse das drin und habe das auch gleich für die Übergabe des Personalisierungsmenüs im Einstellungsmenü hergenommen.
Ist es jetzt nicht aber so, dass, wenn man "PIN verwenden" ausgeschaltet und den Jugendschutz eingeschaltet hat, trotzdem nach der Personalisierungs-PIN gefragt wird, wenn man ins Personalisierungsmenü will? So ist das doch falsch. :gruebel:


Edit: Wie wäre es hiermit?
Link entfernt, da Patch im CVS


Edit: Ich hab den Patch eben noch geändert und auch die Stelle vereinfacht, an der CLockedMenuForwarder im Moviebrowser genutzt wird.
Zuletzt geändert von Gaucho316 am Dienstag 23. November 2010, 19:20, 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 »

Müsste gehen, aber wäre es nicht naheliegend die Pinabfrage direkt in die CParentalSetup()-Klasse, evtl. mit Parameter zu bauen, dann reicht der einfache Aufruf dieser Klasse im normalen Forwarder ohne was drumrum zu basteln. Genauso dann auch in CPersonalizeGui.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

Da kann man ja bei Gelegenheit nochmal genauer drüber nachdenken. Ansonsten könnte mein Patch doch erst einmal ins CVS, damit es wieder richtig funktioniert.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Menüs aufgeräumt

Beitrag von GetAway »

dbt hat geschrieben:
GetAway hat geschrieben:...
Werden Menüpunkte auf nicht sichtbar gestellt, so dass dadurch in den Menü's auch die Sepatorline
verschwindet, so verschwinden diese ebenfalls im Personalisierungsmenü. Da sollten sie doch erhalten bleiben,
da sich das Personalisierungsmenü ja nie ändert.
Danke für die Info, sollte jetzt gehen.
Hi, also das ist schon besser, aber im Umkehrschluss sollte dann personalize->addSeparator(menu)
auch nur im Menü (CPersonalizeGui::PERSONALIZE_SHOW_ONLY_IN_NORMAL_MENU)gemalt werden,
sonst fängt man ja wieder mit if;then für beides an, damit nicht beide im Personalisierungsmenü auftauchen. :wink:
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

Gaucho316 hat geschrieben: Edit: Wie wäre es hiermit?
Link entfernt, da Patch im CVS
erledigt
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

Eine kleine Sache habe ich noch entdeckt. Wäre es nicht besser, wenn in Zeile 241 von neutrino_menu.cpp CPersonalizeGui::PERSONALIZE_SHOW_NO statt false stehen würde?
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

Kein Problem ;-)
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Menüs aufgeräumt

Beitrag von GetAway »

GetAway hat geschrieben:
dbt hat geschrieben:
GetAway hat geschrieben:...
Werden Menüpunkte auf nicht sichtbar gestellt, so dass dadurch in den Menü's auch die Sepatorline
verschwindet, so verschwinden diese ebenfalls im Personalisierungsmenü. Da sollten sie doch erhalten bleiben,
da sich das Personalisierungsmenü ja nie ändert.
Danke für die Info, sollte jetzt gehen.
Hi, also das ist schon besser, aber im Umkehrschluss sollte dann personalize->addSeparator(menu)
auch nur im Menü (CPersonalizeGui::PERSONALIZE_SHOW_ONLY_IN_NORMAL_MENU)gemalt werden,
sonst fängt man ja wieder mit if;then für beides an, damit nicht beide im Personalisierungsmenü auftauchen. :wink:
Hi,
da ich bis jetzt keine Anwort auf meine Bemerkung bekommen habe, möchte ich das Thema noch einmal ansprechen.

Wie gesagt, wäre es sinnvoll, das so zu machen, dass
personalize->addSeparator(menu) nur im Normalen Menü aber mit if,then aus-/einblendbar ist?
personalize->addSeparator(menu) wir immer noch in beiden Menü's gemalt.

personalize->addSeparator(menu, NONEXISTANT_LOCALE, CPersonalizeGui::PERSONALIZE_SHOW_ONLY_IN_PERSONALIZE_MENU);
wird ja auch nur noch dort gemalt.

Achja, da ist jetzt ein Menüseparator über TV im Hauptmenü.
Gaucho316
Contributor
Beiträge: 1688
Registriert: Donnerstag 17. Februar 2005, 20:24

Re: Menüs aufgeräumt

Beitrag von Gaucho316 »

Ich hab damals nicht verstanden, was du wolltest und deshalb nicht darauf reagiert. Und ehrlich gesagt, weiß ich's immer noch nicht. Wenn du 'nen Separator nur im Hauptmenü haben willst, kannst du das doch mit
personalize->addSeparator(menu, NONEXISTANT_LOCALE, PersonalizeGui::PERSONALIZE_SHOW_NO);
erreichen.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Menüs aufgeräumt

Beitrag von GetAway »

@Gaucho316

Danke für die Info, ich habe nicht explizit danach gesucht, habe aber jetzt einen einzelnen Eintrag in neutrino_menu.cpp
gefunden. Das heißt es ist eingebaut, wird aber nicht grundsätzlich angewendet. Statt dessen finde ich immer wieder
Code, der den Separator des Personal-Menü's, durch "if, then" im normalen Menü ausblendet und umgekehrt.
dbt
Administrator
Beiträge: 2675
Registriert: Donnerstag 28. September 2006, 19:18

Re: Menüs aufgeräumt

Beitrag von dbt »

GetAway hat geschrieben:... durch "if, then" im normalen Menü ausblendet und umgekehrt.
Meinst du das :

Code: Alles auswählen

//separator
	if (	g_settings.personalize_sleeptimer	== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
		g_settings.personalize_reboot		== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE && 
		g_settings.personalize_shutdown		== CPersonalizeGui::PERSONALIZE_MODE_NOTVISIBLE)
		personalize->addSeparator(menu, NONEXISTANT_LOCALE, CPersonalizeGui::PERSONALIZE_SHOW_ONLY_IN_PERSONALIZE_MENU);// Stop seperator from appearing when menu entries have been hidden
	else
		personalize->addSeparator(menu);