From 8f905e1d498f0c264529737f4b8f7a47c0de59ee Mon Sep 17 00:00:00 2001 From: AnyOldName3 Date: Tue, 15 May 2018 23:43:35 +0100 Subject: Change how the VersionInfo object is created from version.rc such that non-release builds are possible and get labelled as such --- src/selfupdater.cpp | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) (limited to 'src/selfupdater.cpp') diff --git a/src/selfupdater.cpp b/src/selfupdater.cpp index d671bafc..8027e804 100644 --- a/src/selfupdater.cpp +++ b/src/selfupdater.cpp @@ -104,10 +104,46 @@ SelfUpdater::SelfUpdater(NexusInterface *nexusInterface) VS_FIXEDFILEINFO version = GetFileVersion(ToWString(QApplication::applicationFilePath())); - m_MOVersion = VersionInfo(version.dwFileVersionMS >> 16, - version.dwFileVersionMS & 0xFFFF, - version.dwFileVersionLS >> 16, - version.dwFileVersionLS & 0xFFFF); + if (version.dwFileFlags | VS_FF_PRERELEASE) + { + // Pre-release builds need annotating + QString versionString = QString::fromStdWString(GetFileVersionString(ToWString(QApplication::applicationFilePath()))); + + // The pre-release flag can be set without the string specifying what type of pre-release + bool noLetters = true; + for (QChar character : versionString) + { + if (character.isLetter()) + { + noLetters = false; + break; + } + } + + if (noLetters) + { + // Default to pre-alpha when release type is unspecified + m_MOVersion = VersionInfo(version.dwFileVersionMS >> 16, + version.dwFileVersionMS & 0xFFFF, + version.dwFileVersionLS >> 16, + version.dwFileVersionLS & 0xFFFF, + VersionInfo::RELEASE_PREALPHA); + } + else + { + // Trust the string to make sense + m_MOVersion = VersionInfo(versionString); + qDebug() << "<: " << (m_MOVersion < VersionInfo(2, 1, 4)) << ", >: " << (m_MOVersion > VersionInfo(2, 1, 4)); + } + } + else + { + // Non-pre-release builds just need their version numbers reading + m_MOVersion = VersionInfo(version.dwFileVersionMS >> 16, + version.dwFileVersionMS & 0xFFFF, + version.dwFileVersionLS >> 16, + version.dwFileVersionLS & 0xFFFF); + } } -- cgit v1.3.1 From 9c1806cc74a1600f1c28610532d9a06434adf30d Mon Sep 17 00:00:00 2001 From: AnyOldName3 Date: Tue, 15 May 2018 23:45:15 +0100 Subject: Remove sneaky test qDebug instance. --- src/selfupdater.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'src/selfupdater.cpp') diff --git a/src/selfupdater.cpp b/src/selfupdater.cpp index 8027e804..a57b7962 100644 --- a/src/selfupdater.cpp +++ b/src/selfupdater.cpp @@ -133,7 +133,6 @@ SelfUpdater::SelfUpdater(NexusInterface *nexusInterface) { // Trust the string to make sense m_MOVersion = VersionInfo(versionString); - qDebug() << "<: " << (m_MOVersion < VersionInfo(2, 1, 4)) << ", >: " << (m_MOVersion > VersionInfo(2, 1, 4)); } } else -- cgit v1.3.1