Kaydet (Commit) 16632fa9 authored tarafından Noel Grandin's avatar Noel Grandin

loplugin:useuniqueptr in SplitWindow

Change-Id: I04b45f02ce0dc98d11fb78982b8364fdd8333f9c
Reviewed-on: https://gerrit.libreoffice.org/53233Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 7c256096
...@@ -47,7 +47,7 @@ namespace o3tl ...@@ -47,7 +47,7 @@ namespace o3tl
class VCL_DLLPUBLIC SplitWindow : public DockingWindow class VCL_DLLPUBLIC SplitWindow : public DockingWindow
{ {
private: private:
ImplSplitSet* mpMainSet; std::unique_ptr<ImplSplitSet> mpMainSet;
ImplSplitSet* mpBaseSet; ImplSplitSet* mpBaseSet;
ImplSplitSet* mpSplitSet; ImplSplitSet* mpSplitSet;
long* mpLastSizes; long* mpLastSizes;
......
...@@ -1166,7 +1166,7 @@ sal_uInt16 SplitWindow::ImplTestSplit( SplitWindow* pWindow, const Point& rPos, ...@@ -1166,7 +1166,7 @@ sal_uInt16 SplitWindow::ImplTestSplit( SplitWindow* pWindow, const Point& rPos,
if ( (nTPos >= nPos) && (nTPos <= nPos+nSplitSize+nBorder) ) if ( (nTPos >= nPos) && (nTPos <= nPos+nSplitSize+nBorder) )
{ {
rMouseOff = nTPos-nPos; rMouseOff = nTPos-nPos;
*ppFoundSet = pWindow->mpMainSet; *ppFoundSet = pWindow->mpMainSet.get();
if ( !pWindow->mpMainSet->mvItems.empty() ) if ( !pWindow->mpMainSet->mvItems.empty() )
rFoundPos = pWindow->mpMainSet->mvItems.size() - 1; rFoundPos = pWindow->mpMainSet->mvItems.size() - 1;
else else
...@@ -1178,7 +1178,7 @@ sal_uInt16 SplitWindow::ImplTestSplit( SplitWindow* pWindow, const Point& rPos, ...@@ -1178,7 +1178,7 @@ sal_uInt16 SplitWindow::ImplTestSplit( SplitWindow* pWindow, const Point& rPos,
} }
} }
return ImplTestSplit( pWindow->mpMainSet, rPos, rMouseOff, ppFoundSet, rFoundPos, return ImplTestSplit( pWindow->mpMainSet.get(), rPos, rMouseOff, ppFoundSet, rFoundPos,
pWindow->mbHorz ); pWindow->mbHorz );
} }
...@@ -1219,10 +1219,8 @@ void SplitWindow::ImplDrawSplitTracking(const Point& rPos) ...@@ -1219,10 +1219,8 @@ void SplitWindow::ImplDrawSplitTracking(const Point& rPos)
void SplitWindow::ImplInit( vcl::Window* pParent, WinBits nStyle ) void SplitWindow::ImplInit( vcl::Window* pParent, WinBits nStyle )
{ {
ImplSplitSet* pNewSet = new ImplSplitSet(); mpMainSet.reset(new ImplSplitSet());
mpBaseSet = mpMainSet.get();
mpMainSet = pNewSet;
mpBaseSet = pNewSet;
mpSplitSet = nullptr; mpSplitSet = nullptr;
mpLastSizes = nullptr; mpLastSizes = nullptr;
mnDX = 0; mnDX = 0;
...@@ -1256,7 +1254,7 @@ void SplitWindow::ImplInit( vcl::Window* pParent, WinBits nStyle ) ...@@ -1256,7 +1254,7 @@ void SplitWindow::ImplInit( vcl::Window* pParent, WinBits nStyle )
if ( nStyle & WB_NOSPLITDRAW ) if ( nStyle & WB_NOSPLITDRAW )
{ {
pNewSet->mnSplitSize -= 2; mpMainSet->mnSplitSize -= 2;
mbInvalidate = false; mbInvalidate = false;
} }
...@@ -1317,10 +1315,7 @@ SplitWindow::~SplitWindow() ...@@ -1317,10 +1315,7 @@ SplitWindow::~SplitWindow()
void SplitWindow::dispose() void SplitWindow::dispose()
{ {
// delete Sets // delete Sets
if (mpMainSet) { mpMainSet.reset();
delete mpMainSet ;
mpMainSet = nullptr; //NULL for base-class callbacks during destruction
}
DockingWindow::dispose(); DockingWindow::dispose();
} }
...@@ -1501,8 +1496,8 @@ void SplitWindow::ImplCalcLayout() ...@@ -1501,8 +1496,8 @@ void SplitWindow::ImplCalcLayout()
} }
// calculate sets recursive // calculate sets recursive
ImplCalcSet( mpMainSet, nL, nT, nW, nH, mbHorz, !mbBottomRight ); ImplCalcSet( mpMainSet.get(), nL, nT, nW, nH, mbHorz, !mbBottomRight );
ImplCalcSet2( this, mpMainSet, false, mbHorz ); ImplCalcSet2( this, mpMainSet.get(), false, mbHorz );
mbCalc = false; mbCalc = false;
} }
...@@ -1794,7 +1789,7 @@ void SplitWindow::ImplStartSplit( const MouseEvent& rMEvt ) ...@@ -1794,7 +1789,7 @@ void SplitWindow::ImplStartSplit( const MouseEvent& rMEvt )
if ( !mpSplitSet->mvItems.empty() ) if ( !mpSplitSet->mvItems.empty() )
{ {
bool bDown = true; bool bDown = true;
if ( (mpSplitSet == mpMainSet) && mbBottomRight ) if ( (mpSplitSet == mpMainSet.get()) && mbBottomRight )
bDown = false; bDown = false;
pSplitItem = &mpSplitSet->mvItems[mnSplitPos]; pSplitItem = &mpSplitSet->mvItems[mnSplitPos];
...@@ -1847,7 +1842,7 @@ void SplitWindow::ImplStartSplit( const MouseEvent& rMEvt ) ...@@ -1847,7 +1842,7 @@ void SplitWindow::ImplStartSplit( const MouseEvent& rMEvt )
} }
} }
if ( (mpSplitSet == mpMainSet) && (mnWinStyle & WB_SIZEABLE) && !bPropSmaller ) if ( (mpSplitSet == mpMainSet.get()) && (mnWinStyle & WB_SIZEABLE) && !bPropSmaller )
{ {
if ( bDown ) if ( bDown )
{ {
...@@ -2157,14 +2152,14 @@ void SplitWindow::Tracking( const TrackingEvent& rTEvt ) ...@@ -2157,14 +2152,14 @@ void SplitWindow::Tracking( const TrackingEvent& rTEvt )
if ( (mnSplitTest & SPLIT_WINDOW) && mpMainSet->mvItems.empty() ) if ( (mnSplitTest & SPLIT_WINDOW) && mpMainSet->mvItems.empty() )
{ {
if ( (mpSplitSet == mpMainSet) && mbBottomRight ) if ( (mpSplitSet == mpMainSet.get()) && mbBottomRight )
nDelta *= -1; nDelta *= -1;
ImplSetWindowSize( nDelta ); ImplSetWindowSize( nDelta );
} }
else else
{ {
long nNewSize = mpSplitSet->mvItems[mnSplitPos].mnPixSize; long nNewSize = mpSplitSet->mvItems[mnSplitPos].mnPixSize;
if ( (mpSplitSet == mpMainSet) && mbBottomRight ) if ( (mpSplitSet == mpMainSet.get()) && mbBottomRight )
nNewSize -= nDelta; nNewSize -= nDelta;
else else
nNewSize += nDelta; nNewSize += nDelta;
...@@ -2235,12 +2230,12 @@ void SplitWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Rectang ...@@ -2235,12 +2230,12 @@ void SplitWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Rectang
ImplDrawFadeIn(rRenderContext); ImplDrawFadeIn(rRenderContext);
// draw FrameSet-backgrounds // draw FrameSet-backgrounds
ImplDrawBack(rRenderContext, mpMainSet); ImplDrawBack(rRenderContext, mpMainSet.get());
// draw splitter // draw splitter
if (!(mnWinStyle & WB_NOSPLITDRAW)) if (!(mnWinStyle & WB_NOSPLITDRAW))
{ {
ImplDrawSplit(rRenderContext, mpMainSet, mbHorz, !mbBottomRight); ImplDrawSplit(rRenderContext, mpMainSet.get(), mbHorz, !mbBottomRight);
} }
} }
...@@ -2336,14 +2331,14 @@ void SplitWindow::InsertItem( sal_uInt16 nId, vcl::Window* pWindow, long nSize, ...@@ -2336,14 +2331,14 @@ void SplitWindow::InsertItem( sal_uInt16 nId, vcl::Window* pWindow, long nSize,
{ {
#ifdef DBG_UTIL #ifdef DBG_UTIL
sal_uInt16 nDbgDummy; sal_uInt16 nDbgDummy;
SAL_WARN_IF( ImplFindItem( mpMainSet, nId, nDbgDummy ), "vcl", "SplitWindow::InsertItem() - Id already exists" ); SAL_WARN_IF( ImplFindItem( mpMainSet.get(), nId, nDbgDummy ), "vcl", "SplitWindow::InsertItem() - Id already exists" );
#endif #endif
// Size has to be at least 1. // Size has to be at least 1.
if ( nSize < 1 ) if ( nSize < 1 )
nSize = 1; nSize = 1;
ImplSplitSet* pSet = ImplFindSet( mpMainSet, nIntoSetId ); ImplSplitSet* pSet = ImplFindSet( mpMainSet.get(), nIntoSetId );
#ifdef DBG_UTIL #ifdef DBG_UTIL
SAL_WARN_IF( !pSet, "vcl", "SplitWindow::InsertItem() - Set not exists" ); SAL_WARN_IF( !pSet, "vcl", "SplitWindow::InsertItem() - Set not exists" );
#endif #endif
...@@ -2403,12 +2398,12 @@ void SplitWindow::RemoveItem( sal_uInt16 nId ) ...@@ -2403,12 +2398,12 @@ void SplitWindow::RemoveItem( sal_uInt16 nId )
{ {
#ifdef DBG_UTIL #ifdef DBG_UTIL
sal_uInt16 nDbgDummy; sal_uInt16 nDbgDummy;
SAL_WARN_IF( !ImplFindItem( mpMainSet, nId, nDbgDummy ), "vcl", "SplitWindow::RemoveItem() - Id not found" ); SAL_WARN_IF( !ImplFindItem( mpMainSet.get(), nId, nDbgDummy ), "vcl", "SplitWindow::RemoveItem() - Id not found" );
#endif #endif
// search set // search set
sal_uInt16 nPos; sal_uInt16 nPos;
ImplSplitSet* pSet = ImplFindItem( mpMainSet, nId, nPos ); ImplSplitSet* pSet = ImplFindItem( mpMainSet.get(), nId, nPos );
if (!pSet) if (!pSet)
return; return;
...@@ -2442,14 +2437,11 @@ void SplitWindow::RemoveItem( sal_uInt16 nId ) ...@@ -2442,14 +2437,11 @@ void SplitWindow::RemoveItem( sal_uInt16 nId )
void SplitWindow::Clear() void SplitWindow::Clear()
{ {
// delete all sets
delete mpMainSet ;
// create Main-Set again // create Main-Set again
mpMainSet = new ImplSplitSet(); mpMainSet.reset(new ImplSplitSet());
if ( mnWinStyle & WB_NOSPLITDRAW ) if ( mnWinStyle & WB_NOSPLITDRAW )
mpMainSet->mnSplitSize -= 2; mpMainSet->mnSplitSize -= 2;
mpBaseSet = mpMainSet; mpBaseSet = mpMainSet.get();
// and invalidate again // and invalidate again
ImplUpdate(); ImplUpdate();
...@@ -2498,7 +2490,7 @@ void SplitWindow::SplitItem( sal_uInt16 nId, long nNewSize, ...@@ -2498,7 +2490,7 @@ void SplitWindow::SplitItem( sal_uInt16 nId, long nNewSize,
// treat TopSet different if the window is sizeable // treat TopSet different if the window is sizeable
bool bSmall = true; bool bSmall = true;
bool bGreat = true; bool bGreat = true;
if ( (pSet == mpMainSet) && (mnWinStyle & WB_SIZEABLE) ) if ( (pSet == mpMainSet.get()) && (mnWinStyle & WB_SIZEABLE) )
{ {
if ( nPos < pSet->mvItems.size()-1 ) if ( nPos < pSet->mvItems.size()-1 )
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment