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();

Reply via email to