void BrowseTrackerLayout::DumpBrowse_Marks( const wxString /*hashType*/, FileBrowse_MarksHash& /*m_FileBrowse_MarksArchive*/ ) #endif // ---------------------------------------------------------------------------- { #if defined(LOGGING) LOGIT( _T("--- DumpBrowseData ---[%s]"), hashType.c_str() ); FileBrowse_MarksHash* phash = &m_FileBrowse_MarksArchive; #if defined(LOGGING) LOGIT( _T("Dump_%s Size[%lu]"), hashType.wx_str(), static_cast<unsigned long>(phash->size()) ); #endif for (FileBrowse_MarksHash::iterator it = phash->begin(); it != phash->end(); ++it) { wxString filename = it->first; BrowseMarks* p = it->second; LOGIT( _T("Filename[%s]%s*[%p]name[%s]"), filename.c_str(), hashType.c_str(), p, p->GetFilePath().c_str() ); if (p) { //dump the browse marks p->Dump(); } } #endif }
// ---------------------------------------------------------------------------- bool BrowseTrackerLayout::Save(const wxString& filename, FileBrowse_MarksHash& m_FileBrowse_MarksArchive, FileBrowse_MarksHash& m_EdBook_MarksArchive) // ---------------------------------------------------------------------------- { ////DumpBrowse_Marks(wxT("BookMarks"), m_FileBrowse_MarksArchive, m_EdBook_MarksArchive); const char* ROOT_TAG = "BrowseTracker_layout_file"; TiXmlDocument doc; doc.SetCondenseWhiteSpace(false); doc.InsertEndChild(TiXmlDeclaration("1.0", "UTF-8", "yes")); TiXmlElement* rootnode = static_cast<TiXmlElement*>(doc.InsertEndChild(TiXmlElement(ROOT_TAG))); if (!rootnode) return false; TiXmlElement* tgtidx = static_cast<TiXmlElement*>(rootnode->InsertEndChild(TiXmlElement("ActiveTarget"))); tgtidx->SetAttribute("name", cbU2C(m_pProject->GetActiveBuildTarget())); ProjectFile* active = 0L; cbEditor* ed = Manager::Get()->GetEditorManager()->GetBuiltinActiveEditor(); if (ed) active = ed->GetProjectFile(); int count = m_pProject->GetFilesCount(); for (int i = 0; i < count; ++i) { ProjectFile* f = m_pProject->GetFile(i); if (f->editorOpen || f->editorPos || f->editorTopLine || f->editorTabPos) { TiXmlElement* node = static_cast<TiXmlElement*>(rootnode->InsertEndChild(TiXmlElement("File"))); node->SetAttribute("name", cbU2C(f->relativeFilename)); node->SetAttribute("open", f->editorOpen); node->SetAttribute("top", (f == active)); node->SetAttribute("tabpos", f->editorTabPos); TiXmlElement* cursor = static_cast<TiXmlElement*>(node->InsertEndChild(TiXmlElement("Cursor"))); cursor->SetAttribute("position", f->editorPos); cursor->SetAttribute("topLine", f->editorTopLine); EditorBase* eb = 0; // write out a string of browse mark positions #if defined(LOGGING) ////LOGIT( _T("ProjectFilename[%s]"),f->file.GetFullPath().c_str() ); #endif eb = Manager::Get()->GetEditorManager()->GetEditor(f->file.GetFullPath()); #if defined(LOGGING) ////if (eb) LOGIT( _T("EditorBase Filename[%d][%s]"), i, eb->GetFilename().c_str() ); #endif ////if(eb) if (f->file.GetFullPath() != eb->GetFilename()) ////{ //// #if defined(LOGGING) //// LOGIT( _T("NAME MISSMATCH ProjectFile[%s]EditorBase[%s]"), f->file.GetFullPath().c_str(), eb->GetFilename().c_str() ); //// #endif ////} //// #if defined(LOGGING) //// if (m_FileBrowse_MarksArchive.find(eb) != m_FileBrowse_MarksArchive.end() ) //// LOGIT( _T("Found eb[%p][%s]"), eb, eb->GetShortName().c_str() ); //// else{ //// int i = 0; //// for (EbBrowse_MarksHash::iterator it = m_FileBrowse_MarksArchive.begin(); //// it != m_FileBrowse_MarksArchive.end(); ++it) //// { //// #if defined(LOGGING) //// LOGIT( _T("m_FileBrowse_MarksArchive[i][%d][%p]"), i, it->first ); //// #endif //// ++i; //// } //// } //// #endif #if defined(LOGGING) ////LOGIT( _T("Layout processing for[%s]"),/*f->relativeFilename.c_str(),*/ f->file.GetFullPath().c_str() ); #endif // Save the BrowseMarks FileBrowse_MarksHash::iterator it = m_FileBrowse_MarksArchive.find(f->file.GetFullPath()); if (it != m_FileBrowse_MarksArchive.end() ) do { BrowseMarks* pBrowse_Marks = it->second; if (not pBrowse_Marks) break; wxString browseMarks = pBrowse_Marks->GetStringOfBrowse_Marks(); #if defined(LOGGING) ////LOGIT( _T("Layout writing BROWSEMarkString [%p]is[%s]"), pBrowse_Marks, browseMarks.c_str()); #endif TiXmlElement* btMarks = static_cast<TiXmlElement*>(node->InsertEndChild(TiXmlElement("BrowseMarks"))); btMarks->SetAttribute("positions", cbU2C(browseMarks)); }while(0); ////else{ //// #if defined(LOGGING) //// LOGIT( _T("Browse_Marks failed find for[%s]"), f->file.GetFullPath().c_str() ); //// #endif ////} // Save the Book_Marks it = m_EdBook_MarksArchive.find(f->file.GetFullPath()); if (it != m_EdBook_MarksArchive.end() ) do { BrowseMarks* pBook_Marks = it->second; if (not pBook_Marks) break; wxString bookMarks = pBook_Marks->GetStringOfBrowse_Marks(); #if defined(LOGGING) ////LOGIT( _T("Layout writing BOOKMarkString [%p]is[%s]"), pBook_Marks, bookMarks.c_str()); #endif TiXmlElement* btMarks = static_cast<TiXmlElement*>(node->InsertEndChild(TiXmlElement("Book_Marks"))); btMarks->SetAttribute("positions", cbU2C(bookMarks)); }while(0); ////else{ //// #if defined(LOGGING) //// LOGIT( _T("Book_Marks failed find for[%s]"), f->file.GetFullPath().c_str() ); //// #endif ////} } }//for const wxArrayString& en = m_pProject->ExpandedNodes(); for (unsigned int i = 0; i < en.GetCount(); ++i) { if (!en[i].IsEmpty()) { TiXmlElement* node = static_cast<TiXmlElement*>(rootnode->InsertEndChild(TiXmlElement("Expand"))); node->SetAttribute("folder", cbU2C(en[i])); } } return cbSaveTinyXMLDocument(&doc, filename); }
// ---------------------------------------------------------------------------- bool BrowseTrackerLayout::Save(const wxString& filename, FileBrowse_MarksHash& m_FileBrowse_MarksArchive) // ---------------------------------------------------------------------------- { //DumpBrowse_Marks(wxT("BookMarks"), m_FileBrowse_MarksArchive, m_EdBook_MarksArchive); const char* ROOT_TAG = "BrowseTracker_layout_file"; TiXmlDocument doc; doc.SetCondenseWhiteSpace(false); doc.InsertEndChild(TiXmlDeclaration("1.0", "UTF-8", "yes")); TiXmlElement* rootnode = static_cast<TiXmlElement*>(doc.InsertEndChild(TiXmlElement(ROOT_TAG))); if (!rootnode) return false; TiXmlElement* tgtidx = static_cast<TiXmlElement*>(rootnode->InsertEndChild(TiXmlElement("ActiveTarget"))); tgtidx->SetAttribute("name", cbU2C(m_pProject->GetActiveBuildTarget())); ProjectFile* active = 0L; cbEditor* ed = Manager::Get()->GetEditorManager()->GetBuiltinActiveEditor(); if (ed) active = ed->GetProjectFile(); for (FilesList::iterator it = m_pProject->GetFilesList().begin(); it != m_pProject->GetFilesList().end(); ++it) { ProjectFile* f = *it; if (f->editorOpen || f->editorPos || f->editorTopLine || f->editorTabPos) { TiXmlElement* node = static_cast<TiXmlElement*>(rootnode->InsertEndChild(TiXmlElement("File"))); node->SetAttribute("name", cbU2C(f->relativeFilename)); node->SetAttribute("open", f->editorOpen); node->SetAttribute("top", (f == active)); node->SetAttribute("tabpos", f->editorTabPos); TiXmlElement* cursor = static_cast<TiXmlElement*>(node->InsertEndChild(TiXmlElement("Cursor"))); cursor->SetAttribute("position", f->editorPos); cursor->SetAttribute("topLine", f->editorTopLine); // Save the BrowseMarks FileBrowse_MarksHash::iterator it2 = m_FileBrowse_MarksArchive.find(f->file.GetFullPath()); if (it2 != m_FileBrowse_MarksArchive.end() ) do { const BrowseMarks* pBrowse_Marks = it2->second; if (not pBrowse_Marks) break; wxString browseMarks = pBrowse_Marks->GetStringOfBrowse_Marks(); #if defined(LOGGING) //LOGIT( _T("Layout writing BROWSEMarkString [%p]is[%s]"), pBrowse_Marks, browseMarks.c_str()); #endif TiXmlElement* btMarks = static_cast<TiXmlElement*>(node->InsertEndChild(TiXmlElement("BrowseMarks"))); btMarks->SetAttribute("positions", cbU2C(browseMarks)); }while(0); } }//for const wxArrayString& en = m_pProject->ExpandedNodes(); for (unsigned int i = 0; i < en.GetCount(); ++i) { if (!en[i].IsEmpty()) { TiXmlElement* node = static_cast<TiXmlElement*>(rootnode->InsertEndChild(TiXmlElement("Expand"))); node->SetAttribute("folder", cbU2C(en[i])); } } return cbSaveTinyXMLDocument(&doc, filename); }