17#ifndef QGSPROJECTIONSELECTIONWIDGET_H
18#define QGSPROJECTIONSELECTIONWIDGET_H
26#include <QConcatenateTablesProxyModel>
38class CombinedCoordinateReferenceSystemsProxyModel;
179 void setFilter(
const QList<QgsCoordinateReferenceSystem> &crses );
232 void dropEvent( QDropEvent *event )
override;
235 CombinedCoordinateReferenceSystemsProxyModel *mModel =
nullptr;
238 QToolButton *mButton =
nullptr;
242 bool mShowAccuracyWarnings =
false;
243 QString mSourceEnsemble;
245 QWidget *mWarningLabelContainer =
nullptr;
246 QLabel *mWarningLabel =
nullptr;
248 QPointer<QgsCrsSelectionWidget> mActivePanel;
249 int mIgnorePanelSignals = 0;
251 QString mDialogTitle;
253 void updateTooltip();
255 QgsMapLayer *mapLayerFromMimeData(
const QMimeData *data )
const;
259 void comboIndexChanged(
int idx );
260 void updateWarning();
267class StandardCoordinateReferenceSystemsModel :
public QAbstractItemModel
SIP_SKIP
275 RoleCrs = Qt::UserRole,
277 RoleOption = RoleCrs + 100,
280 StandardCoordinateReferenceSystemsModel( QObject *parent
SIP_TRANSFERTHIS =
nullptr );
282 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
283 QVariant data(
const QModelIndex &index,
int role )
const override;
284 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
285 int columnCount(
const QModelIndex & = QModelIndex() )
const override;
286 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex() )
const override;
287 QModelIndex parent(
const QModelIndex &index )
const override;
289 QgsCoordinateReferenceSystem crs(
const QModelIndex &index )
const;
293 void setLayerCrs(
const QgsCoordinateReferenceSystem &crs );
294 void setCurrentCrs(
const QgsCoordinateReferenceSystem &crs );
295 void setNotSetText(
const QString &text );
296 QString notSetText()
const {
return mNotSetText; }
297 QgsCoordinateReferenceSystem currentCrs()
const {
return mCurrentCrs; }
301 QgsCoordinateReferenceSystem mCurrentCrs;
302 QgsCoordinateReferenceSystem mProjectCrs;
303 QgsCoordinateReferenceSystem mDefaultCrs;
304 QgsCoordinateReferenceSystem mLayerCrs;
309class CombinedCoordinateReferenceSystemsModel :
public QConcatenateTablesProxyModel
SIP_SKIP
314 CombinedCoordinateReferenceSystemsModel( QObject *parent );
315 void setNotSetText(
const QString &text );
316 QString notSetText()
const;
317 QgsCoordinateReferenceSystem currentCrs()
const;
318 StandardCoordinateReferenceSystemsModel *standardModel() {
return mStandardModel; }
321 StandardCoordinateReferenceSystemsModel *mStandardModel =
nullptr;
322 QgsRecentCoordinateReferenceSystemsProxyModel *mRecentModel =
nullptr;
325class CombinedCoordinateReferenceSystemsProxyModel :
public QSortFilterProxyModel
SIP_SKIP
330 CombinedCoordinateReferenceSystemsProxyModel( QObject *parent );
331 bool filterAcceptsRow(
int sourceRow,
const QModelIndex &sourceParent )
const override;
332 void setLayerCrs(
const QgsCoordinateReferenceSystem &crs );
333 void setCurrentCrs(
const QgsCoordinateReferenceSystem &crs );
337 void setFilteredCrs(
const QList<QgsCoordinateReferenceSystem> &crses );
338 QList<QgsCoordinateReferenceSystem> filteredCrs()
const {
return mFilteredCrs; }
341 CombinedCoordinateReferenceSystemsModel *combinedModel()
const {
return mModel; }
344 CombinedCoordinateReferenceSystemsModel *mModel =
nullptr;
347 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)