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 79eba88bf6..ddcb71e3d2 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 006b93e8c7..88f0d08935 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 5b7d054afc..4af177f3e3 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 9a3fef6126..8a0a57fca4 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 80cab3689a..573b4d9752 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;