Mercurial > minori
annotate src/gui/widgets/drop_list_widget.cc @ 372:a65a43766b22
dep/animone: atspi a11y impl didn't work at all and hit an assertion
because paper can't code
author | Paper <paper@tflc.us> |
---|---|
date | Fri, 25 Jul 2025 11:02:29 -0400 |
parents | ea3a74ed2ef9 |
children |
rev | line source |
---|---|
317
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
1 #include "gui/widgets/drop_list_widget.h" |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
2 |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
3 #include <QDragMoveEvent> |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
4 #include <QDropEvent> |
370
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
5 #include <QFileInfo> |
317
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
6 #include <QMimeData> |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
7 |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
8 /* currently this only sends local paths that are folders */ |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
9 |
370
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
10 DroppableListWidget::DroppableListWidget(QWidget *parent) : QListWidget(parent) |
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
11 { |
317
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
12 setAcceptDrops(true); |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
13 } |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
14 |
370
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
15 void DroppableListWidget::dragMoveEvent(QDragMoveEvent *event) |
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
16 { |
317
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
17 if (event->mimeData()->hasUrls()) |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
18 event->acceptProposedAction(); |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
19 } |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
20 |
370
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
21 void DroppableListWidget::dragEnterEvent(QDragEnterEvent *event) |
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
22 { |
317
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
23 if (event->mimeData()->hasUrls()) |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
24 event->acceptProposedAction(); |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
25 } |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
26 |
370
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
27 void DroppableListWidget::dropEvent(QDropEvent *event) |
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
28 { |
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
29 const QMimeData *mime_data = event->mimeData(); |
317
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
30 |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
31 if (!mime_data->hasUrls()) |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
32 return; |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
33 |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
34 QStringList path_list; |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
35 QList<QUrl> url_list = mime_data->urls(); |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
36 |
370
ea3a74ed2ef9
*: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents:
317
diff
changeset
|
37 for (const auto &url : url_list) { |
317
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
38 if (!url.isLocalFile()) |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
39 continue; |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
40 |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
41 const QString file = url.toLocalFile(); |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
42 const QFileInfo fileinfo(file); |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
43 if (fileinfo.exists() && fileinfo.isDir()) |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
44 path_list.append(file); |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
45 } |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
46 |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
47 if (!path_list.isEmpty()) |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
48 emit FilesDropped(path_list); |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
49 |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
50 event->acceptProposedAction(); |
b1f4d1867ab1
services: VERY initial Kitsu support
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
51 } |