annotate src/gui/widgets/drop_list_widget.cc @ 370:ea3a74ed2ef9

*: hm, last commit wasn't quite finished?
author Paper <paper@tflc.us>
date Fri, 25 Jul 2025 10:22:04 -0400
parents b1f4d1867ab1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }