Add wrapper for macos dbus connection

This commit is contained in:
Weixuan Xiao 2019-06-09 15:28:49 +00:00
parent af57aca545
commit 5431073844
28 changed files with 115 additions and 72 deletions

View file

@ -7,6 +7,7 @@ target_include_directories(kdeconnect-cli PUBLIC ${CMAKE_BINARY_DIR})
target_link_libraries(kdeconnect-cli target_link_libraries(kdeconnect-cli
kdeconnectinterfaces kdeconnectinterfaces
kdeconnectcore
KF5::CoreAddons KF5::CoreAddons
KF5::I18n KF5::I18n
) )

View file

@ -21,7 +21,6 @@
#include <QCryptographicHash> #include <QCryptographicHash>
#include <QIODevice> #include <QIODevice>
#include <QDBusMessage> #include <QDBusMessage>
#include <QDBusConnection>
#include <QCoreApplication> #include <QCoreApplication>
#include <QTextStream> #include <QTextStream>
#include <QFile> #include <QFile>
@ -34,6 +33,8 @@
#include "interfaces/dbushelpers.h" #include "interfaces/dbushelpers.h"
#include "kdeconnect-version.h" #include "kdeconnect-version.h"
#include <dbushelper.h>
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
QCoreApplication app(argc, argv); QCoreApplication app(argc, argv);
@ -166,7 +167,7 @@ int main(int argc, char** argv)
} }
} else if(parser.isSet(QStringLiteral("refresh"))) { } else if(parser.isSet(QStringLiteral("refresh"))) {
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), QStringLiteral("/modules/kdeconnect"), QStringLiteral("org.kde.kdeconnect.daemon"), QStringLiteral("forceOnNetworkChange")); QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), QStringLiteral("/modules/kdeconnect"), QStringLiteral("org.kde.kdeconnect.daemon"), QStringLiteral("forceOnNetworkChange"));
blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); blockOnReply(DbusHelper::sessionBus().asyncCall(msg));
} else { } else {
QString device = parser.value(QStringLiteral("device")); QString device = parser.value(QStringLiteral("device"));
@ -199,7 +200,7 @@ int main(int argc, char** argv)
QStringLiteral("org.kde.kdeconnect.device.share"), QStringLiteral("shareUrls")); QStringLiteral("org.kde.kdeconnect.device.share"), QStringLiteral("shareUrls"));
msg.setArguments(QVariantList() << QVariant(urls)); msg.setArguments(QVariantList() << QVariant(urls));
blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); blockOnReply(DbusHelper::sessionBus().asyncCall(msg));
for (const QString& url : qAsConst(urls)) { for (const QString& url : qAsConst(urls)) {
QTextStream(stdout) << i18n("Shared %1", url) << endl; QTextStream(stdout) << i18n("Shared %1", url) << endl;
@ -207,7 +208,7 @@ int main(int argc, char** argv)
} else if (parser.isSet(QStringLiteral("share-text"))) { } else if (parser.isSet(QStringLiteral("share-text"))) {
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/share", QStringLiteral("org.kde.kdeconnect.device.share"), QStringLiteral("shareText")); QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/share", QStringLiteral("org.kde.kdeconnect.device.share"), QStringLiteral("shareText"));
msg.setArguments(QVariantList() << parser.value(QStringLiteral("share-text"))); msg.setArguments(QVariantList() << parser.value(QStringLiteral("share-text")));
blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); blockOnReply(DbusHelper::sessionBus().asyncCall(msg));
QTextStream(stdout) << i18n("Shared text: %1", parser.value(QStringLiteral("share-text"))) << endl; QTextStream(stdout) << i18n("Shared text: %1", parser.value(QStringLiteral("share-text"))) << endl;
} else if(parser.isSet(QStringLiteral("pair"))) { } else if(parser.isSet(QStringLiteral("pair"))) {
DeviceDbusInterface dev(device); DeviceDbusInterface dev(device);
@ -250,22 +251,22 @@ int main(int argc, char** argv)
QString message = parser.value(QStringLiteral("ping-msg")); QString message = parser.value(QStringLiteral("ping-msg"));
msg.setArguments(QVariantList() << message); msg.setArguments(QVariantList() << message);
} }
blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); blockOnReply(DbusHelper::sessionBus().asyncCall(msg));
} else if(parser.isSet(QStringLiteral("send-sms"))) { } else if(parser.isSet(QStringLiteral("send-sms"))) {
if (parser.isSet(QStringLiteral("destination"))) { if (parser.isSet(QStringLiteral("destination"))) {
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/sms", QStringLiteral("org.kde.kdeconnect.device.sms"), QStringLiteral("sendSms")); QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/sms", QStringLiteral("org.kde.kdeconnect.device.sms"), QStringLiteral("sendSms"));
msg.setArguments({ parser.value("destination"), parser.value("send-sms") }); msg.setArguments({ parser.value("destination"), parser.value("send-sms") });
blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); blockOnReply(DbusHelper::sessionBus().asyncCall(msg));
} else { } else {
QTextStream(stderr) << i18n("error: should specify the SMS's recipient by passing --destination <phone number>"); QTextStream(stderr) << i18n("error: should specify the SMS's recipient by passing --destination <phone number>");
return 1; return 1;
} }
} else if(parser.isSet(QStringLiteral("ring"))) { } else if(parser.isSet(QStringLiteral("ring"))) {
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/findmyphone", QStringLiteral("org.kde.kdeconnect.device.findmyphone"), QStringLiteral("ring")); QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/findmyphone", QStringLiteral("org.kde.kdeconnect.device.findmyphone"), QStringLiteral("ring"));
blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); blockOnReply(DbusHelper::sessionBus().asyncCall(msg));
} else if(parser.isSet(QStringLiteral("photo"))) { } else if(parser.isSet(QStringLiteral("photo"))) {
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/photo", QStringLiteral("org.kde.kdeconnect.device.photo"), QStringLiteral("requestPhoto")); QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/photo", QStringLiteral("org.kde.kdeconnect.device.photo"), QStringLiteral("requestPhoto"));
blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); blockOnReply(DbusHelper::sessionBus().asyncCall(msg));
} else if(parser.isSet("send-keys")) { } else if(parser.isSet("send-keys")) {
QString seq = parser.value("send-keys"); QString seq = parser.value("send-keys");
QDBusMessage msg = QDBusMessage::createMethodCall("org.kde.kdeconnect", "/modules/kdeconnect/devices/"+device+"/remotekeyboard", "org.kde.kdeconnect.device.remotekeyboard", "sendKeyPress"); QDBusMessage msg = QDBusMessage::createMethodCall("org.kde.kdeconnect", "/modules/kdeconnect/devices/"+device+"/remotekeyboard", "org.kde.kdeconnect.device.remotekeyboard", "sendKeyPress");
@ -276,13 +277,13 @@ int main(int argc, char** argv)
while (!in.atEnd()) { while (!in.atEnd()) {
QByteArray line = in.readLine(); // sanitize to ASCII-codes > 31? QByteArray line = in.readLine(); // sanitize to ASCII-codes > 31?
msg.setArguments({QString(line), -1, false, false, false}); msg.setArguments({QString(line), -1, false, false, false});
blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); blockOnReply(DbusHelper::sessionBus().asyncCall(msg));
} }
in.close(); in.close();
} }
} else { } else {
msg.setArguments({seq, -1, false, false, false}); msg.setArguments({seq, -1, false, false, false});
blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); blockOnReply(DbusHelper::sessionBus().asyncCall(msg));
} }
} else if(parser.isSet(QStringLiteral("list-notifications"))) { } else if(parser.isSet(QStringLiteral("list-notifications"))) {
NotificationsModel notifications; NotificationsModel notifications;

View file

@ -2,6 +2,10 @@ project(KDEConnectCore)
add_definitions(-DTRANSLATION_DOMAIN=\"kdeconnect-core\") add_definitions(-DTRANSLATION_DOMAIN=\"kdeconnect-core\")
set(KDECONNECT_PRIVATE_DBUS_ADDR unix:path=/tmp/kdeconnect-dbus)
set(KDECONNECT_PRIVATE_DBUS_NAME DBusKDEConnectOnly)
configure_file(dbushelper.h.in ${CMAKE_CURRENT_BINARY_DIR}/dbushelper.h)
add_subdirectory(backends/lan) add_subdirectory(backends/lan)
add_subdirectory(backends/loopback) add_subdirectory(backends/loopback)

View file

@ -20,7 +20,6 @@
#include "daemon.h" #include "daemon.h"
#include <QDBusConnection>
#include <QDBusMetaType> #include <QDBusMetaType>
#include <QNetworkAccessManager> #include <QNetworkAccessManager>
#include <QDebug> #include <QDebug>
@ -29,6 +28,7 @@
#include "core_debug.h" #include "core_debug.h"
#include "kdeconnectconfig.h" #include "kdeconnectconfig.h"
#include "networkpacket.h" #include "networkpacket.h"
#include "dbushelper.h"
#include "notificationserverinfo.h" #include "notificationserverinfo.h"
#ifdef KDECONNECT_BLUETOOTH #ifdef KDECONNECT_BLUETOOTH
@ -108,8 +108,8 @@ void Daemon::init()
//Register on DBus //Register on DBus
qDBusRegisterMetaType< QMap<QString,QString> >(); qDBusRegisterMetaType< QMap<QString,QString> >();
QDBusConnection::sessionBus().registerService(QStringLiteral("org.kde.kdeconnect")); DbusHelper::sessionBus().registerService(QStringLiteral("org.kde.kdeconnect"));
QDBusConnection::sessionBus().registerObject(QStringLiteral("/modules/kdeconnect"), this, QDBusConnection::ExportScriptableContents); DbusHelper::sessionBus().registerObject(QStringLiteral("/modules/kdeconnect"), this, QDBusConnection::ExportScriptableContents);
NotificationServerInfo::instance().init(); NotificationServerInfo::instance().init();

View file

@ -20,8 +20,6 @@
#include "dbushelper.h" #include "dbushelper.h"
#include <QRegExp>
namespace DbusHelper { namespace DbusHelper {
void filterNonExportableCharacters(QString& s) void filterNonExportableCharacters(QString& s)
@ -30,4 +28,13 @@ void filterNonExportableCharacters(QString& s)
s.replace(regexp,QLatin1String("_")); s.replace(regexp,QLatin1String("_"));
} }
QDBusConnection sessionBus()
{
#ifdef Q_OS_MAC
return QDBusConnection::connectToBus(QStringLiteral(KDECONNECT_PRIVATE_DBUS_ADDR), QStringLiteral(KDECONNECT_PRIVATE_DBUS_NAME));
#else
return QDBusConnection::sessionBus();
#endif
}
} }

