use more concrete UNO classes
Change-Id: I7323b845b2088186a7239fb86af34ac8723bfafd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198372 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
@@ -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_Int32> SAL_CALL getSelectedSheets() override;
|
||||
|
||||
rtl::Reference< ScTableSheetObj > getActiveScSheet();
|
||||
};
|
||||
|
||||
class ScPreviewObj final : public SfxBaseController,
|
||||
|
||||
@@ -273,11 +273,11 @@ public:
|
||||
SC_DLLPUBLIC bool IsRefInputMode() const;
|
||||
void ExecuteInputDirect();
|
||||
|
||||
void HandleDuplicateRecords(const css::uno::Reference<css::sheet::XSpreadsheet>& ActiveSheet,
|
||||
void HandleDuplicateRecords(const rtl::Reference<ScTableSheetObj>& ActiveSheet,
|
||||
const css::table::CellRangeAddress& aRange, bool bRemove,
|
||||
bool bIncludesHeaders, bool bDuplicateRows,
|
||||
const std::vector<int>& rSelectedEntries);
|
||||
css::uno::Reference<css::sheet::XSpreadsheet> GetRangeWithSheet(css::table::CellRangeAddress& rRangeData, bool& bHasData, bool bHasUnoArguments);
|
||||
rtl::Reference<ScTableSheetObj> GetRangeWithSheet(css::table::CellRangeAddress& rRangeData, bool& bHasData, bool bHasUnoArguments);
|
||||
void ExtendSingleSelection(css::table::CellRangeAddress& rRangeData);
|
||||
|
||||
const ScInputHandler* GetInputHandler() const { return mpInputHandler.get(); }
|
||||
|
||||
@@ -1082,6 +1082,11 @@ rtl::Reference<ScViewPaneObj> ScTabViewObj::GetObjectByIndex_Impl(sal_uInt16 nIn
|
||||
}
|
||||
|
||||
uno::Reference<sheet::XSpreadsheet> SAL_CALL ScTabViewObj::getActiveSheet()
|
||||
{
|
||||
return getActiveScSheet();
|
||||
}
|
||||
|
||||
rtl::Reference<ScTableSheetObj> ScTabViewObj::getActiveScSheet()
|
||||
{
|
||||
SolarMutexGuard aGuard;
|
||||
ScTabViewShell* pViewSh = GetViewShell();
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
#include <protectiondlg.hxx>
|
||||
#include <duplicaterecordsdlg.hxx>
|
||||
#include <markdata.hxx>
|
||||
#include <cellsuno.hxx>
|
||||
|
||||
#include <svl/ilstitem.hxx>
|
||||
#include <vector>
|
||||
@@ -839,7 +840,7 @@ void ScTabViewShell::Execute( SfxRequest& rReq )
|
||||
{
|
||||
using namespace com::sun::star;
|
||||
table::CellRangeAddress aCellRange;
|
||||
uno::Reference<sheet::XSpreadsheet> xActiveSheet;
|
||||
rtl::Reference<ScTableSheetObj> xActiveSheet;
|
||||
DuplicatesResponse aResponse;
|
||||
bool bHasData = true;
|
||||
|
||||
|
||||
@@ -78,6 +78,7 @@
|
||||
#include <preview.hxx>
|
||||
#include <documentlinkmgr.hxx>
|
||||
#include <gridwin.hxx>
|
||||
#include <cellsuno.hxx>
|
||||
|
||||
#include <com/sun/star/document/XDocumentProperties.hpp>
|
||||
#include <com/sun/star/configuration/theDefaultProvider.hpp>
|
||||
@@ -1860,7 +1861,7 @@ static bool lcl_CheckInArray(std::vector<uno::Sequence<uno::Any>>& nUniqueRecord
|
||||
return false;
|
||||
}
|
||||
|
||||
uno::Reference<css::sheet::XSpreadsheet> ScTabViewShell::GetRangeWithSheet(css::table::CellRangeAddress& rRangeData, bool& bHasData, bool bHasUnoArguments)
|
||||
rtl::Reference<ScTableSheetObj> ScTabViewShell::GetRangeWithSheet(css::table::CellRangeAddress& rRangeData, bool& bHasData, bool bHasUnoArguments)
|
||||
{
|
||||
// get spreadsheet document model & controller
|
||||
uno::Reference<frame::XModel> xModel(GetViewData().GetDocShell()->GetModel());
|
||||
@@ -1869,7 +1870,7 @@ uno::Reference<css::sheet::XSpreadsheet> ScTabViewShell::GetRangeWithSheet(css::
|
||||
// spreadsheet's extension of com.sun.star.frame.Controller service
|
||||
ScTabViewObj* pSpreadsheetDocument = dynamic_cast<ScTabViewObj*>(xController.get());
|
||||
assert(pSpreadsheetDocument);
|
||||
uno::Reference<sheet::XSpreadsheet> ActiveSheet = pSpreadsheetDocument->getActiveSheet();
|
||||
rtl::Reference<ScTableSheetObj> 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<css::sheet::XSpreadsheet>& ActiveSheet,
|
||||
void ScTabViewShell::HandleDuplicateRecords(const rtl::Reference<ScTableSheetObj>& ActiveSheet,
|
||||
const css::table::CellRangeAddress& aRange, bool bRemove,
|
||||
bool bIncludesHeaders, bool bDuplicateRows,
|
||||
const std::vector<int>& rSelectedEntries)
|
||||
@@ -1936,13 +1937,10 @@ void ScTabViewShell::HandleDuplicateRecords(const css::uno::Reference<css::sheet
|
||||
}
|
||||
|
||||
uno::Reference<frame::XModel> xModel(GetViewData().GetDocShell()->GetModel());
|
||||
uno::Reference<sheet::XSheetCellRange> xSheetRange(
|
||||
ActiveSheet->getCellRangeByPosition(aRange.StartColumn, aRange.StartRow, aRange.EndColumn, aRange.EndRow),
|
||||
uno::UNO_QUERY);
|
||||
rtl::Reference<ScCellRangeObj> xSheetRange(
|
||||
ActiveSheet->getScCellRangeByPosition(aRange.StartColumn, aRange.StartRow, aRange.EndColumn, aRange.EndRow));
|
||||
|
||||
|
||||
uno::Reference<sheet::XCellRangeData> xCellRangeData(xSheetRange, uno::UNO_QUERY);
|
||||
uno::Sequence<uno::Sequence<uno::Any>> aDataArray = xCellRangeData->getDataArray();
|
||||
uno::Sequence<uno::Sequence<uno::Any>> aDataArray = xSheetRange->getDataArray();
|
||||
|
||||
uno::Reference< document::XUndoManagerSupplier > xUndoManager( xModel, uno::UNO_QUERY );
|
||||
uno::Reference<document::XActionLockable> xLockable(xModel, uno::UNO_QUERY);
|
||||
|
||||
Reference in New Issue
Block a user