QGIS API Documentation  3.10.0-A Coruña (6c816b4204)
qgsnetworkcontentfetcher.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsnetworkcontentfetcher.h
3  -------------------
4  begin : July, 2014
5  copyright : (C) 2014 by Nyall Dawson
6  email : nyall dot dawson at gmail 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 
19 
20 #ifndef QGSNETWORKCONTENTFETCHER_H
21 #define QGSNETWORKCONTENTFETCHER_H
22 
23 #include <QNetworkReply>
24 #include <QUrl>
25 
26 #include "qgis_core.h"
27 
37 class CORE_EXPORT QgsNetworkContentFetcher : public QObject
38 {
39  Q_OBJECT
40 
41  public:
42 
46  QgsNetworkContentFetcher() = default;
47 
48  ~QgsNetworkContentFetcher() override;
49 
56  void fetchContent( const QUrl &url, const QString &authcfg = QString() );
57 
66  void fetchContent( const QNetworkRequest &request, const QString &authcfg = QString() );
67 
72  QNetworkReply *reply();
73 
78  QString contentAsString() const;
79 
84  void cancel();
85 
91  bool wasCanceled() const;
92 
93  signals:
94 
98  void finished();
99 
104  void downloadProgress( qint64 bytesReceived, qint64 bytesTotal );
105 
106  private:
107 
108  QString mAuthCfg;
109  QNetworkReply *mReply = nullptr;
110 
111  bool mContentLoaded = false;
112 
113  bool mIsCanceled = false;
114 
120  QTextCodec *codecForHtml( QByteArray &array ) const;
121 
122  private slots:
123 
128  void contentLoaded( bool ok = true );
129 
130 };
131 
132 #endif
HTTP network content fetcher.