summaryrefslogtreecommitdiff
path: root/sw/source/uibase/sidebar/PageHeaderPanel.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/uibase/sidebar/PageHeaderPanel.cxx')
-rw-r--r--sw/source/uibase/sidebar/PageHeaderPanel.cxx41
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);