Panel settings gain a Panel providers section listing the enabled providers in saved order: the panel text, meters, identity, and tooltip follow the choice (max four meters), while the popup, fetching, and notifications keep the full roster. An empty value stays automatic; __none__ stores an explicit empty selection. The read-only provider roster loader moves into the shared controllers/ProviderRosterController used by Popup and Panel, and the pure PanelProviders.js filter owns selection parsing and toggling. Validation: make check exit 0 (937 Qt bulk tests, desktop-style geometry runs, Python tests, hardening, AppStream metadata), make package, and the plasmawindowed smoke suite (only the localization-fr/de/es/pt_BR scenarios fail, identically on clean main: those OS locales are not installed here).
Simone committed on 9/10/2026, 6:16:25 PMparent7b13983
30 files changedLine totals unavailable