Gruppierungen

Hilfe zu verschiedenen Themen
Antworten
Benutzeravatar
josinoro
Supporter
Beiträge: 168
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Gruppierungen

Beitrag von josinoro »

Hallo Listlinge,

in einem Schalter habe ich zum Gruppieren mehrere Anweisungen untergebracht.

Code: Alles auswählen

<?xml version="1.0"?>
<button backcol="none" display="both" textcol="none">
	<label>Gruppierung</label>
	<icon1>#newcommand</icon1>
	<function type="normal">
		<instruction>@keydown:none</instruction>
		<instruction>Set GROUPBY=name</instruction>
		<instruction />
		<instruction>@keydown:shift</instruction>
		<instruction>Set GROUPBY=grouplist</instruction>
	</function>
</button>
Dabei tauchen für mich mehrere Fragen auf.

1.
Wenn ich den Schalter drücke, wird die Anweisung Set GROUPBY=name korrekt ausgeführt.
Der Schalter bekommt das mit und färbt sich grün ein, sodass man den Status Gruppierung aktiv erkennen kann.
Das finde ich ja recht interessant, zumal ich ja selbst keine diesbezügliche Anweisung gegeben habe.

grafik.png
grafik.png (24.11 KiB) 3065 mal betrachtet

Gibt es denn auch die Möglichkeit, durch erneutes Drücken des Schalters die Gruppierung wieder auszuschalten?

2.
Sobald ich die shift-Taste drücke, erscheint die Gruppierungsliste, ohne, dass ich den Schalter überhaupt anklicke.
Der Schalter selbst wird dabei komplett überdeckt. Damit fallen ja dann andere eventuell vorhandene Tastenkombinationen mit shift ganz weg.
Die aus der Liste ausgewählte Gruppierung funktioniert dann auch. Allerdings gibt es hier ein kurioses Verhalten.

a.
Zum Testen habe ich eine neue Symbolleiste erstellt und den Schalter eingefügt.
Ich drücke die shift-Taste und lasse sie wieder los.
Die Liste erscheint in der Höhe des Schaltersymbols und ich kann eine Gruppierung auswählen.
Allerdings werden mir bei Auswahl Name keine weiteren Optionen angezeigt und es wird nach Standardschema gruppiert.
Die Gruppierungsliste verschwindet, der Schalter bekommt das mit und färbt sich grün ein, sodass man den Status Gruppierung aktiv erkennen kann.

Drücke ich erneut die shift-Taste, erscheint wieder die Gruppierungsliste, allerdings manchmal mit der Höhe der Schrift.
Wähle ich dann erneut die Gruppierung Name, werden mir die Optionen für die Gruppierung nach dem Namen angezeigt.
Die Gruppierung erfolgt, aber diesmal bekommt der Schalter nicht den Status Gruppierung aktiv.

Die Auswahl der Optionen bei Name ist nur möglich, wenn sich die Gruppierungsleiste auf die Höhe der Schrift eingestellt hat. Die Veränderung der Höhe ist nicht sauber reproduzierbar, wenn die shift-Taste nur einmal gedrückt wird. Der Schalter bekommt nur bei der Gruppierung nach dem Attribut der ersten Anweisung im Schalter (hier: name) den Status mit.
Ändere ich die erste Anweisung Set GROUPBY=name in Set GROUPBY=attr, bekommt der Schalter den Status bei Gruppierung nach Attributen mit.

b.
Ich drücke die shift-Taste und halte sie fest.
Manchmal erscheint die Gruppierungsliste in der Höhe der Schrift, manchmal in der Höhe des Schaltersymbols.
Bei Gruppierung nach dem Namen wird zuerst nach Standardschema gruppiert.
Die Gruppierungsliste verschwindet nicht und die Gruppierungsoptionen werden grün hinterlegt. Bei gedrückter shift-Taste kann ich alle Gruppierungen anwählen.
Auch die Auswahl von Nichts beendet ordnungsgemäß die Gruppierung, aber lässt die Gruppierungsleiste offen.
Jetzt würde ich erwarten, dass bei Auswahl von Nichts ohne shift-Taste die Gruppierungsliste geschlossen wird. Das ist aber nicht der Fall. Erst eine erneute Auswahl einer Gruppierung schließt die Gruppierungsliste. Leider nicht, ohne die ausgewählte Gruppierung vorzunehmen.

