Commit graph

680 commits

Author SHA1 Message Date
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
a3decd542c Includes cleanup 2015-03-13 21:20:58 -07:00
Albert Vaca
549f4c0815 KdeConnectConfig now displays initialization errors as notification
NOTE: This patch requires KNotifications 5.9
2015-03-13 21:20:58 -07: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
9c45c5469c Prefer to specify the property
Tie the change signal to the getter, makes the interface easier to read
and opens the possibility to adopt certain optimizations in the Qt side.
2015-03-14 04:09:14 +01:00
Aleix Pol
807926473d Use better types to store the device internal data
https://marcmutz.wordpress.com/effective-qt/containers/
2015-03-14 04:07:55 +01:00
Aleix Pol
0e96d837ff Make sure the capabilities don't change over time by constifying
It exposed a problem later on, where we'd end up removing our own
capabilities into the remote's.
2015-03-14 02:44:21 +01:00
Aleix Pol
4c195e1a16 No need to set up the timeout every time 2015-03-14 00:39:13 +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
Aleix Pol
ede7dd0e84 Drop KIOWidgets dependency from KDEConnectCore
Removes the usage of RenameDialog by moving the functionality away. In
fact, what it does is make the share dialog try to come up with a different
name rather than asking the user. It's a quite common procedure as makes
the interaction simpler (for example, Chromium and Kamoso work like that).

REVIEW: 122813
2015-03-09 13:22:10 +01:00
Aleix Pol
b06038e60e Prefer the usage of QUrl::toLocalFile to QUrl::path
QUrl::toLocalFile is portable.
2015-03-04 22:33:54 +01:00
Aleix Pol
463aa0cbf9 Prefer using QCoreApplication to using QApplication
Just checking if we can get rid of QtWidgets dependency on core,
eventually
2015-03-04 22:29:04 +01:00
Aleix Pol
2a70fabaf0 Remove unneeded dependency 2015-03-04 22:20:44 +01: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
Aleix Pol
ef70772f70 Clean up generation of the host's private key
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
2015-03-02 00:49:44 +01:00
Albert Vaca
aaa034b9d6 Removed reference to KDED 2015-02-23 22:14:22 -08:00
Albert Vaca
c50f1a22ae Fixed rejectPairing being always called 2015-02-23 21:43:46 -08:00
Albert Vaca
c013966f4b Version number is now set in a single place 2015-02-04 23:52:07 -08:00
Lamarque V. Souza
00ef52227e Fixes file transfer for Samsung Galaxy S2 with Jelly Bean 4.1.2
by setting destination QUrl's scheme if it lacks one.

REVIEW: 122221
2015-01-23 14:11:48 -02: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
Kai Uwe Broulik
930c107f7b Cleanup notifications
Use iconName instead of sending a fixed-size pixmap around, fix wording and use title
capitalization, more meaningful names in notifyrc, QStringLiteral and new style connect.

REVIEW: 122121
2015-01-18 01:53:20 +01:00
Heiko Becker
260301155f Use co-installable qca-qt5 version
If both qt4 and qt5 versions of qca are present the build of the
frameworks branch tries to find Qt4 pulled in by qca and thus fails.

REVIEW: 122054
2015-01-15 21:35:30 -08:00
Albert Vaca
c7c1974ea9 Merge branch 'master' into frameworks
Conflicts:
	core/backends/lan/lanlinkprovider.cpp
	plugins/ping/pingplugin.h
	plugins/telephony/telephonyplugin.cpp
2015-01-10 20:14:01 -08:00
Albert Vaca
4b6aa135e3 Fixing memory leaks in LanDeviceLinkProvider and LanDeviceLink 2015-01-06 21:48:25 -08:00
Pramod Dematagoda
6926fca598 Adjust socket parameters to detect device disconnection faster.
REVIEW: 121711
2014-12-29 23:34:03 -08:00
Albert Vaca
0271aa9511 Ping plugin packet type define shouldn't be in core. 2014-12-21 19:35:35 -08:00
Albert Vaca
9266094747 Removed unused vars 2014-11-29 00:17:42 -08:00
Albert Vaca
2b13d0825c Merge branch 'master' into frameworks
Conflicts:
	kded/CMakeLists.txt
