aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/valgrind/callgrindtool.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2011-07-06 16:52:14 +0200
committerhjk <[email protected]>2011-07-07 10:37:04 +0200
commit868613b5edd91b347795247e24c2e7156d24e081 (patch)
tree5a25c99df3ff12b34326548565d5b505b2c8cad7 /src/plugins/valgrind/callgrindtool.cpp
parent4823487b5959dd04d4a199d9242823ea080ea60b (diff)
analyzer: merge dockwidget and toolbar creation.
Now that dock and control widgets are always created as late as possible and both are needed immediately afterward it makes sense to merge there construction. This also reduces the chance to create a partial tool gui in an inconsitent state. Change-Id: Ic7f405d65b2b8f0b4ee3ff0ef991d6e4746bac0a Reviewed-on: http://codereview.qt.nokia.com/1249 Reviewed-by: Qt Sanity Bot <[email protected]> Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins/valgrind/callgrindtool.cpp')
-rw-r--r--src/plugins/valgrind/callgrindtool.cpp123
1 files changed, 61 insertions, 62 deletions
diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp
index eef04d82a91..d89632d6c73 100644
--- a/src/plugins/valgrind/callgrindtool.cpp
+++ b/src/plugins/valgrind/callgrindtool.cpp
@@ -115,8 +115,7 @@ public:
void setParseData(ParseData *data);
CostDelegate::CostFormat costFormat() const;
- QWidget *createControlWidget();
- void initializeDockWidgets();
+ QWidget *createWidgets();
void doClear(bool clearParseData);
void updateEventCombo();
@@ -566,13 +565,67 @@ void CallgrindTool::extensionsInitialized()
}
}
-void CallgrindTool::initializeDockWidgets()
+IAnalyzerEngine *CallgrindTool::createEngine(const AnalyzerStartParameters &sp,
+ ProjectExplorer::RunConfiguration *runConfiguration)
+{
+ return d->createEngine(sp, runConfiguration);
+}
+
+IAnalyzerEngine *CallgrindToolPrivate::createEngine(const AnalyzerStartParameters &sp,
+ ProjectExplorer::RunConfiguration *runConfiguration)
+{
+ CallgrindEngine *engine = new CallgrindEngine(q, sp, runConfiguration);
+
+ connect(engine, SIGNAL(parserDataReady(CallgrindEngine *)),
+ SLOT(takeParserData(CallgrindEngine *)));
+ connect(engine, SIGNAL(starting(const Analyzer::IAnalyzerEngine*)),
+ SLOT(engineStarting(const Analyzer::IAnalyzerEngine*)));
+ connect(engine, SIGNAL(finished()),
+ SLOT(engineFinished()));
+
+ connect(this, SIGNAL(dumpRequested()), engine, SLOT(dump()));
+ connect(this, SIGNAL(resetRequested()), engine, SLOT(reset()));
+ connect(this, SIGNAL(pauseToggled(bool)), engine, SLOT(setPaused(bool)));
+
+ // initialize engine
+ engine->setPaused(m_pauseAction->isChecked());
+
+ // we may want to toggle collect for one function only in this run
+ engine->setToggleCollectFunction(m_toggleCollectFunction);
+ m_toggleCollectFunction.clear();
+
+ AnalyzerManager::showStatusMessage(AnalyzerManager::msgToolStarted(q->displayName()));
+
+ // apply project settings
+ AnalyzerProjectSettings *analyzerSettings = runConfiguration->extraAspect<AnalyzerProjectSettings>();
+ CallgrindProjectSettings *settings = analyzerSettings->subConfig<CallgrindProjectSettings>();
+ QTC_ASSERT(settings, return engine)
+
+ QTC_ASSERT(m_visualisation, return engine);
+ m_visualisation->setMinimumInclusiveCostRatio(settings->visualisationMinimumInclusiveCostRatio() / 100.0);
+ m_proxyModel->setMinimumInclusiveCostRatio(settings->minimumInclusiveCostRatio() / 100.0);
+ m_dataModel->setVerboseToolTipsEnabled(settings->enableEventToolTips());
+
+ return engine;
+}
+
+void CallgrindTool::startTool(StartMode mode)
{
- d->initializeDockWidgets();
+ ValgrindPlugin::startValgrindTool(this, mode);
}
-void CallgrindToolPrivate::initializeDockWidgets()
+QWidget *CallgrindTool::createWidgets()
{
+ return d->createWidgets();
+}
+
+QWidget *CallgrindToolPrivate::createWidgets()
+{
+ QTC_ASSERT(!m_visualisation, return 0);
+
+ //
+ // DockWidgets
+ //
Utils::FancyMainWindow *mw = AnalyzerManager::mainWindow();
m_visualisation = new Visualisation(mw);
m_visualisation->setFrameStyle(QFrame::NoFrame);
@@ -636,64 +689,10 @@ void CallgrindToolPrivate::initializeDockWidgets()
mw->splitDockWidget(mw->toolBarDockWidget(), flatDock, Qt::Vertical);
mw->splitDockWidget(mw->toolBarDockWidget(), calleesDock, Qt::Vertical);
mw->splitDockWidget(calleesDock, callersDock, Qt::Horizontal);
-}
-
-IAnalyzerEngine *CallgrindTool::createEngine(const AnalyzerStartParameters &sp,
- ProjectExplorer::RunConfiguration *runConfiguration)
-{
- return d->createEngine(sp, runConfiguration);
-}
-
-IAnalyzerEngine *CallgrindToolPrivate::createEngine(const AnalyzerStartParameters &sp,
- ProjectExplorer::RunConfiguration *runConfiguration)
-{
- CallgrindEngine *engine = new CallgrindEngine(q, sp, runConfiguration);
-
- connect(engine, SIGNAL(parserDataReady(CallgrindEngine *)),
- SLOT(takeParserData(CallgrindEngine *)));
- connect(engine, SIGNAL(starting(const Analyzer::IAnalyzerEngine*)),
- SLOT(engineStarting(const Analyzer::IAnalyzerEngine*)));
- connect(engine, SIGNAL(finished()),
- SLOT(engineFinished()));
-
- connect(this, SIGNAL(dumpRequested()), engine, SLOT(dump()));
- connect(this, SIGNAL(resetRequested()), engine, SLOT(reset()));
- connect(this, SIGNAL(pauseToggled(bool)), engine, SLOT(setPaused(bool)));
-
- // initialize engine
- engine->setPaused(m_pauseAction->isChecked());
-
- // we may want to toggle collect for one function only in this run
- engine->setToggleCollectFunction(m_toggleCollectFunction);
- m_toggleCollectFunction.clear();
-
- AnalyzerManager::showStatusMessage(AnalyzerManager::msgToolStarted(q->displayName()));
-
- // apply project settings
- AnalyzerProjectSettings *analyzerSettings = runConfiguration->extraAspect<AnalyzerProjectSettings>();
- CallgrindProjectSettings *settings = analyzerSettings->subConfig<CallgrindProjectSettings>();
- QTC_ASSERT(settings, return engine)
-
- QTC_ASSERT(m_visualisation, return engine);
- m_visualisation->setMinimumInclusiveCostRatio(settings->visualisationMinimumInclusiveCostRatio() / 100.0);
- m_proxyModel->setMinimumInclusiveCostRatio(settings->minimumInclusiveCostRatio() / 100.0);
- m_dataModel->setVerboseToolTipsEnabled(settings->enableEventToolTips());
-
- return engine;
-}
-void CallgrindTool::startTool(StartMode mode)
-{
- ValgrindPlugin::startValgrindTool(this, mode);
-}
-
-QWidget *CallgrindTool::createControlWidget()
-{
- return d->createControlWidget();
-}
-
-QWidget *CallgrindToolPrivate::createControlWidget()
-{
+ //
+ // Control Widget
+ //
QAction *action = 0;
QWidget *widget = new QWidget;
QHBoxLayout *layout = new QHBoxLayout;