mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-17 20:50:34 +01:00
Diagram editor : when user add a polygon, if the last point is at the same position of the first, then the polygon is closed.
Undo commit 5862 git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5863 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -182,6 +182,15 @@ void DiagramEventAddShape::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event
|
|||||||
//<double clic is used to finish polyline, but they also add two points at the same 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
|
//<(double clic is a double press event), so we remove the last point of polyline
|
||||||
m_shape_item->removePoints();
|
m_shape_item->removePoints();
|
||||||
|
|
||||||
|
//If the last is at the same pos of the first point
|
||||||
|
//that mean user want a closed polygon, so we remove the last point and close polygon
|
||||||
|
QPolygonF polygon = m_shape_item->polygon();
|
||||||
|
if (polygon.first() == polygon.last())
|
||||||
|
{
|
||||||
|
m_shape_item->removePoints();
|
||||||
|
m_shape_item->setClosed(true);
|
||||||
|
}
|
||||||
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
|
||||||
event->setAccepted(true);
|
event->setAccepted(true);
|
||||||
|
|||||||
@@ -1300,11 +1300,8 @@ void QETDiagramEditor::addItemGroupTriggered(QAction *action)
|
|||||||
diagram_event = new DiagramEventAddShape (d, QetShapeItem::Rectangle);
|
diagram_event = new DiagramEventAddShape (d, QetShapeItem::Rectangle);
|
||||||
else if (value == "ellipse")
|
else if (value == "ellipse")
|
||||||
diagram_event = new DiagramEventAddShape (d, QetShapeItem::Ellipse);
|
diagram_event = new DiagramEventAddShape (d, QetShapeItem::Ellipse);
|
||||||
else if (value == "polyline") {
|
else if (value == "polyline")
|
||||||
diagram_event = new DiagramEventAddShape (d, QetShapeItem::Polygon);
|
diagram_event = new DiagramEventAddShape (d, QetShapeItem::Polygon);
|
||||||
setToolTip(tr("Double-click pour terminer la forme"));
|
|
||||||
setToolTipDuration(2000);
|
|
||||||
}
|
|
||||||
else if (value == "image")
|
else if (value == "image")
|
||||||
{
|
{
|
||||||
DiagramEventAddImage *deai = new DiagramEventAddImage(d);
|
DiagramEventAddImage *deai = new DiagramEventAddImage(d);
|
||||||
|
|||||||
Reference in New Issue
Block a user