summaryrefslogtreecommitdiff
path: root/sd/source/ui/func/fucopy.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/func/fucopy.cxx')
-rw-r--r--sd/source/ui/func/fucopy.cxx84
1 files changed, 41 insertions, 43 deletions
diff --git a/sd/source/ui/func/fucopy.cxx b/sd/source/ui/func/fucopy.cxx
index c291e3468349..99e5f7b87a3b 100644
--- a/sd/source/ui/func/fucopy.cxx
+++ b/sd/source/ui/func/fucopy.cxx
@@ -74,24 +74,22 @@ void FuCopy::DoExecute( SfxRequest& rReq )
if( !pArgs )
{
- SfxItemSet aSet( mpViewShell->GetPool(),
- svl::Items<ATTR_COPY_START, ATTR_COPY_END>{} );
+ SfxItemSetFixed<ATTR_COPY_START, ATTR_COPY_END> aSet( mpViewShell->GetPool() );
// indicate color attribute
SfxItemSet aAttr( mpDoc->GetPool() );
mpView->GetAttributes( aAttr );
- const SfxPoolItem* pPoolItem = nullptr;
- if( SfxItemState::SET == aAttr.GetItemState( XATTR_FILLSTYLE, true, &pPoolItem ) )
+ if( const XFillStyleItem* pFillStyleItem = aAttr.GetItemIfSet( XATTR_FILLSTYLE ) )
{
- drawing::FillStyle eStyle = static_cast<const XFillStyleItem*>(pPoolItem)->GetValue();
+ drawing::FillStyle eStyle = pFillStyleItem->GetValue();
+ const XFillColorItem* pFillColorItem;
if( eStyle == drawing::FillStyle_SOLID &&
- SfxItemState::SET == aAttr.GetItemState( XATTR_FILLCOLOR, true, &pPoolItem ) )
+ (pFillColorItem = aAttr.GetItemIfSet( XATTR_FILLCOLOR )) )
{
- const XFillColorItem* pItem = static_cast<const XFillColorItem*>(pPoolItem);
- XColorItem aXColorItem( ATTR_COPY_START_COLOR, pItem->GetName(),
- pItem->GetColorValue() );
+ XColorItem aXColorItem( ATTR_COPY_START_COLOR, pFillColorItem->GetName(),
+ pFillColorItem->GetColorValue() );
aSet.Put( aXColorItem );
}
@@ -125,40 +123,40 @@ void FuCopy::DoExecute( SfxRequest& rReq )
sal_uInt16 nNumber = 0;
Color aStartColor, aEndColor;
bool bColor = false;
- const SfxPoolItem* pPoolItem = nullptr;
-
- // Count
- if( pArgs && SfxItemState::SET == pArgs->GetItemState( ATTR_COPY_NUMBER, true, &pPoolItem ) )
- nNumber = static_cast<const SfxUInt16Item*>( pPoolItem )->GetValue();
-
- // translation
- if( pArgs && SfxItemState::SET == pArgs->GetItemState( ATTR_COPY_MOVE_X, true, &pPoolItem ) )
- lSizeX = static_cast<const SfxInt32Item*>( pPoolItem )->GetValue();
- if( pArgs && SfxItemState::SET == pArgs->GetItemState( ATTR_COPY_MOVE_Y, true, &pPoolItem ) )
- lSizeY = static_cast<const SfxInt32Item*>( pPoolItem )->GetValue();
- if( pArgs && SfxItemState::SET == pArgs->GetItemState( ATTR_COPY_ANGLE, true, &pPoolItem ) )
- lAngle = static_cast<const SdrAngleItem*>( pPoolItem )->GetValue();
-
- // scale
- if( pArgs && SfxItemState::SET == pArgs->GetItemState( ATTR_COPY_WIDTH, true, &pPoolItem ) )
- lWidth = static_cast<const SfxInt32Item*>( pPoolItem )->GetValue();
- if( pArgs && SfxItemState::SET == pArgs->GetItemState( ATTR_COPY_HEIGHT, true, &pPoolItem ) )
- lHeight = static_cast<const SfxInt32Item*>( pPoolItem )->GetValue();
-
- // start/end color
- if( pArgs && SfxItemState::SET == pArgs->GetItemState( ATTR_COPY_START_COLOR, true, &pPoolItem ) )
- {
- aStartColor = static_cast<const XColorItem*>( pPoolItem )->GetColorValue();
- bColor = true;
- }
- if( pArgs && SfxItemState::SET == pArgs->GetItemState( ATTR_COPY_END_COLOR, true, &pPoolItem ) )
+
+ if (pArgs)
{
- aEndColor = static_cast<const XColorItem*>( pPoolItem )->GetColorValue();
- if( aStartColor == aEndColor )
- bColor = false;
+ // Count
+ if( const SfxUInt16Item* pPoolItem = pArgs->GetItemIfSet( ATTR_COPY_NUMBER ) )
+ nNumber = pPoolItem->GetValue();
+
+ // translation
+ if( const SfxInt32Item* pPoolItem = pArgs->GetItemIfSet( ATTR_COPY_MOVE_X ) )
+ lSizeX = pPoolItem->GetValue();
+ if( const SfxInt32Item* pPoolItem = pArgs->GetItemIfSet( ATTR_COPY_MOVE_Y ) )
+ lSizeY = pPoolItem->GetValue();
+ if( const SdrAngleItem* pPoolItem = pArgs->GetItemIfSet( ATTR_COPY_ANGLE ) )
+ lAngle = pPoolItem->GetValue();
+
+ // scale
+ if( const SfxInt32Item* pPoolItem = pArgs->GetItemIfSet( ATTR_COPY_WIDTH ) )
+ lWidth = pPoolItem->GetValue();
+ if( const SfxInt32Item* pPoolItem = pArgs->GetItemIfSet( ATTR_COPY_HEIGHT ) )
+ lHeight = pPoolItem->GetValue();
+
+ // start/end color
+ if( const XColorItem* pPoolItem = pArgs->GetItemIfSet( ATTR_COPY_START_COLOR ) )
+ {
+ aStartColor = pPoolItem->GetColorValue();
+ bColor = true;
+ }
+ if( const XColorItem* pPoolItem = pArgs->GetItemIfSet( ATTR_COPY_END_COLOR ) )
+ {
+ aEndColor = pPoolItem->GetColorValue();
+ if( aStartColor == aEndColor )
+ bColor = false;
+ }
}
- else
- bColor = false;
// remove handles
//HMHmpView->HideMarkHdl();
@@ -204,7 +202,7 @@ void FuCopy::DoExecute( SfxRequest& rReq )
if( ( 1 == i ) && bColor )
{
- SfxItemSet aNewSet( mpViewShell->GetPool(), svl::Items<XATTR_FILLSTYLE, XATTR_FILLCOLOR>{} );
+ SfxItemSetFixed<XATTR_FILLSTYLE, XATTR_FILLCOLOR> aNewSet( mpViewShell->GetPool() );
aNewSet.Put( XFillStyleItem( drawing::FillStyle_SOLID ) );
aNewSet.Put( XFillColorItem( OUString(), aStartColor ) );
mpView->SetAttributes( aNewSet );
@@ -266,7 +264,7 @@ void FuCopy::DoExecute( SfxRequest& rReq )
sal_uInt8 nGreen = aStartColor.GetGreen() + static_cast<sal_uInt8>( ( static_cast<::tools::Long>(aEndColor.GetGreen()) - static_cast<::tools::Long>(aStartColor.GetGreen()) ) * static_cast<::tools::Long>(i) / static_cast<::tools::Long>(nNumber) );
sal_uInt8 nBlue = aStartColor.GetBlue() + static_cast<sal_uInt8>( ( static_cast<::tools::Long>(aEndColor.GetBlue()) - static_cast<::tools::Long>(aStartColor.GetBlue()) ) * static_cast<::tools::Long>(i) / static_cast<::tools::Long>(nNumber) );
Color aNewColor( nRed, nGreen, nBlue );
- SfxItemSet aNewSet( mpViewShell->GetPool(), svl::Items<XATTR_FILLSTYLE, XATTR_FILLCOLOR>{} );
+ SfxItemSetFixed<XATTR_FILLSTYLE, XATTR_FILLCOLOR> aNewSet( mpViewShell->GetPool() );
aNewSet.Put( XFillStyleItem( drawing::FillStyle_SOLID ) );
aNewSet.Put( XFillColorItem( OUString(), aNewColor ) );
mpView->SetAttributes( aNewSet );