From eb71750f0061b4586259c5d3ec44ecbb6998cc04 Mon Sep 17 00:00:00 2001 From: Denis Rouzaud Date: Tue, 28 Nov 2017 14:06:13 -0400 Subject: [PATCH] use QgsProjectionSelectionWidget rather than buttons --- src/gui/qgsdatumtransformdialog.cpp | 42 +++------- src/gui/qgsdatumtransformdialog.h | 5 +- src/ui/qgsdatumtransformdialogbase.ui | 113 ++++++++++++++------------ 3 files changed, 74 insertions(+), 86 deletions(-) diff --git a/src/gui/qgsdatumtransformdialog.cpp b/src/gui/qgsdatumtransformdialog.cpp index 216abfa2b18..fa6c5155830 100644 --- a/src/gui/qgsdatumtransformdialog.cpp +++ b/src/gui/qgsdatumtransformdialog.cpp @@ -23,6 +23,7 @@ #include "qgsproject.h" #include +#include QgsDatumTransformDialog::QgsDatumTransformDialog( QgsCoordinateReferenceSystem sourceCrs, QgsCoordinateReferenceSystem destinationCrs, @@ -34,8 +35,8 @@ QgsDatumTransformDialog::QgsDatumTransformDialog( QgsCoordinateReferenceSystem s connect( mHideDeprecatedCheckBox, &QCheckBox::stateChanged, this, &QgsDatumTransformDialog::mHideDeprecatedCheckBox_stateChanged ); connect( mDatumTransformTreeWidget, &QTreeWidget::currentItemChanged, this, &QgsDatumTransformDialog::mDatumTransformTreeWidget_currentItemChanged ); - connect( mSourceCrsButton, &QPushButton::clicked, this, &QgsDatumTransformDialog::setSourceCrs ); - connect( mDstCrsButton, &QPushButton::clicked, this, &QgsDatumTransformDialog::setDestinationCrs ); + connect( mSourceProjectionSelectionWidget, &QgsProjectionSelectionWidget::crsChanged, this, &QgsDatumTransformDialog::setSourceCrs ); + connect( mDestinationProjectionSelectionWidget, &QgsProjectionSelectionWidget::crsChanged, this, &QgsDatumTransformDialog::setDestinationCrs ); //get list of datum transforms mSourceCrs = sourceCrs; @@ -44,7 +45,6 @@ QgsDatumTransformDialog::QgsDatumTransformDialog( QgsCoordinateReferenceSystem s QApplication::setOverrideCursor( Qt::ArrowCursor ); - updateTitle(); setOKButtonEnabled(); QgsSettings settings; @@ -141,7 +141,7 @@ void QgsDatumTransformDialog::load() void QgsDatumTransformDialog::setOKButtonEnabled() { QTreeWidgetItem *item = mDatumTransformTreeWidget->currentItem(); - buttonBox->button( QDialogButtonBox::Ok )->setEnabled( mSourceCrs.isValid() && mDestinationCrs.isValid() && item ); + mButtonBox->button( QDialogButtonBox::Ok )->setEnabled( mSourceCrs.isValid() && mDestinationCrs.isValid() && item ); } QgsDatumTransformDialog::~QgsDatumTransformDialog() @@ -258,36 +258,18 @@ void QgsDatumTransformDialog::mDatumTransformTreeWidget_currentItemChanged( QTre setOKButtonEnabled(); } -void QgsDatumTransformDialog::setSourceCrs() +void QgsDatumTransformDialog::setSourceCrs( QgsCoordinateReferenceSystem sourceCrs ) { - QgsProjectionSelectionDialog *mySelector = new QgsProjectionSelectionDialog( this ); - if ( mySelector->exec() ) - { - mSourceCrs = mySelector->crs(); - updateTitle(); - mDatumTransforms = QgsCoordinateTransform::datumTransformations( mSourceCrs, mDestinationCrs ); - load(); - } - delete mySelector; + mSourceCrs = sourceCrs; + mDatumTransforms = QgsCoordinateTransform::datumTransformations( mSourceCrs, mDestinationCrs ); + load(); setOKButtonEnabled(); } -void QgsDatumTransformDialog::setDestinationCrs() +void QgsDatumTransformDialog::setDestinationCrs( QgsCoordinateReferenceSystem destinationCrs ) { - QgsProjectionSelectionDialog *mySelector = new QgsProjectionSelectionDialog( this ); - if ( mySelector->exec() ) - { - mDestinationCrs = mySelector->crs(); - updateTitle(); - mDatumTransforms = QgsCoordinateTransform::datumTransformations( mSourceCrs, mDestinationCrs ); - load(); - } - delete mySelector; + mDestinationCrs = destinationCrs; + mDatumTransforms = QgsCoordinateTransform::datumTransformations( mSourceCrs, mDestinationCrs ); + load(); setOKButtonEnabled(); } - -void QgsDatumTransformDialog::updateTitle() -{ - mSourceCrsButton->setText( QStringLiteral( "%1 - %2" ).arg( mSourceCrs.authid(), mSourceCrs.isValid() ? mSourceCrs.description() : tr( "unknown" ) ) ); - mDstCrsButton->setText( QStringLiteral( "%1 - %2" ).arg( mDestinationCrs.authid(), mDestinationCrs.isValid() ? mDestinationCrs.description() : tr( "unknown" ) ) ); -} diff --git a/src/gui/qgsdatumtransformdialog.h b/src/gui/qgsdatumtransformdialog.h index fd3f95c1912..f91ec7e5b37 100644 --- a/src/gui/qgsdatumtransformdialog.h +++ b/src/gui/qgsdatumtransformdialog.h @@ -57,11 +57,10 @@ class GUI_EXPORT QgsDatumTransformDialog : public QDialog, private Ui::QgsDatumT private slots: void mHideDeprecatedCheckBox_stateChanged( int state ); void mDatumTransformTreeWidget_currentItemChanged( QTreeWidgetItem *, QTreeWidgetItem * ); - void setSourceCrs(); - void setDestinationCrs(); + void setSourceCrs( QgsCoordinateReferenceSystem sourceCrs ); + void setDestinationCrs( QgsCoordinateReferenceSystem destinationCrs ); private: - void updateTitle(); bool gridShiftTransformation( const QString &itemText ) const; //! Returns false if the location of the grid shift files is known (PROJ_LIB) and the shift file is not there bool testGridShiftFileAvailability( QTreeWidgetItem *item, int col ) const; diff --git a/src/ui/qgsdatumtransformdialogbase.ui b/src/ui/qgsdatumtransformdialogbase.ui index f768c05e822..3db48cd44b9 100644 --- a/src/ui/qgsdatumtransformdialogbase.ui +++ b/src/ui/qgsdatumtransformdialogbase.ui @@ -14,14 +14,7 @@ Select Datum Transformations - - - - Destination CRS - - - - + Description @@ -34,47 +27,7 @@ - - - - Source CRS - - - - - - - source CRS - - - - - - - destination CRS - - - - - - - - src transform - - - - - dst transform - - - - - - - - - - + Description @@ -112,7 +65,7 @@ - + Qt::Horizontal @@ -121,17 +74,71 @@ + + + + + src transform + + + + + dst transform + + + + + + + + + + + + + + + Source CRS + + + + + + + + + + + + + + Destination CRS + + + + + + + + + + + QgsProjectionSelectionWidget + QWidget +
qgsprojectionselectionwidget.h
+
+
mDatumTransformTreeWidget mHideDeprecatedCheckBox - buttonBox + mButtonBox - buttonBox + mButtonBox accepted() QgsDatumTransformDialogBase accept() @@ -147,7 +154,7 @@ - buttonBox + mButtonBox rejected() QgsDatumTransformDialogBase reject()