ControlGroup.HasFocus Verständnisfrage

  • Hallo,

    Ich hätte mal eine Verständnisfrage dazu:

    ControlGroup(group).HasFocus(id)
    Returns true if the control group with id “group” has control id “id” as it's focused item. If “id” is not present, or is 0, then it will return true if the currently focused control is in the control group with id “group”. Note that if the control group with id “group” does not have focus, then this will still return true if the last focused item in the group had control id “id”.

    Vielleicht ist einer so Nett und erklärt mir das Verständlicher. Ich weiß immer nie ob der Fehler nicht vorm Rechner sitzt :( .

    Das Bezieht sich doch auf eine Grouplist oder?
    Es scheint aber nicht immer zu funktionieren, oder gibt es da Einschränkungen?

    Als Beispiel:
    Ich habe eine Liste die mit einer Variable im Content mit Playlisten gefüllt wird, anhand des Focus einer Grouplist.
    Also Button 1 = 101 usw.

    Eine Variable für Fixedlist Container 513 mit

    Code
    <variable name="Playlist513">
      <value condition="ControlGroup(100).HasFocus(101)">special://skin/playlists/Playlist1.xsp</value>
      <value condition="ControlGroup(100).HasFocus(102)">special://skin/playlists/Playlist2.xsp</value>
    </variable>

    Funktioniert nicht.

    Aber ein Hidden Label mit ID 5130 und einer temporären Variable die sich auf den Focus bezieht schon:

    Code
    <variable name="Playlist513compare">
      <value condition="ControlGroup(100).HasFocus(101)">1</value>
      <value condition="ControlGroup(100).HasFocus(102)">2</value>
    </variable>


    Code
    <variable name="Playlist513">
      <value condition="Stringcompare(Control.GetLabel(5130),1)">special://skin/playlists/Playlist1.xsp</value>
      <value condition="Stringcompare(Control.GetLabel(5130),2)">special://skin/playlists/Playlist2.xsp</value>
    </variable>


    Was ich auch nicht hinbekomme ist:

    Wenn ich z.B. 3 Buttons in einer Groupliste habe, kann ich da dann irgendwie ermitteln ob der Container leer ist?

    Also wenn Button 1 nach unten gedrückt wird zu Button 2 und der leer ist springe zu Button 3...

    Hab es schon mit <ondown condition="IsEmpty(Container(513).ListItem.Label)>103<ondown> versucht, und auch mit <onfocus> aber es passiert überhaupt nichts.
    Oder müssten das dann einzelne Buttons sein ohne Gruppe?.
    Der Logik nach müsste doch wenn Button 2 aktiv ist und der Container Leer ist, mit einem onfocus dann zum dritten Button springen?

    Grüße

  • interessant wäre noch wie deine group 100 aussieht. ich denke nämlich es ist vielleicht gar keine group sondern eher ein container....
    bg

  • Hallo,

    Bin Gerade zwar nicht Daheim, aber eigentlich ne normale Grouplist mit 27 einzelnen Buttons drin. Onup und OnDown ist in der Groupliste angegeben für die ganze Liste (liegt vielleicht daran?).

    Eigentlich ist das wie die SMS Navigation in der Version die schon hast. Nur eben ohne Action im Click.
    Die sind als include in der Viewtype drin und mit onright lasse ich die Einblenden mit einer Animation.
    Da hab ich quasi A-Z als Button und während des Buttonfocus andert sich meine Viewtype - Quasi ein One-To-Fly Filter. Nur ist ein Buchstabe leer kommt halt nix was nicht schlimm wäre, aber schlauer wäre es ja wenn er zum nächsten springt.


    Grüße

  • Zitat

    Hallo,

    Bin Gerade zwar nicht Daheim, aber eigentlich ne normale Grouplist mit 27 einzelnen Buttons drin. Onup und OnDown ist in der Groupliste angegeben für die ganze Liste (liegt vielleicht daran?).

    Eigentlich ist das wie die SMS Navigation in der Version die schon hast. Nur eben ohne Action im Click.
    Die sind als include in der Viewtype drin und mit onright lasse ich die Einblenden mit einer Animation.
    Da hab ich quasi A-Z als Button und während des Buttonfocus andert sich meine Viewtype - Quasi ein One-To-Fly Filter. Nur ist ein Buchstabe leer kommt halt nix was nicht schlimm wäre, aber schlauer wäre es ja wenn er zum nächsten springt.


    Grüße

    schöne idee!
    deine buttons von a-z sind also nicht in einem container verpackt?
    das onright, onleft usw. hat keinen einfluß auf die bedingung.
    bg

    p.s.: ich hab übrigens deine jumpsms scrollbar adaptiert. war die schon drin oder ist die von dir? wenn ich raten würde, würde ich sagen die war schon drin ;).

  • Hallo,

    Klar von mir :) , sieht man doch.. Wer sonst vergibt bestimmt niemand ID=16000 weil er null Überblick darüber hat damit nichts doppelt ist :P
    On-To-Fly Filter vermisse ich halt bei langen Listen wenns eh ne Datenbank ist. Und der Advanced Filter ist ja nicht wirklich Praktisch.
    Da kann ich gleich ins Home und Genre oder so öffnen.

    Mich hat halt gestört das es immer in der Kaymap brauchst. Deswegen wollte ich Playlisten versuchen ob das im Betrieb sinnvoll ist.
    Links und Rechts Überlege ich noch. Momentan ist Links zum gefilterten Container und Rechts zurück zum "normalen" Container. allerdings bin ich auch noch am Überlegen ob ich da noch andere wie Studio und Jahre auch gleich mit mache.
    Dann wäre rechts das nächste in meinem Fall dann Studio.
    Ist aber etwas Suboptimal wie ich gestern von Butchabay erfahren hab hier ist Content grad nicht Sortierbar. Eine Durcheinanderliste macht es eigentlich Sinnlos weil auch zu klein.
    War deswegen noch am Versuchen das auch Alphabetisch mit Playlisten zu machen. Aber da hab ich bei R wie RTL oder FOX dann schon 80 Ergebnisse :)

    Die Scrollbar hat übrigens die Tendenz bei mir das xbmc ab und zu nicht mehr Reagiert bei mir. Aber keine Ahnung an was es liegt.

    Grüße

  • ich hab mit der scrollbar keine probleme. habe sie aber auch noch hier und da angepasst und auch für andere bereich nutzbar gemacht. zb musik.
    passieren die abstütze bei jedem view?
    ich hatte ja schon von der ersten minute vor, solch eine sprungliste zu machen, aber für jeden buchstaben einzeln. habs aber immer vor mir her geschoben.
    daran erinnert hat mich dann dein mod. auch die ids habe ich (fast) übernommen :)
    dann werde ich dich in meinen nächsten update-news wohl erwähnen dürfen ;).
    bg

  • Hallo,

    Klar kein Akt, aber nur weil ich dir ein wenig kopierarbeit gespart hab bin ich auch nicht Böse wenn nicht.
    Ich Übernehme ja auch wo ich kann Ideen von anderen hier oder aus dem Forum. Das soll ja der Sinn dran sein.

    Die Scrollbar Stürzt eigentlich überall ab wenn man zu schnell nach dem Laden einer View die Scrollbar öffnet. Hab ich bei Gotham und Frodo auf zwei Rechnern.
    Seit ich drann rummache wieder öfter, davor ging es eine Zeit lang. Im Log steht aber nix. Es passiert halt nix mehr. Klicke ich mit der Maus rein kommt xbmc reagiert nicht mehr...

    Hast die die Datumsvariable mal angeschaut zum hervorheben der Epsioden die man in den letzten 10 Tagen gesehen hat?
    Die ist mein Brüller. :D

    Grüße

    Grüße

  • Hallo

    Aber hat was...

    Jetzt sind halt bei mir immer die Grau umrandet die zuletzt gesehen hast.
    Wäre ja aber auch als Overlay oder so recht brauchbar.

    Und da ich vieles auch zweimal anschauen... War mir das schon wichtig. Zumal ja auch viele Skins für mich unverständlich immer nur Premiered Date anzeigen.
    Also mich juckt das wenig wann was bei den Amis kam zumindest ab dann wenn ichs einmal gesehen hab.
    Vor allem bei Serien. Als Ob mit der Titel von 200 Folgen CSI so viel sagt. Da hilfst schon eher wenn man weiß wann man es gesehen hat.

    Darfst aber gern Verwenden. Das macht echt Krämpfe beim Erstellen :)

    Grüße

  • Hallo,

    Müsste ich schauen, aber ich bin da nie Tot.
    Das ist doch nur der Fullscreen wenn man auf der gerade abgespielten Episode wo die Vorschau läuft nach links drückt?
    Bei mir öffnet sich dann halt das Vollbild.

    Also mit
    <onleft condition="StringCompare(ListItem.Title,VideoPlayer.Title)">SetFocus(666652)</onleft>

    Das geht immer bei mir, nur Merkwürdigerweise geht der gleiche Code nicht im Widget Fenster. Da passiert gar nix aber Abstürze hab ich generel niergends außer der SMS Liste.

    [edit]Die Property Geschichte hängt ab und an die Teilweise oben meinen Hilfetext steuert.
    Aber sonst sollte es eigentlich gehen (Frodo und Gotham passte bei mir am Windows Rechner).[/edit]

    Grüße

  • Hallo,

    Kann das daran liegen weil der Button keine alternativ hat? also zurück zur Liste?
    Die Maus darf man halt bei dem Skin ja nicht anfassen. Sonst ist es Vorbei mit der ganzen Focus Geschichte...

    Da müsste man eh noch irgendwie die Serie auch noch einbinden. Auch bei meinem Mini preview Window ist es glaube ich noch so.
    Hab letztens festgestellt das es so ja auch aktiv ist wenn man in einer anderen Serie mit gleichem Episodentitel ist :).

    Grüße

  • Hallo,

    Kann das daran liegen weil der Button keine alternativ hat? also zurück zur Liste?
    Die Maus darf man halt bei dem Skin ja nicht anfassen. Sonst ist es Vorbei mit der ganzen Focus Geschichte...

    Da müsste man eh noch irgendwie die Serie auch noch einbinden. Auch bei meinem Mini preview Window ist es glaube ich noch so.
    Hab letztens festgestellt das es so ja auch aktiv ist wenn man in einer anderen Serie mit gleichem Episodentitel ist :).

    Grüße

    ich glaube buttons die ausserhalb des bildschirmes liegen, sind auch für die maus nicht erreichbar.
    vielleicht kannst du so etwas von dem fokusproblem umgehen.
    bg

  • Hallo,

    Ich versuchs heut Abend mal. Glaub aber fast ich hatte es schon mal Versucht. Größer als geht glaub nur bei ganzen Zahlen. Man müsste dann auch bestimmt Datum auch auseinandernehmen.
    Mit meiner ersten Version bin ich dann nach Sylverster für 10 Tage gescheitert weil es ja nicht mehr stimmte mit Jahr :) .

    Aber in der Version ist doch dann
    Condition 1 und 2 nur true am selben Tag des abspielen und nicht alle der letzten x Tage?
    Mit meiner Version muss ich ja irgendwie Rechnen in einer Variable.
    Deswegen hab ich mich ja so dran verbogen^^.

    Aber ich probier es trotzdem nochmal zur Sicherheit.

    Wann genau ist der Absturz jetzt passiert?
    Ich hab halt bisher noch Gotham RC1 drauf bei mir...

    Grüße

  • meine lösung ist auch nur als visible tag nutzbar. so kann man sich aber wenigstens eine grafik auf einfache art anzeigen lassen.
    damit das funktioniert muss das datum im gleichen stil angegeben werden, wie das lastplayed ausgegeben wird. deshalb "dd.mm.yyyy".
    der absturz kam als ich in der episodenansicht war, eine folge fokusiert hatt und nach links drückte. ich glaube als kein video lief.
    bg

    ps: gotham 13.0

  • Hallo,

    Zitat von blauesgruen

    thema datum: geht das nicht vielleicht auch mit einem
    IntegerGreaterThan(info,number)
    <visible>StringCompare(ListItem.LastPlayed,System.Date(dd.mm.yyyy))|IntegerGreaterThan(ListItem.LastPlayed,System.Date(dd.mm.yyyy))</visible>


    Stringcompare ja für alles was heute lief, IntegerGreaterThan funktioniert bei mir nicht, das ist immer True. Kann ja eigentlich auch gar nicht sein. Zuletzt gesehen kann ja nicht größer sein als das aktuelle Datum.


    Zitat von blauesgruen

    ich glaube buttons die ausserhalb des bildschirmes liegen, sind auch für die maus nicht erreichbar.
    vielleicht kannst du so etwas von dem fokusproblem umgehen.


    Denke das liegt am generellen Aufbau in Vollbildfenstern?
    Buttons liegen schon außerhalb, aber Generel verliere ich den Fokus zb durch

    Code
    <visible allowhiddenfocus="true">Control.HasFocus(7000) + !Window.IsActive(shutdownmenu) + !Window.IsActive(DialogYesNo.xml) + !Window.IsActive(progressdialog) + !Window.IsActive(okdialog)</visible>


    im VideoNav Menü. Bewege ich dann aber die Maus verliert eben die aktuelle View den Focus und das Menü wird eingeblendet, je nach Mausposition mit oder ohne Hintergrund. Denke nicht das man das beheben kann?


    Zitat von blauesgruen

    der absturz kam als ich in der episodenansicht war, eine folge fokusiert hatt und nach links drückte. ich glaube als kein video lief.


    War ein Fehler in der Navigation :) . onleft stand nicht 7000 sondern 5030. Bei mir stürzt aber nix ab, es kommt nur kein Menü. Merkwürdig, vor allem weil ich die ID im ganzen Skin nicht verwendet habe...

    [infobox]
    Einen On-To-Fly Filter habe ich mal für zwei Ansichten eingebaut, und Teste das erst mal ob sich der Aufwand überhaupt lohnt. Das ist aber in der Navigation ein echter Alptraum und auch verdammt kompliziert :) .
    Überhaupt nicht funktioniert aber ausblenden bzw. überspringen von leeren Buttons. Weder in einer Grouplist noch in einem ListContainer bekomme ich es hin das leer Einträge ausgeblendet, oder wenigstens Übersprungen werden.
    Je nach DB Größe hast so halt leere Einträge was echte Schade ist...

    Ich Denke das Problem dabei ist das "IsEmpty" erst beim Einblenden geprüft werden kann? [/infobox]
    Mit einem IsEmpty in jedem Button auf den Playlistencontainer

    Code
    <visible>IsEmpty(Container(xxx).ListItem.Label)</visible>


    Wird gar nix mehr angezeigt. Bei nur einigen Buttons die auf meinem Testrechner leer sind, werden die erst ausgeblendet wenn ich auf einem Button stehe der einen Eintrag enthält.
    Und in einer Variable kann ich ja nicht prüfen ob eine Playliste Einträge enthält???

    Was ich aber überhaupt nicht verstehe ist, warum das nicht mit <onfocus> geht? Logisch wäre doch das ich einfach

    Code
    <onfocus Condition="IsEmpty(Container(xxx).ListItem.Label)">16003<onfocus>


    im Button 16002, zum nächsten springe, geht aber nicht...

    Dazu ist mir noch nichts eingefallen... Außer die Buttons zusammenzufassen die potenziell am ehesten leer sind, also XYZ oder so, zu einem...


    Falls die Includes brauchen kannst sagst Bescheid. Vielleicht fällt dir ja was ein dazu...
    Aber bei genug in der DB sollte es auch so zu Verschmerzen sein :) ...


    Grüße

  • Hallo,


    Stringcompare ja für alles was heute lief, IntegerGreaterThan funktioniert bei mir nicht, das ist immer True. Kann ja eigentlich auch gar nicht sein. Zuletzt gesehen kann ja nicht größer sein als das aktuelle Datum.


    Kann sein, dass dann ein IsEmpty(ListItem.LastPlayed) den gleichen Effekt hätte. Aber das ist ja das gleiche wie das Häkchen für den gesehen Status. Ich denke, dann habe ich deinen Code falsch interpretiert.

    Zitat


    Denke das liegt am generellen Aufbau in Vollbildfenstern?
    Buttons liegen schon außerhalb, aber Generel verliere ich den Fokus zb durch

    Code
    <visible allowhiddenfocus="true">Control.HasFocus(7000) + !Window.IsActive(shutdownmenu) + !Window.IsActive(DialogYesNo.xml) + !Window.IsActive(progressdialog) + !Window.IsActive(okdialog)</visible>


    im VideoNav Menü. Bewege ich dann aber die Maus verliert eben die aktuelle View den Focus und das Menü wird eingeblendet, je nach Mausposition mit oder ohne Hintergrund. Denke nicht das man das beheben kann?


    dann fehlt im Grunde doch nur noch eine zusätzliche Bedingung, dass die View weiterhin sichtbar bleibt, auch wenn der Focus auf xy liegt.
    Auch ist es zu empfehlen Zeile für Zeile durch zu gehen um zu versetehen was da passiert. Auch wenn es viel arbeit macht, es ist manchmal sinnvoll, wenn man nach Fehlern sucht.

    Kannst mir ja deinen aktuellen Stand mal zukommen lassen, dann gucke ich in da mal rein. Denn so verstehe ich es noch nicht ganz.
    Es geht um die Liste mit den Buchstaben, wo dann zb. alles zum Buchstaben "A" angezeigt wird, wenn dort der Fokus liegt? Oder?
    bg

Jetzt mitmachen!

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