Initial framework for saving/restoring model state.

This commit is contained in:
Jim Evins
2016-04-28 22:19:56 -04:00
parent c69db1efd7
commit 231dc66c0d
12 changed files with 302 additions and 41 deletions
+43
View File
@@ -48,6 +48,49 @@ LabelModel::LabelModel() : mUntitledInstance(0), mModified(true), mTmplate(0), m
}
///
/// Save model state
///
LabelModel* LabelModel::save() const
{
LabelModel* savedModel = new LabelModel;
savedModel->restore( this );
return savedModel;
}
///
/// Restore model state
///
void LabelModel::restore( const LabelModel *savedModel )
{
// Clear current object list
foreach ( LabelModelObject* object, mObjectList )
{
delete object;
}
mObjectList.clear();
// Now copy state
mUntitledInstance = savedModel->mUntitledInstance;
mModified = savedModel->mModified;
mFileName = savedModel->mFileName;
mCompressionLevel = savedModel->mCompressionLevel;
mTmplate = savedModel->mTmplate;
mFrame = savedModel->mFrame;
mRotate = savedModel->mRotate;
foreach ( LabelModelObject* object, savedModel->mObjectList )
{
mObjectList.append( object->clone() );
}
emit changed();
emit selectionChanged();
}
///
/// Short name.
///