summaryrefslogtreecommitdiff
path: root/src/organizerproxy.cpp
diff options
context:
space:
mode:
authorMikaƫl Capelle <capelle.mikael@gmail.com>2025-05-29 11:04:36 +0200
committerGitHub <noreply@github.com>2025-05-29 11:04:36 +0200
commit39210af3e59c929cba6de2d39ef1c32835f6388b (patch)
treeb77879fa376e7bfa016b14aa7635e7202b6cc69e /src/organizerproxy.cpp
parent3a8ea3cccee06397e90305e1e39a305f8b7c3cb3 (diff)
Move to VCPKG (#2068)
* Remove SConscript related files. * Force-load translations from uibase and gamebryo/creation. * Bring githubpp here and add a standalone preset. * Switch VersionInfo -> Version for ModOrganizer2. (#2063) * Add pre-commit hook. * Use 7zip build from VCPKG registry. * Use archive.dll from the bin folder instead of dlls.
Diffstat (limited to 'src/organizerproxy.cpp')
-rw-r--r--src/organizerproxy.cpp46
1 files changed, 45 insertions, 1 deletions
diff --git a/src/organizerproxy.cpp b/src/organizerproxy.cpp
index 6edbdbab..22a8a023 100644
--- a/src/organizerproxy.cpp
+++ b/src/organizerproxy.cpp
@@ -114,9 +114,53 @@ QString OrganizerProxy::modsPath() const
return m_Proxied->modsPath();
}
+Version OrganizerProxy::version() const
+{
+ return m_Proxied->version();
+}
+
VersionInfo OrganizerProxy::appVersion() const
{
- return m_Proxied->appVersion();
+ const auto version = m_Proxied->version();
+ const int major = version.major(), minor = version.minor(),
+ subminor = version.patch();
+ int subsubminor = 0;
+ VersionInfo::ReleaseType infoReleaseType = VersionInfo::RELEASE_FINAL;
+
+ // make a copy
+ auto prereleases = version.preReleases();
+
+ if (!prereleases.empty()) {
+ // check if the first pre-release entry is a number
+ if (prereleases.front().index() == 0) {
+ subsubminor = std::get<int>(prereleases.front());
+ prereleases.erase(prereleases.begin());
+ }
+
+ if (!prereleases.empty()) {
+ const auto releaseType = std::get<Version::ReleaseType>(prereleases.front());
+ switch (releaseType) {
+ case Version::Development:
+ infoReleaseType = VersionInfo::RELEASE_PREALPHA;
+ break;
+ case Version::Alpha:
+ infoReleaseType = VersionInfo::RELEASE_ALPHA;
+ break;
+ case Version::Beta:
+ infoReleaseType = VersionInfo::RELEASE_BETA;
+ break;
+ case Version::ReleaseCandidate:
+ infoReleaseType = VersionInfo::RELEASE_CANDIDATE;
+ break;
+ default:
+ infoReleaseType = VersionInfo::RELEASE_PREALPHA;
+ }
+ }
+
+ // there is no way to differentiate two pre-releases?
+ }
+
+ return VersionInfo(major, minor, subminor, subsubminor, infoReleaseType);
}
IPluginGame* OrganizerProxy::getGame(const QString& gameName) const