[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498

Maximiliano Curia maxy at moszumanska.debian.org
Fri Oct 14 14:26:51 UTC 2016


Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=b5a5416

The following commit has been merged in the master branch:
commit b5a5416c19de15e552497f2a6abd96169e803fb9
Author: Albert Vaca <albertvaka at gmail.com>
Date:   Sat Aug 31 13:04:00 2013 +0200

    Changed QSslKeys to QCA keys that will actually allow us to encrypt things
---
 daemon/CMakeLists.txt                       | 12 +++++-
 daemon/daemon.cpp                           | 65 ++++++-----------------------
 daemon/daemon.h                             | 23 ++++------
 daemon/device.cpp                           | 45 ++++++++++----------
 daemon/device.h                             | 22 ++++++----
 daemon/networkpackage.cpp                   | 28 +++++++++----
 daemon/networkpackage.h                     |  6 ++-
 daemon/plugins/battery/CMakeLists.txt       |  8 +++-
 daemon/plugins/clipboard/CMakeLists.txt     |  8 +++-
 daemon/plugins/filetransfer/CMakeLists.txt  |  8 +++-
 daemon/plugins/mpriscontrol/CMakeLists.txt  |  8 +++-
 daemon/plugins/notifications/CMakeLists.txt |  8 +++-
 daemon/plugins/pausemusic/CMakeLists.txt    |  8 +++-
 daemon/plugins/ping/CMakeLists.txt          |  8 +++-
 daemon/plugins/telephony/CMakeLists.txt     |  8 +++-
 libkdeconnect/devicesmodel.cpp              |  6 +--
 16 files changed, 142 insertions(+), 129 deletions(-)

diff --git a/daemon/CMakeLists.txt b/daemon/CMakeLists.txt
index 3f2d8e0..60c8ae7 100644
--- a/daemon/CMakeLists.txt
+++ b/daemon/CMakeLists.txt
@@ -1,3 +1,8 @@
+include_directories(
+    ${QJSON_INCLUDE_DIR}
+    ${QCA2_INCLUDE_DIR}
+)
+
 set(kded_kdeconnect_SRCS
 
     linkproviders/linkprovider.cpp
@@ -20,12 +25,15 @@ add_subdirectory(plugins)
 
 kde4_add_plugin(kded_kdeconnect ${kded_kdeconnect_SRCS})
 
+find_package (QJSON REQUIRED)
+find_package (QCA2 REQUIRED)
+
 target_link_libraries(kded_kdeconnect
     ${KDE4_KDECORE_LIBS}
     ${KDE4_KDEUI_LIBS}
-    #kdnssd
-    qjson
     ${QT_QTNETWORK_LIBRARY}
+    ${QJSON_LIBRARIES}
+    ${QCA2_LIBRARIES}
 )
 
 include(../cmakemacros.txt)
diff --git a/daemon/daemon.cpp b/daemon/daemon.cpp
index 98de7f2..07746ab 100644
--- a/daemon/daemon.cpp
+++ b/daemon/daemon.cpp
@@ -29,10 +29,12 @@
 #include <QDBusConnection>
 #include <QNetworkSession>
 #include <QNetworkConfigurationManager>
-#include <QSslKey>
+#include <QDebug>
 
-#include <KIcon>
+#include <KConfig>
 #include <KConfigGroup>
+#include <KNotification>
+#include <KIcon>
 
 K_PLUGIN_FACTORY(KdeConnectFactory, registerPlugin<Daemon>();)
 K_EXPORT_PLUGIN(KdeConnectFactory("kdeconnect", "kdeconnect"))
@@ -51,55 +53,14 @@ Daemon::Daemon(QObject *parent, const QList<QVariant>&)
         qDebug() << "My id:" << uuid;
     }
 
-    if (!config->group("myself").hasKey("privateKey")) {
-
-        //TODO: Generate
-
-        QByteArray key = QByteArray(
-                                "-----BEGIN RSA PRIVATE KEY-----
"
-                                "MIICXAIBAAKBgQCnKxy6aZrABVvbxuWqMPbohH4KRDBGqyO/OwxvUD1qHpqZ9cJT
"
-                                "bgttiIaXzdQny5esf6brI6Di/ssIp9awdLBlMT+eR6zR7g446tbxaCFuUiL0QIei
"
-                                "izEveTDNRbson/8DPJrn8/81doTeXsuV7YbqmtUGwdZ5kiocAW92ZZukdQIDAQAB
"
-                                "AoGBAI18yuLoMQdnQblBne8vZDumsDsmPaoCfc4EP2ETi/d+kaHPxTryABAkJq7j
"
-                                "kjZgdi6VGIUacbjOqK/Zxrcw/H460EwOUzh97Z4t9CDtDhz6t3ddT8CfbG2TUgbx
"
-                                "Vv3mSYSUDBdNBV6YY4fyLtZl6oI2V+rBaFIT48+vAK9doKlhAkEA2ZKm9dc80IjU
"
-                                "c/Wwn8ij+6ALs4Mpa0dPYivgZ2QhXiX5TfMymal2dDufkOH4wIUO+8vV8CSmmTRU
"
-                                "8Lv/B3pY7QJBAMSxeJtTSFwBcGRaZKRMIqeuZ/yMMT4EqqIh1DjBpujCRKApVpkO
"
-                                "kVx3Yu7xyOfniXBwujiYNSL6LrWdKykEsKkCQEr2UDgbtIRU4H4jhHtI8dbcSavL
"
-                                "4RVpOFymqWZ2BVke1EqbJC/1Ry687DlK4h3Sulre3BMlTZEziqB25WN6L/ECQBJv
"
-                                "B3yXG4rz35KoHhJ/yCeq4rf6c4r6aPt07Cy9iWT6/+96sFD72oet8KmwI0IIowrU
"
-                                "pb80FJbIl6QRrL/VXrECQBDdeCAG6J3Cwm4ozQiDQyiNd1qJqWc4co9savJxLtEU
"
-                                "s5L4Qwfrexm16oCJimGmsa5q6Y0n4f5gY+MRh3n+nQo=
"
-                                "-----END RSA PRIVATE KEY-----
"
-                             );
-
-        //Test for validity
-        //QSslKey privateKey(key.toAscii(), QSsl::Rsa, QSsl::Pem, QSsl::PrivateKey);
-        //qDebug() << "Valid private key:" << !privateKey.isNull();
-
-        config->group("myself").writeEntry("privateKey", key);
-
-    }
-
-    if (!config->group("myself").hasKey("publicKey")) {
-
-        //TODO: Generate
-
-        QByteArray key = QByteArray(
-                                "-----BEGIN PUBLIC KEY-----
"
-                                "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnKxy6aZrABVvbxuWqMPbohH4K
"
-                                "RDBGqyO/OwxvUD1qHpqZ9cJTbgttiIaXzdQny5esf6brI6Di/ssIp9awdLBlMT+e
"
-                                "R6zR7g446tbxaCFuUiL0QIeiizEveTDNRbson/8DPJrn8/81doTeXsuV7YbqmtUG
"
-                                "wdZ5kiocAW92ZZukdQIDAQAB
"
-                                "-----END PUBLIC KEY-----
"
-
-                             );
+    if (!config->group("myself").hasKey("privateKey") || !config->group("myself").hasKey("publicKey")) {
 
-        //Test for validity
-        //QSslKey publicKey(key.toAscii(), QSsl::Rsa, QSsl::Pem, QSsl::PublicKey);
-        //qDebug() << "Valid public key:" << !publicKey.isNull();
+        //http://delta.affinix.com/docs/qca/rsatest_8cpp-example.html
+        QCA::PrivateKey privateKey = QCA::KeyGenerator().createRSA(1024);
+        config->group("myself").writeEntry("privateKey", privateKey.toPEM());
 
-        config->group("myself").writeEntry("publicKey", key);
+        QCA::PublicKey publicKey = privateKey.toPublicKey();
+        config->group("myself").writeEntry("publicKey", publicKey.toPEM());
 
     }
 
@@ -157,7 +118,7 @@ QStringList Daemon::visibleDevices()
 {
     QStringList ret;
     Q_FOREACH(Device* device, mDevices) {
-        if (device->reachable()) {
+        if (device->isReachable()) {
             ret.append(device->id());
         }
     }
@@ -199,9 +160,9 @@ void Daemon::onDeviceReachableStatusChanged()
     Device* device = (Device*)sender();
     QString id = device->id();
 
-    Q_EMIT deviceVisibilityChanged(id, device->reachable());
+    Q_EMIT deviceVisibilityChanged(id, device->isReachable());
 
-    if (!device->reachable()) {
+    if (!device->isReachable()) {
 
         if (!device->isPaired()) {
             qDebug() << "Destroying device";
diff --git a/daemon/daemon.h b/daemon/daemon.h
index a53c345..f0a00f0 100644
--- a/daemon/daemon.h
+++ b/daemon/daemon.h
@@ -18,32 +18,22 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-
 #ifndef DAEMON_H
 #define DAEMON_H
 
 #include <QObject>
-#include <QRegExp>
-#include <map>
-
-#include <KDEDModule>
-#include <KNotification>
-
-#include "networkpackage.h"
-#include <KDE/KPluginFactory>
-#include <QFile>
-#include <qtextstream.h>
-
 #include <QSet>
+#include <QMap>
+#include <QtCrypto>
 
-#include <KConfig>
+#include <KDEDModule>
+#include <KPluginFactory>
 
 #include "device.h"
+#include "networkpackage.h"
 #include "devicelinks/devicelink.h"
 #include "linkproviders/linkprovider.h"
 
-class QUdpSocket;
-
 class Daemon
     : public KDEDModule
 {
@@ -82,6 +72,9 @@ private:
     //Every known device
     QMap<QString, Device*> mDevices;
 
+    // The Initializer object sets things up, and also does cleanup when it goes out of scope
+    QCA::Initializer init;
+
 };
 
 #endif // UDP_WIRELESS_H
diff --git a/daemon/device.cpp b/daemon/device.cpp
index 5f6876a..d0a7cb4 100644
--- a/daemon/device.cpp
+++ b/daemon/device.cpp
@@ -10,7 +10,6 @@
 #include <KNotification>
 #include <KIcon>
 
-#include <QSslKey>
 #include <QDebug>
 
 #include "plugins/kdeconnectplugin.h"
@@ -31,9 +30,9 @@ Device::Device(const QString& id)
     m_deviceName = name;
 
     const QByteArray& key = data.readEntry<QByteArray>("publicKey",QByteArray());
-    m_publicKey = QSslKey(key, QSsl::Rsa, QSsl::Pem, QSsl::PublicKey);
+    m_publicKey = QCA::RSAPublicKey::fromDER(key);
 
-    m_pairingRequested = false;
+    m_pairStatus = Device::Paired;
 
     //Register in bus
     QDBusConnection::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors);
@@ -47,7 +46,7 @@ Device::Device(const NetworkPackage& identityPackage, DeviceLink* dl)
 
     addLink(dl);
 
-    m_pairingRequested = false;
+    m_pairStatus = Device::Device::NotPaired;
 
     //Register in bus
     QDBusConnection::sessionBus().registerObject(dbusPath(), this, QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors);
@@ -72,7 +71,7 @@ void Device::reloadPlugins()
 {
     QMap< QString, KdeConnectPlugin* > newPluginMap;
 
-    if (isPaired() && reachable()) { //Do not load any plugin for unpaired devices, nor useless loading them for unreachable devices
+    if (isPaired() && isReachable()) { //Do not load any plugin for unpaired devices, nor useless loading them for unreachable devices
 
         QString path = KStandardDirs().resourceDirs("config").first()+"kdeconnect/";
         QMap<QString,QString> pluginStates = KSharedConfig::openConfig(path + id())->group("Plugins").entryMap();
@@ -134,11 +133,11 @@ QSslKey myPrivateKey() {
 
 void Device::requestPair()
 {
-    if (isPaired() || m_pairingRequested) {
+    if (m_pairStatus != NotPaired) {
         Q_EMIT pairingFailed(i18n("Already paired"));
         return;
     }
-    if (!reachable()) {
+    if (!isReachable()) {
         Q_EMIT pairingFailed(i18n("Device not reachable"));
         return;
     }
@@ -156,7 +155,7 @@ void Device::requestPair()
         return;
     }
 
-    m_pairingRequested = true;
+    m_pairStatus = PairRequested;
     pairingTimer.start(20 * 1000);
     connect(&pairingTimer, SIGNAL(timeout()),
             this, SLOT(pairingTimeout()));
@@ -167,14 +166,13 @@ void Device::unpair()
 {
     if (!isPaired()) return;
 
-    m_publicKey = QSslKey();
-    m_pairingRequested = false;
+    m_pairStatus = NotPaired;
     pairingTimer.stop();
 
     KSharedConfigPtr config = KSharedConfig::openConfig("kdeconnectrc");
     config->group("devices").deleteGroup(id());
 
-    if (reachable()) {
+    if (isReachable()) {
         NetworkPackage np(PACKAGE_TYPE_PAIR);
         np.set("pair", false);
         sendPackage(np);
@@ -186,7 +184,7 @@ void Device::unpair()
 
 void Device::pairingTimeout()
 {
-    m_pairingRequested = false;
+    m_pairStatus = NotPaired;
     Q_EMIT Q_EMIT pairingFailed("Timed out");
 }
 
@@ -263,28 +261,28 @@ void Device::privateReceivedPackage(const NetworkPackage& np)
 
         qDebug() << "Pair package";
 
-        bool pair = np.get<bool>("pair");
-        if (pair == isPaired()) {
-            qDebug() << "Already" << (pair? "paired":"unpaired");
+        bool wantsPair = np.get<bool>("pair");
+        if (wantsPair == isPaired()) {
+            qDebug() << "Already" << (wantsPair? "paired":"unpaired");
             return;
         }
 
         KSharedConfigPtr config = KSharedConfig::openConfig("kdeconnectrc");
 
-        if (pair) {
+        if (wantsPair) {
 
-            if (m_pairingRequested)  { //We started pairing
+            if (m_pairStatus == Device::PairRequested)  { //We started pairing
 
                 qDebug() << "Pair answer";
 
-                m_pairingRequested = false;
+                m_pairStatus = Paired;
                 pairingTimer.stop();
 
                 //Store as trusted device
                 const QByteArray& key = np.get<QByteArray>("publicKey");
                 config->group("devices").group(id()).writeEntry("publicKey",key);
                 config->group("devices").group(id()).writeEntry("name",name());
-                m_publicKey = QSslKey(key, QSsl::Rsa, QSsl::Pem, QSsl::PublicKey);
+                m_publicKey = QCA::RSAPublicKey::fromDER(key);
 
                 Q_EMIT pairingSuccesful();
 
@@ -292,8 +290,8 @@ void Device::privateReceivedPackage(const NetworkPackage& np)
 
                 qDebug() << "Pair request";
 
-                const QString& key = np.get<QString>("publicKey");
-                m_tempPublicKey = QSslKey(key.toAscii(), QSsl::Rsa, QSsl::Pem, QSsl::PublicKey);
+                const QByteArray& key = np.get<QByteArray>("publicKey");
+                m_publicKey = QCA::RSAPublicKey::fromDER(key);
 
                 KNotification* notification = new KNotification("pingReceived"); //KNotification::Persistent
                 notification->setPixmap(KIcon("dialog-information").pixmap(48, 48));
@@ -310,7 +308,7 @@ void Device::privateReceivedPackage(const NetworkPackage& np)
         } else {
 
             qDebug() << "Unpair request";
-            if (m_pairingRequested) {
+            if (m_pairStatus == PairRequested) {
                 pairingTimer.stop();
                 Q_EMIT pairingFailed(i18n("Canceled by other peer"));
             }
@@ -350,8 +348,7 @@ void Device::acceptPairing()
     }
 
     //Store as trusted device
-    m_publicKey = m_tempPublicKey;
-    config->group("devices").group(id()).writeEntry("publicKey", m_tempPublicKey.toPem());
+    config->group("devices").group(id()).writeEntry("publicKey", m_publicKey.toDER());
     config->group("devices").group(id()).writeEntry("name", name());
 
     reloadPlugins(); //This will load plugins
diff --git a/daemon/device.h b/daemon/device.h
index edcaadf..84cbbbf 100644
--- a/daemon/device.h
+++ b/daemon/device.h
@@ -27,6 +27,7 @@
 #include <QMap>
 #include <QSslKey>
 #include <QTimer>
+#include <QtCrypto>
 
 #include "networkpackage.h"
 
@@ -41,6 +42,12 @@ class Device
     Q_PROPERTY(QString id READ id)
     Q_PROPERTY(QString name READ name)
 
+    enum PairStatus {
+        NotPaired,
+        PairRequested,
+        Paired,
+    };
+
 public:
     //Read device from KConfig, we already know it but we need to wait for a incoming devicelink to communicate
     Device(const QString& id);
@@ -58,12 +65,14 @@ public:
     void addLink(DeviceLink*);
     void removeLink(DeviceLink*);
 
+    Q_SCRIPTABLE bool isPaired() const { return m_pairStatus==Device::Paired; }
+    Q_SCRIPTABLE bool pairRequested() const { return m_pairStatus==Device::PairRequested; }
+
     Q_SCRIPTABLE QStringList availableLinks() const;
-    Q_SCRIPTABLE bool isPaired() const { return !m_publicKey.isNull(); }
-    Q_SCRIPTABLE bool pairRequested() const { return m_pairingRequested; }
-    Q_SCRIPTABLE bool reachable() const { return !m_deviceLinks.empty(); }
-    Q_SCRIPTABLE bool hasPlugin(const QString& name);
+    Q_SCRIPTABLE bool isReachable() const { return !m_deviceLinks.empty(); }
+
     Q_SCRIPTABLE QStringList loadedPlugins();
+    Q_SCRIPTABLE bool hasPlugin(const QString& name);
 
     //Send and receive
 Q_SIGNALS:
@@ -94,9 +103,8 @@ Q_SIGNALS:
 private:
     QString m_deviceId;
     QString m_deviceName;
-    QSslKey m_publicKey;
-    QSslKey m_tempPublicKey;
-    bool m_pairingRequested;
+    QCA::PublicKey m_publicKey;
+    PairStatus m_pairStatus;
 
     QList<DeviceLink*> m_deviceLinks;
     QMap<QString, KdeConnectPlugin*> m_plugins;
diff --git a/daemon/networkpackage.cpp b/daemon/networkpackage.cpp
index 21afcf3..117f6d4 100644
--- a/daemon/networkpackage.cpp
+++ b/daemon/networkpackage.cpp
@@ -19,23 +19,26 @@
  */
 
 #include "networkpackage.h"
-#include <ksharedconfig.h>
-#include <kconfiggroup.h>
-#include <qbytearray.h>
-#include <qdatastream.h>
+
+#include <KSharedConfig>
+#include <KConfigGroup>
+#include <QByteArray>
+#include <QDataStream>
 #include <QHostInfo>
-#include <sstream>
-#include <string>
+#include <QSslKey>
+#include <QDateTime>
+#include <QtCrypto/QtCrypto>
+
 #include <qjson/serializer.h>
-#include <iostream>
-#include <ctime>
 #include <qjson/qobjecthelper.h>
 
+#include "encryptednetworkpackage.h"
+
 const static int CURRENT_PACKAGE_VERSION = 1;
 
 NetworkPackage::NetworkPackage(const QString& type)
 {
-    mId = time(NULL);
+    mId = QDateTime::currentMSecsSinceEpoch();
     mType = type;
     mVersion = CURRENT_PACKAGE_VERSION;
 }
@@ -103,4 +106,11 @@ void NetworkPackage::createIdentityPackage(NetworkPackage* np)
     //qDebug() << "createIdentityPackage" << np->serialize();
 }
 
+EncryptedNetworkPackage NetworkPackage::encrypt ( const QSslKey& key ) const
+{
+    QByteArray serialized = serialize();
+    return EncryptedNetworkPackage();
+
+}
+
 
diff --git a/daemon/networkpackage.h b/daemon/networkpackage.h
index a2db3b5..b29b872 100644
--- a/daemon/networkpackage.h
+++ b/daemon/networkpackage.h
@@ -27,12 +27,14 @@
 #include <QString>
 #include <QVariant>
 #include <QStringList>
-#include <QSsl>
+#include <QSslKey>
 
 #include <qjson/parser.h>
 
 #include "default_args.h"
 
+class EncryptedNetworkPackage;
+
 class NetworkPackage : public QObject
 {
     Q_OBJECT
@@ -63,6 +65,8 @@ public:
     
     bool has(const QString& key) const { return mBody.contains(key); }
 
+    EncryptedNetworkPackage encrypt(const QSslKey& key) const;
+
 private:
     void setId(long id) { mId = id; }
     void setType(const QString& t) { mType = t; }
diff --git a/daemon/plugins/battery/CMakeLists.txt b/daemon/plugins/battery/CMakeLists.txt
index 74c56b6..66c7d8b 100644
--- a/daemon/plugins/battery/CMakeLists.txt
+++ b/daemon/plugins/battery/CMakeLists.txt
@@ -1,5 +1,8 @@
 find_package(KDE4 REQUIRED)
-include (KDE4Defaults)
+find_package(QJSON REQUIRED)
+find_package(QCA2 REQUIRED)
+
+include(KDE4Defaults)
 include_directories(${KDE4_INCLUDES})
 
 set(kdeconnect_battery_SRCS
@@ -17,7 +20,8 @@ target_link_libraries(kdeconnect_battery
     ${KDE4_KDECORE_LIBS}
     ${KDE4_KDEUI_LIBS}
     ${QT_QTNETWORK_LIBRARY}
-    qjson
+    ${QJSON_LIBRARIES}
+    ${QCA2_LIBRARIES}
 )
 
 install(TARGETS kdeconnect_battery DESTINATION ${PLUGIN_INSTALL_DIR} )
diff --git a/daemon/plugins/clipboard/CMakeLists.txt b/daemon/plugins/clipboard/CMakeLists.txt
index 6ece9e2..60771e0 100644
--- a/daemon/plugins/clipboard/CMakeLists.txt
+++ b/daemon/plugins/clipboard/CMakeLists.txt
@@ -1,5 +1,8 @@
 find_package(KDE4 REQUIRED)
-include (KDE4Defaults)
+find_package(QJSON REQUIRED)
+find_package(QCA2 REQUIRED)
+
+include(KDE4Defaults)
 include_directories(${KDE4_INCLUDES})
 
 set(kdeconnect_clipboard_SRCS
@@ -16,7 +19,8 @@ target_link_libraries(kdeconnect_clipboard
     ${KDE4_KDECORE_LIBS}
     ${KDE4_KDEUI_LIBS}
     ${QT_QTNETWORK_LIBRARY}
-    qjson
+    ${QJSON_LIBRARIES}
+    ${QCA2_LIBRARIES}
 )
 
 install(TARGETS kdeconnect_clipboard DESTINATION ${PLUGIN_INSTALL_DIR} )
diff --git a/daemon/plugins/filetransfer/CMakeLists.txt b/daemon/plugins/filetransfer/CMakeLists.txt
index fc25242..8f170a4 100644
--- a/daemon/plugins/filetransfer/CMakeLists.txt
+++ b/daemon/plugins/filetransfer/CMakeLists.txt
@@ -1,5 +1,8 @@
 find_package(KDE4 REQUIRED)
-include (KDE4Defaults)
+find_package(QJSON REQUIRED)
+find_package(QCA2 REQUIRED)
+
+include(KDE4Defaults)
 include_directories(${KDE4_INCLUDES})
 
 set(kdeconnect_filetransfer_SRCS
@@ -16,7 +19,8 @@ target_link_libraries(kdeconnect_filetransfer
     ${KDE4_KDECORE_LIBS}
     ${KDE4_KDEUI_LIBS}
     ${QT_QTNETWORK_LIBRARY}
-    qjson
+    ${QJSON_LIBRARIES}
+    ${QCA2_LIBRARIES}
 )
 
 install(TARGETS kdeconnect_filetransfer DESTINATION ${PLUGIN_INSTALL_DIR} )
diff --git a/daemon/plugins/mpriscontrol/CMakeLists.txt b/daemon/plugins/mpriscontrol/CMakeLists.txt
index 840d614..f330c20 100644
--- a/daemon/plugins/mpriscontrol/CMakeLists.txt
+++ b/daemon/plugins/mpriscontrol/CMakeLists.txt
@@ -1,5 +1,8 @@
 find_package(KDE4 REQUIRED)
-include (KDE4Defaults)
+find_package(QJSON REQUIRED)
+find_package(QCA2 REQUIRED)
+
+include(KDE4Defaults)
 include_directories(${KDE4_INCLUDES})
 
 set(kdeconnect_mpriscontrol_SRCS
@@ -28,7 +31,8 @@ target_link_libraries(kdeconnect_mpriscontrol
     ${KDE4_KDECORE_LIBS}
     ${KDE4_KDEUI_LIBS}
     ${QT_QTNETWORK_LIBRARY}
-    qjson
+    ${QJSON_LIBRARIES}
+    ${QCA2_LIBRARIES}
 )
 
 install(TARGETS kdeconnect_mpriscontrol DESTINATION ${PLUGIN_INSTALL_DIR} )
diff --git a/daemon/plugins/notifications/CMakeLists.txt b/daemon/plugins/notifications/CMakeLists.txt
index dfe3e45..ad9c5e0 100644
--- a/daemon/plugins/notifications/CMakeLists.txt
+++ b/daemon/plugins/notifications/CMakeLists.txt
@@ -1,5 +1,8 @@
 find_package(KDE4 REQUIRED)
-include (KDE4Defaults)
+find_package(QJSON REQUIRED)
+find_package(QCA2 REQUIRED)
+
+include(KDE4Defaults)
 include_directories(${KDE4_INCLUDES})
 
 set(kdeconnect_notifications_SRCS
@@ -18,7 +21,8 @@ target_link_libraries(kdeconnect_notifications
     ${KDE4_KDECORE_LIBS}
     ${KDE4_KDEUI_LIBS}
     ${QT_QTNETWORK_LIBRARY}
-    qjson
+    ${QJSON_LIBRARIES}
+    ${QCA2_LIBRARIES}
 )
 
 install(TARGETS kdeconnect_notifications DESTINATION ${PLUGIN_INSTALL_DIR} )
diff --git a/daemon/plugins/pausemusic/CMakeLists.txt b/daemon/plugins/pausemusic/CMakeLists.txt
index d1afc2f..cc51ae9 100644
--- a/daemon/plugins/pausemusic/CMakeLists.txt
+++ b/daemon/plugins/pausemusic/CMakeLists.txt
@@ -1,5 +1,8 @@
 find_package(KDE4 REQUIRED)
-include (KDE4Defaults)
+find_package(QJSON REQUIRED)
+find_package(QCA2 REQUIRED)
+
+include(KDE4Defaults)
 include_directories(${KDE4_INCLUDES})
 
 set(kdeconnect_pausemusic_SRCS
@@ -13,7 +16,8 @@ target_link_libraries(kdeconnect_pausemusic
     ${KDE4_KDECORE_LIBS}
     ${KDE4_KDEUI_LIBS}
     ${QT_QTNETWORK_LIBRARY}
-    qjson
+    ${QJSON_LIBRARIES}
+    ${QCA2_LIBRARIES}
 )
 
 install(TARGETS kdeconnect_pausemusic DESTINATION ${PLUGIN_INSTALL_DIR} )
diff --git a/daemon/plugins/ping/CMakeLists.txt b/daemon/plugins/ping/CMakeLists.txt
index 4da7425..305ace1 100644
--- a/daemon/plugins/ping/CMakeLists.txt
+++ b/daemon/plugins/ping/CMakeLists.txt
@@ -1,5 +1,8 @@
 find_package(KDE4 REQUIRED)
-include (KDE4Defaults)
+find_package(QJSON REQUIRED)
+find_package(QCA2 REQUIRED)
+
+include(KDE4Defaults)
 include_directories(${KDE4_INCLUDES})
 
 set(kdeconnect_ping_SRCS
@@ -13,7 +16,8 @@ target_link_libraries(kdeconnect_ping
     ${KDE4_KDECORE_LIBS}
     ${KDE4_KDEUI_LIBS}
     ${QT_QTNETWORK_LIBRARY}
-    qjson
+    ${QJSON_LIBRARIES}
+    ${QCA2_LIBRARIES}
 )
 
 install(TARGETS kdeconnect_ping DESTINATION ${PLUGIN_INSTALL_DIR} )
diff --git a/daemon/plugins/telephony/CMakeLists.txt b/daemon/plugins/telephony/CMakeLists.txt
index c376981..fa8461a 100644
--- a/daemon/plugins/telephony/CMakeLists.txt
+++ b/daemon/plugins/telephony/CMakeLists.txt
@@ -1,5 +1,8 @@
 find_package(KDE4 REQUIRED)
-include (KDE4Defaults)
+find_package(QJSON REQUIRED)
+find_package(QCA2 REQUIRED)
+
+include(KDE4Defaults)
 include_directories(${KDE4_INCLUDES})
 
 set(kdeconnect_telephony_SRCS
@@ -13,7 +16,8 @@ target_link_libraries(kdeconnect_telephony
     ${KDE4_KDECORE_LIBS}
     ${KDE4_KDEUI_LIBS}
     ${QT_QTNETWORK_LIBRARY}
-    qjson
+    ${QJSON_LIBRARIES}
+    ${QCA2_LIBRARIES}
 )
 
 install(TARGETS kdeconnect_telephony DESTINATION ${PLUGIN_INSTALL_DIR} )
diff --git a/libkdeconnect/devicesmodel.cpp b/libkdeconnect/devicesmodel.cpp
index ccca795..915bf62 100644
--- a/libkdeconnect/devicesmodel.cpp
+++ b/libkdeconnect/devicesmodel.cpp
@@ -123,7 +123,7 @@ void DevicesModel::refreshDeviceList()
         bool onlyPaired = (m_displayFilter & StatusPaired);
         if (onlyPaired && !deviceDbusInterface->isPaired()) continue;
         bool onlyReachable = (m_displayFilter & StatusReachable);
-        if (onlyReachable && !deviceDbusInterface->reachable()) continue;
+        if (onlyReachable && !deviceDbusInterface->isReachable()) continue;
 
         int firstRow = m_deviceList.size();
         int lastRow = firstRow;
@@ -155,7 +155,7 @@ QVariant DevicesModel::data(const QModelIndex &index, int role) const
     switch (role) {
         case IconModelRole: {
             bool paired = device->isPaired();
-            bool reachable = device->reachable();
+            bool reachable = device->isReachable();
             QString icon = reachable? (paired? "user-online" : "user-busy") : "user-offline";
             return KIcon(icon).pixmap(32, 32);
         }
@@ -167,7 +167,7 @@ QVariant DevicesModel::data(const QModelIndex &index, int role) const
             return QVariant(); //To implement
         case StatusModelRole: {
             int status = StatusUnknown;
-            if (device->reachable()) {
+            if (device->isReachable()) {
                 status |= StatusReachable;
                 if (device->isPaired()) status |= StatusPaired;
             }

-- 
kdeconnect packaging



More information about the pkg-kde-commits mailing list