Commit graph

5203 commits

Author SHA1 Message Date
Tobias Fella
dc7b9473f7 kcms/keyboard: Refactor and fix LayoutDialog
The list had a few problems, notably an erratic sorting that randomly change during and after searching for a layout.
While at it, refactor some code and port the models to C++.
2026-11-03 09:46:31 +00:00
David Edmundson
55162399b1 kcms: Drop solid actions
The use-case for this has passed. Most devices appear as mass storage
devices.

The UI is not up to the expectations of something we would allow in
Plasma if it was introduced today. The end goal is for user to set
custom commands via an incredibly complicated UI that requires the user
to know how to use Solid predicates syntax.

At most it saves a few clicks it does not solve any unique problems on
it's own.

The code in the Device Notifier applet is left unchanged as actions can
still be shipped by applications or written manually. This brings it in
line to dolphin service menus.

This was discussed at the last Plasma sprint in Graz.
2026-11-02 13:39:06 +01:00
Kai Uwe Broulik
de49b534e0 kcms/touchscreen: Set textRole for device selection
Fixes the device name not showing, probably broke in the refactoring.
2026-11-02 10:18:09 +01:00
l10n daemon script
bea51aa002 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"
2026-11-02 01:51:37 +00:00
l10n daemon script
9b562de8b7 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"
2026-11-01 01:52:47 +00:00
l10n daemon script
901f66821c 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"
2026-10-30 01:53:41 +00:00
l10n daemon script
e8cba50f92 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"
2026-10-28 02:07:56 +00:00
l10n daemon script
7ab21c175a 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"
2026-10-27 02:06:16 +00:00
l10n daemon script
a828367cc3 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"
2026-10-26 01:55:31 +00:00
Niccolò Venerandi
6ddedc3e53 kcms: Make "drag and drop" find General Behavior instead of Mouse
Searching System Settings for "drag and drop" (or "drag", "drop")
lists the Mouse page, which has no drag-and-drop setting, and does not
list General Behavior, which has the "Drag and Drop" group that
controls what happens when files are dropped.

BUG: 518455
2026-10-25 16:01:58 +01:00
l10n daemon script
d2f101ea16 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"
2026-10-23 01:46:45 +00:00
l10n daemon script
cbe53cdc78 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"
2026-10-20 02:07:07 +00:00
l10n daemon script
53698305ce 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"
2026-10-18 02:00:49 +00:00
l10n daemon script
74914f1ce3 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"
2026-10-17 01:57:20 +00:00
Jakob Petsovits
0e796b7558 kcms/mouse: Move QML property lines for better readability
`id` should generally be the listed first.
2026-10-16 18:33:22 -04:00
Jakob Petsovits
70bfb3faa8 kcms/mouse: Fix indentation of scroll-button behavior options
Indent them to the level of the corresponding checkbox's text.
Make this work also for right-to-left layouts.

Modeled after "Disable while (...)" checkboxes in Touchpad KCM.
2026-10-16 16:35:08 -04:00
Jakob Petsovits
531c62f321 kcms/touchpad: Indent checkboxes with indicator width and spacing
`contentItem` padding works in Breeze, but cannot be relied upon;
the Union style does not set it in the same way.
Using indicator width plus spacing is more widely compatible.

Also, use "mirrored" property for more compact phrasing.
2026-10-16 16:33:04 -04:00
Oleg Tsvetkov
90f507b7e2 kcms/landingpage: Drop the buddy binding of the most used grid
Amends d6d785e4a1

children[1] is undefined while the grid is created, so every time the
page opens it logs "Unable to assign [undefined] to QQuickItem*". The
Repeater's onItemAdded already makes the first item the buddy.
2026-10-16 10:49:24 +03:00
l10n daemon script
6372e5d0b2 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"
2026-10-16 01:55:45 +00:00
Nate Graham
dd124d0def kcms: follow HIG for list items with inline actions
Use raised buttons and alternating backgrounds, as recommended by ths
HIG; this helps distinguish interactive buttons from list items'
decorative icons, and helps the eye associate the controls on the right
with the text and icons on the left.
2026-10-15 09:46:37 -04:00
Tobias Fella
1d5be3d338 kcms/qtquicksettings: Drop 2026-10-15 10:51:04 +00:00
l10n daemon script
dd5473a924 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"
2026-10-15 01:54:31 +00:00
l10n daemon script
e19adfb295 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"
2026-10-14 02:05:06 +00:00
Albert Astals Cid
e7a026f9d4 Fix action names
BUGS: 526886
2026-10-13 11:36:37 +00:00
l10n daemon script
9ff65f65d7 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"
2026-10-12 02:18:57 +00:00
Nate Graham
cb433c3758 Revert "fix systemsettings ui font color"
This reverts commit 8c4b431d43.

