sc/source/ui/inc/datatableview.hxx | 12 ++------ sc/source/ui/miscdlgs/dataproviderdlg.cxx | 3 -- sc/source/ui/miscdlgs/datatableview.cxx | 44 +++++++++--------------------- 3 files changed, 19 insertions(+), 40 deletions(-)
New commits: commit 0691cc55148503448012326b070aa9209c54270b Author: Luboš Luňák <l.lu...@collabora.com> AuthorDate: Mon Feb 14 15:24:34 2022 +0100 Commit: Luboš Luňák <l.lu...@collabora.com> CommitDate: Mon Feb 14 16:37:14 2022 +0100 remove hardcoded MAXCOL/MAXROW from datatableview.cxx (tdf#135332) Also remove the pointless separate Init() functions. Change-Id: I6235047ea472899c0885d86a84a603d7641c3191 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129913 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lu...@collabora.com> diff --git a/sc/source/ui/inc/datatableview.hxx b/sc/source/ui/inc/datatableview.hxx index ec7108f6995f..8eaac9084bbe 100644 --- a/sc/source/ui/inc/datatableview.hxx +++ b/sc/source/ui/inc/datatableview.hxx @@ -33,10 +33,9 @@ class ScDataTableColView : public ScHeaderControl SCCOL mnCol; public: - ScDataTableColView(vcl::Window* pParent, SelectionEngine* pSelectionEngine); + ScDataTableColView(vcl::Window* pParent, ScDocument* pDoc, SelectionEngine* pSelectionEngine); void SetPos(SCCOLROW nRow); - void Init(ScDocument* pDoc); virtual SCCOLROW GetPos() const override; virtual sal_uInt16 GetEntrySize(SCCOLROW nPos) const override; @@ -52,10 +51,9 @@ class ScDataTableRowView : public ScHeaderControl SCROW mnRow; public: - ScDataTableRowView(vcl::Window* pParent, SelectionEngine* pSelectionEngine); + ScDataTableRowView(vcl::Window* pParent, ScDocument* pDoc, SelectionEngine* pSelectionEngine); void SetPos(SCCOLROW nRow); - void Init(ScDocument* pDoc); virtual SCCOLROW GetPos() const override; virtual sal_uInt16 GetEntrySize(SCCOLROW nPos) const override; @@ -92,10 +90,8 @@ class ScDataTableView : public Control DECL_LINK(ScrollHdl, ScrollBar*, void); public: - ScDataTableView(const css::uno::Reference<css::awt::XWindow>& rParent); - - void Init(std::shared_ptr<ScDocument> pDoc); - + ScDataTableView(const css::uno::Reference<css::awt::XWindow>& rParent, + std::shared_ptr<ScDocument> pDoc); ~ScDataTableView() override; virtual void dispose() override; diff --git a/sc/source/ui/miscdlgs/dataproviderdlg.cxx b/sc/source/ui/miscdlgs/dataproviderdlg.cxx index e8d16f22a1bc..f26e2ae7a76f 100644 --- a/sc/source/ui/miscdlgs/dataproviderdlg.cxx +++ b/sc/source/ui/miscdlgs/dataproviderdlg.cxx @@ -776,7 +776,7 @@ ScDataProviderDlg::ScDataProviderDlg(weld::Window* pParent, std::shared_ptr<ScDo , mxDoc(std::move(pDoc)) , mxBox(m_xBuilder->weld_container("data_table")) , m_xTableParent(mxBox->CreateChildFrame()) - , mxTable(VclPtr<ScDataTableView>::Create(m_xTableParent)) + , mxTable(VclPtr<ScDataTableView>::Create(m_xTableParent, mxDoc)) , mxDBRanges(m_xBuilder->weld_combo_box("select_db_range")) , mxOKBtn(m_xBuilder->weld_button("okay")) , mxCancelBtn(m_xBuilder->weld_button("cancel")) @@ -796,7 +796,6 @@ ScDataProviderDlg::ScDataProviderDlg(weld::Window* pParent, std::shared_ptr<ScDo mxBox->set_size_request(aPrefSize.Width(), aPrefSize.Height()); mxTable->Show(); - mxTable->Init(mxDoc); ScDBCollection* pDBCollection = pDocument->GetDBCollection(); auto& rNamedDBs = pDBCollection->getNamedDBs(); for (auto& rNamedDB : rNamedDBs) diff --git a/sc/source/ui/miscdlgs/datatableview.cxx b/sc/source/ui/miscdlgs/datatableview.cxx index da0dd2dd2e5b..d74df0e81fe4 100644 --- a/sc/source/ui/miscdlgs/datatableview.cxx +++ b/sc/source/ui/miscdlgs/datatableview.cxx @@ -38,18 +38,13 @@ constexpr sal_uInt16 nRowHeaderWidth = 100; constexpr sal_uInt16 nColHeaderHeight = 20; constexpr sal_uInt16 nScrollBarSize = 10; -ScDataTableColView::ScDataTableColView(vcl::Window* pParent, SelectionEngine* pSelectionEngine): - ScHeaderControl(pParent, pSelectionEngine, 1024, false, nullptr), - mpDoc(nullptr), +ScDataTableColView::ScDataTableColView(vcl::Window* pParent, ScDocument* pDoc, SelectionEngine* pSelectionEngine): + ScHeaderControl(pParent, pSelectionEngine, pDoc->MaxCol()+1, false, nullptr), + mpDoc(pDoc), mnCol(0) { } -void ScDataTableColView::Init(ScDocument* pDoc) -{ - mpDoc = pDoc; -} - void ScDataTableColView::SetPos(SCCOLROW nCol) { mnCol = nCol; @@ -89,18 +84,13 @@ void ScDataTableColView::HideEntries(SCCOLROW nPos, SCCOLROW nEndPos) } -ScDataTableRowView::ScDataTableRowView(vcl::Window* pParent, SelectionEngine* pSelectionEngine): - ScHeaderControl(pParent, pSelectionEngine, 1048576, true, nullptr), - mpDoc(nullptr), +ScDataTableRowView::ScDataTableRowView(vcl::Window* pParent, ScDocument* pDoc, SelectionEngine* pSelectionEngine): + ScHeaderControl(pParent, pSelectionEngine, pDoc->MaxRow()+1, true, nullptr), + mpDoc(pDoc), mnRow(0) { } -void ScDataTableRowView::Init(ScDocument* pDoc) -{ - mpDoc = pDoc; -} - void ScDataTableRowView::SetPos(SCCOLROW nRow) { mnRow = nRow; @@ -139,12 +129,13 @@ void ScDataTableRowView::HideEntries(SCCOLROW nPos, SCCOLROW nEndPos) } } -ScDataTableView::ScDataTableView(const css::uno::Reference<css::awt::XWindow> &rParent) : +ScDataTableView::ScDataTableView(const css::uno::Reference<css::awt::XWindow> &rParent, std::shared_ptr<ScDocument> pDoc) : Control(VCLUnoHelper::GetWindow(rParent)), + mpDoc(std::move(pDoc)), mpSelectionEngine(new SelectionEngine(this)), mpTopLeft(VclPtr<ScrollBarBox>::Create(this, WB_SIZEABLE)), - mpColView(VclPtr<ScDataTableColView>::Create(this, mpSelectionEngine.get())), - mpRowView(VclPtr<ScDataTableRowView>::Create(this, mpSelectionEngine.get())), + mpColView(VclPtr<ScDataTableColView>::Create(this, mpDoc.get(), mpSelectionEngine.get())), + mpRowView(VclPtr<ScDataTableRowView>::Create(this, mpDoc.get(), mpSelectionEngine.get())), mpVScroll(VclPtr<ScrollBar>::Create(this, WinBits(WB_VSCROLL | WB_DRAG))), mpHScroll(VclPtr<ScrollBar>::Create(this, WinBits(WB_HSCROLL | WB_DRAG))), mnFirstVisibleRow(0), @@ -169,13 +160,6 @@ ScDataTableView::ScDataTableView(const css::uno::Reference<css::awt::XWindow> &r mpHScroll->Show(); } -void ScDataTableView::Init(std::shared_ptr<ScDocument> pDoc) -{ - mpDoc = std::move(pDoc); - mpColView->Init(mpDoc.get()); - mpRowView->Init(mpDoc.get()); -} - ScDataTableView::~ScDataTableView() { disposeOnce(); @@ -218,7 +202,7 @@ SCCOL findColFromPos(sal_uInt16 nPixelPos, const ScDocument* pDoc, SCCOL nStartC } SAL_WARN("sc", "Could not find the corresponding column"); - return MAXCOL; + return pDoc->MaxCol(); } SCROW findRowFromPos(sal_uInt16 nPixelPos, const ScDocument* pDoc, SCROW nStartRow = 0) @@ -238,7 +222,7 @@ SCROW findRowFromPos(sal_uInt16 nPixelPos, const ScDocument* pDoc, SCROW nStartR } SAL_WARN("sc", "Could not find the corresponding row"); - return MAXROW; + return pDoc->MaxRow(); } } @@ -321,13 +305,13 @@ IMPL_LINK(ScDataTableView, ScrollHdl, ScrollBar*, pScrollBar, void) if (pScrollBar == mpVScroll.get()) { mnFirstVisibleRow = pScrollBar->GetThumbPos(); - pScrollBar->SetRangeMax(std::min( MAXROW,static_cast<SCROW>(mnFirstVisibleRow + 100 ))); + pScrollBar->SetRangeMax(std::min(mpDoc->MaxRow(), static_cast<SCROW>(mnFirstVisibleRow + 100))); mpRowView->SetPos(mnFirstVisibleRow); } else { mnFirstVisibleCol = pScrollBar->GetThumbPos(); - pScrollBar->SetRangeMax(std::min( MAXCOL,static_cast<SCCOL>(mnFirstVisibleCol + 50 ))); + pScrollBar->SetRangeMax(std::min(mpDoc->MaxCol(), static_cast<SCCOL>(mnFirstVisibleCol + 50))); mpColView->SetPos(mnFirstVisibleCol); } Invalidate();