Commit graph

53 commits

Author SHA1 Message Date
Aleix Pol
c863feef58 Optionally include sms app
Creates a tiny messaging app that uses KPeople to query the contacts and
KDE connect telephony plugins to send plugins.
To be ready, still needs some work on the contacts sync side and some
messages history would be nice.
2018-03-25 20:48:38 +02:00
Kai Uwe Broulik
1c3a45fd95 Get rid of ProcessRunner
Use KCMShell singleton in kquickcontrolsaddons
Also while at it honor kiosk restriction

Differential Revision: https://phabricator.kde.org/D9759
2018-01-09 16:33:02 +01:00
Jean Vincent
72535ecf48 Make member variable names, & placement and * placement more coherent
Summary:
Change all member variables to the form m_fooBar because it is the preferred form in Qt (it was half and half between this and mFooBar, and a minority didn't have anything).
Place all references and pointers on the side of the type since it is the majority.

Basically:
 - mFoo -> m_foo
 - foo -> m_foo (if it is a member variable)
 - Type &ref -> Type& ref
 - Type *ptr -> Type* ptr

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, nicolasfella, albertvaka

Subscribers: albertvaka, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D7312
2017-09-03 21:45:08 +02:00
Jean Vincent
c864267f04 Replace Q_FOREACH with C++11 range-for
Summary:
The use of Q_FOREACH is advised against (https://doc.qt.io/qt-5/qtglobal.html#Q_FOREACH) since Qt 5.7 and will eventually be removed from Qt.

I replaced all occurrences with the range-for loop introduced in C++11 (except for the one in daemon.cpp in deviceIdByName which might have a bug / typo in it).

I added const to the container or casted it with qAsConst when appropriate to avoid unnecessary copies.

(This is my first submission. I did all the unit tests, and they all passed but I don't know how to show it here.)

Reviewers: #kde_connect, nicolasfella, apol

Reviewed By: #kde_connect, nicolasfella, apol

Subscribers: albertvaka, apol, nicolasfella

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D6724
2017-07-21 09:57:19 +02:00
Holger Kaelberer
30cffbd96e Add remotekeyboard plugin
BUG: 370919
REVIEW: 129727
2017-01-23 09:08:27 +01:00
Aleix Pol
a164983b6f Revert "kdeconnect-kde: Add remotekeyboard plugin"
This reverts commit 040ad7357b.

Sorry, didn't mean to push that myself ^^'
2017-01-11 17:20:22 +01:00
Holger Kaelberer
040ad7357b kdeconnect-kde: Add remotekeyboard plugin
Allow to inject keypress events to remote peers (most notably Android devices)

Notes / open issues / possible improvements:

- For the json-payload I used the syntax of the key-events as sent by mousepad-plugin with the addition of a "sendAck"-flag. If "sendAck" is set to true the remote peer should echo a key-event if it could be handled, thus allowing the local client to find out whether the key was accepted. For performance reasons, it's allowed to send multi-char strings in the "key" property (performs much better if you send a whole string via "echo '...' |  kdeconnect-cli ..." e.g.)

- kdeconnect-cli: For now takes a string and transforms it into single key-events for visible characters only. In a first implementation I used a kbhit() helper that used termios.h to catch and relay keypresses interactively (including some special-events), which was not optimal. A better approch might be to use linux input-api directly. Would this be an option regarding cross-platform compatibility or can I assume to develop for Linux only? Being a command-line guy, I'd really like to have a fully featured kdeconnect-cli interface ;-)

- Factor out the Qt::Key-to-internal keymap to some core-helper because it corresponds to the mapping in the mousepad-plugin?

- The plasmoid is not perfect as it is: A single line containing a non-echoing TextField (i.e. it eats all the KeyPress events), and only ack-ed keypress-packets from the peer device are injected if they contain visible keys. Advantage: the user sees whether his key-presses are accepted by the peer device. Disadvantage: The echoed text does not correspond 1:1 to what is shown on the peer's display, user might be confused when typing without success. I played around with different variations each of which with its proper shortcomings:
1. An echoing Textfield for typing: Has the advantage that the user can directly see what he is typing, which makes interaction in the typing field easier, BUT messes up interaction if the Editor on the peer is changed silently and does not notify the user if his keypresses are not handled by the peer.
2. A non-echoing TextField for typing PLUS a readonly one for printing visible echoed keys. Disadvantage: same as for the previous one and uses more space on the plasmoid.
Comments? Ideas?

REVIEW: 129727
BUG: 370919
2017-01-10 21:12:42 +01:00
Albert Vaca
60331ccbf1 Clazy says all this QStringLiteral and QLatin1String were missing/wrong 2016-11-26 16:21:29 +01:00
Albert Vaca
a1340c8042 Fixed old style connects with clazy 2016-11-26 15:14:19 +01:00
Aleix Pol
d9e7f308c2 Show the announcedName in the qml app
Makes it possible to display it and modify it
Introduces a DBusProperty component that can be used if we don't want
to go through the QtDBus property generation hell.
2016-08-21 19:38:15 +02:00
Aleix Pol
b69247b4e5 Don't force the creation of a DeviceInterface for every pluginchecker
Create one per device and share it
2016-08-21 18:57:27 +02:00
Aleix Pol
a96818113d Simplify the PluginChecker
Make the connection property readonly
Alias the device into another property
2016-08-21 13:08:36 +02:00
Aleix Pol
596e4484f4 Clean up use of virtual and override keywords
Only use virtual when actually virtual, to override just use override.
2016-06-20 19:22:29 +02:00
Aleix Pol
d8c20399e4 pedantic 2016-06-15 23:49:51 +02:00
Aleix Pol
f1f0b85d3e Verbose errors 2016-06-12 22:26:32 +02:00
Aleix Pol
9a370da97b Use async dbus calls for checking plugin availability 2016-06-12 22:26:23 +02:00
Aleix Pol
b73f3d5a8a Move the PluginChecker to the kdeconnect qml plugin 2016-06-12 22:24:35 +02:00
Albert Vaca
59f69856d6 Fixed warning 2016-05-31 20:10:00 +02:00
Aleix Pol
a8a8080248 Prevent detaching temporary objects
For more info see:
https://blogs.kde.org/2015/05/13/simple-qt-container-optimization-you-should-do-your-code
2015-09-12 09:53:05 +02:00
Aleix Pol
4730022810 Pass arguments as const-reference 2015-09-12 09:45:59 +02:00
David Edmundson
9985a59608 Find my phone plugin
Add a plugin that sends a package to ring an alarm on a phone

Also adjusts plasmoid to have a button to invoke this.
2015-09-11 21:12:12 +02:00
Aleix Pol
d58f6314fe run Clang Modernize
Minus the auto change
2015-09-08 10:47:37 +02:00
Boris Egorov
1924173df2 Fix various krazy2 warnings
Fix following krazy2 warning types:
[explicit], [endswithnewline], [doublequote_chars], [includes], [normalize],
[postfixop], [spelling]

See http://ebn.kde.org/krazy/reports/playground/base/kdeconnect-kde/index.html
for details.

SLOT/SIGNAL normalization done with Qt normalize utility:
https://github.com/qtproject/qtrepotools/tree/master/util/normalize

REVIEW: 124857
2015-08-21 22:38:54 +06:00
Aleix Pol
be2a3252c2 Make it possible to lock the screen from KDE Connect
Connects to freedesktop ScreenSaver interface and un/locks it upon request.

REVIEW: 124170
2015-07-22 03:37:34 +02:00
Aleix Pol
058f7c7c90 Implement the touchpad forwarding into kcapp
This way the computer's cursor can be controlled from the device. Keyboard
is not yet implemented.
2015-07-22 03:21:28 +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
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
Aleix Pol
a51283b62b Re-use the uri instead of creating new ones just because
As Albert suggested
2015-04-15 13:01:33 +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
Lukáš Tinkl
994057af0e fix the Configure action
display the kdeconnect kcm
2014-09-10 10:19:44 +02:00
Elias Probst
16f2251019 Streamline internal naming (kdeconnect → org.kde.kdeconnect)
- correct PluginName in metadata
- correct plasmoid installation directory
- correct appName in aboutData
- remove trailing whitespace.

REVIEW: 119937
2014-08-26 01:37:35 +02:00
Elias Probst
5ee8f9e5a2 Protect org.kde.kdeconnect against external module registration
Fixes this message on plasmashell startup:
Module 'org.kde.kdeconnect' does not contain a module identifier
directive - it cannot be protected from external registrations.

REVIEW: 119923
2014-08-24 17:53:10 +02:00
Aleix Pol
3e74a97304 Port plasmoid to Plasma Next 2014-06-18 02:35:48 +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
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
Lukáš Tinkl
39c72cb4b2 i18n fixes 2014-02-28 18:50:06 +01:00
Albert Vaca
245ee18089 Fixed "unknown host" problem in sftp plugin 2014-02-14 15:37:14 +01:00
Samoilenko Yuri
fb8fa53f8d some fixes 2014-02-06 19:25:50 +04:00
Samoilenko Yuri
1ce8750093 simple bugfixes 2014-02-06 19:25:47 +04:00
Samoilenko Yuri
22718a0bd9 DeclarativePlugin::BatteryInterface removed
Due to bug occured in QML property access(when object derived from QDBusAbstract interface) C++
part of BatteryPlugin in plasmoid rewritten in pure QML.
BatteryPluginDBusInterface fixed to avoid this bug.

Bug occuring when QML try to access any property of any object derived from
QDBusAvstractInterface - QML engine crashes.
2014-02-06 00:37:55 +04:00
Samoilenko Yuri
499b8b00b7 some fixes 2014-02-06 00:36:51 +04:00
Samoilenko Yuri
a72547096f browse button moved to separate class 2014-02-03 21:06:47 +04:00
Samoilenko Yuri
776543409d button works 2014-01-31 14:06:21 +04:00
Samoilenko Yuri
881450146f wow - almost work, but some tricks... 2014-01-30 20:39:11 +04:00
Samoilenko Yuri
a54dd853ff play continues... 2014-01-30 20:25:22 +04:00
Samoilenko Yuri
9ce35fbd4d qml in qt4 - ugly shit... Some experiments 2014-01-29 09:17:06 +04:00
Samoilenko Yuri
42b927bcab hard experiments.. 2014-01-29 02:22:59 +04:00
Samoilenko Yuri
55c1221223 almost work... 2014-01-28 21:22:09 +04:00