Commit graph

167 commits

Author SHA1 Message Date
Alexander Lohnau
1f7ec93954 Adjust to new KCM classes
Depends on https://invent.kde.org/frameworks/kcmutils/-/merge_requests/121
2023-03-16 13:50:16 +00:00
Alexander Lohnau
4e9303a6cc Adapt to KPackage API changes for install/uninstall
This simplifies the code, because we can access the package after installing it.

Depends on https://invent.kde.org/frameworks/kpackage/-/merge_requests/68
2023-03-14 20:18:39 +01:00
Nate Graham
a42f7f4807 kcms/effects: Add "tile"-related keywords
Ultimately the best solution would be to implement
https://bugs.kde.org/show_bug.cgi?id=462722, but that hasn't been done
yet, so for now let's use the existing approach of adding the names of
effects into the keywords list for this KCM to surface those effects at
the system level so e.g. people can find them with KRunner.

BUG: 467279
FIXED-IN: 6.0
2023-03-14 11:03:09 -06:00
Vlad Zahorodnii
4148be0d27 Port to versionless QML module imports
It's more convenient and Qt upstream seems to encourage to use it too,
e.g. example import statements have no version.
2023-03-12 14:18:34 +00:00
Vlad Zahorodnii
18a9b3b25a Adjust to KDecoration API changes 2023-03-12 13:29:36 +00:00
l10n daemon script
e4da7fed68 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-03-11 02:58:17 +00:00
Alexander Lohnau
56f2b9819d Remove unneeded KNewStuff linking
We only need this as a QML runtime dependency
2023-03-04 08:15:32 +01:00
Vlad Zahorodnii
b099ad8ade Drop deprecated Qt::AA_UseHighDpiPixmaps
Qt::AA_UseHighDpiPixmaps has no any effect now.

We used to rely on the fact that Qt::AA_UseHighDpiPixmaps is disabled by
default in Qt 5 in kwin_x11. It's not clear what to do about it now.
2023-03-03 08:36:14 +00:00
Vlad Zahorodnii
f16814811b kcms/rules: Fix import and export dialog 2023-03-03 07:41:01 +00:00
l10n daemon script
24802d9d9a 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-03-01 23:48:05 +00:00
Vlad Zahorodnii
5b6b2a2219 kcms: Fix plugin id loading in desktop effects kcm
kwin installs metadata files for builtin effects so the kcm can find
them. With the recent KPluginMetaData changes, the Id field has been
removed, so the kcm will use "metadata" (the basename of metadata.json)
as the plugin id.

In order to fix plugin id resolution, let's install metadata with the
file name same as the plugin id.
2023-03-01 16:05:07 +00:00
Vlad Zahorodnii
be936d0567 kcms/rules: Port away from Kirigami.OverlaySheet.sheetOpen 2023-03-01 14:53:15 +00:00
Vlad Zahorodnii
d9f5d432be Port to KF6 2023-02-28 18:30:26 +02:00
Vlad Zahorodnii
65c7abd8fb kcms/xwayland: Remove unused include
It fails to build with KF6.
2023-02-25 12:20:27 +00:00
l10n daemon script
4df8d73fc4 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-25 02:07:07 +00:00
Alexander Lohnau
34008b9dbd Use KPluginMetaData::fileName instead of KPluginMetaData::metaDataFileName
In KF6, the latter does not exist anymore and without desktoptojson compat code in KPackage, the values are the same anyway
2023-02-24 16:17:38 +01:00
Nicolas Fella
bae75abf6d Remove unneeded X-KDE-ParentApp from KCM metadata 2023-02-21 17:36:54 +00:00
Nicolas Fella
a1639da6e5 [kcm/common] Port EffectsModel away from KPluginMetaData::metaDataFileName
It's gone in KF6

It's only used to obtain the install location of the package and resolve files relative to that

Use QStandardPaths to locate those files directly
2023-02-21 14:55:28 +00:00
l10n daemon script
d5207b95c8 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-20 02:04:26 +00:00
Nicolas Fella
27b90db641 Remove unneeded KAboutData includes 2023-02-17 16:16:26 +00:00
Nicolas Fella
61718d9017 Port QML KCMs away from setAboutData
Let them use the JSON metadata instead
2023-02-17 16:16:26 +00:00
Vlad Zahorodnii
9b6c9242f6 scripting: Drop "Item" word in WindowThumbnailItem and DesktopBackgroundItem
Drop the "Item" word to be more consistent with QtQuick coding
conventions, where C++ usually include the Item word, but QML types
don't.
2023-02-15 21:06:44 +02:00
Nicolas Fella
659f4eb555 Remove unneeded KService usages 2023-02-15 07:27:55 +00:00
l10n daemon script
9aad886729 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-10 02:01:56 +00:00
Natalie Clarius
0b2c442196 kcms/rules: add warning for low opacity
Once upon a time, in a moment of acute stupidity, I accidentally created a window rule making all windows completely transparent. I meant to go for 0% transparency when really the slider said 0% opacity. And once you've made the very window to change this setting invisible, the only way to fix that mistake is to log into a TTY or different DE and find the config file to edit manually. Since I've since seen several KRedditors fall into the same trap:  

