[Libreoffice-commits] core.git: svx/source

Rishabh kris.kr296 at yahoo.in
Sun Jan 24 23:15:11 PST 2016


 svx/source/sidebar/line/LinePropertyPanel.cxx |   27 +++++++++++++++++++++++++-
 svx/source/sidebar/line/LinePropertyPanel.hxx |    6 +++++
 2 files changed, 32 insertions(+), 1 deletion(-)

New commits:
commit eede66cd922b0f867b7521a9d96e2c6f42a973dc
Author: Rishabh <kris.kr296 at yahoo.in>
Date:   Sun Jan 24 07:07:07 2016 +0530

    tdf#84381: Disable the line arrowheads when non-line object is selected
    
    When a non-line object is selected, the arrow subsection of line tab is hidden
    
    Change-Id: Id23245aadeaef5327449679a20a6243da4ad2b3a
    Reviewed-on: https://gerrit.libreoffice.org/21740
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: jan iversen <jani at documentfoundation.org>

diff --git a/svx/source/sidebar/line/LinePropertyPanel.cxx b/svx/source/sidebar/line/LinePropertyPanel.cxx
index ebf7bf4..4b1ca42 100644
--- a/svx/source/sidebar/line/LinePropertyPanel.cxx
+++ b/svx/source/sidebar/line/LinePropertyPanel.cxx
@@ -72,7 +72,8 @@ LinePropertyPanel::LinePropertyPanel(
     maTransControl(SID_ATTR_LINE_TRANSPARENCE, *pBindings, *this),
     maEdgeStyle(SID_ATTR_LINE_JOINT, *pBindings, *this),
     maCapStyle(SID_ATTR_LINE_CAP, *pBindings, *this),
-    mpBindings(pBindings)
+    mpBindings(pBindings),
+    maContext()
 {
     Initialize();
 }
@@ -186,6 +187,30 @@ void LinePropertyPanel::NotifyItemUpdate(
     ActivateControls();
 }
 
+void LinePropertyPanel::HandleContextChange(
+    const sfx2::sidebar::EnumContext& rContext)
+{
+    if(maContext == rContext)
+    {
+        // Nothing to do
+        return;
+    }
+
+    maContext = rContext;
+    bool bShowArrows = false;
+
+    switch(maContext.GetCombinedContext_DI())
+    {
+        case CombinedEnumContext(Application_Calc, Context_DrawLine):
+        case CombinedEnumContext(Application_DrawImpress, Context_DrawLine):
+            bShowArrows = true;
+            break;
+    }
+
+    if(!bShowArrows)
+        disableArrowHead();
+}
+
 void LinePropertyPanel::setLineStyle(const XLineStyleItem& rItem)
 {
     GetBindings()->GetDispatcher()->Execute(SID_ATTR_LINE_STYLE, SfxCallMode::RECORD, &rItem, 0L);
diff --git a/svx/source/sidebar/line/LinePropertyPanel.hxx b/svx/source/sidebar/line/LinePropertyPanel.hxx
index 7c0c3a1..594109b 100644
--- a/svx/source/sidebar/line/LinePropertyPanel.hxx
+++ b/svx/source/sidebar/line/LinePropertyPanel.hxx
@@ -23,6 +23,7 @@
 #include <vcl/ctrl.hxx>
 #include <sfx2/sidebar/SidebarPanelBase.hxx>
 #include <sfx2/sidebar/ControllerItem.hxx>
+#include <sfx2/sidebar/IContextChangeReceiver.hxx>
 #include <vcl/fixed.hxx>
 #include <vcl/field.hxx>
 #include <vcl/layout.hxx>
@@ -58,6 +59,7 @@ class PopupContainer;
 class LineWidthControl;
 
 class LinePropertyPanel : public LinePropertyPanelBase,
+                          public sfx2::sidebar::IContextChangeReceiver,
                           public sfx2::sidebar::ControllerItem::ItemUpdateReceiverInterface
 {
 public:
@@ -69,6 +71,9 @@ public:
         const css::uno::Reference<css::frame::XFrame>& rxFrame,
         SfxBindings* pBindings);
 
+    virtual void HandleContextChange(
+        const ::sfx2::sidebar::EnumContext& rContext) override;
+
     virtual void NotifyItemUpdate(
         const sal_uInt16 nSId,
         const SfxItemState eState,
@@ -109,6 +114,7 @@ private:
     sfx2::sidebar::ControllerItem maCapStyle;
 
     SfxBindings* mpBindings;
+    sfx2::sidebar::EnumContext maContext;
 
     void Initialize();
 };


More information about the Libreoffice-commits mailing list