[Libreoffice-commits] core.git: vcl/source
Takeshi Abe
tabe at fixedpoint.jp
Tue Jul 26 15:36:09 UTC 2016
vcl/source/edit/textdat2.hxx | 17 +++++++++-
vcl/source/edit/textdata.cxx | 71 ++++++++++++++++++++++++++++++++++++-------
2 files changed, 77 insertions(+), 11 deletions(-)
New commits:
commit d357334a0237bda6d9c090990d44e46c6af8edf3
Author: Takeshi Abe <tabe at fixedpoint.jp>
Date: Tue Jul 26 18:01:59 2016 +0900
tdf#75757 Remove inheritance to std::vector
Change-Id: I2ddaaf52f27b5297bda58a045946e87a24b66a83
Reviewed-on: https://gerrit.libreoffice.org/27536
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/vcl/source/edit/textdat2.hxx b/vcl/source/edit/textdat2.hxx
index 6a09fa8..9b0dc4c1 100644
--- a/vcl/source/edit/textdat2.hxx
+++ b/vcl/source/edit/textdat2.hxx
@@ -67,12 +67,27 @@ public:
bool IsRightToLeft() const { return bRightToLeft; }
};
-class TETextPortionList : public std::vector<TETextPortion*>
+class TETextPortionList
{
+private:
+ std::vector<TETextPortion*> maPortions;
+
public:
TETextPortionList();
~TETextPortionList();
+ TETextPortion* operator[]( size_t nPos );
+ std::vector<TETextPortion*>::iterator begin();
+ std::vector<TETextPortion*>::const_iterator begin() const;
+ std::vector<TETextPortion*>::iterator end();
+ std::vector<TETextPortion*>::const_iterator end() const;
+ bool empty() const;
+ size_t size() const;
+ std::vector<TETextPortion*>::iterator erase( std::vector<TETextPortion*>::iterator aIter );
+ std::vector<TETextPortion*>::iterator insert( std::vector<TETextPortion*>::iterator aIter,
+ TETextPortion* pTP );
+ void push_back( TETextPortion* pTP );
+
void Reset();
sal_uInt16 FindPortion( sal_Int32 nCharPos, sal_Int32& rPortionStart, bool bPreferStartingPortion = false );
void DeleteFromPortion( sal_uInt16 nDelFrom );
diff --git a/vcl/source/edit/textdata.cxx b/vcl/source/edit/textdata.cxx
index 0289705..cc7e79a 100644
--- a/vcl/source/edit/textdata.cxx
+++ b/vcl/source/edit/textdata.cxx
@@ -55,33 +55,84 @@ TETextPortionList::~TETextPortionList()
Reset();
}
+TETextPortion* TETextPortionList::operator[]( size_t nPos )
+{
+ return maPortions[ nPos ];
+}
+
+std::vector<TETextPortion*>::iterator TETextPortionList::begin()
+{
+ return maPortions.begin();
+}
+
+std::vector<TETextPortion*>::const_iterator TETextPortionList::begin() const
+{
+ return maPortions.begin();
+}
+
+std::vector<TETextPortion*>::iterator TETextPortionList::end()
+{
+ return maPortions.end();
+}
+
+std::vector<TETextPortion*>::const_iterator TETextPortionList::end() const
+{
+ return maPortions.end();
+}
+
+bool TETextPortionList::empty() const
+{
+ return maPortions.empty();
+}
+
+size_t TETextPortionList::size() const
+{
+ return maPortions.size();
+}
+
+std::vector<TETextPortion*>::iterator TETextPortionList::erase( std::vector<TETextPortion*>::iterator aIter )
+{
+ return maPortions.erase( aIter );
+}
+
+std::vector<TETextPortion*>::iterator TETextPortionList::insert( std::vector<TETextPortion*>::iterator aIter,
+ TETextPortion* pTP )
+{
+ return maPortions.insert( aIter, pTP );
+}
+
+void TETextPortionList::push_back( TETextPortion* pTP )
+{
+ maPortions.push_back( pTP );
+}
+
void TETextPortionList::Reset()
{
- for ( iterator it = begin(); it != end(); ++it )
- delete *it;
- clear();
+ for ( auto pTP : maPortions )
+ delete pTP;
+ maPortions.clear();
}
void TETextPortionList::DeleteFromPortion( sal_uInt16 nDelFrom )
{
- SAL_WARN_IF( ( nDelFrom >= size() ) && ( (nDelFrom != 0) || (size() != 0) ), "vcl", "DeleteFromPortion: Out of range" );
- for ( iterator it = begin() + nDelFrom; it != end(); ++it )
+ SAL_WARN_IF( ( nDelFrom >= maPortions.size() ) && ( (nDelFrom != 0) || (maPortions.size() != 0) ), "vcl", "DeleteFromPortion: Out of range" );
+ for ( auto it = maPortions.begin() + nDelFrom; it != maPortions.end(); ++it )
delete *it;
- erase( begin() + nDelFrom, end() );
+ maPortions.erase( maPortions.begin() + nDelFrom, maPortions.end() );
}
sal_uInt16 TETextPortionList::FindPortion( sal_Int32 nCharPos, sal_Int32& nPortionStart, bool bPreferStartingPortion )
{
// find left portion at nCharPos at portion border
sal_Int32 nTmpPos = 0;
- for ( size_t nPortion = 0; nPortion < size(); nPortion++ )
+ for ( size_t nPortion = 0; nPortion < maPortions.size(); nPortion++ )
{
- TETextPortion* pPortion = operator[]( nPortion );
+ TETextPortion* pPortion = maPortions[ nPortion ];
nTmpPos += pPortion->GetLen();
if ( nTmpPos >= nCharPos )
{
// take this one if we don't prefer the starting portion, or if it's the last one
- if ( ( nTmpPos != nCharPos ) || !bPreferStartingPortion || ( nPortion == size() - 1 ) )
+ if ( ( nTmpPos != nCharPos ) || !bPreferStartingPortion || ( nPortion == maPortions.size() - 1 ) )
{
nPortionStart = nTmpPos - pPortion->GetLen();
return nPortion;
@@ -89,7 +140,7 @@ sal_uInt16 TETextPortionList::FindPortion( sal_Int32 nCharPos, sal_Int32& nPorti
}
}
OSL_FAIL( "FindPortion: Nicht gefunden!" );
- return ( size() - 1 );
+ return ( maPortions.size() - 1 );
}
TEParaPortion::TEParaPortion( TextNode* pN )
More information about the Libreoffice-commits
mailing list