diff options
author | Caolán McNamara <caolanm@redhat.com> | 2022-05-26 15:52:38 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2022-05-30 17:56:45 +0200 |
commit | 9104861a41e0edd07e4d74da47acb4e9d92b1ddd (patch) | |
tree | be5de6fc3cf8996fb4d2162b07f76f4c19f40922 /sw/source/uibase | |
parent | 99eab75edd636fbb3e01e9a59e84b7729d999738 (diff) |
tdf#147708 create floating menubutton on demand
and destroy when it is fully faded out. Otherwise windows runs out of
gdi handles with document with large number of page breaks
todo: rename some things in a follow up commit after this more easily
backportable commit is merged
Change-Id: Ibbe3cd00d1027ac34915c4bff73e3a330e300f38
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135027
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw/source/uibase')
-rw-r--r-- | sw/source/uibase/docvw/FrameControlsManager.cxx | 30 | ||||
-rw-r--r-- | sw/source/uibase/docvw/PageBreakWin.cxx | 174 | ||||
-rw-r--r-- | sw/source/uibase/inc/FrameControl.hxx | 3 | ||||
-rw-r--r-- | sw/source/uibase/inc/PageBreakWin.hxx | 62 | ||||
-rw-r--r-- | sw/source/uibase/inc/uiobject.hxx | 4 | ||||
-rw-r--r-- | sw/source/uibase/uitest/uiobject.cxx | 4 |
6 files changed, 168 insertions, 109 deletions
diff --git a/sw/source/uibase/docvw/FrameControlsManager.cxx b/sw/source/uibase/docvw/FrameControlsManager.cxx index ac2d58918a1c..bb2733aa60a3 100644 --- a/sw/source/uibase/docvw/FrameControlsManager.cxx +++ b/sw/source/uibase/docvw/FrameControlsManager.cxx @@ -125,7 +125,7 @@ void SwFrameControlsManager::SetPageBreakControl( const SwPageFrame* pPageFrame else { SwFrameControlPtr pNewControl = std::make_shared<SwFrameControl>( - VclPtr<SwPageBreakWin>::Create( m_pEditWin, pPageFrame ).get() ); + VclPtr<SwBreakDashedLine>::Create( m_pEditWin, pPageFrame ).get() ); const SwViewOption* pViewOpt = m_pEditWin->GetView().GetWrtShell().GetViewOptions(); pNewControl->SetReadonly( pViewOpt->IsReadonly() ); @@ -134,7 +134,7 @@ void SwFrameControlsManager::SetPageBreakControl( const SwPageFrame* pPageFrame pControl.swap( pNewControl ); } - SwPageBreakWin* pWin = static_cast<SwPageBreakWin *>(pControl->GetWindow()); + SwBreakDashedLine* pWin = static_cast<SwBreakDashedLine*>(pControl->GetWindow()); assert (pWin != nullptr); pWin->UpdatePosition(); if (!pWin->IsVisible()) @@ -213,15 +213,20 @@ void SwFrameControlsManager::SetOutlineContentVisibilityButton(const SwContentFr pWin->ShowAll(true); } -const SwPageFrame* SwFrameMenuButtonBase::GetPageFrame() const +const SwPageFrame* SwFrameMenuButtonBase::GetPageFrame(const SwFrame* pFrame) { - if (m_pFrame->IsPageFrame()) - return static_cast<const SwPageFrame*>( m_pFrame ); + if (pFrame->IsPageFrame()) + return static_cast<const SwPageFrame*>(pFrame); + + if (pFrame->IsFlyFrame()) + return static_cast<const SwFlyFrame*>(pFrame)->GetAnchorFrame()->FindPageFrame(); - if (m_pFrame->IsFlyFrame()) - return static_cast<const SwFlyFrame*>(m_pFrame)->GetAnchorFrame()->FindPageFrame(); + return pFrame->FindPageFrame(); +} - return m_pFrame->FindPageFrame(); +const SwPageFrame* SwFrameMenuButtonBase::GetPageFrame() const +{ + return SwFrameMenuButtonBase::GetPageFrame(m_pFrame); } void SwFrameMenuButtonBase::dispose() @@ -232,11 +237,16 @@ void SwFrameMenuButtonBase::dispose() InterimItemWindow::dispose(); } -void SwFrameMenuButtonBase::SetVirDevFont() +void SwFrameMenuButtonBase::SetVirDevFont(OutputDevice& rVirDev) { // Get the font and configure it vcl::Font aFont = Application::GetSettings().GetStyleSettings().GetToolFont(); - weld::SetPointFont(*m_xVirDev, aFont); + weld::SetPointFont(rVirDev, aFont); +} + +void SwFrameMenuButtonBase::SetVirDevFont() +{ + SetVirDevFont(*m_xVirDev); } SwFrameControl::SwFrameControl( const VclPtr<vcl::Window> &pWindow ) diff --git a/sw/source/uibase/docvw/PageBreakWin.cxx b/sw/source/uibase/docvw/PageBreakWin.cxx index 9b0584af8949..fe68dd1673a2 100644 --- a/sw/source/uibase/docvw/PageBreakWin.cxx +++ b/sw/source/uibase/docvw/PageBreakWin.cxx @@ -59,69 +59,91 @@ using namespace basegfx; using namespace basegfx::utils; -namespace +SwBreakDashedLine::SwBreakDashedLine(SwEditWin* pEditWin, const SwFrame *pFrame) + : SwDashedLine(pEditWin, &SwViewOption::GetPageBreakColor) + , m_pEditWin(pEditWin) + , m_pFrame(pFrame) { - class SwBreakDashedLine : public SwDashedLine - { - private: - VclPtr<SwPageBreakWin> m_pWin; + set_id("PageBreak"); // for uitest +} - public: - SwBreakDashedLine( vcl::Window* pParent, Color& ( *pColorFn )(), SwPageBreakWin* pWin ) : - SwDashedLine( pParent, pColorFn ), - m_pWin( pWin ) {}; - virtual ~SwBreakDashedLine() override { disposeOnce(); } - virtual void dispose() override { m_pWin.clear(); SwDashedLine::dispose(); } +SwPageBreakWin& SwBreakDashedLine::GetOrCreateWin() +{ + if (!m_pWin) + { + m_pWin = VclPtr<SwPageBreakWin>::Create(this, m_pEditWin, m_pFrame); + m_pWin->SetPosSizePixel(m_aBtnRect.TopLeft(), m_aBtnRect.GetSize()); + m_pWin->SetZOrder(this, ZOrderFlags::Before); + } + return *m_pWin; +} - virtual void MouseMove( const MouseEvent& rMEvt ) override; - }; +void SwBreakDashedLine::DestroyWin() +{ + m_pWin.disposeAndClear(); +} - void SwBreakDashedLine::MouseMove( const MouseEvent& rMEvt ) +void SwBreakDashedLine::MouseMove( const MouseEvent& rMEvt ) +{ + if ( rMEvt.IsLeaveWindow() ) { - if ( rMEvt.IsLeaveWindow() ) - { - // don't fade if we just move to the 'button' - Point aEventPos( GetPosPixel() + rMEvt.GetPosPixel() ); - if ( !m_pWin->Contains( aEventPos ) || !m_pWin->IsVisible() ) - m_pWin->Fade( false ); - } - else if ( !m_pWin->IsVisible() ) - { - m_pWin->Fade( true ); - } + // don't fade if we just move to the 'button' + Point aEventPos( GetPosPixel() + rMEvt.GetPosPixel() ); + if (m_pWin && (!Contains(aEventPos) || !m_pWin->IsVisible())) + m_pWin->Fade(false); + } + else if (!m_pWin || !m_pWin->IsVisible()) + { + GetOrCreateWin().Fade(true); + } - if ( !rMEvt.IsSynthetic() && !m_pWin->IsVisible() ) - { - m_pWin->UpdatePosition( rMEvt.GetPosPixel() ); - } + if (!rMEvt.IsSynthetic() && (!m_pWin || !m_pWin->IsVisible())) + { + UpdatePosition(rMEvt.GetPosPixel()); } } -SwPageBreakWin::SwPageBreakWin( SwEditWin* pEditWin, const SwFrame *pFrame ) : - SwFrameMenuButtonBase(pEditWin, pFrame, "modules/swriter/ui/pbmenubutton.ui", "PBMenuButton"), +void SwBreakDashedLine::ShowAll(bool bShow) +{ + Show(bShow); +} + +void SwBreakDashedLine::SetReadonly(bool bReadonly) +{ + ShowAll(!bReadonly); +} + +bool SwBreakDashedLine::Contains(const Point &rDocPt) const +{ + if (m_aBtnRect.Contains(rDocPt)) + return true; + + ::tools::Rectangle aLineRect(GetPosPixel(), GetSizePixel()); + return aLineRect.Contains(rDocPt); +} + +SwPageBreakWin::SwPageBreakWin(SwBreakDashedLine* pLine, SwEditWin* pEditWin, const SwFrame *pFrame) : + InterimItemWindow(pEditWin, "modules/swriter/ui/pbmenubutton.ui", "PBMenuButton"), m_xMenuButton(m_xBuilder->weld_menu_button("menubutton")), - m_pLine( nullptr ), + m_pLine(pLine), + m_pEditWin(pEditWin), + m_pFrame(pFrame), m_bIsAppearing( false ), m_nFadeRate( 100 ), m_nDelayAppearing( 0 ), m_aFadeTimer("SwPageBreakWin m_aFadeTimer"), m_bDestroyed( false ) { - set_id("PageBreak"); // for uitest - m_xMenuButton->connect_toggled(LINK(this, SwPageBreakWin, ToggleHdl)); m_xMenuButton->connect_selected(LINK(this, SwPageBreakWin, SelectHdl)); m_xMenuButton->set_accessible_name(SwResId(STR_PAGE_BREAK_BUTTON)); m_xVirDev = m_xMenuButton->create_virtual_device(); - SetVirDevFont(); + SwFrameMenuButtonBase::SetVirDevFont(*m_xVirDev); // Use pixels for the rest of the drawing m_xVirDev->SetMapMode( MapMode ( MapUnit::MapPixel ) ); - // Create the line control - m_pLine = VclPtr<SwBreakDashedLine>::Create( GetEditWin(), &SwViewOption::GetPageBreakColor, this ); - m_aFadeTimer.SetTimeout( 50 ); m_aFadeTimer.SetInvokeHandler( LINK( this, SwPageBreakWin, FadeHandler ) ); } @@ -136,10 +158,12 @@ void SwPageBreakWin::dispose() m_bDestroyed = true; m_aFadeTimer.Stop(); m_xVirDev.disposeAndClear(); - m_pLine.disposeAndClear(); + + m_pLine.clear(); + m_pEditWin.clear(); m_xMenuButton.reset(); - SwFrameMenuButtonBase::dispose(); + InterimItemWindow::dispose(); } void SwPageBreakWin::PaintButton() @@ -241,26 +265,27 @@ static SvxBreak lcl_GetBreakItem(const SwContentFrame* pCnt) IMPL_LINK(SwPageBreakWin, SelectHdl, const OString&, rIdent, void) { - SwFrameControlPtr pThis = GetEditWin()->GetFrameControlsManager( ).GetControl( FrameControlType::PageBreak, GetFrame() ); + SwFrameControlPtr pFrameControl = m_pEditWin->GetFrameControlsManager().GetControl(FrameControlType::PageBreak, m_pFrame); - execute(rIdent); + m_pLine->execute(rIdent); // Only fade if there is more than this temporary shared pointer: // The main reference has been deleted due to a page break removal - if ( pThis.use_count() > 1 ) + if (pFrameControl.use_count() > 1) Fade( false ); } -void SwPageBreakWin::execute(std::string_view rIdent) +void SwBreakDashedLine::execute(std::string_view rIdent) { + const SwPageFrame* pPageFrame = SwFrameMenuButtonBase::GetPageFrame(m_pFrame); // Is there a PageBefore break on this page? - SwContentFrame *pCnt = const_cast<SwContentFrame*>(GetPageFrame()->FindFirstBodyContent()); + SwContentFrame *pCnt = const_cast<SwContentFrame*>(pPageFrame->FindFirstBodyContent()); SvxBreak eBreak = lcl_GetBreakItem( pCnt ); // Also check the previous page - to see if there is a PageAfter break SwContentFrame *pPrevCnt = nullptr; SvxBreak ePrevBreak = SvxBreak::NONE; - const SwPageFrame* pPrevPage = static_cast<const SwPageFrame*>(GetPageFrame()->GetPrev()); + const SwPageFrame* pPrevPage = static_cast<const SwPageFrame*>(pPageFrame->GetPrev()); if ( pPrevPage ) { pPrevCnt = const_cast<SwContentFrame*>(pPrevPage->FindLastBodyContent()); @@ -269,9 +294,7 @@ void SwPageBreakWin::execute(std::string_view rIdent) if (pCnt && rIdent == "edit") { - SwEditWin* pEditWin = GetEditWin(); - - SwWrtShell& rSh = pEditWin->GetView().GetWrtShell(); + SwWrtShell& rSh = m_pEditWin->GetView().GetWrtShell(); bool bOldLock = rSh.IsViewLocked(); rSh.LockView( true ); @@ -290,8 +313,8 @@ void SwPageBreakWin::execute(std::string_view rIdent) rSh.SetSelection( rNd ); - SfxStringItem aItem(pEditWin->GetView().GetPool().GetWhich(FN_FORMAT_TABLE_DLG), "textflow"); - pEditWin->GetView().GetViewFrame()->GetDispatcher()->ExecuteList( + SfxStringItem aItem(m_pEditWin->GetView().GetPool().GetWhich(FN_FORMAT_TABLE_DLG), "textflow"); + m_pEditWin->GetView().GetViewFrame()->GetDispatcher()->ExecuteList( FN_FORMAT_TABLE_DLG, SfxCallMode::SYNCHRON | SfxCallMode::RECORD, { &aItem }); @@ -301,15 +324,15 @@ void SwPageBreakWin::execute(std::string_view rIdent) else { SwPaM aPaM( rNd ); - SwPaMItem aPaMItem( pEditWin->GetView().GetPool( ).GetWhich( FN_PARAM_PAM ), &aPaM ); + SwPaMItem aPaMItem( m_pEditWin->GetView().GetPool( ).GetWhich( FN_PARAM_PAM ), &aPaM ); SfxStringItem aItem( SID_PARA_DLG, "textflow" ); - pEditWin->GetView().GetViewFrame()->GetDispatcher()->ExecuteList( + m_pEditWin->GetView().GetViewFrame()->GetDispatcher()->ExecuteList( SID_PARA_DLG, SfxCallMode::SYNCHRON | SfxCallMode::RECORD, { &aItem, &aPaMItem }); } rSh.LockView( bOldLock ); - pEditWin->GrabFocus( ); + m_pEditWin->GrabFocus( ); } else if (pCnt && rIdent == "delete") { @@ -320,7 +343,7 @@ void SwPageBreakWin::execute(std::string_view rIdent) rNd.GetDoc().GetIDocumentUndoRedo( ).StartUndo( SwUndoId::UI_DELETE_PAGE_BREAK, nullptr ); SfxItemSetFixed<RES_PAGEDESC, RES_BREAK> aSet( - GetEditWin()->GetView().GetWrtShell().GetAttrPool()); + m_pEditWin->GetView().GetWrtShell().GetAttrPool()); aSet.Put( SwFormatPageDesc( nullptr ) ); // This break could be from the current paragraph, if it has a PageBefore break. @@ -328,7 +351,7 @@ void SwPageBreakWin::execute(std::string_view rIdent) aSet.Put( SvxFormatBreakItem( SvxBreak::NONE, RES_BREAK ) ); rNd.GetDoc().getIDocumentContentOperations().InsertItemSet( - SwPaM(rNd), aSet, SetAttrMode::DEFAULT, GetPageFrame()->getRootFrame()); + SwPaM(rNd), aSet, SetAttrMode::DEFAULT, pPageFrame->getRootFrame()); // This break could be from the previous paragraph, if it has a PageAfter break. if ( ePrevBreak == SvxBreak::PageAfter ) @@ -346,7 +369,7 @@ void SwPageBreakWin::execute(std::string_view rIdent) } } -void SwPageBreakWin::UpdatePosition(const std::optional<Point>& xEvtPt) +void SwBreakDashedLine::UpdatePosition(const std::optional<Point>& xEvtPt) { if ( xEvtPt ) { @@ -355,7 +378,7 @@ void SwPageBreakWin::UpdatePosition(const std::optional<Point>& xEvtPt) m_xMousePt = xEvtPt; } - const SwPageFrame* pPageFrame = GetPageFrame(); + const SwPageFrame* pPageFrame = SwFrameMenuButtonBase::GetPageFrame(m_pFrame); const SwFrame* pPrevPage = pPageFrame; do { @@ -408,34 +431,20 @@ void SwPageBreakWin::UpdatePosition(const std::optional<Point>& xEvtPt) } // Set the button position - Point aBtnPos( nBtnLeft, nYLineOffset - BUTTON_HEIGHT / 2 ); - SetPosSizePixel( aBtnPos, aBtnSize ); - m_xVirDev->SetOutputSizePixel(aBtnSize); + m_aBtnRect = ::tools::Rectangle(Point(nBtnLeft, nYLineOffset - BUTTON_HEIGHT / 2), aBtnSize); + if (m_pWin) + m_pWin->SetRectanglePixel(m_aBtnRect); // Set the line position Point aLinePos( nLineLeft, nYLineOffset - 5 ); Size aLineSize( nLineRight - nLineLeft, 10 ); - m_pLine->SetPosSizePixel( aLinePos, aLineSize ); -} - -void SwPageBreakWin::ShowAll( bool bShow ) -{ - m_pLine->Show( bShow ); + SetPosSizePixel(aLinePos, aLineSize); } -bool SwPageBreakWin::Contains( const Point &rDocPt ) const +void SwPageBreakWin::SetRectanglePixel(const ::tools::Rectangle& rRect) { - ::tools::Rectangle aRect( GetPosPixel(), GetSizePixel() ); - if ( aRect.Contains( rDocPt ) ) - return true; - - ::tools::Rectangle aLineRect( m_pLine->GetPosPixel(), m_pLine->GetSizePixel() ); - return aLineRect.Contains( rDocPt ); -} - -void SwPageBreakWin::SetReadonly( bool bReadonly ) -{ - ShowAll( !bReadonly ); + SetPosSizePixel(rRect.TopLeft(), rRect.GetSize()); + m_xVirDev->SetOutputSizePixel(rRect.GetSize()); } void SwPageBreakWin::Fade( bool bFadeIn ) @@ -474,10 +483,13 @@ IMPL_LINK_NOARG(SwPageBreakWin, FadeHandler, Timer *, void) if ( m_nFadeRate != 100 && !IsVisible() ) Show(); else if ( m_nFadeRate == 100 && IsVisible( ) ) + { Hide(); + m_pLine->DestroyWin(); + } else { - UpdatePosition(); + m_pLine->UpdatePosition(); PaintButton(); } @@ -485,7 +497,7 @@ IMPL_LINK_NOARG(SwPageBreakWin, FadeHandler, Timer *, void) m_aFadeTimer.Start(); } -FactoryFunction SwPageBreakWin::GetUITestFactory() const +FactoryFunction SwBreakDashedLine::GetUITestFactory() const { return PageBreakUIObject::create; } diff --git a/sw/source/uibase/inc/FrameControl.hxx b/sw/source/uibase/inc/FrameControl.hxx index e53c765bf831..561dac78fcb7 100644 --- a/sw/source/uibase/inc/FrameControl.hxx +++ b/sw/source/uibase/inc/FrameControl.hxx @@ -73,6 +73,9 @@ public: virtual const SwFrame* GetFrame() override { return m_pFrame; } virtual SwEditWin* GetEditWin() override { return m_pEditWin; } const SwPageFrame* GetPageFrame() const; + + static const SwPageFrame* GetPageFrame(const SwFrame* pFrame); + static void SetVirDevFont(OutputDevice& rDevice); }; #endif diff --git a/sw/source/uibase/inc/PageBreakWin.hxx b/sw/source/uibase/inc/PageBreakWin.hxx index 53d2eec4c1a9..1806290d1817 100644 --- a/sw/source/uibase/inc/PageBreakWin.hxx +++ b/sw/source/uibase/inc/PageBreakWin.hxx @@ -10,6 +10,7 @@ #define INCLUDED_SW_SOURCE_UIBASE_INC_PAGEBREAKWIN_HXX #include "edtwin.hxx" +#include "DashedLine.hxx" #include "FrameControl.hxx" #include <vcl/timer.hxx> #include <optional> @@ -17,39 +18,72 @@ class Menu; class SwPageFrame; +class SwPageBreakWin; + /** Class for the page break control window. This control shows a line indicating a manual page break and a button providing a few actions on that page break. */ -class SwPageBreakWin final : public SwFrameMenuButtonBase +class SwBreakDashedLine : public SwDashedLine, public ISwFrameControl +{ +private: + VclPtr<SwPageBreakWin> m_pWin; + VclPtr<SwEditWin> m_pEditWin; + std::optional<Point> m_xMousePt; + ::tools::Rectangle m_aBtnRect; + const SwFrame* m_pFrame; + + SwPageBreakWin& GetOrCreateWin(); + +public: + SwBreakDashedLine(SwEditWin* pEditWin, const SwFrame *pFrame); + + virtual ~SwBreakDashedLine() override { disposeOnce(); } + virtual void dispose() override { m_pWin.disposeAndClear(); m_pEditWin.clear(); SwDashedLine::dispose(); } + + virtual void MouseMove(const MouseEvent& rMEvt) override; + + virtual const SwFrame* GetFrame() override { return m_pFrame; } + virtual SwEditWin* GetEditWin() override { return m_pEditWin; } + virtual void ShowAll(bool bShow) override; + virtual bool Contains(const Point &rDocPt) const override; + virtual void SetReadonly(bool bReadonly) override; + + void execute(std::string_view rIdent); + + virtual FactoryFunction GetUITestFactory() const override; + + void UpdatePosition(const std::optional<Point>& xEvtPt = std::optional<Point>()); + void DestroyWin(); +}; + +class SwPageBreakWin final : public InterimItemWindow { std::unique_ptr<weld::MenuButton> m_xMenuButton; - VclPtr<vcl::Window> m_pLine; + VclPtr<SwBreakDashedLine> m_pLine; + VclPtr<SwEditWin> m_pEditWin; + VclPtr<VirtualDevice> m_xVirDev; + const SwFrame* m_pFrame; bool m_bIsAppearing; int m_nFadeRate; int m_nDelayAppearing; ///< Before we show the control, let it transparent for a few timer ticks to avoid appearing with every mouse over. Timer m_aFadeTimer; bool m_bDestroyed; - std::optional<Point> m_xMousePt; - public: - SwPageBreakWin( SwEditWin* pEditWin, const SwFrame *pFrame ); + SwPageBreakWin(SwBreakDashedLine* pLine, SwEditWin* pEditWin, const SwFrame *pFrame); virtual ~SwPageBreakWin() override; virtual void dispose() override; - void execute(std::string_view rIdent); - void UpdatePosition(const std::optional<Point>& xEvtPt = std::optional<Point>()); - - virtual void ShowAll( bool bShow ) override; - virtual bool Contains( const Point &rDocPt ) const override; - - void SetReadonly( bool bReadonly ) override; - void Fade( bool bFadeIn ); - virtual FactoryFunction GetUITestFactory() const override; + void SetRectanglePixel(const ::tools::Rectangle& rRect); + + const SwPageFrame* GetPageFrame() const + { + return SwFrameMenuButtonBase::GetPageFrame(m_pFrame); + } private: DECL_LINK( FadeHandler, Timer *, void ); diff --git a/sw/source/uibase/inc/uiobject.hxx b/sw/source/uibase/inc/uiobject.hxx index 23a141412e45..8911ef2a87e4 100644 --- a/sw/source/uibase/inc/uiobject.hxx +++ b/sw/source/uibase/inc/uiobject.hxx @@ -65,7 +65,7 @@ class PageBreakUIObject final : public WindowUIObject { public: - PageBreakUIObject(const VclPtr<SwPageBreakWin>& xEditWin); + PageBreakUIObject(const VclPtr<SwBreakDashedLine>& xEditWin); virtual void execute(const OUString& rAction, const StringMap& rParameters) override; @@ -76,7 +76,7 @@ private: virtual OUString get_name() const override; - VclPtr<SwPageBreakWin> mxPageBreakUIObject; + VclPtr<SwBreakDashedLine> mxPageBreakUIObject; }; diff --git a/sw/source/uibase/uitest/uiobject.cxx b/sw/source/uibase/uitest/uiobject.cxx index 52b27ab3955e..2e539c0a1308 100644 --- a/sw/source/uibase/uitest/uiobject.cxx +++ b/sw/source/uibase/uitest/uiobject.cxx @@ -219,7 +219,7 @@ OUString CommentUIObject::get_name() const return "CommentUIObject"; } -PageBreakUIObject::PageBreakUIObject(const VclPtr<SwPageBreakWin>& xPageBreakUIObject): +PageBreakUIObject::PageBreakUIObject(const VclPtr<SwBreakDashedLine>& xPageBreakUIObject): WindowUIObject(xPageBreakUIObject), mxPageBreakUIObject(xPageBreakUIObject) { @@ -236,7 +236,7 @@ void PageBreakUIObject::execute(const OUString& rAction, std::unique_ptr<UIObject> PageBreakUIObject::create(vcl::Window* pWindow) { - SwPageBreakWin* pPageBreakWin = dynamic_cast<SwPageBreakWin*>(pWindow); + SwBreakDashedLine* pPageBreakWin = dynamic_cast<SwBreakDashedLine*>(pWindow); assert(pPageBreakWin); return std::unique_ptr<UIObject>(new PageBreakUIObject(pPageBreakWin)); } |