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

Kohei Yoshida kohei.yoshida at collabora.com
Thu Nov 24 00:41:02 UTC 2016


 sc/source/ui/inc/tabvwsh.hxx   |    5 +++--
 sc/source/ui/view/tabvwsh4.cxx |   15 ++++++++-------
 sc/source/ui/view/tabvwsha.cxx |    6 +++---
 3 files changed, 14 insertions(+), 12 deletions(-)

New commits:
commit 7fe08af6b1c579dc12da836b6bcfa2f84734328a
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date:   Wed Nov 23 16:59:23 2016 -0500

    Use std::unique_ptr for the input handler instance here.
    
    Change-Id: I73024b4d49bc99fa2110f5f0f0b80f950ad57baa
    Reviewed-on: https://gerrit.libreoffice.org/31137
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Kohei Yoshida <libreoffice at kohei.us>

diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx
index 5b4dc42..4ec942b 100644
--- a/sc/source/ui/inc/tabvwsh.hxx
+++ b/sc/source/ui/inc/tabvwsh.hxx
@@ -115,7 +115,7 @@ private:
 
     FmFormShell*            pFormShell;
 
-    ScInputHandler*         pInputHandler;              // for OLE input cell
+    std::unique_ptr<ScInputHandler> mpInputHandler;              // for OLE input cell
 
     ::editeng::SvxBorderLine*           pCurFrameLine;
 
@@ -236,7 +236,8 @@ public:
     bool            IsRefInputMode() const;
     void            ExecuteInputDirect();
 
-    ScInputHandler* GetInputHandler() const { return pInputHandler;}
+    const ScInputHandler* GetInputHandler() const { return mpInputHandler.get(); }
+    ScInputHandler* GetInputHandler() { return mpInputHandler.get(); }
     void            UpdateInputHandler( bool bForce = false, bool bStopEditing = true );
     void            UpdateInputHandlerCellAdjust( SvxCellHorJustify eJust );
     bool            TabKeyInput(const KeyEvent& rKEvt);
diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx
index f3b4666..edf2953 100644
--- a/sc/source/ui/view/tabvwsh4.cxx
+++ b/sc/source/ui/view/tabvwsh4.cxx
@@ -40,6 +40,7 @@
 #include <tools/urlobj.hxx>
 #include <sfx2/docfile.hxx>
 #include <vcl/openglwin.hxx>
+#include <o3tl/make_unique.hxx>
 
 #include "tabvwsh.hxx"
 #include "sc.hrc"
@@ -126,7 +127,7 @@ void ScTabViewShell::Activate(bool bMDI)
         // RegisterNewTargetNames does not exist anymore
 
         SfxViewFrame* pThisFrame  = GetViewFrame();
-        if ( pInputHandler && pThisFrame->HasChildWindow(FID_INPUTLINE_STATUS) )
+        if ( mpInputHandler && pThisFrame->HasChildWindow(FID_INPUTLINE_STATUS) )
         {
             // actually only required for Reload (last version):
             // The InputWindow remains, but the View along with the InputHandler is newly created,
@@ -151,7 +152,7 @@ void ScTabViewShell::Activate(bool bMDI)
                         pSh = SfxViewShell::GetNext( *pSh, true, checkSfxViewShell<ScTabViewShell> );
                     }
 
-                    pWin->SetInputHandler( pInputHandler );
+                    pWin->SetInputHandler( mpInputHandler.get() );
                 }
             }
         }
@@ -1502,7 +1503,7 @@ void ScTabViewShell::Construct( TriState nForceDesignMode )
     // As an intermediate solution each View gets its own InputHandler,
     // which only yields problems if two Views are in one task window.
 
-    pInputHandler = new ScInputHandler;
+    mpInputHandler = o3tl::make_unique<ScInputHandler>();
 
     // old version:
     //  if ( !GetViewFrame()->ISA(SfxTopViewFrame) )        // OLE or Plug-In
@@ -1655,7 +1656,7 @@ ScTabViewShell::ScTabViewShell( SfxViewFrame* pViewFrame,
     pExtrusionBarShell(nullptr),
     pFontworkBarShell(nullptr),
     pFormShell(nullptr),
-    pInputHandler(nullptr),
+    mpInputHandler(nullptr),
     pCurFrameLine(nullptr),
     aTarget(this),
     pDialogDPObject(nullptr),
@@ -1765,8 +1766,8 @@ ScTabViewShell::~ScTabViewShell()
 
     // all to NULL, in case the TabView-dtor tries to access them
     //! (should not really! ??!?!)
-    if (pInputHandler)
-        pInputHandler->SetDocumentDisposing(true);
+    if (mpInputHandler)
+        mpInputHandler->SetDocumentDisposing(true);
 
     DELETEZ(pFontworkBarShell);
     DELETEZ(pExtrusionBarShell);
@@ -1783,7 +1784,7 @@ ScTabViewShell::~ScTabViewShell()
     DELETEZ(pPivotShell);
     DELETEZ(pAuditingShell);
     DELETEZ(pCurFrameLine);
-    DELETEZ(pInputHandler);
+    mpInputHandler.reset();
     DELETEZ(pPivotSource);
     DELETEZ(pDialogDPObject);
     DELETEZ(pNavSettings);
diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx
index e9055fd..a567210 100644
--- a/sc/source/ui/view/tabvwsha.cxx
+++ b/sc/source/ui/view/tabvwsha.cxx
@@ -617,7 +617,7 @@ void ScTabViewShell::ExecuteInputDirect()
 
 void ScTabViewShell::UpdateInputHandler( bool bForce /* = sal_False */, bool bStopEditing /* = sal_True */ )
 {
-    ScInputHandler* pHdl = pInputHandler ? pInputHandler : SC_MOD()->GetInputHdl();
+    ScInputHandler* pHdl = mpInputHandler ? mpInputHandler.get() : SC_MOD()->GetInputHdl();
 
     if ( pHdl )
     {
@@ -694,7 +694,7 @@ void ScTabViewShell::UpdateInputHandler( bool bForce /* = sal_False */, bool bSt
 
         //  if using the view's local input handler, this view can always be set
         //  as current view inside NotifyChange.
-        ScTabViewShell* pSourceSh = pInputHandler ? this : nullptr;
+        ScTabViewShell* pSourceSh = mpInputHandler ? this : nullptr;
 
         pHdl->NotifyChange( &aState, bForce, pSourceSh, bStopEditing );
     }
@@ -707,7 +707,7 @@ void ScTabViewShell::UpdateInputHandler( bool bForce /* = sal_False */, bool bSt
 
 void ScTabViewShell::UpdateInputHandlerCellAdjust( SvxCellHorJustify eJust )
 {
-    if( ScInputHandler* pHdl = pInputHandler ? pInputHandler : SC_MOD()->GetInputHdl() )
+    if( ScInputHandler* pHdl = mpInputHandler ? mpInputHandler.get() : SC_MOD()->GetInputHdl() )
         pHdl->UpdateCellAdjust( eJust );
 }
 


More information about the Libreoffice-commits mailing list