┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dbusinterface.cpp4
-rw-r--r--src/dolphinmainwindow.cpp10
-rw-r--r--src/global.cpp20
-rw-r--r--src/global.h11
4 files changed, 37 insertions, 8 deletions
diff --git a/src/dbusinterface.cpp b/src/dbusinterface.cpp
index 124761ea0..37270b787 100644
--- a/src/dbusinterface.cpp
+++ b/src/dbusinterface.cpp
@@ -41,7 +41,7 @@ void DBusInterface::ShowFolders(const QStringList& uriList, const QString& start
if (urls.isEmpty()) {
return;
}
- KRun::run(QStringLiteral("dolphin %U"), urls, nullptr);
+ Dolphin::openNewWindow(urls);
}
void DBusInterface::ShowItems(const QStringList& uriList, const QString& startUpId)
@@ -51,7 +51,7 @@ void DBusInterface::ShowItems(const QStringList& uriList, const QString& startUp
if (urls.isEmpty()) {
return;
}
- KRun::run(QStringLiteral("dolphin --select %U"), urls, nullptr);
+ Dolphin::openNewWindow(urls, nullptr, Dolphin::OpenNewWindowFlag::Select);
}
void DBusInterface::ShowItemProperties(const QStringList& uriList, const QString& startUpId)
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 185db7193..2784bd08c 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -290,7 +290,7 @@ void DolphinMainWindow::updateFilterBarAction(bool show)
void DolphinMainWindow::openNewMainWindow()
{
- KRun::run(QStringLiteral("dolphin %u"), QList<QUrl>(), this);
+ Dolphin::openNewWindow({}, this);
}
void DolphinMainWindow::openNewActivatedTab()
@@ -331,7 +331,7 @@ void DolphinMainWindow::openInNewWindow()
}
if (!newWindowUrl.isEmpty()) {
- KRun::run(QStringLiteral("dolphin %u"), {newWindowUrl}, this);
+ Dolphin::openNewWindow({newWindowUrl}, this);
}
}
@@ -772,11 +772,9 @@ void DolphinMainWindow::openContextMenu(const QPoint& pos,
changeUrl(KIO::upUrl(item.url()));
break;
- case DolphinContextMenu::OpenParentFolderInNewWindow: {
-
- KRun::run(QStringLiteral("dolphin %u"), {KIO::upUrl(item.url())}, this);
+ case DolphinContextMenu::OpenParentFolderInNewWindow:
+ Dolphin::openNewWindow({KIO::upUrl(item.url())}, this);
break;
- }
case DolphinContextMenu::OpenParentFolderInNewTab:
openNewTab(KIO::upUrl(item.url()));
diff --git a/src/global.cpp b/src/global.cpp
index 3d6d7dd5e..20dee00fa 100644
--- a/src/global.cpp
+++ b/src/global.cpp
@@ -17,6 +17,11 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <QApplication>
+#include <QIcon>
+
+#include <KRun>
+
#include "global.h"
#include "dolphindebug.h"
@@ -41,3 +46,18 @@ QUrl Dolphin::homeUrl()
{
return QUrl::fromUserInput(GeneralSettings::homeUrl(), QString(), QUrl::AssumeLocalFile);
}
+
+void Dolphin::openNewWindow(const QList<QUrl> &urls, QWidget *window, const OpenNewWindowFlags &flags)
+{
+ QString command = QStringLiteral("dolphin");
+
+ if (flags.testFlag(OpenNewWindowFlag::Select)) {
+ command.append(QLatin1String(" --select"));
+ }
+
+ if (!urls.isEmpty()) {
+ command.append(QLatin1String(" %U"));
+ }
+
+ KRun::run(command, urls, window, qApp->applicationDisplayName(), qApp->windowIcon().name());
+}
diff --git a/src/global.h b/src/global.h
index 0ac2e9acb..3b6af43e9 100644
--- a/src/global.h
+++ b/src/global.h
@@ -30,6 +30,17 @@ namespace Dolphin {
* Returns the home url which is defined in General Settings
*/
QUrl homeUrl();
+
+ enum class OpenNewWindowFlag {
+ None = 0,
+ Select = 1<<1
+ };
+ Q_DECLARE_FLAGS(OpenNewWindowFlags, OpenNewWindowFlag)
+
+ /**
+ * Opens a new Dolphin window
+ */
+ void openNewWindow(const QList<QUrl> &urls = {}, QWidget *window = nullptr, const OpenNewWindowFlags &flags = OpenNewWindowFlag::None);
}
#endif //GLOBAL_H