Kaydet (Commit) f5e68bae authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl

ruler: convert pCtrlItems to use vector of unique_ptr

Change-Id: Icc6cf55c26d605fd068edf575613cde745385dd2
üst f64588a9
...@@ -80,7 +80,8 @@ class SVX_DLLPUBLIC SvxRuler: public Ruler, public SfxListener ...@@ -80,7 +80,8 @@ class SVX_DLLPUBLIC SvxRuler: public Ruler, public SfxListener
friend class SvxRulerItem; friend class SvxRulerItem;
using Window::Notify; using Window::Notify;
SvxRulerItem** pCtrlItem; std::vector<std::unique_ptr<SvxRulerItem> > pCtrlItems;
std::unique_ptr<SvxLongLRSpaceItem> mxLRSpaceItem; // left and right edge std::unique_ptr<SvxLongLRSpaceItem> mxLRSpaceItem; // left and right edge
std::unique_ptr<SfxRectangleItem> mxMinMaxItem; // maxima for dragging std::unique_ptr<SfxRectangleItem> mxMinMaxItem; // maxima for dragging
std::unique_ptr<SvxLongULSpaceItem> mxULSpaceItem; // upper and lower edge std::unique_ptr<SvxLongULSpaceItem> mxULSpaceItem; // upper and lower edge
......
...@@ -223,7 +223,7 @@ SvxRuler::SvxRuler( ...@@ -223,7 +223,7 @@ SvxRuler::SvxRuler(
SfxBindings &rBindings, // associated Bindings SfxBindings &rBindings, // associated Bindings
WinBits nWinStyle) : // StarView WinBits WinBits nWinStyle) : // StarView WinBits
Ruler(pParent, nWinStyle), Ruler(pParent, nWinStyle),
pCtrlItem(new SvxRulerItem* [CTRL_ITEM_COUNT]), pCtrlItems(CTRL_ITEM_COUNT),
pEditWin(pWin), pEditWin(pWin),
mxRulerImpl(new SvxRuler_Impl), mxRulerImpl(new SvxRuler_Impl),
bAppSetNullOffset(false), // Is the 0-offset of the ruler set by the application? bAppSetNullOffset(false), // Is the 0-offset of the ruler set by the application?
...@@ -252,42 +252,40 @@ SvxRuler::SvxRuler( ...@@ -252,42 +252,40 @@ SvxRuler::SvxRuler(
{ {
/* Constructor; Initialize data buffer; controller items are created */ /* Constructor; Initialize data buffer; controller items are created */
memset(pCtrlItem, 0, sizeof(SvxRulerItem *) * CTRL_ITEM_COUNT);
rBindings.EnterRegistrations(); rBindings.EnterRegistrations();
// Create Supported Items // Create Supported Items
sal_uInt16 i = 0; sal_uInt16 i = 0;
// Page edges // Page edges
pCtrlItem[i++] = new SvxRulerItem(SID_RULER_LR_MIN_MAX, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(SID_RULER_LR_MIN_MAX, *this, rBindings));
if((nWinStyle & WB_VSCROLL) == WB_VSCROLL) if((nWinStyle & WB_VSCROLL) == WB_VSCROLL)
{ {
bHorz = false; bHorz = false;
pCtrlItem[i++] = new SvxRulerItem(SID_ATTR_LONG_ULSPACE, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(SID_ATTR_LONG_ULSPACE, *this, rBindings));
} }
else else
{ {
bHorz = true; bHorz = true;
pCtrlItem[i++] = new SvxRulerItem(SID_ATTR_LONG_LRSPACE, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(SID_ATTR_LONG_LRSPACE, *this, rBindings));
} }
// Page Position // Page Position
pCtrlItem[i++] = new SvxRulerItem(SID_RULER_PAGE_POS, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(SID_RULER_PAGE_POS, *this, rBindings));
if(nFlags & SvxRulerSupportFlags::TABS) if(nFlags & SvxRulerSupportFlags::TABS)
{ {
sal_uInt16 nTabStopId = bHorz ? SID_ATTR_TABSTOP : SID_ATTR_TABSTOP_VERTICAL; sal_uInt16 nTabStopId = bHorz ? SID_ATTR_TABSTOP : SID_ATTR_TABSTOP_VERTICAL;
pCtrlItem[i++] = new SvxRulerItem(nTabStopId, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(nTabStopId, *this, rBindings));
SetExtraType(RULER_EXTRA_TAB, nDefTabType); SetExtraType(RULER_EXTRA_TAB, nDefTabType);
} }
if(nFlags & (SvxRulerSupportFlags::PARAGRAPH_MARGINS |SvxRulerSupportFlags::PARAGRAPH_MARGINS_VERTICAL)) if(nFlags & (SvxRulerSupportFlags::PARAGRAPH_MARGINS |SvxRulerSupportFlags::PARAGRAPH_MARGINS_VERTICAL))
{ {
if(bHorz) if(bHorz)
pCtrlItem[i++] = new SvxRulerItem(SID_ATTR_PARA_LRSPACE, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(SID_ATTR_PARA_LRSPACE, *this, rBindings));
else else
pCtrlItem[i++] = new SvxRulerItem(SID_ATTR_PARA_LRSPACE_VERTICAL, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(SID_ATTR_PARA_LRSPACE_VERTICAL, *this, rBindings));
mpIndents.resize(5 + INDENT_GAP); mpIndents.resize(5 + INDENT_GAP);
...@@ -306,15 +304,15 @@ SvxRuler::SvxRuler( ...@@ -306,15 +304,15 @@ SvxRuler::SvxRuler(
if( (nFlags & SvxRulerSupportFlags::BORDERS) == SvxRulerSupportFlags::BORDERS ) if( (nFlags & SvxRulerSupportFlags::BORDERS) == SvxRulerSupportFlags::BORDERS )
{ {
pCtrlItem[i++] = new SvxRulerItem(bHorz ? SID_RULER_BORDERS : SID_RULER_BORDERS_VERTICAL, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(bHorz ? SID_RULER_BORDERS : SID_RULER_BORDERS_VERTICAL, *this, rBindings));
pCtrlItem[i++] = new SvxRulerItem(bHorz ? SID_RULER_ROWS : SID_RULER_ROWS_VERTICAL, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(bHorz ? SID_RULER_ROWS : SID_RULER_ROWS_VERTICAL, *this, rBindings));
} }
pCtrlItem[i++] = new SvxRulerItem(SID_RULER_TEXT_RIGHT_TO_LEFT, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(SID_RULER_TEXT_RIGHT_TO_LEFT, *this, rBindings));
if( (nFlags & SvxRulerSupportFlags::OBJECT) == SvxRulerSupportFlags::OBJECT ) if( (nFlags & SvxRulerSupportFlags::OBJECT) == SvxRulerSupportFlags::OBJECT )
{ {
pCtrlItem[i++] = new SvxRulerItem(SID_RULER_OBJECT, *this, rBindings ); pCtrlItems[i++].reset(new SvxRulerItem(SID_RULER_OBJECT, *this, rBindings));
mpObjectBorders.resize(OBJECT_BORDER_COUNT); mpObjectBorders.resize(OBJECT_BORDER_COUNT);
for(sal_uInt16 nBorder = 0; nBorder < OBJECT_BORDER_COUNT; ++nBorder) for(sal_uInt16 nBorder = 0; nBorder < OBJECT_BORDER_COUNT; ++nBorder)
{ {
...@@ -324,8 +322,8 @@ SvxRuler::SvxRuler( ...@@ -324,8 +322,8 @@ SvxRuler::SvxRuler(
} }
} }
pCtrlItem[i++] = new SvxRulerItem(SID_RULER_PROTECT, *this, rBindings ); pCtrlItems[i++].reset(new SvxRulerItem(SID_RULER_PROTECT, *this, rBindings));
pCtrlItem[i++] = new SvxRulerItem(SID_RULER_BORDER_DISTANCE, *this, rBindings); pCtrlItems[i++].reset(new SvxRulerItem(SID_RULER_BORDER_DISTANCE, *this, rBindings));
mxRulerImpl->nControlerItems=i; mxRulerImpl->nControlerItems=i;
if( (nFlags & SvxRulerSupportFlags::SET_NULLOFFSET) == SvxRulerSupportFlags::SET_NULLOFFSET ) if( (nFlags & SvxRulerSupportFlags::SET_NULLOFFSET) == SvxRulerSupportFlags::SET_NULLOFFSET )
...@@ -353,13 +351,7 @@ void SvxRuler::dispose() ...@@ -353,13 +351,7 @@ void SvxRuler::dispose()
pBindings->EnterRegistrations(); pBindings->EnterRegistrations();
if (pCtrlItem) pCtrlItems.clear();
{
for(sal_uInt16 i = 0; i < CTRL_ITEM_COUNT && pCtrlItem[i]; ++i)
delete pCtrlItem[i];
delete[] pCtrlItem;
pCtrlItem = NULL;
}
pBindings->LeaveRegistrations(); pBindings->LeaveRegistrations();
...@@ -1768,10 +1760,10 @@ void SvxRuler::SetActive(bool bOn) ...@@ -1768,10 +1760,10 @@ void SvxRuler::SetActive(bool bOn)
pBindings->EnterRegistrations(); pBindings->EnterRegistrations();
if(bOn) if(bOn)
for(sal_uInt16 i=0;i<mxRulerImpl->nControlerItems;i++) for(sal_uInt16 i=0;i<mxRulerImpl->nControlerItems;i++)
pCtrlItem[i]->ReBind(); pCtrlItems[i]->ReBind();
else else
for(sal_uInt16 j=0;j<mxRulerImpl->nControlerItems;j++) for(sal_uInt16 j=0;j<mxRulerImpl->nControlerItems;j++)
pCtrlItem[j]->UnBind(); pCtrlItems[j]->UnBind();
pBindings->LeaveRegistrations(); pBindings->LeaveRegistrations();
} }
bActive = bOn; bActive = bOn;
...@@ -3383,8 +3375,8 @@ void SvxRuler::EndDrag() ...@@ -3383,8 +3375,8 @@ void SvxRuler::EndDrag()
{ {
for(sal_uInt16 i = 0; i < mxRulerImpl->nControlerItems; i++) for(sal_uInt16 i = 0; i < mxRulerImpl->nControlerItems; i++)
{ {
pCtrlItem[i]->ClearCache(); pCtrlItems[i]->ClearCache();
pCtrlItem[i]->GetBindings().Invalidate(pCtrlItem[i]->GetId()); pCtrlItems[i]->GetBindings().Invalidate(pCtrlItems[i]->GetId());
} }
} }
} }
......
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