Now sorts the files case-insensitively

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10101 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 2001-05-10 10:26:01 +00:00
parent 2b15fdfcf3
commit 57e26a09f1

View File

@ -360,6 +360,16 @@ static bool wxIsDriveAvailable(const wxString dirName)
}
#endif
// Function which is called by quick sort. We want to override the default wxArrayString behaviour,
// and sort regardless of case.
static int LINKAGEMODE wxDirCtrlStringCompareFunction(const void *first, const void *second)
{
wxString *strFirst = (wxString *)first;
wxString *strSecond = (wxString *)second;
return strFirst->CmpNoCase(*strSecond);
}
//-----------------------------------------------------------------------------
// wxDirItemDataEx
//-----------------------------------------------------------------------------
@ -743,7 +753,7 @@ void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId)
while (d.GetNext(& eachFilename)) ;
}
}
dirs.Sort();
dirs.Sort((wxArrayString::CompareFunction) wxDirCtrlStringCompareFunction);
// Now do the filenames -- but only if we're allowed to
if ((GetWindowStyle() & wxDIRCTRL_DIR_ONLY) == 0)
@ -766,7 +776,7 @@ void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId)
while (d.GetNext(& eachFilename)) ;
}
}
filenames.Sort();
filenames.Sort((wxArrayString::CompareFunction) wxDirCtrlStringCompareFunction);
}
// Add the sorted dirs