mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-02-23 21:29:58 +01:00
Minor fix
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@4049 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -64,6 +64,8 @@ bool DVEventAddShape::mousePressEvent(QMouseEvent *event)
|
|||||||
if (!m_dv->isInteractive() && m_diagram->isReadOnly()) return false;
|
if (!m_dv->isInteractive() && m_diagram->isReadOnly()) return false;
|
||||||
|
|
||||||
QPointF pos = m_dv->mapToScene(event->pos());
|
QPointF pos = m_dv->mapToScene(event->pos());
|
||||||
|
if (event->modifiers() != Qt::ControlModifier)
|
||||||
|
pos = Diagram::snapToGrid(pos);
|
||||||
|
|
||||||
//Action for left mouse click
|
//Action for left mouse click
|
||||||
if (event -> button() == Qt::LeftButton)
|
if (event -> button() == Qt::LeftButton)
|
||||||
@@ -112,7 +114,11 @@ bool DVEventAddShape::mouseMoveEvent(QMouseEvent *event)
|
|||||||
|
|
||||||
if (m_shape_item && event -> buttons() == Qt::NoButton)
|
if (m_shape_item && event -> buttons() == Qt::NoButton)
|
||||||
{
|
{
|
||||||
m_shape_item -> setP2 (m_dv -> mapToScene (event -> pos()));
|
QPointF pos = m_dv->mapToScene(event->pos());
|
||||||
|
if (event->modifiers() != Qt::ControlModifier)
|
||||||
|
pos = Diagram::snapToGrid(pos);
|
||||||
|
|
||||||
|
m_shape_item -> setP2 (pos);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,7 +142,12 @@ bool DVEventAddShape::mouseReleaseEvent(QMouseEvent *event)
|
|||||||
if (m_shape_type == QetShapeItem::Polyline && (m_shape_item -> pointsCount() >= 3) )
|
if (m_shape_type == QetShapeItem::Polyline && (m_shape_item -> pointsCount() >= 3) )
|
||||||
{
|
{
|
||||||
m_shape_item -> removePoints();
|
m_shape_item -> removePoints();
|
||||||
m_shape_item -> setP2(m_dv -> mapToScene (event -> pos())); //Set the new last point under the cursor
|
|
||||||
|
QPointF pos = m_dv->mapToScene(event->pos());
|
||||||
|
if (event->modifiers() != Qt::ControlModifier)
|
||||||
|
pos = Diagram::snapToGrid(pos);
|
||||||
|
|
||||||
|
m_shape_item -> setP2(pos); //Set the new last point under the cursor
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -166,7 +177,9 @@ bool DVEventAddShape::mouseDoubleClickEvent(QMouseEvent *event)
|
|||||||
//If current item is a polyline, add it with an undo command
|
//If current item is a polyline, add it with an undo command
|
||||||
if (m_shape_item && m_shape_type == QetShapeItem::Polyline && event -> button() == Qt::LeftButton)
|
if (m_shape_item && m_shape_type == QetShapeItem::Polyline && event -> button() == Qt::LeftButton)
|
||||||
{
|
{
|
||||||
m_shape_item -> setP2 (m_dv -> mapToScene (event -> pos()));
|
//<double clic is used to finish polyline, but they also add two points at the same pos
|
||||||
|
//<(double clic is a double press event), so we remove the last point of polyline
|
||||||
|
m_shape_item->removePoints();
|
||||||
m_diagram -> undoStack().push (new AddItemCommand<QetShapeItem *> (m_shape_item, m_diagram));
|
m_diagram -> undoStack().push (new AddItemCommand<QetShapeItem *> (m_shape_item, m_diagram));
|
||||||
m_shape_item = nullptr; //< set to nullptr for create new shape at next left clic
|
m_shape_item = nullptr; //< set to nullptr for create new shape at next left clic
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ QetShapeItem::QetShapeItem(QPointF p1, QPointF p2, ShapeType type, QGraphicsItem
|
|||||||
QetGraphicsItem(parent),
|
QetGraphicsItem(parent),
|
||||||
m_shapeType(type),
|
m_shapeType(type),
|
||||||
m_shapeStyle(Qt::DashLine),
|
m_shapeStyle(Qt::DashLine),
|
||||||
m_P1 (Diagram::snapToGrid(p1)),
|
m_P1 (p1),
|
||||||
m_P2 (Diagram::snapToGrid(p2)),
|
m_P2 (p2),
|
||||||
m_hovered(false),
|
m_hovered(false),
|
||||||
m_mouse_grab_handler(false),
|
m_mouse_grab_handler(false),
|
||||||
m_undo_command(nullptr)
|
m_undo_command(nullptr)
|
||||||
@@ -231,18 +231,6 @@ QPainterPath QetShapeItem::shape() const
|
|||||||
return (path);
|
return (path);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief QetShapeItem::changeGraphicsItem
|
|
||||||
* Change the curent type of this item to newtype
|
|
||||||
* @param newtype
|
|
||||||
*/
|
|
||||||
void QetShapeItem::changeGraphicsItem(const ShapeType &newtype) {
|
|
||||||
if (newtype == m_shapeType) return;
|
|
||||||
prepareGeometryChange();
|
|
||||||
m_shapeType = newtype;
|
|
||||||
setTransformOriginPoint(boundingRect().center());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief QetShapeItem::paint
|
* @brief QetShapeItem::paint
|
||||||
* Paint this item
|
* Paint this item
|
||||||
@@ -508,7 +496,7 @@ bool QetShapeItem::fromXml(const QDomElement &e) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
changeGraphicsItem(QetShapeItem::ShapeType(e.attribute("type","0").toInt()));
|
m_shapeType = QetShapeItem::ShapeType(e.attribute("type","0").toInt());
|
||||||
return (true);
|
return (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -518,23 +506,26 @@ bool QetShapeItem::fromXml(const QDomElement &e) {
|
|||||||
* @param document parent document xml
|
* @param document parent document xml
|
||||||
* @return element xml where is write this item
|
* @return element xml where is write this item
|
||||||
*/
|
*/
|
||||||
QDomElement QetShapeItem::toXml(QDomDocument &document) const {
|
QDomElement QetShapeItem::toXml(QDomDocument &document) const
|
||||||
|
{
|
||||||
QDomElement result = document.createElement("shape");
|
QDomElement result = document.createElement("shape");
|
||||||
|
|
||||||
//write some attribute
|
//write some attribute
|
||||||
result.setAttribute("type", QString::number(m_shapeType));
|
result.setAttribute("type", QString::number(m_shapeType));
|
||||||
result.setAttribute("style", QString::number(m_shapeStyle));
|
result.setAttribute("style", QString::number(m_shapeStyle));
|
||||||
result.setAttribute("is_movable", bool(is_movable_));
|
result.setAttribute("is_movable", bool(is_movable_));
|
||||||
if (m_shapeType != Polyline) {
|
if (m_shapeType != Polyline)
|
||||||
result.setAttribute("x1", mapToScene(m_P1).x());
|
{
|
||||||
result.setAttribute("y1", mapToScene(m_P1).y());
|
result.setAttribute("x1", QString::number(mapToScene(m_P1).x()));
|
||||||
result.setAttribute("x2", mapToScene(m_P2).x());
|
result.setAttribute("y1", QString::number(mapToScene(m_P1).y()));
|
||||||
result.setAttribute("y2", mapToScene(m_P2).y());
|
result.setAttribute("x2", QString::number(mapToScene(m_P2).x()));
|
||||||
|
result.setAttribute("y2", QString::number(mapToScene(m_P2).y()));
|
||||||
}
|
}
|
||||||
|
else
|
||||||
else {
|
{
|
||||||
QDomElement points = document.createElement("points");
|
QDomElement points = document.createElement("points");
|
||||||
foreach(QPointF p, m_polygon) {
|
foreach(QPointF p, m_polygon)
|
||||||
|
{
|
||||||
QDomElement point = document.createElement("point");
|
QDomElement point = document.createElement("point");
|
||||||
QPointF pf = mapToScene(p);
|
QPointF pf = mapToScene(p);
|
||||||
point.setAttribute("x", pf.x());
|
point.setAttribute("x", pf.x());
|
||||||
|
|||||||
@@ -84,9 +84,6 @@ class QetShapeItem : public QetGraphicsItem
|
|||||||
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event);
|
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event);
|
||||||
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event);
|
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event);
|
||||||
|
|
||||||
private:
|
|
||||||
void changeGraphicsItem (const ShapeType &newtype);
|
|
||||||
|
|
||||||
///ATTRIBUTES
|
///ATTRIBUTES
|
||||||
private:
|
private:
|
||||||
ShapeType m_shapeType;
|
ShapeType m_shapeType;
|
||||||
|
|||||||
Reference in New Issue
Block a user