Added image objects to xml creator and parser.

This commit is contained in:
Jim Evins
2017-01-01 19:52:07 -05:00
parent d5508a2862
commit 719604ca40
3 changed files with 68 additions and 8 deletions
+2 -1
View File
@@ -505,7 +505,8 @@ void ObjectEditor::onImageFileButtonClicked()
void ObjectEditor::onImageKeySelected( QString key )
{
qDebug() << "Key = " << key;
mUndoRedoModel->checkpoint( tr("Set image") );
mObject->setFilenameNode( TextNode( true, key ) );
}
+32 -1
View File
@@ -142,6 +142,10 @@ XmlLabelCreator::addObjectsToNode( QDomElement &parent, const QList<LabelModelOb
{
createObjectLineNode( parent, lineObject );
}
else if ( LabelModelImageObject* imageObject = dynamic_cast<LabelModelImageObject*>(object) )
{
createObjectImageNode( parent, imageObject );
}
else if ( LabelModelTextObject* textObject = dynamic_cast<LabelModelTextObject*>(object) )
{
createObjectTextNode( parent, textObject );
@@ -280,7 +284,34 @@ XmlLabelCreator::createObjectLineNode( QDomElement &parent, const LabelModelLine
void
XmlLabelCreator::createObjectImageNode( QDomElement &parent, const LabelModelImageObject* object )
{
// TODO
QDomDocument doc = parent.ownerDocument();
QDomElement node = doc.createElement( "Object-image" );
parent.appendChild( node );
/* position attrs */
glabels::XmlUtil::setLengthAttr( node, "x", object->x0() );
glabels::XmlUtil::setLengthAttr( node, "y", object->y0() );
/* size attrs */
glabels::XmlUtil::setLengthAttr( node, "w", object->w() );
glabels::XmlUtil::setLengthAttr( node, "h", object->h() );
/* file attrs */
glabels::XmlUtil::setLengthAttr( node, "line_width", object->lineWidth() );
if ( object->filenameNode().isField() )
{
glabels::XmlUtil::setStringAttr( node, "src_field", object->filenameNode().data() );
}
else
{
glabels::XmlUtil::setStringAttr( node, "src", object->filenameNode().data() );
}
/* affine attrs */
createAffineAttrs( node, object );
/* shadow attrs */
createShadowAttrs( node, object );
}
+34 -6
View File
@@ -25,9 +25,9 @@
#include "LabelModelBoxObject.h"
#include "LabelModelEllipseObject.h"
#include "LabelModelLineObject.h"
#include "LabelModelImageObject.h"
#include "LabelModelTextObject.h"
//#include "LabelObjectImage.h"
//#include "LabelObjectBarcode.h"
//#include "LabelModelBarcodeObject.h"
#include "EnumUtil.h"
#include "Merge/Factory.h"
#include "libglabels/XmlTemplateParser.h"
@@ -284,11 +284,11 @@ XmlLabelParser::parseObjects( const QDomElement &node )
{
list.append( parseObjectTextNode( child.toElement() ) );
}
#if 0
else if ( tagName == "Object-image" )
{
list.append( parseObjectImageNode( child.toElement() ) );
}
#if 0
else if ( tagName == "Object-barcode" )
{
list.append( parseObjectBarcodeNode( child.toElement() ) );
@@ -445,7 +445,35 @@ XmlLabelParser::parseObjectLineNode( const QDomElement &node )
LabelModelImageObject*
XmlLabelParser::parseObjectImageNode( const QDomElement &node )
{
return 0;
using namespace glabels;
LabelModelImageObject* object = new LabelModelImageObject();
/* position attrs */
object->setX0( XmlUtil::getLengthAttr( node, "x", 0.0 ) );
object->setY0( XmlUtil::getLengthAttr( node, "y", 0.0 ) );
/* size attrs */
object->setW( XmlUtil::getLengthAttr( node, "w", 0 ) );
object->setH( XmlUtil::getLengthAttr( node, "h", 0 ) );
/* file attrs */
{
QString key = XmlUtil::getStringAttr( node, "src_field", "" );
bool field_flag = !key.isEmpty();
QString filename = XmlUtil::getStringAttr( node, "src", "" );
object->setFilenameNode( TextNode( field_flag, field_flag ? key : filename ) );
}
/* affine attrs */
parseAffineAttrs( node, object );
/* shadow attrs */
parseShadowAttrs( node, object );
return object;
}
@@ -541,10 +569,10 @@ XmlLabelParser::parseAffineAttrs( const QDomElement &node, LabelModelObject* obj
double a[6];
a[0] = XmlUtil::getDoubleAttr( node, "a0", 0.0 );
a[0] = XmlUtil::getDoubleAttr( node, "a0", 1.0 );
a[1] = XmlUtil::getDoubleAttr( node, "a1", 0.0 );
a[2] = XmlUtil::getDoubleAttr( node, "a2", 0.0 );
a[3] = XmlUtil::getDoubleAttr( node, "a3", 0.0 );
a[3] = XmlUtil::getDoubleAttr( node, "a3", 1.0 );
a[4] = XmlUtil::getDoubleAttr( node, "a4", 0.0 );
a[5] = XmlUtil::getDoubleAttr( node, "a5", 0.0 );