Skip to content

Commit dbad206

Browse files
committed
remove uselesss method, move code to constructor
and initialize in header
1 parent 36fc62c commit dbad206

File tree

4 files changed

+71
-83
lines changed

4 files changed

+71
-83
lines changed

src/app/vertextool/qgslockedfeature.cpp

+20-31
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,29 @@
3333

3434

3535
QgsLockedFeature::QgsLockedFeature( QgsFeatureId featureId,
36-
QgsVectorLayer *vlayer,
36+
QgsVectorLayer *layer,
3737
QgsMapCanvas *canvas )
3838
: mFeatureId( featureId )
39-
, mChangingGeometry( false )
39+
, mLayer( layer )
40+
, mCanvas( canvas )
4041
{
41-
setSelectedFeature( featureId, vlayer, canvas );
42+
// signal changing of current layer
43+
connect( QgisApp::instance()->layerTreeView(), &QgsLayerTreeView::currentLayerChanged, this, &QgsLockedFeature::currentLayerChanged );
44+
45+
// feature was deleted
46+
connect( mLayer, &QgsVectorLayer::featureDeleted, this, &QgsLockedFeature::featureDeleted );
47+
48+
// rolling back
49+
connect( mLayer, &QgsVectorLayer::beforeRollBack, this, &QgsLockedFeature::beforeRollBack );
50+
51+
// projection or extents changed
52+
connect( canvas, &QgsMapCanvas::destinationCrsChanged, this, &QgsLockedFeature::updateVertexMarkersPosition );
53+
connect( canvas, &QgsMapCanvas::extentsChanged, this, &QgsLockedFeature::updateVertexMarkersPosition );
54+
55+
// geometry was changed
56+
connect( mLayer, &QgsVectorLayer::geometryChanged, this, &QgsLockedFeature::geometryChanged );
57+
58+
replaceVertexMap();
4259
}
4360

4461
QgsLockedFeature::~QgsLockedFeature()
@@ -86,34 +103,6 @@ void QgsLockedFeature::updateGeometry( const QgsGeometry *geom )
86103
}
87104
}
88105

