Skinning-Frage

  • ja schon... mein include ich auch so wie in deinem Bespiel aufgebaut....
    und wie gesagt, wenn ich auf dem Hilight stehe und OK drücke wird das auch aktualisiert...

    Ich frage mich grad ob ich mit einem <onfocus>SendClick...</onfocus> im focuslayout weiter kommen würde...
    also wenn das HighLight in den Focus rückt ein SendClick ausgeführt wird...

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

  • laut deiner VAR aber nicht. Da hast das vom Infoscreen drin..

    Wie sieht dann ein Click aus bei dir?

    Code
    <onclick>RunScript(plugin.program.tvhighlights,"?methode=infopopup&detailurl=$INFO[Window(home).Property(TVHighlightsToday.1.Popup)]")</onclick>


    Das führt ja zum Custom Window des Addons und nicht zu den Infos die du ohne hast.

    ohne wird das angezeigt, auch ohne Klick oder sonst was

    Code
    <label>$INFO[Window(home).Property(TVHighlightsToday.1.Title)]</label>

    mit aus der script-TVHighlights-DialogWindow das

    Code
    $INFO[Window(Home).Property(TVHighlightsToday.Info.Title)]

    Das kann nicht sein das das am Klick hängt - das hießt ja bei deinen anderen Widgets kommt die Info nur wenn man was drückt (falls es das Script so machen würde).


    Hast das mal woanders reingepackt außerhalb des ganzen Codes als label?

    <label>$INFO[Window(home).Property(TVHighlightsToday.1.Title)]</label>
    z.B...

    Das muss sichtbar sein.
    Icon geht ja auch.

    Ich frage mich grad ob ich mit einem <onfocus>SendClick...</onfocus> im focuslayout weiter kommen würde...
    also wenn das HighLight in den Focus rückt ein SendClick ausgeführt wird...

    Die onfocus in einem Container klappen aber nur beim "Ersten" mal, nicht wenn du im Container Scrollst..
    Wenn, müsstest das außerhalb über einen Button steuern. Quasi im onfocus des Container, wenns tvhightlight ist als widget zu einem unsichtbaren Button
    verlinken. Indem dann mit onleft Control.Move(Containerid,-1) und onright Control.Move(Containerid,1)..
    Entweder dann dort ein onfocus, wobei ich mit nicht sicher bin ob das nicht genauso ist mit nur einmal.
    In dem Fall müsstest dann mit nem zweiten onleft/onright im ersten button jedes mal mit SetFocus zu einem zweiten indem per onfocus das click
    auslösen und wieder per zweitem onfocus zurück..
    Aber das wäre schon extreme Biegerei und kann nicht sein das das gebraucht wird.
    Das muss auch so angezeigt werden.

    Grüße


    Grüße

  • Ich glaube wir haben etwas aneinander vorbei geredet...
    Für die Highlights-Übersicht nutze ich das Include wie ihr auch...
    da funktioniert auch alles...! Ich kann alle Propertys auswählen und die ändern sich auch
    entsprechend dem Widget-Item...

    Der Teil der über den Widgets Items angezeigt wird, ist im Grunde schon das Info-Window... nur alt mitlaufend
    und nicht durch einen Aufruf per click...

    Die Var die ich gepostet habe, war die description aus dem Info-Window...

    Ich möchte gern das das das Info-Window nicht durch ein <onclick> geladen wird sondern schon wenn das Item in den Focus kommt...


    Konversation hast eigentlich gesehen?


    ja, klappt für meine zwecke... Ich brauchs ja auch nur zum Skin bearbeiten...

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

  • Ich glaube wir haben etwas aneinander vorbei geredet...
    Für die Highlights-Übersicht nutze ich das Include wie ihr auch...
    da funktioniert auch alles...! Ich kann alle Propertys auswählen und die ändern sich auch
    entsprechend dem Widget-Item...

    könnte man so sagen, ja;)..

    Das wird dir nicht gelingen.. Das Fenster wird ja per Activate Window Focussiert - dein Focus ist ja dann da drauf.
    Sollte das automatisch kommen würdest ja nur bis zu Eintrag 1 kommen weil du immer wieder im Customwindow landest.
    Auf die "i" Taste könntest es sicher legen, mehr geht nicht so.
    Und da tdoe ja die Rquests nicht zu ausufern lassen wollte ist es ja Absichtlich so..

    Außer dann wirklich über zwei oder mehr Buttons die je nach Focus der Liste die Klicks ausführen..
    Also wie oben beschrieben und dann im zweiten verschiedene Onfocus mit Condition="Container.HasFocus(id)"

    RunScript(plugin.program.tvhighlights,"?methode=infopopup&detailurl=$INFO[Window(home).Property(TVHighlightsToday.1.Popup)]")
    RunScript(plugin.program.tvhighlights,"?methode=infopopup&detailurl=$INFO[Window(home).Property(TVHighlightsToday.2.Popup)]")
    usw...

    Da hast dann aber auch ne Verzögerungen drin - direkt beim Scrollen wird das sicher nicht kommen sondern eher verzöger es die ganze Navigation.

    Einstweilen versteh ich trotzdem noch nicht was der mehrwert ist außer die Buttons die auch nicht immer brauchst?
    Von den Infos her ist es außer das Rating, das eh nicht immer was anzeigt, odch so ziemlich dasselbe an Infos.
    Oder täusch ich mich da.. Kann gut sein, ich habs nicht wirklich produktiv eingesetzt.

    Grüße

  • Info musst schauen, wir haben teils das Problem das dort nur manche Conditions gehen..

    Im Prinzip aber gleich mit der Position..

    Also sowas wie
    <oninfo condition="Container(xxxx).HasFocus(1)">RunScript(plugin.program.tvhighlights,"?methode=infopopup&detailurl=$INFO[Window(home).Property(TVHighlightsToday.1.Popup)]")
    <oninfo condition="Container(xxxx).HasFocus(2)">RunScript(plugin.program.tvhighlights,"?methode=infopopup&detailurl=$INFO[Window(home).Property(TVHighlightsToday.2.Popup)]")
    usw..

    Je nach position des Panels ruft er dann nichts anderes auf als die Klicks in deinen Items..
    Wie es im Script geht kann ich dir nicht sagen.. Das hattest doch in einer VAR oder?
    Dann wäre es ja einfacher..

    Grüße

  • wo hast es genau eingebaut?

    Oninfo muss in den Header des Container..
    Und jedes <item> muss minimum ein onclick haben in einer Liste eines Contents.
    Entweder lässt es drin, oder du fügt ein <onclick>noop</onclick> ein.
    Das macht dann nichts..

    Grüße

  • Ich hatte in das include eingebaut... aber da funktioniert es ja nicht...

    In welchen Container müsste es den rein?

    hier weden die Properties für das ONIFO gesetzt...

    aber das ist auch wieder ein Include und nicht ein Container...

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

  • Dein oninfo1 include ist aber sicher in einem Container..

    Und wenn da jetzt

    <oninfo condition="Dieses Propertys fürs tvhightlight das das Visible steuert">RunScript(plugin.program.tvhighlights,"?methode=infopopup&detailurl=$INFO[Window(home).Property(TVHighlightsToday.1.Popup)]")</oninfo>
    unten dran hängst gehts nicht?
    Also das er nur dann das Script auslöst wenn der Focus auf dem einen Widget liegt?
    Aber wie gesagt.. oninfo mag irgendwie nicht alle conditions.. Seltsamerweise geht bei uns da aber ein "List.Item.IsCollection" für eine Setinfo..
    Kenn mich ahlt agr nicht aus mit diesem Aufbau mit Script - kann da auch nur raten was der da Überhaupt macht..
    Offenbar generiert er Propertys aus VAR´s des Widgets für ein Custom Infowindow.

    Grüße

  • also ohne condition=... funktioniert es aber mit leider nicht mehr...

    Im Log kommt dann folgender Fehler...

    Code
    ERROR: Window Translator: Can't find window der stellvertretende leiter des münchener bauamts. auch das erfahrene ermittlerteam um eva maria prohacek ist vor ort. sofort nach dem schockierenden vorfall beginnen sie mit den ermittlungen und geraten schnell in das düstere und korrupte netz münchener bauunternehmen. als ein suizid ausgeschlossen werden kann

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

  • also ohne condition=... funktioniert es aber mit leider nicht mehr...

    Im Log kommt dann folgender Fehler...

    hab ich auch schon gemerkt.. Ein Container.Content(genres) ging nicht - plan was dann da irgendwie was zu verlinken weil von Kodi eh nix kommt..
    Aber in einer regulären Liste kannst mit condition="ListItem.IsCollection" ein Custom Window für Setinfos drauf legen und "i" fürn rest geht trotzdem.
    Das haben sie wieder nicht zu Ende gedacht wie mir scheint..

    Lohnt dieser Biegerei überhaupt? wenn ich bei mir so schaue ist nur der Plot noch dabei, das Genre und die Bewertung bei manchen..
    Denk nicht das du da erfolg haben wirst. Außerdem geht auch etwas gegen tdoes Absicht nur die Infos abzurufen wenns sein muss um den Traffic
    nicht ausarten zu lassen :)
    Wo kommt den der Text her im Error. Schein ein INFO ESCINFO Problem zu sein das Auftritt wenn ein Property oder String schreiben willst der
    Text enthält mit Sonderzeichen, Kommas oder Anführungszeichen..


    Grüße

  • Lohnt dieser Biegerei überhaupt? wenn ich bei mir so schaue ist nur der Plot noch dabei, das Genre und die Bewertung bei manchen..
    Denk nicht das du da erfolg haben wirst. Außerdem geht auch etwas gegen tdoes Absicht nur die Infos abzurufen wenns sein muss um den Traffic
    nicht ausarten zu lassen

    also im Grunde ist es doch egal ob ich OK drücke oder Info... Ich möchte es ja nicht mehr als mitlaufende Information sondern als extra fenster, das mit <oninfo> statt mit <onclick> geöffnet wird...

    Wo kommt den der Text her im Error. Schein ein INFO ESCINFO Problem zu sein das Auftritt wenn ein Property oder String schreiben willst der
    Text enthält mit Sonderzeichen, Kommas oder Anführungszeichen..


    ich habe das mit dem <oninfo> nur für das erste Item gemacht, die anderen sind noch auf <onclick>... und es ist ein Teil aus dem Plott des anderen item, das wohl im "cash" bleibt....


    Lohnt dieser Biegerei überhaupt? wenn ich bei mir so schaue

    naja ist halt Hobby, der Weg ist das Ziel...

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

  • Na ein Oninfo ist eher für sowas gedacht:

    Code
    <oninfo condition="ListItem.IsCollection">ActivateWindow(1102)</oninfo>
    				<oninfo condition="Container.Content(genres) | Container.Content(years) | Container.Content(actors) | Container.Content(studios) | Container.Content(dircetors) | Container.Content(countries)">ActivateWindow(1103)</oninfo>


    Mache je nach Content der liste ein Windo auf..

    Aber wohl nicht für Runscript das entweder das reguläre info Überschreibt, dem in die Quere kommt, oder per Position deines Container sich ändert...

    Ich hab es auch nicht hinbekommen ihm zu sagen wenn man gewählt hat das in einem Content oder Widget einer I drückt und im Setting Extended Info gewählt wurde, führ es aus:

    Da dann ja für Serie ein anderes runscript brauchst wie für Filme..
    Das ging nur über ein SetFocus im Info zu einem unsichtbarem Button der das sobald er den Focus hat ausführt..

    Code
    <onfocus condition="Control.IsVisible(63) + Control.HasFocus(618) + [!Skin.HasSetting(ExtendedInfos) | IsEmpty(Skin.String(DefaultContentInfobutton)) | Stringcompare(Skin.String(DefaultContentInfobutton),Playliste öffnen)]">ActivateWindow(Videos,$VAR[videocontent_similar])</onfocus><!-- flex similar open -->
    		<onfocus condition="Control.IsVisible(63) + Control.HasFocus(616) + [!Skin.HasSetting(ExtendedInfos) | IsEmpty(Skin.String(DefaultContentInfobutton)) | Stringcompare(Skin.String(DefaultContentInfobutton),Playliste öffnen)]">ActivateWindow(Videos,videodb://tvshows/titles/$INFO[ListItem.DBID]/$VAR[viewglobal_video_value_lastseason]/)</onfocus><!-- flex focus season open -->
    		<onfocus condition="Control.IsVisible(63) + Control.HasFocus(617) + [Skin.HasSetting(ExtendedInfos) | IsEmpty(Skin.String(DefaultContentInfobutton)) | Stringcompare(Skin.String(DefaultContentInfobutton),Playliste öffnen)]">ActivateWindow(Videos,$VAR[videocontent_viewflex_seasonfocus])</onfocus><!-- flex uebrige season open -->
    		<onfocus condition="Control.IsVisible(63) + Control.HasFocus(628) + [Skin.HasSetting(ExtendedInfos) | IsEmpty(Skin.String(DefaultContentInfobutton)) | Stringcompare(Skin.String(DefaultContentInfobutton),Playliste öffnen)]">ActivateWindow(Videos,special://skin/playlists/episodes_recent.xsp)</onfocus><!-- flex neue episoden open -->

    Nur ist der halt mittlerweile 20 Zentimeter lang..

    Da du jetzt aber ja ein Custom Window öffnest, und dort ja keine Condition geht sagst, kannst ja nicht zu einem Button..
    Außer natürlich du lengst alles beide um:

    Nimm doch mal das raus

    <oninfo>ActivateWindow(1199)</oninfo>

    Dafür ein Setfocus(xxx).. Setz dir im Home irgndwo ein "Hiddencontrol" Button Control
    Mach dort das
    <oninfo>ActivateWindow(1199)</oninfo>
    als
    <onfocus>ActivateWindow(1199)</onfocus> mit deiner condition "Nicht TVHightlight"..
    Und dann noch ein "mit TVHightlight" und dort setzt dein Runscript rein..


    Das sollte doch gehen oder?


    Dann geht deine Infotaste immer den Umweg über einen Button - führt wenn nicht Hightlight Widget zum Fenster und wenn doch zum Runscript..
    Wenn das geht kannst dort ja deine Condition zur Container Platzposition aufführen als onfocus nacheinander für Platz 1,2,3 usw..

    Grüße

    Grüße

  • Nimm doch mal das raus

    <oninfo>ActivateWindow(1199)</oninfo>

    hab ich...


    Dafür ein Setfocus(xxx).. Setz dir im Home irgndwo ein "Hiddencontrol" Button Control
    Mach dort das
    <oninfo>ActivateWindow(1199)</oninfo>
    als
    <onfocus>ActivateWindow(1199)</onfocus> mit deiner condition "Nicht TVHightlight"..
    Und dann noch ein "mit TVHightlight" und dort setzt dein Runscript rein..


    SetFocus(xxx) ist die Button ID?
    also
    <control type="button" ID="999998">
    <onfocus condition="!StringCompare(Container(9000).ListItem.Property(widgetType),tvhighlights)">ActivateWindow(1199)</onfocus>
    </control>

    <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>

    oder hab ich das falsch verstanden?

    ist egal wo ich das in der Home.xml pltziere?

    </control>

    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!