View file

@ -21,11 +21,17 @@
#ifndef KDECONNECT_DBUSHELPER_H #ifndef KDECONNECT_DBUSHELPER_H
#define KDECONNECT_DBUSHELPER_H #define KDECONNECT_DBUSHELPER_H
#include <QString> #include <QString>
#include <QDBusConnection>
#include "kdeconnectcore_export.h" #include "kdeconnectcore_export.h"
#define KDECONNECT_PRIVATE_DBUS_ADDR "${KDECONNECT_PRIVATE_DBUS_ADDR}"
#define KDECONNECT_PRIVATE_DBUS_NAME "${KDECONNECT_PRIVATE_DBUS_NAME}"
namespace DbusHelper { namespace DbusHelper {
void KDECONNECTCORE_EXPORT filterNonExportableCharacters(QString& s); void KDECONNECTCORE_EXPORT filterNonExportableCharacters(QString& s);
QDBusConnection KDECONNECTCORE_EXPORT sessionBus();
} }
#endif #endif

View file

@ -20,7 +20,6 @@
#include "device.h" #include "device.h"
#include <QDBusConnection>
#include <QVector> #include <QVector>
#include <QSet> #include <QSet>
#include <QSslCertificate> #include <QSslCertificate>
@ -38,6 +37,7 @@
#include "networkpacket.h" #include "networkpacket.h"
#include "kdeconnectconfig.h" #include "kdeconnectconfig.h"
#include "daemon.h" #include "daemon.h"
#include "dbushelper.h"
//In older Qt released, qAsConst isnt available //In older Qt released, qAsConst isnt available
#include "qtcompat_p.h" #include "qtcompat_p.h"
@ -87,7 +87,7 @@ Device::Device(QObject* parent, const QString& id)
d->m_deviceType = str2type(info.deviceType); d->m_deviceType = str2type(info.deviceType);
//Register in bus //Register in bus
QDBusConnection::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors); DbusHelper::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors);
//Assume every plugin is supported until addLink is called and we can get the actual list //Assume every plugin is supported until addLink is called and we can get the actual list
d->m_allPlugins = PluginLoader::instance()->getPluginList().toSet(); d->m_allPlugins = PluginLoader::instance()->getPluginList().toSet();
@ -106,7 +106,7 @@ Device::Device(QObject* parent, const NetworkPacket& identityPacket, DeviceLink*
addLink(identityPacket, dl); addLink(identityPacket, dl);
//Register in bus //Register in bus
QDBusConnection::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors); DbusHelper::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors);
connect(this, &Device::pairingError, this, &warn); connect(this, &Device::pairingError, this, &warn);
} }
@ -196,7 +196,7 @@ void Device::reloadPlugins()
d->m_plugins = newPluginMap; d->m_plugins = newPluginMap;
d->m_pluginsByIncomingCapability = newPluginsByIncomingCapability; d->m_pluginsByIncomingCapability = newPluginsByIncomingCapability;
QDBusConnection bus = QDBusConnection::sessionBus(); QDBusConnection bus = DbusHelper::sessionBus();
for (KdeConnectPlugin* plugin : qAsConst(d->m_plugins)) { for (KdeConnectPlugin* plugin : qAsConst(d->m_plugins)) {
//TODO: see how it works in Android (only done once, when created) //TODO: see how it works in Android (only done once, when created)
plugin->connected(); plugin->connected();

View file

@ -23,9 +23,9 @@
#include <QDir> #include <QDir>
#include <QSettings> #include <QSettings>
#include <QDBusMessage> #include <QDBusMessage>
#include <QDBusConnection>
#include "kdeconnectconfig.h" #include "kdeconnectconfig.h"
#include "dbushelper.h"
struct KdeConnectPluginConfigPrivate struct KdeConnectPluginConfigPrivate
{ {
@ -43,7 +43,7 @@ KdeConnectPluginConfig::KdeConnectPluginConfig(const QString& deviceId, const QS
d->m_config = new QSettings(d->m_configDir.absoluteFilePath(QStringLiteral("config")), QSettings::IniFormat); d->m_config = new QSettings(d->m_configDir.absoluteFilePath(QStringLiteral("config")), QSettings::IniFormat);
d->m_signal = QDBusMessage::createSignal("/kdeconnect/"+deviceId+"/"+pluginName, QStringLiteral("org.kde.kdeconnect.config"), QStringLiteral("configChanged")); d->m_signal = QDBusMessage::createSignal("/kdeconnect/"+deviceId+"/"+pluginName, QStringLiteral("org.kde.kdeconnect.config"), QStringLiteral("configChanged"));
QDBusConnection::sessionBus().connect(QLatin1String(""), "/kdeconnect/"+deviceId+"/"+pluginName, QStringLiteral("org.kde.kdeconnect.config"), QStringLiteral("configChanged"), this, SLOT(slotConfigChanged())); DbusHelper::sessionBus().connect(QLatin1String(""), "/kdeconnect/"+deviceId+"/"+pluginName, QStringLiteral("org.kde.kdeconnect.config"), QStringLiteral("configChanged"), this, SLOT(slotConfigChanged()));
} }
KdeConnectPluginConfig::~KdeConnectPluginConfig() KdeConnectPluginConfig::~KdeConnectPluginConfig()
@ -79,7 +79,7 @@ void KdeConnectPluginConfig::set(const QString& key, const QVariant& value)
{ {
d->m_config->setValue(key, value); d->m_config->setValue(key, value);
d->m_config->sync(); d->m_config->sync();
QDBusConnection::sessionBus().send(d->m_signal); DbusHelper::sessionBus().send(d->m_signal);
} }
void KdeConnectPluginConfig::setList(const QString& key, const QVariantList& list) void KdeConnectPluginConfig::setList(const QString& key, const QVariantList& list)
@ -91,7 +91,7 @@ void KdeConnectPluginConfig::setList(const QString& key, const QVariantList& lis
} }
d->m_config->endArray(); d->m_config->endArray();
d->m_config->sync(); d->m_config->sync();
QDBusConnection::sessionBus().send(d->m_signal); DbusHelper::sessionBus().send(d->m_signal);
} }
void KdeConnectPluginConfig::slotConfigChanged() void KdeConnectPluginConfig::slotConfigChanged()

