Commit graph

161 commits

Author SHA1 Message Date
Aleix Pol
06493a8192 Keep track of whether the daemon is alive
Listen to dbus registrations. Remove all devices if the service dies,
create all devices back when restored.
Same for the NotificationsModel.

REVIEW: 124183
2015-06-25 21:19:23 +02:00
Aleix Pol
6d83827b18 Don't rely on Q_PROPERTY if we're inheriting QDBusAbstractInterfaceBase
See bug:
https://bugreports.qt.io/browse/QTBUG-46858
2015-06-25 04:08:00 +02:00
Aleix Pol
43451d6ae1 Simplify Device::id management
Removes the id->row mapping. It was broken as the indices weren't updated
when a row was added or removed.
Stop exposing Device::id through dbus, just store it in the interface
class.
* It's redundant as it's part of the interface definition
* If we keep it it will save us quite some dbus round-trips
* It will be reliable, as nowadays id() sometimes QString() if the dbus
connection is invalid.

REVIEW: 124158
2015-06-24 20:57:17 +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
fd65570487 Some TODOs done :)
Also renamed the Status flags enum to make it more understandable
2015-06-21 19:42:16 -07:00
Aleix Pol
46b57003cd Display the device model section
This way we can differentiate between the different states
2015-06-19 07:14:02 +02:00
Aleix Pol
68b206e525 Move the generation of dbus interfaces into interfaces/
Simplifies the code altogether by centralizing the generation into 1 call
that does all the steps.

REVIEW: 124120
2015-06-18 19:06:14 +02:00
Aleix Pol
5c79e8a7a6 Implement an MPRIS client plugin
Makes it possible to control remote MPRIS instances.

REVIEW: 124100
2015-06-18 04:01:01 +02: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
6ddac08978 Introduce a device Role
REVIEW: 124067
2015-06-11 16:47:53 +02:00
Aleix Pol
a83bf73a4d Move the DevicesSortProxyModel to interfaces/
This way it can be used by other parts of the project. It belongs with the
DevicesModel.

