From ac60072ded8ffe2e469699bde0f558e14134f1f6 Mon Sep 17 00:00:00 2001 From: sledgehammer999 Date: Mon, 20 Jul 2015 02:13:25 +0300 Subject: [PATCH] Fix installing search plugin by drag-n-dropping file. --- src/searchengine/engineselectdlg.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/searchengine/engineselectdlg.cpp b/src/searchengine/engineselectdlg.cpp index 45af53175..be3d7cc89 100644 --- a/src/searchengine/engineselectdlg.cpp +++ b/src/searchengine/engineselectdlg.cpp @@ -82,7 +82,21 @@ engineSelectDlg::~engineSelectDlg() { void engineSelectDlg::dropEvent(QDropEvent *event) { event->acceptProposedAction(); - QStringList files = event->mimeData()->text().split(QString::fromUtf8("\n")); + QStringList files; + if (event->mimeData()->hasUrls()) { + const QList urls = event->mimeData()->urls(); + foreach (const QUrl &url, urls) { + if (!url.isEmpty()) { + if (url.scheme().compare("file", Qt::CaseInsensitive) == 0) + files << url.toLocalFile(); + else + files << url.toString(); + } + } + } + else { + files = event->mimeData()->text().split(QString::fromUtf8("\n")); + } foreach (QString file, files) { qDebug("dropped %s", qPrintable(file)); if (misc::isUrl(file)) {