diff options
-rw-r--r-- | sw/inc/view.hxx | 1 | ||||
-rw-r--r-- | sw/source/uibase/app/applab.cxx | 3 | ||||
-rw-r--r-- | sw/source/uibase/uiview/view.cxx | 24 |
3 files changed, 17 insertions, 11 deletions
diff --git a/sw/inc/view.hxx b/sw/inc/view.hxx index 91d02e252160..c8b03778acc2 100644 --- a/sw/inc/view.hxx +++ b/sw/inc/view.hxx @@ -629,6 +629,7 @@ public: const OUString& GetRedlineAuthor(); /// See SfxViewShell::NotifyCursor(). void NotifyCursor(SfxViewShell* pViewShell) const override; + void ShowUIElement(const OUString& sElementURL) const; }; inline long SwView::GetXScroll() const diff --git a/sw/source/uibase/app/applab.cxx b/sw/source/uibase/app/applab.cxx index 4379f6e7ea8b..ce01e26863aa 100644 --- a/sw/source/uibase/app/applab.cxx +++ b/sw/source/uibase/app/applab.cxx @@ -385,6 +385,9 @@ void SwModule::InsertLab(SfxRequest& rReq, bool bLabel) if (pFirstFlyFormat) pSh->GotoFly(pFirstFlyFormat->GetName(), FLYCNTTYPE_ALL, false); + if (pSh->IsAnyDatabaseFieldInDoc()) + pSh->GetView().ShowUIElement("private:resource/toolbar/mailmerge"); + pSh->EndAllAction(); pSh->DoUndo(); } diff --git a/sw/source/uibase/uiview/view.cxx b/sw/source/uibase/uiview/view.cxx index 6244a6771818..c67ae50f800d 100644 --- a/sw/source/uibase/uiview/view.cxx +++ b/sw/source/uibase/uiview/view.cxx @@ -241,6 +241,18 @@ uno::Reference<frame::XLayoutManager> getLayoutManager(const SfxViewFrame& rView } } +void SwView::ShowUIElement(const OUString& sElementURL) const +{ + if (auto xLayoutManager = getLayoutManager(*GetViewFrame())) + { + if (!xLayoutManager->getElement(sElementURL).is()) + { + xLayoutManager->createElement(sElementURL); + xLayoutManager->showElement(sElementURL); + } + } +} + void SwView::SelectShell() { // Attention: Maintain the SelectShell for the WebView additionally @@ -444,17 +456,7 @@ void SwView::SelectShell() // Show Mail Merge toolbar initially for documents with Database fields if (!m_bInitOnceCompleted && GetWrtShell().IsAnyDatabaseFieldInDoc()) - { - if (auto xLayoutManager = getLayoutManager(*GetViewFrame())) - { - const OUString sResourceURL("private:resource/toolbar/mailmerge"); - if (!xLayoutManager->getElement(sResourceURL).is()) - { - xLayoutManager->createElement(sResourceURL); - xLayoutManager->showElement(sResourceURL); - } - } - } + ShowUIElement("private:resource/toolbar/mailmerge"); // Activate the toolbar to the new selection which also was active last time. // Before a flush () must be, but does not affect the UI according to MBA and |