X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/18759f7850414f46b15a8ed989951e3bc346f830..ff793cab3adf44df1059c771191222dde657913f:/src/common/docview.cpp?ds=sidebyside diff --git a/src/common/docview.cpp b/src/common/docview.cpp index e0720053f1..e43e8f25d6 100644 --- a/src/common/docview.cpp +++ b/src/common/docview.cpp @@ -183,18 +183,20 @@ bool wxDocument::OnCloseDocument() bool wxDocument::DeleteAllViews() { wxDocManager* manager = GetDocumentManager(); + wxList::iterator it, en; - wxNode *node = m_documentViews.GetFirst(); - while (node) + for ( it = m_documentViews.begin(), en = m_documentViews.end(); + it != en; + ) { - wxView *view = (wxView *)node->GetData(); + wxView *view = (wxView *)*it; if (!view->Close()) return FALSE; - wxNode *next = node->GetNext(); + wxList::iterator next = it; ++next; delete view; // Deletes node implicitly - node = next; + it = next; } // If we haven't yet deleted the document (for example // if there were no views) then delete it. @@ -276,7 +278,7 @@ bool wxDocument::SaveAs() SetTitle(wxFileNameFromPath(fileName)); // Notify the views that the filename has changed - wxNode *node = m_documentViews.GetFirst(); + wxList::compatibility_iterator node = m_documentViews.GetFirst(); while (node) { wxView *view = (wxView *)node->GetData(); @@ -525,7 +527,7 @@ void wxDocument::OnChangedViewList() void wxDocument::UpdateAllViews(wxView *sender, wxObject *hint) { - wxNode *node = m_documentViews.GetFirst(); + wxList::compatibility_iterator node = m_documentViews.GetFirst(); while (node) { wxView *view = (wxView *)node->GetData(); @@ -537,7 +539,7 @@ void wxDocument::UpdateAllViews(wxView *sender, wxObject *hint) void wxDocument::NotifyClosing() { - wxNode *node = m_documentViews.GetFirst(); + wxList::compatibility_iterator node = m_documentViews.GetFirst(); while (node) { wxView *view = (wxView *)node->GetData(); @@ -552,7 +554,7 @@ void wxDocument::SetFilename(const wxString& filename, bool notifyViews) if ( notifyViews ) { // Notify the views that the filename has changed - wxNode *node = m_documentViews.GetFirst(); + wxList::compatibility_iterator node = m_documentViews.GetFirst(); while (node) { wxView *view = (wxView *)node->GetData(); @@ -806,12 +808,12 @@ bool wxDocManager::CloseDocument(wxDocument* doc, bool force) bool wxDocManager::CloseDocuments(bool force) { - wxNode *node = m_docs.GetFirst(); + wxList::compatibility_iterator node = m_docs.GetFirst(); while (node) { wxDocument *doc = (wxDocument *)node->GetData(); - wxNode *next = node->GetNext(); - + wxList::compatibility_iterator next = node->GetNext(); + if (!CloseDocument(doc, force)) return FALSE; @@ -828,11 +830,11 @@ bool wxDocManager::Clear(bool force) if (!CloseDocuments(force)) return FALSE; - wxNode *node = m_templates.GetFirst(); + wxList::compatibility_iterator node = m_templates.GetFirst(); while (node) { wxDocTemplate *templ = (wxDocTemplate*) node->GetData(); - wxNode* next = node->GetNext(); + wxList::compatibility_iterator next = node->GetNext(); delete templ; node = next; } @@ -1530,7 +1532,7 @@ wxDocTemplate *wxDocManager::SelectDocumentPath(wxDocTemplate **templates, wxDocTemplate *wxDocManager::SelectDocumentType(wxDocTemplate **templates, int noTemplates, bool sort) { - wxArrayString strings(sort); + wxArrayString strings; wxDocTemplate **data = new wxDocTemplate *[noTemplates]; int i; int n = 0; @@ -1562,6 +1564,7 @@ wxDocTemplate *wxDocManager::SelectDocumentType(wxDocTemplate **templates, if (sort) { + strings.Sort(wxStringSortAscending); // Yes, this will be slow, but template lists // are typically short. int j; @@ -1610,7 +1613,7 @@ wxDocTemplate *wxDocManager::SelectDocumentType(wxDocTemplate **templates, wxDocTemplate *wxDocManager::SelectViewType(wxDocTemplate **templates, int noTemplates, bool sort) { - wxArrayString strings(sort); + wxArrayString strings; wxDocTemplate **data = new wxDocTemplate *[noTemplates]; int i; int n = 0; @@ -1640,6 +1643,7 @@ wxDocTemplate *wxDocManager::SelectViewType(wxDocTemplate **templates, if (sort) { + strings.Sort(wxStringSortAscending); // Yes, this will be slow, but template lists // are typically short. int j; @@ -2022,7 +2026,7 @@ void wxFileHistory::AddFileToHistory(const wxString& file) // Move existing files (if any) down so we can insert file at beginning. if (m_fileHistoryN < m_fileMaxFiles) { - wxNode* node = m_fileMenus.GetFirst(); + wxList::compatibility_iterator node = m_fileMenus.GetFirst(); while (node) { wxMenu* menu = (wxMenu*) node->GetData(); @@ -2067,7 +2071,7 @@ void wxFileHistory::AddFileToHistory(const wxString& file) wxString buf; buf.Printf(s_MRUEntryFormat, i + 1, pathInMenu.c_str()); - wxNode* node = m_fileMenus.GetFirst(); + wxList::compatibility_iterator node = m_fileMenus.GetFirst(); while (node) { wxMenu* menu = (wxMenu*) node->GetData(); @@ -2092,7 +2096,7 @@ void wxFileHistory::RemoveFileFromHistory(size_t i) m_fileHistory[j] = m_fileHistory[j + 1]; } - wxNode* node = m_fileMenus.GetFirst(); + wxList::compatibility_iterator node = m_fileMenus.GetFirst(); while ( node ) { wxMenu* menu = (wxMenu*) node->GetData(); @@ -2117,7 +2121,7 @@ void wxFileHistory::RemoveFileFromHistory(size_t i) // delete the last separator too if no more files are left if ( m_fileHistoryN == 1 ) { - wxMenuItemList::Node *node = menu->GetMenuItems().GetLast(); + wxMenuItemList::compatibility_iterator node = menu->GetMenuItems().GetLast(); if ( node ) { wxMenuItem *menuItem = node->GetData(); @@ -2196,7 +2200,7 @@ void wxFileHistory::AddFilesToMenu() { if (m_fileHistoryN > 0) { - wxNode* node = m_fileMenus.GetFirst(); + wxList::compatibility_iterator node = m_fileMenus.GetFirst(); while (node) { wxMenu* menu = (wxMenu*) node->GetData();