QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgscoordinateoperationwidget.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgscoordinateoperationwidget.h
3  ------------------------------
4  begin : December 2019
5  copyright : (C) 2019 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
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 QGSCOORDINATEOPERATIONWIDGET_H
19 #define QGSCOORDINATEOPERATIONWIDGET_H
20 
21 #include "ui_qgscoordinateoperationwidgetbase.h"
23 #include "qgis_gui.h"
24 
33 class GUI_EXPORT QgsCoordinateOperationWidget : public QWidget, private Ui::QgsCoordinateOperationWidgetBase
34 {
35  Q_OBJECT
36  public:
37 
40  {
42  int sourceTransformId = -1;
43 
45  int destinationTransformId = -1;
46 
48  QString proj;
49 
51  bool isAvailable = true;
52 
54  bool allowFallback = true;
55  };
56 
60  QgsCoordinateOperationWidget( QWidget *parent = nullptr );
61 
62  ~QgsCoordinateOperationWidget() override;
63 
70  QgsCoordinateReferenceSystem sourceCrs() const { return mSourceCrs; }
71 
78  QgsCoordinateReferenceSystem destinationCrs() const { return mDestinationCrs; }
79 
86  void setSourceCrs( const QgsCoordinateReferenceSystem &crs );
87 
94  void setDestinationCrs( const QgsCoordinateReferenceSystem &crs );
95 
100  void setMapCanvas( QgsMapCanvas *canvas );
101 
105  void setShowMakeDefault( bool show );
106 
110  bool makeDefaultSelected() const;
111 
115  bool hasSelection() const;
116 
120  QList< QgsCoordinateOperationWidget::OperationDetails > availableOperations() const;
121 
125  QgsCoordinateOperationWidget::OperationDetails defaultOperation() const;
126 
131  QgsCoordinateOperationWidget::OperationDetails selectedOperation() const;
132 
137  void setSelectedOperation( const QgsCoordinateOperationWidget::OperationDetails &operation );
138 
145  void setSelectedOperationUsingContext( const QgsCoordinateTransformContext &context );
146 
152  void setShowFallbackOption( bool visible );
153 
154  signals:
155 
160 
165 
166  private slots:
167 
168  void tableCurrentItemChanged( QTableWidgetItem *, QTableWidgetItem * );
169 
170  void showSupersededToggled( bool toggled );
171 
172  void installGrid();
173 
174  private:
175 
176  enum Roles
177  {
178  TransformIdRole = Qt::UserRole + 1,
179  ProjRole,
180  AvailableRole,
181  BoundsRole,
182  MissingGridsRole,
183  MissingGridPackageNamesRole,
184  MissingGridUrlsRole
185  };
186 
187  bool gridShiftTransformation( const QString &itemText ) const;
189  bool testGridShiftFileAvailability( QTableWidgetItem *item ) const;
190  void loadAvailableOperations();
191 
195  QString formatScope( const QString &scope );
196 
197 #if PROJ_VERSION_MAJOR>=6
198  QList< QgsDatumTransform::TransformDetails > mDatumTransforms;
199 #else
200  QList< QgsDatumTransform::TransformPair > mDatumTransforms;
201 #endif
202  QgsCoordinateReferenceSystem mSourceCrs;
203  QgsCoordinateReferenceSystem mDestinationCrs;
204  OperationDetails mPreviousOp;
205  int mBlockSignals = 0;
206 };
207 
208 #endif // QGSCOORDINATEOPERATIONWIDGET_H
QgsCoordinateOperationWidget
A widget for selecting the coordinate operation to use when transforming between a source and destina...
Definition: qgscoordinateoperationwidget.h:34
QgsCoordinateTransformContext
Contains information about the context in which a coordinate transform is executed.
Definition: qgscoordinatetransformcontext.h:58
QgsCoordinateOperationWidget::sourceCrs
QgsCoordinateReferenceSystem sourceCrs() const
Returns the source CRS for the operations shown in the widget.
Definition: qgscoordinateoperationwidget.h:70
crs
const QgsCoordinateReferenceSystem & crs
Definition: qgswfsgetfeature.cpp:51
QgsCoordinateOperationWidget::OperationDetails
Coordinate operation details.
Definition: qgscoordinateoperationwidget.h:40
QgsMapCanvas
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:85
QgsCoordinateOperationWidget::OperationDetails::proj
QString proj
Proj coordinate operation description, for Proj >= 6.0 builds only.
Definition: qgscoordinateoperationwidget.h:48
QgsCoordinateOperationWidget::operationDoubleClicked
void operationDoubleClicked()
Emitted when an operation is double-clicked in the widget.
QgsCoordinateOperationWidget::destinationCrs
QgsCoordinateReferenceSystem destinationCrs() const
Returns the destination CRS for the operations shown in the widget.
Definition: qgscoordinateoperationwidget.h:78
QgsCoordinateReferenceSystem
This class represents a coordinate reference system (CRS).
Definition: qgscoordinatereferencesystem.h:206
qgscoordinatereferencesystem.h
QgsCoordinateOperationWidget::operationChanged
void operationChanged()
Emitted when the operation selected in the dialog is changed.