View file

@ -25,7 +25,6 @@
#include <QCommandLineOption> #include <QCommandLineOption>
#include <QCommandLineParser> #include <QCommandLineParser>
#include <QDBusMessage> #include <QDBusMessage>
#include <QDBusConnection>
#include <QSessionManager> #include <QSessionManager>
#include <KAboutData> #include <KAboutData>
@ -34,6 +33,8 @@
#include <KLocalizedString> #include <KLocalizedString>
#include <KIO/AccessManager> #include <KIO/AccessManager>
#include <dbushelper.h>
#include "core/daemon.h" #include "core/daemon.h"
#include "core/device.h" #include "core/device.h"
#include "core/backends/pairinghandler.h" #include "core/backends/pairinghandler.h"
@ -122,10 +123,12 @@ int main(int argc, char* argv[])
QStringLiteral("/MainApplication"), QStringLiteral("/MainApplication"),
QStringLiteral("org.qtproject.Qt.QCoreApplication"), QStringLiteral("org.qtproject.Qt.QCoreApplication"),
QStringLiteral("quit")); QStringLiteral("quit"));
QDBusConnection::sessionBus().call(message); //deliberately block until it's done, so we register the name after the app quits DbusHelper::sessionBus().call(message); //deliberately block until it's done, so we register the name after the app quits
} }
#ifndef Q_OS_MAC
KDBusService dbusService(KDBusService::Unique); KDBusService dbusService(KDBusService::Unique);
#endif
DesktopDaemon daemon; DesktopDaemon daemon;

View file

@ -6,6 +6,7 @@ target_link_libraries(kdeconnectfileitemaction
KF5::KIOWidgets KF5::KIOWidgets
KF5::I18n KF5::I18n
kdeconnectinterfaces kdeconnectinterfaces
kdeconnectcore
) )
install(TARGETS kdeconnectfileitemaction DESTINATION ${PLUGIN_INSTALL_DIR}) install(TARGETS kdeconnectfileitemaction DESTINATION ${PLUGIN_INSTALL_DIR})
install(FILES kdeconnectsendfile.desktop DESTINATION ${SERVICES_INSTALL_DIR}) install(FILES kdeconnectsendfile.desktop DESTINATION ${SERVICES_INSTALL_DIR})

View file

@ -35,6 +35,8 @@
#include <interfaces/devicesmodel.h> #include <interfaces/devicesmodel.h>
#include <interfaces/dbusinterfaces.h> #include <interfaces/dbusinterfaces.h>
#include <dbushelper.h>
K_PLUGIN_FACTORY(SendFileItemActionFactory, registerPlugin<SendFileItemAction>();) K_PLUGIN_FACTORY(SendFileItemActionFactory, registerPlugin<SendFileItemAction>();)
Q_LOGGING_CATEGORY(KDECONNECT_FILEITEMACTION, "kdeconnect.fileitemaction") Q_LOGGING_CATEGORY(KDECONNECT_FILEITEMACTION, "kdeconnect.fileitemaction")
@ -92,7 +94,7 @@ void SendFileItemAction::sendFile()
for (const QUrl& url : urls) { for (const QUrl& url : urls) {
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+id+"/share", QStringLiteral("org.kde.kdeconnect.device.share"), QStringLiteral("shareUrl")); QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+id+"/share", QStringLiteral("org.kde.kdeconnect.device.share"), QStringLiteral("shareUrl"));
msg.setArguments(QVariantList() << url.toString()); msg.setArguments(QVariantList() << url.toString());
QDBusConnection::sessionBus().call(msg); DbusHelper::sessionBus().call(msg);
} }
} }

View file

@ -16,7 +16,7 @@ ecm_add_app_icon(indicator_SRCS ICONS
add_executable(kdeconnect-indicator ${indicator_SRCS}) add_executable(kdeconnect-indicator ${indicator_SRCS})
target_include_directories(kdeconnect-indicator PUBLIC ${CMAKE_BINARY_DIR}) target_include_directories(kdeconnect-indicator PUBLIC ${CMAKE_BINARY_DIR})
target_link_libraries(kdeconnect-indicator Qt5::Widgets KF5::CoreAddons KF5::I18n KF5::Notifications KF5::DBusAddons KF5::KCMUtils kdeconnectinterfaces) target_link_libraries(kdeconnect-indicator Qt5::Widgets KF5::CoreAddons KF5::I18n KF5::Notifications KF5::DBusAddons KF5::KCMUtils kdeconnectinterfaces kdeconnectcore)
install(TARGETS kdeconnect-indicator ${INSTALL_TARGETS_DEFAULT_ARGS}) install(TARGETS kdeconnect-indicator ${INSTALL_TARGETS_DEFAULT_ARGS})
install(PROGRAMS org.kde.kdeconnect.nonplasma.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) install(PROGRAMS org.kde.kdeconnect.nonplasma.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})

View file

@ -24,6 +24,8 @@
#include "interfaces/dbusinterfaces.h" #include "interfaces/dbusinterfaces.h"
#include <dbushelper.h>
class BatteryAction : public QAction class BatteryAction : public QAction
{ {
Q_OBJECT Q_OBJECT
@ -105,7 +107,7 @@ DeviceIndicator::DeviceIndicator(DeviceDbusInterface* device)
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device->id()+"/share", QStringLiteral("org.kde.kdeconnect.device.share"), QStringLiteral("shareUrl")); QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device->id()+"/share", QStringLiteral("org.kde.kdeconnect.device.share"), QStringLiteral("shareUrl"));
msg.setArguments(QVariantList() << url.toString()); msg.setArguments(QVariantList() << url.toString());
QDBusConnection::sessionBus().call(msg); DbusHelper::sessionBus().call(msg);
}); });
setWhenAvailable(device->hasPlugin("kdeconnect_share"), [sendFile](bool available) { sendFile->setVisible(available); }, this); setWhenAvailable(device->hasPlugin("kdeconnect_share"), [sendFile](bool available) { sendFile->setVisible(available); }, this);
} }

View file

@ -37,6 +37,8 @@
#include "kdeconnect-version.h" #include "kdeconnect-version.h"
#include "deviceindicator.h" #include "deviceindicator.h"
#include <dbushelper.h>
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
QApplication app(argc, argv); QApplication app(argc, argv);
@ -52,7 +54,9 @@ int main(int argc, char** argv)
QProcess::startDetached("kdeconnectd.exe"); QProcess::startDetached("kdeconnectd.exe");
#endif #endif
#ifndef Q_OS_MAC
KDBusService dbusService(KDBusService::Unique); KDBusService dbusService(KDBusService::Unique);
#endif
DevicesModel model; DevicesModel model;
model.setDisplayFilter(DevicesModel::Reachable | DevicesModel::Paired); model.setDisplayFilter(DevicesModel::Reachable | DevicesModel::Paired);

View file

@ -64,7 +64,7 @@ set_target_properties(kdeconnectinterfaces PROPERTIES
generate_export_header(kdeconnectinterfaces EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/kdeconnectinterfaces_export.h BASE_NAME KDEConnectInterfaces) generate_export_header(kdeconnectinterfaces EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/kdeconnectinterfaces_export.h BASE_NAME KDEConnectInterfaces)
target_include_directories(kdeconnectinterfaces PUBLIC ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) target_include_directories(kdeconnectinterfaces PUBLIC ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR})
target_link_libraries(kdeconnectinterfaces target_link_libraries(kdeconnectinterfaces
LINK_PUBLIC LINK_PUBLIC
@ -73,6 +73,7 @@ LINK_PUBLIC
LINK_PRIVATE LINK_PRIVATE
KF5::ConfigCore KF5::ConfigCore
KF5::I18n KF5::I18n
kdeconnectcore
) )
configure_file(KDEConnectConfig.cmake.in ${CMAKE_BINARY_DIR}/interfaces/KDEConnectConfig.cmake @ONLY) configure_file(KDEConnectConfig.cmake.in ${CMAKE_BINARY_DIR}/interfaces/KDEConnectConfig.cmake @ONLY)

View file

