mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #4896 from zhaowenlan1779/game-list-fix-3
citra_qt: Misc game list updates/fixes
This commit is contained in:
		
						commit
						d6f2bc8c04
					
				
					 8 changed files with 27 additions and 9 deletions
				
			
		|  | @ -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> | ||||
|  |  | |||
|  | @ -285,7 +285,6 @@ GameList::GameList(GMainWindow* parent) : QWidget{parent} { | |||
|     tree_view->setHorizontalScrollMode(QHeaderView::ScrollPerPixel); | ||||
|     tree_view->setSortingEnabled(true); | ||||
|     tree_view->setEditTriggers(QHeaderView::NoEditTriggers); | ||||
|     tree_view->setUniformRowHeights(true); | ||||
|     tree_view->setContextMenuPolicy(Qt::CustomContextMenu); | ||||
|     tree_view->setStyleSheet("QTreeView{ border: none; }"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ | |||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <algorithm> | ||||
| #include <map> | ||||
| #include <unordered_map> | ||||
| #include <utility> | ||||
|  | @ -91,13 +92,19 @@ static QString GetRegionFromSMDH(const Loader::SMDH& smdh) { | |||
|         return QObject::tr("Invalid region"); | ||||
|     } | ||||
| 
 | ||||
|     if (std::find(regions.begin(), regions.end(), GameRegion::RegionFree) != regions.end()) { | ||||
|     const bool region_free = | ||||
|         std::all_of(regions_map.begin(), regions_map.end(), [®ions](const auto& it) { | ||||
|             return std::find(regions.begin(), regions.end(), it.first) != regions.end(); | ||||
|         }); | ||||
|     if (region_free) { | ||||
|         return QObject::tr("Region free"); | ||||
|     } | ||||
| 
 | ||||
|     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; | ||||
| } | ||||
|  | @ -191,7 +198,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; | ||||
| 
 | ||||
|  |  | |||
|  | @ -49,10 +49,6 @@ std::array<u16, 0x40> SMDH::GetShortTitle(Loader::SMDH::TitleLanguage language) | |||
| } | ||||
| 
 | ||||
| std::vector<SMDH::GameRegion> SMDH::GetRegions() const { | ||||
|     if (region_lockout == 0x7fffffff) { | ||||
|         return std::vector<GameRegion>{GameRegion::RegionFree}; | ||||
|     } | ||||
| 
 | ||||
|     constexpr u32 REGION_COUNT = 7; | ||||
|     std::vector<GameRegion> result; | ||||
|     for (u32 region = 0; region < REGION_COUNT; ++region) { | ||||
|  |  | |||
|  | @ -70,7 +70,6 @@ struct SMDH { | |||
|         China = 4, | ||||
|         Korea = 5, | ||||
|         Taiwan = 6, | ||||
|         RegionFree = 7, | ||||
|     }; | ||||
| 
 | ||||
|     /**
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue