Author: af
Date: Thu Apr 11 13:29:52 2013
New Revision: 1466881
URL: http://svn.apache.org/r1466881
Log:
122027: Fixed crash when processing .uno:NumberType command.
Reported by: Ariel Constenla-Haile
Patch by: Ariel Constenla-Haile
Review by: Andre Fischer
Modified:
openoffice/trunk/main/sc/source/ui/view/formatsh.cxx
Modified: openoffice/trunk/main/sc/source/ui/view/formatsh.cxx
URL:
http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/formatsh.cxx?rev=1466881&r1=1466880&r2=1466881&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/formatsh.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/formatsh.cxx Thu Apr 11 13:29:52
2013
@@ -1105,47 +1105,51 @@ void ScFormatShell::ExecuteNumFormat( Sf
break;
case SID_NUMBER_TYPE_FORMAT:
- {
- SfxInt16Item aFormatItem((const
SfxInt16Item&)rReq.GetArgs()->Get(nSlot));
- sal_uInt16 nFormat = aFormatItem.GetValue();
- switch(nFormat)
- {
- case 0:
- pTabViewShell->SetNumberFormat(
NUMBERFORMAT_NUMBER); //Modify
- break;
- case 1:
- pTabViewShell->SetNumberFormat(
NUMBERFORMAT_NUMBER, 2 ); //Modify
- break;
- case 2:
- pTabViewShell->SetNumberFormat(
NUMBERFORMAT_PERCENT );
- break;
- case 3:
- pTabViewShell->SetNumberFormat(
NUMBERFORMAT_CURRENCY );
- break;
- case 4:
- pTabViewShell->SetNumberFormat(
NUMBERFORMAT_DATE );
- break;
- case 5:
- pTabViewShell->SetNumberFormat(
NUMBERFORMAT_TIME );
- break;
- case 6:
- pTabViewShell->SetNumberFormat(
NUMBERFORMAT_SCIENTIFIC );
- break;
- case 7:
- pTabViewShell->SetNumberFormat(
NUMBERFORMAT_FRACTION );
- break;
- case 8:
- pTabViewShell->SetNumberFormat(
NUMBERFORMAT_LOGICAL );
- break;
- case 9:
- pTabViewShell->SetNumberFormat(
NUMBERFORMAT_TEXT );
- break;
- default:
- ;
- }
- rReq.Done();
- }
- break;
+ if ( pReqArgs )
+ {
+ const SfxPoolItem* pItem;
+ if ( pReqArgs->GetItemState( nSlot, sal_True, &pItem ) ==
SFX_ITEM_SET )
+ {
+ sal_uInt16 nFormat = ((SfxInt16Item *)pItem)->GetValue();
+ switch(nFormat)
+ {
+ case 0:
+ pTabViewShell->SetNumberFormat( NUMBERFORMAT_NUMBER);
//Modify
+ break;
+ case 1:
+ pTabViewShell->SetNumberFormat( NUMBERFORMAT_NUMBER, 2
); //Modify
+ break;
+ case 2:
+ pTabViewShell->SetNumberFormat( NUMBERFORMAT_PERCENT );
+ break;
+ case 3:
+ pTabViewShell->SetNumberFormat( NUMBERFORMAT_CURRENCY
);
+ break;
+ case 4:
+ pTabViewShell->SetNumberFormat( NUMBERFORMAT_DATE );
+ break;
+ case 5:
+ pTabViewShell->SetNumberFormat( NUMBERFORMAT_TIME );
+ break;
+ case 6:
+ pTabViewShell->SetNumberFormat(
NUMBERFORMAT_SCIENTIFIC );
+ break;
+ case 7:
+ pTabViewShell->SetNumberFormat( NUMBERFORMAT_FRACTION
);
+ break;
+ case 8:
+ pTabViewShell->SetNumberFormat( NUMBERFORMAT_LOGICAL );
+ break;
+ case 9:
+ pTabViewShell->SetNumberFormat( NUMBERFORMAT_TEXT );
+ break;
+ default:
+ ;
+ }
+ rReq.Done();
+ }
+ }
+ break;
default:
DBG_ERROR("falscher Slot bei ExecuteEdit");