mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-04-09 16:09:59 +02:00
shapegraphicsitempropertieswidget : use QPropertyUndoCommand instead of ChangeShapeStyleCommand.
Remove the class ChangeShapeStyleCommand. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4087 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -34,7 +34,6 @@
|
||||
QetShapeItem::QetShapeItem(QPointF p1, QPointF p2, ShapeType type, QGraphicsItem *parent) :
|
||||
QetGraphicsItem(parent),
|
||||
m_shapeType(type),
|
||||
m_shapeStyle(Qt::DashLine),
|
||||
m_P1 (p1),
|
||||
m_P2 (p2),
|
||||
m_hovered(false),
|
||||
@@ -44,20 +43,23 @@ QetShapeItem::QetShapeItem(QPointF p1, QPointF p2, ShapeType type, QGraphicsItem
|
||||
if (type == Polygon) m_polygon << m_P1 << m_P2;
|
||||
setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
|
||||
setAcceptHoverEvents(true);
|
||||
m_pen.setStyle(Qt::DashLine);
|
||||
m_pen.setWidthF(1);
|
||||
}
|
||||
|
||||
QetShapeItem::~QetShapeItem() {}
|
||||
|
||||
/**
|
||||
* @brief QetShapeItem::setStyle
|
||||
* Set the new style of pen for thi item
|
||||
* @param newStyle
|
||||
* @brief QetShapeItem::setPen
|
||||
* Set the pen to use for draw the shape
|
||||
* @param pen
|
||||
*/
|
||||
void QetShapeItem::setStyle(Qt::PenStyle newStyle)
|
||||
void QetShapeItem::setPen(const QPen &pen)
|
||||
{
|
||||
m_shapeStyle = newStyle;
|
||||
if (m_pen == pen) return;
|
||||
m_pen = pen;
|
||||
update();
|
||||
emit styleChanged();
|
||||
emit penChanged();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -233,9 +235,10 @@ void QetShapeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti
|
||||
{
|
||||
Q_UNUSED(option); Q_UNUSED(widget);
|
||||
|
||||
QPen pen(m_shapeStyle);
|
||||
painter->save();
|
||||
painter -> setRenderHint(QPainter::Antialiasing, false);
|
||||
pen.setWidthF(1);
|
||||
m_pen.setColor(isSelected()? Qt::red : Qt::black);
|
||||
painter -> setPen(m_pen);
|
||||
|
||||
//Draw hovered shadow
|
||||
if (m_hovered)
|
||||
@@ -248,11 +251,6 @@ void QetShapeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti
|
||||
painter -> drawPath (shape());
|
||||
painter -> restore ();
|
||||
}
|
||||
//Draw red if selected
|
||||
if (isSelected())
|
||||
pen.setColor(Qt::red);
|
||||
|
||||
painter -> setPen(pen);
|
||||
|
||||
//Draw the shape and handlers if is selected
|
||||
switch (m_shapeType)
|
||||
@@ -281,6 +279,7 @@ void QetShapeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opti
|
||||
m_handler.drawHandler(painter, m_polygon);
|
||||
break;
|
||||
}
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -458,7 +457,7 @@ bool QetShapeItem::fromXml(const QDomElement &e)
|
||||
if (e.tagName() != "shape") return (false);
|
||||
|
||||
is_movable_ = (e.attribute("is_movable").toInt());
|
||||
m_shapeStyle = Qt::PenStyle(e.attribute("style","0").toInt());
|
||||
m_pen.setStyle(Qt::PenStyle(e.attribute("style","0").toInt()));
|
||||
|
||||
QString type = e.attribute("type");
|
||||
//Compatibility for version older than N°4075, shape type was stored with an int
|
||||
@@ -506,7 +505,7 @@ QDomElement QetShapeItem::toXml(QDomDocument &document) const
|
||||
//write some attribute
|
||||
QMetaEnum me = metaObject()->enumerator(metaObject()->indexOfEnumerator("ShapeType"));
|
||||
result.setAttribute("type", me.valueToKey(m_shapeType));
|
||||
result.setAttribute("style", QString::number(m_shapeStyle));
|
||||
result.setAttribute("style", QString::number(m_pen.style()));
|
||||
result.setAttribute("is_movable", bool(is_movable_));
|
||||
if (m_shapeType != Polygon)
|
||||
{
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#ifndef QETSHAPEITEM_H
|
||||
#define QETSHAPEITEM_H
|
||||
|
||||
#include <QPen>
|
||||
#include "qetgraphicsitem.h"
|
||||
#include "QetGraphicsItemModeler/qetgraphicshandlerutility.h"
|
||||
|
||||
@@ -33,12 +34,13 @@ class QetShapeItem : public QetGraphicsItem
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QPen pen READ pen WRITE setPen NOTIFY penChanged)
|
||||
Q_PROPERTY(QRectF rect READ rect WRITE setRect)
|
||||
Q_PROPERTY(QLineF line READ line WRITE setLine)
|
||||
Q_PROPERTY(QPolygonF polygon READ polygon WRITE setPolygon)
|
||||
|
||||
signals:
|
||||
void styleChanged();
|
||||
void penChanged();
|
||||
|
||||
public:
|
||||
Q_ENUMS(ShapeType)
|
||||
@@ -56,8 +58,8 @@ class QetShapeItem : public QetGraphicsItem
|
||||
virtual int type() const { return Type; }
|
||||
|
||||
///METHODS
|
||||
void setStyle(Qt::PenStyle);
|
||||
Qt::PenStyle penStyle() const { return m_shapeStyle;}
|
||||
QPen pen() const {return m_pen;}
|
||||
void setPen(const QPen &pen);
|
||||
ShapeType shapeType() const {return m_shapeType;}
|
||||
|
||||
virtual bool fromXml (const QDomElement &);
|
||||
@@ -95,7 +97,7 @@ class QetShapeItem : public QetGraphicsItem
|
||||
///ATTRIBUTES
|
||||
private:
|
||||
ShapeType m_shapeType;
|
||||
Qt::PenStyle m_shapeStyle;
|
||||
QPen m_pen;
|
||||
QPointF m_P1, m_P2, m_old_P1, m_old_P2;
|
||||
QPolygonF m_polygon, m_old_polygon;
|
||||
bool m_hovered,
|
||||
|
||||
Reference in New Issue
Block a user