[Libreoffice-commits] core.git: 3 commits - sc/inc sc/qa sc/source

Michael Stahl mstahl at redhat.com
Mon Nov 2 12:22:44 PST 2015


 sc/inc/document.hxx                   |    6 ++---
 sc/inc/rangenam.hxx                   |    2 -
 sc/inc/undorangename.hxx              |   14 +++++++-----
 sc/qa/unit/ucalc_sharedformula.cxx    |    4 +--
 sc/source/core/data/documen2.cxx      |    1 
 sc/source/core/data/documen3.cxx      |    8 +++----
 sc/source/core/data/document.cxx      |    4 +--
 sc/source/core/tool/interpr4.cxx      |   38 ++++++++++++++++++----------------
 sc/source/ui/docshell/docfunc.cxx     |    2 -
 sc/source/ui/inc/docfunc.hxx          |    2 -
 sc/source/ui/inc/namedlg.hxx          |   12 +++++-----
 sc/source/ui/inc/namemgrtable.hxx     |    9 +++++---
 sc/source/ui/inc/namepast.hxx         |    5 +++-
 sc/source/ui/inc/tabvwsh.hxx          |    5 ++--
 sc/source/ui/namedlg/namedlg.cxx      |   22 +++++++++++--------
 sc/source/ui/namedlg/namemgrtable.cxx |   27 ++++++++++++------------
 sc/source/ui/namedlg/namepast.cxx     |    6 +++--
 sc/source/ui/undo/undorangename.cxx   |   20 ++++++++---------
 sc/source/ui/view/tabvwshc.cxx        |    9 +++-----
 19 files changed, 105 insertions(+), 91 deletions(-)

New commits:
commit f462cd39b990929bc71615f7f04d561d64c1039d
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Nov 2 18:38:48 2015 +0100

    sc: replace boost::ptr_vector with std::vector<std::unique_ptr>
    
    Change-Id: I51d87693bdb3d57c36d8cafb851fdad10cd93589

diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index ec019b0..83f12bc 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -528,7 +528,7 @@ public:
      * non-empty range name set.
      */
     SC_DLLPUBLIC void GetAllTabRangeNames(ScRangeName::TabNameCopyMap& rRangeNames) const;
-    SC_DLLPUBLIC void SetAllRangeNames( const boost::ptr_map<OUString, ScRangeName>& rRangeMap);
+    SC_DLLPUBLIC void SetAllRangeNames(const std::map<OUString, std::unique_ptr<ScRangeName>>& rRangeMap);
     SC_DLLPUBLIC void GetTabRangeNameMap(std::map<OUString, ScRangeName*>& rRangeName);
     SC_DLLPUBLIC void GetRangeNameMap(std::map<OUString, ScRangeName*>& rRangeName);
     SC_DLLPUBLIC ScRangeName* GetRangeName(SCTAB nTab) const;
diff --git a/sc/inc/undorangename.hxx b/sc/inc/undorangename.hxx
index ba5a935..009c2a1 100644
--- a/sc/inc/undorangename.hxx
+++ b/sc/inc/undorangename.hxx
@@ -12,7 +12,9 @@
 
 #include "undobase.hxx"
 #include "rangenam.hxx"
-#include <boost/ptr_container/ptr_map.hpp>
+
+#include <memory>
+#include <map>
 
 class ScDocShell;
 
@@ -23,8 +25,8 @@ class ScUndoAllRangeNames : public ScSimpleUndo
 {
 public:
     ScUndoAllRangeNames(ScDocShell* pDocSh,
-                        const std::map<OUString, ScRangeName*>& rOldNames,
-                        const boost::ptr_map<OUString, ScRangeName>& rNewNames);
+        const std::map<OUString, ScRangeName*>& rOldNames,
+        const std::map<OUString, std::unique_ptr<ScRangeName>>& rNewNames);
 
     virtual ~ScUndoAllRangeNames();
 
@@ -35,11 +37,11 @@ public:
     virtual OUString GetComment() const override;
 
 private:
-    void DoChange(const boost::ptr_map<OUString, ScRangeName>& rNames);
+    void DoChange(const std::map<OUString, std::unique_ptr<ScRangeName>>& rNames);
 
 private:
-    boost::ptr_map<OUString, ScRangeName> maOldNames;
-    boost::ptr_map<OUString, ScRangeName> maNewNames;
+    std::map<OUString, std::unique_ptr<ScRangeName>> m_OldNames;
+    std::map<OUString, std::unique_ptr<ScRangeName>> m_NewNames;
 };
 
 class ScUndoAddRangeData : public ScSimpleUndo
diff --git a/sc/qa/unit/ucalc_sharedformula.cxx b/sc/qa/unit/ucalc_sharedformula.cxx
index 63cc3b1..8d70e4d 100644
--- a/sc/qa/unit/ucalc_sharedformula.cxx
+++ b/sc/qa/unit/ucalc_sharedformula.cxx
@@ -1555,10 +1555,10 @@ void Test::testSharedFormulaUpdateOnNamedRangeChange()
     CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), pNames->size());
     ScDocFunc& rFunc = getDocShell().GetDocFunc();
 
