diff --git a/src/platform/qt/SettingsView.cpp b/src/platform/qt/SettingsView.cpp
index 65204df4b..907c54fc6 100644
--- a/src/platform/qt/SettingsView.cpp
+++ b/src/platform/qt/SettingsView.cpp
@@ -488,6 +488,7 @@ void SettingsView::updateConfig() {
saveSetting("gba.forceGbp", m_ui.forceGbp);
saveSetting("vbaBugCompat", m_ui.vbaBugCompat);
saveSetting("updateAutoCheck", m_ui.updateAutoCheck);
+ saveSetting("showFilenameInLibrary", m_ui.showFilenameInLibrary);
if (m_ui.audioBufferSize->currentText().toInt() > 8192) {
m_ui.audioBufferSize->setCurrentText("8192");
@@ -710,6 +711,7 @@ void SettingsView::reloadConfig() {
loadSetting("gba.forceGbp", m_ui.forceGbp);
loadSetting("vbaBugCompat", m_ui.vbaBugCompat, true);
loadSetting("updateAutoCheck", m_ui.updateAutoCheck);
+ loadSetting("showFilenameInLibrary", m_ui.showFilenameInLibrary);
m_ui.libraryStyle->setCurrentIndex(loadSetting("libraryStyle").toInt());
diff --git a/src/platform/qt/SettingsView.ui b/src/platform/qt/SettingsView.ui
index 47e92ed29..5d07a29d8 100644
--- a/src/platform/qt/SettingsView.ui
+++ b/src/platform/qt/SettingsView.ui
@@ -564,27 +564,34 @@
-
+
+
+ Show filename instead of ROM name in library view
+
+
+
+ -
Clear cache
- -
+
-
Qt::Horizontal
- -
+
-
Allow opposing input directions
- -
+
-
Suspend screensaver
@@ -594,14 +601,14 @@
- -
+
-
When inactive:
- -
+
-
-
@@ -619,14 +626,14 @@
- -
+
-
When minimized:
- -
+
-
-
@@ -644,14 +651,14 @@
- -
+
-
Qt::Horizontal
- -
+
-
Dynamically update window title
@@ -661,7 +668,7 @@
- -
+
-
Show FPS in title bar
@@ -671,7 +678,7 @@
- -
+
-
Show filename instead of ROM name in title bar
@@ -681,14 +688,14 @@
- -
+
-
Qt::Horizontal
- -
+
-
Show OSD messages
@@ -698,7 +705,7 @@
- -
+
-
20
@@ -719,21 +726,21 @@
- -
+
-
Enable Discord Rich Presence
- -
+
-
Qt::Horizontal
- -
+
-
Automatically save state
@@ -743,7 +750,7 @@
- -
+
-
Automatically load state
@@ -753,14 +760,14 @@
- -
+
-
Qt::Horizontal
- -
+
-
Automatically save cheats
@@ -770,7 +777,7 @@
- -
+
-
Automatically load cheats
@@ -2369,7 +2376,7 @@
-
+
diff --git a/src/platform/qt/Window.cpp b/src/platform/qt/Window.cpp
index 523b518d7..726d57903 100644
--- a/src/platform/qt/Window.cpp
+++ b/src/platform/qt/Window.cpp
@@ -123,6 +123,12 @@ Window::Window(CoreManager* manager, ConfigController* config, int playerId, QWi
}
}, this);
m_config->updateOption("showLibrary");
+
+ ConfigOption* showFilenameInLibrary = m_config->addOption("showFilenameInLibrary");
+ showFilenameInLibrary->connect([this](const QVariant& value) {
+ m_libraryView->setShowFilename(value.toBool());
+ }, this);
+ m_config->updateOption("showFilenameInLibrary");
ConfigOption* libraryStyle = m_config->addOption("libraryStyle");
libraryStyle->connect([this](const QVariant& value) {
m_libraryView->setViewStyle(static_cast(value.toInt()));
diff --git a/src/platform/qt/library/LibraryController.cpp b/src/platform/qt/library/LibraryController.cpp
index 403bed6e7..2a1ba1546 100644
--- a/src/platform/qt/library/LibraryController.cpp
+++ b/src/platform/qt/library/LibraryController.cpp
@@ -37,6 +37,9 @@ void AbstractGameList::updateEntry(const LibraryEntry& item) {
void AbstractGameList::removeEntry(const QString& item) {
removeEntries({item});
}
+void AbstractGameList::setShowFilename(bool showFilename) {
+ m_showFilename = showFilename;
+}
LibraryController::LibraryController(QWidget* parent, const QString& path, ConfigController* config)
: QStackedWidget(parent)
@@ -210,3 +213,16 @@ void LibraryController::loadDirectory(const QString& dir, bool recursive) {
mLibraryLoadDirectory(library.get(), dir.toUtf8().constData(), recursive);
m_libraryJob.testAndSetOrdered(libraryJob, -1);
}
+void LibraryController::setShowFilename(bool showFilename) {
+ if (showFilename == m_showFilename) {
+ return;
+ }
+ m_showFilename = showFilename;
+ if (m_libraryGrid) {
+ m_libraryGrid->setShowFilename(m_showFilename);
+ }
+ if (m_libraryTree) {
+ m_libraryTree->setShowFilename(m_showFilename);
+ }
+ refresh();
+}
diff --git a/src/platform/qt/library/LibraryController.h b/src/platform/qt/library/LibraryController.h
index c7d6dfc2f..1b5d06572 100644
--- a/src/platform/qt/library/LibraryController.h
+++ b/src/platform/qt/library/LibraryController.h
@@ -65,8 +65,12 @@ public:
virtual void addEntry(const LibraryEntry&);
virtual void updateEntry(const LibraryEntry&);
virtual void removeEntry(const QString&);
+ virtual void setShowFilename(bool showFilename);
virtual QWidget* widget() = 0;
+
+protected:
+ bool m_showFilename = false;
};
class LibraryController final : public QStackedWidget {
@@ -79,6 +83,7 @@ public:
LibraryStyle viewStyle() const { return m_currentStyle; }
void setViewStyle(LibraryStyle newStyle);
+ void setShowFilename(bool showFilename);
void selectEntry(const QString& fullpath);
LibraryEntry selectedEntry();
@@ -112,6 +117,7 @@ private:
std::unique_ptr m_libraryGrid;
std::unique_ptr m_libraryTree;
+ bool m_showFilename = false;
};
}
diff --git a/src/platform/qt/library/LibraryGrid.cpp b/src/platform/qt/library/LibraryGrid.cpp
index c83d23b60..89fd8265b 100644
--- a/src/platform/qt/library/LibraryGrid.cpp
+++ b/src/platform/qt/library/LibraryGrid.cpp
@@ -69,8 +69,7 @@ void LibraryGrid::addEntry(const LibraryEntry& item) {
}
QListWidgetItem* i = new QListWidgetItem;
- i->setText(item.displayTitle());
-
+ i->setText(m_showFilename ? item.filename : item.displayTitle());
m_widget->addItem(i);
m_items.insert(item.fullpath, i);
}
@@ -83,7 +82,7 @@ void LibraryGrid::updateEntries(const QList& items) {
void LibraryGrid::updateEntry(const LibraryEntry& item) {
QListWidgetItem* i = m_items.value(item.fullpath);
- i->setText(item.displayTitle());
+ i->setText(m_showFilename ? item.filename : item.displayTitle());
}
void LibraryGrid::removeEntries(const QList& items) {
diff --git a/src/platform/qt/library/LibraryTree.cpp b/src/platform/qt/library/LibraryTree.cpp
index b9b24711a..179edd95c 100644
--- a/src/platform/qt/library/LibraryTree.cpp
+++ b/src/platform/qt/library/LibraryTree.cpp
@@ -141,7 +141,7 @@ void LibraryTree::updateEntry(const LibraryEntry& item) {
m_entries[item.fullpath] = item;
LibraryTreeItem* i = static_cast(m_items.value(item.fullpath));
- i->setText(COL_NAME, item.displayTitle());
+ i->setText(COL_NAME, m_showFilename ? item.filename : item.displayTitle());
i->setText(COL_PLATFORM, nicePlatformFormat(item.platform));
i->setFilesize(item.filesize);
i->setText(COL_CRC32, QString("%0").arg(item.crc32, 8, 16, QChar('0')));