QGIS API Documentation 3.43.0-Master (b60ef06885e)
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
35class GUI_EXPORT QgsDatumTransformDialog : public QDialog, private Ui::QgsDatumTransformDialogBase
36{
37 Q_OBJECT
38 public:
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(), const QgsCoordinateReferenceSystem &destinationCrs = QgsCoordinateReferenceSystem(), QWidget *parent = nullptr, QgsMapCanvas *mapCanvas = nullptr, const QString &windowTitle = QString() );
76
77 // TODO QGIS 4.0 - remove selectedDatumTransform, forceChoice
78
82 QgsDatumTransformDialog( const QgsCoordinateReferenceSystem &sourceCrs = QgsCoordinateReferenceSystem(), const QgsCoordinateReferenceSystem &destinationCrs = QgsCoordinateReferenceSystem(), bool allowCrsChanges = false, bool showMakeDefault = true, bool forceChoice = true, QPair<int, int> selectedDatumTransforms = qMakePair( -1, -1 ), QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags(), const QString &selectedProj = QString(), QgsMapCanvas *mapCanvas = nullptr, bool allowFallback = true );
83
84 void accept() override;
85 void reject() override;
86
90 TransformInfo selectedDatumTransform();
91
92 private slots:
93
94 void operationChanged();
95 void setSourceCrs( const QgsCoordinateReferenceSystem &sourceCrs );
96 void setDestinationCrs( const QgsCoordinateReferenceSystem &destinationCrs );
97
98 private:
99 enum Roles
100 {
101 TransformIdRole = Qt::UserRole + 1,
102 ProjRole,
103 AvailableRole,
104 BoundsRole
105 };
106
107 bool gridShiftTransformation( const QString &itemText ) const;
108
109 void setOKButtonEnabled();
110
116 bool shouldAskUserForSelection() const;
117
125 TransformInfo defaultDatumTransform() const;
126
130 void applyDefaultTransform();
131
132 std::unique_ptr<QgsTemporaryCursorRestoreOverride> mPreviousCursorOverride;
133
134 friend class TestQgsDatumTransformDialog;
135};
136
137#endif // QGSDATUMTRANSFORMDIALOG_H
Represents a coordinate reference system (CRS).
A dialog for configuring transform operations between coordinate reference systems.
Map canvas is a class for displaying all GIS data types on a canvas.
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.