[PATCH libreoffice-4-0] fix fdo#63659 restore handling of ZOOM MID, MID_VALUESET & M...
Noel Power (via Code Review)
gerrit at gerrit.libreoffice.org
Thu Apr 18 06:03:47 PDT 2013
Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/3458
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/58/3458/1
fix fdo#63659 restore handling of ZOOM MID, MID_VALUESET & MID_TYPE sub parmas
Change-Id: I01eff3bb8b194e1437a263e527cb8e6d2defa4de
---
M sfx2/source/doc/zoomitem.cxx
1 file changed, 84 insertions(+), 40 deletions(-)
diff --git a/sfx2/source/doc/zoomitem.cxx b/sfx2/source/doc/zoomitem.cxx
index 888272a..09b2ae7 100644
--- a/sfx2/source/doc/zoomitem.cxx
+++ b/sfx2/source/doc/zoomitem.cxx
@@ -23,7 +23,7 @@
#include <sfx2/zoomitem.hxx>
#include <com/sun/star/uno/Sequence.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
-
+#include "sfx.hrc"
// -----------------------------------------------------------------------
TYPEINIT1_FACTORY(SvxZoomItem,SfxUInt16Item, new SvxZoomItem);
@@ -107,19 +107,28 @@
bool SvxZoomItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
{
-// sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
nMemberId &= ~CONVERT_TWIPS;
+ switch( nMemberId )
+ {
+ case 0:
+ {
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aSeq( ZOOM_PARAMS );
+ aSeq[0].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_VALUE ));
+ aSeq[0].Value <<= sal_Int32( GetValue() );
+ aSeq[1].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_VALUESET ));
+ aSeq[1].Value <<= sal_Int16( nValueSet );
+ aSeq[2].Name = OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_TYPE ));
+ aSeq[2].Value <<= sal_Int16( eType );
+ rVal <<= aSeq;
+ }
- assert(nMemberId == 0);
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aSeq( ZOOM_PARAMS );
- aSeq[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_VALUE ));
- aSeq[0].Value <<= sal_Int32( GetValue() );
- aSeq[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_VALUESET ));
- aSeq[1].Value <<= sal_Int16( nValueSet );
- aSeq[2].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ZOOM_PARAM_TYPE ));
- aSeq[2].Value <<= sal_Int16( eType );
- rVal <<= aSeq;
+ case MID_VALUE: rVal <<= (sal_Int32) GetValue(); break;
+ case MID_VALUESET: rVal <<= (sal_Int16) nValueSet; break;
+ case MID_TYPE: rVal <<= (sal_Int16) eType; break;
+ default:
+ OSL_FAIL("sfx2::SvxZoomItem::QueryValue(), Wrong MemberId!");
+ return false;
+ }
return true;
}
@@ -127,45 +136,80 @@
bool SvxZoomItem::PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
{
nMemberId &= ~CONVERT_TWIPS;
- assert(nMemberId == 0);
-
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aSeq;
- if (( rVal >>= aSeq ) && ( aSeq.getLength() == ZOOM_PARAMS ))
+ switch( nMemberId )
{
- sal_Int32 nValueTmp( 0 );
- sal_Int16 nValueSetTmp( 0 );
- sal_Int16 nTypeTmp( 0 );
- sal_Bool bAllConverted( sal_True );
- sal_Int16 nConvertedCount( 0 );
- for ( sal_Int32 i = 0; i < aSeq.getLength(); i++ )
+ case 0:
{
- if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_VALUE ))
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > aSeq;
+ if (( rVal >>= aSeq ) && ( aSeq.getLength() == ZOOM_PARAMS ))
{
- bAllConverted &= ( aSeq[i].Value >>= nValueTmp );
- ++nConvertedCount;
+ sal_Int32 nValueTmp( 0 );
+ sal_Int16 nValueSetTmp( 0 );
+ sal_Int16 nTypeTmp( 0 );
+ sal_Bool bAllConverted( sal_True );
+ sal_Int16 nConvertedCount( 0 );
+ for ( sal_Int32 i = 0; i < aSeq.getLength(); i++ )
+ {
+ if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_VALUE ))
+ {
+ bAllConverted &= ( aSeq[i].Value >>= nValueTmp );
+ ++nConvertedCount;
+ }
+ else if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_VALUESET ))
+ {
+ bAllConverted &= ( aSeq[i].Value >>= nValueSetTmp );
+ ++nConvertedCount;
+ }
+ else if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_TYPE ))
+ {
+ bAllConverted &= ( aSeq[i].Value >>= nTypeTmp );
+ ++nConvertedCount;
+ }
+ }
+
+ if ( bAllConverted && nConvertedCount == ZOOM_PARAMS )
+ {
+ SetValue( (sal_uInt16)nValueTmp );
+ nValueSet = nValueSetTmp;
+ eType = SvxZoomType( nTypeTmp );
+ return true;
+ }
}
- else if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_VALUESET ))
+ return false;
+ }
+ case MID_VALUE:
+ {
+ sal_Int32 nVal = 0;
+ if ( rVal >>= nVal )
{
- bAllConverted &= ( aSeq[i].Value >>= nValueSetTmp );
- ++nConvertedCount;
+ SetValue( (sal_uInt16)nVal );
+ return true;
}
- else if ( aSeq[i].Name.equalsAscii( ZOOM_PARAM_TYPE ))
- {
- bAllConverted &= ( aSeq[i].Value >>= nTypeTmp );
- ++nConvertedCount;
- }
+ else
+ return false;
}
- if ( bAllConverted && nConvertedCount == ZOOM_PARAMS )
+ case MID_VALUESET:
+ case MID_TYPE:
{
- SetValue( (sal_uInt16)nValueTmp );
- nValueSet = nValueSetTmp;
- eType = SvxZoomType( nTypeTmp );
- return true;
+ sal_Int16 nVal = sal_Int16();
+ if ( rVal >>= nVal )
+ {
+ if ( nMemberId == MID_VALUESET )
+ nValueSet = (sal_Int16) nVal;
+ else if ( nMemberId == MID_TYPE )
+ eType = SvxZoomType( (sal_Int16) nVal );
+ return true;
+ }
+ else
+ return false;
}
+
+ default:
+ OSL_FAIL("sfx2::SvxZoomItem::PutValue(), Wrong MemberId!");
+ return false;
}
-
- return false;
+ return true;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
--
To view, visit https://gerrit.libreoffice.org/3458
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I01eff3bb8b194e1437a263e527cb8e6d2defa4de
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Noel Power <noel.power at suse.com>
More information about the LibreOffice
mailing list