141 void onXYZConnectionSelected(
const QString &
name);
148 void onWMSConnectionSelected(
const QString &
name);
153 void onWMSCapabilitiesFetched();
154 void onWMSCapabilitiesError(
const QString &error);
155 void onWMSLayerSelectionChanged();
158 void onWCSConnectionSelected(
const QString &
name);
163 void onWCSCapabilitiesError(
const QString &error);
164 void onWCSCoverageSelectionChanged();
167 void onWFSConnectionSelected(
const QString &
name);
173 void onArcGISConnectionSelected(
const QString &
name);
176 void onArcGISDelete();
177 void onArcGISConnect();
178 void onArcGISMetadataFetched();
179 void onArcGISMetadataError(
const QString &error);
182 void onLocalConnectionSelected(
const QString &
name);
184 void onLocalDelete();
185 void onLocalBrowseFile();
186 void onLocalBrowseWorldFile();
187 void onLocalSelectCrs();
190 void setupUiXYZ(QWidget *page);
191 void setupUiWMS(QWidget *page);
192 void setupUiWCS(QWidget *page);
193 void setupUiArcGIS(QWidget *page);
194 void setupUiLocal(QWidget *page);
195 void buildConnectionBar(QWidget *
parent, QComboBox *&combo,
196 QPushButton *&newBtn, QPushButton *&editBtn,
197 QPushButton *&delBtn);
198 void buildAuthGroup(QWidget *
parent, QGroupBox *&box,
199 QLineEdit *&user, QLineEdit *&pass,
200 QPushButton *&eyeBtn);
201 void togglePasswordVisibility(QLineEdit *passEdit, QPushButton *eyeBtn);
203 void refreshXYZCombo();
204 void refreshWMSCombo();
205 void refreshWCSCombo();
206 void refreshArcGISCombo();
207 void refreshLocalCombo();
214 void updateLocalGeorefStatus();
230 QTabWidget *m_tabs =
nullptr;
231 QDialogButtonBox *m_buttonBox =
nullptr;
234 QComboBox *m_xyzCombo =
nullptr;
235 QPushButton *m_xyzNew =
nullptr;
236 QPushButton *m_xyzEdit =
nullptr;
237 QPushButton *m_xyzDel =
nullptr;
238 QLineEdit *m_xyzName =
nullptr;
239 QLineEdit *m_xyzUrl =
nullptr;
240 QSpinBox *m_xyzZMin =
nullptr;
241 QSpinBox *m_xyzZMax =
nullptr;
242 QComboBox *m_xyzPixRatio =
nullptr;
243 QComboBox *m_xyzAxis =
nullptr;
244 QGroupBox *m_xyzAuthBox =
nullptr;
245 QLineEdit *m_xyzUser =
nullptr;
246 QLineEdit *m_xyzPass =
nullptr;
247 QPushButton *m_xyzEye =
nullptr;
249 QPushButton *m_xyzTestBtn =
nullptr;
250 QLabel *m_xyzTestLabel =
nullptr;
253 QComboBox *m_wmsCombo =
nullptr;
254 QPushButton *m_wmsNew =
nullptr;
255 QPushButton *m_wmsEdit =
nullptr;
256 QPushButton *m_wmsDel =
nullptr;
257 QLineEdit *m_wmsUrl =
nullptr;
258 QPushButton *m_wmsConnect =
nullptr;
259 QLabel *m_wmsProtocol =
nullptr;
260 QGroupBox *m_wmsAuthBox =
nullptr;
261 QLineEdit *m_wmsUser =
nullptr;
262 QLineEdit *m_wmsPass =
nullptr;
263 QPushButton *m_wmsEye =
nullptr;
264 QTreeWidget *m_wmsTree =
nullptr;
265 QComboBox *m_wmsStyle =
nullptr;
266 QComboBox *m_wmsFmt =
nullptr;
267 QComboBox *m_wmsCrs =
nullptr;
268 QComboBox *m_wmsTms =
nullptr;
269 QLabel *m_wmsTmsLabel =
nullptr;
271 QComboBox *m_wmsDpiMode =
nullptr;
272 QComboBox *m_wmsRatio =
nullptr;
273 QCheckBox *m_wmsIgnoreUri =
nullptr;
274 QCheckBox *m_wmsIgnoreAxis =
nullptr;
275 QCheckBox *m_wmsInvertAxis =
nullptr;
276 QCheckBox *m_wmsSmooth =
nullptr;
278 QLabel *m_wmsStatus =
nullptr;
281 QComboBox *m_wcsCombo =
nullptr;
282 QPushButton *m_wcsNew =
nullptr;
283 QPushButton *m_wcsDel =
nullptr;
284 QLineEdit *m_wcsUrl =
nullptr;
285 QPushButton *m_wcsConnect =
nullptr;
286 QLabel *m_wcsStatus =
nullptr;
287 QTreeWidget *m_wcsCovTree =
nullptr;
288 QComboBox *m_wcsFmt =
nullptr;
289 QComboBox *m_wcsCrs =
nullptr;
290 QLineEdit *m_wcsRange =
nullptr;
291 QComboBox *m_wcsInterp =
nullptr;
292 QGroupBox *m_wcsAuthBox =
nullptr;
293 QLineEdit *m_wcsUser =
nullptr;
294 QLineEdit *m_wcsPass =
nullptr;
295 QPushButton *m_wcsEye =
nullptr;
299 QComboBox *m_wfsCombo =
nullptr;
300 QPushButton *m_wfsNew =
nullptr;
301 QPushButton *m_wfsDel =
nullptr;
302 QLineEdit *m_wfsUrl =
nullptr;
303 QPushButton *m_wfsConnect =
nullptr;
304 QLabel *m_wfsStatus =
nullptr;
305 QListWidget *m_wfsTypes =
nullptr;
306 QGroupBox *m_wfsAuthBox =
nullptr;
307 QLineEdit *m_wfsUser =
nullptr;
308 QLineEdit *m_wfsPass =
nullptr;
309 QPushButton *m_wfsEye =
nullptr;
313 QComboBox *m_arcCombo =
nullptr;
314 QPushButton *m_arcNew =
nullptr;
315 QPushButton *m_arcEdit =
nullptr;
316 QPushButton *m_arcDel =
nullptr;
317 QLineEdit *m_arcUrl =
nullptr;
318 QLineEdit *m_arcPrefix =
nullptr;
319 QLineEdit *m_arcContent =
nullptr;
320 QLineEdit *m_arcCommunity =
nullptr;
321 QGroupBox *m_arcAuthBox =
nullptr;
322 QLineEdit *m_arcUser =
nullptr;
323 QLineEdit *m_arcPass =
nullptr;
324 QPushButton *m_arcEye =
nullptr;
326 QPushButton *m_arcConnect =
nullptr;
327 QLabel *m_arcInfoLabel =
nullptr;
330 QComboBox *m_localCombo =
nullptr;
331 QPushButton *m_localNew =
nullptr;
332 QPushButton *m_localDel =
nullptr;
333 QLineEdit *m_localName =
nullptr;
334 QLineEdit *m_localFile =
nullptr;
335 QPushButton *m_localFileBrowse =
nullptr;
336 QLineEdit *m_localWorld =
nullptr;
337 QPushButton *m_localWorldBrowse =
nullptr;
338 QLineEdit *m_localCrs =
nullptr;
339 QPushButton *m_localCrsBtn =
nullptr;
340 QLabel *m_localStatus =
nullptr;
344 QNetworkAccessManager *m_nam =
nullptr;
347 bool m_isWMTS =
false;
348 std::unique_ptr<WMSServiceInfo> m_wmsInfo;
349 std::unique_ptr<WMTSServiceInfo> m_wmtsInfo;
355 void setupUiWFS(QWidget *page);
356 void refreshWFSCombo();
358 void showWFSCollections(
const QByteArray &body);
371 void fetchWFSThenAccept();
382 void updateOkEnabled();
386 [[nodiscard]] HydroCouple::Ogc::ServiceCredentials wfsCredentials()
const;
388 HydroCouple::Ogc::HttpClient *m_wfsClient =
nullptr;
389 HydroCouple::Ogc::WfsCapabilities m_wfsCaps;
392 QList<QPair<QString, QString>> m_wfsChoices;
394 QRectF m_preferredExtent;
395 QString m_wfsStatusText;
404 mutable WFSLayer *m_wfsLayer =
nullptr;