summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Fischer <af@apache.org>2013-04-11 12:29:52 +0000
committerMichael Meeks <michael.meeks@suse.com>2013-05-20 11:33:11 +0100
commit02e5e18bb46956d743faf21f62066b56f6cedf7e (patch)
tree8e6633f73b1b7030ba8cf45dcb1f4ac0ca3e7ae5
parent61d4384876cfda33a73bfbda61cfc81f3e57ac0a (diff)
Resolves: #i122027# Fixed crash when processing .uno:NumberType command
Reported by: Ariel Constenla-Haile Patch by: Ariel Constenla-Haile Review by: Andre Fischer (cherry picked from commit 6a56f5db1d478297aedd3395a882fc2dcce80e82) Change-Id: Idbcb46b617fc2d2e2d587cdd74226380a2019303
-rw-r--r--sc/source/ui/view/formatsh.cxx76
1 files changed, 40 insertions, 36 deletions
diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx
index 398075107cd2..291681031ca1 100644
--- a/sc/source/ui/view/formatsh.cxx
+++ b/sc/source/ui/view/formatsh.cxx
@@ -1131,45 +1131,49 @@ void ScFormatShell::ExecuteNumFormat( SfxRequest& rReq )
break;
case SID_NUMBER_TYPE_FORMAT:
+ if ( pReqArgs )
{
- SfxInt16Item aFormatItem((const SfxInt16Item&)rReq.GetArgs()->Get(nSlot));
- sal_uInt16 nFormat = aFormatItem.GetValue();
- switch(nFormat)
+ const SfxPoolItem* pItem;
+ if ( pReqArgs->GetItemState( nSlot, sal_True, &pItem ) == SFX_ITEM_SET )
{
- 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:
- ;
+ 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();
}
- rReq.Done();
}
break;