void tst_QUndoGroup::deleteStack() { QUndoGroup group; QUndoStack *stack1 = new QUndoStack(&group); QCOMPARE(group.stacks(), QList<QUndoStack*>() << stack1); QCOMPARE(group.activeStack(), (QUndoStack*)0); stack1->setActive(); QCOMPARE(group.activeStack(), stack1); QUndoStack *stack2 = new QUndoStack(&group); QCOMPARE(group.stacks(), QList<QUndoStack*>() << stack1 << stack2); QCOMPARE(group.activeStack(), stack1); QUndoStack *stack3 = new QUndoStack(&group); QCOMPARE(group.stacks(), QList<QUndoStack*>() << stack1 << stack2 << stack3); QCOMPARE(group.activeStack(), stack1); delete stack2; QCOMPARE(group.stacks(), QList<QUndoStack*>() << stack1 << stack3); QCOMPARE(group.activeStack(), stack1); delete stack1; QCOMPARE(group.stacks(), QList<QUndoStack*>() << stack3); QCOMPARE(group.activeStack(), (QUndoStack*)0); stack3->setActive(false); QCOMPARE(group.activeStack(), (QUndoStack*)0); stack3->setActive(true); QCOMPARE(group.activeStack(), stack3); group.removeStack(stack3); QCOMPARE(group.stacks(), QList<QUndoStack*>()); QCOMPARE(group.activeStack(), (QUndoStack*)0); delete stack3; }
void tst_QUndoGroup::addRemoveStack() { QUndoGroup group; QUndoStack stack1(&group); QCOMPARE(group.stacks(), QList<QUndoStack*>() << &stack1); QUndoStack stack2; group.addStack(&stack2); QCOMPARE(group.stacks(), QList<QUndoStack*>() << &stack1 << &stack2); group.addStack(&stack1); QCOMPARE(group.stacks(), QList<QUndoStack*>() << &stack1 << &stack2); group.removeStack(&stack1); QCOMPARE(group.stacks(), QList<QUndoStack*>() << &stack2); group.removeStack(&stack1); QCOMPARE(group.stacks(), QList<QUndoStack*>() << &stack2); group.removeStack(&stack2); QCOMPARE(group.stacks(), QList<QUndoStack*>()); }