diff --git a/CHANGES b/CHANGES
index 3a7d81c29..ae415c477 100644
--- a/CHANGES
+++ b/CHANGES
@@ -101,6 +101,7 @@ Misc:
- Qt: Add transformation matrix info to sprite view
- Qt: Memory viewer now supports editing decimal values directly (closes mgba.io/i/1705)
- Qt: Add copy button to GB printer dialog
+ - Qt: Window title updates can be disabled (closes mgba.io/i/1912)
- Util: Reset vector size on deinit
- VFS: Change semantics of VFile.sync on mapped files (fixes mgba.io/i/1730)
diff --git a/src/platform/qt/SettingsView.cpp b/src/platform/qt/SettingsView.cpp
index 13bd7042c..c4e699a9d 100644
--- a/src/platform/qt/SettingsView.cpp
+++ b/src/platform/qt/SettingsView.cpp
@@ -416,6 +416,7 @@ void SettingsView::updateConfig() {
saveSetting("logFile", m_ui.logFile);
saveSetting("useDiscordPresence", m_ui.useDiscordPresence);
saveSetting("gba.audioHle", m_ui.audioHle);
+ saveSetting("dynamicTitle", m_ui.dynamicTitle);
if (m_ui.audioBufferSize->currentText().toInt() > 8192) {
m_ui.audioBufferSize->setCurrentText("8192");
@@ -607,6 +608,7 @@ void SettingsView::reloadConfig() {
loadSetting("logFile", m_ui.logFile);
loadSetting("useDiscordPresence", m_ui.useDiscordPresence);
loadSetting("gba.audioHle", m_ui.audioHle);
+ loadSetting("dynamicTitle", m_ui.dynamicTitle);
m_ui.libraryStyle->setCurrentIndex(loadSetting("libraryStyle").toInt());
diff --git a/src/platform/qt/SettingsView.ui b/src/platform/qt/SettingsView.ui
index 166810adc..46ab4861e 100644
--- a/src/platform/qt/SettingsView.ui
+++ b/src/platform/qt/SettingsView.ui
@@ -577,70 +577,9 @@
-
-
+
- Show FPS in title bar
-
-
- true
-
-
-
- -
-
-
- Enable Discord Rich Presence
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- -
-
-
- Automatically save state
-
-
- true
-
-
-
- -
-
-
- Automatically load state
-
-
- true
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- -
-
-
- Automatically save cheats
-
-
- true
-
-
-
- -
-
-
- Automatically load cheats
+ Dynamically update window title
true
@@ -648,6 +587,16 @@
-
+
+
+ Show filename instead of ROM name in title bar
+
+
+ true
+
+
+
+ -
Show OSD messages
@@ -657,16 +606,84 @@
- -
-
+
-
+
- Show filename instead of ROM name in title bar
+ Enable Discord Rich Presence
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Automatically save state
true
+ -
+
+
+ Automatically load state
+
+
+ true
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ Automatically save cheats
+
+
+ true
+
+
+
+ -
+
+
+ Automatically load cheats
+
+
+ true
+
+
+
+ -
+
+
+ Show FPS in title bar
+
+
+ true
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
@@ -2006,5 +2023,37 @@
+
+ dynamicTitle
+ toggled(bool)
+ showFps
+ setEnabled(bool)
+
+
+ 366
+ 381
+
+
+ 332
+ 415
+
+
+
+
+ dynamicTitle
+ toggled(bool)
+ showFilename
+ setEnabled(bool)
+
+
+ 366
+ 381
+
+
+ 409
+ 449
+
+
+
diff --git a/src/platform/qt/Window.cpp b/src/platform/qt/Window.cpp
index 2052bfef4..d8c69bf89 100644
--- a/src/platform/qt/Window.cpp
+++ b/src/platform/qt/Window.cpp
@@ -1014,7 +1014,7 @@ void Window::showFPS() {
void Window::updateTitle(float fps) {
QString title;
- if (m_controller) {
+ if (m_config->getOption("dynamicTitle", 1).toInt() && m_controller) {
CoreController::Interrupter interrupter(m_controller);
const NoIntroDB* db = GBAApp::app()->gameDB();
NoIntroGame game{};
@@ -1628,6 +1628,11 @@ void Window::setupMenu(QMenuBar* menubar) {
}
}, this);
+ ConfigOption* dynamicTitle = m_config->addOption("dynamicTitle");
+ dynamicTitle->connect([this](const QVariant&) {
+ updateTitle();
+ }, this);
+
m_actions.addHiddenAction(tr("Exit fullscreen"), "exitFullScreen", this, &Window::exitFullScreen, "frame", QKeySequence("Esc"));
m_actions.addHeldAction(tr("GameShark Button (held)"), "holdGSButton", [this](bool held) {