Commit graph

120 commits

Author SHA1 Message Date
Aleix Pol
81634303b2 Make capabilities static
As discussed with Albert, move the population of capabilities into the
identity package, making them static along the execution of the link.

When we receive the identityPackage, we collect the plugins we can use with
the device and stick to those. This should simplify the implementation and
remove the possibility to lose packages if packages are received before the
capabilities are processed in the former approach.

REVIEW: 128386
2016-07-06 17:37:22 +02:00
Albert Vaca
1848e96a91 Fixed old signal name 2015-12-17 05:54:37 -08:00
Albert Vaca
cf6cbd2925 WIPx3! 2015-12-01 10:45:14 -08:00
Albert Vaca
82bc73dd9b WIPx2 2015-12-01 07:25:34 -08:00
Albert Vaca
16f9af908a WIP 2015-11-30 10:36:01 -08:00
Aleix Pol
661fa098d4 Introduce bare documentation for the KDE Connect kcm 2015-10-19 03:25:17 +02:00
Aleix Pol
2707d1f0a8 Fix reload when changing current device on the kcm 2015-09-12 19:43:15 +02:00
Aleix Pol
fe2679a8a5 Prevent the kcm from refreshing the UI while interacting with it
Only refresh it when the available plugins actually change.
2015-09-12 15:02:59 +02:00
Albert Vaca
82d036265c Acquire the discovery mode when refreshing the KCM, in case it's not there 2015-09-11 07:19:07 -07:00
Aleix Pol
a9d2840664 Use acquire and release instead of a boolean property
This way we hope we won't end up without discovery if 2 instances need
discovery at the same time.

Reviewed by Albert Vaca
2015-09-09 20:09:04 +02:00
Aleix Pol
a0da8ba858 Let the KPluginSelector react to changes in the plugin configuration
Mainly whenever the remote capabilities change.

Reviewed by The Vaca Man
2015-09-08 20:03:44 +02:00
Aleix Pol
b9c427a316 fix crash and simplify code
reviewed by Albert Vaca
2015-09-08 17:57:55 +02:00
Aleix Pol
6a379e9227 Rename missingPlugins to unsupportedPlugins 2015-09-08 17:38:33 +02:00
Aleix Pol
817fcbc9d6 Merge branch 'stable' 2015-09-08 10:51:41 +02:00
Aleix Pol
d58f6314fe run Clang Modernize
Minus the auto change
2015-09-08 10:47:37 +02:00
Aleix Pol
4023bf0599 Only keep connections alive with unpaired devices when discovery is enabled
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
2015-09-08 09:30:55 +02:00
Aleix Pol
24d4d19b89 Remove debug
Sorry Albert :/
2015-09-08 00:59:17 +02:00
Aleix Pol
91351773fd Mark incompatible plugins as such in the kcm
If a plugin isn't available, display it as unsupported by the device. This
is figured out through capabilities.

Reviewed by Albert Vaca
2015-09-07 19:35:07 +02:00
Albert Vaca
9fa8538bf1 Removed some assertions that could not be true if using the model filter
Also fixed ugly hack where the KCM updated the model
2015-06-21 20:20:40 -07:00
Albert Vaca
c8e0c474ef Fixed crash 2015-06-21 19:43:21 -07:00
Albert Vaca
02bc1bcd90 Fixed progress indicator incorrectly being displayed after unpiring 2015-06-21 19:42:57 -07:00
Albert Vaca
c07c48ee37 Added "about" dialog to KDE Connect settings module.
BUG: 349186
2015-06-19 22:48:18 -07:00
Aleix Pol
7c2e2fb726 QML-ify
Add API to call random public plugin methods
qdbusxml2cpp is not generating the Q_PROPERTY attribute. For now [1], add
it ourselves by addding a proxy signal.

REVIEW: 124077
2015-06-13 01:28:36 +02:00
Aleix Pol
b592dc99a0 Merge pairingSuccessful and unpaired signals into pairingChanged(bool)
REVIEW: 124067
2015-06-11 16:19:00 +02:00
Aleix Pol
05491442e6 Make it possible to fetch the device from the DevicesModel from QML
Uses the row as the argument instead of the QModelIndex.
Defines the Device type so it can be used from QML.

REVIEW: 123361
2015-04-15 13:00:23 +02:00
David Rosca
b71b39761d KCM: Use currentChanged signal instead of clicked in deviceList
Using currentChanged signal it is now possible to select devices
with keyboard.
It also no longer refreshes plugin info when clicking on already
selected device.

