Kaydet (Commit) 338ccf09 authored tarafından Laurent Balland-Poirier's avatar Laurent Balland-Poirier Kaydeden (comit) Ivan Timofeev

fdo#64455 Handle unknown color in color line

Change-Id: Ice4205056cc64ae50bd3c8136aeae6f648adbd0b
üst ed9a8291
......@@ -28,6 +28,9 @@
#include <svx/dialogs.hrc>
#define TMP_STR_BEGIN '['
#define TMP_STR_END ']'
#define DELAY_TIMEOUT 100
#include <svx/xlnclit.hxx>
......@@ -295,7 +298,40 @@ SvxColorBox::~SvxColorBox()
void SvxColorBox::Update( const XLineColorItem* pItem )
{
if ( pItem )
SelectEntry( pItem->GetColorValue() );
{
// fdo#64455
::Color aColor = pItem->GetColorValue();
String aString( pItem->GetName() );
SelectEntry(aString);
if( GetSelectEntryPos() == LISTBOX_ENTRY_NOTFOUND ||
GetSelectEntryColor() != aColor )
{
SelectEntry( aColor );
}
// Check if the entry is not in the list
if( GetSelectEntryPos() == LISTBOX_ENTRY_NOTFOUND ||
GetSelectEntryColor() != aColor )
{
sal_uInt16 nCount = GetEntryCount();
String aTmpStr;
if( nCount > 0 )
{
// Last entry gets tested against temporary color
aTmpStr = GetEntry( nCount - 1 );
if( aTmpStr.GetChar(0) == TMP_STR_BEGIN &&
aTmpStr.GetChar(aTmpStr.Len()-1) == TMP_STR_END )
{
RemoveEntry( nCount - 1 );
}
}
aTmpStr = TMP_STR_BEGIN;
aTmpStr += aString;
aTmpStr += TMP_STR_END;
sal_uInt16 nPos = InsertEntry( aColor, aTmpStr );
SelectEntryPos( nPos );
}
}
else
SetNoSelection();
}
......
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