QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgsprovidersublayersdialog.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsprovidersublayersdialog.h
3 ---------------------
4 begin : July 2021
5 copyright : (C) 2021 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSPROVIDERSUBLAYERSDIALOG_H
17#define QGSPROVIDERSUBLAYERSDIALOG_H
18
19#include "ui_qgsprovidersublayersdialogbase.h"
20
21#include "qgis_gui.h"
24
25#include <QCheckBox>
26#include <QDialog>
27#include <QPointer>
28
32
41{
42 Q_OBJECT
43
44 public:
48 QgsProviderSublayerDialogModel( QObject *parent = nullptr );
49
50 QVariant data( const QModelIndex &index, int role ) const override;
51 Qt::ItemFlags flags( const QModelIndex &index ) const override;
52
56 void setGeometryTypesResolved( bool resolved );
57
58 private:
59 bool mGeometryTypesResolved = false;
60};
61
69class GUI_EXPORT QgsProviderSublayersDialog : public QDialog, private Ui::QgsProviderSublayersDialogBase
70{
71 Q_OBJECT
72 public:
76 QgsProviderSublayersDialog( const QString &uri, const QString &providerKey, const QString &filePath, const QList<QgsProviderSublayerDetails> initialDetails = QList<QgsProviderSublayerDetails>(), const QList<Qgis::LayerType> &acceptableTypes = QList<Qgis::LayerType>(), QWidget *parent SIP_TRANSFERTHIS = nullptr, Qt::WindowFlags fl = Qt::WindowFlags() );
77
81 void setNonLayerItems( const QList<QgsProviderSublayerModel::NonLayerItem> &items );
82
84
88 QList<QgsProviderSublayerDetails> selectedLayers() const;
89
93 QList<QgsProviderSublayerModel::NonLayerItem> selectedNonLayerItems() const;
94
98 QString groupName() const;
99
103 void setGroupName( const QString &groupNameIn );
104
105 signals:
106
110 void layersAdded( const QList<QgsProviderSublayerDetails> &layers );
111
112 private slots:
113 void treeSelectionChanged( const QItemSelection &, const QItemSelection & );
114 void selectAll();
115
116 private:
117 QgsProviderSublayerDialogModel *mModel = nullptr;
118 QgsProviderSublayerProxyModel *mProxyModel = nullptr;
119 QPointer<QgsProviderSublayerTask> mTask;
120 QString mGroupName;
121 bool mBlockSelectionChanges = false;
122};
123
124#endif // QGSPROVIDERSUBLAYERSDIALOG_H
A model for representing the sublayers present in a URI for the QgsProviderSublayersDialog.
QgsProviderSublayerDialogModel(QObject *parent=nullptr)
Constructor.
void setGeometryTypesResolved(bool resolved)
Sets whether geometry types are resolved.
A model for representing the sublayers present in a URI.
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
QVariant data(const QModelIndex &index, int role) const override
QgsProviderSublayerModel(QObject *parent=nullptr)
Constructor for QgsProviderSublayerModel, with the specified parent object.
QModelIndex parent(const QModelIndex &index) const override
Qt::ItemFlags flags(const QModelIndex &index) const override
A QSortFilterProxyModel for filtering and sorting a QgsProviderSublayerModel.
A QgsTask which retrieves sublayer details for a URI.
void setGroupName(const QString &groupNameIn)
Sets an appropriate name for the layer group.
QString groupName() const
Returns an appropriate name for the layer group.
void setNonLayerItems(const QList< QgsProviderSublayerModel::NonLayerItem > &items)
Set list of non-layer items (e.g.
QList< QgsProviderSublayerModel::NonLayerItem > selectedNonLayerItems() const
Returns the list of selected non-layer items (e.g.
void layersAdded(const QList< QgsProviderSublayerDetails > &layers)
Emitted when sublayers selected from the dialog should be added to the project.
QList< QgsProviderSublayerDetails > selectedLayers() const
Returns the list of selected layers.
QgsProviderSublayersDialog(const QString &uri, const QString &providerKey, const QString &filePath, const QList< QgsProviderSublayerDetails > initialDetails=QList< QgsProviderSublayerDetails >(), const QList< Qgis::LayerType > &acceptableTypes=QList< Qgis::LayerType >(), QWidget *parent SIP_TRANSFERTHIS=nullptr, Qt::WindowFlags fl=Qt::WindowFlags())
Constructor.
#define SIP_TRANSFERTHIS
Definition qgis_sip.h:53