diff --git a/include/iuimanager.h b/include/iuimanager.h index 840c803dc7..319ae548f8 100644 --- a/include/iuimanager.h +++ b/include/iuimanager.h @@ -1,29 +1,34 @@ #pragma once #include "imodule.h" +#include "igroupdialog.h" -// Forward declarations -class IGroupDialog; // see igroupdialog.h for definition - -const char* const MODULE_UIMANAGER("UIManager"); +namespace ui +{ /** * greebo: The UI Manager gives access to the GroupDialog and the DialogManager. */ -class IUIManager : +class IGroupDialogManager : public RegisterableModule { public: - virtual IGroupDialog& getGroupDialog() = 0; + virtual ~IGroupDialogManager() {} + + virtual IGroupDialog& get() = 0; }; -inline IUIManager& GlobalUIManager() +} + +constexpr const char* const MODULE_GROUPDIALOG("GroupDialogModule"); + +inline ui::IGroupDialogManager& GlobalGroupDialogManager() { - static module::InstanceReference _reference(MODULE_UIMANAGER); + static module::InstanceReference _reference(MODULE_GROUPDIALOG); return _reference; } inline IGroupDialog& GlobalGroupDialog() { - return GlobalUIManager().getGroupDialog(); + return GlobalGroupDialogManager().get(); } diff --git a/radiant/camera/CameraWndManager.cpp b/radiant/camera/CameraWndManager.cpp index 440957bb61..5ce962b1cf 100644 --- a/radiant/camera/CameraWndManager.cpp +++ b/radiant/camera/CameraWndManager.cpp @@ -447,17 +447,14 @@ const std::string& CameraWndManager::getName() const const StringSet& CameraWndManager::getDependencies() const { - static StringSet _dependencies; - - if (_dependencies.empty()) - { - _dependencies.insert(MODULE_XMLREGISTRY); - _dependencies.insert(MODULE_EVENTMANAGER); - _dependencies.insert(MODULE_RENDERSYSTEM); - _dependencies.insert(MODULE_COMMANDSYSTEM); - _dependencies.insert(MODULE_MOUSETOOLMANAGER); - _dependencies.insert(MODULE_UIMANAGER); - } + static StringSet _dependencies + { + MODULE_XMLREGISTRY, + MODULE_EVENTMANAGER, + MODULE_RENDERSYSTEM, + MODULE_COMMANDSYSTEM, + MODULE_MOUSETOOLMANAGER, + }; return _dependencies; } diff --git a/radiant/ui/UserInterfaceModule.cpp b/radiant/ui/UserInterfaceModule.cpp index b4cc1126dc..2a54fca627 100644 --- a/radiant/ui/UserInterfaceModule.cpp +++ b/radiant/ui/UserInterfaceModule.cpp @@ -92,7 +92,6 @@ const StringSet& UserInterfaceModule::getDependencies() const { MODULE_LAYERS, MODULE_ORTHOCONTEXTMENU, - MODULE_UIMANAGER, MODULE_FILTERSYSTEM, MODULE_ENTITY, MODULE_EVENTMANAGER, diff --git a/radiant/ui/einspector/EntityInspector.cpp b/radiant/ui/einspector/EntityInspector.cpp index 7041c336cc..f39aa53a66 100644 --- a/radiant/ui/einspector/EntityInspector.cpp +++ b/radiant/ui/einspector/EntityInspector.cpp @@ -372,19 +372,17 @@ const std::string& EntityInspector::getName() const const StringSet& EntityInspector::getDependencies() const { - static StringSet _dependencies; - - if (_dependencies.empty()) + static StringSet _dependencies { - _dependencies.insert(MODULE_XMLREGISTRY); - _dependencies.insert(MODULE_UIMANAGER); - _dependencies.insert(MODULE_SELECTIONSYSTEM); - _dependencies.insert(MODULE_UNDOSYSTEM); - _dependencies.insert(MODULE_GAMEMANAGER); - _dependencies.insert(MODULE_COMMANDSYSTEM); - _dependencies.insert(MODULE_EVENTMANAGER); - _dependencies.insert(MODULE_MAINFRAME); - } + MODULE_XMLREGISTRY, + MODULE_GROUPDIALOG, + MODULE_SELECTIONSYSTEM, + MODULE_UNDOSYSTEM, + MODULE_GAMEMANAGER, + MODULE_COMMANDSYSTEM, + MODULE_EVENTMANAGER, + MODULE_MAINFRAME + }; return _dependencies; } diff --git a/radiant/ui/favourites/FavouritesUserInterfaceModule.cpp b/radiant/ui/favourites/FavouritesUserInterfaceModule.cpp index eab98e0bbb..c2fcef3a29 100644 --- a/radiant/ui/favourites/FavouritesUserInterfaceModule.cpp +++ b/radiant/ui/favourites/FavouritesUserInterfaceModule.cpp @@ -32,15 +32,12 @@ class FavouritesUserInterfaceModule : const StringSet& getDependencies() const override { - static StringSet _dependencies; - - if (_dependencies.empty()) + static StringSet _dependencies { - _dependencies.insert(MODULE_FAVOURITES_MANAGER); - _dependencies.insert(MODULE_UIMANAGER); - _dependencies.insert(MODULE_COMMANDSYSTEM); - _dependencies.insert(MODULE_MAINFRAME); - } + MODULE_FAVOURITES_MANAGER, + MODULE_COMMANDSYSTEM, + MODULE_MAINFRAME + }; return _dependencies; } diff --git a/radiant/ui/mainframe/MainFrameLayoutManager.cpp b/radiant/ui/mainframe/MainFrameLayoutManager.cpp index a708871e83..c75685ddf2 100644 --- a/radiant/ui/mainframe/MainFrameLayoutManager.cpp +++ b/radiant/ui/mainframe/MainFrameLayoutManager.cpp @@ -67,13 +67,12 @@ const std::string& MainFrameLayoutManager::getName() const const StringSet& MainFrameLayoutManager::getDependencies() const { - static StringSet _dependencies; - - if (_dependencies.empty()) { - _dependencies.insert(MODULE_EVENTMANAGER); - _dependencies.insert(MODULE_UIMANAGER); - _dependencies.insert(MODULE_COMMANDSYSTEM); - } + static StringSet _dependencies + { + MODULE_EVENTMANAGER, + MODULE_GROUPDIALOG, + MODULE_COMMANDSYSTEM + }; return _dependencies; } diff --git a/radiant/ui/mediabrowser/MediaBrowser.cpp b/radiant/ui/mediabrowser/MediaBrowser.cpp index 2b4d9ae898..80512b7d77 100644 --- a/radiant/ui/mediabrowser/MediaBrowser.cpp +++ b/radiant/ui/mediabrowser/MediaBrowser.cpp @@ -173,19 +173,17 @@ const std::string& MediaBrowser::getName() const const StringSet& MediaBrowser::getDependencies() const { - static StringSet _dependencies; - - if (_dependencies.empty()) - { - _dependencies.insert(MODULE_COMMANDSYSTEM); - _dependencies.insert(MODULE_EVENTMANAGER); - _dependencies.insert(MODULE_SHADERSYSTEM); - _dependencies.insert(MODULE_UIMANAGER); - _dependencies.insert(MODULE_SHADERCLIPBOARD); - _dependencies.insert(MODULE_MAINFRAME); - _dependencies.insert(MODULE_FAVOURITES_MANAGER); - _dependencies.insert(MODULE_MAP); - } + static StringSet _dependencies + { + MODULE_COMMANDSYSTEM, + MODULE_EVENTMANAGER, + MODULE_SHADERSYSTEM, + MODULE_GROUPDIALOG, + MODULE_SHADERCLIPBOARD, + MODULE_MAINFRAME, + MODULE_FAVOURITES_MANAGER, + MODULE_MAP + }; return _dependencies; } diff --git a/radiant/ui/ortho/OrthoContextMenu.cpp b/radiant/ui/ortho/OrthoContextMenu.cpp index e51eb140e7..aed60912db 100644 --- a/radiant/ui/ortho/OrthoContextMenu.cpp +++ b/radiant/ui/ortho/OrthoContextMenu.cpp @@ -606,15 +606,12 @@ const std::string& OrthoContextMenu::getName() const const StringSet& OrthoContextMenu::getDependencies() const { - static StringSet _dependencies; - - if (_dependencies.empty()) + static StringSet _dependencies { - _dependencies.insert(MODULE_UIMANAGER); - _dependencies.insert(MODULE_COMMANDSYSTEM); - _dependencies.insert(MODULE_EVENTMANAGER); - _dependencies.insert(MODULE_MAINFRAME); - } + MODULE_COMMANDSYSTEM, + MODULE_EVENTMANAGER, + MODULE_MAINFRAME, + }; return _dependencies; } diff --git a/radiant/uimanager/UIManager.cpp b/radiant/uimanager/UIManager.cpp index 2e90ce1b57..ee0ea4fe28 100644 --- a/radiant/uimanager/UIManager.cpp +++ b/radiant/uimanager/UIManager.cpp @@ -2,39 +2,33 @@ #include "module/StaticModule.h" #include "itextstream.h" -#include "imainframe.h" #include "GroupDialog.h" namespace ui { -IGroupDialog& UIManager::getGroupDialog() { +IGroupDialog& GroupDialogManager::get() +{ return GroupDialog::Instance(); } -const std::string& UIManager::getName() const +const std::string& GroupDialogManager::getName() const { - static std::string _name(MODULE_UIMANAGER); + static std::string _name(MODULE_GROUPDIALOG); return _name; } -const StringSet& UIManager::getDependencies() const +const StringSet& GroupDialogManager::getDependencies() const { static StringSet _dependencies; - - if (_dependencies.empty()) - { - _dependencies.insert(MODULE_MAINFRAME); - } - return _dependencies; } -void UIManager::initialiseModule(const IApplicationContext& ctx) +void GroupDialogManager::initialiseModule(const IApplicationContext& ctx) { rMessage() << getName() << "::initialiseModule called" << std::endl; } -module::StaticModule uiManagerModule; +module::StaticModule groupDialogManagerModule; } // namespace ui diff --git a/radiant/uimanager/UIManager.h b/radiant/uimanager/UIManager.h index f997c7a59d..1d7f38e0bf 100644 --- a/radiant/uimanager/UIManager.h +++ b/radiant/uimanager/UIManager.h @@ -10,12 +10,11 @@ namespace ui { -class UIManager : - public IUIManager, - public std::enable_shared_from_this +class GroupDialogManager : + public IGroupDialogManager { public: - IGroupDialog& getGroupDialog() override; + IGroupDialog& get() override; // RegisterableModule implementation const std::string& getName() const override; diff --git a/radiant/xyview/GlobalXYWnd.cpp b/radiant/xyview/GlobalXYWnd.cpp index 39577df80d..1fb730a49f 100644 --- a/radiant/xyview/GlobalXYWnd.cpp +++ b/radiant/xyview/GlobalXYWnd.cpp @@ -648,19 +648,16 @@ const std::string& XYWndManager::getName() const const StringSet& XYWndManager::getDependencies() const { - static StringSet _dependencies; - - if (_dependencies.empty()) - { - _dependencies.insert(MODULE_XMLREGISTRY); - _dependencies.insert(MODULE_EVENTMANAGER); - _dependencies.insert(MODULE_RENDERSYSTEM); - _dependencies.insert(MODULE_PREFERENCESYSTEM); - _dependencies.insert(MODULE_COMMANDSYSTEM); - _dependencies.insert(MODULE_UIMANAGER); - _dependencies.insert(MODULE_MOUSETOOLMANAGER); - _dependencies.insert(MODULE_STATUSBARMANAGER); - } + static StringSet _dependencies + { + MODULE_XMLREGISTRY, + MODULE_EVENTMANAGER, + MODULE_RENDERSYSTEM, + MODULE_PREFERENCESYSTEM, + MODULE_COMMANDSYSTEM, + MODULE_MOUSETOOLMANAGER, + MODULE_STATUSBARMANAGER + }; return _dependencies; }