QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsabstractdatasourcewidget.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsabstractdatasourcewidget.cpp - base class for source selector widgets
3 -------------------
4 begin : 10 July 2017
5 original : (C) 2017 by Alessandro Pasotti
6 email : apasotti at boundlessgeo dot com
7
8 ***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
20#include <QPushButton>
21
23 QDialog( parent, fl ),
24 mWidgetMode( widgetMode )
25{
26}
27
29{
30 return mWidgetMode;
31}
32
34{
35 return mBrowserModel;
36}
37
38void QgsAbstractDataSourceWidget::setupButtons( QDialogButtonBox *buttonBox )
39{
40 buttonBox->setStandardButtons( QDialogButtonBox::Apply | QDialogButtonBox::Close | QDialogButtonBox::Help );
41#ifdef Q_OS_MACX
42 buttonBox->setStyleSheet( "* { button-layout: 2 }" );
43#endif
44 mAddButton = buttonBox->button( QDialogButtonBox::Apply );
45 mAddButton->setText( tr( "&Add" ) );
46 mAddButton->setToolTip( tr( "Add selected layers to map" ) );
47 mAddButton->setEnabled( false );
48 connect( mAddButton, &QPushButton::clicked, this, &QgsAbstractDataSourceWidget::addButtonClicked );
49 connect( this, &QgsAbstractDataSourceWidget::enableButtons, mAddButton, &QPushButton::setEnabled );
50
51 QPushButton *closeButton = buttonBox->button( QDialogButtonBox::Close );
52 closeButton->setToolTip( tr( "Close this dialog without adding any layer" ) );
53 connect( closeButton, &QPushButton::clicked, this, &QgsAbstractDataSourceWidget::reject );
54}
55
57{
58 mBrowserModel = model;
59}
60
62{
63}
64
66{
67}
68
70{
71 Q_UNUSED( uri );
72 return false;
73}
void enableButtons(bool enable)
Emitted when the ok/add buttons should be enabled/disabled.
QgsBrowserModel * browserModel()
Returns the associated browser model (may be nullptr).
void setupButtons(QDialogButtonBox *buttonBox)
Connect the ok and apply/add buttons to the slots.
QgsAbstractDataSourceWidget(QWidget *parent=nullptr, Qt::WindowFlags fl=QgsGuiUtils::ModalDialogFlags, QgsProviderRegistry::WidgetMode widgetMode=QgsProviderRegistry::WidgetMode::None)
Constructor.
virtual void addButtonClicked()
Triggered when the add button is clicked, the add layer signal is emitted Concrete classes should imp...
virtual void setBrowserModel(QgsBrowserModel *model)
Sets a browser model to use with the widget.
QgsProviderRegistry::WidgetMode widgetMode() const
Returns the widget mode.
virtual bool configureFromUri(const QString &uri)
Configure the widget from a layer uri by selecting the layer path or connection options.
virtual void reset()
Called when this source select widget is being shown in a "new and clean" dialog.
A model for showing available data sources and other items in a structured tree.
WidgetMode
Different ways a source select dialog can be used.