Category filter for PS1/PS2/PSP games

This commit is contained in:
msuih 2018-12-01 14:16:32 +02:00 committed by Megamouse
parent 62c9920f2e
commit 8afc035aac
5 changed files with 82 additions and 15 deletions

View file

@ -20,7 +20,10 @@
enum Category
{
Disc_Game,
Non_Disc_Game,
HDD_Game,
PS1_Game,
PS2_Game,
PSP_Game,
Home,
Media,
Data,
@ -79,14 +82,14 @@ namespace category // (see PARAM.SFO in psdevwiki.com) TODO: Disc Categories
{ "HM", home }, // home
{ "CB", network }, // other
{ "SF", store_fe }, // other
{ "DG", disc_game }, // disc_Game
{ "HG", hdd_game }, // non_disc_games
{ "2P", ps2_game }, // non_disc_games
{ "2G", ps2_inst }, // non_disc_games
{ "1P", ps1_game }, // non_disc_games
{ "PP", psp_game }, // non_disc_games
{ "MN", psp_mini }, // non_disc_games
{ "PE", psp_rema }, // non_disc_games
{ "DG", disc_game }, // disc_game
{ "HG", hdd_game }, // hdd_game
{ "2P", ps2_game }, // ps2_games
{ "2G", ps2_inst }, // ps2_games
{ "1P", ps1_game }, // ps1_game
{ "PP", psp_game }, // psp_games
{ "MN", psp_mini }, // psp_games
{ "PE", psp_rema }, // psp_games
};
const q_from_char cat_data =
{
@ -96,7 +99,8 @@ namespace category // (see PARAM.SFO in psdevwiki.com) TODO: Disc Categories
{ "MS", psp_save } // data
};
const QStringList non_disc_games = { hdd_game, ps2_game, ps2_inst, ps1_game, psp_game, psp_mini, psp_rema };
const QStringList ps2_games = { ps2_game, ps2_inst };
const QStringList psp_games = { psp_game, psp_mini, psp_rema };
const QStringList media = { app_photo, app_video, bc_video, app_music, app_tv, web_tv };
const QStringList data = { ps3_data, ps2_data, ps3_save, psp_save };
const QStringList others = { network, store_fe, trophy, other };

View file

