ja genau, für jede Skin Auflösung die Listen Parameter angeben. Das funktioniert am besten.
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.
Coderes.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
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
Damit geht es (auch beim WQHD):
Edit:
Wobei man die fixe itemHeight im Code (40) und itemWidth (1920) auch aus dem Skin nehmen sollte.
Codedef 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
-
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:
Python
Alles anzeigenfrom enigma import gPixmapPtr def getInfo(self): self['data'].setText("") cover_url = self['list'].getCurrent()[1] cover = self['list'].getCurrent()[4] if cover: self.downloadPicture(cover_url, cover, self.gotCover) else: self["cover"].setPixmap(gPixmapPtr()) def ok(self): current = self['list'].getCurrent() if current and current[3]: cover_ident = current[3] logger.debug("cover_ident: %s", cover_ident) self.session.open(ScreenPerson, cover_ident, self.backdrop_ident)
-
Ne, dass passte schon
Du hast nur für die Berechnung der Text-Höhe in der List einen faschen Wert (Schriftgröße) verwendettatsaechlich... mann, mann... wie konnte das nur passieren danke Sven H
-
tatsaechlich... mann, mann... wie konnte das nur passieren danke Sven H
Bei den ganzen Zahlen und Werten kann das schon vorkommen
Da bist du nicht allein
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:
-
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???
-
wqhd ist korrekt
-
wie heisst die neue skin-aufloesung eigentlich? wqhd oder uhd???
WQHD = 2560x1440 Pixel (im Universal-Image nutzbar)
UHD (4K) = 3840×2160 Pixel
WQHD = HD-Skin-Werte * 2
-
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.
-
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.
-
jetzt passt es auch im WQHD Skin, danke für deine Arbeit
Code<widget name="list" position="50,220" size="1730,1080" EntryFont="Regular;40" itemHeight="60" transparent="1" scrollbarMode="showNever" />
edit:
scrollbarMode="showOnDemand" hab ich in meinem Skin auch reingemacht, funktioniert aber nicht.
-
Warum machst du denn die Scrollbar immer mit "showNever" ?
das war schon immer so
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.
-
scrollbarMode="showOnDemand" hab ich in meinem Skin auch reingemacht, funktioniert aber nicht.
Hmm, hier geht das
-
Bei WQHD und Listen size="1730,1080" blockiert die Liste mit scrollbarMode="showOnDemand" , ich teste noch mal mit meinem FHD Skin. Ich vermute es liegt an der Listen höhe, da stimmt was nicht mit dem Seiten zähler, werde das noch testen.
-
wenn ich mich recht erinnere, dann verschiebt showondemand die elemente die rechts davon liegen.
deswegen hatte ich in einem anderen plugin alwaysshow verwendet.
-
In the meantime, here's my update for italian translation (v2.3.3).
BTW, there is a little typo in ScreenMovie.py:156
msg += "\n" + _("No cover availble")[attach=24044][/attach] -
oops, thanks for the translation and report.
-
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 ??
Code
Alles anzeigen<screen name="ScreenMain" backgroundColor="transparent" position="0,0" size="1920,1080" flags="wfNoBorder" title="TMDB - The Movie Database"> <layout name="hdsuisse_req" /> <layout name="hdsuisse_epg_buttons" /> <layout name="hdsuisse_epg_keys" /> <widget name="searchinfo" position="50,90" size="1350,40" font="Regular;32" foregroundColor="yellow" transparent="1" backgroundColor="bg2" /> <widget name="list" EntryFont="Regular;30" position="50,170" size="1250,720" itemHeight="40" transparent="1" scrollbarMode="showOnDemand" zPosition="1" /> <widget name="cover" position="1430,230" size="380,575" alphatest="blend" transparent="1" /> <ePixmap pixmap="/usr/lib/enigma2/python/Plugins/Extensions/tmdb/pic/backdrop.jpg" position="5,55" size="1910,970" zPosition="-6" scale="stretch" alphatest="blend" /> <widget name="backdrop" position="5,55" size="1910,970" scale="stretch" zPosition="-5" alphatest="blend" transparent="1" /> <ePixmap gradient="#50000000,#50000000,horizontal" position="5,55" size="1910,970" zPosition="-2" /> </screen>