void CBookmarksDialog::OnSelChanging(wxTreeEvent& event) { if (!Verify()) { event.Veto(); return; } UpdateBookmark(); }
void CBookmarksDialog::OnOK(wxCommandEvent&) { if (!Verify()) return; UpdateBookmark(); SaveGlobalBookmarks(); SaveSiteSpecificBookmarks(); EndModal(wxID_OK); }
void CBookmarksDialog::OnCopy(wxCommandEvent& event) { wxTreeItemId item = m_pTree->GetSelection(); if (!item.IsOk()) return; if (!Verify()) return; CBookmarkItemData* data = reinterpret_cast<CBookmarkItemData *>(m_pTree->GetItemData(item)); if (!data) return; UpdateBookmark(); wxTreeItemId parent = m_pTree->GetItemParent(item); const wxString name = m_pTree->GetItemText(item); wxString newName = wxString::Format(_("Copy of %s"), name); int index = 2; for (;;) { wxTreeItemId child; wxTreeItemIdValue cookie; child = m_pTree->GetFirstChild(parent, cookie); bool found = false; while (child.IsOk()) { wxString name = m_pTree->GetItemText(child); int cmp = name.CmpNoCase(newName); if (!cmp) { found = true; break; } child = m_pTree->GetNextChild(parent, cookie); } if (!found) break; newName = wxString::Format(_("Copy (%d) of %s"), index++, name); } CBookmarkItemData* newData = new CBookmarkItemData(*data); wxTreeItemId newItem = m_pTree->AppendItem(parent, newName, 1, 1, newData); m_pTree->SortChildren(parent); m_pTree->SelectItem(newItem); m_pTree->EditLabel(newItem); }
void CBookmarksDialog::OnNewBookmark(wxCommandEvent&) { if (!Verify()) return; UpdateBookmark(); wxTreeItemId item = m_pTree->GetSelection(); if (!item) item = m_bookmarks_global; if (m_pTree->GetItemData(item)) item = m_pTree->GetItemParent(item); if (item == m_bookmarks_site) { std::list<wxString> bookmarks; if (m_site_path.empty() || !CSiteManager::GetBookmarks(m_site_path, bookmarks)) { if (wxMessageBoxEx(_("Site-specific bookmarks require the server to be stored in the Site Manager.\nAdd current connection to the site manager?"), _("New bookmark"), wxYES_NO | wxICON_QUESTION, this) != wxYES) return; m_site_path = CSiteManager::AddServer(*m_server); if (m_site_path.empty()) { wxMessageBoxEx(_("Could not add connection to Site Manager"), _("New bookmark"), wxICON_EXCLAMATION, this); return; } } } wxString newName = _("New bookmark"); int index = 2; for (;;) { wxTreeItemId child; wxTreeItemIdValue cookie; child = m_pTree->GetFirstChild(item, cookie); bool found = false; while (child.IsOk()) { wxString name = m_pTree->GetItemText(child); int cmp = name.CmpNoCase(newName); if (!cmp) { found = true; break; } child = m_pTree->GetNextChild(item, cookie); } if (!found) break; newName = _("New bookmark") + wxString::Format(_T(" %d"), index++); } wxTreeItemId child = m_pTree->AppendItem(item, newName, 1, 1, new CBookmarkItemData); m_pTree->SortChildren(item); m_pTree->SelectItem(child); m_pTree->EditLabel(child); }