From 4344720b313ab12cc3093541b4e2f21176d9aaaf Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Thu, 29 Jan 2026 16:50:53 +0200 Subject: [PATCH] use more concrete UNO classes Change-Id: I7323b845b2088186a7239fb86af34ac8723bfafd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198372 Tested-by: Jenkins Reviewed-by: Noel Grandin --- sc/inc/viewuno.hxx | 3 +++ sc/source/ui/inc/tabvwsh.hxx | 4 ++-- sc/source/ui/unoobj/viewuno.cxx | 5 +++++ sc/source/ui/view/tabvwsh3.cxx | 3 ++- sc/source/ui/view/tabvwsh4.cxx | 16 +++++++--------- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/sc/inc/viewuno.hxx b/sc/inc/viewuno.hxx index c1f75beeb2a9..2310a558b063 100644 --- a/sc/inc/viewuno.hxx +++ b/sc/inc/viewuno.hxx @@ -48,6 +48,7 @@ namespace com::sun::star::view { class XSelectionChangeListener; } class ScTabViewShell; class ScPreviewShell; +class ScTableSheetObj; #define SC_VIEWPANE_ACTIVE 0xFFFF @@ -283,6 +284,8 @@ public: // XSelectedSheetsSupplier virtual css::uno::Sequence SAL_CALL getSelectedSheets() override; + + rtl::Reference< ScTableSheetObj > getActiveScSheet(); }; class ScPreviewObj final : public SfxBaseController, diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx index b9597ccedb21..a7ba9ed4b659 100644 --- a/sc/source/ui/inc/tabvwsh.hxx +++ b/sc/source/ui/inc/tabvwsh.hxx @@ -273,11 +273,11 @@ public: SC_DLLPUBLIC bool IsRefInputMode() const; void ExecuteInputDirect(); - void HandleDuplicateRecords(const css::uno::Reference& ActiveSheet, + void HandleDuplicateRecords(const rtl::Reference& ActiveSheet, const css::table::CellRangeAddress& aRange, bool bRemove, bool bIncludesHeaders, bool bDuplicateRows, const std::vector& rSelectedEntries); - css::uno::Reference GetRangeWithSheet(css::table::CellRangeAddress& rRangeData, bool& bHasData, bool bHasUnoArguments); + rtl::Reference GetRangeWithSheet(css::table::CellRangeAddress& rRangeData, bool& bHasData, bool bHasUnoArguments); void ExtendSingleSelection(css::table::CellRangeAddress& rRangeData); const ScInputHandler* GetInputHandler() const { return mpInputHandler.get(); } diff --git a/sc/source/ui/unoobj/viewuno.cxx b/sc/source/ui/unoobj/viewuno.cxx index 34384201c7f1..2ad439ac16a5 100644 --- a/sc/source/ui/unoobj/viewuno.cxx +++ b/sc/source/ui/unoobj/viewuno.cxx @@ -1082,6 +1082,11 @@ rtl::Reference ScTabViewObj::GetObjectByIndex_Impl(sal_uInt16 nIn } uno::Reference SAL_CALL ScTabViewObj::getActiveSheet() +{ + return getActiveScSheet(); +} + +rtl::Reference ScTabViewObj::getActiveScSheet() { SolarMutexGuard aGuard; ScTabViewShell* pViewSh = GetViewShell(); diff --git a/sc/source/ui/view/tabvwsh3.cxx b/sc/source/ui/view/tabvwsh3.cxx index c15d7c56c0b8..a4536393a88b 100644 --- a/sc/source/ui/view/tabvwsh3.cxx +++ b/sc/source/ui/view/tabvwsh3.cxx @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -839,7 +840,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq ) { using namespace com::sun::star; table::CellRangeAddress aCellRange; - uno::Reference xActiveSheet; + rtl::Reference xActiveSheet; DuplicatesResponse aResponse; bool bHasData = true; diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx index 9431577b5a4b..dc26f75673da 100644 --- a/sc/source/ui/view/tabvwsh4.cxx +++ b/sc/source/ui/view/tabvwsh4.cxx @@ -78,6 +78,7 @@ #include #include #include +#include #include #include @@ -1860,7 +1861,7 @@ static bool lcl_CheckInArray(std::vector>& nUniqueRecord return false; } -uno::Reference ScTabViewShell::GetRangeWithSheet(css::table::CellRangeAddress& rRangeData, bool& bHasData, bool bHasUnoArguments) +rtl::Reference ScTabViewShell::GetRangeWithSheet(css::table::CellRangeAddress& rRangeData, bool& bHasData, bool bHasUnoArguments) { // get spreadsheet document model & controller uno::Reference xModel(GetViewData().GetDocShell()->GetModel()); @@ -1869,7 +1870,7 @@ uno::Reference ScTabViewShell::GetRangeWithSheet(css:: // spreadsheet's extension of com.sun.star.frame.Controller service ScTabViewObj* pSpreadsheetDocument = dynamic_cast(xController.get()); assert(pSpreadsheetDocument); - uno::Reference ActiveSheet = pSpreadsheetDocument->getActiveSheet(); + rtl::Reference ActiveSheet = pSpreadsheetDocument->getActiveScSheet(); if (!bHasUnoArguments) { @@ -1924,7 +1925,7 @@ void ScTabViewShell::ExtendSingleSelection(css::table::CellRangeAddress& rRangeD } /* bool bRemove == false ==> highlight duplicate rows */ -void ScTabViewShell::HandleDuplicateRecords(const css::uno::Reference& ActiveSheet, +void ScTabViewShell::HandleDuplicateRecords(const rtl::Reference& ActiveSheet, const css::table::CellRangeAddress& aRange, bool bRemove, bool bIncludesHeaders, bool bDuplicateRows, const std::vector& rSelectedEntries) @@ -1936,13 +1937,10 @@ void ScTabViewShell::HandleDuplicateRecords(const css::uno::Reference xModel(GetViewData().GetDocShell()->GetModel()); - uno::Reference xSheetRange( - ActiveSheet->getCellRangeByPosition(aRange.StartColumn, aRange.StartRow, aRange.EndColumn, aRange.EndRow), - uno::UNO_QUERY); + rtl::Reference xSheetRange( + ActiveSheet->getScCellRangeByPosition(aRange.StartColumn, aRange.StartRow, aRange.EndColumn, aRange.EndRow)); - - uno::Reference xCellRangeData(xSheetRange, uno::UNO_QUERY); - uno::Sequence> aDataArray = xCellRangeData->getDataArray(); + uno::Sequence> aDataArray = xSheetRange->getDataArray(); uno::Reference< document::XUndoManagerSupplier > xUndoManager( xModel, uno::UNO_QUERY ); uno::Reference xLockable(xModel, uno::UNO_QUERY);