diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp index 7bda3560c43a737291054f38c968b75adae41c29..00453b5b0779461e52134955ed0894a12ca14789 100644 --- a/src/plugins/analyzerbase/analyzermanager.cpp +++ b/src/plugins/analyzerbase/analyzermanager.cpp @@ -677,6 +677,8 @@ void AnalyzerManager::toolSelected(int idx) updateRunActions(); selectingTool = false; + + emit currentToolChanged(newTool); } void AnalyzerManager::toolSelected(QAction *action) diff --git a/src/plugins/analyzerbase/analyzermanager.h b/src/plugins/analyzerbase/analyzermanager.h index 704501e8bdf9d653b8b066489f8cb21c8080b16e..2506d63ead71a3ac90e752270f9acf6822074a45 100644 --- a/src/plugins/analyzerbase/analyzermanager.h +++ b/src/plugins/analyzerbase/analyzermanager.h @@ -121,6 +121,9 @@ private slots: void loadToolSettings(Analyzer::IAnalyzerTool *tool); void updateRunActions(); +signals: + void currentToolChanged(Analyzer::IAnalyzerTool *tool); + private: class AnalyzerManagerPrivate; friend class AnalyzerManagerPrivate; diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 3a4b858baf662e631e08288f15718ccfb4e2c18d..5c9342122359ffa1446ec132db19a0032070055b 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -204,6 +204,11 @@ void QmlProfilerTool::initialize(ExtensionSystem::IPlugin */*plugin*/) command->setAttribute(Core::Command::CA_UpdateText); manalyzer->addAction(command, Analyzer::Constants::G_ANALYZER_STARTSTOP); connect(d->m_attachAction, SIGNAL(triggered()), this, SLOT(attach())); + + Analyzer::AnalyzerManager *analyzerMgr = Analyzer::AnalyzerManager::instance(); + connect(analyzerMgr, SIGNAL(currentToolChanged(Analyzer::IAnalyzerTool*)), + this, SLOT(updateAttachAction())); + updateAttachAction(); } @@ -344,4 +349,7 @@ void QmlProfilerTool::updateAttachAction() d->m_attachAction->setText(tr("Attach...")); } } + + d->m_attachAction->setEnabled(Analyzer::AnalyzerManager::instance()->currentTool() == this); } +