1#ifndef VIEWCONTROLLER_H
2#define VIEWCONTROLLER_H
3
4#include <QByteArray>
5#include <QObject>
6#include <QUrl>
7
8class MainWidget;
9class QDomDocument;
10
11/*!
12 * \class ViewController
13 *
14 * \inmodule ThreadWeaver
15 */
16class ViewController : public QObject
17{
18 Q_OBJECT
19public:
20 /*!
21 */
22 explicit ViewController(MainWidget *mainwidget);
23 ~ViewController() override;
24
25Q_SIGNALS:
26 /*!
27 */
28 void setImage(QImage image);
29 /*!
30 */
31 void setCaption(QString text);
32 /*!
33 */
34 void setStatus(QString text);
35
36private:
37 /*!
38 */
39 void loadPlaceholderFromResource();
40 /*!
41 */
42 void loadPostFromTumblr();
43 /*!
44 */
45 void loadImageFromTumblr();
46
47 /*!
48 */
49 QByteArray download(const QUrl &url);
50 /*!
51 */
52 void error(const QString &message);
53 /*!
54 */
55 void showResourceImage(const char *file);
56 /*!
57 */
58 QString attributeTextFor(const QDomDocument &doc, const char *tag, const char *attribute);
59
60 QUrl m_imageUrl;
61 const QString m_apiPostUrl;
62 QString m_fullPostUrl;
63};
64
65#endif // VIEWCONTROLLER_H
66

source code of threadweaver/examples/HelloInternet/ViewController.h