Kaydet (Commit) 0541b417 authored tarafından Noel Grandin's avatar Noel Grandin

loplugin:useuniqueptr in SwSelPaintRects

Change-Id: I34411e00d67ab29eb0796207d17f77a4f767c0b0
Reviewed-on: https://gerrit.libreoffice.org/56500
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 510050de
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <config_features.h> #include <config_features.h>
#include <svx/sdr/overlay/overlayobject.hxx>
#include <vcl/cursor.hxx> #include <vcl/cursor.hxx>
#include "swcrsr.hxx" #include "swcrsr.hxx"
#include "swrect.hxx" #include "swrect.hxx"
...@@ -59,7 +60,6 @@ public: ...@@ -59,7 +60,6 @@ public:
// From here classes/methods for selections. // From here classes/methods for selections.
namespace sdr { namespace overlay { class OverlayObject; }}
namespace sw { namespace overlay { class OverlayRangesOutline; }} namespace sw { namespace overlay { class OverlayRangesOutline; }}
class MapMode; class MapMode;
...@@ -74,15 +74,15 @@ class SwSelPaintRects : public SwRects ...@@ -74,15 +74,15 @@ class SwSelPaintRects : public SwRects
const SwCursorShell* m_pCursorShell; const SwCursorShell* m_pCursorShell;
#if HAVE_FEATURE_DESKTOP || defined(ANDROID) #if HAVE_FEATURE_DESKTOP || defined(ANDROID)
sdr::overlay::OverlayObject* m_pCursorOverlay; std::unique_ptr<sdr::overlay::OverlayObject> m_pCursorOverlay;
// access to m_pCursorOverlay for swapContent // access to m_pCursorOverlay for swapContent
sdr::overlay::OverlayObject* getCursorOverlay() const { return m_pCursorOverlay; } sdr::overlay::OverlayObject* getCursorOverlay() const { return m_pCursorOverlay.get(); }
void setCursorOverlay(sdr::overlay::OverlayObject* pNew) { m_pCursorOverlay = pNew; } void setCursorOverlay(std::unique_ptr<sdr::overlay::OverlayObject> pNew) { m_pCursorOverlay = std::move(pNew); }
#endif #endif
bool m_bShowTextInputFieldOverlay; bool m_bShowTextInputFieldOverlay;
sw::overlay::OverlayRangesOutline* m_pTextInputFieldOverlay; std::unique_ptr<sw::overlay::OverlayRangesOutline> m_pTextInputFieldOverlay;
void HighlightInputField(); void HighlightInputField();
......
...@@ -265,34 +265,17 @@ void SwSelPaintRects::swapContent(SwSelPaintRects& rSwap) ...@@ -265,34 +265,17 @@ void SwSelPaintRects::swapContent(SwSelPaintRects& rSwap)
#if HAVE_FEATURE_DESKTOP #if HAVE_FEATURE_DESKTOP
// #i75172# also swap m_pCursorOverlay // #i75172# also swap m_pCursorOverlay
sdr::overlay::OverlayObject* pTempOverlay = getCursorOverlay(); std::swap(m_pCursorOverlay, rSwap.m_pCursorOverlay);
setCursorOverlay(rSwap.getCursorOverlay()); std::swap(m_bShowTextInputFieldOverlay, rSwap.m_bShowTextInputFieldOverlay);
rSwap.setCursorOverlay(pTempOverlay); std::swap(m_pTextInputFieldOverlay, rSwap.m_pTextInputFieldOverlay);
const bool bTempShowTextInputFieldOverlay = m_bShowTextInputFieldOverlay;
m_bShowTextInputFieldOverlay = rSwap.m_bShowTextInputFieldOverlay;
rSwap.m_bShowTextInputFieldOverlay = bTempShowTextInputFieldOverlay;
sw::overlay::OverlayRangesOutline* pTempTextInputFieldOverlay = m_pTextInputFieldOverlay;
m_pTextInputFieldOverlay = rSwap.m_pTextInputFieldOverlay;
rSwap.m_pTextInputFieldOverlay = pTempTextInputFieldOverlay;
#endif #endif
} }
void SwSelPaintRects::Hide() void SwSelPaintRects::Hide()
{ {
#if HAVE_FEATURE_DESKTOP #if HAVE_FEATURE_DESKTOP
if (m_pCursorOverlay) m_pCursorOverlay.reset();
{ m_pTextInputFieldOverlay.reset();
delete m_pCursorOverlay;
m_pCursorOverlay = nullptr;
}
if (m_pTextInputFieldOverlay != nullptr)
{
delete m_pTextInputFieldOverlay;
m_pTextInputFieldOverlay = nullptr;
}
#endif #endif
SwRects::clear(); SwRects::clear();
...@@ -350,12 +333,11 @@ void SwSelPaintRects::Show(std::vector<OString>* pSelectionRectangles) ...@@ -350,12 +333,11 @@ void SwSelPaintRects::Show(std::vector<OString>* pSelectionRectangles)
{ {
if(!aNewRanges.empty()) if(!aNewRanges.empty())
{ {
static_cast<sdr::overlay::OverlaySelection*>(m_pCursorOverlay)->setRanges(aNewRanges); static_cast<sdr::overlay::OverlaySelection*>(m_pCursorOverlay.get())->setRanges(aNewRanges);
} }
else else
{ {
delete m_pCursorOverlay; m_pCursorOverlay.reset();
m_pCursorOverlay = nullptr;
} }
} }
else if(!empty()) else if(!empty())
...@@ -370,11 +352,11 @@ void SwSelPaintRects::Show(std::vector<OString>* pSelectionRectangles) ...@@ -370,11 +352,11 @@ void SwSelPaintRects::Show(std::vector<OString>* pSelectionRectangles)
const Color aHighlight(aSvtOptionsDrawinglayer.getHilightColor()); const Color aHighlight(aSvtOptionsDrawinglayer.getHilightColor());
// create correct selection // create correct selection
m_pCursorOverlay = new sdr::overlay::OverlaySelection( m_pCursorOverlay.reset( new sdr::overlay::OverlaySelection(
sdr::overlay::OverlayType::Transparent, sdr::overlay::OverlayType::Transparent,
aHighlight, aHighlight,
aNewRanges, aNewRanges,
true); true) );
xTargetOverlay->add(*m_pCursorOverlay); xTargetOverlay->add(*m_pCursorOverlay);
} }
...@@ -481,19 +463,15 @@ void SwSelPaintRects::HighlightInputField() ...@@ -481,19 +463,15 @@ void SwSelPaintRects::HighlightInputField()
Color aHighlight(aSvtOptionsDrawinglayer.getHilightColor()); Color aHighlight(aSvtOptionsDrawinglayer.getHilightColor());
aHighlight.DecreaseLuminance( 128 ); aHighlight.DecreaseLuminance( 128 );
m_pTextInputFieldOverlay = new sw::overlay::OverlayRangesOutline( m_pTextInputFieldOverlay.reset( new sw::overlay::OverlayRangesOutline(
aHighlight, aInputFieldRanges ); aHighlight, aInputFieldRanges ) );
xTargetOverlay->add( *m_pTextInputFieldOverlay ); xTargetOverlay->add( *m_pTextInputFieldOverlay );
} }
} }
} }
else else
{ {
if (m_pTextInputFieldOverlay != nullptr) m_pTextInputFieldOverlay.reset();
{
delete m_pTextInputFieldOverlay;
m_pTextInputFieldOverlay = nullptr;
}
} }
} }
......
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