diff options
Diffstat (limited to 'sigmodr/models/MapTrainerModel.cpp')
| -rw-r--r-- | sigmodr/models/MapTrainerModel.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sigmodr/models/MapTrainerModel.cpp b/sigmodr/models/MapTrainerModel.cpp index e72c9ae1..14a1ab2b 100644 --- a/sigmodr/models/MapTrainerModel.cpp +++ b/sigmodr/models/MapTrainerModel.cpp @@ -20,6 +20,7 @@ // Model includes #include "MapTrainerTeamMemberModel.h" +#include "GroupModel.h" // Sigmodr includes #include "../MapTrainerUI.h" @@ -77,23 +78,24 @@ void Sigmodr::MapTrainerModel::addObject(Sigmod::Object* object) if (!object) object = qobject_cast<Sigmod::MapTrainer*>(m_object)->newTeamMember(); if (object->className() == "MapTrainerTeamMember") - m_objects.append(new MapTrainerTeamMemberModel(this, qobject_cast<Sigmod::MapTrainerTeamMember*>(object))); + addChild(new MapTrainerTeamMemberModel(this, qobject_cast<Sigmod::MapTrainerTeamMember*>(object))); } void Sigmodr::MapTrainerModel::deleteObject(BaseModel* model) { - const int index = m_objects.indexOf(model); + const int index = find(model); if (0 <= index) { qobject_cast<Sigmod::MapTrainer*>(m_object)->deleteTeamMember(index); m_objects[index]->deleteLater(); m_objects.removeAt(index); + childRowChanged(index); } } void Sigmodr::MapTrainerModel::deleteSelf() { -// qobject_cast<GroupModel*>(m_parent)->deleteObject(this); + qobject_cast<GroupModel*>(m_parent)->deleteObject(this); } bool Sigmodr::MapTrainerModel::setData(const QVariant& value, int role) @@ -129,5 +131,5 @@ void Sigmodr::MapTrainerModel::setupData() { Sigmod::MapTrainer* trainer = qobject_cast<Sigmod::MapTrainer*>(m_object); for (int i = 0; i < trainer->teamMemberCount(); ++i) - m_objects.append(new MapTrainerTeamMemberModel(this, trainer->teamMember(i))); + addChild(new MapTrainerTeamMemberModel(this, trainer->teamMember(i))); } |
