CMake: Don't filter out new keys

Previously, if you have a filter set in the CMake Settings
variable list, adding a new one would immediately hide it,
as the text filter hides the "<UNSET>" key. This made it look
like the adding failed.

With this change, new Variables are always shown so
they stay editable to user.

Change-Id: I9c2eb7f9983b23e1cd3aa50f589142551caaf56f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Marcus Tillmanns
2022-10-17 13:28:59 +02:00
parent 4266f612e6
commit f7a2132598
5 changed files with 32 additions and 1 deletions

View File

@@ -236,6 +236,7 @@ CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildSystem *bs) :
m_configTextFilterModel->setSourceModel(m_configFilterModel);
m_configTextFilterModel->setSortRole(Qt::DisplayRole);
m_configTextFilterModel->setFilterKeyColumn(-1);
m_configTextFilterModel->setNewItemRole(ConfigModel::ItemIsUserNew);
connect(m_configTextFilterModel, &QAbstractItemModel::layoutChanged, this, [this]() {
QModelIndex selectedIdx = m_configView->currentIndex();

View File

@@ -546,6 +546,9 @@ QVariant ConfigModelTreeItem::data(int column, int role) const
if (role == ConfigModel::ItemIsInitialRole) {
return dataItem->isInitial ? "1" : "0";
}
if (role == ConfigModel::ItemIsUserNew) {
return dataItem->isUserNew ? "1" : "0";
}
auto fontRole = [this]() -> QFont {
QFont font;

View File

@@ -18,7 +18,8 @@ class ConfigModel : public Utils::TreeModel<>
public:
enum Roles {
ItemIsAdvancedRole = Qt::UserRole,
ItemIsInitialRole
ItemIsInitialRole,
ItemIsUserNew,
};
struct DataItem {