Seite 1 von 1
[TVB#81] Lieblingsdialoge
Verfasst: 04 Mär 2017, 09:40
von private_lock
Hallo!
A) Erinnerungsfenster
Problem 1: Blinkende Scrollbalken: Manchmal erscheint der Dialog gerade so klein, dass sich TV-Browser nicht entscheiden kann, ob Scrollbalken nötig sind und blendet sie ein, um sie gleich wieder wegzunehmen und dann so schnell es ein Computer eben kann doch wieder neu anzuzeigen und wieder wegzunehmen. Das lastet einen Prozessorkern völlig aus.
Problem 2: mehrere Erinnerungen verdecken einander -> Vorschlag: auch unterschiedliche Laufzeiten im selben Dialog sammeln
- Sortiert nach früheste Anfangs-Zeit oben, falls gleich nach Sender-Position
- Countdown auf dem Schließen-Button immer für maximal Ende-Zeit
- Senkrecht möglichst automatisch die Höhe des Dialog anpassen, wenn Einträge hinzukommen oder ablaufen und entfernt werden (weiche Animation, "Schließen" nur langsam unter der Maus wegziehen)
- Einzelne Erinnerung manuell aus der Liste löschen, z.B. ein X-Symbol on Mousehover (Dialog schließt, wenn die letzte gelöscht wurde)
- Undo für manuell gelöscht Erinnerungen, solange die Erinnerung noch nicht die Ende-Zeit überschritten hat (Button im Dialog, falls noch offen wegen anderer Erinnerung & in Toolbar der Hauptfensters)
B) Nach dem Daten-Update informiert ein Dialog über Änderungen von verschiedenen Plugins: Erinnerungen, Markierungen, neue Lieblingssendungen ...
Problem 1: Der Dialog zeigt Scrollpanes in Scrollpanes ... die drei Bereiche sind senkrecht viel zu hoch, um in den kleinen Dialog zu passen -> Vorschlag, senkrecht maximieren
Problem 2: Häufig ist die selbe Sendung mehrfach betroffen -> Vorschlag:
- eine einzige Liste mit Sendungen, zeitlich sortiert nach Anfang, links ein Filter-Baum
- Default Filter "Alles"
- Weitere Filter je Plugin
- "neu", "weggefallen", "geändert"
- um eine Ändergung als solche zu erkennen, müsste man eine weggefallene Sendung einer neuen Sendung zuordnen: (gleicher Sender, zeitliche Überlappung, geringe Editdistanz des Titels)
- Mehrfachauswahl der Filter (z.B. keine "geänderten" aus Erinnerungen - vorher wurde erinnert, hinterher wird erinnert = uninteressant)
C) Suche & Suchergebnis
Problem 1: Suchergebnis-Fenster oft zu klein -> senkrecht maximieren
Problem 2: Scrollrad-Increments zu groß, gerade wenn Sendungen sehr ähnlich (z.B. suche "Enterprise") -> Vorschlag: weiches Scrollen mit Animation
Problem 3: Ergebnis verdeckt den Filter -> Vorschlag
- beides in einem Dialog zusammenführen
- Liste der Ergebnisse nachfiltern, durch Manipulation der Filter-Einstellungen
Problem3: Experimentieren mit Auto-Filter, d.h. suchen ohne auf einen Suchen-Button klicken zu müssen
- Einstellung Timeout, z.B. 5 Sekunden, um mehrere Änderungen vorzunehmen und nicht zu viele Suchen abzufeuern
- evtl. Enter-Taste, um Timeout zu überspringen und sofort zu suchen
- Einstellung für maximale Anzahl Treffer, z.B. 50
- Ehemaliger Suchenbutton wird zu: "Zeige alle Ergebnisse", falls es mehr als das Maximum gibt
- Beim Öffnen: leere Suchfilter wählen alle Sendungen aus (bis zum Maximum, gescrollt zu jetzt, sortiert nach Anfangszeit/Senderposition)
Jetzt schon einmal Danke, dass Ihr Euch das anhört / bis hier durchgelesen habt und natürlich für die wirklich tolle Software!
private_lock
Re: Lieblingsdialoge
Verfasst: 04 Mär 2017, 10:48
von ds10
Ich weiß jetzt nicht, ob ich alles genau verstehe, aber ein paar Anmerkungen kann ich schon machen.
Das Erinnerungsfenster habe ich auch schon seit Jahren im Blick und auch die Idee Erinnerungen in einem Dialog anzuzeigen gibt es schon länger, nur ist das eine sehr aufwändige Änderung und ich verwende die Erinnerungen in der Desktop-Version nicht, daher herrscht dort bei mir kein Leidensdruck. Trotzdem müsste das wohl mal angegangen werden.
Zur Größe der anderen Dialoge, in der Regel sind die so programmiert, dass sie sich die letzte Größe vor dem Schließen merken, d.h. wenn du die Dialoge einfach mal vergrößerst, dann sollten sie auch beim nächsten Mal diese Größe haben. Die Meldungen im Dialog nach der Aktualisierung, stammen von Plugins, daraus kann man keine Zusammenfassung machen, denn nur die Plugins wissen, was es anzuzeigen gibt.
Ich persönlich finde Animationen sind auf Desktop-System komplette Zeitverschwendung, wozu Zeit verbrauchen für eine Aktion, die auch sofort ausgeführt werden kann. Im Übrigen sind Animationen auch sehr aufwändig zu programmieren.
Re: Lieblingsdialoge
Verfasst: 04 Mär 2017, 12:02
von private_lock
Hallo ds10!
Keine Sorge, ich verstehe auch nicht immer alles, wie ich im anderen Thema drüben gemerkt habe
![Smile :-)](./images/smilies/icon_smile.gif)
Also einfach fragen, weil fragen kost ja nix. Ich hab das Thema auf beobachten und sollte hoffentlich nicht morgen tot umfallen.
A) Erinnerungsfenster
Genau genommen hast Du sie also gerade nicht im Blick, wenn sie seit Jahren auf einer Todo-Liste schlummern konnten *g* Bei mir dagegen ist es genau andersherum. Mit dem wirklich guten Lieblingssendungssystem komme ich nahezu drum herum, das Hauptfenster überhaupt noch öffnen zu müssen, das schlummert bei mir minimiert in der Taskleiste (
Tray-Icon in KDE kaputt). Ich könnte also sagen, für mich sind die Dialoge die wesentliche Interaktions-Schnittstelle beim alltäglichen Umgang mit TVB
B) Datenupdate
Änderung an der Plugin-Schnittstelle?
alt: Hier ist das Datenupdate, gib mir eine Komponente, die den User informiert, und in der Du alles selbst kontrollierst
neu: Hier ist das Datenupdate, welche Liste von Sendungen soll ich dem User speziell zeigen
Bislang habe ich den Dialog händisch maximiert, und das merkt TVB sich definitiv nicht. Aber ich werde mal darauf achten, wie groß er übermorgen rauskommt, wenn ich ihn morgen von Hand größer ziehe.
C) Suche
Kein Kommentar?
Animationen? ... Na gut, das Meer zu verlassen hat vielleicht Vorteile gebracht, aber wir hätten auf den Bäumen bleiben sollen *grins*
Ja, mir ist klar, dass man damit ne Menge Sch... treiben kann, wenn alles klicki bunti rumwobbelt. Speziell die Fenstergröße zu animieren halte ich dagegen für relativ einfach. Es braucht nur einen Timer-Thread, der die Höhe in kleinen Inkrementen setzt, das Neuzeichnen ist eh schon implementiert, wenn der Nutzer selbst mit der Maus am Fensterrand ziehen würde.
Beim weichen Scrollen ist das Neuzeichnen ebenfalls schon implementiert. Es fehlt wieder nur ein Timer-Thread, der eine Bewegung simuliert, indem die Scrollposition neu gesetzt wird. Die Maus-Scroll-Event müssen dazu abgefangen und uminterpretiert werden. Jedes fügt eine Beschleunigungsphase und eine Verzögerungsphase hinzu, so dass sich mehrere Events zu einer höheren Geschwindigkeit addieren und gleichzeitig die anderen Verzögerungen weiter hinausschieben, so dass eine größere Distanz zurückgelegt wird -> scroll+scroll ist weiter als scroll ... Pause ... scroll ... Oh und wenn die Scroll-Richtung gewechselt wird, muss die Animation abgebrochen werden, um sofort anzuhalten und dem Nutzer das Gefühl absoluter Kontrolle zu lassen.
Am wichtigsten ließe sich das weiche Scrollen später (wenn es stabil läuft) auf die Programmtabelle anwenden. Allerdings ist dort besonders kritisch, dass der Zeichenvorgang vermutlich sehr aufwändig ist und somit doch eine Änderung an der Zeichenroutine nötig werden könnte. Im Grund müsste die Tabelle mit ausreichend Platz um das eigentliche Anzeigefenster herum im Speicher fertig gerendert werden, so dass das letztliche Anzeigen verhältnismäßig billig wird. Leider treibt das den Speicherverbrauch hoch ... das gerenderte Bild sollte beim Minimieren unbedingt freigegeben werden. Eine Kompromisslösung könnte sein, den herein-scrollenden Bereich nur als Wireframe zu zeichnen, bis die Animation zum Stillstand gekommen ist. Andererseits werden Rechner immer schneller und meiner macht schon eine wirklich gute Figur, wenn ich die Tabelle mit der Maus greife und ziehe, das ruckelt nur wenig, so dass es vermutlich für ein "weiches stottern" ausreicht ... Gibt dann halt eine Einstellung, wie butterweich & aufwändig das Scrollen animiert werden soll (sprich in welchen großen bzw. kleinen Zeit-Incrementen erneut gezeichnet wird), um die Rechenleistung zukünftiger CPUs auszureizen.
Es gibt sogar ein
Code-Beispiel!
MfG
private_lock
PS: Ob man John F. Kennedy auch auf Software anwenden kann?
“We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard."
Re: [TVB#81] Lieblingsdialoge
Verfasst: 04 Mär 2017, 12:18
von private_lock
Nachtrag ... habe es am Suchergebnis nachvollzogen:
Die Größe wird tatsächlich gemerkt, allerdings mit der Einschränkung, dass die gemerkte Größe beim Schließen eines maximierten Fensters gelöscht und auf den viel zu kleinen Default zurückgesetzt wird. Der Fehler ist also, das Fenster überhaupt zu maximieren, wenn man es auch einfach bis wenige Pixel vor den Bildschirmrand groß ziehen kann. Dann bleibt es auch groß.
Mein Vorschlag wäre also, statt nur die reine Pixel-Größe für Dialoge zu merken, auch noch den Extended-Window-State abzuspeichern.
Re: [TVB#81] Lieblingsdialoge
Verfasst: 04 Mär 2017, 13:11
von ds10
Zu den Animationen: Der Unterschied besteht eben darin, dass ich dabei eben keinen Fortschritt sehe, wenn sie nur gemacht werden, weil es irgendwie schön aussieht oder weil es gerade Mode ist. Eine Animation bei einem automatischen Prozess braucht immer länger als eine direkte Verarbeitung. Animationen beim manuellen Ändern der Größe eines Fensters haben hingegen keinen Einfluss auf die Geschwindigkeit, sondern helfen zu erkennen was vorgeht. Hier sinnvoll, da der Nutzer eine Rückmeldung braucht. Aber wenn es automatisch passiert, braucht man die Rückmeldung gar nicht, das Fenster würde einfach größer werden, das wird man ja wohl sehen und die Information ist sofort da und nicht erst 2 Sekunden später.
D.h. Animationen nur dort, wo direkte Rückmeldung benötigt wird. Bei den Erinnerungen sehe ich das nicht, neue Erinnerungen würden oben einsortiert und für 10 Sekunden farbig unterlegt oder so ähnlich -> Information sofort verfügbar. Nicht sie blenden sich langsam ein, während die Liste langsam nach unten fährt -> man muss warten, bis die Information verfügbar ist.
Ich kann weiches Scrollen auf Desktop-Systemen nicht leiden, das ist auch wieder nur Zeitverschwendung, d.h. ich zahle mit Zeit für optische Effekte. Nichts ist genauer als eine Scrollbar, die man mit der Maus bedienen kann.
Da ich TV-Browser programmiere, wird halt nur das gemacht, was ich für sinnvoll halte. Wenn man also was anderes möchte, dann müsste man das schon selber programmieren und zwar als optionale Lösung, die würde ich dann schon einbauen, wenn man mir den Patch schickt.
Allgemein ist ja die Frage, wie lange es dauert, bis man feststellt, dass Animationen ja gar nicht so toll sind und dann wieder das Gegenteil propagiert, siehe Transparenzen, Erhebungen und Schatten, die waren mal total angesagt und jetzt muss es auf einmal alles wieder platt sein, weil das ja viel besser sei.
Die Programmtabelle lässt sich übrigens auch anschubsen, dann scrollt sie von alleine weiter, das habe aber nicht ich sondern Bananeweizen programmiert.
private_lock hat geschrieben:Nachtrag ... habe es am Suchergebnis nachvollzogen:
Die Größe wird tatsächlich gemerkt, allerdings mit der Einschränkung, dass die gemerkte Größe beim Schließen eines maximierten Fensters gelöscht und auf den viel zu kleinen Default zurückgesetzt wird. Der Fehler ist also, das Fenster überhaupt zu maximieren, wenn man es auch einfach bis wenige Pixel vor den Bildschirmrand groß ziehen kann. Dann bleibt es auch groß.
Mein Vorschlag wäre also, statt nur die reine Pixel-Größe für Dialoge zu merken, auch noch den Extended-Window-State abzuspeichern.
Das wäre natürlich noch eine Idee. Unter Ubuntu ist das Fenster beim nächsten Öffnen zwar auch nicht mehr maximiert, hat aber auch nicht die Standardgröße, sondern nimmt den ganzen Bildschirm bis auf die Statusleiste ein. Es hängt also wohl auch noch vom Fenstermanager/Betriebssystem ab, ob eine Größe gespeichert werden kann, wenn das Fenster maximiert ist.
Re: [TVB#81] Lieblingsdialoge
Verfasst: 04 Mär 2017, 15:09
von private_lock
Klar, Animationen sind ein Bonus obendrauf. Man könnte auch sagen: Erst die Funktion, dann die Animation!
Manche lieben sie, andere hassen sie. Ich finde, es schlägt eine schöne Brücke zwischen der binäre Welt, in der etwas da ist oder nicht und unserer analogen Welt, wo sich physische Dinge mit Trägheit dagegen wehren, instantan von einem Ort an den anderen gebeamt zu werden. Störende Animationen sind dagegen solche, die scheinbar gegen Naturgesetze verstoßen, wenn doch die Pixel eine träge Masse hätten, so wie das Auge des Betrachters.
- Bei einer Liste könnte eine Animation die Position neuer Elemente anzeigen, wohingegen ohne Animation nur vermittelt wird: Blitz geändert, lies alles noch mal, um die Änderung zu finden.
- Bei einem Dialog könnte das Erscheinen bzw. die Änderung der Größe animiert werden, anstatt sich blitzschnell zwischen Maus und dem wichtigen Button in dem anderen Fenster zu schieben und den Klick wegzufangen (KDE hat das in Plasma direkt eingebaut, z.B. auch den Wechsel zwischen Fenster oder zwischen virtuellen Arbeitsflächen).
- Beim weichen Scrollen der Liste gleichförmiger Einträge kann sich das Auge am zuletzt gelesenen Eintrag festhalten.
Aktuell ist das sehr schwierig:
![Bild](https://s28.postimg.org/wcinoldsp/TVBList_Scroll_Animation.gif)
Versuche z.B. mal den 4 und 5 Eintrag von oben zu fixieren auf dem Untertitel "Das Gleichgewicht der Kräfte" ... wohin ging der Scrollbalken doch gleich?
Natürlich gibt es auch Würg-Arounds: Man kann sich etwa im Suchergebnis helfen, indem man eine Sendung mit rechts anklickt und mit ESC das Menü wieder wegmacht, dann ist die Schrift hinterher immer noch weiß und unterschiedet sich so von den anderen, dass man sie nach dem Sprung um drei Elemente wiederfinden kann. Fatal ist allerdings, wenn der Dialog zu klein ist, um wenigstens drei Sendungen zu sehen. Dann wird trotzdem um drei gescrollt und eins hat man dabei gar nicht gesehen. Alternativ kann man auch den Marker auf dem Scrollbalken greifen und ziehen, das funktioniert aber leider nur schlecht für sehr lange Listen.
Ja, ich verstehe Deinen Standpunkt: Der Zusatznutzen kann sich unter Umständen ins Gegenteil verkehren oder nicht messbar sein. Trotzdem bläht es unter Umständen den Code unnötig auf. Und zu allem Überfluss nimmt es noch Zeit weg, die man in wichtigere Features stecken könnte. Andererseits hatte ich mich zu dieser Diskussion verleiten lassen von der News:
Was sollte geändert/hinzugefügt werden um TV-Browser noch besser zu machen? Du hast gefragt, Animation war Teil meines Vorschlages, ohne Ansprüche, einfach als Wunsch.
Natürlich steht es Dir frei, das zu ignorieren. Aber darum hast du nicht gefragt, nicht wahr?
Re: [TVB#81] Lieblingsdialoge
Verfasst: 04 Mär 2017, 15:49
von ds10
private_lock hat geschrieben:Fatal ist allerdings, wenn der Dialog zu klein ist, um wenigstens drei Sendungen zu sehen. Dann wird trotzdem um drei gescrollt und eins hat man dabei gar nicht gesehen
Also bei mir nicht, dann wird nur so viel weiter gescrollt, dass man keine Sendung übersieht, notfalls halt nur eine Sendung. KDE scheint ja nicht gerade super zu arbeiten, Fenstergrößen gehen verloren, wenn ein Fenster maximiert wird, Mausscrollen funktioniert nicht wie es soll.
private_lock hat geschrieben:Natürlich steht es Dir frei, das zu ignorieren. Aber darum hast du nicht gefragt, nicht wahr?
Nun, ich habe nach Verbesserungsvorschlägen gefragt, das beinhaltet aber eben noch nicht, dass ich die auch alle umsetze. Es geht erst einmal um eine Sammlung von Ideen, aus denen ich dann die heraussuche, die ich gut finde. Außerdem schrieb ich ja auch, dass man Verbesserungen auch gerne selber programmieren kann. Solange die optional, d.h. zuschaltbar sind, habe ich nichts dagegen den Patch dann einzubauen.
Re: [TVB#81] Lieblingsdialoge
Verfasst: 30 Apr 2017, 13:34
von ds10
Mit der heutigen Nightly gibt es jetzt das neue Erinnerungsfenster.
Re: [TVB#81] Lieblingsdialoge
Verfasst: 30 Apr 2017, 14:04
von Siggi
Hi,
neues Fenster funktioniert super.
Zwei kleine Anmerkungen: 1. Nicht onTop unter Windows, 2. Fensterlogo ist das Java-Logo und nicht das TV-Browser Logo.
Re: [TVB#81] Lieblingsdialoge
Verfasst: 30 Apr 2017, 14:22
von ds10
Das Fenster ist nicht onTop, man kann in den Einstellungen festlegen, dass es nicht nach vorne geholt wird, wenn eine Erinnerung hinzugefügt wird.
Re: [TVB#81] Lieblingsdialoge
Verfasst: 30 Apr 2017, 15:51
von Siggi
Du müsstest mich als langjähriger Anwender kennen, dass ich sowas vorher teste und prüfe....
Re: [TVB#81] Lieblingsdialoge
Verfasst: 30 Apr 2017, 16:12
von ds10
Und du müsstest mich als langjähriger Entwickler kennen und wenn ich sage, dass das Fenster nicht onTop ist, dann ist es das auch nicht. Ich müsste es nämlich explizit einprogrammieren. Das Fenster gehört nicht zur Fensterhierarchie von TV-Browser, es ist auch kein Dialog der über dem TV-Browser-Fenster liegt. Wenn es also trotzdem vor dem TV-Browser-Fenster ist, dann muss Windows oder Java unter Windows irgendetwas anders machen, als das Java unter Linux, vielleicht indem alle Fenster automatisch in die Fensterhierarchie von TV-Browser einsortiert werden.
Unter Linux funktioniert es wie gewünscht, wenn also Windows es nicht ordentlich macht, muss ich nach einem Hack suchen.
Re: [TVB#81] Lieblingsdialoge
Verfasst: 30 Apr 2017, 16:44
von ds10
So, ich habe es jetzt in einer Windows 10 VM getestet:
![hintergrund.png](./download/file.php?id=1422&sid=75d62cce5b54afad6a4fd8d1a133d3cb)
- hintergrund.png (37.17 KiB) 13823 mal betrachtet
Wie man unschwer erkennen kann, ist das Fenster im Hintergrund und das ohne große Probleme, einfach nur auf das TV-Browser Fenster klicken und TV-Browser liegt vor dem Erinnerungsfenster. Ich habe zwar zwischenzeitlich einige Änderungen vorgenommen (Icons hinzugefügt, anderer Titel), aber die sollten damit nichts zu tun haben. Beim ersten Erscheinen ist es natürlich immer im Vordergrund, weil ein Fenster nicht im Hintergrund geöffnet werden kann, man kann es höchstens direkt nach dem Öffnen in den Hintergrund schicken. Dann ist es aber wirklich ganz im Hintergrund, also hinter allen anderen offenen Fenstern.
Das einzige Problem was ich in der VM feststellen konnte, ist dass die Liste nicht zuverlässig neu gezeichnet wurde, wenn eine Erinnerung hinzugefügt wurde, wenn das Fenster offen ist.
Re: [TVB#81] Lieblingsdialoge
Verfasst: 01 Mai 2017, 16:39
von Siggi
Und bei mir hatte ich die Vermutung, dass es immer onTop sein soll.
Bei mir liegt der TVBrowser 80% seiner Zeit in der Taskleiste und dann popen die Erinnerungen vor alle Fenster, auch wenn ein Erinnerungsfenster offen ist und eine neue Erinnerung ausgelöst wird, holt die neue Erinnerung das Fenster nach vorn.
Liegt das am minimierten TVBrowser?
Re: [TVB#81] Lieblingsdialoge
Verfasst: 01 Mai 2017, 17:22
von ds10
Das liegt an der Fensterhierarchie. Die alten Erinnerungsfenster sind über dem TV-Browser-Fenster einsortiert und holen daher, abhängig vom Betriebssystem, unter Umständen das Elternfenster (TV-Browser) nach vorne. Wenn man das Minimieren ins Tay aktiviert hat, sollte es aber nicht mehr passieren.
Das neue Erinnerungsfenster gehört deshalb ganz bewusst nicht zur Fensterhierarchie von TV-Browser, sondern ist ein eigenständiges Fenster. Wenn es schon offen ist (auch minimiert) wird es nur dann von TV-Browser in den Vordergrund geholt, wenn das in den Einstellungen des Erinnerers so aktiviert ist (was standardmäßig der Fall ist, da man in der Regel ja sehen möchte, an was man da erinnert wird).