Having the macro's definition of the operator| in the namespace of the
flags argument improves/unbreaks things for the argument-dependent
lookup of unqualified function names, e.g. when flags are combined in
calls of other methods, but there is some other operator| defined in the
namespace of the current code.
Given Q_DECLARE_OPERATORS_FOR_FLAGS creates inlined functions, this
should be a source and binary compatible change.
Qt did similar for Qt 5.12 in
https://codereview.qt-project.org/c/qt/qtbase/+/225348
if KDeclarative::runtimePlatform() is set, then filter applets
that have formfactors set and don't match, in order to not
show on the phone applets that are desktop only
in desktop case, list all applets, for maximum retrocompatibility,
to be reconsidered for kf6
Compare API dox of Q_DECLARE_METATYPE:
"
Some types are registered automatically and do not need this macro:
* Pointers to classes derived from QObject
* QPointer<T>, QSharedPointer<T>, QWeakPointer<T>,
where T is a class that derives from QObject
"
This is a ABI-compatible change, as this just replaces explicitly
defined template code (by the Q_DECLARE_METATYPE macro use) with the
generic predefined one picking up pointers to QObject subclasses.
So instead of the custom explicitly template overload
template <>
struct QMetaTypeId< TYPE >
{ /**/ static int qt_metatype_id() {/**/} };
the predefined template overload one is picked up via
template <typename T>
struct QMetaTypeId : public QMetaTypeIdQObject<T>
{ /**/ };
template <typename T, int =
QtPrivate::IsPointerToTypeDerivedFromQObject<T>::Value ?
QMetaType::PointerToQObject :
/**/ 0>
struct QMetaTypeIdQObject
{ /**/ };
template <typename T>
struct QMetaTypeIdQObject<T*, QMetaType::PointerToQObject>
{ /**/ static int qt_metatype_id() {/**/} };
And thus the constexpr code using QMetaTypeId<T>::qt_metatype_id(),
for which all this is done, evaluates as before.
GIT_SILENT
relay->checkQueueing emits a signal to all observers. As it's a signal
anything can happen at that point. It's seemingly common for a receiver
to connect/disconnect a new visualisation which in turn alters
d->relays.
This broke when a foreach (with implicit shallow copy) was ported to a
for statement.
This report contains a good analysis and test case
BUG: 422973
Probably also:
BUG: 421392
BUG: 423713
BUG: 423776
BUG: 422230
BUG: 423081
Summary:
Before icons loaded internally with QIcon::fromTheme were being colored with the
colors from the current global color scheme instead of the ones from the current
Plasma Theme. Leading to visual bugs when the two differ. This happened because
KIconLoader uses the global color scheme by default.
A prominent case is the notification send by the network plasmoid when one
successfully connected to a wireless network. It sets the icon
"network-wireless-on" which is not included in Breeze icons (but is included in
Breeze Plasma Theme). If the current icon theme is indeed Breeze, IconItem
resorts to using QIcon::fromTheme and we end up with a wrong colored
"network-wireless" icon.
BUG: 417780
Test Plan:
{F8125752}
{F8125753}
Reviewers: #plasma, cblack, ngraham, mart
Reviewed By: #plasma, cblack, ngraham, mart
Subscribers: mart, wbauer, cblack, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D27589
The deprecated constructor taking a KPluginInfo unconditionally calls toMetaData() and then asserts.
BUG: 417548
Differential Revision: https://phabricator.kde.org/D27366
Summary: Instead of relying on the older KPluginInfo which is slower (parses de metadata twice) and comes from a much higher tier.
Test Plan: Running plasmashell with it
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: kossebau, broulik, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D23682
Summary:
KDeclarative::setupBindings() is deprecated, replaced calls with its
implementation (setupContext + static setupEngine call), but see comment
about whether we can be sure this is done only once per engine, as
requested by the setupEngine API. It's 100% equivalent to the old code
though, can't be worse.
KPackage::contentsHash is deprecated, replaced call with implementation.
Depends on D25433 for the KActionCollection::changed signal.
Test Plan: Builds
Reviewers: mart, davidedmundson, broulik, apol
Reviewed By: apol
Subscribers: apol, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D25434
Summary:
Applet is the more proper way to do it (and will make easier porting
to KF6) this also make it possible for the scripting interface to
access userBackgroundHints
Test Plan: everything behaves the same in plasmashell, the background button in the handle works
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D25742
Summary:
add the ability for the user to override the background hints anddecide
about applets having background or a shadow
A new handle button will be added to manually enable/disable background for
plasmoids that support it
if they don't, the ImmutableBackground flag is set in the hints.
PlasmaCore.ColorScope has been expanded to work more like Kirigami.Theme (which will be replaced by) even if it's oòld behavior still works. This makes the complementary colorscope in applets with shadow actually work (and at the same time gives a clearer porting path for kf6)
Test Plan: Tested the functionality and correct save/restore
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, ndavis, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D25590
Summary:
- Move "Panel Options" context menu items out of submenu
- Rename "Configure Panel..." option
See M144, T10047, T10190. This makes the panel customization options much more discoverable.
Test Plan: Open the panel context menu.
Reviewers: #plasma, #vdg, mart
Reviewed By: #plasma, #vdg, mart
Subscribers: davidedmundson, ngraham, #vdg, kde-frameworks-devel, #plasma
Tags: #frameworks
Maniphest Tasks: T10190, T11094, T10402
Differential Revision: https://phabricator.kde.org/D23951
Summary: needed for the context menu entry
Test Plan: with the p-w- portion the action shows in the context menu
Reviewers: #plasma, #vdg, GB_2, ngraham, davidedmundson
Reviewed By: #plasma, #vdg, ngraham, davidedmundson
Subscribers: davidedmundson, broulik, GB_2, ngraham, kde-frameworks-devel
Tags: #frameworks
Maniphest Tasks: T10190, T11094, T10402
Differential Revision: https://phabricator.kde.org/D24263