diff --git a/OOXML/Binary/Sheets/Reader/BinaryWriter.cpp b/OOXML/Binary/Sheets/Reader/BinaryWriter.cpp index 3640015bed..ba79f56c67 100644 --- a/OOXML/Binary/Sheets/Reader/BinaryWriter.cpp +++ b/OOXML/Binary/Sheets/Reader/BinaryWriter.cpp @@ -5198,7 +5198,7 @@ void BinaryWorksheetTableWriter::WriteOleObjects(const OOX::Spreadsheet::CWorksh std::wstring sShapeId = L"_x0000_s" + std::to_wstring(pOleObject->m_oShapeId->GetValue()); if (pVmlDrawing) { - boost::unordered_map::iterator pFind = pVmlDrawing->m_mapShapes.find(sShapeId); + std::map::iterator pFind = pVmlDrawing->m_mapShapes.find(sShapeId); if (pFind != pVmlDrawing->m_mapShapes.end()) { @@ -5391,7 +5391,7 @@ void BinaryWorksheetTableWriter::WriteControls(const OOX::Spreadsheet::CWorkshee std::wstring sShapeId = L"_x0000_s" + std::to_wstring(pControl->m_oShapeId->GetValue()); OOX::Vml::CShape* pShape = NULL; - boost::unordered_map::iterator pFind; + std::map::iterator pFind; if (pVmlDrawing) { @@ -5783,7 +5783,7 @@ void BinaryWorksheetTableWriter::WriteDrawings(const OOX::Spreadsheet::CWorkshee if (NULL != pVmlDrawing) { - boost::unordered_map::iterator it = pVmlDrawing->m_mapShapes.begin(); + std::map::iterator it = pVmlDrawing->m_mapShapes.begin(); for (; it != pVmlDrawing->m_mapShapes.end(); it++) { @@ -5886,7 +5886,7 @@ void BinaryWorksheetTableWriter::WriteDrawing(const OOX::Spreadsheet::CWorksheet if (pCellAnchor->m_sVmlSpId.IsInit() && pVmlDrawing) { - boost::unordered_map::iterator pFind = pVmlDrawing->m_mapShapes.find(pCellAnchor->m_sVmlSpId.get2()); + std::map::iterator pFind = pVmlDrawing->m_mapShapes.find(pCellAnchor->m_sVmlSpId.get2()); if (pFind != pVmlDrawing->m_mapShapes.end() && !pFind->second.bUsed) { @@ -6070,7 +6070,7 @@ void BinaryWorksheetTableWriter::WriteLegacyDrawingHFDrawings(OOX::CVmlDrawing* { m_pOfficeDrawingConverter->AddShapeType(pVmlDrawing->m_arrShapeTypes[i].sXml); } - boost::unordered_map::iterator it = pVmlDrawing->m_mapShapes.begin(); + std::map::iterator it = pVmlDrawing->m_mapShapes.begin(); for (; it != pVmlDrawing->m_mapShapes.end(); it++) { int nCurPos = m_oBcw.WriteItemStart(c_oSer_LegacyDrawingHF::Drawing); diff --git a/OOXML/DocxFormat/IFileContainer.cpp b/OOXML/DocxFormat/IFileContainer.cpp index 7e90c57dc6..342c58e712 100644 --- a/OOXML/DocxFormat/IFileContainer.cpp +++ b/OOXML/DocxFormat/IFileContainer.cpp @@ -128,7 +128,7 @@ namespace OOX { const OOX::File* pFileOwner = dynamic_cast(this); - for (boost::unordered_map>::const_iterator pPair = m_mapContainer.begin(); pPair != m_mapContainer.end(); ++pPair) + for (std::map>::const_iterator pPair = m_mapContainer.begin(); pPair != m_mapContainer.end(); ++pPair) { smart_ptr pFile = pPair->second; @@ -232,7 +232,7 @@ namespace OOX { std::map mNamepair; - for (boost::unordered_map>::const_iterator pPair = m_mapContainer.begin(); pPair != m_mapContainer.end(); ++pPair) + for (std::map>::const_iterator pPair = m_mapContainer.begin(); pPair != m_mapContainer.end(); ++pPair) { smart_ptr pFile = pPair->second; @@ -283,7 +283,7 @@ namespace OOX const bool IFileContainer::IsExist(const RId& rId) const { - boost::unordered_map>::const_iterator pFind = m_mapContainer.find(rId.get()); + std::map>::const_iterator pFind = m_mapContainer.find(rId.get()); return (pFind != m_mapContainer.end()); } @@ -306,7 +306,7 @@ namespace OOX } const bool IFileContainer::IsExternal(const OOX::RId& rId) const { - boost::unordered_map>::const_iterator pFind = m_mapContainer.find(rId.get()); + std::map>::const_iterator pFind = m_mapContainer.find(rId.get()); if (pFind != m_mapContainer.end()) { @@ -416,7 +416,7 @@ namespace OOX smart_ptr IFileContainer::Find(const OOX::RId& rId) const { - boost::unordered_map>::const_iterator pPair = m_mapContainer.find(rId.get()); + std::map>::const_iterator pPair = m_mapContainer.find(rId.get()); if ( pPair != m_mapContainer.end()) return pPair->second; @@ -426,7 +426,7 @@ namespace OOX smart_ptr IFileContainer::Find(const FileType& oType) const { - for (boost::unordered_map>::const_iterator pPair = m_mapContainer.begin(); pPair != m_mapContainer.end(); ++pPair) + for (std::map>::const_iterator pPair = m_mapContainer.begin(); pPair != m_mapContainer.end(); ++pPair) { if (pPair->second->type() == oType) return pPair->second; @@ -441,7 +441,7 @@ namespace OOX } smart_ptr IFileContainer::operator [](const OOX::RId rId) { - boost::unordered_map>::const_iterator pFind = m_mapContainer.find(rId.get()); + std::map>::const_iterator pFind = m_mapContainer.find(rId.get()); if ( pFind != m_mapContainer.end()) return pFind->second; diff --git a/OOXML/DocxFormat/IFileContainer.h b/OOXML/DocxFormat/IFileContainer.h index cdb8bfcaa4..6d92a3df2b 100644 --- a/OOXML/DocxFormat/IFileContainer.h +++ b/OOXML/DocxFormat/IFileContainer.h @@ -63,7 +63,7 @@ namespace OOX template smart_ptr Get (const RId& rId) const { - boost::unordered_map>::const_iterator pFind = m_mapContainer.find(rId.get()); + std::map>::const_iterator pFind = m_mapContainer.find(rId.get()); if (pFind == m_mapContainer.end ()) return smart_ptr(); return pFind->second.smart_dynamic_cast(); @@ -98,12 +98,12 @@ namespace OOX const RId GetMaxRId(); protected: - static UnknowTypeFile m_oUnknown; - std::vector> m_arContainer; - boost::unordered_map> m_mapContainer; + static UnknowTypeFile m_oUnknown; + std::vector> m_arContainer; + std::map> m_mapContainer; - boost::unordered_map m_mNoWriteContainer; - unsigned int m_lMaxRid; + boost::unordered_map m_mNoWriteContainer; + unsigned int m_lMaxRid; void Read (const OOX::CRels& oRels, const OOX::CPath& oRootPath, const CPath& oPath); void Write (const OOX::CPath& oFileName, const CPath& oDir, OOX::CContentTypes& oContent) const; diff --git a/OOXML/DocxFormat/VmlDrawing.cpp b/OOXML/DocxFormat/VmlDrawing.cpp index b764439b03..85bf3a1c8e 100644 --- a/OOXML/DocxFormat/VmlDrawing.cpp +++ b/OOXML/DocxFormat/VmlDrawing.cpp @@ -58,7 +58,7 @@ namespace OOX return; std::wstring sName1 = XmlUtils::GetNameNoNS(oReader.GetName()); - if ( _T("xml") == sName1 ) + if ( L"xml" == sName1 ) { ReadAttributes( oReader ); @@ -96,7 +96,7 @@ namespace OOX switch ( wChar2 ) { case 'a': - if ( _T("v:arc") == sName ) + if ( L"v:arc" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::CArc, oSubReader) bReadyElement = true; @@ -104,66 +104,66 @@ namespace OOX } break; case 'c': - if ( _T("v:curve") == sName ) + if ( L"v:curve" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::CCurve, oSubReader) bReadyElement = true; } break; case 'g': - if ( _T("v:group") == sName ) + if ( L"v:group" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::CGroup, oSubReader) bReadyElement = true; } break; case 'i': - if ( _T("v:image") == sName ) + if ( L"v:image" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::CImage, oSubReader) bReadyElement = true; } break; case 'l': - if ( _T("v:line") == sName ) + if ( L"v:line" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::CLine, oSubReader) bReadyElement = true; } break; case 'o': - if ( _T("v:oval") == sName ) + if ( L"v:oval" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::COval, oSubReader) bReadyElement = true; } break; case 'p': - if ( _T("v:polyline") == sName ) + if ( L"v:polyline" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::CPolyLine, oSubReader) bReadyElement = true; } break; case 'r': - if ( _T("v:rect") == sName ) + if ( L"v:rect" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::CRect, oSubReader) bReadyElement = true; } - else if ( _T("v:roundrect") == sName ) + else if ( L"v:roundrect" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::CRoundRect, oSubReader) bReadyElement = true; } break; case 's': - if ( _T("v:shape") == sName ) + if ( L"v:shape" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::CShape, oSubReader) bReadyElement = true; } - else if ( _T("v:shapetype") == sName ) + else if ( L"v:shapetype" == sName ) { AssignPtrXmlContent(pItem, OOX::Vml::CShapeType, oSubReader) } @@ -204,10 +204,10 @@ namespace OOX { _vml_shape element; - element.nId = (int)m_arrItems.size()-1; - element.sXml = elementContent; - element.pElement = pItem; - element.bUsed = bComment; + element.nId = (int)m_arrItems.size()-1; + element.sXml = elementContent; + element.pElement = pItem; + element.bComment = bComment; m_mapShapes.insert(std::make_pair(sSpid, element)); } @@ -257,21 +257,21 @@ namespace OOX { // элементы вида
без
// test_vml4.xlsx - XmlUtils::replace_all(m_sFileContent, _T("
"), _T("")); + XmlUtils::replace_all(m_sFileContent, L"
", L""); // элементы вида , // Zigmunds.pptx while(true) { - int res1 = (int)m_sFileContent.find(_T(""), res1); + size_t res2 = m_sFileContent.find(L">", res1); - if (res1 >=0 && res2>=0) + if (res1 != std::wstring::npos && res2 != std::wstring::npos) { - m_sFileContent = m_sFileContent.erase(res1 ,res2 - res1 + 1); + m_sFileContent = m_sFileContent.erase(res1, res2 - res1 + 1); } } read(m_sFileContent); @@ -419,7 +419,7 @@ xmlns:x=\"urn:schemas-microsoft-com:office:excel\">"); { smart_ptr oElement; - boost::unordered_map::iterator pFind = m_mapShapes.find(spid); + std::map::iterator pFind = m_mapShapes.find(spid); if (pFind != m_mapShapes.end()) { diff --git a/OOXML/DocxFormat/VmlDrawing.h b/OOXML/DocxFormat/VmlDrawing.h index 171c036428..1c4021fa2d 100644 --- a/OOXML/DocxFormat/VmlDrawing.h +++ b/OOXML/DocxFormat/VmlDrawing.h @@ -47,12 +47,13 @@ namespace OOX public: struct _vml_shape { - _vml_shape() : bUsed(false), pElement(NULL), nId(0) {} + _vml_shape() : bUsed(false), pElement(NULL), nId(0), bComment(false) {} int nId; // for comments std::wstring sXml; // for pptx OOX::WritingElement* pElement; // for docx/xlsx bool bUsed; // for single drawing + bool bComment; }; CVmlDrawing(OOX::Document* pMain, bool bDocument = true) : OOX::FileGlobalEnumerated(pMain), OOX::IFileContainer(pMain) { @@ -115,16 +116,16 @@ namespace OOX public: //reading - CPath m_oReadPath; - boost::unordered_map m_mapShapes; - std::vector<_vml_shape> m_arrShapeTypes; + CPath m_oReadPath; + std::map m_mapShapes; + std::vector<_vml_shape> m_arrShapeTypes; - std::wstring m_sFileContent; + std::wstring m_sFileContent; //writing - std::map* m_mapComments; - std::vector m_arObjectXml; - std::vector m_arControlXml; + std::map* m_mapComments; + std::vector m_arObjectXml; + std::vector m_arControlXml; - long m_lObjectIdVML; + long m_lObjectIdVML; }; } // namespace OOX \ No newline at end of file diff --git a/OOXML/PPTXFormat/FileContainer.cpp b/OOXML/PPTXFormat/FileContainer.cpp index b7243ae27b..d07461be40 100644 --- a/OOXML/PPTXFormat/FileContainer.cpp +++ b/OOXML/PPTXFormat/FileContainer.cpp @@ -230,7 +230,7 @@ namespace PPTX { std::map mNamePair; - for (boost::unordered_map>::const_iterator pPair = m_mapContainer.begin(); pPair != m_mapContainer.end(); ++pPair) + for (std::map>::const_iterator pPair = m_mapContainer.begin(); pPair != m_mapContainer.end(); ++pPair) { smart_ptr pFile = pPair->second; diff --git a/OOXML/PPTXFormat/Logic/Pic.cpp b/OOXML/PPTXFormat/Logic/Pic.cpp index 141a6bac53..63eb8f616f 100644 --- a/OOXML/PPTXFormat/Logic/Pic.cpp +++ b/OOXML/PPTXFormat/Logic/Pic.cpp @@ -770,7 +770,7 @@ namespace PPTX } if (oleObject->m_sShapeId.IsInit() && pVml && !blipFill.blip->embed.IsInit() && blipFill.blip->oleFilepathImage.empty()) { - boost::unordered_map::iterator pFind = pVml->m_mapShapes.find(*oleObject->m_sShapeId); + std::map::iterator pFind = pVml->m_mapShapes.find(*oleObject->m_sShapeId); if (pVml->m_mapShapes.end() != pFind) { diff --git a/OOXML/PPTXFormat/Slide.cpp b/OOXML/PPTXFormat/Slide.cpp index 3577ce4e0c..1c7723b0f2 100644 --- a/OOXML/PPTXFormat/Slide.cpp +++ b/OOXML/PPTXFormat/Slide.cpp @@ -309,7 +309,7 @@ namespace PPTX { if(Vml.is_init() && !spid.empty()) { - boost::unordered_map::iterator pPair = Vml->m_mapShapes.find(spid); + std::map::iterator pPair = Vml->m_mapShapes.find(spid); if (Vml->m_mapShapes.end() != pPair) { pPair->second.bUsed = true; diff --git a/OOXML/PPTXFormat/SlideLayout.cpp b/OOXML/PPTXFormat/SlideLayout.cpp index d62c252f14..a770f96285 100644 --- a/OOXML/PPTXFormat/SlideLayout.cpp +++ b/OOXML/PPTXFormat/SlideLayout.cpp @@ -361,7 +361,7 @@ namespace PPTX { if(Vml.is_init() && !spid.empty()) { - boost::unordered_map::iterator pPair = Vml->m_mapShapes.find(spid); + std::map::iterator pPair = Vml->m_mapShapes.find(spid); if (Vml->m_mapShapes.end() != pPair) { pPair->second.bUsed = true; diff --git a/OOXML/PPTXFormat/SlideMaster.cpp b/OOXML/PPTXFormat/SlideMaster.cpp index 36837980ef..1ed435e3ce 100644 --- a/OOXML/PPTXFormat/SlideMaster.cpp +++ b/OOXML/PPTXFormat/SlideMaster.cpp @@ -326,7 +326,7 @@ namespace PPTX { if(Vml.is_init() && !spid.empty()) { - boost::unordered_map::iterator pPair = Vml->m_mapShapes.find(spid); + std::map::iterator pPair = Vml->m_mapShapes.find(spid); if (Vml->m_mapShapes.end() != pPair) { pPair->second.bUsed = true; diff --git a/OOXML/XlsxFormat/Worksheets/SheetData.cpp b/OOXML/XlsxFormat/Worksheets/SheetData.cpp index 652cad8619..da61370bf0 100644 --- a/OOXML/XlsxFormat/Worksheets/SheetData.cpp +++ b/OOXML/XlsxFormat/Worksheets/SheetData.cpp @@ -3451,9 +3451,10 @@ namespace OOX if (pShape->m_sId.IsInit()) {//mark shape as used - boost::unordered_map::iterator pFind = pVmlDrawing->m_mapShapes.find(pShape->m_sId.get()); + std::map::iterator pFind = pVmlDrawing->m_mapShapes.find(pShape->m_sId.get()); if (pFind != pVmlDrawing->m_mapShapes.end()) { + if (!pFind->second.bComment) continue; pFind->second.bUsed = true; } } diff --git a/OdfFile/Writer/Converter/ConvertDrawing.cpp b/OdfFile/Writer/Converter/ConvertDrawing.cpp index 88f06face0..3d078d8803 100644 --- a/OdfFile/Writer/Converter/ConvertDrawing.cpp +++ b/OdfFile/Writer/Converter/ConvertDrawing.cpp @@ -418,7 +418,7 @@ void OoxConverter::convert(PPTX::Logic::Pic *oox_picture) if (pVml) { std::wstring sShapeId = oox_picture->oleObject->m_sShapeId.get(); - boost::unordered_map::iterator pFind = pVml->m_mapShapes.find(sShapeId); + std::map::iterator pFind = pVml->m_mapShapes.find(sShapeId); if (pVml->m_mapShapes.end() != pFind) { diff --git a/OdfFile/Writer/Converter/XlsxConverter.cpp b/OdfFile/Writer/Converter/XlsxConverter.cpp index ef96392055..7b7dc84846 100644 --- a/OdfFile/Writer/Converter/XlsxConverter.cpp +++ b/OdfFile/Writer/Converter/XlsxConverter.cpp @@ -611,7 +611,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CLegacyDrawingHFWorksheet *oox_bac oox_current_child_document = dynamic_cast(vmlDrawing.GetPointer()); - for (boost::unordered_map::iterator it = vmlDrawing->m_mapShapes.begin(); it!= vmlDrawing->m_mapShapes.end(); ++it) + for (std::map::iterator it = vmlDrawing->m_mapShapes.begin(); it!= vmlDrawing->m_mapShapes.end(); ++it) { OOX::Vml::CShape* pShape = dynamic_cast(it->second.pElement);