diff --git a/src/app/qgsdatumtransformtablewidget.cpp b/src/app/qgsdatumtransformtablewidget.cpp index eb47ab1bcf4..57d6fcc8220 100644 --- a/src/app/qgsdatumtransformtablewidget.cpp +++ b/src/app/qgsdatumtransformtablewidget.cpp @@ -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() ); +} diff --git a/src/app/qgsdatumtransformtablewidget.h b/src/app/qgsdatumtransformtablewidget.h index 6f2136388b6..aae7e1b6f28 100644 --- a/src/app/qgsdatumtransformtablewidget.h +++ b/src/app/qgsdatumtransformtablewidget.h @@ -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; };