summaryrefslogtreecommitdiff
path: root/svtools
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-10-17 15:52:51 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-10-18 10:18:51 +0200
commitfacb86ea0140a3c82f02754e311efad33e072d1c (patch)
treebca1361b048c913e4e3485b5a2316988cdd41271 /svtools
parentce2e94a98f5fc85bef7623a0227b3a95d8093288 (diff)
use std::unique_ptr in SvTreeList
Change-Id: Ibfba32d6855532aeb42c45f493a4f01f7d0cd4ee Reviewed-on: https://gerrit.libreoffice.org/43475 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svtools')
-rw-r--r--svtools/source/contnr/treelist.cxx73
1 files changed, 34 insertions, 39 deletions
diff --git a/svtools/source/contnr/treelist.cxx b/svtools/source/contnr/treelist.cxx
index 8d6c72b570c4..89ff1edccac1 100644
--- a/svtools/source/contnr/treelist.cxx
+++ b/svtools/source/contnr/treelist.cxx
@@ -63,17 +63,13 @@ SvTreeList::SvTreeList() :
nEntryCount = 0;
bAbsPositionsValid = false;
nRefCount = 1;
- pRootItem = new SvTreeListEntry;
+ pRootItem.reset(new SvTreeListEntry);
eSortMode = SortNone;
}
SvTreeList::~SvTreeList()
{
Clear();
- delete pRootItem;
-#ifdef DBG_UTIL
- pRootItem = nullptr;
-#endif
}
void SvTreeList::Broadcast(
@@ -123,7 +119,7 @@ bool SvTreeList::IsEntryVisible( const SvListView* pView, SvTreeListEntry* pEntr
bool bRetVal = false;
do
{
- if ( pEntry == pRootItem )
+ if ( pEntry == pRootItem.get() )
{
bRetVal = true;
break;
@@ -135,9 +131,9 @@ bool SvTreeList::IsEntryVisible( const SvListView* pView, SvTreeListEntry* pEntr
sal_uInt16 SvTreeList::GetDepth( const SvTreeListEntry* pEntry ) const
{
- DBG_ASSERT(pEntry&&pEntry!=pRootItem,"GetDepth:Bad Entry");
+ DBG_ASSERT(pEntry && pEntry!=pRootItem.get(),"GetDepth:Bad Entry");
sal_uInt16 nDepth = 0;
- while( pEntry->pParent != pRootItem )
+ while( pEntry->pParent != pRootItem.get() )
{
nDepth++;
pEntry = pEntry->pParent;
@@ -147,7 +143,7 @@ sal_uInt16 SvTreeList::GetDepth( const SvTreeListEntry* pEntry ) const
bool SvTreeList::IsAtRootDepth( const SvTreeListEntry* pEntry ) const
{
- return pEntry->pParent == pRootItem;
+ return pEntry->pParent == pRootItem.get();
}
void SvTreeList::Clear()
@@ -161,7 +157,7 @@ void SvTreeList::Clear()
bool SvTreeList::IsChild(const SvTreeListEntry* pParent, const SvTreeListEntry* pChild) const
{
if ( !pParent )
- pParent = pRootItem;
+ pParent = pRootItem.get();
if (pParent->m_Children.empty())
return false;
@@ -211,7 +207,7 @@ sal_uLong SvTreeList::Move(SvTreeListEntry* pSrcEntry,SvTreeListEntry* pTargetPa
// pDest may be 0!
DBG_ASSERT(pSrcEntry,"Entry?");
if ( !pTargetParent )
- pTargetParent = pRootItem;
+ pTargetParent = pRootItem.get();
DBG_ASSERT(pSrcEntry!=pTargetParent,"Move:Source=Target");
Broadcast( SvListAction::MOVING, pSrcEntry, pTargetParent, nListPos );
@@ -306,7 +302,7 @@ sal_uLong SvTreeList::Copy(SvTreeListEntry* pSrcEntry,SvTreeListEntry* pTargetPa
// pDest may be 0!
DBG_ASSERT(pSrcEntry,"Entry?");
if ( !pTargetParent )
- pTargetParent = pRootItem;
+ pTargetParent = pRootItem.get();
bAbsPositionsValid = false;
@@ -341,7 +337,7 @@ void SvTreeList::Move( SvTreeListEntry* pSrcEntry, SvTreeListEntry* pDstEntry )
if ( !pDstEntry )
{
- pParent = pRootItem;
+ pParent = pRootItem.get();
nPos = 0;
}
else
@@ -361,7 +357,7 @@ void SvTreeList::InsertTree(SvTreeListEntry* pSrcEntry,
return;
if ( !pTargetParent )
- pTargetParent = pRootItem;
+ pTargetParent = pRootItem.get();
// take sorting into account
GetInsertionPos( pSrcEntry, pTargetParent, nListPos );
@@ -452,7 +448,7 @@ sal_uLong SvTreeList::GetVisibleChildCount(const SvListView* pView, SvTreeListEn
{
DBG_ASSERT(pView,"GetVisChildCount:No View");
if ( !pParent )
- pParent = pRootItem;
+ pParent = pRootItem.get();
if (!pParent || !pView->IsExpanded(pParent) || pParent->m_Children.empty())
return 0;
@@ -473,7 +469,7 @@ sal_uLong SvTreeList::GetChildSelectionCount(const SvListView* pView,SvTreeListE
{
DBG_ASSERT(pView,"GetChildSelCount:No View");
if ( !pParent )
- pParent = pRootItem;
+ pParent = pRootItem.get();
if (!pParent || pParent->m_Children.empty())
return 0;
@@ -539,7 +535,7 @@ SvTreeListEntry* SvTreeList::Next( SvTreeListEntry* pActEntry, sal_uInt16* pDept
// Move up level(s) until we find the level where the next sibling exists.
SvTreeListEntry* pParent = pActEntry->pParent;
nDepth--;
- while( pParent != pRootItem && pParent != nullptr )
+ while( pParent != pRootItem.get() && pParent != nullptr )
{
DBG_ASSERT(pParent!=nullptr,"TreeData corrupt!");
pActualList = &pParent->pParent->m_Children;
@@ -577,7 +573,7 @@ SvTreeListEntry* SvTreeList::Prev( SvTreeListEntry* pActEntry ) const
}
return pActEntry;
}
- if ( pActEntry->pParent == pRootItem )
+ if ( pActEntry->pParent == pRootItem.get() )
return nullptr;
pActEntry = pActEntry->pParent;
@@ -686,7 +682,7 @@ SvTreeListEntry* SvTreeList::NextVisible(const SvListView* pView,SvTreeListEntry
SvTreeListEntry* pParent = pActEntry->pParent;
nDepth--;
- while( pParent != pRootItem )
+ while( pParent != pRootItem.get() )
{
pActualList = &pParent->pParent->m_Children;
nActualPos = pParent->GetChildListPos();
@@ -729,7 +725,7 @@ SvTreeListEntry* SvTreeList::PrevVisible(const SvListView* pView, SvTreeListEntr
return pActEntry;
}
- if ( pActEntry->pParent == pRootItem )
+ if ( pActEntry->pParent == pRootItem.get() )
return nullptr;
pActEntry = pActEntry->pParent;
@@ -808,7 +804,7 @@ SvTreeListEntry* SvTreeList::FirstSelected( const SvListView* pView) const
SvTreeListEntry* SvTreeList::FirstChild( SvTreeListEntry* pParent ) const
{
if ( !pParent )
- pParent = pRootItem;
+ pParent = pRootItem.get();
SvTreeListEntry* pResult;
if (!pParent->m_Children.empty())
pResult = pParent->m_Children[0].get();
@@ -888,8 +884,7 @@ sal_uLong SvTreeList::Insert( SvTreeListEntry* pEntry,SvTreeListEntry* pParent,s
DBG_ASSERT( pEntry,"Entry?");
if ( !pParent )
- pParent = pRootItem;
-
+ pParent = pRootItem.get();
SvTreeListEntries& rList = pParent->m_Children;
@@ -1133,9 +1128,9 @@ SvTreeListEntry* SvTreeList::GetRootLevelParent( SvTreeListEntry* pEntry ) const
if ( pEntry )
{
pCurParent = pEntry->pParent;
- if ( pCurParent == pRootItem )
+ if ( pCurParent == pRootItem.get() )
return pEntry; // is its own parent
- while( pCurParent && pCurParent->pParent != pRootItem )
+ while( pCurParent && pCurParent->pParent != pRootItem.get() )
pCurParent = pCurParent->pParent;
}
return pCurParent;
@@ -1150,7 +1145,7 @@ std::pair<SvTreeListEntries::iterator, SvTreeListEntries::iterator>
IteratorPair aRet(dummy.begin(), dummy.end());
if (!pParent)
- pParent = pRootItem;
+ pParent = pRootItem.get();
if (pParent->m_Children.empty())
// This entry has no children.
@@ -1199,7 +1194,7 @@ void SvListView::Impl::InitTable()
SvTreeListEntry* pEntry;
// insert root entry
- pEntry = m_rThis.pModel->pRootItem;
+ pEntry = m_rThis.pModel->pRootItem.get();
std::unique_ptr<SvViewDataEntry> pViewData(new SvViewDataEntry);
pViewData->SetExpanded(true);
m_DataTable.insert(std::make_pair(pEntry, std::move(pViewData)));
@@ -1229,7 +1224,7 @@ void SvListView::Clear()
if( pModel )
{
// insert root entry
- SvTreeListEntry* pEntry = pModel->pRootItem;
+ SvTreeListEntry* pEntry = pModel->pRootItem.get();
std::unique_ptr<SvViewDataEntry> pViewData(new SvViewDataEntry);
pViewData->SetExpanded(true);
m_pImpl->m_DataTable.insert(std::make_pair(pEntry, std::move(pViewData)));
@@ -1296,7 +1291,7 @@ void SvListView::Impl::ActionMoving( SvTreeListEntry* pEntry )
{
SvTreeListEntry* pParent = pEntry->pParent;
DBG_ASSERT(pParent,"Model not consistent");
- if (pParent != m_rThis.pModel->pRootItem && pParent->m_Children.size() == 1)
+ if (pParent != m_rThis.pModel->pRootItem.get() && pParent->m_Children.size() == 1)
{
SvViewDataEntry* pViewData = m_DataTable.find( pParent )->second.get();
pViewData->SetExpanded(false);
@@ -1390,7 +1385,7 @@ void SvListView::Impl::ActionRemoving( SvTreeListEntry* pEntry )
RemoveViewData( pEntry );
SvTreeListEntry* pCurEntry = pEntry->pParent;
- if (pCurEntry && pCurEntry != m_rThis.pModel->pRootItem && pCurEntry->m_Children.size() == 1)
+ if (pCurEntry && pCurEntry != m_rThis.pModel->pRootItem.get() && pCurEntry->m_Children.size() == 1)
{
pViewData = m_DataTable.find(pCurEntry)->second.get();
pViewData->SetExpanded(false);
@@ -1518,7 +1513,7 @@ void SvTreeList::Resort()
{
Broadcast( SvListAction::RESORTING );
bAbsPositionsValid = false;
- ResortChildren( pRootItem );
+ ResortChildren( pRootItem.get() );
Broadcast( SvListAction::RESORTED );
}
@@ -1564,7 +1559,7 @@ void SvTreeList::Reverse()
{
Broadcast(SvListAction::REVERSING);
bAbsPositionsValid = false;
- ReverseChildren(pRootItem);
+ ReverseChildren(pRootItem.get());
Broadcast(SvListAction::REVERSED);
}
@@ -1637,19 +1632,19 @@ void SvTreeList::GetInsertionPos( SvTreeListEntry const * pEntry, SvTreeListEntr
bool SvTreeList::HasChildren( const SvTreeListEntry* pEntry ) const
{
if ( !pEntry )
- pEntry = pRootItem;
+ pEntry = pRootItem.get();
return !pEntry->m_Children.empty();
}
bool SvTreeList::HasParent( const SvTreeListEntry* pEntry ) const
{
- return pEntry->pParent != pRootItem;
+ return pEntry->pParent != pRootItem.get();
}
SvTreeListEntry* SvTreeList::GetEntry( SvTreeListEntry* pParent, sal_uLong nPos ) const
{ if ( !pParent )
- pParent = pRootItem;
+ pParent = pRootItem.get();
SvTreeListEntry* pRet = nullptr;
if (nPos < pParent->m_Children.size())
pRet = pParent->m_Children[nPos].get();
@@ -1667,21 +1662,21 @@ SvTreeListEntry* SvTreeList::GetEntry( sal_uLong nRootPos ) const
const SvTreeListEntries& SvTreeList::GetChildList( SvTreeListEntry* pParent ) const
{
if ( !pParent )
- pParent = pRootItem;
+ pParent = pRootItem.get();
return pParent->m_Children;
}
SvTreeListEntries& SvTreeList::GetChildList( SvTreeListEntry* pParent )
{
if ( !pParent )
- pParent = pRootItem;
+ pParent = pRootItem.get();
return pParent->m_Children;
}
const SvTreeListEntry* SvTreeList::GetParent( const SvTreeListEntry* pEntry ) const
{
const SvTreeListEntry* pParent = pEntry->pParent;
- if (pParent == pRootItem)
+ if (pParent == pRootItem.get())
pParent = nullptr;
return pParent;
}
@@ -1689,7 +1684,7 @@ const SvTreeListEntry* SvTreeList::GetParent( const SvTreeListEntry* pEntry ) co
SvTreeListEntry* SvTreeList::GetParent( SvTreeListEntry* pEntry )
{
SvTreeListEntry* pParent = pEntry->pParent;
- if (pParent == pRootItem)
+ if (pParent == pRootItem.get())
pParent = nullptr;
return pParent;
}