CMake: make it possible to insert new vars in project settings

Task-number: QTCREATORBUG-16238
Change-Id: If98acc4f27cabbb606b2fc1017096da626ba1144
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Stanislav Ionascu
2016-05-15 15:57:17 +02:00
committed by Tobias Hunger
parent e6e2c1771b
commit c1d735503b
4 changed files with 60 additions and 2 deletions

View File

@@ -72,7 +72,10 @@ Qt::ItemFlags ConfigModel::flags(const QModelIndex &index) const
else
return Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsSelectable;
} else {
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
if (item.isUserNew)
return flags |= Qt::ItemIsEditable;
return flags;
}
}
@@ -164,7 +167,7 @@ bool ConfigModel::setData(const QModelIndex &index, const QVariant &value, int r
InternalDataItem &item = itemAtRow(index.row());
switch (index.column()) {
case 0:
if (!item.key.isEmpty())
if (!item.key.isEmpty() && !item.isUserNew)
return false;
item.key = newValue;
item.isUserNew = true;
@@ -203,6 +206,25 @@ QVariant ConfigModel::headerData(int section, Qt::Orientation orientation, int r
}
}
void ConfigModel::appendConfiguration(const QString &key,
const QString &value,
const ConfigModel::DataItem::Type type,
const QString &description)
{
DataItem item;
item.key = key;
item.type = type;
item.value = value;
item.description = description;
InternalDataItem internalItem(item);
internalItem.isUserNew = true;
beginResetModel();
m_configuration.append(internalItem);
endResetModel();
}
void ConfigModel::setConfiguration(const QList<ConfigModel::DataItem> &config)
{
QList<DataItem> tmp = config;