Ein, zumindest auf meinem System, sehr unsauberes Verhalten.
Benutzeravatar
josinoro
Supporter
Beiträge: 168
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Gruppierungen

Beitrag von josinoro »

josinoro hat geschrieben: 19. Jun 2024 23:54 Gibt es denn auch die Möglichkeit, durch erneutes Drücken des Schalters die Gruppierung wieder auszuschalten?

Code: Alles auswählen

@if:Set GROUPBY=name
Set GROUPBY=off
@if:else
Set GROUPBY=name
Das funktioniert so weit, allerdings bekommt der Schalter so den Status nicht mit.
Benutzeravatar
tbone
Supporter
Beiträge: 343
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Gruppierungen

Beitrag von tbone »

Mhh, mit "toggle" vielleicht was machen eher!?
https://docs.dopus.com/doku.php?id=refe ... mmands:set
image.png

Oder Scripting nehmen.. ?!
https://docs.dopus.com/doku.php?id=refe ... cts:format
image.png

Deinen Punkt/Frage 1) würde ich mit dem "toggle" Hinweis beantwortet sehen.
Die anderen 2 Punkte hatten keine Fragen - bzw. ich glaube Du musst etwas konkreter werden? o)
Benutzeravatar
josinoro
Supporter
Beiträge: 168
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Gruppierungen

Beitrag von josinoro »

tbone hat geschrieben: 22. Jun 2024 22:31 Mhh, mit "toggle" vielleicht was machen eher!?
Super! Mit toggle, ohne das andere Gedöns, funktioniert es. Der Wechsel funktioniert und der Status wird an den Schalter weitergegeben, ist also sichtbar.
Und da wunderst du dich, dass manche gleich hier anfragen, in der Hoffnung, dass du mitliest? :D
Betrachte das als Kompliment, nicht nur für dieses Thema.
tbone hat geschrieben: 22. Jun 2024 22:31 Die anderen 2 Punkte hatten keine Fragen - bzw. ich glaube Du musst etwas konkreter werden? o)
Ja, wenn man so mit einem Thema beschäftigt ist, ist das einem selbst doch völlig klar, was man will. Das muss anderen doch dann genauso gehen. :roll:

Natürlich hast du recht, da fehlt eine konkrete Frage. Die Erwartung, wie kann ich das alles abstellen oder ändern, ist tatsächlich zu oberflächlich.

Ich versuche es etwas herunterzubrechen:

Der Schaltercode

Code: Alles auswählen

@keydown:none
Set GROUPBY=name,toggle

//_____________________________

@keydown:shift
//@Confirm shift gedrückt
Set GROUPBY=grouplist
sollte beim Anklicken des Schalters ohne Zusatztaste:
- die Dateiliste nach Namen gruppiert darstellen, beziehubgsweise den ungruppierten Zustand wieder hergestellen.

Das funktioniert jetzt korrekt.

Weiter sollte er beim Anklicken des Schalters mit Zusatztaste:
- die Gruppierliste zur Auswahl zur Verfügung stellen.

Das funktioniert nicht korrekt.

So, wie es bei mir ist, wird das Ereignis Zusatztaste gedrückt, bereits ausgelöst, ohne dass der Schalter überhaupt gedrückt wird. Die Auswahllliste zur Auswahl der Gruppierungsmöglichkeiten wird sofort angezeigt. Wird die Schalterleiste mit dem verantwortlichen Schaltercode ausgeblendet, wird das Ereignis Zusatztaste gedrückt, nicht ausgelöst.

Auch bewirkt der Schaltercode

Code: Alles auswählen

Set GROUPBY=grouplist
eine sofortige Anzeige der Gruppierungsmöglichkeiten. Das erwarte ich aber erst nach dem Anklicken des Schalters.
Benutzeravatar
josinoro
Supporter
Beiträge: 168
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Gruppierungen

Beitrag von josinoro »

Jetzt habe ich das Ganze in eine Menüleiste gepackt, welche über einen Schalter ein- und ausgeblendet wird.

Je nach individueller Konfiguration kann es sein, dass die Icons angepasst werden müssen.
Schaltercode für die Menüleiste:

Code: Alles auswählen

<?xml version="1.0"?>
<button backcol="#000033" display="both" textcol="none" type="three_button">
	<label>Toolbar [ ] an / aus</label>
	<icon1>#flatviewgrouped</icon1>
	<icon2>#groupby</icon2>
	<button backcol="none" display="both" textcol="none">
		<label>Toolbar [Gruppierung]</label>
		<tip>Toolbar &lt;#ff0000&gt;&lt;b&gt;[Gruppierung]&lt;/b&gt;&lt;/#&gt;&lt;#ffffc1&gt; ein- / ausblenden&lt;/#&gt;</tip>
		<icon1>#actions:edit_group</icon1>
		<function type="normal">
			<instruction>Toolbar &quot;Gruppierung&quot; TOGGLE</instruction>
			<instruction>@if Set GROUPBY=on</instruction>
			<instruction>Set GROUPBY=off</instruction>
		</function>
	</button>
	<button backcol="none" display="both" textcol="none">
		<label>Gruppierung</label>
		<tip>Gruppierung &lt;#ff0000&gt;&lt;b&gt;Aus&lt;/b&gt;&lt;/#&gt;</tip>
		<icon1>#actions:delete_group</icon1>
		<function type="normal">
			<instruction>Set GROUPBY=off</instruction>
		</function>
	</button>
</button>

Menüleiste:
Dateianhänge
Gruppierung.dop
(1.53 KiB) 100-mal heruntergeladen
Zuletzt geändert von josinoro am 24. Jun 2024 11:39, insgesamt 1-mal geändert.
Benutzeravatar
tbone
Supporter
Beiträge: 343
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Gruppierungen

Beitrag von tbone »

Du meinst also Du willst einen normalen Button und wenn Du mit Shift auf diesen normalen Button drückst..
Dann soll der plötzlich funktionieren wie ein Menu?
Benutzeravatar
josinoro
Supporter
Beiträge: 168
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Gruppierungen

Beitrag von josinoro »

tbone hat geschrieben: 23. Jun 2024 14:27 Du meinst also Du willst einen normalen Button und wenn Du mit Shift auf diesen normalen Button drückst..
Dann soll der plötzlich funktionieren wie ein Menu?
Nein, dann, und erst dann, soll er die markierten Anweisung(en) ausführen:

@keydown:none
Set GROUPBY=name,toggle

@keydown:shift
Set GROUPBY=grouplist
Benutzeravatar
tbone
Supporter
Beiträge: 343
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Gruppierungen

Beitrag von tbone »

Dieser Aufruf..
Set GROUPBY=grouplist
generiert mehere Einträge um ein Menu darzustellen, richtig?

Die Doku schreibt ja auch explizit von Toolbar und Menu:
image.png
image.png (8.09 KiB) 2977 mal betrachtet
Die "grouplist" Option hat also in einem 0815-Button keine (sinnvolle) Funktion.
Ein Button kann nicht plötzlich ein Menu sein, nur weil Du Shift drückst.

Du bekommst aber ein ähnliches Ergebnis, wenn Du ein "Menu-Button" oder diesen 3er Button machst und dann für Links/Rechts/Mittelklick kannst Du unterschiedliche Befehle eingeben, mit Links kannst Du togglen, mit rechts ginge das Menu auf (z.B. oder ähnlich), aber wie gesagt, einen normalen Button kannst Du nicht einfach in ein Menu verwandeln, nur weil Du einen Qualifier / Shift drückst. I stand to be corrected of course! o)
Benutzeravatar
josinoro
Supporter
Beiträge: 168
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Gruppierungen

Beitrag von josinoro »