2014-11-22 09:29:05 -08:00
Albert Vaca
d8943f03ae Added dbus activation to org.kde.kdeconnect 2014-11-22 09:26:15 -08:00
Albert Vaca
a58fab4fb3 Merge branch 'master' into frameworks
Conflicts:
	cli/kdeconnect-cli.cpp
	core/device.cpp
	core/filetransferjob.cpp
	core/filetransferjob.h
	core/networkpackage.h
	kded/CMakeLists.txt
	plugins/share/shareplugin.cpp
	plugins/telephony/telephonyplugin.cpp
2014-11-11 21:40:54 -08:00
Lukáš Tinkl
eb38ad5330 turn critical debugs into qCCritical()
just in case, for the future... :)
2014-11-10 15:53:01 +01:00
Jan Grulich
27e3dfdca5 Make sure that key.pem is created for the first time
Construct its path instead of trying to find it, because
this returns an empty path and thus key.pem couldn't be
created.

Reviewed-by: Lukáš Tinkl
2014-11-10 15:46:49 +01:00
Albert Vaca
7d3fe6239c Updating .notifyrc file 2014-11-09 20:36:45 -08:00
Jens Dagerbo
53a33096ad Changed int to qint64 for tracking payload size
No longer keeping the entire file in RAM while uploading
2014-11-09 12:57:09 -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
Albert Vaca
e8dadfdfb9 Added TODO 2014-10-15 23:03:41 -07:00
Albert Vaca
279dbe5598 Minor changes 2014-10-10 11:47:35 -07:00
Albert Vaca
d31178725b Removed commented code 2014-10-10 11:27:01 -07:00
Albert Vaca
ddb9190fbe More robust fix to problem with device ids being non exportable on dbus 2014-10-10 11:26:50 -07:00
Aleix Pol
1a1969f42f Port to new QCA cmake structure, now it's called Qca
and the target name is qca
2014-09-23 20:05:22 +02:00
Àlex Fiestas
9a9333035a Use QString::toLatin instead of deprecated toAscii 2014-09-23 19:45:29 +02:00
Àlex Fiestas
9ed5004997 Link publickly against KF5::KIOCore
This is neede since kdeconnectcore public api contains KIO/FIleJob
2014-09-22 10:17:32 +02:00
Àlex Fiestas
dbea3171bd Make kdeconnect core compile without KDELibs4Support
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.
2014-09-22 02:40:51 +02:00
Àlex Fiestas
2328738beb Port core from KStandardDirs to QStandardPaths
Tested, both code return the same thing.
2014-09-22 01:23:27 +02:00
Àlex Fiestas
d971269bd5 Remove kdebugnamespace completely and replace by core_debug
In those places that belong to "core" we use core_debug, in any other
place we have added custom logging categories so we use those instead.
2014-09-22 00:59:34 +02:00
Àlex Fiestas
df0c262998 Port core to qCDebug
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.
2014-09-21 23:54:27 +02:00
Àlex Fiestas
473a34b76f Por filetranasferjob to QUrl
Pretty much a straight forward port from KUrl to QUrl, since we are only
forwarding arguments there was not much to port but a simple /kurl/qurl/
2014-09-21 22:22:06 +02:00
Albert Vaca
5cf6fe82b5 Fixed possible causes of a crash in LanLinkProvider::configureSocket l.48
BUG: 338662
2014-09-17 19:02:45 +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
Sebastian Kügler
506bd2a890 add qjson includes at top-level
It's needed by plugins as well, not just by the core.

