[Libreoffice-commits] core.git: include/svx include/xmloff oox/source sc/sdi sd/qa sd/sdi sd/source svx/sdi svx/source svx/uiconfig sw/sdi sw/source xmloff/source

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Wed May 6 15:31:06 UTC 2020


 include/svx/strings.hrc                       |    1 
 include/svx/svddef.hxx                        |    3 +-
 include/svx/svxids.hrc                        |    1 
 include/svx/unoshprp.hxx                      |    3 +-
 include/xmloff/xmltoken.hxx                   |    1 
 oox/source/drawingml/shape.cxx                |    1 
 oox/source/export/drawingml.cxx               |    4 ++-
 sc/sdi/drawsh.sdi                             |    1 
 sd/qa/unit/export-tests-ooxml2.cxx            |    3 ++
 sd/qa/unit/import-tests.cxx                   |    3 ++
 sd/sdi/_drvwsh.sdi                            |    5 ++++
 sd/source/ui/view/drviews2.cxx                |    1 
 sd/source/ui/view/drviewsf.cxx                |    1 
 svx/sdi/svx.sdi                               |   17 ++++++++++++++
 svx/source/sidebar/glow/GlowPropertyPanel.cxx |   31 ++++++++++++++++++++++++++
 svx/source/sidebar/glow/GlowPropertyPanel.hxx |    4 +++
 svx/source/svdraw/svdattr.cxx                 |    3 ++
 svx/uiconfig/ui/sidebarglow.ui                |   31 ++++++++++++++++++++++++++
 sw/sdi/drawsh.sdi                             |    8 ++++++
 sw/source/uibase/shells/slotadd.cxx           |    1 
 xmloff/source/core/xmltoken.cxx               |    1 
 xmloff/source/draw/sdpropls.cxx               |    1 
 xmloff/source/token/tokens.txt                |    1 
 23 files changed, 123 insertions(+), 3 deletions(-)

New commits:
commit c1c67cca7de5714635bef88de943b6c2e519eddf
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Wed May 6 16:13:48 2020 +0300
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Wed May 6 17:30:27 2020 +0200

    tdf#101181: support for transparency attribute of glow effect
    
    Read/write support for ODF and OOXML (in ODF, loext:glow-transparency
    attribute of style:graphic-properties has been added).
    
    Added UI on glow sidebar panel.
    
    Not used in actual painting yet.
    
    Change-Id: I21b25d9c52c8611cd796f056374377ebf13cc2f6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93565
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
index 7a1f97edbea9..472a35a487e8 100644
--- a/include/svx/strings.hrc
+++ b/include/svx/strings.hrc
@@ -515,6 +515,7 @@
 #define SIP_SA_GLOW                                         NC_("SIP_SA_GLOW", "Glow effect")
 #define SIP_SA_GLOW_RAD                                     NC_("SIP_SA_GLOW_RAD", "Radius of glow effect")
 #define SIP_SA_GLOW_COLOR                                   NC_("SIP_SA_GLOW_COLOR", "Color of glow effect")
+#define SIP_SA_GLOW_TRANSPARENCY                            NC_("SIP_SA_GLOW_TRANSPARENCY", "Transparency of glow effect")
 #define STR_ObjNameSingulMEDIA                              NC_("STR_ObjNameSingulMEDIA", "Media object")
 #define STR_ObjNamePluralMEDIA                              NC_("STR_ObjNamePluralMEDIA", "Media objects")
 // drawing layer table strings
diff --git a/include/svx/svddef.hxx b/include/svx/svddef.hxx
index c00c1a007034..d6bbccf57654 100644
--- a/include/svx/svddef.hxx
+++ b/include/svx/svddef.hxx
@@ -419,7 +419,8 @@ constexpr sal_uInt16                  SDRATTR_GLOW_FIRST (SDRATTR_TABLE_LAST+1);
 constexpr TypedWhichId<SdrOnOffItem>  SDRATTR_GLOW       (SDRATTR_GLOW_FIRST+0);
 constexpr TypedWhichId<SdrMetricItem> SDRATTR_GLOW_RAD   (SDRATTR_GLOW_FIRST+1);
 constexpr TypedWhichId<XColorItem>    SDRATTR_GLOW_COLOR (SDRATTR_GLOW_FIRST+2);