@ -19,18 +19,19 @@
*/ */
#include "dbusinterfaces.h" #include "dbusinterfaces.h"
#include <dbushelper.h>
QString DaemonDbusInterface::activatedService() { QString DaemonDbusInterface::activatedService() {
static const QString service = QStringLiteral("org.kde.kdeconnect"); static const QString service = QStringLiteral("org.kde.kdeconnect");
auto reply = QDBusConnection::sessionBus().interface()->startService(service); auto reply = DbusHelper::sessionBus().interface()->startService(service);
if (!reply.isValid()) { if (!reply.isValid()) {
qWarning() << "error activating kdeconnectd:" << QDBusConnection::sessionBus().interface()->lastError(); qWarning() << "error activating kdeconnectd:" << DbusHelper::sessionBus().interface()->lastError();
} }
return service; return service;
} }
DaemonDbusInterface::DaemonDbusInterface(QObject* parent) DaemonDbusInterface::DaemonDbusInterface(QObject* parent)
: OrgKdeKdeconnectDaemonInterface(DaemonDbusInterface::activatedService(), QStringLiteral("/modules/kdeconnect"), QDBusConnection::sessionBus(), parent) : OrgKdeKdeconnectDaemonInterface(DaemonDbusInterface::activatedService(), QStringLiteral("/modules/kdeconnect"), DbusHelper::sessionBus(), parent)
{ {
connect(this, &OrgKdeKdeconnectDaemonInterface::pairingRequestsChanged, this, &DaemonDbusInterface::pairingRequestsChangedProxy); connect(this, &OrgKdeKdeconnectDaemonInterface::pairingRequestsChanged, this, &DaemonDbusInterface::pairingRequestsChangedProxy);
} }
@ -41,7 +42,7 @@ DaemonDbusInterface::~DaemonDbusInterface()
} }
DeviceDbusInterface::DeviceDbusInterface(const QString& id, QObject* parent) DeviceDbusInterface::DeviceDbusInterface(const QString& id, QObject* parent)
: OrgKdeKdeconnectDeviceInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/"+id, QDBusConnection::sessionBus(), parent) : OrgKdeKdeconnectDeviceInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/"+id, DbusHelper::sessionBus(), parent)
, m_id(id) , m_id(id)
{ {
connect(this, &OrgKdeKdeconnectDeviceInterface::trustedChanged, this, &DeviceDbusInterface::trustedChangedProxy); connect(this, &OrgKdeKdeconnectDeviceInterface::trustedChanged, this, &DeviceDbusInterface::trustedChangedProxy);
@ -63,11 +64,11 @@ QString DeviceDbusInterface::id() const
void DeviceDbusInterface::pluginCall(const QString& plugin, const QString& method) void DeviceDbusInterface::pluginCall(const QString& plugin, const QString& method)
{ {
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+id()+'/'+plugin, "org.kde.kdeconnect.device."+plugin, method); QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+id()+'/'+plugin, "org.kde.kdeconnect.device."+plugin, method);
QDBusConnection::sessionBus().asyncCall(msg); DbusHelper::sessionBus().asyncCall(msg);
} }
DeviceBatteryDbusInterface::DeviceBatteryDbusInterface(const QString& id, QObject* parent) DeviceBatteryDbusInterface::DeviceBatteryDbusInterface(const QString& id, QObject* parent)
: OrgKdeKdeconnectDeviceBatteryInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/"+id, QDBusConnection::sessionBus(), parent) : OrgKdeKdeconnectDeviceBatteryInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/"+id, DbusHelper::sessionBus(), parent)
{ {
} }
@ -78,7 +79,7 @@ DeviceBatteryDbusInterface::~DeviceBatteryDbusInterface()
} }
DeviceNotificationsDbusInterface::DeviceNotificationsDbusInterface(const QString& id, QObject* parent) DeviceNotificationsDbusInterface::DeviceNotificationsDbusInterface(const QString& id, QObject* parent)
: OrgKdeKdeconnectDeviceNotificationsInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/"+id, QDBusConnection::sessionBus(), parent) : OrgKdeKdeconnectDeviceNotificationsInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/"+id, DbusHelper::sessionBus(), parent)
{ {
} }
@ -89,7 +90,7 @@ DeviceNotificationsDbusInterface::~DeviceNotificationsDbusInterface()
} }
NotificationDbusInterface::NotificationDbusInterface(const QString& deviceId, const QString& notificationId, QObject* parent) NotificationDbusInterface::NotificationDbusInterface(const QString& deviceId, const QString& notificationId, QObject* parent)
: OrgKdeKdeconnectDeviceNotificationsNotificationInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/"+deviceId+"/notifications/"+notificationId, QDBusConnection::sessionBus(), parent) : OrgKdeKdeconnectDeviceNotificationsNotificationInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/"+deviceId+"/notifications/"+notificationId, DbusHelper::sessionBus(), parent)
, id(notificationId) , id(notificationId)
{ {
@ -101,7 +102,7 @@ NotificationDbusInterface::~NotificationDbusInterface()
} }
DeviceConversationsDbusInterface::DeviceConversationsDbusInterface(const QString& deviceId, QObject* parent) DeviceConversationsDbusInterface::DeviceConversationsDbusInterface(const QString& deviceId, QObject* parent)
: OrgKdeKdeconnectDeviceConversationsInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/"+deviceId, QDBusConnection::sessionBus(), parent) : OrgKdeKdeconnectDeviceConversationsInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/"+deviceId, DbusHelper::sessionBus(), parent)
{ {
} }
@ -112,7 +113,7 @@ DeviceConversationsDbusInterface::~DeviceConversationsDbusInterface()
} }
SftpDbusInterface::SftpDbusInterface(const QString& id, QObject* parent) SftpDbusInterface::SftpDbusInterface(const QString& id, QObject* parent)
: OrgKdeKdeconnectDeviceSftpInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + id + "/sftp", QDBusConnection::sessionBus(), parent) : OrgKdeKdeconnectDeviceSftpInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + id + "/sftp", DbusHelper::sessionBus(), parent)
{ {
} }
@ -123,7 +124,7 @@ SftpDbusInterface::~SftpDbusInterface()
} }
MprisDbusInterface::MprisDbusInterface(const QString& id, QObject* parent) MprisDbusInterface::MprisDbusInterface(const QString& id, QObject* parent)
: OrgKdeKdeconnectDeviceMprisremoteInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + id + "/mprisremote", QDBusConnection::sessionBus(), parent) : OrgKdeKdeconnectDeviceMprisremoteInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + id + "/mprisremote", DbusHelper::sessionBus(), parent)
{ {
connect(this, &OrgKdeKdeconnectDeviceMprisremoteInterface::propertiesChanged, this, &MprisDbusInterface::propertiesChangedProxy); connect(this, &OrgKdeKdeconnectDeviceMprisremoteInterface::propertiesChanged, this, &MprisDbusInterface::propertiesChangedProxy);
} }
@ -133,7 +134,7 @@ MprisDbusInterface::~MprisDbusInterface()
} }
RemoteControlDbusInterface::RemoteControlDbusInterface(const QString& id, QObject* parent) RemoteControlDbusInterface::RemoteControlDbusInterface(const QString& id, QObject* parent)
: OrgKdeKdeconnectDeviceRemotecontrolInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + id + "/remotecontrol", QDBusConnection::sessionBus(), parent) : OrgKdeKdeconnectDeviceRemotecontrolInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + id + "/remotecontrol", DbusHelper::sessionBus(), parent)
{ {
} }
@ -142,7 +143,7 @@ RemoteControlDbusInterface::~RemoteControlDbusInterface()
} }
LockDeviceDbusInterface::LockDeviceDbusInterface(const QString& id, QObject* parent) LockDeviceDbusInterface::LockDeviceDbusInterface(const QString& id, QObject* parent)
: OrgKdeKdeconnectDeviceLockdeviceInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + id + "/lockdevice", QDBusConnection::sessionBus(), parent) : OrgKdeKdeconnectDeviceLockdeviceInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + id + "/lockdevice", DbusHelper::sessionBus(), parent)
{ {
connect(this, &OrgKdeKdeconnectDeviceLockdeviceInterface::lockedChanged, this, &LockDeviceDbusInterface::lockedChangedProxy); connect(this, &OrgKdeKdeconnectDeviceLockdeviceInterface::lockedChanged, this, &LockDeviceDbusInterface::lockedChangedProxy);
Q_ASSERT(isValid()); Q_ASSERT(isValid());
@ -153,7 +154,7 @@ LockDeviceDbusInterface::~LockDeviceDbusInterface()
} }
FindMyPhoneDeviceDbusInterface::FindMyPhoneDeviceDbusInterface(const QString& deviceId, QObject* parent): FindMyPhoneDeviceDbusInterface::FindMyPhoneDeviceDbusInterface(const QString& deviceId, QObject* parent):
OrgKdeKdeconnectDeviceFindmyphoneInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/findmyphone", QDBusConnection::sessionBus(), parent) OrgKdeKdeconnectDeviceFindmyphoneInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/findmyphone", DbusHelper::sessionBus(), parent)
{ {
} }
@ -162,14 +163,14 @@ FindMyPhoneDeviceDbusInterface::~FindMyPhoneDeviceDbusInterface()
} }
RemoteCommandsDbusInterface::RemoteCommandsDbusInterface(const QString& deviceId, QObject* parent): RemoteCommandsDbusInterface::RemoteCommandsDbusInterface(const QString& deviceId, QObject* parent):
OrgKdeKdeconnectDeviceRemotecommandsInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/remotecommands", QDBusConnection::sessionBus(), parent) OrgKdeKdeconnectDeviceRemotecommandsInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/remotecommands", DbusHelper::sessionBus(), parent)
{ {
} }
RemoteCommandsDbusInterface::~RemoteCommandsDbusInterface() = default; RemoteCommandsDbusInterface::~RemoteCommandsDbusInterface() = default;
RemoteKeyboardDbusInterface::RemoteKeyboardDbusInterface(const QString& deviceId, QObject* parent): RemoteKeyboardDbusInterface::RemoteKeyboardDbusInterface(const QString& deviceId, QObject* parent):
OrgKdeKdeconnectDeviceRemotekeyboardInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/remotekeyboard", QDBusConnection::sessionBus(), parent) OrgKdeKdeconnectDeviceRemotekeyboardInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/remotekeyboard", DbusHelper::sessionBus(), parent)
{ {
connect(this, &OrgKdeKdeconnectDeviceRemotekeyboardInterface::remoteStateChanged, this, &RemoteKeyboardDbusInterface::remoteStateChanged); connect(this, &OrgKdeKdeconnectDeviceRemotekeyboardInterface::remoteStateChanged, this, &RemoteKeyboardDbusInterface::remoteStateChanged);
} }
@ -177,20 +178,20 @@ RemoteKeyboardDbusInterface::RemoteKeyboardDbusInterface(const QString& deviceId
RemoteKeyboardDbusInterface::~RemoteKeyboardDbusInterface() = default; RemoteKeyboardDbusInterface::~RemoteKeyboardDbusInterface() = default;
SmsDbusInterface::SmsDbusInterface(const QString& deviceId, QObject* parent): SmsDbusInterface::SmsDbusInterface(const QString& deviceId, QObject* parent):
OrgKdeKdeconnectDeviceSmsInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/sms", QDBusConnection::sessionBus(), parent) OrgKdeKdeconnectDeviceSmsInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/sms", DbusHelper::sessionBus(), parent)
{ {
} }
SmsDbusInterface::~SmsDbusInterface() = default; SmsDbusInterface::~SmsDbusInterface() = default;
ShareDbusInterface::ShareDbusInterface(const QString& deviceId, QObject* parent): ShareDbusInterface::ShareDbusInterface(const QString& deviceId, QObject* parent):
OrgKdeKdeconnectDeviceShareInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/share", QDBusConnection::sessionBus(), parent) OrgKdeKdeconnectDeviceShareInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/share", DbusHelper::sessionBus(), parent)
{ {
} }
ShareDbusInterface::~ShareDbusInterface() = default; ShareDbusInterface::~ShareDbusInterface() = default;
RemoteSystemVolumeDbusInterface::RemoteSystemVolumeDbusInterface(const QString& deviceId, QObject* parent): RemoteSystemVolumeDbusInterface::RemoteSystemVolumeDbusInterface(const QString& deviceId, QObject* parent):
OrgKdeKdeconnectDeviceRemotesystemvolumeInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/remotesystemvolume", QDBusConnection::sessionBus(), parent) OrgKdeKdeconnectDeviceRemotesystemvolumeInterface(DaemonDbusInterface::activatedService(), "/modules/kdeconnect/devices/" + deviceId + "/remotesystemvolume", DbusHelper::sessionBus(), parent)
{ {
} }