Show a warning when active or inactive opacity is set to ~~<= 15%~~ < 25%.

![warning](/uploads/0b1178bf5782bff3b4293a0031bb4fca/warning.png)
2023-02-09 21:36:24 +00:00
Ismael Asensio
e504c58286 kcms/tabbox: Manage shortcuts via ShortcutSettings
Leverage the standardized ShortcutSettings config object to handle
the shortcuts config for the tabox (setting default values, reading
and saving to KGlobalAccel, etc).

This way, we can remove the extra methods in TabBoxConfigForm and
improve separation between UI and logic.

It also fixes the actions getting stored untranslated when saving
from the KCM (until next restart of KWin)
2023-02-07 07:59:25 +00:00
Ismael Asensio
9c2224acb3 kcms/tabbox: Expose shortcuts as a KConfigSkeleton
Provide a new KConfigSkeleton (ShortcutSettings) so that the
KCModuleData knows if any of the shortcuts is non-default.

This improves the UX by showing an "orange dot" in system
settings when just a shorcut has been changed.

We also need to implement a new specific KConfigSkeletonItem
(`ShortcutItem`) that uses KGlobalAccel to retrieve and store
the shortcuts, instead of storing them in a config file.
2023-02-06 21:01:35 +01:00
Vlad Zahorodnii
600de787d8 scripting: Drop org.kde.kwin 2.x
It's superseded by 3.x.
2023-02-06 18:59:10 +00:00
Ismael Asensio
8507e602f3 kcms/tabbox: Handle config directly within the configuration form
By passing the config object to the TabBoxConfigurationForm, we
can handle it directly instead of bouncing information from and
back between the forms and the KCM main class.

Now the user changes in the UI translate to the config objects,
which can directly provide `isSaveNeeded()` and `isDefaults()` info.

This allows to simplify the logic on both classes, reducing the
coupling between them and minimizing the number of exposed public
methods and some boilerplate.
2023-02-06 14:01:14 +01:00
Ismael Asensio
a648553be0 kcms/tabbox: Improve model initialization
- Add the switchers to the model directly, instead of using
  temporal lists and a second loop over them
- Use the same model for main and alternative forms

This makes this code a little more clear and efficient
2023-02-06 09:11:34 +00:00
Joshua Goins
21dbf0f413 kcm/decoration: Change it to the new frameless style
This now matches other modern KCMs and removes the weird titlebar tab view,
moving it to a separate page.
2023-02-05 02:22:14 +00:00
l10n daemon script
71c9b7db87 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:09:27 +00:00
Vlad Zahorodnii
d18f7efac2 scripting: Remove deprecated properties in WindowThumbnailItem 2023-02-02 15:13:38 +00:00
David Edmundson
99f433641a Add missing includes for KF6
This fixes includes that were implicitly brought in with KF5
2023-01-28 09:16:14 +00:00
ivan tkachenko
53591cdfb2
kcms/decoration: Deduplicate event proxying code 2023-01-26 23:04:40 +03:00
ivan tkachenko
5bd748c674
kcms/decoration: Use correct mask to specify that item accepts all buttons 2023-01-26 23:04:40 +03:00
ivan tkachenko
70a2aa644f
kcms/decoration: Don't setFiltersChildMouseEvents when filter method is not overridden 2023-01-26 23:04:40 +03:00
ivan tkachenko
01a7bd14ec
kcms/decoration: Remove suspicious C-style const cast 2023-01-26 23:04:38 +03:00
ivan tkachenko
63ff64b094 kcms/decoration: Fix double click behavior over the thumbnail
KDecoration.Decoration eats all the events for the sake of keeping
an illusion of buttons being like the real ones. I didn't find any sane
way to completely turn off event filtering on that level, so instead
let's fix this MouseArea, which is a workaround, but a decent one.

AFAIK this is the last KCM in Plasma to properly support "double-click
to save" behavior. There might be others though: watch out for event
filters inside thumbnail.
2023-01-25 18:05:15 +00:00
l10n daemon script
7bd4bd0bf7 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-25 02:03:19 +00:00
l10n daemon script
19f8a724f1 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-23 01:57:54 +00:00
Vlad Zahorodnii
cf583aa367 Change default latency policy to "Force smoothest animations"
There are some performance differences between X11 and Wayland. Desktop
systems are mostly unaffected by them, but laptops suffer a bit.

On Wayland, kwin always does double buffering. This is great for
reducing latency and avoiding tearing, but if the gpu can't keep up with
the work, you're going to see stuttering.

Another issue is that in order to reduce latency, we need to have very
good frame stats. At the moment, kwin records only cpu render time, but
we also need to record the gpu time. We've already done some work in
this area, but it's most likely Plasma 6 material. (plasma/kwin!1163)

