Replace deprecated QMatrix by QTransform

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5801 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
blacksun
2019-03-18 20:14:36 +00:00
parent 1ac950cd81
commit 32e2fd3c89
2 changed files with 21 additions and 23 deletions

View File

@@ -23,7 +23,6 @@
#include <QGraphicsSceneMouseEvent>
#include <QFont>
#include <QColor>
#include <QMatrix>
PartDynamicTextField::PartDynamicTextField(QETElementEditor *editor, QGraphicsItem *parent) :
QGraphicsTextItem(parent),
@@ -240,16 +239,16 @@ void PartDynamicTextField::fromTextFieldXml(const QDomElement &dom_element)
//the origin transformation point of PartDynamicTextField is the top left corner, no matter the font size
//The origin transformation point of PartTextField is the middle of left edge, and so by definition, change with the size of the font
//We need to use a QMatrix to find the pos of this text from the saved pos of text item
QMatrix matrix;
//We need to use a QTransform to find the pos of this text from the saved pos of text item
QTransform transform;
//First make the rotation
matrix.rotate(dom_element.attribute("rotation", "0").toDouble());
QPointF pos = matrix.map(QPointF(0, -boundingRect().height()/2));
matrix.reset();
transform.rotate(dom_element.attribute("rotation", "0").toDouble());
QPointF pos = transform.map(QPointF(0, -boundingRect().height()/2));
transform.reset();
//Second translate to the pos
matrix.translate(dom_element.attribute("x", QString::number(0)).toDouble(),
transform.translate(dom_element.attribute("x", QString::number(0)).toDouble(),
dom_element.attribute("y", QString::number(0)).toDouble());
QGraphicsTextItem::setPos(matrix.map(pos));
QGraphicsTextItem::setPos(transform.map(pos));
}
/**

View File

@@ -19,7 +19,6 @@
#include "diagram.h"
#include "conductor.h"
#include "diagramcommands.h"
#include <QtDebug>
#include <utility>
#include "elementprovider.h"
#include "diagramposition.h"
@@ -524,17 +523,17 @@ bool Element::parseInput(const QDomElement &dom_element)
//the origin transformation point of PartDynamicTextField is the top left corner, no matter the font size
//The origin transformation point of ElementTextItem is the middle of left edge, and so by definition, change with the size of the font
//We need to use a QMatrix to find the pos of this text from the saved pos of text item
QMatrix matrix;
//We need to use a QTransform to find the pos of this text from the saved pos of text item
QTransform transform;
//First make the rotation
matrix.rotate(dom_element.attribute("rotation", "0").toDouble());
QPointF pos = matrix.map(QPointF(0, -deti->boundingRect().height()/2));
matrix.reset();
transform.rotate(dom_element.attribute("rotation", "0").toDouble());
QPointF pos = transform.map(QPointF(0, -deti->boundingRect().height()/2));
transform.reset();
//Second translate to the pos
QPointF p(dom_element.attribute("x", QString::number(0)).toDouble(),
dom_element.attribute("y", QString::number(0)).toDouble());
matrix.translate(p.x(), p.y());
deti->setPos(matrix.map(pos));
transform.translate(p.x(), p.y());
deti->setPos(transform.map(pos));
m_converted_text_from_xml_description.insert(deti, p);
return true;
}
@@ -790,19 +789,19 @@ bool Element::fromXml(QDomElement &e, QHash<int, Terminal *> &table_id_adr, bool
//the origin transformation point of PartDynamicTextField is the top left corner, no matter the font size
//The origin transformation point of PartTextField is the middle of left edge, and so by definition, change with the size of the font
//We need to use a QMatrix to find the pos of this text from the saved pos of text item
//We need to use a QTransform to find the pos of this text from the saved pos of text item
deti->setPos(xml_pos);
deti->setRotation(rotation);
QMatrix matrix;
QTransform transform;
//First make the rotation
matrix.rotate(rotation);
QPointF pos = matrix.map(QPointF(0, -deti->boundingRect().height()/2));
matrix.reset();
transform.rotate(rotation);
QPointF pos = transform.map(QPointF(0, -deti->boundingRect().height()/2));
transform.reset();
//Second translate to the pos
matrix.translate(xml_pos.x(), xml_pos.y());
deti->setPos(matrix.map(pos));
transform.translate(xml_pos.x(), xml_pos.y());
deti->setPos(transform.map(pos));
//dom_input and deti matched we remove the dom_input from @inputs list,
//to avoid unnecessary checking made below