summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2015-07-10 18:44:56 +0200
committerMichael Stahl <mstahl@redhat.com>2015-07-10 23:27:41 +0200
commitac010423b6e9005896ca73a55a7d65dd698767d3 (patch)
tree75254e838a44274e18559a8fcf426429d71735bd /sw
parent20bd0a2ee9ed899ea542c2de08efda243dbef446 (diff)
sw: clean up SwDoc::maPatternNms nonsense
Change-Id: I0a166d1b58b23cac96ae27d446d6d8ed2442df8e
Diffstat (limited to 'sw')
-rw-r--r--sw/inc/doc.hxx13
-rw-r--r--sw/source/core/doc/poolfmt.cxx37
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 )