-    typedef boost::ptr_map<OUString, ScRangeName> NameMapType;
+    typedef std::map<OUString, std::unique_ptr<ScRangeName>> NameMapType;
     NameMapType aNewNames;
     OUString aScope(STR_GLOBAL_RANGE_NAME);
-    aNewNames.insert(aScope, pNames);
+    aNewNames.insert(std::make_pair(aScope, std::unique_ptr<ScRangeName>(pNames)));
     rFunc.ModifyAllRangeNames(aNewNames);
 
     // Check to make sure all displayed formulas are still good.
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index e939264..21decad 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -119,16 +119,16 @@ void ScDocument::GetAllTabRangeNames(ScRangeName::TabNameCopyMap& rNames) const
     rNames.swap(aNames);
 }
 
-void ScDocument::SetAllRangeNames( const boost::ptr_map<OUString, ScRangeName>& rRangeMap)
+void ScDocument::SetAllRangeNames(const std::map<OUString, std::unique_ptr<ScRangeName>>& rRangeMap)
 {
     OUString aGlobalStr(STR_GLOBAL_RANGE_NAME);
-    boost::ptr_map<OUString,ScRangeName>::const_iterator itr = rRangeMap.begin(), itrEnd = rRangeMap.end();
+    auto itr = rRangeMap.begin(), itrEnd = rRangeMap.end();
     for (; itr!=itrEnd; ++itr)
     {
         if (itr->first == aGlobalStr)
         {
             delete pRangeName;
-            const ScRangeName* pName = itr->second;
+            const ScRangeName *const pName = itr->second.get();
             if (pName->empty())
                 pRangeName = NULL;
             else
@@ -136,7 +136,7 @@ void ScDocument::SetAllRangeNames( const boost::ptr_map<OUString, ScRangeName>&
         }
         else
         {
-            const ScRangeName* pName = itr->second;
+            const ScRangeName *const pName = itr->second.get();
             SCTAB nTab;
             bool bFound = GetTable(itr->first, nTab);
             assert(bFound); (void)bFound;   // fouled up?
diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx
index c3e8551..6f1e593 100644
--- a/sc/source/ui/docshell/docfunc.cxx
+++ b/sc/source/ui/docshell/docfunc.cxx
@@ -4872,7 +4872,7 @@ void ScDocFunc::SetNewRangeNames( ScRangeName* pNewRanges, bool bModifyDoc, SCTA
     }
 }
 
-void ScDocFunc::ModifyAllRangeNames( const boost::ptr_map<OUString, ScRangeName>& rRangeMap )
+void ScDocFunc::ModifyAllRangeNames(const std::map<OUString, std::unique_ptr<ScRangeName>>& rRangeMap)
 {
     ScDocShellModificator aModificator(rDocShell);
     ScDocument& rDoc = rDocShell.GetDocument();
diff --git a/sc/source/ui/inc/docfunc.hxx b/sc/source/ui/inc/docfunc.hxx
index 6d9c032..2d38647 100644
--- a/sc/source/ui/inc/docfunc.hxx
+++ b/sc/source/ui/inc/docfunc.hxx
@@ -200,7 +200,7 @@ public:
      * passed as arguments (it creates copies); the caller is responsible for
      * destroying them.
      */
-    void            ModifyAllRangeNames( const boost::ptr_map<OUString, ScRangeName>& rRangeMap );
+    void            ModifyAllRangeNames(const std::map<OUString, std::unique_ptr<ScRangeName>>& rRangeMap);
 
     bool            CreateNames( const ScRange& rRange, sal_uInt16 nFlags, bool bApi, SCTAB nTab = -1 ); // -1 for global range names
     bool            InsertNameList( const ScAddress& rStartPos, bool bApi );
diff --git a/sc/source/ui/inc/namedlg.hxx b/sc/source/ui/inc/namedlg.hxx
index 06fc816..f0c0084 100644
--- a/sc/source/ui/inc/namedlg.hxx
+++ b/sc/source/ui/inc/namedlg.hxx
@@ -30,8 +30,7 @@
 #include "anyrefdg.hxx"
 #include "namemgrtable.hxx"
 
-#include <boost/ptr_container/ptr_map.hpp>
-
+#include <memory>
 #include <stack>
 #include <map>
 
@@ -76,9 +75,9 @@ private:
     //ugly hack to call DefineNames from ManageNames
     bool mbCloseWithoutUndo;
 
-    typedef boost::ptr_map<OUString, ScRangeName> RangeNameContainer;
+    typedef std::map<OUString, std::unique_ptr<ScRangeName>> RangeNameContainer;
 
-    RangeNameContainer maRangeMap;
+    RangeNameContainer m_RangeMap;
 
 private:
     void Init();
@@ -116,7 +115,8 @@ protected:
 public:
                     ScNameDlg( SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pParent,
                                ScViewData*      ptrViewData,
-                               const ScAddress& aCursorPos, boost::ptr_map<OUString, ScRangeName>* pRangeMap = NULL );
+                               const ScAddress& aCursorPos,
+                               std::map<OUString, std::unique_ptr<ScRangeName>>* pRangeMap = nullptr);
     virtual         ~ScNameDlg();
     virtual void    dispose() override;
 
@@ -128,7 +128,7 @@ public:
 
     virtual void tableInitialized() override;
 
-    void GetRangeNames(boost::ptr_map<OUString, ScRangeName>& rRangeMap);
+    void GetRangeNames(std::map<OUString, std::unique_ptr<ScRangeName>>& rRangeMap);
     void SetEntry(const OUString& rName, const OUString& rScope);
 };
 
diff --git a/sc/source/ui/inc/namemgrtable.hxx b/sc/source/ui/inc/namemgrtable.hxx
index aec3cb2..9d5f4e19 100644
--- a/sc/source/ui/inc/namemgrtable.hxx
+++ b/sc/source/ui/inc/namemgrtable.hxx
@@ -16,8 +16,9 @@
 #include "scresid.hxx"
 #include "address.hxx"
 
+#include <memory>
 #include <vector>
-#include <boost/ptr_container/ptr_map.hpp>
+#include <map>
 
 class ScRangeName;
 class ScRangeData;
@@ -47,7 +48,7 @@ private:
     OUString maGlobalString;
 
     // should be const because we should not modify it here
-    const boost::ptr_map<OUString, ScRangeName>& mrRangeMap;
+    const std::map<OUString, std::unique_ptr<ScRangeName>>& m_RangeMap;
     // for performance, save which entries already have the formula entry
     // otherwise opening the dialog with a lot of range names is extremelly slow because
     // we would calculate all formula strings during opening
@@ -64,7 +65,9 @@ private:
     void setColWidths();
 
 public:
-    ScRangeManagerTable( SvSimpleTableContainer& rParent, boost::ptr_map<OUString, ScRangeName>& aTabRangeNames, const ScAddress& rPos );
+    ScRangeManagerTable(SvSimpleTableContainer& rParent,
+        std::map<OUString, std::unique_ptr<ScRangeName>>& rTabRangeNames,
+        const ScAddress& rPos);
     virtual ~ScRangeManagerTable();
     virtual void dispose() override;
 
diff --git a/sc/source/ui/inc/namepast.hxx b/sc/source/ui/inc/namepast.hxx
index 113299c..604e6c3 100644
--- a/sc/source/ui/inc/namepast.hxx
+++ b/sc/source/ui/inc/namepast.hxx
@@ -26,7 +26,9 @@
 #include <vcl/lstbox.hxx>
 #include "namemgrtable.hxx"
 
+#include <memory>
 #include <vector>
+#include <map>
 
 #include "scui_def.hxx"
 class ScRangeName;
@@ -44,7 +46,8 @@ private:
     VclPtr<ScRangeManagerTable> mpTable;
 
     std::vector<OUString> maSelectedNames;
-    boost::ptr_map<OUString, ScRangeName> maRangeMap;
+    std::map<OUString, std::unique_ptr<ScRangeName>> m_RangeMap;
+
 public:
     ScNamePasteDlg( vcl::Window * pParent, ScDocShell* pShell, bool bInsList=true );
 
diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx
index 6f94a60..a162111 100644
--- a/sc/source/ui/inc/tabvwsh.hxx
+++ b/sc/source/ui/inc/tabvwsh.hxx
@@ -32,7 +32,8 @@
 #include "shellids.hxx"
 #include "tabprotection.hxx"
 
-#include <boost/ptr_container/ptr_map.hpp>
+#include <memory>
+#include <map>
 
 class SbxObject;
 class SdrOle2Obj;
@@ -168,7 +169,7 @@ private:
     SfxBroadcaster*         pAccessibilityBroadcaster;
 
     // ugly hack for Add button in ScNameDlg
-    boost::ptr_map<OUString, ScRangeName> maRangeMap;
+    std::map<OUString, std::unique_ptr<ScRangeName>> m_RangeMap;
     bool    mbInSwitch;
     OUString   maName;
     OUString   maScope;
diff --git a/sc/source/ui/namedlg/namedlg.cxx b/sc/source/ui/namedlg/namedlg.cxx
index 3138ec0..5426964 100644
--- a/sc/source/ui/namedlg/namedlg.cxx
+++ b/sc/source/ui/namedlg/namedlg.cxx
@@ -35,6 +35,8 @@
 #include <vcl/msgbox.hxx>
 #include <vcl/settings.hxx>
 
+#include <o3tl/make_unique.hxx>
+
 #include <map>
 
 // defines -------------------------------------------------------------------
@@ -49,7 +51,8 @@
 
 ScNameDlg::ScNameDlg( SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pParent,
         ScViewData*       ptrViewData,
-        const ScAddress&  aCursorPos, boost::ptr_map<OUString, ScRangeName>* pRangeMap  )
+        const ScAddress&  aCursorPos,
+        std::map<OUString, std::unique_ptr<ScRangeName>> *const pRangeMap)
     : ScAnyRefDlg(pB, pCW, pParent, "ManageNamesDialog", "modules/scalc/ui/managenamesdialog.ui")
 
     , maGlobalNameStr(ScGlobal::GetRscString(STR_GLOBAL_SCOPE))
@@ -90,12 +93,13 @@ ScNameDlg::ScNameDlg( SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pParent
         for (; itr != itrEnd; ++itr)
         {
             OUString aTemp(itr->first);
-            maRangeMap.insert(aTemp, new ScRangeName(*itr->second));
+            m_RangeMap.insert(std::make_pair(aTemp,
+                    o3tl::make_unique<ScRangeName>(*itr->second)));
         }
     }
     else
     {
-        maRangeMap.swap(*pRangeMap);
+        m_RangeMap.swap(*pRangeMap);
     }
     Init();
 }
