use drives paths, not names, in the dialog to avoid confusing HandleAction() with the drive names which it fails to interpret properly
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -542,11 +542,23 @@ void wxFileListCtrl::UpdateFiles()
|
|||||||
{
|
{
|
||||||
wxArrayString names, paths;
|
wxArrayString names, paths;
|
||||||
wxArrayInt icons;
|
wxArrayInt icons;
|
||||||
size_t n, count = wxGetAvailableDrives(paths, names, icons);
|
const size_t count = wxGetAvailableDrives(paths, names, icons);
|
||||||
|
|
||||||
for (n=0; n<count; n++)
|
for ( size_t n = 0; n < count; n++ )
|
||||||
{
|
{
|
||||||
wxFileData *fd = new wxFileData(paths[n], names[n], wxFileData::is_drive, icons[n]);
|
// use paths[n] as the drive name too as our HandleAction() can't
|
||||||
|
// deal with the drive names (of the form "System (C:)") currently
|
||||||
|
// as it mistakenly treats them as file names
|
||||||
|
//
|
||||||
|
// it would be preferable to show names, and not paths, in the
|
||||||
|
// dialog just as the native dialog does but for this we must:
|
||||||
|
// a) store the item type as item data and modify HandleAction()
|
||||||
|
// to use it instead of wxDirExists() to check whether the item
|
||||||
|
// is a directory
|
||||||
|
// b) store the drives by their drive letters and not their
|
||||||
|
// descriptions as otherwise it's pretty confusing to the user
|
||||||
|
wxFileData *fd = new wxFileData(paths[n], paths[n],
|
||||||
|
wxFileData::is_drive, icons[n]);
|
||||||
if (Add(fd, item) != -1)
|
if (Add(fd, item) != -1)
|
||||||
item.m_itemId++;
|
item.m_itemId++;
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user