fix GetPaths() and GetFilenames() too

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-10-06 00:14:21 +00:00
parent 398eebb155
commit 7d42f4d61b

View File

@@ -1082,42 +1082,42 @@ wxFileName wxGenericFileCtrl::DoGetFileName() const
void wxGenericFileCtrl::DoGetFilenames( wxArrayString& filenames, const bool fullPath ) const
{
filenames.Empty();
filenames.clear();
const wxString dir = m_list->GetDir();
const wxString value = m_text->GetValue();
const wxString value = m_text->GetValue();
if ( !value.empty() )
{
if ( fullPath )
filenames.Add( dir + value );
else
filenames.Add( value );
wxFileName fn(value);
if ( fn.IsRelative() )
fn.MakeAbsolute(dir);
filenames.push_back(fullPath ? fn.GetFullPath() : fn.GetFullName());
return;
}
if ( m_list->GetSelectedItemCount() == 0 )
{
const int numSel = m_list->GetSelectedItemCount();
if ( !numSel )
return;
}
filenames.Alloc( m_list->GetSelectedItemCount() );
filenames.reserve(numSel);
wxListItem item;
item.m_mask = wxLIST_MASK_TEXT;
item.m_itemId = m_list->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
while ( item.m_itemId != -1 )
item.m_itemId = -1;
for ( ;; )
{
item.m_itemId = m_list->GetNextItem(item.m_itemId, wxLIST_NEXT_ALL,
wxLIST_STATE_SELECTED);
if ( item.m_itemId == -1 )
break;
m_list->GetItem(item);
if ( fullPath )
filenames.Add( dir + item.m_text );
else
filenames.Add( item.m_text );
item.m_itemId = m_list->GetNextItem( item.m_itemId,
wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED );
const wxFileName fn(dir, item.m_text);
filenames.push_back(fullPath ? fn.GetFullPath() : fn.GetFullName());
}
}