Small unicode fix for extracting files (ISOProperties.cpp)

Change some PanicYesNo to AskYesNo so that they will always show (WiiSaveCrypted.cpp)
Adds more country filtering options to Gamelist (france, italy, korea, taiwan, and unknown country)
Misc. fixes for potential crashes that can only occur with a corrupted dump == check filesize of a dump before spending time looking for the cause of a crash :P

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4802 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
LPFaint99
2010-01-11 05:07:56 +00:00
parent a19be73be3
commit 183804e442
12 changed files with 105 additions and 38 deletions

View File

@ -252,13 +252,6 @@ EVT_MENU(IDM_TOGGLE_STATUSBAR, CFrame::OnToggleStatusbar)
EVT_MENU(IDM_LOGWINDOW, CFrame::OnToggleLogWindow)
EVT_MENU(IDM_CONSOLEWINDOW, CFrame::OnToggleConsole)
EVT_MENU(IDM_LISTDRIVES, CFrame::GameListChanged)
EVT_MENU(IDM_LISTWII, CFrame::GameListChanged)
EVT_MENU(IDM_LISTGC, CFrame::GameListChanged)
EVT_MENU(IDM_LISTWAD, CFrame::GameListChanged)
EVT_MENU(IDM_LISTJAP, CFrame::GameListChanged)
EVT_MENU(IDM_LISTPAL, CFrame::GameListChanged)
EVT_MENU(IDM_LISTUSA, CFrame::GameListChanged)
EVT_MENU(IDM_PURGECACHE, CFrame::GameListChanged)
EVT_MENU(IDM_LOADLASTSTATE, CFrame::OnLoadLastState)
@ -272,6 +265,7 @@ EVT_MENU_RANGE(IDM_SAVESLOT1, IDM_SAVESLOT8, CFrame::OnSaveState)
EVT_MENU_RANGE(IDM_FRAMESKIP0, IDM_FRAMESKIP9, CFrame::OnFrameSkip)
EVT_MENU_RANGE(IDM_DRIVE1, IDM_DRIVE24, CFrame::OnBootDrive)
EVT_MENU_RANGE(IDM_CONNECT_WIIMOTE1, IDM_CONNECT_WIIMOTE4, CFrame::OnConnectWiimote)
EVT_MENU_RANGE(IDM_LISTWAD, IDM_LISTDRIVES, CFrame::GameListChanged)
// Other
EVT_ACTIVATE(CFrame::OnActive)
@ -659,11 +653,19 @@ void CFrame::OnGameListCtrl_ItemActivated(wxListEvent& WXUNUSED (event))
SConfig::GetInstance().m_ListWad) &&
(SConfig::GetInstance().m_ListJap &&
SConfig::GetInstance().m_ListUsa &&
SConfig::GetInstance().m_ListPal)))
SConfig::GetInstance().m_ListPal &&
SConfig::GetInstance().m_ListFrance &&
SConfig::GetInstance().m_ListItaly &&
SConfig::GetInstance().m_ListKorea &&
SConfig::GetInstance().m_ListTaiwan &&
SConfig::GetInstance().m_ListUnknown)))
{
SConfig::GetInstance().m_ListGC = SConfig::GetInstance().m_ListWii =
SConfig::GetInstance().m_ListWad = SConfig::GetInstance().m_ListJap =
SConfig::GetInstance().m_ListUsa = SConfig::GetInstance().m_ListPal = true;
SConfig::GetInstance().m_ListGC = SConfig::GetInstance().m_ListWii =
SConfig::GetInstance().m_ListWad = SConfig::GetInstance().m_ListJap =
SConfig::GetInstance().m_ListUsa = SConfig::GetInstance().m_ListPal =
SConfig::GetInstance().m_ListFrance = SConfig::GetInstance().m_ListItaly =
SConfig::GetInstance().m_ListKorea = SConfig::GetInstance().m_ListTaiwan =
SConfig::GetInstance().m_ListUnknown= true;
GetMenuBar()->FindItem(IDM_LISTGC)->Check(true);
GetMenuBar()->FindItem(IDM_LISTWII)->Check(true);
@ -671,6 +673,11 @@ void CFrame::OnGameListCtrl_ItemActivated(wxListEvent& WXUNUSED (event))
GetMenuBar()->FindItem(IDM_LISTJAP)->Check(true);
GetMenuBar()->FindItem(IDM_LISTUSA)->Check(true);
GetMenuBar()->FindItem(IDM_LISTPAL)->Check(true);
GetMenuBar()->FindItem(IDM_LISTFRANCE)->Check(true);
GetMenuBar()->FindItem(IDM_LISTITALY)->Check(true);
GetMenuBar()->FindItem(IDM_LISTKOREA)->Check(true);
GetMenuBar()->FindItem(IDM_LISTTAIWAN)->Check(true);
GetMenuBar()->FindItem(IDM_LIST_UNK)->Check(true);
m_GameListCtrl->Update();
}

View File

@ -243,10 +243,19 @@ void CFrame::CreateMenu()
regionMenu->Check(IDM_LISTPAL, SConfig::GetInstance().m_ListPal);
regionMenu->AppendCheckItem(IDM_LISTUSA, _T("Show USA"));
regionMenu->Check(IDM_LISTUSA, SConfig::GetInstance().m_ListUsa);
regionMenu->AppendSeparator();
regionMenu->AppendCheckItem(IDM_LISTFRANCE, _T("Show France"));
regionMenu->Check(IDM_LISTFRANCE, SConfig::GetInstance().m_ListFrance);
regionMenu->AppendCheckItem(IDM_LISTITALY, _T("Show Italy"));
regionMenu->Check(IDM_LISTITALY, SConfig::GetInstance().m_ListItaly);
regionMenu->AppendCheckItem(IDM_LISTKOREA, _T("Show Korea"));
regionMenu->Check(IDM_LISTKOREA, SConfig::GetInstance().m_ListKorea);
regionMenu->AppendCheckItem(IDM_LISTTAIWAN, _T("Show Taiwan"));
regionMenu->Check(IDM_LISTTAIWAN, SConfig::GetInstance().m_ListTaiwan);
regionMenu->AppendCheckItem(IDM_LIST_UNK, _T("Show unknown"));
regionMenu->Check(IDM_LIST_UNK, SConfig::GetInstance().m_ListUnknown);
viewMenu->AppendCheckItem(IDM_LISTDRIVES, _T("Show Drives"));
viewMenu->Check(IDM_LISTDRIVES, SConfig::GetInstance().m_ListDrives);
viewMenu->AppendSeparator();
viewMenu->Append(IDM_PURGECACHE, _T("Purge Cache"));
m_MenuBar->Append(viewMenu, _T("&View"));
@ -1066,6 +1075,21 @@ void CFrame::GameListChanged(wxCommandEvent& event)
case IDM_LISTUSA:
SConfig::GetInstance().m_ListUsa = event.IsChecked();
break;
case IDM_LISTFRANCE:
SConfig::GetInstance().m_ListFrance = event.IsChecked();
break;
case IDM_LISTITALY:
SConfig::GetInstance().m_ListItaly = event.IsChecked();
break;
case IDM_LISTKOREA:
SConfig::GetInstance().m_ListKorea = event.IsChecked();
break;
case IDM_LISTTAIWAN:
SConfig::GetInstance().m_ListTaiwan = event.IsChecked();
break;
case IDM_LIST_UNK:
SConfig::GetInstance().m_ListUnknown = event.IsChecked();
break;
case IDM_LISTDRIVES:
SConfig::GetInstance().m_ListDrives = event.IsChecked();
break;

View File

@ -106,6 +106,11 @@ enum
IDM_LISTJAP,
IDM_LISTPAL,
IDM_LISTUSA,
IDM_LISTFRANCE,
IDM_LISTITALY,
IDM_LISTKOREA,
IDM_LISTTAIWAN,
IDM_LIST_UNK,
IDM_LISTDRIVES,
IDM_PURGECACHE,

View File

@ -98,7 +98,8 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW
{
GCFiles.clear();
pFileSystem = DiscIO::CreateFileSystem(OpenISO);
pFileSystem->GetFileList(GCFiles);
if (pFileSystem)
pFileSystem->GetFileList(GCFiles);
}
}
@ -193,7 +194,8 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW
// TODO : Should we add a way to browse the wad file ?
if (!DiscIO::IsVolumeWadFile(OpenISO))
{
CreateDirectoryTree(RootId, GCFiles, 1, GCFiles.at(0)->m_FileSize);
if (!GCFiles.empty())
CreateDirectoryTree(RootId, GCFiles, 1, GCFiles.at(0)->m_FileSize);
}
}
m_Treectrl->Expand(RootId);
@ -212,7 +214,8 @@ CISOProperties::~CISOProperties()
}
else
if (!IsVolumeWadFile(OpenISO))
delete pFileSystem;
if(pFileSystem)
delete pFileSystem;
delete OpenISO;
}
@ -672,9 +675,9 @@ void CISOProperties::ExportDir(const char* _rFullPath, const char* _rExportFolde
// Extraction
for (u32 i = index[0]; i < index[1]; i++)
{
dialog.SetTitle(wxString::Format(_T("%s : %d%%"), (const char *)dialogTitle.mb_str(),
dialog.SetTitle(wxString::Format(_T("%s : %d%%"), dialogTitle.c_str(),
(u32)(((float)(i - index[0]) / (float)(index[1] - index[0])) * 100)));
if (!dialog.Update(i, wxString::Format(_T("Extracting %s"), fst[i]->m_FullPath)))
if (!dialog.Update(i, wxString::Format(_T("Extracting %s"), wxString(fst[i]->m_FullPath, *wxConvCurrent).c_str())))
break;
if (fst[i]->IsDirectory())

View File

@ -114,7 +114,7 @@ void CWiiSaveCrypted::Extract()
sprintf(dir, FULL_WII_USER_DIR "title/%08x/%08x/data/", (u32)(_saveGameTitle>>32), (u32)_saveGameTitle);
if (!PanicYesNo("Warning! it is advised to backup all files in the folder:\n%s\nDo you wish to continue?", dir))
if (!AskYesNo("Warning! it is advised to backup all files in the folder:\n%s\nDo you wish to continue?", dir))
return;
INFO_LOG(CONSOLE, "%s", dir);
@ -141,7 +141,7 @@ void CWiiSaveCrypted::Extract()
File::Copy(path, tmpPath);
//
if (!File::Exists(path) || PanicYesNo("%s already exists, overwrite?", path))
if (!File::Exists(path) || AskYesNo("%s already exists, overwrite?", path))
{
INFO_LOG(CONSOLE, "creating file %s", path);
outFileP = fopen(path, "wb");
@ -199,7 +199,7 @@ void CWiiSaveCrypted::Extract()
sprintf(tmpPath, "%s.bak", path);
File::Copy(path, tmpPath);
//
if (!File::Exists(path) || PanicYesNo("%s already exists, overwrite?", path))
if (!File::Exists(path) || AskYesNo("%s already exists, overwrite?", path))
{
INFO_LOG(CONSOLE, "creating file %s", path);