diff options
author | Michael Stahl <mstahl@redhat.com> | 2015-07-10 18:44:56 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2015-07-10 23:27:41 +0200 |
commit | ac010423b6e9005896ca73a55a7d65dd698767d3 (patch) | |
tree | 75254e838a44274e18559a8fcf426429d71735bd /sw | |
parent | 20bd0a2ee9ed899ea542c2de08efda243dbef446 (diff) |
sw: clean up SwDoc::maPatternNms nonsense
Change-Id: I0a166d1b58b23cac96ae27d446d6d8ed2442df8e
Diffstat (limited to 'sw')
-rw-r--r-- | sw/inc/doc.hxx | 13 | ||||
-rw-r--r-- | sw/source/core/doc/poolfmt.cxx | 37 |
2 files changed, 23 insertions, 27 deletions
diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx index b5461ba5c4d9..706f79da1405 100644 --- a/sw/inc/doc.hxx +++ b/sw/inc/doc.hxx @@ -263,7 +263,7 @@ class SW_DLLPUBLIC SwDoc : Idle maOLEModifiedIdle; //< Timer for update modified OLE-Objects SwDBData maDBData; //< database descriptor OUString msTOIAutoMarkURL; //< URL of table of index AutoMark file - boost::ptr_vector< boost::nullable<OUString> > maPatternNms; // Array for names of document-templates + std::vector<OUString> m_PatternNames; //< Array for names of document-templates com::sun::star::uno::Reference<com::sun::star::container::XNameContainer> mxXForms; //< container with XForms models mutable com::sun::star::uno::Reference< com::sun::star::linguistic2::XProofreadingIterator > m_xGCIterator; @@ -907,17 +907,10 @@ public: static bool IsUsed( const SwNumRule& ); // Set name of newly loaded document template. - sal_uInt16 SetDocPattern( const OUString& rPatternName ); + size_t SetDocPattern(const OUString& rPatternName); // @return name of document template. Can be 0! - const OUString* GetDocPattern( sal_uInt16 nPos ) const - { - if(nPos >= maPatternNms.size()) - return NULL; - if(boost::is_null(maPatternNms.begin() + nPos)) - return NULL; - return &(maPatternNms[nPos]); - } + const OUString* GetDocPattern(size_t nPos) const; // Query / connect current document with glossary document. void SetGlossaryDoc( SwDoc* pDoc ) { mpGlossaryDoc = pDoc; } diff --git a/sw/source/core/doc/poolfmt.cxx b/sw/source/core/doc/poolfmt.cxx index f290b0590efd..3244fb725729 100644 --- a/sw/source/core/doc/poolfmt.cxx +++ b/sw/source/core/doc/poolfmt.cxx @@ -131,28 +131,31 @@ bool SwDoc::IsUsed( const SwNumRule& rRule ) return bUsed; } +const OUString* SwDoc::GetDocPattern(size_t const nPos) const +{ + if (nPos >= m_PatternNames.size()) + return nullptr; + return &m_PatternNames[nPos]; +} + // Look for the style name's position. If it doesn't exist, // insert a anew -sal_uInt16 SwDoc::SetDocPattern( const OUString& rPatternName ) +size_t SwDoc::SetDocPattern(const OUString& rPatternName) { OSL_ENSURE( !rPatternName.isEmpty(), "no Document style name" ); - size_t nNewPos = maPatternNms.size(); - for(size_t n = 0; n < maPatternNms.size(); ++n) - if( boost::is_null(maPatternNms.begin() + n) ) - { - if( nNewPos == maPatternNms.size() ) - nNewPos = n; - } - else if( rPatternName == maPatternNms[n] ) - return n; - - if( nNewPos < maPatternNms.size() ) - maPatternNms.erase(maPatternNms.begin() + nNewPos); // Free space again - - maPatternNms.insert(maPatternNms.begin() + nNewPos, new OUString(rPatternName)); - getIDocumentState().SetModified(); - return nNewPos; + auto const iter( + std::find(m_PatternNames.begin(), m_PatternNames.end(), rPatternName)); + if (iter != m_PatternNames.end()) + { + return std::distance(m_PatternNames.begin(), iter); + } + else + { + m_PatternNames.push_back(rPatternName); + getIDocumentState().SetModified(); + return m_PatternNames.size() - 1; + } } sal_uInt16 GetPoolParent( sal_uInt16 nId ) |