QGIS API Documentation  3.6.0-Noosa (5873452)
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 mMapCanvas;
36 }
37 
38 void QgsAbstractDataSourceWidget::setupButtons( QDialogButtonBox *buttonBox )
39 {
40 
41  buttonBox->setStandardButtons( QDialogButtonBox::Apply | QDialogButtonBox::Close | QDialogButtonBox::Help );
42 #ifdef Q_OS_MACX
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 }
57 
58 
60 {
61  mMapCanvas = mapCanvas;
62 }
63 
WidgetMode
Different ways a source select dialog can be used (embedded is for the data source manager dialog) ...
void setupButtons(QDialogButtonBox *buttonBox)
Connect the ok and apply/add buttons to the slots.
Map canvas is a class for displaying all GIS data types on a canvas.
Definition: qgsmapcanvas.h:73
const QgsMapCanvas * mapCanvas() const
Returns the map canvas (can be null)
QgsProviderRegistry::WidgetMode widgetMode() const
Returns the widget mode.
void setMapCanvas(const QgsMapCanvas *mapCanvas)
Store a pointer to the map canvas to retrieve extent and CRS Used to select an appropriate CRS and po...
void enableButtons(bool enable)
Emitted when the ok/add buttons should be enabled/disabled.
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...