ProjectExplorer: Split IRunConfigurationAspect

... into items that can be used generically in project configurations
(ProjectConfigurationAspect) and items that have a choice between
global and project settings (GlobalOrProjectAspect)

Change-Id: I94831237bdbb18c339eb76eba131bf7f928933d6
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2018-09-13 15:48:16 +02:00
parent d9275913d3
commit d421bc2fe3
19 changed files with 174 additions and 154 deletions

View File

@@ -766,12 +766,11 @@ void CallgrindTool::setupRunner(CallgrindToolRunner *toolRunner)
QTC_ASSERT(m_visualization, return);
// apply project settings
if (IRunConfigurationAspect *analyzerAspect = runControl->runConfiguration()->extraAspect(ANALYZER_VALGRIND_SETTINGS)) {
if (const ValgrindBaseSettings *settings = qobject_cast<ValgrindBaseSettings *>(analyzerAspect->currentSettings())) {
m_visualization->setMinimumInclusiveCostRatio(settings->visualisationMinimumInclusiveCostRatio() / 100.0);
m_proxyModel.setMinimumInclusiveCostRatio(settings->minimumInclusiveCostRatio() / 100.0);
m_dataModel.setVerboseToolTipsEnabled(settings->enableEventToolTips());
}
if (auto settings = runControl->runConfiguration()
->currentSettings<ValgrindBaseSettings>(ANALYZER_VALGRIND_SETTINGS)) {
m_visualization->setMinimumInclusiveCostRatio(settings->visualisationMinimumInclusiveCostRatio() / 100.0);
m_proxyModel.setMinimumInclusiveCostRatio(settings->minimumInclusiveCostRatio() / 100.0);
m_dataModel.setVerboseToolTipsEnabled(settings->enableEventToolTips());
}
m_toolBusy = true;

View File

@@ -914,8 +914,7 @@ void MemcheckTool::maybeActiveRunConfigurationChanged()
if (Project *project = SessionManager::startupProject())
if (Target *target = project->activeTarget())
if (RunConfiguration *rc = target->activeRunConfiguration())
if (IRunConfigurationAspect *aspect = rc->extraAspect(ANALYZER_VALGRIND_SETTINGS))
settings = qobject_cast<ValgrindBaseSettings *>(aspect->currentSettings());
settings = rc->currentSettings<ValgrindBaseSettings>(ANALYZER_VALGRIND_SETTINGS);
if (!settings) // fallback to global settings
settings = ValgrindPlugin::globalSettings();

View File

@@ -58,8 +58,8 @@ ValgrindToolRunner::ValgrindToolRunner(RunControl *runControl)
runControl->setIcon(ProjectExplorer::Icons::ANALYZER_START_SMALL_TOOLBAR);
setSupportsReRunning(false);
if (IRunConfigurationAspect *aspect = runControl->runConfiguration()->extraAspect(ANALYZER_VALGRIND_SETTINGS))
m_settings = qobject_cast<ValgrindBaseSettings *>(aspect->currentSettings());
m_settings = runControl->runConfiguration()
->currentSettings<ValgrindBaseSettings>(ANALYZER_VALGRIND_SETTINGS);
if (!m_settings)
m_settings = ValgrindPlugin::globalSettings();

View File

@@ -89,7 +89,7 @@ private:
QPointer<QWidget> m_widget;
};
class ValgrindRunConfigurationAspect : public IRunConfigurationAspect
class ValgrindRunConfigurationAspect : public GlobalOrProjectAspect
{
public:
ValgrindRunConfigurationAspect(Target *)