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

Eike Rathke erack at redhat.com
Wed Mar 8 17:15:37 UTC 2017


 sc/inc/postit.hxx              |    2 +-
 sc/source/core/data/postit.cxx |    7 +++----
 sc/source/ui/inc/notemark.hxx  |    4 ++--
 sc/source/ui/view/notemark.cxx |   19 +++++++++----------
 4 files changed, 15 insertions(+), 17 deletions(-)

New commits:
commit f8056369f0da33ceedc18ffeea3448ad8c309f9d
Author: Eike Rathke <erack at redhat.com>
Date:   Wed Mar 8 18:14:29 2017 +0100

    let ScNoteUtil::CreateTempCaption() return ScCaptionPtr
    
    Change-Id: Idcb7fc24a13d650d88bec9ba359d7c78006096ec

diff --git a/sc/inc/postit.hxx b/sc/inc/postit.hxx
index 6e49727..7cdb5e0 100644
--- a/sc/inc/postit.hxx
+++ b/sc/inc/postit.hxx
@@ -249,7 +249,7 @@ class SC_DLLPUBLIC ScNoteUtil
 public:
 
     /** Creates and returns a caption object for a temporary caption. */
-    static SdrCaptionObj* CreateTempCaption( ScDocument& rDoc, const ScAddress& rPos,
+    static ScCaptionPtr CreateTempCaption( ScDocument& rDoc, const ScAddress& rPos,
                             SdrPage& rDrawPage, const OUString& rUserText,
                             const Rectangle& rVisRect, bool bTailFront );
 
diff --git a/sc/source/core/data/postit.cxx b/sc/source/core/data/postit.cxx
index b4ec948..0e840e7 100644
--- a/sc/source/core/data/postit.cxx
+++ b/sc/source/core/data/postit.cxx
@@ -1078,7 +1078,7 @@ void ScPostIt::RemoveCaption()
     maNoteData.mxCaption.reset(nullptr);
 }
 
-SdrCaptionObj* ScNoteUtil::CreateTempCaption(
+ScCaptionPtr ScNoteUtil::CreateTempCaption(
         ScDocument& rDoc, const ScAddress& rPos, SdrPage& rDrawPage,
         const OUString& rUserText, const Rectangle& rVisRect, bool bTailFront )
 {
@@ -1095,7 +1095,7 @@ SdrCaptionObj* ScNoteUtil::CreateTempCaption(
 
     // create a caption if any text exists
     if( !pNoteCaption && aBuffer.isEmpty() )
-        return nullptr;
+        return ScCaptionPtr();
 
     // prepare visible rectangle (add default distance to all borders)
     Rectangle aVisRect(
@@ -1138,9 +1138,8 @@ SdrCaptionObj* ScNoteUtil::CreateTempCaption(
     // move caption into visible area
     aCreator.AutoPlaceCaption( &aVisRect );
 
-    // The caption object returned is completely unmanaged and stored elsewhere.
     // XXX Note it is already inserted to the draw page.
-    return aCreator.GetCaption().release();
+    return aCreator.GetCaption();
 }
 
 ScPostIt* ScNoteUtil::CreateNoteFromCaption(
diff --git a/sc/source/ui/inc/notemark.hxx b/sc/source/ui/inc/notemark.hxx
index 2d83b8f..b02bf81 100644
--- a/sc/source/ui/inc/notemark.hxx
+++ b/sc/source/ui/inc/notemark.hxx
@@ -24,9 +24,9 @@
 #include <vcl/timer.hxx>
 #include "global.hxx"
 #include "address.hxx"
+#include "postit.hxx"
 
 class SdrModel;
-class SdrObject;
 
 class ScNoteMarker
 {
@@ -46,7 +46,7 @@ private:
 
     Rectangle       aRect;
     SdrModel*       pModel;
-    SdrObject*      pObject;
+    ScCaptionPtr    mxObject;
     bool            bVisible;
     Point           aGridOff;
     DECL_LINK( TimeHdl, Timer*, void );
diff --git a/sc/source/ui/view/notemark.cxx b/sc/source/ui/view/notemark.cxx
index eb16c49..5a27c31 100644
--- a/sc/source/ui/view/notemark.cxx
+++ b/sc/source/ui/view/notemark.cxx
@@ -48,7 +48,6 @@ ScNoteMarker::ScNoteMarker( vcl::Window* pWin, vcl::Window* pRight, vcl::Window*
     bLeft( bLeftEdge ),
     bByKeyboard( bKeyboard ),
     pModel( nullptr ),
-    pObject( nullptr ),
     bVisible( false )
 {
     Size aSizePixel = pWindow->GetOutputSizePixel();
@@ -94,11 +93,11 @@ IMPL_LINK_NOARG(ScNoteMarker, TimeHdl, Timer *, void)
 
         if( SdrPage* pPage = pModel->AllocPage( false ) )
         {
-            pObject = ScNoteUtil::CreateTempCaption( *pDoc, aDocPos, *pPage, aUserText, aVisRect, bLeft );
-            if( pObject )
+            mxObject = ScNoteUtil::CreateTempCaption( *pDoc, aDocPos, *pPage, aUserText, aVisRect, bLeft );
+            if( mxObject )
             {
-                pObject->SetGridOffset( aGridOff );
-                aRect = pObject->GetCurrentBoundRect();
+                mxObject->SetGridOffset( aGridOff );
+                aRect = mxObject->GetCurrentBoundRect();
             }
 
             // Insert page so that the model recognise it and also deleted
@@ -141,21 +140,21 @@ static MapMode lcl_MoveMapMode( const MapMode& rMap, const Size& rMove )
 
 void ScNoteMarker::Draw()
 {
-    if ( pObject && bVisible )
+    if ( mxObject && bVisible )
     {
-        lcl_DrawWin( pObject, pWindow, aMapMode );
+        lcl_DrawWin( mxObject.get(), pWindow, aMapMode );
 
         if ( pRightWin || pBottomWin )
         {
             Size aWinSize = pWindow->PixelToLogic( pWindow->GetOutputSizePixel(), aMapMode );
             if ( pRightWin )
-                lcl_DrawWin( pObject, pRightWin,
+                lcl_DrawWin( mxObject.get(), pRightWin,
                                 lcl_MoveMapMode( aMapMode, Size( aWinSize.Width(), 0 ) ) );
             if ( pBottomWin )
-                lcl_DrawWin( pObject, pBottomWin,
+                lcl_DrawWin( mxObject.get(), pBottomWin,
                                 lcl_MoveMapMode( aMapMode, Size( 0, aWinSize.Height() ) ) );
             if ( pDiagWin )
-                lcl_DrawWin( pObject, pDiagWin, lcl_MoveMapMode( aMapMode, aWinSize ) );
+                lcl_DrawWin( mxObject.get(), pDiagWin, lcl_MoveMapMode( aMapMode, aWinSize ) );
         }
     }
 }


More information about the Libreoffice-commits mailing list