diff options
author | Felix Kälberer <fkaelberer@gmx.de> | 2017-05-14 23:18:31 +0200 |
---|---|---|
committer | Felix Kälberer <fkaelberer@gmx.de> | 2017-05-17 20:29:23 +0000 |
commit | accac479e05c0d760f1da9fe653dfee91a1bcea5 (patch) | |
tree | f816066aa46460e21fa417ee6afc2eed19a17345 /src | |
parent | 4198952214ebb66eb57634593e92d821aea06554 (diff) | |
download | qt-creator-accac479e05c0d760f1da9fe653dfee91a1bcea5.tar.gz |
CMake: Filter CMake variables
Add a text field to filter CMake variables in the CMake project
configuration view. As in the cmake-gui, the filter does a simple
string search over all variable names and values.
Task-number: QTCREATORBUG-17973
Change-Id: Id7219c16509c620c39978cb05c5e0e62cf9c19df
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp | 19 | ||||
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.h | 4 |
2 files changed, 21 insertions, 2 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp index f77acdac10..fe85283ad2 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.cpp @@ -38,6 +38,7 @@ #include <projectexplorer/target.h> #include <utils/detailswidget.h> +#include <utils/fancylineedit.h> #include <utils/headerviewstretcher.h> #include <utils/pathchooser.h> #include <utils/itemviews.h> @@ -63,7 +64,8 @@ namespace Internal { CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) : m_buildConfiguration(bc), m_configModel(new ConfigModel(this)), - m_configFilterModel(new QSortFilterProxyModel) + m_configFilterModel(new QSortFilterProxyModel), + m_configTextFilterModel(new QSortFilterProxyModel) { QTC_CHECK(bc); @@ -127,6 +129,12 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) mainLayout->addItem(new QSpacerItem(20, 10), row, 0); ++row; + m_filterEdit = new Utils::FancyLineEdit; + m_filterEdit->setPlaceholderText(tr("Filter")); + m_filterEdit->setFiltering(true); + mainLayout->addWidget(m_filterEdit, row, 0, 1, 2); + + ++row; auto tree = new Utils::TreeView; connect(tree, &Utils::TreeView::activated, tree, [tree](const QModelIndex &idx) { tree->edit(idx); }); @@ -134,7 +142,10 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) m_configFilterModel->setSourceModel(m_configModel); m_configFilterModel->setFilterKeyColumn(2); m_configFilterModel->setFilterFixedString(QLatin1String("0")); - m_configView->setModel(m_configFilterModel); + m_configTextFilterModel->setSourceModel(m_configFilterModel); + m_configTextFilterModel->setFilterKeyColumn(-1); + m_configTextFilterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); + m_configView->setModel(m_configTextFilterModel); m_configView->setMinimumHeight(300); m_configView->setRootIsDecorated(false); m_configView->setUniformRowHeights(true); @@ -226,6 +237,9 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) connect(m_showAdvancedCheckBox, &QCheckBox::stateChanged, this, &CMakeBuildSettingsWidget::updateAdvancedCheckBox); + connect(m_filterEdit, &QLineEdit::textChanged, + m_configTextFilterModel, &QSortFilterProxyModel::setFilterFixedString); + connect(m_resetButton, &QPushButton::clicked, m_configModel, &ConfigModel::resetAllChanges); connect(m_reconfigureButton, &QPushButton::clicked, this, [this]() { m_buildConfiguration->setCurrentCMakeConfiguration(m_configModel->configurationChanges()); @@ -274,6 +288,7 @@ void CMakeBuildSettingsWidget::setError(const QString &message) m_editButton->setEnabled(!showError); m_resetButton->setEnabled(!showError); m_showAdvancedCheckBox->setEnabled(!showError); + m_filterEdit->setEnabled(!showError); } void CMakeBuildSettingsWidget::setWarning(const QString &message) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.h b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.h index 06242d5fe1..e76a2a6bbf 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.h @@ -40,6 +40,8 @@ class QSortFilterProxyModel; class QMenu; QT_END_NAMESPACE +namespace Utils { class FancyLineEdit; } + namespace CMakeProjectManager { class ConfigModel; @@ -66,6 +68,7 @@ private: QTreeView *m_configView; ConfigModel *m_configModel; QSortFilterProxyModel *m_configFilterModel; + QSortFilterProxyModel *m_configTextFilterModel; Utils::ProgressIndicator *m_progressIndicator; QPushButton *m_addButton; QMenu *m_addButtonMenu; @@ -74,6 +77,7 @@ private: QCheckBox *m_showAdvancedCheckBox; QPushButton *m_reconfigureButton; QTimer m_showProgressTimer; + Utils::FancyLineEdit *m_filterEdit; QLabel *m_errorLabel; QLabel *m_warningLabel; QLabel *m_errorMessageLabel; |