tbone hat geschrieben: 23. Jun 2024 15:15 Dieser Aufruf..
Set GROUPBY=grouplist
generiert mehere Einträge um ein Menu darzustellen, richtig?
Richtig
tbone hat geschrieben: 23. Jun 2024 15:15 Du bekommst aber ein ähnliches Ergebnis, wenn Du ein "Menu-Button" oder diesen 3er Button machst und dann für Links/Rechts/Mittelklick kannst Du unterschiedliche Befehle eingeben, mit Links kannst Du togglen, mit rechts ginge das Menu auf (z.B. oder ähnlich), aber wie gesagt, einen normalen Button kannst Du nicht einfach in ein Menu verwandeln, nur weil Du einen Qualifier / Shift drückst. I stand to be corrected of course! o)
Schau dir einmal den Schalter von meinem ersten Post an. Genau das passiert eben nicht. Du hast dann eben immer die Gruppierliste, sobald du nur die definierte Zusatztaste drückst, obwohl du den Schalter noch nicht angeklickt hast.
Benutzeravatar
tbone
Supporter
Beiträge: 343
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Gruppierungen

Beitrag von tbone »

Ja, ich denke ich versteh' schon.. aber dieses "grouplist" Ding gehört wohl in ein Menu oder in eine Toolbar und nicht in einen Button.

Wenn Du "grouplist" in einem normalen Button benutzt, ist das ein Fehler von eventuell zweien würde ich sagen. Der Zweite Fehler ist vielleicht der, dass der "grouplist" Command in einem Button zusammen mit dem @keydown:shift Modifier überhaupt schon auf Shift reagiert und Einträge generiert. Der "grouplist" ist dafür aber nicht gedacht, daher kommt dann das unerwartete Verhalten.

Das kann man als Fehler einstufen, muss man aber nicht, weil die Doku ja auch vorgibt, wie das Ding zu verwenden ist (in einem statischen Kontext / Menu / Toolbar - ohne @keydown:shift und nicht in einem 0815-Button). So explizit macht es die Doku zwar nicht, aber ich zieh hier einfach mal die Funktionsweise der DO Buttons / Menus zusammen und dann versuchst Du hier etwas, das so nicht üblich / vorgesehen ist.

Vielleicht ist dieses (Fehl)-Verhalten auch für irgendwas nützlich.. müsste man mal überlegen.. o)

Und ja, man könnte meinen, der müsste doch die weiteren GroupBy-Einträge vielleicht erst bei Shift-Click da "irgendwohin"-generieren, aber dann gehst Du davon aus, dass dieser Programm-Code dort irgendwie komplett fehlerfrei ist und einer logischen Struktur folgt. Manche Sachen in diesen Menus und Buttons sind aber überhaupt nicht logisch und die Befehlsfunktionalitäten auch nicht, weil das über die Jahre zusammengebaut und erweitert wurde und nur dann gut funktioniert, wenn man sich an das Rezept hält - macht man irgendwas neben dem Rezept, fliegt einem sowas u.U. um die Ohren.

Aber sei froh wie es ist, ich habe die Tage wieder ein paar andere FileManager unter Windows angeguckt.. alles Kern-Schrott im Vergleich zu DO mit seinen - sagen wir - "Eigenheiten". o)
Benutzeravatar
josinoro
Supporter
Beiträge: 168
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Gruppierungen

Beitrag von josinoro »

tbone hat geschrieben: 23. Jun 2024 19:51 Aber sei froh wie es ist, ich habe die Tage wieder ein paar andere FileManager unter Windows angeguckt.. alles Kern-Schrott im Vergleich zu DO mit seinen - sagen wir - "Eigenheiten". o)
:lol: :D

Dann ist es ja eine gute Entscheidung, das in eine Menüleiste zu packen.
Benutzeravatar
tbone
Supporter
Beiträge: 343
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Gruppierungen

Beitrag von tbone »

Ja, Menu oder Toolbar, aber..

Nach dem Kaffee heute morgen fiel mir dann plötzlich ein.. man kann das "grouplist" Command ja nicht einfach so auf eine Toolbar oder in ein Menu machen, man MUSS dort ja einen Button irgendeiner Art anlegen, damit das "grouplist" Command irgendwo unterkommen kann, richtig?

Das heisst, was ich gestern schrieb, dass dieser Befehl also generell nicht in einen Button gehört, das ist doch totaler Blödsinn gewesen, oder? o)

