From 841f815be3476e97e27690eb926420a56943cff6 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Thu, 14 Apr 2022 22:32:45 +0200 Subject: [PATCH] Qt: unify version displays The only version that is different is the game window due to some formatting. And the update message due to some logic that is better left unchanged. --- rpcs3/main.cpp | 2 +- rpcs3/rpcs3_version.cpp | 40 ++++++++++++++++++++++++---------- rpcs3/rpcs3_version.h | 3 +++ rpcs3/rpcs3qt/about_dialog.cpp | 2 +- rpcs3/rpcs3qt/main_window.cpp | 5 +++-- 5 files changed, 37 insertions(+), 15 deletions(-) diff --git a/rpcs3/main.cpp b/rpcs3/main.cpp index 0a1f8c7bf2..b288a2a9bf 100644 --- a/rpcs3/main.cpp +++ b/rpcs3/main.cpp @@ -478,7 +478,7 @@ int main(int argc, char** argv) { // Write RPCS3 version logs::stored_message ver{sys_log.always()}; - ver.text = fmt::format("RPCS3 v%s | %s", rpcs3::get_version().to_string(), rpcs3::get_branch()); + ver.text = fmt::format("RPCS3 v%s", rpcs3::get_verbose_version()); // Write System information logs::stored_message sys{sys_log.always()}; diff --git a/rpcs3/rpcs3_version.cpp b/rpcs3/rpcs3_version.cpp index 9fccf9b8c1..e58190dbf2 100644 --- a/rpcs3/rpcs3_version.cpp +++ b/rpcs3/rpcs3_version.cpp @@ -34,22 +34,40 @@ namespace rpcs3 std::string get_version_and_branch() { - // Get version by substringing VersionNumber-buildnumber-commithash to get just the part before the dash - std::string version = rpcs3::get_version().to_string(); - const auto last_minus = version.find_last_of('-'); - // Add branch and commit hash to version on frame unless it's master. if (rpcs3::get_branch() != "master"sv && rpcs3::get_branch() != "HEAD"sv) { - version = version.substr(0, ~last_minus ? last_minus + 9 : last_minus); - version += '-'; - version += rpcs3::get_branch(); - } - else - { - version = version.substr(0, last_minus); + return get_verbose_version(); } + // Get version by substringing VersionNumber-buildnumber-commithash to get just the part before the dash + std::string version = rpcs3::get_version().to_string(); + + const auto last_minus = version.find_last_of('-'); + version = version.substr(0, last_minus); + return version; } + + std::string get_verbose_version() + { + std::string version = fmt::format("%s | %s", rpcs3::get_version().to_string(), get_branch()); + if (is_local_build()) + { + fmt::append(version, " | local_build"); + } + return version; + } + + bool is_release_build() + { + static constexpr bool is_release_build = std::string_view(RPCS3_GIT_FULL_BRANCH) == "RPCS3/rpcs3/master"sv; + return is_release_build; + } + + bool is_local_build() + { + static constexpr bool is_local_build = std::string_view(RPCS3_GIT_FULL_BRANCH) == "local_build"sv; + return is_local_build; + } } diff --git a/rpcs3/rpcs3_version.h b/rpcs3/rpcs3_version.h index bd22fc0943..099afa8dda 100644 --- a/rpcs3/rpcs3_version.h +++ b/rpcs3/rpcs3_version.h @@ -9,4 +9,7 @@ namespace rpcs3 std::pair get_commit_and_hash(); const utils::version& get_version(); std::string get_version_and_branch(); + std::string get_verbose_version(); + bool is_release_build(); + bool is_local_build(); } diff --git a/rpcs3/rpcs3qt/about_dialog.cpp b/rpcs3/rpcs3qt/about_dialog.cpp index ab885606ce..09d175c873 100644 --- a/rpcs3/rpcs3qt/about_dialog.cpp +++ b/rpcs3/rpcs3qt/about_dialog.cpp @@ -13,7 +13,7 @@ about_dialog::about_dialog(QWidget* parent) : QDialog(parent), ui(new Ui::about_ ui->close->setDefault(true); ui->icon->load(QStringLiteral(":/rpcs3.svg")); - ui->version->setText(tr("RPCS3 Version: %1").arg(QString::fromStdString(rpcs3::get_version().to_string()))); + ui->version->setText(tr("RPCS3 Version: %1").arg(QString::fromStdString(rpcs3::get_verbose_version()))); // Events connect(ui->gitHub, &QPushButton::clicked, [] { QDesktopServices::openUrl(QUrl("https://www.github.com/RPCS3")); }); diff --git a/rpcs3/rpcs3qt/main_window.cpp b/rpcs3/rpcs3qt/main_window.cpp index d0bf4b2211..12f47e2dee 100644 --- a/rpcs3/rpcs3qt/main_window.cpp +++ b/rpcs3/rpcs3qt/main_window.cpp @@ -120,13 +120,14 @@ bool main_window::Init(bool with_cli_boot) CreateConnects(); setMinimumSize(350, minimumSizeHint().height()); // seems fine on win 10 - setWindowTitle(QString::fromStdString("RPCS3 " + rpcs3::get_version().to_string())); + setWindowTitle(QString::fromStdString("RPCS3 " + rpcs3::get_verbose_version())); Q_EMIT RequestGlobalStylesheetChange(); ConfigureGuiFromSettings(); - if (const std::string_view branch_name = rpcs3::get_full_branch(); branch_name != "RPCS3/rpcs3/master" && branch_name != "local_build") + if (!rpcs3::is_release_build() && !rpcs3::is_local_build()) { + const std::string_view branch_name = rpcs3::get_full_branch(); gui_log.warning("Experimental Build Warning! Build origin: %s", branch_name); QMessageBox msg;