@@ -136,7 +140,7 @@ void ScNameDlg::Init()
     SvSimpleTableContainer *pCtrl = get<SvSimpleTableContainer>("names");
     pCtrl->set_height_request(pCtrl->GetTextHeight()*12);
 
-    m_pRangeManagerTable = VclPtr<ScRangeManagerTable>::Create(*pCtrl, maRangeMap, maCursorPos);
+    m_pRangeManagerTable = VclPtr<ScRangeManagerTable>::Create(*pCtrl, m_RangeMap, maCursorPos);
     m_pRangeManagerTable->setInitListener(this);
     m_pRangeManagerTable->SetSelectHdl( LINK( this, ScNameDlg, SelectionChangedHdl_Impl ) );
     m_pRangeManagerTable->SetDeselectHdl( LINK( this, ScNameDlg, SelectionChangedHdl_Impl ) );
@@ -194,7 +198,7 @@ void ScNameDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
 bool ScNameDlg::Close()
 {
     if (mbDataChanged && !mbCloseWithoutUndo)
-        mpViewData->GetDocFunc().ModifyAllRangeNames(maRangeMap);
+        mpViewData->GetDocFunc().ModifyAllRangeNames(m_RangeMap);
     return DoClose( ScNameDlgWrapper::GetChildWindowId() );
 }
 
