UserVariables branch merge

This commit is contained in:
gitlost
2019-08-21 03:37:56 +01:00
92 changed files with 3624 additions and 1283 deletions
+64 -7
View File
@@ -57,13 +57,17 @@ namespace glabels
Model::Model()
: mUntitledInstance(0), mModified(true), mRotate(false)
{
mVariables = new Variables();
mMerge = new merge::None();
connect( mVariables, SIGNAL(changed()), this, SLOT(onVariablesChanged()) );
}
Model::Model( merge::Merge* merge )
Model::Model( merge::Merge* merge, Variables* variables )
: mUntitledInstance(0), mModified(true), mRotate(false)
{
mVariables = variables; // Shared
mMerge = merge; // Shared
}
@@ -73,7 +77,8 @@ namespace glabels
///
Model::~Model()
{
// Final instance of mMerge to be deleted by Model owner
qDeleteAll( mObjectList );
// Final instance of mMerge and mVariables to be deleted by Model owner
}
@@ -82,7 +87,7 @@ namespace glabels
///
Model* Model::save() const
{
auto* savedModel = new Model( mMerge ); // mMerge shared between models
auto* savedModel = new Model( mMerge, mVariables ); // mMerge and mVariables shared between models
if ( mFileName.isEmpty() && mUntitledInstance == 0 )
{
@@ -283,6 +288,38 @@ namespace glabels
}
///
/// Get directory as a QDir.
///
QDir Model::dir() const
{
if ( mFileName.isEmpty() )
{
return QDir::current();
}
else
{
return QFileInfo( mFileName ).absoluteDir();
}
}
///
/// Get directory as a path.
///
QString Model::dirPath() const
{
if ( mFileName.isEmpty() )
{
return QDir::currentPath();
}
else
{
return QFileInfo( mFileName ).absolutePath();
}
}
///
/// Get short name.
///
@@ -309,6 +346,15 @@ namespace glabels
}
///
/// Get variables object
///
Variables* Model::variables() const
{
return mVariables;
}
///
/// Get merge object
///
@@ -458,6 +504,17 @@ namespace glabels
}
///
/// Variables Changed Slot
///
void Model::onVariablesChanged()
{
setModified();
emit changed();
emit variablesChanged();
}
///
/// Merge Source Changed Slot
///
@@ -1366,7 +1423,7 @@ namespace glabels
QClipboard *clipboard = QApplication::clipboard();
QByteArray buffer;
XmlLabelCreator::serializeObjects( getSelection(), buffer );
XmlLabelCreator::serializeObjects( getSelection(), this, buffer );
auto *mimeData = new QMimeData;
mimeData->setData( MIME_TYPE, buffer );
@@ -1422,7 +1479,7 @@ namespace glabels
{
// Native objects
QByteArray buffer = mimeData->data( MIME_TYPE );
QList <ModelObject*> objects = XmlLabelParser::deserializeObjects( buffer );
QList <ModelObject*> objects = XmlLabelParser::deserializeObjects( buffer, this );
unselectAll();
foreach ( ModelObject* object, objects )
@@ -1459,11 +1516,11 @@ namespace glabels
///
/// Draw label objects
///
void Model::draw( QPainter* painter, bool inEditor, merge::Record* record ) const
void Model::draw( QPainter* painter, bool inEditor, merge::Record* record, Variables* variables ) const
{
foreach ( ModelObject* object, mObjectList )
{
object->draw( painter, inEditor, record );
object->draw( painter, inEditor, record, variables );
}
}