Killed the issues column and made emulationstate "Problems" provide more info when its set in the gameini. the config looks a bit ugly imo but thats cause im horrible in such stuff :P

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2340 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
daco65 2009-02-21 14:40:34 +00:00
parent 26f951d9d5
commit 6222414ba5
4 changed files with 35 additions and 27 deletions

View File

@ -70,7 +70,6 @@ bool operator < (const GameListItem &one, const GameListItem &other)
case CGameListCtrl::COLUMN_NOTES: return strcasecmp(one.GetDescription(indexOne).c_str(), other.GetDescription(indexOther).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(indexOne).c_str(), other.GetName(indexOther).c_str()) < 0;
}
}
@ -170,7 +169,6 @@ void CGameListCtrl::Update()
InsertColumn(COLUMN_COUNTRY, _(""));
InsertColumn(COLUMN_SIZE, _("Size"));
InsertColumn(COLUMN_EMULATION_STATE, _("Emulation"));
InsertColumn(COLUMN_ISSUES, _("Issues"));
// set initial sizes for columns
@ -179,8 +177,7 @@ void CGameListCtrl::Update()
SetColumnWidth(COLUMN_COMPANY, 100);
SetColumnWidth(COLUMN_NOTES, 150);
SetColumnWidth(COLUMN_COUNTRY, 32);
SetColumnWidth(COLUMN_EMULATION_STATE, 75);
SetColumnWidth(COLUMN_ISSUES, 200);
SetColumnWidth(COLUMN_EMULATION_STATE, 150);
// add all items
for (int i = 0; i < (int)m_ISOFiles.size(); i++)
@ -299,6 +296,7 @@ void CGameListCtrl::InsertItemInReportView(long _Index)
wxListItem item;
item.SetId(_Index);
std::string EmuState;
std::string issues;
item.SetColumn(COLUMN_EMULATION_STATE);
ini.Get("EmuState","EmulationStateId",&EmuState);
if (!EmuState.empty())
@ -316,8 +314,14 @@ void CGameListCtrl::InsertItemInReportView(long _Index)
break;
case 2:
//NOTE (Daco): IMO under 2 goes problems like music and games that only work with specific settings
item.SetText(_("Problems: Other"));
//TODO (Daco): maybe 2 should get a function to present more info instead of the notes column... o.o
ini.Get("EmuState","EmulationIssues",&issues);
if (!issues.empty())
{
issues = "Problems: " + issues;
item.SetText(_(issues.c_str() ) );
}
else
item.SetText(_("Problems: Other"));
break;
case 1:
item.SetText(_("Broken"));
@ -332,21 +336,6 @@ 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);
if (!issues.empty())
{
item.SetText(wxString::FromAscii(issues.c_str()));
}
SetItem(item);
}
}
#ifndef __WXMSW__
@ -523,8 +512,6 @@ 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(indexOne).c_str(),iso2->GetDescription(indexOther).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;
@ -896,7 +883,6 @@ 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.2*resizable, 100));
}
}

View File

@ -45,7 +45,6 @@ public:
COLUMN_COUNTRY,
COLUMN_SIZE,
COLUMN_EMULATION_STATE,
COLUMN_ISSUES,
NUMBER_OF_COLUMN
};

View File

