diff options
Diffstat (limited to 'src/plugins/analyzerbase/analyzerrunconfigwidget.cpp')
-rw-r--r-- | src/plugins/analyzerbase/analyzerrunconfigwidget.cpp | 82 |
1 files changed, 31 insertions, 51 deletions
diff --git a/src/plugins/analyzerbase/analyzerrunconfigwidget.cpp b/src/plugins/analyzerbase/analyzerrunconfigwidget.cpp index 196cb41c41..65a24e6041 100644 --- a/src/plugins/analyzerbase/analyzerrunconfigwidget.cpp +++ b/src/plugins/analyzerbase/analyzerrunconfigwidget.cpp @@ -30,6 +30,7 @@ #include "analyzerrunconfigwidget.h" +#include <utils/detailswidget.h> #include <utils/qtcassert.h> #include <QDebug> @@ -40,32 +41,16 @@ #include <QPushButton> namespace Analyzer { -namespace Internal { -AnalyzerToolDetailWidget::AnalyzerToolDetailWidget(AbstractAnalyzerSubConfig *config, QWidget *parent) - : Utils::DetailsWidget(parent) +AnalyzerRunConfigWidget::AnalyzerRunConfigWidget(ProjectExplorer::IRunConfigurationAspect *aspect) { - QTC_ASSERT(config!=0, return); - - // update summary text - setSummaryText(tr("<strong>%1</strong> settings").arg(config->displayName())); - - // create config widget - QWidget *configWidget = config->createConfigWidget(this); - setWidget(configWidget); -} - -AnalyzerRunConfigWidget::AnalyzerRunConfigWidget() -{ - QVBoxLayout *layout = new QVBoxLayout(this); - layout->setContentsMargins(0, 0, 0, 0); + m_aspect = aspect; + m_config = aspect->projectSettings(); - QWidget *globalSetting = new QWidget(this); + QWidget *globalSetting = new QWidget; QHBoxLayout *globalSettingLayout = new QHBoxLayout(globalSetting); globalSettingLayout->setContentsMargins(0, 0, 0, 0); - layout->addWidget(globalSetting); - QLabel *label = new QLabel(tr("Analyzer settings:"), globalSetting); - globalSettingLayout->addWidget(label); + m_settingsCombo = new QComboBox(globalSetting); m_settingsCombo->addItems(QStringList() << QApplication::translate("ProjectExplorer::Internal::EditorSettingsPropertiesPage", "Global") @@ -80,52 +65,47 @@ AnalyzerRunConfigWidget::AnalyzerRunConfigWidget() connect(m_restoreButton, SIGNAL(clicked()), this, SLOT(restoreGlobal())); globalSettingLayout->addStretch(2); - m_subConfigWidget = new QWidget(this); - QVBoxLayout *subConfigLayout = new QVBoxLayout(m_subConfigWidget); - subConfigLayout->setContentsMargins(0, 0, 0, 0); - layout->addWidget(m_subConfigWidget); -} + QWidget *innerPane = new QWidget; + m_configWidget = m_config->createConfigWidget(innerPane); -QString AnalyzerRunConfigWidget::displayName() const -{ - return tr("Analyzer Settings"); -} + QVBoxLayout *layout = new QVBoxLayout(innerPane); + layout->setContentsMargins(0, 0, 0, 0); + layout->addWidget(globalSetting); + layout->addWidget(m_configWidget); -void AnalyzerRunConfigWidget::setRunConfigurationAspect(AnalyzerRunConfigurationAspect *aspect) -{ - QTC_ASSERT(aspect, return); - m_aspect = aspect; + m_details = new Utils::DetailsWidget; + m_details->setWidget(innerPane); - // add config widget for each sub config - foreach (AbstractAnalyzerSubConfig *config, m_aspect->customSubConfigs()) { - QWidget *widget = new AnalyzerToolDetailWidget(config); - m_subConfigWidget->layout()->addWidget(widget); - } - setDetailEnabled(!m_aspect->isUsingGlobalSettings()); - m_settingsCombo->setCurrentIndex(m_aspect->isUsingGlobalSettings() ? 0 : 1); - m_restoreButton->setEnabled(!m_aspect->isUsingGlobalSettings()); + QVBoxLayout *outerLayout = new QVBoxLayout(this); + outerLayout->addWidget(m_details); + outerLayout->setContentsMargins(0, 0, 0, 0); + + chooseSettings(m_aspect->isUsingGlobalSettings() ? 0 : 1); } -void AnalyzerRunConfigWidget::setDetailEnabled(bool value) +QString AnalyzerRunConfigWidget::displayName() const { - QList<AnalyzerToolDetailWidget*> details = findChildren<AnalyzerToolDetailWidget*>(); - foreach (AnalyzerToolDetailWidget *detail, details) - detail->widget()->setEnabled(value); + return m_aspect->displayName(); } void AnalyzerRunConfigWidget::chooseSettings(int setting) { QTC_ASSERT(m_aspect, return); - setDetailEnabled(setting != 0); - m_aspect->setUsingGlobalSettings(setting == 0); - m_restoreButton->setEnabled(!m_aspect->isUsingGlobalSettings()); + bool isCustom = (setting == 1); + + m_settingsCombo->setCurrentIndex(setting); + m_aspect->setUsingGlobalSettings(!isCustom); + m_configWidget->setEnabled(isCustom); + m_restoreButton->setEnabled(isCustom); + m_details->setSummaryText(isCustom + ? tr("Use <strong>Customized Settings<strong>") + : tr("Use <strong>Global Settings<strong>")); } void AnalyzerRunConfigWidget::restoreGlobal() { QTC_ASSERT(m_aspect, return); - m_aspect->resetCustomToGlobalSettings(); + m_aspect->resetProjectToGlobalSettings(); } -} // namespace Internal } // namespace Analyzer |