Commit graph

3245 commits

Author SHA1 Message Date
Ivailo Monev
d5f68610e6 plasma: fix systemtray deadlock
the applet has to be disconnected because when the applet is destroyed (by
the qDeleteAll() call) it triggers layout update

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-21 20:36:05 +03:00
Ivailo Monev
e728419f56 plasma: update systemtray layout on ksycoca database change
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-21 20:25:27 +03:00
Ivailo Monev
44fb15030c plasma: include now required header
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-21 20:24:45 +03:00
Ivailo Monev
20daf2594c plasma: check popup status of applets in systemtray applet
this is special case for (notably) passive popups (such as the
notifications applet which has not only automatic popup but also sticks
until deactivated), to do that optimally a signal from
Plasma::PopupApplet::popupEvent() may be emitted in the future so that the
popup status is not checked on timer.

on a side note the old systemtray applet did not handle that case properly
and the notifications applet was not hidden sometimes

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-21 14:44:48 +03:00
Ivailo Monev
e739972e60 kwin: remove unused headers inclusions
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-21 13:27:34 +03:00
Ivailo Monev
83537ded01 kwin: adjust expected data in tests
for reference:
2546775b58

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-21 13:16:22 +03:00
Ivailo Monev
4b3d2080e9 kwin: KWin::PaintData optimization
QGraphicsScale and QGraphicsRotation are for use with QGraphicsItem, have
signals and more setters and getters than KWin::PaintData needs making its
use in KWin::PaintData sub-optimal

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-21 13:14:20 +03:00
Ivailo Monev
e51cf82b56 plasma: create systemtray applet arrow icon on layout update
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-21 08:48:02 +03:00
Ivailo Monev
1cad595824 generic: drop scripting support
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-21 08:14:30 +03:00
Ivailo Monev
ebcdc394b2 plasma: implement configuration interface for tasks applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-09 02:11:57 +03:00
Ivailo Monev
51928a9c9e plasma: update the task pixmap only when the new icon is valid in tasks applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-09 00:28:57 +03:00
Ivailo Monev
4ec9f571ca plasma: magic bits to stretch tasks applet icons
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-05 09:01:48 +03:00
Ivailo Monev
e76a6f4e4b plasma: a bit more precise pager applet hint
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-05 08:24:25 +03:00
Ivailo Monev
25d282baa2 plasma: update geometry of pager widgets on layout orientation change
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-05 06:35:55 +03:00
Ivailo Monev
62d5c18fb2 plasma: move tasks applet bits related to size hint
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-05 06:28:26 +03:00
Ivailo Monev
bc637ba672 plasma: rename PagerApplet::updatePagers() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-03 10:58:35 +03:00
Ivailo Monev
caa4b6c660 plasma: hide tasks instead of re-creating on virtual desktop switch
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-03 10:58:14 +03:00
Ivailo Monev
b761e17212 plasma: pager painting optimization
there was QRectF->QRect->QRectF conversion

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-03 10:07:58 +03:00
Ivailo Monev
b2bbc6fa88 plasma: do not save and restore painter state in PagerSvg::paint()
nothing is painted after the text

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-03 10:03:44 +03:00
Ivailo Monev
bd3f60eb10 plasma: redo pager and tasks applets
nothing is final between releases - it's development cycle. the pager
applet now does verticals tho

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-03 09:47:24 +03:00
Ivailo Monev
a41b8a8bcd plasma: set the initial notifications applet status from the main applet class
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-03 05:36:45 +03:00
Ivailo Monev
68cd65f027 plasma: remove the notifications applet frames from the list before animating the remove
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-03 05:36:17 +03:00
Ivailo Monev
60f518155d libs: do not emit KTaskManager::taskAdded() signal from KTaskManagerPrivate constructor
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-03 03:30:03 +03:00
Ivailo Monev
942581ee78 plasma: call KTaskManager::activateRaiseOrIconify() as static method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-03 03:25:45 +03:00
Ivailo Monev
3fc39c284f libs: remove unused headers inclusions
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-03 03:25:19 +03:00
Ivailo Monev
057b58b76d libs: rework KTaskManager to not cache information other than the window ID
otherwise the name and desktop number have to be refreshed each time a task
window changes and that information may or may not be used in, say, the
pager applet

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 22:15:46 +03:00
Ivailo Monev
9964857908 plasma: remove redundant Q_UNUSED() in RecentDocuments constructor
the args constant is passed to Plasma::AbstractRunner constructor

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 21:33:23 +03:00
Ivailo Monev
8a198d991d plasma: recentdocuments runner optimization
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 21:31:33 +03:00
Ivailo Monev
18fbb354cf plasma: note that the maximum size can also be used as workaround in PagerApplet::updatePagers()
either the preferred or maximum but the preferred is used in that case

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 21:24:12 +03:00
Ivailo Monev
b4d3a53cf3 libs: convert convenience KTaskManager methods to static
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 21:20:28 +03:00
Ivailo Monev
c0c8ad2e60 libs: do not emit KTaskManager::taskChanged() signal on active window change
was used to repaint the tasks applet widgets but no more

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 21:16:46 +03:00
Ivailo Monev
a55afc6fb8 libs: remove now unused KTaskAction methods
not going to duplicate the functionality of window decoration and window
manager

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 07:15:54 +03:00
Ivailo Monev
8d96c97af6 plasma: drop windowlist applet
and showdesktop is next, the pager applet does not only virtual desktop
switching, tasks actions (e.g. iconify/minimize) but also has the only
feature showdesktop has (except it does it on middle-mouse button)

