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

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Thu Jan 16 09:24:38 UTC 2020


 sw/source/uibase/inc/workctrl.hxx    |   13 +++++++++----
 sw/source/uibase/ribbar/workctrl.cxx |   22 ++++++++++++++--------
 sw/source/uibase/utlui/navipi.cxx    |    2 +-
 3 files changed, 24 insertions(+), 13 deletions(-)

New commits:
commit 779ea1768a28a7042f5e931732f43864565c3c18
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Wed Jan 15 19:47:34 2020 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Thu Jan 16 10:24:06 2020 +0100

    listen to FN_NAV_ELEMENT
    
    and update based on that broadcast
    
    Change-Id: Ide11751dcb7bd53a956df499799fe4a60ce09d65
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86880
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sw/source/uibase/inc/workctrl.hxx b/sw/source/uibase/inc/workctrl.hxx
index 80c9fa157592..80c7ff80dd05 100644
--- a/sw/source/uibase/inc/workctrl.hxx
+++ b/sw/source/uibase/inc/workctrl.hxx
@@ -20,6 +20,7 @@
 #define INCLUDED_SW_SOURCE_UIBASE_INC_WORKCTRL_HXX
 
 #include <sfx2/tbxctrl.hxx>
+#include <sfx2/ctrlitem.hxx>
 #include <vcl/toolbox.hxx>
 
 class PopupMenu;
@@ -68,7 +69,8 @@ public:
     DECL_STATIC_LINK(SwTbxAutoTextCtrl, PopupHdl, Menu*, bool);
 };
 
-class SwScrollNaviPopup : public DockingWindow
+class SwScrollNaviPopup final : public DockingWindow
+                              , public SfxControllerItem
 {
     VclPtr<ToolBox> m_xToolBox1;
     VclPtr<ToolBox> m_xToolBox2;
@@ -81,11 +83,13 @@ class SwScrollNaviPopup : public DockingWindow
 
     OUString        sQuickHelp[2 * NID_COUNT];
 
-protected:
+    void                syncFromDoc();
+
     DECL_LINK(SelectHdl, ToolBox*, void);
 
+    using DockingWindow::StateChanged;
 public:
-    SwScrollNaviPopup(vcl::Window *pParent);
+    SwScrollNaviPopup(vcl::Window *pParent, SfxBindings& rBindings);
     virtual ~SwScrollNaviPopup() override;
     virtual void dispose() override;
 
@@ -93,7 +97,8 @@ public:
 
     void                GrabFocus() { m_xToolBox1->GrabFocus(); }
 
-    void                syncFromDoc();
+    virtual void    StateChanged(sal_uInt16 nSID, SfxItemState eState,
+                                 const SfxPoolItem* pState) override;
 };
 
 class SwPreviewZoomControl : public SfxToolBoxControl
diff --git a/sw/source/uibase/ribbar/workctrl.cxx b/sw/source/uibase/ribbar/workctrl.cxx
index ac3cdff611b0..8a75e85d2ca5 100644
--- a/sw/source/uibase/ribbar/workctrl.cxx
+++ b/sw/source/uibase/ribbar/workctrl.cxx
@@ -306,8 +306,9 @@ static const char* STR_IMGBTN_ARY[] =
     STR_IMGBTN_TBLFML_ERR_UP
 };
 
-SwScrollNaviPopup::SwScrollNaviPopup(vcl::Window *pParent)
+SwScrollNaviPopup::SwScrollNaviPopup(vcl::Window *pParent, SfxBindings& rBindings)
     : DockingWindow(pParent, "FloatingNavigation", "modules/swriter/ui/floatingnavigation.ui")
+    , SfxControllerItem(FN_NAV_ELEMENT, rBindings)
     , m_xToolBox1(get<ToolBox>("line1"))
     , m_xToolBox2(get<ToolBox>("line2"))
     , m_xInfoField(get<FixedText>("label"))
@@ -358,7 +359,6 @@ IMPL_LINK_NOARG(SwScrollNaviPopup, SelectHdl, ToolBox*, void)
         SvxSearchDialogWrapper::SetSearchLabel( SearchLabel::Empty );
         SwView::SetMoveType( nSet );
         GetActiveView()->GetViewFrame()->GetDispatcher()->Execute(FN_NAV_ELEMENT);
-        syncFromDoc();
     }
     else
     {
@@ -369,6 +369,12 @@ IMPL_LINK_NOARG(SwScrollNaviPopup, SelectHdl, ToolBox*, void)
     }
 }
 
+void SwScrollNaviPopup::StateChanged(sal_uInt16 /*nSID*/, SfxItemState /*eState*/,
+                                     const SfxPoolItem* /*pState*/)
+{
+    syncFromDoc();
+}
+
 OUString SwScrollNaviPopup::GetToolTip(bool bNext)
 {
     sal_uInt16 nResId = SwView::GetMoveType();
@@ -497,9 +503,9 @@ sal_uInt16 SwScrollNaviPopup::GetCurItemId() const
     return IdToIdent(sItemId);
 }
 
-OUString SwScrollNaviPopup::GetItemText(sal_uInt16 nId) const
+OUString SwScrollNaviPopup::GetItemText(sal_uInt16 nNaviId) const
 {
-    const OUString sId(IdentToId(nId));
+    const OUString sId(IdentToId(nNaviId));
     sal_uInt16 nItemId = m_xToolBox1->GetItemId(sId);
     if (nItemId)
         return m_xToolBox1->GetItemText(nItemId);
@@ -507,9 +513,9 @@ OUString SwScrollNaviPopup::GetItemText(sal_uInt16 nId) const
     return m_xToolBox2->GetItemText(nItemId);
 }
 
-void SwScrollNaviPopup::SetItemText(sal_uInt16 nId, const OUString &rText)
+void SwScrollNaviPopup::SetItemText(sal_uInt16 nNaviId, const OUString &rText)
 {
-    const OUString sId(IdentToId(nId));
+    const OUString sId(IdentToId(nNaviId));
     sal_uInt16 nItemId = m_xToolBox1->GetItemId(sId);
     if (nItemId)
     {
@@ -520,9 +526,9 @@ void SwScrollNaviPopup::SetItemText(sal_uInt16 nId, const OUString &rText)
     m_xToolBox2->SetItemText(nItemId, rText);
 }
 
-void SwScrollNaviPopup::CheckItem(sal_uInt16 nId, bool bOn)
+void SwScrollNaviPopup::CheckItem(sal_uInt16 nNaviId, bool bOn)
 {
-    const OUString sId(IdentToId(nId));
+    const OUString sId(IdentToId(nNaviId));
     sal_uInt16 nItemId = m_xToolBox1->GetItemId(sId);
     if (nItemId)
     {
diff --git a/sw/source/uibase/utlui/navipi.cxx b/sw/source/uibase/utlui/navipi.cxx
index 88acee99df44..9355b773c7cf 100644
--- a/sw/source/uibase/utlui/navipi.cxx
+++ b/sw/source/uibase/utlui/navipi.cxx
@@ -398,7 +398,7 @@ VCL_BUILDER_FACTORY(SwNavHelpToolBox)
 
 void SwNavigationPI::CreateNavigationTool()
 {
-    auto xPopup = VclPtr<SwScrollNaviPopup>::Create(m_aContentToolBox.get());
+    auto xPopup = VclPtr<SwScrollNaviPopup>::Create(m_aContentToolBox.get(), GetBindings());
 
     xPopup->EnableDocking();
 


More information about the Libreoffice-commits mailing list