summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2022-05-26 15:52:38 +0100
committerCaolán McNamara <caolanm@redhat.com>2022-05-30 17:56:45 +0200
commit9104861a41e0edd07e4d74da47acb4e9d92b1ddd (patch)
treebe5de6fc3cf8996fb4d2162b07f76f4c19f40922 /sw
parent99eab75edd636fbb3e01e9a59e84b7729d999738 (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')
-rw-r--r--sw/source/uibase/docvw/FrameControlsManager.cxx30
-rw-r--r--sw/source/uibase/docvw/PageBreakWin.cxx174
-rw-r--r--sw/source/uibase/inc/FrameControl.hxx3
-rw-r--r--sw/source/uibase/inc/PageBreakWin.hxx62
-rw-r--r--sw/source/uibase/inc/uiobject.hxx4
-rw-r--r--sw/source/uibase/uitest/uiobject.cxx4
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));
}