summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorArmin Le Grand <alg@apache.org>2013-10-25 16:22:15 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-10-28 14:08:12 +0000
commit518d3592e69aee30f19cd8cbdfef73131cb43c22 (patch)
treec5733bdab2a04d77373647b4be8b148c37074388 /cui
parent2c6b6ba446868dc549f39b12c27cbd73f7eff572 (diff)
Resolves: #i123497# corrected modify implementations for bitmap...
lineend and color (cherry picked from commit 03fa6020a862b1b6faf69f33274022cb871e8f4b) Conflicts: cui/source/tabpages/tpbitmap.cxx cui/source/tabpages/tpcolor.cxx cui/source/tabpages/tplneend.cxx Change-Id: Ib99e8f0a59fb611972133bab1e864d59d019457b
Diffstat (limited to 'cui')
-rw-r--r--cui/source/tabpages/tpbitmap.cxx7
-rw-r--r--cui/source/tabpages/tpcolor.cxx10
-rw-r--r--cui/source/tabpages/tplneend.cxx24
3 files changed, 28 insertions, 13 deletions
diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx
index 6aff2bce1e47..17e89cbba57a 100644
--- a/cui/source/tabpages/tpbitmap.cxx
+++ b/cui/source/tabpages/tpbitmap.cxx
@@ -685,9 +685,12 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickModifyHdl_Impl)
bLoop = sal_False;
const BitmapEx aBitmapEx(m_pBitmapCtl->GetBitmapEx());
- const XBitmapEntry aEntry(Graphic(aBitmapEx), aName);
- m_pLbBitmaps->Modify( rStyleSettings.GetListBoxPreviewDefaultPixelSize(), aEntry, nPos );
+ // #i123497# Need to replace the existing entry with a new one (old returned needs to be deleted)
+ XBitmapEntry* pEntry = new XBitmapEntry(Graphic(aBitmapEx), aName);
+ delete pBitmapList->Replace(pEntry, nPos);
+
+ m_pLbBitmaps->Modify( rStyleSettings.GetListBoxPreviewDefaultPixelSize(), *pEntry, nPos );
m_pLbBitmaps->SelectEntryPos( nPos );
*pnBitmapListState |= CT_MODIFIED;
diff --git a/cui/source/tabpages/tpcolor.cxx b/cui/source/tabpages/tpcolor.cxx
index bdb78a23abf1..379e3da8b54c 100644
--- a/cui/source/tabpages/tpcolor.cxx
+++ b/cui/source/tabpages/tpcolor.cxx
@@ -794,13 +794,15 @@ IMPL_LINK_NOARG(SvxColorTabPage, ClickModifyHdl_Impl)
if (eCM != CM_RGB)
ConvertColorValues (aTmpColor, CM_RGB);
- const XColorEntry aEntry(aTmpColor, aName);
+ // #123497# Need to replace the existing entry with a new one (old returned needs to be deleted)
+ XColorEntry* pEntry = new XColorEntry(aTmpColor, aName);
+ delete pColorList->Replace(pEntry, nPos);
- m_pLbColor->Modify( aEntry, nPos );
+ m_pLbColor->Modify( *pEntry, nPos );
m_pLbColor->SelectEntryPos( nPos );
- m_pValSetColorList->SetItemColor( nPos + 1, aEntry.GetColor() );
- m_pValSetColorList->SetItemText( nPos + 1, aEntry.GetName() );
+ m_pValSetColorList->SetItemColor( nPos + 1, pEntry->GetColor() );
+ m_pValSetColorList->SetItemText( nPos + 1, pEntry->GetName() );
m_pEdtName->SetText( aName );
m_pCtlPreviewOld->Invalidate();
diff --git a/cui/source/tabpages/tplneend.cxx b/cui/source/tabpages/tplneend.cxx
index 570eca909429..ecaae0a2fa1f 100644
--- a/cui/source/tabpages/tplneend.cxx
+++ b/cui/source/tabpages/tplneend.cxx
@@ -358,18 +358,28 @@ IMPL_LINK_NOARG(SvxLineEndDefTabPage, ClickModifyHdl_Impl)
// if not existing, enter the entry
if( bDifferent )
{
- const XLineEndEntry* pEntry = pLineEndList->GetLineEnd( nPos );
+ const XLineEndEntry* pOldEntry = pLineEndList->GetLineEnd( nPos );
- m_pEdtName->SetText( aName );
+ if(pOldEntry)
+ {
+ // #123497# Need to replace the existing entry with a new one (old returned needs to be deleted)
+ XLineEndEntry* pEntry = new XLineEndEntry(pOldEntry->GetLineEnd(), aName);
+ delete pLineEndList->Replace(pEntry, nPos);
- const XLineEndEntry aEntry(pEntry->GetLineEnd(), aName);
+ m_pEdtName->SetText( aName );
- m_pLbLineEnds->Modify( aEntry, nPos, pLineEndList->GetUiBitmap( nPos ) );
- m_pLbLineEnds->SelectEntryPos( nPos );
+ m_pLbLineEnds->Modify( *pEntry, nPos, pLineEndList->GetUiBitmap( nPos ) );
+ m_pLbLineEnds->SelectEntryPos( nPos );
- *pnLineEndListState |= CT_MODIFIED;
+ // Flag fuer modifiziert setzen
+ *pnLineEndListState |= CT_MODIFIED;
- *pPageType = 3;
+ *pPageType = 3;
+ }
+ else
+ {
+ OSL_ENSURE(false, "LineEnd to be modified not existing (!)");
+ }
}
}
return( 0L );