X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/68df5777c7f72890dccef9dd9160397f2a834bb4..b0230a69bcf6db9a18bbdefb0c3027c6a438ed55:/src/generic/filedlgg.cpp diff --git a/src/generic/filedlgg.cpp b/src/generic/filedlgg.cpp index e8364dd3d4..60b582dcfb 100644 --- a/src/generic/filedlgg.cpp +++ b/src/generic/filedlgg.cpp @@ -65,25 +65,24 @@ class wxFileIconEntry : public wxObject { - public: - wxFileIconEntry(int i) { id = i; } +public: + wxFileIconEntry(int i) { id = i; } - int id; + int id; }; class wxFileIconsTable { - public: - - wxFileIconsTable(); +public: + wxFileIconsTable(); - int GetIconID(const wxString& extension, const wxString& mime = wxEmptyString); - wxImageList *GetImageList() { return &m_ImageList; } + int GetIconID(const wxString& extension, const wxString& mime = wxEmptyString); + wxImageList *GetImageList() { return &m_ImageList; } - protected: - wxImageList m_ImageList; - wxHashTable m_HashTable; +protected: + wxImageList m_ImageList; + wxHashTable m_HashTable; }; static wxFileIconsTable *g_IconsTable = NULL; @@ -445,11 +444,11 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileCtrl,wxListCtrl); BEGIN_EVENT_TABLE(wxFileCtrl,wxListCtrl) EVT_LIST_DELETE_ITEM(-1, wxFileCtrl::OnListDeleteItem) + EVT_LIST_DELETE_ALL_ITEMS(-1, wxFileCtrl::OnListDeleteAllItems) EVT_LIST_END_LABEL_EDIT(-1, wxFileCtrl::OnListEndLabelEdit) END_EVENT_TABLE() - wxFileCtrl::wxFileCtrl() { m_dirName = wxT("/"); @@ -683,6 +682,23 @@ void wxFileCtrl::OnListDeleteItem( wxListEvent &event ) delete fd; } +void wxFileCtrl::OnListDeleteAllItems( wxListEvent &WXUNUSED(event) ) +{ + wxListItem item; + item.m_mask = wxLIST_MASK_DATA; + + item.m_itemId = GetNextItem( -1, wxLIST_NEXT_ALL ); + while ( item.m_itemId != -1 ) + { + GetItem( item ); + wxFileData *fd = (wxFileData*)item.m_data; + delete fd; + item.m_data = 0; + SetItem( item ); + item.m_itemId = GetNextItem( item.m_itemId, wxLIST_NEXT_ALL ); + } +} + void wxFileCtrl::OnListEndLabelEdit( wxListEvent &event ) { wxFileData *fd = (wxFileData*)event.m_item.m_data; @@ -1155,7 +1171,7 @@ void wxFileDialog::GetPaths( wxArrayString& paths ) const item.m_mask = wxLIST_MASK_TEXT; item.m_itemId = m_list->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED ); - while ( item.m_itemId != -1 ) + while ( item.m_itemId != -1 ) { m_list->GetItem( item ); paths.Add( dir + item.m_text ); @@ -1178,7 +1194,7 @@ void wxFileDialog::GetFilenames(wxArrayString& files) const item.m_mask = wxLIST_MASK_TEXT; item.m_itemId = m_list->GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED ); - while ( item.m_itemId != -1 ) + while ( item.m_itemId != -1 ) { m_list->GetItem( item ); files.Add( item.m_text );