]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/filedlgg.cpp
fatal bug in wxSplitPath fixed
[wxWidgets.git] / src / generic / filedlgg.cpp
index e8364dd3d40e5a3c4324d60970281f66bfb9f811..60b582dcfb475e9c4a96e89a6dca7bc1718bb74d 100644 (file)
 
 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 );