89-
void QgsLockedFeature::setSelectedFeature( QgsFeatureId featureId, QgsVectorLayer *layer, QgsMapCanvas *canvas )
90-
{
91-
mFeatureId = featureId;
92-
mLayer = layer;
93-
mCanvas = canvas;
94-
95-
delete mGeometry;
96-
mGeometry = nullptr;
97-
98-
// signal changing of current layer
99-
connect( QgisApp::instance()->layerTreeView(), &QgsLayerTreeView::currentLayerChanged, this, &QgsLockedFeature::currentLayerChanged );
100-
101-
// feature was deleted
102-
connect( mLayer, &QgsVectorLayer::featureDeleted, this, &QgsLockedFeature::featureDeleted );
103-
104-
// rolling back
105-
connect( mLayer, &QgsVectorLayer::beforeRollBack, this, &QgsLockedFeature::beforeRollBack );
106-
107-
// projection or extents changed
108-
connect( canvas, &QgsMapCanvas::destinationCrsChanged, this, &QgsLockedFeature::updateVertexMarkersPosition );
109-
connect( canvas, &QgsMapCanvas::extentsChanged, this, &QgsLockedFeature::updateVertexMarkersPosition );
110-
111-
// geometry was changed
112-
connect( mLayer, &QgsVectorLayer::geometryChanged, this, &QgsLockedFeature::geometryChanged );
113-
114-
replaceVertexMap();
115-
}
116-
117106
void QgsLockedFeature::beforeRollBack()
118107
{
119108
disconnect( mLayer, &QgsVectorLayer::geometryChanged, this, &QgsLockedFeature::geometryChanged );

src/app/vertextool/qgslockedfeature.h

+6-7
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,16 @@ class QgsLockedFeature: public QObject
4343
Q_OBJECT
4444

4545
public:
46-
QgsLockedFeature( QgsFeatureId id, QgsVectorLayer *layer, QgsMapCanvas *canvas );
47-
~QgsLockedFeature() override;
4846

4947
/**
50-
* Setting selected feature
48+
* Creates a locked feature
5149
* \param featureId id of feature which was selected
52-
* \param vlayer vector layer in which feature is selected
50+
* \param layer vector layer in which feature is selected
5351
* \param canvas mapCanvas on which we are working
5452
*/
55-
void setSelectedFeature( QgsFeatureId featureId, QgsVectorLayer *layer, QgsMapCanvas *canvas );
53+
QgsLockedFeature( QgsFeatureId id, QgsVectorLayer *layer, QgsMapCanvas *canvas );
54+
55+
~QgsLockedFeature() override;
5656

5757
/**
5858
* Function to select vertex with number
@@ -191,8 +191,7 @@ class QgsLockedFeature: public QObject
191191

192192
QgsFeatureId mFeatureId;
193193
QgsGeometry *mGeometry = nullptr;
194-
bool mFeatureSelected;
195-
bool mChangingGeometry;
194+
bool mChangingGeometry = false;
196195
QgsVectorLayer *mLayer = nullptr;
197196
QList<QgsVertexEntry *> mVertexMap;
198197
QgsMapCanvas *mCanvas = nullptr;

src/app/vertextool/qgsvertexeditor.cpp

+41-41
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ QgsVertexEditorModel::QgsVertexEditorModel( QgsMapCanvas *canvas, QObject *paren
4747
mWidgetFont = parentWidget->font();
4848
}
4949

50-
void QgsVertexEditorModel::setFeature( QgsLockedFeature *selectedFeature )
50+
void QgsVertexEditorModel::setFeature( QgsLockedFeature *lockedFeature )
5151
{
5252
beginResetModel();
5353

54-
mSelectedFeature = selectedFeature;
55-
if ( mSelectedFeature && mSelectedFeature->layer() )
54+
mLockedFeature = lockedFeature;
55+
if ( mLockedFeature && mLockedFeature->layer() )
5656
{
57-
QgsWkbTypes::Type layerWKBType = mSelectedFeature->layer()->wkbType();
57+
QgsWkbTypes::Type layerWKBType = mLockedFeature->layer()->wkbType();
5858

5959
mHasZ = QgsWkbTypes::hasZ( layerWKBType );
6060
mHasM = QgsWkbTypes::hasM( layerWKBType );
@@ -74,35 +74,35 @@ void QgsVertexEditorModel::setFeature( QgsLockedFeature *selectedFeature )
7474

7575
int QgsVertexEditorModel::rowCount( const QModelIndex &parent ) const
7676
{
77-
if ( parent.isValid() || !mSelectedFeature )
77+
if ( parent.isValid() || !mLockedFeature )
7878
return 0;
7979

80-
return mSelectedFeature->vertexMap().count();
80+
return mLockedFeature->vertexMap().count();
8181
}
8282

8383
int QgsVertexEditorModel::columnCount( const QModelIndex &parent ) const
8484
{
8585
Q_UNUSED( parent );
86-
if ( !mSelectedFeature )
86+
if ( !mLockedFeature )
8787
return 0;
8888
else
8989
return 2 + ( mHasZ ? 1 : 0 ) + ( mHasM ? 1 : 0 ) + ( mHasR ? 1 : 0 );
9090
}
9191

9292
QVariant QgsVertexEditorModel::data( const QModelIndex &index, int role ) const
9393
{
94-
if ( !index.isValid() || !mSelectedFeature ||
94+
if ( !index.isValid() || !mLockedFeature ||
9595
( role != Qt::DisplayRole && role != Qt::EditRole && role != MIN_RADIUS_ROLE && role != Qt::FontRole ) )
9696
return QVariant();
9797

98-
if ( index.row() >= mSelectedFeature->vertexMap().count() )
98+
if ( index.row() >= mLockedFeature->vertexMap().count() )
9999
return QVariant();
100100

101101
if ( index.column() >= columnCount() )
102102
return QVariant();
103103

104104
//get QgsVertexEntry for row
105-
const QgsVertexEntry *vertex = mSelectedFeature->vertexMap().at( index.row() );
105+
const QgsVertexEntry *vertex = mLockedFeature->vertexMap().at( index.row() );
106106
if ( !vertex )
107107
{
108108
return QVariant();
@@ -209,7 +209,7 @@ bool QgsVertexEditorModel::setData( const QModelIndex &index, const QVariant &va
209209
{
210210
return false;
211211
}
212-
if ( !mSelectedFeature || !mSelectedFeature->layer() || index.row() >= mSelectedFeature->vertexMap().count() )
212+
if ( !mLockedFeature || !mLockedFeature->layer() || index.row() >= mLockedFeature->vertexMap().count() )
213213
{
214214
return false;
215215
}
@@ -223,20 +223,20 @@ bool QgsVertexEditorModel::setData( const QModelIndex &index, const QVariant &va
223223
doubleValue = QLocale( QLocale::English ).toDouble( value.toString() );
224224
}
225225

226-
double x = ( index.column() == 0 ? doubleValue : mSelectedFeature->vertexMap().at( index.row() )->point().x() );
227-
double y = ( index.column() == 1 ? doubleValue : mSelectedFeature->vertexMap().at( index.row() )->point().y() );
226+
double x = ( index.column() == 0 ? doubleValue : mLockedFeature->vertexMap().at( index.row() )->point().x() );
227+
double y = ( index.column() == 1 ? doubleValue : mLockedFeature->vertexMap().at( index.row() )->point().y() );
228228

229229
if ( index.column() == mRCol ) // radius modified
230230
{
231-
if ( index.row() == 0 || index.row() >= mSelectedFeature->vertexMap().count() - 1 )
231+
if ( index.row() == 0 || index.row() >= mLockedFeature->vertexMap().count() - 1 )
232232
return false;
233233

234-
double x1 = mSelectedFeature->vertexMap().at( index.row() - 1 )->point().x();
235-
double y1 = mSelectedFeature->vertexMap().at( index.row() - 1 )->point().y();
234+
double x1 = mLockedFeature->vertexMap().at( index.row() - 1 )->point().x();
235+
double y1 = mLockedFeature->vertexMap().at( index.row() - 1 )->point().y();
236236
double x2 = x;
237237
double y2 = y;
238-
double x3 = mSelectedFeature->vertexMap().at( index.row() + 1 )->point().x();
239-
double y3 = mSelectedFeature->vertexMap().at( index.row() + 1 )->point().y();
238+
double x3 = mLockedFeature->vertexMap().at( index.row() + 1 )->point().x();
239+
double y3 = mLockedFeature->vertexMap().at( index.row() + 1 )->point().y();
240240

241241
QgsPoint result;
242242
if ( QgsGeometryUtils::segmentMidPoint( QgsPoint( x1, y1 ), QgsPoint( x3, y3 ), result, doubleValue, QgsPoint( x2, y2 ) ) )
@@ -245,14 +245,14 @@ bool QgsVertexEditorModel::setData( const QModelIndex &index, const QVariant &va
245245
y = result.y();
246246
}
247247
}
248-
double z = ( index.column() == mZCol ? value.toDouble() : mSelectedFeature->vertexMap().at( index.row() )->point().z() );
249-
double m = ( index.column() == mMCol ? value.toDouble() : mSelectedFeature->vertexMap().at( index.row() )->point().m() );
248+
double z = ( index.column() == mZCol ? value.toDouble() : mLockedFeature->vertexMap().at( index.row() )->point().z() );
249+
double m = ( index.column() == mMCol ? value.toDouble() : mLockedFeature->vertexMap().at( index.row() )->point().m() );
250250
QgsPoint p( QgsWkbTypes::PointZM, x, y, z, m );
251251

252-
mSelectedFeature->layer()->beginEditCommand( QObject::tr( "Moved vertices" ) );
253-
mSelectedFeature->layer()->moveVertex( p, mSelectedFeature->featureId(), index.row() );
254-
mSelectedFeature->layer()->endEditCommand();
255-
mSelectedFeature->layer()->triggerRepaint();
252+
mLockedFeature->layer()->beginEditCommand( QObject::tr( "Moved vertices" ) );
253+
mLockedFeature->layer()->moveVertex( p, mLockedFeature->featureId(), index.row() );
254+
mLockedFeature->layer()->endEditCommand();
255+
mLockedFeature->layer()->triggerRepaint();
256256

257257
return false;
258258
}
@@ -273,18 +273,18 @@ Qt::ItemFlags QgsVertexEditorModel::flags( const QModelIndex &index ) const
273273

274274
bool QgsVertexEditorModel::calcR( int row, double &r, double &minRadius ) const
275275
{
276-
if ( row <= 0 || !mSelectedFeature || row >= mSelectedFeature->vertexMap().count() - 1 )
276+
if ( row <= 0 || !mLockedFeature || row >= mLockedFeature->vertexMap().count() - 1 )
277277
return false;
278278

279-
const QgsVertexEntry *entry = mSelectedFeature->vertexMap().at( row );
279+
const QgsVertexEntry *entry = mLockedFeature->vertexMap().at( row );
280280

281281
bool curvePoint = ( entry->vertexId().type == QgsVertexId::CurveVertex );
282282
if ( !curvePoint )
283283
return false;
284284

285-
const QgsPoint &p1 = mSelectedFeature->vertexMap().at( row - 1 )->point();
286-
const QgsPoint &p2 = mSelectedFeature->vertexMap().at( row )->point();
287-
const QgsPoint &p3 = mSelectedFeature->vertexMap().at( row + 1 )->point();
285+
const QgsPoint &p1 = mLockedFeature->vertexMap().at( row - 1 )->point();
286+
const QgsPoint &p2 = mLockedFeature->vertexMap().at( row )->point();
287+
const QgsPoint &p3 = mLockedFeature->vertexMap().at( row + 1 )->point();
288288

289289
double cx, cy;
290290
QgsGeometryUtils::circleCenterRadius( p1, p2, p3, r, cx, cy );
@@ -332,19 +332,19 @@ QgsVertexEditor::QgsVertexEditor( QgsMapCanvas *canvas )
332332
setWidget( content );
333333
}
334334

335-
void QgsVertexEditor::updateEditor( QgsLockedFeature *selectedFeature )
335+
void QgsVertexEditor::updateEditor( QgsLockedFeature *lockedFeature )
336336
{
337337

338-
mSelectedFeature = selectedFeature;
338+
mLockedFeature = lockedFeature;
339339

340-
mVertexModel->setFeature( mSelectedFeature );
340+
mVertexModel->setFeature( mLockedFeature );
341341

342-
if ( mSelectedFeature )
342+
if ( mLockedFeature )
343343
{
344344
mHintLabel->setVisible( false );
345345
mTableView->setVisible( true );
346346

347-
connect( mSelectedFeature, &QgsLockedFeature::selectionChanged, this, &QgsVertexEditor::updateTableSelection );
347+
connect( mLockedFeature, &QgsLockedFeature::selectionChanged, this, &QgsVertexEditor::updateTableSelection );
348348
}
349349
else
350350
{
@@ -355,12 +355,12 @@ void QgsVertexEditor::updateEditor( QgsLockedFeature *selectedFeature )
355355

356356
void QgsVertexEditor::updateTableSelection()
357357
{
358-
if ( !mSelectedFeature || mUpdatingVertexSelection )
358+
if ( !mLockedFeature || mUpdatingVertexSelection )
359359
return;
360360

361361
mUpdatingTableSelection = true;
362362
mTableView->selectionModel()->clearSelection();
363-
const QList<QgsVertexEntry *> &vertexMap = mSelectedFeature->vertexMap();
363+
const QList<QgsVertexEntry *> &vertexMap = mLockedFeature->vertexMap();
364364
int firstSelectedRow = -1;
365365
QItemSelection selection;
366366
for ( int i = 0, n = vertexMap.size(); i < n; ++i )
@@ -382,23 +382,23 @@ void QgsVertexEditor::updateTableSelection()
382382

383383
void QgsVertexEditor::updateVertexSelection( const QItemSelection &selected, const QItemSelection & )
384384
{
385-
if ( !mSelectedFeature || mUpdatingTableSelection )
385+
if ( !mLockedFeature || mUpdatingTableSelection )
386386
return;
387387

388388
mUpdatingVertexSelection = true;
389389

390-
mSelectedFeature->deselectAllVertices();
390+
mLockedFeature->deselectAllVertices();
391391

392-
QgsCoordinateTransform t( mSelectedFeature->layer()->crs(), mCanvas->mapSettings().destinationCrs(), QgsProject::instance() );
392+
QgsCoordinateTransform t( mLockedFeature->layer()->crs(), mCanvas->mapSettings().destinationCrs(), QgsProject::instance() );
393393
std::unique_ptr<QgsRectangle> bbox;
394394
QModelIndexList indexList = selected.indexes();
395395
for ( int i = 0; i < indexList.length(); ++i )
396396
{
397397
int vertexIdx = indexList.at( i ).row();
398-
mSelectedFeature->selectVertex( vertexIdx );
398+
mLockedFeature->selectVertex( vertexIdx );
399399

400400
// create a bounding box of selected vertices
401-
QgsPointXY point( mSelectedFeature->vertexMap().at( vertexIdx )->point() );
401+
QgsPointXY point( mLockedFeature->vertexMap().at( vertexIdx )->point() );
402402
if ( !bbox )
403403
bbox.reset( new QgsRectangle( point, point ) );
404404
else

src/app/vertextool/qgsvertexeditor.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class QgsVertexEditorModel : public QAbstractTableModel
3838

3939
QgsVertexEditorModel( QgsMapCanvas *canvas, QObject *parent = nullptr );
4040

41-
void setFeature( QgsLockedFeature *selectedFeature );
41+
void setFeature( QgsLockedFeature *lockedFeature );
4242

4343
int rowCount( const QModelIndex &parent = QModelIndex() ) const override;
4444
int columnCount( const QModelIndex &parent = QModelIndex() ) const override;
@@ -48,7 +48,7 @@ class QgsVertexEditorModel : public QAbstractTableModel
4848
Qt::ItemFlags flags( const QModelIndex &index ) const override;
4949

5050
private:
51-
QgsLockedFeature *mSelectedFeature = nullptr;
51+
QgsLockedFeature *mLockedFeature = nullptr;
5252
QgsMapCanvas *mCanvas = nullptr;
5353

5454
bool mHasZ = false;
@@ -72,8 +72,8 @@ class QgsVertexEditor : public QgsDockWidget
7272
QgsVertexEditor( QgsMapCanvas *canvas );
7373

7474
public:
75-
void updateEditor( QgsLockedFeature *selectedFeature );
76-
QgsLockedFeature *mSelectedFeature = nullptr;
75+
void updateEditor( QgsLockedFeature *lockedFeature );
76+
QgsLockedFeature *mLockedFeature = nullptr;
7777
QgsMapCanvas *mCanvas = nullptr;
7878
QTableView *mTableView = nullptr;
7979
QgsVertexEditorModel *mVertexModel = nullptr;

0 commit comments

Comments
 (0)