summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolan.mcnamara@collabora.com>2024-05-22 11:13:12 +0100
committerCaolán McNamara <caolan.mcnamara@collabora.com>2024-05-30 10:25:44 +0200
commit43ca3e129bb7b7603e8a7bbb10015a7b01e595db (patch)
treeda8c64d05c269cebdf9f3ca0fbd9d51a8c445277
parent99966b82fbc9f88bca47eaeeb43109c1e38455e4 (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> (cherry picked from commit 3d071fcde498e7c89ddef163f153400da0470199) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168197 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
-rw-r--r--sw/inc/PostItMgr.hxx2
-rw-r--r--sw/source/uibase/docvw/PostItMgr.cxx40
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 ee7cb16685f2..501e3fa449d2 100644
--- a/sw/source/uibase/docvw/PostItMgr.cxx
+++ b/sw/source/uibase/docvw/PostItMgr.cxx
@@ -710,6 +710,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();
@@ -739,24 +761,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,
@@ -823,6 +830,7 @@ void SwPostItMgr::LayoutPostIts()
}
else // we don't want to see it
{
+ VclPtr<SwAnnotationWin> pPostIt = pItem->mpPostIt;
if (pPostIt)
pPostIt->HideNote();
}