Beispiel #1
0
QgsNodeEditor::QgsNodeEditor(
  QgsVectorLayer *layer,
  QgsSelectedFeature *selectedFeature,
  QgsMapCanvas *canvas )
    : mUpdatingTableSelection( false )
    , mUpdatingNodeSelection( false )
{
  setWindowTitle( tr( "Vertex Editor" ) );

  mLayer = layer;
  mSelectedFeature = selectedFeature;
  mCanvas = canvas;

  mTableView = new QTableView( this );
  mNodeModel = new QgsNodeEditorModel( mLayer, mSelectedFeature, mCanvas, this );
  mTableView->setModel( mNodeModel );

  mTableView->setSelectionMode( QTableWidget::ExtendedSelection );
  mTableView->setSelectionBehavior( QTableWidget::SelectRows );
  mTableView->setItemDelegateForColumn( 0, new CoordinateItemDelegate() );
  mTableView->setItemDelegateForColumn( 1, new CoordinateItemDelegate() );
  mTableView->setItemDelegateForColumn( 2, new CoordinateItemDelegate() );
  mTableView->setItemDelegateForColumn( 3, new CoordinateItemDelegate() );
  mTableView->setItemDelegateForColumn( 4, new CoordinateItemDelegate() );

  setWidget( mTableView );

  connect( mSelectedFeature, SIGNAL( selectionChanged() ), this, SLOT( updateTableSelection() ) );
  connect( mTableView->selectionModel(), SIGNAL( selectionChanged( QItemSelection, QItemSelection ) ), this, SLOT( updateNodeSelection( QItemSelection, QItemSelection ) ) );
}
Beispiel #2
0
void QgsVertexEditor::updateEditor( QgsLockedFeature *lockedFeature )
{

  mLockedFeature = lockedFeature;

  mVertexModel->setFeature( mLockedFeature );

  updateTableSelection();

  if ( mLockedFeature )
  {
    mHintLabel->setVisible( false );
    mTableView->setVisible( true );

    connect( mLockedFeature, &QgsLockedFeature::selectionChanged, this, &QgsVertexEditor::updateTableSelection );
  }
  else
  {
    mHintLabel->setVisible( true );
    mTableView->setVisible( false );
  }
}