Paste image from clipboard.

This commit is contained in:
Jim Evins
2017-03-11 15:02:16 -05:00
parent 79c5dcde81
commit fe1aa77799
5 changed files with 55 additions and 1 deletions
+9 -1
View File
@@ -29,6 +29,7 @@
#include "LabelModelObject.h" #include "LabelModelObject.h"
#include "LabelModelTextObject.h" #include "LabelModelTextObject.h"
#include "LabelModelImageObject.h"
#include "Region.h" #include "Region.h"
#include "Size.h" #include "Size.h"
#include "XmlLabelCreator.h" #include "XmlLabelCreator.h"
@@ -1406,7 +1407,13 @@ namespace glabels
else if ( mimeData->hasImage() ) else if ( mimeData->hasImage() )
{ {
// Create object from clipboard image // Create object from clipboard image
// TODO: create an image object from image LabelModelImageObject* object = new LabelModelImageObject();
object->setImage( qvariant_cast<QImage>(mimeData->imageData()) );
object->setSize( object->naturalSize() );
object->setPosition( (w()-object->w())/2.0, (h()-object->h())/2.0 );
addObject( object );
unselectAll();
selectObject( object );
} }
else if ( mimeData->hasText() ) else if ( mimeData->hasText() )
{ {
@@ -1416,6 +1423,7 @@ namespace glabels
object->setSize( object->naturalSize() ); object->setSize( object->naturalSize() );
object->setPosition( (w()-object->w())/2.0, (h()-object->h())/2.0 ); object->setPosition( (w()-object->w())/2.0, (h()-object->h())/2.0 );
addObject( object ); addObject( object );
unselectAll();
selectObject( object ); selectObject( object );
} }
} }
+25
View File
@@ -119,6 +119,31 @@ namespace glabels
} }
///
/// Image Property Default Setter
///
void LabelModelImageObject::setImage( const QImage& value )
{
if ( !value.isNull() )
{
if ( mImage )
{
delete mImage;
}
if ( mSvg )
{
delete mSvg;
}
mImage = new QImage(value);
quint16 cs = qChecksum( (const char*)mImage->constBits(), mImage->byteCount() );
mFilenameNode = TextNode( false, QString("%image_%1%").arg( cs ) );
emit changed();
}
}
/// ///
/// naturalSize Property Getter (assumes 72 DPI, i.e. 1pixel == 1pt) /// naturalSize Property Getter (assumes 72 DPI, i.e. 1pixel == 1pt)
/// ///
+5
View File
@@ -62,6 +62,11 @@ namespace glabels
virtual TextNode filenameNode( void ) const; virtual TextNode filenameNode( void ) const;
virtual void setFilenameNode( const TextNode& value ); virtual void setFilenameNode( const TextNode& value );
//
// Image Property: image
//
virtual void setImage( const QImage& value );
// //
// Property: naturalSize // Property: naturalSize
// //
+10
View File
@@ -600,6 +600,16 @@ namespace glabels
} }
///
/// Virtual Image Property Default Setter
/// (Overridden by concrete class)
///
void LabelModelObject::setImage( const QImage& value )
{
// empty
}
/// ///
/// Virtual Line Width Property Default Getter /// Virtual Line Width Property Default Getter
/// (Overridden by concrete class) /// (Overridden by concrete class)
+6
View File
@@ -254,6 +254,12 @@ namespace glabels
virtual void setFilenameNode( const TextNode &value ); virtual void setFilenameNode( const TextNode &value );
//
// Virtual Image Property: image
//
virtual void setImage( const QImage& value );
/////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////
// Shape Properties Virtual Interface // Shape Properties Virtual Interface
/////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////