diff options
Diffstat (limited to 'examples/network/rsslisting/rsslisting.h')
-rw-r--r-- | examples/network/rsslisting/rsslisting.h | 54 |
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 |