Commit graph

2886 commits

Author SHA1 Message Date
Ivailo Monev
119bf184de kioslave: create absolute lock file for the trash kioslave
otherwise it is affected by the current directory of the slave process

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-08 03:22:15 +03:00
Ivailo Monev
ec442d8ad1 kcontrol: stub keyboard KCM keyboard layout options
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-08 02:38:02 +03:00
Ivailo Monev
54df6ed55d Merge branch 'master' of ssh://bitbucket.org/smil3y/kde-workspace 2023-09-08 02:14:40 +03:00
Ivailo Monev
e7a2d4f45b kcontrol: use automatic initial size for KCMKeyboardDialog
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-08 02:13:42 +03:00
Ivailo Monev
9bf1356cfd plasma: remove TODO related to devicenotifier applet
done, see fcc96cd259

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-08 01:26:54 +03:00
Ivailo Monev
efc37e8962 kcrash: do not use KDialog::makeStandardCaption() for creating the KCrashDialog window title
with no flags KDialog::makeStandardCaption() returns the original string

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 23:46:06 +03:00
Ivailo Monev
3e469d96f0 solid: set the SolidUiDialog device label text to similar one prior to d477598c1d
except with correct new-line tag

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 22:50:52 +03:00
Ivailo Monev
7065198d98 kcontrol: add solid action files for mouse, keyboard and joystick devices
try plugging a mouse, keyboard or joystick - see what happens!

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 22:20:37 +03:00
Ivailo Monev
e278cad3ca plasma: update devicenotifier layout on Solid::DeviceNotifier::contentChanged() signal
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 21:31:10 +03:00
Ivailo Monev
6bcd2411b5 plasma: handle optical drives in devicenotifier applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 20:33:53 +03:00
Ivailo Monev
f5c76ec052 plasma: adjust the devicenotifier widget size after clear
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 11:12:08 +03:00
Ivailo Monev
fcc96cd259 plasma: implement configuration interface for devicenotifier applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 10:57:44 +03:00
Ivailo Monev
140e8a8113 plasma: adjust defaults to the devicenotifier applet changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 10:29:23 +03:00
Ivailo Monev
fb8433665b plasma: add interactive icon for unmounting from devicenotifier applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 10:23:32 +03:00
Ivailo Monev
33908835cf plasma: check device emblems based on Solid::StorageAccessaccessibilityChanged() signal in devicenotifier applet
side note: because there is no signal for free space change it is checked
on timer

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 09:51:30 +03:00
Ivailo Monev
5ab7fa5735 plasma: use scroll widget as base graphics widget for devicenotifier applet
because if non-removable devices are shown things may not fit on the screen

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 09:30:32 +03:00
Ivailo Monev
d477598c1d generic: device notification reimplementation
how does it look? something like this:
https://ibb.co/1zbDVpk

and because all the SolidUiServer bits are written by me now - copyright
it to me. the actions dialog was not operational btw (not for hotplug
events anyway).

the solidautoeject thing does not even make sense - when the eject
button is pressed it was calling Solid::OpticalDrive::eject() but if the
button is pressed the tray will eject anyway so what was it doing
actually?

solid-device-automounter can be replaced with solid actions but the
devices are mounted for solid actions anyway so dropping it

as for KCM for the solid actions - there can be none but to add features
such as non-interactive actions (e.g. launch the keyboard KCM when a
keyboard is plugged without poping dialog) or actions that do something
on device removal it has to be done anew