View file

@ -30,6 +30,7 @@
#include <QDBusServiceWatcher> #include <QDBusServiceWatcher>
#include "dbusinterfaces.h" #include "dbusinterfaces.h"
#include <dbushelper.h>
// #include "modeltest.h" // #include "modeltest.h"
Q_LOGGING_CATEGORY(KDECONNECT_INTERFACES, "kdeconnect.interfaces"); Q_LOGGING_CATEGORY(KDECONNECT_INTERFACES, "kdeconnect.interfaces");
@ -59,7 +60,7 @@ DevicesModel::DevicesModel(QObject* parent)
this, &DevicesModel::deviceRemoved); this, &DevicesModel::deviceRemoved);
QDBusServiceWatcher* watcher = new QDBusServiceWatcher(DaemonDbusInterface::activatedService(), QDBusServiceWatcher* watcher = new QDBusServiceWatcher(DaemonDbusInterface::activatedService(),
QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this); DbusHelper::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this);
connect(watcher, &QDBusServiceWatcher::serviceRegistered, this, &DevicesModel::refreshDeviceList); connect(watcher, &QDBusServiceWatcher::serviceRegistered, this, &DevicesModel::refreshDeviceList);
connect(watcher, &QDBusServiceWatcher::serviceUnregistered, this, &DevicesModel::clearDevices); connect(watcher, &QDBusServiceWatcher::serviceUnregistered, this, &DevicesModel::clearDevices);

View file

@ -26,6 +26,8 @@
#include <QIcon> #include <QIcon>
#include <dbushelper.h>
//#include "modeltest.h" //#include "modeltest.h"
//In older Qt released, qAsConst isnt available //In older Qt released, qAsConst isnt available
@ -49,7 +51,7 @@ NotificationsModel::NotificationsModel(QObject* parent)
this, &NotificationsModel::anyDismissableChanged); this, &NotificationsModel::anyDismissableChanged);
QDBusServiceWatcher* watcher = new QDBusServiceWatcher(DaemonDbusInterface::activatedService(), QDBusServiceWatcher* watcher = new QDBusServiceWatcher(DaemonDbusInterface::activatedService(),
QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this); DbusHelper::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this);
connect(watcher, &QDBusServiceWatcher::serviceRegistered, this, &NotificationsModel::refreshNotificationList); connect(watcher, &QDBusServiceWatcher::serviceRegistered, this, &NotificationsModel::refreshNotificationList);
connect(watcher, &QDBusServiceWatcher::serviceUnregistered, this, &NotificationsModel::clearNotifications); connect(watcher, &QDBusServiceWatcher::serviceUnregistered, this, &NotificationsModel::clearNotifications);
} }

View file

@ -24,6 +24,8 @@
#include <QDebug> #include <QDebug>
#include <QDBusInterface> #include <QDBusInterface>
#include <dbushelper.h>
RemoteCommandsModel::RemoteCommandsModel(QObject* parent) RemoteCommandsModel::RemoteCommandsModel(QObject* parent)
: QAbstractListModel(parent) : QAbstractListModel(parent)
, m_dbusInterface(nullptr) , m_dbusInterface(nullptr)
@ -35,7 +37,7 @@ RemoteCommandsModel::RemoteCommandsModel(QObject* parent)
this, &RemoteCommandsModel::rowsChanged); this, &RemoteCommandsModel::rowsChanged);
QDBusServiceWatcher* watcher = new QDBusServiceWatcher(DaemonDbusInterface::activatedService(), QDBusServiceWatcher* watcher = new QDBusServiceWatcher(DaemonDbusInterface::activatedService(),
QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this); DbusHelper::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this);
connect(watcher, &QDBusServiceWatcher::serviceRegistered, this, &RemoteCommandsModel::refreshCommandList); connect(watcher, &QDBusServiceWatcher::serviceRegistered, this, &RemoteCommandsModel::refreshCommandList);
connect(watcher, &QDBusServiceWatcher::serviceUnregistered, this, &RemoteCommandsModel::clearCommands); connect(watcher, &QDBusServiceWatcher::serviceUnregistered, this, &RemoteCommandsModel::clearCommands);
} }

View file

@ -24,6 +24,8 @@
#include <QDebug> #include <QDebug>
#include <QDBusInterface> #include <QDBusInterface>
#include <dbushelper.h>
RemoteSinksModel::RemoteSinksModel(QObject* parent) RemoteSinksModel::RemoteSinksModel(QObject* parent)
: QAbstractListModel(parent) : QAbstractListModel(parent)
, m_dbusInterface(nullptr) , m_dbusInterface(nullptr)
@ -35,7 +37,7 @@ RemoteSinksModel::RemoteSinksModel(QObject* parent)
this, &RemoteSinksModel::rowsChanged); this, &RemoteSinksModel::rowsChanged);
QDBusServiceWatcher* watcher = new QDBusServiceWatcher(DaemonDbusInterface::activatedService(), QDBusServiceWatcher* watcher = new QDBusServiceWatcher(DaemonDbusInterface::activatedService(),
QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this); DbusHelper::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this);
connect(watcher, &QDBusServiceWatcher::serviceRegistered, this, &RemoteSinksModel::refreshSinkList); connect(watcher, &QDBusServiceWatcher::serviceRegistered, this, &RemoteSinksModel::refreshSinkList);
connect(watcher, &QDBusServiceWatcher::serviceUnregistered, this, &RemoteSinksModel::refreshSinkList); connect(watcher, &QDBusServiceWatcher::serviceUnregistered, this, &RemoteSinksModel::refreshSinkList);
} }

