diff options
Diffstat (limited to 'sc/source')
-rw-r--r-- | sc/source/ui/inc/datatableview.hxx | 12 | ||||
-rw-r--r-- | sc/source/ui/miscdlgs/dataproviderdlg.cxx | 3 | ||||
-rw-r--r-- | sc/source/ui/miscdlgs/datatableview.cxx | 44 |
3 files changed, 19 insertions, 40 deletions
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 8cb2d9d33a0c..a9477bba4db7 100644 --- a/sc/source/ui/miscdlgs/dataproviderdlg.cxx +++ b/sc/source/ui/miscdlgs/dataproviderdlg.cxx @@ -748,7 +748,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")) @@ -768,7 +768,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(); |