summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFelix Kälberer <fkaelberer@gmx.de>2017-05-14 23:18:31 +0200
committerFelix Kälberer <fkaelberer@gmx.de>2017-05-17 20:29:23 +0000
commitaccac479e05c0d760f1da9fe653dfee91a1bcea5 (patch)
treef816066aa46460e21fa417ee6afc2eed19a17345 /src
parent4198952214ebb66eb57634593e92d821aea06554 (diff)
downloadqt-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.cpp19
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildsettingswidget.h4
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;