sd/qa/ui/func/func.cxx | 1 sd/qa/unit/AnnotationTest.cxx | 8 +++ sd/qa/unit/TextFittingTest.cxx | 2 sd/qa/unit/misc-tests.cxx | 9 ++++ sd/qa/unit/tiledrendering/LOKitSearchTest.cxx | 9 ++++ sd/qa/unit/tiledrendering/tiledrendering.cxx | 55 +++++++++++++++++++++++++- sd/qa/unit/tiledrendering/tiledrendering2.cxx | 1 sd/qa/unit/uiimpress.cxx | 27 ++++++++++++ sd/source/ui/annotations/annotationwindow.cxx | 15 ++++--- sd/source/ui/dlg/inspagob.cxx | 3 - sd/source/ui/dlg/navigatr.cxx | 5 +- sd/source/ui/dlg/tpaction.cxx | 9 ++-- sd/source/ui/docshell/docshell.cxx | 6 +- sd/source/ui/func/fusearch.cxx | 5 +- sd/source/ui/inc/DrawDocShell.hxx | 2 sd/source/ui/tools/GraphicSizeCheck.cxx | 16 ++++--- 16 files changed, 147 insertions(+), 26 deletions(-)
New commits: commit 743932030fff9bfeeaf606928679567994f0865f Author: Xisco Fauli <[email protected]> AuthorDate: Wed Jan 21 16:54:27 2026 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Sat Jan 24 18:50:50 2026 +0100 sd: use SAL_RET_MAYBENULL in GetViewShell() Change-Id: I0572c6534457e5b768a92fe03da5f44ecfb845c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197763 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins diff --git a/sd/qa/ui/func/func.cxx b/sd/qa/ui/func/func.cxx index f6df8fcc8857..757c37fe82c6 100644 --- a/sd/qa/ui/func/func.cxx +++ b/sd/qa/ui/func/func.cxx @@ -39,6 +39,7 @@ CPPUNIT_TEST_FIXTURE(Test, testNoneToBullet) // Given a document with a shape, the only paragraph has a numbering of type "none": createSdImpressDoc("odp/none-to-bullet.odp"); sd::ViewShell* pViewShell = getSdDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); SdrObject* pShape = pPage->GetObj(0); CPPUNIT_ASSERT(pShape); diff --git a/sd/qa/unit/AnnotationTest.cxx b/sd/qa/unit/AnnotationTest.cxx index 146d7fcb7c6a..3abe652cf182 100644 --- a/sd/qa/unit/AnnotationTest.cxx +++ b/sd/qa/unit/AnnotationTest.cxx @@ -48,6 +48,7 @@ CPPUNIT_TEST_FIXTURE(AnnotationTest, testAnnotation) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(size_t(0), pPage->GetObjCount()); @@ -100,6 +101,7 @@ CPPUNIT_TEST_FIXTURE(AnnotationTest, testAnnotationInsert) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(size_t(0), pPage->GetObjCount()); @@ -116,6 +118,7 @@ CPPUNIT_TEST_FIXTURE(AnnotationTest, testAnnotationDeleteAll) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(size_t(0), pPage->GetObjCount()); @@ -143,6 +146,7 @@ CPPUNIT_TEST_FIXTURE(AnnotationTest, testAnnotationDeleteAllByAuthor) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(size_t(0), pPage->GetObjCount()); @@ -178,6 +182,7 @@ CPPUNIT_TEST_FIXTURE(AnnotationTest, testAnnotationDelete) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(size_t(0), pPage->GetObjCount()); @@ -212,6 +217,7 @@ CPPUNIT_TEST_FIXTURE(AnnotationTest, testAnnotationInsertUndoRedo) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(size_t(0), pPage->GetObjCount()); @@ -257,6 +263,7 @@ CPPUNIT_TEST_FIXTURE(AnnotationTest, testAnnotationPositionUpdate) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); // Check current page SdPage* pPage = pViewShell->GetActualPage(); @@ -452,6 +459,7 @@ CPPUNIT_TEST_FIXTURE(AnnotationTest, testAnnotationTextUpdate) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); // Check current page SdPage* pPage = pViewShell->GetActualPage(); diff --git a/sd/qa/unit/TextFittingTest.cxx b/sd/qa/unit/TextFittingTest.cxx index e2c36f4aa88a..a92f8c9656eb 100644 --- a/sd/qa/unit/TextFittingTest.cxx +++ b/sd/qa/unit/TextFittingTest.cxx @@ -45,6 +45,7 @@ CPPUNIT_TEST_FIXTURE(TextFittingTest, testTest) SdXImpressDocument* pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); CPPUNIT_ASSERT(pXImpressDocument); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); auto pTextObject = DynCastSdrTextObj(pPage->GetObj(0)); CPPUNIT_ASSERT(pTextObject); @@ -61,6 +62,7 @@ CPPUNIT_TEST_FIXTURE(TextFittingTest, testTest) } sd::ViewShell* pViewShell1 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell1); SdrView* pView1 = pViewShell1->GetView(); Scheduler::ProcessEventsToIdle(); pView1->SdrBeginTextEdit(pTextObject); diff --git a/sd/qa/unit/misc-tests.cxx b/sd/qa/unit/misc-tests.cxx index 9da73ca3384d..298bded2dc12 100644 --- a/sd/qa/unit/misc-tests.cxx +++ b/sd/qa/unit/misc-tests.cxx @@ -135,6 +135,7 @@ void SdMiscTest::testTdf99396() SdXImpressDocument* pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); CPPUNIT_ASSERT(pXImpressDocument); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); SdrObject* pObject = pPage->GetObj(0); @@ -164,6 +165,7 @@ void SdMiscTest::testTableObjectUndoTest() SdXImpressDocument* pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); CPPUNIT_ASSERT(pXImpressDocument); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0)); CPPUNIT_ASSERT(pTableObject); @@ -736,6 +738,7 @@ void SdMiscTest::testTdf119392() CPPUNIT_ASSERT(pXImpressDocument); // Insert layer "-P-", not visible, printable, not locked sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdrView* pView = pViewShell->GetView(); pView->InsertNewLayer(u"-P-"_ustr, 6); // 0..4 standard layer, 5 layer "V--" SdrPageView* pPageView = pView->GetSdrPageView(); @@ -796,6 +799,7 @@ void SdMiscTest::testTdf119956() SdXImpressDocument* pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); CPPUNIT_ASSERT(pXImpressDocument); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); sd::GraphicViewShell* pGraphicViewShell = static_cast<sd::GraphicViewShell*>(pViewShell); CPPUNIT_ASSERT(pGraphicViewShell); @@ -839,6 +843,7 @@ void SdMiscTest::testTdf98839_ShearVFlipH() SdXImpressDocument* pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); CPPUNIT_ASSERT(pXImpressDocument); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); SdrObjCustomShape* pShape = static_cast<SdrObjCustomShape*>(pPage->GetObj(0)); pShape->Mirror(Point(4000, 2000), Point(4000, 10000)); @@ -865,6 +870,7 @@ void SdMiscTest::testTdf130988() //emulate command .uno:ConvertInto3DLathe sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); E3dView* pView = pViewShell->GetView(); pView->MarkNextObj(); pView->ConvertMarkedObjTo3D(false, basegfx::B2DPoint(8000.0, -3000.0), @@ -891,6 +897,7 @@ void SdMiscTest::testTdf131033() // It produces a rotation around a vertical axis, which is far away from the // generating shape. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); E3dView* pView = pViewShell->GetView(); pView->MarkNextObj(); pView->ConvertMarkedObjTo3D(false, basegfx::B2DPoint(11000.0, -5000.0), @@ -924,6 +931,7 @@ void SdMiscTest::testTdf129898LayerDrawnInSlideshow() // Verify view sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdrPageView* pPageView = pViewShell->GetView()->GetSdrPageView(); CPPUNIT_ASSERT(pPageView->IsLayerVisible(sName)); CPPUNIT_ASSERT(pPageView->IsLayerPrintable(sName)); @@ -1064,6 +1072,7 @@ void SdMiscTest::testTdf157117() SdXImpressDocument* pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); CPPUNIT_ASSERT(pXImpressDocument); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); // insert two pages to make a total of 3 pages dispatchCommand(mxComponent, u".uno:InsertPage"_ustr, {}); diff --git a/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx b/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx index 8a541ebaf096..130aafc2d1b6 100644 --- a/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx +++ b/sd/qa/unit/tiledrendering/LOKitSearchTest.cxx @@ -86,6 +86,7 @@ CPPUNIT_TEST_FIXTURE(LOKitSearchTest, Search) { SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); uno::Reference<container::XIndexAccess> xDrawPage( pXImpressDocument->getDrawPages()->getByIndex(0), uno::UNO_QUERY); @@ -120,6 +121,7 @@ CPPUNIT_TEST_FIXTURE(LOKitSearchTest, SearchAll) { SdXImpressDocument* pXImpressDocument = createDoc("search-all.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); lcl_search(u"match"_ustr, /*bFindAll=*/true); @@ -140,6 +142,7 @@ CPPUNIT_TEST_FIXTURE(LOKitSearchTest, SearchAllSelections) { SdXImpressDocument* pXImpressDocument = createDoc("search-all.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); lcl_search(u"third"_ustr, /*bFindAll=*/true); @@ -153,6 +156,7 @@ CPPUNIT_TEST_FIXTURE(LOKitSearchTest, SearchAllNotifications) { SdXImpressDocument* pXImpressDocument = createDoc("search-all.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); lcl_search(u"third"_ustr, /*bFindAll=*/true); @@ -166,6 +170,7 @@ CPPUNIT_TEST_FIXTURE(LOKitSearchTest, SearchAllFollowedBySearch) { SdXImpressDocument* pXImpressDocument = createDoc("search-all.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); lcl_search(u"third"_ustr, /*bFindAll=*/true); @@ -182,6 +187,7 @@ CPPUNIT_TEST_FIXTURE(LOKitSearchTest, DontSearchInMasterPages) { SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); // This should trigger the not-found callback ("date" is present only on @@ -768,6 +774,7 @@ CPPUNIT_TEST_FIXTURE(LOKitSearchTest, Replace) { SdXImpressDocument* pXImpressDocument = createDoc("ReplaceTest.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); CPPUNIT_ASSERT_EQUAL(u"bbb"_ustr, getShapeText(pXImpressDocument, 0, 0)); @@ -797,6 +804,7 @@ CPPUNIT_TEST_FIXTURE(LOKitSearchTest, ReplaceAll) { SdXImpressDocument* pXImpressDocument = createDoc("ReplaceTest.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); CPPUNIT_ASSERT_EQUAL(u"bbb"_ustr, getShapeText(pXImpressDocument, 0, 0)); @@ -826,6 +834,7 @@ CPPUNIT_TEST_FIXTURE(LOKitSearchTest, ReplaceCombined) { SdXImpressDocument* pXImpressDocument = createDoc("ReplaceTest.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); lcl_replace(u"bbb"_ustr, u"aaa"_ustr, false); // select diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx index 64a791b01c02..f8002fd8ab2e 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx @@ -91,6 +91,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testRegisterCallback) { SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); // Start text edit of the empty title shape. @@ -110,6 +111,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testPostKeyEvent) { SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); CPPUNIT_ASSERT_EQUAL(SdrObjKind::TitleText, pObject->GetObjIdentifier()); @@ -138,6 +140,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testPostMouseEvent) { SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); CPPUNIT_ASSERT_EQUAL(SdrObjKind::TitleText, pObject->GetObjIdentifier()); @@ -175,6 +178,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testSetTextSelection) xShape->setString(u"Aaa bbb."_ustr); // Create a selection on the second word. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); SdrView* pView = pViewShell->GetView(); @@ -203,6 +207,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testGetTextSelection) xShape->setString(u"Shape"_ustr); // Create a selection on the shape text. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); SdrView* pView = pViewShell->GetView(); @@ -222,6 +227,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testSetGraphicSelection) { SdXImpressDocument* pXImpressDocument = createDoc("shape.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); SdrObject* pObject = pPage->GetObj(0); SdrHdlList handleList(nullptr); @@ -281,6 +287,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testResetSelection) xShape->setString(u"Aaa bbb."_ustr); // Create a selection on the second word. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); SdrView* pView = pViewShell->GetView(); @@ -320,6 +327,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testInsertDeletePage) { SdXImpressDocument* pXImpressDocument = createDoc("insert-delete.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); SdDrawDocument* pDoc = pXImpressDocument->GetDocShell()->GetDoc(); @@ -424,6 +432,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testInsertTable) // get the table sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(1); CPPUNIT_ASSERT(pObject); @@ -447,6 +456,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testDeleteTable) dispatchCommand(mxComponent, u".uno:InsertTable"_ustr, aArgs); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdrView* pSdrView = pViewShell->GetView(); const SdrMarkList& rMarkList = pSdrView->GetMarkedObjectList(); CPPUNIT_ASSERT(rMarkList.GetMarkCount()); @@ -477,6 +487,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testResizeTable) // Load the document. SdXImpressDocument* pXImpressDocument = createDoc("table.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject); @@ -523,6 +534,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testResizeTableColumn) // Load the document. SdXImpressDocument* pXImpressDocument = createDoc("table-column.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject); @@ -577,6 +589,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testViewCursors) // Select the shape in the second view. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); SdrView* pView = pViewShell->GetView(); @@ -600,6 +613,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testViewCursorParts) // Select the shape in the second view. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); SdrView* pView = pViewShell->GetView(); @@ -631,6 +645,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testCursorViews) // Begin text edit on the only object on the slide. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdrView* pView = pViewShell->GetView(); pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::TAB); pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::TAB); @@ -674,6 +689,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testCursorVisibility_SingleClick) // Begin text edit on the only object on the slide. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject1 = pActualPage->GetObj(0); CPPUNIT_ASSERT(pObject1 != nullptr); @@ -723,6 +739,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testCursorVisibility_DoubleClick) // Begin text edit on the only object on the slide. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject1 = pActualPage->GetObj(0); CPPUNIT_ASSERT(pObject1 != nullptr); @@ -755,6 +772,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testCursorVisibility_MultiView) // Begin text edit on the only object on the slide. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject1 = pActualPage->GetObj(0); CPPUNIT_ASSERT(pObject1); @@ -803,6 +821,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testCursorVisibility_Escape) // Begin text edit on the only object on the slide. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject1 = pActualPage->GetObj(0); CPPUNIT_ASSERT(pObject1 != nullptr); @@ -846,6 +865,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testViewLock) // Begin text edit in the second view and assert that the first gets a lock // notification. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); SdrView* pView = pViewShell->GetView(); @@ -864,9 +884,11 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testUndoLimiting) // Create the first view. SdXImpressDocument* pXImpressDocument = createDoc("title-shape.odp"); sd::ViewShell* pViewShell1 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell1); int nView1 = SfxLokHelper::getCurrentView(); SfxLokHelper::createView(); sd::ViewShell* pViewShell2 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell2); CPPUNIT_ASSERT(pViewShell1 != pViewShell2); // Begin text edit on the only object on the slide. @@ -937,6 +959,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testCreateViewGraphicSelection) // Select the only shape in the document and assert that the graphic selection is changed. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); SdrView* pView = pViewShell->GetView(); @@ -973,6 +996,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testCreateViewTextCursor) pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0); Scheduler::ProcessEventsToIdle(); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdrView* pSdrView = pViewShell->GetView(); CPPUNIT_ASSERT(pSdrView->IsTextEdit()); @@ -1013,6 +1037,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testTdf102223) // Load the document. SdXImpressDocument* pXImpressDocument = createDoc("tdf102223.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pActualPage->GetObj(2)); CPPUNIT_ASSERT(pTableObject); @@ -1054,6 +1079,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testTdf118354) SdXImpressDocument* pXImpressDocument = createDoc("tdf118354.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pActualPage->GetObjCount()); @@ -1083,6 +1109,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testPostKeyEventInvalidation) CPPUNIT_ASSERT_EQUAL(0, pXImpressDocument->getPart()); SdTestViewCallback aView1; sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdrView* pView = pViewShell->GetView(); pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_TAB); pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_TAB); @@ -1097,6 +1124,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testPostKeyEventInvalidation) SdTestViewCallback aView2; pXImpressDocument->setPart(1); sd::ViewShell* pViewShell2 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell2); SdrView* pView2 = pViewShell2->GetView(); pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, KEY_TAB); pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, KEY_TAB); @@ -1129,6 +1157,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testClipNumRules) CPPUNIT_ASSERT(pXImpressDocument); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject1 = pActualPage->GetObj(1); @@ -1200,6 +1229,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testTdf104405) // Load the document. SdXImpressDocument* pXImpressDocument = createDoc("tdf104405.fodp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(2); auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject); @@ -1250,6 +1280,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testTdf81754) { SdXImpressDocument* pXImpressDocument = createDoc("tdf81754.pptx"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(1); @@ -1279,6 +1310,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testTdf105502) // Load the document. SdXImpressDocument* pXImpressDocument = createDoc("tdf105502.odp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); sd::Window* pWindow = pViewShell->GetActiveWindow(); CPPUNIT_ASSERT(pWindow); SdPage* pActualPage = pViewShell->GetActualPage(); @@ -1610,6 +1642,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testMultiViewInsertDeletePage2) // Begin text edit on the only object on the slide. sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject1 = pActualPage->GetObj(0); CPPUNIT_ASSERT(pObject1 != nullptr); @@ -1659,12 +1692,14 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testDisableUndoRepair) // Create View 1 SfxViewShell* pView1 = SfxViewShell::Current(); sd::ViewShell* pViewShell1 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell1); int nView1 = SfxLokHelper::getCurrentView(); // Create View 2 SfxLokHelper::createView(); SfxViewShell* pView2 = SfxViewShell::Current(); sd::ViewShell* pViewShell2 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell2); int nView2 = SfxLokHelper::getCurrentView(); // Check UNDO is disabled @@ -1744,6 +1779,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testDocumentRepair) SfxViewShell* pView2 = SfxViewShell::Current(); int nView2 = SfxLokHelper::getCurrentView(); sd::ViewShell* pViewShell2 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell2); CPPUNIT_ASSERT(pView1 != pView2); { @@ -1835,6 +1871,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testDefaultView) // Load the document with notes view. SdXImpressDocument* pXImpressDocument = createDoc("notes-view.odp"); sd::ViewShell* pView = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pView); { std::unique_ptr<SfxBoolItem> pImpressView; std::unique_ptr<SfxBoolItem> pNotesView; @@ -1853,6 +1890,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testIMESupport) SdXImpressDocument* pXImpressDocument = createDoc("dummy.odp"); VclPtr<vcl::Window> pDocWindow = pXImpressDocument->getDocWindow(); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdrObject* pObject = pViewShell->GetActualPage()->GetObj(0); SdrTextObj* pTextObj = static_cast<SdrTextObj*>(pObject); SdrView* pView = pViewShell->GetView(); @@ -1889,6 +1927,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testTdf115783) // Load the document. SdXImpressDocument* pXImpressDocument = createDoc("tdf115783.fodp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject); @@ -1995,7 +2034,9 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testPasteTextOnSlide) Scheduler::ProcessEventsToIdle(); // Check the position of the newly added text shape, created for pasted text - SdPage* pActualPage = pXImpressDocument->GetDocShell()->GetViewShell()->GetActualPage(); + sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); + SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), pActualPage->GetObjCount()); SdrObject* pObject = pActualPage->GetObj(2); CPPUNIT_ASSERT(pObject); @@ -2020,6 +2061,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testTdf115873) rObjects.SelectEntry(u"Slide 1"); rObjects.Select(); sd::ViewShell* pSdViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdrView* pSdrView = pSdViewShell->GetView(); pSdrView->UnmarkAllObj(pSdrView->GetSdrPageView()); @@ -2062,6 +2104,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testCutSelectionChange) CPPUNIT_ASSERT(pXImpressDocument); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); setupLibreOfficeKitViewCallback(pViewShell->GetViewShellBase()); Scheduler::ProcessEventsToIdle(); @@ -2215,7 +2258,9 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testRegenerateDiagram) SdXImpressDocument* pXImpressDocument = createDoc("regenerate-diagram.pptx"); CPPUNIT_ASSERT(pXImpressDocument); - SdPage* pActualPage = pXImpressDocument->GetDocShell()->GetViewShell()->GetActualPage(); + sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); + SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(4), pActualPage->GetObj(0)->GetSubList()->GetObjCount()); // For new Diagram functionality entering group using UI is not allowed as long @@ -2290,6 +2335,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testSlideDuplicateUndo) { pXImpressDocument->setPart(2); sd::ViewShell* pViewShell0 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell0); SdrView* pView = pViewShell0->GetView(); SdPage* pActualPage = pViewShell0->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(1); @@ -2319,6 +2365,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testSlideDuplicateUndo) // Make sure that view 0 now doesn't have an outdated page view pointer. SfxLokHelper::setView(nView0); sd::ViewShell* pViewShell0 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell0); SdrView* pView0 = pViewShell0->GetView(); CPPUNIT_ASSERT(!pView0->GetTextEditPageView()); } @@ -2354,6 +2401,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testMoveShapeHandle) SdXImpressDocument* pXImpressDocument = createDoc("shape.odp"); SdTestViewCallback aView1; sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); SdrObject* pObject = pPage->GetObj(0); SdrView* pView = pViewShell->GetView(); @@ -2385,6 +2433,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testPasteUndo) // Given a document with a textbox, containing "world": SdXImpressDocument* pXImpressDocument = createDoc("paste-undo.fodp"); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); SdrView* pView = pViewShell->GetView(); @@ -2420,6 +2469,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testShapeEditInMultipleViews) // Create view 1 const int nView1 = SfxLokHelper::getCurrentView(); sd::ViewShell* pViewShell1 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell1); SdrView* pView1 = pViewShell1->GetView(); Scheduler::ProcessEventsToIdle(); @@ -2429,6 +2479,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testShapeEditInMultipleViews) CPPUNIT_ASSERT(nView1 != nView2); sd::ViewShell* pViewShell2 = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell2); SdrView* pView2 = pViewShell2->GetView(); Scheduler::ProcessEventsToIdle(); diff --git a/sd/qa/unit/tiledrendering/tiledrendering2.cxx b/sd/qa/unit/tiledrendering/tiledrendering2.cxx index 8bfb3c01da55..2336c46e886d 100644 --- a/sd/qa/unit/tiledrendering/tiledrendering2.cxx +++ b/sd/qa/unit/tiledrendering/tiledrendering2.cxx @@ -56,6 +56,7 @@ CPPUNIT_TEST_FIXTURE(SdTiledRenderingTest, testInsertSignatureLineExternal) SdXImpressDocument* pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); pImpressDocument->initializeForTiledRendering({}); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); sd::View* pView = pViewShell->GetView(); pView->SetAuthor("myauthor"); SdTestViewCallback aView; diff --git a/sd/qa/unit/uiimpress.cxx b/sd/qa/unit/uiimpress.cxx index 9c29597a3e61..64681b32ff66 100644 --- a/sd/qa/unit/uiimpress.cxx +++ b/sd/qa/unit/uiimpress.cxx @@ -102,6 +102,7 @@ void SdUiImpressTest::insertStringToObject(sal_uInt16 nObj, std::u16string_view { auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); SdrObject* pShape = pPage->GetObj(nObj); CPPUNIT_ASSERT_MESSAGE("No Shape", pShape); @@ -126,6 +127,7 @@ sd::slidesorter::SlideSorterViewShell* SdUiImpressTest::getSlideSorterViewShell( { auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); sd::slidesorter::SlideSorterViewShell* pSSVS = nullptr; // Same as in sd/qa/unit/misc-tests.cxx for (int i = 0; i < 1000; i++) @@ -306,10 +308,13 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf111522) createSdImpressDoc("tdf111522.odp"); auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_NEWWINDOW, SfxCallMode::SYNCHRON); sd::ViewShell* pViewShell1 = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell1); pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_NEWWINDOW, SfxCallMode::SYNCHRON); sd::ViewShell* pViewShell2 = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell2); CPPUNIT_ASSERT(pViewShell1 != pViewShell2); // Have slide 1 in window 1, slide 2 in window 2. @@ -369,10 +374,13 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf126197) createSdImpressDoc("tdf126197.odp"); auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_NEWWINDOW, SfxCallMode::SYNCHRON); sd::ViewShell* pViewShell1 = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell1); pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_NEWWINDOW, SfxCallMode::SYNCHRON); sd::ViewShell* pViewShell2 = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell2); CPPUNIT_ASSERT(pViewShell1 != pViewShell2); // Start text edit in window 1. @@ -405,6 +413,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf124708) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(16), pActualPage->GetObjCount()); @@ -426,6 +435,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf159666) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(12), pActualPage->GetObjCount()); @@ -447,6 +457,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf143412) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pActualPage->GetObjCount()); @@ -485,6 +496,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf155211_dashed_line) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pActualPage->GetObjCount()); @@ -513,6 +525,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf169813_prevent_unintended_dashed_li auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pActualPage->GetObjCount()); @@ -541,6 +554,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf162455) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pActualPage->GetObjCount()); @@ -1127,6 +1141,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf128651) createSdImpressDoc("tdf128651_CustomShapeUndo.odp"); auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pObject = pActualPage->GetObj(0); auto pCustomShape = dynamic_cast<SdrObjCustomShape*>(pObject); @@ -1315,6 +1330,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testmoveSlides) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); uno::Sequence<beans::PropertyValue> aArgs( comphelper::InitPropertySequence({ { "PageName", uno::Any(u"Test 1"_ustr) }, @@ -1500,6 +1516,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf141703) typeKey(pXImpressDocument, KEY_ESCAPE); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pActualPage->GetObj(2)); CPPUNIT_ASSERT(pTableObject); @@ -1534,6 +1551,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf164855) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(3), pActualPage->GetObjCount()); @@ -1562,6 +1580,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf127481) auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), pActualPage->GetObjCount()); @@ -1594,6 +1613,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testPageFillColor) createSdImpressDoc("tdf126197.odp"); auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); // Set FillPageColor @@ -1619,6 +1639,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testPageFillGradient) createSdImpressDoc("tdf126197.odp"); auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); // Set FillPageColor @@ -1654,6 +1675,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf134053) createSdImpressDoc("pptx/tdf134053_dashdot.pptx"); auto pXImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pXImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pActualPage = pViewShell->GetActualPage(); SdrObject* pShape = pActualPage->GetObj(0); CPPUNIT_ASSERT_MESSAGE("No Shape", pShape); @@ -1810,6 +1832,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf142589) auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SfxRequest aRequest(*pViewShell->GetViewFrame(), SID_PRESENTATION); pImpressDocument->GetDoc()->getPresentationSettings().mbCustomShow = true; @@ -1838,6 +1861,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testCharColorTheme) dispatchCommand(mxComponent, u".uno:Text"_ustr, {}); auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdrView* pView = pViewShell->GetView(); CPPUNIT_ASSERT(pView->IsTextEdit()); dispatchCommand(mxComponent, u".uno:SelectAll"_ustr, {}); @@ -1974,6 +1998,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testFillColorNoColor) createSdImpressDoc(); auto pImpressDocument = dynamic_cast<SdXImpressDocument*>(mxComponent.get()); sd::ViewShell* pViewShell = pImpressDocument->GetDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SfxDispatcher* pDispatcher = pViewShell->GetViewFrame()->GetDispatcher(); // When dispatching a fill color that only has a fill style (no color), then make sure we don't @@ -2168,6 +2193,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testNumToBullet) // Given a document with a shape, 2nd paragraph is a numbering: createSdImpressDoc("odp/num-to-bullet.odp"); sd::ViewShell* pViewShell = getSdDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); SdrObject* pShape = pPage->GetObj(0); CPPUNIT_ASSERT(pShape); @@ -2216,6 +2242,7 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testBulletOffOn) // Given a document with a shape, last paragraph is has a bullet: createSdImpressDoc("odp/bullet-off-on.odp"); sd::ViewShell* pViewShell = getSdDocShell()->GetViewShell(); + CPPUNIT_ASSERT(pViewShell); SdPage* pPage = pViewShell->GetActualPage(); SdrObject* pShape = pPage->GetObj(0); CPPUNIT_ASSERT(pShape); diff --git a/sd/source/ui/annotations/annotationwindow.cxx b/sd/source/ui/annotations/annotationwindow.cxx index 69c2bf8d6aa4..721264df9f33 100644 --- a/sd/source/ui/annotations/annotationwindow.cxx +++ b/sd/source/ui/annotations/annotationwindow.cxx @@ -102,7 +102,8 @@ bool AnnotationTextWindow::KeyInput(const KeyEvent& rKeyEvt) if ((rKeyCode.IsMod1() && rKeyCode.IsMod2()) && ((nKey == KEY_PAGEUP) || (nKey == KEY_PAGEDOWN))) { - SfxDispatcher* pDispatcher = mrContents.DocShell()->GetViewShell()->GetViewFrame()->GetDispatcher(); + ::sd::ViewShell* pViewSh = mrContents.DocShell()->GetViewShell(); + SfxDispatcher* pDispatcher = pViewSh ? pViewSh->GetViewFrame()->GetDispatcher() : nullptr; if( pDispatcher ) pDispatcher->Execute( nKey == KEY_PAGEDOWN ? SID_NEXT_POSTIT : SID_PREVIOUS_POSTIT ); bDone = true; @@ -306,7 +307,8 @@ void AnnotationWindow::InitControls() IMPL_LINK(AnnotationWindow, MenuItemSelectedHdl, const OUString&, rIdent, void) { - SfxDispatcher* pDispatcher = mpDocShell->GetViewShell()->GetViewFrame()->GetDispatcher(); + ::sd::ViewShell* pViewSh = mpDocShell->GetViewShell(); + SfxDispatcher* pDispatcher = pViewSh ? pViewSh->GetViewFrame()->GetDispatcher() : nullptr; if (!pDispatcher) return; @@ -473,9 +475,12 @@ void AnnotationWindow::ToggleInsMode() { if( mpOutlinerView ) { - SfxBindings &rBnd = mpDocShell->GetViewShell()->GetViewFrame()->GetBindings(); - rBnd.Invalidate(SID_ATTR_INSERT); - rBnd.Update(SID_ATTR_INSERT); + if (::sd::ViewShell* pViewSh = mpDocShell->GetViewShell()) + { + SfxBindings &rBnd = pViewSh->GetViewFrame()->GetBindings(); + rBnd.Invalidate(SID_ATTR_INSERT); + rBnd.Update(SID_ATTR_INSERT); + } } } diff --git a/sd/source/ui/dlg/inspagob.cxx b/sd/source/ui/dlg/inspagob.cxx index caf00b73d384..e05bcba8e43a 100644 --- a/sd/source/ui/dlg/inspagob.cxx +++ b/sd/source/ui/dlg/inspagob.cxx @@ -42,7 +42,8 @@ SdInsertPagesObjsDlg::SdInsertPagesObjsDlg( m_xLbTree->set_size_request(m_xLbTree->get_approximate_digit_width() * 48, m_xLbTree->get_height_rows(12)); - m_xLbTree->SetViewFrame( rDoc.GetDocSh()->GetViewShell()->GetViewFrame() ); + if (sd::ViewShell* pViewShell = rDoc.GetDocSh()->GetViewShell()) + m_xLbTree->SetViewFrame( pViewShell->GetViewFrame() ); m_xLbTree->connect_changed(LINK(this, SdInsertPagesObjsDlg, SelectObjectHdl)); diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx index 38705303ae5c..5c0b54b5a4ef 100644 --- a/sd/source/ui/dlg/navigatr.cxx +++ b/sd/source/ui/dlg/navigatr.cxx @@ -876,9 +876,10 @@ void SdPageNameControllerItem::StateChangedAtToolBoxControl( sal_uInt16 nSId, // marked objects. The HasSelectedChildren test is required when in 'Named Shapes' mode in // order to select the page name when none of the marked objects have a name. bool bDrawViewHasMarkedObjects = false; - if (pInfo->GetDrawDocShell() && pInfo->GetDrawDocShell()->GetViewShell()) + ::sd::ViewShell* pViewSh = pInfo->GetDrawDocShell() ? pInfo->GetDrawDocShell()->GetViewShell() : nullptr; + if (pViewSh) { - const SdrView* pDrawView = pInfo->GetDrawDocShell()->GetViewShell()->GetDrawView(); + const SdrView* pDrawView = pViewSh->GetDrawView(); if (pDrawView && pDrawView->GetMarkedObjectList().GetMarkCount()) bDrawViewHasMarkedObjects = true; } diff --git a/sd/source/ui/dlg/tpaction.cxx b/sd/source/ui/dlg/tpaction.cxx index 8f3db490d4eb..f7d84b9c2237 100644 --- a/sd/source/ui/dlg/tpaction.cxx +++ b/sd/source/ui/dlg/tpaction.cxx @@ -138,9 +138,12 @@ void SdTPAction::SetView( const ::sd::View* pSdView ) if( pDocSh && pDocSh->GetViewShell() ) { mpDoc = pDocSh->GetDoc(); - SfxViewFrame* pFrame = pDocSh->GetViewShell()->GetViewFrame(); - m_xLbTree->SetViewFrame( pFrame ); - m_xLbTreeDocument->SetViewFrame( pFrame ); + if (sd::ViewShell* pViewShell = pDocSh->GetViewShell()) + { + SfxViewFrame* pFrame = pViewShell->GetViewFrame(); + m_xLbTree->SetViewFrame( pFrame ); + m_xLbTreeDocument->SetViewFrame( pFrame ); + } } else { diff --git a/sd/source/ui/docshell/docshell.cxx b/sd/source/ui/docshell/docshell.cxx index d1c4d1c0b091..082e9e9de4a6 100644 --- a/sd/source/ui/docshell/docshell.cxx +++ b/sd/source/ui/docshell/docshell.cxx @@ -444,10 +444,10 @@ IMPL_LINK(DrawDocShell, OnlineSpellCallback, SpellCallbackInfo&, rInfo, void) SdrObject* pObj = nullptr; SdrOutliner* pOutl = nullptr; - if(GetViewShell()) + if(::sd::ViewShell* pViewSh = GetViewShell()) { - pOutl = GetViewShell()->GetView()->GetTextEditOutliner(); - pObj = GetViewShell()->GetView()->GetTextEditObject(); + pOutl = pViewSh->GetView()->GetTextEditOutliner(); + pObj = pViewSh->GetView()->GetTextEditObject(); } mpDoc->ImpOnlineSpellCallback(&rInfo, pObj, pOutl); diff --git a/sd/source/ui/func/fusearch.cxx b/sd/source/ui/func/fusearch.cxx index 550d31b33d1e..c6bb98f4dac1 100644 --- a/sd/source/ui/func/fusearch.cxx +++ b/sd/source/ui/func/fusearch.cxx @@ -100,8 +100,9 @@ void FuSearch::DoExecute( SfxRequest& ) FuSearch::~FuSearch() { - if ( ! mpDocSh->IsInDestruction() && mpDocSh->GetViewShell()!=nullptr) - mpDocSh->GetViewShell()->GetViewFrame()->GetBindings().Invalidate( SidArraySpell ); + if ( ! mpDocSh->IsInDestruction()) + if (::sd::ViewShell* pViewSh = mpDocSh->GetViewShell()) + pViewSh->GetViewFrame()->GetBindings().Invalidate( SidArraySpell ); if (m_pSdOutliner) m_pSdOutliner->EndSpelling(); diff --git a/sd/source/ui/inc/DrawDocShell.hxx b/sd/source/ui/inc/DrawDocShell.hxx index 3f3df764c1a3..4bb16b3e8615 100644 --- a/sd/source/ui/inc/DrawDocShell.hxx +++ b/sd/source/ui/inc/DrawDocShell.hxx @@ -107,7 +107,7 @@ public: using SfxObjectShell::GetVisArea; using SfxShell::GetViewShell; - sd::ViewShell* GetViewShell() { return mpViewShell; } + SAL_RET_MAYBENULL sd::ViewShell* GetViewShell() { return mpViewShell; } ::sd::FrameView* GetFrameView(); SdDrawDocument* GetDoc() { return mpDoc;} diff --git a/sd/source/ui/tools/GraphicSizeCheck.cxx b/sd/source/ui/tools/GraphicSizeCheck.cxx index 3c87ca9fa0f6..9e756ec31708 100644 --- a/sd/source/ui/tools/GraphicSizeCheck.cxx +++ b/sd/source/ui/tools/GraphicSizeCheck.cxx @@ -122,18 +122,20 @@ OUString GraphicSizeCheckGUIEntry::getText() void GraphicSizeCheckGUIEntry::markObject() { - sd::ViewShell* pViewShell = m_pDocument->GetDocSh()->GetViewShell(); - SdrView* pView = pViewShell->GetView(); - pView->ShowSdrPage(m_pViolation->getObject()->getSdrPageFromSdrObject()); - pView->UnmarkAll(); - pView->MarkObj(m_pViolation->getObject(), pView->GetSdrPageView()); + if (sd::ViewShell* pViewShell = m_pDocument->GetDocSh()->GetViewShell()) + { + SdrView* pView = pViewShell->GetView(); + pView->ShowSdrPage(m_pViolation->getObject()->getSdrPageFromSdrObject()); + pView->UnmarkAll(); + pView->MarkObj(m_pViolation->getObject(), pView->GetSdrPageView()); + } } void GraphicSizeCheckGUIEntry::runProperties() { markObject(); - sd::ViewShell* pViewShell = m_pDocument->GetDocSh()->GetViewShell(); - pViewShell->GetDispatcher()->Execute(SID_ATTR_GRAF_CROP, SfxCallMode::SYNCHRON); + if (sd::ViewShell* pViewShell = m_pDocument->GetDocSh()->GetViewShell()) + pViewShell->GetDispatcher()->Execute(SID_ATTR_GRAF_CROP, SfxCallMode::SYNCHRON); } GraphicSizeCheckGUIResult::GraphicSizeCheckGUIResult(SdDrawDocument* pDocument)
