Only enable edit datum transform button when a transform is selected

Sponsored by ICSM
This commit is contained in:
Nyall Dawson 2019-03-12 11:39:16 +10:00
parent 8a1ba51631
commit c8d15d61ce
2 changed files with 14 additions and 1 deletions

View File

@ -188,6 +188,9 @@ QgsDatumTransformTableWidget::QgsDatumTransformTableWidget( QWidget *parent )
connect( mAddButton, &QToolButton::clicked, this, &QgsDatumTransformTableWidget::addDatumTransform );
connect( mRemoveButton, &QToolButton::clicked, this, &QgsDatumTransformTableWidget::removeDatumTransform );
connect( mEditButton, &QToolButton::clicked, this, &QgsDatumTransformTableWidget::editDatumTransform );
connect( mTableView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &QgsDatumTransformTableWidget::selectionChanged );
mEditButton->setEnabled( false );
}
void QgsDatumTransformTableWidget::addDatumTransform()
@ -199,6 +202,7 @@ void QgsDatumTransformTableWidget::addDatumTransform()
QgsCoordinateTransformContext context = mModel->transformContext();
context.addSourceDestinationDatumTransform( dt.first.first, dt.second.first, dt.first.second, dt.second.second );
mModel->setTransformContext( context );
selectionChanged();
}
}
@ -208,6 +212,7 @@ void QgsDatumTransformTableWidget::removeDatumTransform()
if ( selectedIndexes.count() > 0 )
{
mModel->removeTransform( selectedIndexes );
selectionChanged();
}
}
@ -255,3 +260,8 @@ void QgsDatumTransformTableWidget::editDatumTransform()
}
}
}
void QgsDatumTransformTableWidget::selectionChanged( const QItemSelection &, const QItemSelection & )
{
mEditButton->setEnabled( !mTableView->selectionModel()->selection().empty() );
}

View File

@ -44,7 +44,6 @@ class APP_EXPORT QgsDatumTransformTableModel : public QAbstractTableModel
};
QgsDatumTransformTableModel( QObject *parent = nullptr );
~QgsDatumTransformTableModel() {}
void setTransformContext( const QgsCoordinateTransformContext &context );
@ -96,6 +95,10 @@ class APP_EXPORT QgsDatumTransformTableWidget : public QWidget, private Ui::QgsD
//! edit currently selected datum transform
void editDatumTransform();
private slots:
void selectionChanged( const QItemSelection &selected = QItemSelection(), const QItemSelection &deselected = QItemSelection() );
private:
QgsDatumTransformTableModel *mModel = nullptr;
};