![]() |
SWMMVis
6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
|
App-wide register of open modeless dialogs, in most-recently-used order, plus the dialog stacking strategy. More...
#include <QList>#include <QObject>#include <QPointer>#include <QDialog>Go to the source code of this file.
Classes | |
| class | openswmmvis::ui::DialogRegistry |
Namespaces | |
| namespace | openswmmvis |
| namespace | openswmmvis::ui |
App-wide register of open modeless dialogs, in most-recently-used order, plus the dialog stacking strategy.
Two jobs, both of which need the same list:
STACKING (Phase B). Keeping dialogs above the main window is done one of two ways, selected by StackingMode:
The mode is read once at startup from the OPENSWMM_DIALOG_STACKING environment variable ("qt" / "native"), else the "Window/DialogStacking" QSettings key, else the platform default. The environment override exists so a tester can flip strategies without touching preferences.
ORDERING is most-recently-USED, not open order: a dialog moves to the end of the list when it is activated. Re-raising on MRU order preserves the z-order the user arranged by clicking, whereas strict open order would shuffle their arrangement back every time the app was re-activated. A freshly shown dialog is activated as part of being shown, so "newest on top" still falls out naturally.
Entries are QPointer, so a dialog destroyed without a Hide/Close event (WA_DeleteOnClose teardown) simply drops out on the next read.