Skip to content

Commit eab08d0

Browse files
committedMar 19, 2019
Do not allow CRS changes in datum transform dialog when it has
been shown as a result of requiring the transform for a specific CRS pair Sponsored by ICSM
1 parent c534cc4 commit eab08d0

File tree

5 files changed

+135
-66
lines changed

5 files changed

+135
-66
lines changed
 

‎python/gui/auto_generated/qgsprojectionselectionwidget.sip.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ passed, the message will be a generic
8282
.. versionadded:: 3.0
8383
%End
8484

85+
8586
signals:
8687

8788
void crsChanged( const QgsCoordinateReferenceSystem & );

‎src/app/qgsdatumtransformtablewidget.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ QgsDatumTransformTableWidget::QgsDatumTransformTableWidget( QWidget *parent )
197197

198198
void QgsDatumTransformTableWidget::addDatumTransform()
199199
{
200-
QgsDatumTransformDialog dlg;
200+
QgsDatumTransformDialog dlg( QgsCoordinateReferenceSystem(), QgsCoordinateReferenceSystem(), true );
201201
if ( dlg.exec() )
202202
{
203203
QPair< QPair<QgsCoordinateReferenceSystem, int>, QPair<QgsCoordinateReferenceSystem, int > > dt = dlg.selectedDatumTransforms();
@@ -248,7 +248,7 @@ void QgsDatumTransformTableWidget::editDatumTransform()
248248
if ( sourceCrs.isValid() && destinationCrs.isValid() &&
249249
( sourceTransform != -1 || destinationTransform != -1 ) )
250250
{
251-
QgsDatumTransformDialog dlg( sourceCrs, destinationCrs, qMakePair( sourceTransform, destinationTransform ) );
251+
QgsDatumTransformDialog dlg( sourceCrs, destinationCrs, true, qMakePair( sourceTransform, destinationTransform ) );
252252
if ( dlg.exec() )
253253
{
254254
QPair< QPair<QgsCoordinateReferenceSystem, int>, QPair<QgsCoordinateReferenceSystem, int > > dt = dlg.selectedDatumTransforms();

‎src/gui/qgsdatumtransformdialog.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#include <QPushButton>
2929

3030
QgsDatumTransformDialog::QgsDatumTransformDialog( const QgsCoordinateReferenceSystem &sourceCrs,
31-
const QgsCoordinateReferenceSystem &destinationCrs,
31+
const QgsCoordinateReferenceSystem &destinationCrs, const bool allowCrsChanges,
3232
QPair<int, int> selectedDatumTransforms,
3333
QWidget *parent,
3434
Qt::WindowFlags f )
@@ -46,6 +46,14 @@ QgsDatumTransformDialog::QgsDatumTransformDialog( const QgsCoordinateReferenceSy
4646

4747
mSourceProjectionSelectionWidget->setCrs( sourceCrs );
4848
mDestinationProjectionSelectionWidget->setCrs( destinationCrs );
49+
if ( !allowCrsChanges )
50+
{
51+
mCrsStackedWidget->setCurrentIndex( 1 );
52+
mSourceProjectionSelectionWidget->setEnabled( false );
53+
mDestinationProjectionSelectionWidget->setEnabled( false );
54+
mSourceCrsLabel->setText( QgsProjectionSelectionWidget::crsOptionText( sourceCrs ) );
55+
mDestCrsLabel->setText( QgsProjectionSelectionWidget::crsOptionText( destinationCrs ) );
56+
}
4957

5058
connect( mHideDeprecatedCheckBox, &QCheckBox::stateChanged, this, [ = ] { load(); } );
5159
connect( mDatumTransformTableWidget, &QTableWidget::currentItemChanged, this, &QgsDatumTransformDialog::tableCurrentItemChanged );

‎src/gui/qgsdatumtransformdialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class GUI_EXPORT QgsDatumTransformDialog : public QDialog, private Ui::QgsDatumT
4242
*/
4343
QgsDatumTransformDialog( const QgsCoordinateReferenceSystem &sourceCrs = QgsCoordinateReferenceSystem(),
4444
const QgsCoordinateReferenceSystem &destinationCrs = QgsCoordinateReferenceSystem(),
45+
bool allowCrsChanges = false,
4546
QPair<int, int> selectedDatumTransforms = qMakePair( -1, -1 ),
4647
QWidget *parent = nullptr,
4748
Qt::WindowFlags f = nullptr );

‎src/ui/qgsdatumtransformdialogbase.ui

Lines changed: 122 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,132 @@
77
<x>0</x>
88
<y>0</y>
99
<width>620</width>
10-
<height>490</height>
10+
<height>508</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
1414
<string>Select Datum Transformations</string>
1515
</property>
16-
<layout class="QGridLayout" name="gridLayout">
16+
<layout class="QGridLayout" name="gridLayout" rowstretch="0,3,1,0,0">
17+
<item row="2" column="0">
18+
<widget class="QLabel" name="mLabelSrcDescription">
19+
<property name="text">
20+
<string notr="true">Description</string>
21+
</property>
22+
<property name="alignment">
23+
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
24+
</property>
25+
<property name="wordWrap">
26+
<bool>true</bool>
27+
</property>
28+
</widget>
29+
</item>
1730
<item row="4" column="0" colspan="2">
31+
<widget class="QDialogButtonBox" name="mButtonBox">
32+
<property name="orientation">
33+
<enum>Qt::Horizontal</enum>
34+
</property>
35+
<property name="standardButtons">
36+
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
37+
</property>
38+
</widget>
39+
</item>
40+
<item row="0" column="0" colspan="2">
41+
<widget class="QStackedWidget" name="mCrsStackedWidget">
42+
<property name="currentIndex">
43+
<number>0</number>
44+
</property>
45+
<widget class="QWidget" name="page">
46+
<layout class="QVBoxLayout" name="verticalLayout">
47+
<property name="leftMargin">
48+
<number>0</number>
49+
</property>
50+
<property name="topMargin">
51+
<number>0</number>
52+
</property>
53+
<property name="rightMargin">
54+
<number>0</number>
55+
</property>
56+
<property name="bottomMargin">
57+
<number>0</number>
58+
</property>
59+
<item>
60+
<layout class="QGridLayout" name="gridLayout_4" columnstretch="0,1">
61+
<item row="0" column="0">
62+
<widget class="QLabel" name="label">
63+
<property name="text">
64+
<string>Source CRS</string>
65+
</property>
66+
</widget>
67+
</item>
68+
<item row="0" column="1">
69+
<widget class="QgsProjectionSelectionWidget" name="mSourceProjectionSelectionWidget" native="true"/>
70+
</item>
71+
<item row="1" column="0">
72+
<widget class="QLabel" name="label_2">
73+
<property name="text">
74+
<string>Destination CRS</string>
75+
</property>
76+
</widget>
77+
</item>
78+
<item row="1" column="1">
79+
<widget class="QgsProjectionSelectionWidget" name="mDestinationProjectionSelectionWidget" native="true"/>
80+
</item>
81+
</layout>
82+
</item>
83+
</layout>
84+
</widget>
85+
<widget class="QWidget" name="page_2">
86+
<layout class="QVBoxLayout" name="verticalLayout_2">
87+
<property name="leftMargin">
88+
<number>0</number>
89+
</property>
90+
<property name="topMargin">
91+
<number>0</number>
92+
</property>
93+
<property name="rightMargin">
94+
<number>0</number>
95+
</property>
96+
<property name="bottomMargin">
97+
<number>0</number>
98+
</property>
99+
<item>
100+
<layout class="QGridLayout" name="gridLayout_5" columnstretch="0,1">
101+
<item row="0" column="0">
102+
<widget class="QLabel" name="label_3">
103+
<property name="text">
104+
<string>Source CRS</string>
105+
</property>
106+
</widget>
107+
</item>
108+
<item row="1" column="0">
109+
<widget class="QLabel" name="label_4">
110+
<property name="text">
111+
<string>Destination CRS</string>
112+
</property>
113+
</widget>
114+
</item>
115+
<item row="1" column="1">
116+
<widget class="QLabel" name="mDestCrsLabel">
117+
<property name="text">
118+
<string/>
119+
</property>
120+
</widget>
121+
</item>
122+
<item row="0" column="1">
123+
<widget class="QLabel" name="mSourceCrsLabel">
124+
<property name="text">
125+
<string/>
126+
</property>
127+
</widget>
128+
</item>
129+
</layout>
130+
</item>
131+
</layout>
132+
</widget>
133+
</widget>
134+
</item>
135+
<item row="3" column="0" colspan="2">
18136
<layout class="QHBoxLayout" name="horizontalLayout">
19137
<item>
20138
<spacer name="horizontalSpacer">
@@ -38,7 +156,7 @@
38156
</item>
39157
</layout>
40158
</item>
41-
<item row="2" column="0" colspan="2">
159+
<item row="1" column="0" colspan="2">
42160
<widget class="QTableWidget" name="mDatumTransformTableWidget">
43161
<property name="selectionMode">
44162
<enum>QAbstractItemView::SingleSelection</enum>
@@ -48,7 +166,7 @@
48166
</property>
49167
</widget>
50168
</item>
51-
<item row="3" column="1">
169+
<item row="2" column="1">
52170
<widget class="QLabel" name="mLabelDstDescription">
53171
<property name="text">
54172
<string notr="true">Description</string>
@@ -61,65 +179,6 @@
61179
</property>
62180
</widget>
63181
</item>
64-
<item row="5" column="0" colspan="2">
65-
<widget class="QDialogButtonBox" name="mButtonBox">
66-
<property name="orientation">
67-
<enum>Qt::Horizontal</enum>
68-
</property>
69-
<property name="standardButtons">
70-
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
71-
</property>
72-
</widget>
73-
</item>
74-
<item row="3" column="0">
75-
<widget class="QLabel" name="mLabelSrcDescription">
76-
<property name="text">
77-
<string notr="true">Description</string>
78-
</property>
79-
<property name="alignment">
80-
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
81-
</property>
82-
<property name="wordWrap">
83-
<bool>true</bool>
84-
</property>
85-
</widget>
86-
</item>
87-
<item row="0" column="0" colspan="2">
88-
<layout class="QGridLayout" name="gridLayout_4">
89-
<item row="0" column="0">
90-
<widget class="QLabel" name="label">
91-
<property name="sizePolicy">
92-
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
93-
<horstretch>0</horstretch>
94-
<verstretch>0</verstretch>
95-
</sizepolicy>
96-
</property>
97-
<property name="text">
98-
<string>Source CRS</string>
99-
</property>
100-
</widget>
101-
</item>
102-
<item row="0" column="1">
103-
<widget class="QgsProjectionSelectionWidget" name="mSourceProjectionSelectionWidget" native="true"/>
104-
</item>
105-
<item row="1" column="0">
106-
<widget class="QLabel" name="label_2">
107-
<property name="sizePolicy">
108-
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
109-
<horstretch>0</horstretch>
110-
<verstretch>0</verstretch>
111-
</sizepolicy>
112-
</property>
113-
<property name="text">
114-
<string>Destination CRS</string>
115-
</property>
116-
</widget>
117-
</item>
118-
<item row="1" column="1">
119-
<widget class="QgsProjectionSelectionWidget" name="mDestinationProjectionSelectionWidget" native="true"/>
120-
</item>
121-
</layout>
122-
</item>
123182
</layout>
124183
</widget>
125184
<customwidgets>

0 commit comments

Comments
 (0)
Please sign in to comment.