Schon komisch manchmal, wie das Gehirn verklemmen kann, tut mir leid, ich wollte keine unnötigen Irritationen schaffen.

Auf einer Toolbar in einem Button kann man "grouplist" also doch regulär verwenden, denke ich zumindest heute! o), es bleibt aber das schwammige Verhalten in Verbindung mit @keydown:.. übrig, dass sich wohl mit Befehlen nicht verträgt, die von sich aus neue Toolbar- und Menu-Einträge generieren. Ich denke hier bleibt es dabei, die sind einfach nicht vorgesehen um nur bei bestimmten Ereignissen Einträge zu generieren. Wäre das so, müsste es vielleicht auch ein Command geben, mit dem sich diese Einträge wieder entfernen lassen, gibt es m.W. aber nicht.

Falls Du es nun doch hinbekommen hast, das "grouplist" Command ohne Button auf einer Toolbar unterzubringen, wäre ich erstaunt und melde mich dann hier ab, weil ich offensichtlich mit den Basics auch nicht mehr klarkomme.. o))

Einen frohen Montag! o)
Benutzeravatar
josinoro
Supporter
Beiträge: 168
Registriert: 10. Nov 2021 20:56
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Gruppierungen

Beitrag von josinoro »

tbone hat geschrieben: 24. Jun 2024 10:19 Das heisst, was ich gestern schrieb, dass dieser Befehl also generell nicht in einen Button gehört, das ist doch totaler Blödsinn gewesen, oder? o)
Naja, ausgehend von den jeweiligen eigenen Überlegungen und Kenntnissen magst du da richtig gelegen haben. Sonst wäre ja eine Revision der eigenen Meinung gar nicht möglich, sobald neue Überlegungen hinzukommen, so wie bei dir. ;)

Mich irritiert am meisten, dass das Ereignis shift-Taste gedrückt (oder jedem anderen Modifier) in Verbindung mit grouplist schon vorher ausgelöst wird, obwohl der Mausklick auf den Schalter noch gar nicht abgesetzt wurde.

Den Schaltercode und die Menüleiste aus dem entsprechenden Post habe ich nochmal aktualisiert.
Benutzeravatar
tbone
Supporter
Beiträge: 343
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Gruppierungen

Beitrag von tbone »

Mich irritiert am meisten, dass das Ereignis shift-Taste gedrückt (oder jedem anderen Modifier) in Verbindung mit grouplist schon vorher ausgelöst wird, obwohl der Mausklick auf den Schalter noch gar nicht abgesetzt wurde.
Ja, könnte man sich so vorstellen.. aber wie gesagt, die interne Verdrahtung ist als Blackbox zu verstehen, es lassen sich keine Annahmen treffen wie etwas außerhalb der "Specs" zu funktionieren hat. Wie und wo die Events im DOpus langfließen, wissen hoffentlich wenigstens die Entwickler noch so einigermaßen. o) Vielleicht auch nicht, seit v13 geht das Kontext-Menu auf Dateien bei mir fast gar nicht mehr - da ist total der Wurm drin, aber nur mit der Maus, mit dieser Menu-Taste kommt es immer.

Der "Set" Befehl ändert normalweise auch eher Zustände und Einstellungen, mit GROUPBY=grouplist wird er aber plötzlich zum Button-Generator. Ich finde das auch nicht sonderlich logisch, aber zugegeben, es ist schwierig, zusammengehörige Funktionalitäten in einen Satz Befehle zu pressen. Ein Befehl "Generate BUTTONS=grouplist" wäre aber bspw. auch denkbar..

Du kannst ja noch etwas experimentieren was passiert, wenn Du den "grouplist" noch in ein UserCommand einpackst.. oder mit @if und anderen Modifyern mixt, vielleicht auch aufrufen über einen Script-Button oder gar über ein externes ScriptAddin, das in ein UserCommand eingepackt ist, welches dann ebenfalls noch Modifyer benutzt. Als i-Punkt kannst Du auch noch irgendwo diese neuen Evaluator-Codes dazubauen! o)
Antworten