Skinning-Frage

  • SetFocus(xxx) ist die Button ID?

    yupp.. die muss dann ins oninfo statt des activate window - die controlle ob das window oder ein runscript aus dem Addon übernimmt der dann anhand deiner conditions..

    <control type="button" ID="999998">
    <onfocus condition="StringCompare(Container(9000).ListItem.Property(widgetType),tvhighlights)">ActivateWindow(1199)</onfocus>
    <onfocus condition="Container(8001).HasFocus(1)">RunScript(plugin.program.tvhighlights,"?methode=infopopup&detailurl=$INFO[Window(home).Property(TVHighlightsToday.1.Popup)]")</onfocus>
    </control>

    Wo ist egal, vor /controls ende.. Normal müsste da jetzt noch ein include rein für Hiddencontrol.. Gibts bestimmt im Skin, es nennt nur jeder etwas anders..
    Sind ja bestimmt schon ein paar drin.
    Man setzt damit meist die Koordinaten auch Minuswerte und packt dort texturen rein die leer sind - alles was nicht in deinem Control drinsteht kommt aus der Defaults.xml.
    Damit werden alle Button aufgefüllt wenns dort ein Default type Button gibt.. Packst dann keine leere Texture rein, es ist irgendwo im sichtbaren bereich, käme unter
    Umständen dort eine Texture wenn drüber fährst mit der Maus.

    ID´s würde ich nicht unbedingt so lange verwenden.. Ich hatte schon Probleme mit zu langen Nummern..
    Im Idealfall gehts damit dann..

    Grüße

  • also ich hab jetzt mal den butto wie folgt eingefügt..

    XML
    <control type="button" id="998">
    	<include>HiddenObject</include>
    	<onfocus condition="!StringCompare(Container(9000).ListItem.Property(widgetType),tvhighlights)">ActivateWindow(1199)</onfocus>
    </control>


    damit sollten ja dann die original Widgets ohne Problem Funktionieren.... Das Info Fenster wird auch aufgerufen aber wenn ich es schließe funktioniert die Navigation nicht mehr... ich kann nicht mehr das nächste auswählen....

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • damit sollten ja dann die original Widgets ohne Problem Funktionieren.... Das Info Fenster wird auch aufgerufen aber wenn ich es schließe funktioniert die Navigation nicht mehr... ich kann nicht mehr das nächste auswählen....

    Versuch mal noch in Custom Info ein <onunload>SetFocus(ID zu deinem Widgetpanel Container)</onunload> zu setzen.. Möglich das jetzt nur das stört das Kodi sich fürs Home den Letzten Focus merkt und deswegen nicht auf deinem Widgetcontainer zurückspringt..

    Grüße

  • Ich hab mich heute mal mit Bob im kodi-tv Forum unterhalten, der betreut ja das Script-Skinshortcuts und auch den Skin...
    Der hat mich dann auf eine Idee gebracht...

    Ich hab es jetzt so gelöst:

    Meine Statik-List Items im Include:


    und das OnInfi include dann so:

    und damit funktioniert der Aufruf dann...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Ich versuche grad das LatestNews Plugin einzubauen.
    Ich wollte dazu mein Custom_Window nutzen, das ich auch schon für TVHighLights nutze nur irgenwie
    klappt das nicht so richtig...

    ich habe es mit einer VAR probiert

    XML
    <variable name="CustomWidgetPlot">
    		<value condition="StringCompare(Container(9000).ListItem.Property(widgetType),latestnews)">$INFO[Container(8001).ListItem.Property(Comment)]</value>
    		<value condition="StringCompare(Container(9000).ListItem.Property(widgetType),tvhighlights)">$INFO[Window(Home).Property(TVHighlightsToday.Info.Description)]</value>
    	</variable>


    und ich komm nicht darauf wo der Fehler liegen könnte...

    im InfoPanel funktioniert (ist allerdings auch kein Custom_Window)

    XML
    <variable name="CustomWidgetIcon">
    		<value condition="StringCompare(Container(9000).ListItem.Property(widgetType),latestnews)">$INFO[Container(8001).ListItem.Property(Headerpic)]</value>
    		<value condition="StringCompare(Container(9000).ListItem.Property(widgetType),tvhighlights)">$INFO[Container(8001).ListItem.Property(Senderlogo)]</value>
    	</variable>


    die Propertys werden im Custom_Window gesetzt

    Code
    <oninfo>SetProperty(Widget.Print,$VAR[CustomWidgetPlot],home)</oninfo>


    aber sie werden nicht angezeigt...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • ich habe es mit einer VAR probiert

    hey,

    Hast geschaut ob überhaupt was ankommt aus deiner VAR?.
    Zum testen kannst da auch mal sowas wie xxx einfügen statts deiner Info.. Wenn das käme wüsste man schon mal das es an deinem
    $INFO[Container(8001).ListItem.Property(Comment)]
    liegt.. sonst könnte ja auch was an deinem value sein (dem Widgettype)..

    Sind da sonderzeichen drin? evtl auch mal mit einem ESCINFO statt Info versuchen..

    Grüße

  • also mit ESCINFO bin schon mal etwas weiter gekommen...

    Allerdings habe ich das Problem, wenn ich die $INFO[Window(Home).Property(TVHighlightsToday.Info.Description)] in eine VAR packe,
    wird diese entsprechend den conditions angezogen bei dem latestNews Widget klappt das auch ausgezeichnet nur leider mit dem
    TVHighLightsToday.Info.Description nicht... das wird nicht die Description vom aktuellen Item angezeigt sondern von dem das ich zufor aufgerufen hatte...
    Ich dachte das lässt sich vermeiden in dem ich das Property einfach Lösche

    XML
    <onunload>ClearProperty(Widget.Print,Home)</onunload>

    aber das funktioniert nicht...

    ich wollte auch testhalber die folgende Property löschen lassen


    XML
    $INFO[Window(Home).Property(TVHighlightsToday.Info.Description)]


    aber ich komm einfach nicht drauf, wie das entsprehende ClearProperty aussehen muss...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • also die skininternen löscht man eigentlich schon so.. wenn das mit denen des addons nicht geht hast da wohl keinen zugriff drauf weil sie das addon bereitstellt.
    Warum der dir das des vorherigen Anzeigt muss ja am Addon liegen oder?

    Da muss dir tdoe vielleicht mal antworten was da anders ist...

    Grüße

  • erst mal danke für die Antwort....

    Also ich denke das das die Variable immer das Letzt im "Speicher" hat... wenn ich das Plugin neu starte
    und erstmalig das Property Description aufrufe, wird auch alles korrekt geladen erst beim zweiten verschibt es sich um eins... Darum mein Gedanke, das Property per onunload zu löschen...

    Frage ist nur wir müsste das onunload dann aussehen?

    XML
    <onunload>ClearProperty(TVHighLightsToday.Info.Description,Home)</onunload>

    EDIT:

    über eine VAR wird das nicht gehen... die VAR wird zwar im Hintergrund Aktualisiert aber nicht direkt geändert sondern erst beim nächsten Aufruf...
    Das wird also so nicht funktionieren....

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

    Einmal editiert, zuletzt von sveni_lee (25. Februar 2016 um 09:00)

  • für skininterne schon, aber ich glaub kaum das du die des addons löschen darfst.
    Das müsste doch eher das addon machen oder?

    ClearProperty(Name,Fenstername optional, ID oder "Kurzbezeichnung", nur Notwendig wenn es sich in einem anderen Fenster befindet)

    Ist eigentlich richtig.

    Sprich, hast du ein Property für Home gesetzt, musst es in allen Fenstern außer im Home auch mit Window(Home).Property oder Clearproperty(xxx,home)
    ansprechen. Im Home geht es mit und ohne Angabe, sicherheitshalber und wegen der lesbarkeit würd ichs immer dazuschreiben.
    Bei Custom Windows wäre es die ID des Fensters..

    Wenn sich das allerdings nicht leert dann hast wohl keinen Zugriff aus dem Skin heraus und das Addon bräuchte ne art "Refresh" Befehl oder seh ichs falsch?
    Alles geht einfach nicht, je nach Addon.. Ich hab grad dasselbe problem mit Skin helper Widget random Genre die sich nur beim DB Update aktualisieren wollen und
    jedes mal "gleich Random" bleiben wenn ich das Widgetfenster öffne.. Ist dafür einfach nicht gebaut ;)

    Grüße

  • Ja, alles kann man wohl nicht haben...
    Also habe ich jetzt zwei weitere Möglichkeiten...
    Entweder ich versuche mit <visible> zu arbeiten was grad auch nicht klappt weil ein

    XML
    <visible>StringCompare(Container(9000).ListItem.Property(widgetType),tvhighlights)</visible>

    leider im custom_window auch nicht geht, da müsste ich irgendwie wieder ein

    <oninfo>SetProperty und dann das ListItem.Property(widgetType) ins Home setzen aber da mache ich auch irgendwas falsch...

    oder ich mache einfach noch ein Custom_Window...


    EDIT:
    bin jetzt ein bischen weiter...
    Ich habe jetzt folgendes Label

    XML
    <label>$INFO[Window(Home).Property(Widget.WidgetType)]</label>

    das gibt mir den entsprechenden WidgetType also "tvhighlights" oder "latestnews" aus.
    wie müsste jetzt das entsprechende StringCompare im <visible> aussehen?


    EDIT2: gelöst..

    XML
    <visible>StringCompare(Window(Home).Property(Widget.WidgetType),tvhighlights)</visible>

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

    2 Mal editiert, zuletzt von sveni_lee (25. Februar 2016 um 10:19)

  • Ich muß den Tread noch einmal hochholen.

    da wir ja mit schnell schritten auf Krypto zu eilen und das seit langer Zeit mal wieder ein "muß Update" sein soll, muß ich auch anfangen meine Sachen anzupassen...

    Und schon gehen die Probleme mit dem von mir verwendeten Skin los... Ich verwende immer noch den Aeon Nox Silvo mod... und habe ein update auf die neuste version gemacht um dort meine Anpassungen für den Serienplaner zu machen.
    Viele neue Skins verwenden nun skin-shortcuts für die widgets und PARAMS. Allein nur dadurch zu steigen hat mich eine halbe ewigkeit gekostet aber sei es drum, die Integration hat funktioniert und ich bin mit dem ergebniss zufrieden ABER ich habe ein Problem.

    in dem Infofenster müssen nun auch die Button angepasst werden damit man umschalten und Aufnahmen programieren kann. Also müssen diese beiden neuen Butten mit visible in Abhängigkeit zum Widget gesetzt werden...

    der Widget Name verbirgt sich unter $PARAM[Label]. Normalerweise also kein Problem.

    XML
    <oninfo>SetProperty(Widget.Label,$PARAM[Label],home)</oninfo>

    aber denkste, das Label wird nicht an home übergeben. mit all den Anderen funktioniert es ohne Probleme nur nicht bei diesem einem $PARAM.


    diese gehen alle...

    XML
    <oninfo>SetProperty(Widget,$PARAM[Widget],home)</oninfo>
    <oninfo>SetProperty(Widget.Type,$PARAM[widgetType],home)</oninfo>
    <oninfo>SetProperty(Widget.Target,$PARAM[widgetTarget],home)</oninfo>

    Hat Jemand eine Idee woran es liegen könnte?

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Parameter sind echt ne nervige sache :) .
    Allein schon weil so gut wie keine Kontrolle hast über eine Darstellung in einem "Kontrollabel" zum schauen was drin steht oder sonst wie..
    Wichtig ist das der Parameter auch im selben include content= verwendet wird. Nur dort hast im Prinzip Zugriff drauf da die ja Mehrfach
    mit derselben Bezeichnung vorkommen können..

    Fehlersuche ist da wirklich die Hölle - ich bin wieder weg von dem Mist.. Seit Krypton und der Umstellung des Scriptes auf diese Parameter
    ist mir das zu doof, weil es nun ohne gar nciht mehr gescheit funktioniert. Und so ca. 8000 Zeilen Templatecode wie in deinem seh ich echt nicht
    ein für ein paar widgets..

    Ein Mögliches Problem könnte nun natürlich bei dir auch sein das ja Parameter soweit ich weiß beim laden des Fenster "eingetragen" werden und dein
    Property im content da noch gar nicht bereit ist mit dem Widgetlabel.

    Oder das das Parameter im Template fürs script verwendet wird und dort dein $INFO[Container(ID Parameter).ListItem.Property(widgetname)]
    oder wie das heißt einträgt, und gar nicht direkt im Code verfügbar ist. Da musst ja nun auch noch Unterscheiden zwischen Propertys fürs Script und denen für Kodi.

    Aber das ist so speziell das dir kaum einer außer der Skinersteller helfen kann.

    Grüße

  • Ich hab Gott sei dank gefunden... Und es lag, wie Du schon dachtes, an dem include... in diesem Include wurde es andes benannt.
    Nicht $PARAM[Label]  sondern $PARAM[widgetName]

    Da muss man erst einmal drauf kommen...

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • deswegen lass ich das sein :) .
    Man hat ja fast 100 Fenster in Kodi, da wegen so ein paar widgets an die 15 000 Zeilen code zu erstellen und zu pflegen kann ja echt nicht sein.
    Dazu gibts mit script soooo viele möglichkeiten das es nicht mal Ansatzweise überall funktionieren kann.
    Aber schon mal Daumen Hoch das es gefunden hast.

    Grüße

  • Hi @Marc0810,

    ich mußß dich noch einmal etwas fragen.
    Ich versuche grad den 14 Tage-Guide für den SerienPlaner zu skinnen un komme irgenwie nicht weiter.
    Irgendwie kann ich mich in der Liste nicht bewegen...
    Ich habe folgendes probiert:


    die Liste wird auch schonmal mit dem Datum befüllt aber leider ich kann nicht innerhalb der Liste navigieren...

    Externer Inhalt i.imgur.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

  • Ich versuche grad den 14 Tage-Guide für den SerienPlaner zu skinnen un komme irgenwie nicht weiter.
    Irgendwie kann ich mich in der Liste nicht bewegen...

    Hey,
    Bewegen heißt beim öffnen des Fenstern wird kein Focus gesetzt? mit der maus focusiert gehts?
    Dem Aussehen nach würde ich mal sagen dir fehlt im header ein:

    Code
    <defaultcontrol always="true">9000</defaultcontrol>

    du musst Kodi ja irgendwo sagen welche ID bzw. welche liste den Focus erhalten soll.
    Selbst bei Kodifenstern muss das in der Regel im header passieren. Und bei eigenen eigentlich auch.

    Grüße

  • Hey,
    Bewegen heißt beim öffnen des Fenstern wird kein Focus gesetzt? mit der maus focusiert gehts?
    Dem Aussehen nach würde ich mal sagen dir fehlt im header ein:

    ja, genau das war es... jetzt funktioniert das ganze schon mal auf der vertikalen ebene... Super

    jetzt muß ich noch irgendwie die horizontale Ebene hinbekommen. Irgendwie bin ich mir nicht mehr so sicher ob
    mein dynamic content jetzt auch so funktioniert wie ich mir das vorstelle....

    Odroid N2+ 4GB 16GB eMMC CE
    TVHeadend Server/Client

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!