diff options
Diffstat (limited to 'sw/source/uibase/sidebar/PageHeaderPanel.cxx')
-rw-r--r-- | sw/source/uibase/sidebar/PageHeaderPanel.cxx | 41 |
1 files changed, 15 insertions, 26 deletions
diff --git a/sw/source/uibase/sidebar/PageHeaderPanel.cxx b/sw/source/uibase/sidebar/PageHeaderPanel.cxx index 70e3f03c97c3..e0706f9c7698 100644 --- a/sw/source/uibase/sidebar/PageHeaderPanel.cxx +++ b/sw/source/uibase/sidebar/PageHeaderPanel.cxx @@ -19,6 +19,7 @@ #include <sal/config.h> #include <svl/intitem.hxx> #include <svl/eitem.hxx> +#include <svl/itemset.hxx> #include <svx/dlgutil.hxx> #include <svx/rulritem.hxx> #include <svx/svdtrans.hxx> @@ -33,19 +34,16 @@ namespace sw::sidebar{ -VclPtr<vcl::Window> PageHeaderPanel::Create( - vcl::Window* pParent, - const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rxFrame, +std::unique_ptr<PanelLayout> PageHeaderPanel::Create( + weld::Widget* pParent, SfxBindings* pBindings) { if( pParent == nullptr ) throw ::com::sun::star::lang::IllegalArgumentException("no parent window given to PageHeaderPanel::Create", nullptr, 0); - if( !rxFrame.is() ) - throw ::com::sun::star::lang::IllegalArgumentException("no XFrame given to PageHeaderPanel::Create", nullptr, 0); if( pBindings == nullptr ) throw ::com::sun::star::lang::IllegalArgumentException("no SfxBindings given to PageHeaderPanel::Create", nullptr, 0); - return VclPtr<PageHeaderPanel>::Create(pParent, rxFrame, pBindings); + return std::make_unique<PageHeaderPanel>(pParent, pBindings); } void PageHeaderPanel::SetMarginsAndSpacingFieldUnit() @@ -55,11 +53,10 @@ void PageHeaderPanel::SetMarginsAndSpacingFieldUnit() } PageHeaderPanel::PageHeaderPanel( - vcl::Window* pParent, - const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame >& rxFrame, + weld::Widget* pParent, SfxBindings* pBindings ) : - PanelLayout(pParent, "PageHeaderPanel", "modules/swriter/ui/pageheaderpanel.ui", rxFrame), + PanelLayout(pParent, "PageHeaderPanel", "modules/swriter/ui/pageheaderpanel.ui"), mpBindings( pBindings ), maHFToggleController(SID_ATTR_PAGE_HEADER, *pBindings, *this), maMetricController(SID_ATTR_METRIC, *pBindings,*this), @@ -67,7 +64,6 @@ PageHeaderPanel::PageHeaderPanel( maHeaderSpacingController(SID_ATTR_PAGE_HEADER_SPACING, *pBindings, *this), maHeaderLayoutController(SID_ATTR_PAGE_HEADER_LAYOUT, *pBindings, *this), meFUnit(GetModuleFieldUnit()), - aCustomEntry(), mpHeaderItem( new SfxBoolItem(SID_ATTR_PAGE_HEADER) ), mpHeaderLRMarginItem( new SvxLongLRSpaceItem(0, 0, SID_ATTR_PAGE_HEADER_LRMARGIN)), mpHeaderSpacingItem( new SvxLongULSpaceItem(0, 0, SID_ATTR_PAGE_HEADER_SPACING)), @@ -83,18 +79,11 @@ PageHeaderPanel::PageHeaderPanel( PageHeaderPanel::~PageHeaderPanel() { - disposeOnce(); -} - -void PageHeaderPanel::dispose() -{ mxHeaderToggle.reset(); mxHeaderSpacingLB.reset(); mxHeaderLayoutLB.reset(); mxHeaderMarginPresetLB.reset(); mxCustomEntry.reset(); - - PanelLayout::dispose(); } FieldUnit PageHeaderPanel::GetCurrentUnit(SfxItemState eState, const SfxPoolItem* pState) @@ -115,7 +104,7 @@ void PageHeaderPanel::Initialize() SetMarginsAndSpacingFieldUnit(); - aCustomEntry = mxCustomEntry->get_label(); + m_aCustomEntry = mxCustomEntry->get_label(); mxHeaderToggle->connect_toggled( LINK(this, PageHeaderPanel, HeaderToggleHdl) ); mxHeaderMarginPresetLB->connect_changed( LINK(this, PageHeaderPanel, HeaderLRMarginHdl)); mxHeaderSpacingLB->connect_changed( LINK(this, PageHeaderPanel, HeaderSpacingHdl)); @@ -156,15 +145,15 @@ void PageHeaderPanel::UpdateMarginControl() if (mxHeaderMarginPresetLB->get_id(i).toUInt32() == nLeft) { mxHeaderMarginPresetLB->set_active(i); - int nCustomEntry = mxHeaderMarginPresetLB->find_text(aCustomEntry); + int nCustomEntry = mxHeaderMarginPresetLB->find_text(m_aCustomEntry); if (nCustomEntry != -1) mxHeaderMarginPresetLB->remove(nCustomEntry); return; } } } - mxHeaderMarginPresetLB->append_text(aCustomEntry); - mxHeaderMarginPresetLB->set_active_text(aCustomEntry); + mxHeaderMarginPresetLB->append_text(m_aCustomEntry); + mxHeaderMarginPresetLB->set_active_text(m_aCustomEntry); } void PageHeaderPanel::UpdateSpacingControl() @@ -176,14 +165,14 @@ void PageHeaderPanel::UpdateSpacingControl() if (mxHeaderSpacingLB->get_id(i).toUInt32() == nBottom) { mxHeaderSpacingLB->set_active(i); - int nCustomEntry = mxHeaderSpacingLB->find_text(aCustomEntry); + int nCustomEntry = mxHeaderSpacingLB->find_text(m_aCustomEntry); if (nCustomEntry != -1) mxHeaderSpacingLB->remove(nCustomEntry); return; } } - mxHeaderSpacingLB->append_text(aCustomEntry); - mxHeaderSpacingLB->set_active_text(aCustomEntry); + mxHeaderSpacingLB->append_text(m_aCustomEntry); + mxHeaderSpacingLB->set_active_text(m_aCustomEntry); } void PageHeaderPanel::UpdateLayoutControl() @@ -197,7 +186,7 @@ void PageHeaderPanel::NotifyItemUpdate( const SfxItemState eState, const SfxPoolItem* pState) { - if (IsDisposed()) + if (!mxHeaderToggle) //disposed return; switch(nSid) @@ -260,7 +249,7 @@ void PageHeaderPanel::NotifyItemUpdate( } } -IMPL_LINK_NOARG( PageHeaderPanel, HeaderToggleHdl, weld::ToggleButton&, void ) +IMPL_LINK_NOARG( PageHeaderPanel, HeaderToggleHdl, weld::Toggleable&, void ) { bool IsChecked = mxHeaderToggle->get_active(); mpHeaderItem->SetValue(IsChecked); |