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.
This commit is contained in:
parent
b078122167
commit
4144f4480d
@ -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<int>(UISettings::values.game_list_row_1), 2);
|
||||
WriteSetting("row2", static_cast<int>(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");
|
||||
|
@ -47,6 +47,7 @@ void ConfigureUi::SetConfiguration() {
|
||||
ui->row_2_text_combobox->setCurrentIndex(static_cast<int>(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<UISettings::GameListText>(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) {
|
||||
|
@ -185,6 +185,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="toggle_single_line_mode">
|
||||
<property name="text">
|
||||
<string>Single Line Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user