void tst_QUndoGroup::setActive() { QUndoGroup group; QUndoStack stack1(&group), stack2(&group); QCOMPARE(group.activeStack(), (QUndoStack*)0); QCOMPARE(stack1.isActive(), false); QCOMPARE(stack2.isActive(), false); QUndoStack stack3; QCOMPARE(stack3.isActive(), true); group.addStack(&stack3); QCOMPARE(stack3.isActive(), false); stack1.setActive(); QCOMPARE(group.activeStack(), &stack1); QCOMPARE(stack1.isActive(), true); QCOMPARE(stack2.isActive(), false); QCOMPARE(stack3.isActive(), false); group.setActiveStack(&stack2); QCOMPARE(group.activeStack(), &stack2); QCOMPARE(stack1.isActive(), false); QCOMPARE(stack2.isActive(), true); QCOMPARE(stack3.isActive(), false); group.removeStack(&stack2); QCOMPARE(group.activeStack(), (QUndoStack*)0); QCOMPARE(stack1.isActive(), false); QCOMPARE(stack2.isActive(), true); QCOMPARE(stack3.isActive(), false); group.removeStack(&stack2); QCOMPARE(group.activeStack(), (QUndoStack*)0); QCOMPARE(stack1.isActive(), false); QCOMPARE(stack2.isActive(), true); QCOMPARE(stack3.isActive(), false); }
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; }