From 4144f4480d8326a47c3b5d4e43761e62caf4760c Mon Sep 17 00:00:00 2001 From: zhupengfei Date: Tue, 20 Aug 2019 20:03:15 +0800 Subject: [PATCH] citra_qt: Add single line mode for game list This single line mode is aimed at restoring the intended behavior with Small or None icons. Line breaks will be replaced with commas (Region row) or spaces (Name row). One can toggle this option in UI configuration. --- src/citra_qt/configuration/config.cpp | 2 ++ src/citra_qt/configuration/configure_ui.cpp | 2 ++ src/citra_qt/configuration/configure_ui.ui | 7 +++++++ src/citra_qt/game_list_p.h | 11 +++++++++-- src/citra_qt/uisettings.h | 1 + 5 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/citra_qt/configuration/config.cpp b/src/citra_qt/configuration/config.cpp index 79eba88bf..ddcb71e3d 100644 --- a/src/citra_qt/configuration/config.cpp +++ b/src/citra_qt/configuration/config.cpp @@ -319,6 +319,7 @@ void Config::ReadValues() { UISettings::values.game_list_row_2 = UISettings::GameListText{row_2}; UISettings::values.game_list_hide_no_icon = ReadSetting("hideNoIcon", false).toBool(); + UISettings::values.game_list_single_line_mode = ReadSetting("singleLineMode", false).toBool(); qt_config->endGroup(); qt_config->beginGroup("Paths"); @@ -589,6 +590,7 @@ void Config::SaveValues() { WriteSetting("row1", static_cast(UISettings::values.game_list_row_1), 2); WriteSetting("row2", static_cast(UISettings::values.game_list_row_2), 0); WriteSetting("hideNoIcon", UISettings::values.game_list_hide_no_icon, false); + WriteSetting("singleLineMode", UISettings::values.game_list_single_line_mode, false); qt_config->endGroup(); qt_config->beginGroup("Paths"); diff --git a/src/citra_qt/configuration/configure_ui.cpp b/src/citra_qt/configuration/configure_ui.cpp index 006b93e8c..88f0d0893 100644 --- a/src/citra_qt/configuration/configure_ui.cpp +++ b/src/citra_qt/configuration/configure_ui.cpp @@ -47,6 +47,7 @@ void ConfigureUi::SetConfiguration() { ui->row_2_text_combobox->setCurrentIndex(static_cast(UISettings::values.game_list_row_2) + 1); ui->toggle_hide_no_icon->setChecked(UISettings::values.game_list_hide_no_icon); + ui->toggle_single_line_mode->setChecked(UISettings::values.game_list_single_line_mode); } void ConfigureUi::ApplyConfiguration() { @@ -59,6 +60,7 @@ void ConfigureUi::ApplyConfiguration() { UISettings::values.game_list_row_2 = static_cast(ui->row_2_text_combobox->currentIndex() - 1); UISettings::values.game_list_hide_no_icon = ui->toggle_hide_no_icon->isChecked(); + UISettings::values.game_list_single_line_mode = ui->toggle_single_line_mode->isChecked(); } void ConfigureUi::OnLanguageChanged(int index) { diff --git a/src/citra_qt/configuration/configure_ui.ui b/src/citra_qt/configuration/configure_ui.ui index 5b7d054af..4af177f3e 100644 --- a/src/citra_qt/configuration/configure_ui.ui +++ b/src/citra_qt/configuration/configure_ui.ui @@ -185,6 +185,13 @@ + + + + Single Line Mode + + + diff --git a/src/citra_qt/game_list_p.h b/src/citra_qt/game_list_p.h index 9a3fef612..8a0a57fca 100644 --- a/src/citra_qt/game_list_p.h +++ b/src/citra_qt/game_list_p.h @@ -104,9 +104,11 @@ static QString GetRegionFromSMDH(const Loader::SMDH& smdh) { return QObject::tr("All regions"); } + const QString separator = + UISettings::values.game_list_single_line_mode ? QStringLiteral(", ") : QStringLiteral("\n"); QString result = QObject::tr(regions_map.at(regions.front())); for (auto region = ++regions.begin(); region != regions.end(); ++region) { - result += QStringLiteral("\n") + QObject::tr(regions_map.at(*region)); + result += separator + QObject::tr(regions_map.at(*region)); } return result; } @@ -200,7 +202,12 @@ public: QString row2; auto row_2_id = UISettings::values.game_list_row_2; if (row_2_id != UISettings::GameListText::NoText) { - row2 = (row1.isEmpty() ? "" : "\n ") + display_texts.at(row_2_id); + if (!row1.isEmpty()) { + row2 = UISettings::values.game_list_single_line_mode + ? QStringLiteral(" ") + : QStringLiteral("\n "); + } + row2 += display_texts.at(row_2_id); } return QString(row1 + row2); } else { diff --git a/src/citra_qt/uisettings.h b/src/citra_qt/uisettings.h index 80cab3689..573b4d975 100644 --- a/src/citra_qt/uisettings.h +++ b/src/citra_qt/uisettings.h @@ -85,6 +85,7 @@ struct Values { GameListText game_list_row_1; GameListText game_list_row_2; bool game_list_hide_no_icon; + bool game_list_single_line_mode; u16 screenshot_resolution_factor;