QGIS API Documentation 3.41.0-Master (3440c17df1d)
Loading...
Searching...
No Matches
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 "moc_qgsabstractdatasourcewidget.cpp"
21#include <QPushButton>
22
24 QDialog( parent, fl ),
25 mWidgetMode( widgetMode )
26{
27}
28
33
38
39void QgsAbstractDataSourceWidget::setupButtons( QDialogButtonBox *buttonBox )
40{
41 buttonBox->setStandardButtons( QDialogButtonBox::Apply | QDialogButtonBox::Close | QDialogButtonBox::Help );
42#ifdef Q_OS_MACOS
43 buttonBox->setStyleSheet( "* { button-layout: 2 }" );
44#endif
45 mAddButton = buttonBox->button( QDialogButtonBox::Apply );
46 mAddButton->setText( tr( "&Add" ) );
47 mAddButton->setToolTip( tr( "Add selected layers to map" ) );
48 mAddButton->setEnabled( false );
49 connect( mAddButton, &QPushButton::clicked, this, &QgsAbstractDataSourceWidget::addButtonClicked );
50 connect( this, &QgsAbstractDataSourceWidget::enableButtons, mAddButton, &QPushButton::setEnabled );
51
52 QPushButton *closeButton = buttonBox->button( QDialogButtonBox::Close );
53 closeButton->setToolTip( tr( "Close this dialog without adding any layer" ) );
54 connect( closeButton, &QPushButton::clicked, this, &QgsAbstractDataSourceWidget::reject );
55}
56
58{
59 mBrowserModel = model;
60}
61
65
69
71{
72 Q_UNUSED( uri );
73 return false;
74}
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::Standalone)
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.