QGIS API Documentation  3.18.1-Zürich (202f1bf7e5)
qgsowssourceselect.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsowssourceselect.h - selector for WMS,WFS,WCS layers
3  -------------------
4  begin : 3 April 2005
5  original : (C) 2005 by Brendan Morley email : morb at ozemail dot com dot au
6  wms search : (C) 2009 Mathias Walker <mwa at sourcepole.ch>, Sourcepole AG
7  generalized : (C) 2012 Radim Blazek, based on qgsowsconnection.h
8 
9  ***************************************************************************/
10 
11 /***************************************************************************
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  ***************************************************************************/
19 
20 #ifndef QGSOWSSOURCESELECT_H
21 #define QGSOWSSOURCESELECT_H
22 #include "ui_qgsowssourceselectbase.h"
23 #include "qgis_sip.h"
24 #include "qgsdatasourceuri.h"
25 #include "qgsguiutils.h"
26 #include "qgsproviderregistry.h"
28 
29 #include <QStringList>
30 #include <QPushButton>
31 #include <QNetworkRequest>
32 #include "qgis_gui.h"
33 
34 class QgsDataProvider;
35 class QButtonGroup;
36 class QgsTreeWidgetItem;
37 class QDomDocument;
38 class QDomElement;
39 
40 
51 class GUI_EXPORT QgsOWSSourceSelect : public QgsAbstractDataSourceWidget, protected Ui::QgsOWSSourceSelectBase
52 {
53  Q_OBJECT
54 
55  public:
58  {
59  QString format;
60  QString label;
61  };
62 
64  QgsOWSSourceSelect( const QString &service, QWidget *parent SIP_TRANSFERTHIS = nullptr, Qt::WindowFlags fl = QgsGuiUtils::ModalDialogFlags, QgsProviderRegistry::WidgetMode widgetMode = QgsProviderRegistry::WidgetMode::None );
65 
67  void refresh() override;
68 
69  void reset() override;
70 
71  protected slots:
73  void showError( const QString &title, const QString &format, const QString &error );
74 
76  void showStatusMessage( const QString &message );
77 
78  protected:
79 
84  virtual QList<QgsOWSSourceSelect::SupportedFormat> providerFormats();
85 
87  virtual QStringList selectedLayersFormats();
88 
90  virtual QStringList selectedLayersCrses();
91 
93  virtual QStringList selectedLayersTimes();
94 
95  //virtual QStringList layerCRS( int id );
96 
98  void populateConnectionList();
99 
101  void populateFormats();
102 
104  void clearFormats();
105 
107  void populateCrs();
108 
110  void clearCrs();
111 
113  void populateTimes();
114 
116  void clearTimes();
117 
119  QString connName();
120 
122  QString connectionInfo();
123 
125  void setConnectionListPosition();
126 
128  void addDefaultServers();
129 
131  QString mService;
132 
138  virtual void populateLayerList();
139 
144  QgsTreeWidgetItem *createItem( int id,
145  const QStringList &names,
146  QMap<int, QgsTreeWidgetItem *> &items,
147  int &layerAndStyleCount,
148  const QMap<int, int> &layerParents,
149  const QMap<int, QStringList> &layerParentNames ) SIP_FACTORY SIP_SKIP;
150 
152  QString descriptionForAuthId( const QString &authId );
153 
155  QString mLastLayerName;
156 
157  QMap<QString, QString> mCrsNames;
158 
159  virtual void enableLayersForCrs( QTreeWidgetItem *item );
160 
162  QString selectedFormat();
163 
165  QString selectedCrs();
166 
168  QString selectedTime();
169 
171  QNetworkRequest::CacheLoadControl selectedCacheLoadControl();
172 
173  QList<QTreeWidgetItem *> mCurrentSelection;
174  QTableWidgetItem *mCurrentTileset = nullptr;
175 
177  QString mConnName;
178 
181 
184 
185  private slots:
186 
188  void mNewButton_clicked();
190  void mEditButton_clicked();
192  void mDeleteButton_clicked();
194  void mSaveButton_clicked();
196  void mLoadButton_clicked();
197 
202  void mConnectButton_clicked();
203 
205  void mChangeCRSButton_clicked();
206 
208  virtual void mLayersTreeWidget_itemSelectionChanged();
209 
211  void mConnectionsComboBox_activated( int );
212 
214  void mAddDefaultButton_clicked();
215 
216 
217  private:
219  QString mSelectedCRS;
220 
222  QSet<QString> mSelectedLayersCRSs;
223 
225  QList<SupportedFormat> mProviderFormats;
226 
228  QMap<QString, QString> mMimeLabelMap;
229 
230  private slots:
231  void mTilesetsTableWidget_itemClicked( QTableWidgetItem *item );
232  void mLayerUpButton_clicked();
233  void mLayerDownButton_clicked();
234  virtual void updateButtons();
235 };
236 
237 #endif // QGSOWSSOURCESELECT_H
Abstract base Data Source Widget to create connections and add layers This class provides common func...
virtual void refresh()
Triggered when the provider's connections need to be refreshed The default implementation does nothin...
virtual void reset()
Called when this source select widget is being shown in a "new and clean" dialog.
Abstract base class for spatial data provider implementations.
Class for storing the component parts of a RDBMS data source URI (e.g.
Dialog to create connections and add layers WCS etc.
QString mService
Service name.
QString mLastLayerName
layer name derived from latest layer selection (updated as long it's not edited manually)
QString mConnName
Name for selected connection.
QgsDataSourceUri mUri
URI for selected connection.
QString mConnectionInfo
Connection info for selected connection.
QList< QTreeWidgetItem * > mCurrentSelection
QMap< QString, QString > mCrsNames
WidgetMode
Different ways a source select dialog can be used.
QTreeWidgetItem subclass with custom handling for item sorting.
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_FACTORY
Definition: qgis_sip.h:76
Formats supported by provider.