This is unfortunately not a good way to do it. The paint() method should not alter the state at all.
A problem is, that the changes of visibility will trigger a repaint, which might be a reason for the slow loading times you are observing in the other thread.
It is much easier to connect the ToggleButton to a property and select this property in the View’s visibility property.
It might be necessary to recreate the GUI manually (Menu File->Refresh) while setting this up. But when it is loaded it should work out of the box.
I experimented with fixed aspect ratio but I didn’t really have success. Does this work for you? I can see you force the initial size, but does it really prevent the user from resizing to a different aspect ratio? If so, I can happily add this property.