@@ -319,9 +323,9 @@ bool ScNameDlg::IsFormulaValid()
 ScRangeName* ScNameDlg::GetRangeName(const OUString& rScope)
 {
     if (rScope == maGlobalNameStr)
-        return maRangeMap.find(OUString(STR_GLOBAL_RANGE_NAME))->second;
+        return m_RangeMap.find(OUString(STR_GLOBAL_RANGE_NAME))->second.get();
     else
-        return maRangeMap.find(rScope)->second;
+        return m_RangeMap.find(rScope)->second.get();
 }
 
 void ScNameDlg::ShowOptions(const ScRangeNameLine& rLine)
@@ -478,9 +482,9 @@ void ScNameDlg::ScopeChanged()
     NameModified();
 }
 
-void ScNameDlg::GetRangeNames(boost::ptr_map<OUString, ScRangeName>& rRangeMap)
+void ScNameDlg::GetRangeNames(std::map<OUString, std::unique_ptr<ScRangeName>>& rRangeMap)
 {
-    maRangeMap.swap(rRangeMap);
+    m_RangeMap.swap(rRangeMap);
 }
 
 IMPL_LINK_NOARG_TYPED(ScNameDlg, OkBtnHdl, Button*, void)
diff --git a/sc/source/ui/namedlg/namemgrtable.cxx b/sc/source/ui/namedlg/namemgrtable.cxx
index 770fa33..655fce6 100644
--- a/sc/source/ui/namedlg/namemgrtable.cxx
+++ b/sc/source/ui/namedlg/namemgrtable.cxx
@@ -34,12 +34,14 @@ static OUString createEntryString(const ScRangeNameLine& rLine)
 
 ScRangeManagerTable::InitListener::~InitListener() {}
 
