sc/qa/unit/SparklineImportExportTest.cxx | 9 +++-- sc/qa/unit/copy_paste_test.cxx | 29 +++++++++-------- sc/qa/unit/helper/qahelper.cxx | 3 + sc/qa/unit/jumbosheets-test.cxx | 27 ++++++++-------- sc/qa/unit/opencl-test.cxx | 3 + sc/qa/unit/tiledrendering/tiledrendering.cxx | 5 +-- sc/qa/unit/uicalc/uicalc.cxx | 45 +++++++++++++-------------- sc/source/filter/excel/xestream.cxx | 3 + sc/source/filter/oox/workbookhelper.cxx | 3 + sc/source/ui/vba/excelvbahelper.cxx | 3 + 10 files changed, 70 insertions(+), 60 deletions(-)
New commits: commit 5940427063f7a6ef914b65cf9e2396eb2cc828ca Author: Stephan Bergmann <sberg...@redhat.com> AuthorDate: Wed Dec 21 11:54:23 2022 +0100 Commit: Stephan Bergmann <sberg...@redhat.com> CommitDate: Wed Dec 21 14:41:10 2022 +0000 Use ScModelObj's existing XUnoTunnel Change-Id: I2f0a6bbc5fe382a64d0a32ba955a28f44dad388c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144681 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sberg...@redhat.com> diff --git a/sc/qa/unit/SparklineImportExportTest.cxx b/sc/qa/unit/SparklineImportExportTest.cxx index 993303e00a4e..681cbd35ec79 100644 --- a/sc/qa/unit/SparklineImportExportTest.cxx +++ b/sc/qa/unit/SparklineImportExportTest.cxx @@ -10,6 +10,7 @@ #include <test/unoapixml_test.hxx> #include <com/sun/star/lang/XComponent.hpp> +#include <comphelper/servicehelper.hxx> #include <docsh.hxx> #include <Sparkline.hxx> #include <SparklineGroup.hxx> @@ -149,13 +150,13 @@ void checkSparklines(ScDocument& rDocument) void SparklineImportExportTest::testSparklinesRoundtripXLSX() { loadFromURL(u"xlsx/Sparklines.xlsx"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); checkSparklines(*pModelObj->GetDocument()); saveAndReload("Calc Office Open XML"); - pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); checkSparklines(*pModelObj->GetDocument()); @@ -212,14 +213,14 @@ void SparklineImportExportTest::testSparklinesExportODS() void SparklineImportExportTest::testSparklinesRoundtripODS() { loadFromURL(u"xlsx/Sparklines.xlsx"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); checkSparklines(*pModelObj->GetDocument()); // Trigger export and import of sparklines saveAndReload("calc8"); - pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); checkSparklines(*pModelObj->GetDocument()); diff --git a/sc/qa/unit/copy_paste_test.cxx b/sc/qa/unit/copy_paste_test.cxx index c020565655ef..b91dee89dea2 100644 --- a/sc/qa/unit/copy_paste_test.cxx +++ b/sc/qa/unit/copy_paste_test.cxx @@ -14,6 +14,7 @@ #include <test/unoapi_test.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/propertyvalue.hxx> +#include <comphelper/servicehelper.hxx> #include <docsh.hxx> #include <docfunc.hxx> @@ -76,7 +77,7 @@ void ScCopyPasteTest::testCopyPasteXLS() { loadFromURL(u"xls/chartx2.xls"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -148,7 +149,7 @@ void ScCopyPasteTest::testTdf84411() { mxComponent = loadFromDesktop("private:factory/scalc"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -190,7 +191,7 @@ void ScCopyPasteTest::testTdf124565() { mxComponent = loadFromDesktop("private:factory/scalc"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -229,7 +230,7 @@ void ScCopyPasteTest::testTdf126421() { mxComponent = loadFromDesktop("private:factory/scalc"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -257,7 +258,7 @@ void ScCopyPasteTest::testTdf107394() { mxComponent = loadFromDesktop("private:factory/scalc"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -315,7 +316,7 @@ static ScAddress lcl_getMergeSizeOfCell(const ScDocument& rDoc, SCCOL nCol, SCRO void ScCopyPasteTest::testTdf53431_fillOnAutofilter() { loadFromURL(u"ods/tdf53431_autofilterFilldown.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -376,7 +377,7 @@ void ScCopyPasteTest::testTdf53431_fillOnAutofilter() void ScCopyPasteTest::testTdf40993_fillMergedCells() { loadFromURL(u"ods/tdf40993_fillMergedCells.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -485,7 +486,7 @@ void ScCopyPasteTest::testTdf43958_clickSelectOnMergedCells() void ScCopyPasteTest::testTdf88782_autofillLinearNumbersInMergedCells() { loadFromURL(u"ods/tdf88782_AutofillLinearNumbersInMergedCells.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -547,7 +548,7 @@ void ScCopyPasteTest::testTdf88782_autofillLinearNumbersInMergedCells() void ScCopyPasteTest::tdf137621_autofillMergedBool() { loadFromURL(u"ods/tdf137621_autofillMergedBool.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -580,7 +581,7 @@ void ScCopyPasteTest::tdf137621_autofillMergedBool() void ScCopyPasteTest::tdf137205_autofillDatesInMergedCells() { loadFromURL(u"ods/tdf137205_AutofillDatesInMergedCells.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -619,7 +620,7 @@ void ScCopyPasteTest::addToUserList(const OUString& rStr) void ScCopyPasteTest::tdf137653_137654_autofillUserlist() { loadFromURL(u"ods/tdf137653_137654_autofillUserlist.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -679,7 +680,7 @@ void ScCopyPasteTest::tdf137653_137654_autofillUserlist() void ScCopyPasteTest::tdf113500_autofillMixed() { loadFromURL(u"ods/tdf113500_autofillMixed.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -729,7 +730,7 @@ void ScCopyPasteTest::tdf113500_autofillMixed() void ScCopyPasteTest::tdf137625_autofillMergedUserlist() { loadFromURL(u"ods/tdf137625_autofillMergedUserlist.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -789,7 +790,7 @@ void ScCopyPasteTest::tdf137625_autofillMergedUserlist() void ScCopyPasteTest::tdf137624_autofillMergedMixed() { loadFromURL(u"ods/tdf137624_autofillMergedMixed.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); diff --git a/sc/qa/unit/helper/qahelper.cxx b/sc/qa/unit/helper/qahelper.cxx index f9c7af04a813..f0fc204646a4 100644 --- a/sc/qa/unit/helper/qahelper.cxx +++ b/sc/qa/unit/helper/qahelper.cxx @@ -12,6 +12,7 @@ #include "debughelper.hxx" #include <drwlayer.hxx> #include <comphelper/sequence.hxx> +#include <comphelper/servicehelper.hxx> #include <compiler.hxx> #include <conditio.hxx> #include <stlsheet.hxx> @@ -470,7 +471,7 @@ void ScModelTestBase::createScDoc(const char* pName, const char* pPassword, bool ScDocument* ScModelTestBase::getScDoc() { - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); return pModelObj->GetDocument(); } diff --git a/sc/qa/unit/jumbosheets-test.cxx b/sc/qa/unit/jumbosheets-test.cxx index 05b2c2248650..5af459dd4c0f 100644 --- a/sc/qa/unit/jumbosheets-test.cxx +++ b/sc/qa/unit/jumbosheets-test.cxx @@ -14,6 +14,7 @@ #include <vcl/keycodes.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/propertyvalue.hxx> +#include <comphelper/servicehelper.hxx> #include <svx/svdoole2.hxx> #include <svx/svdpage.hxx> @@ -90,7 +91,7 @@ void ScJumboSheetsTest::testRoundtripColumn2000(std::u16string_view name, const { loadFromURL(name); { - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); // Check the value at BXX1 (2000th column). @@ -104,7 +105,7 @@ void ScJumboSheetsTest::testRoundtripColumn2000(std::u16string_view name, const saveAndReload(OUString::createFromAscii(format)); { - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -120,7 +121,7 @@ void ScJumboSheetsTest::testRoundtripColumnRangeOds() { loadFromURL(u"ods/sum-whole-column-row.ods"); { - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); // Check the formula referencing the whole-row range. @@ -131,7 +132,7 @@ void ScJumboSheetsTest::testRoundtripColumnRangeOds() saveAndReload("calc8"); { - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -155,7 +156,7 @@ void ScJumboSheetsTest::testRoundtripColumnRangeXlsx() loadFromURL(u"ods/sum-whole-column-row.ods"); saveAndReload("Calc Office Open XML"); { - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -181,7 +182,7 @@ void ScJumboSheetsTest::testRoundtripNamedRanges(std::u16string_view name, const { "COLUMN_E", "$Sheet1.$E:$E" }, { "ROW_4", "$Sheet1.$4:$4" } }; { - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); for (const auto& range : ranges) @@ -194,7 +195,7 @@ void ScJumboSheetsTest::testRoundtripNamedRanges(std::u16string_view name, const saveAndReload(OUString::createFromAscii(format)); { - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); for (const auto& range : ranges) @@ -222,7 +223,7 @@ void ScJumboSheetsTest::testNamedRangeNameConflict() // as named references even though with 16k columns those are normally NUM1 and NUM2 cells. loadFromURL(u"ods/named-range-conflict.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); pDoc->CalcAll(); @@ -244,7 +245,7 @@ void ScJumboSheetsTest::testTdf134553() { loadFromURL(u"xlsx/tdf134553.xlsx"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -296,7 +297,7 @@ void ScJumboSheetsTest::testTdf134392() // Without the fix in place, the file would have crashed loadFromURL(u"xlsx/tdf134392.xlsx"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); pDoc->CalcAll(); // perform hard re-calculation. @@ -305,7 +306,7 @@ void ScJumboSheetsTest::testTdf134392() void ScJumboSheetsTest::testTdf147509() { mxComponent = loadFromDesktop("private:factory/scalc"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); @@ -334,7 +335,7 @@ void ScJumboSheetsTest::testTdf147509() void ScJumboSheetsTest::testTdf133033() { mxComponent = loadFromDesktop("private:factory/scalc"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_DOWN | KEY_MOD1); @@ -349,7 +350,7 @@ void ScJumboSheetsTest::testTdf109061() // Without the fix in place, the file would have crashed loadFromURL(u"xlsx/tdf109061.xlsx"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); ScDocument* pDoc = pModelObj->GetDocument(); pDoc->CalcAll(); // perform hard re-calculation. diff --git a/sc/qa/unit/opencl-test.cxx b/sc/qa/unit/opencl-test.cxx index d01baf7cac36..a3a278ae3a89 100644 --- a/sc/qa/unit/opencl-test.cxx +++ b/sc/qa/unit/opencl-test.cxx @@ -12,6 +12,7 @@ #include <com/sun/star/document/MacroExecMode.hpp> #include <comphelper/sequence.hxx> +#include <comphelper/servicehelper.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -537,7 +538,7 @@ void ScOpenCLTest::initTestEnv(std::u16string_view fileName) ScDocument* ScOpenCLTest::getScDoc2() { - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent2.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent2); CPPUNIT_ASSERT(pModelObj); return pModelObj->GetDocument(); } diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx b/sc/qa/unit/tiledrendering/tiledrendering.cxx index 8ca176d8d6cb..65e1f894c834 100644 --- a/sc/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx @@ -17,6 +17,7 @@ #include <comphelper/dispatchcommand.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/propertysequence.hxx> +#include <comphelper/servicehelper.hxx> #include <osl/conditn.hxx> #include <sfx2/dispatch.hxx> #include <sfx2/viewfrm.hxx> @@ -233,7 +234,7 @@ ScModelObj* ScTiledRenderingTest::createDoc(const char* pName) { loadFromURL(OUString::createFromAscii(pName)); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); pModelObj->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>()); return pModelObj; @@ -2927,7 +2928,7 @@ void ScTiledRenderingTest::testInvalidEntrySave() // .uno:Save modifies the original file, make a copy first saveAndReload("Calc Office Open XML"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); CPPUNIT_ASSERT(pModelObj); pModelObj->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>()); const ScDocument* pDoc = pModelObj->GetDocument(); diff --git a/sc/qa/unit/uicalc/uicalc.cxx b/sc/qa/unit/uicalc/uicalc.cxx index 4976c19c17f0..4b424308593a 100644 --- a/sc/qa/unit/uicalc/uicalc.cxx +++ b/sc/qa/unit/uicalc/uicalc.cxx @@ -17,6 +17,7 @@ #include <comphelper/processfactory.hxx> #include <comphelper/propertysequence.hxx> #include <comphelper/scopeguard.hxx> +#include <comphelper/servicehelper.hxx> #include <com/sun/star/awt/Key.hpp> #include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/sheet/GlobalSheetSettings.hpp> @@ -86,7 +87,7 @@ void ScUiCalcTest::goToCell(const OUString& rCell) void ScUiCalcTest::typeString(const std::u16string_view& rStr) { - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); for (const char16_t c : rStr) { pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, c, 0); @@ -101,7 +102,7 @@ void ScUiCalcTest::insertStringToCell(const OUString& rCell, const std::u16strin typeString(rStr); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::RETURN); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::RETURN); Scheduler::ProcessEventsToIdle(); @@ -113,7 +114,7 @@ void ScUiCalcTest::insertArrayToCell(const OUString& rCell, const std::u16string typeString(rStr); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_MOD1 | KEY_SHIFT | awt::Key::RETURN); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_MOD1 | KEY_SHIFT | awt::Key::RETURN); Scheduler::ProcessEventsToIdle(); @@ -635,7 +636,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf56036) typeString(u"=SUM( 1 + 2 "); // Insert Newline - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_MOD1 | awt::Key::RETURN); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_MOD1 | awt::Key::RETURN); Scheduler::ProcessEventsToIdle(); @@ -662,7 +663,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf119162) typeString(u"Test"); // Insert Newline - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_MOD1 | awt::Key::RETURN); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_MOD1 | awt::Key::RETURN); Scheduler::ProcessEventsToIdle(); @@ -781,7 +782,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf146795) Scheduler::ProcessEventsToIdle(); // Move to B3 - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_DOWN); Scheduler::ProcessEventsToIdle(); @@ -827,7 +828,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf147744) Scheduler::ProcessEventsToIdle(); // Move to A3 - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_DOWN); Scheduler::ProcessEventsToIdle(); @@ -881,7 +882,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf138432) dispatchCommand(mxComponent, ".uno:Paste", {}); Scheduler::ProcessEventsToIdle(); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::RETURN); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::RETURN); Scheduler::ProcessEventsToIdle(); @@ -947,7 +948,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf144244) createScDoc("tdf144244.ods"); ScDocument* pDoc = getScDoc(); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); uno::Reference<drawing::XDrawPage> xPage(pModelObj->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW); CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), xPage->getCount()); @@ -965,7 +966,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf144244) // Without the fix in place, this test would have crashed saveAndReload("calc8"); - pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pDoc = getScDoc(); CPPUNIT_ASSERT_EQUAL(OUString("x"), pDoc->GetString(ScAddress(0, 0, 0))); @@ -1121,7 +1122,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf140151) ScDocShell* pDocSh = getScDocShell(); // Focus is already on the button - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::RETURN); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::RETURN); Scheduler::ProcessEventsToIdle(); @@ -1138,7 +1139,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf68290) const std::vector<OUString> aExpectedAddresses{ "L3", "L6", "L9", "L10", "L11", "L13", "L15" }; - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); for (const auto& rAddress : aExpectedAddresses) { lcl_AssertCurrentCursorPosition(*pDocSh, rAddress); @@ -1157,7 +1158,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf132057) lcl_AssertCurrentCursorPosition(*pDocSh, u"AU43"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_RETURN); Scheduler::ProcessEventsToIdle(); @@ -1173,7 +1174,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf122232) //Start with from C6. Press tabulator to reach G6. lcl_AssertCurrentCursorPosition(*pDocSh, u"C6"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_TAB); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_TAB); Scheduler::ProcessEventsToIdle(); @@ -1192,7 +1193,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf123052) std::vector<OUString> aExpectedAddresses{ "F3", "D5", "E5", "F6", "A8", "E9" }; - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); for (const auto& rAddress : aExpectedAddresses) { pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB); @@ -1279,7 +1280,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf146994) dispatchCommand(mxComponent, ".uno:Copy", {}); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_RIGHT); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_RIGHT); Scheduler::ProcessEventsToIdle(); @@ -1314,7 +1315,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf45020) goToCell("A1"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_SHIFT | KEY_DOWN); Scheduler::ProcessEventsToIdle(); @@ -1633,7 +1634,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf117458) aInputOption.SetMoveDir(DIR_BOTTOM); pMod->SetInputOptions(aInputOption); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::RETURN); Scheduler::ProcessEventsToIdle(); @@ -1886,7 +1887,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf119793) { createScDoc("tdf119793.ods"); - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); uno::Reference<drawing::XDrawPage> xPage(pModelObj->getDrawPages()->getByIndex(0), uno::UNO_QUERY_THROW); uno::Reference<drawing::XShape> xShape(xPage->getByIndex(0), uno::UNO_QUERY_THROW); @@ -2385,7 +2386,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf136113) lcl_SelectObjectByName(*getViewShell(), u"Arrow"); // Move the shape up - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::UP); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::UP); Scheduler::ProcessEventsToIdle(); @@ -2520,7 +2521,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf116421) dispatchCommand(mxComponent, ".uno:AutoSum", {}); // Use RETURN key to exit autosum edit view - ScModelObj* pModelObj = dynamic_cast<ScModelObj*>(mxComponent.get()); + ScModelObj* pModelObj = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::RETURN); pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::RETURN); Scheduler::ProcessEventsToIdle(); @@ -2927,7 +2928,7 @@ CPPUNIT_TEST_FIXTURE(ScUiCalcTest, testTdf152014) dispatchCommand(mxComponent2, ".uno:Paste", {}); Scheduler::ProcessEventsToIdle(); - ScModelObj* pModelObj2 = dynamic_cast<ScModelObj*>(mxComponent2.get()); + ScModelObj* pModelObj2 = comphelper::getFromUnoTunnel<ScModelObj>(mxComponent2); CPPUNIT_ASSERT(pModelObj2); ScDocument* pDoc2 = pModelObj2->GetDocument(); diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx index 75c241493b07..467dfefd278f 100644 --- a/sc/source/filter/excel/xestream.cxx +++ b/sc/source/filter/excel/xestream.cxx @@ -70,6 +70,7 @@ #include <com/sun/star/task/XStatusIndicator.hpp> #include <memory> +#include <comphelper/servicehelper.hxx> #include <comphelper/storagehelper.hxx> #include <externalrefmgr.hxx> @@ -994,7 +995,7 @@ ScDocShell* XclExpXmlStream::getDocShell() { uno::Reference< XInterface > xModel( getModel(), UNO_QUERY ); - ScModelObj *pObj = dynamic_cast < ScModelObj* >( xModel.get() ); + ScModelObj *pObj = comphelper::getFromUnoTunnel < ScModelObj >( xModel ); if ( pObj ) return static_cast < ScDocShell* >( pObj->GetEmbeddedObject() ); diff --git a/sc/source/filter/oox/workbookhelper.cxx b/sc/source/filter/oox/workbookhelper.cxx index 7d651b9764ab..3a542df0313e 100644 --- a/sc/source/filter/oox/workbookhelper.cxx +++ b/sc/source/filter/oox/workbookhelper.cxx @@ -30,6 +30,7 @@ #include <com/sun/star/document/XDocumentProperties.hpp> #include <com/sun/star/document/XDocumentPropertiesSupplier.hpp> #include <com/sun/star/document/XViewDataSupplier.hpp> +#include <comphelper/servicehelper.hxx> #include <o3tl/any.hxx> #include <osl/thread.h> #include <osl/diagnose.h> @@ -533,7 +534,7 @@ void WorkbookGlobals::initialize() if (mxDoc) { - ScModelObj* pModel = dynamic_cast<ScModelObj*>(mxDoc.get()); + ScModelObj* pModel = comphelper::getFromUnoTunnel<ScModelObj>(mxDoc); if (pModel) mpDocShell = static_cast<ScDocShell*>(pModel->GetEmbeddedObject()); if (mpDocShell) diff --git a/sc/source/ui/vba/excelvbahelper.cxx b/sc/source/ui/vba/excelvbahelper.cxx index 317b064543b2..1c1824d89533 100644 --- a/sc/source/ui/vba/excelvbahelper.cxx +++ b/sc/source/ui/vba/excelvbahelper.cxx @@ -21,6 +21,7 @@ #include <basic/basmgr.hxx> #include <comphelper/processfactory.hxx> +#include <comphelper/servicehelper.hxx> #include <vbahelper/vbahelper.hxx> #include <com/sun/star/frame/XModel.hpp> #include <com/sun/star/sheet/XSheetCellRange.hpp> @@ -238,7 +239,7 @@ ScDocShell* getDocShell( const css::uno::Reference< css::frame::XModel>& xModel ) { uno::Reference< uno::XInterface > xIf( xModel, uno::UNO_QUERY_THROW ); - ScModelObj* pModel = dynamic_cast< ScModelObj* >( xIf.get() ); + ScModelObj* pModel = comphelper::getFromUnoTunnel< ScModelObj >( xIf ); ScDocShell* pDocShell = nullptr; if ( pModel ) pDocShell = static_cast<ScDocShell*>(pModel->GetEmbeddedObject());