However weird that title might sound, a lowercase `component A : B`
syntax allows us internalize any property, and even make it required
for an instantiator to provide. This no longer relies on implicit
scoping of QML.
GIT_SILENT
This is still borken as hell, because x/y were not supposed to work
inside Row/Column anyway.
PlasmaCore.Units.largeSpacing is inconsistent with Kirigami, and
actually equals to gridUnit, and 4 times as big as smallSpacing. So,
the proper replacement for a `largeSpacing / 2` (which also properly
takes care of rounding to an integer) is `smallSpacing * 2`. And the
largeSpacing itself shall be replaced with gridUnit to avoid confusion.
GIT_SILENT
Optimize previous patch that introduced extra margins for the battery's
progress bar in order to make its labels visually match the distance of
brightness sliders on top of it.
This patch moves `referenceSlider` property to the root component of
BatteryItem.qml, so that an existing item can be passed from the
outside. It keeps the default value there just in case, but it won't be
instantiated by QML engine when the property is overriden at component
declaration. (Note: this won't be true if the slider had an id set.)
Since we are defining some properties on the top-level component, we
might as well move the `extraMargin` here, so that the actual
ProgressBar component now won't have any properties on its own, and
thus QML engine won't create an extra runtime QML type just for it.
Add vertical margins to the battery progress bar, so that the distance
between colored bar and labels on top of it is the same as for the
sliders. This patch bases on assumption that sliders are always thicker
than progress bars, but guards against surprises by clamping from 0.
This also means that custom spacing of the parent ColumnLayout is no
longer needed, as it has only two children, and the equivalent Column
in BrightnessItem also has spacing set to zero.
This is done because QtQuick.Layout types are more convenient to work
with, and to avoid `with: parent.width` kind of boilerplate.
Nested RowLayout does not need Layout.fillWidth property, as that is the
default behavior for nested layout types.
GIT_SILENT
As we have discussed, this mechanism is considered Plasma-internal, meaning
that we don't have to keep the KServiceTypeTrader stuff around.
To avoid duplicating the KCMs or having to split the kcminit stuff in a separate
binary, symlinks are used to query the available plugins. By having a unified "kcminit"
symbol for the function which will get called, we can drop the need for the
custom property.
Task: https://phabricator.kde.org/T14335
Prequisite for using only embedded json metadata for the KCMs, see https://phabricator.kde.org/T14517
This matches what kwin's effects have always been searching for. It only
used to appear to work as "ksmserver ksmserver" was checked in previous
versions.
BUG: 444898
BUG: 444899
Due to async nature of QDBusPendingReply, services could be already
registered by QDBusServiceWatcher when the pending reply takes a long
time to finish, so it's possible that QDBusServiceWatcher::serviceRegistered
signal is emitted before the pending reply emits QDBusPendingCallWatcher::finished,
which will make the same service added twice and crash plasmashell.
We need to check if a service is already added in m_sniServices before
processing registered items in QDBusReply.
BUG: 443961
Otherwise we exit and KRunner runner into a long timeout.
By making this a dedicated DBus error KRunner can also know, that this
runner can not be started. Consequently making new attempts to query
this runner can be prevented.
Because the runner is DBus-Activated, we can not exit the process, otherwise other
processes (like the search in the app launcher) will have the same issue with the timeout.
BUG: 445342