Paste image from clipboard.
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
|
||||
#include "LabelModelObject.h"
|
||||
#include "LabelModelTextObject.h"
|
||||
#include "LabelModelImageObject.h"
|
||||
#include "Region.h"
|
||||
#include "Size.h"
|
||||
#include "XmlLabelCreator.h"
|
||||
@@ -1406,7 +1407,13 @@ namespace glabels
|
||||
else if ( mimeData->hasImage() )
|
||||
{
|
||||
// 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() )
|
||||
{
|
||||
@@ -1416,6 +1423,7 @@ namespace glabels
|
||||
object->setSize( object->naturalSize() );
|
||||
object->setPosition( (w()-object->w())/2.0, (h()-object->h())/2.0 );
|
||||
addObject( object );
|
||||
unselectAll();
|
||||
selectObject( object );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
///
|
||||
|
||||
@@ -62,6 +62,11 @@ namespace glabels
|
||||
virtual TextNode filenameNode( void ) const;
|
||||
virtual void setFilenameNode( const TextNode& value );
|
||||
|
||||
//
|
||||
// Image Property: image
|
||||
//
|
||||
virtual void setImage( const QImage& value );
|
||||
|
||||
//
|
||||
// Property: naturalSize
|
||||
//
|
||||
|
||||
@@ -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
|
||||
/// (Overridden by concrete class)
|
||||
|
||||
@@ -254,6 +254,12 @@ namespace glabels
|
||||
virtual void setFilenameNode( const TextNode &value );
|
||||
|
||||
|
||||
//
|
||||
// Virtual Image Property: image
|
||||
//
|
||||
virtual void setImage( const QImage& value );
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////
|
||||
// Shape Properties Virtual Interface
|
||||
///////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user