note that the action file for opening a file manager was named
"test-predicate-openinwindow" meaning it was a testing thing rather than
a finished thing

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-07 05:47:54 +03:00
Ivailo Monev
7c6d3bcb45 plasma: create batterymonitor applet widget and keyboard applet layout from constructors
Plasma::Applet::init() and Plasma::Applet::constraintsEvent() may be called
in order such that the members were not created yet

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 22:17:22 +03:00
Ivailo Monev
388eeea355 plasma: handle generic device search in solid runner
side note: the places runner may also add matches for the removable devices
because the places implementation handles them as bookmarks (the devices
in the dolphin places panel are bookmarks!
see kdelibs/kfile/kfileplacesitem.cpp)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 20:15:50 +03:00
Ivailo Monev
e0985f16cf plasma: filter duplicates and fix listing of optical drives in solid runner
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 19:30:22 +03:00
Ivailo Monev
c4ef054ebd Revert "plasma: plug keyboard applet memory leak"
This reverts commit b77b83565f.
2023-09-06 19:10:05 +03:00
Ivailo Monev
d1874e4964 plasma: create Plasma::Svg on the heap in KeyboardApplet::paintInterface()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 18:59:07 +03:00
Ivailo Monev
ff2486c1bb plasma: translate solid runner comment to bg
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 05:32:10 +03:00
Ivailo Monev
ae6e4b8808 plasma: additional note about kSolidActionCommand() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 05:21:25 +03:00
Ivailo Monev
52a83a7bad kcontrol: disallow adding duplicate layouts from keyboard KCM
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 05:16:23 +03:00
Ivailo Monev
c402bff997 kcontrol: remove redundant KCMKeyboard destructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 04:02:42 +03:00
Ivailo Monev
cc7fd6b174 kcontrol: remove declaration of non-existing KCMKeyboardDialog::save() signal
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 04:01:34 +03:00
Ivailo Monev
343749034c kcontrol: remove declaration of non-existing KCMKeyboardDialog::updateWidgets() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 04:00:21 +03:00
Ivailo Monev
b77b83565f plasma: plug keyboard applet memory leak
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 03:51:50 +03:00
Ivailo Monev
6ca60e84b5 plasma: reimplement the solid runner
using solid directly and not depending on soliduiserver for the actions,
now the hotplug and devicenotifications data engines aswell as the
devicenotifier applet can be reimplemented too

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-06 03:35:02 +03:00
Ivailo Monev
271ffadb7b plasma: remove unused SolidRunner member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-05 22:39:01 +03:00
Ivailo Monev
f0427c4a8e plasma: format and indent
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-05 22:36:09 +03:00
Ivailo Monev
e74152d243 kcontrol: fix keyboard KCM edit action initial variant selection and up/down buttons state
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-05 21:33:17 +03:00
Ivailo Monev
6d76faf469 kcontrol: implement add and edit actions for keyboard KCM
TODO: store the descriptions in KKeyboardLayout such that when adding items
to, say, QComboBox the items will be pre-sorted

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-05 20:54:51 +03:00
Ivailo Monev
5f2c455590 kcontrol: set layouts before key repeat settings on startup
in case any XKB-related function fails (such as XkbAllocKeyboard())

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-05 19:41:16 +03:00
Ivailo Monev
23222eff52 plasma: add the keyboard applet from the systemtray applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-05 19:03:29 +03:00
Ivailo Monev
39998c92dc plasma: set the keyboard applet status based on the number of keyboard layouts
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-05 19:03:05 +03:00
Ivailo Monev
b5b873c2b3 generic: keyboard layout applet and kayboard KCM reimplementation
lots of changes with this commit - on the plasma applet side:
 + the applet now handles mouse wheel events
 * the applet itself sets its global global shortcut key
 + the applet itself has configuration interface for the text and flag options
 * ported to the new KKeyboardLayout class
 - no per-window or per-application keyboard layout

on the overall keyboard configuration:
 * no KDED module required
 + keyboard layout descriptions (model, layout, variant, etc.) are actually translated
 - no keyboard configuration will be shown when a keyboard is plugged-in (see bellow)
 - keyboard layout options are not configurable, not via GUI interface anyway

the hotplug plasma data engine, device notifications and solid actions
have to be either reimplemented or extended to handle more device types
(currently the above mentioned handle only removable devices by default
such as cameras, not input devices such as keyboard)

overall - from reimplemented one thing to another and the keyboard
configuration is not done yet (adding and editing keyboard layout not
implemented yet) but in a working state

on a side note the changes here affect kvkbd as it uses D-Bus interface
for keyboard layout change that is no more and has to be ported or (most
likely) replaced with a handler for QEvent::RequestSoftwareInputPanel
event that shows a keyboard on demand

there is also the double-keyboard layout applet thing - applet for the
keyboard layout could be added and the daemon (KDED module) was showing
its own keyboard layout indicator automatically (by default)

the X11 keyboard bell options are next to useless btw - there is
KNotification::beep() for such things so the X11 bell options are
simply dropped

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-05 18:12:13 +03:00
Ivailo Monev
620a7a1136 generic: handle the new Solid::Input interface
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-03 20:26:24 +03:00
Ivailo Monev
937cbc813b plasma: validate the active battery when battery is added or removed in batterymonitor applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-03 16:25:07 +03:00
Ivailo Monev
3dd51351b8 plasma: keep references to the battery devices in batterymonitor applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-03 16:14:37 +03:00
Ivailo Monev
13490a1a02 plasma: use the theme battery icon in batterymonitor applet, if available
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-03 06:43:55 +03:00
Ivailo Monev
63bd660c21 plasma: validate the active battery when restoring it in batterymonitor applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-03 05:04:43 +03:00
Ivailo Monev
1c9ce16bb2 plasma: save and restore the active battery of batterymonitor applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-03 03:06:13 +03:00
Ivailo Monev
b2ae704740 plasma: delay initial batterymonitor applet layout setup
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-03 02:17:33 +03:00
Ivailo Monev
148a3f836a plasma: set the batterymonitor applet preferred widget icon size to one suitable for panel
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-02 22:49:45 +03:00
Ivailo Monev
ae8f7c65eb plasma: mark the batterymonitor applet as requiring attention when the battery is low and discharging
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-02 22:27:43 +03:00
Ivailo Monev
689e15e40b plasma: reimplement battery applet
now with separate options for screen and sleep power management
suppression as well as being able to select which battery to show
information (including icon) for in the tray:
https://ibb.co/DDC01rh

the battery icon is questionably bigger than it should be, have to test
it with battery that is recognizable still (PS3 controller battery
provides only capacity and status info)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-02 22:18:05 +03:00
Ivailo Monev
3187c6f825 plasma: query for batteries via solid directly from systemtray applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-02 17:38:42 +03:00
Ivailo Monev
221aca19c1 libs: query for batteries via solid directly from WorkspaceScripting::AppInterface::hasBattery()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-02 17:17:23 +03:00