sd/source/ui/dlg/navigatr.cxx | 18 +++++++++++++++--- sd/source/ui/inc/navigatr.hxx | 2 ++ sd/source/ui/inc/sdtreelb.hxx | 5 +++++ 3 files changed, 22 insertions(+), 3 deletions(-)
New commits: commit 740fca22fc92065436dee9beae89852fc388db54 Author: Jim Raykowski <[email protected]> AuthorDate: Thu Mar 4 22:54:28 2021 -0900 Commit: Jim Raykowski <[email protected]> CommitDate: Tue Mar 9 02:24:51 2021 +0100 tdf#139944 Disable navigator in impress and draw master mode Change-Id: I48ed310f7903502085da2469f546d371960935f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111986 Tested-by: Jenkins Reviewed-by: Jim Raykowski <[email protected]> diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx index 6c478bad5741..569ff6a615a2 100644 --- a/sd/source/ui/dlg/navigatr.cxx +++ b/sd/source/ui/dlg/navigatr.cxx @@ -44,6 +44,8 @@ #include <FrameView.hxx> #include <Window.hxx> +#include <DrawViewShell.hxx> + /** * SdNavigatorWin - FloatingWindow */ @@ -628,14 +630,24 @@ void SdNavigatorControllerItem::StateChanged( sal_uInt16 nSId, if( eState < SfxItemState::DEFAULT || nSId != SID_NAVIGATOR_STATE ) return; - const SfxUInt32Item& rStateItem = dynamic_cast<const SfxUInt32Item&>(*pItem); - NavState nState = static_cast<NavState>(rStateItem.GetValue()); - // only if doc in LB is the active NavDocInfo* pInfo = pNavigatorWin->GetDocInfo(); if( !(pInfo && pInfo->IsActive()) ) return; + if (::sd::DrawDocShell* pDrawDocShell = pInfo->GetDrawDocShell()) + { + const auto pDrawViewShell = + static_cast<::sd::DrawViewShell *>(pDrawDocShell->GetViewShell()); + bool bEditModePage(pDrawViewShell->GetEditMode() == EditMode::Page); + pNavigatorWin->mxToolbox->set_sensitive(bEditModePage); + pNavigatorWin->mxLbDocs->set_sensitive(bEditModePage); + pNavigatorWin->mxTlbObjects->set_sensitive(bEditModePage); + } + + const SfxUInt32Item& rStateItem = dynamic_cast<const SfxUInt32Item&>(*pItem); + NavState nState = static_cast<NavState>(rStateItem.GetValue()); + // First if (nState & NavState::BtnFirstEnabled && !pNavigatorWin->mxToolbox->get_item_sensitive("first")) diff --git a/sd/source/ui/inc/navigatr.hxx b/sd/source/ui/inc/navigatr.hxx index 01f8b43d20da..e43175600d24 100644 --- a/sd/source/ui/inc/navigatr.hxx +++ b/sd/source/ui/inc/navigatr.hxx @@ -68,6 +68,8 @@ public: void SetName( bool bOn ) { bName = bOn; } void SetActive( bool bOn ) { bActive = bOn; } + ::sd::DrawDocShell* GetDrawDocShell() {return mpDocShell;} + private: friend class SdNavigatorWin; bool bName : 1; diff --git a/sd/source/ui/inc/sdtreelb.hxx b/sd/source/ui/inc/sdtreelb.hxx index 20df211605b7..ecd98842a1c7 100644 --- a/sd/source/ui/inc/sdtreelb.hxx +++ b/sd/source/ui/inc/sdtreelb.hxx @@ -156,6 +156,11 @@ public: SdPageObjsTLV(std::unique_ptr<weld::TreeView> xTreeview); ~SdPageObjsTLV(); + void set_sensitive(bool bSensitive) + { + m_xTreeView->set_sensitive(bSensitive); + } + void hide() { m_xTreeView->hide(); _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
