Commit b8889784 authored by Aleix Pol Gonzalez's avatar Aleix Pol Gonzalez 🐧

Reorganize sources

We broke kded into core and kded, core contains the library with the backends
and plugins.
Also we renamed libkdeconnect to interfaces.
parent 807f90f1
......@@ -15,12 +15,14 @@ include(KDE4Defaults)
include_directories(${KDE4_INCLUDES})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_subdirectory(kded)
add_subdirectory(libkdeconnect)
add_subdirectory(core)
add_subdirectory(kcm)
add_subdirectory(kio)
add_subdirectory(plasmoid)
add_subdirectory(icon)
add_subdirectory(interfaces)
add_subdirectory(kded)
add_subdirectory(plasmoid)
add_subdirectory(cli)
add_subdirectory(tests)
......@@ -22,8 +22,10 @@
#include <KUrl>
#include <kcmdlineargs.h>
#include <kaboutdata.h>
#include <libkdeconnect/devicesmodel.h>
#include <interfaces/devicesmodel.h>
#include <iostream>
#include <QDBusMessage>
#include <QDBusConnection>
int main(int argc, char** argv)
{
......
project(KDEConnectCore)
include_directories(
${KDE4_KIO_LIBS}
${QJSON_INCLUDE_DIR}
${QCA2_INCLUDE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
add_subdirectory(plugins)
add_subdirectory(backends/lan)
add_subdirectory(backends/loopback)
set(kded_kdeconnect_SRCS
${kded_kdeconnect_SRCS}
backends/linkprovider.cpp
backends/devicelink.cpp
plugins/kdeconnectplugin.cpp
plugins/pluginloader.cpp
networkpackage.cpp
filetransferjob.cpp
daemon.cpp
device.cpp
kdebugnamespace.cpp
)
kde4_add_library(kdeconnectcore SHARED ${kded_kdeconnect_SRCS})
target_link_libraries(kdeconnectcore
PUBLIC
${KDE4_KDECORE_LIBS}
PRIVATE
${KDE4_KIO_LIBS}
${QJSON_LIBRARIES}
${QT_QTNETWORK_LIBRARY}
${QCA2_LIBRARIES}
)
generate_export_header(kdeconnectcore EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/kdeconnectcore_export.h BASE_NAME KDEConnectCore)
include(../macros.cmake)
generate_and_install_dbus_interface(
kdeconnectcore
../core/daemon.h
org.kde.kdeconnect.daemon.xml
OPTIONS -a
)
generate_and_install_dbus_interface(
kdeconnectcore
../core/device.h
org.kde.kdeconnect.device.xml
OPTIONS -a
)
......@@ -26,6 +26,7 @@
#include <QDBusConnection>
#include <QNetworkSession>
#include <QNetworkConfigurationManager>
#include <QtCrypto>
#include <KConfig>
#include <KConfigGroup>
......@@ -35,8 +36,27 @@
#include "networkpackage.h"
#include "backends/lan/lanlinkprovider.h"
#include "backends/loopback/loopbacklinkprovider.h"
#include "device.h"
#include "networkpackage.h"
#include "backends/devicelink.h"
#include "backends/linkprovider.h"
struct DaemonPrivate
{
//Different ways to find devices and connect to them
QSet<LinkProvider*> mLinkProviders;
//Every known device
QMap<QString, Device*> mDevices;
// The Initializer object sets things up, and also does cleanup when it goes out of scope
// Note it's not being used anywhere. That's inteneded
QCA::Initializer mQcaInitializer;
};
Daemon::Daemon(QObject *parent) : QObject(parent)
Daemon::Daemon(QObject *parent)
: QObject(parent)
, d(new DaemonPrivate)
{
KSharedConfigPtr config = KSharedConfig::openConfig("kdeconnectrc");
......@@ -97,8 +117,8 @@ Daemon::Daemon(QObject *parent) : QObject(parent)
kDebug(kdeconnect_kded()) << "Starting KdeConnect daemon";
//Load backends (hardcoded by now, should be plugins in a future)
mLinkProviders.insert(new LanLinkProvider());
//mLinkProviders.insert(new LoopbackLinkProvider());
d->mLinkProviders.insert(new LanLinkProvider());
//d->mLinkProviders.insert(new LoopbackLinkProvider());
//Read remebered paired devices
const KConfigGroup& known = config->group("trusted_devices");
......@@ -107,13 +127,13 @@ Daemon::Daemon(QObject *parent) : QObject(parent)
Device* device = new Device(this, id);
connect(device, SIGNAL(reachableStatusChanged()),
this, SLOT(onDeviceReachableStatusChanged()));
mDevices[id] = device;
d->mDevices[id] = device;
Q_EMIT deviceAdded(id);
}
//Listen to connectivity changes
QNetworkSession* network = new QNetworkSession(QNetworkConfigurationManager().defaultConfiguration());
Q_FOREACH (LinkProvider* a, mLinkProviders) {
Q_FOREACH (LinkProvider* a, d->mLinkProviders) {
connect(network, SIGNAL(stateChanged(QNetworkSession::State)),
a, SLOT(onNetworkChange(QNetworkSession::State)));
connect(a, SIGNAL(onConnectionReceived(NetworkPackage, DeviceLink*)),
......@@ -130,7 +150,7 @@ Daemon::Daemon(QObject *parent) : QObject(parent)
void Daemon::setDiscoveryEnabled(bool b)
{
//Listen to incomming connections
Q_FOREACH (LinkProvider* a, mLinkProviders) {
Q_FOREACH (LinkProvider* a, d->mLinkProviders) {
if (b)
a->onStart();
else
......@@ -141,7 +161,7 @@ void Daemon::setDiscoveryEnabled(bool b)
void Daemon::forceOnNetworkChange()
{
Q_FOREACH (LinkProvider* a, mLinkProviders) {
Q_FOREACH (LinkProvider* a, d->mLinkProviders) {
a->onNetworkChange(QNetworkSession::Connected);
}
}
......@@ -149,7 +169,7 @@ void Daemon::forceOnNetworkChange()
QStringList Daemon::devices(bool onlyReachable, bool onlyVisible) const
{
QStringList ret;
Q_FOREACH(Device* device, mDevices) {
Q_FOREACH(Device* device, d->mDevices) {
if (onlyReachable && !device->isReachable()) continue;
if (onlyVisible && !device->isPaired()) continue;
ret.append(device->id());
......@@ -164,16 +184,16 @@ void Daemon::onNewDeviceLink(const NetworkPackage& identityPackage, DeviceLink*
//kDebug(kdeconnect_kded()) << "Device discovered" << id << "via" << dl->provider()->name();
if (mDevices.contains(id)) {
if (d->mDevices.contains(id)) {
//kDebug(kdeconnect_kded()) << "It is a known device";
Device* device = mDevices[id];
Device* device = d->mDevices[id];
device->addLink(identityPackage, dl);
} else {
//kDebug(kdeconnect_kded()) << "It is a new device";
Device* device = new Device(this, identityPackage, dl);
connect(device, SIGNAL(reachableStatusChanged()), this, SLOT(onDeviceReachableStatusChanged()));
mDevices[id] = device;
d->mDevices[id] = device;
Q_EMIT deviceAdded(id);
}
......@@ -197,7 +217,7 @@ void Daemon::onDeviceReachableStatusChanged()
if (!device->isPaired()) {
kDebug(kdeconnect_kded()) << "Destroying device" << device->name();
Q_EMIT deviceRemoved(id);
mDevices.remove(id);
d->mDevices.remove(id);
device->deleteLater();
}
......
......@@ -24,16 +24,14 @@
#include <QObject>
#include <QSet>
#include <QMap>
#include <QtCrypto>
#include <KDEDModule>
#include <KPluginFactory>
#include "kdeconnectcore_export.h"
#include "device.h"
#include "networkpackage.h"
#include "backends/devicelink.h"
#include "backends/linkprovider.h"
class DaemonPrivate;
class NetworkPackage;
class DeviceLink;
class KDECONNECTCORE_EXPORT Daemon
: public QObject
......@@ -65,15 +63,7 @@ private Q_SLOTS:
void onDeviceReachableStatusChanged();
private:
//Different ways to find devices and connect to them
QSet<LinkProvider*> mLinkProviders;
//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 mQcaInitializer;
QScopedPointer<DaemonPrivate> d;
};
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment