Menü-Optionen des Plugins 'MovieSelection'

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Menü-Optionen des Plugins 'MovieSelection'

      Ich möchte die Reihenfolge der Menü-Optionen des Plugins 'MovieSelection' ändern.
      Wo finde ich die Datei, in der ich das machen kann?
      Ich habe schon überall gesucht.
      \usr\lib\enigma2\python\Screens\Menu.py ist es jedenfalls nicht.
    • Die python Sourcen wirst du beim vti nicht auf der Box finden, nur die übersetzen pyo Dateien gibt es dort.
      Da vti closed source ist, gibt es diese auch nicht wo anders einsehbar.
    • @Heinz43

      Du musst ja nur dort nachschauen, und dann weißt du, ob deine Vermutung stimmt. Kann ja durchaus sein.

      Da ich selbst bei uns das entsprechende Menü im EMC um einen zusätzlichen Punkt erweitert habe, kann ich dir sagen, dass die Menüpunkte auch im Code fest verdrahtet sein können. Es ist nicht immer alles konfigurierbar.
      Eventuelle Ratschläge gebe ich nach bestem Wissen und Gewissen aber ohne jede Gewähr. Bei Fragen fragen.
      Tipps:
      Screenshots erstellen VU+ Wiki
    • Die Menü-Optionen des Plugins 'MovieSelection' sind nicht in \usr\share\enigma2\menu.xml gespeichert, auch sonst habe ich bisher keine passende xml-Datei gefunden.
    • Eine mögliche Losung dafür wäre ein Applet im Skin

      Dazu den Screen „MovieContextMenu“ in der skin.xml suchen und das Applet einfügen.

      Im Anhang eine Beispiel.xml, wo das Applet schon eingefügt wurde.

      Davon aber nur das Applet in deinen Skin übertragen und dabei einen kompatibelen Texteditor benutzen (Notepad++ sollte funktionieren).

      Achte darauf, dass der Code innerhalb des Applets ganz links beginnen muss.
      Das die Position und die Anzahl der Leerzeichen beim Ubertragen erhalten werden muss, sollte klar sein.

      Vorher die orginale skin.xml sichern!

      Optimal wäre es natürlich, wenn du dir für das „MovieContextMenu“ einen eigenen Skinpart bastelst und dort das Applet einfügst.


      <applet type="onLayoutFinish">
      try:
      list = self["menu"].list
      for item in list:
      if item[0] == "Umbenennen...":
      list.insert(0,list.pop(list.index(item)))
      break
      except:
      pass
      </applet>
      Dateien
    • hab es mir in mein Skinpart eingebaut und es funktioniert auch soweit.
      ich möchte gerne weitere einträge sortieren die letzten beiden einträge aus dem beispiel code bekomme ich irgendwie nicht hin.
      wohl weil der menüname auch bei jeden Ordner variiert.
      wie muss ich da vorgehen?

      Quellcode

      1. <!-- Umbenennen an Pos.1 verschieben-->
      2. <applet type="onLayoutFinish">
      3. try:
      4. list = self["menu"].list
      5. for item in list:
      6. if item[0] == "Umbenennen...":
      7. list.insert(0,list.pop(list.index(item)))
      8. break
      9. except:
      10. pass
      11. </applet>
      12. <!-- Schnitteditor an Pos.2 verschieben-->
      13. <applet type="onLayoutFinish">
      14. try:
      15. list = self["menu"].list
      16. for item in list:
      17. if item[0] == "Schnitteditor":
      18. list.insert(1,list.pop(list.index(item)))
      19. break
      20. except:
      21. pass
      22. </applet>
      23. <!-- Schnitt ausführen an Pos.3 verschieben-->
      24. <applet type="onLayoutFinish">
      25. try:
      26. list = self["menu"].list
      27. for item in list:
      28. if item[0] == "Schnitt ausführen...":
      29. list.insert(2,list.pop(list.index(item)))
      30. break
      31. except:
      32. pass
      33. </applet>
      34. <!-- Jugendschutz anschalten an Pos.4 verschieben-->
      35. <applet type="onLayoutFinish">
      36. try:
      37. list = self["menu"].list
      38. for item in list:
      39. if item[0] == "Jugendschutz anschalten":
      40. list.insert(3,list.pop(list.index(item)))
      41. break
      42. except:
      43. pass
      44. </applet>
      45. <!-- Jugendschutz ausschalten an Pos.5 verschieben-->
      46. <applet type="onLayoutFinish">
      47. try:
      48. list = self["menu"].list
      49. for item in list:
      50. if item[0] == "Jugendschutz ausschalten":
      51. list.insert(4,list.pop(list.index(item)))
      52. break
      53. except:
      54. pass
      55. </applet>
      Alles anzeigen
      weiter

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Lucille_twd ()

    • Lucille_twd schrieb:

      if item[0] == "Jugendschutz anschalten":
      Ersetzen durch
      if item[0].startswith("Jugendschutz"):

      So geht es etwas kürzer:

      Python-Quellcode

      1. <!-- Menüeinträge verschieben -->
      2. <applet type="onLayoutFinish">
      3. toFind = ["Umbenennen", "Schnitteditor", "Schnitt ausführen", "Jugendschutz"]
      4. list = self["menu"].list
      5. cnt = 0
      6. for name in toFind:
      7. try:
      8. for item in list:
      9. if item[0].startswith(name):
      10. list.insert(cnt, list.pop(list.index(item)))
      11. cnt += 1
      12. break
      13. except:
      14. pass
      15. </applet>
      Alles anzeigen
      Für weitere Verschiebungen brauchst du dann nur noch die Liste 'toFind' ergänzen. Unausgetestet!
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von WeFraJo ()

    • danke funktioniert.

      geht die selbe methode auch im menü von der kanalliste?
      da muss es ja wenn im folgenden screen rein. (ChannelContextMenu")
      aber die reihenfolge ändert sich nicht. oder muss am code noch was verändert werden?

      Quellcode

      1. <!-- Menüeinträge verschieben -->
      2. <applet type="onLayoutFinish">
      3. toFind = ["Eintrag entfernen"]
      4. list = self["menu"].list
      5. cnt = 0
      6. for name in toFind:
      7. try:
      8. for item in list:
      9. if item[0].startswith(name):
      10. list.insert(cnt, list.pop(list.index(item)))
      11. cnt += 1
      12. break
      13. except:
      14. pass
      15. </applet>
      Alles anzeigen

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Lucille_twd ()

    • Ich habe derzeit keinen Zugang zu meiner Box, aber soweit ich mich erinnern kann steht da vor der Bezeichnung noch die zugehörige Taste (zumindest bei einigen Einträgen).

      Versuche es mal mit:
      if item[1].startswith(name):
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • Versuch mal das:

      Python-Quellcode

      1. <!-- Menüeinträge verschieben -->
      2. <applet type="onLayoutFinish">
      3. toFind = ["Suchtext1", "Suchtext2"]
      4. list = self["menu"].list
      5. cnt = 0
      6. for name in toFind:
      7. try:
      8. for item in list:
      9. for subitem in item:
      10. found = False
      11. if subitem.startswith(name):
      12. list.insert(cnt, list.pop(list.index(item)))
      13. cnt += 1
      14. found = True
      15. break
      16. if found:
      17. break
      18. except:
      19. pass
      20. </applet>
      Alles anzeigen
      Damit darf der Text in einer beliebigen Spalte der Liste stehen. Ungetestet und keine Garantie.

      Wenn das nicht geht würde ich die try-Konstruktion weglassen. Dann crasht es möglicherweise, aber im log siehst du dann, woran es liegt.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von WeFraJo ()

    • Und das passende except mit dem pass weglassen

      also Zeile 7, 18, 19

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von anudanan ()

    • so crasht es

      Quellcode

      1. <!-- Menüeinträge verschieben -->
      2. <applet type="onLayoutFinish">
      3. toFind = ["Eintrag entfernen"]
      4. list = self["menu"].list
      5. cnt = 0
      6. for name in toFind:
      7. for item in list:
      8. for subitem in item:
      9. found = False
      10. if subitem.startswith(name):
      11. list.insert(cnt, list.pop(list.index(item)))
      12. cnt += 1
      13. found = True
      14. break
      15. if found:
      16. break
      17. </applet>
      Alles anzeigen
      Dateien
    • Und alles zwischen den weggelassenen Zeilen eine Einrückungsebene nach links.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • Nein, du hast es richtig gemacht.

      Die Struktur der list ist aber komplizierter.

      Versuche das:

      Python-Quellcode

      1. <!-- Menüeinträge verschieben -->
      2. <applet type="onLayoutFinish">
      3. toFind = ["Eintrag entfernen"]
      4. list = self["menu"].list
      5. print "channel List ", list
      6. cnt = 0
      7. for name in toFind:
      8. for item in list:
      9. for subitem in item:
      10. found = False
      11. if subitem[7].startswith(name):
      12. list.insert(cnt, list.pop(list.index(item)))
      13. cnt += 1
      14. found = True
      15. break
      16. if found:
      17. break
      18. </applet>
      Alles anzeigen
      Edit: code korrigiert (EInrückung)
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von WeFraJo ()

    • Nein, er meint die Einrückung. Da ja try, except gelöscht wurde, sollten die anderen Zeilen von 8-17 eine Ebene nach links gerückt werden. Das hatte ich eben nicht geschrieben, weil ich dachte, dass das klar ist, wenn man solche Konstrukte entfernt.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von anudanan ()