Commit graph

144 commits

Author SHA1 Message Date
Laurent Montel
bc6116c5a7 There's no QVector anymore, QList is the QVector in Qt6 2023-10-19 13:43:53 +00:00
Alexander Lohnau
48b11337a9 Remove Version from plugin metadata
The plugins are shipped as part of KWin. Thus having a version separate from the KWin version specified doesn't make sense
2023-10-16 16:12:43 +00:00
Alexander Lohnau
27863b09ae Remove X-Plasma-MainScript from KPackage plugins 2023-10-16 16:12:43 +00:00
Nicolas Fella
684595dab7 tabbox: Simplify loading switcher from KPackage
Let KPackage to the hard work
2023-09-28 08:15:54 +00:00
Fushan Wen
dded168d93 thumbnail_grid: use MouseArea as delegate root 2023-09-11 15:59:49 +00:00
Fushan Wen
463c18f9fa thumbnail_grid: allow screen reader to announce window name when pressing Alt+Tab
CCBUG: 472643
2023-09-11 15:59:49 +00:00
Vlad Zahorodnii
14ab38b596 composite.h -> compositor.h 2023-09-08 09:48:59 +03:00
Nate Graham
8727fcb752 Remove versioning from PlasmaCore module imports
It's unneeded in Qt6 and can cause subtle issues.
2023-09-05 09:33:14 -06:00
Nate Graham
07773512c8 tabbox/switchers/thumbnail_grid: remove unnecessary second Math.round()
Fixup for 996730d3
2023-08-31 07:38:02 -06:00
Nate Graham
996730d310 tabbox/switchers/thumbnail_grid: refine icon positioning
This way it won't overlap the label when using a font with unusual
metrics.

BUG: 473690
2023-08-30 15:17:26 -06:00
l10n daemon script
56ff7fd240 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-14 02:13:18 +00:00
Xaver Hugl
74f10d0cdf port most uses of the reset(new ...) pattern to std::make_unique 2023-08-11 15:58:15 +02:00
Nate Graham
ade934a9d1 Port to Kirigami.Icon
Part of https://invent.kde.org/plasma/plasma-workspace/-/issues/82.
2023-07-31 16:29:49 +00:00
Nate Graham
6a25deed28 Revert "Port to upstream QML components where possible"
This reverts commit fd04fe04c0.

This change wasn't technically wrong, but presents an awkward developer
API until the point where we can port *all* PlasmaComponents to their
upstream QQC2 versions, and as such, it was premature.
2023-07-28 10:17:58 -06:00
Nate Graham
fd04fe04c0 Port to upstream QML components where possible
Basically:
- PlasmaExtras.Heading -> Kirigami.Heading
- PlasmaComponents3.Label -> QQC2.label

We can do this because these components only existed in the past to use
special Plasma colors, but no visual styling. And the color stuff is
obsolete because Kirigami colors work correctly in Plasma now.

Everything was tested with a dark Plasma theme and a light color scheme
to ensure no regressions.
2023-07-28 12:58:20 +00:00
l10n daemon script
239266c13e 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-24 09:49:25 +00:00
Laurent Montel
b823747c3b Add explicit moc includes to sources for moc-covered headers
* speeds up incremental builds as changes to a header will not always
  need the full mocs_compilation.cpp for all the target's headers rebuild,
  while having a moc file sourced into a source file only adds minor
  extra costs, due to small own code and the used headers usually
  already covered by the source file, being for the same class/struct
* seems to not slow down clean builds, due to empty mocs_compilation.cpp
  resulting in those quickly processed, while the minor extra cost of the
  sourced moc files does not outweigh that in summary.
  Measured times actually improved by some percent points.
  (ideally CMake would just skip empty mocs_compilation.cpp & its object
  file one day)
* enables compiler to see all methods of a class in same compilation unit
  to do some sanity checks
* potentially more inlining in general, due to more in the compilation unit
* allows to keep using more forward declarations in the header, as with the
  moc code being sourced into the cpp file there definitions can be ensured
  and often are already for the needs of the normal class methods
2023-07-15 08:40:49 +00:00
l10n daemon script
bf50cc2b67 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-14 02:33:35 +00:00
Daniel Lipovetsky
b31baaf0cd tabbox: Show window switcher only when there are two or more windows
Previously, we showed the window switcher even if there was only one
window, or no windows.

Now, we show the window switcher only if there are two or more windows.
Note that "desktop" counts as a window when the switcher's "show desktop
mode" is enabled.

BUG: 370396
BUG: 419408
2023-07-04 13:38:30 +00:00
Daniel Lipovetsky
a02f09250d tabbox: Add desktop window to client list only if "show desktop mode" enabled
Previously, we always added the desktop to the client list when the list
was empty. We added it even if the switcher's "show desktop mode" was
disabled.

