diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2024-12-27 15:48:45 +0200 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2024-12-27 17:07:59 +0100 |
commit | 3642472bea67c6e0c35bee1e6567e1fe9d560e1a (patch) | |
tree | 52da00c2392e03098305e376b3c590098c44a93c /sw/inc/postithelper.hxx | |
parent | 8b492a1f3057d2b6c3daed7405000d0270ea3dd9 (diff) |
merge SwSidebarItem and SwAnnotationItem classes
Because the separation is not doing useful.
Which reveals that SwAnnotationWin::ChangeSidebarItem was
doing some very dodgy object slicing when assigning
to mrSidebarItem.
Fix that by using a pointer in SwAnnotationWin instead.
Change-Id: I516dfaac7066d8f1effe351ef388c03dd1127fd7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179445
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Diffstat (limited to 'sw/inc/postithelper.hxx')
-rw-r--r-- | sw/inc/postithelper.hxx | 48 |
1 files changed, 13 insertions, 35 deletions
diff --git a/sw/inc/postithelper.hxx b/sw/inc/postithelper.hxx index 174e103231bd..30c9606a0d4d 100644 --- a/sw/inc/postithelper.hxx +++ b/sw/inc/postithelper.hxx @@ -94,63 +94,41 @@ namespace SwPostItHelper void ImportHTML(Outliner& rOutliner, const OUString& rHtml); } -class SAL_DLLPUBLIC_RTTI SwSidebarItem +class SwAnnotationItem final { public: VclPtr<sw::annotation::SwAnnotationWin> mpPostIt; bool mbShow; bool mbFocus; bool mbPendingLayout; - SwPostItHelper::SwLayoutStatus mLayoutStatus; SwLayoutInfo maLayoutInfo; - SwSidebarItem( const bool aFocus); - - virtual ~SwSidebarItem(); - - SwSidebarItem(SwSidebarItem const &) = default; - SwSidebarItem(SwSidebarItem &&) = default; - SwSidebarItem & operator =(SwSidebarItem const &) = default; - SwSidebarItem & operator =(SwSidebarItem &&) = default; - - virtual SwPosition GetAnchorPosition() const = 0; - virtual bool UseElement(SwRootFrame const&, IDocumentRedlineAccess const&) = 0; - virtual const SwFormatField& GetFormatField() const = 0; - virtual SwFormatField& GetFormatField() = 0; - virtual const SfxBroadcaster* GetBroadcaster() const = 0; - virtual VclPtr<sw::annotation::SwAnnotationWin> GetSidebarWindow( SwEditWin& rEditWin, - SwPostItMgr& aMgr) = 0; -}; - -class SwAnnotationItem final : public SwSidebarItem -{ -public: SwAnnotationItem( SwFormatField& rFormatField, - const bool aFocus) - : SwSidebarItem( aFocus ) - , mrFormatField( rFormatField ) - { - } + const bool aFocus); + virtual ~SwAnnotationItem(); + + SwAnnotationItem(SwAnnotationItem const &) = default; + SwAnnotationItem(SwAnnotationItem &&) = default; - virtual SwPosition GetAnchorPosition() const override; - virtual bool UseElement(SwRootFrame const&, IDocumentRedlineAccess const&) override; - virtual const SwFormatField& GetFormatField() const override + SwPosition GetAnchorPosition() const; + bool UseElement(SwRootFrame const&, IDocumentRedlineAccess const&); + const SwFormatField& GetFormatField() const { return mrFormatField; } - SwFormatField& GetFormatField() override + SwFormatField& GetFormatField() { return mrFormatField; } - virtual const SfxBroadcaster* GetBroadcaster() const override + const SfxBroadcaster* GetBroadcaster() const { return &mrFormatField; } - virtual VclPtr<sw::annotation::SwAnnotationWin> GetSidebarWindow( + VclPtr<sw::annotation::SwAnnotationWin> GetSidebarWindow( SwEditWin& rEditWin, - SwPostItMgr& aMgr ) override; + SwPostItMgr& aMgr ); private: SwFormatField& mrFormatField; |