[System Tray] Introduce "effectiveStatus" property and update visibility only…

Authored by broulik on Feb 8 2017, 4:25 PM.

Description

[System Tray] Introduce "effectiveStatus" property and update visibility only when that changes

Instead of calling it in response to any of the properties it depends on.

This also saves some calls to this function on startup (80 instead of 90 for me with 14 tray icons)
and keeps plasmoids from shifting around just because their status changed from e.g. Active
to AcceptingInput (like touchpad when it asks for whether you really want to disable touchpad
with no mouse attached) although the item's effective visibility didn't actually change.

BUG: 375112
CCBUG: 365630
FIXED-IN: 5.10.0

Differential Revision: https://phabricator.kde.org/D4488