diff options
author | Eike Rathke <erack@redhat.com> | 2017-03-08 18:14:29 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-03-08 18:15:01 +0100 |
commit | f8056369f0da33ceedc18ffeea3448ad8c309f9d (patch) | |
tree | 0cca41f7828bdcf396a771f79648352b75d0db6d | |
parent | 37376e6edf074112671616d855e770a44510ec54 (diff) |
let ScNoteUtil::CreateTempCaption() return ScCaptionPtr
Change-Id: Idcb7fc24a13d650d88bec9ba359d7c78006096ec
-rw-r--r-- | sc/inc/postit.hxx | 2 | ||||
-rw-r--r-- | sc/source/core/data/postit.cxx | 7 | ||||
-rw-r--r-- | sc/source/ui/inc/notemark.hxx | 4 | ||||
-rw-r--r-- | sc/source/ui/view/notemark.cxx | 19 |
4 files changed, 15 insertions, 17 deletions
diff --git a/sc/inc/postit.hxx b/sc/inc/postit.hxx index 6e49727fa4ab..7cdb5e013b9c 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 b4ec948826a2..0e840e7f638d 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 2d83b8fe500e..b02bf812f623 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 eb16c4972b41..5a27c3112912 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 ) ); } } } |