From b620239d14712704152e7d40a0b0966d918c880d Mon Sep 17 00:00:00 2001 From: codereader Date: Mon, 2 Jan 2017 18:30:45 +0100 Subject: [PATCH] Move LayerControlDialog initialisation to UserInterfaceModule --- radiant/RadiantModule.cpp | 2 -- radiant/ui/UserInterfaceModule.cpp | 12 +++++++++--- radiant/ui/layers/LayerControlDialog.cpp | 4 ++-- radiant/ui/layers/LayerControlDialog.h | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/radiant/RadiantModule.cpp b/radiant/RadiantModule.cpp index a56c71bc4a..2296c5ee98 100644 --- a/radiant/RadiantModule.cpp +++ b/radiant/RadiantModule.cpp @@ -252,8 +252,6 @@ void RadiantModule::postModuleInitialisation() // Initialise the shaderclipboard GlobalShaderClipboard().clear(); - ui::LayerControlDialog::init(); - // Broadcast the startup event broadcastStartupEvent(); diff --git a/radiant/ui/UserInterfaceModule.cpp b/radiant/ui/UserInterfaceModule.cpp index 849cb982f0..131168ed4a 100644 --- a/radiant/ui/UserInterfaceModule.cpp +++ b/radiant/ui/UserInterfaceModule.cpp @@ -60,19 +60,25 @@ void UserInterfaceModule::initialiseModule(const ApplicationContext& ctx) // Add the orthocontext menu's layer actions GlobalOrthoContextMenu().addItem( - std::make_shared(_(ADD_TO_LAYER_TEXT), LayerOrthoContextMenuItem::AddToLayer), + std::make_shared(_(ADD_TO_LAYER_TEXT), + LayerOrthoContextMenuItem::AddToLayer), IOrthoContextMenu::SECTION_LAYER ); GlobalOrthoContextMenu().addItem( - std::make_shared(_(MOVE_TO_LAYER_TEXT), LayerOrthoContextMenuItem::MoveToLayer), + std::make_shared(_(MOVE_TO_LAYER_TEXT), + LayerOrthoContextMenuItem::MoveToLayer), IOrthoContextMenu::SECTION_LAYER ); GlobalOrthoContextMenu().addItem( - std::make_shared(_(REMOVE_FROM_LAYER_TEXT), LayerOrthoContextMenuItem::RemoveFromLayer), + std::make_shared(_(REMOVE_FROM_LAYER_TEXT), + LayerOrthoContextMenuItem::RemoveFromLayer), IOrthoContextMenu::SECTION_LAYER ); + + GlobalRadiant().signal_radiantStarted().connect( + sigc::ptr_fun(LayerControlDialog::onRadiantStartup)); } void UserInterfaceModule::shutdownModule() diff --git a/radiant/ui/layers/LayerControlDialog.cpp b/radiant/ui/layers/LayerControlDialog.cpp index d614ad6484..2e57ef03ed 100644 --- a/radiant/ui/layers/LayerControlDialog.cpp +++ b/radiant/ui/layers/LayerControlDialog.cpp @@ -201,7 +201,7 @@ void LayerControlDialog::toggle(const cmd::ArgumentList& args) Instance().ToggleVisibility(); } -void LayerControlDialog::init() +void LayerControlDialog::onRadiantStartup() { // Lookup the stored window information in the registry if (GlobalRegistry().getAttribute(RKEY_WINDOW_STATE, "visible") == "1") @@ -241,7 +241,7 @@ LayerControlDialog& LayerControlDialog::Instance() { LayerControlDialogPtr& instancePtr = InstancePtr(); - if (instancePtr == NULL) + if (!instancePtr) { // Not yet instantiated, do it now instancePtr.reset(new LayerControlDialog); diff --git a/radiant/ui/layers/LayerControlDialog.h b/radiant/ui/layers/LayerControlDialog.h index f724c399df..57e4d5eb80 100644 --- a/radiant/ui/layers/LayerControlDialog.h +++ b/radiant/ui/layers/LayerControlDialog.h @@ -53,8 +53,8 @@ class LayerControlDialog : // Command target (registered in the event manager) static void toggle(const cmd::ArgumentList& args); - // Called during mainframe construction - static void init(); + // Checks if dialog should be shown after startup + static void onRadiantStartup(); static LayerControlDialog& Instance();