It broke text coloring with most color schemes.
2026-10-09 16:39:45 -06:00
Nate Graham
f565e08f30 kcms/landingpage: top-align Global Theme thumbnails
If some of their names are longer than others, the labels become
multi-line strings. In such a circumstance, these will default to center
alignment (which looks bad) unless we specify something else.
2026-10-09 18:32:03 -04:00
Nicolas Fella
9b029ed99c kcms/tablet: Clean up canberra context 2026-10-08 12:42:25 +02:00
David Redondo
8af82f5f6a kcms/dateandtime: Auth manually before issuing calls to timedate1
Authorization for set-time implies set-ntp and set-timezone, if acquired first
then the user will only see one polkit dialog. However ntp needs to be disabled
first before the time can be changed. Unfortunately due to deficiencies inside
KAuth with the Polkit backend it's not possible to  authorize an arbitrary action,
so Polkit-qt is used for this. The code "executes" still a KAuth action to make
use of the  side channel for parent window and activation token to our agent,
but since the action doesn't have a helper will actually not execute anything.
2026-10-08 09:28:22 +02:00
David Redondo
e4805a6d4a kcms/dateandtime: Calculate timeDiff before doing blocking things
It can take an arbitrary amount of time until the user answers authorizes
the change, during that time in the real world keeps running, the set time
by the user doesn't change once set. Calculate the diffrence in time beforehand
to keep it as close as possible to what the user wanted.
2026-10-08 09:28:22 +02:00
l10n daemon script
3d67fe9f50 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"
2026-10-06 01:53:43 +00:00
l10n daemon script
ac251b9878 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"
2026-10-05 01:51:33 +00:00
l10n daemon script
4ce137deb1 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"
2026-10-04 01:48:16 +00:00
Joshua Goins
dcf1c69940 kcms/tablet: Minor fixups to other refreshInputSequence calls
To be on the safe side in lieu of
cfc256a727.
2026-10-02 15:42:25 -04:00
Bharadwaj Raju
cfc256a727 kcms/tablet: fix setting of stylus and pad buttons
### Reason for the change

Some of the references in the QML were undefined, so the refreshInputSequence
function would not get called from the root.onSettingsRestored connection,
and in the onGotInputSequence handler, the button int was undefined, and
would silently become a 0 when going to C++.

So the button settings would (1) not change the correct button code, and (2)
both the pen buttons would show the same setting, despite trying to get them 
to be different.

The problem with refreshInputSequence also existed in the pad button settings,
but there at least the setting would be applied, it's just that the display of
the setting would not refresh properly.

This change qualifies and rebinds the properties as needed, and all of that works now.

### Test plan

Try to set stylus buttons, ensure (through adding logs) they they get sent to the correct button code (not 0), and that the two stylus buttons can be configured independently.

Try to set pad buttons, ensure that the change you make doesn't seem to disappear after exiting the popup.

### Bugs fixed

I looked through all open bugs against systemsettings > kcm_tablet, and somehow this does not appear to have been reported yet.



<!-- Don't remove or edit anything below this line. -->
2026-10-02 15:40:12 -04:00
Jakob Petsovits
dfb7afc2df kcms/touchpad: Disable Middle-click via L&R corners if not available
Middle-click by pressing both bottom corners only works if the
radio button setting "Right-click by: Pressing bottom-right corner"
(a.k.a. `clickMethodAreas == true`) is enabled.

It does not work if instead, the alternate radio button setting
"Right-click by: Pressing anywhere with two fingers"
(a.k.a. `clickMethodClickfinger == true`) is enabled.

In the latter case, disable the checkbox
"Left and right buttons: Press both simultaneously to middle-click".

This is still somewhat awkward as a radio button group further down
in the page determines the state of a checkbox much higher up.
We may at some point redesign this in a more fundamental way.
Until then, this commit ensures that at least we don't show an
option as working when it's actually ignored.

