"Wrap-Around" in Menüs

    • "Wrap-Around" in Menüs

      Hi zusammen,
      von meinen 7020HD war ich es immer gewohnt, dass ich in Menüs die "Wrap-Around"-Funktion hatte, vom obersten Menüpunkt mit "Pfeil nach oben" also zum letzten Menüpunkt wechseln konnte. Bei der 920 funktioniert das nicht. Ist das Absicht, oder hab ich nur eine Einstellung übersehen?
      Danke und Grüsse
      Alfred
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.2.2 hier, neu: FAQ hier
    • enableWrapAround="1" bezieht sich auf den Skin, bedeutet dass die Zeile, Menüeintrag, was auch immer, umgebrochen wird, erscheint nochmal drunter wenn es zu lang ist, sonst wird es abgeschnitten, es gibt auch noch noWrap="0", noWrap="1" teste mal die auch durch, das mit Menüpunkten, das ist im Python Code oder im Core drin und nicht im Skin beeinflussbar, alles aus dem Kopf erzählt
    • enableWrapAround="1" bedeutet das man die Liste durchwählen kann ,also ist man am letzten Eintrag der Liste geht es mit Pfeil runter zum Anfang der Liste und ist man am Anfang der Liste und drückt Pfeil nach oben geht man zum letzten Eintrag der Liste.

      noWrap="1" bedeutet das ein Text widget Eintrag keinen Zeilenbruch bekommt und hat somit nix mit dem Listen navigieren zu tun.

      Beides kann man klar in Skins einsetzen und auch damit dann die Bedinung beeinflussen ;)
      Dreambox Two:
      Dream unstable mit GP4.1
      Dreambox one:
      Dream unstable mit GP4.1
      920uhd:
      Dream unstable mit GP4.1

      The post was edited 1 time, last by zombi ().

    • Danke euch allen - hilft mir allerdings nicht weiter, hatte mich wohl nicht klar ausgedrückt.
      Das "wraparound" fehlt mir bei sämtlichen System-Menüs, nicht etwa "nur" bei irgendwelchen Plugins - dort allerdings auch, und zwar auch bei plugins, bei denen sich die Menüs auf der 7020 (OE2.0) "durchblättern" (wrap around) lassen.
      Deswegen tippe ich eher auf entweder ein prinzipielles Problem bei OE2.5 oder auf eine System-Einstellung, die ich bis jetzt nicht gefunden hab.
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.2.2 hier, neu: FAQ hier
    • Teste mal mit den beiden System Skins damit sollte es normal gehen (beid en Screens die dort geskinnt sind) weil ich es dort mit eingebaut hatte ,ansonsten liegt es immer am Skin ob er das halt in den geskinnten Screens inne hat ,ist es nicht drin dann geht es auch nicht .
      Glaube nur Merlin hat das in ihrem Image fest eingebaut und das ist dann Skin unabhängig ,in allen anderen Image ist es so das es halt in den Skin Screens enthalten sein muss sonst ist am Ende der Liste halt schluss. ;)
      Dreambox Two:
      Dream unstable mit GP4.1
      Dreambox one:
      Dream unstable mit GP4.1
      920uhd:
      Dream unstable mit GP4.1
    • Hatte es auch mit den default-skins getestet. Allerdings: Jetzt gehts auf einmal - hatte heute nachmittag noch ein System-Update gemacht (das letzte vor bestimmt 4 Wochen), muss eigentlich daran liegen, denn so ganz blöd bin ich eigentlich auch nicht.. :saint: :saint:
      Wie auch immer, hat sich erledigt.....
      Nochmal danke für eure Gedanken!
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.2.2 hier, neu: FAQ hier
    • Default-HD ist der alte default skin der nicht mehr als default genutzt wird ,dort ist das auch nicht drin ;) bzw. glaube an vielen Stellen nicht.
      In dem Default Skin und dem Default-FHD (das sind die beiden aktuellen und neuen Systemskins) ist es bei allen vorhanden (außer ich hab das bei einem Screen vergessen :D ).
      Dreambox Two:
      Dream unstable mit GP4.1
      Dreambox one:
      Dream unstable mit GP4.1
      920uhd:
      Dream unstable mit GP4.1
    • Nochmal danke für die Klarstellung. Dachte eigentlich, ich hätte es mit dem FHD auch probiert, würde aber meine Hand dafür nicht ins Feuer legen. Wie auch immer, immerhin ist es jetzt klar, dass es nicht an einer Einstellung lag, und funktioniert!
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.2.2 hier, neu: FAQ hier
    • mrvica wrote:

      enableWrapAround="1" bezieht sich auf den Skin, bedeutet dass die Zeile, Menüeintrag, was auch immer, umgebrochen wird, erscheint nochmal drunter wenn es zu lang ist, sonst wird es abgeschnitten, es gibt auch noch noWrap="0", noWrap="1" teste mal die auch durch, das mit Menüpunkten, das ist im Python Code oder im Core drin und nicht im Skin beeinflussbar, alles aus dem Kopf erzählt
      Totaler Käse X/ - setzen 6
      noWrap ist für Texte. Damit kann man den Zeilenumbruch verhindern.
      enableWrapAround ist für configs und menüs. Damit beeindflus man den rückwerts Seitenumbruch.
      ( zB. vom 1. zum letze Listeneintrag mit der Hochtaste springen )
    • Ich muss die wohl durcheinander gebracht haben, gut dass ich sie nicht mit Warp verwechselt habe, na ja, ich hab nochmal im Skin was ich momentan verwende nachgeschaut, auch wenn ich kein enableWrapAround="1" drinstehe macht es wrap around, dann muss es irgendwo anders im Code abgelegt sein, nochmal im Skin explizit einzugeben wäre doppelt gemoppelt, nehme an dass das den Skin nur ausbremst, einfaches Beispiel für rauf runter im Python ohne wrap around

      Source Code

      1. def up(self):
      2. self.filelist.up()
      3. def down(self):
      4. self.filelist.down()

      und mit wrap around

      Source Code

      1. def up(self):
      2. if self.filelist.getSelectionIndex() == 0:
      3. self.filelist.moveToIndex(len(self.filelist.list) - 1)
      4. else:
      5. self.filelist.up()
      6. def down(self):
      7. if self.filelist.getSelectionIndex() == len(self.filelist.list) - 1:
      8. self.filelist.moveToIndex(0)
      9. else:
      10. self.filelist.down()
      Display All

      das zweite kostet bestimmt einige ms mehr Ausführungszeit, ich hab mal geguckt wo dieses enableWrapAround drinnsteht, bei den Open* im skin.py, bei opendreambox im Core ?
    • Speziell an @zombi, aber gern auch alle andern: Hi, nachdem du dich da offensichtlich sehr gut auskennst: An einer Stelle meines eigenen Plugins funzt das wraparaound (noch ;) ) nicht, und zwar bei der choicebox.
      Display Spoiler

      self.session.openWithCallback(self.menuCallback, ChoiceBox, title=_("Filelist actions"), list=menu)
      Kannst du mir einen Tip geben, wie ich auch bei der ChoiceBox das wraparound aktiviere? wär halt einfach schön. Danke!
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.2.2 hier, neu: FAQ hier
    • Du kannst in deinem Plugin die ChoiceBox als eigene Class MeineChoiceBox(ChoiceBox) clonen und dann im init nur zusätzlich das setWrapAround für die Liste setzen.

      git.opendreambox.org/?p=enigma…ad60cf8fa0c22ccf4aa#l5845

      Ist jetzt nur die Theorie, ohne es tatsächlich getestet zu haben.
      Wenn du nicht weiterkommst, kannst du mir eine PN schicken.
      Gruß Sven (aka Dreamy)

      DM920 mit unstable OE2.5 DP
      One mit unstable OE2.6 DP
    • Was du da im Code genau bei dir machen musst kann ich nicht wirklich sagen aber mit der originalen Choicebox geht doch das enableWrapAround="1" ohne Probleme ,hast du da im Code deines Plugins etwas nicht mit drin bzw.nutzt du da nicht die originale?
      Dreambox Two:
      Dream unstable mit GP4.1
      Dreambox one:
      Dream unstable mit GP4.1
      920uhd:
      Dream unstable mit GP4.1
    • "Wrap-Around" in Menüs

      Er ruft ja in seinem Plugin einfach die originale ChoiceBox auf, ohne diese selbst nochmal neu zu skinnen.
      Es soll ja weiterhin der jeweils verwendete Skin zu Anwendung kommen.
      Und wenn es da nicht geskinnt ist, geht es eben nicht.

      Von daher geht es aus meiner Sicht nur mittels Clonen der ChoiceBox und setzen des setWrspAround per Code (also unabhängig vom Skin).

      Wenn er einen eigene Skin hat, muss er das enableWrapAround=1 ja nur in den Screen der ChoiceBox integrieren.
      Gruß Sven (aka Dreamy)

      DM920 mit unstable OE2.5 DP
      One mit unstable OE2.6 DP
    • @zombi: ich nutze die originale choicebox, und wenn ich da "enableWrapAround=1" im Aufruf einfüge, gibt es einen crash
      Display Spoiler

      self.session.openWithCallback(self.menuCallback, ChoiceBox, title=_("Filelist actions"), list=menu,enableWrapAround="1" )
      File "/usr/lib/enigma2/python/mytest.py", line 455, in openWithCallback
      dlg = self.open(screen, *arguments, **kwargs)
      File "/usr/lib/enigma2/python/mytest.py", line 485, in open
      dlg.isTmp = True
      AttributeError: 'NoneType' object has no attribute 'isTmp'
      ]]>
      ,
      und zwar genau derselbe crash beim DefaultFHD und auch beim Nuke.evo. ?( ?(

      @Sven H: "Klonen" würde dann wohl heissen, den Original-Code der Choicebox UND der ChoiceList in die eigene Class kopieren, richtig? In der Original Choicelist ist im Code übrigens enableWrapAround im init fest auf False gesetzt.

      Ob mir das den Aufwand wert ist, ist eine andere Frage. Wär halt nett gewesen, wenns einfach gewesen wär.
      Yamp - gepimte Version auch für FHD - aktuelle Version V3.2.2 hier, neu: FAQ hier
    • In der originalen ist das doch direkt drin daher du musst das doch bei dir garnicht eingeben ,wenn du die originale aufrufst sollte die dann doch so nutzbar sein wie sie in dem Skin geskinnt ist und da ist in beiden Systemskins das mit "enableWrapAround=1" und da geht das auch 100% tig ,sowie in allen anderen Skins wo das mit drin ist .
      Wie gesagt die originale macht das .

      Das ist der Screen im System FHD und da ist das in der Liste mit drin und macht auch genau das was es machen soll.

      Source Code

      1. <screen name="ChoiceBox" position="center,center" size="840,600" title="Input">
      2. <widget font="Regular;32" name="text" position="10,10" size="820,40"/>
      3. <widget enableWrapAround="1" name="list" position="0,5" scrollbarMode="showOnDemand" size="830,585"/>
      4. <applet type="onLayoutFinish">
      5. # this should be factored out into some helper code,but currently demonstrates applets.
      6. from enigma import eSize,ePoint
      7. orgwidth=self.instance.size().width()
      8. orgpos=self.instance.position()
      9. textsize=self["text"].getSize()
      10. # y size still must be fixed in font stuff...
      11. textsize=(textsize[0] + 80,textsize[1] + 100)
      12. count=len(self.list)
      13. if count > 12:
      14. count=12
      15. offset=45 * count
      16. wsizex=textsize[0] + 100
      17. wsizey=textsize[1] + offset + 20
      18. if (960 > wsizex):
      19. wsizex=960
      20. wsize=(wsizex,wsizey)
      21. # resize
      22. self.instance.resize(eSize(*wsize))
      23. # resize label
      24. self["text"].instance.resize(eSize(*textsize))
      25. # move list
      26. listsize=(wsizex - 20,45 * count)
      27. self["list"].instance.move(ePoint(10,textsize[1]))
      28. self["list"].instance.resize(eSize(*listsize))#200d1940
      29. # center window
      30. newwidth=wsize[0]
      31. self.instance.move(ePoint((1920-wsizex)/2,(1080-wsizey)/2))
      32. </applet>
      33. </screen>
      Display All
      Dreambox Two:
      Dream unstable mit GP4.1
      Dreambox one:
      Dream unstable mit GP4.1
      920uhd:
      Dream unstable mit GP4.1