QGIS API Documentation  3.20.0-Odense (decaadbb31)
qgssublayersdialog.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgssublayersdialog.h - dialog for selecting sublayers
3  ---------------------
4  begin : January 2009
5  copyright : (C) 2009 by Florian El Ahdab
6  email : felahdab 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 QGSSUBLAYERSDIALOG_H
17 #define QGSSUBLAYERSDIALOG_H
18 
19 #include <QDialog>
20 #include <QCheckBox>
21 #include "ui_qgssublayersdialogbase.h"
22 #include "qgis_sip.h"
23 #include "qgis_gui.h"
24 
29 class GUI_EXPORT QgsSublayersDialog : public QDialog, private Ui::QgsSublayersDialogBase
30 {
31  Q_OBJECT
32  public:
33 
39  {
40 
45 
50 
55 
59  PromptLoadAll
60  };
61  Q_ENUM( PromptMode )
62 
64  {
65  Ogr,
68  Mdal
69  };
70 
76  {
77  int layerId = -1 ;
78  QString layerName;
79  int count = -1 ;
80  QString type;
81  QString description;
82  };
83 
88  typedef QList<QgsSublayersDialog::LayerDefinition> LayerDefinitionList;
89 
91 
101  QgsSublayersDialog( ProviderType providerType,
102  const QString &name,
103  QWidget *parent SIP_TRANSFERTHIS = nullptr,
104  Qt::WindowFlags fl = Qt::WindowFlags(),
105  const QString &dataSourceUri = QString() );
106 
107  ~QgsSublayersDialog() override;
108 
113  void populateLayerTable( const LayerDefinitionList &list );
114 
119  LayerDefinitionList selection();
120 
125  void setShowAddToGroupCheckbox( bool showAddToGroupCheckbox ) { mShowAddToGroupCheckbox = showAddToGroupCheckbox; }
126 
131  bool showAddToGroupCheckbox() const { return mShowAddToGroupCheckbox; }
132 
137  bool addToGroupCheckbox() const { return mCbxAddToGroup->isChecked(); }
138 
143  int countColumn() const { return mShowCount ? 2 : -1; }
144 
145  public slots:
146  int exec() override;
147 
148  private slots:
149  void layersTable_selectionChanged( const QItemSelection &, const QItemSelection & );
150  void mBtnDeselectAll_pressed();
151 
152  protected:
153 
157  QString mName;
158  QStringList mSelectedSubLayers;
159  bool mShowCount = false;
160  bool mShowType = false;
161  bool mShowDescription = false;
162 
163  private:
164 
165  bool mShowAddToGroupCheckbox = false;
166 };
167 
168 #endif
QList< QgsSublayersDialog::LayerDefinition > LayerDefinitionList
List of layer definitions for the purpose of this dialog.
PromptMode
Prompt behavior of the QgsSublayersDialog.
@ PromptNever
never prompt, will not load anything
@ PromptAlways
always ask if there are existing sublayers
@ PromptIfNeeded
always ask if there are existing sublayers, but skip if there are bands for rasters
bool showAddToGroupCheckbox() const
If we should display the add to group checkbox.
void setShowAddToGroupCheckbox(bool showAddToGroupCheckbox)
Set if we should display the add to group checkbox.
QStringList mSelectedSubLayers
int countColumn() const
Returns column with count or -1.
bool addToGroupCheckbox() const
If we should add layers in a group.
QString mName
Provider type name.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
A structure that defines layers for the purpose of this dialog.
QString layerName
Name of the layer (not necessarily unique)
QString type
Extra type depending on the use (e.g. geometry type for vector sublayers)
QString description
Description. Added in QGIS 3.10.