analyzer: cleanup mode construction

Change-Id: Icdb89bb581a234820e0c6318f20f8e033ed7b3f0
Reviewed-on: http://codereview.qt.nokia.com/1052
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
hjk
2011-06-30 19:13:55 +02:00
committed by hjk
parent f0a0e5b1ea
commit fd370662ba

View File

@@ -203,8 +203,7 @@ public:
void delayedInit(); void delayedInit();
void setupActions(); void setupActions();
QWidget *createModeContents(); void createModeMainWindow();
QWidget *createModeMainWindow();
bool showPromptDialog(const QString &title, const QString &text, bool showPromptDialog(const QString &title, const QString &text,
const QString &stopButtonText, const QString &cancelButtonText) const; const QString &stopButtonText, const QString &cancelButtonText) const;
@@ -212,8 +211,6 @@ public:
void addTool(IAnalyzerTool *tool, const StartModes &modes); void addTool(IAnalyzerTool *tool, const StartModes &modes);
void stopTool(IAnalyzerTool *tool); void stopTool(IAnalyzerTool *tool);
void handleToolFinished(IAnalyzerTool *tool); void handleToolFinished(IAnalyzerTool *tool);
int indexOf(IAnalyzerTool *tool) const;
IAnalyzerTool *toolAt(int idx) const;
void saveToolSettings(IAnalyzerTool *tool); void saveToolSettings(IAnalyzerTool *tool);
void loadToolSettings(IAnalyzerTool *tool); void loadToolSettings(IAnalyzerTool *tool);
void selectTool(IAnalyzerTool *tool, StartMode mode); void selectTool(IAnalyzerTool *tool, StartMode mode);
@@ -252,7 +249,6 @@ public:
ActionContainer *m_menu; ActionContainer *m_menu;
QComboBox *m_toolBox; QComboBox *m_toolBox;
QStackedWidget *m_controlsWidget; QStackedWidget *m_controlsWidget;
ActionContainer *m_viewsMenu;
Utils::StatusLabel *m_statusLabel; Utils::StatusLabel *m_statusLabel;
typedef QMap<IAnalyzerTool *, FancyMainWindowSettings> MainWindowSettingsMap; typedef QMap<IAnalyzerTool *, FancyMainWindowSettings> MainWindowSettingsMap;
QHash<IAnalyzerTool *, QList<QDockWidget *> > m_toolWidgets; QHash<IAnalyzerTool *, QList<QDockWidget *> > m_toolWidgets;
@@ -263,7 +259,6 @@ public:
QList<DockPtr> m_dockWidgets; QList<DockPtr> m_dockWidgets;
bool m_restartOnStop; bool m_restartOnStop;
bool m_initialized;
}; };
AnalyzerManagerPrivate::AnalyzerManagerPrivate(AnalyzerManager *qq): AnalyzerManagerPrivate::AnalyzerManagerPrivate(AnalyzerManager *qq):
@@ -279,10 +274,8 @@ AnalyzerManagerPrivate::AnalyzerManagerPrivate(AnalyzerManager *qq):
m_menu(0), m_menu(0),
m_toolBox(new QComboBox), m_toolBox(new QComboBox),
m_controlsWidget(new QStackedWidget), m_controlsWidget(new QStackedWidget),
m_viewsMenu(0),
m_statusLabel(new Utils::StatusLabel), m_statusLabel(new Utils::StatusLabel),
m_restartOnStop(false), m_restartOnStop(false)
m_initialized(false)
{ {
m_toolBox->setObjectName(QLatin1String("AnalyzerManagerToolBox")); m_toolBox->setObjectName(QLatin1String("AnalyzerManagerToolBox"));
connect(m_toolBox, SIGNAL(currentIndexChanged(int)), SLOT(selectAction(int))); connect(m_toolBox, SIGNAL(currentIndexChanged(int)), SLOT(selectAction(int)));
@@ -346,39 +339,33 @@ void AnalyzerManagerPrivate::setupActions()
command = am->registerAction(separatorAction, command = am->registerAction(separatorAction,
"Menu.Action.Analyzer.Tools.Separator", globalcontext); "Menu.Action.Analyzer.Tools.Separator", globalcontext);
m_menu->addAction(command, Constants::G_ANALYZER_REMOTE_TOOLS); m_menu->addAction(command, Constants::G_ANALYZER_REMOTE_TOOLS);
m_viewsMenu = am->actionContainer(Core::Id(Core::Constants::M_WINDOW_VIEWS));
} }
void AnalyzerManagerPrivate::delayedInit() void AnalyzerManagerPrivate::delayedInit()
{ {
if (m_initialized) if (m_mode)
return; return;
m_mode = new AnalyzerMode(q); m_mode = new AnalyzerMode(q);
m_mode->setWidget(createModeContents()); createModeMainWindow();
AnalyzerPlugin::instance()->addAutoReleasedObject(m_mode);
m_initialized = true; // Right-side window with editor, output etc.
}
QWidget *AnalyzerManagerPrivate::createModeContents()
{
// right-side window with editor, output etc.
MiniSplitter *mainWindowSplitter = new MiniSplitter; MiniSplitter *mainWindowSplitter = new MiniSplitter;
mainWindowSplitter->addWidget(createModeMainWindow()); mainWindowSplitter->addWidget(m_mainWindow);
mainWindowSplitter->addWidget(new OutputPanePlaceHolder(m_mode, mainWindowSplitter)); mainWindowSplitter->addWidget(new OutputPanePlaceHolder(m_mode, mainWindowSplitter));
mainWindowSplitter->setStretchFactor(0, 10); mainWindowSplitter->setStretchFactor(0, 10);
mainWindowSplitter->setStretchFactor(1, 0); mainWindowSplitter->setStretchFactor(1, 0);
mainWindowSplitter->setOrientation(Qt::Vertical); mainWindowSplitter->setOrientation(Qt::Vertical);
// navigation + right-side window // Navigation + right-side window.
MiniSplitter *splitter = new MiniSplitter; MiniSplitter *splitter = new MiniSplitter;
splitter->addWidget(new NavigationWidgetPlaceHolder(m_mode)); splitter->addWidget(new NavigationWidgetPlaceHolder(m_mode));
splitter->addWidget(mainWindowSplitter); splitter->addWidget(mainWindowSplitter);
splitter->setStretchFactor(0, 0); splitter->setStretchFactor(0, 0);
splitter->setStretchFactor(1, 1); splitter->setStretchFactor(1, 1);
return splitter; m_mode->setWidget(splitter);
AnalyzerPlugin::instance()->addAutoReleasedObject(m_mode);
} }
static QToolButton *toolButton(QAction *action) static QToolButton *toolButton(QAction *action)
@@ -388,7 +375,7 @@ static QToolButton *toolButton(QAction *action)
return button; return button;
} }
QWidget *AnalyzerManagerPrivate::createModeMainWindow() void AnalyzerManagerPrivate::createModeMainWindow()
{ {
m_mainWindow = new Utils::FancyMainWindow(); m_mainWindow = new Utils::FancyMainWindow();
m_mainWindow->setObjectName(QLatin1String("AnalyzerManagerMainWindow")); m_mainWindow->setObjectName(QLatin1String("AnalyzerManagerMainWindow"));
@@ -447,12 +434,9 @@ QWidget *AnalyzerManagerPrivate::createModeMainWindow()
centralLayout->addWidget(documentAndRightPane); centralLayout->addWidget(documentAndRightPane);
centralLayout->setStretch(0, 1); centralLayout->setStretch(0, 1);
centralLayout->setStretch(1, 0); centralLayout->setStretch(1, 0);
return m_mainWindow;
} }
void AnalyzerManagerPrivate::addDock(Qt::DockWidgetArea area, void AnalyzerManagerPrivate::addDock(Qt::DockWidgetArea area, QDockWidget *dockWidget)
QDockWidget *dockWidget)
{ {
dockWidget->setParent(m_mainWindow); dockWidget->setParent(m_mainWindow);
m_mainWindow->addDockWidget(area, dockWidget); m_mainWindow->addDockWidget(area, dockWidget);
@@ -465,7 +449,9 @@ void AnalyzerManagerPrivate::addDock(Qt::DockWidgetArea area,
Command *cmd = am->registerAction(toggleViewAction, QString("Analyzer." + dockWidget->objectName()), Command *cmd = am->registerAction(toggleViewAction, QString("Analyzer." + dockWidget->objectName()),
globalContext); globalContext);
cmd->setAttribute(Command::CA_Hide); 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, bool buildTypeAccepted(IAnalyzerTool::ToolMode toolMode,
@@ -484,10 +470,8 @@ bool buildTypeAccepted(IAnalyzerTool::ToolMode toolMode,
return false; return false;
} }
bool AnalyzerManagerPrivate::showPromptDialog(const QString &title, bool AnalyzerManagerPrivate::showPromptDialog(const QString &title, const QString &text,
const QString &text, const QString &stopButtonText, const QString &cancelButtonText) const
const QString &stopButtonText,
const QString &cancelButtonText) const
{ {
Utils::CheckableMessageBox messageBox(Core::ICore::instance()->mainWindow()); Utils::CheckableMessageBox messageBox(Core::ICore::instance()->mainWindow());
messageBox.setWindowTitle(title); messageBox.setWindowTitle(title);
@@ -550,7 +534,7 @@ void AnalyzerManagerPrivate::startRemoteTool(IAnalyzerTool *tool, StartMode mode
void AnalyzerManagerPrivate::startLocalTool(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 >= 0, return);
QTC_ASSERT(index < m_tools.size(), return); QTC_ASSERT(index < m_tools.size(), return);
QTC_ASSERT(tool == m_currentTool, return); QTC_ASSERT(tool == m_currentTool, return);
@@ -663,7 +647,7 @@ void AnalyzerManagerPrivate::modeChanged(IMode *mode)
void AnalyzerManagerPrivate::selectTool(IAnalyzerTool *tool, StartMode mode) void AnalyzerManagerPrivate::selectTool(IAnalyzerTool *tool, StartMode mode)
{ {
int idx = indexOf(tool); int idx = m_tools.indexOf(tool);
QTC_ASSERT(idx >= 0, return); QTC_ASSERT(idx >= 0, return);
if (m_currentTool == tool) if (m_currentTool == tool)
return; return;
@@ -725,18 +709,6 @@ void AnalyzerManagerPrivate::selectAction(QAction *action)
selectTool(m_toolFromAction[action], mode); 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) void AnalyzerManagerPrivate::addTool(IAnalyzerTool *tool, const StartModes &modes)
{ {
delayedInit(); // be sure that there is a valid IMode instance delayedInit(); // be sure that there is a valid IMode instance