Stop suppressing signals in Group dtor.

That way we emit entry/group removed signals.

Move cleanupParent() call to the bottom so we
maintain the group tree structure for objects that
connect to those signals.
This commit is contained in:
Felix Geyer 2013-03-22 20:57:18 +01:00
parent 72d17c045f
commit c7593a3047
3 changed files with 8 additions and 10 deletions

View File

@ -36,19 +36,15 @@ Group::Group()
Group::~Group()
{
cleanupParent();
this->blockSignals(true);
// Destroy entries and children manually so DeletedObjects can be added
// to database.
QList<Entry*> entries = m_entries;
Q_FOREACH (Entry* entry, entries) {
entry->blockSignals(true);
delete entry;
}
QList<Group*> children = m_children;
Q_FOREACH (Group* group, children) {
group->blockSignals(true);
delete group;
}
@ -58,6 +54,8 @@ Group::~Group()
delGroup.uuid = m_uuid;
m_db->addDeletedObject(delGroup);
}
cleanupParent();
}
Group* Group::createRecycleBin()

View File

@ -262,8 +262,8 @@ void TestGroup::testDeleteSignals()
delete groupChild;
QVERIFY(groupRoot->children().isEmpty());
QCOMPARE(spyAboutToRemove.count(), 1);
QCOMPARE(spyRemoved.count(), 1);
QCOMPARE(spyAboutToRemove.count(), 2);
QCOMPARE(spyRemoved.count(), 2);
delete db;
@ -289,8 +289,8 @@ void TestGroup::testDeleteSignals()
QSignalSpy spyEntryRemoved2(group2, SIGNAL(entryRemoved(Entry*)));
delete group2;
QCOMPARE(spyEntryAboutToRemove2.count(), 0);
QCOMPARE(spyEntryRemoved2.count(), 0);
QCOMPARE(spyEntryAboutToRemove2.count(), 1);
QCOMPARE(spyEntryRemoved2.count(), 1);
delete db2;
}

View File

@ -135,8 +135,8 @@ void TestGroupModel::test()
delete group12;
QCOMPARE(spyAboutToAdd.count(), 1);
QCOMPARE(spyAdded.count(), 1);
QCOMPARE(spyAboutToRemove.count(), 1);
QCOMPARE(spyRemoved.count(), 1);
QCOMPARE(spyAboutToRemove.count(), 2);
QCOMPARE(spyRemoved.count(), 2);
QCOMPARE(spyAboutToMove.count(), 3);
QCOMPARE(spyMoved.count(), 3);
QVERIFY(!index12.isValid());