This repository was archived by the owner on Feb 16, 2021. It is now read-only.
forked from pinkierton/harkach
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPostsView.h
More file actions
79 lines (62 loc) · 1.74 KB
/
PostsView.h
File metadata and controls
79 lines (62 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef POSTSVIEW_H
#define POSTSVIEW_H
#include <QQuickItem>
#include <QUrlQuery>
#include <QDebug>
#include <QUrl>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonValue>
#include "PostModel.h"
#include "PostObject.h"
#include <algorithm>
#include <QGuiApplication>
#include <QQuickWindow>
#include <QQuickView>
struct ThreadNum
{
private:
Q_GADGET
Q_PROPERTY(QString board MEMBER board CONSTANT)
Q_PROPERTY(int thread MEMBER thread CONSTANT)
Q_PROPERTY(QString subj MEMBER subj CONSTANT)
public:
inline bool operator==(const ThreadNum &a) {
return (a.thread==thread && a.board== board && a.subj == subj);
}
QString board;
int thread;
QString subj;
};
Q_DECLARE_METATYPE(ThreadNum)
class PostsView : public QQuickItem
{
Q_OBJECT
Q_PROPERTY(ThreadNum threadNum READ threadNum WRITE setThreadNum NOTIFY threadNumChanged)
Q_PROPERTY(bool downloading READ downloading WRITE setDownloading NOTIFY downloadingChanged)
Q_PROPERTY(PostModel* postModel READ getPostModel CONSTANT)
public:
PostsView(QQuickItem *parent = nullptr);
PostModel *getPostModel() const noexcept;
ThreadNum threadNum() const noexcept;
void setThreadNum(ThreadNum value);
bool downloading() const noexcept;
void setDownloading(bool downloading);
private:
void requestPostsByAbsNum(const QString &board, int thread, int num);
void processPosts();
PostModel mPostModel;
QNetworkAccessManager manager;
ThreadNum mThreadNum;
bool mDownloading;
signals:
void downloadingChanged();
void threadNumChanged();
public slots:
void updatePage();
};
#endif // POSTSVIEW_H