-constexpr sal_uInt16                  SDRATTR_GLOW_LAST  (SDRATTR_GLOW_COLOR);
+constexpr TypedWhichId<SdrPercentItem> SDRATTR_GLOW_TRANSPARENCY(SDRATTR_GLOW_FIRST + 3);
+constexpr sal_uInt16                  SDRATTR_GLOW_LAST  (SDRATTR_GLOW_TRANSPARENCY);
 
 constexpr sal_uInt16 SDRATTR_END (SDRATTR_GLOW_LAST);      /* 1357 */ /* 1333 V4+++*/ /* 1243 V4+++*/  /*1213*/ /*1085*/ /*1040*/ /*Pool V2: 1123,V1: 1065 */
 
diff --git a/include/svx/svxids.hrc b/include/svx/svxids.hrc
index 1aa3111beeba..61d02ff504ea 100644
--- a/include/svx/svxids.hrc
+++ b/include/svx/svxids.hrc
@@ -417,6 +417,7 @@ class SvxSetItem;
 #define SID_ATTR_GLOW                                   ( SID_SVX_START + 320 )
 #define SID_ATTR_GLOW_COLOR                             ( SID_SVX_START + 321 )
 #define SID_ATTR_GLOW_RADIUS                            ( SID_SVX_START + 322 )
+#define SID_ATTR_GLOW_TRANSPARENCY                      ( SID_SVX_START + 323 )
 #define SID_SCAN                                        ( SID_SVX_START + 330 )
 #define SID_TWAIN_SELECT                                ( SID_SVX_START + 331 )
 #define SID_TWAIN_TRANSFER                              ( SID_SVX_START + 332 )
diff --git a/include/svx/unoshprp.hxx b/include/svx/unoshprp.hxx
index 19eb4aeb867d..b8c0990fa2f7 100644
--- a/include/svx/unoshprp.hxx
+++ b/include/svx/unoshprp.hxx
@@ -212,7 +212,8 @@
 #define GLOW_PROPERTIES \
     { OUString("GlowEffect"),                     SDRATTR_GLOW,             cppu::UnoType<bool>::get(),           0,      0}, \
     { OUString{"GlowEffectRad"},                  SDRATTR_GLOW_RAD,         ::cppu::UnoType<sal_Int32>::get(),    0,      0, PropertyMoreFlags::METRIC_ITEM}, \
-    { OUString{"GlowEffectColor"},                SDRATTR_GLOW_COLOR,       ::cppu::UnoType<sal_Int32>::get(),    0,      0},
+    { OUString{"GlowEffectColor"},                SDRATTR_GLOW_COLOR,       ::cppu::UnoType<sal_Int32>::get(),    0,      0}, \
+    { OUString{"GlowEffectTransparency"},         SDRATTR_GLOW_TRANSPARENCY,::cppu::UnoType<sal_Int16>::get(),    0,      0 },
 
 #define SHADOW_PROPERTIES \
     { OUString(UNO_NAME_SHADOW),            SDRATTR_SHADOW,             cppu::UnoType<bool>::get(),    0,      0}, \
diff --git a/include/xmloff/xmltoken.hxx b/include/xmloff/xmltoken.hxx
index fda3f4cf9861..d84f17d03ce6 100644
--- a/include/xmloff/xmltoken.hxx
+++ b/include/xmloff/xmltoken.hxx
@@ -928,6 +928,7 @@ namespace xmloff::token {
         XML_GLOW,
         XML_GLOW_RADIUS,
         XML_GLOW_COLOR,
+        XML_GLOW_TRANSPARENCY,
         XML_GOURAUD,
         XML_GRADIENT,
         XML_GRADIENT_ANGLE,
diff --git a/oox/source/drawingml/shape.cxx b/oox/source/drawingml/shape.cxx
index d962f008f34e..959f99ecffb4 100644
--- a/oox/source/drawingml/shape.cxx
+++ b/oox/source/drawingml/shape.cxx
@@ -1472,6 +1472,7 @@ Reference< XShape > const & Shape::createAndInsert(
             propertySet->setPropertyValue("GlowEffect", makeAny(true));
             propertySet->setPropertyValue("GlowEffectRad", makeAny(static_cast<sal_Int32>(aEffectProperties.maGlow.moGlowRad.get())));
             propertySet->setPropertyValue("GlowEffectColor", makeAny(aEffectProperties.maGlow.moGlowColor.getColor(rGraphicHelper)));
+            propertySet->setPropertyValue("GlowEffectTransparency", makeAny(aEffectProperties.maGlow.moGlowColor.getTransparency()));
         }
     }
 
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 81bbcd76be07..17b56e8e4f91 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -3849,11 +3849,13 @@ void DrawingML::WriteGlowEffect(const Reference< XPropertySet >& rXPropSet)
     Sequence< PropertyValue > aGlowAttribs(1);
     aGlowAttribs[0].Name = "rad";
     aGlowAttribs[0].Value = rXPropSet->getPropertyValue("GlowEffectRad");
-    Sequence< PropertyValue > aGlowProps(2);
+    Sequence< PropertyValue > aGlowProps(3);
     aGlowProps[0].Name = "Attribs";
     aGlowProps[0].Value <<= aGlowAttribs;
     aGlowProps[1].Name = "RgbClr";
     aGlowProps[1].Value = rXPropSet->getPropertyValue("GlowEffectColor");
+    aGlowProps[2].Name = "RgbClrTransparency";
+    aGlowProps[2].Value = rXPropSet->getPropertyValue("GlowEffectTransparency");
     // TODO other stuff like saturation or luminance
 
     WriteShapeEffect("glow", aGlowProps);
diff --git a/sc/sdi/drawsh.sdi b/sc/sdi/drawsh.sdi
index 44faa5c18074..2a9981aa6e6f 100644
--- a/sc/sdi/drawsh.sdi
+++ b/sc/sdi/drawsh.sdi
@@ -228,6 +228,7 @@ interface TableDraw
     SID_ATTR_GLOW                   [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawAttrState; Export = FALSE; ]
     SID_ATTR_GLOW_COLOR             [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawAttrState; Export = FALSE; ]
     SID_ATTR_GLOW_RADIUS            [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawAttrState; Export = FALSE; ]
+    SID_ATTR_GLOW_TRANSPARENCY      [ ExecMethod = ExecDrawAttr; StateMethod = GetDrawAttrState; Export = FALSE; ]
 
 }
 
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx b/sd/qa/unit/export-tests-ooxml2.cxx
index 07b340ba69f7..c006772ae302 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -2861,6 +2861,9 @@ void SdOOXMLExportTest2::testShapeGlowEffect()
     Color nColor;
     xShape->getPropertyValue("GlowEffectColor") >>= nColor;
     CPPUNIT_ASSERT_EQUAL(Color(0xFFC000), nColor);
+    sal_uInt16 nTransparency;
+    xShape->getPropertyValue("GlowEffectTransparency") >>= nTransparency;
+    CPPUNIT_ASSERT_EQUAL(sal_uInt16(60), nTransparency);
 }
 
 void SdOOXMLExportTest2::testTdf119087()
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 83cab0b6c083..158641ae4b81 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -3122,6 +3122,9 @@ void SdImportTest::testShapeGlowEffectPPTXImpoer()
     Color nColor;
     xShape->getPropertyValue("GlowEffectColor") >>= nColor;
     CPPUNIT_ASSERT_EQUAL(Color(0xFFC000), nColor);
+    sal_uInt16 nTransparency;
+    xShape->getPropertyValue("GlowEffectTransparency") >>= nTransparency;
+    CPPUNIT_ASSERT_EQUAL(sal_uInt16(60), nTransparency);
 }
 
 CPPUNIT_TEST_SUITE_REGISTRATION(SdImportTest);
diff --git a/sd/sdi/_drvwsh.sdi b/sd/sdi/_drvwsh.sdi
index 962ef2368e15..b1a6f641fbc8 100644
--- a/sd/sdi/_drvwsh.sdi
+++ b/sd/sdi/_drvwsh.sdi
@@ -2875,5 +2875,10 @@ interface DrawView
         ExecMethod = FuTemporary;
         StateMethod = GetAttrState;
     ]
+    SID_ATTR_GLOW_TRANSPARENCY
+    [
+        ExecMethod = FuTemporary;
+        StateMethod = GetAttrState;
+    ]
 
 }
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index fb6f3decca06..d0629139d280 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -3473,6 +3473,7 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
         case SID_ATTR_GLOW:
         case SID_ATTR_GLOW_COLOR:
         case SID_ATTR_GLOW_RADIUS:
+        case SID_ATTR_GLOW_TRANSPARENCY:
             if (const SfxItemSet* pNewArgs = rReq.GetArgs())
                 mpDrawView->SetAttributes(*pNewArgs);
             rReq.Done();
diff --git a/sd/source/ui/view/drviewsf.cxx b/sd/source/ui/view/drviewsf.cxx
index c3401210c40d..b58d7f344b0a 100644
--- a/sd/source/ui/view/drviewsf.cxx
+++ b/sd/source/ui/view/drviewsf.cxx
@@ -440,6 +440,7 @@ void DrawViewShell::GetAttrState( SfxItemSet& rSet )
             case SID_ATTR_GLOW:
             case SID_ATTR_GLOW_COLOR:
             case SID_ATTR_GLOW_RADIUS:
+            case SID_ATTR_GLOW_TRANSPARENCY:
             case SID_SET_SUB_SCRIPT:
             case SID_SET_SUPER_SCRIPT:
             {
diff --git a/svx/sdi/svx.sdi b/svx/sdi/svx.sdi
index f7925c5c376d..bf3b73f5ab78 100644
--- a/svx/sdi/svx.sdi
+++ b/svx/sdi/svx.sdi
@@ -12288,3 +12288,20 @@ SdrMetricItem GlowRadius SID_ATTR_GLOW_RADIUS
     ToolBoxConfig = FALSE,
     GroupId = SfxGroupId::Document;
 ]
+
+SdrPercentItem GlowTransparency SID_ATTR_GLOW_TRANSPARENCY
+
+[
+    AutoUpdate = TRUE,
+    FastCall = FALSE,
+    ReadOnlyDoc = FALSE,
+    Toggle = FALSE,
+    Container = FALSE,
+    RecordAbsolute = FALSE,
+    RecordPerSet;
+
+    AccelConfig = FALSE,
+    MenuConfig = FALSE,
+    ToolBoxConfig = FALSE,
+    GroupId = SfxGroupId::Document;
+]
diff --git a/svx/source/sidebar/glow/GlowPropertyPanel.cxx b/svx/source/sidebar/glow/GlowPropertyPanel.cxx
index 82df3ee5fe17..ef3a1951e128 100644
--- a/svx/source/sidebar/glow/GlowPropertyPanel.cxx
+++ b/svx/source/sidebar/glow/GlowPropertyPanel.cxx
@@ -15,6 +15,7 @@
 #include <svx/colorbox.hxx>
 #include <svx/sdmetitm.hxx>
 #include <svx/sdooitm.hxx>
+#include <svx/sdprcitm.hxx>
 #include <svx/svddef.hxx>
 #include <svx/svxids.hrc>
 #include <svx/xcolit.hxx>
@@ -38,12 +39,16 @@ GlowPropertyPanel::GlowPropertyPanel(vcl::Window* pParent,
     , maGlowController(SID_ATTR_GLOW, *pBindings, *this)
     , maGlowColorController(SID_ATTR_GLOW_COLOR, *pBindings, *this)
     , maGlowRadiusController(SID_ATTR_GLOW_RADIUS, *pBindings, *this)
+    , maGlowTransparencyController(SID_ATTR_GLOW_TRANSPARENCY, *pBindings, *this)
     , mpBindings(pBindings)
     , mxShowGlow(m_xBuilder->weld_check_button("SHOW_GLOW"))
     , mxGlowRadius(m_xBuilder->weld_metric_spin_button("LB_GLOW_RADIUS", FieldUnit::POINT))
     , mxLBGlowColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_GLOW_COLOR"), GetFrameWeld()))
+    , mxGlowTransparency(
+          m_xBuilder->weld_metric_spin_button("LB_GLOW_TRANSPARENCY", FieldUnit::PERCENT))
     , mxFTRadius(m_xBuilder->weld_label("radius"))
     , mxFTColor(m_xBuilder->weld_label("color"))
+    , mxFTTransparency(m_xBuilder->weld_label("transparency"))
 {
     Initialize();
 }
@@ -57,10 +62,13 @@ void GlowPropertyPanel::dispose()
     mxGlowRadius.reset();
     mxFTColor.reset();
     mxLBGlowColor.reset();
+    mxFTTransparency.reset();
+    mxGlowTransparency.reset();
 
     maGlowController.dispose();
     maGlowColorController.dispose();
     maGlowRadiusController.dispose();
+    maGlowTransparencyController.dispose();
     PanelLayout::dispose();
 }
 
@@ -70,6 +78,8 @@ void GlowPropertyPanel::Initialize()
     mxShowGlow->connect_toggled(LINK(this, GlowPropertyPanel, ClickGlowHdl));
     mxLBGlowColor->SetSelectHdl(LINK(this, GlowPropertyPanel, ModifyGlowColorHdl));
     mxGlowRadius->connect_value_changed(LINK(this, GlowPropertyPanel, ModifyGlowRadiusHdl));
+    mxGlowTransparency->connect_value_changed(
+        LINK(this, GlowPropertyPanel, ModifyGlowTransparencyHdl));
 }
 
 IMPL_LINK_NOARG(GlowPropertyPanel, ClickGlowHdl, weld::ToggleButton&, void)
@@ -90,13 +100,23 @@ IMPL_LINK_NOARG(GlowPropertyPanel, ModifyGlowRadiusHdl, weld::MetricSpinButton&,
     mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_GLOW_RADIUS, SfxCallMode::RECORD, { &aItem });
 }
 
+IMPL_LINK_NOARG(GlowPropertyPanel, ModifyGlowTransparencyHdl, weld::MetricSpinButton&, void)
+{
+    SdrPercentItem aItem(SDRATTR_GLOW_TRANSPARENCY,
+                         mxGlowTransparency->get_value(FieldUnit::PERCENT));
+    mpBindings->GetDispatcher()->ExecuteList(SID_ATTR_GLOW_TRANSPARENCY, SfxCallMode::RECORD,
+                                             { &aItem });
+}
+
 void GlowPropertyPanel::UpdateControls()
 {
     const bool bEnabled = mxShowGlow->get_state() != TRISTATE_FALSE;
     mxGlowRadius->set_sensitive(bEnabled);
     mxLBGlowColor->set_sensitive(bEnabled);
+    mxGlowTransparency->set_sensitive(bEnabled);
     mxFTRadius->set_sensitive(bEnabled);
     mxFTColor->set_sensitive(bEnabled);
+    mxFTTransparency->set_sensitive(bEnabled);
 }
 
 void GlowPropertyPanel::NotifyItemUpdate(sal_uInt16 nSID, SfxItemState eState,
@@ -144,6 +164,17 @@ void GlowPropertyPanel::NotifyItemUpdate(sal_uInt16 nSID, SfxItemState eState,
             }
         }
         break;
+        case SID_ATTR_GLOW_TRANSPARENCY:
+        {
+            if (eState >= SfxItemState::DEFAULT)
+            {
+                if (auto pItem = dynamic_cast<const SdrPercentItem*>(pState))
+                {
+                    mxGlowTransparency->set_value(pItem->GetValue(), FieldUnit::PERCENT);
+                }
+            }
+        }
+        break;
     }
     UpdateControls();
 }
diff --git a/svx/source/sidebar/glow/GlowPropertyPanel.hxx b/svx/source/sidebar/glow/GlowPropertyPanel.hxx
index 7cdf772cbf1a..233ec052e84c 100644
--- a/svx/source/sidebar/glow/GlowPropertyPanel.hxx
+++ b/svx/source/sidebar/glow/GlowPropertyPanel.hxx
@@ -40,14 +40,17 @@ private:
     sfx2::sidebar::ControllerItem maGlowController;
     sfx2::sidebar::ControllerItem maGlowColorController;
     sfx2::sidebar::ControllerItem maGlowRadiusController;
+    sfx2::sidebar::ControllerItem maGlowTransparencyController;
 
     SfxBindings* mpBindings;
 
     std::unique_ptr<weld::CheckButton> mxShowGlow;
     std::unique_ptr<weld::MetricSpinButton> mxGlowRadius;
     std::unique_ptr<ColorListBox> mxLBGlowColor;
+    std::unique_ptr<weld::MetricSpinButton> mxGlowTransparency;
     std::unique_ptr<weld::Label> mxFTRadius;
     std::unique_ptr<weld::Label> mxFTColor;
+    std::unique_ptr<weld::Label> mxFTTransparency;
 
     void Initialize();
     void UpdateControls();
@@ -55,6 +58,7 @@ private:
     DECL_LINK(ClickGlowHdl, weld::ToggleButton&, void);
     DECL_LINK(ModifyGlowColorHdl, ColorListBox&, void);
     DECL_LINK(ModifyGlowRadiusHdl, weld::MetricSpinButton&, void);
+    DECL_LINK(ModifyGlowTransparencyHdl, weld::MetricSpinButton&, void);
 };
 }
 
diff --git a/svx/source/svdraw/svdattr.cxx b/svx/source/svdraw/svdattr.cxx
index edf73df7e405..1b89cab1da13 100644
--- a/svx/source/svdraw/svdattr.cxx
+++ b/svx/source/svdraw/svdattr.cxx
@@ -331,6 +331,7 @@ SdrItemPool::SdrItemPool(
     rPoolDefaults[ SDRATTR_GLOW - SDRATTR_START ] = new SdrOnOffItem(SDRATTR_GLOW, false);
     rPoolDefaults[ SDRATTR_GLOW_RAD - SDRATTR_START ] = new SdrMetricItem(SDRATTR_GLOW_RAD, 0);
     rPoolDefaults[ SDRATTR_GLOW_COLOR - SDRATTR_START ] = new XColorItem(SDRATTR_GLOW_COLOR, aNullCol);
+    rPoolDefaults[ SDRATTR_GLOW_TRANSPARENCY - SDRATTR_START ] = new SdrPercentItem(SDRATTR_GLOW_TRANSPARENCY, 0);
 
     // set own ItemInfos
     mpLocalItemInfos[SDRATTR_SHADOW-SDRATTR_START]._nSID=SID_ATTR_FILL_SHADOW;
@@ -349,6 +350,7 @@ SdrItemPool::SdrItemPool(
     mpLocalItemInfos[SDRATTR_GLOW - SDRATTR_START]._nSID = SID_ATTR_GLOW;
     mpLocalItemInfos[SDRATTR_GLOW_RAD - SDRATTR_START]._nSID = SID_ATTR_GLOW_RADIUS;
     mpLocalItemInfos[SDRATTR_GLOW_COLOR - SDRATTR_START]._nSID = SID_ATTR_GLOW_COLOR;
+    mpLocalItemInfos[SDRATTR_GLOW_TRANSPARENCY - SDRATTR_START]._nSID = SID_ATTR_GLOW_TRANSPARENCY;
 
     // it's my own creation level, set Defaults and ItemInfos
     SetDefaults(mpLocalPoolDefaults);
@@ -459,6 +461,7 @@ OUString SdrItemPool::GetItemName(sal_uInt16 nWhich)
         case SDRATTR_GLOW              : pResId = SIP_SA_GLOW;break;
         case SDRATTR_GLOW_RAD          : pResId = SIP_SA_GLOW_RAD;break;
         case SDRATTR_GLOW_COLOR        : pResId = SIP_SA_GLOW_COLOR;break;
+        case SDRATTR_GLOW_TRANSPARENCY : pResId = SIP_SA_GLOW_TRANSPARENCY;break;
 
         case SDRATTR_CAPTIONTYPE      : pResId = SIP_SA_CAPTIONTYPE;break;
         case SDRATTR_CAPTIONFIXEDANGLE: pResId = SIP_SA_CAPTIONFIXEDANGLE;break;
diff --git a/svx/uiconfig/ui/sidebarglow.ui b/svx/uiconfig/ui/sidebarglow.ui
index cc3accb4f8fa..9580f9939591 100644
--- a/svx/uiconfig/ui/sidebarglow.ui
+++ b/svx/uiconfig/ui/sidebarglow.ui
@@ -6,6 +6,11 @@
     <property name="step_increment">1</property>
     <property name="page_increment">10</property>
   </object>
+  <object class="GtkAdjustment" id="adjustment2">
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+    <property name="upper">100</property>
+  </object>
   <object class="GtkGrid" id="GlowPropertyPanel">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -87,6 +92,32 @@
                     <property name="top_attach">2</property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkLabel" id="transparency">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes" context="sidebarglow|transparency">Transparency:</property>
+                    <property name="use_underline">True</property>
+                    <property name="mnemonic_widget">LB_GLOW_TRANSPARENCY</property>
+                    <property name="xalign">0</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">0</property>
+                    <property name="top_attach">3</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkSpinButton" id="LB_GLOW_TRANSPARENCY">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                    <property name="adjustment">adjustment2</property>
+                  </object>
+                  <packing>
+                    <property name="left_attach">1</property>
+                    <property name="top_attach">3</property>
+                  </packing>
+                </child>
                 <child>
                   <placeholder/>
                 </child>
diff --git a/sw/sdi/drawsh.sdi b/sw/sdi/drawsh.sdi
index c75bc6a8efca..77fb87fd6e30 100644
--- a/sw/sdi/drawsh.sdi
+++ b/sw/sdi/drawsh.sdi
@@ -208,6 +208,14 @@ interface TextDraw : TextDrawBase
         DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
     ]
 
+    SID_ATTR_GLOW_TRANSPARENCY
+    [
+        Export = FALSE;
+        ExecMethod = ExecDrawAttrArgs ;
+        StateMethod = GetDrawAttrState ;
+        DisableFlags="SfxDisableFlags::SwOnProtectedCursor";
+    ]
+
     SID_ATTRIBUTES_LINE
     [
         ExecMethod = ExecDrawDlg ;
diff --git a/sw/source/uibase/shells/slotadd.cxx b/sw/source/uibase/shells/slotadd.cxx
index c6a3f35907b3..76de1a6dc986 100644
--- a/sw/source/uibase/shells/slotadd.cxx
+++ b/sw/source/uibase/shells/slotadd.cxx
@@ -78,6 +78,7 @@
 #include <editeng/lrspitem.hxx>
 #include <svx/sdmetitm.hxx>
 #include <svx/sdooitm.hxx>
+#include <svx/sdprcitm.hxx>
 #include <svx/xlnstit.hxx>
 #include <svx/xlnedit.hxx>
 #include <svx/xfillit0.hxx>
diff --git a/xmloff/source/core/xmltoken.cxx b/xmloff/source/core/xmltoken.cxx
index 2888d9f814de..624c7684330c 100644
--- a/xmloff/source/core/xmltoken.cxx
+++ b/xmloff/source/core/xmltoken.cxx
@@ -932,6 +932,7 @@ namespace xmloff::token {
         TOKEN( "glow",                            XML_GLOW ),
         TOKEN( "glow-radius",                     XML_GLOW_RADIUS ),
         TOKEN( "glow-color",                      XML_GLOW_COLOR ),
+        TOKEN( "glow-transparency",               XML_GLOW_TRANSPARENCY ),
         TOKEN( "gouraud",                         XML_GOURAUD ),
         TOKEN( "gradient",                        XML_GRADIENT ),
         TOKEN( "angle",                           XML_GRADIENT_ANGLE ),
diff --git a/xmloff/source/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx
index 4cedc7c148c0..16c593b7a87b 100644
--- a/xmloff/source/draw/sdpropls.cxx
+++ b/xmloff/source/draw/sdpropls.cxx
@@ -156,6 +156,7 @@ const XMLPropertyMapEntry aXMLSDProperties[] =
     GMAPV( "GlowEffect",                       XML_NAMESPACE_LO_EXT, XML_GLOW,                 XML_SD_TYPE_GLOW  , 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT ),
     GMAPV( "GlowEffectRad",                    XML_NAMESPACE_LO_EXT, XML_GLOW_RADIUS,          XML_TYPE_MEASURE  , 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT ),
     GMAPV( "GlowEffectColor",                  XML_NAMESPACE_LO_EXT, XML_GLOW_COLOR,           XML_TYPE_COLOR    , 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT ),
+    GMAPV( "GlowEffectTransparency",           XML_NAMESPACE_LO_EXT, XML_GLOW_TRANSPARENCY,    XML_TYPE_PERCENT16, 0, SvtSaveOptions::ODFVER_012_EXT_COMPAT),
 
     // graphic attributes
     GMAP( "GraphicColorMode",               XML_NAMESPACE_DRAW, XML_COLOR_MODE,             XML_TYPE_COLOR_MODE, 0 ), // exists in SW, too, with same property name
diff --git a/xmloff/source/token/tokens.txt b/xmloff/source/token/tokens.txt
index 103e7eae1091..4f8e756d3b57 100644
--- a/xmloff/source/token/tokens.txt
+++ b/xmloff/source/token/tokens.txt
@@ -850,6 +850,7 @@ geq
 glow
 glow-radius
 glow-color
+glow-transparency
 gouraud
 gradient
 angle


More information about the Libreoffice-commits mailing list