QGIS API Documentation 3.99.0-Master (26c88405ac0)
Loading...
Searching...
No Matches
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 "ui_qgsdatasourcemanagerdialog.h"
21
22#include "qgis_gui.h"
23#include "qgsguiutils.h"
24#include "qgshelp.h"
25#include "qgsmimedatautils.h"
27
28#include <QDialog>
29#include <QList>
30
31#define SIP_NO_FILE
32
34class QgsRasterLayer;
35class QgsMapCanvas;
38class QgsMessageBar;
39
48class GUI_EXPORT QgsDataSourceManagerDialog : public QgsOptionsDialogBase, private Ui::QgsDataSourceManagerDialog
49{
50 Q_OBJECT
51
52 public:
53
61 explicit QgsDataSourceManagerDialog( QgsBrowserGuiModel *browserModel, QWidget *parent = nullptr, QgsMapCanvas *canvas = nullptr, Qt::WindowFlags fl = Qt::Window );
63
69 void openPage( const QString &pageName );
70
73
74 public slots:
75
81 void activate();
82
84 void setCurrentPage( int index );
85
86 // TODO: use this with an internal source select dialog instead of forwarding the whole raster selection to app
87
92 void rasterLayersAdded( const QStringList &layersList );
93
95 void vectorLayersAdded( const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType );
97 void setPreviousPage();
99 void refresh();
100
108 void reset();
109
110
115 void configureFromUri( const QString &pageName, const QString &uri );
116
117
118 protected:
119 void showEvent( QShowEvent *event ) override;
120
121 signals:
122
130 void addLayer( Qgis::LayerType type, const QString &url, const QString &baseName, const QString &providerKey );
131
136 void addRasterLayers( const QStringList &layersList );
137
139 void replaceSelectedVectorLayer( const QString &oldId, const QString &uri, const QString &layerName, const QString &provider );
141 void addVectorLayers( const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType );
142
144 void showStatusMessage( const QString &message );
146 void addDatabaseLayers( const QStringList &layerPathList, const QString &providerKey );
148 void openFile( const QString &fileName, const QString &fileTypeHint = QString() );
153
160
166
167 private:
168 void addProviderDialog( QgsAbstractDataSourceWidget *dlg, const QString &providerKey, const QString &providerName, const QString &text, const QIcon &icon, const QString &toolTip = QString() );
169 void removeProviderDialog( const QString &providerName );
170 void makeConnections( QgsAbstractDataSourceWidget *dlg, const QString &providerKey );
171 Ui::QgsDataSourceManagerDialog *ui = nullptr;
172 QgsBrowserDockWidget *mBrowserWidget = nullptr;
173 int mPreviousRow;
174 QStringList mPageProviderKeys;
175 QStringList mPageProviderNames;
176 // Map canvas
177 QgsMapCanvas *mMapCanvas = nullptr;
178 QgsMessageBar *mMessageBar = nullptr;
179 QgsBrowserGuiModel *mBrowserModel = nullptr;
180};
181
182#endif // QGSDATASOURCEMANAGERDIALOG_H
LayerType
Types of layers that can be added to a map.
Definition qgis.h:190
Abstract base class for Data Source widgets to create connections and add layers.
A dock widget containing a QgsBrowserWidget for navigating and managing data sources.
A model for showing available data sources and other items in a structured tree.
void reset()
Resets the interface of the datasource manager after reopening the dialog.
void refresh()
Refresh the browser view.
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.
QgsMessageBar * messageBar() const
Returns the dialog's message bar.
void rasterLayersAdded(const QStringList &layersList)
One or more raster layer were added: for signal forwarding to QgisApp.
void setPreviousPage()
Reset current page to previously selected page.
QgsDataSourceManagerDialog(QgsBrowserGuiModel *browserModel, QWidget *parent=nullptr, QgsMapCanvas *canvas=nullptr, Qt::WindowFlags fl=Qt::Window)
QgsDataSourceManagerDialog constructor.
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 configureFromUri(const QString &pageName, const QString &uri)
Shows the page pageName and configure the source select widget from the layer uri.
void openPage(const QString &pageName)
Open a given page in the dialog.
void activate()
Raise, unminimize and activate this window.
void connectionsChanged()
Emitted when a connection has changed inside the provider dialogs This signal is normally forwarded t...
void vectorLayersAdded(const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType)
One or more vector layer were added: for signal forwarding to QgisApp.
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 providerDialogsRefreshRequested()
One or more provider connections have changed and the dialogs should be refreshed.
void addLayer(Qgis::LayerType type, const QString &url, const QString &baseName, const QString &providerKey)
Emitted when a layer has been selected for addition.
void updateProjectHome()
Update project home directory.
void addRasterLayers(const QStringList &layersList)
Emitted when a one or more layer were selected for addition: for signal forwarding to QgisApp.
Map canvas is a class for displaying all GIS data types on a canvas.
A bar for displaying non-blocking messages to the user.
QList< QgsMimeDataUtils::Uri > UriList
QgsOptionsDialogBase(const QString &settingsKey, QWidget *parent=nullptr, Qt::WindowFlags fl=Qt::WindowFlags(), QgsSettings *settings=nullptr)
Constructor.
void showEvent(QShowEvent *e) override
void setCurrentPage(const QString &page)
Sets the dialog page (by object name) to show.
Represents a raster layer.