diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-05-22 10:38:34 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-05-24 14:24:06 +0200 |
commit | eeaf6dee2d278eaa037d95a756ad0ffab3314bc2 (patch) | |
tree | a997fee717ad079fb59ff0901d418938ab7585f7 /sw/source/ui | |
parent | c10928e703366341ab912c42e8959a087a7fa9ff (diff) |
rework custom widget welding to enable inheritence
Change-Id: I0d391b3fe9d2d610ae41e2a03cd2e195a866e103
Reviewed-on: https://gerrit.libreoffice.org/54681
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw/source/ui')
-rw-r--r-- | sw/source/ui/envelp/envfmt.cxx | 4 | ||||
-rw-r--r-- | sw/source/ui/envelp/envfmt.hxx | 3 | ||||
-rw-r--r-- | sw/source/ui/envelp/envlop1.cxx | 33 | ||||
-rw-r--r-- | sw/source/ui/envelp/labfmt.cxx | 42 | ||||
-rw-r--r-- | sw/source/ui/envelp/labfmt.hxx | 16 | ||||
-rw-r--r-- | sw/source/ui/misc/num.cxx | 14 | ||||
-rw-r--r-- | sw/source/ui/misc/outline.cxx | 17 | ||||
-rw-r--r-- | sw/source/ui/table/autoformatpreview.cxx | 19 | ||||
-rw-r--r-- | sw/source/ui/table/instable.cxx | 16 | ||||
-rw-r--r-- | sw/source/ui/table/tautofmt.cxx | 32 |
10 files changed, 93 insertions, 103 deletions
diff --git a/sw/source/ui/envelp/envfmt.cxx b/sw/source/ui/envelp/envfmt.cxx index 2862d520c57e..b46b795fdaac 100644 --- a/sw/source/ui/envelp/envfmt.cxx +++ b/sw/source/ui/envelp/envfmt.cxx @@ -126,7 +126,7 @@ SwEnvFormatPage::SwEnvFormatPage(TabPageParent pParent, const SfxItemSet& rSet) , m_xSizeFormatBox(m_xBuilder->weld_combo_box_text("format")) , m_xSizeWidthField(m_xBuilder->weld_metric_spin_button("width", FUNIT_CM)) , m_xSizeHeightField(m_xBuilder->weld_metric_spin_button("height", FUNIT_CM)) - , m_xPreview(new SwEnvPreview(m_xBuilder->weld_drawing_area("preview"))) + , m_xPreview(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreview)) { SetExchangeSupport(); @@ -180,7 +180,7 @@ SwEnvFormatPage::SwEnvFormatPage(TabPageParent pParent, const SfxItemSet& rSet) void SwEnvFormatPage::Init(SwEnvDlg* pDialog) { m_pDialog = pDialog; - m_xPreview->SetDialog(m_pDialog); + m_aPreview.SetDialog(m_pDialog); } SwEnvFormatPage::~SwEnvFormatPage() diff --git a/sw/source/ui/envelp/envfmt.hxx b/sw/source/ui/envelp/envfmt.hxx index 20d445f14c61..5fa0bda77de6 100644 --- a/sw/source/ui/envelp/envfmt.hxx +++ b/sw/source/ui/envelp/envfmt.hxx @@ -29,6 +29,7 @@ class SwEnvFormatPage : public SfxTabPage SwEnvDlg* m_pDialog; std::vector<sal_uInt16> m_aIDs; + SwEnvPreview m_aPreview; std::unique_ptr<weld::MetricSpinButton> m_xAddrLeftField; std::unique_ptr<weld::MetricSpinButton> m_xAddrTopField; std::unique_ptr<weld::MenuButton> m_xAddrEditButton; @@ -38,7 +39,7 @@ class SwEnvFormatPage : public SfxTabPage std::unique_ptr<weld::ComboBoxText> m_xSizeFormatBox; std::unique_ptr<weld::MetricSpinButton> m_xSizeWidthField; std::unique_ptr<weld::MetricSpinButton> m_xSizeHeightField; - std::unique_ptr<SwEnvPreview> m_xPreview; + std::unique_ptr<weld::CustomWeld> m_xPreview; DECL_LINK(ModifyHdl, weld::MetricSpinButton&, void); DECL_LINK(AddrEditHdl, const OString&, void); diff --git a/sw/source/ui/envelp/envlop1.cxx b/sw/source/ui/envelp/envlop1.cxx index 9d25bf201544..756a61a6465d 100644 --- a/sw/source/ui/envelp/envlop1.cxx +++ b/sw/source/ui/envelp/envlop1.cxx @@ -44,25 +44,20 @@ using namespace ::com::sun::star::container; using namespace ::com::sun::star::uno; using namespace ::com::sun::star; -SwEnvPreview::SwEnvPreview(weld::DrawingArea* pDrawingArea) - : m_xDrawingArea(pDrawingArea) - , m_pDialog(nullptr) +SwEnvPreview::SwEnvPreview() + : m_pDialog(nullptr) { - m_xDrawingArea->set_size_request(m_xDrawingArea->get_approximate_digit_width() * 20, - m_xDrawingArea->get_text_height() * 8); - m_xDrawingArea->connect_size_allocate(LINK(this, SwEnvPreview, DoResize)); - m_xDrawingArea->connect_draw(LINK(this, SwEnvPreview, DoPaint)); } -IMPL_LINK(SwEnvPreview, DoResize, const Size&, rSize, void) +void SwEnvPreview::SetDrawingArea(weld::DrawingArea* pDrawingArea) { - m_aSize = rSize; + pDrawingArea->set_size_request(pDrawingArea->get_approximate_digit_width() * 20, + pDrawingArea->get_text_height() * 8); + CustomWidgetController::SetDrawingArea(pDrawingArea); } -IMPL_LINK(SwEnvPreview, DoPaint, weld::DrawingArea::draw_args, aPayload, void) +void SwEnvPreview::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) { - vcl::RenderContext& rRenderContext = aPayload.first; - const StyleSettings& rSettings = rRenderContext.GetSettings().GetStyleSettings(); rRenderContext.SetBackground(rRenderContext.GetSettings().GetStyleSettings().GetDialogColor()); rRenderContext.Erase(); @@ -72,9 +67,11 @@ IMPL_LINK(SwEnvPreview, DoPaint, weld::DrawingArea::draw_args, aPayload, void) const long nPageW = std::max(rItem.m_nWidth, rItem.m_nHeight); const long nPageH = std::min(rItem.m_nWidth, rItem.m_nHeight); + Size aSize(GetOutputSizePixel()); + const double f = 0.8 * std::min( - double(m_aSize.Width()) / double(nPageW), - double(m_aSize.Height()) / double(nPageH)); + double(aSize.Width()) / double(nPageW), + double(aSize.Height()) / double(nPageH)); Color aBack = rSettings.GetWindowColor(); Color aFront = SwViewOption::GetFontColor(); @@ -87,8 +84,8 @@ IMPL_LINK(SwEnvPreview, DoPaint, weld::DrawingArea::draw_args, aPayload, void) // Envelope const long nW = static_cast<long>(f * nPageW); const long nH = static_cast<long>(f * nPageH); - const long nX = (m_aSize.Width () - nW) / 2; - const long nY = (m_aSize.Height() - nH) / 2; + const long nX = (aSize.Width () - nW) / 2; + const long nY = (aSize.Height() - nH) / 2; rRenderContext.SetFillColor(aBack); rRenderContext.DrawRect(tools::Rectangle(Point(nX, nY), Size(nW, nH))); @@ -196,7 +193,7 @@ SwEnvPage::SwEnvPage(TabPageParent pParent, const SfxItemSet& rSet) , m_xInsertBT(m_xBuilder->weld_button("insert")) , m_xSenderBox(m_xBuilder->weld_check_button("sender")) , m_xSenderEdit(m_xBuilder->weld_text_view("senderedit")) - , m_xPreview(new SwEnvPreview(m_xBuilder->weld_drawing_area("preview"))) + , m_xPreview(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreview)) { auto nTextBoxHeight(m_xAddrEdit->get_height_rows(10)); auto nTextBoxWidth(m_xAddrEdit->get_approximate_digit_width() * 25); @@ -216,7 +213,7 @@ void SwEnvPage::Init(SwEnvDlg* pDialog) { m_pDialog = pDialog; m_pSh = m_pDialog->pSh; - m_xPreview->SetDialog(pDialog); + m_aPreview.SetDialog(pDialog); // Install handlers m_xDatabaseLB->connect_changed(LINK(this, SwEnvPage, DatabaseHdl)); diff --git a/sw/source/ui/envelp/labfmt.cxx b/sw/source/ui/envelp/labfmt.cxx index b016700362f0..1f3b81e20c22 100644 --- a/sw/source/ui/envelp/labfmt.cxx +++ b/sw/source/ui/envelp/labfmt.cxx @@ -98,9 +98,8 @@ void DrawArrow(vcl::RenderContext& rRenderContext, const Point &rP1, const Point } -SwLabPreview::SwLabPreview(weld::DrawingArea* pWidget) - : m_xDrawingArea(pWidget) - , m_aGrayColor(COL_LIGHTGRAY) +SwLabPreview::SwLabPreview() + : m_aGrayColor(COL_LIGHTGRAY) , m_aHDistStr(SwResId(STR_HDIST)) , m_aVDistStr(SwResId(STR_VDIST)) , m_aWidthStr(SwResId(STR_WIDTH)) @@ -109,34 +108,39 @@ SwLabPreview::SwLabPreview(weld::DrawingArea* pWidget) , m_aUpperStr(SwResId(STR_UPPER)) , m_aColsStr(SwResId(STR_COLS)) , m_aRowsStr(SwResId(STR_ROWS)) + , m_lHDistWidth(0) + , m_lVDistWidth(0) + , m_lHeightWidth(0) + , m_lLeftWidth(0) + , m_lUpperWidth(0) + , m_lColsWidth(0) + , m_lXWidth(0) + , m_lXHeight(0) +{ +} + +void SwLabPreview::SetDrawingArea(weld::DrawingArea* pWidget) { pWidget->set_size_request(pWidget->get_approximate_digit_width() * 54, pWidget->get_text_height() * 15); - m_xDrawingArea->connect_size_allocate(LINK(this, SwLabPreview, DoResize)); - m_xDrawingArea->connect_draw(LINK(this, SwLabPreview, DoPaint)); - m_lHDistWidth = pWidget->get_pixel_size(m_aHDistStr).Width(); m_lVDistWidth = pWidget->get_pixel_size(m_aVDistStr).Width(); m_lHeightWidth = pWidget->get_pixel_size(m_aHeightStr).Width(); m_lLeftWidth = pWidget->get_pixel_size(m_aLeftStr).Width(); m_lUpperWidth = pWidget->get_pixel_size(m_aUpperStr).Width(); m_lColsWidth = pWidget->get_pixel_size(m_aColsStr).Width(); - m_lXHeight = pWidget->get_text_height(); m_lXWidth = pWidget->get_pixel_size(OUString('X')).Width(); -} + m_lXHeight = pWidget->get_text_height(); -IMPL_LINK(SwLabPreview, DoResize, const Size&, rSize, void) -{ - m_aSize = rSize; + CustomWidgetController::SetDrawingArea(pWidget); } -IMPL_LINK(SwLabPreview, DoPaint, weld::DrawingArea::draw_args, aPayload, void) +void SwLabPreview::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) { - vcl::RenderContext& rRenderContext = aPayload.first; - - const long lOutWPix = m_aSize.Width(); - const long lOutHPix = m_aSize.Height(); + const Size aSize(GetOutputSizePixel()); + const long lOutWPix = aSize.Width(); + const long lOutHPix = aSize.Height(); // Scale factor const double fxpix = double(lOutWPix - (2 * (m_lLeftWidth + 15))) / double(lOutWPix); @@ -276,7 +280,7 @@ IMPL_LINK(SwLabPreview, DoPaint, weld::DrawingArea::draw_args, aPayload, void) void SwLabPreview::UpdateItem(const SwLabItem& rItem) { m_aItem = rItem; - m_xDrawingArea->queue_draw(); + Invalidate(); } SwLabFormatPage::SwLabFormatPage(TabPageParent pParent, const SfxItemSet& rSet) @@ -286,7 +290,7 @@ SwLabFormatPage::SwLabFormatPage(TabPageParent pParent, const SfxItemSet& rSet) , bModified(false) , m_xMakeFI(m_xBuilder->weld_label("make")) , m_xTypeFI(m_xBuilder->weld_label("type")) - , m_xPreview(new SwLabPreview(m_xBuilder->weld_drawing_area("preview"))) + , m_xPreview(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreview)) , m_xHDistField(m_xBuilder->weld_metric_spin_button("hori", FUNIT_CM)) , m_xVDistField(m_xBuilder->weld_metric_spin_button("vert", FUNIT_CM)) , m_xWidthField(m_xBuilder->weld_metric_spin_button("width", FUNIT_CM)) @@ -355,7 +359,7 @@ IMPL_LINK_NOARG(SwLabFormatPage, PreviewHdl, Timer *, void) aPreviewIdle.Stop(); ChangeMinMax(); FillItem( aItem ); - m_xPreview->UpdateItem( aItem ); + m_aPreview.UpdateItem(aItem); } void SwLabFormatPage::ChangeMinMax() diff --git a/sw/source/ui/envelp/labfmt.hxx b/sw/source/ui/envelp/labfmt.hxx index 1be3737a1e0b..7415792f4642 100644 --- a/sw/source/ui/envelp/labfmt.hxx +++ b/sw/source/ui/envelp/labfmt.hxx @@ -22,15 +22,13 @@ #include "swuilabimp.hxx" #include <labimg.hxx> #include <vcl/idle.hxx> +#include <vcl/customweld.hxx> #include <vcl/weld.hxx> class SwLabFormatPage; -class SwLabPreview +class SwLabPreview : public weld::CustomWidgetController { - std::unique_ptr<weld::DrawingArea> m_xDrawingArea; - - Size m_aSize; Color m_aGrayColor; OUString m_aHDistStr; @@ -54,12 +52,12 @@ class SwLabPreview SwLabItem m_aItem; - DECL_LINK(DoPaint, weld::DrawingArea::draw_args, void); - DECL_LINK(DoResize, const Size& rSize, void); + virtual void SetDrawingArea(weld::DrawingArea* pDrawingArea) override; + virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) override; public: - explicit SwLabPreview(weld::DrawingArea* pDrawingArea); + SwLabPreview(); void UpdateItem(const SwLabItem& rItem); }; @@ -70,9 +68,11 @@ class SwLabFormatPage : public SfxTabPage SwLabItem aItem; bool bModified; + SwLabPreview m_aPreview; + std::unique_ptr<weld::Label> m_xMakeFI; std::unique_ptr<weld::Label> m_xTypeFI; - std::unique_ptr<SwLabPreview> m_xPreview; + std::unique_ptr<weld::CustomWeld> m_xPreview; std::unique_ptr<weld::MetricSpinButton> m_xHDistField; std::unique_ptr<weld::MetricSpinButton> m_xVDistField; std::unique_ptr<weld::MetricSpinButton> m_xWidthField; diff --git a/sw/source/ui/misc/num.cxx b/sw/source/ui/misc/num.cxx index 906d46d580f0..69e0261c494f 100644 --- a/sw/source/ui/misc/num.cxx +++ b/sw/source/ui/misc/num.cxx @@ -87,7 +87,7 @@ SwNumPositionTabPage::SwNumPositionTabPage(TabPageParent pParent, const SfxItemS , m_xIndentAtFT(m_xBuilder->weld_label("indentat")) , m_xIndentAtMF(m_xBuilder->weld_metric_spin_button("indentatmf", FUNIT_CM)) , m_xStandardPB(m_xBuilder->weld_button("standard")) - , m_xPreviewWIN(new SwNumberingPreview(m_xBuilder->weld_drawing_area("preview"))) + , m_xPreviewWIN(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreviewWIN)) { SetExchangeSupport(); @@ -131,7 +131,7 @@ SwNumPositionTabPage::SwNumPositionTabPage(TabPageParent pParent, const SfxItemS m_xLevelLB->select_text(sEntry); m_xRelativeCB->set_active(bLastRelative); - m_xPreviewWIN->SetPositionMode(); + m_aPreviewWIN.SetPositionMode(); } SwNumPositionTabPage::~SwNumPositionTabPage() @@ -380,7 +380,7 @@ void SwNumPositionTabPage::ActivatePage(const SfxItemSet& ) InitControls(); } m_xRelativeCB->set_sensitive(1 != nActNumLvl); - m_xPreviewWIN->queue_draw(); + m_aPreviewWIN.Invalidate(); } DeactivateRC SwNumPositionTabPage::DeactivatePage(SfxItemSet *_pSet) @@ -437,7 +437,7 @@ void SwNumPositionTabPage::Reset( const SfxItemSet* rSet ) pActNum = new SwNumRule(*pSaveNum); else if(*pSaveNum != *pActNum) *pActNum = *pSaveNum; - m_xPreviewWIN->SetNumRule(pActNum); + m_aPreviewWIN.SetNumRule(pActNum); InitPosAndSpaceMode(); ShowControlsDependingOnPosAndSpaceMode(); InitControls(); @@ -517,7 +517,7 @@ void SwNumPositionTabPage::SetWrtShell(SwWrtShell* pSh) m_xIndentAtMF->set_max(m_xIndentAtMF->normalize( nWidth ), FUNIT_TWIP ); const SwRect& rPrtRect = pWrtSh->GetAnyCurRect(CurRectType::Page); - m_xPreviewWIN->SetPageWidth(rPrtRect.Width()); + m_aPreviewWIN.SetPageWidth(rPrtRect.Width()); FieldUnit eMetric = ::GetDfltMetric( dynamic_cast<SwWebView*>( &pWrtSh->GetView()) != nullptr ); if(eMetric == FUNIT_MM) { @@ -872,8 +872,8 @@ IMPL_LINK_NOARG(SwNumPositionTabPage, StandardHdl, weld::Button&, void) void SwNumPositionTabPage::SetModified() { bModified = true; - m_xPreviewWIN->SetLevel(nActNumLvl); - m_xPreviewWIN->queue_draw(); + m_aPreviewWIN.SetLevel(nActNumLvl); + m_aPreviewWIN.Invalidate(); } #endif diff --git a/sw/source/ui/misc/outline.cxx b/sw/source/ui/misc/outline.cxx index 8f225ec20ba2..7595495ba044 100644 --- a/sw/source/ui/misc/outline.cxx +++ b/sw/source/ui/misc/outline.cxx @@ -400,7 +400,7 @@ SwOutlineSettingsTabPage::SwOutlineSettingsTabPage(TabPageParent pPage, , m_xPrefixED(m_xBuilder->weld_entry("prefix")) , m_xSuffixED(m_xBuilder->weld_entry("suffix")) , m_xStartEdit(m_xBuilder->weld_spin_button("startat")) - , m_xPreviewWIN(new SwNumberingPreview(m_xBuilder->weld_drawing_area("preview"))) + , m_xPreviewWIN(new weld::CustomWeld(*m_xBuilder, "preview", m_aPreviewWIN)) { SetExchangeSupport(); @@ -723,8 +723,8 @@ void SwOutlineSettingsTabPage::SetWrtShell(SwWrtShell* pShell) pNumRule = static_cast<SwOutlineTabDialog*>(GetDialogController())->GetNumRule(); pCollNames = static_cast<SwOutlineTabDialog*>(GetDialogController())->GetCollNames(); - m_xPreviewWIN->SetNumRule(pNumRule); - m_xPreviewWIN->SetOutlineNames(pCollNames); + m_aPreviewWIN.SetNumRule(pNumRule); + m_aPreviewWIN.SetOutlineNames(pCollNames); // set start value - nActLevel must be 1 here sal_uInt16 nTmpLevel = lcl_BitToLevel(nActLevel); const SwNumFormat& rNumFormat = pNumRule->Get( nTmpLevel ); @@ -1058,16 +1058,9 @@ void NumberingPreview::Paint(vcl::RenderContext& rRenderContext, const tools::Re rRenderContext.DrawOutDev(Point(0,0), aSize, Point(0,0), aSize, *pVDev); } -IMPL_LINK(SwNumberingPreview, DoResize, const Size&, rSize, void) +void SwNumberingPreview::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) { - m_aSize = rSize; -} - -IMPL_LINK(SwNumberingPreview, DoPaint, weld::DrawingArea::draw_args, aPayload, void) -{ - vcl::RenderContext& rRenderContext = aPayload.first; - - const Size aSize(rRenderContext.PixelToLogic(m_aSize)); + const Size aSize(rRenderContext.PixelToLogic(GetOutputSizePixel())); ScopedVclPtrInstance<VirtualDevice> pVDev(rRenderContext); pVDev->SetMapMode(rRenderContext.GetMapMode()); diff --git a/sw/source/ui/table/autoformatpreview.cxx b/sw/source/ui/table/autoformatpreview.cxx index 7b302a401703..61af87bdf6e6 100644 --- a/sw/source/ui/table/autoformatpreview.cxx +++ b/sw/source/ui/table/autoformatpreview.cxx @@ -28,9 +28,8 @@ #define FRAME_OFFSET 4 -AutoFormatPreview::AutoFormatPreview(weld::DrawingArea* pDrawingArea) - : mxDrawingArea(pDrawingArea) - , maCurrentData(OUString()) +AutoFormatPreview::AutoFormatPreview() + : maCurrentData(OUString()) , mbFitWidth(false) , mbRTL(false) , maStringJan(SwResId(STR_JAN)) @@ -46,14 +45,12 @@ AutoFormatPreview::AutoFormatPreview(weld::DrawingArea* pDrawingArea) mxNumFormat.reset(new SvNumberFormatter(xContext, LANGUAGE_SYSTEM)); Init(); - - mxDrawingArea->connect_size_allocate(LINK(this, AutoFormatPreview, DoResize)); - mxDrawingArea->connect_draw(LINK(this, AutoFormatPreview, DoPaint)); } -IMPL_LINK(AutoFormatPreview, DoResize, const Size&, rSize, void) +void AutoFormatPreview::Resize() { - maPreviousSize = Size(rSize.Width() - 6, rSize.Height() - 30); + Size aSize = GetOutputSizePixel(); + maPreviousSize = Size(aSize.Width() - 6, aSize.Height() - 30); mnLabelColumnWidth = (maPreviousSize.Width() - 4) / 4 - 12; mnDataColumnWidth1 = (maPreviousSize.Width() - 4 - 2 * mnLabelColumnWidth) / 3; mnDataColumnWidth2 = (maPreviousSize.Width() - 4 - 2 * mnLabelColumnWidth) / 4; @@ -413,13 +410,11 @@ void AutoFormatPreview::NotifyChange(const SwTableAutoFormat& rNewData) mbFitWidth = maCurrentData.IsJustify(); // true; //??? CalcCellArray(mbFitWidth); CalcLineMap(); - mxDrawingArea->queue_draw(); + Invalidate(); } -IMPL_LINK(AutoFormatPreview, DoPaint, weld::DrawingArea::draw_args, aPayload, void) +void AutoFormatPreview::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) { - vcl::RenderContext& rRenderContext = aPayload.first; - rRenderContext.Push(PushFlags::ALL); DrawModeFlags nOldDrawMode = rRenderContext.GetDrawMode(); diff --git a/sw/source/ui/table/instable.cxx b/sw/source/ui/table/instable.cxx index 51a9315b1760..82dff402d7dd 100644 --- a/sw/source/ui/table/instable.cxx +++ b/sw/source/ui/table/instable.cxx @@ -61,6 +61,10 @@ IMPL_LINK(SwInsTableDlg, TextFilterHdl, OUString&, rTest, bool) SwInsTableDlg::SwInsTableDlg(SwView& rView) : weld::GenericDialogController(rView.GetFrameWeld(), "modules/swriter/ui/inserttable.ui", "InsertTableDialog") + , m_aTextFilter(" .<>") + , pShell(&rView.GetWrtShell()) + , pTAutoFormat(nullptr) + , nEnteredValRepeatHeaderNF(-1) , m_xNameEdit(m_xBuilder->weld_entry("nameedit")) , m_xColNF(m_xBuilder->weld_spin_button("colspin")) , m_xRowNF(m_xBuilder->weld_spin_button("rowspin")) @@ -71,11 +75,7 @@ SwInsTableDlg::SwInsTableDlg(SwView& rView) , m_xDontSplitCB(m_xBuilder->weld_check_button("dontsplitcb")) , m_xInsertBtn(m_xBuilder->weld_button("ok")) , m_xLbFormat(m_xBuilder->weld_tree_view("formatlbinstable")) - , m_xWndPreview(new AutoFormatPreview(m_xBuilder->weld_drawing_area("previewinstable"))) - , m_aTextFilter(" .<>") - , pShell(&rView.GetWrtShell()) - , pTAutoFormat(nullptr) - , nEnteredValRepeatHeaderNF(-1) + , m_xWndPreview(new weld::CustomWeld(*m_xBuilder, "previewinstable", m_aWndPreview)) { const int nWidth = m_xLbFormat->get_approximate_digit_width() * 32; const int nHeight = m_xLbFormat->get_height_rows(8); @@ -124,7 +124,7 @@ SwInsTableDlg::SwInsTableDlg(SwView& rView) void SwInsTableDlg::InitAutoTableFormat() { - m_xWndPreview->DetectRTL(pShell); + m_aWndPreview.DetectRTL(pShell); m_xLbFormat->connect_changed(LINK(this, SwInsTableDlg, SelFormatHdl)); @@ -185,13 +185,13 @@ IMPL_LINK_NOARG(SwInsTableDlg, SelFormatHdl, weld::TreeView&, void) // To understand this index maping, look InitAutoTableFormat function to // see how listbox item is implemented. if( tbIndex < 255 ) - m_xWndPreview->NotifyChange( (*pTableTable)[tbIndex] ); + m_aWndPreview.NotifyChange( (*pTableTable)[tbIndex] ); else { SwTableAutoFormat aTmp( SwViewShell::GetShellRes()->aStrNone ); lcl_SetProperties( &aTmp, false ); - m_xWndPreview->NotifyChange( aTmp ); + m_aWndPreview.NotifyChange( aTmp ); } } diff --git a/sw/source/ui/table/tautofmt.cxx b/sw/source/ui/table/tautofmt.cxx index c8d8b0fd2395..4c716726aafb 100644 --- a/sw/source/ui/table/tautofmt.cxx +++ b/sw/source/ui/table/tautofmt.cxx @@ -55,18 +55,6 @@ SwAutoFormatDlg::SwAutoFormatDlg(weld::Window* pParent, SwWrtShell* pWrtShell, bool bAutoFormat, const SwTableAutoFormat* pSelFormat) : GenericDialogController(pParent, "modules/swriter/ui/autoformattable.ui", "AutoFormatTableDialog") - , m_xLbFormat(m_xBuilder->weld_tree_view("formatlb")) - , m_xBtnNumFormat(m_xBuilder->weld_check_button("numformatcb")) - , m_xBtnBorder(m_xBuilder->weld_check_button("bordercb")) - , m_xBtnFont(m_xBuilder->weld_check_button("fontcb")) - , m_xBtnPattern(m_xBuilder->weld_check_button("patterncb")) - , m_xBtnAlignment(m_xBuilder->weld_check_button("alignmentcb")) - , m_xBtnCancel(m_xBuilder->weld_button("cancel")) - , m_xBtnAdd(m_xBuilder->weld_button("add")) - , m_xBtnRemove(m_xBuilder->weld_button("remove")) - , m_xBtnRename(m_xBuilder->weld_button("rename")) - , m_xWndPreview(new AutoFormatPreview(m_xBuilder->weld_drawing_area("preview"))) - , m_xTableTable(new SwTableAutoFormatTable) , m_aStrTitle(SwResId(STR_ADD_AUTOFORMAT_TITLE)) , m_aStrLabel(SwResId(STR_ADD_AUTOFORMAT_LABEL)) , m_aStrClose(SwResId(STR_BTN_AUTOFORMAT_CLOSE)) @@ -79,8 +67,20 @@ SwAutoFormatDlg::SwAutoFormatDlg(weld::Window* pParent, SwWrtShell* pWrtShell, , m_nDfltStylePos(0) , m_bCoreDataChanged(false) , m_bSetAutoFormat(bAutoFormat) + , m_xTableTable(new SwTableAutoFormatTable) + , m_xLbFormat(m_xBuilder->weld_tree_view("formatlb")) + , m_xBtnNumFormat(m_xBuilder->weld_check_button("numformatcb")) + , m_xBtnBorder(m_xBuilder->weld_check_button("bordercb")) + , m_xBtnFont(m_xBuilder->weld_check_button("fontcb")) + , m_xBtnPattern(m_xBuilder->weld_check_button("patterncb")) + , m_xBtnAlignment(m_xBuilder->weld_check_button("alignmentcb")) + , m_xBtnCancel(m_xBuilder->weld_button("cancel")) + , m_xBtnAdd(m_xBuilder->weld_button("add")) + , m_xBtnRemove(m_xBuilder->weld_button("remove")) + , m_xBtnRename(m_xBuilder->weld_button("rename")) + , m_xWndPreview(new weld::CustomWeld(*m_xBuilder, "preview", m_aWndPreview)) { - m_xWndPreview->DetectRTL(pWrtShell); + m_aWndPreview.DetectRTL(pWrtShell); m_xTableTable->Load(); const int nWidth = m_xLbFormat->get_approximate_digit_width() * 32; @@ -200,7 +200,7 @@ IMPL_LINK(SwAutoFormatDlg, CheckHdl, weld::ToggleButton&, rBtn, void) m_bCoreDataChanged = true; } - m_xWndPreview->NotifyChange(rData); + m_aWndPreview.NotifyChange(rData); } } @@ -369,7 +369,7 @@ IMPL_LINK_NOARG(SwAutoFormatDlg, SelFormatHdl, weld::TreeView&, void) if (nSelPos >= m_nDfltStylePos) { m_nIndex = nSelPos - m_nDfltStylePos; - m_xWndPreview->NotifyChange((*m_xTableTable)[m_nIndex]); + m_aWndPreview.NotifyChange((*m_xTableTable)[m_nIndex]); bBtnEnable = 0 != m_nIndex; UpdateChecks( (*m_xTableTable)[m_nIndex], true ); } @@ -386,7 +386,7 @@ IMPL_LINK_NOARG(SwAutoFormatDlg, SelFormatHdl, weld::TreeView&, void) aTmp.SetWidthHeight( false ); if (nOldIdx != m_nIndex) - m_xWndPreview->NotifyChange(aTmp); + m_aWndPreview.NotifyChange(aTmp); UpdateChecks( aTmp, false ); } |