diff options
author | Caolán McNamara <caolan.mcnamara@collabora.com> | 2024-05-22 11:13:12 +0100 |
---|---|---|
committer | Caolán McNamara <caolan.mcnamara@collabora.com> | 2024-05-23 09:16:07 +0200 |
commit | 3d071fcde498e7c89ddef163f153400da0470199 (patch) | |
tree | 4b9741ff961fd2b69e07a0a3e4662793a5fc9125 | |
parent | 34049fd79aa085277260656b3ef50844c1de9b6f (diff) |
split a piece of code out as a standalone GetOrCreateAnnotationWindow
Change-Id: I674d96976f265eeac719ed06a657af07aaae2325
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167954
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Pranam Lashkari <lpranam@collabora.com>
-rw-r--r-- | sw/inc/PostItMgr.hxx | 2 | ||||
-rw-r--r-- | sw/source/uibase/docvw/PostItMgr.cxx | 40 |
2 files changed, 26 insertions, 16 deletions
diff --git a/sw/inc/PostItMgr.hxx b/sw/inc/PostItMgr.hxx index 98d9f4f2ef30..f66e38748a64 100644 --- a/sw/inc/PostItMgr.hxx +++ b/sw/inc/PostItMgr.hxx @@ -172,6 +172,8 @@ class SAL_DLLPUBLIC_RTTI SwPostItMgr final : public SfxListener SwSidebarItem* InsertItem( SfxBroadcaster* pItem, bool bCheckExistence, bool bFocus); void RemoveItem( SfxBroadcaster* pBroadcast ); + VclPtr<sw::annotation::SwAnnotationWin> GetOrCreateAnnotationWindow(SwSidebarItem& rItem); + public: SwPostItMgr(SwView* aDoc); virtual ~SwPostItMgr() override; diff --git a/sw/source/uibase/docvw/PostItMgr.cxx b/sw/source/uibase/docvw/PostItMgr.cxx index d9eaa7fa324a..0b74e9902f0b 100644 --- a/sw/source/uibase/docvw/PostItMgr.cxx +++ b/sw/source/uibase/docvw/PostItMgr.cxx @@ -698,6 +698,28 @@ void SwPostItMgr::PreparePageContainer() } } +VclPtr<SwAnnotationWin> SwPostItMgr::GetOrCreateAnnotationWindow(SwSidebarItem& rItem) +{ + VclPtr<SwAnnotationWin> pPostIt = rItem.mpPostIt; + if (!pPostIt) + { + pPostIt = rItem.GetSidebarWindow( mpView->GetEditWin(), + *this ); + pPostIt->InitControls(); + pPostIt->SetReadonly(mbReadOnly); + rItem.mpPostIt = pPostIt; + if (mpAnswer) + { + if (pPostIt->GetPostItField()->GetParentPostItId() != 0) //do we really have another note in front of this one + { + pPostIt->InitAnswer(*mpAnswer); + } + mpAnswer.reset(); + } + } + return rItem.mpPostIt; +} + void SwPostItMgr::LayoutPostIts() { const bool bLoKitActive = comphelper::LibreOfficeKit::isActive(); @@ -727,24 +749,9 @@ void SwPostItMgr::LayoutPostIts() for (auto const& pItem : pPage->mvSidebarItems) { - VclPtr<SwAnnotationWin> pPostIt = pItem->mpPostIt; - if (pItem->mbShow) { - if (!pPostIt) - { - pPostIt = pItem->GetSidebarWindow( mpView->GetEditWin(), - *this ); - pPostIt->InitControls(); - pPostIt->SetReadonly(mbReadOnly); - pItem->mpPostIt = pPostIt; - if (mpAnswer) - { - if (pPostIt->GetPostItField()->GetParentPostItId() != 0) //do we really have another note in front of this one - pPostIt->InitAnswer(*mpAnswer); - mpAnswer.reset(); - } - } + VclPtr<SwAnnotationWin> pPostIt = GetOrCreateAnnotationWindow(*pItem); pPostIt->SetChangeTracking( pItem->mLayoutStatus, @@ -811,6 +818,7 @@ void SwPostItMgr::LayoutPostIts() } else // we don't want to see it { + VclPtr<SwAnnotationWin> pPostIt = pItem->mpPostIt; if (pPostIt) pPostIt->HideNote(); } |