17#ifndef QGSPROJECTIONSELECTIONWIDGET_H
18#define QGSPROJECTIONSELECTIONWIDGET_H
26#include <QConcatenateTablesProxyModel>
38class CombinedCoordinateReferenceSystemsProxyModel;
181 void setFilter(
const QList<QgsCoordinateReferenceSystem> &crses );
243 void dropEvent( QDropEvent *event )
override;
246 CombinedCoordinateReferenceSystemsProxyModel *mModel =
nullptr;
249 QToolButton *mButton =
nullptr;
253 bool mAllowTopocentricCrs =
true;
254 bool mShowAccuracyWarnings =
false;
255 QString mSourceEnsemble;
257 QWidget *mWarningLabelContainer =
nullptr;
258 QLabel *mWarningLabel =
nullptr;
260 QPointer<QgsCrsSelectionWidget> mActivePanel;
261 int mIgnorePanelSignals = 0;
263 QString mDialogTitle;
265 void updateTooltip();
267 QgsMapLayer *mapLayerFromMimeData(
const QMimeData *data )
const;
271 void comboIndexChanged(
int idx );
272 void updateWarning();
279class StandardCoordinateReferenceSystemsModel :
public QAbstractItemModel
SIP_SKIP
287 RoleCrs = Qt::UserRole,
289 RoleOption = RoleCrs + 100,
292 StandardCoordinateReferenceSystemsModel( QObject *parent
SIP_TRANSFERTHIS =
nullptr );
294 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
295 QVariant data(
const QModelIndex &index,
int role )
const override;
296 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
297 int columnCount(
const QModelIndex & = QModelIndex() )
const override;
298 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex() )
const override;
299 QModelIndex parent(
const QModelIndex &index )
const override;
301 QgsCoordinateReferenceSystem crs(
const QModelIndex &index )
const;
305 void setLayerCrs(
const QgsCoordinateReferenceSystem &crs );
306 void setCurrentCrs(
const QgsCoordinateReferenceSystem &crs );
307 void setNotSetText(
const QString &text );
308 QString notSetText()
const {
return mNotSetText; }
309 QgsCoordinateReferenceSystem currentCrs()
const {
return mCurrentCrs; }
313 QgsCoordinateReferenceSystem mCurrentCrs;
314 QgsCoordinateReferenceSystem mProjectCrs;
315 QgsCoordinateReferenceSystem mDefaultCrs;
316 QgsCoordinateReferenceSystem mLayerCrs;
321class CombinedCoordinateReferenceSystemsModel :
public QConcatenateTablesProxyModel
SIP_SKIP
326 CombinedCoordinateReferenceSystemsModel( QObject *parent );
327 void setNotSetText(
const QString &text );
328 QString notSetText()
const;
329 QgsCoordinateReferenceSystem currentCrs()
const;
330 StandardCoordinateReferenceSystemsModel *standardModel() {
return mStandardModel; }
333 StandardCoordinateReferenceSystemsModel *mStandardModel =
nullptr;
334 QgsRecentCoordinateReferenceSystemsProxyModel *mRecentModel =
nullptr;
337class CombinedCoordinateReferenceSystemsProxyModel :
public QSortFilterProxyModel
SIP_SKIP
342 CombinedCoordinateReferenceSystemsProxyModel( QObject *parent );
343 bool filterAcceptsRow(
int sourceRow,
const QModelIndex &sourceParent )
const override;
344 void setLayerCrs(
const QgsCoordinateReferenceSystem &crs );
345 void setCurrentCrs(
const QgsCoordinateReferenceSystem &crs );
349 void setFilteredCrs(
const QList<QgsCoordinateReferenceSystem> &crses );
350 QList<QgsCoordinateReferenceSystem> filteredCrs()
const {
return mFilteredCrs; }
353 CombinedCoordinateReferenceSystemsModel *combinedModel()
const {
return mModel; }
356 CombinedCoordinateReferenceSystemsModel *mModel =
nullptr;
359 QList<QgsCoordinateReferenceSystem> mFilteredCrs;
@ FilterCompound
Include compound CRS.
@ FilterHorizontal
Include horizontal CRS (excludes compound CRS containing a horizontal component).
Represents a coordinate reference system (CRS).
A QComboBox subclass with the ability to "highlight" the edges of the widget.
Base class for all map layer types.
A sort/filter proxy model for recent coordinate reference systems.
#define SIP_ENUM_BASETYPE(type)