QGIS API Documentation  3.20.0-Odense (decaadbb31)
qgsdatabaseschemacombobox.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsdatabaseschemacombobox.h
3  --------------------------------
4  Date : March 2020
5  Copyright : (C) 2020 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 QGSDATABASESCHEMACOMBOBOX_H
17 #define QGSDATABASESCHEMACOMBOBOX_H
18 
19 #include <QComboBox>
20 
21 #include "qgis_gui.h"
22 #include "qgis_sip.h"
23 #include <QSortFilterProxyModel>
24 
27 
29 #ifndef SIP_RUN
30 class GUI_EXPORT QgsDatabaseSchemaComboBoxSortModel: public QSortFilterProxyModel
31 {
32  public:
33  explicit QgsDatabaseSchemaComboBoxSortModel( QObject *parent = nullptr );
34  protected:
35  bool lessThan( const QModelIndex &source_left, const QModelIndex &source_right ) const override;
36 
37 };
38 #endif
40 
50 class GUI_EXPORT QgsDatabaseSchemaComboBox : public QWidget
51 {
52  Q_OBJECT
53 
54  public:
55 
62  explicit QgsDatabaseSchemaComboBox( const QString &provider, const QString &connection, QWidget *parent SIP_TRANSFERTHIS = nullptr );
63 
69  explicit QgsDatabaseSchemaComboBox( QgsAbstractDatabaseProviderConnection *connection SIP_TRANSFER, QWidget *parent SIP_TRANSFERTHIS = nullptr );
70 
75  void setAllowEmptySchema( bool allowEmpty );
76 
81  bool allowEmptySchema() const;
82 
86  QString currentSchema() const;
87 
91  QComboBox *comboBox() { return mComboBox; }
92 
93  public slots:
94 
98  void setSchema( const QString &schema );
99 
105  void setConnectionName( const QString &connection, const QString &provider = QString() );
106 
110  void refreshSchemas();
111 
112  signals:
114  void schemaChanged( const QString &schema );
115 
116  private slots:
117  void indexChanged( int i );
118  void rowsChanged();
119 
120  private:
121  void init();
122 
123  bool mAllowEmpty = false;
124  QString mProvider;
125  QgsDatabaseSchemaModel *mModel = nullptr;
126  QSortFilterProxyModel *mSortModel = nullptr;
127  QComboBox *mComboBox = nullptr;
128 };
129 
130 #endif // QGSDATABASESCHEMACOMBOBOX_H
The QgsAbstractDatabaseProviderConnection class provides common functionality for DB based connection...
The QgsDatabaseSchemaComboBox class is a combo box which displays the list of schemas for a specific ...
void schemaChanged(const QString &schema)
Emitted whenever the currently selected schema changes.
QComboBox * comboBox()
Returns the combobox portion of the widget.
A model containing schemas from a database connection.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_TRANSFER
Definition: qgis_sip.h:36