Reviewed-by: Aleix
2014-09-07 14:12:00 +02:00
Aleix Pol
e82850411d Import error reporting
I was getting a crash, it was because of a set up problem, but having this
helped me to figure it out.
2014-09-01 17:49:09 +02:00
Christophe Giboudeaux
b7eb49d996 -Wmissing-include-dirs 2014-08-27 15:10:59 +02:00
Saikrishna Arcot
05fdbe0e5b Add support for receiving keyboard entries.
This patch gets the keyboard entries from the Android client and passes
along the keycode.

REVIEW: 119254
2014-08-14 18:01:31 +02:00
Albert Vaca
dfbe7c7bfc Trying to fix daemon not detecting connection to phone via usb tethering
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.
2014-08-11 18:57:49 +02:00
Albert Vaca
a3b89da9c7 Minor changes 2014-08-11 18:57:48 +02:00
Aleix Pol
380006114a Use the incoming/outgoing capabilities for trimming loaded plugins
Only lets the plugins that support something offered on the other end or
that offer something supported on the other end. If we don't have
information about the other device, we enable everything like we used to.

Also refactors a bit the plugin loader, to be able to provide information
step by step.

Currently it works, but we need support for capabilities at least on
Android to start taking good advantage of it.

REVIEW: 118820
CCMAIL: kdeconnect@kde.org
2014-07-11 01:54:19 +02:00
Aleix Pol
a8fb015a22 Fix compilation after merge 2014-07-02 01:39:38 +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
David Suárez
dcfb37c85b Provide versioned so files for kdeconnectcore lib
REVIEW: 119013
2014-06-30 01:12:49 +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
Raphael Kubo da Costa
2df8a8064f LanLinkProvider: Bind the UDP server socket to Any, not Broadcast.
Trying to bind a UDP socket to 255.255.255.255 fails with EADDRNOTAVAIL
at least on FreeBSD.

The sender side on Android should send its message in broadcast mode (as
it already does), but the receiver side should bind to INADDR_ANY, not
INADDR_BROADCAST.

BUG:	324769
REVIEW:	118870
2014-06-27 00:20:23 +03:00
Christophe Giboudeaux
5a91db4427 Use the compat link_public/link_private keywords instead.
Just removing the public/private keywords uncovers some other build errors.
2014-06-24 23:27:46 +02:00
Christophe Giboudeaux
ec9317e7ef Fix build with older CMake versions. 2014-06-24 22:40:23 +02:00
Aleix Pol
16aaa9f77c Merge branch 'master' into frameworks 2014-06-21 02:06:50 +02:00
Aleix Pol
43a7c60c80 Display the user-name in the display name
Describes better what device we're linking to.

REVIEW: 118807
2014-06-21 02:05:55 +02:00
Aleix Pol
349a42cf16 Port libraries to translation domains 2014-06-18 02:49:07 +02:00
Aleix Pol
b618a64f51 Merge remote-tracking branch 'origin/master' into frameworks
Conflicts:
	cli/kdeconnect-cli.cpp
2014-06-18 02:46:14 +02:00
Aleix Pol
43a24ac12e Figure out Messages.sh after code refactoring
KDED is translated again
Rename the core's pot to kdeconnect-core.pot and make sure the library
loads the catalog when it's linked to.
Provide a separate translations file for all the plugins, together.

REVIEW: 118774
2014-06-17 18:45:47 +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
Albert Vaca
734b27ed50 De-duplicated small piece of code 2014-06-15 21:40:19 +02:00
Aleix Pol
6ce0b6b874 Document in the desktop files the outgoing types for the plugins
This way we narrow the things a plugin can send, to its own scope. Still
every plugin can set a list of types, so it should be ok.
2014-06-14 20:35:00 +02:00
Aleix Pol
b7420146eb Expose the icon name from the device instance 2014-06-14 19:42:34 +02:00
Aleix Pol
96d6e4bccb install kdeconnectcore 2014-06-14 18:04:54 +02:00
Aleix Pol
741abafaf7 Move the plugins into a different top-ĺevel directory
Reviewed by Albert Vaca
2014-06-14 16:34:11 +02:00
Albert Vaca
232c43838c Removed unused variable 2014-06-14 16:22:30 +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