Skip to content

Commit

Permalink
Filter layers by type in the data source select dialog
Browse files Browse the repository at this point in the history
  • Loading branch information
elpaso committed Nov 5, 2018
1 parent 3e9d5c7 commit d995eeb
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/app/qgslayertreeviewbadlayerindicator.cpp
Expand Up @@ -24,6 +24,7 @@
#include "qgisapp.h"
#include "qgsbrowsermodel.h"
#include "qgsbrowsertreeview.h"
#include "qgsbrowserproxymodel.h"

#include <functional>
#include <QDialog>
Expand Down Expand Up @@ -55,16 +56,21 @@ void QgsLayerTreeViewBadLayerIndicatorProvider::onIndicatorClicked( const QModel
QString providerType( layer->providerType() );
QgsMapLayer::LayerType layerType( layer->type() );


// Builds the dialog to select a new data source
QgsBrowserModel browserModel;
browserModel.initialize();
QgsBrowserProxyModel proxyModel;
proxyModel.setBrowserModel( &browserModel );
proxyModel.setFilterByLayerType( true );
proxyModel.setLayerType( layerType );
QDialog dlg;
dlg.setWindowTitle( tr( "Select the new data source" ) );
QByteArray dlgGeom( QgsSettings().value( QStringLiteral( "/Windows/selectDataSourceDialog/geometry" ), QVariant(), QgsSettings::Section::App ).toByteArray() );
dlg.restoreGeometry( dlgGeom );
QVBoxLayout lay( &dlg );
QgsBrowserTreeView *browserWidget( new QgsBrowserTreeView( ) );
browserWidget->setModel( &browserModel );
browserWidget->setModel( &proxyModel );
browserWidget->setHeaderHidden( true );
lay.addWidget( browserWidget );
QDialogButtonBox *buttonBox( new QDialogButtonBox( QDialogButtonBox::StandardButton::Ok | QDialogButtonBox::StandardButton::Cancel ) );
Expand Down

0 comments on commit d995eeb

Please sign in to comment.