]> cloud.milkyroute.net Git - dolphin.git/blob - src/dbusinterface.cpp
SVN_SILENT made messages (.desktop file) - always resolve ours
[dolphin.git] / src / dbusinterface.cpp
1 /*
2 * SPDX-FileCopyrightText: 2015 Ashish Bansal <bansal.ashish096@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7 #include "dbusinterface.h"
8 #include "dolphin_generalsettings.h"
9 #include "global.h"
10
11 #include <KPropertiesDialog>
12 #include <KWindowSystem>
13
14 #include <QDBusConnection>
15 #include <QDBusConnectionInterface>
16
17 DBusInterface::DBusInterface()
18 : QObject()
19 {
20 QDBusConnection::sessionBus().registerObject(QStringLiteral("/org/freedesktop/FileManager1"),
21 this,
22 QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors);
23 QDBusConnectionInterface *sessionInterface = QDBusConnection::sessionBus().interface();
24 if (sessionInterface) {
25 sessionInterface->registerService(QStringLiteral("org.freedesktop.FileManager1"), QDBusConnectionInterface::QueueService);
26 }
27 }
28
29 void DBusInterface::ShowFolders(const QStringList &uriList, const QString &startUpId)
30 {
31 const QList<QUrl> urls = Dolphin::validateUris(uriList);
32 if (urls.isEmpty()) {
33 return;
34 }
35 const auto serviceName = isDaemon() ? QString() : QStringLiteral("org.kde.dolphin-%1").arg(QCoreApplication::applicationPid());
36 if (!Dolphin::attachToExistingInstance(urls, false, GeneralSettings::splitView(), serviceName, startUpId)) {
37 Dolphin::openNewWindow(urls);
38 }
39 }
40
41 void DBusInterface::ShowItems(const QStringList &uriList, const QString &startUpId)
42 {
43 const QList<QUrl> urls = Dolphin::validateUris(uriList);
44 if (urls.isEmpty()) {
45 return;
46 }
47 const auto serviceName = isDaemon() ? QString() : QStringLiteral("org.kde.dolphin-%1").arg(QCoreApplication::applicationPid());
48 if (!Dolphin::attachToExistingInstance(urls, true, GeneralSettings::splitView(), serviceName, startUpId)) {
49 Dolphin::openNewWindow(urls, nullptr, Dolphin::OpenNewWindowFlag::Select);
50 };
51 }
52
53 void DBusInterface::ShowItemProperties(const QStringList &uriList, const QString &startUpId)
54 {
55 const QList<QUrl> urls = Dolphin::validateUris(uriList);
56 if (!urls.isEmpty()) {
57 KWindowSystem::setCurrentXdgActivationToken(startUpId);
58 KPropertiesDialog::showDialog(urls);
59 }
60 }
61
62 void DBusInterface::SortOrderForUrl(const QString &url, QString &role, QString &order)
63 {
64 QUrl qurl(url);
65 auto sort = Dolphin::sortOrderForUrl(qurl);
66 role = sort.first;
67 if (sort.second == Qt::AscendingOrder) {
68 order = QStringLiteral("ascending");
69 } else {
70 order = QStringLiteral("descending");
71 }
72 }
73
74 void DBusInterface::setAsDaemon()
75 {
76 m_isDaemon = true;
77 }
78
79 bool DBusInterface::isDaemon() const
80 {
81 return m_isDaemon;
82 }
83
84 #include "moc_dbusinterface.cpp"