TMDBCockpit

  • das mit dem automatischen berechnen der skalierung ist bei der liste etwas suboptimal.

    Wie meinst du das?

    Ich selbst lasse alles im code mit meiner Variante für die 3 Skins rechnen, hat immer gepasst.

    Du musst halt immer das skinValueCalculate nutzen wenn du Skin variablen setzt.

    Code
    res.append(MultiContentEntryText(pos=(0, skinValueCalculate(155)),
                                         size=(skinValueCalculate(1563), skinValueCalculate(3)),
                                         font=0,
                                         flags=0 | 0,
                                         text="",
                                         backcolor=backcolor))

    so sehen bei mir dann in etwa die Entrys aus, das passt dann für alle 3 Skins, hier im Beispiel ist nur ein Farblicher Hintergrund gesetzt in einem Entry.


    Ich kann dir jetzt nicht sagen welche Wert die automatischen Skin Ersteller nutzen, aber wenn du hier den gleichen Wert nutzt passt das dann überein.

  • bei der liste gibt es ja folgende parameter:

    font size, list height, text xpos, text ypos.

    wenn ich die jetzt automatisch berechne, dann stimmt bei mir die hoehe des textes innerhalb der listenzeile nie so genau.

    also text ypos... deswegen habe ich text ypos = 0 gesetzt und die anderen werte so angepasst, dass es einigermassen stimmt. jetzt sagt hdsuisse, dass text ypos = 0 bei wqhd nicht funzt... und die y pos des textes daher nicht stimmt.

    daher denke ich an sowas wie:

    Code
     <widget name="list" position="20,90" size="1250,720"
          itemHeight="40" text_xpos="5" text_ypos="z.b. "1"
          transparent="1" scrollbarMode="showNever"/>

    und der code uebernimmt dann die werte. dann kann man bei jeder aufloesung die werte tunen.

    oft macht ja bei ner list +/- 1 ein sichtbarer unterschied.

  • Ne, dass passte schon :winking_face:


    Du hast nur für die Berechnung der Text-Höhe in der List einen faschen Wert (Schriftgröße) verwendet:

    Link: https://github.com/dream-alpha…ob/master/src/List.py#L32

    Code
    x, y, w, h = (5, 0, 1920, int(round(29 * self.scaling_factor)))


    Damit geht es (auch beim WQHD):

    Code
    x, y, w, h = (5, 0, 1920, int(round(40 * self.scaling_factor)))


    Edit:

    Wobei man die fixe itemHeight im Code (40) und itemWidth (1920) auch aus dem Skin nehmen sollte.

    Code
        def buildList(self, entry):
            res = []
            title = entry[0]
            res = [None]
            width = self.list.getItemSize().width()
            height = self.list.getItemSize().height()
            x, y, w, h = (5, 0, width, height)
            res.append((eListboxPythonMultiContent.TYPE_TEXT, x, y, w, h, 0, RT_HALIGN_LEFT | RT_VALIGN_CENTER, str(title)))
            return res

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

    4 Mal editiert, zuletzt von Sven H ()

  • Dann hab ich im ScreenPeople (Besetzung) noch einen GS gefunden.

    Wenn da in der Liste eine Art Überschrift enthalten ist, hat die wohl kein Cover (siehe Screenshot).

    Wenn man da dann "OK" drückt, gab es einen GS.

    Auch kommt im Log ein Code-Fehler, wenn beim Wechsel auf den "Überschriften"-Eintrag das nicht vorhandene Cover geladen werden soll.


    Mit diesen geringfügigen Anpassungen im ScreenPeople scheint es zu passen:

  • tatsaechlich... mann, mann... wie konnte das nur passieren :grinning_squinting_face: danke Sven H

    Bei den ganzen Zahlen und Werten kann das schon vorkommen :winking_face:

    Da bist du nicht allein :grinning_squinting_face:


    Aber an der Stelle würde ich ganz auf die Berechnung verzichten und besser die Werte der List verwenden, die möglicherweise schon durch den Skin angepasst wurden.

    Das hatte ich im obigen Edit nochmal ergänzt:

    Code
    width = self.list.getItemSize().width()
    height = self.list.getItemSize().height()
    x, y, w, h = (5, 0, width, height)

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Aber an der Stelle würde ich ganz auf die Berechnung verzichten und besser die Werte der List verwenden

    ja, das macht auf jeden fall sinn.


    wie heisst die neue skin-aufloesung eigentlich? wqhd oder uhd???

    Einmal editiert, zuletzt von alpha () aus folgendem Grund: Ein Beitrag von alpha mit diesem Beitrag zusammengefügt.

  • in der version 2.3.3 habe ich mich entschlossen, die konstaten fuer listenzeilenhoehe und zeilenfontgroesse aus dem code rauszunehmen und in den skin zu verlagern.
    das sieht dann so aus:

    Code
    <widget name="list" position="20,90" size="1250,720" itemHeight="40" EntryFont="Regular;30" transparent="1" scrollbarMode="showNever"/>

    mit den parametern itemHight und EntryFont, die dann vom Enigma2SkinConverter automatisch angepasst werden. damit ist eine skalierung im code nicht mehr noetig.

    imho ist die schrift jetzt in den listenzeilen vertikal mittig.


    ansonsten ist das plugin jetzt funktional fertig... hoffe, dass keine allzuvielen bugs mehr drin sind.

    Einmal editiert, zuletzt von alpha ()

  • Warum machst du denn die Scrollbar immer mit "showNever" ?

    Da sieht man ja nie, ob die Liste noch weitergeht, oder ob nur die sichtbaren Einträge vorhanden sind.

    Denke, da wäre "showOnDemand" vielleicht besser.


    Und setItemHeight und setFond gehört ins Init und nicht ins biuldFunc.

    Sonst wird das ja für jede Zeile neu gesetzt.

    Und warum musstest du da EntryFont verwenden?

    Geht das nicht default mit font=... ?

    itemHeight ist auch default per Skin steuerbar.

    Da hättest du doch gar kein gesondertes ListSkin gebraucht.

    Gruß Sven (aka Dreamy)


    DM920 mit unstable OE2.5 DP
    One mit unstable OE2.6 DP

  • Warum machst du denn die Scrollbar immer mit "showNever" ?

    das war schon immer so :winking_face:


    Und setItemHeight und setFond gehört ins Init und nicht ins biuldFunc.

    da sind aber die werte aus dem skin noch nicht verfuegbar.



    Und warum musstest du da EntryFont verwenden?

    font ging nicht... und ich muss ja einen namen nehmen, den der Enigma2SkinConverter auch skaliert.


    itemHeight ist auch default per Skin steuerbar.

    Da hättest du doch gar kein gesondertes ListSkin gebraucht.

    da bin ich mir nicht sicher... das war zwar schon im skin... aber imho ohne wirkung.

  • wenn ich mich recht erinnere, dann verschiebt showondemand die elemente die rechts davon liegen.

    deswegen hatte ich in einem anderen plugin alwaysshow verwendet.

  • Test mit FHD Skin dm900 Merlin, ich habe TMDB ScreenMain im FHD Skin die Liste 1250,800 geskinnt, da funktioniert scrollbarMode="showOnDemand nicht, wird nicht angezeigt und das auswählen geht nur mehr zögerlich.

    Wenn ich die vorgegebene Listengrösse vom Plugin verwende 1250,720 funktioniert es mit scrollbarMode="showOnDemand zwar, aber auch hier geht das auswählen nur zögerlich. Sehr merkwürdig ??