sw/inc/IDocumentMarkAccess.hxx | 5 -- sw/source/core/doc/docbm.cxx | 54 ---------------------- sw/source/core/doc/docdde.cxx | 4 - sw/source/core/inc/MarkManager.hxx | 5 -- sw/source/filter/ww8/wrtw8nds.cxx | 9 ++- writerfilter/source/dmapper/DomainMapper.cxx | 5 +- writerfilter/source/dmapper/DomainMapper_Impl.cxx | 8 ++- writerfilter/source/dmapper/DomainMapper_Impl.hxx | 6 +- 8 files changed, 23 insertions(+), 73 deletions(-)
New commits: commit f73412f09ca8a34bb7ec73370dae3e6033c0c581 Author: Oliver-Rainer Wittmann <[email protected]> Date: Tue Jul 8 11:45:46 2014 +0000 125215: MarkManager: remove unnecessary mark container diff --git a/sw/inc/IDocumentMarkAccess.hxx b/sw/inc/IDocumentMarkAccess.hxx index 0057999..a16a861 100644 --- a/sw/inc/IDocumentMarkAccess.hxx +++ b/sw/inc/IDocumentMarkAccess.hxx @@ -250,11 +250,6 @@ class IDocumentMarkAccess virtual ::sw::mark::IFieldmark* getFieldmarkBefore(const SwPosition& pos) const =0; virtual ::sw::mark::IFieldmark* getFieldmarkAfter(const SwPosition& pos) const =0; - // Marks exclusive annotation marks - virtual const_iterator_t getCommonMarksBegin() const = 0; - virtual const_iterator_t getCommonMarksEnd() const = 0; - virtual sal_Int32 getCommonMarksCount() const = 0; - // Annotation Marks virtual const_iterator_t getAnnotationMarksBegin() const = 0; virtual const_iterator_t getAnnotationMarksEnd() const = 0; diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx index 792e2c5..4626111 100644 --- a/sw/source/core/doc/docbm.cxx +++ b/sw/source/core/doc/docbm.cxx @@ -358,7 +358,6 @@ namespace sw { namespace mark , m_vBookmarks() , m_vFieldmarks() , m_vAnnotationMarks() - , m_vCommonMarks() , m_pDoc(&rDoc) { } @@ -444,13 +443,11 @@ namespace sw { namespace mark case IDocumentMarkAccess::BOOKMARK: case IDocumentMarkAccess::CROSSREF_NUMITEM_BOOKMARK: case IDocumentMarkAccess::CROSSREF_HEADING_BOOKMARK: - lcl_InsertMarkSorted(m_vCommonMarks, pMark); // if(dynamic_cast<IBookmark*>) lcl_InsertMarkSorted(m_vBookmarks, pMark); break; case IDocumentMarkAccess::TEXT_FIELDMARK: case IDocumentMarkAccess::CHECKBOX_FIELDMARK: - lcl_InsertMarkSorted(m_vCommonMarks, pMark); // if(dynamic_cast<IFieldmark*> lcl_InsertMarkSorted(m_vFieldmarks, pMark); break; @@ -460,7 +457,6 @@ namespace sw { namespace mark case IDocumentMarkAccess::NAVIGATOR_REMINDER: case IDocumentMarkAccess::DDE_BOOKMARK: case IDocumentMarkAccess::UNO_BOOKMARK: - lcl_InsertMarkSorted(m_vCommonMarks, pMark); // no special array for these break; } @@ -830,16 +826,6 @@ namespace sw { namespace mark { OSL_ENSURE( false, "<MarkManager::deleteMark(..)> - Bookmark not found in Bookmark container."); } - - ppBookmark = lcl_FindMark(m_vCommonMarks, *ppMark); - if ( ppBookmark != m_vCommonMarks.end() ) - { - m_vCommonMarks.erase(ppBookmark); - } - else - { - OSL_ENSURE( false, "<MarkManager::deleteMark(..)> - Bookmark not found in common mark container."); - } } break; @@ -862,15 +848,6 @@ namespace sw { namespace mark pTextFieldmark->ReleaseDoc(m_pDoc); } - ppFieldmark = lcl_FindMark(m_vCommonMarks, *ppMark); - if ( ppFieldmark != m_vCommonMarks.end() ) - { - m_vCommonMarks.erase(ppFieldmark); - } - else - { - OSL_ENSURE( false, "<MarkManager::deleteMark(..)> - Fieldmark not found in common mark container."); - } } break; @@ -891,17 +868,7 @@ namespace sw { namespace mark case IDocumentMarkAccess::NAVIGATOR_REMINDER: case IDocumentMarkAccess::DDE_BOOKMARK: case IDocumentMarkAccess::UNO_BOOKMARK: - { - IDocumentMarkAccess::iterator_t ppOtherMark = lcl_FindMark(m_vCommonMarks, *ppMark); - if ( ppOtherMark != m_vCommonMarks.end() ) - { - m_vCommonMarks.erase(ppOtherMark); - } - else - { - OSL_ENSURE( false, "<MarkManager::deleteMark(..)> - Navigator Reminder, DDE Mark or Uno Makr not found in common mark container."); - } - } + // no special marks container break; } DdeBookmark* const pDdeBookmark = dynamic_cast<DdeBookmark*>(ppMark->get()); @@ -947,8 +914,6 @@ namespace sw { namespace mark m_vFieldmarks.clear(); m_vBookmarks.clear(); - m_vCommonMarks.clear(); - m_vAnnotationMarks.clear(); #ifdef DEBUG @@ -1006,22 +971,6 @@ namespace sw { namespace mark { return dynamic_cast<IFieldmark*>(lcl_getMarkBefore(m_vFieldmarks, rPos)); } - IDocumentMarkAccess::const_iterator_t MarkManager::getCommonMarksBegin() const - { - return m_vCommonMarks.begin(); - } - - IDocumentMarkAccess::const_iterator_t MarkManager::getCommonMarksEnd() const - { - return m_vCommonMarks.end(); - } - - sal_Int32 MarkManager::getCommonMarksCount() const - { - return m_vCommonMarks.size(); - } - - IDocumentMarkAccess::const_iterator_t MarkManager::getAnnotationMarksBegin() const { return m_vAnnotationMarks.begin(); @@ -1072,7 +1021,6 @@ namespace sw { namespace mark void MarkManager::sortSubsetMarks() { - sort(m_vCommonMarks.begin(), m_vCommonMarks.end(), &lcl_MarkOrderingByStart); sort(m_vBookmarks.begin(), m_vBookmarks.end(), &lcl_MarkOrderingByStart); sort(m_vFieldmarks.begin(), m_vFieldmarks.end(), &lcl_MarkOrderingByStart); sort(m_vAnnotationMarks.begin(), m_vAnnotationMarks.end(), &lcl_MarkOrderingByStart); diff --git a/sw/source/core/doc/docdde.cxx b/sw/source/core/doc/docdde.cxx index 27f4694..85b81cb 100644 --- a/sw/source/core/doc/docdde.cxx +++ b/sw/source/core/doc/docdde.cxx @@ -62,8 +62,8 @@ namespace { //Iterating over all bookmarks, checking DdeBookmarks const ::rtl::OUString sNameLc = bCaseSensitive ? rName : GetAppCharClass().lower(rName); - for(IDocumentMarkAccess::const_iterator_t ppMark = rMarkAccess.getCommonMarksBegin(); - ppMark != rMarkAccess.getCommonMarksEnd(); + for(IDocumentMarkAccess::const_iterator_t ppMark = rMarkAccess.getAllMarksBegin(); + ppMark != rMarkAccess.getAllMarksEnd(); ppMark++) { if ( IDocumentMarkAccess::GetType( *(ppMark->get()) ) == IDocumentMarkAccess::DDE_BOOKMARK) diff --git a/sw/source/core/inc/MarkManager.hxx b/sw/source/core/inc/MarkManager.hxx index 086ab32..7455b51 100644 --- a/sw/source/core/inc/MarkManager.hxx +++ b/sw/source/core/inc/MarkManager.hxx @@ -84,11 +84,6 @@ namespace sw { namespace mark virtual ::sw::mark::IFieldmark* getFieldmarkBefore(const SwPosition& rPos) const; virtual ::sw::mark::IFieldmark* getFieldmarkAfter(const SwPosition& rPos) const; - // Marks exclusive annotation marks - virtual const_iterator_t getCommonMarksBegin() const; - virtual const_iterator_t getCommonMarksEnd() const; - virtual sal_Int32 getCommonMarksCount() const; - // Annotation Marks virtual const_iterator_t getAnnotationMarksBegin() const; virtual const_iterator_t getAnnotationMarksEnd() const; diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index bb8340c..c417cac 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -1678,10 +1678,15 @@ bool MSWordExportBase::GetBookmarks( IDocumentMarkAccess* const pMarkAccess = pDoc->getIDocumentMarkAccess(); sal_uLong nNd = rNd.GetIndex( ); - const sal_Int32 nMarks = pMarkAccess->getCommonMarksCount(); + const sal_Int32 nMarks = pMarkAccess->getAllMarksCount(); for ( sal_Int32 i = 0; i < nMarks; i++ ) { - IMark* pMark = ( pMarkAccess->getCommonMarksBegin() + i )->get(); + IMark* pMark = ( pMarkAccess->getAllMarksBegin() + i )->get(); + + if ( IDocumentMarkAccess::GetType( *(pMark) ) == IDocumentMarkAccess::ANNOTATIONMARK ) + { + continue; + } // Only keep the bookmarks starting or ending in this node if ( pMark->GetMarkStart().nNode == nNd || commit f27e75828f65ce454a50f92ba64ee6847456f88f Author: Oliver-Rainer Wittmann <[email protected]> Date: Tue Jul 8 11:36:35 2014 +0000 125215: *.docx import: Bookmark ID has to be treated as an Integer diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx index 4a06a1e..e8a9dd2 100644 --- a/writerfilter/source/dmapper/DomainMapper.cxx +++ b/writerfilter/source/dmapper/DomainMapper.cxx @@ -1413,18 +1413,21 @@ void DomainMapper::lcl_attribute(Id nName, Value & val) case NS_rtf::LN_endnote: /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */ break; + case NS_rtf::LN_BOOKMARKNAME: /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */ // sStringValue contains the bookmark name sLocalBookmarkName = sStringValue; break; + case NS_rtf::LN_IBKL: /* WRITERFILTERSTATUS: done: 100, planned: 0.5, spent: 0.5 */ //contains the bookmark identifier - has to be added to the bookmark name imported before //if it is already available then the bookmark should be inserted - m_pImpl->AddBookmark( sLocalBookmarkName, sStringValue ); + m_pImpl->AddBookmark( sLocalBookmarkName, nIntValue ); sLocalBookmarkName = ::rtl::OUString(); break; + case NS_rtf::LN_LISTLEVEL: /* WRITERFILTERSTATUS: done: 0, planned: 0.5, spent: 0 */ break; diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 7089bdf..dba364a 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -3541,10 +3541,12 @@ void DomainMapper_Impl::PopFieldContext() /*-- 11.06.2007 16:19:00--------------------------------------------------- -----------------------------------------------------------------------*/ -void DomainMapper_Impl::AddBookmark( const ::rtl::OUString& rBookmarkName, const ::rtl::OUString& rId ) +void DomainMapper_Impl::AddBookmark( + const ::rtl::OUString& rBookmarkName, + const sal_Int32 nId ) { uno::Reference< text::XTextAppend > xTextAppend = m_aTextAppendStack.top().xTextAppend; - BookmarkMap_t::iterator aBookmarkIter = m_aBookmarkMap.find( rId ); + BookmarkMap_t::iterator aBookmarkIter = m_aBookmarkMap.find( nId ); //is the bookmark name already registered? try { @@ -3575,7 +3577,7 @@ void DomainMapper_Impl::AddBookmark( const ::rtl::OUString& rBookmarkName, const uno::Reference< text::XTextCursor > xCursor = xTextAppend->createTextCursorByRange( xTextAppend->getEnd() ); bool bIsStart = !xCursor->goLeft(1, false); uno::Reference< text::XTextRange > xCurrent = xCursor->getStart(); - m_aBookmarkMap.insert(BookmarkMap_t::value_type( rId, BookmarkInsertPosition( bIsStart, rBookmarkName, xCurrent ) )); + m_aBookmarkMap.insert(BookmarkMap_t::value_type( nId, BookmarkInsertPosition( bIsStart, rBookmarkName, xCurrent ) )); } } catch( const uno::Exception& ) diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx index 314d772..1ba6883 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx @@ -289,7 +289,7 @@ class DomainMapper_Impl public: typedef TableManager< ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >, PropertyMapPtr > TableManager_t; typedef TableDataHandler< ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >, TablePropertyMapPtr > TableDataHandler_t; - typedef std::map < ::rtl::OUString, BookmarkInsertPosition > BookmarkMap_t; + typedef std::map < sal_Int32, BookmarkInsertPosition > BookmarkMap_t; private: SourceDocumentType m_eDocumentType; @@ -554,7 +554,9 @@ public: //the end of field is reached (0x15 appeared) - the command might still be open void PopFieldContext(); - void AddBookmark( const ::rtl::OUString& rBookmarkName, const ::rtl::OUString& rId ); + void AddBookmark( + const ::rtl::OUString& rBookmarkName, + const sal_Int32 nId ); void AddAnnotationPosition( const bool bStart, _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
