QGIS API Documentation  3.6.0-Noosa (5873452)
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 QgsBrowserModel;
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( QgsBrowserModel *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 
82  void rasterLayerAdded( QString const &uri, QString const &baseName, QString const &providerKey );
84  void vectorLayerAdded( const QString &vectorLayerPath, const QString &baseName, const QString &providerKey );
86  void vectorLayersAdded( const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType );
88  void setPreviousPage();
90  void refresh();
91 
92  protected:
93  void showEvent( QShowEvent *event ) override;
94 
95  signals:
97  void addRasterLayer( const QString &uri, const QString &baseName, const QString &providerKey );
99  void addRasterLayer();
101  void addVectorLayer( const QString &vectorLayerPath, const QString &baseName, const QString &providerKey );
102 
107  void addMeshLayer( const QString &uri, const QString &baseName, const QString &providerKey );
109  void replaceSelectedVectorLayer( const QString &oldId, const QString &uri, const QString &layerName, const QString &provider );
111  void addVectorLayers( const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType );
112 
114  void showStatusMessage( const QString &message );
116  void addDatabaseLayers( const QStringList &layerPathList, const QString &providerKey );
118  void openFile( const QString &fileName, const QString &fileTypeHint = QString() );
120  void handleDropUriList( const QgsMimeDataUtils::UriList & );
122  void updateProjectHome();
123 
129  void connectionsChanged();
130 
135  void providerDialogsRefreshRequested();
136 
137  private:
138  void addProviderDialog( QgsAbstractDataSourceWidget *dlg, const QString &providerKey, const QString &providerName, const QIcon &icon, const QString &toolTip = QString() );
139  void makeConnections( QgsAbstractDataSourceWidget *dlg, const QString &providerKey );
140  Ui::QgsDataSourceManagerDialog *ui = nullptr;
141  QgsBrowserDockWidget *mBrowserWidget = nullptr;
142  int mPreviousRow;
143  QStringList mPageNames;
144  // Map canvas
145  QgsMapCanvas *mMapCanvas = nullptr;
146  QgsMessageBar *mMessageBar = nullptr;
147 
148 };
149 
150 #endif // QGSDATASOURCEMANAGERDIALOG_H
Abstract base Data Source Widget to create connections and add layers This class provides common func...
This class provides qgis with the ability to render raster datasets onto the mapcanvas.
The QgsDataSourceManagerDialog class embeds the browser panel and all the provider dialogs...
A bar for displaying non-blocking messages to the user.
Definition: qgsmessagebar.h:45
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:73
A base dialog for options and properties dialogs that offers vertical tabs.
void showEvent(QShowEvent *e) override
The QgsBrowserDockWidget class.
QList< QgsMimeDataUtils::Uri > UriList
A model for showing available data sources and other items in a structured tree.