skinset string anwenden aber wie?

  • Hallo,


    habe da nen problem mit meinen widgets, und zwar habe ein submenu mit einträgen unter Filme, wenn ich daraufklicke kommt ein custom menu mit der auswahl der widgets die man gerne hätte zb, "NEUE FILME2 oder "ANGEFANGE FILM" usw usw:

    In diesem customwindow lasse ich wenn man jetzt auf zb "zufällige Filme" klickt den string setzten :

    Code
    <onclick>Skin.SetString(widget_filme_angefangen,special://skin/playlists/zufällige_filme.xsp)</onclick>


    dann in der liste der content sieht so aus :

    Code
    <content target="video">$INFO[skin.string(widget_filme_angefangen)]</content>


    das geht auch soweit, nur ich möchte ja indem custom window das ganze global setzen, das heisst wenn ich jetzt zb im submenu auf "Neue Filme" klicke kommt das custom window und ich habe die auswhl der widgets die er nehmen soll, wenn ich dann auf angefangen drücke möchte ich aber das mit dem selben custom window, es möglich ist die contents des angefangen zu setzten aber das geht ja so nicht, dann muss ich die auswahl im custom window für jeden einzelnen menüpunkt erstellen sprich 18 sub einträge = 18 listen. und das muss doch auch anders gehen....

    oder habe ich da nen denkfehler drin?
    danke

  • Ich gkaube ich kann das schwer erklaren..

    Also nochmal ich mochte ein globales custom window haben keine 40 custom windows..

    Das problem ist wenn ich im submenu punkt neue filme bin dann das custom offne kann ich das setzten und umschalten.

    Klicke ixh dann auf angefang. Offnet sich dasselbe custom window mit widget auswahl aberdwenn ich dann draufklicke passiert unter neue filme nix, ist ja logisch weil ich den onclick befehl nur fur widget1 habe.

    Also muss ich irgendwie den onclick so erweitern das er erkennt wo er gerade ist also ob unter neue filme oder angefange usw

  • Dann setz den String den du schreiben willst in ein Property im Home und gib den mit..

    Im Home beim öffnen des Dialoges:

    Code
    SetProperty(Widgetstring,widget_filme_angefangen,xxx)

    In der Auswahl der Widgets

    Code
    <onclick>Skin.SetString($INFO[Window(xxx).Property(Widgetstring)],special://skin/playlists/zufällige_filme.xsp)</onclick>

    Dann wird die selbe Playliste für alle strings mit einem Button geschrieben..
    Mir ging es drum ob du bei jedem Button dieselben Widgets haben willst oder nicht.. Dann bringt dir die Methode nämlich auch nicht viel..

    Aber wenns die selben sind geht es so eben in einem..
    Wobei dann dein Target evtl. auch mit führen musst wenn auch Music geben sollte..

    Grüße

  • ich komme ehrlich gesagt nicht mit :) kapiere gerade nur bahnhof :thumbup: .

    also ich mache das per custom windows speich fur jeden sub nen eigenes muss ich alleine schon weil nicht alle widgets allen content vertragen hab ja listen und panels :)

  • Du willst bei Button 1 auf String 1 ein Widgets setzen.

    Code
    <onclick>Skin.SetString(String1,Widget1)</onclick>

    Auf Button 2 in String 2 das gleiche Widget.

    Code
    <onclick>Skin.SetString(String2,Widget1)</onclick>

    usw..

    Der Normale Weg wäre ja jetzt entweder für jedes eine Eigene Liste bzw. Custom Window. Oder du setzt im Home etwas mit beim Öffnen damit du was zum abgleichen hast.

    Code
    <onclick>Skin.SetString(Tempposition,1)</onclick>


    beim Button 1

    Code
    <onclick>Skin.SetString(Tempposition,2)</onclick>


    beim Button 2
    usw..

    Dann könntest in deinem Dialog mit einem Button ja beide setzen

    Code
    <onclick condition="Stringcompare(Skin.String(Tempposition),1)">Skin.SetString(String1,Widget1)</onclick>
    <onclick condition="Stringcompare(Skin.String(Tempposition),2)">Skin.SetString(String2,Widget1)</onclick>

    Soweit Korrekt?

    Nun Artet selbst das ja richtig aus bei der Menge..

    Jetzt kommt das Property ins spiel:

    Wenn ich nun sage ich will in x Positionen das gleiche Widget setzen also Widget1 an 20 Positionen, hättest so ja 20 clicks auf einem Button oder zwanzig Fenster oder?

    Wenn ich nun sage der rechte teil, also Widget1 ist 20 mal gleich, und nur der Linke verändert sich:

    Setze ich im Home ein Property mit dem Namen des Strings drin:
    Bei Button 1

    Code
    <onclick>SetProperty(Widgetstring,String1,xxx)</onclick>
    <onclick>ActivateWindow(Customsetting Fenster)</onclick>

    Bei Button 2

    Code
    <onclick>SetProperty(Widgetstring,String2,xxx)</onclick>
    <onclick>ActivateWindow(Customsetting Fenster)</onclick>

    usw..

    So, nun steckt in einem Property das du beim öffnen deines Custom Windows gesetzt hast immer dein Name des strings..

    Jetzt kannst mit

    Code
    <onclick>Skin.SetString($INFO[Window(ID des Customsetting Fensters).Property(Widgetstring)],special://skin/playlists/zufällige_filme.xsp)</onclick>

    Für alle deine Buttons die Playliste zuordnen.

    Button 1 gedrückt landed es im String1, bei Button 2 im String2 usw..

    Und jetzt kannst selbst 100 Plätze verwenden, das Click bleibt immer gleich und muss nie erweitert werden!..

    Nur da "ä" solltest Wegmachen.. Kodi kann keine Umlaute entpacken beim Instalieren..

    Soweit Richtig oder?

    Grüße

  • Geschmackssache.. So ist es halt verzweigter, ich kann aber viele Clicks sparen, und muss nur einen ändern wenn die Playliste anders heißt z.B...
    Mach es so wie es am leichtesten in ner Woche noch nachvollziehen kannst..

    Verbal unterwegs machte nichts, ich hab nur nicht Verstanden ob es auch Einschränken willst. Die Methode bringt ja nicht viel wenn es beim Button 3 dann andere Widgets gibt, oder du noch bereits verwendete Ausschließen willst.
    Persönlich würde ich es egal wie wenn dann immer in einem Window machen. Dann wären mir 20 gleiche Clicks mit Condition noch lieber als in 20 Fenstern :) ..
    Dann kannst wenigstens den Klick eines Widgets bei 20 Klicks in einem Button Ändern und musst nicht 20 Dateien aufmachen und Kontrollieren damit keine Vergessen wird..

    Propertys sind halt etwas Codesparender, aber wenn es dir schwerer fällt das Nachzuvollziehen macht das den Kohl auch nicht Fett :).
    Dann setz einen String im Home als Beispiel und gib dem einen Klaren Wert mit wie die Position.

    Herangehensweisen gibts ja immer mehrere. Unterschied wird es kaum machen. Ist denk ich eher Geschmackssache.
    Ob nun so, anders, oder nochmal anders mit einem Property für die Position damit es nicht in den Settings landet - brauchst ja eigentlich dann danach für nichts mehr..

    Grüße

Jetzt mitmachen!

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