At the moment, we were keeping the connection alive with every reachable
device. While this works optimally for most use-cases, on networks with
several devices with KDE Connect, the amount of connections grows
exponentially.
Reviewed by Albert Vaca
CCBUG: 352424
Use QNetworkAccessManager for storing the files we receive instead of
directly KIO, then provide the KIO-based QNetworkAccessManager from the
daemon. This way we'll still get the KIO network-transparency, but the
library only depenends on QtNetwork, which will be easier to get in some
platforms.
After this change, we only depend on KConfig, KI18n and KCoreAddons, which
are tier1 and really easy to work with on any platform.
REVIEW: 123325
Moves the implementation into the actual daemon. This opens the
possibility for different ways to expose these notifications depending on
where the libkdeconnect will be deployed.
REVIEW: 123076
Benefits:
- We had config files in different paths, now they will be centralized.
- Daemon, LanLinkProvider and NetworkPackage depend only on Qt now.
- KConfig is accessed with strings as keys, where a typo can go unnoticed.
- Daemon is now thinner, as it doesn't need to initialize config values.
- QCA::Initializer is in a single place now (was in Daemon and Plugin).
Only look for it in the writable path, as it won't ever be installed in a
common place.
Don't look for the path in the config file either.
Don't make it depend on the application name.
REVIEW: 122744
This meant to add a lot of dependencies to each plugin since we had
KDELibs4support as PUBLIC link meaning that anything linking against
kdeconnectcore was linking at the same time to mostly all frameworks.
Now each plugin has more or less its dependencies in the CMake some
still depend on KDELibs4Support.
For the mousepad plugin I needed to add a fixX11.h file that basically
undefines/defines again some stuff xlib has that conflcits with normal
C++ and Qt.
Before it was not conflicting because some lib within KDELibs4Support
was including this file, but now we have to do it ourselves.
I had to keep the old kDebug code in kdebugnamespace because other parts
of the code are using it. Will be removed as soon as all code using it
is ported as well.
Probably it was not detecting connections to a wired interface either,
this should do the trick but it's a bit weird having to connect to
QNetworkConfigurationManager::configurationAdded() to know about that.