basctl/source/basicide/moduldl2.cxx | 5 cui/source/customize/acccfg.cxx | 10 - cui/source/customize/cfg.cxx | 2 cui/source/customize/macropg.cxx | 10 - cui/source/dialogs/thesdlg.cxx | 9 - cui/source/options/fontsubs.cxx | 23 +- cui/source/options/optHeaderTabListbox.cxx | 5 cui/source/options/optaboutconfig.cxx | 87 ++++++---- cui/source/options/optfltr.cxx | 19 +- cui/source/options/optlingu.cxx | 20 +- cui/source/tabpages/autocdlg.cxx | 27 +-- cui/source/tabpages/macroass.cxx | 5 dbaccess/source/ui/browser/unodatbr.cxx | 2 dbaccess/source/ui/control/dbtreelistbox.cxx | 6 dbaccess/source/ui/control/tabletree.cxx | 3 dbaccess/source/ui/misc/WNameMatch.cxx | 4 include/svtools/treelist.hxx | 2 include/svtools/treelistentries.hxx | 5 include/svtools/treelistentry.hxx | 17 + sc/source/ui/miscdlgs/solveroptions.cxx | 22 +- sc/source/ui/navipi/content.cxx | 4 sc/source/ui/xmlsource/xmlsourcedlg.cxx | 6 sd/source/ui/animations/CustomAnimationList.cxx | 12 - sd/source/ui/dlg/dlgassim.cxx | 19 +- sd/source/ui/dlg/sdtreelb.cxx | 4 sfx2/source/dialog/templdlg.cxx | 10 - svtools/source/contnr/svimpbox.cxx | 2 svtools/source/contnr/svtabbx.cxx | 4 svtools/source/contnr/treelist.cxx | 208 ++++++++++++------------ svtools/source/contnr/treelistbox.cxx | 22 +- svtools/source/contnr/treelistentry.cxx | 67 +++---- svtools/source/uno/treecontrolpeer.cxx | 11 - svx/source/dialog/ctredlin.cxx | 15 + svx/source/dialog/docrecovery.cxx | 5 svx/source/dialog/fontlb.cxx | 10 - svx/source/form/filtnav.cxx | 9 - sw/qa/extras/uiwriter/uiwriter.cxx | 4 sw/source/core/unocore/unoflatpara.cxx | 8 sw/source/uibase/utlui/content.cxx | 5 sw/source/uibase/utlui/glbltree.cxx | 5 40 files changed, 392 insertions(+), 321 deletions(-)
New commits: commit 0a91e08a46118b495f80f7901b2132b194d6d409 Author: Michael Stahl <mst...@redhat.com> Date: Mon Jul 20 20:41:43 2015 +0200 sw: SwXFlatParagraph::isChecked() return value is inverted It was checked if the flag says it's not dirty. Thanks to Varun Dhall for pointing to this problem. Change-Id: I4aa1fef8b2251f0f3e579930b39d6d5a256c1895 diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index bbf8c2c..08158cc 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -1074,9 +1074,9 @@ void SwUiWriterTest::testXFlatParagraph() //checking modified status CPPUNIT_ASSERT(!xFlatPara->isModified()); //checking "checked" staus, modifying it and asserting the changes - CPPUNIT_ASSERT(xFlatPara->isChecked(sal_Int32(text::TextMarkupType::SPELLCHECK))); - xFlatPara->setChecked((sal_Int32(text::TextMarkupType::SPELLCHECK)), true); CPPUNIT_ASSERT(!xFlatPara->isChecked(sal_Int32(text::TextMarkupType::SPELLCHECK))); + xFlatPara->setChecked((sal_Int32(text::TextMarkupType::SPELLCHECK)), true); + CPPUNIT_ASSERT(xFlatPara->isChecked(sal_Int32(text::TextMarkupType::SPELLCHECK))); //getting other XFlatParagraphs and asserting their contents uno::Reference<text::XFlatParagraph> xFlatPara2(xFPIterator->getParaAfter(xFlatPara)); CPPUNIT_ASSERT_EQUAL(OUString("This is another sample text"), xFlatPara2->getText()); diff --git a/sw/source/core/unocore/unoflatpara.cxx b/sw/source/core/unocore/unoflatpara.cxx index 7922c37..4af396a 100644 --- a/sw/source/core/unocore/unoflatpara.cxx +++ b/sw/source/core/unocore/unoflatpara.cxx @@ -218,14 +218,14 @@ sal_Bool SAL_CALL SwXFlatParagraph::isChecked( ::sal_Int32 nType ) throw (uno::R if (GetTextNode()) { if ( text::TextMarkupType::SPELLCHECK == nType ) - return GetTextNode()->IsWrongDirty(); + return !GetTextNode()->IsWrongDirty(); else if ( text::TextMarkupType::PROOFREADING == nType ) - return GetTextNode()->IsGrammarCheckDirty(); + return !GetTextNode()->IsGrammarCheckDirty(); else if ( text::TextMarkupType::SMARTTAG == nType ) - return GetTextNode()->IsSmartTagDirty(); + return !GetTextNode()->IsSmartTagDirty(); } - return sal_False; + return sal_True; } // text::XFlatParagraph: commit cd74d49de55e87a4e801e8a245d198ea51d0ec34 Author: Michael Stahl <mst...@redhat.com> Date: Mon Jul 20 21:27:01 2015 +0200 svtools: replace boost::ptr_vector with std::vector<std::unique_ptr> Change-Id: I895c950c11499afb278b989565f3eae33aaf4a76 diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx index a87d809..811976c 100644 --- a/cui/source/options/optaboutconfig.cxx +++ b/cui/source/options/optaboutconfig.cxx @@ -213,7 +213,7 @@ void CuiAboutConfigTabPage::InsertEntry(const OUString& rPropertyPath, const OUS if(bInsertToPrefBox) m_pPrefBox->Insert( pEntry, pParentEntry ); else - m_prefBoxEntries.push_back( pEntry ); + m_prefBoxEntries.push_back(std::unique_ptr<SvTreeListEntry>(pEntry)); } void CuiAboutConfigTabPage::Reset() @@ -308,10 +308,10 @@ void CuiAboutConfigTabPage::FillItems(const Reference< XNameAccess >& xNameAcces // leaf node OUString sPropertyName = seqItems[i]; SvTreeListEntries::iterator it = std::find_if(m_modifiedPrefBoxEntries.begin(), m_modifiedPrefBoxEntries.end(), - [&sPath, &sPropertyName](SvTreeListEntry &entry) -> bool + [&sPath, &sPropertyName](std::unique_ptr<SvTreeListEntry> const& pEntry) -> bool { - return static_cast< UserData* >( entry.GetUserData() )->sPropertyPath.equals( sPath ) && - static_cast< SvLBoxString& >( entry.GetItem(2) ).GetText().equals( sPropertyName ); + return static_cast<UserData*>(pEntry->GetUserData())->sPropertyPath.equals(sPath) + && static_cast<SvLBoxString&>(pEntry->GetItem(2)).GetText().equals(sPropertyName); } ); @@ -319,7 +319,7 @@ void CuiAboutConfigTabPage::FillItems(const Reference< XNameAccess >& xNameAcces OUString sValue; if (it != m_modifiedPrefBoxEntries.end()) - sValue = static_cast< SvLBoxString& >( it->GetItem(4) ).GetText(); + sValue = static_cast< SvLBoxString& >( (*it)->GetItem(4) ).GetText(); else { switch( aNode.getValueType().getTypeClass() ) @@ -772,35 +772,38 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl ) m_pPrefBox->SetEntryText( sDialogValue, pEntry, 3 ); //update m_prefBoxEntries SvTreeListEntries::iterator it = std::find_if(m_prefBoxEntries.begin(), m_prefBoxEntries.end(), - [&pUserData, &sPropertyName](SvTreeListEntry &entry) -> bool + [&pUserData, &sPropertyName](std::unique_ptr<SvTreeListEntry> const& rpEntry) -> bool { - return static_cast< UserData* >( entry.GetUserData() )->sPropertyPath.equals( pUserData->sPropertyPath ) && - static_cast< SvLBoxString& >( entry.GetItem(2) ).GetText().equals( sPropertyName ); + return static_cast<UserData*>(rpEntry->GetUserData())->sPropertyPath.equals(pUserData->sPropertyPath) + && static_cast<SvLBoxString&>(rpEntry->GetItem(2)).GetText().equals(sPropertyName); } ); if (it != m_prefBoxEntries.end()) { - it->ReplaceItem(std::unique_ptr<SvLBoxString>( - new SvLBoxString( &(*it), 0, sDialogValue)), 4); + (*it)->ReplaceItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString( (*it).get(), 0, sDialogValue)), 4); SvTreeListEntries::iterator modifiedIt = std::find_if( m_modifiedPrefBoxEntries.begin(), m_modifiedPrefBoxEntries.end(), - [&pUserData, &sPropertyName](SvTreeListEntry &entry) -> bool + [&pUserData, &sPropertyName](std::unique_ptr<SvTreeListEntry> const& rpEntry) -> bool { - return static_cast< UserData* >( entry.GetUserData() )->sPropertyPath.equals( pUserData->sPropertyPath ) && - static_cast< SvLBoxString& >( entry.GetItem(2) ).GetText().equals( sPropertyName ); + return static_cast<UserData*>(rpEntry->GetUserData())->sPropertyPath.equals(pUserData->sPropertyPath) + && static_cast<SvLBoxString&>(rpEntry->GetItem(2)).GetText().equals(sPropertyName); } ); if( modifiedIt != m_modifiedPrefBoxEntries.end()) - modifiedIt->ReplaceItem(std::unique_ptr<SvLBoxString>( - new SvLBoxString(&(*modifiedIt), 0, sDialogValue)), + { + (*modifiedIt)->ReplaceItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString((*modifiedIt).get(), 0, sDialogValue)), 4); + } else { - SvTreeListEntry *pCloneEntry = new SvTreeListEntry; - pCloneEntry->Clone( &(*it)); - m_modifiedPrefBoxEntries.push_back( pCloneEntry ); + std::unique_ptr<SvTreeListEntry> pCloneEntry( + new SvTreeListEntry); + pCloneEntry->Clone((*it).get()); + m_modifiedPrefBoxEntries.push_back(std::move(pCloneEntry)); } } } @@ -833,7 +836,7 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, SearchHdl_Impl) { m_options.searchString = m_pSearchEdit->GetText(); utl::TextSearch textSearch( m_options ); - for(auto it = m_prefBoxEntries.begin(); it != m_prefBoxEntries.end(); ++it) + for (auto const& it : m_prefBoxEntries) { sal_Int32 endPos, startPos = 0; @@ -848,7 +851,7 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, SearchHdl_Impl) if( textSearch.SearchForward( scrTxt, &startPos, &endPos ) ) { SvTreeListEntry* pEntry = new SvTreeListEntry; - pEntry->Clone( &(*it) ); + pEntry->Clone( it.get() ); InsertEntry( pEntry ); break; } diff --git a/dbaccess/source/ui/browser/unodatbr.cxx b/dbaccess/source/ui/browser/unodatbr.cxx index 7481d2b..1c5e945 100644 --- a/dbaccess/source/ui/browser/unodatbr.cxx +++ b/dbaccess/source/ui/browser/unodatbr.cxx @@ -3773,7 +3773,7 @@ void SbaTableQueryBrowser::impl_cleanupDataSourceEntry( const OUString& _rDataSo for (; it != itEnd; ++it) { - SvTreeListEntry* pEntry = &(*it); + SvTreeListEntry* pEntry = (*it).get(); const DBTreeListUserData* pData = static_cast<const DBTreeListUserData*>(pEntry->GetUserData()); pEntry->SetUserData(NULL); delete pData; diff --git a/dbaccess/source/ui/control/dbtreelistbox.cxx b/dbaccess/source/ui/control/dbtreelistbox.cxx index 1944410..77edc1f 100644 --- a/dbaccess/source/ui/control/dbtreelistbox.cxx +++ b/dbaccess/source/ui/control/dbtreelistbox.cxx @@ -103,7 +103,7 @@ SvTreeListEntry* DBTreeListBox::GetEntryPosByName( const OUString& aName, SvTree SvTreeListEntries::iterator it = aIters.first, itEnd = aIters.second; for (; it != itEnd; ++it) { - pEntry = &(*it); + pEntry = (*it).get(); const SvLBoxString* pItem = static_cast<const SvLBoxString*>( pEntry->GetFirstItem(SV_ITEM_ID_LBOXSTRING)); diff --git a/include/svtools/treelist.hxx b/include/svtools/treelist.hxx index c12cf85..510014a 100644 --- a/include/svtools/treelist.hxx +++ b/include/svtools/treelist.hxx @@ -109,7 +109,7 @@ class SVT_DLLPUBLIC SvTreeList SVT_DLLPRIVATE void SetAbsolutePositions(); SVT_DLLPRIVATE void CloneChildren( - SvTreeListEntries& rDst, sal_uLong& rCloneCount, SvTreeListEntries& rSrc, SvTreeListEntry* pNewParent) const; + SvTreeListEntries& rDst, sal_uLong& rCloneCount, SvTreeListEntries& rSrc, SvTreeListEntry& rNewParent) const; /** * Invalidate the cached position data to have them re-generated before diff --git a/include/svtools/treelistentries.hxx b/include/svtools/treelistentries.hxx index 051be76..a7880f8 100644 --- a/include/svtools/treelistentries.hxx +++ b/include/svtools/treelistentries.hxx @@ -10,10 +10,11 @@ #ifndef INCLUDED_SVTOOLS_TREELISTENTRIES_HXX #define INCLUDED_SVTOOLS_TREELISTENTRIES_HXX -#include <boost/ptr_container/ptr_vector.hpp> +#include <vector> +#include <memory> class SvTreeListEntry; -typedef boost::ptr_vector<SvTreeListEntry> SvTreeListEntries; +typedef std::vector<std::unique_ptr<SvTreeListEntry>> SvTreeListEntries; #endif diff --git a/include/svtools/treelistentry.hxx b/include/svtools/treelistentry.hxx index 2fcd628..640aaf3 100644 --- a/include/svtools/treelistentry.hxx +++ b/include/svtools/treelistentry.hxx @@ -57,7 +57,7 @@ class SVT_DLLPUBLIC SvTreeListEntry typedef std::vector<std::unique_ptr<SvLBoxItem>> ItemsType; SvTreeListEntry* pParent; - SvTreeListEntries maChildren; + SvTreeListEntries m_Children; sal_uLong nAbsPos; sal_uLong nListPos; ItemsType m_Items; @@ -82,8 +82,8 @@ public: bool HasChildListPos() const; sal_uLong GetChildListPos() const; - SvTreeListEntries& GetChildEntries() { return maChildren;} - const SvTreeListEntries& GetChildEntries() const { return maChildren;} + SvTreeListEntries& GetChildEntries() { return m_Children; } + const SvTreeListEntries& GetChildEntries() const { return m_Children; } void Clone(SvTreeListEntry* pSource); diff --git a/sc/source/ui/xmlsource/xmlsourcedlg.cxx b/sc/source/ui/xmlsource/xmlsourcedlg.cxx index 3ba29ee..3777b5e 100644 --- a/sc/source/ui/xmlsource/xmlsourcedlg.cxx +++ b/sc/source/ui/xmlsource/xmlsourcedlg.cxx @@ -448,8 +448,7 @@ void ScXMLSourceDlg::SetRangeLinkable() void ScXMLSourceDlg::SelectAllChildEntries(SvTreeListEntry& rEntry) { SvTreeListEntries& rChildren = rEntry.GetChildEntries(); - SvTreeListEntries::iterator it = rChildren.begin(), itEnd = rChildren.end(); - for (; it != itEnd; ++it) + for (auto const& it : rChildren) { SvTreeListEntry& r = *it; SelectAllChildEntries(r); // select recursively. @@ -521,8 +520,7 @@ void getFieldLinks( // No more children. We're done. return; - SvTreeListEntries::const_iterator it = rChildren.begin(), itEnd = rChildren.end(); - for (; it != itEnd; ++it) + for (auto const& it : rChildren) { const SvTreeListEntry& rChild = *it; OUString aPath = getXPath(rTree, rChild, rNamespaces); diff --git a/svtools/source/contnr/svimpbox.cxx b/svtools/source/contnr/svimpbox.cxx index 6ef5342..128e172 100644 --- a/svtools/source/contnr/svimpbox.cxx +++ b/svtools/source/contnr/svimpbox.cxx @@ -3312,7 +3312,7 @@ void SvImpLBox::FindMostRight_Impl( SvTreeListEntry* pParent, SvTreeListEntry* p size_t nCount = rList.size(); for( size_t nCur = 0; nCur < nCount; nCur++ ) { - SvTreeListEntry* pChild = &rList[nCur]; + SvTreeListEntry* pChild = rList[nCur].get(); if( pChild != pEntryToIgnore ) { SetMostRight( pChild ); diff --git a/svtools/source/contnr/treelist.cxx b/svtools/source/contnr/treelist.cxx index 0753495..27520b1 100644 --- a/svtools/source/contnr/treelist.cxx +++ b/svtools/source/contnr/treelist.cxx @@ -162,13 +162,12 @@ bool SvTreeList::IsChild(const SvTreeListEntry* pParent, const SvTreeListEntry* if ( !pParent ) pParent = pRootItem; - if (pParent->maChildren.empty()) + if (pParent->m_Children.empty()) return false; - SvTreeListEntries::const_iterator it = pParent->maChildren.begin(), itEnd = pParent->maChildren.end(); - for (; it != itEnd; ++it) + for (auto const& it : pParent->m_Children) { - const SvTreeListEntry* pThis = &(*it); + const SvTreeListEntry* pThis = it.get(); if (pThis == pChild) return true; else @@ -189,9 +188,9 @@ class FindByPointer : std::unary_function<SvTreeListEntry, bool> public: explicit FindByPointer(const SvTreeListEntry* p) : mpEntry(p) {} - bool operator() (const SvTreeListEntry& rEntry) const + bool operator() (std::unique_ptr<SvTreeListEntry> const& rpEntry) const { - return mpEntry == &rEntry; + return mpEntry == rpEntry.get(); } }; @@ -223,8 +222,8 @@ sal_uLong SvTreeList::Move(SvTreeListEntry* pSrcEntry,SvTreeListEntry* pTargetPa bAbsPositionsValid = false; - SvTreeListEntries& rDst = pTargetParent->maChildren; - SvTreeListEntries& rSrc = pSrcEntry->pParent->maChildren; + SvTreeListEntries& rDst = pTargetParent->m_Children; + SvTreeListEntries& rSrc = pSrcEntry->pParent->m_Children; bool bSameParent = pTargetParent == pSrcEntry->pParent; @@ -232,7 +231,7 @@ sal_uLong SvTreeList::Move(SvTreeListEntry* pSrcEntry,SvTreeListEntry* pTargetPa SvTreeListEntries::iterator itSrcPos = rSrc.begin(), itEnd = rSrc.end(); for (; itSrcPos != itEnd; ++itSrcPos) { - const SvTreeListEntry* p = &(*itSrcPos); + const SvTreeListEntry* p = (*itSrcPos).get(); if (p == pSrcEntry) // Found break; @@ -258,7 +257,10 @@ sal_uLong SvTreeList::Move(SvTreeListEntry* pSrcEntry,SvTreeListEntry* pTargetPa --nListPos; // Release the original. - SvTreeListEntries::auto_type p = rSrc.release(itSrcPos); + std::unique_ptr<SvTreeListEntry> pOriginal(std::move(*itSrcPos)); + assert(pOriginal.get()); + rSrc.erase(itSrcPos); + // Determine the insertion position. SvTreeListEntries::iterator itDstPos = rSrc.end(); if (nListPos < rSrc.size()) @@ -266,7 +268,7 @@ sal_uLong SvTreeList::Move(SvTreeListEntry* pSrcEntry,SvTreeListEntry* pTargetPa itDstPos = rSrc.begin(); std::advance(itDstPos, nListPos); } - rSrc.insert(itDstPos, p.release()); + rSrc.insert(itDstPos, std::move(pOriginal)); } else { @@ -277,8 +279,10 @@ sal_uLong SvTreeList::Move(SvTreeListEntry* pSrcEntry,SvTreeListEntry* pTargetPa itDstPos = rDst.begin(); std::advance(itDstPos, nListPos); } - SvTreeListEntries::auto_type p = rSrc.release(itSrcPos); - rDst.insert(itDstPos, p.release()); + std::unique_ptr<SvTreeListEntry> pOriginal(std::move(*itSrcPos)); + assert(pOriginal.get()); + rSrc.erase(itSrcPos); + rDst.insert(itDstPos, std::move(pOriginal)); } // move parent umsetzen (do this only now, because we need the parent for @@ -309,7 +313,7 @@ sal_uLong SvTreeList::Copy(SvTreeListEntry* pSrcEntry,SvTreeListEntry* pTargetPa SvTreeListEntry* pClonedEntry = Clone( pSrcEntry, nCloneCount ); nEntryCount += nCloneCount; - SvTreeListEntries& rDst = pTargetParent->maChildren; + SvTreeListEntries& rDst = pTargetParent->m_Children; pClonedEntry->pParent = pTargetParent; // move parent @@ -317,10 +321,10 @@ sal_uLong SvTreeList::Copy(SvTreeListEntry* pSrcEntry,SvTreeListEntry* pTargetPa { SvTreeListEntries::iterator itPos = rDst.begin(); // insertion position. std::advance(itPos, nListPos); - rDst.insert(itPos, pClonedEntry); + rDst.insert(itPos, std::unique_ptr<SvTreeListEntry>(pClonedEntry)); } else - rDst.push_back(pClonedEntry); + rDst.push_back(std::unique_ptr<SvTreeListEntry>(pClonedEntry)); SetListPositions(rDst); // correct list position in target list @@ -364,16 +368,16 @@ void SvTreeList::InsertTree(SvTreeListEntry* pSrcEntry, bAbsPositionsValid = false; pSrcEntry->pParent = pTargetParent; // move parent - SvTreeListEntries& rDst = pTargetParent->maChildren; + SvTreeListEntries& rDst = pTargetParent->m_Children; if (nListPos < rDst.size()) { SvTreeListEntries::iterator itPos = rDst.begin(); std::advance(itPos, nListPos); - rDst.insert(itPos, pSrcEntry); + rDst.insert(itPos, std::unique_ptr<SvTreeListEntry>(pSrcEntry)); } else - rDst.push_back(pSrcEntry); + rDst.push_back(std::unique_ptr<SvTreeListEntry>(pSrcEntry)); SetListPositions(rDst); // correct list position in target list nEntryCount += GetChildCount( pSrcEntry ); @@ -400,29 +404,29 @@ SvTreeListEntry* SvTreeList::Clone( SvTreeListEntry* pEntry, sal_uLong& nCloneCo { SvTreeListEntry* pClonedEntry = CloneEntry( pEntry ); nCloneCount = 1; - if (!pEntry->maChildren.empty()) + if (!pEntry->m_Children.empty()) // Clone the child entries. - CloneChildren(pClonedEntry->maChildren, nCloneCount, pEntry->maChildren, pClonedEntry); + CloneChildren(pClonedEntry->m_Children, nCloneCount, pEntry->m_Children, *pClonedEntry); return pClonedEntry; } void SvTreeList::CloneChildren( - SvTreeListEntries& rDst, sal_uLong& rCloneCount, SvTreeListEntries& rSrc, SvTreeListEntry* pNewParent) const + SvTreeListEntries& rDst, sal_uLong& rCloneCount, SvTreeListEntries& rSrc, SvTreeListEntry& rNewParent) const { SvTreeListEntries aClone; SvTreeListEntries::iterator it = rSrc.begin(), itEnd = rSrc.end(); for (; it != itEnd; ++it) { - SvTreeListEntry& rEntry = *it; - SvTreeListEntry* pNewEntry = CloneEntry(&rEntry); + SvTreeListEntry& rEntry = **it; + std::unique_ptr<SvTreeListEntry> pNewEntry(CloneEntry(&rEntry)); ++rCloneCount; - pNewEntry->pParent = pNewParent; - if (!rEntry.maChildren.empty()) + pNewEntry->pParent = &rNewParent; + if (!rEntry.m_Children.empty()) // Clone entries recursively. - CloneChildren(pNewEntry->maChildren, rCloneCount, rEntry.maChildren, pNewEntry); + CloneChildren(pNewEntry->m_Children, rCloneCount, rEntry.m_Children, *pNewEntry); - aClone.push_back(pNewEntry); + aClone.push_back(std::move(pNewEntry)); } rDst.swap(aClone); @@ -433,7 +437,7 @@ sal_uLong SvTreeList::GetChildCount( const SvTreeListEntry* pParent ) const if ( !pParent ) return GetEntryCount(); - if (!pParent || pParent->maChildren.empty()) + if (!pParent || pParent->m_Children.empty()) return 0; sal_uLong nCount = 0; @@ -454,7 +458,7 @@ sal_uLong SvTreeList::GetVisibleChildCount(const SvListView* pView, SvTreeListEn if ( !pParent ) pParent = pRootItem; - if (!pParent || !pView->IsExpanded(pParent) || pParent->maChildren.empty()) + if (!pParent || !pView->IsExpanded(pParent) || pParent->m_Children.empty()) return 0; sal_uLong nCount = 0; @@ -475,7 +479,7 @@ sal_uLong SvTreeList::GetChildSelectionCount(const SvListView* pView,SvTreeListE if ( !pParent ) pParent = pRootItem; - if (!pParent || pParent->maChildren.empty()) + if (!pParent || pParent->m_Children.empty()) return 0; sal_uLong nCount = 0; @@ -494,7 +498,7 @@ sal_uLong SvTreeList::GetChildSelectionCount(const SvListView* pView,SvTreeListE SvTreeListEntry* SvTreeList::First() const { if ( nEntryCount ) - return &pRootItem->maChildren[0]; + return pRootItem->m_Children[0].get(); else return 0; } @@ -514,14 +518,14 @@ SvTreeListEntry* SvTreeList::Next( SvTreeListEntry* pActEntry, sal_uInt16* pDept } // Get the list where the current entry belongs to (from its parent). - SvTreeListEntries* pActualList = &pActEntry->pParent->maChildren; + SvTreeListEntries* pActualList = &pActEntry->pParent->m_Children; sal_uLong nActualPos = pActEntry->GetChildListPos(); - if (!pActEntry->maChildren.empty()) + if (!pActEntry->m_Children.empty()) { // The current entry has children. Get its first child entry. nDepth++; - pActEntry = &pActEntry->maChildren[0]; + pActEntry = pActEntry->m_Children[0].get(); if ( bWithDepth ) *pDepth = nDepth; return pActEntry; @@ -530,7 +534,7 @@ SvTreeListEntry* SvTreeList::Next( SvTreeListEntry* pActEntry, sal_uInt16* pDept if (pActualList->size() > (nActualPos+1)) { // Get the next sibling of the current entry. - pActEntry = &(*pActualList)[nActualPos+1]; + pActEntry = (*pActualList)[nActualPos+1].get(); if ( bWithDepth ) *pDepth = nDepth; return pActEntry; @@ -542,11 +546,11 @@ SvTreeListEntry* SvTreeList::Next( SvTreeListEntry* pActEntry, sal_uInt16* pDept while( pParent != pRootItem && pParent != 0 ) { DBG_ASSERT(pParent!=0,"TreeData corrupt!"); - pActualList = &pParent->pParent->maChildren; + pActualList = &pParent->pParent->m_Children; nActualPos = pParent->GetChildListPos(); if (pActualList->size() > (nActualPos+1)) { - pActEntry = &(*pActualList)[nActualPos+1]; + pActEntry = (*pActualList)[nActualPos+1].get(); if ( bWithDepth ) *pDepth = nDepth; return pActEntry; @@ -569,17 +573,17 @@ SvTreeListEntry* SvTreeList::Prev( SvTreeListEntry* pActEntry, sal_uInt16* pDept bWithDepth = true; } - SvTreeListEntries* pActualList = &pActEntry->pParent->maChildren; + SvTreeListEntries* pActualList = &pActEntry->pParent->m_Children; sal_uLong nActualPos = pActEntry->GetChildListPos(); if ( nActualPos > 0 ) { - pActEntry = &(*pActualList)[nActualPos-1]; - while (!pActEntry->maChildren.empty()) + pActEntry = (*pActualList)[nActualPos-1].get(); + while (!pActEntry->m_Children.empty()) { - pActualList = &pActEntry->maChildren; + pActualList = &pActEntry->m_Children; nDepth++; - pActEntry = &pActualList->back(); + pActEntry = pActualList->back().get(); } if ( bWithDepth ) *pDepth = nDepth; @@ -602,12 +606,12 @@ SvTreeListEntry* SvTreeList::Prev( SvTreeListEntry* pActEntry, sal_uInt16* pDept SvTreeListEntry* SvTreeList::Last() const { - SvTreeListEntries* pActList = &pRootItem->maChildren; + SvTreeListEntries* pActList = &pRootItem->m_Children; SvTreeListEntry* pEntry = NULL; while (!pActList->empty()) { - pEntry = &pActList->back(); - pActList = &pEntry->maChildren; + pEntry = pActList->back().get(); + pActList = &pEntry->m_Children; } return pEntry; } @@ -671,15 +675,15 @@ SvTreeListEntry* SvTreeList::NextVisible(const SvListView* pView,SvTreeListEntry bWithDepth = true; } - SvTreeListEntries* pActualList = &pActEntry->pParent->maChildren; + SvTreeListEntries* pActualList = &pActEntry->pParent->m_Children; sal_uLong nActualPos = pActEntry->GetChildListPos(); if ( pView->IsExpanded(pActEntry) ) { - OSL_ENSURE(!pActEntry->maChildren.empty(), "Pass entry is supposed to have child entries."); + OSL_ENSURE(!pActEntry->m_Children.empty(), "Pass entry is supposed to have child entries."); nDepth++; - pActEntry = &pActEntry->maChildren[0]; + pActEntry = pActEntry->m_Children[0].get(); if ( bWithDepth ) *pActDepth = nDepth; return pActEntry; @@ -688,7 +692,7 @@ SvTreeListEntry* SvTreeList::NextVisible(const SvListView* pView,SvTreeListEntry nActualPos++; if ( pActualList->size() > nActualPos ) { - pActEntry = &(*pActualList)[nActualPos]; + pActEntry = (*pActualList)[nActualPos].get(); if ( bWithDepth ) *pActDepth = nDepth; return pActEntry; @@ -698,12 +702,12 @@ SvTreeListEntry* SvTreeList::NextVisible(const SvListView* pView,SvTreeListEntry nDepth--; while( pParent != pRootItem ) { - pActualList = &pParent->pParent->maChildren; + pActualList = &pParent->pParent->m_Children; nActualPos = pParent->GetChildListPos(); nActualPos++; if ( pActualList->size() > nActualPos ) { - pActEntry = &(*pActualList)[nActualPos]; + pActEntry = (*pActualList)[nActualPos].get(); if ( bWithDepth ) *pActDepth = nDepth; return pActEntry; @@ -730,17 +734,17 @@ SvTreeListEntry* SvTreeList::PrevVisible(const SvListView* pView, SvTreeListEntr bWithDepth = true; } - SvTreeListEntries* pActualList = &pActEntry->pParent->maChildren; + SvTreeListEntries* pActualList = &pActEntry->pParent->m_Children; sal_uLong nActualPos = pActEntry->GetChildListPos(); if ( nActualPos > 0 ) { - pActEntry = &(*pActualList)[nActualPos-1]; + pActEntry = (*pActualList)[nActualPos-1].get(); while( pView->IsExpanded(pActEntry) ) { - pActualList = &pActEntry->maChildren; + pActualList = &pActEntry->m_Children; nDepth++; - pActEntry = &pActualList->back(); + pActEntry = pActualList->back().get(); } if ( bWithDepth ) *pActDepth = nDepth; @@ -832,8 +836,8 @@ SvTreeListEntry* SvTreeList::FirstChild( SvTreeListEntry* pParent ) const if ( !pParent ) pParent = pRootItem; SvTreeListEntry* pResult; - if (!pParent->maChildren.empty()) - pResult = &pParent->maChildren[0]; + if (!pParent->m_Children.empty()) + pResult = pParent->m_Children[0].get(); else pResult = 0; return pResult; @@ -845,10 +849,10 @@ SvTreeListEntry* SvTreeList::NextSibling( SvTreeListEntry* pEntry ) if( !pEntry ) return 0; - SvTreeListEntries& rList = pEntry->pParent->maChildren; + SvTreeListEntries& rList = pEntry->pParent->m_Children; sal_uLong nPos = pEntry->GetChildListPos(); nPos++; - return nPos < rList.size() ? &rList[nPos] : NULL; + return (nPos < rList.size()) ? rList[nPos].get() : nullptr; } SvTreeListEntry* SvTreeList::PrevSibling( SvTreeListEntry* pEntry ) @@ -857,12 +861,12 @@ SvTreeListEntry* SvTreeList::PrevSibling( SvTreeListEntry* pEntry ) if( !pEntry ) return 0; - SvTreeListEntries& rList = pEntry->pParent->maChildren; + SvTreeListEntries& rList = pEntry->pParent->m_Children; sal_uLong nPos = pEntry->GetChildListPos(); if ( nPos == 0 ) return 0; nPos--; - pEntry = &rList[nPos]; + pEntry = rList[nPos].get(); return pEntry; } @@ -873,8 +877,8 @@ SvTreeListEntry* SvTreeList::LastSibling( SvTreeListEntry* pEntry ) if( !pEntry ) return 0; - SvTreeListEntries& rChildren = pEntry->pParent->maChildren; - return rChildren.empty() ? NULL : &rChildren.back(); + SvTreeListEntries& rChildren = pEntry->pParent->m_Children; + return (rChildren.empty()) ? nullptr : rChildren.back().get(); } SvTreeListEntry* SvTreeList::NextSelected( const SvListView* pView, SvTreeListEntry* pEntry ) const @@ -913,7 +917,7 @@ sal_uLong SvTreeList::Insert( SvTreeListEntry* pEntry,SvTreeListEntry* pParent,s pParent = pRootItem; - SvTreeListEntries& rList = pParent->maChildren; + SvTreeListEntries& rList = pParent->m_Children; // take sorting into account GetInsertionPos( pEntry, pParent, nPos ); @@ -925,10 +929,10 @@ sal_uLong SvTreeList::Insert( SvTreeListEntry* pEntry,SvTreeListEntry* pParent,s { SvTreeListEntries::iterator itPos = rList.begin(); std::advance(itPos, nPos); - rList.insert(itPos, pEntry); + rList.insert(itPos, std::unique_ptr<SvTreeListEntry>(pEntry)); } else - rList.push_back(pEntry); + rList.push_back(std::unique_ptr<SvTreeListEntry>(pEntry)); nEntryCount++; if (nPos != TREELIST_APPEND && (nPos != (rList.size()-1))) @@ -971,7 +975,7 @@ void SvTreeList::Expand( SvListView* pView, SvTreeListEntry* pEntry ) if ( pView->IsExpanded(pEntry) ) return; - DBG_ASSERT(!pEntry->maChildren.empty(), "SvTreeList::Expand: We expected to have child entries."); + DBG_ASSERT(!pEntry->m_Children.empty(), "SvTreeList::Expand: We expected to have child entries."); SvViewDataEntry* pViewData = pView->GetViewData(pEntry); pViewData->SetExpanded(true); @@ -990,7 +994,7 @@ void SvTreeList::Collapse( SvListView* pView, SvTreeListEntry* pEntry ) if ( !pView->IsExpanded(pEntry) ) return; - DBG_ASSERT(!pEntry->maChildren.empty(), "SvTreeList::Collapse: We expected have child entries."); + DBG_ASSERT(!pEntry->m_Children.empty(), "SvTreeList::Collapse: We expected to have child entries."); SvViewDataEntry* pViewData = pView->GetViewData( pEntry ); pViewData->SetExpanded(false); @@ -1048,27 +1052,32 @@ bool SvTreeList::Remove( const SvTreeListEntry* pEntry ) bAbsPositionsValid = false; SvTreeListEntry* pParent = pEntry->pParent; - SvTreeListEntries& rList = pParent->maChildren; + SvTreeListEntries& rList = pParent->m_Children; bool bLastEntry = false; // Since we need the live instance of SvTreeListEntry for broadcasting, // we first need to pop it from the container, broadcast it, then delete // the instance manually at the end. + std::unique_ptr<SvTreeListEntry> pEntryDeleter; if ( pEntry->HasChildListPos() ) { size_t nListPos = pEntry->GetChildListPos(); bLastEntry = (nListPos == (rList.size()-1)); SvTreeListEntries::iterator it = rList.begin(); std::advance(it, nListPos); - rList.release(it).release(); + pEntryDeleter = std::unique_ptr<SvTreeListEntry>(std::move(*it)); + rList.erase(it); } else { SvTreeListEntries::iterator it = std::find_if(rList.begin(), rList.end(), FindByPointer(pEntry)); if (it != rList.end()) - rList.release(it).release(); + { + pEntryDeleter = std::unique_ptr<SvTreeListEntry>(std::move(*it)); + rList.erase(it); + } } if (!rList.empty() && !bLastEntry) @@ -1076,7 +1085,6 @@ bool SvTreeList::Remove( const SvTreeListEntry* pEntry ) nEntryCount -= nRemoved; Broadcast(SvListAction::REMOVED, const_cast<SvTreeListEntry*>(pEntry)); - delete pEntry; return true; } @@ -1126,7 +1134,7 @@ void SvTreeList::SetListPositions( SvTreeListEntries& rEntries ) if (rEntries.empty()) return; - SvTreeListEntry& rFirst = rEntries.front(); + SvTreeListEntry& rFirst = *rEntries.front(); if (rFirst.pParent) rFirst.pParent->InvalidateChildrensListPositions(); } @@ -1170,12 +1178,12 @@ std::pair<SvTreeListEntries::iterator, SvTreeListEntries::iterator> if (!pParent) pParent = pRootItem; - if (pParent->maChildren.empty()) + if (pParent->m_Children.empty()) // This entry has no children. return aRet; - aRet.first = pParent->maChildren.begin(); - aRet.second = pParent->maChildren.end(); + aRet.first = pParent->m_Children.begin(); + aRet.second = pParent->m_Children.end(); return aRet; } @@ -1315,7 +1323,7 @@ void SvListView::Impl::ActionMoving( SvTreeListEntry* pEntry,SvTreeListEntry*,sa { SvTreeListEntry* pParent = pEntry->pParent; DBG_ASSERT(pParent,"Model not consistent"); - if (pParent != m_rThis.pModel->pRootItem && pParent->maChildren.size() == 1) + if (pParent != m_rThis.pModel->pRootItem && pParent->m_Children.size() == 1) { SvViewDataEntry* pViewData = m_DataTable.find( pParent )->second; pViewData->SetExpanded(false); @@ -1373,8 +1381,7 @@ void SvListView::Impl::ActionInsertedTree( SvTreeListEntry* pEntry ) void SvListView::Impl::RemoveViewData( SvTreeListEntry* pParent ) { - SvTreeListEntries::iterator it = pParent->maChildren.begin(), itEnd = pParent->maChildren.end(); - for (; it != itEnd; ++it) + for (auto const& it : pParent->m_Children) { SvTreeListEntry& rEntry = *it; m_DataTable.erase(&rEntry); @@ -1413,7 +1420,7 @@ void SvListView::Impl::ActionRemoving( SvTreeListEntry* pEntry ) RemoveViewData( pEntry ); SvTreeListEntry* pCurEntry = pEntry->pParent; - if (pCurEntry && pCurEntry != m_rThis.pModel->pRootItem && pCurEntry->maChildren.size() == 1) + if (pCurEntry && pCurEntry != m_rThis.pModel->pRootItem && pCurEntry->m_Children.size() == 1) { pViewData = m_DataTable.find(pCurEntry)->second; pViewData->SetExpanded(false); @@ -1554,9 +1561,10 @@ public: explicit SortComparator( SvTreeList& rList ) : mrList(rList) {} - bool operator() ( const SvTreeListEntry& rLeft, const SvTreeListEntry& rRight ) const + bool operator() (std::unique_ptr<SvTreeListEntry> const& rpLeft, + std::unique_ptr<SvTreeListEntry> const& rpRight) const { - return mrList.Compare(&rLeft, &rRight) < 0; + return mrList.Compare(rpLeft.get(), rpRight.get()) < 0; } }; @@ -1566,21 +1574,20 @@ void SvTreeList::ResortChildren( SvTreeListEntry* pParent ) { DBG_ASSERT(pParent,"Parent not set"); - if (pParent->maChildren.empty()) + if (pParent->m_Children.empty()) return; SortComparator aComp(*this); - pParent->maChildren.sort(aComp); + std::sort(pParent->m_Children.begin(), pParent->m_Children.end(), aComp); // Recursively sort child entries. - SvTreeListEntries::iterator it = pParent->maChildren.begin(), itEnd = pParent->maChildren.end(); - for (; it != itEnd; ++it) + for (auto const& it : pParent->m_Children) { SvTreeListEntry& r = *it; ResortChildren(&r); } - SetListPositions(pParent->maChildren); // correct list position in target list + SetListPositions(pParent->m_Children); // correct list position in target list } void SvTreeList::Reverse() @@ -1595,19 +1602,18 @@ void SvTreeList::ReverseChildren( SvTreeListEntry* pParent ) { DBG_ASSERT(pParent,"Parent not set"); - if (pParent->maChildren.empty()) + if (pParent->m_Children.empty()) return; - std::reverse(pParent->maChildren.base().begin(), pParent->maChildren.base().end()); + std::reverse(pParent->m_Children.begin(), pParent->m_Children.end()); // Recursively sort child entries. - SvTreeListEntries::iterator it = pParent->maChildren.begin(), itEnd = pParent->maChildren.end(); - for (; it != itEnd; ++it) + for (auto const& it : pParent->m_Children) { SvTreeListEntry& r = *it; ReverseChildren(&r); } - SetListPositions(pParent->maChildren); // correct list position in target list + SetListPositions(pParent->m_Children); // correct list position in target list } void SvTreeList::GetInsertionPos( SvTreeListEntry* pEntry, SvTreeListEntry* pParent, @@ -1631,7 +1637,7 @@ void SvTreeList::GetInsertionPos( SvTreeListEntry* pEntry, SvTreeListEntry* pPar do { k = (i+j)/2; - const SvTreeListEntry* pTempEntry = &rChildList[k]; + const SvTreeListEntry* pTempEntry = rChildList[k].get(); nCompare = Compare( pEntry, pTempEntry ); if( eSortMode == SortDescending && nCompare != 0 ) { @@ -1663,7 +1669,7 @@ bool SvTreeList::HasChildren( const SvTreeListEntry* pEntry ) const if ( !pEntry ) pEntry = pRootItem; - return !pEntry->maChildren.empty(); + return !pEntry->m_Children.empty(); } bool SvTreeList::HasParent( const SvTreeListEntry* pEntry ) const @@ -1675,16 +1681,16 @@ SvTreeListEntry* SvTreeList::GetEntry( SvTreeListEntry* pParent, sal_uLong nPos { if ( !pParent ) pParent = pRootItem; SvTreeListEntry* pRet = 0; - if (nPos < pParent->maChildren.size()) - pRet = &pParent->maChildren[nPos]; + if (nPos < pParent->m_Children.size()) + pRet = pParent->m_Children[nPos].get(); return pRet; } SvTreeListEntry* SvTreeList::GetEntry( sal_uLong nRootPos ) const { SvTreeListEntry* pRet = 0; - if ( nEntryCount && nRootPos < pRootItem->maChildren.size()) - pRet = &pRootItem->maChildren[nRootPos]; + if (nEntryCount && nRootPos < pRootItem->m_Children.size()) + pRet = pRootItem->m_Children[nRootPos].get(); return pRet; } @@ -1692,14 +1698,14 @@ const SvTreeListEntries& SvTreeList::GetChildList( SvTreeListEntry* pParent ) co { if ( !pParent ) pParent = pRootItem; - return pParent->maChildren; + return pParent->m_Children; } SvTreeListEntries& SvTreeList::GetChildList( SvTreeListEntry* pParent ) { if ( !pParent ) pParent = pRootItem; - return pParent->maChildren; + return pParent->m_Children; } const SvTreeListEntry* SvTreeList::GetParent( const SvTreeListEntry* pEntry ) const diff --git a/svtools/source/contnr/treelistbox.cxx b/svtools/source/contnr/treelistbox.cxx index 24e043a..c7207d4 100644 --- a/svtools/source/contnr/treelistbox.cxx +++ b/svtools/source/contnr/treelistbox.cxx @@ -905,9 +905,9 @@ sal_uLong SvTreeListBox::GetLevelChildCount( SvTreeListEntry* _pParent ) const return 0; if( !_pParent )//root and children of root - return pEntry->pParent->maChildren.size(); + return pEntry->pParent->m_Children.size(); - return _pParent->maChildren.size(); + return _pParent->m_Children.size(); } SvViewDataEntry* SvTreeListBox::GetViewDataEntry( SvTreeListEntry* pEntry ) const diff --git a/svtools/source/contnr/treelistentry.cxx b/svtools/source/contnr/treelistentry.cxx index 29f5976..54d8893 100644 --- a/svtools/source/contnr/treelistentry.cxx +++ b/svtools/source/contnr/treelistentry.cxx @@ -27,16 +27,15 @@ void SvTreeListEntry::ClearChildren() { - maChildren.clear(); + m_Children.clear(); } void SvTreeListEntry::SetListPositions() { - SvTreeListEntries::iterator it = maChildren.begin(), itEnd = maChildren.end(); sal_uLong nCur = 0; - for (; it != itEnd; ++it) + for (auto const& pEntry : m_Children) { - SvTreeListEntry& rEntry = *it; + SvTreeListEntry& rEntry = *pEntry; rEntry.nListPos &= 0x80000000; rEntry.nListPos |= nCur; ++nCur; @@ -70,9 +69,8 @@ SvTreeListEntry::SvTreeListEntry(const SvTreeListEntry& r) , nEntryFlags(r.nEntryFlags) , maBackColor(Application::GetSettings().GetStyleSettings().GetWindowColor()) { - SvTreeListEntries::const_iterator it = r.maChildren.begin(), itEnd = r.maChildren.end(); - for (; it != itEnd; ++it) - maChildren.push_back(new SvTreeListEntry(*it)); + for (auto const& it : r.m_Children) + m_Children.push_back(std::unique_ptr<SvTreeListEntry>(new SvTreeListEntry(*it))); } SvTreeListEntry::~SvTreeListEntry() @@ -81,13 +79,13 @@ SvTreeListEntry::~SvTreeListEntry() pParent = 0; #endif - maChildren.clear(); + m_Children.clear(); m_Items.clear(); } bool SvTreeListEntry::HasChildren() const { - return !maChildren.empty(); + return !m_Children.empty(); } bool SvTreeListEntry::HasChildListPos() const commit 1fc105cec523a081f18ca78fff43e58e3a881232 Author: Michael Stahl <mst...@redhat.com> Date: Mon Jul 20 17:33:40 2015 +0200 svtools: change these SvTreeListEntry functions to unique_ptr ... parameters to make it clear that they take ownership. Change-Id: I572c5fa6268438a86d0a4fa1d2aef15382cb5607 diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx index 25bee8a..af0e8d3 100644 --- a/basctl/source/basicide/moduldl2.cxx +++ b/basctl/source/basicide/moduldl2.cxx @@ -253,8 +253,9 @@ void CheckBox::InitEntry(SvTreeListEntry* pEntry, const OUString& rTxt, for ( sal_uInt16 nCol = 1; nCol < nCount; ++nCol ) { SvLBoxString& rCol = static_cast<SvLBoxString&>(pEntry->GetItem( nCol )); - LibLBoxString* pStr = new LibLBoxString( pEntry, 0, rCol.GetText() ); - pEntry->ReplaceItem( pStr, nCol ); + std::unique_ptr<LibLBoxString> pStr( + new LibLBoxString( pEntry, 0, rCol.GetText())); + pEntry->ReplaceItem(std::move(pStr), nCol); } } } diff --git a/cui/source/customize/acccfg.cxx b/cui/source/customize/acccfg.cxx index 6db36dc..aed9133 100644 --- a/cui/source/customize/acccfg.cxx +++ b/cui/source/customize/acccfg.cxx @@ -911,11 +911,13 @@ void SfxAcceleratorConfigPage::CreateCustomItems(SvTreeListEntry* pEntry, const OUString& sCol1 , const OUString& sCol2) { - SfxAccCfgLBoxString_Impl* pStringItem = new SfxAccCfgLBoxString_Impl(pEntry, 0, sCol1); - pEntry->ReplaceItem(pStringItem, 1); + std::unique_ptr<SfxAccCfgLBoxString_Impl> pStringItem1( + new SfxAccCfgLBoxString_Impl(pEntry, 0, sCol1)); + pEntry->ReplaceItem(std::move(pStringItem1), 1); - pStringItem = new SfxAccCfgLBoxString_Impl(pEntry, 0, sCol2); - pEntry->ReplaceItem(pStringItem, 2); + std::unique_ptr<SfxAccCfgLBoxString_Impl> pStringItem2( + new SfxAccCfgLBoxString_Impl(pEntry, 0, sCol2)); + pEntry->ReplaceItem(std::move(pStringItem2), 2); } diff --git a/cui/source/customize/cfg.cxx b/cui/source/customize/cfg.cxx index 8e9f094..6ad0193 100644 --- a/cui/source/customize/cfg.cxx +++ b/cui/source/customize/cfg.cxx @@ -2105,7 +2105,7 @@ SvTreeListEntry* SvxConfigPage::InsertEntryIntoUI( { // add new popup painter, it gets destructed by the entry pNewEntry->ReplaceItem( - new PopupPainter( pNewEntry, aName ), + std::unique_ptr<PopupPainter>(new PopupPainter(pNewEntry, aName)), pNewEntry->ItemCount() - 1 ); } } diff --git a/cui/source/customize/macropg.cxx b/cui/source/customize/macropg.cxx index 0e14b0f..812f5fd 100644 --- a/cui/source/customize/macropg.cxx +++ b/cui/source/customize/macropg.cxx @@ -554,8 +554,9 @@ void _SvxMacroTabPage::DisplayAppEvents( bool appEvents) OUString* pEventName = new OUString( sEventName ); _pE->SetUserData( static_cast<void*>(pEventName) ); OUString sNew( eventURL ); - _pE->ReplaceItem( new IconLBoxString( _pE, 0, sNew, - &mpImpl->aMacroImg, &mpImpl->aComponentImg ), LB_MACROS_ITEMPOS ); + _pE->ReplaceItem(std::unique_ptr<IconLBoxString>(new IconLBoxString( + _pE, 0, sNew, &mpImpl->aMacroImg, &mpImpl->aComponentImg)), + LB_MACROS_ITEMPOS ); rListBox.GetModel()->InvalidateEntry( _pE ); rListBox.Select( _pE ); rListBox.MakeVisible( _pE ); @@ -701,8 +702,9 @@ long _SvxMacroTabPage::GenericHandler_Impl( _SvxMacroTabPage* pThis, PushButton* // update the listbox entry pImpl->pEventLB->SetUpdateMode( false ); - pE->ReplaceItem( new IconLBoxString( pE, 0, sEventURL, - &pImpl->aMacroImg, &pImpl->aComponentImg ), LB_MACROS_ITEMPOS ); + pE->ReplaceItem(std::unique_ptr<IconLBoxString>(new IconLBoxString( + pE, 0, sEventURL, &pImpl->aMacroImg, &pImpl->aComponentImg)), + LB_MACROS_ITEMPOS ); rListBox.GetModel()->InvalidateEntry( pE ); rListBox.Select( pE ); diff --git a/cui/source/dialogs/thesdlg.cxx b/cui/source/dialogs/thesdlg.cxx index c346935..21c9323 100644 --- a/cui/source/dialogs/thesdlg.cxx +++ b/cui/source/dialogs/thesdlg.cxx @@ -230,10 +230,13 @@ SvTreeListEntry * ThesaurusAlternativesCtrl::AddEntry( sal_Int32 nVal, const OUS { aText = OUString::number( nVal ) + ". "; } - pEntry->AddItem( new SvLBoxString( pEntry, 0, OUString() ) ); // add empty column + pEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString(pEntry, 0, OUString()))); // add empty column aText += rText; - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false ) ); // otherwise crash - pEntry->AddItem( new AlternativesString( *this, pEntry, 0, aText ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>( + new SvLBoxContextBmp(pEntry, 0, Image(), Image(), false))); // otherwise crash + pEntry->AddItem(std::unique_ptr<AlternativesString>( + new AlternativesString( *this, pEntry, 0, aText))); SetExtraData( pEntry, AlternativesExtraData( rText, bIsHeader ) ); GetModel()->Insert( pEntry ); diff --git a/cui/source/options/fontsubs.cxx b/cui/source/options/fontsubs.cxx index f3888b6..7874a06 100644 --- a/cui/source/options/fontsubs.cxx +++ b/cui/source/options/fontsubs.cxx @@ -121,17 +121,18 @@ SvTreeListEntry* SvxFontSubstTabPage::CreateEntry(OUString& rFont1, OUString& rF if( !pCheckButtonData ) pCheckButtonData = new SvLBoxButtonData( m_pCheckLB ); - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false)); // Sonst Puff! - - pEntry->AddItem( new SvLBoxButton( pEntry, - SvLBoxButtonKind_enabledCheckbox, 0, - pCheckButtonData ) ); - pEntry->AddItem( new SvLBoxButton( pEntry, - SvLBoxButtonKind_enabledCheckbox, 0, - pCheckButtonData ) ); - - pEntry->AddItem( new SvLBoxString( pEntry, 0, rFont1 ) ); - pEntry->AddItem( new SvLBoxString( pEntry, 0, rFont2 ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>(new SvLBoxContextBmp( + pEntry, 0, Image(), Image(), false))); // otherwise boom! + + pEntry->AddItem(std::unique_ptr<SvLBoxButton>(new SvLBoxButton(pEntry, + SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData))); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>(new SvLBoxButton(pEntry, + SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData))); + + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString( + pEntry, 0, rFont1))); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString( + pEntry, 0, rFont2))); return pEntry; } diff --git a/cui/source/options/optHeaderTabListbox.cxx b/cui/source/options/optHeaderTabListbox.cxx index 09c8e7e..11eacd7 100644 --- a/cui/source/options/optHeaderTabListbox.cxx +++ b/cui/source/options/optHeaderTabListbox.cxx @@ -71,8 +71,9 @@ void OptHeaderTabListBox::InitEntry( SvTreeListEntry* pEntry, const OUString& rT { // initialize all columns with own class (column 0 == Bitmap) SvLBoxString& rCol = static_cast<SvLBoxString&>(pEntry->GetItem( nCol )); - OptLBoxString_Impl* pStr = new OptLBoxString_Impl( pEntry, 0, rCol.GetText() ); - pEntry->ReplaceItem( pStr, nCol ); + std::unique_ptr<OptLBoxString_Impl> pStr( + new OptLBoxString_Impl(pEntry, 0, rCol.GetText())); + pEntry->ReplaceItem(std::move(pStr), nCol); } } diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx index 2d74ce2..a87d809 100644 --- a/cui/source/options/optaboutconfig.cxx +++ b/cui/source/options/optaboutconfig.cxx @@ -202,11 +202,12 @@ void CuiAboutConfigTabPage::InsertEntry(const OUString& rPropertyPath, const OUS bool bInsertToPrefBox) { SvTreeListEntry* pEntry = new SvTreeListEntry; - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false)); //It is needed, otherwise causes crash - pEntry->AddItem( new SvLBoxString( pEntry, 0, rProp)); - pEntry->AddItem( new SvLBoxString( pEntry, 0, rStatus)); - pEntry->AddItem( new SvLBoxString( pEntry, 0, rType)); - pEntry->AddItem( new SvLBoxString( pEntry, 0, rValue)); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>( + new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false))); //It is needed, otherwise causes crash + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pEntry, 0, rProp))); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pEntry, 0, rStatus))); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pEntry, 0, rType))); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pEntry, 0, rValue))); pEntry->SetUserData( new UserData(rPropertyPath) ); if(bInsertToPrefBox) @@ -284,13 +285,18 @@ void CuiAboutConfigTabPage::FillItems(const Reference< XNameAccess >& xNameAcces { // not leaf node SvTreeListEntry* pEntry = new SvTreeListEntry; - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, SvTreeListBox::GetDefaultExpandedNodeImage(), - SvTreeListBox::GetDefaultCollapsedNodeImage(), false)); - pEntry->AddItem( new SvLBoxString( pEntry, 0, seqItems[i])); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>( + new SvLBoxContextBmp(pEntry, 0, SvTreeListBox::GetDefaultExpandedNodeImage(), + SvTreeListBox::GetDefaultCollapsedNodeImage(), false))); + pEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString( pEntry, 0, seqItems[i]))); //It is needed, without this the selection line will be truncated. - pEntry->AddItem( new SvLBoxString( pEntry, 0, "")); - pEntry->AddItem( new SvLBoxString( pEntry, 0, "")); - pEntry->AddItem( new SvLBoxString( pEntry, 0, "")); + pEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString( pEntry, 0, ""))); + pEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString( pEntry, 0, ""))); + pEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString( pEntry, 0, ""))); pEntry->SetUserData( new UserData(xNextNameAccess, lineage + 1) ); pEntry->EnableChildrenOnDemand(); @@ -774,7 +780,8 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl ) ); if (it != m_prefBoxEntries.end()) { - it->ReplaceItem( new SvLBoxString( &(*it), 0, sDialogValue ), 4 ); + it->ReplaceItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString( &(*it), 0, sDialogValue)), 4); SvTreeListEntries::iterator modifiedIt = std::find_if( m_modifiedPrefBoxEntries.begin(), m_modifiedPrefBoxEntries.end(), @@ -786,7 +793,9 @@ IMPL_LINK_NOARG( CuiAboutConfigTabPage, StandardHdl_Impl ) ); if( modifiedIt != m_modifiedPrefBoxEntries.end()) - modifiedIt->ReplaceItem( new SvLBoxString( &(*modifiedIt), 0, sDialogValue ), 4 ); + modifiedIt->ReplaceItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString(&(*modifiedIt), 0, sDialogValue)), + 4); else { SvTreeListEntry *pCloneEntry = new SvTreeListEntry; @@ -883,13 +892,18 @@ void CuiAboutConfigTabPage::InsertEntry( SvTreeListEntry *pEntry) if(!hasEntry) { pParentEntry = new SvTreeListEntry; - pParentEntry->AddItem( new SvLBoxContextBmp( pParentEntry, 0, SvTreeListBox::GetDefaultExpandedNodeImage(), - SvTreeListBox::GetDefaultCollapsedNodeImage(), false)); - pParentEntry->AddItem( new SvLBoxString( pParentEntry, 0, sParentName)); + pParentEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>( + new SvLBoxContextBmp(pParentEntry, 0, SvTreeListBox::GetDefaultExpandedNodeImage(), + SvTreeListBox::GetDefaultCollapsedNodeImage(), false))); + pParentEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString(pParentEntry, 0, sParentName))); //It is needed, without this the selection line will be truncated. - pParentEntry->AddItem( new SvLBoxString( pParentEntry, 0, "")); - pParentEntry->AddItem( new SvLBoxString( pParentEntry, 0, "")); - pParentEntry->AddItem( new SvLBoxString( pParentEntry, 0, "")); + pParentEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString(pParentEntry, 0, ""))); + pParentEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString(pParentEntry, 0, ""))); + pParentEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString( pParentEntry, 0, ""))); pParentEntry->EnableChildrenOnDemand(false); m_pPrefBox->Insert( pParentEntry, pGrandParentEntry ); } diff --git a/cui/source/options/optfltr.cxx b/cui/source/options/optfltr.cxx index 6ee34bf..5ede579 100644 --- a/cui/source/options/optfltr.cxx +++ b/cui/source/options/optfltr.cxx @@ -339,14 +339,17 @@ void OfaMSFilterTabPage2::InsertEntry( const OUString& _rTxt, sal_IntPtr _nType, if( !pCheckButtonData ) pCheckButtonData = new SvLBoxButtonData( m_pCheckLB ); - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false)); - pEntry->AddItem( new SvLBoxButton( pEntry, loadEnabled? SvLBoxButtonKind_enabledCheckbox : - SvLBoxButtonKind_disabledCheckbox, - 0, pCheckButtonData ) ); - pEntry->AddItem( new SvLBoxButton( pEntry, saveEnabled? SvLBoxButtonKind_enabledCheckbox : - SvLBoxButtonKind_disabledCheckbox, - 0, pCheckButtonData ) ); - pEntry->AddItem( new SvLBoxString( pEntry, 0, _rTxt ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>( + new SvLBoxContextBmp(pEntry, 0, Image(), Image(), false))); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>( + new SvLBoxButton(pEntry, loadEnabled ? SvLBoxButtonKind_enabledCheckbox + : SvLBoxButtonKind_disabledCheckbox, + 0, pCheckButtonData))); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>( + new SvLBoxButton(pEntry, saveEnabled ? SvLBoxButtonKind_enabledCheckbox + : SvLBoxButtonKind_disabledCheckbox, + 0, pCheckButtonData))); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pEntry, 0, _rTxt))); pEntry->SetUserData( reinterpret_cast<void*>(_nType) ); m_pCheckLB->Insert( pEntry ); diff --git a/cui/source/options/optlingu.cxx b/cui/source/options/optlingu.cxx index ab5bea68..1de1d71 100644 --- a/cui/source/options/optlingu.cxx +++ b/cui/source/options/optlingu.cxx @@ -1813,11 +1813,15 @@ SvTreeListEntry* SvxLinguTabPage::CreateEntry( OUString& rTxt, sal_uInt16 nCol ) OUString sEmpty; if (CBCOL_FIRST == nCol) - pEntry->AddItem( new SvLBoxButton( pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>(new SvLBoxButton( + pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData))); if (CBCOL_SECOND == nCol) - pEntry->AddItem( new SvLBoxString( pEntry, 0, sEmpty) ); // empty column - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false)); - pEntry->AddItem( new BrwString_Impl( pEntry, 0, rTxt ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString( + pEntry, 0, sEmpty))); // empty column + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>(new SvLBoxContextBmp( + pEntry, 0, Image(), Image(), false))); + pEntry->AddItem(std::unique_ptr<BrwString_Impl>(new BrwString_Impl( + pEntry, 0, rTxt))); return pEntry; } @@ -1944,11 +1948,11 @@ SvTreeListEntry* SvxEditModulesDlg::CreateEntry( OUString& rTxt, sal_uInt16 nCol OUString sEmpty; if (CBCOL_FIRST == nCol) - pEntry->AddItem( new SvLBoxButton( pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>(new SvLBoxButton(pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData))); if (CBCOL_SECOND == nCol) - pEntry->AddItem( new SvLBoxString( pEntry, 0, sEmpty) ); // empty column - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false)); - pEntry->AddItem( new BrwStringDic_Impl( pEntry, 0, rTxt ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pEntry, 0, sEmpty))); // empty column + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>(new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false))); + pEntry->AddItem(std::unique_ptr<BrwStringDic_Impl>(new BrwStringDic_Impl(pEntry, 0, rTxt))); return pEntry; } diff --git a/cui/source/tabpages/autocdlg.cxx b/cui/source/tabpages/autocdlg.cxx index ca6f668..600f5a4 100644 --- a/cui/source/tabpages/autocdlg.cxx +++ b/cui/source/tabpages/autocdlg.cxx @@ -474,19 +474,20 @@ SvTreeListEntry* OfaSwAutoFmtOptionsPage::CreateEntry(OUString& rTxt, sal_uInt16 m_pCheckLB->SetCheckButtonData( pCheckButtonData ); } - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false)); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>(new SvLBoxContextBmp( + pEntry, 0, Image(), Image(), false))); OUString sEmpty; if (nCol == CBCOL_SECOND) - pEntry->AddItem( new SvLBoxString( pEntry, 0, sEmpty) ); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pEntry, 0, sEmpty))); else - pEntry->AddItem( new SvLBoxButton( pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>(new SvLBoxButton(pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData))); if (nCol == CBCOL_FIRST) - pEntry->AddItem( new SvLBoxString( pEntry, 0, sEmpty) ); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pEntry, 0, sEmpty))); else - pEntry->AddItem( new SvLBoxButton( pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData ) ); - pEntry->AddItem( new OfaImpBrwString( pEntry, 0, rTxt ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>(new SvLBoxButton(pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData))); + pEntry->AddItem(std::unique_ptr<OfaImpBrwString>(new OfaImpBrwString( pEntry, 0, rTxt))); return pEntry; } @@ -1781,20 +1782,22 @@ SvTreeListEntry* OfaQuoteTabPage::CreateEntry(OUString& rTxt, sal_uInt16 nCol) m_pSwCheckLB->SetCheckButtonData(pCheckButtonData); } - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false)); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>( + new SvLBoxContextBmp(pEntry, 0, Image(), Image(), false))); OUString sEmpty; if (nCol == CBCOL_SECOND) - pEntry->AddItem( new SvLBoxString( pEntry, 0, sEmpty) ); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pEntry, 0, sEmpty))); else - pEntry->AddItem( new SvLBoxButton( pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>(new SvLBoxButton(pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData))); if (nCol == CBCOL_FIRST) - pEntry->AddItem( new SvLBoxString( pEntry, 0, sEmpty) ); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pEntry, 0, sEmpty))); else - pEntry->AddItem( new SvLBoxButton( pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>(new SvLBoxButton( + pEntry, SvLBoxButtonKind_enabledCheckbox, 0, pCheckButtonData))); - pEntry->AddItem( new OfaImpBrwString( pEntry, 0, rTxt ) ); + pEntry->AddItem(std::unique_ptr<OfaImpBrwString>(new OfaImpBrwString(pEntry, 0, rTxt))); return pEntry; } diff --git a/cui/source/tabpages/macroass.cxx b/cui/source/tabpages/macroass.cxx index 5bc3697..3d56dbd 100644 --- a/cui/source/tabpages/macroass.cxx +++ b/cui/source/tabpages/macroass.cxx @@ -333,7 +333,7 @@ IMPL_LINK( _SfxMacroTabPage, AssignDeleteHdl_Impl, PushButton*, pBtn ) } mpImpl->pEventLB->SetUpdateMode( false ); - pE->ReplaceItem( new SvLBoxString( pE, 0, sScriptURI ), LB_MACROS_ITEMPOS ); + pE->ReplaceItem(std::unique_ptr<SvLBoxString>(new SvLBoxString(pE, 0, sScriptURI)), LB_MACROS_ITEMPOS); rListBox.GetModel()->InvalidateEntry( pE ); rListBox.Select( pE ); rListBox.MakeVisible( pE ); @@ -426,7 +426,8 @@ void _SfxMacroTabPage::FillEvents() if( sOld != sNew ) { - pE->ReplaceItem( new SvLBoxString( pE, 0, sNew ), LB_MACROS_ITEMPOS ); + pE->ReplaceItem(std::unique_ptr<SvLBoxString>(new SvLBoxString( + pE, 0, sNew)), LB_MACROS_ITEMPOS); rListBox.GetModel()->InvalidateEntry( pE ); } } diff --git a/dbaccess/source/ui/control/dbtreelistbox.cxx b/dbaccess/source/ui/control/dbtreelistbox.cxx index 191984d..1944410 100644 --- a/dbaccess/source/ui/control/dbtreelistbox.cxx +++ b/dbaccess/source/ui/control/dbtreelistbox.cxx @@ -142,8 +142,8 @@ void DBTreeListBox::InitEntry(SvTreeListEntry* _pEntry, const OUString& aStr, co { SvTreeListBox::InitEntry( _pEntry, aStr, _rCollEntryBmp,_rExpEntryBmp, eButtonKind); SvLBoxItem* pTextItem(_pEntry->GetFirstItem(SV_ITEM_ID_LBOXSTRING)); - SvLBoxString* pString = new OBoldListboxString( _pEntry, 0, aStr ); - _pEntry->ReplaceItem( pString,_pEntry->GetPos(pTextItem)); + std::unique_ptr<SvLBoxString> pString(new OBoldListboxString(_pEntry, 0, aStr)); + _pEntry->ReplaceItem(std::move(pString), _pEntry->GetPos(pTextItem)); } void DBTreeListBox::implStopSelectionTimer() diff --git a/dbaccess/source/ui/control/tabletree.cxx b/dbaccess/source/ui/control/tabletree.cxx index 352b85c..d243412 100644 --- a/dbaccess/source/ui/control/tabletree.cxx +++ b/dbaccess/source/ui/control/tabletree.cxx @@ -409,7 +409,8 @@ void OTableTreeListBox::InitEntry(SvTreeListEntry* _pEntry, const OUString& _rSt size_t nTextPos = _pEntry->GetPos(pTextItem); OSL_ENSURE(SvTreeListEntry::ITEM_NOT_FOUND != nTextPos, "OTableTreeListBox::InitEntry: no text item pos!"); - _pEntry->ReplaceItem(new OBoldListboxString(_pEntry, 0, _rString), nTextPos); + _pEntry->ReplaceItem(std::unique_ptr<OBoldListboxString>( + new OBoldListboxString(_pEntry, 0, _rString)), nTextPos); } SvTreeListEntry* OTableTreeListBox::implAddEntry( diff --git a/dbaccess/source/ui/misc/WNameMatch.cxx b/dbaccess/source/ui/misc/WNameMatch.cxx index aa1ba97..f005583 100644 --- a/dbaccess/source/ui/misc/WNameMatch.cxx +++ b/dbaccess/source/ui/misc/WNameMatch.cxx @@ -382,8 +382,8 @@ VCL_BUILDER_FACTORY(OColumnTreeBox) void OColumnTreeBox::InitEntry(SvTreeListEntry* pEntry, const OUString& rStr, const Image& rImg1, const Image& rImg2, SvLBoxButtonKind eButtonKind) { DBTreeListBox::InitEntry(pEntry, rStr, rImg1, rImg2, eButtonKind); - SvLBoxString* pString = new OColumnString(pEntry, 0, rStr,false); - pEntry->ReplaceItem( pString, pEntry->ItemCount() - 1 ); + std::unique_ptr<SvLBoxString> pString(new OColumnString(pEntry, 0, rStr,false)); + pEntry->ReplaceItem(std::move(pString), pEntry->ItemCount() - 1); } bool OColumnTreeBox::Select( SvTreeListEntry* pEntry, bool bSelect ) diff --git a/include/svtools/treelistentry.hxx b/include/svtools/treelistentry.hxx index a7083de..2fcd628 100644 --- a/include/svtools/treelistentry.hxx +++ b/include/svtools/treelistentry.hxx @@ -92,8 +92,8 @@ public: // MAY ONLY BE CALLED IF THE ENTRY HAS NOT YET BEEN INSERTED INTO // THE MODEL, AS OTHERWISE NO VIEW-DEPENDENT DATA ARE ALLOCATED // FOR THE ITEM! - void AddItem( SvLBoxItem* pItem ); - void ReplaceItem( SvLBoxItem* pNewItem, size_t nPos ); + void AddItem(std::unique_ptr<SvLBoxItem> pItem); + void ReplaceItem(std::unique_ptr<SvLBoxItem> pNewItem, size_t nPos); const SvLBoxItem& GetItem( size_t nPos ) const; SvLBoxItem& GetItem( size_t nPos ); const SvLBoxItem* GetFirstItem( sal_uInt16 nId ) const; diff --git a/sc/source/ui/miscdlgs/solveroptions.cxx b/sc/source/ui/miscdlgs/solveroptions.cxx index 579c08c..66446d5 100644 --- a/sc/source/ui/miscdlgs/solveroptions.cxx +++ b/sc/source/ui/miscdlgs/solveroptions.cxx @@ -264,22 +264,28 @@ void ScSolverOptionsDialog::FillListBox() { // check box entry pEntry = new SvTreeListEntry; - SvLBoxButton* pButton = new SvLBoxButton( pEntry, SvLBoxButtonKind_enabledCheckbox, 0, mpCheckButtonData ); + std::unique_ptr<SvLBoxButton> pButton(new SvLBoxButton( + pEntry, SvLBoxButtonKind_enabledCheckbox, 0, mpCheckButtonData)); if ( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ) pButton->SetStateChecked(); else pButton->SetStateUnchecked(); - pEntry->AddItem( pButton ); - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false ) ); - pEntry->AddItem( new SvLBoxString( pEntry, 0, aVisName ) ); + pEntry->AddItem(std::move(pButton)); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>( + new SvLBoxContextBmp(pEntry, 0, Image(), Image(), false))); + pEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString( pEntry, 0, aVisName))); } else { // value entry pEntry = new SvTreeListEntry; - pEntry->AddItem( new SvLBoxString( pEntry, 0, sEmpty ) ); // empty column - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false ) ); - ScSolverOptionsString* pItem = new ScSolverOptionsString( pEntry, 0, aVisName ); + pEntry->AddItem(std::unique_ptr<SvLBoxString>( + new SvLBoxString(pEntry, 0, sEmpty))); // empty column + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>( + new SvLBoxContextBmp(pEntry, 0, Image(), Image(), false))); + std::unique_ptr<ScSolverOptionsString> pItem( + new ScSolverOptionsString(pEntry, 0, aVisName)); if ( eClass == uno::TypeClass_DOUBLE ) { double fDoubleValue = 0.0; @@ -292,7 +298,7 @@ void ScSolverOptionsDialog::FillListBox() if ( aValue >>= nIntValue ) pItem->SetIntValue( nIntValue ); } - pEntry->AddItem( pItem ); + pEntry->AddItem(std::move(pItem)); } pModel->Insert( pEntry ); } diff --git a/sc/source/ui/navipi/content.cxx b/sc/source/ui/navipi/content.cxx index c8d8a0f..106cb58 100644 --- a/sc/source/ui/navipi/content.cxx +++ b/sc/source/ui/navipi/content.cxx @@ -1681,8 +1681,8 @@ void ScContentTree::InitEntry(SvTreeListEntry* pEntry, sal_uInt16 nColToHilite = 1; //0==Bitmap;1=="Spalte1";2=="Spalte2" SvTreeListBox::InitEntry( pEntry, rStr, rImg1, rImg2, eButtonKind ); SvLBoxString& rCol = static_cast<SvLBoxString&>(pEntry->GetItem( nColToHilite )); - SvLBoxString* pStr = new SvLBoxString( pEntry, 0, rCol.GetText() ); - pEntry->ReplaceItem( pStr, nColToHilite ); + std::unique_ptr<SvLBoxString> pStr(new SvLBoxString(pEntry, 0, rCol.GetText())); + pEntry->ReplaceItem(std::move(pStr), nColToHilite); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/source/ui/animations/CustomAnimationList.cxx b/sd/source/ui/animations/CustomAnimationList.cxx index 670895a..7789f4b 100644 --- a/sd/source/ui/animations/CustomAnimationList.cxx +++ b/sd/source/ui/animations/CustomAnimationList.cxx @@ -621,11 +621,13 @@ void CustomAnimationList::update() if( xShape.is() ) { SvTreeListEntry* pLBoxEntry = new CustomAnimationListEntry; - pLBoxEntry->AddItem( new SvLBoxContextBmp( pLBoxEntry, 0, Image(), Image(), false)); + pLBoxEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>( + new SvLBoxContextBmp(pLBoxEntry, 0, Image(), Image(), false))); OUString aDescription = SD_RESSTR(STR_CUSTOMANIMATION_TRIGGER); aDescription += ": "; aDescription += getShapeDescription( xShape, false ); - pLBoxEntry->AddItem( new CustomAnimationTriggerEntryItem( pLBoxEntry, 0, aDescription ) ); + pLBoxEntry->AddItem(std::unique_ptr<CustomAnimationTriggerEntryItem>( + new CustomAnimationTriggerEntryItem(pLBoxEntry, 0, aDescription))); Insert( pLBoxEntry ); SvViewDataEntry* pViewData = GetViewData( pLBoxEntry ); if( pViewData ) @@ -729,8 +731,10 @@ void CustomAnimationList::append( CustomAnimationEffectPtr pEffect ) // create an entry for the effect SvTreeListEntry* pEntry = new CustomAnimationListEntry( pEffect ); - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false)); - pEntry->AddItem( new CustomAnimationListEntryItem( pEntry, 0, aDescription, pEffect, this ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>(new SvLBoxContextBmp( + pEntry, 0, Image(), Image(), false))); + pEntry->AddItem(std::unique_ptr<CustomAnimationListEntryItem>( + new CustomAnimationListEntryItem(pEntry, 0, aDescription, pEffect, this))); if( pParentEntry ) { diff --git a/sd/source/ui/dlg/dlgassim.cxx b/sd/source/ui/dlg/dlgassim.cxx index fdbf21c..ffc77b8 100644 --- a/sd/source/ui/dlg/dlgassim.cxx +++ b/sd/source/ui/dlg/dlgassim.cxx @@ -96,10 +96,12 @@ SvTreeListEntry* SdPageListControl::InsertPage( const OUString& rPageName ) { SvTreeListEntry* pEntry = new SvTreeListEntry; - pEntry->AddItem( new SvLBoxButton( pEntry, SvLBoxButtonKind_enabledCheckbox, - 0, m_pCheckButton)); - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false)); // otherwise boom! - pEntry->AddItem( new SvLBoxString( pEntry, 0, rPageName ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>(new SvLBoxButton( + pEntry, SvLBoxButtonKind_enabledCheckbox, 0, m_pCheckButton))); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>(new SvLBoxContextBmp( + pEntry, 0, Image(), Image(), false))); // otherwise boom! + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString( + pEntry, 0, rPageName))); GetModel()->Insert( pEntry ); @@ -109,9 +111,12 @@ SvTreeListEntry* SdPageListControl::InsertPage( const OUString& rPageName ) void SdPageListControl::InsertTitle( SvTreeListEntry* pParent, const OUString& rTitle ) { SvTreeListEntry* pEntry = new SvTreeListEntry; - pEntry->AddItem( new SvLBoxString( pEntry, 0, OUString() ) ); - pEntry->AddItem( new SvLBoxContextBmp( pEntry, 0, Image(), Image(), false)); // otherwise boom! - pEntry->AddItem( new SvLBoxString( pEntry, 0, rTitle ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString( + pEntry, 0, OUString()))); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>(new SvLBoxContextBmp( + pEntry, 0, Image(), Image(), false))); // otherwise boom! + pEntry->AddItem(std::unique_ptr<SvLBoxString>(new SvLBoxString( + pEntry, 0, rTitle))); GetModel()->Insert( pEntry,pParent ); } diff --git a/sd/source/ui/dlg/sdtreelb.cxx b/sd/source/ui/dlg/sdtreelb.cxx index 46493a4..9282a47 100644 --- a/sd/source/ui/dlg/sdtreelb.cxx +++ b/sd/source/ui/dlg/sdtreelb.cxx @@ -374,8 +374,8 @@ void SdPageObjsTLB::InitEntry(SvTreeListEntry* pEntry, sal_uInt16 nColToHilite = 1; //0==Bitmap;1=="Spalte1";2=="Spalte2" SvTreeListBox::InitEntry( pEntry, rStr, rImg1, rImg2, eButtonKind ); SvLBoxString& rCol = static_cast<SvLBoxString&>(pEntry->GetItem( nColToHilite )); - SvLBoxString* pStr = new SvLBoxString( pEntry, 0, rCol.GetText() ); - pEntry->ReplaceItem( pStr, nColToHilite ); + std::unique_ptr<SvLBoxString> pStr(new SvLBoxString(pEntry, 0, rCol.GetText())); + pEntry->ReplaceItem(std::move(pStr), nColToHilite ); } void SdPageObjsTLB::SaveExpandedTreeItemState(SvTreeListEntry* pEntry, std::vector<OUString>& vectTreeItem) diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx index c0d53ad..608a573 100644 --- a/sfx2/source/dialog/templdlg.cxx +++ b/sfx2/source/dialog/templdlg.cxx @@ -643,8 +643,9 @@ SvTreeListEntry* FillBox_Impl(SvTreeListBox* pBox, if (officecfg::Office::Common::StylesAndFormatting::Preview::get()) { - StyleLBoxString* pStyleLBoxString = new StyleLBoxString(pTreeListEntry, 0, pEntry->getName(), eStyleFamily); - pTreeListEntry->ReplaceItem(pStyleLBoxString, 1); + std::unique_ptr<StyleLBoxString> pStyleLBoxString( + new StyleLBoxString(pTreeListEntry, 0, pEntry->getName(), eStyleFamily)); + pTreeListEntry->ReplaceItem(std::move(pStyleLBoxString), 1); } pBox->GetModel()->InvalidateEntry(pTreeListEntry); @@ -1263,8 +1264,9 @@ void SfxCommonTemplateDialog_Impl::UpdateStyles_Impl(sal_uInt16 nFlags) SvTreeListEntry* pTreeListEntry = aFmtLb->InsertEntry(aStrings[nPos], 0, false, nPos); if (officecfg::Office::Common::StylesAndFormatting::Preview::get()) { - StyleLBoxString* pStyleLBoxString = new StyleLBoxString(pTreeListEntry, 0, aStrings[nPos], eFam); - pTreeListEntry->ReplaceItem(pStyleLBoxString, 1); + std::unique_ptr<StyleLBoxString> pStyleLBoxString( + new StyleLBoxString(pTreeListEntry, 0, aStrings[nPos], eFam)); + pTreeListEntry->ReplaceItem(std::move(pStyleLBoxString), 1); } aFmtLb->GetModel()->InvalidateEntry(pTreeListEntry); } diff --git a/svtools/source/contnr/svtabbx.cxx b/svtools/source/contnr/svtabbx.cxx index a1459b9..d15253e 100644 --- a/svtools/source/contnr/svtabbx.cxx +++ b/svtools/source/contnr/svtabbx.cxx @@ -83,8 +83,8 @@ void SvTabListBox::InitEntry(SvTreeListEntry* pEntry, const OUString& rStr, for( sal_uInt16 nToken = 0; nToken < nCount; nToken++ ) { const OUString aToken = GetToken(aCurEntry, nIndex); - SvLBoxString* pStr = new SvLBoxString( pEntry, 0, aToken ); - pEntry->AddItem( pStr ); + std::unique_ptr<SvLBoxString> pStr(new SvLBoxString(pEntry, 0, aToken)); + pEntry->AddItem(std::move(pStr)); } } SvTabListBox::SvTabListBox( vcl::Window* pParent, WinBits nBits ) diff --git a/svtools/source/contnr/treelistbox.cxx b/svtools/source/contnr/treelistbox.cxx index 3ee959a..24e043a 100644 --- a/svtools/source/contnr/treelistbox.cxx +++ b/svtools/source/contnr/treelistbox.cxx @@ -1758,21 +1758,19 @@ void SvTreeListBox::InitEntry(SvTreeListEntry* pEntry, const OUString& aStr, const Image& aCollEntryBmp, const Image& aExpEntryBmp, SvLBoxButtonKind eButtonKind) { - SvLBoxString* pString; - SvLBoxContextBmp* pContextBmp; - if( nTreeFlags & SvTreeFlags::CHKBTN ) { - SvLBoxButton* pButton= new SvLBoxButton( pEntry,eButtonKind,0,pCheckButtonData ); - pEntry->AddItem( pButton ); + std::unique_ptr<SvLBoxButton> pButton( + new SvLBoxButton(pEntry, eButtonKind, 0, pCheckButtonData)); + pEntry->AddItem(std::move(pButton)); } - pContextBmp= new SvLBoxContextBmp( - pEntry,0, aCollEntryBmp,aExpEntryBmp, mbContextBmpExpanded); - pEntry->AddItem( pContextBmp ); + std::unique_ptr<SvLBoxContextBmp> pContextBmp(new SvLBoxContextBmp( + pEntry,0, aCollEntryBmp,aExpEntryBmp, mbContextBmpExpanded)); + pEntry->AddItem(std::move(pContextBmp)); - pString = new SvLBoxString( pEntry, 0, aStr ); - pEntry->AddItem( pString ); + std::unique_ptr<SvLBoxString> pString(new SvLBoxString(pEntry, 0, aStr)); + pEntry->AddItem(std::move(pString)); } OUString SvTreeListBox::GetEntryText(SvTreeListEntry* pEntry) const diff --git a/svtools/source/contnr/treelistentry.cxx b/svtools/source/contnr/treelistentry.cxx index 1293157..29f5976 100644 --- a/svtools/source/contnr/treelistentry.cxx +++ b/svtools/source/contnr/treelistentry.cxx @@ -130,9 +130,9 @@ size_t SvTreeListEntry::ItemCount() const return m_Items.size(); } -void SvTreeListEntry::AddItem( SvLBoxItem* pItem ) +void SvTreeListEntry::AddItem(std::unique_ptr<SvLBoxItem> pItem) { - m_Items.push_back(std::unique_ptr<SvLBoxItem>(pItem)); + m_Items.push_back(std::move(pItem)); } void SvTreeListEntry::EnableChildrenOnDemand( bool bEnable ) @@ -143,18 +143,18 @@ void SvTreeListEntry::EnableChildrenOnDemand( bool bEnable ) nEntryFlags &= (~SvTLEntryFlags::CHILDREN_ON_DEMAND); } -void SvTreeListEntry::ReplaceItem( SvLBoxItem* pNewItem, size_t nPos ) +void SvTreeListEntry::ReplaceItem(std::unique_ptr<SvLBoxItem> pNewItem, size_t const nPos) { DBG_ASSERT(pNewItem,"ReplaceItem:No Item"); if (nPos >= m_Items.size()) { // Out of bound. Bail out. - delete pNewItem; + pNewItem.reset(); return; } m_Items.erase(m_Items.begin()+nPos); - m_Items.insert(m_Items.begin()+nPos, std::unique_ptr<SvLBoxItem>(pNewItem)); + m_Items.insert(m_Items.begin()+nPos, std::move(pNewItem)); } const SvLBoxItem& SvTreeListEntry::GetItem( size_t nPos ) const diff --git a/svtools/source/uno/treecontrolpeer.cxx b/svtools/source/uno/treecontrolpeer.cxx index 26cc5b4..4d02dd5 100644 --- a/svtools/source/uno/treecontrolpeer.cxx +++ b/svtools/source/uno/treecontrolpeer.cxx @@ -237,11 +237,14 @@ UnoTreeListEntry* TreeControlPeer::createEntry( const Reference< XTreeNode >& xN { Image aImage; pEntry = new UnoTreeListEntry( xNode, this ); - ImplContextGraphicItem* pContextBmp= new ImplContextGraphicItem(pEntry, 0, aImage, aImage, true); + { + std::unique_ptr<ImplContextGraphicItem> pContextBmp( + new ImplContextGraphicItem(pEntry, 0, aImage, aImage, true)); - pEntry->AddItem( pContextBmp ); + pEntry->AddItem(std::move(pContextBmp)); + } - UnoTreeListItem * pUnoItem = new UnoTreeListItem( pEntry ); + std::unique_ptr<UnoTreeListItem> pUnoItem(new UnoTreeListItem(pEntry)); if( !xNode->getNodeGraphicURL().isEmpty() ) { @@ -252,7 +255,7 @@ UnoTreeListEntry* TreeControlPeer::createEntry( const Reference< XTreeNode >& xN mpTreeImpl->AdjustEntryHeight( aNodeImage ); } - pEntry->AddItem( pUnoItem ); + pEntry->AddItem(std::move(pUnoItem)); mpTreeImpl->insert( pEntry, pParent, nPos ); diff --git a/svx/source/dialog/ctredlin.cxx b/svx/source/dialog/ctredlin.cxx index 1f05706..602a7c2 100644 --- a/svx/source/dialog/ctredlin.cxx +++ b/svx/source/dialog/ctredlin.cxx @@ -343,18 +343,22 @@ void SvxRedlinTable::InitEntry(SvTreeListEntry* pEntry, const OUString& rStr, { if (nTreeFlags & SvTreeFlags::CHKBTN) { - pEntry->AddItem(new SvLBoxButton(pEntry, eButtonKind, 0, pCheckButtonData)); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>( + new SvLBoxButton(pEntry, eButtonKind, 0, pCheckButtonData))); } - pEntry->AddItem(new SvLBoxContextBmp(pEntry, 0, rColl, rExp, true)); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>( + new SvLBoxContextBmp(pEntry, 0, rColl, rExp, true))); // the type of the change assert((rStr.isEmpty() && !!maEntryImage) || (!rStr.isEmpty() && !maEntryImage)); if (rStr.isEmpty()) - pEntry->AddItem(new SvLBoxContextBmp(pEntry, 0, maEntryImage, maEntryImage, true)); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>(new SvLBoxContextBmp( + pEntry, 0, maEntryImage, maEntryImage, true))); else - pEntry->AddItem(new SvLBoxColorString(pEntry, 0, rStr, maEntryColor)); + pEntry->AddItem(std::unique_ptr<SvLBoxColorString>( + new SvLBoxColorString(pEntry, 0, rStr, maEntryColor))); // the change tracking entries sal_Int32 nIndex = 0; @@ -362,7 +366,8 @@ void SvxRedlinTable::InitEntry(SvTreeListEntry* pEntry, const OUString& rStr, for (sal_uInt16 nToken = 0; nToken < nCount; nToken++) { const OUString aToken = GetToken(maEntryString, nIndex); - pEntry->AddItem(new SvLBoxColorString(pEntry, 0, aToken, maEntryColor)); + pEntry->AddItem(std::unique_ptr<SvLBoxColorString>( + new SvLBoxColorString(pEntry, 0, aToken, maEntryColor))); } } diff --git a/svx/source/dialog/docrecovery.cxx b/svx/source/dialog/docrecovery.cxx index 7b9d2fe..9ca770c 100644 --- a/svx/source/dialog/docrecovery.cxx +++ b/svx/source/dialog/docrecovery.cxx @@ -848,8 +848,9 @@ void RecovDocList::InitEntry(SvTreeListEntry* pEntry, DBG_ASSERT( TabCount() == 2, "*RecovDocList::InitEntry(): structure missmatch" ); SvLBoxString& rCol = static_cast<SvLBoxString&>(pEntry->GetItem(2)); - RecovDocListEntry* p = new RecovDocListEntry(pEntry, 0, rCol.GetText()); - pEntry->ReplaceItem(p, 2); + std::unique_ptr<RecovDocListEntry> p( + new RecovDocListEntry(pEntry, 0, rCol.GetText())); + pEntry->ReplaceItem(std::move(p), 2); } diff --git a/svx/source/dialog/fontlb.cxx b/svx/source/dialog/fontlb.cxx index 11eab21..60845d9 100644 --- a/svx/source/dialog/fontlb.cxx +++ b/svx/source/dialog/fontlb.cxx @@ -136,10 +136,12 @@ void SvxFontListBox::InitEntry( if( mbUseFont ) { if( nTreeFlags & SvTreeFlags::CHKBTN ) - pEntry->AddItem( new SvLBoxButton( pEntry, eButtonKind, 0, - pCheckButtonData ) ); - pEntry->AddItem( new SvLBoxContextBmp(pEntry, 0, rCollImg, rExpImg, true) ); - pEntry->AddItem( new SvLBoxFontString( pEntry, 0, rEntryText, maEntryFont, mpEntryColor ) ); + pEntry->AddItem(std::unique_ptr<SvLBoxButton>(new SvLBoxButton( + pEntry, eButtonKind, 0, pCheckButtonData))); + pEntry->AddItem(std::unique_ptr<SvLBoxContextBmp>(new SvLBoxContextBmp( + pEntry, 0, rCollImg, rExpImg, true))); + pEntry->AddItem(std::unique_ptr<SvLBoxFontString>(new SvLBoxFontString( + pEntry, 0, rEntryText, maEntryFont, mpEntryColor))); } else SvTreeListBox::InitEntry( pEntry, rEntryText, rCollImg, rExpImg, diff --git a/svx/source/form/filtnav.cxx b/svx/source/form/filtnav.cxx index 7c0ecce..f601b24 100644 --- a/svx/source/form/filtnav.cxx +++ b/svx/source/form/filtnav.cxx @@ -1411,15 +1411,16 @@ void FmFilterNavigator::InitEntry(SvTreeListEntry* pEntry, SvLBoxButtonKind eButtonKind) { SvTreeListBox::InitEntry( pEntry, rStr, rImg1, rImg2, eButtonKind ); - SvLBoxString* pString = NULL; + std::unique_ptr<SvLBoxString> pString; if (static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFilterItem)) - pString = new FmFilterString(pEntry, 0, rStr, static_cast<FmFilterItem*>(pEntry->GetUserData())->GetFieldName()); + pString.reset(new FmFilterString(pEntry, 0, rStr, + static_cast<FmFilterItem*>(pEntry->GetUserData())->GetFieldName())); else if (static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFilterItems)) - pString = new FmFilterItemsString(pEntry, 0, rStr ); + pString.reset(new FmFilterItemsString(pEntry, 0, rStr)); if (pString) - pEntry->ReplaceItem( pString, 1 ); + pEntry->ReplaceItem(std::move(pString), 1 ); } diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx index 388b810..adae6c2 100644 --- a/sw/source/uibase/utlui/content.cxx +++ b/sw/source/uibase/utlui/content.cxx @@ -3461,8 +3461,9 @@ void SwContentTree::InitEntry(SvTreeListEntry* pEntry, const size_t nColToHilite = 1; //0==Bitmap;1=="Column1";2=="Column2" SvTreeListBox::InitEntry( pEntry, rStr, rImg1, rImg2, eButtonKind ); SvLBoxString& rCol = static_cast<SvLBoxString&>(pEntry->GetItem( nColToHilite )); - SwContentLBoxString* pStr = new SwContentLBoxString( pEntry, 0, rCol.GetText() ); - pEntry->ReplaceItem( pStr, nColToHilite ); + std::unique_ptr<SwContentLBoxString> pStr( + new SwContentLBoxString(pEntry, 0, rCol.GetText())); + pEntry->ReplaceItem(std::move(pStr), nColToHilite); } void SwContentLBoxString::Paint(const Point& rPos, SvTreeListBox& rDev, vcl::RenderContext& rRenderContext, diff --git a/sw/source/uibase/utlui/glbltree.cxx b/sw/source/uibase/utlui/glbltree.cxx index c8c9e0a..0f4e6d6 100644 --- a/sw/source/uibase/utlui/glbltree.cxx +++ b/sw/source/uibase/utlui/glbltree.cxx @@ -1233,8 +1233,9 @@ void SwGlobalTree::InitEntry(SvTreeListEntry* pEntry, const size_t nColToHilite = 1; //0==Bitmap;1=="Column1";2=="Column2" SvTreeListBox::InitEntry( pEntry, rStr, rImg1, rImg2, eButtonKind ); SvLBoxString& rCol = static_cast<SvLBoxString&>(pEntry->GetItem( nColToHilite )); - SwLBoxString* pStr = new SwLBoxString( pEntry, 0, rCol.GetText() ); - pEntry->ReplaceItem( pStr, nColToHilite ); + std::unique_ptr<SwLBoxString> pStr( + new SwLBoxString(pEntry, 0, rCol.GetText())); + pEntry->ReplaceItem(std::move(pStr), nColToHilite); } void SwLBoxString::Paint(const Point& rPos, SvTreeListBox& rDev, vcl::RenderContext& rRenderContext, commit 63de1888f67dc43c30d5a102651b7c2738243efb Author: Michael Stahl <mst...@redhat.com> Date: Mon Jul 20 16:19:44 2015 +0200 svtools: replace boost::ptr_vector with std::vector<std::unique_ptr> Change-Id: I37cf472e7558ffd7714659436b78851caa187945 diff --git a/include/svtools/treelistentry.hxx b/include/svtools/treelistentry.hxx index 839ffd3..a7083de 100644 --- a/include/svtools/treelistentry.hxx +++ b/include/svtools/treelistentry.hxx @@ -26,7 +26,8 @@ #include <svtools/treelistentries.hxx> #include <o3tl/typed_flags_set.hxx> -#include <boost/ptr_container/ptr_vector.hpp> +#include <vector> +#include <memory> // flags related to the model enum class SvTLEntryFlags @@ -53,13 +54,13 @@ class SVT_DLLPUBLIC SvTreeListEntry friend class SvListView; friend class SvTreeListBox; - typedef boost::ptr_vector<SvLBoxItem> ItemsType; + typedef std::vector<std::unique_ptr<SvLBoxItem>> ItemsType; SvTreeListEntry* pParent; SvTreeListEntries maChildren; sal_uLong nAbsPos; sal_uLong nListPos; - ItemsType maItems; + ItemsType m_Items; bool bIsMarked; void* pUserData; SvTLEntryFlags nEntryFlags; diff --git a/svtools/source/contnr/treelistentry.cxx b/svtools/source/contnr/treelistentry.cxx index a78b363..1293157 100644 --- a/svtools/source/contnr/treelistentry.cxx +++ b/svtools/source/contnr/treelistentry.cxx @@ -82,7 +82,7 @@ SvTreeListEntry::~SvTreeListEntry() #endif maChildren.clear(); - maItems.clear(); + m_Items.clear(); } bool SvTreeListEntry::HasChildren() const @@ -112,14 +112,13 @@ void SvTreeListEntry::Clone(SvTreeListEntry* pSource) nListPos |= ( pSource->nListPos & 0x7fffffff); nAbsPos = pSource->nAbsPos; - maItems.clear(); - ItemsType::iterator it = pSource->maItems.begin(), itEnd = pSource->maItems.end(); - for (; it != itEnd; ++it) + m_Items.clear(); + for (auto const& it : pSource->m_Items) { SvLBoxItem* pItem = &(*it); - SvLBoxItem* pNewItem = pItem->Create(); + std::unique_ptr<SvLBoxItem> pNewItem(pItem->Create()); pNewItem->Clone(pItem); - maItems.push_back(pNewItem); + m_Items.push_back(std::move(pNewItem)); } pUserData = pSource->GetUserData(); @@ -128,12 +127,12 @@ void SvTreeListEntry::Clone(SvTreeListEntry* pSource) size_t SvTreeListEntry::ItemCount() const { - return maItems.size(); + return m_Items.size(); } void SvTreeListEntry::AddItem( SvLBoxItem* pItem ) { - maItems.push_back( pItem ); + m_Items.push_back(std::unique_ptr<SvLBoxItem>(pItem)); } void SvTreeListEntry::EnableChildrenOnDemand( bool bEnable ) @@ -147,25 +146,25 @@ void SvTreeListEntry::EnableChildrenOnDemand( bool bEnable ) void SvTreeListEntry::ReplaceItem( SvLBoxItem* pNewItem, size_t nPos ) { DBG_ASSERT(pNewItem,"ReplaceItem:No Item"); - if (nPos >= maItems.size()) + if (nPos >= m_Items.size()) { // Out of bound. Bail out. delete pNewItem; return; } - maItems.erase(maItems.begin()+nPos); - maItems.insert(maItems.begin()+nPos, pNewItem); + m_Items.erase(m_Items.begin()+nPos); + m_Items.insert(m_Items.begin()+nPos, std::unique_ptr<SvLBoxItem>(pNewItem)); } const SvLBoxItem& SvTreeListEntry::GetItem( size_t nPos ) const { - return maItems[nPos]; + return *m_Items[nPos]; } SvLBoxItem& SvTreeListEntry::GetItem( size_t nPos ) { - return maItems[nPos]; + return *m_Items[nPos]; } namespace { @@ -175,9 +174,9 @@ class FindByType : std::unary_function<SvLBoxItem, void> sal_uInt16 mnId; public: explicit FindByType(sal_uInt16 nId) : mnId(nId) {} - bool operator() (const SvLBoxItem& rItem) const + bool operator() (const std::unique_ptr<SvLBoxItem>& rpItem) const { - return rItem.GetType() == mnId; + return rpItem->GetType() == mnId; } }; @@ -186,9 +185,9 @@ class FindByPointer : std::unary_function<SvLBoxItem, void> const SvLBoxItem* mpItem; public: explicit FindByPointer(const SvLBoxItem* p) : mpItem(p) {} - bool operator() (const SvLBoxItem& rItem) const + bool operator() (const std::unique_ptr<SvLBoxItem>& rpItem) const { - return &rItem == mpItem; + return rpItem.get() == mpItem; } }; @@ -196,20 +195,20 @@ public: const SvLBoxItem* SvTreeListEntry::GetFirstItem( sal_uInt16 nId ) const { - ItemsType::const_iterator it = std::find_if(maItems.begin(), maItems.end(), FindByType(nId)); - return it == maItems.end() ? NULL : &(*it); + ItemsType::const_iterator it = std::find_if(m_Items.begin(), m_Items.end(), FindByType(nId)); + return (it == m_Items.end()) ? nullptr : (*it).get(); } SvLBoxItem* SvTreeListEntry::GetFirstItem( sal_uInt16 nId ) { - ItemsType::iterator it = std::find_if(maItems.begin(), maItems.end(), FindByType(nId)); - return it == maItems.end() ? NULL : &(*it); + ItemsType::iterator it = std::find_if(m_Items.begin(), m_Items.end(), FindByType(nId)); + return (it == m_Items.end()) ? nullptr : (*it).get(); } size_t SvTreeListEntry::GetPos( const SvLBoxItem* pItem ) const { - ItemsType::const_iterator it = std::find_if(maItems.begin(), maItems.end(), FindByPointer(pItem)); - return it == maItems.end() ? ITEM_NOT_FOUND : std::distance(maItems.begin(), it); + ItemsType::const_iterator it = std::find_if(m_Items.begin(), m_Items.end(), FindByPointer(pItem)); + return it == m_Items.end() ? ITEM_NOT_FOUND : std::distance(m_Items.begin(), it); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits