Extended undo/redo framework into ObjectEditor.
This commit is contained in:
@@ -81,9 +81,15 @@ void LabelModel::restore( const LabelModel *savedModel )
|
||||
mFrame = savedModel->mFrame;
|
||||
mRotate = savedModel->mRotate;
|
||||
|
||||
foreach ( LabelModelObject* object, savedModel->mObjectList )
|
||||
foreach ( LabelModelObject* savedObject, savedModel->mObjectList )
|
||||
{
|
||||
mObjectList.append( object->clone() );
|
||||
LabelModelObject* object = savedObject->clone();
|
||||
|
||||
object->setParent( this );
|
||||
mObjectList << object;
|
||||
|
||||
connect( object, SIGNAL(changed()), this, SLOT(onObjectChanged()) );
|
||||
connect( object, SIGNAL(moved()), this, SLOT(onObjectMoved()) );
|
||||
}
|
||||
|
||||
// Emit signals based on potential changes
|
||||
|
||||
@@ -168,7 +168,7 @@ void MainWindow::setModel( LabelModel *label )
|
||||
|
||||
mPropertiesView->setModel( mModel, mUndoRedoModel );
|
||||
mLabelEditor->setModel( mModel, mUndoRedoModel );
|
||||
mObjectEditor->setModel( mModel );
|
||||
mObjectEditor->setModel( mModel, mUndoRedoModel );
|
||||
mPrintView->setModel( mModel );
|
||||
|
||||
mContents->setEnabled( true );
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "LabelModel.h"
|
||||
#include "LabelModelObject.h"
|
||||
#include "LabelModelBoxObject.h"
|
||||
#include "UndoRedoModel.h"
|
||||
|
||||
#include "Settings.h"
|
||||
|
||||
@@ -51,9 +52,10 @@ ObjectEditor::ObjectEditor( QWidget *parent )
|
||||
}
|
||||
|
||||
|
||||
void ObjectEditor::setModel( LabelModel* model )
|
||||
void ObjectEditor::setModel( LabelModel* model, UndoRedoModel* undoRedoModel )
|
||||
{
|
||||
mModel = model;
|
||||
mUndoRedoModel = undoRedoModel;
|
||||
|
||||
connect( mModel, SIGNAL(sizeChanged()), this, SLOT(onLabelSizeChanged()) );
|
||||
connect( mModel, SIGNAL(selectionChanged()), this, SLOT(onSelectionChanged()) );
|
||||
@@ -277,6 +279,8 @@ void ObjectEditor::onLineControlsChanged()
|
||||
{
|
||||
mBlocked = true;
|
||||
|
||||
mUndoRedoModel->checkpoint( tr("Line") );
|
||||
|
||||
mObject->setLineWidth( glabels::Distance::pt(lineWidthSpin->value()) );
|
||||
mObject->setLineColorNode( lineColorButton->colorNode() );
|
||||
|
||||
@@ -291,6 +295,8 @@ void ObjectEditor::onFillControlsChanged()
|
||||
{
|
||||
mBlocked = true;
|
||||
|
||||
mUndoRedoModel->checkpoint( tr("Fill") );
|
||||
|
||||
mObject->setFillColorNode( fillColorButton->colorNode() );
|
||||
|
||||
mBlocked = false;
|
||||
@@ -304,6 +310,8 @@ void ObjectEditor::onPositionControlsChanged()
|
||||
{
|
||||
mBlocked = true;
|
||||
|
||||
mUndoRedoModel->checkpoint( tr("Move") );
|
||||
|
||||
glabels::Distance x = glabels::Distance(posXSpin->value(), mUnits);
|
||||
glabels::Distance y = glabels::Distance(posYSpin->value(), mUnits);
|
||||
|
||||
@@ -320,6 +328,8 @@ void ObjectEditor::onRectSizeControlsChanged()
|
||||
{
|
||||
mBlocked = true;
|
||||
|
||||
mUndoRedoModel->checkpoint( tr("Size") );
|
||||
|
||||
glabels::Distance spinW = glabels::Distance(sizeWSpin->value(), mUnits);
|
||||
glabels::Distance spinH = glabels::Distance(sizeHSpin->value(), mUnits);
|
||||
|
||||
@@ -352,6 +362,8 @@ void ObjectEditor::onShadowControlsChanged()
|
||||
{
|
||||
mBlocked = true;
|
||||
|
||||
mUndoRedoModel->checkpoint( tr("Shadow") );
|
||||
|
||||
mObject->setShadow( shadowEnableCheck->isChecked() );
|
||||
mObject->setShadowX( glabels::Distance(shadowXSpin->value(), mUnits) );
|
||||
mObject->setShadowY( glabels::Distance(shadowYSpin->value(), mUnits) );
|
||||
|
||||
@@ -24,9 +24,10 @@
|
||||
#include "ui_ObjectEditor.h"
|
||||
#include "libglabels/Distance.h"
|
||||
|
||||
|
||||
class LabelModel; // Forward reference
|
||||
class LabelModelObject; // Forward reference
|
||||
// Forward references
|
||||
class LabelModel;
|
||||
class LabelModelObject;
|
||||
class UndoRedoModel;
|
||||
|
||||
|
||||
///
|
||||
@@ -47,7 +48,7 @@ public:
|
||||
/////////////////////////////////
|
||||
// Public methods
|
||||
/////////////////////////////////
|
||||
void setModel( LabelModel* model );
|
||||
void setModel( LabelModel* model, UndoRedoModel* undoRedoModel );
|
||||
|
||||
|
||||
/////////////////////////////////
|
||||
@@ -85,6 +86,7 @@ private slots:
|
||||
private:
|
||||
LabelModel* mModel;
|
||||
LabelModelObject* mObject;
|
||||
UndoRedoModel* mUndoRedoModel;
|
||||
|
||||
glabels::Units mUnits;
|
||||
int mSpinDigits;
|
||||
|
||||
Reference in New Issue
Block a user