Pass application name and icon to KRun

Otherwise this results in the generic executable icon as bouncy cursor.

Differential Revision: https://phabricator.kde.org/D4823
This commit is contained in:
Kai Uwe Broulik 2017-03-08 16:52:15 +01:00
parent 6dcbb8127c
commit b79ea9f5e4
4 changed files with 37 additions and 8 deletions

View file

@ -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)

View file

@ -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()));

View file

@ -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());
}

View file

@ -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