[Libreoffice-commits] core.git: cui/source cui/uiconfig

A_GAN (via logerrit) logerrit at kemper.freedesktop.org
Tue Jul 28 15:39:32 UTC 2020


 cui/source/inc/cuitabarea.hxx    |    1 +
 cui/source/tabpages/tpshadow.cxx |   25 +++++++++++++++++++++++++
 cui/uiconfig/ui/shadowtabpage.ui |   37 +++++++++++++++++++++++++++++++++++--
 3 files changed, 61 insertions(+), 2 deletions(-)

New commits:
commit 6dbfbebad37fd84208e4c336f0864d26019db153
Author:     A_GAN <ganzouri97 at gmail.com>
AuthorDate: Mon Jul 27 20:28:53 2020 +0200
Commit:     Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Tue Jul 28 17:38:53 2020 +0200

    Add spin button for shadow blur radius in area dialog
    
    Update shadow tab in area dialog with spin button to control blur radius of the shadow.
    
    Change-Id: I41f072ef10d280df4b118afae7a7c058eb975417
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99557
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index 849b009c35df..fe16ad2c3bf2 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -312,6 +312,7 @@ private:
     std::unique_ptr<weld::MetricSpinButton> m_xMtrDistance;
     std::unique_ptr<ColorListBox> m_xLbShadowColor;
     std::unique_ptr<weld::MetricSpinButton> m_xMtrTransparent;
+    std::unique_ptr<weld::MetricSpinButton> m_xLbShadowBlurMetric;
     std::unique_ptr<weld::CustomWeld> m_xCtlPosition;
     std::unique_ptr<weld::CustomWeld> m_xCtlXRectPreview;
 
diff --git a/cui/source/tabpages/tpshadow.cxx b/cui/source/tabpages/tpshadow.cxx
index de448b197fd4..a02d7d6b92b8 100644
--- a/cui/source/tabpages/tpshadow.cxx
+++ b/cui/source/tabpages/tpshadow.cxx
@@ -45,9 +45,11 @@ const sal_uInt16 SvxShadowTabPage::pShadowRanges[] =
 {
     SDRATTR_SHADOWCOLOR,
     SDRATTR_SHADOWTRANSPARENCE,
+    SDRATTR_SHADOWBLUR,
     SID_ATTR_FILL_SHADOW,
     SID_ATTR_FILL_SHADOW,
     SID_ATTR_SHADOW_TRANSPARENCE,
+    SID_ATTR_SHADOW_BLUR,
     SID_ATTR_SHADOW_YDISTANCE,
     0
 };
@@ -66,6 +68,7 @@ SvxShadowTabPage::SvxShadowTabPage(weld::Container* pPage, weld::DialogControlle
     , m_xMtrDistance(m_xBuilder->weld_metric_spin_button("MTR_FLD_DISTANCE", FieldUnit::CM))
     , m_xLbShadowColor(new ColorListBox(m_xBuilder->weld_menu_button("LB_SHADOW_COLOR"), pController->getDialog()))
     , m_xMtrTransparent(m_xBuilder->weld_metric_spin_button("MTR_SHADOW_TRANSPARENT", FieldUnit::PERCENT))
+    , m_xLbShadowBlurMetric(m_xBuilder->weld_metric_spin_button("LB_SHADOW_BLUR", FieldUnit::POINT))
     , m_xCtlPosition(new weld::CustomWeld(*m_xBuilder, "CTL_POSITION", m_aCtlPosition))
     , m_xCtlXRectPreview(new weld::CustomWeld(*m_xBuilder, "CTL_COLOR_PREVIEW", m_aCtlXRectPreview))
 {
@@ -151,6 +154,7 @@ SvxShadowTabPage::SvxShadowTabPage(weld::Container* pPage, weld::DialogControlle
     m_xTsbShowShadow->connect_toggled(LINK( this, SvxShadowTabPage, ClickShadowHdl_Impl));
     m_xLbShadowColor->SetSelectHdl( LINK( this, SvxShadowTabPage, SelectShadowHdl_Impl ) );
     Link<weld::MetricSpinButton&,void> aLink = LINK( this, SvxShadowTabPage, ModifyShadowHdl_Impl );
+    m_xLbShadowBlurMetric->connect_value_changed(aLink);
     m_xMtrTransparent->connect_value_changed(aLink);
     m_xMtrDistance->connect_value_changed(aLink);
 }
@@ -160,6 +164,7 @@ SvxShadowTabPage::~SvxShadowTabPage()
     m_xCtlXRectPreview.reset();
     m_xLbShadowColor.reset();
     m_xCtlPosition.reset();
+    m_xLbShadowBlurMetric.reset();
 }
 
 void SvxShadowTabPage::ActivatePage( const SfxItemSet& rSet )
@@ -315,6 +320,17 @@ bool SvxShadowTabPage::FillItemSet( SfxItemSet* rAttrs )
         }
     }
 
