Author: alg Date: Fri Oct 25 16:22:15 2013 New Revision: 1535772 URL: http://svn.apache.org/r1535772 Log: i123497 corrected modify implementations for bitmap, lineend and color
Modified: openoffice/trunk/main/cui/source/tabpages/tpbitmap.cxx openoffice/trunk/main/cui/source/tabpages/tpcolor.cxx openoffice/trunk/main/cui/source/tabpages/tplneend.cxx Modified: openoffice/trunk/main/cui/source/tabpages/tpbitmap.cxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/tabpages/tpbitmap.cxx?rev=1535772&r1=1535771&r2=1535772&view=diff ============================================================================== --- openoffice/trunk/main/cui/source/tabpages/tpbitmap.cxx (original) +++ openoffice/trunk/main/cui/source/tabpages/tpbitmap.cxx Fri Oct 25 16:22:15 2013 @@ -756,9 +756,12 @@ IMPL_LINK( SvxBitmapTabPage, ClickModify bLoop = sal_False; const BitmapEx aBitmapEx(aBitmapCtl.GetBitmapEx()); - const XBitmapEntry aEntry(Graphic(aBitmapEx), aName); - aLbBitmaps.Modify( rStyleSettings.GetListBoxPreviewDefaultPixelSize(), aEntry, nPos ); + // #123497# Need to replace the existing entry with a new one (old returned needs to be deleted) + XBitmapEntry* pEntry = new XBitmapEntry(Graphic(aBitmapEx), aName); + delete maBitmapList->Replace(pEntry, nPos); + + aLbBitmaps.Modify( rStyleSettings.GetListBoxPreviewDefaultPixelSize(), *pEntry, nPos ); aLbBitmaps.SelectEntryPos( nPos ); // Flag fuer modifiziert setzen Modified: openoffice/trunk/main/cui/source/tabpages/tpcolor.cxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/tabpages/tpcolor.cxx?rev=1535772&r1=1535771&r2=1535772&view=diff ============================================================================== --- openoffice/trunk/main/cui/source/tabpages/tpcolor.cxx (original) +++ openoffice/trunk/main/cui/source/tabpages/tpcolor.cxx Fri Oct 25 16:22:15 2013 @@ -631,13 +631,15 @@ IMPL_LINK( SvxColorTabPage, ClickModifyH 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 maColorTab->Replace(pEntry, nPos); - aLbColor.Modify( aEntry, nPos ); + aLbColor.Modify( *pEntry, nPos ); aLbColor.SelectEntryPos( nPos ); - aValSetColorTable.SetItemColor( nPos + 1, aEntry.GetColor() ); - aValSetColorTable.SetItemText( nPos + 1, aEntry.GetName() ); + aValSetColorTable.SetItemColor( nPos + 1, pEntry->GetColor() ); + aValSetColorTable.SetItemText( nPos + 1, pEntry->GetName() ); aEdtName.SetText( aName ); aCtlPreviewOld.Invalidate(); Modified: openoffice/trunk/main/cui/source/tabpages/tplneend.cxx URL: http://svn.apache.org/viewvc/openoffice/trunk/main/cui/source/tabpages/tplneend.cxx?rev=1535772&r1=1535771&r2=1535772&view=diff ============================================================================== --- openoffice/trunk/main/cui/source/tabpages/tplneend.cxx (original) +++ openoffice/trunk/main/cui/source/tabpages/tplneend.cxx Fri Oct 25 16:22:15 2013 @@ -402,19 +402,28 @@ IMPL_LINK( SvxLineEndDefTabPage, ClickMo // Wenn nicht vorhanden, wird Eintrag aufgenommen if( bDifferent ) { - const XLineEndEntry* pEntry = maLineEndList->GetLineEnd( nPos ); + const XLineEndEntry* pOldEntry = maLineEndList->GetLineEnd( nPos ); - aEdtName.SetText( aName ); - - const XLineEndEntry aEntry(pEntry->GetLineEnd(), aName); - - aLbLineEnds.Modify( aEntry, nPos, maLineEndList->GetUiBitmap( nPos ) ); - aLbLineEnds.SelectEntryPos( nPos ); - - // Flag fuer modifiziert setzen - *pnLineEndListState |= CT_MODIFIED; - - *pPageType = 3; + 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 maLineEndList->Replace(pEntry, nPos); + + aEdtName.SetText( aName ); + + aLbLineEnds.Modify( *pEntry, nPos, maLineEndList->GetUiBitmap( nPos ) ); + aLbLineEnds.SelectEntryPos( nPos ); + + // Flag fuer modifiziert setzen + *pnLineEndListState |= CT_MODIFIED; + + *pPageType = 3; + } + else + { + OSL_ENSURE(false, "LineEnd to be modified not existing (!)"); + } } } return( 0L );