diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.cpp b/Source/Core/DolphinWX/Src/GameListCtrl.cpp index 59f3d5d021..5e1ad62d93 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.cpp +++ b/Source/Core/DolphinWX/Src/GameListCtrl.cpp @@ -52,6 +52,7 @@ bool operator < (const GameListItem &one, const GameListItem &other) case CGameListCtrl::COLUMN_NOTES: return strcasecmp(one.GetDescription().c_str(), other.GetDescription().c_str()) < 0; case CGameListCtrl::COLUMN_COUNTRY: return (one.GetCountry() < other.GetCountry()); case CGameListCtrl::COLUMN_SIZE: return (one.GetFileSize() < other.GetFileSize()); + case CGameListCtrl::COLUMN_ISSUES: return strcasecmp(one.GetIssues().c_str(), other.GetIssues().c_str()) < 0; default: return strcasecmp(one.GetName().c_str(), other.GetName().c_str()) < 0; } } @@ -147,18 +148,21 @@ void CGameListCtrl::Update() InsertColumn(COLUMN_BANNER, _("Banner")); InsertColumn(COLUMN_TITLE, _("Title")); InsertColumn(COLUMN_COMPANY, _("Company")); - InsertColumn(COLUMN_NOTES, _("Notes")); + InsertColumn(COLUMN_ISSUES, wxT("Issues")); InsertColumn(COLUMN_COUNTRY, _("")); InsertColumn(COLUMN_SIZE, _("Size")); InsertColumn(COLUMN_EMULATION_STATE, _("Emulation")); + InsertColumn(COLUMN_NOTES, _("Notes")); + // set initial sizes for columns SetColumnWidth(COLUMN_BANNER, 106); SetColumnWidth(COLUMN_TITLE, 150); SetColumnWidth(COLUMN_COMPANY, 100); - SetColumnWidth(COLUMN_NOTES, 200); + SetColumnWidth(COLUMN_NOTES, 150); SetColumnWidth(COLUMN_COUNTRY, 32); SetColumnWidth(COLUMN_EMULATION_STATE, 75); + SetColumnWidth(COLUMN_ISSUES, 200); // add all items for (int i = 0; i < (int)m_ISOFiles.size(); i++) @@ -234,18 +238,19 @@ void CGameListCtrl::InsertItemInReportView(long _Index) SetItem(_Index, COLUMN_NOTES, wxString::FromAscii(rISOFile.GetDescription().c_str()), -1); SetItem(_Index, COLUMN_SIZE, NiceSizeFormat(rISOFile.GetFileSize()), -1); + // Load the INI file for columns that read from it + IniFile ini; + std::string GameIni = FULL_GAMECONFIG_DIR + (rISOFile.GetUniqueID()) + ".ini"; + ini.Load(GameIni.c_str()); + // Emulation status = COLUMN_EMULATION_STATE { wxListItem item; item.SetId(_Index); - IniFile ini; std::string EmuState; - std::string GameIni; item.SetColumn(COLUMN_EMULATION_STATE); //NOTE (Daco): i dont like the fact of having so much ini's just to have //the game emulation state of every game you have. but 1 huge ini is no option - GameIni = FULL_GAMECONFIG_DIR + (rISOFile.GetUniqueID()) + ".ini"; - ini.Load(GameIni.c_str()); ini.Get("EmuState","EmulationStateId",&EmuState); if (!EmuState.empty()) { @@ -274,6 +279,18 @@ void CGameListCtrl::InsertItemInReportView(long _Index) } } SetItem(item); + + // Issues Column + { + wxListItem item; + item.SetId(_Index); + item.SetColumn(COLUMN_ISSUES); + std::string issues; + ini.Get("EmuState","Issues",&issues); + item.SetText(wxString::FromAscii(issues.c_str())); + SetItem(item); + } + } #ifndef __WXMSW__ @@ -432,6 +449,8 @@ int wxCALLBACK wxListCompare(long item1, long item2, long sortData) return strcasecmp(iso1->GetCompany().c_str(),iso2->GetCompany().c_str()) *t; case CGameListCtrl::COLUMN_NOTES: return strcasecmp(iso1->GetDescription().c_str(),iso2->GetDescription().c_str()) *t; + case CGameListCtrl::COLUMN_ISSUES: + return strcasecmp(iso1->GetIssues().c_str(),iso2->GetIssues().c_str()) *t; case CGameListCtrl::COLUMN_COUNTRY: if(iso1->GetCountry() > iso2->GetCountry()) return 1 *t; if(iso1->GetCountry() < iso2->GetCountry()) return -1 *t; @@ -791,6 +810,7 @@ void CGameListCtrl::AutomaticColumnWidth() SetColumnWidth(COLUMN_TITLE, wxMax(0.3*resizable, 100)); SetColumnWidth(COLUMN_COMPANY, wxMax(0.2*resizable, 100)); SetColumnWidth(COLUMN_NOTES, wxMax(0.5*resizable, 100)); + SetColumnWidth(COLUMN_ISSUES, wxMax(0.5*resizable, 100)); } } diff --git a/Source/Core/DolphinWX/Src/GameListCtrl.h b/Source/Core/DolphinWX/Src/GameListCtrl.h index b626be1f8b..9aba6cf6ca 100644 --- a/Source/Core/DolphinWX/Src/GameListCtrl.h +++ b/Source/Core/DolphinWX/Src/GameListCtrl.h @@ -41,10 +41,11 @@ public: COLUMN_BANNER = 0, COLUMN_TITLE, COLUMN_COMPANY, - COLUMN_NOTES, + COLUMN_ISSUES, COLUMN_COUNTRY, COLUMN_SIZE, COLUMN_EMULATION_STATE, + COLUMN_NOTES, NUMBER_OF_COLUMN }; diff --git a/Source/Core/DolphinWX/Src/ISOFile.h b/Source/Core/DolphinWX/Src/ISOFile.h index ca7f8dab7f..21332eca91 100644 --- a/Source/Core/DolphinWX/Src/ISOFile.h +++ b/Source/Core/DolphinWX/Src/ISOFile.h @@ -34,6 +34,7 @@ public: const std::string& GetDescription() const {return m_Description;} const std::string& GetUniqueID() const {return m_UniqueID;} DiscIO::IVolume::ECountry GetCountry() const {return m_Country;} + const std::string& GetIssues() const {return m_Issues;} bool IsCompressed() const {return m_BlobCompressed;} u64 GetFileSize() const {return m_FileSize;} u64 GetVolumeSize() const {return m_VolumeSize;} @@ -49,6 +50,7 @@ private: std::string m_Company; std::string m_Description; std::string m_UniqueID; + std::string m_Issues; u64 m_FileSize; u64 m_VolumeSize;