Drag, Drop, QMimeData
-
- User
- Beiträge: 5
- Registriert: Mittwoch 23. Juni 2010, 22:43
Kann ich in meiner Anwendung festellen woher, also z.B. aus welcher anderen Anwendung die Daten kommen? (Aus welchem Dokument?)
Zuletzt geändert von overloaded am Donnerstag 1. Juli 2010, 20:45, insgesamt 1-mal geändert.
-
- User
- Beiträge: 5
- Registriert: Mittwoch 23. Juni 2010, 22:43
Frage blöd und Antwort auf mein Problem leicht wär mir lieber gewesen.
Aber danke.
Aber danke.
-
- User
- Beiträge: 5
- Registriert: Mittwoch 23. Juni 2010, 22:43
Ich hab nochmal drüber nachgedacht:
Die Anwendung aus der ich herausdragge, hat nach dem meine Anwendung die Daten erhalten hat ja noch immer den Fokus bzw. ist aktiv.
Kann ich denn in meinem DropEvent herausfinden, welche Anwendung den Fokus hat?
Die Anwendung aus der ich herausdragge, hat nach dem meine Anwendung die Daten erhalten hat ja noch immer den Fokus bzw. ist aktiv.
Kann ich denn in meinem DropEvent herausfinden, welche Anwendung den Fokus hat?
Wenn Dir meine erste Antwort nicht gefallen hat, dann wird Dir auch diese nicht gefallen. Mit den Mitteln von Qt kannst Du weder herausfinden, welche Anwendung den Fokus hat, noch welche Anwendung die Quelle der aktuellen Drop-Operation ist. Für beides musst Du die API des jeweiligen Systems bemühen.
Die Quell-Anwendung muss im Übrigen nach der Operation nicht unbedingt den Fokus haben. Der Anwender kann auch während der Operation (z.B. mit Tastaturkürzeln) das aktive Fenster wechseln. Das beim Ablegen fokussierte Fenster ist also ein sehr unsicheres Kriterium zur Bestimmung der Quell-Anwendung.
Wie dem auch sei, unter X11 kannst Du das fokussierte Fenster mit der C-Funktion "XGetInputFocus" der XLib herausfinden. Über dessen Fensterklasse und Eigenschaften kannst Du dann unter Umständen die Anwendung bestimmen. Mit Windows kann ich Dir nicht helfen.
Die Quell-Anwendung muss im Übrigen nach der Operation nicht unbedingt den Fokus haben. Der Anwender kann auch während der Operation (z.B. mit Tastaturkürzeln) das aktive Fenster wechseln. Das beim Ablegen fokussierte Fenster ist also ein sehr unsicheres Kriterium zur Bestimmung der Quell-Anwendung.
Wie dem auch sei, unter X11 kannst Du das fokussierte Fenster mit der C-Funktion "XGetInputFocus" der XLib herausfinden. Über dessen Fensterklasse und Eigenschaften kannst Du dann unter Umständen die Anwendung bestimmen. Mit Windows kann ich Dir nicht helfen.
-
- User
- Beiträge: 5
- Registriert: Mittwoch 23. Juni 2010, 22:43
Gut, man kann dem Anwender ja mitteilen, dass er seine Daten auf diesem Wege "unbrauchbar" macht.lunar hat geschrieben: Die Quell-Anwendung muss im Übrigen nach der Operation nicht unbedingt den Fokus haben. Der Anwender kann auch während der Operation (z.B. mit Tastaturkürzeln) das aktive Fenster wechseln. Das beim Ablegen fokussierte Fenster ist also ein sehr unsicheres Kriterium zur Bestimmung der Quell-Anwendung.
Find' ich super. Danke.lunar hat geschrieben: Wie dem auch sei, unter X11 kannst Du das fokussierte Fenster mit der C-Funktion "XGetInputFocus" der XLib herausfinden. Über dessen Fensterklasse und Eigenschaften kannst Du dann unter Umständen die Anwendung bestimmen. Mit Windows kann ich Dir nicht helfen.
@overloaded: Das ist IMHO keine Lösung. Es kann sehr viele Gründe haben warum der Fokus zwischen Drag und Drop wechselt. Zum Beispiel weil der Anwender das Drop-Ziel mittels Tastenkombination (zum Beispiel durch "durch-tabben" der Anwendungen mit Alt+Tab) in den Vordergrund holt, oder weil eine andere Anwendung von sich aus einen Dialog in den Vordergrund platziert, oder vielleicht weil das System so eingestellt ist, dass der Fokus grundsätzlich dem Mauszeiger folgt.
-
- User
- Beiträge: 5
- Registriert: Mittwoch 23. Juni 2010, 22:43
danke für die einwände. macht alles sinn.