ProjectExplorer: Use more Ids instead of Kit in KitModel

The idea is to slowly move towards a uniform approach to handle the
Kits/Qt Version/Debugger/Toolchain/... managers/settings.

Change-Id: I6ddba968a51d9468bb0dfec74b2fb8b902d11294
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2023-11-08 15:59:22 +01:00
parent 7bd99104e0
commit 05e7308c08

View File

@@ -176,7 +176,6 @@ public:
Kit *kit(const QModelIndex &);
KitNode *kitNode(const QModelIndex &);
QModelIndex indexOf(Kit *k) const;
QModelIndex indexOf(Id kitId) const;
void setDefaultKit(const QModelIndex &index);
@@ -187,7 +186,7 @@ public:
void apply();
void markForRemoval(Kit *k);
Kit *markForAddition(Kit *baseKit);
Id markForAddition(Kit *baseKit);
void updateVisibility();
@@ -264,12 +263,6 @@ QModelIndex KitModel::indexOf(Id kitId) const
return n ? indexForItem(n) : QModelIndex();
}
QModelIndex KitModel::indexOf(Kit *k) const
{
KitNode *n = findWorkingCopy(k);
return n ? indexForItem(n) : QModelIndex();
}
void KitModel::setDefaultKit(const QModelIndex &index)
{
if (KitNode *n = kitNode(index))
@@ -348,7 +341,7 @@ void KitModel::markForRemoval(Kit *k)
validateKitNames();
}
Kit *KitModel::markForAddition(Kit *baseKit)
Id KitModel::markForAddition(Kit *baseKit)
{
const QString newName = newKitName(baseKit ? baseKit->unexpandedDisplayName() : QString());
KitNode *node = createNode(nullptr);
@@ -367,7 +360,7 @@ Kit *KitModel::markForAddition(Kit *baseKit)
if (!m_defaultNode)
setDefaultNode(node);
return k;
return k->id();
}
void KitModel::updateVisibility()
@@ -625,9 +618,9 @@ void KitOptionsPageWidget::kitSelectionChanged()
void KitOptionsPageWidget::addNewKit()
{
Kit *k = m_model->markForAddition(nullptr);
Id kitId = m_model->markForAddition(nullptr);
QModelIndex newIdx = m_sortModel->mapFromSource(m_model->indexOf(k));
QModelIndex newIdx = m_sortModel->mapFromSource(m_model->indexOf(kitId));
m_selectionModel->select(newIdx,
QItemSelectionModel::Clear
| QItemSelectionModel::SelectCurrent
@@ -648,8 +641,8 @@ void KitOptionsPageWidget::cloneKit()
if (!current)
return;
Kit *k = m_model->markForAddition(current);
QModelIndex newIdx = m_sortModel->mapFromSource(m_model->indexOf(k));
Id kitId = m_model->markForAddition(current);
QModelIndex newIdx = m_sortModel->mapFromSource(m_model->indexOf(kitId));
m_kitsView->scrollTo(newIdx);
m_selectionModel->select(newIdx,
QItemSelectionModel::Clear