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')));