From c600a3b0b3ed5e8931f12e4495e813f4833e272b Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Sun, 18 Jan 2015 04:47:13 -0800 Subject: [PATCH] More dialog out of Menu (Almost there) Moved into DialogsManager --- interface/src/Menu.cpp | 31 ++++--------------- interface/src/Menu.h | 7 ----- interface/src/ui/DialogsManager.cpp | 18 +++++++++++ interface/src/ui/DialogsManager.h | 6 ++++ interface/src/ui/MetavoxelEditor.cpp | 4 +-- interface/src/ui/MetavoxelEditor.h | 2 +- .../src/ui/MetavoxelNetworkSimulator.cpp | 4 +-- interface/src/ui/MetavoxelNetworkSimulator.h | 2 +- interface/src/ui/ScriptEditorWindow.cpp | 3 +- interface/src/ui/ScriptEditorWindow.h | 2 +- 10 files changed, 39 insertions(+), 40 deletions(-) diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index e524438943..1baa73ca0b 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -185,8 +185,10 @@ Menu::Menu() { dialogsManager.data(), SLOT(editAnimations())); QMenu* toolsMenu = addMenu("Tools"); - addActionToQMenuAndActionHash(toolsMenu, MenuOption::MetavoxelEditor, 0, this, SLOT(showMetavoxelEditor())); - addActionToQMenuAndActionHash(toolsMenu, MenuOption::ScriptEditor, Qt::ALT | Qt::Key_S, this, SLOT(showScriptEditor())); + addActionToQMenuAndActionHash(toolsMenu, MenuOption::MetavoxelEditor, 0, + dialogsManager.data(), SLOT(showMetavoxelEditor())); + addActionToQMenuAndActionHash(toolsMenu, MenuOption::ScriptEditor, Qt::ALT | Qt::Key_S, + dialogsManager.data(), SLOT(showScriptEditor())); #if defined(Q_OS_MAC) || defined(Q_OS_WIN) QAction* speechRecognizerAction = addCheckableActionToQMenuAndActionHash(toolsMenu, MenuOption::ControlWithSpeech, @@ -409,8 +411,8 @@ Menu::Menu() { Application::getInstance()->getMetavoxels(), SLOT(refreshVoxelData())); addCheckableActionToQMenuAndActionHash(metavoxelOptionsMenu, MenuOption::RenderSpanners, 0, true); addCheckableActionToQMenuAndActionHash(metavoxelOptionsMenu, MenuOption::RenderDualContourSurfaces, 0, true); - addActionToQMenuAndActionHash(metavoxelOptionsMenu, MenuOption::NetworkSimulator, 0, this, - SLOT(showMetavoxelNetworkSimulator())); + addActionToQMenuAndActionHash(metavoxelOptionsMenu, MenuOption::NetworkSimulator, 0, + dialogsManager.data(), SLOT(showMetavoxelNetworkSimulator())); QMenu* handOptionsMenu = developerMenu->addMenu("Hands"); addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::AlignForearmsWithWrists, 0, false); @@ -1178,27 +1180,6 @@ void Menu::displayNameLocationResponse(const QString& errorString) { } } -void Menu::showMetavoxelEditor() { - if (!_MetavoxelEditor) { - _MetavoxelEditor = new MetavoxelEditor(); - } - _MetavoxelEditor->raise(); -} - -void Menu::showMetavoxelNetworkSimulator() { - if (!_metavoxelNetworkSimulator) { - _metavoxelNetworkSimulator = new MetavoxelNetworkSimulator(); - } - _metavoxelNetworkSimulator->raise(); -} - -void Menu::showScriptEditor() { - if(!_ScriptEditor || !_ScriptEditor->isVisible()) { - _ScriptEditor = new ScriptEditorWindow(); - } - _ScriptEditor->raise(); -} - void Menu::showChat() { if (AccountManager::getInstance().isLoggedIn()) { QMainWindow* mainWindow = Application::getInstance()->getWindow(); diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 81d51c6538..97e6a20fd7 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -159,9 +159,6 @@ private slots: void bumpSettings(); void changePrivateKey(); void runTests(); - void showMetavoxelEditor(); - void showMetavoxelNetworkSimulator(); - void showScriptEditor(); void showChat(); void toggleChat(); void audioMuteToggled(); @@ -173,10 +170,6 @@ private: #if defined(Q_OS_MAC) || defined(Q_OS_WIN) SpeechRecognizer _speechRecognizer; #endif - - QPointer _MetavoxelEditor; - QPointer _metavoxelNetworkSimulator; - QPointer _ScriptEditor; QPointer _chatWindow; QAction* _chatAction = nullptr; diff --git a/interface/src/ui/DialogsManager.cpp b/interface/src/ui/DialogsManager.cpp index ea569506b1..b2234eb0a3 100644 --- a/interface/src/ui/DialogsManager.cpp +++ b/interface/src/ui/DialogsManager.cpp @@ -20,8 +20,11 @@ #include "HMDToolsDialog.h" #include "LodToolsDialog.h" #include "LoginDialog.h" +#include "MetavoxelEditor.h" +#include "MetavoxelNetworkSimulator.h" #include "OctreeStatsDialog.h" #include "PreferencesDialog.h" +#include "ScriptEditorWindow.h" #include "DialogsManager.h" @@ -142,6 +145,21 @@ void DialogsManager::hmdToolsClosed() { _hmdToolsDialog->hide(); } +void DialogsManager::showMetavoxelEditor() { + maybeCreateDialog(_metavoxelEditor); + _metavoxelEditor->raise(); +} + +void DialogsManager::showMetavoxelNetworkSimulator() { + maybeCreateDialog(_metavoxelNetworkSimulator); + _metavoxelNetworkSimulator->raise(); +} + +void DialogsManager::showScriptEditor() { + maybeCreateDialog(_scriptEditor); + _scriptEditor->raise(); +} + diff --git a/interface/src/ui/DialogsManager.h b/interface/src/ui/DialogsManager.h index 4dd0728d5c..0762f73c2a 100644 --- a/interface/src/ui/DialogsManager.h +++ b/interface/src/ui/DialogsManager.h @@ -40,6 +40,9 @@ public slots: void bandwidthDetails(); void lodTools(); void hmdTools(bool showTools); + void showMetavoxelEditor(); + void showMetavoxelNetworkSimulator(); + void showScriptEditor(); private slots: void toggleToolWindow(); @@ -70,8 +73,11 @@ private: QPointer _hmdToolsDialog; QPointer _lodToolsDialog; QPointer _loginDialog; + QPointer _metavoxelEditor; + QPointer _metavoxelNetworkSimulator; QPointer _octreeStatsDialog; QPointer _preferencesDialog; + QPointer _scriptEditor; }; #endif // hifi_DialogsManager_h \ No newline at end of file diff --git a/interface/src/ui/MetavoxelEditor.cpp b/interface/src/ui/MetavoxelEditor.cpp index 23ff960aea..c6282e06b6 100644 --- a/interface/src/ui/MetavoxelEditor.cpp +++ b/interface/src/ui/MetavoxelEditor.cpp @@ -50,8 +50,8 @@ enum GridPlane { const glm::vec2 INVALID_VECTOR(FLT_MAX, FLT_MAX); -MetavoxelEditor::MetavoxelEditor() : - QWidget(Application::getInstance()->getWindow(), Qt::Tool) { +MetavoxelEditor::MetavoxelEditor(QWidget* parent) : + QWidget(parent, Qt::Tool) { setWindowTitle("Metavoxel Editor"); setAttribute(Qt::WA_DeleteOnClose); diff --git a/interface/src/ui/MetavoxelEditor.h b/interface/src/ui/MetavoxelEditor.h index 391b01270a..874989a55d 100644 --- a/interface/src/ui/MetavoxelEditor.h +++ b/interface/src/ui/MetavoxelEditor.h @@ -38,7 +38,7 @@ class MetavoxelEditor : public QWidget { public: - MetavoxelEditor(); + MetavoxelEditor(QWidget* parent = nullptr); QString getSelectedAttribute() const; diff --git a/interface/src/ui/MetavoxelNetworkSimulator.cpp b/interface/src/ui/MetavoxelNetworkSimulator.cpp index 7185524d6f..dfc9f4be25 100644 --- a/interface/src/ui/MetavoxelNetworkSimulator.cpp +++ b/interface/src/ui/MetavoxelNetworkSimulator.cpp @@ -20,8 +20,8 @@ const int BYTES_PER_KILOBYTE = 1024; -MetavoxelNetworkSimulator::MetavoxelNetworkSimulator() : - QWidget(DependencyManager::get().data(), Qt::Dialog) { +MetavoxelNetworkSimulator::MetavoxelNetworkSimulator(QWidget* parent) : + QWidget(parent, Qt::Dialog) { setWindowTitle("Metavoxel Network Simulator"); setAttribute(Qt::WA_DeleteOnClose); diff --git a/interface/src/ui/MetavoxelNetworkSimulator.h b/interface/src/ui/MetavoxelNetworkSimulator.h index 18d0857ae4..211df48c00 100644 --- a/interface/src/ui/MetavoxelNetworkSimulator.h +++ b/interface/src/ui/MetavoxelNetworkSimulator.h @@ -23,7 +23,7 @@ class MetavoxelNetworkSimulator : public QWidget { public: - MetavoxelNetworkSimulator(); + MetavoxelNetworkSimulator(QWidget* parent = nullptr); private slots: diff --git a/interface/src/ui/ScriptEditorWindow.cpp b/interface/src/ui/ScriptEditorWindow.cpp index f5cd6de49a..835dab6657 100644 --- a/interface/src/ui/ScriptEditorWindow.cpp +++ b/interface/src/ui/ScriptEditorWindow.cpp @@ -31,7 +31,8 @@ #include "FlowLayout.h" #include "JSConsole.h" -ScriptEditorWindow::ScriptEditorWindow() : +ScriptEditorWindow::ScriptEditorWindow(QWidget* parent) : + QWidget(parent), _ScriptEditorWindowUI(new Ui::ScriptEditorWindow), _loadMenu(new QMenu), _saveMenu(new QMenu) diff --git a/interface/src/ui/ScriptEditorWindow.h b/interface/src/ui/ScriptEditorWindow.h index 1915014b69..f101cb63b2 100644 --- a/interface/src/ui/ScriptEditorWindow.h +++ b/interface/src/ui/ScriptEditorWindow.h @@ -22,7 +22,7 @@ class ScriptEditorWindow : public QWidget { Q_OBJECT public: - ScriptEditorWindow(); + ScriptEditorWindow(QWidget* parent = nullptr); ~ScriptEditorWindow(); void terminateCurrentTab();