summaryrefslogtreecommitdiffstats
path: root/examples/network/rsslisting/rsslisting.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/network/rsslisting/rsslisting.h')
-rw-r--r--examples/network/rsslisting/rsslisting.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/examples/network/rsslisting/rsslisting.h b/examples/network/rsslisting/rsslisting.h
new file mode 100644
index 0000000000..499bc5d1d4
--- /dev/null
+++ b/examples/network/rsslisting/rsslisting.h
@@ -0,0 +1,54 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+#ifndef RSSLISTING_H
+#define RSSLISTING_H
+
+#include <QNetworkAccessManager>
+#include <QNetworkReply>
+#include <QWidget>
+#include <QXmlStreamReader>
+
+QT_BEGIN_NAMESPACE
+class QLineEdit;
+class QPushButton;
+class QTreeWidget;
+class QTreeWidgetItem;
+class QUrl;
+QT_END_NAMESPACE
+
+//! [0]
+class RSSListing : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit RSSListing(const QString &url = QString(), QWidget *widget = nullptr);
+
+public slots:
+ void fetch();
+ void finished(QNetworkReply *reply);
+ void consumeData();
+ void error(QNetworkReply::NetworkError);
+
+private:
+ void parseXml();
+ void get(const QUrl &url);
+
+ // Parser state:
+ QXmlStreamReader xml;
+ QString currentTag;
+ QString linkString;
+ QString titleString;
+
+ // Network state:
+ QNetworkAccessManager manager;
+ QNetworkReply *currentReply;
+
+ // UI elements:
+ QLineEdit *lineEdit;
+ QTreeWidget *treeWidget;
+ QPushButton *fetchButton;
+};
+//! [0]
+
+#endif