Skip to content

Commit

Permalink
Merge pull request #30079 from olivierdalang/fix_cad_graphical_glitches
Browse files Browse the repository at this point in the history
[cad] fix graphical glitches
  • Loading branch information
m-kuhn committed Jun 11, 2019
2 parents e740688 + 5da8de2 commit a9e3950
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 3 deletions.
Expand Up @@ -264,6 +264,13 @@ Removes all points from the CAD point list
Adds point to the CAD point list

.. versionadded:: 3.0
%End

void removePreviousPoint();
%Docstring
Remove previous point in the CAD point list

.. versionadded:: 3.8
%End

void setPoints( const QList<QgsPointXY> &points );
Expand Down
2 changes: 2 additions & 0 deletions python/gui/auto_generated/qgsmaptooladvanceddigitizing.sip.in
Expand Up @@ -117,6 +117,8 @@ This method is protected because it should be a decision of the map tool and not
.. versionadded:: 3.0
%End



public:

virtual void cadCanvasPressEvent( QgsMapMouseEvent *e );
Expand Down
4 changes: 4 additions & 0 deletions src/gui/qgsadvanceddigitizingdockwidget.cpp
Expand Up @@ -1148,6 +1148,7 @@ void QgsAdvancedDigitizingDockWidget::addPoint( const QgsPointXY &point )
}

updateCapacity();
updateCadPaintItem();
}

void QgsAdvancedDigitizingDockWidget::removePreviousPoint()
Expand All @@ -1158,6 +1159,7 @@ void QgsAdvancedDigitizingDockWidget::removePreviousPoint()
int i = pointsCount() > 1 ? 1 : 0;
mCadPointList.removeAt( i );
updateCapacity();
updateCadPaintItem();
}

void QgsAdvancedDigitizingDockWidget::clearPoints()
Expand All @@ -1166,6 +1168,7 @@ void QgsAdvancedDigitizingDockWidget::clearPoints()
mSnappedSegment.clear();

updateCapacity();
updateCadPaintItem();
}

void QgsAdvancedDigitizingDockWidget::updateCurrentPoint( const QgsPointXY &point )
Expand All @@ -1179,6 +1182,7 @@ void QgsAdvancedDigitizingDockWidget::updateCurrentPoint( const QgsPointXY &poin
{
mCadPointList[0] = point;
}
updateCadPaintItem();
}


Expand Down
9 changes: 7 additions & 2 deletions src/gui/qgsadvanceddigitizingdockwidget.h
Expand Up @@ -286,6 +286,12 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private
*/
void addPoint( const QgsPointXY &point );

/**
* Remove previous point in the CAD point list
* \since QGIS 3.8
*/
void removePreviousPoint();

/**
* Configures list of current CAD points
*
Expand Down Expand Up @@ -660,8 +666,7 @@ class GUI_EXPORT QgsAdvancedDigitizingDockWidget : public QgsDockWidget, private

//! update the current point in the CAD point list
void updateCurrentPoint( const QgsPointXY &point );
//! remove previous point in the CAD point list
void removePreviousPoint();


/**
* filters key press
Expand Down
4 changes: 3 additions & 1 deletion src/gui/qgsmaptooladvanceddigitizing.h
Expand Up @@ -107,6 +107,9 @@ class GUI_EXPORT QgsMapToolAdvancedDigitizing : public QgsMapToolEdit
*/
void setAutoSnapEnabled( bool enabled ) { mAutoSnapEnabled = enabled; }


QgsAdvancedDigitizingDockWidget *mCadDockWidget = nullptr;

public:

/**
Expand Down Expand Up @@ -172,7 +175,6 @@ class GUI_EXPORT QgsMapToolAdvancedDigitizing : public QgsMapToolEdit
void onCurrentLayerChanged();

private:
QgsAdvancedDigitizingDockWidget *mCadDockWidget = nullptr;

//! Whether to allow use of advanced digitizing dock at this point
bool mAdvancedDigitizingAllowed = true;
Expand Down
3 changes: 3 additions & 0 deletions src/gui/qgsmaptoolcapture.cpp
Expand Up @@ -31,6 +31,7 @@
#include "qgsvertexmarker.h"
#include "qgssettings.h"
#include "qgsapplication.h"
#include "qgsadvanceddigitizingdockwidget.h"

#include <QAction>
#include <QCursor>
Expand Down Expand Up @@ -585,6 +586,8 @@ void QgsMapToolCapture::undo()
mCaptureCurve.deleteVertex( vertexToRemove );
mSnappingMatches.removeAt( vertexToRemove.vertex );

mCadDockWidget->removePreviousPoint();

validateGeometry();
}
}
Expand Down

0 comments on commit a9e3950

Please sign in to comment.