summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sw/inc/swabstdlg.hxx2
-rw-r--r--sw/inc/tblafmt.hxx23
-rw-r--r--sw/source/core/doc/tblafmt.cxx56
-rw-r--r--sw/source/core/unocore/unotbl.cxx2
-rw-r--r--sw/source/ui/dialog/swdlgfact.cxx2
-rw-r--r--sw/source/ui/dialog/swdlgfact.hxx2
-rw-r--r--sw/source/ui/inc/convert.hxx2
-rw-r--r--sw/source/ui/shells/basesh.cxx4
-rw-r--r--sw/source/ui/table/convert.cxx2
-rw-r--r--sw/source/ui/table/tautofmt.cxx16
10 files changed, 82 insertions, 29 deletions
diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx
index ab6e8a593372..2962991aae85 100644
--- a/sw/inc/swabstdlg.hxx
+++ b/sw/inc/swabstdlg.hxx
@@ -240,7 +240,7 @@ class AbstractSwConvertTableDlg : public VclAbstractDialog // add for SwConvert
public:
virtual void GetValues( sal_Unicode& rDelim,
SwInsertTableOptions& rInsTblFlags,
- SwTableAutoFmt *& prTAFmt ) = 0;
+ SwTableAutoFmt const*& prTAFmt ) = 0;
};
class AbstractSwInsertDBColAutoPilot : public VclAbstractDialog // add for SwInsertDBColAutoPilot
diff --git a/sw/inc/tblafmt.hxx b/sw/inc/tblafmt.hxx
index a185c0fc8914..ae8399e90762 100644
--- a/sw/inc/tblafmt.hxx
+++ b/sw/inc/tblafmt.hxx
@@ -25,8 +25,8 @@
* for a copy of the LGPLv3 License.
*
************************************************************************/
-#ifndef _TBLAFMT_HXX
-#define _TBLAFMT_HXX
+#ifndef SW_TBLAFMT_HXX
+#define SW_TBLAFMT_HXX
/*************************************************************************
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -37,6 +37,8 @@
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
**************************************************************************/
+#include <boost/scoped_ptr.hpp>
+
#include <svl/svarray.hxx>
#include "hintids.hxx" // _Always_ before the solar-items!
#include <svx/algitem.hxx>
@@ -305,15 +307,24 @@ public:
sal_Bool Save( SvStream& rStream, sal_uInt16 fileVersion ) const;
};
-typedef boost::ptr_vector<SwTableAutoFmt> _SwTableAutoFmtTbl;
-
-class SW_DLLPUBLIC SwTableAutoFmtTbl : public _SwTableAutoFmtTbl
+class SW_DLLPUBLIC SwTableAutoFmtTbl
{
+ class Impl;
+ ::boost::scoped_ptr<Impl> m_pImpl;
+
SW_DLLPRIVATE sal_Bool Load( SvStream& rStream );
SW_DLLPRIVATE sal_Bool Save( SvStream& rStream ) const;
public:
- SwTableAutoFmtTbl();
+ explicit SwTableAutoFmtTbl();
+ ~SwTableAutoFmtTbl();
+
+ size_t size() const;
+ SwTableAutoFmt const& operator[](size_t i) const;
+ SwTableAutoFmt & operator[](size_t i);
+ void InsertAutoFmt(size_t i, SwTableAutoFmt * pFmt);
+ void EraseAutoFmt(size_t i);
+ void MoveAutoFmt(size_t target, size_t source);
sal_Bool Load();
sal_Bool Save() const;
diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx
index 747863d8b869..893f7b440f78 100644
--- a/sw/source/core/doc/tblafmt.cxx
+++ b/sw/source/core/doc/tblafmt.cxx
@@ -1026,7 +1026,48 @@ sal_Bool SwTableAutoFmt::Save( SvStream& rStream, sal_uInt16 fileVersion ) const
}
+struct SwTableAutoFmtTbl::Impl
+{
+ boost::ptr_vector<SwTableAutoFmt> m_AutoFormats;
+};
+
+size_t SwTableAutoFmtTbl::size() const
+{
+ return m_pImpl->m_AutoFormats.size();
+}
+
+SwTableAutoFmt const& SwTableAutoFmtTbl::operator[](size_t const i) const
+{
+ return m_pImpl->m_AutoFormats[i];
+}
+SwTableAutoFmt & SwTableAutoFmtTbl::operator[](size_t const i)
+{
+ return m_pImpl->m_AutoFormats[i];
+}
+
+void
+SwTableAutoFmtTbl::InsertAutoFmt(size_t const i, SwTableAutoFmt *const pFmt)
+{
+ m_pImpl->m_AutoFormats.insert(m_pImpl->m_AutoFormats.begin() + i, pFmt);
+}
+
+void SwTableAutoFmtTbl::EraseAutoFmt(size_t const i)
+{
+ m_pImpl->m_AutoFormats.erase(m_pImpl->m_AutoFormats.begin() + i);
+}
+
+void SwTableAutoFmtTbl::MoveAutoFmt(size_t const target, size_t source)
+{
+ m_pImpl->m_AutoFormats.transfer(m_pImpl->m_AutoFormats.begin() + target,
+ m_pImpl->m_AutoFormats.begin() + source, m_pImpl->m_AutoFormats);
+}
+
+SwTableAutoFmtTbl::~SwTableAutoFmtTbl()
+{
+}
+
SwTableAutoFmtTbl::SwTableAutoFmtTbl()
+ : m_pImpl(new Impl)
{
String sNm;
SwTableAutoFmt* pNew = new SwTableAutoFmt(
@@ -1081,7 +1122,7 @@ SwTableAutoFmtTbl::SwTableAutoFmtTbl()
((SwBoxAutoFmt&)pNew->GetBoxFmt( i )).SetBox( aBox );
}
- push_back( pNew );
+ m_pImpl->m_AutoFormats.push_back(pNew);
}
sal_Bool SwTableAutoFmtTbl::Load()
@@ -1161,7 +1202,7 @@ sal_Bool SwTableAutoFmtTbl::Load( SvStream& rStream )
bRet = pNew->Load( rStream, aVersions );
if( bRet )
{
- push_back( pNew );
+ m_pImpl->m_AutoFormats.push_back(pNew);
}
else
{
@@ -1196,15 +1237,16 @@ sal_Bool SwTableAutoFmtTbl::Save( SvStream& rStream ) const
bRet = 0 == rStream.GetError();
// Write this version number for all attributes
- (*this)[ 0 ].GetBoxFmt( 0 ).SaveVersionNo( rStream, AUTOFORMAT_FILE_VERSION );
+ m_pImpl->m_AutoFormats[0].GetBoxFmt(0).SaveVersionNo(
+ rStream, AUTOFORMAT_FILE_VERSION);
- rStream << (sal_uInt16)(size() - 1);
+ rStream << static_cast<sal_uInt16>(m_pImpl->m_AutoFormats.size() - 1);
bRet = 0 == rStream.GetError();
- for( sal_uInt16 i = 1; bRet && i < size(); ++i )
+ for (sal_uInt16 i = 1; bRet && i < m_pImpl->m_AutoFormats.size(); ++i)
{
- const SwTableAutoFmt* pFmt = &(*this)[ i ];
- bRet = pFmt->Save( rStream, AUTOFORMAT_FILE_VERSION );
+ SwTableAutoFmt const& rFmt = m_pImpl->m_AutoFormats[i];
+ bRet = rFmt.Save(rStream, AUTOFORMAT_FILE_VERSION);
}
}
rStream.Flush();
diff --git a/sw/source/core/unocore/unotbl.cxx b/sw/source/core/unocore/unotbl.cxx
index e05143e92032..ac17fd49d83f 100644
--- a/sw/source/core/unocore/unotbl.cxx
+++ b/sw/source/core/unocore/unotbl.cxx
@@ -2966,7 +2966,7 @@ void SwXTextTable::autoFormat(const OUString& aName) throw( lang::IllegalArgumen
String sAutoFmtName(aName);
SwTableAutoFmtTbl aAutoFmtTbl;
aAutoFmtTbl.Load();
- for( sal_uInt16 i = aAutoFmtTbl.size(); i; )
+ for (sal_uInt16 i = aAutoFmtTbl.size(); i;)
if( sAutoFmtName == aAutoFmtTbl[ --i ].GetName() )
{
SwSelBoxes aBoxes;
diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx
index ca2698b2498c..dd291aa59096 100644
--- a/sw/source/ui/dialog/swdlgfact.cxx
+++ b/sw/source/ui/dialog/swdlgfact.cxx
@@ -224,7 +224,7 @@ sal_uInt16 AbstractSwBreakDlg_Impl:: GetPageNumber()
}
void AbstractSwConvertTableDlg_Impl::GetValues( sal_Unicode& rDelim,SwInsertTableOptions& rInsTblFlags,
- SwTableAutoFmt *& prTAFmt )
+ SwTableAutoFmt const*& prTAFmt)
{
pDlg->GetValues(rDelim,rInsTblFlags, prTAFmt);
}
diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx
index 75100f14be1f..92bce03543f9 100644
--- a/sw/source/ui/dialog/swdlgfact.hxx
+++ b/sw/source/ui/dialog/swdlgfact.hxx
@@ -157,7 +157,7 @@ class AbstractSwConvertTableDlg_Impl : public AbstractSwConvertTableDlg // add
{
DECL_ABSTDLG_BASE( AbstractSwConvertTableDlg_Impl,SwConvertTableDlg)
virtual void GetValues( sal_Unicode& rDelim,SwInsertTableOptions& rInsTblFlags,
- SwTableAutoFmt *& prTAFmt );
+ SwTableAutoFmt const*& prTAFmt);
};
//add for SwConvertTableDlg end
diff --git a/sw/source/ui/inc/convert.hxx b/sw/source/ui/inc/convert.hxx
index 8452660c41e3..500afe0146a9 100644
--- a/sw/source/ui/inc/convert.hxx
+++ b/sw/source/ui/inc/convert.hxx
@@ -83,7 +83,7 @@ public:
void GetValues( sal_Unicode& rDelim,
SwInsertTableOptions& rInsTblOpts,
- SwTableAutoFmt *& prTAFmt );
+ SwTableAutoFmt const*& prTAFmt );
};
diff --git a/sw/source/ui/shells/basesh.cxx b/sw/source/ui/shells/basesh.cxx
index c0c2c4f915d8..f74f99ea57d1 100644
--- a/sw/source/ui/shells/basesh.cxx
+++ b/sw/source/ui/shells/basesh.cxx
@@ -786,7 +786,7 @@ void SwBaseShell::Execute(SfxRequest &rReq)
( nSlot == FN_CONVERT_TEXT_TABLE && 0 == rSh.GetTableFmt() ))
bToTable = true;
SwInsertTableOptions aInsTblOpts( tabopts::ALL_TBL_INS_ATTR, 1 );
- SwTableAutoFmt* pTAFmt = 0;
+ SwTableAutoFmt const* pTAFmt = 0;
SwTableAutoFmtTbl* pAutoFmtTbl = 0;
bool bDeleteFormat = true;
if(pArgs && SFX_ITEM_SET == pArgs->GetItemState( FN_PARAM_1, sal_True, &pItem))
@@ -806,7 +806,7 @@ void SwBaseShell::Execute(SfxRequest &rReq)
for( sal_uInt16 i = 0, nCount = pAutoFmtTbl->size(); i < nCount; i++ )
{
- SwTableAutoFmt* pFmt = &(*pAutoFmtTbl)[ i ];
+ SwTableAutoFmt const*const pFmt = &(*pAutoFmtTbl)[ i ];
if( pFmt->GetName() == sAutoFmt )
{
pTAFmt = pFmt;
diff --git a/sw/source/ui/table/convert.cxx b/sw/source/ui/table/convert.cxx
index 20d232b7593f..332591f99d9c 100644
--- a/sw/source/ui/table/convert.cxx
+++ b/sw/source/ui/table/convert.cxx
@@ -63,7 +63,7 @@ static sal_Unicode uOther = ',';
void SwConvertTableDlg::GetValues( sal_Unicode& rDelim,
SwInsertTableOptions& rInsTblOpts,
- SwTableAutoFmt *& prTAFmt )
+ SwTableAutoFmt const*& prTAFmt )
{
if( aTabBtn.IsChecked() )
{
diff --git a/sw/source/ui/table/tautofmt.cxx b/sw/source/ui/table/tautofmt.cxx
index 3001d20af306..984d09efd8d3 100644
--- a/sw/source/ui/table/tautofmt.cxx
+++ b/sw/source/ui/table/tautofmt.cxx
@@ -259,11 +259,12 @@ void SwAutoFormatDlg::Init( const SwTableAutoFmt* pSelFmt )
nIndex = 255;
}
- for( sal_uInt8 i = 0, nCount = (sal_uInt8)pTableTbl->size(); i < nCount; i++ )
+ for (sal_uInt8 i = 0, nCount = static_cast<sal_uInt8>(pTableTbl->size());
+ i < nCount; i++)
{
- SwTableAutoFmt* pFmt = &(*pTableTbl)[ i ];
- aLbFormat.InsertEntry( pFmt->GetName() );
- if( pSelFmt && pFmt->GetName() == pSelFmt->GetName() )
+ SwTableAutoFmt const& rFmt = (*pTableTbl)[ i ];
+ aLbFormat.InsertEntry(rFmt.GetName());
+ if (pSelFmt && rFmt.GetName() == pSelFmt->GetName())
nIndex = i;
}
@@ -379,7 +380,7 @@ IMPL_LINK_NOARG(SwAutoFormatDlg, AddHdl)
if( (*pTableTbl)[ n ].GetName() > aFormatName )
break;
- pTableTbl->insert( pTableTbl->begin() + n, pNewData );
+ pTableTbl->InsertAutoFmt(n, pNewData);
aLbFormat.InsertEntry( aFormatName, nDfltStylePos + n );
aLbFormat.SelectEntryPos( nDfltStylePos + n );
bFmtInserted = sal_True;
@@ -427,7 +428,7 @@ IMPL_LINK_NOARG(SwAutoFormatDlg, RemoveHdl)
aLbFormat.RemoveEntry( nDfltStylePos + nIndex );
aLbFormat.SelectEntryPos( nDfltStylePos + nIndex-1 );
- pTableTbl->erase( pTableTbl->begin() + nIndex );
+ pTableTbl->EraseAutoFmt(nIndex);
nIndex--;
if( !nIndex )
@@ -486,8 +487,7 @@ IMPL_LINK_NOARG(SwAutoFormatDlg, RenameHdl)
break;
}
- pTableTbl->transfer(pTableTbl->begin() + n,
- pTableTbl->begin() + nIndex, *pTableTbl);
+ pTableTbl->MoveAutoFmt(n, nIndex);
aLbFormat.InsertEntry( aFormatName, nDfltStylePos + n );
aLbFormat.SelectEntryPos( nDfltStylePos + n );