-
Artur Grunau authored
MdiDockableWindow has been extracted from MdiDockArea to simplify and better structure our MDI implementation. The new class takes care of creating all necessary representations (docked and floating window) of widgets added to MdiDockArea and seamlessly switching between them in response to the user's actions (window dragging, key presses, etc). MdiDockableWindow improves our MDI implementation in two ways: - MdiFloatingWindow and MdiDockedWindow instances shouldn't be interacted with directly; they're created and disposed of as needed, and therefore can't be used as a handle to access and modify an MDI window's state; MdiDockableWindow, in contrast, fits this role perfectly; it manages both representations of an MDI window, and as a result stays around as long as at least one of them is needed - managing state transitions of many sub-windows directly in MdiDockArea was becoming clumsy as signal mapping and dynamic properties were required; having a separate widget that only has to control the state of one sub-window makes the code related to state transitions much simpler
6d4262de