BasicPlasmoidHeading: Optimize loop
PlasmaExtras/Representation: Port away from removed ScrollArea
BasicPlasmoidHeading: Optimize loop
Factor out fetching "configure" action, and port to for-of syntax.
BasicPlasmoidHeading: Delegate action visibility to MenuItem
PlasmaExtras.MenuItem is capable of synchronizing its visibility to its QAction's visibility, so let's use that and avoid rebuilding model.
BasicPlasmoidHeading: Port loop to simple array filter
BasicPlasmoidHeading: Port delegate to required modelData
BasicPlasmoidHeading: Port away from plasmoid context property
Amends c3363a5c
BasicPlasmoidHeading: Drop redundant and contradictory visibility bindings
The inverted condition is bound to the root component's visibility, so it makes little sense repeating it in child items. With non-inverted condition bound to Heading, there was no way that heading was ever visible.
BasicPlasmoidHeading: Fix "configure" button's bindings
Mainly, binding on visibility was wrong for two reasons at once:
- Visibility is an implicitly propagated property, so what you read may not be what you wrote;
- Using other property as a guard sub-expression is not reliable due to unspecified order of signal propagation: dependent property may have not updated yet when its consumer already re-evaluates its binding using stale value as a guard.
BasicPlasmoidHeading: Subscribe to "configure" action updates
Some applets replace "configure" action with their custom thing. For such applets is it important either to have strong guarantees that the action will be fetched by a ToolButton strictly after the replacement, or have the button subscribe to changes at runtime (which is way more reliable in any case).