summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2021-01-27 14:34:19 +0100
committerJan Holesovsky <kendy@collabora.com>2021-02-09 10:56:23 +0100
commit6dc466e02451c3d59f535050763413b63aca675a (patch)
treea991b72ca8a15e7ca96b708488479e8f6beae951 /svx
parent2555441f3f694af11d0d7b220b12ae25f43a6a5a (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.cxx9
-rw-r--r--svx/source/toolbars/fontworkbar.cxx25
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;