QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsdatumtransformdialog.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsdatumtransformdialog.h
3 -------------------------
4 begin : November 2013
5 copyright : (C) 2013 by Marco Hugentobler
6 email : marco.hugentobler at sourcepole dot ch
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSDATUMTRANSFORMDIALOG_H
19#define QGSDATUMTRANSFORMDIALOG_H
20
21#include "ui_qgsdatumtransformdialogbase.h"
24#include "qgsguiutils.h"
25#include "qgis_gui.h"
26
27#define SIP_NO_FILE
28
34class GUI_EXPORT QgsDatumTransformDialog : public QDialog, private Ui::QgsDatumTransformDialogBase
35{
36 Q_OBJECT
37 public:
38
41 {
44
46 int sourceTransformId = -1;
47
50
52 int destinationTransformId = -1;
53
55 QString proj;
56
58 bool allowFallback = true;
59 };
60
75 static bool run( const QgsCoordinateReferenceSystem &sourceCrs = QgsCoordinateReferenceSystem(),
77 QWidget *parent = nullptr,
78 QgsMapCanvas *mapCanvas = nullptr,
79 const QString &windowTitle = QString() );
80
81 // TODO QGIS 4.0 - remove selectedDatumTransform, forceChoice
82
88 bool allowCrsChanges = false,
89 bool showMakeDefault = true,
90 bool forceChoice = true,
91 QPair<int, int> selectedDatumTransforms = qMakePair( -1, -1 ),
92 QWidget *parent = nullptr,
93 Qt::WindowFlags f = Qt::WindowFlags(),
94 const QString &selectedProj = QString(),
95 QgsMapCanvas *mapCanvas = nullptr,
96 bool allowFallback = true );
97
98 void accept() override;
99 void reject() override;
100
104 TransformInfo selectedDatumTransform();
105
106 private slots:
107
108 void operationChanged();
109 void setSourceCrs( const QgsCoordinateReferenceSystem &sourceCrs );
110 void setDestinationCrs( const QgsCoordinateReferenceSystem &destinationCrs );
111
112 private:
113
114 enum Roles
115 {
116 TransformIdRole = Qt::UserRole + 1,
117 ProjRole,
118 AvailableRole,
119 BoundsRole
120 };
121
122 bool gridShiftTransformation( const QString &itemText ) const;
123
124 void setOKButtonEnabled();
125
131 bool shouldAskUserForSelection() const;
132
140 TransformInfo defaultDatumTransform() const;
141
145 void applyDefaultTransform();
146
147 std::unique_ptr< QgsTemporaryCursorRestoreOverride > mPreviousCursorOverride;
148
149 friend class TestQgsDatumTransformDialog;
150};
151
152#endif // QGSDATUMTRANSFORMDIALOG_H
This class represents a coordinate reference system (CRS).
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:93
Dialog transformation entry info.
QString proj
Proj coordinate operation description, for Proj >= 6.0 builds only.
QgsCoordinateReferenceSystem sourceCrs
Source coordinate reference system.
QgsCoordinateReferenceSystem destinationCrs
Destination coordinate reference system.