REVIEW:123308
2015-04-09 17:47:01 +02:00
Albert Vaca
f237a659ec Added a link to the Android app from the KCM 2015-03-23 00:39:36 -07:00
Aleix Pol
c7cee37330 Port away from KServiceTrader
Uses KPluginLoader+KPluginMetadata instead.
Describes plugins in json instead of desktop files. These desktop files are
then embedded into the .so file. All the plugins will be in a kdeconnect/
directory, and those will be the ones to look for.

Note it doesn't drop the KService dependency as KIOCore is a KDE Connect
dependency as well.

REVIEW: 123042
2015-03-19 16:36:53 +01:00
Albert Vaca
02a2990720 Added a baseclass for the plugins' KCMs and a class for the plugins' config
Centralizing the plugins' config will ensure that all the plugins store it
the same way (ie: not in random files scattered around, like until now).
The base KCM class, together with the already existing base plugin class,
will give easy access to all the plugins to this centralized config. Also,
now the settings are not shared across devices (that is: every device can
have different config for a same plugin).

Note: This commit requires KCMUtils 5.9

REVIEW: 122927
2015-03-13 21:22:21 -07:00
Albert Vaca
b0cc45b52a You can now change your name (the one seen by other devices on the network) 2015-03-01 21:23:05 -08:00
Albert Vaca
c7c91c1289 Added KdeConnectConfig class that aims to be a KConfig abstraction
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).
2015-03-01 20:16:07 -08:00
Albert Vaca
7591e783ca Implemented sizeHint for KCM, so it doesn't open in a super small window 2015-03-01 16:09:42 -08:00
Albert Vaca
567796231b Connecting to clicked instead of pressed on KCM's buttons 2015-03-01 16:09:42 -08:00
Lukáš Tinkl
728dab0353 fix memleak
the Designer UI has to be deleted
2014-11-10 20:36:12 +01:00
Aleix Pol
21ab5a4f81 Merge branch 'master' into frameworks
Mostly kDebug -> qCDebug
Also some KCmdLineArgs -> QCommandLineParser

Conflicts:
	cli/kdeconnect-cli.cpp
	core/CMakeLists.txt
	core/backends/lan/lanlinkprovider.cpp
	core/daemon.cpp
	core/pluginloader.cpp
	interfaces/CMakeLists.txt
	kio/kiokdeconnect.cpp
	plugins/mousepad/CMakeLists.txt
	plugins/mousepad/mousepadplugin.h
	plugins/mpriscontrol/mpriscontrolplugin.cpp
	plugins/sftp/sftpplugin.cpp
2014-11-04 19:12:29 +01:00
Àlex Fiestas
677f650216 Removed K_EXPORT_PLUGIN, no longer needed
With kf5 this is not longer needed. removing it!
2014-09-22 02:40:51 +02:00
Àlex Fiestas
9c13e92e55 Port KCM to QStandardPaths
Both core return the same.
2014-09-22 01:23:47 +02:00
Àlex Fiestas
93054601b9 Removed unused kdebugnamespace, makes kcm kDebug free 2014-09-22 00:17:56 +02:00
Albert Vaca
e809fa441c Added a refresh button to KCM, just in case.
We already have a refresh button on Android.
2014-08-11 18:57:49 +02:00
Albert Vaca
a303b73238 Merge branch 'master' into frameworks
Conflicts:
	cli/kdeconnect-cli.cpp
	core/CMakeLists.txt
	plasmoid/package/contents/ui/FullRepresentation.qml
	plugins/ping/pingplugin.cpp
2014-07-01 23:59:38 +02:00
Albert Vaca
cabb0f2f7b Simplified debug areas so we only have one, called "kdeconnect" 2014-07-01 01:26:08 +02:00
Aleix Pol
c8dbbed685 Move the send ping code to the ping plugin
turn it into a dbus call to the plugin

Reviewed by Albert Vaca
2014-06-27 18:21:40 +02:00
Aleix Pol
a1a560c469 First approach to a KF5 port of KDE Connect
Ported using KDELibs4Support, for a smaller delta, so we can keep
developing on master until we decide not to.

At the moment, it builds and installs but tests don't pass because
of a QCA2 initialization problem I didn't manage to debug yet.

