Skip to content

Commit

Permalink
Ensure browser model is initialized when used by QgsDataSourceSelectD…
Browse files Browse the repository at this point in the history
…ialog
  • Loading branch information
github-actions[bot] authored and nyalldawson committed Jan 29, 2020
1 parent 7204de2 commit e8a6c2b
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 14 deletions.
18 changes: 6 additions & 12 deletions src/gui/qgsdatasourceselectdialog.cpp
Expand Up @@ -35,21 +35,20 @@ QgsDataSourceSelectDialog::QgsDataSourceSelectDialog(
{
if ( ! browserModel )
{
mBrowserModel = qgis::make_unique<QgsBrowserGuiModel>();
mBrowserModel = new QgsBrowserGuiModel( this );
mBrowserModel->initialize();
mOwnModel = true;
}
else
{
mBrowserModel.reset( browserModel );
mOwnModel = false;
mBrowserModel = browserModel;
mBrowserModel->initialize();
}

setupUi( this );
setWindowTitle( tr( "Select a Data Source" ) );
QgsGui::enableAutoGeometryRestore( this );

mBrowserProxyModel.setBrowserModel( mBrowserModel.get() );
mBrowserProxyModel.setBrowserModel( mBrowserModel );
mBrowserTreeView->setHeaderHidden( true );

if ( setFilterByLayerType )
Expand All @@ -63,7 +62,7 @@ QgsDataSourceSelectDialog::QgsDataSourceSelectDialog(
buttonBox->button( QDialogButtonBox::StandardButton::Ok )->setEnabled( false );
}

mBrowserTreeView->setBrowserModel( mBrowserModel.get() );
mBrowserTreeView->setBrowserModel( mBrowserModel );

mWidgetFilter->hide();
mLeFilter->setPlaceholderText( tr( "Type here to filter visible items…" ) );
Expand Down Expand Up @@ -116,12 +115,7 @@ QgsDataSourceSelectDialog::QgsDataSourceSelectDialog(
}
}

QgsDataSourceSelectDialog::~QgsDataSourceSelectDialog()
{
if ( ! mOwnModel )
mBrowserModel.release();
}

QgsDataSourceSelectDialog::~QgsDataSourceSelectDialog() = default;

void QgsDataSourceSelectDialog::showEvent( QShowEvent *e )
{
Expand Down
3 changes: 1 addition & 2 deletions src/gui/qgsdatasourceselectdialog.h
Expand Up @@ -106,8 +106,7 @@ class GUI_EXPORT QgsDataSourceSelectDialog: public QDialog, private Ui::QgsDataS
void refreshModel( const QModelIndex &index );

QgsBrowserProxyModel mBrowserProxyModel;
std::unique_ptr<QgsBrowserGuiModel> mBrowserModel;
bool mOwnModel = true;
QgsBrowserGuiModel *mBrowserModel = nullptr;
QgsMimeDataUtils::Uri mUri;
QLabel *mDescriptionLabel = nullptr;

Expand Down

0 comments on commit e8a6c2b

Please sign in to comment.