QGIS API Documentation  3.10.0-A Coruña (6c816b4204)
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 );
109  void addRasterLayer();
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 );
119  void replaceSelectedVectorLayer( const QString &oldId, const QString &uri, const QString &layerName, const QString &provider );
121  void addVectorLayers( const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType );
122 
124  void showStatusMessage( const QString &message );
126  void addDatabaseLayers( const QStringList &layerPathList, const QString &providerKey );
128  void openFile( const QString &fileName, const QString &fileTypeHint = QString() );
130  void handleDropUriList( const QgsMimeDataUtils::UriList & );
132  void updateProjectHome();
133 
139  void connectionsChanged();
140 
145  void providerDialogsRefreshRequested();
146 
147  private:
148  void addProviderDialog( QgsAbstractDataSourceWidget *dlg, const QString &providerKey, const QString &providerName, const QIcon &icon, const QString &toolTip = QString() );
149  void makeConnections( QgsAbstractDataSourceWidget *dlg, const QString &providerKey );
150  Ui::QgsDataSourceManagerDialog *ui = nullptr;
151  QgsBrowserDockWidget *mBrowserWidget = nullptr;
152  int mPreviousRow;
153  QStringList mPageNames;
154  // Map canvas
155  QgsMapCanvas *mMapCanvas = nullptr;
156  QgsMessageBar *mMessageBar = nullptr;
157 
158 };
159 
160 #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
A model for showing available data sources and other items in a structured tree.
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:75
A base dialog for options and properties dialogs that offers vertical tabs.
void showEvent(QShowEvent *e) override
The QgsBrowserDockWidget class.
QList< QgsMimeDataUtils::Uri > UriList