Commit graph

55 commits

Author SHA1 Message Date
Erik Duisters
b6c15289f5 Combine multiple upload jobs into a single KCompositeJob so only 1 notification will be shown
Summary:
Combine multiple upload jobs for files into a single KCompositeJob so only 1 notification will be shown
Includes changes introduced in D16279

Test Plan:
1. Share of multiple files is performed using 1 composite job

   Setup:
	- Select multiple (big) files in dolphin and share with an Android device
   Result:
	- The files will be transferred using 1 CompositeUploadJob and showing only 1 notification

2. Share of file while another share is already running adds job to existing composite job

   Setup:
	- Select multiple (big) files in dolphin and share with an Android device
	- Share an additional file with the same Android device
   Result:
	- The files are all transferred using 1 CompositeUploadJob and showing only 1 notification
	- The notification is updated after adding the last file

3. Other packets are transmitted as usual

   Setup:
        - Setup sharing desktop notification with device
	- Share a big file with an Android device
	- Generate a desktop notification (eg. sending or receiving an email)

   Result:
	- Notification packet is send immediately

Reviewers: #kde_connect, nicolasfella, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, apol, nicolasfella, broulik, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17081
2018-11-30 08:26:00 +01:00
Erik Duisters
538872ddc8 Handle receiving empty file from Android
Summary: When a file share is received the share plugin  does not detect that an empty file is being shared

Test Plan:
Send an empty file from android
The empty file should be created

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka, kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D17175
2018-11-28 15:50:06 +01:00
Nicolas Fella
ccd476c150 Add open on remote device (Desktop)
Summary:
Add openFile to Share Plugin and extend handler to open local file urls

Future extension: Modify the desktop file to allow Open with > Open on connected device

Depends on D16605

Test Plan: Apply Android patch. Use kdeconnect-handler file:///somefile. Check phone for reaction

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: sredman, kdeconnect

Tags: #kde_connect

Maniphest Tasks: T8637

Differential Revision: https://phabricator.kde.org/D15294
2018-11-04 19:55:30 +01:00
Billy Laws
0b72150ed8 Add support for sharing text via qml
Summary: This allows you to send a text string from qml, this can be used in the plasmoid and qml app.

Reviewers: nicolasfella

Reviewed By: nicolasfella

Subscribers: kdeconnect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D16640
2018-11-03 22:23:03 +01:00
Albert Vaca
f47f517827 Rename NetworkPackage -> NetworkPacket
Summary: KDE Connect, now with correct naming!

Test Plan: It still builds.

Reviewers: #kde_connect, apol, nicolasfella

Reviewed By: #kde_connect, apol, nicolasfella

Subscribers: nicolasfella

Differential Revision: https://phabricator.kde.org/D11036
2018-03-05 20:03:23 +01:00
Aleix Pol
214950b3bb Make sure there's not a path within the filename
Reviewers: #kde_connect, aacid, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: albertvaka

Differential Revision: https://phabricator.kde.org/D8106
2017-10-07 13:52:26 +02:00
Aleix Pol
28f11bd5c9 Fix receiving files with invalid URL characters
Summary:
QUrl constructor assumes the string passed is already encoded so we need
to pass it through setPath and QUrl::DecodedMode.

Test Plan: sent a file with a weird character

Reviewers: #kde_connect, jeanv

Reviewed By: jeanv

