1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-21 17:52:10 +02:00

TabBar: Support adding new tabs with text drop data

Urls are loaded directly and text is searched for using default search
engine.
This commit is contained in:
David Rosca 2017-12-31 19:13:25 +01:00
parent 373df431a7
commit ca04e9d967

View File

@ -26,6 +26,7 @@
#include "pluginproxy.h" #include "pluginproxy.h"
#include "iconprovider.h" #include "iconprovider.h"
#include "tabcontextmenu.h" #include "tabcontextmenu.h"
#include "searchenginesmanager.h"
#include <QMenu> #include <QMenu>
#include <QMimeData> #include <QMimeData>
@ -524,7 +525,7 @@ void TabBar::dragEnterEvent(QDragEnterEvent* event)
{ {
const QMimeData* mime = event->mimeData(); const QMimeData* mime = event->mimeData();
if (mime->hasUrls()) { if (mime->hasText() || mime->hasUrls()) {
event->acceptProposedAction(); event->acceptProposedAction();
return; return;
} }
@ -536,15 +537,19 @@ void TabBar::dropEvent(QDropEvent* event)
{ {
const QMimeData* mime = event->mimeData(); const QMimeData* mime = event->mimeData();
if (!mime->hasUrls()) { if (!mime->hasText() && !mime->hasUrls()) {
ComboTabBar::dropEvent(event); ComboTabBar::dropEvent(event);
return; return;
} }
int index = tabAt(event->pos()); int index = tabAt(event->pos());
if (index == -1) { if (index == -1) {
foreach (const QUrl &url, mime->urls()) { if (mime->hasUrls()) {
m_tabWidget->addView(url, Qz::NT_SelectedTabAtTheEnd); foreach (const QUrl &url, mime->urls()) {
m_tabWidget->addView(url, Qz::NT_SelectedTabAtTheEnd);
}
} else if (mime->hasText()) {
m_tabWidget->addView(mApp->searchEnginesManager()->searchResult(mime->text()), Qz::NT_SelectedNewEmptyTab);
} }
} }
else { else {