diff options
author | Andre Fischer <af@apache.org> | 2013-04-11 12:29:52 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2013-05-20 11:33:11 +0100 |
commit | 02e5e18bb46956d743faf21f62066b56f6cedf7e (patch) | |
tree | 8e6633f73b1b7030ba8cf45dcb1f4ac0ca3e7ae5 | |
parent | 61d4384876cfda33a73bfbda61cfc81f3e57ac0a (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.cxx | 76 |
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; |