From 0994eb59a1bd1a993c7b6650570454ecad6077b0 Mon Sep 17 00:00:00 2001 From: Armin Le Grand Date: Tue, 9 Apr 2013 11:22:48 +0000 Subject: Resolves: #i121538# Disable FontWork dialog entries (slots)... when CustomShapes are selected to avoid unwanted FontWork editing on these shapes (cherry picked from commit c73f0e910fcf3a940c24a639dba9b4ced2057399) Conflicts: sw/source/ui/shells/drawsh.cxx sw/source/ui/shells/drwtxtsh.cxx Change-Id: I6b702512c48e7b2376874b2e8184563d12d5c6e8 --- sw/source/ui/shells/drawsh.cxx | 34 +++++++++++++++++++++------------- sw/source/ui/shells/drwtxtsh.cxx | 39 +++++++++++++++++++++++---------------- 2 files changed, 44 insertions(+), 29 deletions(-) (limited to 'sw') diff --git a/sw/source/ui/shells/drawsh.cxx b/sw/source/ui/shells/drawsh.cxx index a7627c61ba52..4694ec22972f 100644 --- a/sw/source/ui/shells/drawsh.cxx +++ b/sw/source/ui/shells/drawsh.cxx @@ -42,9 +42,9 @@ #include #include +#include #include #include -#include #include "swundo.hxx" #include "wrtsh.hxx" @@ -442,19 +442,27 @@ void SwDrawShell::GetFormTextState(SfxItemSet& rSet) if ( rMarkList.GetMarkCount() == 1 ) pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); - if ( pObj == NULL || !pObj->ISA(SdrTextObj) || - !((SdrTextObj*) pObj)->HasText() ) + const SdrTextObj* pTextObj = dynamic_cast< const SdrTextObj* >(pObj); + const bool bDeactivate( + !pObj || + !pTextObj || + !pTextObj->HasText() || + dynamic_cast< const SdrObjCustomShape* >(pObj)); // #121538# no FontWork for CustomShapes + + if(bDeactivate) { -#define XATTR_ANZ 12 - static const sal_uInt16 nXAttr[ XATTR_ANZ ] = - { - XATTR_FORMTXTSTYLE, XATTR_FORMTXTADJUST, XATTR_FORMTXTDISTANCE, - XATTR_FORMTXTSTART, XATTR_FORMTXTMIRROR, XATTR_FORMTXTSTDFORM, - XATTR_FORMTXTHIDEFORM, XATTR_FORMTXTOUTLINE, XATTR_FORMTXTSHADOW, - XATTR_FORMTXTSHDWCOLOR, XATTR_FORMTXTSHDWXVAL, XATTR_FORMTXTSHDWYVAL - }; - for( sal_uInt16 i = 0; i < XATTR_ANZ; ) - rSet.DisableItem( nXAttr[ i++ ] ); + rSet.DisableItem(XATTR_FORMTXTSTYLE); + rSet.DisableItem(XATTR_FORMTXTADJUST); + rSet.DisableItem(XATTR_FORMTXTDISTANCE); + rSet.DisableItem(XATTR_FORMTXTSTART); + rSet.DisableItem(XATTR_FORMTXTMIRROR); + rSet.DisableItem(XATTR_FORMTXTSTDFORM); + rSet.DisableItem(XATTR_FORMTXTHIDEFORM); + rSet.DisableItem(XATTR_FORMTXTOUTLINE); + rSet.DisableItem(XATTR_FORMTXTSHADOW); + rSet.DisableItem(XATTR_FORMTXTSHDWCOLOR); + rSet.DisableItem(XATTR_FORMTXTSHDWXVAL); + rSet.DisableItem(XATTR_FORMTXTSHDWYVAL); } else { diff --git a/sw/source/ui/shells/drwtxtsh.cxx b/sw/source/ui/shells/drwtxtsh.cxx index 505d7875da62..f0c40462df47 100644 --- a/sw/source/ui/shells/drwtxtsh.cxx +++ b/sw/source/ui/shells/drwtxtsh.cxx @@ -68,13 +68,11 @@ #include #include #include - -#include -#include #include - +#include +#include +#include #include - #include "swabstdlg.hxx" #include "misc.hrc" @@ -267,18 +265,27 @@ void SwDrawTextShell::GetFormTextState(SfxItemSet& rSet) if ( rMarkList.GetMarkCount() == 1 ) pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); - if ( pObj == NULL || !pObj->ISA(SdrTextObj) || - !((SdrTextObj*) pObj)->HasText() ) + const SdrTextObj* pTextObj = dynamic_cast< const SdrTextObj* >(pObj); + const bool bDeactivate( + !pObj || + !pTextObj || + !pTextObj->HasText() || + dynamic_cast< const SdrObjCustomShape* >(pObj)); // #121538# no FontWork for CustomShapes + + if (bDeactivate) { -#define XATTR_ANZ 12 - static const sal_uInt16 nXAttr[ XATTR_ANZ ] = - { XATTR_FORMTXTSTYLE, XATTR_FORMTXTADJUST, XATTR_FORMTXTDISTANCE, - XATTR_FORMTXTSTART, XATTR_FORMTXTMIRROR, XATTR_FORMTXTSTDFORM, - XATTR_FORMTXTHIDEFORM, XATTR_FORMTXTOUTLINE, XATTR_FORMTXTSHADOW, - XATTR_FORMTXTSHDWCOLOR, XATTR_FORMTXTSHDWXVAL, XATTR_FORMTXTSHDWYVAL - }; - for( sal_uInt16 i = 0; i < XATTR_ANZ; ) - rSet.DisableItem( nXAttr[ i++ ] ); + rSet.DisableItem(XATTR_FORMTXTSTYLE); + rSet.DisableItem(XATTR_FORMTXTADJUST); + rSet.DisableItem(XATTR_FORMTXTDISTANCE); + rSet.DisableItem(XATTR_FORMTXTSTART); + rSet.DisableItem(XATTR_FORMTXTMIRROR); + rSet.DisableItem(XATTR_FORMTXTSTDFORM); + rSet.DisableItem(XATTR_FORMTXTHIDEFORM); + rSet.DisableItem(XATTR_FORMTXTOUTLINE); + rSet.DisableItem(XATTR_FORMTXTSHADOW); + rSet.DisableItem(XATTR_FORMTXTSHDWCOLOR); + rSet.DisableItem(XATTR_FORMTXTSHDWXVAL); + rSet.DisableItem(XATTR_FORMTXTSHDWYVAL); } else { -- cgit