Beiträge von Marc0810

    soll bzw. muss man auch nicht. Die wühlerei in so viel Code muss einem eben liegen. Ungeduldig darf man da nicht sein;).
    Wenn aber mal der Knoten geplatzt ist und man im Ansatz versteht wie was funktioniert dann erklärt sich vieles von selbst.

    Dazu muss man aber einiges an Zeit investieren. Leider gibt es durch die vielen Möglichkeiten eben immer mehrere Wege zum Ziel,
    und oft hat jeder Weg so seine Einschränkungen. Da kann man gut und gerne den Fortschritt von einer Woche auch mal getrost in
    die Tonne treten weil man leider immer erst danach wenns fast fertig ist merkt das wieder irgendwo was nicht so funzt wie man es genre
    hätte oder die Nachteile die Vorteile überwiegen.

    Wer da schnell Resigniert der muss es lassen, zumindest was größeren Code betrifft. So kleine Änderungen gehen natürlich da Einfacher, also keine
    Angst davor;).

    Schön das es klappt, mal schauen wie lang es dauert bis dich das nächste "stört";)..

    Grüße

    Eigentlich ist es was die einzelnen Möglichkeiten Betrifft recht gut Dokumentiert im Manual
    https://kodi.wiki/view/XBMC_Skinning_Manual

    Leider (oder Gott sei Dank??) ist der Skinengine teilweise bis auf die kleinste Kleinigkeit "heruntergebrochen".
    Allein die in Kapitel 13 aufgelisteten Boolean_Conditions lassen sich beliebig Kombinieren mit den Operatoren für "trifft zu, trifft nicht zu und plus für eine Kombination mehrerer".
    Dazu kommen noch die verschiedenen Dialoge die auch noch alle unter einen Hut gebracht werden müssen..
    Da ist recht wenig Hardcoded in Kodi. Das macht es schon kompliziert - da geb ich dir Recht.
    Aber auch das hat den Vorteil das es fast so sein muss wenn man im Layout alles selbst bestimmen kann - ein Sortletter der vom Core selber käme könnte ich nicht weglassen oder anderst herum
    z.B. Präsent in eine Kopfzeile einbinden egal ob man scrollt oder was sich in der Liste befindet als Designelement.

    Das führt dann leider auch zu sowas

    Code
    <visible>!System.HasModalDialog</visible>
    <visible>Container.Scrolling</visible>
    <visible>!Container.Content(seasons)</visible>
    <visible>String.IsEqual(Container.SortMethod,$LOCALIZE[551]) | String.IsEqual(Container.SortMethod,$LOCALIZE[561]) | String.IsEqual(Container.SortMethod,$LOCALIZE[558]) | String.IsEqual(Container.SortMethod,$LOCALIZE[557]) | String.IsEqual(Container.SortMethod,$LOCALIZE[556]) | String.IsEqual(Container.SortMethod,$LOCALIZE[563])</visible>


    Bei deinem Popligem Buchstaben...

    Nicht sichtbar bei Modalen Dialogen wie OK, Ja/nein sind das glaube ich, Plus nur sichtbar wenn gescrollt wird aber nur wenn es keine Staffel ist und wenn der Sortiermodus noch irgedeiner ist der Alphabetisch ist.

    Das alles noch Kombiniert in einem Visible wie

    Code
    <visible>!System.HasModalDialog + Container.Scrolling + !Container.Content(seasons) + [String.IsEqual(Container.SortMethod,$LOCALIZE[551]) | String.IsEqual(Container.SortMethod,$LOCALIZE[561]) | String.IsEqual(Container.SortMethod,$LOCALIZE[558]) | String.IsEqual(Container.SortMethod,$LOCALIZE[557]) | String.IsEqual(Container.SortMethod,$LOCALIZE[556]) | String.IsEqual(Container.SortMethod,$LOCALIZE[563])]</visible>

    führt dann in fast 100 xml Dateien schon dazu das vieles in Kombination miteinander kaum Kontrollierbar ist und man immer wieder 3 Monate später mal einem Fall begegnet wo man wieder Nacharbeiten muss.

    Aber wem sowas Spaß macht hat im Skinengine schon unendliche Möglichkeiten sich auszutoben, das hat enigma sicher nicht;).

    Grüße

    beim ersten blendet er die buchstaben (habe es auf delay 2000") erst verspätet ein, aber ebenso lange bleiben die erhalten.

    Stimmt, jetzt wo du es schreibst;).. VisibleChange Animationen sind eine Kombi und werden bei Visible und Hidden verwendet mit denselben Werten abgearbeitet.
    Genausolang rein wie raus und wird deswegen auch selten Benutzt weil es nicht wirklich überall funktioniert.

    aber schön das es klappt. Musst aber nun bei jedem skinupdate machen...

    Grüße

    was könnte ich da machen?

    Hey,

    Wird wohl das sein aus der includes:


    was hast denn vor? entweder du löschst das ganze control einfach (deinen ganzen Code den gepostet hast) - dann kommt es gar nicht mehr,
    oder du versuchst es mal mit einer geänderten Animation (ungetestet)

    Code
    <animation effect="fade" start="0" end="100" delay="500" time="200" reversible="true">VisibleChange</animation>

    Weiß nicht genau ob das bei VisibleChange Animationen auch geht, sowas nutz ich eigentlich nie.
    Alternativ mach die raus und sowas stattdessen rein.

    Code
    <animation type="Visible" reversible="false">
    		<effect type="fade" delay="500" start="0" end="100" time="400" />
    	</animation>
    	<animation type="Hidden" reversible="false">
    		<effect type="fade" start="100" end="0" time="300" />
    	</animation>


    Mit dieser sollte der Buchstabe verzögert nach einer halben Sekunde (delay="500") erst eingeblendet werden, plus die 400 ms bis die Animation zu Ende ist..
    Heißt wenn du kurz nur bild auf/ab drückst trifft die condition "Container Scrollt" so kurz zu das es schon vor den 400 ms wieder nicht mehr zutrifft.
    Je höher der Wert desto länger muss man schon Scrollen bis es eingeblendet wird - angegeben in Millisekunden (1000 = 1 sekunde).

    Würde ich mal so versuchen.. Dann käme es trotzdem noch beim länger scrollen.

    Grüße

    bin für jeden tip dankbar.

    Hey,

    einfach mal nach $INFO[ListItem.Sortletter] suchen, das ist nicht oft im Code (aber unter Umständen in jeder Skinversion etwas anders).
    Das ist der Anfangsbuchstabe..

    Wenn du den Codeblock ab <control type="label"> bis </control> in dem sich <label>$INFO[ListItem.Sortletter]</label> befindet löschst, käme er gar nicht mehr.

    Ich würde da aber eher einfach schauen ob dort eine Animation drin versteckt ist - dazu müsstest den Code posten (bin nicht auf dem laufenden bei dem Skin).
    Dann könnte man z.B. ein Delay Einbauen in eine Visible Animation oder VisibleChange, je nachdem was verwendet wird.
    Damit kann man dann eine Verzögerung nutzen die dafür sorgen würde das der Buchstabe nur noch kommt wenn man länger scrollt (z.B. nach einer Sekunde oder zwei).
    Finde ich bei langen Listen wenn man wirklich mal schnell mit Bild ab Taste von B nach W will eigentlich ganz nützlich.

    Grüße

    Ich vermute mal Zeitmangel - so kurz vorm Ende hatte er sowas mal angemerkt (zwischen den Zeilen).
    Das ihn diese Knoblerei bei der man schnell mal eine Woche mit vermeintlichen Kleinigkeiten verbringt
    - einerseits wegen der eigenen Hartnäckigkeit (man will es dann auch hinbekommen),
    und andererseits das es einem irgendwann eher ums Problem lösen als darum es unbedingt zu brauchen geht, etwas Nervt.

    Das kann, steckt man noch im eigenen Lernprozess bei dem man gleichzeitig auch noch fertig Ergebnisse haben will
    und man bei jeder Kleinigkeit eigentlich erst mal lernen muss wie man es macht, schnell viel Zeit verschlingen.
    Als Skinner muss man recht Hartnäckig sein was die Knoblerei betrifft, wenn nicht kommt man gar nicht
    soweit bei der Masse an XML Dateien und Code. Das verliert man schnell die Relation dazu.

    Heutzutage sind ja auch die Ansprüche viel höher - früher ging das ja alles einfacher - da fing ein MOD mit ein paar Mini Miniänderungen
    an und man Lernte das alles langsamer als Heute.

    Wenn man sich dann vor Augen führt das er schon wenige Wochen später schon ein fast komplett konfigurierbares Home Menü mit Widgets ablieferte...
    Das ist schon Respektabel und ich will gar nicht wissen wieviel Stunden pro Tag er sich da reingehängt hat.

    Ich mach mir in den nächsten Wochen mal Gedanken zu einem Projekt - mal sehen was bei rauskommt.

    Grüße

    Das hat aber ein anderes "o"..

    Ich kann dir das Nachmalen, bis auf die Farben und diesen leichten Blaustich im Hintergrund und das "ENTERTAINMENT SYSTEM" bekommt man das gut hin denk ich.

    Hier mal der erste Versuch, zu mehr komme ich heut leider nicht mehr, Ist aber in Photoshop erstellt als Vektoren, Größe ist beliebig damit.
    Falls du Photoshop hast kann ich dir auch das Original schicken.

    kodinerds.net/wcf/attachment/25434/


    Edit:
    Musst noch verkleiner auf deine Wunschgröße, sind 8000 Pixel rum und sieht nur so Unscharf aus auf nicht 100%

    Grüße

    Da habt Ihr Recht - ich hätte den Skin auch nur dem Forum zuliebe am Leben gehalten. Das Skins oft Monster werden liegt leider auch daran das X Nutzer was anderes wollen. Da wird dann alles eingebaut damit man ja keinen Vergrault...

    Leider sind ja viele Nutzer recht "Egoistisch". Sobald man was kleineres machen will ist die Euphorie erst groß und schnell hat man so das Gefühl das sobald klar ist das nicht jeder Wunsch erfüllt wird, und sei er noch so Begründet Abgelehnt, auch schnell nur noch ein halbe Hand voll über bleibt.

    Das lohnt nur wenn man es selbst nutzt und die anderen Nutzer nur so "Mitlaufen".
    Leider auch der Grund warum dann viele auch so schnell verschwinden.

    Solang sich hier keine wirkliche Gruppe bildet die auch Gemeinsam entscheidet was rein muss, soll, darf, macht das finde ich nach Reichlicher Überlegung keinen Sinn, und der andere MOD scheint ja vieles Abzudecken was man brauchen könnte.

    Ich fand die Idee einfach gut etwas ohne Scripte zu machen und war eher überrascht wie gut das angenommen wurde (wenigstens eine Zeit lang).

    Mal sehen was noch so passiert wenn die 18ner veröffentlicht wird, gehe ich mal in mich;)..

    Grüße

    Super das es geklappt hat. Schade das vieles mittlerweile so ausgeartet ist das von "kurz drübersehen und Einbauen" nicht mehr die Rede sein kann was das Home betrifft.
    Zumindest alles was das Menüscript integriert hat. Und die Parameter haben es noch schlimmer gemacht;).
    Bleibt zu hoffen das sich der Skin nicht allzu oft ändert.

    Grüße

    dort kann ich tatsächlich mein Label nicht finden...

    Verstehe ich zwar nicht ganz, das onfocus in Containern war ja früher glaube ich sogar verboten wenn man im org Repo sein wollte, und auch immer etwas tricky.

    Dann könntest doch dort einfach mal eins dazu setzen mit deinem, dann siehst ja schnell ob was kommt.

    <onfocus>SetProperty(ListItem.DateTime,xxx$INFO[Container($PARAM[widgetid]).ListItem.Property(DateTime)])</onfocus> einfach mal ohne Condition am Anfang der VAR sollte dir wenn es denn das Richtige ist.
    Dann sollte mit Windows.Property(ListItem.DateTime) ja wenigstens xxx ankommen wenn es diese Codestelle ist.

    Das ist alles doch viel zu kompliziert für meinen Geschmack. Das muss doch auch einfacher unzusetzen sein.

    Er setzt ja in der Shortcut Overrides z.B. sowas:
    <shortcut label="1039" type="32020" icon="DefaultAddonPicture.png" widget="addon" widgetType="picture" widgetTarget="pictures">addons://sources/image</shortcut>

    widgetType müsste dann ja in deinem Menüinclude landen. Wenn du dort jetzt einfach bei deinem Serienplaner reinschreiben würdest, wäre das nicht bedeutend Einfacher einfach eine eigene Info getrennt von dem anderen Bling Bling einzufügen? Dann brauchst auch nicht jedes mal bei Änderungen Nachvollziehen an welcher der hundert Stellen jetzt wieder was klemmt.


    Dann könntest du dich einfach auf die ID der Homemenüliste beziehen und mit String.IsEqual(Container(ID).ListItem.Property(widgetType),Serienplaner) das ganze Anzeigen lassen.

    Müsstest mir vielleicht mal als Skin schicken - so ganz kann ich noch nicht Nachvollziehen weil diese Art so verschlungen ist das man es fast "am Stück" erfinden muss und zwei Tage später schon selbst nicht mehr weiß wo es hackt;)..

    Grüße

    $INFO[Window(Home).Property(ListItem.Property(DateTime))]

    Ja, wem sagst das.. Einfach ist oft was anderes wenn man sich den Code Ansieht wirds einem auch schwummerig;).

    nicht in das Windows(Home) übergeben?

    Sicher das das Property so korrekt ist? $INFO[Window(Home).Property(Property Name)] ist ja der Aufbau.
    Du musst also ja irgendwo das Label ListItem.Property(DateTime) aus dem Container als Info übergeben haben in ein Window Home Property.
    Mit SetProperty(Name,$INFO[Container(xxx).ListItem.Property(DateTime)], home).
    Dann hätte man die Info in einem Property - für ein anderes Fenster, einen Infodialog z.B..
    Und du brauchst es jetzt in einem Property weil es ein anderes Fenster ist in der sich die Info befindet?
    Dazu müsstest die ja irgendwie auch schreiben...

    Bei deinem Code müsste ja dein Property ListItem.Property(DateTime) heißen als Name oder les ichs falsch?

    Wenns dasselbe Fenster ist müsste das dann nicht eher

    Code
    <value condition="!String.IsEmpty(ListItem.Property(DateTime))">[B]$INFO[ListItem.Label2,, • ]$INFO[ListItem.Property(DateTime),, • ]$INFO[ListItem.Duration,, min. • ]$INFO[ListItem.Genre][/B][CR]$VAR[HomeMenuWidgetInfoPlot]</value>

    sein?

    Ein Property in einem Container ist ein "richtiges" Infolabel und wird auch so aufgerufen nur eben ListItem.Property() statts nur ListItem.Info.

    Den Umweg über Propertys macht man ja nur wenn die Info jetzt in einem eigenen Custom Window wäre das nicht über den eigentlich Content verfügt.
    Das hast ja im Silvio NOX immer mit "oninfo" gemacht gehabt. Aber ich glaube das geht nicht mehr richtig.

    Grüße

    Mal sehen ob ich das für Version 18 hinbekomme. Ich müsste aber mit der dann veröffentlichten Originalversion von 18 Anfangen und nach und nach dann Features einbauen weil ich keinen Plan habe was alles geändert wurde.
    Das wird sicher dauern weil ich nur am Wochenende mal ein paar Stunden dafür hab.

    Mein problem ist aber weiterhin das ich mir noch Unsicher bin. Ich verstehe den ganzen Skin leider nicht und mir will da vieles nicht Einleuchten weil ich es selber nicht brauche.
    Und wenn man nicht mal den Sinn in einem Widget sieht ist es schwer was zu verbessern das 3 oder mehr pro Menüpunkt hat;)..

    Grüße

    Ich komme da einfach nicht weiter...

    Funktioniert denn die VAR außerhalb als schnödes label irgendwo im Home?

    Ich kann ja nur im Github schauen und das dürfte ne andere Version sein:

    Dort finde ich nur sowas <label>$VAR[HomeWidget$PARAM[id]SubTitleVar]</label> das aus dem template include WidgetSubTitle,
    Das ist dann verbaut in der Includes_Widgets.xml, endet irgendwann nach inlcude im include in <include name="Info"> das wiederrum über visibles verfügt wie

    Code
    <visible>String.IsEmpty(Container($PARAM[id]).ListItem.Property(Label3)) + String.IsEmpty(Container($PARAM[id]).ListItem.ChannelName) + String.IsEmpty(Container($PARAM[id]).ListItem.Artist) + String.IsEmpty(Container($PARAM[id]).ListItem.AlbumArtist) + String.IsEmpty(Container($PARAM[id]).ListItem.AddonName) + !$PARAM[widgetSquare] + ![ControlGroup(90010).HasFocus + String.IsEqual(Container(9000).ListItem.Property(WidgetType),pvr)] + ![ControlGroup(90020).HasFocus + String.IsEqual(Container(9000).ListItem.Property(WidgetType.2),pvr)]</visible>


    Das ist schon alles sehr verwirrend und mich wundert es ja eher wie oft da noch was richtiges bei rauskommt wenn man sich ansieht wie scheiß kompliziert das ist für sowas popliges wie Widgets auswählbar zu haben;).

    Wenn das bei deiner Version ähnlich im Code ist, könnte es jetzt durchaus sein das die Info eigentlich da ist aber das infopanel nicht sichtbar ist weil dieses Include im Prinzip auch wieder mit irgendwas ausgeblendet werden muss damit es nicht vollkommen leer daherkommt wenn quasi die "Hauptinfo" fehlt. Das könnte jetzt WidgetType sein oder ein ListItem..

    Ich denke mal wenn deine VAR als Label kommt läuft es auf sowas raus wenn du glück hast ist das nur eine Kleinigkeit.

    Grüße

    Stimmt - ich tu mir halt leichter im Skincode;).. Und alles was Phyton betrifft erfordert schon mehr Einarbeiten als ein bißchen Skincode.

    Alternativ ginge es auch mit sowas:

    RunScript(script.skin.helper.service,action=textviewer,header=Mein Titel,message='Mein Text')
    Der Sollte den Dialog Textviewer nutzen.

    Hab ich aber nicht versucht ob man dort auch direkt Formatieren kann.
    Macht aber auch nur Sinn wenn man es auf eine Remote Taste legen würde weil man es sonst ja auch wieder in den Skincode Einbauen müsste.


    Grüße

    Wäre das nicht im Skincode leichter?

    Der Defaultskin hat z.B. ein Custom Window für die Plotanzeige in den Infofenstern:

    Mit

    Code
    <onclick condition="!String.IsEmpty(ListItem.Plot)">SetProperty(TextViewer_Header,$LOCALIZE[207],home)</onclick>
    						<onclick condition="!String.IsEmpty(ListItem.Plot)">SetProperty(TextViewer_Text,$ESCINFO[ListItem.Plot],home)</onclick>
    						<onclick condition="!String.IsEmpty(ListItem.Plot)">ActivateWindow(1102)</onclick>

    setzt man den Text in zwei Propertys und öffnet das Fenster.
    Das könnte man auch ohne Addon von Überall mit einem Button genauso machen.

    Code
    <onclick condition="!String.IsEmpty(ListItem.Plot)">SetProperty(TextViewer_Header,Mein Titel,home)</onclick>
    						<onclick condition="!String.IsEmpty(ListItem.Plot)">SetProperty(TextViewer_Text,Mein Text,home)</onclick>
    						<onclick condition="!String.IsEmpty(ListItem.Plot)">ActivateWindow(1102)</onclick>


    Wenn das Layout OK ist ginge das ohne große Korrekturen...
    Im Text kann man dann mit [CR] für Zeilenumbruch und den Tags Bold [ B ] , italic usw. auch eingeschränkt noch etwas "Formatieren".

    Grüße

    Übrigens klappte das prinzipiell, wenn ich direkt das Image einsetze; ich habe aber hier das include 'InfoWallMovieLayoutSmall', das in der View_54_InfoWall.xml definiert wird, eingesetzt und verstehe nicht, warum das nicht klappt...

    Hey,

    Ohne es versucht zu haben:

    <focusedlayout width="460" top="-300"> könnte es sein. focusedlayout hat eigentlich nur width und height soweit ich weiß. Das könnte dann Auswirkungen haben, warum wenns nur includiert wird, weiß ich auch nicht.
    Generell soweit mir bekannt ist sollten die groups bei slide Animation alle Positionstags und Dimensions haben um solche Fehler zu verhindern. Also alle wie left, top, width und height.
    Sonst kann es zu Fehlern kommen weil die Koordinaten nicht Richtig gesetzt werden, und danach siehts ja aus.

    Ich würde man überall die Richtige Höhe und Breite eintragen (in alle beiden groups) und eine höhe in die Liste ohne das top="-300">. Das dürfte sowieso ignoriert werden.


    Grüße

    System.HasAlarm() # auslesen des Default-Timers (shutdowntimer) oder
    System.HasAlarm(meinTimer1234) # eben der des Timers "meinTimer1234" ausgelesen werden Letzeres geht aber nicht.

    Halt eine nicht so Populäre Geschichte das alles. In der Regel nutzt man im Skin ja höchstens Alarm als Verzögerung für etwas.
    Da braucht man alles andere wie HasTimer, IsEqual usw. nicht.
    Ich mein aber bei mir ging unter 17.1 im Skincode noch alles (ich bin ja dann ausgewichen zu Shutdowntimer) damit auch die Position verfügbar ist.

    Und das ist schon eine sehr seltsame Syntax:

    Das passt schon so. Erstes Komma ist immer Text davor und zweites Komma Text danach, also dann das Infolabel in Klammern z.B. (12 min.).

    So richtig logisch find ichs persönlich eh nicht mit der Rechnerei und recht Unsinnig das als Alarm laufen zu lassen von der Funktion her.
    Wenns als Timer ums Ausschalten geht würde ich mit da die Uhrzeit wünschen, daber das ist wohl zu kompliziert in der Eingabe wegen des Doppelpunktes.

    Ich muss mir da auch noch was schlaueres Überlegen, bin aber ja nicht so der Programmierer;).
    Wir nutzen AlarmClock ja für eine Erinnerung (mit Anzeige und Abdunklung des Bildes bis man clickt) und da fällt das Rechnen schon schwer wenn man um 19:38 einen Timer setzen will der um 21:50 Alarm schlagen soll.

    Grüße

    Wenn nicht, ist AlarmClock verbuggt oder die Implementation von System.AlarmPos() ist fehlerhaft.

    Kein Bug sondern ein Feature;)..

    Code
    System.AlarmPos 	Shutdown Timer position

    gilt nur für den Timer der auch shutdowntimer heißt, warum auch immer. Das ist sicher eine Feinheit, auf das wollte ich auch nicht raus, sondern auf die Nutzbarkeit.
    Es macht ja Null Unterschied ob ich den jetzt shutdowntimer taufe oder meintimer1456.

    Mein Hinweis "ich würde ihn genauso setzen wie im Ausschalten Menü" betrifft auch nur den Hinweis das man so auch diese Buttons noch Nutzen kann in Ausnahmslos jedem Skin.
    Ohne groß nochmal eine Taste zu belegen sollten das alle gängigen Skins implementiert haben.

    Heißt der shutdowntimer dann kann ich ihn auch noch ändern.

    Es gibt ja so nun zwei Möglichkeiten:

    • Man setzt ihn mit einer Zeit direkt im Knopf der FB
    • Man lässt nur den NumericDialog öffnen und gibt eine Zahl ein

    Dann schadet es ja nichts wenn der ebenfalls shutdowntimer heißt. Der name wird nur für Conditions benötigt und nirgendwo angezeigt.
    Ich habe aber den für mich großen Vorteil das man einen "Sicherheitknopf" hat zum Abbrechen/Anzeigen was noch übrig ist.
    Da jeder skin ein

    Code
    <item>
    						<label>$LOCALIZE[20151] $INFO[System.AlarmPos,(,)]</label>
    						<onclick>CancelAlarm(shutdowntimer)</onclick>
    						<visible>System.HasAlarm(shutdowntimer)</visible>
    					</item>

    hat das eben nur angezeigt wird wenn der Timer so heißt.

    Mit einem anderen Timernamen und sich einmal auf der FB "verdrückt" oder vertippt und zu spät gemerkt im Numeric Dialog, und ich hab keine Möglichkeit es abzubrechen außer nochmal eine Taste zuzuweisen oder nochmal einen Timer zu setzen (keine Ahnung ob man den Überschreiben kann, geht aber bestimmt).

    Wenn ich da von uns ausgehe - Frauchen drückt wieder vollkommen unkoordiniert die Falsche Taste (und ich habe gleich noch die Zeit mit gesetzt), dann bliebe mir nur eine Zweite mit CancelAlarm übrig.
    Spätestens nach dem zweiten drücken weiß keiner mehr ob es jetzt noch einen gibt oder nicht - man bekommt ja keine Anzeige ob einer gesetzt ist wenn man ihn anders nennt außer man editiert auch noch den Skin.

    So könnte man mit S Taste nachsehen ob was gesetzt ist und ihn auch abbrechen wenn was schief ging.
    Dagegen kann ja keiner was haben;). Ich bin da aus eigener Erfahrung schlau geworden wie es am besten geht da wir das auch im Skin nutzen und es ewig dauerte bis es "Sicher genug" war damit nicht ständig das falsche passierte;)..

    Grüße