1
#ifndef PROFILE_DIRECTORY_TRAVERSER
2
#define PROFILE_DIRECTORY_TRAVERSER
5
* The wxDirTraverser that searches through the profile directory
7
class ProfileDirectoryTraverser : public wxDirTraverser
10
ProfileDirectoryTraverser(wxTreeCtrl* profileTree,
11
const wxTreeItemId& startNode,
12
const wxString& profileDirectory)
13
: mpProfileTree(profileTree),
15
mOriginalNode(startNode),
16
mProfileDirectory(profileDirectory) {}
18
virtual wxDirTraverseResult OnFile(const wxString& filename)
20
ProfileTreeData* data = new ProfileTreeData(filename);
21
// OnDir isn't called when the traverser starts
22
// going through the files in the top level directory,
23
// so we do this to keep the profiles in the right place
24
if (wxFileName(filename).GetPath() == mProfileDirectory)
25
mCurNode = mOriginalNode;
26
mpProfileTree->AppendItem(mCurNode, wxFileName(filename).GetFullName(), -1, -1, data);
27
return wxDIR_CONTINUE;
30
virtual wxDirTraverseResult OnDir(const wxString& dirname)
32
mCurNode = mpProfileTree->AppendItem(mOriginalNode, wxFileName(dirname).GetName());
33
return wxDIR_CONTINUE;
36
wxTreeCtrl* mpProfileTree;
37
wxTreeItemId mCurNode, mOriginalNode;
38
wxString mProfileDirectory;