Commit graph

171 commits

Author SHA1 Message Date
Alexander Lohnau
ed1e24d231 kdeconnect_add_plugin: Autogenerate logging category
This is far less code and allows for an easier enforcing of standards, for
example the name of the log identifiers which were adjusted in a few cases.

Also clean up unused includes when noticed.
2023-08-07 19:47:41 +02:00
Alexander Lohnau
cdc8428542 Create kdeconnect_add_kcm cmake function
This way, the namespace info is not duplicated within the buildsystem and we have a more reasonable place to put the QML file install into
2023-08-07 19:28:37 +02:00
Albert Vaca Cintora
abb6dfcc6e plugins: Add context-aware logging in case of errors
Also clean up some unneeded statements
2023-08-03 20:54:38 +02:00
Alexander Lohnau
1631ada5b3 Simplify KDEConnectPlugin::recievePacket
- We do not need the return type. If a plugin declares it can handle the
  packet it should do so. We don't have any fallback logic in place and
  the packet types are namespaced with the plugin IDs anyway.

- Provide a default implementation with a warning, not all plugins need
  to overwrite this
2023-08-03 20:49:44 +02:00
l10n daemon script
b0a122089d SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-08-01 01:39:50 +00:00
Alexander Lohnau
b54e739753 Do not make m_ui instance a ptr
By having it as a simple member variable, we do not need to take care of deleting it manually
2023-07-30 07:27:45 +00:00
Alexander Lohnau
2e67f95017 Add explicit moc includes to cpp files
The rationale is explained in https://planet.kde.org/friedrich-kossebau-2023-06-28-include-also-moc-files-of-headers/

In case of KDEConnect, it impressively speeds up compilation. Before it
took 390 seconds on a clean build and with this change it took 330 seconds.
This is due to the mocs_compilation having to include the header files
and thus all their headers. Due to the lots of small plugins we have,
this means that the same headers must be compiled plenty of times.
When we include the moc files directly in the C++ file, they are already
available.
2023-07-30 07:27:45 +00:00
l10n daemon script
1ff98bc580 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-07-30 01:37:54 +00:00
l10n daemon script
885d311b31 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-07-28 01:41:47 +00:00
Alexander Lohnau
a1195a72a3 Use versionless Qt targets where possible
We depend on 5.15 which allows us to use those
2023-07-25 18:29:38 +02:00
Alexander Lohnau
75a8db1ec5 Use pragma once in plugins
For non-library code, this is simpler and more concise
2023-07-22 20:51:19 +00:00
Alexander Lohnau
f483c1449c Use simpler K_PLUGIN_CLASS macro for KCMs 2023-07-22 20:51:19 +00:00
Alexander Lohnau
ede9e37b40 Use KPluginMetaData::pluginId for getting config plugin name
By removing the postfix we consistently use, we get exactly the same string as before

However, all our pluginId logic is now done as part of the buildsystem.
Before, they were in the JSON metadata, the buildsystem and the string constructor parameter

KPluginFactory has the KPluginMetaData object in any case, do using it
doesn't create any overhead.
2023-07-22 20:51:19 +00:00
Alexander Lohnau
35a450f366 Port to new PMF connect syntax
This way we catch missing methods/mismatching arguments at compile and
not at runtime.
This fixes some Qt6 regressions due to the removal of deprecated methods.
2023-07-22 20:51:19 +00:00
Alexander Lohnau
c61fad5561 Do not make virtual methods of KCModule Q_SLOT
We do not need those methods to be marked as slots and the KCMUtils
classes like KPluginWidget also don't need it.
Meaning it just results in more moc code being generated.
2023-07-22 20:51:19 +00:00
Alexander Lohnau
9fdc2901b2 Use target-centric CMake approach rest of logging categories 2023-07-22 20:51:19 +00:00
Alexander Lohnau
f740a8bda8 Use target-centric CMake approach for declaring debug category
This makes it easier to read, because we do not have to handle a list of
files that get added to the targets. In other KDE projects, we also
prefer the target centric approach.

In case one wants to reuse the same category in multiple places, it
would be best to create a small static lib. But for now, this is not
needed.
2023-07-22 20:51:19 +00:00
Alexander Lohnau
999f8e00de Remove explicit plugin Id
The one derived from the filename is identical. Deriving it from the filename is the preferred approach.
In KF6, log messages are printed out if the Id is needlessly specified.
A mismatching Id vs basename would print out a warning.
2023-07-22 20:51:19 +00:00
Alexander Lohnau
319696c445 Remove version and website metadata for plugins
The plugin version doesn't matter, because all plugins are shipped as
part of kdeconnect and not separately.
The website was also set inconsistently, some pointed to a custom blog,
the KDE homepage or a broken link. If we want to make announcements more
visible, we should have a link in a more central place.
2023-07-22 19:12:33 +02:00
Alexander Lohnau
4ca8f98b7d Remove obsolete ServiceTypes definitions
Task: https://phabricator.kde.org/T14483
2023-07-22 19:12:33 +02:00
Alexander Lohnau
52b6d57942 Qt6 build fixes in plugins and KCM 2023-07-20 11:15:46 +03:00
Alexander Lohnau
c5bfc4a5b0 Allow building against Qt6/KF6 2023-07-20 11:15:41 +03:00
Albert Vaca Cintora
9c87393b28 clang-format pass 2023-07-16 16:20:34 +02:00
Albert Vaca Cintora
144a60b58a Allow disabling clipboard auto-share and add option to share manually
Continues the work started in !396 by rebasing it onto latest master and
making the "send clipboard" button from the plasmoid invisible when
automatic syncing is enabled.
    