@ -153,8 +153,11 @@ void gui_settings::SetValue(const QString& key, const QString& name, const QVari
QStringList gui_settings::GetGameListCategoryFilters()
{
QStringList filterList;
if (GetCategoryVisibility(Category::Non_Disc_Game)) filterList.append(category::non_disc_games);
if (GetCategoryVisibility(Category::HDD_Game)) filterList.append(category::hdd_game);
if (GetCategoryVisibility(Category::Disc_Game)) filterList.append(category::disc_game);
if (GetCategoryVisibility(Category::PS1_Game)) filterList.append(category::ps1_game);
if (GetCategoryVisibility(Category::PS2_Game)) filterList.append(category::ps2_games);
if (GetCategoryVisibility(Category::PSP_Game)) filterList.append(category::psp_games);
if (GetCategoryVisibility(Category::Home)) filterList.append(category::home);
if (GetCategoryVisibility(Category::Media)) filterList.append(category::media);
if (GetCategoryVisibility(Category::Data)) filterList.append(category::data);
@ -169,10 +172,16 @@ bool gui_settings::GetCategoryVisibility(int cat)
switch (cat)
{
case Category::Non_Disc_Game:
case Category::HDD_Game:
value = gui::cat_hdd_game; break;
case Category::Disc_Game:
value = gui::cat_disc_game; break;
case Category::PS1_Game:
value = gui::cat_ps1_game; break;
case Category::PS2_Game:
value = gui::cat_ps2_game; break;
case Category::PSP_Game:
value = gui::cat_psp_game; break;
case Category::Home:
value = gui::cat_home; break;
case Category::Media:
@ -197,12 +206,18 @@ void gui_settings::SetCategoryVisibility(int cat, const bool& val)
switch (cat)
{
case Category::Non_Disc_Game:
case Category::HDD_Game:
value = gui::cat_hdd_game; break;
case Category::Disc_Game:
value = gui::cat_disc_game; break;
case Category::Home:
value = gui::cat_home; break;
case Category::PS1_Game:
value = gui::cat_ps1_game; break;
case Category::PS2_Game:
value = gui::cat_ps2_game; break;
case Category::PSP_Game:
value = gui::cat_psp_game; break;
case Category::Media:
value = gui::cat_audio_video; break;
case Category::Data:

View file

@ -156,6 +156,9 @@ namespace gui
const gui_save cat_hdd_game = gui_save(game_list, "categoryVisibleHDDGame", true);
const gui_save cat_disc_game = gui_save(game_list, "categoryVisibleDiscGame", true);
const gui_save cat_ps1_game = gui_save(game_list, "categoryVisiblePS1Game", true);
const gui_save cat_ps2_game = gui_save(game_list, "categoryVisiblePS2Game", true);
const gui_save cat_psp_game = gui_save(game_list, "categoryVisiblePSPGame", true);
const gui_save cat_home = gui_save(game_list, "categoryVisibleHome", true);
const gui_save cat_audio_video = gui_save(game_list, "categoryVisibleAudioVideo", true);
const gui_save cat_game_data = gui_save(game_list, "categoryVisibleGameData", false);

View file

@ -1146,6 +1146,9 @@ void main_window::CreateActions()
m_categoryVisibleActGroup = new QActionGroup(this);
m_categoryVisibleActGroup->addAction(ui->showCatHDDGameAct);
m_categoryVisibleActGroup->addAction(ui->showCatDiscGameAct);
m_categoryVisibleActGroup->addAction(ui->showCatPS1GamesAct);
m_categoryVisibleActGroup->addAction(ui->showCatPS2GamesAct);
m_categoryVisibleActGroup->addAction(ui->showCatPSPGamesAct);
m_categoryVisibleActGroup->addAction(ui->showCatHomeAct);
m_categoryVisibleActGroup->addAction(ui->showCatAudioVideoAct);
m_categoryVisibleActGroup->addAction(ui->showCatGameDataAct);
@ -1367,8 +1370,11 @@ void main_window::CreateConnects()
int id;
const bool& checked = act->isChecked();
if (act == ui->showCatHDDGameAct) categories += category::non_disc_games, id = Category::Non_Disc_Game;
if (act == ui->showCatHDDGameAct) categories += category::hdd_game, id = Category::HDD_Game;
else if (act == ui->showCatDiscGameAct) categories += category::disc_game, id = Category::Disc_Game;
else if (act == ui->showCatPS1GamesAct) categories += category::ps1_game, id = Category::PS1_Game;
else if (act == ui->showCatPS2GamesAct) categories += category::ps2_games, id = Category::PS2_Game;
else if (act == ui->showCatPSPGamesAct) categories += category::psp_games, id = Category::PSP_Game;
else if (act == ui->showCatHomeAct) categories += category::home, id = Category::Home;
else if (act == ui->showCatAudioVideoAct) categories += category::media, id = Category::Media;
else if (act == ui->showCatGameDataAct) categories += category::data, id = Category::Data;
@ -1584,8 +1590,11 @@ void main_window::ConfigureGuiFromSettings(bool configure_all)
ui->showCompatibilityInGridAct->setChecked(guiSettings->GetValue(gui::gl_draw_compat).toBool());
ui->showCatHDDGameAct->setChecked(guiSettings->GetCategoryVisibility(Category::Non_Disc_Game));
ui->showCatHDDGameAct->setChecked(guiSettings->GetCategoryVisibility(Category::HDD_Game));
ui->showCatDiscGameAct->setChecked(guiSettings->GetCategoryVisibility(Category::Disc_Game));
ui->showCatPS1GamesAct->setChecked(guiSettings->GetCategoryVisibility(Category::PS1_Game));
ui->showCatPS2GamesAct->setChecked(guiSettings->GetCategoryVisibility(Category::PS2_Game));
ui->showCatPSPGamesAct->setChecked(guiSettings->GetCategoryVisibility(Category::PSP_Game));
ui->showCatHomeAct->setChecked(guiSettings->GetCategoryVisibility(Category::Home));
ui->showCatAudioVideoAct->setChecked(guiSettings->GetCategoryVisibility(Category::Media));
ui->showCatGameDataAct->setChecked(guiSettings->GetCategoryVisibility(Category::Data));

View file

@ -251,6 +251,9 @@
</property>
<addaction name="showCatHDDGameAct"/>
<addaction name="showCatDiscGameAct"/>
<addaction name="showCatPS1GamesAct"/>
<addaction name="showCatPS2GamesAct"/>
<addaction name="showCatPSPGamesAct"/>
<addaction name="showCatHomeAct"/>
<addaction name="showCatAudioVideoAct"/>
<addaction name="showCatGameDataAct"/>
@ -731,6 +734,39 @@
<string>Disc Games</string>
</property>
</action>
<action name="showCatPS1GamesAct">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="text">
<string>PS1 Games</string>
</property>
</action>
<action name="showCatPS2GamesAct">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="text">
<string>PS2 Games</string>
</property>
</action>
<action name="showCatPSPGamesAct">
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<property name="text">
<string>PSP Games</string>
</property>
</action>
<action name="showCatHomeAct">
<property name="checkable">
<bool>true</bool>