mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-15 21:40:45 +00:00
Add option to search subfolders for iso directories
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2867 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
472e67333f
commit
b19309fdb3
@ -62,6 +62,8 @@ void SConfig::SaveSettings()
|
|||||||
sprintf(tmp, "GCMPath%i", (int)i);
|
sprintf(tmp, "GCMPath%i", (int)i);
|
||||||
ini.Set("General", tmp, m_ISOFolder[i]);
|
ini.Set("General", tmp, m_ISOFolder[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ini.Set("General", "RecersiveGCMPaths", m_RecersiveISOFolder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -165,6 +167,8 @@ void SConfig::LoadSettings()
|
|||||||
m_ISOFolder.push_back(tmpPath);
|
m_ISOFolder.push_back(tmpPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ini.Get("General", "RecersiveGCMPaths", &m_RecersiveISOFolder, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -51,6 +51,7 @@ struct SConfig
|
|||||||
|
|
||||||
// gcm folder
|
// gcm folder
|
||||||
std::vector<std::string>m_ISOFolder;
|
std::vector<std::string>m_ISOFolder;
|
||||||
|
bool m_RecersiveISOFolder;
|
||||||
|
|
||||||
SCoreStartupParameter m_LocalCoreStartupParameter;
|
SCoreStartupParameter m_LocalCoreStartupParameter;
|
||||||
|
|
||||||
|
@ -75,6 +75,7 @@ EVT_CHOICE(ID_WII_IPL_LNG, CConfigMain::WiiSettingsChanged)
|
|||||||
EVT_LISTBOX(ID_ISOPATHS, CConfigMain::ISOPathsSelectionChanged)
|
EVT_LISTBOX(ID_ISOPATHS, CConfigMain::ISOPathsSelectionChanged)
|
||||||
EVT_BUTTON(ID_ADDISOPATH, CConfigMain::AddRemoveISOPaths)
|
EVT_BUTTON(ID_ADDISOPATH, CConfigMain::AddRemoveISOPaths)
|
||||||
EVT_BUTTON(ID_REMOVEISOPATH, CConfigMain::AddRemoveISOPaths)
|
EVT_BUTTON(ID_REMOVEISOPATH, CConfigMain::AddRemoveISOPaths)
|
||||||
|
EVT_CHECKBOX(ID_RECERSIVEISOPATH, CConfigMain::RecursiveDirectoryChanged)
|
||||||
EVT_FILEPICKER_CHANGED(ID_DEFAULTISO, CConfigMain::DefaultISOChanged)
|
EVT_FILEPICKER_CHANGED(ID_DEFAULTISO, CConfigMain::DefaultISOChanged)
|
||||||
EVT_DIRPICKER_CHANGED(ID_DVDROOT, CConfigMain::DVDRootChanged)
|
EVT_DIRPICKER_CHANGED(ID_DVDROOT, CConfigMain::DVDRootChanged)
|
||||||
|
|
||||||
@ -441,7 +442,8 @@ void CConfigMain::CreateGUIControls()
|
|||||||
AddISOPath = new wxButton(PathsPage, ID_ADDISOPATH, wxT("Add..."), wxDefaultPosition, wxDefaultSize, 0);
|
AddISOPath = new wxButton(PathsPage, ID_ADDISOPATH, wxT("Add..."), wxDefaultPosition, wxDefaultSize, 0);
|
||||||
RemoveISOPath = new wxButton(PathsPage, ID_REMOVEISOPATH, wxT("Remove"), wxDefaultPosition, wxDefaultSize, 0);
|
RemoveISOPath = new wxButton(PathsPage, ID_REMOVEISOPATH, wxT("Remove"), wxDefaultPosition, wxDefaultSize, 0);
|
||||||
RemoveISOPath->Enable(false);
|
RemoveISOPath->Enable(false);
|
||||||
|
RecersiveISOPath = new wxCheckBox(PathsPage, ID_RECERSIVEISOPATH, wxT("Search Subfolders"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
RecersiveISOPath->SetValue(SConfig::GetInstance().m_RecersiveISOFolder);
|
||||||
DefaultISOText = new wxStaticText(PathsPage, ID_DEFAULTISO_TEXT, wxT("Default ISO:"), wxDefaultPosition, wxDefaultSize);
|
DefaultISOText = new wxStaticText(PathsPage, ID_DEFAULTISO_TEXT, wxT("Default ISO:"), wxDefaultPosition, wxDefaultSize);
|
||||||
DefaultISO = new wxFilePickerCtrl(PathsPage, ID_DEFAULTISO, wxEmptyString, wxT("Choose a default ISO:"),
|
DefaultISO = new wxFilePickerCtrl(PathsPage, ID_DEFAULTISO, wxEmptyString, wxT("Choose a default ISO:"),
|
||||||
wxString::Format(wxT("All GC/Wii images (gcm, iso, gcz)|*.gcm;*.iso;*.gcz|All files (%s)|%s"), wxFileSelectorDefaultWildcardStr, wxFileSelectorDefaultWildcardStr),
|
wxString::Format(wxT("All GC/Wii images (gcm, iso, gcz)|*.gcm;*.iso;*.gcz|All files (%s)|%s"), wxFileSelectorDefaultWildcardStr, wxFileSelectorDefaultWildcardStr),
|
||||||
@ -457,6 +459,7 @@ void CConfigMain::CreateGUIControls()
|
|||||||
sbISOPaths->Add(ISOPaths, 1, wxEXPAND|wxALL, 0);
|
sbISOPaths->Add(ISOPaths, 1, wxEXPAND|wxALL, 0);
|
||||||
|
|
||||||
sISOButtons = new wxBoxSizer(wxHORIZONTAL);
|
sISOButtons = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
sISOButtons->Add(RecersiveISOPath, 0, wxALL, 0);
|
||||||
sISOButtons->AddStretchSpacer(1);
|
sISOButtons->AddStretchSpacer(1);
|
||||||
sISOButtons->Add(AddISOPath, 0, wxALL, 0);
|
sISOButtons->Add(AddISOPath, 0, wxALL, 0);
|
||||||
sISOButtons->Add(RemoveISOPath, 0, wxALL, 0);
|
sISOButtons->Add(RemoveISOPath, 0, wxALL, 0);
|
||||||
@ -838,6 +841,12 @@ void CConfigMain::AddRemoveISOPaths(wxCommandEvent& event)
|
|||||||
SConfig::GetInstance().m_ISOFolder.push_back(std::string(ISOPaths->GetStrings()[i].ToAscii()));
|
SConfig::GetInstance().m_ISOFolder.push_back(std::string(ISOPaths->GetStrings()[i].ToAscii()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CConfigMain::RecursiveDirectoryChanged(wxCommandEvent& WXUNUSED (event))
|
||||||
|
{
|
||||||
|
SConfig::GetInstance().m_RecersiveISOFolder = RecersiveISOPath->IsChecked();
|
||||||
|
bRefreshList = true;
|
||||||
|
}
|
||||||
|
|
||||||
void CConfigMain::DefaultISOChanged(wxFileDirPickerEvent& WXUNUSED (event))
|
void CConfigMain::DefaultISOChanged(wxFileDirPickerEvent& WXUNUSED (event))
|
||||||
{
|
{
|
||||||
SConfig::GetInstance().m_LocalCoreStartupParameter.m_strDefaultGCM = DefaultISO->GetPath().ToAscii();
|
SConfig::GetInstance().m_LocalCoreStartupParameter.m_strDefaultGCM = DefaultISO->GetPath().ToAscii();
|
||||||
|
@ -182,6 +182,7 @@ class CConfigMain
|
|||||||
wxListBox* ISOPaths;
|
wxListBox* ISOPaths;
|
||||||
wxButton* AddISOPath;
|
wxButton* AddISOPath;
|
||||||
wxButton* RemoveISOPath;
|
wxButton* RemoveISOPath;
|
||||||
|
wxCheckBox* RecersiveISOPath;
|
||||||
wxStaticText* DefaultISOText;
|
wxStaticText* DefaultISOText;
|
||||||
wxFilePickerCtrl* DefaultISO;
|
wxFilePickerCtrl* DefaultISO;
|
||||||
wxStaticText* DVDRootText;
|
wxStaticText* DVDRootText;
|
||||||
@ -253,6 +254,7 @@ class CConfigMain
|
|||||||
ID_ISOPATHS,
|
ID_ISOPATHS,
|
||||||
ID_ADDISOPATH,
|
ID_ADDISOPATH,
|
||||||
ID_REMOVEISOPATH,
|
ID_REMOVEISOPATH,
|
||||||
|
ID_RECERSIVEISOPATH,
|
||||||
ID_DEFAULTISO_TEXT,
|
ID_DEFAULTISO_TEXT,
|
||||||
ID_DEFAULTISO,
|
ID_DEFAULTISO,
|
||||||
ID_DVDROOT_TEXT,
|
ID_DVDROOT_TEXT,
|
||||||
@ -286,6 +288,7 @@ class CConfigMain
|
|||||||
void ChooseEXIDevice(std::string deviceName, int deviceNum);
|
void ChooseEXIDevice(std::string deviceName, int deviceNum);
|
||||||
void WiiSettingsChanged(wxCommandEvent& event);
|
void WiiSettingsChanged(wxCommandEvent& event);
|
||||||
void ISOPathsSelectionChanged(wxCommandEvent& event);
|
void ISOPathsSelectionChanged(wxCommandEvent& event);
|
||||||
|
void RecursiveDirectoryChanged(wxCommandEvent& event);
|
||||||
void AddRemoveISOPaths(wxCommandEvent& event);
|
void AddRemoveISOPaths(wxCommandEvent& event);
|
||||||
void DefaultISOChanged(wxFileDirPickerEvent& event);
|
void DefaultISOChanged(wxFileDirPickerEvent& event);
|
||||||
void DVDRootChanged(wxFileDirPickerEvent& event);
|
void DVDRootChanged(wxFileDirPickerEvent& event);
|
||||||
|
@ -375,6 +375,20 @@ void CGameListCtrl::ScanForISOs()
|
|||||||
m_ISOFiles.clear();
|
m_ISOFiles.clear();
|
||||||
CFileSearch::XStringVector Directories(SConfig::GetInstance().m_ISOFolder);
|
CFileSearch::XStringVector Directories(SConfig::GetInstance().m_ISOFolder);
|
||||||
|
|
||||||
|
if (SConfig::GetInstance().m_RecersiveISOFolder)
|
||||||
|
{
|
||||||
|
for (u32 i = 0; i < Directories.size(); i++)
|
||||||
|
{
|
||||||
|
File::FSTEntry FST_Temp;
|
||||||
|
File::ScanDirectoryTree(Directories.at(i).c_str(), FST_Temp);
|
||||||
|
for (u32 j = 0; j < FST_Temp.children.size(); j++)
|
||||||
|
{
|
||||||
|
if (FST_Temp.children.at(j).isDirectory)
|
||||||
|
Directories.push_back(FST_Temp.children.at(j).physicalName.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
CFileSearch::XStringVector Extensions;
|
CFileSearch::XStringVector Extensions;
|
||||||
Extensions.push_back("*.iso");
|
Extensions.push_back("*.iso");
|
||||||
Extensions.push_back("*.gcm");
|
Extensions.push_back("*.gcm");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user