index desktop views by qscreen instead of id, making ScreenPool
the single source of truth for the mapping between screen names
and ids. This is less error prone and easier to consistency check
(if view->screenToFollow() is ever different to its has key it will
assert)
The whole logic of screen management is moved to ScreenPool.
ShellCorona will have to never call QGuiApp->screens, but only trust what ScreenPool it's telling it
Also adds an autotests on screenpool which makes a fake wayland server which sends screen added/removed/changed events
If libqalculate is not present on the system, calculator runner falls
back to using QJSEngine, which results in significantly reduced
precision. Make calculator runner unconditionally dependent on
Qalculate and remove conditional fallback code to QJSEngine.
BUG: 433730
Refactors XRandr support together with the new Wayland code into a
PrimaryOutputWatcher class.
For X11 it listens to xcb events.
For Wayland it uses the kde_output_management_v2 protocols.
Currently they live in the Breeze repo which is a bit weird and random
and complicates the process of updating the default wallpaper. Let's
centralize them all to live here.
Plasma had an entire text editor for the script engine in process.
The method for loading this was very convoluted, it loaded a QML file
(in plasma-desktop!) which contained an Item(!) which then loaded a QML
component that showed a widget dialog.
It also means loading a very heavy lib KTextEditor in ShellComponents
which is very heavy. This will get loaded in things like the logout
greeter, which is super slow on the pinephone.
We already had the concept of evalating a script remotely, we can just
hook up the print statement and move the whole executable out.
Technically this is an API break on the plasmashell DBus API, but
pragmatically going from void -> something on the return type isn't
going to break anything.
This was added to Kirigami in
https://invent.kde.org/frameworks/kirigami/-/merge_requests/314
and simplifies and standardizes the creation of simple text-based
headers in OverlaySheet. This commit ports the Translations KCM's
OverlaySheet header to use it. This is the only place in
plasma-workspace where such a port is appropriate.
Those were messed up in the clang-format reformatting, but there weren't
any complaints about the template not working.
Also the dataenines are about to be deprecated and still need a
replacement. Consequently we should not encourage users to write
third-party dataengines.
The toplevel menu is positioned using the plasmashell protocol.
For QtWayland to create popups we need a input serial. The input serial
is manually set to the enter one for creating poups.
BUG:430662
FIXED-IN:5.23
KIO is important for a full plasma experience. KIOExtras especially for
the thumbnails that we use within plasma-workspace and is something we
have had reports about.
this fixes l10n integration magic from ECM (KDE_L10N_SYNC_TRANSLATIONS,
KDE_L10N_AUTO_TRANSLATIONS) that download the po dir into the build dir
for git builds.
ki18n_install is looking for po dirs and not doing anything when it
can't find any. so, by default this changes nothing. when used with the
aforementioned options it enables translation building for git builds.
for tarball builds this has no negative impact since releaseme is smart
enough to check if a cmakelists already contains the ki18n call before
append its own.
Add explicit find_package() and #include's that are required and were
pulled in by KDELibs4Support.
krdb: remove one redundant #include, KColorUtils
kcm_fonts: send dbus message directly to org.kde.KDEPlatformTheme to
'refreshFonts'
kcm_style:
- use KToolBar::emitToolbarStyleChanged() to notify of toolbar style changes
For the rest use the notifyKcmChange() private method to send the dbus
signal.
[1] https://invent.kde.org/frameworks/kdelibs4support/-/blob/master/src/kdeui/kglobalsettings.cpp#L860
It was initially designed so the systemd boot would be at compile time,
but then we ported to it being a configuration option.
A stray config option that does nothing got left.
For distributions aiming to ship the Wayland session by default, allow
the Wayland session file to be installed as "plasma.desktop". Otherwise,
revert to status quo where the X11 session is installed as "plasma.desktop".
This time around, ensure that CMake stanza is correctly filled out.
This fixes commit b93a06395e.
This reverts commit a6b2891186.