Kaydet (Commit) 5abe5c14 authored tarafından Michael Stahl's avatar Michael Stahl

sc: replace boost::ptr_list with std::list<std::unique_ptr>

Change-Id: Ic1202dc49789d7f392fc7c0065e071e114687717
üst 1f0c3a16
...@@ -20,13 +20,14 @@ ...@@ -20,13 +20,14 @@
#ifndef INCLUDED_SC_SOURCE_UI_INC_PREVLOC_HXX #ifndef INCLUDED_SC_SOURCE_UI_INC_PREVLOC_HXX
#define INCLUDED_SC_SOURCE_UI_INC_PREVLOC_HXX #define INCLUDED_SC_SOURCE_UI_INC_PREVLOC_HXX
#include <boost/ptr_container/ptr_list.hpp>
#include <sal/types.h> #include <sal/types.h>
#include <vcl/mapmod.hxx> #include <vcl/mapmod.hxx>
#include "address.hxx" #include "address.hxx"
#include <memory>
#include <list>
#define SC_PREVIEW_MAXRANGES 4 #define SC_PREVIEW_MAXRANGES 4
#define SC_PREVIEW_RANGE_EDGE 0 #define SC_PREVIEW_RANGE_EDGE 0
#define SC_PREVIEW_RANGE_REPCOL 1 #define SC_PREVIEW_RANGE_REPCOL 1
...@@ -82,6 +83,9 @@ public: ...@@ -82,6 +83,9 @@ public:
class ScPreviewLocationData class ScPreviewLocationData
{ {
public:
typedef std::list<std::unique_ptr<ScPreviewLocationEntry>> Entries_t;
private:
VclPtr<OutputDevice> pWindow; VclPtr<OutputDevice> pWindow;
ScDocument* pDoc; ScDocument* pDoc;
MapMode aCellMapMode; MapMode aCellMapMode;
...@@ -90,7 +94,7 @@ class ScPreviewLocationData ...@@ -90,7 +94,7 @@ class ScPreviewLocationData
sal_uInt8 aDrawRangeId[SC_PREVIEW_MAXRANGES]; sal_uInt8 aDrawRangeId[SC_PREVIEW_MAXRANGES];
sal_uInt16 nDrawRanges; sal_uInt16 nDrawRanges;
SCTAB nPrintTab; SCTAB nPrintTab;
boost::ptr_list<ScPreviewLocationEntry> aEntries; Entries_t m_Entries;
Rectangle GetOffsetPixel( const ScAddress& rCellPos, const ScRange& rRange ) const; Rectangle GetOffsetPixel( const ScAddress& rCellPos, const ScRange& rRange ) const;
......
...@@ -22,6 +22,8 @@ ...@@ -22,6 +22,8 @@
#include "prevloc.hxx" #include "prevloc.hxx"
#include "document.hxx" #include "document.hxx"
#include <o3tl/make_unique.hxx>
enum ScPreviewLocationType enum ScPreviewLocationType
{ {
SC_PLOC_CELLRANGE, SC_PLOC_CELLRANGE,
...@@ -170,7 +172,7 @@ void ScPreviewLocationData::SetPrintTab( SCTAB nNew ) ...@@ -170,7 +172,7 @@ void ScPreviewLocationData::SetPrintTab( SCTAB nNew )
void ScPreviewLocationData::Clear() void ScPreviewLocationData::Clear()
{ {
aEntries.clear(); m_Entries.clear();
nDrawRanges = 0; nDrawRanges = 0;
} }
...@@ -179,7 +181,7 @@ void ScPreviewLocationData::AddCellRange( const Rectangle& rRect, const ScRange& ...@@ -179,7 +181,7 @@ void ScPreviewLocationData::AddCellRange( const Rectangle& rRect, const ScRange&
const MapMode& rDrawMap ) const MapMode& rDrawMap )
{ {
Rectangle aPixelRect( pWindow->LogicToPixel( rRect ) ); Rectangle aPixelRect( pWindow->LogicToPixel( rRect ) );
aEntries.push_front( new ScPreviewLocationEntry( SC_PLOC_CELLRANGE, aPixelRect, rRange, bRepCol, bRepRow ) ); m_Entries.push_front( o3tl::make_unique<ScPreviewLocationEntry>(SC_PLOC_CELLRANGE, aPixelRect, rRange, bRepCol, bRepRow) );
OSL_ENSURE( nDrawRanges < SC_PREVIEW_MAXRANGES, "too many ranges" ); OSL_ENSURE( nDrawRanges < SC_PREVIEW_MAXRANGES, "too many ranges" );
...@@ -213,7 +215,7 @@ void ScPreviewLocationData::AddColHeaders( const Rectangle& rRect, SCCOL nStartC ...@@ -213,7 +215,7 @@ void ScPreviewLocationData::AddColHeaders( const Rectangle& rRect, SCCOL nStartC
ScRange aRange( nStartCol, 0, nTab, nEndCol, 0, nTab ); ScRange aRange( nStartCol, 0, nTab, nEndCol, 0, nTab );
Rectangle aPixelRect( pWindow->LogicToPixel( rRect ) ); Rectangle aPixelRect( pWindow->LogicToPixel( rRect ) );
aEntries.push_front( new ScPreviewLocationEntry( SC_PLOC_COLHEADER, aPixelRect, aRange, bRepCol, false ) ); m_Entries.push_front( o3tl::make_unique<ScPreviewLocationEntry>(SC_PLOC_COLHEADER, aPixelRect, aRange, bRepCol, false) );
} }
void ScPreviewLocationData::AddRowHeaders( const Rectangle& rRect, SCROW nStartRow, SCROW nEndRow, bool bRepRow ) void ScPreviewLocationData::AddRowHeaders( const Rectangle& rRect, SCROW nStartRow, SCROW nEndRow, bool bRepRow )
...@@ -222,7 +224,7 @@ void ScPreviewLocationData::AddRowHeaders( const Rectangle& rRect, SCROW nStartR ...@@ -222,7 +224,7 @@ void ScPreviewLocationData::AddRowHeaders( const Rectangle& rRect, SCROW nStartR
ScRange aRange( 0, nStartRow, nTab, 0, nEndRow, nTab ); ScRange aRange( 0, nStartRow, nTab, 0, nEndRow, nTab );
Rectangle aPixelRect( pWindow->LogicToPixel( rRect ) ); Rectangle aPixelRect( pWindow->LogicToPixel( rRect ) );
aEntries.push_front( new ScPreviewLocationEntry( SC_PLOC_ROWHEADER, aPixelRect, aRange, false, bRepRow ) ); m_Entries.push_front( o3tl::make_unique<ScPreviewLocationEntry>(SC_PLOC_ROWHEADER, aPixelRect, aRange, false, bRepRow) );
} }
void ScPreviewLocationData::AddHeaderFooter( const Rectangle& rRect, bool bHeader, bool bLeft ) void ScPreviewLocationData::AddHeaderFooter( const Rectangle& rRect, bool bHeader, bool bLeft )
...@@ -234,7 +236,7 @@ void ScPreviewLocationData::AddHeaderFooter( const Rectangle& rRect, bool bHeade ...@@ -234,7 +236,7 @@ void ScPreviewLocationData::AddHeaderFooter( const Rectangle& rRect, bool bHeade
( bLeft ? SC_PLOC_LEFTHEADER : SC_PLOC_RIGHTHEADER ) : ( bLeft ? SC_PLOC_LEFTHEADER : SC_PLOC_RIGHTHEADER ) :
( bLeft ? SC_PLOC_LEFTFOOTER : SC_PLOC_RIGHTFOOTER ); ( bLeft ? SC_PLOC_LEFTFOOTER : SC_PLOC_RIGHTFOOTER );
aEntries.push_front( new ScPreviewLocationEntry( eType, aPixelRect, aRange, false, false ) ); m_Entries.push_front( o3tl::make_unique<ScPreviewLocationEntry>(eType, aPixelRect, aRange, false, false) );
} }
void ScPreviewLocationData::AddNoteMark( const Rectangle& rRect, const ScAddress& rPos ) void ScPreviewLocationData::AddNoteMark( const Rectangle& rRect, const ScAddress& rPos )
...@@ -242,7 +244,7 @@ void ScPreviewLocationData::AddNoteMark( const Rectangle& rRect, const ScAddress ...@@ -242,7 +244,7 @@ void ScPreviewLocationData::AddNoteMark( const Rectangle& rRect, const ScAddress
ScRange aRange( rPos ); ScRange aRange( rPos );
Rectangle aPixelRect( pWindow->LogicToPixel( rRect ) ); Rectangle aPixelRect( pWindow->LogicToPixel( rRect ) );
aEntries.push_front( new ScPreviewLocationEntry( SC_PLOC_NOTEMARK, aPixelRect, aRange, false, false ) ); m_Entries.push_front( o3tl::make_unique<ScPreviewLocationEntry>(SC_PLOC_NOTEMARK, aPixelRect, aRange, false, false) );
} }
void ScPreviewLocationData::AddNoteText( const Rectangle& rRect, const ScAddress& rPos ) void ScPreviewLocationData::AddNoteText( const Rectangle& rRect, const ScAddress& rPos )
...@@ -250,7 +252,7 @@ void ScPreviewLocationData::AddNoteText( const Rectangle& rRect, const ScAddress ...@@ -250,7 +252,7 @@ void ScPreviewLocationData::AddNoteText( const Rectangle& rRect, const ScAddress
ScRange aRange( rPos ); ScRange aRange( rPos );
Rectangle aPixelRect( pWindow->LogicToPixel( rRect ) ); Rectangle aPixelRect( pWindow->LogicToPixel( rRect ) );
aEntries.push_front( new ScPreviewLocationEntry( SC_PLOC_NOTETEXT, aPixelRect, aRange, false, false ) ); m_Entries.push_front( o3tl::make_unique<ScPreviewLocationEntry>(SC_PLOC_NOTETEXT, aPixelRect, aRange, false, false) );
} }
void ScPreviewLocationData::GetDrawRange( sal_uInt16 nPos, Rectangle& rPixelRect, MapMode& rMapMode, sal_uInt8& rRangeId ) const void ScPreviewLocationData::GetDrawRange( sal_uInt16 nPos, Rectangle& rPixelRect, MapMode& rMapMode, sal_uInt8& rRangeId ) const
...@@ -264,14 +266,14 @@ void ScPreviewLocationData::GetDrawRange( sal_uInt16 nPos, Rectangle& rPixelRect ...@@ -264,14 +266,14 @@ void ScPreviewLocationData::GetDrawRange( sal_uInt16 nPos, Rectangle& rPixelRect
} }
} }
static ScPreviewLocationEntry* lcl_GetEntryByAddress( const boost::ptr_list<ScPreviewLocationEntry> &rEntries, static ScPreviewLocationEntry* lcl_GetEntryByAddress(
const ScAddress& rPos, ScPreviewLocationType eType ) ScPreviewLocationData::Entries_t const& rEntries,
const ScAddress& rPos, ScPreviewLocationType const eType)
{ {
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : rEntries)
for (it = rEntries.begin(); it != rEntries.end(); ++it)
{ {
if ( it->eType == eType && it->aCellRange.In( rPos ) ) if ( it->eType == eType && it->aCellRange.In( rPos ) )
return const_cast<ScPreviewLocationEntry*>(&(*it)); return const_cast<ScPreviewLocationEntry*>(it.get());
} }
return NULL; return NULL;
...@@ -308,7 +310,7 @@ Rectangle ScPreviewLocationData::GetOffsetPixel( const ScAddress& rCellPos, cons ...@@ -308,7 +310,7 @@ Rectangle ScPreviewLocationData::GetOffsetPixel( const ScAddress& rCellPos, cons
bool ScPreviewLocationData::GetCellPosition( const ScAddress& rCellPos, Rectangle& rCellRect ) const bool ScPreviewLocationData::GetCellPosition( const ScAddress& rCellPos, Rectangle& rCellRect ) const
{ {
ScPreviewLocationEntry* pEntry = lcl_GetEntryByAddress( aEntries, rCellPos, SC_PLOC_CELLRANGE ); ScPreviewLocationEntry* pEntry = lcl_GetEntryByAddress( m_Entries, rCellPos, SC_PLOC_CELLRANGE );
if ( pEntry ) if ( pEntry )
{ {
Rectangle aOffsetRect = GetOffsetPixel( rCellPos, pEntry->aCellRange ); Rectangle aOffsetRect = GetOffsetPixel( rCellPos, pEntry->aCellRange );
...@@ -323,8 +325,7 @@ bool ScPreviewLocationData::GetCellPosition( const ScAddress& rCellPos, Rectangl ...@@ -323,8 +325,7 @@ bool ScPreviewLocationData::GetCellPosition( const ScAddress& rCellPos, Rectangl
bool ScPreviewLocationData::HasCellsInRange( const Rectangle& rVisiblePixel ) const bool ScPreviewLocationData::HasCellsInRange( const Rectangle& rVisiblePixel ) const
{ {
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : m_Entries)
for (it = aEntries.begin(); it != aEntries.end(); ++it)
{ {
if ( it->eType == SC_PLOC_CELLRANGE || it->eType == SC_PLOC_COLHEADER || it->eType == SC_PLOC_ROWHEADER ) if ( it->eType == SC_PLOC_CELLRANGE || it->eType == SC_PLOC_COLHEADER || it->eType == SC_PLOC_ROWHEADER )
if ( it->aPixelRect.IsOver( rVisiblePixel ) ) if ( it->aPixelRect.IsOver( rVisiblePixel ) )
...@@ -336,8 +337,7 @@ bool ScPreviewLocationData::HasCellsInRange( const Rectangle& rVisiblePixel ) co ...@@ -336,8 +337,7 @@ bool ScPreviewLocationData::HasCellsInRange( const Rectangle& rVisiblePixel ) co
bool ScPreviewLocationData::GetHeaderPosition( Rectangle& rRect ) const bool ScPreviewLocationData::GetHeaderPosition( Rectangle& rRect ) const
{ {
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : m_Entries)
for (it = aEntries.begin(); it != aEntries.end(); ++it)
{ {
if ( it->eType == SC_PLOC_LEFTHEADER || it->eType == SC_PLOC_RIGHTHEADER ) if ( it->eType == SC_PLOC_LEFTHEADER || it->eType == SC_PLOC_RIGHTHEADER )
{ {
...@@ -351,8 +351,7 @@ bool ScPreviewLocationData::GetHeaderPosition( Rectangle& rRect ) const ...@@ -351,8 +351,7 @@ bool ScPreviewLocationData::GetHeaderPosition( Rectangle& rRect ) const
bool ScPreviewLocationData::GetFooterPosition( Rectangle& rRect ) const bool ScPreviewLocationData::GetFooterPosition( Rectangle& rRect ) const
{ {
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : m_Entries)
for (it = aEntries.begin(); it != aEntries.end(); ++it)
{ {
if ( it->eType == SC_PLOC_LEFTFOOTER || it->eType == SC_PLOC_RIGHTFOOTER ) if ( it->eType == SC_PLOC_LEFTFOOTER || it->eType == SC_PLOC_RIGHTFOOTER )
{ {
...@@ -366,8 +365,7 @@ bool ScPreviewLocationData::GetFooterPosition( Rectangle& rRect ) const ...@@ -366,8 +365,7 @@ bool ScPreviewLocationData::GetFooterPosition( Rectangle& rRect ) const
bool ScPreviewLocationData::IsHeaderLeft() const bool ScPreviewLocationData::IsHeaderLeft() const
{ {
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : m_Entries)
for (it = aEntries.begin(); it != aEntries.end(); ++it)
{ {
if ( it->eType == SC_PLOC_LEFTHEADER ) if ( it->eType == SC_PLOC_LEFTHEADER )
return true; return true;
...@@ -381,8 +379,7 @@ bool ScPreviewLocationData::IsHeaderLeft() const ...@@ -381,8 +379,7 @@ bool ScPreviewLocationData::IsHeaderLeft() const
bool ScPreviewLocationData::IsFooterLeft() const bool ScPreviewLocationData::IsFooterLeft() const
{ {
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : m_Entries)
for (it = aEntries.begin(); it != aEntries.end(); ++it)
{ {
if ( it->eType == SC_PLOC_LEFTFOOTER ) if ( it->eType == SC_PLOC_LEFTFOOTER )
return true; return true;
...@@ -399,8 +396,7 @@ long ScPreviewLocationData::GetNoteCountInRange( const Rectangle& rVisiblePixel, ...@@ -399,8 +396,7 @@ long ScPreviewLocationData::GetNoteCountInRange( const Rectangle& rVisiblePixel,
ScPreviewLocationType eType = bNoteMarks ? SC_PLOC_NOTEMARK : SC_PLOC_NOTETEXT; ScPreviewLocationType eType = bNoteMarks ? SC_PLOC_NOTEMARK : SC_PLOC_NOTETEXT;
sal_uLong nRet = 0; sal_uLong nRet = 0;
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : m_Entries)
for (it = aEntries.begin(); it != aEntries.end(); ++it)
{ {
if ( it->eType == eType && it->aPixelRect.IsOver( rVisiblePixel ) ) if ( it->eType == eType && it->aPixelRect.IsOver( rVisiblePixel ) )
++nRet; ++nRet;
...@@ -415,8 +411,7 @@ bool ScPreviewLocationData::GetNoteInRange( const Rectangle& rVisiblePixel, long ...@@ -415,8 +411,7 @@ bool ScPreviewLocationData::GetNoteInRange( const Rectangle& rVisiblePixel, long
ScPreviewLocationType eType = bNoteMarks ? SC_PLOC_NOTEMARK : SC_PLOC_NOTETEXT; ScPreviewLocationType eType = bNoteMarks ? SC_PLOC_NOTEMARK : SC_PLOC_NOTETEXT;
sal_uLong nPos = 0; sal_uLong nPos = 0;
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : m_Entries)
for (it = aEntries.begin(); it != aEntries.end(); ++it)
{ {
if ( it->eType == eType && it->aPixelRect.IsOver( rVisiblePixel ) ) if ( it->eType == eType && it->aPixelRect.IsOver( rVisiblePixel ) )
{ {
...@@ -438,8 +433,7 @@ Rectangle ScPreviewLocationData::GetNoteInRangeOutputRect(const Rectangle& rVisi ...@@ -438,8 +433,7 @@ Rectangle ScPreviewLocationData::GetNoteInRangeOutputRect(const Rectangle& rVisi
ScPreviewLocationType eType = bNoteMarks ? SC_PLOC_NOTEMARK : SC_PLOC_NOTETEXT; ScPreviewLocationType eType = bNoteMarks ? SC_PLOC_NOTEMARK : SC_PLOC_NOTETEXT;
sal_uLong nPos = 0; sal_uLong nPos = 0;
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : m_Entries)
for (it = aEntries.begin(); it != aEntries.end(); ++it)
{ {
if ( it->eType == eType && it->aPixelRect.IsOver( rVisiblePixel ) ) if ( it->eType == eType && it->aPixelRect.IsOver( rVisiblePixel ) )
{ {
...@@ -478,8 +472,7 @@ void ScPreviewLocationData::GetTableInfo( const Rectangle& rVisiblePixel, ScPrev ...@@ -478,8 +472,7 @@ void ScPreviewLocationData::GetTableInfo( const Rectangle& rVisiblePixel, ScPrev
Rectangle aHeaderRect, aRepeatRect, aMainRect; Rectangle aHeaderRect, aRepeatRect, aMainRect;
SCTAB nTab = 0; SCTAB nTab = 0;
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : m_Entries)
for (it = aEntries.begin(); it != aEntries.end(); ++it)
{ {
if ( it->eType == SC_PLOC_CELLRANGE ) if ( it->eType == SC_PLOC_CELLRANGE )
{ {
...@@ -714,8 +707,7 @@ Rectangle ScPreviewLocationData::GetCellOutputRect(const ScAddress& rCellPos) co ...@@ -714,8 +707,7 @@ Rectangle ScPreviewLocationData::GetCellOutputRect(const ScAddress& rCellPos) co
bool ScPreviewLocationData::GetMainCellRange( ScRange& rRange, Rectangle& rPixRect ) const bool ScPreviewLocationData::GetMainCellRange( ScRange& rRange, Rectangle& rPixRect ) const
{ {
boost::ptr_list<ScPreviewLocationEntry>::const_iterator it; for (auto const& it : m_Entries)
for (it = aEntries.begin(); it != aEntries.end(); ++it)
{ {
if ( it->eType == SC_PLOC_CELLRANGE && !it->bRepeatCol && !it->bRepeatRow ) if ( it->eType == SC_PLOC_CELLRANGE && !it->bRepeatCol && !it->bRepeatRow )
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment