Reworking management of Slot Dialogs, no longer via Open Object Dialogs Bug Number: Related to 6006 (part 2 of 3) Release notes (y/n): Yes For Release Nums: 7.2 Open Slot Dialogs are no longer managed as child dialogs of their containing SimObj's Open Object Dialog (or Object Viewer). So, now, closing an Open Object Dialog or the Object Viewer no longer also closes any Open Slot Dialogs which had been opened from that object dialog. Note: This change was motivated by Gnats 6006 (part 2 of 3). A simpler solution was devised within the Release_71 code base (now on the "Bug6006-71" branch) ... but that solution involves deleting and recreating Open Slot Dialogs when a SimObj is moved into our out from the Object Viewer. That causes the loss of some Slot Dialog GUI state information, e.g. vertical scrollbar position and timestep cell selection. We're not sure we want to use that change (for a 7.1 patch). I had a couple failed attempts at moving the management of Slot Dialogs out from the OpenObjectDlg class (which also implements the new Object Viewer). The solution I ended up pursuing was the elimination of the GUI/BaseRWDlg class's support for Parent Dialog / Child Dialog relationships. That crazily complex (and very old) mechanism had been used primarily in these two ways: (1) OpenObjectDlg parenting of Open Slot Dialogs: (a) Q3GUI/SlotQtDlg (most open slot dialogs) (b) Q3GUI/ListSlotDlg (c) Q3GUI/ScalarSlotDlg (d) Q3GUI/StatTableSlotDlg (e) QtUtils/MassBalSummaryDlg (NOT a BaseRWDlg, non-standard support) (2) SlotQtDlg parenting of slot configuration dialogs. There are still some, now unused, Parent/Child-dialog mechanisms and data members in GUI/BaseRWDlg, but the public interface for that support has been removed (plus, some of the internal implementation). This includes removal of these public methods: BaseRWDlg *openChildDlg (void *assocObj = NULL, int typeCode = 0, int onlyOnce = true, int dontOpen = false); virtual BaseRWDlg *createChildDlg (void *assocObj, int typeCode); virtual void childDestroyedHandler (BaseRWDlg* child, void*); Also, this module has been removed: GUI/SlotDialogManager.cpp ---