added drag and drop support for image list

This commit is contained in:
Steffen Vogel 2015-01-29 14:30:44 +01:00
parent f86c5ba39c
commit da6dc580be
2 changed files with 34 additions and 2 deletions

View file

@ -1,8 +1,8 @@
#include "mainwindow.h"
#include <QMimeData>
#include "tabimages.h"
#include "ui_tabimages.h"
extern MainWindow *mwindow;
extern ImageList *images;
TabImages::TabImages(QWidget *parent) :
@ -17,6 +17,8 @@ TabImages::TabImages(QWidget *parent) :
ui->tblImages->resizeColumnsToContents();
ui->tblImages->resizeRowsToContents();
setAcceptDrops(true);
connect(ui->tblImages->verticalHeader(), &QHeaderView::sectionCountChanged, [&]() {
ui->tblImages->resizeColumnsToContents();
ui->tblImages->resizeRowsToContents();
@ -27,6 +29,30 @@ TabImages::TabImages(QWidget *parent) :
connect(ui->btnSave, &QPushButton::clicked, images, &ImageList::saveFilePicker);
}
void TabImages::dragEnterEvent(QDragEnterEvent *dee)
{
dee->acceptProposedAction();
}
void TabImages::dropEvent(QDropEvent *de)
{
const QMimeData* mimeData = de->mimeData();
// check for our needed mime type, here a file or a list of files
if (mimeData->hasUrls())
{
QStringList pathList;
QList<QUrl> urlList = mimeData->urls();
// extract the local paths of the files
for (QUrl url : urlList)
pathList += url.toLocalFile();
// call a function to open the files
images->load(pathList);
}
}
TabImages::~TabImages()
{
delete ui;

View file

@ -2,6 +2,8 @@
#define TABIMAGES_H
#include <QWidget>
#include <QDragEnterEvent>
#include <QDropEvent>
#include "imagelist.h"
@ -17,6 +19,10 @@ class TabImages : public QWidget
explicit TabImages(QWidget *parent = 0);
~TabImages();
protected:
void dropEvent(QDropEvent *de);
void dragEnterEvent(QDragEnterEvent *dee);
private:
Ui::TabImages *ui;
};