diff options
author | Michael Stahl <mstahl@redhat.com> | 2012-05-15 00:25:35 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2012-05-15 00:28:31 +0200 |
commit | 007f16ef7ad40ae932df884ba04f0de71928b852 (patch) | |
tree | 5fbac3ca50aa1f47cecd8af40c684ec498eedb41 | |
parent | 51270f84bbeed46b3253ecfa1f8ddd408106b746 (diff) |
SwTableAutoFmtTbl: try to fix MSVC tinderbox:
C:/lo/core/sw/inc\tblafmt.hxx(311) : error C2487:
'boost::ptr_container_detail::reversible_ptr_container<Config,CloneAllocator>::insert'
: member of dll interface class may not be declared with dll interface
Not really understanding what the problem is here, attempting to fix it
by not deriving SwTableAutoFmtTbl from the container, and trying to get
that to build somehow resulted in this commit.
-rw-r--r-- | sw/inc/swabstdlg.hxx | 2 | ||||
-rw-r--r-- | sw/inc/tblafmt.hxx | 23 | ||||
-rw-r--r-- | sw/source/core/doc/tblafmt.cxx | 56 | ||||
-rw-r--r-- | sw/source/core/unocore/unotbl.cxx | 2 | ||||
-rw-r--r-- | sw/source/ui/dialog/swdlgfact.cxx | 2 | ||||
-rw-r--r-- | sw/source/ui/dialog/swdlgfact.hxx | 2 | ||||
-rw-r--r-- | sw/source/ui/inc/convert.hxx | 2 | ||||
-rw-r--r-- | sw/source/ui/shells/basesh.cxx | 4 | ||||
-rw-r--r-- | sw/source/ui/table/convert.cxx | 2 | ||||
-rw-r--r-- | sw/source/ui/table/tautofmt.cxx | 16 |
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 ); |