summaryrefslogtreecommitdiff
path: root/src/plugins/analyzerbase/analyzerrunconfigwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/analyzerbase/analyzerrunconfigwidget.cpp')
-rw-r--r--src/plugins/analyzerbase/analyzerrunconfigwidget.cpp82
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