diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2021-01-27 14:34:19 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2021-02-09 10:56:23 +0100 |
commit | 6dc466e02451c3d59f535050763413b63aca675a (patch) | |
tree | a991b72ca8a15e7ca96b708488479e8f6beae951 /svx | |
parent | 2555441f3f694af11d0d7b220b12ae25f43a6a5a (diff) |
Introduce Fontwork context
Change-Id: I61512e4da13514d3e5a199ccb46468ba199b808f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110023
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/sidebar/SelectionAnalyzer.cxx | 9 | ||||
-rw-r--r-- | svx/source/toolbars/fontworkbar.cxx | 25 |
2 files changed, 26 insertions, 8 deletions
diff --git a/svx/source/sidebar/SelectionAnalyzer.cxx b/svx/source/sidebar/SelectionAnalyzer.cxx index ea4fb5db2d7f..1400c005f22a 100644 --- a/svx/source/sidebar/SelectionAnalyzer.cxx +++ b/svx/source/sidebar/SelectionAnalyzer.cxx @@ -24,6 +24,7 @@ #include <svx/svdpage.hxx> #include <svx/fmglob.hxx> #include <svx/globl3d.hxx> +#include <svx/fontworkbar.hxx> using vcl::EnumContext; @@ -48,6 +49,10 @@ EnumContext::Context SelectionAnalyzer::GetContextForSelection_SC (const SdrMark { eContext = EnumContext::Context::DrawText; } + else if (svx::checkForFontWork(pObj)) + { + eContext = EnumContext::Context::DrawFontwork; + } else { const SdrInventor nInv = pObj->GetObjInventor(); @@ -135,6 +140,10 @@ EnumContext::Context SelectionAnalyzer::GetContextForSelection_SD ( else eContext = EnumContext::Context::DrawText; } + else if (svx::checkForFontWork(pObj)) + { + eContext = EnumContext::Context::DrawFontwork; + } else { const SdrInventor nInv = pObj->GetObjInventor(); diff --git a/svx/source/toolbars/fontworkbar.cxx b/svx/source/toolbars/fontworkbar.cxx index 3b6144c2e229..1d8e0728f0e2 100644 --- a/svx/source/toolbars/fontworkbar.cxx +++ b/svx/source/toolbars/fontworkbar.cxx @@ -208,12 +208,27 @@ FontworkBar::~FontworkBar() } namespace svx { +bool checkForFontWork( SdrObject* pObj ) +{ + static const char sTextPath[] = "TextPath"; + bool bFound = false; + + if( dynamic_cast<const SdrObjCustomShape*>( pObj) != nullptr ) + { + const SdrCustomShapeGeometryItem aGeometryItem( pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ) ); + const Any* pAny = aGeometryItem.GetPropertyValueByName( sTextPath, sTextPath ); + if( pAny ) + *pAny >>= bFound; + } + + return bFound; +} + bool checkForSelectedFontWork( SdrView const * pSdrView, sal_uInt32& nCheckStatus ) { if ( nCheckStatus & 2 ) return ( nCheckStatus & 1 ) != 0; - static const char sTextPath[] = "TextPath"; const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList(); const size_t nCount = rMarkList.GetMarkCount(); @@ -221,13 +236,7 @@ bool checkForSelectedFontWork( SdrView const * pSdrView, sal_uInt32& nCheckStatu for(size_t i=0; (i<nCount) && !bFound ; ++i) { SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj(); - if( dynamic_cast<const SdrObjCustomShape*>( pObj) != nullptr ) - { - const SdrCustomShapeGeometryItem aGeometryItem( pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY ) ); - const Any* pAny = aGeometryItem.GetPropertyValueByName( sTextPath, sTextPath ); - if( pAny ) - *pAny >>= bFound; - } + bFound = checkForFontWork(pObj); } if ( bFound ) nCheckStatus |= 1; |