Skip to content

Commit 2defe21

Browse files
committedJan 23, 2019
[node editor] When no feature is selected, offer an hint label to ease discovery
1 parent 8845263 commit 2defe21

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed
 

‎src/app/vertextool/qgsvertexeditor.cpp

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "qgsproject.h"
2727
#include "qgscoordinatetransform.h"
2828

29+
#include <QLabel>
2930
#include <QTableWidget>
3031
#include <QHeaderView>
3132
#include <QVBoxLayout>
@@ -301,17 +302,31 @@ QgsVertexEditor::QgsVertexEditor(
301302
{
302303
setWindowTitle( tr( "Vertex Editor" ) );
303304
setObjectName( QStringLiteral( "VertexEditor" ) );
304-
mTableView = new QTableView( this );
305305

306+
QWidget *content = new QWidget( this );
307+
content->setMinimumHeight( 160 );
308+
QVBoxLayout *layout = new QVBoxLayout( content );
309+
layout->setContentsMargins( 0, 0, 0, 0 );
310+
311+
mHintLabel = new QLabel( this );
312+
mHintLabel->setText( tr( "Right click on the edge of an editable feature to show its table of vertices" ) );
313+
mHintLabel->setWordWrap( true );
314+
mHintLabel->setAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
315+
316+
mTableView = new QTableView( this );
306317
mTableView->setSelectionMode( QTableWidget::ExtendedSelection );
307318
mTableView->setSelectionBehavior( QTableWidget::SelectRows );
308319
mTableView->setItemDelegateForColumn( 0, new CoordinateItemDelegate( this ) );
309320
mTableView->setItemDelegateForColumn( 1, new CoordinateItemDelegate( this ) );
310321
mTableView->setItemDelegateForColumn( 2, new CoordinateItemDelegate( this ) );
311322
mTableView->setItemDelegateForColumn( 3, new CoordinateItemDelegate( this ) );
312323
mTableView->setItemDelegateForColumn( 4, new CoordinateItemDelegate( this ) );
324+
mTableView->setVisible( false );
325+
326+
layout->addWidget( mTableView );
327+
layout->addWidget( mHintLabel );
313328

314-
setWidget( mTableView );
329+
setWidget( content );
315330

316331
updateEditor( layer, selectedFeature );
317332
}
@@ -323,12 +338,23 @@ void QgsVertexEditor::updateEditor( QgsVectorLayer *layer, QgsSelectedFeature *s
323338
mLayer = layer;
324339
mSelectedFeature = selectedFeature;
325340

326-
// TODO We really should just update the model itself.
327-
mVertexModel = new QgsVertexEditorModel( mLayer, mSelectedFeature, mCanvas, this );
328-
mTableView->setModel( mVertexModel );
329-
connect( mTableView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &QgsVertexEditor::updateVertexSelection );
341+
if ( mLayer && mSelectedFeature )
342+
{
343+
// TODO We really should just update the model itself.
344+
mVertexModel = new QgsVertexEditorModel( mLayer, mSelectedFeature, mCanvas, this );
345+
mTableView->setModel( mVertexModel );
330346

331-
connect( mSelectedFeature, &QgsSelectedFeature::selectionChanged, this, &QgsVertexEditor::updateTableSelection );
347+
mHintLabel->setVisible( false );
348+
mTableView->setVisible( true );
349+
350+
connect( mTableView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &QgsVertexEditor::updateVertexSelection );
351+
connect( mSelectedFeature, &QgsSelectedFeature::selectionChanged, this, &QgsVertexEditor::updateTableSelection );
352+
}
353+
else
354+
{
355+
mHintLabel->setVisible( true );
356+
mTableView->setVisible( false );
357+
}
332358
}
333359

334360
void QgsVertexEditor::updateTableSelection()

‎src/app/vertextool/qgsvertexeditor.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ class QgsMapCanvas;
2828
class QgsRubberBand;
2929
class QgsSelectedFeature;
3030
class QgsVectorLayer;
31+
32+
class QLabel;
3133
class QTableView;
3234

3335
class QgsVertexEditorModel : public QAbstractTableModel
@@ -96,6 +98,8 @@ class QgsVertexEditor : public QgsDockWidget
9698

9799
private:
98100

101+
QLabel *mHintLabel = nullptr;
102+
99103
bool mUpdatingTableSelection = false;
100104
bool mUpdatingVertexSelection = false;
101105
};

0 commit comments

Comments
 (0)
Please sign in to comment.