Currently we are very inconsistent with how we handle our various X11 dependencies.
Some places check whether specific sub-libraries are found and disable parts of the code accordingly.
Sometimes this is controlled by whether X11 is found at all, sometimes it depends on the sublibrary being present.
Some of this is obviously broken, e.g. in one like we check whether X11 is there and then use it unconditionally a few lines down.
Instead of the current system of optional deps and deps being conditional on other deps I propose that we introduce an explicit build option that controls the X11 support.
If on (the default) then all X11 libs are required.
If off then no X11 libs are searched for. Currently this results in a broken build since some places use X11 stuff unconditionally, but it gives us an easier way to test and fix those cases.
- This patch enables LookNFeel KCM to load and
unload latte layouts on demand when a looknfeel package
is applied from the user. Designers can include
in their package a `layouts/looknfeel.layout.latte` textfile
if they want a specific layout from Latte. In such case
Latte is also enabling its autostart.
- In case the looknfeel package does not contain
the previous mentioned latte layout file then we
can safely assume that the user does not want Latte
at all and in such case Latte quits and is removed
from autostart.
- In order to apply or not the latte layout the user must
have chosen to update the desktop layout from the relevant
ui checkbox.
- This patch to work needs at least `Latte Dock >= 0.10.5`
- If the Latte requirement is not met then the user
will not observe any changes.
Instead listen to KNS signals and only update the parts that are needed.
The signals from the qtquickengine also produce less unwanted noise
because the signal does not get emitted for intermediate states.
This also prevents the scrolling position from scrolling unnecessarily
to the top.
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
This matches the install location scheme QT_PLUGIN_DIR/kcms/, which makes
it slightly easier to test stuff right from the builddir, without
installation, by exporting QT_PLUGIN_DIR=builddir/bin/.
Also install kcm_fontinst in QT_PLUGIN_DIR/kcms/, like the other KCMs.
Making it a library instead of including the source from multiple places
has several advantages. We get proper dependency and include path
propagation. We can specify the krdb dependencies once instead of
repeating them for each kcm. This allows for a better separation between
the KCM's actual dependencies and krdb's dependencies.
This adds a small cli helper tool which allows you to list what Plasma
themes are available on the system (and which is the current one), as
well as letting you set a theme as the current. It handles being passed
a full path to the theme, though when that happens it just uses the last
bit of the path as the name of the theme.
The latter part allows it to be used by KNewStuff as an adoption
command, and the changes to the knsrc file makes that happen. There is
also a small change which fixes a discrepancy in the naming of the
Plasma Themes dialog, making it consistent with everywhere else that
references Plasma Themes (not sure why they were called styles here,
guessing a really old copy/paste thing).
Additionally, a similar tool for the color and cursor KCMs are also added by
this patch, and the lookandfeeltool binary built by the global themes kcm is
also modified slightly to accept a full path to a package, and added as
an adoption command for those.
The patch also adds a tool which sets wallpapers, which replaces the
failure-prone dbus command previously used as the kns adoption command.
We currently need the lookandfeel and style kcm in plasma-workspace, but
appearantly they depend on the krdb so best solution is to move all kcms
together
They are taken from plasma-desktop at the commit :
8447c08e878ccbde9c5516ba8a912993ea199cb9