1 |
#include "DropLineEdit.h" |
2 |
|
3 |
DropLineEdit::DropLineEdit(QWidget *parent) : QLineEdit(parent) |
4 |
{ |
5 |
//setDragDropMode(QAbstractItemView::DropOnly); |
6 |
setAcceptDrops(true); |
7 |
} |
8 |
|
9 |
void DropLineEdit::dragEnterEvent(QDragEnterEvent *event) { |
10 |
|
11 |
const QMimeData* mimeData = event->mimeData(); |
12 |
|
13 |
// We only accept if our widget is enabled and it is only one file |
14 |
if( |
15 |
!this->isEnabled() || |
16 |
mimeData->urls().size() != 1 || |
17 |
// checks if it is a file (folders are ignored) |
18 |
QDir(mimeData->urls().at(0).toLocalFile()).exists() |
19 |
) |
20 |
{ |
21 |
event->ignore(); |
22 |
} |
23 |
else{ |
24 |
event->acceptProposedAction(); |
25 |
} |
26 |
} |
27 |
|
28 |
void DropLineEdit::dragMoveEvent(QDragMoveEvent *event) { |
29 |
event->acceptProposedAction(); |
30 |
} |
31 |
|
32 |
void DropLineEdit::dropEvent(QDropEvent *event) { |
33 |
|
34 |
const QMimeData* mimeData = event->mimeData(); |
35 |
|
36 |
event->acceptProposedAction(); |
37 |
|
38 |
QStringList pathList = QStringList(); |
39 |
|
40 |
if (mimeData->hasUrls()) |
41 |
{ |
42 |
this->setText(mimeData->urls().at(0).toLocalFile()); |
43 |
} |
44 |
|
45 |
} |
46 |
|
47 |
void DropLineEdit::dragLeaveEvent(QDragLeaveEvent *event) { |
48 |
event->accept(); |
49 |
} |