[Libreoffice-commits] core.git: sd/source
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Tue Oct 13 19:57:55 UTC 2020
sd/source/ui/inc/DrawViewShell.hxx | 3 +
sd/source/ui/view/drviews7.cxx | 70 +++++++++++++++++++++----------------
2 files changed, 43 insertions(+), 30 deletions(-)
New commits:
commit eb3999a8cc75a42edbb8a81ecbff14a4bd9965ed
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Oct 13 19:25:57 2020 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Tue Oct 13 21:57:19 2020 +0200
split out detection of should disable EditHyperlink as standalone function
Change-Id: I69c4d93b402a33d5ef3b55a7fc0a053332eb0196
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104253
Tested-by: Caolán McNamara <caolanm at redhat.com>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx
index 5213c25f4c91..8d1820ae3409 100644
--- a/sd/source/ui/inc/DrawViewShell.hxx
+++ b/sd/source/ui/inc/DrawViewShell.hxx
@@ -494,6 +494,9 @@ private:
void ConfigureAppBackgroundColor( svtools::ColorConfig* pColorConfig = nullptr );
+ /// return true if "Edit Hyperlink" in context menu should be disabled
+ bool ShouldDisableEditHyperlink();
+
// The colour of the area behind the slide (used to be called "Wiese")
Color mnAppBackgroundColor;
};
diff --git a/sd/source/ui/view/drviews7.cxx b/sd/source/ui/view/drviews7.cxx
index 9f7dd8d417d3..572d221c7f19 100644
--- a/sd/source/ui/view/drviews7.cxx
+++ b/sd/source/ui/view/drviews7.cxx
@@ -284,6 +284,45 @@ void DrawViewShell::GetMarginProperties( SfxItemSet &rSet )
}
}
+bool DrawViewShell::ShouldDisableEditHyperlink()
+{
+ if (!mpDrawView)
+ return true;
+ if (!mpDrawView->AreObjectsMarked())
+ return true;
+ if (mpDrawView->GetMarkedObjectList().GetMarkCount() != 1)
+ return true;
+
+ bool bDisableEditHyperlink = true;
+ if( mpDrawView->IsTextEdit() )
+ {
+ if (URLFieldHelper::IsCursorAtURLField(mpDrawView->GetTextEditOutlinerView()))
+ bDisableEditHyperlink = false;
+ }
+ else
+ {
+ SdrUnoObj* pUnoCtrl = dynamic_cast<SdrUnoObj*>( mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj() );
+
+ if ( pUnoCtrl && SdrInventor::FmForm == pUnoCtrl->GetObjInventor() )
+ {
+ const uno::Reference< awt::XControlModel >& xControlModel( pUnoCtrl->GetUnoControlModel() );
+ if( xControlModel.is() )
+ {
+ uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY );
+ if( xPropSet.is() )
+ {
+ uno::Reference< beans::XPropertySetInfo > xPropInfo( xPropSet->getPropertySetInfo() );
+ if( xPropInfo.is() && xPropInfo->hasPropertyByName( "TargetURL") )
+ {
+ bDisableEditHyperlink = false;
+ }
+ }
+ }
+ }
+ }
+ return bDisableEditHyperlink;
+}
+
void DrawViewShell::GetMenuState( SfxItemSet &rSet )
{
if (mpDrawView == nullptr)
@@ -1443,36 +1482,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
// Menuoption: Edit->Hyperlink
// Disable, if there is no hyperlink
- bool bDisableEditHyperlink = true;
- if( mpDrawView->AreObjectsMarked() && ( mpDrawView->GetMarkedObjectList().GetMarkCount() == 1 ) )
- {
- if( mpDrawView->IsTextEdit() )
- {
- if (URLFieldHelper::IsCursorAtURLField(mpDrawView->GetTextEditOutlinerView()))
- bDisableEditHyperlink = false;
- }
- else
- {
- SdrUnoObj* pUnoCtrl = dynamic_cast<SdrUnoObj*>( mpDrawView->GetMarkedObjectList().GetMark(0)->GetMarkedSdrObj() );
-
- if ( pUnoCtrl && SdrInventor::FmForm == pUnoCtrl->GetObjInventor() )
- {
- const uno::Reference< awt::XControlModel >& xControlModel( pUnoCtrl->GetUnoControlModel() );
- if( xControlModel.is() )
- {
- uno::Reference< beans::XPropertySet > xPropSet( xControlModel, uno::UNO_QUERY );
- if( xPropSet.is() )
- {
- uno::Reference< beans::XPropertySetInfo > xPropInfo( xPropSet->getPropertySetInfo() );
- if( xPropInfo.is() && xPropInfo->hasPropertyByName( "TargetURL") )
- {
- bDisableEditHyperlink = false;
- }
- }
- }
- }
- }
- }
+ bool bDisableEditHyperlink = ShouldDisableEditHyperlink();
//highlight selected custom shape
{
More information about the Libreoffice-commits
mailing list