From: APTX Date: Sun, 15 Jul 2012 22:56:34 +0000 (+0200) Subject: Add drag&drop support to enable adding files by dragging them onto managment-gui X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=e449ef12d2701f9d444e58005347a68508616114;p=localmylist.git Add drag&drop support to enable adding files by dragging them onto managment-gui --- diff --git a/management-gui/mainwindow.cpp b/management-gui/mainwindow.cpp index 0670bbc..c160420 100644 --- a/management-gui/mainwindow.cpp +++ b/management-gui/mainwindow.cpp @@ -7,6 +7,8 @@ #include #include #include +#include +#include #include "mylist.h" #include "database.h" @@ -50,6 +52,8 @@ MainWindow::MainWindow(QWidget *parent) : ui->myListView->header()->resizeSection(4, 200); connect(ui->myListView, SIGNAL(renameTest(int)), this, SLOT(openRenameScriptEditor(int))); + + setAcceptDrops(true); } MainWindow::~MainWindow() @@ -346,3 +350,24 @@ void MainWindow::on_actionAddRelatedEpisodeInfo_triggered() { MyList::instance()->executeTask(new AddRelatedEpisodesTask()); } + +void MainWindow::dragEnterEvent(QDragEnterEvent *event) +{ + if (event->mimeData()->hasFormat("text/uri-list")) + event->acceptProposedAction(); +} + +void MainWindow::dropEvent(QDropEvent *event) +{ + QList urls = event->mimeData()->urls(); + QFileInfoList files; + + for (int i = 0; i < urls.count(); ++i) + { + if (!urls[i].isLocalFile()) + continue; + + LocalMyList::instance()->addFile(QFileInfo(urls[i].toLocalFile())); + } + event->acceptProposedAction(); +} diff --git a/management-gui/mainwindow.h b/management-gui/mainwindow.h index 488f77f..83dbd2b 100644 --- a/management-gui/mainwindow.h +++ b/management-gui/mainwindow.h @@ -62,6 +62,10 @@ private slots: void on_actionStartDirectoryWatcher_triggered(); void on_actionAddRelatedEpisodeInfo_triggered(); +protected: + void dragEnterEvent(QDragEnterEvent *event); + void dropEvent(QDropEvent *event); + private: Ui::MainWindow *ui; RenameSettingsDialog *renameSettingsDialog;