In the meantime, let's change the default latency policy to "Force
smoother animations." It's going to improve frame rate. If people care
about latency, they can change latency policy in system settings; the
option is still there.

CCBUG: 452119
2023-01-17 04:10:30 +00:00
l10n daemon script
03c407cb7d 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-17 02:03:45 +00:00
Vlad Zahorodnii
5963790b21 kcms/rules: Use window class and role with original casing
The window rules kcm uses lower-case window class and role, but kwin can
use window class and role with other casing, which will break the ExactMatch
match rule.

BUG: 464190
2023-01-16 16:52:02 +00:00
l10n daemon script
60d41538b7 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-16 02:00:47 +00:00
Ismael Asensio
fdd585e44c kcms/tabbox: Fix Reset not disabling Apply
Fix the code to get the actual saved shortcuts on KGlobalAccel
when discerning if they have changed.

Amends commit: 76ac4be316
2023-01-13 09:49:15 +00:00
Nicolas Fella
c9691b5855 kcms/tabbox: Don't offer switcher from global themes that don't actually ship a switcher
Some global themes, e.g. Breeze Dark, don't ship a switcher and instead point to the one from the Beeze global theme

They do show up in the selection though, which is confusing and doesn't actually work
2023-01-13 08:49:04 +00:00
l10n daemon script
392379163a 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-13 02:03:45 +00:00
Ismael Asensio
b11416c396 kcms/tabbox: Highlight non-default shortcuts
This sets the property on the shortcut widgets when they
should get highlighted: the option is selected in System
Settings and the shortcut is not the default.

It requires a change in `KXMLGui/KKeyShortcutWidget` to
actually paint the highlihgt ring.
(commit 47572c26, KF103)

CCBUG: 459318
2023-01-12 19:58:08 +01:00
Vlad Zahorodnii
73005fcd72 kcms/compositing: Improve wording of "allow tearing" option
When reading "allow tearing in fullscreen", I expect something after the
word "fullscreen". Either "windows" or "mode".
2023-01-12 13:30:58 +00:00
Ismael Asensio
76ac4be316 kcms/tabbox: Make shortcuts config save on apply
Currently, tabbox shortcuts are directly saved to KGlobalAccel
when they change, which is inconsistent with the rest of the
KCM and leads to confusion regarding Defaults and isSaveNeeded
status.

Let's instead manage the changes internally and just save them
to KGlobalAccel on Apply/Save.

m_actionsCollection is only used as a helpful way to store this
internal configuration, and doesn't really needs saving to
or restoring from config.

BUG: 459325
FIXED-IN: 5.27
2023-01-12 12:15:48 +00:00
l10n daemon script
2f8e2ef689 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-09 02:00:23 +00:00
l10n daemon script
97041dab12 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-07 02:06:50 +00:00
Vlad Zahorodnii
b0e452563b kcms/effects: Fix effect loading/unloading order
There are effects that are mutually exclusive, e.g. magnifier and zoom.
They both use the same global shortcuts.

When switching from zoom to magnifier, the zoom effect must be unloaded
first, then the magnifier effect can be loaded. Doing so in the opposite
order will break global shortcuts in the magnifier effect because
zooming shortcuts are still bound by the zoom effect.

BUG: 457800
2023-01-06 13:41:38 +00:00
l10n daemon script
824ef8a74e 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-04 02:02:56 +00:00
l10n daemon script
8e140db62e 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-02 02:31:51 +00:00
l10n daemon script
752f565521 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:21:02 +00:00
l10n daemon script
fddd65deda 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-30 02:09:12 +00:00
Nate Graham
b9612ca0b7 kcms/kwineffects: use new term "Peek at Desktop"
The widget was renamed a while back, but the KCM still used the old
term to refer to it when letting the user choose the visual effect that
it shows the user. Let's change that.

BUG: 463087
FIXED-IN: 5.27
2022-12-29 18:03:02 +00:00
l10n daemon script
e98282a8a6 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-26 02:05:01 +00:00
l10n daemon script
ae605bab12 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-23 01:55:25 +00:00
l10n daemon script
d11181090c 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-21 01:55:00 +00:00
l10n daemon script
6ab6f188cd 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-20 01:50:45 +00:00
l10n daemon script
0509dec92f 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-19 01:54:39 +00:00
l10n daemon script
3af5bec4ba 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-18 02:12:19 +00:00
Nicolas Fella
a0e3a6e54b Port away from deprecated KService::property overload 2022-12-18 01:19:07 +01:00
Vlad Zahorodnii
f94b8bfa86 kcms: Simplify directory naming
Remove "kwin", it's repetitive and doesn't add new information. In
addition to that, prefixing commits that change kcms will become more
straightforward. There's more than one scheme people use, some include
"kwin", some don't.
2022-12-17 20:02:16 +00:00