oh, yes - using virtual desktops for grouping tasks is a thing now
(somewhat similar to the old task manager library grouping feature)

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 07:07:44 +03:00
Ivailo Monev
ebaf50efee plasma: workaround layout weirdness in pager applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 06:40:17 +03:00
Ivailo Monev
eea341460b plasma: use image for the pager arrow based on the applet location
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 05:25:15 +03:00
Ivailo Monev
3f677f81ca plasma: adjust preview activation bits, preparation for showing unfitting tasks in a dialog
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 02:24:44 +03:00
Ivailo Monev
9b2d5c06a9 plasma: update pagers layout incrementally, animate icons
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-10-02 00:32:14 +03:00
Ivailo Monev
ebd427394b plasma: merge tasks applet into the the pager applet
why have one taskbar when I can have one for each virtual desktop? here
is how it looks:
https://ibb.co/TbNT2mC

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 23:37:54 +03:00
Ivailo Monev
cce8577a40 plasma: show preview of windows based on the X11 timestamp in pager applet
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 17:26:13 +03:00
Ivailo Monev
eaefa8595f plasma: update pager applet tooltips on KTaskManager::taskChanged() signal
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 17:01:46 +03:00
Ivailo Monev
9e2b0ef99f plasma: implement interactive windows preview for pager applet
wasn't a thing before, is now

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 16:57:52 +03:00
Ivailo Monev
45dbe71270 plasma: enable antialising for the pager applet painter
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 16:37:04 +03:00
Ivailo Monev
6597b84e93 libs: remove unused KTaskManagerPrivate::slotActiveWindow() argument
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 16:13:53 +03:00
Ivailo Monev
d917321a5d generic: use zero as minimum space for spacers
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 16:10:41 +03:00
Ivailo Monev
ba2d235f76 plasma: apply gray effect to task icons in tasks applet
that was not a thing before, is now

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 16:03:32 +03:00
Ivailo Monev
2546775b58 kwin: create two virtual desktops by default
there may be other hardcoded number somewhere else

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 15:51:20 +03:00
Ivailo Monev
50aab9bc48 plasma: drop the option to hide the pager applet when there is only one virtual desktop
also tweaked it for such case, soon the virtual desktops will be 2 by
default

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 15:46:08 +03:00
Ivailo Monev
6f5c67ed4a kcontrol: adjust launch KCM to the tasks manager changes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 15:24:24 +03:00
Ivailo Monev
d158170c10 libs: implement KTaskManager::demandsAttention() and handle transient window in KTaskManager::isActive()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 15:13:35 +03:00
Ivailo Monev
54bd23f900 libs: drop startup feature of KTaskManager
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2023-09-29 15:07:00 +03:00