I didn't find a way to do the same in kdeconnect-indicator and
kdeconnect-app (why do we have 3 UIs???), so in those we always show the
option for now.
2023-06-07 19:48:25 +00:00
l10n daemon script
4e364c67d1 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-06-01 01:40:26 +00:00
l10n daemon script
ca5c5ab333 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-05-28 01:40:43 +00:00
l10n daemon script
40e7cab454 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-27 01:43:28 +00:00
l10n daemon script
bb403a3294 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-25 01:47:55 +00:00
l10n daemon script
eb04209601 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-23 01:46:30 +00:00
l10n daemon script
a5850cca3b SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-22 01:47:35 +00:00
l10n daemon script
5da47e9f91 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-18 01:41:53 +00:00
l10n daemon script
f5e93700a5 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-16 01:40:41 +00:00
l10n daemon script
3b42d0fc27 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-15 01:42:57 +00:00
l10n daemon script
c08b663401 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-14 01:38:30 +00:00
l10n daemon script
0a827f9e06 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-11 01:42:34 +00:00
l10n daemon script
ebd70efd3e SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-10 01:39:38 +00:00
l10n daemon script
ad53dea58e SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-09 01:40:22 +00:00
l10n daemon script
3040f49a2e SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-04-08 01:41:50 +00:00
Albert Vaca Cintora
02e2e1104e Change my name to include my two last names :) 2023-04-08 00:20:47 +02:00
l10n daemon script
c4495d5855 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-02-04 02:05:14 +00:00
l10n daemon script
3ee29af814 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2023-01-01 02:14:13 +00:00
l10n daemon script
6acbcd628d SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-12-15 01:56:04 +00:00
Carl Schwan
b2e83f506c Improve and fix pluging modules
- Fix call to removed get() method
- Add PlaceHolderMessage in runcommand plugin
- Simplify qml code when possible
- Use latest qml import
- Fix missing i18n call

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-12-14 16:46:57 +00:00
l10n daemon script
4656144ac9 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-11-19 01:48:52 +00:00
Nicolas Fella
1fbbeb823d [plugins/clipboard] Check for null mimedata
BUG: 461875
2022-11-18 00:03:15 +00:00
l10n daemon script
e712748881 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-11-17 01:47:30 +00:00
l10n daemon script
e77ba5b542 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-10-20 02:01:51 +00:00
Yuchen Shi
b9a089344e Add config for clipboard plugin on content types to share.
## Summary

This MR adds a config dialog for the Clipboard plugin, where the user can toggle
whether to share password and/or anything else with other devices.

Implements !39

BUG: 458063

According to previous discussion at !39 (and the bug linked), some users want to
skip sending passwords to other devices while others rely on the existing behavior.
This MR addresses that by allowing users to control those two types separately and
will replace !39 if merged.

![Screenshot with new config dialog](/uploads/3dfc6c6d69b86e6512e6a8948320a839/Screenshot_1661407807.png)

Borrowing the idea from !39, the `x-kde-passwordManagerHint` MIME data hint is used
to determine whether the content is considered secret. I've tested this method with
KeepassXC which [sets this correctly](a6d3f973fa/src/gui/Clipboard.cpp (L62)). See test plan below.

In theory, MIME also can be used to test for images and another checkbox can
be easily added should we decided to support images later. For now though, the
enum and the config supports only passwords or "anything else". Both defaults to true,
thus keeping full backwards compatibility. I've been keeping both unchecked since
I only share in one direction (Android to Linux), which wasn't possible until this MR.
Others may want to make their own choices.

## Test Plan

Please reference the screenshot above for the steps.

From the indicator, right-click and select `Configure`. Select a device from the
left side (or pair one if needed). In "available plugins", make sure "Clipboard"
is checked, and verify that a "Configure" icon button is now shown on the right.

Clicking that icon should bring up the new config dialog, where the two check boxes
can be toggled as desired. Click on "OK" to save and apply the settings. Clicking on
"Defaults" should bring both back to checked (the default behavior).

Copy normal plain text from your favorite text editor and it should be sent to another
device if the "anything else" checkbox is checked. I've tested this on an Android phone
but I see no reason it won't work elsewhere given the code for sending has not been changed.
(Feel free to test on other devices.)

Open KeepassXC and select an entry, right click and select "Copy password". This sets
the MIME hint so it should be treated as a password, controlled by the "passwords" checkbox.
I've toggled the settings multiple times on and off. Once "OK" is clicked, the next clipboard
change should pick up the latest settings.

I've only tested on Linux desktops (Arch Linux) since I do not own a Mac. I don't believe any
OS X application sets `x-kde-passwordManagerHint` at all, so they may be controlled by "anything else".
2022-10-17 21:04:20 +00:00
l10n daemon script
f556dc721b SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2022-09-30 01:47:48 +00:00
Nicolas Fella
a918ffc0cb Add and make use of ECM's clang-format integration 2022-09-11 23:21:58 +00:00