forked from qt-creator/qt-creator
Revert "ProjectExplorer: Use more Ids instead of Kit in KitModel"
This reverts commit 05e7308c08
.
Currently kit cloning crashes, and the trivial fix loses re-foucssing
on the newly cloned kit.
Change-Id: Id34d4430f97ab5825d5203096fbd1551464f80cb
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -176,6 +176,7 @@ public:
|
|||||||
|
|
||||||
Kit *kit(const QModelIndex &);
|
Kit *kit(const QModelIndex &);
|
||||||
KitNode *kitNode(const QModelIndex &);
|
KitNode *kitNode(const QModelIndex &);
|
||||||
|
QModelIndex indexOf(Kit *k) const;
|
||||||
QModelIndex indexOf(Id kitId) const;
|
QModelIndex indexOf(Id kitId) const;
|
||||||
|
|
||||||
void setDefaultKit(const QModelIndex &index);
|
void setDefaultKit(const QModelIndex &index);
|
||||||
@@ -186,7 +187,7 @@ public:
|
|||||||
void apply();
|
void apply();
|
||||||
|
|
||||||
void markForRemoval(Kit *k);
|
void markForRemoval(Kit *k);
|
||||||
Id markForAddition(Kit *baseKit);
|
Kit *markForAddition(Kit *baseKit);
|
||||||
|
|
||||||
void updateVisibility();
|
void updateVisibility();
|
||||||
|
|
||||||
@@ -263,6 +264,12 @@ QModelIndex KitModel::indexOf(Id kitId) const
|
|||||||
return n ? indexForItem(n) : QModelIndex();
|
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)
|
void KitModel::setDefaultKit(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
if (KitNode *n = kitNode(index))
|
if (KitNode *n = kitNode(index))
|
||||||
@@ -341,7 +348,7 @@ void KitModel::markForRemoval(Kit *k)
|
|||||||
validateKitNames();
|
validateKitNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
Id KitModel::markForAddition(Kit *baseKit)
|
Kit *KitModel::markForAddition(Kit *baseKit)
|
||||||
{
|
{
|
||||||
const QString newName = newKitName(baseKit ? baseKit->unexpandedDisplayName() : QString());
|
const QString newName = newKitName(baseKit ? baseKit->unexpandedDisplayName() : QString());
|
||||||
KitNode *node = createNode(nullptr);
|
KitNode *node = createNode(nullptr);
|
||||||
@@ -360,7 +367,7 @@ Id KitModel::markForAddition(Kit *baseKit)
|
|||||||
if (!m_defaultNode)
|
if (!m_defaultNode)
|
||||||
setDefaultNode(node);
|
setDefaultNode(node);
|
||||||
|
|
||||||
return k->id();
|
return k;
|
||||||
}
|
}
|
||||||
|
|
||||||
void KitModel::updateVisibility()
|
void KitModel::updateVisibility()
|
||||||
@@ -618,9 +625,9 @@ void KitOptionsPageWidget::kitSelectionChanged()
|
|||||||
|
|
||||||
void KitOptionsPageWidget::addNewKit()
|
void KitOptionsPageWidget::addNewKit()
|
||||||
{
|
{
|
||||||
Id kitId = m_model->markForAddition(nullptr);
|
Kit *k = m_model->markForAddition(nullptr);
|
||||||
|
|
||||||
QModelIndex newIdx = m_sortModel->mapFromSource(m_model->indexOf(kitId));
|
QModelIndex newIdx = m_sortModel->mapFromSource(m_model->indexOf(k));
|
||||||
m_selectionModel->select(newIdx,
|
m_selectionModel->select(newIdx,
|
||||||
QItemSelectionModel::Clear
|
QItemSelectionModel::Clear
|
||||||
| QItemSelectionModel::SelectCurrent
|
| QItemSelectionModel::SelectCurrent
|
||||||
@@ -641,8 +648,8 @@ void KitOptionsPageWidget::cloneKit()
|
|||||||
if (!current)
|
if (!current)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Id kitId = m_model->markForAddition(current);
|
Kit *k = m_model->markForAddition(current);
|
||||||
QModelIndex newIdx = m_sortModel->mapFromSource(m_model->indexOf(kitId));
|
QModelIndex newIdx = m_sortModel->mapFromSource(m_model->indexOf(k));
|
||||||
m_kitsView->scrollTo(newIdx);
|
m_kitsView->scrollTo(newIdx);
|
||||||
m_selectionModel->select(newIdx,
|
m_selectionModel->select(newIdx,
|
||||||
QItemSelectionModel::Clear
|
QItemSelectionModel::Clear
|
||||||
|
Reference in New Issue
Block a user