CCMAIL: kdeconnect@kde.org
2014-06-16 20:02:07 +02:00
Aleix Pol
b88897847b Reorganize sources
We broke kded into core and kded, core contains the library with the backends
and plugins.
Also we renamed libkdeconnect to interfaces.
2014-06-14 15:22:40 +02:00
Alexandr Akulich
f8fe1f3f6c kcm: Added DevicesModel declaration to move it's definition to implementation. 2014-06-14 13:06:12 +02:00
Albert Vaca
4dcbb3531a Remove the browse filesystem button from KCM 2014-04-05 20:05:22 +02:00
Samoilenko Yuri
9fc9e72374 Code cleaning and stabilization
- SftpDbusInterface merged to SftpPlugin object
- mountpoint cleaning technique to avoid fuse errors with dangling mountpoints
2014-01-15 20:36:01 +04:00
Samoilenko Yuri
e74627ce15 dirty kcm integration 2014-01-07 01:01:21 +04:00
Albert Vaca
6e5de6f437 qDebug -> kDebug with namespaces
Added 3 namespaces: kdeconnect_kded, kdeconnect_kcm and libkdeconnect
2013-11-06 22:16:55 +01:00
Albert Vaca
2054288cac KCM updated when pairing state changes externally
Added an unpaired() signal to KDED's Device exported by dbus
2013-10-01 03:20:07 +02:00
Albert Vaca
dfe6c1273a Fixed KCM updating the wrong device if selection was changed
Info displayed when pairing was always shown in the currently selected
device
2013-10-01 03:20:07 +02:00
Albert Vaca
b22dee3e7e Include clean-up 2013-09-10 15:37:35 +02:00
Albert Vaca
fe6a0a8978 Ooops not compiling again 2013-09-04 23:04:11 +02:00
Albert Vaca
0ff5600ce2 i18n 2013-09-04 21:19:02 +02:00
Albert Vaca
1604309ace Added symmetric pairing
A KNotification asks to accept the pairing when the other ends requests it
2013-08-30 19:10:43 +02:00
Albert Vaca
1cb1b26415 Moved DevicesModel and DBusInterfaces to libkdeconnect
Added NotificationsModel to libkdeconnect
2013-08-21 18:25:44 +02:00
Albert Vaca
a1d396ad20 Error checking in KCM, in case KDED is not running
Added a dbus interface isValid check to prevent a crash.

BUG: 323653
2013-08-18 18:22:54 +02:00
Albert Vaca
0eb3f019c9 Minor changes 2013-08-16 09:27:32 +02:00
Albert Vaca
d1658564f9 Sort devices by status in KCM.
Some coded added to keep the current selection when reordering.
2013-08-16 00:25:13 +02:00
Albert Vaca
88fab1f333 Plugins are now owned by devices and not by daemon
Plugins can no longer emit networkpackages for *every* device.
Plugins are stored in device, wich selectively loads them.
A Device is needed in order to instantiate a Plugin (via PluginLoader)
PluginLoader is a singleton, because every instance of Device need it.
Added KPluginSelector in the KCM to select the plugins to load.
Added architecture explanation to README

Only PingPlugin is working by now.
2013-08-13 05:07:32 +02:00
Albert Vaca
b1e4e2d836 New networkpackage format and serialization using qjson and qvariantmap (and templates fun) 2013-07-04 01:09:49 +02:00
Albert Vaca
975892dcd0 Yet another refactor, mostly moving code from from daemon class to device class
Device now has a public dbus interface
Removed wizard from kcm: now the main list shows all the devices and you can pair/unpair using a checkbox
Both Kde and Android now use unique device ids
2013-07-03 03:52:44 +02:00
Albert Vaca
213e8ea9ad Fixed android app bug 2013-07-02 15:22:05 +02:00
Albert Vaca
669edf8ea5 It even works now 2013-07-02 02:46:41 +02:00
Albert Vaca
5fbd33e8c5 Implemented communication wizard -> kcm
Renamed androidshine -> kdeconnect
2013-07-02 01:50:32 +02:00
Albert Vaca
1f536de7e9 Started wizzard implementation 2013-06-27 02:13:16 +02:00
Albert Vaca
800de8836f DBus communication working 2013-06-25 21:19:17 +02:00
Albert Vaca
df12667f10 Fixed cmake build 2013-06-25 18:43:54 +02:00
Albert Vaca
3ff7779c7c Ooops 2013-06-25 18:08:34 +02:00
Albert Vaca
6e53c5b9c7 KCM skeleton 2013-06-19 16:15:25 +02:00