]> cloud.milkyroute.net Git - dolphin.git/blob - src/dbusinterface.cpp
Clear filter bar on clicking current folder in places
[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 "global.h"
9 #include "dolphin_generalsettings.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"), this,
21 QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors);
22 QDBusConnectionInterface *sessionInterface = QDBusConnection::sessionBus().interface();
23 if (sessionInterface) {
24 sessionInterface->registerService(QStringLiteral("org.freedesktop.FileManager1"), QDBusConnectionInterface::QueueService);
25 }
26 }
27
28 void DBusInterface::ShowFolders(const QStringList& uriList, const QString& startUpId)
29 {
30 const QList<QUrl> urls = Dolphin::validateUris(uriList);
31 if (urls.isEmpty()) {
32 return;
33 }
34 const auto serviceName = isDaemon() ? QString() : QStringLiteral("org.kde.dolphin-%1").arg(QCoreApplication::applicationPid());
35 if(!Dolphin::attachToExistingInstance(urls, false, GeneralSettings::splitView(), serviceName, startUpId)) {
36 Dolphin::openNewWindow(urls);
37 }
38 }
39
40 void DBusInterface::ShowItems(const QStringList& uriList, const QString& startUpId)
41 {
42 const QList<QUrl> urls = Dolphin::validateUris(uriList);
43 if (urls.isEmpty()) {
44 return;
45 }
46 const auto serviceName = isDaemon() ? QString() : QStringLiteral("org.kde.dolphin-%1").arg(QCoreApplication::applicationPid());
47 if(!Dolphin::attachToExistingInstance(urls, true, GeneralSettings::splitView(), serviceName, startUpId)) {
48 Dolphin::openNewWindow(urls, nullptr, Dolphin::OpenNewWindowFlag::Select);
49 };
50 }
51
52 void DBusInterface::ShowItemProperties(const QStringList& uriList, const QString& startUpId)
53 {
54 const QList<QUrl> urls = Dolphin::validateUris(uriList);
55 if (!urls.isEmpty()) {
56 KWindowSystem::setCurrentXdgActivationToken(startUpId);
57 KPropertiesDialog::showDialog(urls);
58 }
59 }
60
61 void DBusInterface::SortOrderForUrl(const QString &url, QString &role, QString &order)
62 {
63 QUrl qurl(url);
64 auto sort = Dolphin::sortOrderForUrl(qurl);
65 role = sort.first;
66 if (sort.second == Qt::AscendingOrder) {
67 order = QStringLiteral("ascending");
68 } else {
69 order = QStringLiteral("descending");
70 }
71 }
72
73 void DBusInterface::setAsDaemon()
74 {
75 m_isDaemon = true;
76 }
77
78 bool DBusInterface::isDaemon() const
79 {
80 return m_isDaemon;
81 }