implement runtime KSNI updates
previously kmix would throw away the KSNI and completely recreate it to pick up mixer changes. incidentally enough doing that triggers repaints and rescaling in plasma leading to utterly silly flickering. paritcularly since pulseaudio stream changes (e.g. a track change in amarok) would cause such an "update" you'd have a steady flow of flickering systray the situation was resolved by introducing a MetaMixer in the DockWidget. MetaMixer behaves like an abstraction wrapper around the actual Mixer. it replicates the necessary interfaces/signals/slots and internally controls the wiring to the actual mixer. that way the dockwidget can connect() once to the metamixer signals while internally the mixer might be constantly changing. then when an update is required the new update() function is called, which calls reset() on the metamixer, which rewires against the new master mixer and then automatically triggers UI updates
parent
d6ff1b0c
Please register or sign in to comment