Now, we only add the desktop to the client list if the switcher's "show
desktop mode" is enabled.
2023-07-04 13:38:30 +00:00
l10n daemon script
5dbe7d7adc 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-23 02:33:21 +00:00
Marco Martin
569e0f8f64 Port to KSvg
port Svg and FrameSvg items to KSvg
2023-06-21 15:16:39 +00:00
l10n daemon script
9c90e04c3c 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-19 02:36:02 +00:00
Laurent Montel
ba3bfbf4be Port PlasmaCore.Theme/ColorScope/Units etc to Kirigami
see https://pointieststick.com/2023/06/14/call-to-action-easy-porting-opportunity-in-plasma/
2023-06-16 14:39:21 +00:00
l10n daemon script
280bfa3172 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-15 02:29:07 +00:00
l10n daemon script
d75149c7b1 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-08 02:29:50 +00:00
l10n daemon script
7349ba41f9 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-07 02:37:32 +00:00
l10n daemon script
24a5290ed2 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 02:34:13 +00:00
l10n daemon script
ba157fc3a7 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-23 03:29:49 +00:00
l10n daemon script
33fb2ccc40 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-22 02:23:28 +00:00
l10n daemon script
a7b6071f6b 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-20 02:20:24 +00:00
l10n daemon script
f720cf699b 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-17 02:20:11 +00:00
l10n daemon script
aa5e8612d0 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-15 02:17:59 +00:00
l10n daemon script
02df2c54a2 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-14 02:42:46 +00:00
l10n daemon script
fd67dd7b89 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-11 02:19:09 +00:00
l10n daemon script
47cb5c144e 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-10 02:21:31 +00:00
l10n daemon script
d5a52be6d7 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-09 02:28:24 +00:00
Nate Graham
059fade8e2 tabbox: Implement some more VDG feedback for Thumbnail Grid
Use a ToolButton rather than a Button for the close icon to reduce
unnecessary visual weight, and move it outwards so that its frame
touches the inner edge of the selection rectangle. Looks a bit nicer and
less attention-getting.
2023-05-08 16:46:59 +02:00
Nate Graham
07279bf541 tabbox: make Thumbnail Grid active item's text bold
This makes it follow a common KDE convention of using bold text to
indicate which item in a set is active or current. Doing it here too
helps direct visual attention to the selected item, improving speed of
interaction.
2023-05-08 16:00:08 +02:00
Nate Graham
3ca1fc800d Make "Thumbnail Grid" the default Task Switcher and make it live here
Per https://invent.kde.org/plasma/plasma-desktop/-/issues/53, we're
making an overhauled version of the Thumbnail Grid Task Switcher the
default one in Plasma 6.

Currently the default Task Switcher is specified as the "Breeze" Task
Switcher which isn't ideal since it doesn't live in this repo, and it's
possible to use KWin without Plasma, where it does live.

So as a part of making Thumbnail Grid the new default Task Switcher,
let's also move it here so that KWin's default Task Switcher is always
available.

This commit grabs the Thumbnail Grid Task Switcher verbatim from where
it currently lives in the kdeplasma-addons-repo as of commit
54d16f44a56530854444b844536933a3107ef8a6.

BUG: 433034
FIXED-IN: 6.0
2023-05-08 12:12:15 +00:00
Ismael Asensio
e0ba7b4086 TabBox: Fix automatically hiding initialization
It was initialized to different values in the header and
in the constructor. Let's remove one of them to avoid
the confusion

AMENDS: 9d8d7e28a1
BUG: 469412
FIXED-IN: 6
2023-05-06 16:29:01 +02:00
Ismael Asensio
9d8d7e28a1 TabBox: Allow switchers to handle the tabbox hiding
Previously, the switcher item got hidden immediately after
selecting a window, so it wasn't possible to show an exit
transition.

Emit instead an `aboutToHide` signal and let the switchers
that opt-in to handle when to hide the tabbox by just setting
its `visible` property to `false`. In the default case we handle
that signal by immediately hiding the tabbox as usual.

For symmetry, add also a new `aboutToShow` signal which
simplifies setting an enter transition.
2023-05-05 18:40:35 +02:00
Nate Graham
98198dc77a tabbox: fall back to "compact", not "informative"
Informative is being deleted in Plasma 6 because it's worse than
Compact; see
https://invent.kde.org/plasma/plasma-desktop/-/issues/63#note_592077
2023-05-05 15:57:09 +02:00
Vlad Zahorodnii
0d11a09010 tabbox: Port away from Window::desktop 2023-03-30 18:42:28 +00:00
Vlad Zahorodnii
e306e1b287 tabbox: Port away from legacy desktop ids 2023-03-30 15:42:31 +00:00
Vlad Zahorodnii
3e766e8d5e Move Window::{frameId,window} to X11Window 2023-03-29 13:18:01 +03:00
Vlad Zahorodnii
dbbcf31d0d x11: Merge Unmanaged into X11Window
Currently, managed and override-redirect windows are split in two types:
X11Window and Unmanaged. While looking at it strictly from type
perspective, this is great. But it creates other problems, e.g. we need
to put shared X11-specific code in the base Window class or mess with
"base" classes.

As an alternative solution, this change merges the Unmanaged class into
the X11Window class and disables some functionality based on the value
of isUnmanaged().

X11Window::manage() is used to create a managed Window. X11Window::track()
is used to create an unmanaged Window.
2023-03-28 18:14:32 +00:00
Vlad Zahorodnii
c049d5afb1 tabbox: Provide raw window caption
Use "textFormat: Text.PlainText" in window switchers instead.
2023-03-25 22:47:53 +02:00
Vlad Zahorodnii
c5eabfa4d1 tabbox: Drop TabBoxClient
The indirection contributes unnecessary complexity. The usage of
std::weak_ptr and std::shared_ptr complicates the things further, e.g.

![Screenshot_20230325_170226](/uploads/d8b68a9eff47c93c4463bb230b5bbe49/Screenshot_20230325_170226.png)

---

Ideally, same should be done with TabBox and TabBoxHandler, but that can be done in another MR.
2023-03-25 20:46:54 +00:00
Vlad Zahorodnii
cf1d66ef59 tabbox: Drop support for _KDE_FIRST_IN_WINDOWLIST
LXR search shows that _KDE_FIRST_IN_WINDOWLIST is not used anywhere in
KDE codebase besides KWin.
2023-03-25 11:14:09 +00:00