Picon Größen in servicelist.py

  • Hallo,


    spätestens in OE2.5 kann man ja mit components eine Vielzahl von GUI-Optionen per Skin optionieren, u.a. die Picongröße in der ChannelSelection (die kleinen Dinger in der Liste)


    <component type="ServiceList" piconWidth="50" piconWidthBig="100" ...>


    Kontär dazu zieht sich durch die Pythons (Servicelist.py, UsageConfg.py) eine feste Optionierung auf zwei fixe Picongrößen, welche das freie Setzen mittels component ServiceList sinnlos macht:



    Python
    # picons
    		if isPlayable and showPicons:
    			picon = self._buildOptionEntryServicePicon(service)
    			if bigPicons:
    				pix_width = self._componentSizes.get(self.KEY_PICON_WIDTH_BIG, 108)
    			else:
    				pix_width = self._componentSizes.get(self.KEY_PICON_WIDTH, 58)


    Grundgedanke:


    Da das Dreambox OS sehr schön skaliert, will ich in meinen Skins perspektivisch weg von verschiedenen Picon-Sets (mit verschiedenen Größen) und ein einziges Set verwenden. Dieses soll dann an den entsprechenden Stellen skaliert werden.


    Also erst einmal experimentell gesetzt in /etc/enigma2/settings


    • config.usage.configselection_piconspath=/data/picon_220x132/
    • config.usage.configselection_bigpicons=false


    Das sieht dann schon mal gut aus und ist auch schnell, prinzipiell macht das also Sinn. Wenn man also


    • die statischen Picon Sizes (bigPicons Abfragen) rausnehmen (und dann die Werte aus der component auch nehmen würde)
    • In der Optionierung für config.usage.configselection_piconspath auch einen freien Pfad auswählen könnte


    ... würde das IMHO in meinen Augen Sinn machen und das Vermüllen mit diversen Picons Sets vermeiden.


    Zumindest macht mit dem Status Quo piconWidth und piconWidthBig in der ServiceList component absolut keinen Sinn.



  • Setz eine Symlink von picon_50x30 auf was auch immer und schon brauchst du nur 1 Piconsatz


    und das ...

    Code
    <component type="ServiceList" piconWidth="50" piconWidthBig="100" ...>

    ....hat schon seinen Sinn.



    Ich will jedenfalls kein "gestapelten" Picons in der Senderliste


    und es soll sogar User geben die gerne unterschiedlich Stile verwendenden.

    DM 920 UHD sss :smiling_face_with_heart_eyes:

  • was mich mal wieder dazu bringt nach dem Python code zu krammen mit dem man die size aus einem png selber auslesen kann ... falls das wer haben will ... Ich fand das schon immer blöde es über pfade zu lösen statt zu schauen was da ist.

  • Man muss ja garkeine 50x30 verwenden und gutemine das mit dem size brauch man da auch nicht.
    @arki hat schon recht es gibt die Auswahl von 2 Piconsorten (das übrigens ist sogar vom Merlin Team und wurde damals auch übernommen)
    Die picon Auswahl ist für die big (danach schaltet sich ja automatisch die Listenhöhe)
    die piconauswahl 50x30 ist für die normale zeilenhöhe und die beiden Picongrößen kann man jetzt auch festlegen im skin und somit skaliert das Dreamos auf diese größe und rechnet dann auch den rest danach..
    und man kann wunderbar einen Symlink von großen Picons auf 50x30 legen und schon werden da große runter skaliert.
    Im Merlin werden halt dort durch den Piconloader auch 50x30 Picons hingeladen da sie für jede Picongröße den Pfad nutzen und dann auch in den skins direkte Pfade angeben wie für fullhd)


    Normal ist das garnicht nötig da man wie gesagt durch links setzen genau die Picons nutzen kann die man möchte (siehe zb. hier werden 400x240 runtergerechnet weil GP3 zb. das richtig setzt mit einem Symlink picon_50x30 zu den Picons die man sich aussucht
    Man kann dann auch ganz einfach die selben oder andere nutzen wenn man das per Symlink regelt da muss nix im code umgestrickt werden oder im skin was festes angegeben.
    Das Einzige was da er imoriginal Image fehlt ist eine auswahl für die Picons die man möchte ,dann bräuchte man das mit den Symlinks nicht machen.

  • Noch mal. Die Variante von 2 statischen Größen IST obsolet, wenn gleichzeitig in der component ServiceList entsprechende Piconsizes definierbar sind.
    Ganz davon ab, das die heißeliebten 50x30 Picons wegen ...


    pix_width = self._componentSizes.get(self.KEY_PICON_WIDTH, 58)


    ... auch schon fröhlich skaliert werden. Dann wenigstens richtig und nicht mit solch einem Konstrukt.

  • Die Kanalliste so kam ja normalerweiße vom Merlin ,@Rechi hatte sie dann durch die componets skinbar gemacht und hatte auch mal gesagt da könnte man noch einiges weiter Verbesseren bzw. ändern .
    Sicherlich sind da zZ. er andere Sachen noch wichtig und zZ. ist es ja so das 2 Einstellungen nötig sind weil sich die Zeilen höhe je nach Piconeinstellung schaltet.
    Das man die Picons jetzt im skin noch skinnen kann durch die component hat ja den Vorteil das man ebend genau die größe angegen kann die für die geskinnte Zeilenhöhe passt (die ist ja nicht immer 60 oder 30 in den skins).
    Daher gibt man das im skin an und die ausgesuchten Picons werden genau darauf skaliert und da müssen keine 100x60 im picon ordner sein oder im Picon_50x30 solche 50x30 picons (das sind halt noch die alten Bezeichnungen von damals).


    Es hat niemand gesagt das die kanalliste so wie sie jetzt ist das Ende der Fahnenstange ist,man kann damit zZ. gut arbeiten und später wenn die Zeit da ist wird denke da auch nochmal drüber geschaut.


    Und kommt nicht damit das der piconordner nur für 100x60 Picons ist ,das stimmt nämlich nicht ,das war schon immer der Zentrale Piconordner und damals kaman da auch die SD Picons rein .

  • Ihr hattet das doch e zuerst im Merlin und habt da noch andere Änderungen drin ,daher wenn ihr das besser lösen könnt ist das doch gut und eventuell kann das dann später auch im original umgesetzt werden.
    Es gibt so einige Bereiche wo man nachbessern kann und im letztn Jahr wurde denke echt viel gemacht da hat sich DMM nicht ausgeruht und ebend auch nicht immer alles gleich so umgesetzt wie es manch einer gern hätte.
    Wenn man da halt zusammenarbeitet dann könnte man sicherlich auch noch so manches besser hinbekommen nur halt nicht immer alles gleich.