17 #include <QListWidgetItem>    20 #include "ui_qgsdatasourcemanagerdialog.h"    35   , ui( new Ui::QgsDataSourceManagerDialog )
    37   , mMapCanvas( canvas )
    40   ui->verticalLayout_2->setSpacing( 6 );
    41   ui->verticalLayout_2->setMargin( 0 );
    42   ui->verticalLayout_2->setContentsMargins( 0, 0, 0, 0 );
    45   mMessageBar->setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Fixed );
    46   static_cast<QVBoxLayout *
>( layout() )->insertWidget( 0, mMessageBar );
    58   mBrowserWidget->setFeatures( QDockWidget::NoDockWidgetFeatures );
    59   ui->mOptionsStackedWidget->addWidget( mBrowserWidget );
    60   mPageNames.append( QStringLiteral( 
"browser" ) );
    69   for ( 
const auto &provider : sourceSelectProviders )
    74       QgsMessageLog::logMessage( tr( 
"Cannot get %1 select dialog from source select provider %2." ).arg( provider->name(), provider->providerKey() ), QStringLiteral( 
"DataSourceManager" ), 
Qgis::Critical );
    77     addProviderDialog( dlg, provider->providerKey(), provider->text(), provider->icon( ), provider->toolTip( ) );
    90   int pageIdx = mPageNames.indexOf( pageName );
    93     QTimer::singleShot( 0, 
this, [ = ] { 
setCurrentPage( pageIdx ); } );
   104   mPreviousRow = ui->mOptionsStackedWidget->currentIndex();
   105   ui->mOptionsStackedWidget->setCurrentIndex( index );
   106   setWindowTitle( tr( 
"Data Source Manager | %1" ).arg( ui->mOptionsListWidget->currentItem()->text() ) );
   112   int prevPage = mPreviousRow != -1 ? mPreviousRow : 0;
   124   int pageCount = ui->mOptionsStackedWidget->count();
   125   for ( 
int i = 0; i < pageCount; ++i )
   127     QWidget *widget = ui->mOptionsStackedWidget->widget( i );
   129     if ( dataSourceWidget )
   130       dataSourceWidget->
reset();
   151 void QgsDataSourceManagerDialog::addProviderDialog( 
QgsAbstractDataSourceWidget *dlg, 
const QString &providerKey, 
const QString &providerName, 
const QIcon &icon, 
const QString &toolTip )
   153   mPageNames.append( providerKey );
   154   ui->mOptionsStackedWidget->addWidget( dlg );
   155   QListWidgetItem *layerItem = 
new QListWidgetItem( providerName, ui->mOptionsListWidget );
   156   layerItem->setToolTip( toolTip.isEmpty() ? tr( 
"Add %1 layer" ).arg( providerName ) : toolTip );
   157   layerItem->setIcon( icon );
   163   connect( dlg, &QgsAbstractDataSourceWidget::rejected, 
this, &QgsDataSourceManagerDialog::reject );
   164   connect( dlg, &QgsAbstractDataSourceWidget::accepted, 
this, &QgsDataSourceManagerDialog::accept );
   165   makeConnections( dlg, providerKey );
   171   connect( dlg, SIGNAL( 
addDatabaseLayers( QStringList 
const &, QString 
const & ) ),
   173   connect( dlg, SIGNAL( progressMessage( QString ) ),
   178     QString key = specifiedProvider.isEmpty() ? providerKey : specifiedProvider;
   186   connect( dlg, SIGNAL( 
addRasterLayer( QString 
const &, QString 
const &, QString 
const & ) ),
   187            this, SIGNAL( 
addRasterLayer( QString 
const &, QString 
const &, QString 
const & ) ) );
   192   connect( dlg, SIGNAL( replaceVectorLayer( QString, QString, QString, QString ) ),
   201   ui->mOptionsStackedWidget->currentWidget()->show();
 void rasterLayerAdded(QString const &uri, QString const &baseName, QString const &providerKey)
A raster layer was added: for signal forwarding to QgisApp. 
 
void connectionsChanged()
Emitted when a connection has changed inside the provider dialogs This signal is normally forwarded t...
 
void showEvent(QShowEvent *event) override
 
QgsMessageBar * messageBar() const
Returns the dialog's message bar. 
 
void refresh()
Refresh the browser view. 
 
void initOptionsBase(bool restoreUi=true, const QString &title=QString())
Set up the base ui connections for vertical tabs. 
 
QList< QgsSourceSelectProvider * > providers()
Gets list of available providers. 
 
static QgsSourceSelectProviderRegistry * sourceSelectProviderRegistry()
Returns the global source select provider registry, used for managing all known source select widget ...
 
A bar for displaying non-blocking messages to the user. 
 
void restoreOptionsBaseUi(const QString &title=QString())
Restore the base ui. 
 
~QgsDataSourceManagerDialog() override
 
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. 
 
A model for showing available data sources and other items in a structured tree. 
 
void providerDialogsRefreshRequested()
One or more provider connections have changed and the dialogs should be refreshed. 
 
void setPreviousPage()
Reset current page to previously selected page. 
 
void handleDropUriList(const QgsMimeDataUtils::UriList &)
Emitted when drop uri list needs to be handled from the browser. 
 
Map canvas is a class for displaying all GIS data types on a canvas. 
 
void resizeAlltabs(int index)
Resizes all tabs when the dialog is resized. 
 
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. 
 
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::Warning, bool notifyUser=true)
Adds a message to the log instance (and creates it if necessary). 
 
void openPage(const QString &pageName)
Open a given page in the dialog. 
 
void updateProjectHome()
Update project home directory. 
 
A base dialog for options and properties dialogs that offers vertical tabs. 
 
void showEvent(QShowEvent *e) override
 
void addRasterLayer()
Emitted when the user wants to select a raster layer: for signal forwarding to QgisApp. 
 
void vectorLayerAdded(const QString &vectorLayerPath, const QString &baseName, const QString &providerKey)
A vector layer was added: for signal forwarding to QgisApp. 
 
void vectorLayersAdded(const QStringList &layerQStringList, const QString &enc, const QString &dataSourceType)
One or more vector layer were added: 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 reset()
Resets the interface of the datasource manager after reopening the dialog. 
 
void showStatusMessage(const QString &message)
Emitted when a status message needs to be shown: for signal forwarding to QgisApp. 
 
void openFile(const QString &fileName, const QString &fileTypeHint=QString())
Emitted when a file needs to be opened. 
 
void addDatabaseLayers(const QStringList &layerPathList, const QString &providerKey)
Emitted when a DB layer was selected for addition: for signal forwarding to QgisApp. 
 
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...
 
QgsDataSourceManagerDialog(QgsBrowserGuiModel *browserModel, QWidget *parent=nullptr, QgsMapCanvas *canvas=nullptr, Qt::WindowFlags fl=QgsGuiUtils::ModalDialogFlags)
QgsDataSourceManagerDialog constructor. 
 
void setCurrentPage(int index)
Sync current page with the leftbar list.