Also, hide this checkbox entirely if it's not supported by the
touchpad at all. Other unsupported settings get hidden too,
no reason to treat this one differently.
2026-10-02 08:37:27 -04:00
Jakob Petsovits
5280d7b702 kcms/touchpad: In left-handed mode, RMB is in the bottom-left corner
Switch the text of the radio button that's usually titled
"Right-click by: Pressing bottom-right corner" accordingly.
2026-10-02 08:37:27 -04:00
Jakob Petsovits
c2e0bd28b3 kcms/touchpad: Clean up right-click settings for better usability
Always show subtitles for the right-click radio buttons, to avoid
confusion about controls jumping around while clicking them.

Remove the conditionally visible pair of radio buttons titled
"Middle-click by: Pressing {bottom center, left/right}". An option
further up already provides access to the same setting, called
"Press both [l&r buttons] simultaneously to middle-click".

On the other side of conditional visibility, remove the checkbox
"Middle-click by: Pressing anywhere with three fingers"
as the corresponding radio button subtitle already mentions this.
Being permanently disabled, it only existed to explain the behavior.

In the "Tapping" section below, move "middle-click by (...)" text
of "Two-finger tap" radio buttons from parentheses into subtitles.
This lines up visually with the "Right-click by..." radio button
group further up.

The cognitive dissonance of not having two "Right-click by..." groups
work in the same way (clicking vs. tapping) remains for now.
2026-10-02 08:37:27 -04:00
Jakob Petsovits
bdb6c62cdf Fix automoc warnings
Should not include "*.moc" headers when the .cpp defines no Q_OBJECT.
The "moc_*.cpp" include, for Q_OBJECTs from the header file, remains.
2026-10-02 03:30:01 -04:00
Jakob Petsovits
02eb20e87b Revert "Fix some automoc warnings"
This reverts commit 9ad3384764
2026-09-30 17:22:12 -04:00
Jakob Petsovits
9ad3384764 Fix some automoc warnings
Should not include "*.moc" headers when the .cpp defines no Q_OBJECT.
The "moc_*.cpp" include, for Q_OBJECTs from the header file, remains.
2026-09-30 15:19:58 -04:00
Kai Uwe Broulik
495c1cd4d1 kcms/touchpad: Load name and sysName properties
Fixes the device name not showing, was probably lost in the refactor.

BUG: 521800
2026-09-30 17:51:00 +02:00
Xu Zhao
8c4b431d43 fix systemsettings ui font color 2026-09-29 16:01:48 -04:00
l10n daemon script
be905c9e6f 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"
2026-09-27 01:44:33 +00:00
l10n daemon script
844e219286 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"
2026-09-26 01:44:02 +00:00
Tobias Fella
c0a1572206 Use non-typo'd function 2026-09-25 11:57:59 +00:00
l10n daemon script
86398585fd 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"
2026-09-22 17:12:26 +00:00
Christoph Wolk
98f7a2d04f kcm_keys: fix layouting issues
kcm_keys has some layouting issues at very small window sizes:

- The column headers (Default/Custom shortcuts) always take up the full
  width. This works fine in most languages, but breaks for the usual
  culprits of volumnious verbiage, like German and Russian
- Somewhat similarly, the shortcuts themselves always take up their full
  single-line width. This works fine almost all the time, but can break
  if you have some four-modifier monstrosities defined (as we
  unfortunately do in e.g. emojier, for technical reasons). It's even
  worse if your language has some long key names like "Leertaste", or
  constraints from long column names.

In these cases we may end up with overlapping bits, and parts of the
text or even actual buttons that are off-screen.

In principle, we could fix this just by adding Layout.fillWidth in a
couple of strategic places and allowing things to elide/wrap as
necessary. But this doesn't always yield the best results because of the
layout structure.

kcm_keys has two columns here, one left-aligned and one right-aligned.
Visually, it does not make much sense to require that the header and the
contents have the same width, as it will yield unused space and
unnecessary elision.

So we switch from a RowLayout of ColumLayout to a ColumnLayout of
RowLayouts, and set fillWidth and elide as necessary.

This makes the contents always fit at all window sizes, and elides
things only if it's really necessary and we can't take unused space from
elsewhere. Some situations are still not the utmost of what is
potentially achievable, but we're talking absolute edge cases and
they're at most a little awkward, rather than obviously broken.

BUG: 525725
FIXED-IN: 6.8.0
2026-09-21 04:46:10 +00:00
Christoph Grüninger
4dee6e6659 Replace use of deprecated QVariant::canConvert
Deprecated in Qt 6.0.
2026-09-18 17:26:44 +02:00
Christoph Grüninger
4a20e56905 Replace deprecated QSqlDatabase::exec
Deprecated in Qt 6.6.
2026-09-18 17:26:44 +02:00