Skip to content

Commit eb71750

Browse files
3nidsnyalldawson
authored andcommitted
use QgsProjectionSelectionWidget rather than buttons
1 parent fec7c70 commit eb71750

File tree

3 files changed

+74
-86
lines changed

3 files changed

+74
-86
lines changed

src/gui/qgsdatumtransformdialog.cpp

+12-30
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "qgsproject.h"
2424

2525
#include <QDir>
26+
#include <QPushButton>
2627

2728
QgsDatumTransformDialog::QgsDatumTransformDialog( QgsCoordinateReferenceSystem sourceCrs,
2829
QgsCoordinateReferenceSystem destinationCrs,
@@ -34,8 +35,8 @@ QgsDatumTransformDialog::QgsDatumTransformDialog( QgsCoordinateReferenceSystem s
3435
connect( mHideDeprecatedCheckBox, &QCheckBox::stateChanged, this, &QgsDatumTransformDialog::mHideDeprecatedCheckBox_stateChanged );
3536
connect( mDatumTransformTreeWidget, &QTreeWidget::currentItemChanged, this, &QgsDatumTransformDialog::mDatumTransformTreeWidget_currentItemChanged );
3637

37-
connect( mSourceCrsButton, &QPushButton::clicked, this, &QgsDatumTransformDialog::setSourceCrs );
38-
connect( mDstCrsButton, &QPushButton::clicked, this, &QgsDatumTransformDialog::setDestinationCrs );
38+
connect( mSourceProjectionSelectionWidget, &QgsProjectionSelectionWidget::crsChanged, this, &QgsDatumTransformDialog::setSourceCrs );
39+
connect( mDestinationProjectionSelectionWidget, &QgsProjectionSelectionWidget::crsChanged, this, &QgsDatumTransformDialog::setDestinationCrs );
3940

4041
//get list of datum transforms
4142
mSourceCrs = sourceCrs;
@@ -44,7 +45,6 @@ QgsDatumTransformDialog::QgsDatumTransformDialog( QgsCoordinateReferenceSystem s
4445

4546
QApplication::setOverrideCursor( Qt::ArrowCursor );
4647

47-
updateTitle();
4848
setOKButtonEnabled();
4949

5050
QgsSettings settings;
@@ -141,7 +141,7 @@ void QgsDatumTransformDialog::load()
141141
void QgsDatumTransformDialog::setOKButtonEnabled()
142142
{
143143
QTreeWidgetItem *item = mDatumTransformTreeWidget->currentItem();
144-
buttonBox->button( QDialogButtonBox::Ok )->setEnabled( mSourceCrs.isValid() && mDestinationCrs.isValid() && item );
144+
mButtonBox->button( QDialogButtonBox::Ok )->setEnabled( mSourceCrs.isValid() && mDestinationCrs.isValid() && item );
145145
}
146146

147147
QgsDatumTransformDialog::~QgsDatumTransformDialog()
@@ -258,36 +258,18 @@ void QgsDatumTransformDialog::mDatumTransformTreeWidget_currentItemChanged( QTre
258258
setOKButtonEnabled();
259259
}
260260

261-
void QgsDatumTransformDialog::setSourceCrs()
261+
void QgsDatumTransformDialog::setSourceCrs( QgsCoordinateReferenceSystem sourceCrs )
262262
{
263-
QgsProjectionSelectionDialog *mySelector = new QgsProjectionSelectionDialog( this );
264-
if ( mySelector->exec() )
265-
{
266-
mSourceCrs = mySelector->crs();
267-
updateTitle();
268-
mDatumTransforms = QgsCoordinateTransform::datumTransformations( mSourceCrs, mDestinationCrs );
269-
load();
270-
}
271-
delete mySelector;
263+
mSourceCrs = sourceCrs;
264+
mDatumTransforms = QgsCoordinateTransform::datumTransformations( mSourceCrs, mDestinationCrs );
265+
load();
272266
setOKButtonEnabled();
273267
}
274268

275-
void QgsDatumTransformDialog::setDestinationCrs()
269+
void QgsDatumTransformDialog::setDestinationCrs( QgsCoordinateReferenceSystem destinationCrs )
276270
{
277-
QgsProjectionSelectionDialog *mySelector = new QgsProjectionSelectionDialog( this );
278-
if ( mySelector->exec() )
279-
{
280-
mDestinationCrs = mySelector->crs();
281-
updateTitle();
282-
mDatumTransforms = QgsCoordinateTransform::datumTransformations( mSourceCrs, mDestinationCrs );
283-
load();
284-
}
285-
delete mySelector;
271+
mDestinationCrs = destinationCrs;
272+
mDatumTransforms = QgsCoordinateTransform::datumTransformations( mSourceCrs, mDestinationCrs );
273+
load();
286274
setOKButtonEnabled();
287275
}
288-
289-
void QgsDatumTransformDialog::updateTitle()
290-
{
291-
mSourceCrsButton->setText( QStringLiteral( "%1 - %2" ).arg( mSourceCrs.authid(), mSourceCrs.isValid() ? mSourceCrs.description() : tr( "unknown" ) ) );
292-
mDstCrsButton->setText( QStringLiteral( "%1 - %2" ).arg( mDestinationCrs.authid(), mDestinationCrs.isValid() ? mDestinationCrs.description() : tr( "unknown" ) ) );
293-
}

src/gui/qgsdatumtransformdialog.h

+2-3
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,10 @@ class GUI_EXPORT QgsDatumTransformDialog : public QDialog, private Ui::QgsDatumT
5757
private slots:
5858
void mHideDeprecatedCheckBox_stateChanged( int state );
5959
void mDatumTransformTreeWidget_currentItemChanged( QTreeWidgetItem *, QTreeWidgetItem * );
60-
void setSourceCrs();
61-
void setDestinationCrs();
60+
void setSourceCrs( QgsCoordinateReferenceSystem sourceCrs );
61+
void setDestinationCrs( QgsCoordinateReferenceSystem destinationCrs );
6262

6363
private:
64-
void updateTitle();
6564
bool gridShiftTransformation( const QString &itemText ) const;
6665
//! Returns false if the location of the grid shift files is known (PROJ_LIB) and the shift file is not there
6766
bool testGridShiftFileAvailability( QTreeWidgetItem *item, int col ) const;

src/ui/qgsdatumtransformdialogbase.ui

+60-53
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,7 @@
1414
<string>Select Datum Transformations</string>
1515
</property>
1616
<layout class="QGridLayout" name="gridLayout">
17-
<item row="1" column="0">
18-
<widget class="QLabel" name="label_2">
19-
<property name="text">
20-
<string>Destination CRS</string>
21-
</property>
22-
</widget>
23-
</item>
24-
<item row="3" column="0">
17+
<item row="4" column="0">
2518
<widget class="QLabel" name="mLabelSrcDescription">
2619
<property name="text">
2720
<string notr="true">Description</string>
@@ -34,47 +27,7 @@
3427
</property>
3528
</widget>
3629
</item>
37-
<item row="0" column="0">
38-
<widget class="QLabel" name="label">
39-
<property name="text">
40-
<string>Source CRS</string>
41-
</property>
42-
</widget>
43-
</item>
44-
<item row="0" column="1">
45-
<widget class="QPushButton" name="mSourceCrsButton">
46-
<property name="text">
47-
<string>source CRS</string>
48-
</property>
49-
</widget>
50-
</item>
51-
<item row="1" column="1">
52-
<widget class="QPushButton" name="mDstCrsButton">
53-
<property name="text">
54-
<string>destination CRS</string>
55-
</property>
56-
</widget>
57-
</item>
58-
<item row="2" column="0" colspan="2">
59-
<widget class="QTreeWidget" name="mDatumTransformTreeWidget">
60-
<column>
61-
<property name="text">
62-
<string>src transform</string>
63-
</property>
64-
</column>
65-
<column>
66-
<property name="text">
67-
<string>dst transform</string>
68-
</property>
69-
</column>
70-
<column>
71-
<property name="text">
72-
<string/>
73-
</property>
74-
</column>
75-
</widget>
76-
</item>
77-
<item row="3" column="1">
30+
<item row="4" column="1">
7831
<widget class="QLabel" name="mLabelDstDescription">
7932
<property name="text">
8033
<string notr="true">Description</string>
@@ -112,7 +65,7 @@
11265
</layout>
11366
</item>
11467
<item row="6" column="0" colspan="2">
115-
<widget class="QDialogButtonBox" name="buttonBox">
68+
<widget class="QDialogButtonBox" name="mButtonBox">
11669
<property name="orientation">
11770
<enum>Qt::Horizontal</enum>
11871
</property>
@@ -121,17 +74,71 @@
12174
</property>
12275
</widget>
12376
</item>
77+
<item row="3" column="0" colspan="2">
78+
<widget class="QTreeWidget" name="mDatumTransformTreeWidget">
79+
<column>
80+
<property name="text">
81+
<string>src transform</string>
82+
</property>
83+
</column>
84+
<column>
85+
<property name="text">
86+
<string>dst transform</string>
87+
</property>
88+
</column>
89+
<column>
90+
<property name="text">
91+
<string/>
92+
</property>
93+
</column>
94+
</widget>
95+
</item>
96+
<item row="0" column="0" colspan="2">
97+
<layout class="QHBoxLayout" name="horizontalLayout_2">
98+
<item>
99+
<widget class="QLabel" name="label">
100+
<property name="text">
101+
<string>Source CRS</string>
102+
</property>
103+
</widget>
104+
</item>
105+
<item>
106+
<widget class="QgsProjectionSelectionWidget" name="mSourceProjectionSelectionWidget"/>
107+
</item>
108+
</layout>
109+
</item>
110+
<item row="1" column="0" colspan="2">
111+
<layout class="QHBoxLayout" name="horizontalLayout_3">
112+
<item>
113+
<widget class="QLabel" name="label_2">
114+
<property name="text">
115+
<string>Destination CRS</string>
116+
</property>
117+
</widget>
118+
</item>
119+
<item>
120+
<widget class="QgsProjectionSelectionWidget" name="mDestinationProjectionSelectionWidget"/>
121+
</item>
122+
</layout>
123+
</item>
124124
</layout>
125125
</widget>
126+
<customwidgets>
127+
<customwidget>
128+
<class>QgsProjectionSelectionWidget</class>
129+
<extends>QWidget</extends>
130+
<header>qgsprojectionselectionwidget.h</header>
131+
</customwidget>
132+
</customwidgets>
126133
<tabstops>
127134
<tabstop>mDatumTransformTreeWidget</tabstop>
128135
<tabstop>mHideDeprecatedCheckBox</tabstop>
129-
<tabstop>buttonBox</tabstop>
136+
<tabstop>mButtonBox</tabstop>
130137
</tabstops>
131138
<resources/>
132139
<connections>
133140
<connection>
134-
<sender>buttonBox</sender>
141+
<sender>mButtonBox</sender>
135142
<signal>accepted()</signal>
136143
<receiver>QgsDatumTransformDialogBase</receiver>
137144
<slot>accept()</slot>
@@ -147,7 +154,7 @@
147154
</hints>
148155
</connection>
149156
<connection>
150-
<sender>buttonBox</sender>
157+
<sender>mButtonBox</sender>
151158
<signal>rejected()</signal>
152159
<receiver>QgsDatumTransformDialogBase</receiver>
153160
<slot>reject()</slot>

0 commit comments

Comments
 (0)