Implement changed signals to allow for on-demand update of Component display.

instead of relying on idle events.
Fix crash when re-opening ComponentsDialog
ComponentsDialog should be ok now.