summaryrefslogtreecommitdiff
path: root/svtools
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2016-05-12 12:28:00 +0200
committerDavid Tardon <dtardon@redhat.com>2016-05-12 13:57:23 +0200
commit8a7df40a489dbf607315ad9597accfca38a05fad (patch)
treebc2ee0b4fa1d36139bb379446f200dcb87ed2dd5 /svtools
parent9d93b5cad049526933f251f89372c2a8dd051b3f (diff)
use unique_ptr
Change-Id: I49f08a066f3a5f6f3479060d8a528a7cfdfdc02c
Diffstat (limited to 'svtools')
-rw-r--r--svtools/source/control/toolbarmenu.cxx82
-rw-r--r--svtools/source/control/toolbarmenuacc.cxx4
-rw-r--r--svtools/source/control/toolbarmenuimp.hxx3
3 files changed, 31 insertions, 58 deletions
diff --git a/svtools/source/control/toolbarmenu.cxx b/svtools/source/control/toolbarmenu.cxx
index 17befc9da51a..4da09d79fa61 100644
--- a/svtools/source/control/toolbarmenu.cxx
+++ b/svtools/source/control/toolbarmenu.cxx
@@ -17,12 +17,12 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <memory>
-
#include <com/sun/star/accessibility/AccessibleEventId.hpp>
#include <com/sun/star/accessibility/AccessibleStateType.hpp>
#include <comphelper/processfactory.hxx>
+#include <o3tl/make_unique.hxx>
+
#include <vcl/dockwin.hxx>
#include <vcl/decoview.hxx>
#include <vcl/image.hxx>
@@ -228,10 +228,8 @@ bool ToolbarMenu_Impl::hasAccessibleListeners()
sal_Int32 ToolbarMenu_Impl::getAccessibleChildCount() throw (RuntimeException)
{
sal_Int32 nCount = 0;
- const int nEntryCount = maEntryVector.size();
- for( int nEntry = 0; nEntry < nEntryCount; nEntry++ )
+ for( const auto& pEntry : maEntryVector )
{
- ToolbarMenuEntry* pEntry = maEntryVector[nEntry];
if( pEntry )
{
if( pEntry->mpControl )
@@ -251,10 +249,8 @@ sal_Int32 ToolbarMenu_Impl::getAccessibleChildCount() throw (RuntimeException)
Reference< XAccessible > ToolbarMenu_Impl::getAccessibleChild( sal_Int32 index ) throw (IndexOutOfBoundsException, RuntimeException)
{
- const int nEntryCount = maEntryVector.size();
- for( int nEntry = 0; nEntry < nEntryCount; nEntry++ )
+ for( const auto& pEntry : maEntryVector )
{
- ToolbarMenuEntry* pEntry = maEntryVector[nEntry];
if( pEntry )
{
const sal_Int32 nCount = pEntry->getAccessibleChildCount();
@@ -272,10 +268,8 @@ Reference< XAccessible > ToolbarMenu_Impl::getAccessibleChild( sal_Int32 index )
Reference< XAccessible > ToolbarMenu_Impl::getAccessibleChild( Control* pControl, sal_Int32 childIndex ) throw (IndexOutOfBoundsException, RuntimeException)
{
- const int nEntryCount = maEntryVector.size();
- for( int nEntry = 0; nEntry < nEntryCount; nEntry++ )
+ for( const auto& pEntry : maEntryVector )
{
- ToolbarMenuEntry* pEntry = maEntryVector[nEntry];
if( pEntry && (pEntry->mpControl.get() == pControl) )
{
return pEntry->getAccessibleChild( childIndex );
@@ -291,7 +285,7 @@ void ToolbarMenu_Impl::selectAccessibleChild( sal_Int32 nChildIndex ) throw (Ind
const int nEntryCount = maEntryVector.size();
for( int nEntry = 0; nEntry < nEntryCount; nEntry++ )
{
- ToolbarMenuEntry* pEntry = maEntryVector[nEntry];
+ ToolbarMenuEntry* const pEntry = maEntryVector[nEntry].get();
if( pEntry )
{
const sal_Int32 nCount = pEntry->getAccessibleChildCount();
@@ -321,7 +315,7 @@ bool ToolbarMenu_Impl::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw
const int nEntryCount = maEntryVector.size();
for( int nEntry = 0; nEntry < nEntryCount; nEntry++ )
{
- ToolbarMenuEntry* pEntry = maEntryVector[nEntry];
+ ToolbarMenuEntry* const pEntry = maEntryVector[nEntry].get();
if( pEntry )
{
const sal_Int32 nCount = pEntry->getAccessibleChildCount();
@@ -400,7 +394,7 @@ ToolbarMenuEntry* ToolbarMenu_Impl::implGetEntry( int nEntry ) const
if( (nEntry < 0) || (nEntry >= (int)maEntryVector.size() ) )
return nullptr;
- return maEntryVector[nEntry];
+ return maEntryVector[nEntry].get();
}
@@ -452,13 +446,7 @@ void ToolbarMenu::dispose()
std::unique_ptr<ToolbarMenu_Impl> pImpl{mpImpl};
mpImpl = nullptr;
- // delete all menu entries
- const int nEntryCount = pImpl->maEntryVector.size();
- int nEntry;
- for( nEntry = 0; nEntry < nEntryCount; nEntry++ )
- {
- delete pImpl->maEntryVector[nEntry];
- }
+ pImpl->maEntryVector.clear();
DockingWindow::dispose();
}
@@ -594,18 +582,14 @@ Size ToolbarMenu::implCalcSize()
long nMaxTextWidth = 0;
long nMinMenuItemHeight = nFontHeight+2;
- const int nEntryCount = mpImpl->maEntryVector.size();
- int nEntry;
-
const StyleSettings& rSettings = GetSettings().GetStyleSettings();
const bool bUseImages = rSettings.GetUseImagesInMenus();
// get maximum image size
if( bUseImages )
{
- for( nEntry = 0; nEntry < nEntryCount; nEntry++ )
+ for( const auto& pEntry : mpImpl->maEntryVector )
{
- ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry];
if( pEntry && pEntry->mbHasImage )
{
Size aImgSz( pEntry->maImage.GetSizePixel() );
@@ -623,10 +607,8 @@ Size ToolbarMenu::implCalcSize()
mpImpl->mnTextPos += std::max( nExtra, 7L );
// set heights, calc maximum width
- for( nEntry = 0; nEntry < nEntryCount; nEntry++ )
+ for( const auto& pEntry : mpImpl->maEntryVector )
{
- ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry];
-
if( pEntry )
{
// Text:
@@ -677,10 +659,8 @@ Size ToolbarMenu::implCalcSize()
// positionate controls
int nY = BORDER_Y;
- for( nEntry = 0; nEntry < nEntryCount; nEntry++ )
+ for( const auto& pEntry : mpImpl->maEntryVector )
{
- ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry];
-
if (pEntry)
{
pEntry->maSize.Width() = nMaxTextWidth;
@@ -739,25 +719,25 @@ void ToolbarMenu::LoseFocus()
void ToolbarMenu::appendEntry( int nEntryId, const OUString& rStr, MenuItemBits nItemBits )
{
- appendEntry( new ToolbarMenuEntry( *this, nEntryId, rStr, nItemBits ) );
+ appendEntry( o3tl::make_unique<ToolbarMenuEntry>( *this, nEntryId, rStr, nItemBits ) );
}
void ToolbarMenu::appendEntry( int nEntryId, const OUString& rStr, const Image& rImage )
{
- appendEntry( new ToolbarMenuEntry( *this, nEntryId, rImage, rStr, MenuItemBits::NONE ) );
+ appendEntry( o3tl::make_unique<ToolbarMenuEntry>( *this, nEntryId, rImage, rStr, MenuItemBits::NONE ) );
}
void ToolbarMenu::appendEntry( int nEntryId, Control* pControl )
{
- appendEntry( new ToolbarMenuEntry( *this, nEntryId, pControl, MenuItemBits::NONE ) );
+ appendEntry( o3tl::make_unique<ToolbarMenuEntry>( *this, nEntryId, pControl, MenuItemBits::NONE ) );
}
-void ToolbarMenu::appendEntry( ToolbarMenuEntry* pEntry )
+void ToolbarMenu::appendEntry( std::unique_ptr<ToolbarMenuEntry> pEntry )
{
- mpImpl->maEntryVector.push_back(pEntry);
+ mpImpl->maEntryVector.push_back(std::move(pEntry));
mpImpl->maSize = implCalcSize();
if (IsVisible())
Invalidate();
@@ -789,14 +769,11 @@ ToolbarMenuEntry* ToolbarMenu::implGetEntry( int nEntry ) const
ToolbarMenuEntry* ToolbarMenu::implSearchEntry( int nEntryId ) const
{
- const int nEntryCount = mpImpl->maEntryVector.size();
- int nEntry;
- for( nEntry = 0; nEntry < nEntryCount; nEntry++ )
+ for( const auto& p : mpImpl->maEntryVector )
{
- ToolbarMenuEntry* p = mpImpl->maEntryVector[nEntry];
if( p && p->mnEntryId == nEntryId )
{
- return p;
+ return p.get();
}
}
@@ -814,7 +791,7 @@ void ToolbarMenu::implHighlightEntry(vcl::RenderContext& rRenderContext, int nHi
for (int nEntry = 0; nEntry < nEntryCount; nEntry++)
{
- ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry];
+ ToolbarMenuEntry* const pEntry = mpImpl->maEntryVector[nEntry].get();
if (pEntry && (nEntry == nHighlightEntry))
{
// no highlights for controls only items
@@ -890,7 +867,7 @@ void ToolbarMenu::implSelectEntry( int nSelectedEntry )
ToolbarMenuEntry* pEntry = nullptr;
if( nSelectedEntry != -1 )
- pEntry = mpImpl->maEntryVector[ nSelectedEntry ];
+ pEntry = mpImpl->maEntryVector[ nSelectedEntry ].get();
if( pEntry )
mpImpl->maSelectHdl.Call( this );
@@ -928,10 +905,9 @@ void ToolbarMenu::implHighlightAtPosition(const MouseEvent& rMEvt, bool /*bMBDow
bool bHighlighted = false;
const int nEntryCount = mpImpl->maEntryVector.size();
- int nEntry;
- for( nEntry = 0; nEntry < nEntryCount; nEntry++ )
+ for( int nEntry = 0; nEntry < nEntryCount; nEntry++ )
{
- ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry];
+ ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry].get();
if( pEntry )
{
long nOldY = nY;
@@ -1020,7 +996,7 @@ ToolbarMenuEntry* ToolbarMenu::implCursorUpDown( bool bUp, bool bHomeEnd )
// if we have a currently selected entry and
// cursor keys are used than check if this entry
// has a control that can use those cursor keys
- ToolbarMenuEntry* pData = mpImpl->maEntryVector[n];
+ ToolbarMenuEntry* pData = mpImpl->maEntryVector[n].get();
if( pData && pData->mpControl && !pData->mbHasText )
{
if( implCheckSubControlCursorMove( pData->mpControl, bUp, mpImpl->mnLastColumn ) )
@@ -1067,7 +1043,7 @@ ToolbarMenuEntry* ToolbarMenu::implCursorUpDown( bool bUp, bool bHomeEnd )
break;
}
- ToolbarMenuEntry* pData = mpImpl->maEntryVector[n];
+ ToolbarMenuEntry* pData = mpImpl->maEntryVector[n].get();
if( pData && (pData->mnEntryId != TITLE_ID) )
{
implChangeHighlightEntry( n );
@@ -1228,12 +1204,8 @@ void ToolbarMenu::implPaint(vcl::RenderContext& rRenderContext, ToolbarMenuEntry
Point aTopLeft(nOuterSpace, nOuterSpace), aTmpPos;
Size aOutSz(GetOutputSizePixel());
- const int nEntryCount = mpImpl->maEntryVector.size();
- int nEntry;
- for (nEntry = 0; nEntry < nEntryCount; nEntry++)
+ for (const auto& pEntry : mpImpl->maEntryVector)
{
- ToolbarMenuEntry* pEntry = mpImpl->maEntryVector[nEntry];
-
Point aPos(aTopLeft);
aPos.Y() += nBorder;
aPos.Y() += nStartY;
@@ -1250,7 +1222,7 @@ void ToolbarMenu::implPaint(vcl::RenderContext& rRenderContext, ToolbarMenuEntry
rRenderContext.DrawLine(aTmpPos, Point( aOutSz.Width() - 3 - 2 * nOuterSpace, aTmpPos.Y()));
rRenderContext.SetLineColor();
}
- else if (!pThisOnly || (pEntry == pThisOnly))
+ else if (!pThisOnly || (pEntry.get() == pThisOnly))
{
const bool bTitle = pEntry->mnEntryId == TITLE_ID;
diff --git a/svtools/source/control/toolbarmenuacc.cxx b/svtools/source/control/toolbarmenuacc.cxx
index b6a8dd1592a9..3cde3c617fe6 100644
--- a/svtools/source/control/toolbarmenuacc.cxx
+++ b/svtools/source/control/toolbarmenuacc.cxx
@@ -335,7 +335,7 @@ Reference< XAccessible > SAL_CALL ToolbarMenuAcc::getAccessibleAtPoint( const aw
const int nEntryCount = mpParent->maEntryVector.size();
for( int nEntry = 0; (nEntry < nEntryCount) && !xRet.is(); nEntry++ )
{
- ToolbarMenuEntry* pEntry = mpParent->maEntryVector[nEntry];
+ ToolbarMenuEntry* pEntry = mpParent->maEntryVector[nEntry].get();
if( pEntry && pEntry->maRect.IsInside( aVclPoint ) )
{
if( pEntry->mpControl )
@@ -465,7 +465,7 @@ Reference< XAccessible > SAL_CALL ToolbarMenuAcc::getSelectedAccessibleChild( sa
if( (mpParent->mnHighlightedEntry != -1) && (nSelectedChildIndex == 0) )
{
- ToolbarMenuEntry* pEntry = mpParent->maEntryVector[ mpParent->mnHighlightedEntry ];
+ ToolbarMenuEntry* pEntry = mpParent->maEntryVector[ mpParent->mnHighlightedEntry ].get();
if( pEntry )
{
if( pEntry->mpControl )
diff --git a/svtools/source/control/toolbarmenuimp.hxx b/svtools/source/control/toolbarmenuimp.hxx
index 9469bde4b3df..8576eb3377e8 100644
--- a/svtools/source/control/toolbarmenuimp.hxx
+++ b/svtools/source/control/toolbarmenuimp.hxx
@@ -37,6 +37,7 @@
#include <rtl/ref.hxx>
+#include <memory>
#include <vector>
#include <svtools/framestatuslistener.hxx>
@@ -48,7 +49,7 @@ class ToolbarMenu;
class ToolbarMenuEntry;
typedef ::std::vector< css::uno::Reference< css::accessibility::XAccessibleEventListener > > EventListenerVector;
-typedef std::vector< ToolbarMenuEntry * > ToolbarMenuEntryVector;
+typedef std::vector< std::unique_ptr< ToolbarMenuEntry > > ToolbarMenuEntryVector;
const int SEPARATOR_HEIGHT = 4;
const int TITLE_ID = -1;