-ScRangeManagerTable::ScRangeManagerTable( SvSimpleTableContainer& rParent, boost::ptr_map<OUString, ScRangeName>& rRangeMap, const ScAddress& rPos ):
-    SvSimpleTable( rParent, WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP ),
-    maGlobalString( ScGlobal::GetRscString(STR_GLOBAL_SCOPE)),
-    mrRangeMap( rRangeMap ),
-    maPos( rPos ),
-    mpInitListener(NULL)
+ScRangeManagerTable::ScRangeManagerTable(SvSimpleTableContainer& rParent,
+        std::map<OUString, std::unique_ptr<ScRangeName>>& rRangeMap,
+        const ScAddress& rPos)
+    : SvSimpleTable( rParent, WB_SORT | WB_HSCROLL | WB_CLIPCHILDREN | WB_TABSTOP )
+    , maGlobalString( ScGlobal::GetRscString(STR_GLOBAL_SCOPE))
+    , m_RangeMap(rRangeMap)
+    , maPos( rPos )
+    , mpInitListener(nullptr)
 {
     static long aStaticTabs[] = {3, 0, 0, 0 };
     SetTabs( &aStaticTabs[0], MAP_PIXEL );
@@ -141,15 +143,14 @@ void ScRangeManagerTable::Init()
 {
     SetUpdateMode(false);
     Clear();
-    for (boost::ptr_map<OUString, ScRangeName>::const_iterator itr = mrRangeMap.begin();
-            itr != mrRangeMap.end(); ++itr)
+    for (auto const& itr : m_RangeMap)
     {
-        const ScRangeName* pLocalRangeName = itr->second;
+        const ScRangeName *const pLocalRangeName = itr.second.get();
         ScRangeNameLine aLine;
-        if ( itr->first == STR_GLOBAL_RANGE_NAME )
+        if (itr.first == STR_GLOBAL_RANGE_NAME)
             aLine.aScope = maGlobalString;
         else
-            aLine.aScope = itr->first;
+            aLine.aScope = itr.first;
         for (ScRangeName::const_iterator it = pLocalRangeName->begin();
                 it != pLocalRangeName->end(); ++it)
         {
@@ -167,9 +168,9 @@ const ScRangeData* ScRangeManagerTable::findRangeData(const ScRangeNameLine& rLi
 {
     const ScRangeName* pRangeName;
     if (rLine.aScope == maGlobalString)
-        pRangeName = mrRangeMap.find(OUString(STR_GLOBAL_RANGE_NAME))->second;
+        pRangeName = m_RangeMap.find(OUString(STR_GLOBAL_RANGE_NAME))->second.get();
     else
-        pRangeName = mrRangeMap.find(rLine.aScope)->second;
+        pRangeName = m_RangeMap.find(rLine.aScope)->second.get();
 
     return pRangeName->findByUpperName(ScGlobal::pCharClass->uppercase(rLine.aName));
 }
diff --git a/sc/source/ui/namedlg/namepast.cxx b/sc/source/ui/namedlg/namepast.cxx
index 7b64fed..a73d372 100644
--- a/sc/source/ui/namedlg/namepast.cxx
+++ b/sc/source/ui/namedlg/namepast.cxx
@@ -26,6 +26,8 @@
 #include "rangenam.hxx"
 #include "viewdata.hxx"
 
+#include <o3tl/make_unique.hxx>
+
 ScNamePasteDlg::ScNamePasteDlg( vcl::Window * pParent, ScDocShell* pShell, bool )
     : ModalDialog( pParent, "InsertNameDialog", "modules/scalc/ui/insertname.ui" )
 {
@@ -40,7 +42,7 @@ ScNamePasteDlg::ScNamePasteDlg( vcl::Window * pParent, ScDocShell* pShell, bool
     for (; itr != itrEnd; ++itr)
     {
         OUString aTemp(itr->first);
-        maRangeMap.insert(aTemp, new ScRangeName(*itr->second));
+        m_RangeMap.insert(std::make_pair(aTemp, o3tl::make_unique<ScRangeName>(*itr->second)));
     }
 
     ScViewData* pViewData = ScDocShell::GetViewData();
@@ -50,7 +52,7 @@ ScNamePasteDlg::ScNamePasteDlg( vcl::Window * pParent, ScDocShell* pShell, bool
     aControlSize = LogicToPixel(aControlSize, MAP_APPFONT);
     pContainer->set_width_request(aControlSize.Width());
     pContainer->set_height_request(10 * GetTextHeight());
-    mpTable = VclPtr<ScRangeManagerTable>::Create(*pContainer, maRangeMap, aPos);
+    mpTable = VclPtr<ScRangeManagerTable>::Create(*pContainer, m_RangeMap, aPos);
 
     m_pBtnPaste->SetClickHdl( LINK( this, ScNamePasteDlg, ButtonHdl) );
     m_pBtnPasteAll->SetClickHdl( LINK( this, ScNamePasteDlg, ButtonHdl));
diff --git a/sc/source/ui/undo/undorangename.cxx b/sc/source/ui/undo/undorangename.cxx
index 6cb3d6c..f275cdc 100644
--- a/sc/source/ui/undo/undorangename.cxx
+++ b/sc/source/ui/undo/undorangename.cxx
@@ -13,7 +13,6 @@
 #include "docfunc.hxx"
 #include "sc.hrc"
 
-#include <o3tl/ptr_container.hxx>
 #include <sfx2/app.hxx>
 
 #include <memory>
@@ -24,21 +23,20 @@ using ::std::unique_ptr;
 ScUndoAllRangeNames::ScUndoAllRangeNames(
     ScDocShell* pDocSh,
     const std::map<OUString, ScRangeName*>& rOldNames,
-    const boost::ptr_map<OUString, ScRangeName>& rNewNames) :
-    ScSimpleUndo(pDocSh)
+    const std::map<OUString, std::unique_ptr<ScRangeName>>& rNewNames)
+        : ScSimpleUndo(pDocSh)
 {
     std::map<OUString, ScRangeName*>::const_iterator itr, itrEnd;
     for (itr = rOldNames.begin(), itrEnd = rOldNames.end(); itr != itrEnd; ++itr)
     {
         unique_ptr<ScRangeName> p(new ScRangeName(*itr->second));
-        o3tl::ptr_container::insert(maOldNames, itr->first, std::move(p));
+        m_OldNames.insert(std::make_pair(itr->first, std::move(p)));
     }
 
-    boost::ptr_map<OUString, ScRangeName>::const_iterator it, itEnd;
-    for (it = rNewNames.begin(), itEnd = rNewNames.end(); it != itEnd; ++it)
+    for (auto const& it : rNewNames)
     {
-        unique_ptr<ScRangeName> p(new ScRangeName(*it->second));
-        o3tl::ptr_container::insert(maNewNames, it->first, std::move(p));
+        unique_ptr<ScRangeName> p(new ScRangeName(*it.second));
+        m_NewNames.insert(std::make_pair(it.first, std::move(p)));
     }
 }
 
@@ -48,12 +46,12 @@ ScUndoAllRangeNames::~ScUndoAllRangeNames()
 
 void ScUndoAllRangeNames::Undo()
 {
-    DoChange(maOldNames);
+    DoChange(m_OldNames);
 }
 
 void ScUndoAllRangeNames::Redo()
 {
-    DoChange(maNewNames);
+    DoChange(m_NewNames);
 }
 
 void ScUndoAllRangeNames::Repeat(SfxRepeatTarget& /*rTarget*/)
@@ -70,7 +68,7 @@ OUString ScUndoAllRangeNames::GetComment() const
     return ScGlobal::GetRscString(STR_UNDO_RANGENAMES);
 }
 
-void ScUndoAllRangeNames::DoChange(const boost::ptr_map<OUString, ScRangeName>& rNames)
+void ScUndoAllRangeNames::DoChange(const std::map<OUString, std::unique_ptr<ScRangeName>>& rNames)
 {
     ScDocument& rDoc = pDocShell->GetDocument();
 
diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx
index 6b8118e..de6eddc 100644
--- a/sc/source/ui/view/tabvwshc.cxx
+++ b/sc/source/ui/view/tabvwshc.cxx
@@ -89,7 +89,7 @@ void ScTabViewShell::SwitchBetweenRefDialogs(SfxModelessDialog* pDialog)
    if (nSlotId == FID_DEFINE_NAME)
    {
         mbInSwitch = true;
-        static_cast<ScNameDlg*>(pDialog)->GetRangeNames(maRangeMap);
+        static_cast<ScNameDlg*>(pDialog)->GetRangeNames(m_RangeMap);
         static_cast<ScNameDlg*>(pDialog)->Close();
         sal_uInt16 nId  = ScNameDefDlgWrapper::GetChildWindowId();
         SfxViewFrame* pViewFrm = GetViewFrame();
@@ -156,7 +156,7 @@ VclPtr<SfxModelessDialog> ScTabViewShell::CreateRefDialog(
                 pResult = VclPtr<ScNameDlg>::Create( pB, pCW, pParent, &GetViewData(),
                                      ScAddress( GetViewData().GetCurX(),
                                                 GetViewData().GetCurY(),
-                                                GetViewData().GetTabNo() ), &maRangeMap);
+                                                GetViewData().GetTabNo() ), &m_RangeMap);
                 static_cast<ScNameDlg*>(pResult.get())->SetEntry( maName, maScope);
                 mbInSwitch = false;
             }
@@ -177,10 +177,9 @@ VclPtr<SfxModelessDialog> ScTabViewShell::CreateRefDialog(
             else
             {
                 std::map<OUString, ScRangeName*> aRangeMap;
-                for (boost::ptr_map<OUString, ScRangeName>::iterator itr = maRangeMap.begin();
-                        itr != maRangeMap.end(); ++itr)
+                for (auto const& itr : m_RangeMap)
                 {
-                    aRangeMap.insert(std::pair<OUString, ScRangeName*>(itr->first, itr->second));
+                    aRangeMap.insert(std::pair<OUString, ScRangeName*>(itr.first, itr.second.get()));
                 }
                 pResult = VclPtr<ScNameDefDlg>::Create( pB, pCW, pParent, &GetViewData(), aRangeMap,
                                 ScAddress( GetViewData().GetCurX(),
commit 9939a89c1e39e5c350600b6bea795743ddb780fb
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Nov 2 17:14:52 2015 +0100

    sc: remove unused boost::ptr_map ScRangeName::TabNameMap
    
    Change-Id: I7967f0ee333eda4db320dc50bd91f2229792f0a8

diff --git a/sc/inc/rangenam.hxx b/sc/inc/rangenam.hxx
index 5d01b31..812af42 100644
--- a/sc/inc/rangenam.hxx
+++ b/sc/inc/rangenam.hxx
@@ -175,8 +175,6 @@ private:
     IndexDataType maIndexToData;
 
 public:
-    /// Map that manages stored ScRangeName instances.
-    typedef ::boost::ptr_map<SCTAB, ScRangeName>  TabNameMap;
     /// Map that stores non-managed pointers to ScRangeName instances.
     typedef ::std::map<SCTAB, const ScRangeName*> TabNameCopyMap;
 
commit 64f3c1ecce7038a7890947020540161ec31204c7
Author: Michael Stahl <mstahl at redhat.com>
Date:   Mon Nov 2 17:12:26 2015 +0100

    sc: replace boost::ptr_vector with std::vector<std::unique_ptr>
    
    Change-Id: I21719d513aa4af7a7f9621e19d529fd0c4425f58

diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index db0f6d2..ec019b0 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -44,7 +44,6 @@
 #include <map>
 #include <set>
 #include <vector>
-#include <boost/ptr_container/ptr_vector.hpp>
 
 #include "markdata.hxx"
 
@@ -374,7 +373,8 @@ private:
     css::uno::Reference< css::script::vba::XVBAEventProcessor >
                         mxVbaEvents;
 public:
-    boost::ptr_vector< ScInterpreterTableOpParams > aTableOpList; // list of ScInterpreterTableOpParams currently in use
+    /// list of ScInterpreterTableOpParams currently in use
+    std::vector<std::unique_ptr<ScInterpreterTableOpParams>> m_TableOpList;
     ScInterpreterTableOpParams  aLastTableOpParams;     // remember last params
 private:
 
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index 38ca15d..b7cc1ed 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -170,7 +170,6 @@ ScDocument::ScDocument( ScDocumentMode eMode, SfxObjectShell* pDocShell ) :
         nUnoObjectId( 0 ),
         nRangeOverflowType( 0 ),
         aCurTextWidthCalcPos(MAXCOL,0,0),
-        aTableOpList( 0 ),
         nFormulaCodeInTree(0),
         nXMLImportedFormulaCount( 0 ),
         nInterpretLevel(0),
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 9bfee0b..054dc9f 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -3755,9 +3755,9 @@ void ScDocument::InterpretDirtyCells( const ScRangeList& rRanges )
 
 void ScDocument::AddTableOpFormulaCell( ScFormulaCell* pCell )
 {
-    if ( !aTableOpList.empty() )
+    if (!m_TableOpList.empty())
     {
-        ScInterpreterTableOpParams* p = &aTableOpList.back();
+        ScInterpreterTableOpParams *const p = m_TableOpList.back().get();
         if ( p->bCollectNotifications )
         {
             if ( p->bRefresh )
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index d21e9e6..53ac379 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -87,10 +87,10 @@ using ::std::unique_ptr;
 
 void ScInterpreter::ReplaceCell( ScAddress& rPos )
 {
-    size_t ListSize = pDok->aTableOpList.size();
+    size_t ListSize = pDok->m_TableOpList.size();
     for ( size_t i = 0; i < ListSize; ++i )
     {
-        ScInterpreterTableOpParams* pTOp = &pDok->aTableOpList[ i ];
+        ScInterpreterTableOpParams *const pTOp = pDok->m_TableOpList[ i ].get();
         if ( rPos == pTOp->aOld1 )
         {
             rPos = pTOp->aNew1;
@@ -107,10 +107,10 @@ void ScInterpreter::ReplaceCell( ScAddress& rPos )
 void ScInterpreter::ReplaceCell( SCCOL& rCol, SCROW& rRow, SCTAB& rTab )
 {
     ScAddress aCellPos( rCol, rRow, rTab );
-    size_t ListSize = pDok->aTableOpList.size();
+    size_t ListSize = pDok->m_TableOpList.size();
     for ( size_t i = 0; i < ListSize; ++i )
     {
-        ScInterpreterTableOpParams* pTOp = &pDok->aTableOpList[ i ];
+        ScInterpreterTableOpParams *const pTOp = pDok->m_TableOpList[ i ].get();
         if ( aCellPos == pTOp->aOld1 )
         {
             rCol = pTOp->aNew1.Col();
@@ -134,10 +134,10 @@ bool ScInterpreter::IsTableOpInRange( const ScRange& rRange )
         return false;   // not considered to be a range in TableOp sense
 
     // we can't replace a single cell in a range
-    size_t ListSize = pDok->aTableOpList.size();
+    size_t ListSize = pDok->m_TableOpList.size();
     for ( size_t i = 0; i < ListSize; ++i )
     {
-        ScInterpreterTableOpParams* pTOp = &pDok->aTableOpList[ i ];
+        ScInterpreterTableOpParams *const pTOp = pDok->m_TableOpList[ i ].get();
         if ( rRange.In( pTOp->aOld1 ) )
             return true;
         if ( rRange.In( pTOp->aOld2 ) )
@@ -911,7 +911,7 @@ void ScInterpreter::PopSingleRef(SCCOL& rCol, SCROW &rRow, SCTAB& rTab)
                 break;
             case svSingleRef:
                 SingleRefToVars( *p->GetSingleRef(), rCol, rRow, rTab);
-                if ( !pDok->aTableOpList.empty() )
+                if (!pDok->m_TableOpList.empty())
                     ReplaceCell( rCol, rRow, rTab );
                 break;
             default:
@@ -940,7 +940,7 @@ void ScInterpreter::PopSingleRef( ScAddress& rAdr )
                     SCTAB nTab;
                     SingleRefToVars( *p->GetSingleRef(), nCol, nRow, nTab);
                     rAdr.Set( nCol, nRow, nTab );
-                    if ( !pDok->aTableOpList.empty() )
+                    if (!pDok->m_TableOpList.empty())
                         ReplaceCell( rAdr );
                 }
                 break;
@@ -960,7 +960,7 @@ void ScInterpreter::DoubleRefToVars( const formula::FormulaToken* p,
     const ScComplexRefData& rCRef = *p->GetDoubleRef();
     SingleRefToVars( rCRef.Ref1, rCol1, rRow1, rTab1);
     SingleRefToVars( rCRef.Ref2, rCol2, rRow2, rTab2);
-    if ( !pDok->aTableOpList.empty() && !bDontCheckForTableOp )
+    if (!pDok->m_TableOpList.empty() && !bDontCheckForTableOp)
     {
         ScRange aRange( rCol1, rRow1, rTab1, rCol2, rRow2, rTab2 );
         if ( IsTableOpInRange( aRange ) )
@@ -1045,7 +1045,7 @@ void ScInterpreter::DoubleRefToRange( const ScComplexRefData & rCRef,
     SingleRefToVars( rCRef.Ref2, nCol, nRow, nTab);
     rRange.aEnd.Set( nCol, nRow, nTab );
     rRange.PutInOrder();
-    if (! pDok->aTableOpList.empty() && !bDontCheckForTableOp )
+    if (!pDok->m_TableOpList.empty() && !bDontCheckForTableOp)
     {
         if ( IsTableOpInRange( rRange ) )
             SetError( errIllegalParameter );
@@ -3219,9 +3219,9 @@ class FindByPointer : ::std::unary_function<ScInterpreterTableOpParams, bool>
     const ScInterpreterTableOpParams* mpTableOp;
 public:
     explicit FindByPointer(const ScInterpreterTableOpParams* p) : mpTableOp(p) {}
-    bool operator() (const ScInterpreterTableOpParams& val) const
+    bool operator() (const auto& val) const
     {
-        return &val == mpTableOp;
+        return val.get() == mpTableOp;
     }
 };
 
@@ -3246,7 +3246,8 @@ void ScInterpreter::ScTableOp()
     PopSingleRef( pTableOp->aFormulaPos );
 
     pTableOp->bValid = true;
-    pDok->aTableOpList.push_back( pTableOp );
+    pDok->m_TableOpList.push_back(
+            std::unique_ptr<ScInterpreterTableOpParams>(pTableOp));
     pDok->IncInterpreterTableOpLevel();
 
     bool bReuseLastParams = (pDok->aLastTableOpParams == *pTableOp);
@@ -3286,10 +3287,13 @@ void ScInterpreter::ScTableOp()
         PushString( aCellString );
     }
 
-    boost::ptr_vector< ScInterpreterTableOpParams >::iterator itr =
-        ::std::find_if(pDok->aTableOpList.begin(), pDok->aTableOpList.end(), FindByPointer(pTableOp));
-    if (itr != pDok->aTableOpList.end())
-        pTableOp = pDok->aTableOpList.release(itr).release();
+    auto const itr =
+        ::std::find_if(pDok->m_TableOpList.begin(), pDok->m_TableOpList.end(), FindByPointer(pTableOp));
+    if (itr != pDok->m_TableOpList.end())
+    {
+        pTableOp = itr->release();
+        pDok->m_TableOpList.erase(itr);
+    }
 
     // set dirty again once more to be able to recalculate original
     for ( ::std::vector< ScFormulaCell* >::const_iterator iBroadcast(


More information about the Libreoffice-commits mailing list