mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-09-27 08:24:39 -07:00
Compare commits
2 commits
42d001ee6a
...
66d81e6f14
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
66d81e6f14 | ||
|
|
8c126cdf7e |
1 changed files with 7 additions and 4 deletions
|
|
@ -44,7 +44,7 @@ void ReleaseChannel::checkForUpdates()
|
|||
connect(response, &QNetworkReply::finished, this, &ReleaseChannel::releaseListFinished);
|
||||
}
|
||||
|
||||
// Different release channel checking functions for different operating systems
|
||||
// Find compatible assets for host platform (Linux is not supported by in-client updater)
|
||||
std::optional<int> ReleaseChannel::getTargetVersionForCurrentOS(const QString &fileName)
|
||||
{
|
||||
const QRegularExpression *regex = nullptr;
|
||||
|
|
@ -60,13 +60,14 @@ std::optional<int> ReleaseChannel::getTargetVersionForCurrentOS(const QString &f
|
|||
}
|
||||
return false;
|
||||
}();
|
||||
static const QRegularExpression macIntelRegex(R"(macOS(\d+)_Intel\.[^.]+$)",
|
||||
static const QRegularExpression macIntelRegex(R"(-macOS(\d+)_Intel\.[^.]+$)",
|
||||
QRegularExpression::CaseInsensitiveOption);
|
||||
static const QRegularExpression macArmRegex(R"(macOS(\d+)\.[^.]+$)", QRegularExpression::CaseInsensitiveOption);
|
||||
static const QRegularExpression macArmRegex(R"(-macOS(\d+)\.[^.]+$)", QRegularExpression::CaseInsensitiveOption);
|
||||
regex = isIntel ? &macIntelRegex : &macArmRegex;
|
||||
|
||||
#elif defined(Q_OS_WIN)
|
||||
static const QRegularExpression winRegex(R"(Win(?:dows)?(\d+)\.[^.]+$)", QRegularExpression::CaseInsensitiveOption);
|
||||
static const QRegularExpression winRegex(R"(-(?:Win|Windows)(\d+)\.[^.]+$)",
|
||||
QRegularExpression::CaseInsensitiveOption);
|
||||
regex = &winRegex;
|
||||
|
||||
#else // if the OS doesn't fit one of the above #defines, then it will never match
|
||||
|
|
@ -74,6 +75,7 @@ std::optional<int> ReleaseChannel::getTargetVersionForCurrentOS(const QString &f
|
|||
return std::nullopt;
|
||||
#endif
|
||||
|
||||
// Any asset targeting an OS version smaller or equal to the current host works
|
||||
const int systemVersion = QSysInfo::productVersion().split('.').first().toInt();
|
||||
auto match = regex->match(fileName);
|
||||
if (!match.hasMatch()) {
|
||||
|
|
@ -86,6 +88,7 @@ std::optional<int> ReleaseChannel::getTargetVersionForCurrentOS(const QString &f
|
|||
return targetVersion;
|
||||
}
|
||||
|
||||
// Pick newest targeted version (highest number) amongst all compatible ones
|
||||
QString ReleaseChannel::findBestDownloadUrl(const QVariantList &assets)
|
||||
{
|
||||
QString bestUrl;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue