17#ifndef QGSPROJECTIONSELECTIONWIDGET_H
18#define QGSPROJECTIONSELECTIONWIDGET_H
26#include <QConcatenateTablesProxyModel>
38class CombinedCoordinateReferenceSystemsProxyModel;
181 void setFilter(
const QList<QgsCoordinateReferenceSystem> &crses );
234 void dropEvent( QDropEvent *event )
override;
237 CombinedCoordinateReferenceSystemsProxyModel *mModel =
nullptr;
240 QToolButton *mButton =
nullptr;
244 bool mShowAccuracyWarnings =
false;
245 QString mSourceEnsemble;
247 QWidget *mWarningLabelContainer =
nullptr;
248 QLabel *mWarningLabel =
nullptr;
250 QPointer<QgsCrsSelectionWidget> mActivePanel;
251 int mIgnorePanelSignals = 0;
253 QString mDialogTitle;
255 void updateTooltip();
257 QgsMapLayer *mapLayerFromMimeData(
const QMimeData *data )
const;
261 void comboIndexChanged(
int idx );
262 void updateWarning();
269class StandardCoordinateReferenceSystemsModel :
public QAbstractItemModel
SIP_SKIP
277 RoleCrs = Qt::UserRole,
279 RoleOption = RoleCrs + 100,
282 StandardCoordinateReferenceSystemsModel( QObject *parent
SIP_TRANSFERTHIS =
nullptr );
284 Qt::ItemFlags flags(
const QModelIndex &index )
const override;
285 QVariant data(
const QModelIndex &index,
int role )
const override;
286 int rowCount(
const QModelIndex &parent = QModelIndex() )
const override;
287 int columnCount(
const QModelIndex & = QModelIndex() )
const override;
288 QModelIndex index(
int row,
int column,
const QModelIndex &parent = QModelIndex() )
const override;
289 QModelIndex parent(
const QModelIndex &index )
const override;
291 QgsCoordinateReferenceSystem crs(
const QModelIndex &index )
const;
295 void setLayerCrs(
const QgsCoordinateReferenceSystem &crs );
296 void setCurrentCrs(
const QgsCoordinateReferenceSystem &crs );
297 void setNotSetText(
const QString &text );
298 QString notSetText()
const {
return mNotSetText; }
299 QgsCoordinateReferenceSystem currentCrs()
const {
return mCurrentCrs; }
303 QgsCoordinateReferenceSystem mCurrentCrs;
304 QgsCoordinateReferenceSystem mProjectCrs;
305 QgsCoordinateReferenceSystem mDefaultCrs;
306 QgsCoordinateReferenceSystem mLayerCrs;
311class CombinedCoordinateReferenceSystemsModel :
public QConcatenateTablesProxyModel
SIP_SKIP
316 CombinedCoordinateReferenceSystemsModel( QObject *parent );
317 void setNotSetText(
const QString &text );
318 QString notSetText()
const;
319 QgsCoordinateReferenceSystem currentCrs()
const;
320 StandardCoordinateReferenceSystemsModel *standardModel() {
return mStandardModel; }
323 StandardCoordinateReferenceSystemsModel *mStandardModel =
nullptr;
324 QgsRecentCoordinateReferenceSystemsProxyModel *mRecentModel =
nullptr;
327class CombinedCoordinateReferenceSystemsProxyModel :
public QSortFilterProxyModel
SIP_SKIP
332 CombinedCoordinateReferenceSystemsProxyModel( QObject *parent );
333 bool filterAcceptsRow(
int sourceRow,
const QModelIndex &sourceParent )
const override;
334 void setLayerCrs(
const QgsCoordinateReferenceSystem &crs );
335 void setCurrentCrs(
const QgsCoordinateReferenceSystem &crs );
339 void setFilteredCrs(
const QList<QgsCoordinateReferenceSystem> &crses );
340 QList<QgsCoordinateReferenceSystem> filteredCrs()
const {
return mFilteredCrs; }
343 CombinedCoordinateReferenceSystemsModel *combinedModel()
const {
return mModel; }
346 CombinedCoordinateReferenceSystemsModel *mModel =
nullptr;
349 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)