sw/source/core/crsr/pam.cxx | 9 +++-- sw/source/core/crsr/swcrsr.cxx | 11 ++++-- sw/source/core/doc/CntntIdxStore.cxx | 2 - sw/source/core/doc/DocumentTimerManager.cxx | 4 +- sw/source/core/doc/doccorr.cxx | 6 +-- sw/source/core/doc/docdesc.cxx | 2 - sw/source/core/doc/tblafmt.cxx | 6 +-- sw/source/core/docnode/ndtbl.cxx | 8 +--- sw/source/core/edit/edfcol.cxx | 10 +++--- sw/source/core/fields/ddefld.cxx | 3 - sw/source/core/frmedt/fetab.cxx | 7 ++-- sw/source/core/layout/frmtool.cxx | 13 +++++-- sw/source/core/sw3io/swacorr.cxx | 8 +++- sw/source/core/txtnode/txtedt.cxx | 22 +++++++------ sw/source/core/undo/docundo.cxx | 3 - sw/source/core/undo/unsect.cxx | 3 - sw/source/core/undo/untbl.cxx | 9 ++++- sw/source/core/unocore/unoframe.cxx | 3 - sw/source/uibase/app/docstyle.cxx | 9 +---- sw/source/uibase/sidebar/WriterInspectorTextPanel.cxx | 30 +++++++++--------- sw/source/uibase/uno/SwXDocumentSettings.cxx | 3 - 21 files changed, 93 insertions(+), 78 deletions(-)
New commits: commit 09848e94d20c067499ad69edf81fa80a45d0a632 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Dec 22 15:40:46 2022 +0000 Commit: Xisco Fauli <xiscofa...@libreoffice.org> CommitDate: Thu Dec 22 21:18:08 2022 +0000 check GetEditShell() Change-Id: I975c7dca9ea569e326fc5d8670a078959ab9f093 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144730 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org> diff --git a/sw/source/core/crsr/pam.cxx b/sw/source/core/crsr/pam.cxx index d162bfb9516b..bc3f9d7104a2 100644 --- a/sw/source/core/crsr/pam.cxx +++ b/sw/source/core/crsr/pam.cxx @@ -918,19 +918,20 @@ bool SwPaM::HasReadonlySel(bool bFormView, bool const isReplace) const // Allow editing when the cursor/selection is fully inside of a legacy form field. bRet = !( pA != nullptr && !bAtStartA && !bAtStartB && pA == pB ); - if (bRet && rDoc.GetEditShell() && rDoc.GetEditShell()->CursorInsideContentControl()) + if (bRet) { // Also allow editing inside content controls in general, similar to form fields. // Specific types will be disabled below. - bRet = false; + if (const SwEditShell* pEditShell = rDoc.GetEditShell()) + bRet = !pEditShell->CursorInsideContentControl(); } } if (!bRet) { // Paragraph Signatures and Classification fields are read-only. - if (rDoc.GetEditShell()) - bRet = rDoc.GetEditShell()->IsCursorInParagraphMetadataField(); + if (const SwEditShell* pEditShell = rDoc.GetEditShell()) + bRet = pEditShell->IsCursorInParagraphMetadataField(); } if (!bRet && diff --git a/sw/source/core/crsr/swcrsr.cxx b/sw/source/core/crsr/swcrsr.cxx index 566b225c7e61..132bbe644610 100644 --- a/sw/source/core/crsr/swcrsr.cxx +++ b/sw/source/core/crsr/swcrsr.cxx @@ -1782,9 +1782,10 @@ bool SwCursor::LeftRight( bool bLeft, sal_uInt16 nCnt, SwCursorSkipMode nMode, if ( !Move( fnMove, fnGo ) ) { - SwEditShell* rSh = GetDoc().GetEditShell(); - if (rSh && rSh->GetViewOptions() && - rSh->GetViewOptions()->IsShowOutlineContentVisibilityButton()) + const SwEditShell* pSh = GetDoc().GetEditShell(); + const SwViewOption* pViewOptions = pSh ? pSh->GetViewOptions() : nullptr; + if (pViewOptions && pViewOptions->IsShowOutlineContentVisibilityButton()) + { // Fixes crash that occurs in documents with outline content folded at the end of // the document. When the cursor is at the end of the visible document and // right arrow key is pressed Move fails after moving the cursor to the @@ -1792,6 +1793,7 @@ bool SwCursor::LeftRight( bool bLeft, sal_uInt16 nCnt, SwCursorSkipMode nMode, // weird numbers to be displayed in the statusbar page number count. Left // arrow, when in this state, causes a crash without RestoredSavePos() added here. RestoreSavePos(); + } break; } @@ -2103,7 +2105,8 @@ bool SwCursor::UpDown( bool bUp, sal_uInt16 nCnt, //Update cursor to change nUpDownX. if ( aOldPos.GetContentIndex() == nOffset ) { - GetDoc().GetEditShell()->UpdateCursor(); + if (SwEditShell* pSh = GetDoc().GetEditShell()) + pSh->UpdateCursor(); bRet = false; } else{ diff --git a/sw/source/core/doc/CntntIdxStore.cxx b/sw/source/core/doc/CntntIdxStore.cxx index 3c89c2384a17..451c8362521b 100644 --- a/sw/source/core/doc/CntntIdxStore.cxx +++ b/sw/source/core/doc/CntntIdxStore.cxx @@ -435,7 +435,7 @@ void ContentIdxStoreImpl::RestoreUnoCursors(updater_t const & rUpdater) void ContentIdxStoreImpl::SaveShellCursors(SwDoc& rDoc, SwNodeOffset nNode, sal_Int32 nContent) { SwCursorShell* pShell = rDoc.GetEditShell(); - if( !pShell ) + if (!pShell) return; for(SwViewShell& rCurShell : pShell->GetRingContainer()) { diff --git a/sw/source/core/doc/DocumentTimerManager.cxx b/sw/source/core/doc/DocumentTimerManager.cxx index 10de8efbebac..13f85a2026c8 100644 --- a/sw/source/core/doc/DocumentTimerManager.cxx +++ b/sw/source/core/doc/DocumentTimerManager.cxx @@ -199,8 +199,8 @@ IMPL_LINK_NOARG( DocumentTimerManager, DoIdleJobs, Timer*, void ) m_rDoc.getIDocumentFieldsAccess().UpdateRefFields(); // References // Validate and update the paragraph signatures. - if (m_rDoc.GetEditShell()) - m_rDoc.GetEditShell()->ValidateAllParagraphSignatures(true); + if (SwEditShell* pSh = m_rDoc.GetEditShell()) + pSh->ValidateAllParagraphSignatures(true); pTmpRoot->EndAllAction(); diff --git a/sw/source/core/doc/doccorr.cxx b/sw/source/core/doc/doccorr.cxx index 596634bb5e1f..8cf23cc43ab5 100644 --- a/sw/source/core/doc/doccorr.cxx +++ b/sw/source/core/doc/doccorr.cxx @@ -91,9 +91,8 @@ void PaMCorrAbs( const SwPaM& rRange, SwPosition const aEnd( *rRange.End() ); SwPosition const aNewPos( rNewPos ); SwDoc& rDoc = aStart.GetNode().GetDoc(); - SwCursorShell *const pShell = rDoc.GetEditShell(); - if( pShell ) + if (SwCursorShell *const pShell = rDoc.GetEditShell()) { for(const SwViewShell& rShell : pShell->GetRingContainer()) { @@ -249,8 +248,7 @@ void PaMCorrRel( const SwNode &rOldNode, const sal_Int32 nCntIdx = rNewPos.GetContentIndex() + nOffset; - SwCursorShell const* pShell = rDoc.GetEditShell(); - if( pShell ) + if (SwCursorShell const* pShell = rDoc.GetEditShell()) { for(const SwViewShell& rShell : pShell->GetRingContainer()) { diff --git a/sw/source/core/doc/docdesc.cxx b/sw/source/core/doc/docdesc.cxx index d75caf8cac0b..57e561e1f444 100644 --- a/sw/source/core/doc/docdesc.cxx +++ b/sw/source/core/doc/docdesc.cxx @@ -897,7 +897,7 @@ void SwDoc::PrtOLENotify( bool bAll ) IMPL_LINK_NOARG( SwDoc, DoUpdateModifiedOLE, Timer *, void ) { SwFEShell* pSh = static_cast<SwFEShell*>(GetEditShell()); - if( !pSh ) + if (!pSh) return; mbOLEPrtNotifyPending = mbAllOLENotify = false; diff --git a/sw/source/core/doc/tblafmt.cxx b/sw/source/core/doc/tblafmt.cxx index 901b472fa74b..fdfe2702149b 100644 --- a/sw/source/core/doc/tblafmt.cxx +++ b/sw/source/core/doc/tblafmt.cxx @@ -683,8 +683,8 @@ void SwTableAutoFormat::RestoreTableProperties(SwTable &table) const pFormat->SetFormatAttr(rSet); - SwEditShell *pShell = pDoc->GetEditShell(); - pDoc->SetRowSplit(*pShell->getShellCursor(false), SwFormatRowSplit(m_bRowSplit)); + if (SwEditShell *pShell = pDoc->GetEditShell()) + pDoc->SetRowSplit(*pShell->getShellCursor(false), SwFormatRowSplit(m_bRowSplit)); table.SetRowsToRepeat(m_aRepeatHeading); } @@ -700,7 +700,7 @@ void SwTableAutoFormat::StoreTableProperties(const SwTable &table) return; SwEditShell *pShell = pDoc->GetEditShell(); - std::unique_ptr<SwFormatRowSplit> pRowSplit = SwDoc::GetRowSplit(*pShell->getShellCursor(false)); + std::unique_ptr<SwFormatRowSplit> pRowSplit(pShell ? SwDoc::GetRowSplit(*pShell->getShellCursor(false)) : nullptr); m_bRowSplit = pRowSplit && pRowSplit->GetValue(); pRowSplit.reset(); diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index 66991287a888..77f7a4d3e97c 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -1437,7 +1437,7 @@ bool SwDoc::TableToText( const SwTableNode* pTableNd, sal_Unicode cCh ) // If this is triggered by SwUndoTableToText::Repeat() nobody ever deleted // the table cursor. SwEditShell* pESh = GetEditShell(); - if( pESh && pESh->IsTableMode() ) + if (pESh && pESh->IsTableMode()) pESh->ClearMark(); SwNodeRange aRg( *pTableNd, SwNodeOffset(0), *pTableNd->EndOfSectionNode() ); @@ -1828,8 +1828,7 @@ void SwDoc::DeleteRow( const SwCursor& rCursor ) if( aFndBox.GetLines().empty() ) return; - SwEditShell* pESh = GetEditShell(); - if( pESh ) + if (SwEditShell* pESh = GetEditShell()) { pESh->KillPams(); // FIXME: actually we should be iterating over all Shells! @@ -1910,8 +1909,7 @@ void SwDoc::DeleteCol( const SwCursor& rCursor ) // The Cursors need to be removed from the to-be-deleted range. // Always place them after/on top of the Table; they are always set // to the old position via the document position. - SwEditShell* pESh = GetEditShell(); - if( pESh ) + if (SwEditShell* pESh = GetEditShell()) { const SwNode* pNd = rCursor.GetPointNode().FindTableBoxStartNode(); pESh->ParkCursor( *pNd ); diff --git a/sw/source/core/edit/edfcol.cxx b/sw/source/core/edit/edfcol.cxx index dbd9d5bb30dd..47b4eb61684d 100644 --- a/sw/source/core/edit/edfcol.cxx +++ b/sw/source/core/edit/edfcol.cxx @@ -1728,9 +1728,10 @@ void SwUndoParagraphSigning::Insert() // Prevent validation since this will trigger a premature validation // upon inserting, but before setting the metadata. SwEditShell* pEditSh = m_rDoc.GetEditShell(); - const bool bOldValidationFlag = pEditSh->SetParagraphSignatureValidation(false); + const bool bOldValidationFlag = pEditSh && pEditSh->SetParagraphSignatureValidation(false); comphelper::ScopeGuard const g([&] () { - pEditSh->SetParagraphSignatureValidation(bOldValidationFlag); + if (pEditSh) + pEditSh->SetParagraphSignatureValidation(bOldValidationFlag); m_rDoc.GetIDocumentUndoRedo().DoUndo(isUndoEnabled); }); @@ -1747,9 +1748,10 @@ void SwUndoParagraphSigning::Remove() // Prevent validation since this will trigger a premature validation // upon removing. SwEditShell* pEditSh = m_rDoc.GetEditShell(); - const bool bOldValidationFlag = pEditSh->SetParagraphSignatureValidation(false); + const bool bOldValidationFlag = pEditSh && pEditSh->SetParagraphSignatureValidation(false); comphelper::ScopeGuard const g([&] () { - pEditSh->SetParagraphSignatureValidation(bOldValidationFlag); + if (pEditSh) + pEditSh->SetParagraphSignatureValidation(bOldValidationFlag); m_rDoc.GetIDocumentUndoRedo().DoUndo(isUndoEnabled); }); diff --git a/sw/source/core/fields/ddefld.cxx b/sw/source/core/fields/ddefld.cxx index 55b7d4566609..8f01b257aa5e 100644 --- a/sw/source/core/fields/ddefld.cxx +++ b/sw/source/core/fields/ddefld.cxx @@ -114,8 +114,7 @@ void SwIntrnlRefLink::Closed() { // advise goes, convert all fields into text? SwViewShell* pSh = m_rFieldType.GetDoc()->getIDocumentLayoutAccess().GetCurrentViewShell(); - SwEditShell* pESh = m_rFieldType.GetDoc()->GetEditShell(); - if( pESh ) + if (SwEditShell* pESh = m_rFieldType.GetDoc()->GetEditShell()) { pESh->StartAllAction(); pESh->FieldToText(&m_rFieldType); diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx index 3c0c5a4848a7..d4348fe13a9d 100644 --- a/sw/source/core/frmedt/fetab.cxx +++ b/sw/source/core/frmedt/fetab.cxx @@ -361,8 +361,8 @@ bool SwFEShell::DeleteRow(bool bCompleteTable) // don't need to remove the row frames in Show Changes mode if ( !bRecordAndHideChanges ) { - SwEditShell* pEditShell = GetDoc()->GetEditShell(); - pEditShell->Delete(false); + if (SwEditShell* pEditShell = GetDoc()->GetEditShell()) + pEditShell->Delete(false); EndAllActionAndCall(); EndUndo(bCompleteTable ? SwUndoId::UI_TABLE_DELETE : SwUndoId::ROW_DELETE); @@ -487,7 +487,8 @@ bool SwFEShell::DeleteRow(bool bCompleteTable) pWrtShell->UpdateCursor(); } - pEditShell->Delete(false); + if (pEditShell) + pEditShell->Delete(false); } SwNodeOffset nIdx; diff --git a/sw/source/core/layout/frmtool.cxx b/sw/source/core/layout/frmtool.cxx index 0bae8e422e81..e47c68283e33 100644 --- a/sw/source/core/layout/frmtool.cxx +++ b/sw/source/core/layout/frmtool.cxx @@ -3897,12 +3897,17 @@ SwFrame* GetFrameOfModify(SwRootFrame const*const pLayout, sw::BroadcastingModif bool IsExtraData( const SwDoc *pDoc ) { const SwLineNumberInfo &rInf = pDoc->GetLineNumberInfo(); - return rInf.IsPaintLineNumbers() || + if (rInf.IsPaintLineNumbers() || rInf.IsCountInFlys() || (static_cast<sal_Int16>(SW_MOD()->GetRedlineMarkPos()) != text::HoriOrientation::NONE && - !pDoc->getIDocumentRedlineAccess().GetRedlineTable().empty()) || - (pDoc->GetEditShell() && pDoc->GetEditShell()->GetViewOptions() && - pDoc->GetEditShell()->GetViewOptions()->IsShowOutlineContentVisibilityButton()); + !pDoc->getIDocumentRedlineAccess().GetRedlineTable().empty())) + { + return true; + } + + const SwEditShell* pSh = pDoc->GetEditShell(); + const SwViewOption* pViewOptions = pSh ? pSh->GetViewOptions() : nullptr; + return pViewOptions && pViewOptions->IsShowOutlineContentVisibilityButton(); } // OD 22.09.2003 #110978# diff --git a/sw/source/core/sw3io/swacorr.cxx b/sw/source/core/sw3io/swacorr.cxx index 97fcc55431b0..b626c94d190f 100644 --- a/sw/source/core/sw3io/swacorr.cxx +++ b/sw/source/core/sw3io/swacorr.cxx @@ -65,7 +65,11 @@ bool SwAutoCorrect::PutText( const uno::Reference < embed::XStorage >& rStg, SfxObjectShell& rObjSh, OUString& rLong ) { SwDocShell* pDShell = dynamic_cast<SwDocShell*>(&rObjSh); - if( !pDShell ) + if (!pDShell) + return false; + + SwEditShell* pEditSh = pDShell->GetEditShell(); + if (!pEditSh) return false; ErrCode nRet = ERRCODE_NONE; @@ -77,7 +81,7 @@ bool SwAutoCorrect::PutText( const uno::Reference < embed::XStorage >& rStg, nRet = aBlk.BeginPutDoc( rShort, rShort ); if( ! nRet.IsError() ) { - pDShell->GetEditShell()->CopySelToDoc( *pDoc ); + pEditSh->CopySelToDoc(*pDoc); nRet = aBlk.PutDoc(); aBlk.AddName ( rShort, rShort ); if( ! nRet.IsError() ) diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx index 59950ce9e06f..51c8528e2e19 100644 --- a/sw/source/core/txtnode/txtedt.cxx +++ b/sw/source/core/txtnode/txtedt.cxx @@ -1103,6 +1103,8 @@ void SwTextNode::SetLanguageAndFont( const SwPaM &rPaM, const vcl::Font *pFont, sal_uInt16 nFontWhichId ) { SwEditShell *pEditShell = GetDoc().GetEditShell(); + if (!pEditShell) + return; SfxItemSet aSet(pEditShell->GetAttrPool(), nLangWhichId, nLangWhichId ); if (pFont) aSet.MergeRange(nFontWhichId, nFontWhichId); // Keep it sorted @@ -1207,16 +1209,18 @@ bool SwTextNode::Convert( SwConversionArgs &rArgs ) aCurPaM.GetPoint()->SetContent(nBegin + nLen); // check script type of selected text - SwEditShell *pEditShell = GetDoc().GetEditShell(); - pEditShell->Push(); // save current cursor on stack - pEditShell->SetSelection( aCurPaM ); - bool bIsAsianScript = (SvtScriptType::ASIAN == pEditShell->GetScriptType()); - pEditShell->Pop(SwCursorShell::PopMode::DeleteCurrent); // restore cursor from stack - - if (!bIsAsianScript && rArgs.bAllowImplicitChangesForNotConvertibleText) + if (SwEditShell *pEditShell = GetDoc().GetEditShell()) { - // Store for later use - aImplicitChanges.emplace_back(nBegin, nBegin+nLen); + pEditShell->Push(); // save current cursor on stack + pEditShell->SetSelection( aCurPaM ); + bool bIsAsianScript = (SvtScriptType::ASIAN == pEditShell->GetScriptType()); + pEditShell->Pop(SwCursorShell::PopMode::DeleteCurrent); // restore cursor from stack + + if (!bIsAsianScript && rArgs.bAllowImplicitChangesForNotConvertibleText) + { + // Store for later use + aImplicitChanges.emplace_back(nBegin, nBegin+nLen); + } } nBegin = nChPos; // start of next language portion } diff --git a/sw/source/core/undo/docundo.cxx b/sw/source/core/undo/docundo.cxx index c474dd679214..84fcd4fe5bb6 100644 --- a/sw/source/core/undo/docundo.cxx +++ b/sw/source/core/undo/docundo.cxx @@ -666,8 +666,7 @@ bool UndoManager::impl_DoUndoRedo(UndoOrRedoType undoOrRedo, size_t nUndoOffset) UnoActionContext c(& rDoc); // exception-safe StartAllAction/EndAllAction - SwEditShell *const pEditShell( rDoc.GetEditShell() ); - + SwEditShell *const pEditShell(rDoc.GetEditShell()); OSL_ENSURE(pEditShell, "sw::UndoManager needs a SwEditShell!"); if (!pEditShell) { diff --git a/sw/source/core/undo/unsect.cxx b/sw/source/core/undo/unsect.cxx index 0463b665677f..b812821fb8d3 100644 --- a/sw/source/core/undo/unsect.cxx +++ b/sw/source/core/undo/unsect.cxx @@ -249,8 +249,7 @@ void SwUndoInsSection::RedoImpl(::sw::UndoRedoContext & rContext) if( pUpdateTOX ) { // initiate formatting - SwEditShell* pESh = rDoc.GetEditShell(); - if( pESh ) + if (SwEditShell* pESh = rDoc.GetEditShell()) pESh->CalcLayout(); // insert page numbers diff --git a/sw/source/core/undo/untbl.cxx b/sw/source/core/undo/untbl.cxx index ce646033df6c..4621bb8d6e75 100644 --- a/sw/source/core/undo/untbl.cxx +++ b/sw/source/core/undo/untbl.cxx @@ -312,12 +312,19 @@ void SwUndoInsTable::RedoImpl(::sw::UndoRedoContext & rContext) { SwDoc & rDoc = rContext.GetDoc(); + SwEditShell *const pEditShell(rDoc.GetEditShell()); + OSL_ENSURE(pEditShell, "SwUndoInsTable::RedoImpl needs a SwEditShell!"); + if (!pEditShell) + { + throw uno::RuntimeException(); + } + SwPosition const aPos(rDoc.GetNodes(), m_nStartNode); const SwTable* pTable = rDoc.InsertTable( m_aInsTableOptions, aPos, m_nRows, m_nColumns, m_nAdjust, m_pAutoFormat.get(), m_oColumnWidth ? &*m_oColumnWidth : nullptr ); - rDoc.GetEditShell()->MoveTable( GotoPrevTable, fnTableStart ); + pEditShell->MoveTable( GotoPrevTable, fnTableStart ); static_cast<SwFrameFormat*>(pTable->GetFrameFormat())->SetFormatName( m_sTableName ); SwTableNode* pTableNode = rDoc.GetNodes()[m_nStartNode]->GetTableNode(); diff --git a/sw/source/core/unocore/unoframe.cxx b/sw/source/core/unocore/unoframe.cxx index 71e69a95192d..d81ed0ff6b63 100644 --- a/sw/source/core/unocore/unoframe.cxx +++ b/sw/source/core/unocore/unoframe.cxx @@ -2136,8 +2136,7 @@ uno::Any SwXFrame::getPropertyValue(const OUString& rPropertyName) SwDoc* pDoc = pFormat->GetDoc(); if (pDoc) { - const SwEditShell* pEditShell = pDoc->GetEditShell(); - if (pEditShell) + if (const SwEditShell* pEditShell = pDoc->GetEditShell()) { SwFrame* pCurrFrame = pEditShell->GetCurrFrame(false); GraphicAttr aGraphicAttr; diff --git a/sw/source/uibase/app/docstyle.cxx b/sw/source/uibase/app/docstyle.cxx index eb80794d7ea5..e3dfe4b4e255 100644 --- a/sw/source/uibase/app/docstyle.cxx +++ b/sw/source/uibase/app/docstyle.cxx @@ -504,8 +504,7 @@ void SwDocStyleSheet::SetGrabBagItem(const uno::Any& rVal) { dynamic_cast<SwDocStyleSheetPool&>(*m_pPool).InvalidateIterator(); m_pPool->Broadcast(SfxStyleSheetHint(SfxHintId::StyleSheetModified, *this)); - SwEditShell* pSh = m_rDoc.GetEditShell(); - if (pSh) + if (SwEditShell* pSh = m_rDoc.GetEditShell()) pSh->CallChgLnk(); } } @@ -615,8 +614,7 @@ void SwDocStyleSheet::SetHidden( bool bValue ) // calling pPool->First() here would be quite slow... dynamic_cast<SwDocStyleSheetPool&>(*m_pPool).InvalidateIterator(); // internal list has to be updated m_pPool->Broadcast( SfxStyleSheetHint( SfxHintId::StyleSheetModified, *this ) ); - SwEditShell* pSh = m_rDoc.GetEditShell(); - if( pSh ) + if (SwEditShell* pSh = m_rDoc.GetEditShell()) pSh->CallChgLnk(); } } @@ -1148,8 +1146,7 @@ bool SwDocStyleSheet::SetName(const OUString& rStr, bool bReindexNow) { m_pPool->First(nFamily); // internal list has to be updated m_pPool->Broadcast( SfxStyleSheetHint( SfxHintId::StyleSheetModified, *this ) ); - SwEditShell* pSh = m_rDoc.GetEditShell(); - if( pSh ) + if (SwEditShell* pSh = m_rDoc.GetEditShell()) pSh->CallChgLnk(); } return true; diff --git a/sw/source/uibase/sidebar/WriterInspectorTextPanel.cxx b/sw/source/uibase/sidebar/WriterInspectorTextPanel.cxx index 9b85126ca856..5f861000296a 100644 --- a/sw/source/uibase/sidebar/WriterInspectorTextPanel.cxx +++ b/sw/source/uibase/sidebar/WriterInspectorTextPanel.cxx @@ -49,8 +49,8 @@ namespace sw::sidebar { -static void UpdateTree(SwDocShell* pDocSh, std::vector<svx::sidebar::TreeNode>& aStore, - sal_Int32& rParIdx); +static void UpdateTree(SwDocShell& rDocSh, SwEditShell& rEditSh, + std::vector<svx::sidebar::TreeNode>& aStore, sal_Int32& rParIdx); std::unique_ptr<PanelLayout> WriterInspectorTextPanel::Create(weld::Widget* pParent) { @@ -74,9 +74,9 @@ WriterInspectorTextPanel::WriterInspectorTextPanel(weld::Widget* pParent) // Update panel on start std::vector<svx::sidebar::TreeNode> aStore; - if (pDocSh && pDocSh->GetDoc()->GetEditShell() - && pDocSh->GetDoc()->GetEditShell()->GetCursor()->GetPointNode().GetTextNode()) - UpdateTree(pDocSh, aStore, m_nParIdx); + SwEditShell* pEditSh = pDocSh ? pDocSh->GetDoc()->GetEditShell() : nullptr; + if (pEditSh && pEditSh->GetCursor()->GetPointNode().GetTextNode()) + UpdateTree(*pDocSh, *pEditSh, aStore, m_nParIdx); updateEntries(aStore, m_nParIdx); } @@ -519,11 +519,11 @@ static void InsertValues(const css::uno::Reference<css::uno::XInterface>& rSourc }); } -static void UpdateTree(SwDocShell* pDocSh, std::vector<svx::sidebar::TreeNode>& aStore, - sal_Int32& rParIdx) +static void UpdateTree(SwDocShell& rDocSh, SwEditShell& rEditSh, + std::vector<svx::sidebar::TreeNode>& aStore, sal_Int32& rParIdx) { - SwDoc* pDoc = pDocSh->GetDoc(); - SwPaM* pCursor = pDoc->GetEditShell()->GetCursor(); + SwDoc* pDoc = rDocSh.GetDoc(); + SwPaM* pCursor = rEditSh.GetCursor(); svx::sidebar::TreeNode aCharDFNode; svx::sidebar::TreeNode aCharNode; svx::sidebar::TreeNode aParaNode; @@ -566,7 +566,7 @@ static void UpdateTree(SwDocShell* pDocSh, std::vector<svx::sidebar::TreeNode>& InsertValues(xRange, aIsDefined, aCharDFNode, false, aHiddenProperties, aFieldsNode); - uno::Reference<style::XStyleFamiliesSupplier> xStyleFamiliesSupplier(pDocSh->GetBaseModel(), + uno::Reference<style::XStyleFamiliesSupplier> xStyleFamiliesSupplier(rDocSh.GetBaseModel(), uno::UNO_QUERY); uno::Reference<container::XNameAccess> xStyleFamilies = xStyleFamiliesSupplier->getStyleFamilies(); @@ -626,7 +626,7 @@ static void UpdateTree(SwDocShell* pDocSh, std::vector<svx::sidebar::TreeNode>& aParaNode.children.end()); // Parent style should be first then children // Collect bookmarks at character position - uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(pDocSh->GetBaseModel(), + uno::Reference<text::XBookmarksSupplier> xBookmarksSupplier(rDocSh.GetBaseModel(), uno::UNO_QUERY); uno::Reference<container::XIndexAccess> xBookmarks(xBookmarksSupplier->getBookmarks(), @@ -662,7 +662,7 @@ static void UpdateTree(SwDocShell* pDocSh, std::vector<svx::sidebar::TreeNode>& } // Collect sections at character position - uno::Reference<text::XTextSectionsSupplier> xTextSectionsSupplier(pDocSh->GetBaseModel(), + uno::Reference<text::XTextSectionsSupplier> xTextSectionsSupplier(rDocSh.GetBaseModel(), uno::UNO_QUERY); uno::Reference<container::XIndexAccess> xTextSections(xTextSectionsSupplier->getTextSections(), @@ -738,9 +738,9 @@ IMPL_LINK(WriterInspectorTextPanel, AttrChangedNotify, LinkParamNone*, pLink, vo SwDocShell* pDocSh = m_pShell->GetDoc()->GetDocShell(); std::vector<svx::sidebar::TreeNode> aStore; - if (pDocSh && pDocSh->GetDoc()->GetEditShell() - && pDocSh->GetDoc()->GetEditShell()->GetCursor()->GetPointNode().GetTextNode()) - UpdateTree(pDocSh, aStore, m_nParIdx); + SwEditShell* pEditSh = pDocSh ? pDocSh->GetDoc()->GetEditShell() : nullptr; + if (pEditSh && pEditSh->GetCursor()->GetPointNode().GetTextNode()) + UpdateTree(*pDocSh, *pEditSh, aStore, m_nParIdx); updateEntries(aStore, m_nParIdx); } diff --git a/sw/source/uibase/uno/SwXDocumentSettings.cxx b/sw/source/uibase/uno/SwXDocumentSettings.cxx index a30473028d1e..2f53b0f1aff3 100644 --- a/sw/source/uibase/uno/SwXDocumentSettings.cxx +++ b/sw/source/uibase/uno/SwXDocumentSettings.cxx @@ -490,8 +490,7 @@ void SwXDocumentSettings::_setSingleValue( const comphelper::PropertyInfo & rInf { bool bIsKern = *o3tl::doAccess<bool>(rValue); mpDoc->getIDocumentSettingAccess().set(DocumentSettingId::KERN_ASIAN_PUNCTUATION, bIsKern); - SwEditShell* pEditSh = mpDoc->GetEditShell(); - if(pEditSh) + if (SwEditShell* pEditSh = mpDoc->GetEditShell()) pEditSh->ChgHyphenation(); } break;