• ich vermute mal, dass der skinName im skin den entsprechenden screen identifiziert.
    jetzt habe ich gesehen, dass man mehrere angeben kann:


    Code
    self.skinName = ["EMCSelectionExtended", "EMCSelection"]

    wozu ist das gut? danke.

  • Ich glaub, die werden in der angegebenen Reihenfolge verwendet.


    Da kann man also Skin-Screens angeben, die verwendet werden sollen, ohne dass man selbst einen Skin-Screen im Plugin/in XML mitgeben muss.

    Gruß Sven (aka Dreamy)


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

  • Was der Sinn im konkreten Beispiel ist, kann ich jetzt nicht sagen.


    Aber grundsätzlich kann man da mehrere Skinscreens angeben.
    Wenn es den zuerst angegebenen beim jeweiligen User nicht gibt, dann soll der danach angegebene Skin-Screen verwendet werden.


    So hatte ich das zumindest verstanden.

    Gruß Sven (aka Dreamy)


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

  • Ok, da gibt man den neuen Screennamen an, der abweichend vom Classnamen ist.


    Aber wozu wird dann der alte Skinscreen noch angegeben?
    Also was bewirkt der 2. Eintrag?

    Gruß Sven (aka Dreamy)


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

  • Ok, das macht dann Sinn :winking_face:


    Ich habe da noch eine kleine Skinanpassung für das PTS vor.
    Da soll bei einem bereits vorhandenen Widget aus name=... dann source=... werden.


    Ich hab da noch keine Idee, wie ich das lösen kann, ohne dass jemand einen GS bekommt.


    Wer das neue Plugin mit dem alten Skinscreen nutzt, bekommt nur ein leeres Feld, was ja gerade noch ok wäre.
    Wer aber das alte Plugin mit dem neuem Skinscreen nutzt, bekommt einen GS (zB. falls es vor dem offiziellen DP-Pluginupdate schon ein Skinupdate gibt)


    Was wäre denn da die beste Variante, das elegant zu lösen?


    Oder sollte ich da einfach einen neuen Skinscreennamen vergeben und nur diesen angeben. Da könnte dann nur die Optik nicht zum Userskin passen, sofern es im Userskin den neuen Skinscreen noch nicht gibt.

    Gruß Sven (aka Dreamy)


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

  • Ich denke es geht so:


    1. Skinscreen wird infolgender Reihenfolge gesucht: Skin_user, skin, skin_default, Puginintern
    2. Skinscreen wird dann in gleicher Reihenfolge gesucht


    Beim ersten Treffer wird der gefundene Skinscreen verwendet.


    Allerdings bin ich mir bei der Reihenfolge bei Skin_user, skin, ... nicht ganz sicher oder ob da noch was fehlt :winking_face:

    Gruß Sven (aka Dreamy)


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

  • @Sven H: das ist ja die reihenfolge der skin files... und das ganze dann nochmal fuer alle screennamen in skinName[].
    das ist ja wahnsinn... :smiling_face:
    wobei skinname eigentlich falsch ist... denn es sind ja screennamen, oder?

    2 Mal editiert, zuletzt von alpha ()

  • also irgendwie verstehe ich die mimik noch nicht so recht...
    z.b.

    Code
    if config.EMC.use_orig_skin.value:
          self.skinName = "EMCMediaCenterOwn"
    else:
          self.skinName = "EMCMediaCenter"


    da haette ich erwartet, dass er im if-fall das eingebaute xml nimmt und im else-fall in den skin files nach einem screen "EMCMediaCenter" sucht.
    aber: "EMCMediaCenterOwn" ist nirgends definiert und die eingebaute xml hat den namen "EMCMediaCenter".


    Code
    <screen backgroundColor="#ffffffff" flags="wfNoBorder" name="EMCMediaCenter" position="0,460" size="1280,240">

    merkwuerdig...

  • Macht er ja auch.
    Aber nur, wenn es den Skinscreen nicht in den üblichen Skindateien gibt.


    Bist du dir sicher, dass es die in der xml nicht gibt?
    (Konnte jetzt nicht nachschauen)

    Gruß Sven (aka Dreamy)


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

  • also er sucht dann im if-fall in den ueblichen skinfiles nach "EMCMediaCenterOwn", findet nix und nimmt dann den eingbauten, obwohl der "EMCMediaCenter" heisst?

  • Was in der xml steht ist doch völlig bums, die Namen dort haben keine Funktion da kann stehen was will. Und klar gibt es EMCMediaCenterOwn nicht das ist ja gerade dafür da dass man die Verwendung des internen Skins forciert.

  • und noch ne kleine schmakazie:
    wenn kein skinName angegeben ist, dann sucht er wohl by default nach einem screen mit dem klassennamen bevor er den eingebauten nimmt.