@ -37,6 +37,7 @@ BEGIN_EVENT_TABLE(CISOProperties, wxDialog)
EVT_BUTTON(ID_CLOSE, CISOProperties::OnCloseClick)
EVT_BUTTON(ID_EDITCONFIG, CISOProperties::OnEditConfig)
EVT_CHOICE(ID_EMUSTATE, CISOProperties::SetRefresh)
EVT_CHOICE(ID_EMU_ISSUES, CISOProperties::SetRefresh)
EVT_LISTBOX(ID_PATCHES_LIST, CISOProperties::ListSelectionChanged)
EVT_BUTTON(ID_EDITPATCH, CISOProperties::PatchButtonClicked)
EVT_BUTTON(ID_ADDPATCH, CISOProperties::PatchButtonClicked)
@ -221,7 +222,7 @@ void CISOProperties::CreateGUIControls()
sEmuState = new wxBoxSizer(wxHORIZONTAL);
arrayStringFor_EmuState.Add(_("Not Set"));
arrayStringFor_EmuState.Add(_("Broken"));
arrayStringFor_EmuState.Add(_("Problems: Other"));
arrayStringFor_EmuState.Add(_("Problems: "));
arrayStringFor_EmuState.Add(_("Intro"));
arrayStringFor_EmuState.Add(_("In Game"));
arrayStringFor_EmuState.Add(_("Perfect"));
@ -239,6 +240,11 @@ void CISOProperties::CreateGUIControls()
EditPatch->Enable(false);
RemovePatch->Enable(false);
//issues
sEmuIssues = new wxBoxSizer(wxHORIZONTAL);
EmuIssues = new wxTextCtrl(m_GameConfig,ID_EMU_ISSUES, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0,wxDefaultValidator);
EmuIssuesText = new wxStaticText(m_GameConfig,ID_EMUISSUES_TEXT,_("Emulation Issues(for when emustate is 'Problems'):"), wxDefaultPosition, wxDefaultSize);
// Action Replay Cheats
sbCheats = new wxStaticBoxSizer(wxVERTICAL, m_CheatPage, _("Action Replay Codes"));
sCheats = new wxBoxSizer(wxVERTICAL);
@ -261,8 +267,11 @@ void CISOProperties::CreateGUIControls()
sEmuState->Add(EditConfig, 0, wxALL, 0);
sEmuState->AddStretchSpacer();
sEmuState->Add(EmuStateText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 0);
sEmuState->Add(EmuState, 0, wxEXPAND|wxALL, 0);
sEmuState->Add(EmuState, 0, wxALL, 0);
sEmuIssues->Add(EmuIssuesText,0,wxALIGN_CENTER_VERTICAL|wxALL,0);
sEmuIssues->Add(EmuIssues,0,wxEXPAND|wxRIGHT,0);
sCoreOverrides->Add(sEmuState, 0, wxEXPAND|wxALL, 5);
sCoreOverrides->Add(sEmuIssues,0,wxEXPAND|wxALL,5);
sbCoreOverrides->Add(sCoreOverrides, 0, wxEXPAND|wxALL, 0);
sConfigPage->Add(sbCoreOverrides, 0, wxEXPAND|wxALL, 5);
@ -484,6 +493,7 @@ void CISOProperties::LoadGameConfig()
{
bool bTemp;
int iTemp;
std::string sTemp;
if (GameIni.Get("Core", "UseDualCore", &bTemp))
UseDualCore->Set3StateValue((wxCheckBoxState)bTemp);
@ -518,6 +528,13 @@ void CISOProperties::LoadGameConfig()
}
EmuState->SetSelection(iTemp);
GameIni.Get("EmuState", "EmulationIssues", &sTemp);
if (!sTemp.empty())
{
EmuIssues->SetValue(sTemp);
bRefreshList = true;
}
PatchList_Load();
ActionReplayList_Load();
}
@ -550,6 +567,7 @@ bool CISOProperties::SaveGameConfig()
GameIni.Set("Core", "EnableWideScreen", EnableWideScreen->Get3StateValue());
GameIni.Set("EmuState", "EmulationStateId", EmuState->GetSelection());
GameIni.Set("EmuState", "EmulationIssues", EmuIssues->GetValue());
PatchList_Save();
ActionReplayList_Save();

View File

@ -57,6 +57,7 @@ class CISOProperties : public wxDialog
wxStaticBoxSizer *sbCoreOverrides;
wxBoxSizer *sCoreOverrides;
wxBoxSizer *sEmuState;
wxBoxSizer *sEmuIssues;
wxStaticBoxSizer *sbPatches;
wxBoxSizer *sPatches;
wxBoxSizer *sPatchButtons;
@ -89,6 +90,8 @@ class CISOProperties : public wxDialog
wxStaticText *EmuStateText;
wxArrayString arrayStringFor_EmuState;
wxChoice *EmuState;
wxTextCtrl *EmuIssues;
wxStaticText *EmuIssuesText;
wxArrayString arrayStringFor_Patches;
wxCheckListBox *Patches;
wxButton *EditPatch;
@ -155,6 +158,8 @@ class CISOProperties : public wxDialog
ID_EDITCONFIG,
ID_EMUSTATE_TEXT,
ID_EMUSTATE,
ID_EMUISSUES_TEXT,
ID_EMU_ISSUES,
ID_PATCHES_LIST,
ID_EDITPATCH,
ID_ADDPATCH,