View file

@ -24,11 +24,11 @@
#include <KPluginFactory> #include <KPluginFactory>
#include <QDebug> #include <QDebug>
#include <QDBusConnection>
#include <QLoggingCategory> #include <QLoggingCategory>
#include "screensaverdbusinterface.h" #include "screensaverdbusinterface.h"
#include <core/device.h> #include <core/device.h>
#include <dbushelper.h>
K_PLUGIN_FACTORY_WITH_JSON( KdeConnectLockPluginFactory, "kdeconnect_lockdevice.json", registerPlugin<LockDevicePlugin>(); ) K_PLUGIN_FACTORY_WITH_JSON( KdeConnectLockPluginFactory, "kdeconnect_lockdevice.json", registerPlugin<LockDevicePlugin>(); )
@ -82,7 +82,7 @@ bool LockDevicePlugin::receivePacket(const NetworkPacket & np)
OrgFreedesktopScreenSaverInterface* LockDevicePlugin::iface() OrgFreedesktopScreenSaverInterface* LockDevicePlugin::iface()
{ {
if (!m_iface) { if (!m_iface) {
m_iface = new OrgFreedesktopScreenSaverInterface(QStringLiteral("org.freedesktop.ScreenSaver"), QStringLiteral("/org/freedesktop/ScreenSaver"), QDBusConnection::sessionBus()); m_iface = new OrgFreedesktopScreenSaverInterface(QStringLiteral("org.freedesktop.ScreenSaver"), QStringLiteral("/org/freedesktop/ScreenSaver"), DbusHelper::sessionBus());
if(!m_iface->isValid()) if(!m_iface->isValid())
qCWarning(KDECONNECT_PLUGIN_LOCKREMOTE) << "Couldn't connect to the ScreenSaver interface"; qCWarning(KDECONNECT_PLUGIN_LOCKREMOTE) << "Couldn't connect to the ScreenSaver interface";
} }

View file

@ -21,7 +21,6 @@
#include "mpriscontrolplugin.h" #include "mpriscontrolplugin.h"
#include <QDBusArgument> #include <QDBusArgument>
#include <QDBusConnection>
#include <QDBusInterface> #include <QDBusInterface>
#include <qdbusconnectioninterface.h> #include <qdbusconnectioninterface.h>
#include <QDBusReply> #include <QDBusReply>
@ -31,6 +30,7 @@
#include <KPluginFactory> #include <KPluginFactory>
#include <core/device.h> #include <core/device.h>
#include <dbushelper.h>
#include "mprisdbusinterface.h" #include "mprisdbusinterface.h"
#include "propertiesdbusinterface.h" #include "propertiesdbusinterface.h"
@ -52,13 +52,13 @@ MprisControlPlugin::MprisControlPlugin(QObject* parent, const QVariantList& args
: KdeConnectPlugin(parent, args) : KdeConnectPlugin(parent, args)
, prevVolume(-1) , prevVolume(-1)
{ {
m_watcher = new QDBusServiceWatcher(QString(), QDBusConnection::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this); m_watcher = new QDBusServiceWatcher(QString(), DbusHelper::sessionBus(), QDBusServiceWatcher::WatchForOwnerChange, this);
// TODO: QDBusConnectionInterface::serviceOwnerChanged is deprecated, maybe query org.freedesktop.DBus directly? // TODO: QDBusConnectionInterface::serviceOwnerChanged is deprecated, maybe query org.freedesktop.DBus directly?
connect(QDBusConnection::sessionBus().interface(), &QDBusConnectionInterface::serviceOwnerChanged, this, &MprisControlPlugin::serviceOwnerChanged); connect(DbusHelper::sessionBus().interface(), &QDBusConnectionInterface::serviceOwnerChanged, this, &MprisControlPlugin::serviceOwnerChanged);
//Add existing interfaces //Add existing interfaces
const QStringList services = QDBusConnection::sessionBus().interface()->registeredServiceNames().value(); const QStringList services = DbusHelper::sessionBus().interface()->registeredServiceNames().value();
for (const QString& service : services) { for (const QString& service : services) {
// The string doesn't matter, it just needs to be empty/non-empty // The string doesn't matter, it just needs to be empty/non-empty
serviceOwnerChanged(service, QLatin1String(""), QStringLiteral("1")); serviceOwnerChanged(service, QLatin1String(""), QStringLiteral("1"));
@ -100,7 +100,7 @@ void MprisControlPlugin::addPlayer(const QString& service)
uniqueName = identity + QLatin1String(" [") + QString::number(i) + QLatin1Char(']'); uniqueName = identity + QLatin1String(" [") + QString::number(i) + QLatin1Char(']');
} }
MprisPlayer player(service, mediaPlayerObjectPath, QDBusConnection::sessionBus()); MprisPlayer player(service, mediaPlayerObjectPath, DbusHelper::sessionBus());
playerList.insert(uniqueName, player); playerList.insert(uniqueName, player);

View file

@ -22,10 +22,9 @@
#include "notification_debug.h" #include "notification_debug.h"
#include "notification.h" #include "notification.h"
#include <QDBusConnection>
#include <core/device.h> #include <core/device.h>
#include <core/kdeconnectplugin.h> #include <core/kdeconnectplugin.h>
#include <dbushelper.h>
#include "notificationsplugin.h" #include "notificationsplugin.h"
#include "sendreplydialog.h" #include "sendreplydialog.h"
@ -119,7 +118,7 @@ void NotificationsDbusInterface::addNotification(Notification* noti)
m_notifications[publicId] = noti; m_notifications[publicId] = noti;
m_internalIdToPublicId[internalId] = publicId; m_internalIdToPublicId[internalId] = publicId;
QDBusConnection::sessionBus().registerObject(m_device->dbusPath()+"/notifications/"+publicId, noti, QDBusConnection::ExportScriptableContents); DbusHelper::sessionBus().registerObject(m_device->dbusPath()+"/notifications/"+publicId, noti, QDBusConnection::ExportScriptableContents);
Q_EMIT notificationPosted(publicId); Q_EMIT notificationPosted(publicId);
} }
@ -141,7 +140,7 @@ void NotificationsDbusInterface::removeNotification(const QString& internalId)
} }
//Deleting the notification will unregister it automatically //Deleting the notification will unregister it automatically
//QDBusConnection::sessionBus().unregisterObject(mDevice->dbusPath()+"/notifications/"+publicId); //DbusHelper::sessionBus().unregisterObject(mDevice->dbusPath()+"/notifications/"+publicId);
noti->deleteLater(); noti->deleteLater();
Q_EMIT notificationRemoved(publicId); Q_EMIT notificationRemoved(publicId);

View file

@ -20,7 +20,6 @@
#include "pausemusicplugin.h" #include "pausemusicplugin.h"
#include <QDBusConnection>
#include <QDBusInterface> #include <QDBusInterface>
#include <QDBusConnectionInterface> #include <QDBusConnectionInterface>
#include <QDBusMessage> #include <QDBusMessage>
@ -30,6 +29,8 @@
#include <PulseAudioQt/Context> #include <PulseAudioQt/Context>
#include <PulseAudioQt/Sink> #include <PulseAudioQt/Sink>
#include <dbushelper.h>
//In older Qt released, qAsConst isnt available //In older Qt released, qAsConst isnt available
#include "qtcompat_p.h" #include "qtcompat_p.h"
@ -76,7 +77,7 @@ bool PauseMusicPlugin::receivePacket(const NetworkPacket& np)
if (pause) { if (pause) {
//Search for interfaces currently playing //Search for interfaces currently playing
const QStringList interfaces = QDBusConnection::sessionBus().interface()->registeredServiceNames().value(); const QStringList interfaces = DbusHelper::sessionBus().interface()->registeredServiceNames().value();
for (const QString& iface : interfaces) { for (const QString& iface : interfaces) {
if (iface.startsWith(QLatin1String("org.mpris.MediaPlayer2"))) { if (iface.startsWith(QLatin1String("org.mpris.MediaPlayer2"))) {
QDBusInterface mprisInterface(iface, QStringLiteral("/org/mpris/MediaPlayer2"), QStringLiteral("org.mpris.MediaPlayer2.Player")); QDBusInterface mprisInterface(iface, QStringLiteral("/org/mpris/MediaPlayer2"), QStringLiteral("org.mpris.MediaPlayer2.Player"));

View file

@ -33,7 +33,7 @@
#include <KLocalizedString> #include <KLocalizedString>
#include <KPluginFactory> #include <KPluginFactory>
#include <core/dbushelper.h> #include <dbushelper.h>
K_PLUGIN_FACTORY(ShareConfigFactory, registerPlugin<RunCommandConfig>();) K_PLUGIN_FACTORY(ShareConfigFactory, registerPlugin<RunCommandConfig>();)

View file

@ -19,7 +19,6 @@
*/ */
#include "notificationslistener.h" #include "notificationslistener.h"
#include <QDBusConnection>
#include <QDBusInterface> #include <QDBusInterface>
#include <QDBusArgument> #include <QDBusArgument>
#include <QtDebug> #include <QtDebug>
@ -34,6 +33,8 @@
#include <core/device.h> #include <core/device.h>
#include <core/kdeconnectplugin.h> #include <core/kdeconnectplugin.h>
#include <dbushelper.h>
#include "sendnotificationsplugin.h" #include "sendnotificationsplugin.h"
#include "sendnotification_debug.h" #include "sendnotification_debug.h"
#include "notifyingapplication.h" #include "notifyingapplication.h"
@ -47,7 +48,7 @@ NotificationsListener::NotificationsListener(KdeConnectPlugin* aPlugin)
{ {
qRegisterMetaTypeStreamOperators<NotifyingApplication>("NotifyingApplication"); qRegisterMetaTypeStreamOperators<NotifyingApplication>("NotifyingApplication");
bool ret = QDBusConnection::sessionBus() bool ret = DbusHelper::sessionBus()
.registerObject(QStringLiteral("/org/freedesktop/Notifications"), .registerObject(QStringLiteral("/org/freedesktop/Notifications"),
this, this,
QDBusConnection::ExportScriptableContents); QDBusConnection::ExportScriptableContents);
@ -55,7 +56,7 @@ NotificationsListener::NotificationsListener(KdeConnectPlugin* aPlugin)
qCWarning(KDECONNECT_PLUGIN_SENDNOTIFICATION) qCWarning(KDECONNECT_PLUGIN_SENDNOTIFICATION)
<< "Error registering notifications listener for device" << "Error registering notifications listener for device"
<< m_plugin->device()->name() << ":" << m_plugin->device()->name() << ":"
<< QDBusConnection::sessionBus().lastError(); << DbusHelper::sessionBus().lastError();
else else
qCDebug(KDECONNECT_PLUGIN_SENDNOTIFICATION) qCDebug(KDECONNECT_PLUGIN_SENDNOTIFICATION)
<< "Registered notifications listener for device" << "Registered notifications listener for device"
@ -79,7 +80,7 @@ NotificationsListener::~NotificationsListener()
QStringLiteral("org.freedesktop.DBus")); QStringLiteral("org.freedesktop.DBus"));
QDBusMessage res = iface.call(QStringLiteral("RemoveMatch"), QDBusMessage res = iface.call(QStringLiteral("RemoveMatch"),
"interface='org.freedesktop.Notifications',member='Notify',type='method_call',eavesdrop='true'"); "interface='org.freedesktop.Notifications',member='Notify',type='method_call',eavesdrop='true'");
QDBusConnection::sessionBus().unregisterObject(QStringLiteral("/org/freedesktop/Notifications")); DbusHelper::sessionBus().unregisterObject(QStringLiteral("/org/freedesktop/Notifications"));
} }
void NotificationsListener::setTranslatedAppName() void NotificationsListener::setTranslatedAppName()

View file

@ -6,6 +6,7 @@ target_include_directories(kdeconnect-handler PUBLIC ${CMAKE_BINARY_DIR})
target_link_libraries(kdeconnect-handler target_link_libraries(kdeconnect-handler
kdeconnectinterfaces kdeconnectinterfaces
kdeconnectcore
Qt5::Widgets Qt5::Widgets
KF5::CoreAddons KF5::CoreAddons
KF5::I18n KF5::I18n

View file

@ -25,11 +25,12 @@
#include <QTextStream> #include <QTextStream>
#include <QUrl> #include <QUrl>
#include <QDBusMessage> #include <QDBusMessage>
#include <QDBusConnection>
#include <KAboutData> #include <KAboutData>
#include <KLocalizedString> #include <KLocalizedString>
#include <dbushelper.h>
#include <interfaces/devicesmodel.h> #include <interfaces/devicesmodel.h>
#include <interfaces/devicessortproxymodel.h> #include <interfaces/devicessortproxymodel.h>
#include <interfaces/dbusinterfaces.h> #include <interfaces/dbusinterfaces.h>
@ -118,7 +119,7 @@ int main(int argc, char** argv)
QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/share", QStringLiteral("org.kde.kdeconnect.device.share"), action); QDBusMessage msg = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnect"), "/modules/kdeconnect/devices/"+device+"/share", QStringLiteral("org.kde.kdeconnect.device.share"), action);
msg.setArguments({ url.toString() }); msg.setArguments({ url.toString() });
blockOnReply(QDBusConnection::sessionBus().asyncCall(msg)); blockOnReply(DbusHelper::sessionBus().asyncCall(msg));
return 0; return 0;
} else { } else {
QTextStream(stderr) << (i18n("Couldn't share %1", url.toString())) << endl; QTextStream(stderr) << (i18n("Couldn't share %1", url.toString())) << endl;