X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fa988586bc923b33497cbc97aaac07fc93a4ca83..889a574fcdde7d378cdcec75ffc5972b39efbf55:/src/dolphintabwidget.cpp diff --git a/src/dolphintabwidget.cpp b/src/dolphintabwidget.cpp index b38cd5146..0b1f07e0e 100644 --- a/src/dolphintabwidget.cpp +++ b/src/dolphintabwidget.cpp @@ -22,11 +22,10 @@ #include "dolphintabbar.h" #include "dolphintabpage.h" #include "dolphinviewcontainer.h" -#include "dolphin_generalsettings.h" -#include "views/draganddrophelper.h" #include #include +#include #include #include @@ -155,16 +154,14 @@ void DolphinTabWidget::openNewTab(const QUrl& primaryUrl, const QUrl& secondaryU } } -void DolphinTabWidget::openDirectories(const QList& dirs) +void DolphinTabWidget::openDirectories(const QList& dirs, bool splitView) { - const bool hasSplitView = GeneralSettings::splitView(); + Q_ASSERT(dirs.size() > 0); - // Open each directory inside a new tab. If the "split view" option has been enabled, - // always show two directories within one tab. QList::const_iterator it = dirs.constBegin(); while (it != dirs.constEnd()) { const QUrl& primaryUrl = *(it++); - if (hasSplitView && (it != dirs.constEnd())) { + if (splitView && (it != dirs.constEnd())) { const QUrl& secondaryUrl = *(it++); openNewTab(primaryUrl, secondaryUrl); } else { @@ -173,11 +170,9 @@ void DolphinTabWidget::openDirectories(const QList& dirs) } } -void DolphinTabWidget::openFiles(const QList& files) +void DolphinTabWidget::openFiles(const QList& files, bool splitView) { - if (files.isEmpty()) { - return; - } + Q_ASSERT(files.size() > 0); // Get all distinct directories from 'files' and open a tab // for each directory. If the "split view" option is enabled, two @@ -191,7 +186,7 @@ void DolphinTabWidget::openFiles(const QList& files) } const int oldTabCount = count(); - openDirectories(dirs); + openDirectories(dirs, splitView); const int tabCount = count(); // Select the files. Although the files can be split between several @@ -261,16 +256,16 @@ void DolphinTabWidget::detachTab(int index) { Q_ASSERT(index >= 0); - const QString separator(QLatin1Char(' ')); - QString command = QLatin1String("dolphin"); + QStringList args; const DolphinTabPage* tabPage = tabPageAt(index); - command += separator + tabPage->primaryViewContainer()->url().url(); + args << tabPage->primaryViewContainer()->url().url(); if (tabPage->splitViewEnabled()) { - command += separator + tabPage->secondaryViewContainer()->url().url(); - command += separator + QLatin1String("-split"); + args << tabPage->secondaryViewContainer()->url().url(); + args << QStringLiteral("--split"); } + const QString command = QStringLiteral("dolphin %1").arg(KShell::joinArgs(args)); KRun::runCommand(command, this); closeTab(index); @@ -286,13 +281,8 @@ void DolphinTabWidget::openNewActivatedTab(int index) void DolphinTabWidget::tabDropEvent(int index, QDropEvent* event) { if (index >= 0) { - const DolphinView* view = tabPageAt(index)->activeViewContainer()->view(); - - QString error; - DragAndDropHelper::dropUrls(view->rootItem(), view->url(), event, error); - if (!error.isEmpty()) { - currentTabPage()->activeViewContainer()->showMessage(error, DolphinViewContainer::Error); - } + DolphinView* view = tabPageAt(index)->activeViewContainer()->view(); + view->dropUrls(view->url(), event); } } @@ -348,7 +338,7 @@ QString DolphinTabWidget::tabName(const QUrl& url) const if (url == QUrl("file:///")) { name = '/'; } else { - name = url.fileName(); + name = url.adjusted(QUrl::StripTrailingSlash).fileName(); if (name.isEmpty()) { name = url.scheme(); } else {