]>
cloud.milkyroute.net Git - dolphin.git/blob - src/dbusinterface.cpp
2 * SPDX-FileCopyrightText: 2015 Ashish Bansal <bansal.ashish096@gmail.com>
4 * SPDX-License-Identifier: GPL-2.0-or-later
7 #include "dbusinterface.h"
9 #include "dolphin_generalsettings.h"
11 #include <KPropertiesDialog>
12 #include <KWindowSystem>
14 #include <QApplication>
15 #include <QDBusConnection>
16 #include <QDBusInterface>
17 #include <QDBusConnectionInterface>
19 DBusInterface::DBusInterface() :
22 QDBusConnection::sessionBus().registerObject(QStringLiteral("/org/freedesktop/FileManager1"), this,
23 QDBusConnection::ExportScriptableContents
| QDBusConnection::ExportAdaptors
);
24 QDBusConnectionInterface
*sessionInterface
= QDBusConnection::sessionBus().interface();
25 if (sessionInterface
) {
26 sessionInterface
->registerService(QStringLiteral("org.freedesktop.FileManager1"), QDBusConnectionInterface::QueueService
);
30 void DBusInterface::ShowFolders(const QStringList
& uriList
, const QString
& startUpId
)
32 const QList
<QUrl
> urls
= Dolphin::validateUris(uriList
);
36 KWindowSystem::setCurrentXdgActivationToken(startUpId
);
37 const auto serviceName
= isDaemon() ? QString() : QStringLiteral("org.kde.dolphin-%1").arg(QCoreApplication::applicationPid());
38 if(!Dolphin::attachToExistingInstance(urls
, false, GeneralSettings::splitView(), serviceName
)) {
39 Dolphin::openNewWindow(urls
);
43 void DBusInterface::ShowItems(const QStringList
& uriList
, const QString
& startUpId
)
45 const QList
<QUrl
> urls
= Dolphin::validateUris(uriList
);
49 KWindowSystem::setCurrentXdgActivationToken(startUpId
);
50 const auto serviceName
= isDaemon() ? QString() : QStringLiteral("org.kde.dolphin-%1").arg(QCoreApplication::applicationPid());
51 if(!Dolphin::attachToExistingInstance(urls
, true, GeneralSettings::splitView(), serviceName
)) {
52 Dolphin::openNewWindow(urls
, nullptr, Dolphin::OpenNewWindowFlag::Select
);
56 void DBusInterface::ShowItemProperties(const QStringList
& uriList
, const QString
& startUpId
)
58 const QList
<QUrl
> urls
= Dolphin::validateUris(uriList
);
59 if (!urls
.isEmpty()) {
60 KWindowSystem::setCurrentXdgActivationToken(startUpId
);
61 KPropertiesDialog::showDialog(urls
);
65 void DBusInterface::SortOrderForUrl(const QString
&url
, QString
&role
, QString
&order
)
68 auto sort
= Dolphin::sortOrderForUrl(qurl
);
70 if (sort
.second
== Qt::AscendingOrder
) {
71 order
= QStringLiteral("ascending");
73 order
= QStringLiteral("descending");
77 void DBusInterface::setAsDaemon()
82 bool DBusInterface::isDaemon() const