QGIS API Documentation  3.12.1-BucureČ™ti (121cc00ff0)
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 
159  void operationChanged();
160 
164  void operationDoubleClicked();
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
const QgsCoordinateReferenceSystem & crs
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:75
QString proj
Proj coordinate operation description, for Proj >= 6.0 builds only.
Contains information about the context in which a coordinate transform is executed.
This class represents a coordinate reference system (CRS).
QgsCoordinateReferenceSystem sourceCrs() const
Returns the source CRS for the operations shown in the widget.
QgsCoordinateReferenceSystem destinationCrs() const
Returns the destination CRS for the operations shown in the widget.
A widget for selecting the coordinate operation to use when transforming between a source and destina...