+    if (m_xLbShadowBlurMetric->get_value_changed_from_saved())
+    {
+        SdrMetricItem aItem(SDRATTR_SHADOWBLUR, m_xLbShadowBlurMetric->get_value(FieldUnit::MM_100TH));
+        pOld = GetOldItem( *rAttrs, SDRATTR_SHADOWBLUR );
+        if ( !pOld || !( *static_cast<const SdrMetricItem*>(pOld) == aItem ) )
+        {
+            rAttrs->Put( aItem );
+            bModified = true;
+        }
+    }
+
     rAttrs->Put (CntUInt16Item(SID_PAGE_TYPE, static_cast<sal_uInt16>(m_nPageType)));
 
     return bModified;
@@ -398,10 +414,19 @@ void SvxShadowTabPage::Reset( const SfxItemSet* rAttrs )
     else
         m_xMtrTransparent->set_text("");
 
+    if( rAttrs->GetItemState( SDRATTR_SHADOWBLUR ) != SfxItemState::DONTCARE )
+    {
+        sal_uInt16 nBlur = rAttrs->Get( SDRATTR_SHADOWBLUR ).GetValue();
+        m_xLbShadowBlurMetric->set_value(nBlur, FieldUnit::MM_100TH);
+    }
+    else
+        m_xLbShadowBlurMetric->set_text("");
+
     //aCtlPosition
     m_xMtrDistance->save_value();
     m_xLbShadowColor->SaveValue();
     m_xTsbShowShadow->save_state();
+    m_xLbShadowBlurMetric->save_value();
 
     // #66832# This field was not saved, but used to determine changes.
     // Why? Seems to be the error.
diff --git a/cui/uiconfig/ui/shadowtabpage.ui b/cui/uiconfig/ui/shadowtabpage.ui
index f5e674d99c72..2cb49674b9e5 100644
--- a/cui/uiconfig/ui/shadowtabpage.ui
+++ b/cui/uiconfig/ui/shadowtabpage.ui
@@ -12,6 +12,11 @@
     <property name="step_increment">5</property>
     <property name="page_increment">10</property>
   </object>
+  <object class="GtkAdjustment" id="adjustmentPoint">
+    <property name="upper">150</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
   <object class="GtkBox" id="ShadowTabPage">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -61,7 +66,7 @@
                       <object class="GtkGrid" id="gridSHADOW">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="row_spacing">3</property>
+                        <property name="row_spacing">4</property>
                         <property name="column_spacing">6</property>
                         <child>
                           <object class="GtkSpinButton" id="MTR_SHADOW_TRANSPARENT">
@@ -71,6 +76,19 @@
                             <property name="activates_default">True</property>
                             <property name="adjustment">adjustmentPercent</property>
                           </object>
+                          <packing>
+                            <property name="left_attach">1</property>
+                            <property name="top_attach">4</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkSpinButton" id="LB_SHADOW_BLUR">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="halign">start</property>
+                            <property name="activates_default">True</property>
+                            <property name="adjustment">adjustmentPoint</property>
+                          </object>
                           <packing>
                             <property name="left_attach">1</property>
                             <property name="top_attach">3</property>
@@ -160,6 +178,20 @@
                             <property name="top_attach">1</property>
                           </packing>
                         </child>
+                        <child>
+                          <object class="GtkLabel" id="FT_SHADOW_BLUR">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="label" translatable="yes" context="shadowtabpage|FT_SHADOW_BLUR">_Blur:</property>
+                            <property name="use_underline">True</property>
+                            <property name="mnemonic_widget">LB_SHADOW_BLUR</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="GtkLabel" id="FT_TRANSPARENT">
                             <property name="visible">True</property>
@@ -171,7 +203,7 @@
                           </object>
                           <packing>
                             <property name="left_attach">0</property>
-                            <property name="top_attach">3</property>
+                            <property name="top_attach">4</property>
                           </packing>
                         </child>
                         <child>
@@ -284,6 +316,7 @@
       <widget name="MTR_SHADOW_TRANSPARENT"/>
       <widget name="MTR_FLD_DISTANCE"/>
       <widget name="LB_SHADOW_COLOR"/>
+      <widget name="LB_SHADOW_BLUR"/>
     </widgets>
   </object>
   <object class="GtkSizeGroup" id="sizegroup2">


More information about the Libreoffice-commits mailing list