add ability to drop images

This commit is contained in:
Syping 2018-06-29 08:52:43 +02:00
parent a8db3985a2
commit 81ea0490cf
3 changed files with 31 additions and 10 deletions

View file

@ -26,26 +26,32 @@
UiModWidget::UiModWidget(QWidget *parent) : QWidget(parent)
{
filesMode = false;
filesDropEnabled = false;
imageDropEnabled = false;
}
UiModWidget::~UiModWidget()
{
}
void UiModWidget::setFilesMode(bool filesModeEnabled)
void UiModWidget::setFilesDropEnabled(bool enabled)
{
filesMode = filesModeEnabled;
filesDropEnabled = enabled;
}
void UiModWidget::setImageDropEnabled(bool enabled)
{
imageDropEnabled = enabled;
}
void UiModWidget::dragEnterEvent(QDragEnterEvent *dragEnterEvent)
{
if (filesMode && dragEnterEvent->mimeData()->hasUrls())
if (filesDropEnabled && dragEnterEvent->mimeData()->hasUrls())
{
QStringList pathList;
QList<QUrl> urlList = dragEnterEvent->mimeData()->urls();
const QList<QUrl> urlList = dragEnterEvent->mimeData()->urls();
foreach(const QUrl &currentUrl, urlList)
for (const QUrl &currentUrl : urlList)
{
if (currentUrl.isLocalFile())
{
@ -58,6 +64,10 @@ void UiModWidget::dragEnterEvent(QDragEnterEvent *dragEnterEvent)
dragEnterEvent->acceptProposedAction();
}
}
else if (imageDropEnabled && dragEnterEvent->mimeData()->hasImage())
{
dragEnterEvent->acceptProposedAction();
}
}
void UiModWidget::dropEvent(QDropEvent *dropEvent)

View file

@ -29,7 +29,8 @@ class UiModWidget : public QWidget
Q_OBJECT
public:
UiModWidget(QWidget *parent = 0);
void setFilesMode(bool enabled);
void setFilesDropEnabled(bool enabled);
void setImageDropEnabled(bool enabled);
~UiModWidget();
protected:
@ -38,7 +39,8 @@ protected:
void paintEvent(QPaintEvent *paintEvent);
private:
bool filesMode;
bool filesDropEnabled;
bool imageDropEnabled;
signals:
void dropped(const QMimeData *mimeData);