From fd370662bae51a883eaee7d17efcc6f19ebe0045 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Thu, 30 Jun 2011 19:13:55 +0200 Subject: [PATCH] analyzer: cleanup mode construction Change-Id: Icdb89bb581a234820e0c6318f20f8e033ed7b3f0 Reviewed-on: http://codereview.qt.nokia.com/1052 Reviewed-by: hjk <qthjk@ovi.com> --- src/plugins/analyzerbase/analyzermanager.cpp | 66 ++++++-------------- 1 file changed, 19 insertions(+), 47 deletions(-) diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp index 46a6b726dae..60d9781a1d2 100644 --- a/src/plugins/analyzerbase/analyzermanager.cpp +++ b/src/plugins/analyzerbase/analyzermanager.cpp @@ -203,8 +203,7 @@ public: void delayedInit(); void setupActions(); - QWidget *createModeContents(); - QWidget *createModeMainWindow(); + void createModeMainWindow(); bool showPromptDialog(const QString &title, const QString &text, const QString &stopButtonText, const QString &cancelButtonText) const; @@ -212,8 +211,6 @@ public: void addTool(IAnalyzerTool *tool, const StartModes &modes); void stopTool(IAnalyzerTool *tool); void handleToolFinished(IAnalyzerTool *tool); - int indexOf(IAnalyzerTool *tool) const; - IAnalyzerTool *toolAt(int idx) const; void saveToolSettings(IAnalyzerTool *tool); void loadToolSettings(IAnalyzerTool *tool); void selectTool(IAnalyzerTool *tool, StartMode mode); @@ -252,7 +249,6 @@ public: ActionContainer *m_menu; QComboBox *m_toolBox; QStackedWidget *m_controlsWidget; - ActionContainer *m_viewsMenu; Utils::StatusLabel *m_statusLabel; typedef QMap<IAnalyzerTool *, FancyMainWindowSettings> MainWindowSettingsMap; QHash<IAnalyzerTool *, QList<QDockWidget *> > m_toolWidgets; @@ -263,7 +259,6 @@ public: QList<DockPtr> m_dockWidgets; bool m_restartOnStop; - bool m_initialized; }; AnalyzerManagerPrivate::AnalyzerManagerPrivate(AnalyzerManager *qq): @@ -279,10 +274,8 @@ AnalyzerManagerPrivate::AnalyzerManagerPrivate(AnalyzerManager *qq): m_menu(0), m_toolBox(new QComboBox), m_controlsWidget(new QStackedWidget), - m_viewsMenu(0), m_statusLabel(new Utils::StatusLabel), - m_restartOnStop(false), - m_initialized(false) + m_restartOnStop(false) { m_toolBox->setObjectName(QLatin1String("AnalyzerManagerToolBox")); connect(m_toolBox, SIGNAL(currentIndexChanged(int)), SLOT(selectAction(int))); @@ -346,39 +339,33 @@ void AnalyzerManagerPrivate::setupActions() command = am->registerAction(separatorAction, "Menu.Action.Analyzer.Tools.Separator", globalcontext); m_menu->addAction(command, Constants::G_ANALYZER_REMOTE_TOOLS); - - m_viewsMenu = am->actionContainer(Core::Id(Core::Constants::M_WINDOW_VIEWS)); } void AnalyzerManagerPrivate::delayedInit() { - if (m_initialized) + if (m_mode) return; m_mode = new AnalyzerMode(q); - m_mode->setWidget(createModeContents()); - AnalyzerPlugin::instance()->addAutoReleasedObject(m_mode); - - m_initialized = true; -} + createModeMainWindow(); -QWidget *AnalyzerManagerPrivate::createModeContents() -{ - // right-side window with editor, output etc. + // Right-side window with editor, output etc. MiniSplitter *mainWindowSplitter = new MiniSplitter; - mainWindowSplitter->addWidget(createModeMainWindow()); + mainWindowSplitter->addWidget(m_mainWindow); mainWindowSplitter->addWidget(new OutputPanePlaceHolder(m_mode, mainWindowSplitter)); mainWindowSplitter->setStretchFactor(0, 10); mainWindowSplitter->setStretchFactor(1, 0); mainWindowSplitter->setOrientation(Qt::Vertical); - // navigation + right-side window + // Navigation + right-side window. MiniSplitter *splitter = new MiniSplitter; splitter->addWidget(new NavigationWidgetPlaceHolder(m_mode)); splitter->addWidget(mainWindowSplitter); splitter->setStretchFactor(0, 0); splitter->setStretchFactor(1, 1); - return splitter; + m_mode->setWidget(splitter); + + AnalyzerPlugin::instance()->addAutoReleasedObject(m_mode); } static QToolButton *toolButton(QAction *action) @@ -388,7 +375,7 @@ static QToolButton *toolButton(QAction *action) return button; } -QWidget *AnalyzerManagerPrivate::createModeMainWindow() +void AnalyzerManagerPrivate::createModeMainWindow() { m_mainWindow = new Utils::FancyMainWindow(); m_mainWindow->setObjectName(QLatin1String("AnalyzerManagerMainWindow")); @@ -447,12 +434,9 @@ QWidget *AnalyzerManagerPrivate::createModeMainWindow() centralLayout->addWidget(documentAndRightPane); centralLayout->setStretch(0, 1); centralLayout->setStretch(1, 0); - - return m_mainWindow; } -void AnalyzerManagerPrivate::addDock(Qt::DockWidgetArea area, - QDockWidget *dockWidget) +void AnalyzerManagerPrivate::addDock(Qt::DockWidgetArea area, QDockWidget *dockWidget) { dockWidget->setParent(m_mainWindow); m_mainWindow->addDockWidget(area, dockWidget); @@ -465,7 +449,9 @@ void AnalyzerManagerPrivate::addDock(Qt::DockWidgetArea area, Command *cmd = am->registerAction(toggleViewAction, QString("Analyzer." + dockWidget->objectName()), globalContext); cmd->setAttribute(Command::CA_Hide); - m_viewsMenu->addAction(cmd); + + ActionContainer *viewsMenu = am->actionContainer(Core::Id(Core::Constants::M_WINDOW_VIEWS)); + viewsMenu->addAction(cmd); } bool buildTypeAccepted(IAnalyzerTool::ToolMode toolMode, @@ -484,10 +470,8 @@ bool buildTypeAccepted(IAnalyzerTool::ToolMode toolMode, return false; } -bool AnalyzerManagerPrivate::showPromptDialog(const QString &title, - const QString &text, - const QString &stopButtonText, - const QString &cancelButtonText) const +bool AnalyzerManagerPrivate::showPromptDialog(const QString &title, const QString &text, + const QString &stopButtonText, const QString &cancelButtonText) const { Utils::CheckableMessageBox messageBox(Core::ICore::instance()->mainWindow()); messageBox.setWindowTitle(title); @@ -550,7 +534,7 @@ void AnalyzerManagerPrivate::startRemoteTool(IAnalyzerTool *tool, StartMode mode void AnalyzerManagerPrivate::startLocalTool(IAnalyzerTool *tool, StartMode mode) { - int index = indexOf(tool); + int index = m_tools.indexOf(tool); QTC_ASSERT(index >= 0, return); QTC_ASSERT(index < m_tools.size(), return); QTC_ASSERT(tool == m_currentTool, return); @@ -663,7 +647,7 @@ void AnalyzerManagerPrivate::modeChanged(IMode *mode) void AnalyzerManagerPrivate::selectTool(IAnalyzerTool *tool, StartMode mode) { - int idx = indexOf(tool); + int idx = m_tools.indexOf(tool); QTC_ASSERT(idx >= 0, return); if (m_currentTool == tool) return; @@ -725,18 +709,6 @@ void AnalyzerManagerPrivate::selectAction(QAction *action) selectTool(m_toolFromAction[action], mode); } -int AnalyzerManagerPrivate::indexOf(IAnalyzerTool *tool) const -{ - return m_tools.indexOf(tool); -} - -IAnalyzerTool *AnalyzerManagerPrivate::toolAt(int idx) const -{ - QTC_ASSERT(idx >= 0, return 0); - QTC_ASSERT(idx < m_tools.size(), return 0); - return m_tools.at(idx); -} - void AnalyzerManagerPrivate::addTool(IAnalyzerTool *tool, const StartModes &modes) { delayedInit(); // be sure that there is a valid IMode instance -- GitLab