include/svtools/valueset.hxx        |    8 -
 svtools/source/control/valueacc.cxx |   26 ++--
 svtools/source/control/valueimp.hxx |    6 -
 svtools/source/control/valueset.cxx |  188 +++++++++++++++++-------------------
 4 files changed, 113 insertions(+), 115 deletions(-)

New commits:
commit 30aa33e6a6b9fb230af96f619db27fcaf31ef914
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Fri May 28 14:02:25 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sat May 29 13:37:01 2021 +0200

    flatten ValueSet item array
    
    and change mrParent to mpParent in ValueSetItem because references
    preclude copy construction and assignment
    
    Change-Id: Iabb0c6ccfa4eed645cf6ee75d7ff83f9c4ec5a1d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116372
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/include/svtools/valueset.hxx b/include/svtools/valueset.hxx
index 084008c79e2e..55399b24f711 100644
--- a/include/svtools/valueset.hxx
+++ b/include/svtools/valueset.hxx
@@ -175,8 +175,6 @@ to be set (before Show) with SetStyle().
 
 *************************************************************************/
 
-typedef std::vector<std::unique_ptr<ValueSetItem>> ValueItemList;
-
 #define WB_ITEMBORDER           (WinBits(0x00010000))
 #define WB_DOUBLEBORDER         (WinBits(0x00020000))
 #define WB_NAMEFIELD            (WinBits(0x00040000))
@@ -193,7 +191,7 @@ class SVT_DLLPUBLIC ValueSet : public 
weld::CustomWidgetController
 private:
     ScopedVclPtr<VirtualDevice> maVirDev;
     css::uno::Reference<css::accessibility::XAccessible> mxAccessible;
-    ValueItemList   mItemList;
+    std::vector<ValueSetItem>  mItemList;
     std::unique_ptr<ValueSetItem> mpNoneItem;
     std::unique_ptr<weld::ScrolledWindow> mxScrolledWindow;
     tools::Rectangle  maNoneItemRect;
@@ -236,7 +234,7 @@ private:
     friend class ValueSetAcc;
 
     SVT_DLLPRIVATE void         ImplDeleteItems();
-    SVT_DLLPRIVATE void         ImplFormatItem(vcl::RenderContext const & 
rRenderContext, ValueSetItem* pItem, tools::Rectangle aRect);
+    SVT_DLLPRIVATE void         ImplFormatItem(vcl::RenderContext const & 
rRenderContext, ValueSetItem& rItem, tools::Rectangle aRect);
     SVT_DLLPRIVATE void         ImplDrawItemText(vcl::RenderContext& 
rRenderContext, const OUString& rStr);
     SVT_DLLPRIVATE void         ImplDrawSelect(vcl::RenderContext& 
rRenderContext, sal_uInt16 nItemId, const bool bFocus, const bool bDrawSel);
     SVT_DLLPRIVATE void         ImplDrawSelect(vcl::RenderContext& 
rRenderContext);
@@ -246,7 +244,7 @@ private:
     SVT_DLLPRIVATE ValueSetItem*    ImplGetItem( size_t nPos );
     SVT_DLLPRIVATE ValueSetItem*    ImplGetFirstItem();
     SVT_DLLPRIVATE sal_uInt16          ImplGetVisibleItemCount() const;
-    SVT_DLLPRIVATE void         ImplInsertItem( std::unique_ptr<ValueSetItem> 
pItem, const size_t nPos );
+    SVT_DLLPRIVATE void         ImplInsertItem( const ValueSetItem& rItem, 
const size_t nPos );
     SVT_DLLPRIVATE tools::Rectangle    ImplGetItemRect( size_t nPos ) const;
     SVT_DLLPRIVATE void         ImplFireAccessibleEvent( short nEventId, const 
css::uno::Any& rOldValue, const css::uno::Any& rNewValue );
     SVT_DLLPRIVATE bool         ImplHasAccessibleListeners();
diff --git a/svtools/source/control/valueacc.cxx 
b/svtools/source/control/valueacc.cxx
index a6364d784064..1fe72be58cc8 100644
--- a/svtools/source/control/valueacc.cxx
+++ b/svtools/source/control/valueacc.cxx
@@ -35,7 +35,7 @@ using namespace ::com::sun::star;
 
 
 ValueSetItem::ValueSetItem( ValueSet& rParent )
-    : mrParent(rParent)
+    : mpParent(&rParent)
     , mnId(0)
     , meType(VALUESETITEM_NONE)
     , mbVisible(true)
@@ -122,7 +122,7 @@ uno::Reference< accessibility::XAccessible > SAL_CALL 
ValueItemAcc::getAccessibl
     uno::Reference< accessibility::XAccessible >    xRet;
 
     if( mpParent )
-        xRet = mpParent->mrParent.mxAccessible;
+        xRet = mpParent->mpParent->mxAccessible;
 
     return xRet;
 }
@@ -139,7 +139,7 @@ sal_Int32 SAL_CALL 
ValueItemAcc::getAccessibleIndexInParent()
     {
         bool bDone = false;
 
-        sal_uInt16 nCount = mpParent->mrParent.ImplGetVisibleItemCount();
+        sal_uInt16 nCount = mpParent->mpParent->ImplGetVisibleItemCount();
         ValueSetItem* pItem;
         for (sal_uInt16 i=0; i<nCount && !bDone; i++)
         {
@@ -147,7 +147,7 @@ sal_Int32 SAL_CALL 
ValueItemAcc::getAccessibleIndexInParent()
             // just in case the number of children changes in the meantime.
             try
             {
-                pItem = mpParent->mrParent.ImplGetItem(i);
+                pItem = mpParent->mpParent->ImplGetItem(i);
             }
             catch (const lang::IndexOutOfBoundsException&)
             {
@@ -165,9 +165,9 @@ sal_Int32 SAL_CALL 
ValueItemAcc::getAccessibleIndexInParent()
     }
 
     //if this valueset contain a none field(common value is default), then we 
should increase the real index and set the noitem index value equal 0.
-    if ( mpParent && ( (mpParent->mrParent.GetStyle() & WB_NONEFIELD) != 0 ) )
+    if ( mpParent && ( (mpParent->mpParent->GetStyle() & WB_NONEFIELD) != 0 ) )
     {
-        ValueSetItem* pFirstItem = mpParent->mrParent.ImplGetItem 
(VALUESET_ITEM_NONEITEM);
+        ValueSetItem* pFirstItem = mpParent->mpParent->ImplGetItem 
(VALUESET_ITEM_NONEITEM);
         if( pFirstItem && pFirstItem 
->GetAccessible(mbIsTransientChildrenDisabled).get() == this )
             nIndexInParent = 0;
         else
@@ -230,7 +230,7 @@ uno::Reference< accessibility::XAccessibleStateSet > 
SAL_CALL ValueItemAcc::getA
         //      pStateSet->AddState( 
accessibility::AccessibleStateType::FOCUSABLE );
 
         // SELECTED
-        if( mpParent->mrParent.GetSelectedItemId() == mpParent->mnId )
+        if( mpParent->mpParent->GetSelectedItemId() == mpParent->mnId )
         {
             pStateSet->AddState( accessibility::AccessibleStateType::SELECTED 
);
             //              pStateSet->AddState( 
accessibility::AccessibleStateType::FOCUSED );
@@ -319,8 +319,8 @@ awt::Rectangle SAL_CALL ValueItemAcc::getBounds()
 
     if( mpParent )
     {
-        tools::Rectangle   aRect( 
mpParent->mrParent.GetItemRect(mpParent->mnId) );
-        tools::Rectangle   aParentRect( Point(), 
mpParent->mrParent.GetOutputSizePixel() );
+        tools::Rectangle   aRect( 
mpParent->mpParent->GetItemRect(mpParent->mnId) );
+        tools::Rectangle   aParentRect( Point(), 
mpParent->mpParent->GetOutputSizePixel() );
 
         aRect.Intersection( aParentRect );
 
@@ -351,8 +351,8 @@ awt::Point SAL_CALL ValueItemAcc::getLocationOnScreen()
 
     if( mpParent )
     {
-        const Point aPos = 
mpParent->mrParent.GetItemRect(mpParent->mnId).TopLeft();
-        const Point 
aScreenPos(mpParent->mrParent.GetDrawingArea()->get_accessible_location_on_screen());
+        const Point aPos = 
mpParent->mpParent->GetItemRect(mpParent->mnId).TopLeft();
+        const Point 
aScreenPos(mpParent->mpParent->GetDrawingArea()->get_accessible_location_on_screen());
 
         aRet.X = aPos.X() + aScreenPos.X();
         aRet.Y = aPos.Y() + aScreenPos.Y();
@@ -729,8 +729,8 @@ uno::Reference< accessibility::XAccessible > SAL_CALL 
ValueSetAcc::getAccessible
 
         if( VALUESET_ITEM_NONEITEM != nItemPos )
         {
-            ValueSetItem *const pItem = mpParent->mItemList[nItemPos].get();
-            xRet = pItem->GetAccessible( false/*bIsTransientChildrenDisabled*/ 
);
+            ValueSetItem & rItem = mpParent->mItemList[nItemPos];
+            xRet = rItem.GetAccessible( false/*bIsTransientChildrenDisabled*/ 
);
         }
     }
 
diff --git a/svtools/source/control/valueimp.hxx 
b/svtools/source/control/valueimp.hxx
index b980cb1f5c90..367debaf75e9 100644
--- a/svtools/source/control/valueimp.hxx
+++ b/svtools/source/control/valueimp.hxx
@@ -50,7 +50,7 @@ class ValueSet;
 
 struct ValueSetItem
 {
-    ValueSet&        mrParent;
+    ValueSet*           mpParent;
     sal_uInt16          mnId;
     sal_uInt8           meType;
     bool                mbVisible;
@@ -62,6 +62,10 @@ struct ValueSetItem
 
     explicit ValueSetItem( ValueSet& rParent );
     ~ValueSetItem();
+    ValueSetItem( const ValueSetItem& ) = default;
+    ValueSetItem( ValueSetItem&& ) = default;
+    ValueSetItem& operator=( const ValueSetItem& ) = default;
+    ValueSetItem& operator=( ValueSetItem&& ) = default;
 
     css::uno::Reference< css::accessibility::XAccessible >
                         GetAccessible( bool bIsTransientChildrenDisabled );
diff --git a/svtools/source/control/valueset.cxx 
b/svtools/source/control/valueset.cxx
index 9e14b49dbe46..a2e3159f1e9b 100644
--- a/svtools/source/control/valueset.cxx
+++ b/svtools/source/control/valueset.cxx
@@ -138,17 +138,15 @@ void ValueSet::ImplDeleteItems()
 
     for ( size_t i = 0; i < n; ++i )
     {
-        ValueSetItem* pItem = mItemList[i].get();
-        if ( pItem->mbVisible && ImplHasAccessibleListeners() )
+        ValueSetItem& rItem = mItemList[i];
+        if ( rItem.mbVisible && ImplHasAccessibleListeners() )
         {
             Any aOldAny;
             Any aNewAny;
 
-            aOldAny <<= pItem->GetAccessible( 
false/*bIsTransientChildrenDisabled*/ );
+            aOldAny <<= rItem.GetAccessible( 
false/*bIsTransientChildrenDisabled*/ );
             ImplFireAccessibleEvent(AccessibleEventId::CHILD, aOldAny, 
aNewAny);
         }
-
-        mItemList[i].reset();
     }
 
     mItemList.clear();
@@ -206,12 +204,12 @@ ValueSetItem* ValueSet::ImplGetItem( size_t nPos )
     if (nPos == VALUESET_ITEM_NONEITEM)
         return mpNoneItem.get();
     else
-        return (nPos < mItemList.size()) ? mItemList[nPos].get() : nullptr;
+        return (nPos < mItemList.size()) ? &mItemList[nPos] : nullptr;
 }
 
 ValueSetItem* ValueSet::ImplGetFirstItem()
 {
-    return !mItemList.empty() ? mItemList[0].get() : nullptr;
+    return !mItemList.empty() ? mItemList.data() : nullptr;
 }
 
 sal_uInt16 ValueSet::ImplGetVisibleItemCount() const
@@ -221,7 +219,7 @@ sal_uInt16 ValueSet::ImplGetVisibleItemCount() const
 
     for ( size_t n = 0; n < nItemCount; ++n )
     {
-        if ( mItemList[n]->mbVisible )
+        if ( mItemList[n].mbVisible )
             ++nRet;
     }
 
@@ -614,7 +612,7 @@ size_t ValueSet::GetItemCount() const
 size_t ValueSet::GetItemPos( sal_uInt16 nItemId ) const
 {
     for ( size_t i = 0, n = mItemList.size(); i < n; ++i ) {
-        if ( mItemList[i]->mnId == nItemId ) {
+        if ( mItemList[i].mnId == nItemId ) {
             return i;
         }
     }
@@ -623,7 +621,7 @@ size_t ValueSet::GetItemPos( sal_uInt16 nItemId ) const
 
 sal_uInt16 ValueSet::GetItemId( size_t nPos ) const
 {
-    return ( nPos < mItemList.size() ) ? mItemList[nPos]->mnId : 0 ;
+    return ( nPos < mItemList.size() ) ? mItemList[nPos].mnId : 0 ;
 }
 
 sal_uInt16 ValueSet::GetItemId( const Point& rPos ) const
@@ -639,7 +637,7 @@ tools::Rectangle ValueSet::GetItemRect( sal_uInt16 nItemId 
) const
 {
     const size_t nPos = GetItemPos( nItemId );
 
-    if ( nPos!=VALUESET_ITEM_NOTFOUND && mItemList[nPos]->mbVisible )
+    if ( nPos!=VALUESET_ITEM_NOTFOUND && mItemList[nPos].mbVisible )
         return ImplGetItemRect( nPos );
 
     return tools::Rectangle();
@@ -812,7 +810,7 @@ void ValueSet::SelectItem( sal_uInt16 nItemId )
         if( nPos != VALUESET_ITEM_NOTFOUND )
         {
             ValueItemAcc* pItemAcc = ValueItemAcc::getImplementation(
-                mItemList[nPos]->GetAccessible( 
false/*bIsTransientChildrenDisabled*/ ) );
+                mItemList[nPos].GetAccessible( 
false/*bIsTransientChildrenDisabled*/ ) );
 
             if( pItemAcc )
             {
@@ -829,7 +827,7 @@ void ValueSet::SelectItem( sal_uInt16 nItemId )
 
     ValueSetItem* pItem;
     if( nPos != VALUESET_ITEM_NOTFOUND )
-        pItem = mItemList[nPos].get();
+        pItem = &mItemList[nPos];
     else
         pItem = mpNoneItem.get();
 
@@ -1027,7 +1025,7 @@ void ValueSet::Format(vcl::RenderContext const & 
rRenderContext)
 
         for (size_t i = 0; i < nItemCount; i++)
         {
-            mItemList[i]->mbVisible = false;
+            mItemList[i].mbVisible = false;
         }
 
         if (mxScrolledWindow && mxScrolledWindow->get_vpolicy() != 
VclPolicyType::NEVER)
@@ -1105,7 +1103,7 @@ void ValueSet::Format(vcl::RenderContext const & 
rRenderContext)
             maNoneItemRect.SetRight( maNoneItemRect.Left() + aWinSize.Width() 
- x - 1 );
             maNoneItemRect.SetBottom( y + nNoneHeight - 1 );
 
-            ImplFormatItem(rRenderContext, mpNoneItem.get(), maNoneItemRect);
+            ImplFormatItem(rRenderContext, *mpNoneItem, maNoneItemRect);
 
             y += nNoneHeight + nNoneSpace;
         }
@@ -1130,21 +1128,21 @@ void ValueSet::Format(vcl::RenderContext const & 
rRenderContext)
         }
         for (size_t i = 0; i < nItemCount; i++)
         {
-            ValueSetItem* pItem = mItemList[i].get();
+            ValueSetItem& rItem = mItemList[i];
 
             if (i >= nFirstItem && i < nLastItem)
             {
-                if (!pItem->mbVisible && ImplHasAccessibleListeners())
+                if (!rItem.mbVisible && ImplHasAccessibleListeners())
                 {
                     Any aOldAny;
                     Any aNewAny;
 
-                    aNewAny <<= 
pItem->GetAccessible(false/*bIsTransientChildrenDisabled*/);
+                    aNewAny <<= 
rItem.GetAccessible(false/*bIsTransientChildrenDisabled*/);
                     ImplFireAccessibleEvent(AccessibleEventId::CHILD, aOldAny, 
aNewAny);
                 }
 
-                pItem->mbVisible = true;
-                ImplFormatItem(rRenderContext, pItem, 
tools::Rectangle(Point(x, y), Size(mnItemWidth, mnItemHeight)));
+                rItem.mbVisible = true;
+                ImplFormatItem(rRenderContext, rItem, 
tools::Rectangle(Point(x, y), Size(mnItemWidth, mnItemHeight)));
 
                 if (!((i + 1) % mnCols))
                 {
@@ -1156,16 +1154,16 @@ void ValueSet::Format(vcl::RenderContext const & 
rRenderContext)
             }
             else
             {
-                if (pItem->mbVisible && ImplHasAccessibleListeners())
+                if (rItem.mbVisible && ImplHasAccessibleListeners())
                 {
                     Any aOldAny;
                     Any aNewAny;
 
-                    aOldAny <<= 
pItem->GetAccessible(false/*bIsTransientChildrenDisabled*/);
+                    aOldAny <<= 
rItem.GetAccessible(false/*bIsTransientChildrenDisabled*/);
                     ImplFireAccessibleEvent(AccessibleEventId::CHILD, aOldAny, 
aNewAny);
                 }
 
-                pItem->mbVisible = false;
+                rItem.mbVisible = false;
             }
         }
 
@@ -1219,7 +1217,7 @@ void ValueSet::ImplDrawSelect(vcl::RenderContext& 
rRenderContext, sal_uInt16 nIt
     if (nItemId)
     {
         const size_t nPos = GetItemPos( nItemId );
-        pItem = mItemList[ nPos ].get();
+        pItem = &mItemList[ nPos ];
         aRect = ImplGetItemRect( nPos );
     }
     else if (mpNoneItem)
@@ -1332,7 +1330,7 @@ void ValueSet::ImplDrawSelect(vcl::RenderContext& 
rRenderContext, sal_uInt16 nIt
     ImplDrawItemText(rRenderContext, pItem->maText);
 }
 
-void ValueSet::ImplFormatItem(vcl::RenderContext const & rRenderContext, 
ValueSetItem* pItem, tools::Rectangle aRect)
+void ValueSet::ImplFormatItem(vcl::RenderContext const & rRenderContext, 
ValueSetItem& rItem, tools::Rectangle aRect)
 {
     WinBits nStyle = GetStyle();
     if (nStyle & WB_ITEMBORDER)
@@ -1358,15 +1356,15 @@ void ValueSet::ImplFormatItem(vcl::RenderContext const 
& rRenderContext, ValueSe
         }
     }
 
-    if (pItem == mpNoneItem.get())
-        pItem->maText = GetText();
+    if (&rItem == mpNoneItem.get())
+        rItem.maText = GetText();
 
     if ((aRect.GetHeight() <= 0) || (aRect.GetWidth() <= 0))
         return;
 
     const StyleSettings& rStyleSettings = 
rRenderContext.GetSettings().GetStyleSettings();
 
-    if (pItem == mpNoneItem.get())
+    if (&rItem == mpNoneItem.get())
     {
         maVirDev->SetFont(rRenderContext.GetFont());
         maVirDev->SetTextColor((nStyle & WB_MENUSTYLEVALUESET) ? 
rStyleSettings.GetMenuTextColor() : rStyleSettings.GetWindowTextColor());
@@ -1374,19 +1372,19 @@ void ValueSet::ImplFormatItem(vcl::RenderContext const 
& rRenderContext, ValueSe
         maVirDev->SetFillColor((nStyle & WB_MENUSTYLEVALUESET) ? 
rStyleSettings.GetMenuColor() : rStyleSettings.GetWindowColor());
         maVirDev->DrawRect(aRect);
         Point aTxtPos(aRect.Left() + 2, aRect.Top());
-        tools::Long nTxtWidth = rRenderContext.GetTextWidth(pItem->maText);
+        tools::Long nTxtWidth = rRenderContext.GetTextWidth(rItem.maText);
         if ((aTxtPos.X() + nTxtWidth) > aRect.Right())
         {
             maVirDev->SetClipRegion(vcl::Region(aRect));
-            maVirDev->DrawText(aTxtPos, pItem->maText);
+            maVirDev->DrawText(aTxtPos, rItem.maText);
             maVirDev->SetClipRegion();
         }
         else
-            maVirDev->DrawText(aTxtPos, pItem->maText);
+            maVirDev->DrawText(aTxtPos, rItem.maText);
     }
-    else if (pItem->meType == VALUESETITEM_COLOR)
+    else if (rItem.meType == VALUESETITEM_COLOR)
     {
-        maVirDev->SetFillColor(pItem->maColor);
+        maVirDev->SetFillColor(rItem.maColor);
         maVirDev->DrawRect(aRect);
     }
     else
@@ -1401,19 +1399,19 @@ void ValueSet::ImplFormatItem(vcl::RenderContext const 
& rRenderContext, ValueSe
             maVirDev->SetFillColor(rStyleSettings.GetFaceColor());
         maVirDev->DrawRect(aRect);
 
-        if (pItem->meType == VALUESETITEM_USERDRAW)
+        if (rItem.meType == VALUESETITEM_USERDRAW)
         {
-            UserDrawEvent aUDEvt(maVirDev.get(), aRect, pItem->mnId);
+            UserDrawEvent aUDEvt(maVirDev.get(), aRect, rItem.mnId);
             UserDraw(aUDEvt);
         }
         else
         {
-            Size aImageSize = pItem->maImage.GetSizePixel();
+            Size aImageSize = rItem.maImage.GetSizePixel();
             Size  aRectSize = aRect.GetSize();
             Point aPos(aRect.Left(), aRect.Top());
             aPos.AdjustX((aRectSize.Width() - aImageSize.Width()) / 2 );
 
-            if (pItem->meType != VALUESETITEM_IMAGE_AND_TEXT)
+            if (rItem.meType != VALUESETITEM_IMAGE_AND_TEXT)
                 aPos.AdjustY((aRectSize.Height() - aImageSize.Height()) / 2 );
 
             DrawImageFlags  nImageStyle  = DrawImageFlags::NONE;
@@ -1424,19 +1422,19 @@ void ValueSet::ImplFormatItem(vcl::RenderContext const 
& rRenderContext, ValueSe
                 aImageSize.Height() > aRectSize.Height())
             {
                 maVirDev->SetClipRegion(vcl::Region(aRect));
-                maVirDev->DrawImage(aPos, pItem->maImage, nImageStyle);
+                maVirDev->DrawImage(aPos, rItem.maImage, nImageStyle);
                 maVirDev->SetClipRegion();
             }
             else
-                maVirDev->DrawImage(aPos, pItem->maImage, nImageStyle);
+                maVirDev->DrawImage(aPos, rItem.maImage, nImageStyle);
 
-            if (pItem->meType == VALUESETITEM_IMAGE_AND_TEXT)
+            if (rItem.meType == VALUESETITEM_IMAGE_AND_TEXT)
             {
                 maVirDev->SetFont(rRenderContext.GetFont());
                 maVirDev->SetTextColor((nStyle & WB_MENUSTYLEVALUESET) ? 
rStyleSettings.GetMenuTextColor() : rStyleSettings.GetWindowTextColor());
                 maVirDev->SetTextFillColor();
 
-                tools::Long nTxtWidth = maVirDev->GetTextWidth(pItem->maText);
+                tools::Long nTxtWidth = maVirDev->GetTextWidth(rItem.maText);
 
                 if (nTxtWidth > aRect.GetWidth())
                     maVirDev->SetClipRegion(vcl::Region(aRect));
@@ -1444,7 +1442,7 @@ void ValueSet::ImplFormatItem(vcl::RenderContext const & 
rRenderContext, ValueSe
                 maVirDev->DrawText(Point(aRect.Left() +
                                          (aRect.GetWidth() - nTxtWidth) / 2,
                                          aRect.Bottom() - 
maVirDev->GetTextHeight()),
-                                   pItem->maText);
+                                   rItem.maText);
 
                 if (nTxtWidth > aRect.GetWidth())
                     maVirDev->SetClipRegion();
@@ -1522,9 +1520,9 @@ void ValueSet::SetItemImage( sal_uInt16 nItemId, const 
Image& rImage )
     if ( nPos == VALUESET_ITEM_NOTFOUND )
         return;
 
-    ValueSetItem* pItem = mItemList[nPos].get();
-    pItem->meType  = VALUESETITEM_IMAGE;
-    pItem->maImage = rImage;
+    ValueSetItem& rItem = mItemList[nPos];
+    rItem.meType  = VALUESETITEM_IMAGE;
+    rItem.maImage = rImage;
 
     if ( !mbFormat && IsReallyVisible() && IsUpdateMode() )
     {
@@ -1542,9 +1540,9 @@ void ValueSet::SetItemColor( sal_uInt16 nItemId, const 
Color& rColor )
     if ( nPos == VALUESET_ITEM_NOTFOUND )
         return;
 
-    ValueSetItem* pItem = mItemList[nPos].get();
-    pItem->meType  = VALUESETITEM_COLOR;
-    pItem->maColor = rColor;
+    ValueSetItem& rItem = mItemList[nPos];
+    rItem.meType  = VALUESETITEM_COLOR;
+    rItem.maColor = rColor;
 
     if ( !mbFormat && IsReallyVisible() && IsUpdateMode() )
     {
@@ -1560,7 +1558,7 @@ Color ValueSet::GetItemColor( sal_uInt16 nItemId ) const
     size_t nPos = GetItemPos( nItemId );
 
     if ( nPos != VALUESET_ITEM_NOTFOUND )
-        return mItemList[nPos]->maColor;
+        return mItemList[nPos].maColor;
     else
         return Color();
 }
@@ -1638,54 +1636,54 @@ Size ValueSet::CalcWindowSizePixel( const Size& 
rItemSize, sal_uInt16 nDesireCol
 
 void ValueSet::InsertItem( sal_uInt16 nItemId, const Image& rImage )
 {
-    std::unique_ptr<ValueSetItem> pItem(new ValueSetItem( *this ));
-    pItem->mnId     = nItemId;
-    pItem->meType   = VALUESETITEM_IMAGE;
-    pItem->maImage  = rImage;
-    ImplInsertItem( std::move(pItem), VALUESET_APPEND );
+    ValueSetItem aItem(*this);
+    aItem.mnId     = nItemId;
+    aItem.meType   = VALUESETITEM_IMAGE;
+    aItem.maImage  = rImage;
+    ImplInsertItem( aItem, VALUESET_APPEND );
 }
 
 void ValueSet::InsertItem( sal_uInt16 nItemId, const Image& rImage,
                            const OUString& rText, size_t nPos,
                            bool bShowLegend )
 {
-    std::unique_ptr<ValueSetItem> pItem(new ValueSetItem( *this ));
-    pItem->mnId     = nItemId;
-    pItem->meType   = bShowLegend ? VALUESETITEM_IMAGE_AND_TEXT : 
VALUESETITEM_IMAGE;
-    pItem->maImage  = rImage;
-    pItem->maText   = rText;
-    ImplInsertItem( std::move(pItem), nPos );
+    ValueSetItem aItem( *this );
+    aItem.mnId     = nItemId;
+    aItem.meType   = bShowLegend ? VALUESETITEM_IMAGE_AND_TEXT : 
VALUESETITEM_IMAGE;
+    aItem.maImage  = rImage;
+    aItem.maText   = rText;
+    ImplInsertItem( aItem, nPos );
 }
 
 void ValueSet::InsertItem( sal_uInt16 nItemId, size_t nPos )
 {
-    std::unique_ptr<ValueSetItem> pItem(new ValueSetItem( *this ));
-    pItem->mnId     = nItemId;
-    pItem->meType   = VALUESETITEM_USERDRAW;
-    ImplInsertItem( std::move(pItem), nPos );
+    ValueSetItem aItem(*this );
+    aItem.mnId     = nItemId;
+    aItem.meType   = VALUESETITEM_USERDRAW;
+    ImplInsertItem( aItem, nPos );
 }
 
 void ValueSet::InsertItem( sal_uInt16 nItemId, const Color& rColor,
                            const OUString& rText )
 {
-    std::unique_ptr<ValueSetItem> pItem(new ValueSetItem( *this ));
-    pItem->mnId     = nItemId;
-    pItem->meType   = VALUESETITEM_COLOR;
-    pItem->maColor  = rColor;
-    pItem->maText   = rText;
-    ImplInsertItem( std::move(pItem), VALUESET_APPEND );
+    ValueSetItem aItem( *this );
+    aItem.mnId     = nItemId;
+    aItem.meType   = VALUESETITEM_COLOR;
+    aItem.maColor  = rColor;
+    aItem.maText   = rText;
+    ImplInsertItem( aItem, VALUESET_APPEND );
 }
 
-void ValueSet::ImplInsertItem( std::unique_ptr<ValueSetItem> pItem, const 
size_t nPos )
+void ValueSet::ImplInsertItem( const ValueSetItem& rItem, const size_t nPos )
 {
-    DBG_ASSERT( pItem->mnId, "ValueSet::InsertItem(): ItemId == 0" );
-    DBG_ASSERT( GetItemPos( pItem->mnId ) == VALUESET_ITEM_NOTFOUND,
+    DBG_ASSERT( rItem.mnId, "ValueSet::InsertItem(): ItemId == 0" );
+    DBG_ASSERT( GetItemPos( rItem.mnId ) == VALUESET_ITEM_NOTFOUND,
                 "ValueSet::InsertItem(): ItemId already exists" );
 
     if ( nPos < mItemList.size() ) {
-        mItemList.insert( mItemList.begin() + nPos, std::move(pItem) );
+        mItemList.insert( mItemList.begin() + nPos, rItem );
     } else {
-        mItemList.push_back( std::move(pItem) );
+        mItemList.push_back( rItem );
     }
 
     QueueReformat();
@@ -1761,7 +1759,7 @@ void ValueSet::InsertItem( sal_uInt16 nItemId, const 
OUString& rText, size_t nPo
     pItem->mnId     = nItemId;
     pItem->meType   = VALUESETITEM_USERDRAW;
     pItem->maText   = rText;
-    ImplInsertItem( std::move(pItem), nPos );
+    ImplInsertItem( *pItem, nPos );
 }
 
 void ValueSet::SetItemHeight( tools::Long nNewItemHeight )
@@ -1791,7 +1789,7 @@ OUString ValueSet::GetItemText(sal_uInt16 nItemId) const
     const size_t nPos = GetItemPos(nItemId);
 
     if ( nPos != VALUESET_ITEM_NOTFOUND )
-        return mItemList[nPos]->maText;
+        return mItemList[nPos].maText;
 
     return OUString();
 }
@@ -1817,10 +1815,10 @@ void ValueSet::SetItemData( sal_uInt16 nItemId, void* 
pData )
     if ( nPos == VALUESET_ITEM_NOTFOUND )
         return;
 
-    ValueSetItem* pItem = mItemList[nPos].get();
-    pItem->mpData = pData;
+    ValueSetItem& rItem = mItemList[nPos];
+    rItem.mpData = pData;
 
-    if ( pItem->meType == VALUESETITEM_USERDRAW )
+    if ( rItem.meType == VALUESETITEM_USERDRAW )
     {
         if ( !mbFormat && IsReallyVisible() && IsUpdateMode() )
         {
@@ -1837,7 +1835,7 @@ void* ValueSet::GetItemData( sal_uInt16 nItemId ) const
     size_t nPos = GetItemPos( nItemId );
 
     if ( nPos != VALUESET_ITEM_NOTFOUND )
-        return mItemList[nPos]->mpData;
+        return mItemList[nPos].mpData;
     else
         return nullptr;
 }
@@ -1849,17 +1847,15 @@ void ValueSet::SetItemText(sal_uInt16 nItemId, const 
OUString& rText)
     if ( nPos == VALUESET_ITEM_NOTFOUND )
         return;
 
-    ValueSetItem* pItem = mItemList[nPos].get();
+    ValueSetItem& rItem = mItemList[nPos];
 
     // Remember old and new name for accessibility event.
     Any aOldName;
     Any aNewName;
-    OUString sString (pItem->maText);
-    aOldName <<= sString;
-    sString = rText;
-    aNewName <<= sString;
+    aOldName <<= rItem.maText;
+    aNewName <<= rText;
 
-    pItem->maText = rText;
+    rItem.maText = rText;
 
     if (!mbFormat && IsReallyVisible() && IsUpdateMode())
     {
@@ -1874,7 +1870,7 @@ void ValueSet::SetItemText(sal_uInt16 nItemId, const 
OUString& rText)
 
     if (ImplHasAccessibleListeners())
     {
-        Reference<XAccessible> xAccessible(pItem->GetAccessible( 
false/*bIsTransientChildrenDisabled*/));
+        Reference<XAccessible> xAccessible(rItem.GetAccessible( 
false/*bIsTransientChildrenDisabled*/));
         ValueItemAcc* pValueItemAcc = 
static_cast<ValueItemAcc*>(xAccessible.get());
         pValueItemAcc->FireAccessibleEvent(AccessibleEventId::NAME_CHANGED, 
aOldName, aNewName);
     }
@@ -1884,25 +1880,25 @@ Size ValueSet::GetLargestItemSize()
 {
     Size aLargestItem;
 
-    for (const std::unique_ptr<ValueSetItem>& pItem : mItemList)
+    for (const ValueSetItem& rItem : mItemList)
     {
-        if (!pItem->mbVisible)
+        if (!rItem.mbVisible)
             continue;
 
-        if (pItem->meType != VALUESETITEM_IMAGE &&
-            pItem->meType != VALUESETITEM_IMAGE_AND_TEXT)
+        if (rItem.meType != VALUESETITEM_IMAGE &&
+            rItem.meType != VALUESETITEM_IMAGE_AND_TEXT)
         {
             // handle determining an optimal size for this case
             continue;
         }
 
-        Size aSize = pItem->maImage.GetSizePixel();
-        if (pItem->meType == VALUESETITEM_IMAGE_AND_TEXT)
+        Size aSize = rItem.maImage.GetSizePixel();
+        if (rItem.meType == VALUESETITEM_IMAGE_AND_TEXT)
         {
             aSize.AdjustHeight(3 * NAME_LINE_HEIGHT +
                 maVirDev->GetTextHeight() );
             aSize.setWidth( std::max(aSize.Width(),
-                                     maVirDev->GetTextWidth(pItem->maText) + 
NAME_OFFSET) );
+                                     maVirDev->GetTextWidth(rItem.maText) + 
NAME_OFFSET) );
         }
 
         aLargestItem.setWidth( std::max(aLargestItem.Width(), aSize.Width()) );
@@ -1926,7 +1922,7 @@ Image ValueSet::GetItemImage(sal_uInt16 nItemId) const
     size_t nPos = GetItemPos( nItemId );
 
     if ( nPos != VALUESET_ITEM_NOTFOUND )
-        return mItemList[nPos]->maImage;
+        return mItemList[nPos].maImage;
     else
         return Image();
 }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to