REVIEW: 124067
2015-06-11 16:09:27 +02:00
Albert Vaca
e5b897884c Added device status icons to be used in the KCM instead of the IM ones 2015-05-17 23:28:58 -07:00
Albert Vaca
50f611f8e3 IconModelRole now uses IconNameModelRole 2015-05-17 18:48:10 -07:00
Albert Vaca
519d67023c Added tooltip to model 2015-05-17 18:47:31 -07:00
Albert Vaca
f21746cfae Returning a QIcon instead of a fixed size QPixmap for DecorationRole. 2015-04-19 22:21:37 -07: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
Albert Vaca
b5420048f9 Fixed warning 2015-03-23 20:44:18 -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
Aleix Pol
fda4556dfc Take into account the integrated filter in the DevicesModel 2015-03-16 02:31:59 +01:00
Aleix Pol
28bc226e5d Make the NotificationsModel also async
The code was almost identical to the one in DevicesModel, so I did the same
2015-03-14 05:37:16 +01:00
Aleix Pol
6fe7a9b158 Make it possible for the DevicesModel to react to device name changes 2015-03-14 04:28:54 +01:00
Aleix Pol
bb97cc19b6 Don't try to initialize the devices model with an empty list 2015-03-14 04:28:06 +01:00
Aleix Pol
fb9143a2aa Ensure the watcher never leaks 2015-03-14 04:27:30 +01:00
Aleix Pol
b99cba1949 Make the DevicesModel::deviceAdded code more robust
If deviceAdded is reported even though it's already in the model, don't
add it twice.
2015-03-14 03:40:01 +01:00
Aleix Pol
e592081094 Fix issue spotted by modeltest
Off by 1 index... :(
2015-03-14 03:32:53 +01:00
Aleix Pol
a4ccc93518 Make the devices list a vector
It's the suggested data type to use according to:
https://marcmutz.wordpress.com/effective-qt/containers/
2015-03-14 03:25:14 +01:00
Aleix Pol
7d6cf97551 Treat dbus errors are warnings rather than debug information
Hopefully it will make it easier to pick up at some point.
2015-03-14 02:42:18 +01:00
Aleix Pol
5d1750b716 Implement TODO
When a device is added, just add the new device instead of refreshing the
whole list.
2015-03-14 02:32:38 +01:00
Aleix Pol
7af7dbdc2f Improve DevicesModel::receivedDeviceList
Make the population asynchronous on dbus. Wait for the device list and
don't populate it until it's ready. There's no reason to block.
Don't emit after endInsertRows. It doesn't help, as the views will have
already refreshed.
2015-03-14 02:30:35 +01:00
Aleix Pol
128241c95c Don't call the QString copy constructor without need 2015-03-14 02:20:25 +01:00
Jonathan Riddell
ce2bb1e433 don't install library dev files until there is an API/ABI policy 2015-03-12 12:42:10 +01:00
Albert Vaca
0a1128ae86 Actually, why are we compiling the modeltest as part of the regular build? 2015-03-08 19:16:06 -07:00
Albert Vaca
a8df2558e4 Fixed annoying warning in modeltest.cpp 2015-03-08 19:13:34 -07: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
18ba161f17 Fully replaced KDED for autostart + dbus activation, so we work outside KDE 2015-02-23 22:12:45 -08:00
Albert Vaca
c013966f4b Version number is now set in a single place 2015-02-04 23:52:07 -08:00
Albert Vaca
6cc6d287fc Merge branch 'master' into frameworks
Conflicts:
	cli/kdeconnect-cli.cpp
	core/filetransferjob.cpp
	core/filetransferjob.h
	interfaces/notificationsmodel.cpp
	plasmoid/declarativeplugin/kdeconnectdeclarativeplugin.h
	plugins/sftp/sftpplugin.cpp
2015-01-20 22:44:31 -08:00
Albert Vaca
da1cb4c354 Coding style 2015-01-20 22:22:14 -08:00
Albert Vaca
91d4a03258 Made notification id accessible from QML 2015-01-20 22:17:01 -08: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
Aleix Pol
b086866409 qVariantCanConvert -> QVariant::canConvert 2014-09-23 19:55:07 +02:00
Aleix Pol
968ccb22c6 Port away from deprecated setRoleNames 2014-09-23 19:27:47 +02:00
Àlex Fiestas
e949bcf19f Forgot to add this file, needed for interfaces to build
Ups...
2014-09-22 00:46:54 +02:00
Àlex Fiestas
02fd748f41 Interfaces no longer depend on kdelibs4support
Also since fileitemactionplugin was using them (and inhering
kdelibs4support) not we have tu explicitly link against it in there.
2014-09-22 00:16:39 +02:00
Àlex Fiestas
42269a9dda Port from KIcon to QIcon
Executed kcm and some notifications, icons are still shown.
2014-09-13 01:04:48 +02:00
Àlex Fiestas
f20f489999 Port to aelperay from QJson to native json support
Straight forward port from QJson to the native Json support.

As a note I have added 2 helper functions that make the code bit more
readable (object2qvariant and qvariatn2qobject).
2014-09-13 00:49:56 +02:00
Lukáš Tinkl
994057af0e fix the Configure action
display the kdeconnect kcm
2014-09-10 10:19:44 +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
Aleix Pol
5aeb71873c Fix cmake warning, make link visibility explicit for kdeconnectinterfaces 2014-07-01 02:16:45 +02:00
Albert Vaca
12411da360 Added some debug info to devices and notifications models 2014-07-01 01:26:08 +02:00
Albert Vaca
cabb0f2f7b Simplified debug areas so we only have one, called "kdeconnect" 2014-07-01 01:26:08 +02:00
Albert Vaca
d72ebc4cf7 Workaround to make devices be correctly filtered again.
Flags in QML are not working correctly (as they are in Qt5), so we will
use integer values for the flags for now.
2014-07-01 01:26:07 +02:00
Aleix Pol
446dbbc230 Remove IsPairedRole
It was not a good idea
2014-06-27 16:16:45 +02:00
Aleix Pol
e227c61cf8 Expose flags so that the plasmoid doesn't need to use magic numbers 2014-06-27 16:09:01 +02:00
Aleix Pol
dc2f9c0f3c Introduce a IsPaired role in the DevicesModel
Reviewed by Albert Vaca
2014-06-23 18:13:43 +02:00
Aleix Pol
bf272ea3e7 Remove usage of KDE4_ variables 2014-06-18 02:39:30 +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
b7420146eb Expose the icon name from the device instance 2014-06-14 19:42:34 +02:00
Aleix Pol
7a0557f482 cmake fixes
Use the new directory structure when installing generated files.
Remove unneeded add_dependencies calls.
2014-06-14 16:56:41 +02:00
Rohan Garg
83c882cbdd Fix build 2014-06-14 16:50:54 +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