Differential Revision: https://phabricator.kde.org/D7224
2017-08-11 02:31:09 +02:00
Albert Vaca
36c2e15fc7 Check if there was an error before emitting shareReceived.
And change shareReceived arg from QUrl to QString so it works on DBus
2017-08-01 23:59:38 +02:00
Aleix Pol
3734d6ce4d Reduce API exposed through dbus
Summary:
Don't use QDBusConnection::ExportAllContents
No need to make connect and receivedPackage public slots (they're are the
parent's already)

Fixes T4975

Test Plan: Rough manual test

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Maniphest Tasks: T4975

Differential Revision: https://phabricator.kde.org/D3871
2017-01-10 18:15:01 +01:00
Aleix Pol
e8303af92d Don't expose too many things on dbus for the share plugin 2016-11-30 16:02:06 +01:00
Albert Vaca
d71d3090d2 Removed unused file. 2016-11-26 16:21:30 +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
Albert Vaca
5933c6810c More unused includes cleanup 2016-07-05 14:27:53 +02:00
Albert Vaca
73f5996f14 Consistent naming of _REQUEST package type macros 2016-06-03 00:47:03 +02:00
Aleix Pol
42110549f4 Improve SharePlugin share notification method
Make the share received notification explicitly internal.
Fix runtime warning about how QUrl cannot be exported.
Notify about all shares, not exclusively transferred files.
2015-12-07 03:27:40 +01:00
Aleix Pol
0bca50af93 Merge branch '0.9' 2015-10-19 17:48:13 +02:00
Albert Vaca
4574aa3639 Make the origin also contain the file name, not only the device name 2015-10-17 13:32:57 -07:00
Aleix Pol
d835d01a09 Add a test for file sending, using the loopback device
Extends unit testing by making sure that file sharing works locally.

REVIEW: 125086
2015-09-07 15:03:04 +02:00
Albert Vaca
2f7e6f7de2 Fixed compilation warnings in clang (one of them is actually an issue!) 2015-04-19 22:50:12 -07:00
Lukáš Tinkl
e553d97732 fix possibly localized destination dir
construct the whole QUrl from a local file, not just the default;
entries returned from QStandardPaths are translated on systems with a non
US locale, and this turned the string such as "~/Stažené" into its decoded
form, preventing the transfer from happening
2015-04-15 17:45:54 +02:00
Albert Vaca
2e58f34e1d Ops. 2015-04-11 23:26:52 -07:00
Albert Vaca
890e54cd4b Removed notification because KIO already provides one. 2015-04-04 17:20:51 -07:00
Aleix Pol
9379cc34f7 Check if file exists or not, and then call suggestName.
KIO::suggestName does not checks if file with passed name exists or not. So, we need to check it

REVIEW: 123225
2015-04-02 14:48:50 +02:00
Aleix Pol
15f87cc46d Port to KIO::suggestName
Removes the duplicated code.

REVIEW: 123215
2015-04-01 23:32:35 +02:00
Aleix Pol
491b1ed25b Don't treat local paths as Url's
It could have been fixed by changing QUrl(dir) into QUrl::fromLocalFile(dir)
but this way we get to have a non-local destinationDir.

CCMAIL: bansal.ashish096@gmail.com
2015-04-01 16:16:03 +02:00
Ashish Bansal
5322bf45cb Show Transfer failed instead of Transfer finished when it fails.
REVIEW: 123199
2015-03-31 20:05:58 -07:00
Aleix Pol
ccf03f16d1 Merge branch 'frameworks' to master
The last version using qt/kde4 was moved into the kde4 branch.

CCMAIL: kdeconnect@kde.org
2015-03-19 17:23:27 +01: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
a3decd542c Includes cleanup 2015-03-13 21:20:58 -07: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
Albert Vaca
5807ec0eb1 Fixed re-encoding already encoded URLs, corrupting them.
BUG: 344910
2015-03-08 15:19:21 -07:00
Aleix Pol
72411fc504 Simplify weird code
Don't assume destination is local, also don't use setPath, which is quite
broken as it still keeps the scheme.
This way, destination can be any valid URL.
Don't add a trailing slash if we're going to remove it afterwards anyway.
Remove some back-and-forth conversions between QUrl and QString.
2015-03-04 23:20:28 +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
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
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
Albert Vaca
7d3fe6239c Updating .notifyrc file 2014-11-09 20:36:45 -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
279dbe5598 Minor changes 2014-10-10 11:47:35 -07: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
e43be5d843 Port from KGLobalSettings to QStandardPaths
QStandardPaths::writableLocation is the way to locate "where to download
files" with Qt5, so port to it.
2014-09-22 02:40:51 +02: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
be885903e6 Port share to QStandardPaths
It is weird that we are hardcoding kate or anything else for that
matter, we should be using xdg-open or similar tools.
2014-09-22 01:25:15 +02:00
Àlex Fiestas
af44187695 Port share plugin away from kDebug 2014-09-22 00:46:19 +02:00
Àlex Fiestas
aead283da1 Port shareplugin to QUrl
Had to instance QUrl using fromLocalFile since our
kconfig/KGlobalSettings are not setting the scheme (aka returning
/home/user instead of file:///home/user).

Tested, it works great.
2014-09-21 22:24:37 +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
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
b618a64f51 Merge remote-tracking branch 'origin/master' into frameworks
Conflicts:
	cli/kdeconnect-cli.cpp
2014-06-18 02:46:14 +02:00