QGIS API Documentation  3.18.1-Zürich (202f1bf7e5)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
qgsdatasourcemanagerdialog.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsdatasourcemanagerdialog.h - datasource manager dialog
3 
4  ---------------------
5  begin : May 19, 2017
6  copyright : (C) 2017 by Alessandro Pasotti
7  email : apasotti at itopen dot it
8  ***************************************************************************
9  * *
10  * This program is free software; you can redistribute it and/or modify *
11  * it under the terms of the GNU General Public License as published by *
12  * the Free Software Foundation; either version 2 of the License, or *
13  * (at your option) any later version. *
14  * *
15  ***************************************************************************/
16 
17 #ifndef QGSDATASOURCEMANAGERDIALOG_H
18 #define QGSDATASOURCEMANAGERDIALOG_H
19 
20 #include <QList>
21 #include <QDialog>
22 #include "ui_qgsdatasourcemanagerdialog.h"
23 #include "qgsoptionsdialogbase.h"
24 #include "qgsguiutils.h"
25 #include "qgsmimedatautils.h"
26 #include "qgshelp.h"
27 #include "qgis_gui.h"
28 
29 #define SIP_NO_FILE
30 
32 class QgsRasterLayer;
33 class QgsMapCanvas;
35 class QgsBrowserGuiModel;
36 class QgsMessageBar;
37 
47 class GUI_EXPORT QgsDataSourceManagerDialog : public QgsOptionsDialogBase, private Ui::QgsDataSourceManagerDialog
48 {
49  Q_OBJECT
50 
51  public:
52 
60  explicit QgsDataSourceManagerDialog( QgsBrowserGuiModel *browserModel, QWidget *parent = nullptr, QgsMapCanvas *canvas = nullptr, Qt::WindowFlags fl = QgsGuiUtils::ModalDialogFlags );
61  ~QgsDataSourceManagerDialog() override;
62 
68  void openPage( const QString &pageName );
69 
71  QgsMessageBar *messageBar() const;
72 
73  public slots:
74 
76  void setCurrentPage( int index );
77 
78  // TODO: use this with an internal source select dialog instead of forwarding the whole raster selection to app
79 
83  void rasterLayerAdded( QString const &uri, QString const &baseName, QString const &providerKey );
85  void vectorLayerAdded( const QString &vectorLayerPath, const QString &baseName, const QString &providerKey );
87  void vectorLayersAdded( const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType );
89  void setPreviousPage();
91  void refresh();
92 
100  void reset();
101 
102  protected:
103  void showEvent( QShowEvent *event ) override;
104 
105  signals:
107  void addRasterLayer( const QString &uri, const QString &baseName, const QString &providerKey );
111  void addVectorLayer( const QString &vectorLayerPath, const QString &baseName, const QString &providerKey );
112 
117  void addMeshLayer( const QString &uri, const QString &baseName, const QString &providerKey );
118 
123  void addVectorTileLayer( const QString &uri, const QString &baseName );
124 
129  void addPointCloudLayer( const QString &pointCloudLayerPath, const QString &baseName, const QString &providerKey );
130 
132  void replaceSelectedVectorLayer( const QString &oldId, const QString &uri, const QString &layerName, const QString &provider );
134  void addVectorLayers( const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType );
135 
137  void showStatusMessage( const QString &message );
139  void addDatabaseLayers( const QStringList &layerPathList, const QString &providerKey );
141  void openFile( const QString &fileName, const QString &fileTypeHint = QString() );
146 
153 
159 
160  private:
161  void addProviderDialog( QgsAbstractDataSourceWidget *dlg, const QString &providerKey, const QString &providerName, const QIcon &icon, const QString &toolTip = QString() );
162  void makeConnections( QgsAbstractDataSourceWidget *dlg, const QString &providerKey );
163  Ui::QgsDataSourceManagerDialog *ui = nullptr;
164  QgsBrowserDockWidget *mBrowserWidget = nullptr;
165  int mPreviousRow;
166  QStringList mPageNames;
167  // Map canvas
168  QgsMapCanvas *mMapCanvas = nullptr;
169  QgsMessageBar *mMessageBar = nullptr;
170  QgsBrowserGuiModel *mBrowserModel = nullptr;
171 
172 };
173 
174 #endif // QGSDATASOURCEMANAGERDIALOG_H
Abstract base Data Source Widget to create connections and add layers This class provides common func...
The QgsBrowserDockWidget class.
A model for showing available data sources and other items in a structured tree.
The QgsDataSourceManagerDialog class embeds the browser panel and all the provider dialogs.
void addVectorLayers(const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType)
Emitted when a one or more layer were selected for addition: for signal forwarding to QgisApp.
void openFile(const QString &fileName, const QString &fileTypeHint=QString())
Emitted when a file needs to be opened.
void addMeshLayer(const QString &uri, const QString &baseName, const QString &providerKey)
Emitted when a mesh layer was selected for addition: for signal forwarding to QgisApp.
void addPointCloudLayer(const QString &pointCloudLayerPath, const QString &baseName, const QString &providerKey)
Emitted when a point cloud layer was selected for addition: for signal forwarding to QgisApp.
void addVectorLayer(const QString &vectorLayerPath, const QString &baseName, const QString &providerKey)
Emitted when a vector layer was selected for addition: for signal forwarding to QgisApp.
void showStatusMessage(const QString &message)
Emitted when a status message needs to be shown: for signal forwarding to QgisApp.
void replaceSelectedVectorLayer(const QString &oldId, const QString &uri, const QString &layerName, const QString &provider)
Replace the selected layer by a vector layer defined by uri, layer name, data source uri.
void addRasterLayer(const QString &uri, const QString &baseName, const QString &providerKey)
Emitted when a raster layer was selected for addition: for signal forwarding to QgisApp.
void connectionsChanged()
Emitted when a connection has changed inside the provider dialogs This signal is normally forwarded t...
void addDatabaseLayers(const QStringList &layerPathList, const QString &providerKey)
Emitted when a DB layer was selected for addition: for signal forwarding to QgisApp.
void handleDropUriList(const QgsMimeDataUtils::UriList &)
Emitted when drop uri list needs to be handled from the browser.
void addVectorTileLayer(const QString &uri, const QString &baseName)
Emitted when a vector tile layer was selected for addition: for signal forwarding to QgisApp.
void providerDialogsRefreshRequested()
One or more provider connections have changed and the dialogs should be refreshed.
void updateProjectHome()
Update project home directory.
void addRasterLayer()
Emitted when the user wants to select a raster layer: for signal forwarding to QgisApp.
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:86
A bar for displaying non-blocking messages to the user.
Definition: qgsmessagebar.h:61
QList< QgsMimeDataUtils::Uri > UriList
A base dialog for options and properties dialogs that offers vertical tabs.
void showEvent(QShowEvent *e) override
void setCurrentPage(const QString &page)
Sets the dialog page (by object name) to show.
Represents a raster layer.