fixed bug with directory expansion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -312,18 +312,21 @@ void wxDirCtrl::OnExpandItem(wxTreeEvent &event)
|
|||||||
wxBeginBusyCursor();
|
wxBeginBusyCursor();
|
||||||
|
|
||||||
wxDirItemData *data = (wxDirItemData *)GetItemData(event.GetItem());
|
wxDirItemData *data = (wxDirItemData *)GetItemData(event.GetItem());
|
||||||
wxASSERT(data);
|
|
||||||
|
|
||||||
m_paths.Clear();
|
m_paths.Clear();
|
||||||
m_names.Clear();
|
m_names.Clear();
|
||||||
|
|
||||||
wxDir dir(data->m_path);
|
wxString path = data->m_path;
|
||||||
|
|
||||||
|
wxDir dir(path);
|
||||||
|
|
||||||
|
path += _T('/');
|
||||||
|
|
||||||
wxString filename;
|
wxString filename;
|
||||||
bool cont = dir.GetFirst(&filename, "", wxDIR_DIRS | wxDIR_HIDDEN);
|
bool cont = dir.GetFirst(&filename, "", wxDIR_DIRS | wxDIR_HIDDEN);
|
||||||
while ( cont )
|
while ( cont )
|
||||||
{
|
{
|
||||||
m_paths.Add(data->m_path);
|
m_paths.Add(path + filename);
|
||||||
m_names.Add(filename);
|
m_names.Add(filename);
|
||||||
|
|
||||||
cont = dir.GetNext(&filename);
|
cont = dir.GetNext(&filename);
|
||||||
@@ -443,7 +446,7 @@ wxDirDialog::wxDirDialog(wxWindow *parent,
|
|||||||
long cookie = 0;
|
long cookie = 0;
|
||||||
// default to root dir
|
// default to root dir
|
||||||
wxTreeItemId item = m_dir->GetFirstChild(m_dir->GetRootItem(), cookie);
|
wxTreeItemId item = m_dir->GetFirstChild(m_dir->GetRootItem(), cookie);
|
||||||
|
|
||||||
if (!m_path.IsEmpty() && (m_path != wxT("/")) && (m_dir->m_paths.Count() > 1))
|
if (!m_path.IsEmpty() && (m_path != wxT("/")) && (m_dir->m_paths.Count() > 1))
|
||||||
{
|
{
|
||||||
size_t count = m_dir->m_paths.GetCount();
|
size_t count = m_dir->m_paths.GetCount();
|
||||||
@@ -452,14 +455,14 @@ wxDirDialog::wxDirDialog(wxWindow *parent,
|
|||||||
if (m_path.Find( m_dir->m_paths[i] ) == 0)
|
if (m_path.Find( m_dir->m_paths[i] ) == 0)
|
||||||
{
|
{
|
||||||
path = m_dir->m_paths[i];
|
path = m_dir->m_paths[i];
|
||||||
|
|
||||||
for (size_t j = 0; j < i; j++)
|
for (size_t j = 0; j < i; j++)
|
||||||
item = m_dir->GetNextChild(m_dir->GetRootItem(), cookie);
|
item = m_dir->GetNextChild(m_dir->GetRootItem(), cookie);
|
||||||
|
|
||||||
wxStringTokenizer tk2(path, wxFILE_SEP_PATH, wxTOKEN_STRTOK);
|
wxStringTokenizer tk2(path, wxFILE_SEP_PATH, wxTOKEN_STRTOK);
|
||||||
for (size_t h = 0; h < tk2.CountTokens(); h++)
|
for (size_t h = 0; h < tk2.CountTokens(); h++)
|
||||||
tk.GetNextToken();
|
tk.GetNextToken();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user