diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2017-09-14 15:18:50 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2017-09-19 08:42:20 +0000 |
commit | f4ff420036656e453c26d1502bf1b8f96f4cea59 (patch) | |
tree | 48fc7b227dafa0c57293514d52e3ddcb1584125d /src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp | |
parent | 632f2a77098e57eeecdaac39efd32741dfc68e76 (diff) |
CMake: Improve delegates for CMake configuration
Change-Id: Ib1d2bfca1b2faafd36c53f24c6649e73ee0af190
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp')
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp index 8189e7b98e..c0531ebf37 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp @@ -34,9 +34,11 @@ #include <coreplugin/icore.h> #include <coreplugin/find/itemviewfind.h> #include <projectexplorer/kitmanager.h> +#include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/target.h> +#include <utils/asconst.h> #include <utils/detailswidget.h> #include <utils/fancylineedit.h> #include <utils/headerviewstretcher.h> @@ -46,12 +48,14 @@ #include <QBoxLayout> #include <QCheckBox> +#include <QComboBox> #include <QFrame> #include <QGridLayout> #include <QLabel> #include <QPushButton> #include <QSortFilterProxyModel> #include <QSpacerItem> +#include <QStyledItemDelegate> #include <QMenu> namespace CMakeProjectManager { @@ -161,7 +165,8 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) m_configView->setSelectionMode(QAbstractItemView::SingleSelection); m_configView->setSelectionBehavior(QAbstractItemView::SelectItems); m_configView->setFrameShape(QFrame::NoFrame); - m_configView->setItemDelegate(new ConfigModelItemDelegate(m_configView)); + m_configView->setItemDelegate(new ConfigModelItemDelegate(m_buildConfiguration->project()->projectDirectory(), + m_configView)); QFrame *findWrapper = Core::ItemViewFind::createSearchableWrapper(m_configView, Core::ItemViewFind::LightColored); findWrapper->setFrameStyle(QFrame::StyledPanel); @@ -221,14 +226,17 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) if (m_buildConfiguration->isParsing()) m_showProgressTimer.start(); - else + else { m_configModel->setConfiguration(m_buildConfiguration->completeCMakeConfiguration()); + m_configView->expandAll(); + } connect(m_buildConfiguration->target()->project(), &ProjectExplorer::Project::parsingFinished, this, [this, buildDirChooser, stretcher]() { - updateButtonState(); m_configModel->setConfiguration(m_buildConfiguration->completeCMakeConfiguration()); + m_configView->expandAll(); stretcher->stretch(); + updateButtonState(); buildDirChooser->triggerChanged(); // refresh valid state... m_showProgressTimer.stop(); m_progressIndicator->hide(); @@ -238,6 +246,10 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) m_showProgressTimer.stop(); m_progressIndicator->hide(); }); + connect(m_configTextFilterModel, &QAbstractItemModel::modelReset, this, [this, stretcher]() { + m_configView->expandAll(); + stretcher->stretch(); + }); connect(m_configModel, &QAbstractItemModel::dataChanged, this, &CMakeBuildSettingsWidget::updateButtonState); @@ -321,10 +333,15 @@ void CMakeBuildSettingsWidget::updateButtonState() void CMakeBuildSettingsWidget::updateAdvancedCheckBox() { - if (m_showAdvancedCheckBox->isChecked()) + if (m_showAdvancedCheckBox->isChecked()) { + m_configFilterModel->setSourceModel(nullptr); m_configTextFilterModel->setSourceModel(m_configModel); - else + + } else { + m_configTextFilterModel->setSourceModel(nullptr); + m_configFilterModel->setSourceModel(m_configModel); m_configTextFilterModel->setSourceModel(m_configFilterModel); + } } void CMakeBuildSettingsWidget::updateFromKit() |