Screencast - Multi-monitor support PothosFlow Thu, Oct 25 2018 AM
Individual editor tabs can be docked and undocked into independent dialog windows to support editing and displaying a topology across multiple monitors. The position of the dialogs can be saved and restored with the saved topology. This allows for simultaneous display of editor windows to nicely segment up display, control, and topology editing. For this video I tried pre-recording the screen and then adding the audio in post. Hopefully it came out a little better.
Code changes
The changes mostly center around the DockingTabWidget that I put together. The docking editor interface basically overloads the existing QTabWidget and provides an undock/dock button and manages the state of the dialogs, tabs, and display. So, from the perspective of the existing code its a just regular tab widget with additional states to serialize when saving.
However, because with undocked editor tabs, there is more than one visible tab at the same time, but only one of which that has focus. So this was a difficult to get correct. The DockingTabWidget::activeIndex() and isActive() functions help the GraphEditor's action handlers to figure this out. And in the act of better handling the active GraphDraw, it actually cleaned up some of the action update hooks that kept the menus and buttons in sync after things like widget selection change.