undoRedoRegistrationToolBox::undoRedoRegistrationToolBox(QWidget *parent) : medRegistrationAbstractToolBox(parent), d(new undoRedoRegistrationToolBoxPrivate) { // Undo/redo Buttons d->undoButton = new QPushButton(QIcon(":undoRedoRegistration/icons/ArrowDown.png"),tr("Undo"),this); d->redoButton = new QPushButton(QIcon(":undoRedoRegistration/icons/ArrowUp.png"),tr("Redo"),this); d->undoButton->setEnabled(false); d->redoButton->setEnabled(false); d->resetButton = new QPushButton(tr("Reset"),this); d->resetButton->setEnabled(false); connect(d->undoButton,SIGNAL(clicked()),this,SLOT(onUndo())); connect(d->redoButton,SIGNAL(clicked()),this,SLOT(onRedo())); connect(d->resetButton,SIGNAL(clicked()),registrationFactory::instance(),SLOT(reset())); d->arrowCurrentStep = QIcon(":undoRedoRegistration/icons/BlueArrowRight.png"); d->currentStep = -1; d->m_UndoRedo = new undoRedoRegistration(); // Transformation Stack d->transformationStack = new QListWidget(this); QVBoxLayout *layoutButtonUndoRedo = new QVBoxLayout; layoutButtonUndoRedo->addWidget(d->redoButton); layoutButtonUndoRedo->addWidget(d->undoButton); layoutButtonUndoRedo->addWidget(d->resetButton); QHBoxLayout *layoutButtonsStack = new QHBoxLayout; layoutButtonsStack->addLayout(layoutButtonUndoRedo); layoutButtonsStack->addWidget(d->transformationStack); d->transformationStack->setFixedSize(180,160); QWidget * layoutSection = new QWidget(this); layoutSection->setLayout(layoutButtonsStack); addWidget(layoutSection); this->setTitle(tr("Stack of transformations")); connect(registrationFactory::instance(),SIGNAL(transformationAdded(int,QString)),this,SLOT(addTransformationIntoList(int, QString))); connect(registrationFactory::instance(),SIGNAL(transformationStackReset()),this,SLOT(onTransformationStackReset())); }
void registrationFactory::reset(){ if (getGeneralTransform()->GetNumberOfTransformsInStack()>0){ d->m_Factory->Reset(); emit transformationStackReset(); } }