Cockatrice 2025-11-30-Development-2.11.0-beta.38
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
release_channel.h
Go to the documentation of this file.
1
6
7#ifndef RELEASECHANNEL_H
8#define RELEASECHANNEL_H
9
10#include <QDate>
11#include <QLoggingCategory>
12#include <QObject>
13#include <QString>
14#include <QVariantMap>
15#include <utility>
16
17inline Q_LOGGING_CATEGORY(ReleaseChannelLog, "release_channel");
18
19class QNetworkReply;
20class QNetworkAccessManager;
21
23{
25 friend class BetaReleaseChannel;
26
27public:
28 Release() = default;
29 ~Release() = default;
30
31private:
35
36protected:
37 void setName(QString _name)
38 {
39 name = std::move(_name);
40 }
41 void setDescriptionUrl(QString _descriptionUrl)
42 {
43 descriptionUrl = std::move(_descriptionUrl);
44 }
45 void setDownloadUrl(QString _downloadUrl)
46 {
47 downloadUrl = std::move(_downloadUrl);
49 }
50 void setCommitHash(QString _commitHash)
51 {
52 commitHash = std::move(_commitHash);
53 }
54 void setPublishDate(QDate _publishDate)
55 {
56 publishDate = _publishDate;
57 }
58
59public:
60 [[nodiscard]] QString getName() const
61 {
62 return name;
63 }
64 [[nodiscard]] QString getDescriptionUrl() const
65 {
66 return descriptionUrl;
67 }
68 [[nodiscard]] QString getDownloadUrl() const
69 {
70 return downloadUrl;
71 }
72 [[nodiscard]] QString getCommitHash() const
73 {
74 return commitHash;
75 }
76 [[nodiscard]] QDate getPublishDate() const
77 {
78 return publishDate;
79 }
80 [[nodiscard]] bool isCompatibleVersionFound() const
81 {
83 }
84};
85
86class ReleaseChannel : public QObject
87{
88 Q_OBJECT
89public:
90 explicit ReleaseChannel();
91 ~ReleaseChannel() override;
92
93protected:
94 QNetworkAccessManager *netMan;
95 QNetworkReply *response;
97
98protected:
99 static bool downloadMatchesCurrentOS(const QString &fileName);
100 [[nodiscard]] virtual QString getReleaseChannelUrl() const = 0;
101
102public:
104 {
105 return lastRelease;
106 }
107 [[nodiscard]] virtual QString getManualDownloadUrl() const = 0;
108 [[nodiscard]] virtual QString getName() const = 0;
109 void checkForUpdates();
110signals:
111 void finishedCheck(bool needToUpdate, bool isCompatible, Release *release);
112 void error(QString errorString);
113protected slots:
114 virtual void releaseListFinished() = 0;
115 virtual void fileListFinished() = 0;
116};
117
119{
120 Q_OBJECT
121public:
122 explicit StableReleaseChannel() = default;
123 ~StableReleaseChannel() override = default;
124
125 [[nodiscard]] QString getManualDownloadUrl() const override;
126
127 [[nodiscard]] QString getName() const override;
128
129protected:
130 [[nodiscard]] QString getReleaseChannelUrl() const override;
131protected slots:
132
133 void releaseListFinished() override;
134 void tagListFinished();
135
136 void fileListFinished() override;
137};
138
140{
141 Q_OBJECT
142public:
144 ~BetaReleaseChannel() override = default;
145
146 [[nodiscard]] QString getManualDownloadUrl() const override;
147
148 [[nodiscard]] QString getName() const override;
149
150protected:
151 [[nodiscard]] QString getReleaseChannelUrl() const override;
152protected slots:
153
154 void releaseListFinished() override;
155
156 void fileListFinished() override;
157};
158
159#endif
void releaseListFinished() override
Definition release_channel.cpp:218
~BetaReleaseChannel() override=default
BetaReleaseChannel()=default
void fileListFinished() override
Definition release_channel.cpp:270
QString getReleaseChannelUrl() const override
Definition release_channel.cpp:213
QString getManualDownloadUrl() const override
Definition release_channel.cpp:203
QString getName() const override
Definition release_channel.cpp:208
ReleaseChannel()
Definition release_channel.cpp:29
virtual QString getManualDownloadUrl() const =0
Release * lastRelease
Definition release_channel.h:96
~ReleaseChannel() override
Definition release_channel.cpp:33
void error(QString errorString)
void checkForUpdates()
Definition release_channel.cpp:38
void finishedCheck(bool needToUpdate, bool isCompatible, Release *release)
virtual void releaseListFinished()=0
QNetworkAccessManager * netMan
Definition release_channel.h:94
virtual QString getReleaseChannelUrl() const =0
Release * getLastRelease()
Definition release_channel.h:103
virtual void fileListFinished()=0
static bool downloadMatchesCurrentOS(const QString &fileName)
Definition release_channel.cpp:47
QNetworkReply * response
Definition release_channel.h:95
virtual QString getName() const =0
Definition release_channel.h:23
QString getCommitHash() const
Definition release_channel.h:72
QString getName() const
Definition release_channel.h:60
~Release()=default
void setDescriptionUrl(QString _descriptionUrl)
Definition release_channel.h:41
QDate getPublishDate() const
Definition release_channel.h:76
QString commitHash
Definition release_channel.h:32
friend class StableReleaseChannel
Definition release_channel.h:24
QString getDownloadUrl() const
Definition release_channel.h:68
Release()=default
QDate publishDate
Definition release_channel.h:33
bool isCompatibleVersionFound() const
Definition release_channel.h:80
void setPublishDate(QDate _publishDate)
Definition release_channel.h:54
void setDownloadUrl(QString _downloadUrl)
Definition release_channel.h:45
bool compatibleVersionFound
Definition release_channel.h:34
QString name
Definition release_channel.h:32
QString descriptionUrl
Definition release_channel.h:32
QString downloadUrl
Definition release_channel.h:32
void setName(QString _name)
Definition release_channel.h:37
QString getDescriptionUrl() const
Definition release_channel.h:64
friend class BetaReleaseChannel
Definition release_channel.h:25
void setCommitHash(QString _commitHash)
Definition release_channel.h:50
QString getManualDownloadUrl() const override
Definition release_channel.cpp:97
void tagListFinished()
Definition release_channel.cpp:168
StableReleaseChannel()=default
void fileListFinished() override
Definition release_channel.cpp:198
QString getName() const override
Definition release_channel.cpp:102
~StableReleaseChannel() override=default
void releaseListFinished() override
Definition release_channel.cpp:112
QString getReleaseChannelUrl() const override
Definition release_channel.cpp:107
Q_LOGGING_CATEGORY(ReleaseChannelLog, "release_channel")