aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2017-09-14 15:18:50 +0200
committerTobias Hunger <tobias.hunger@qt.io>2017-09-19 08:42:20 +0000
commitf4ff420036656e453c26d1502bf1b8f96f4cea59 (patch)
tree48fc7b227dafa0c57293514d52e3ddcb1584125d /src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp
parent632f2a77098e57eeecdaac39efd32741dfc68e76 (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.cpp27
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()