sw/source/ui/fldui/fldref.cxx | 47 ++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 28 deletions(-)
New commits: commit bcd760e72c2b75cedf4adf5f5a949a57a8a3f1be Author: Michael Stahl <michael.st...@allotropia.de> AuthorDate: Fri Feb 4 18:28:00 2022 +0100 Commit: Thorsten Behrens <thorsten.behr...@allotropia.de> CommitDate: Thu Feb 17 01:27:06 2022 +0100 tdf#146462 sw: fix broken CrossReference field tab page (regression from 40487d9c81c69c4e5ee1621e53c8162ae33c80b2) Change-Id: Ifb4117a8fa5c393483209b2768f0b6ea4eea2d5e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129502 Tested-by: Michael Stahl <michael.st...@allotropia.de> Reviewed-by: Michael Stahl <michael.st...@allotropia.de> (cherry picked from commit 6d5f22585003e1b0091eefad9d6a2446a1b510d1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130045 Tested-by: Thorsten Behrens <thorsten.behr...@allotropia.de> Reviewed-by: Thorsten Behrens <thorsten.behr...@allotropia.de> diff --git a/sw/source/ui/fldui/fldref.cxx b/sw/source/ui/fldui/fldref.cxx index 2b29583e7c8a..d13ed61cd550 100644 --- a/sw/source/ui/fldui/fldref.cxx +++ b/sw/source/ui/fldui/fldref.cxx @@ -477,11 +477,6 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString) SwGetRefField const*const pRefField(dynamic_cast<SwGetRefField*>(GetCurField())); const sal_uInt16 nTypeId = m_xTypeLB->get_id(GetTypeSel()).toUInt32(); - if (!pRefField) - { - return; - } - OUString sOldSel; // #i83479# if ( m_xSelectionLB->get_visible() ) @@ -490,7 +485,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString) if (nSelectionSel != -1) sOldSel = m_xSelectionLB->get_text(nSelectionSel); } - if (IsFieldEdit() && sOldSel.isEmpty()) + if (IsFieldEdit() && pRefField && sOldSel.isEmpty()) sOldSel = OUString::number( pRefField->GetSeqNo() + 1 ); m_xSelectionLB->freeze(); @@ -539,7 +534,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString) } } } - if (IsFieldEdit()) + if (IsFieldEdit() && pRefField) sOldSel = pRefField->GetSetRefName(); } else if (nTypeId == REFFLDFLAG_FOOTNOTE) @@ -554,7 +549,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString) { m_xSelectionLB->append_text( aArr[ n ].sDlgEntry ); } - if (IsFieldEdit() && pRefField->GetSeqNo() == aArr[ n ].nSeqNo) + if (IsFieldEdit() && pRefField && pRefField->GetSeqNo() == aArr[ n ].nSeqNo) sOldSel = aArr[n].sDlgEntry; } } @@ -570,7 +565,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString) { m_xSelectionLB->append_text( aArr[ n ].sDlgEntry ); } - if (IsFieldEdit() && pRefField->GetSeqNo() == aArr[ n ].nSeqNo) + if (IsFieldEdit() && pRefField && pRefField->GetSeqNo() == aArr[ n ].nSeqNo) sOldSel = aArr[n].sDlgEntry; } } @@ -594,9 +589,9 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString) OUString sId(OUString::number(nOutlIdx)); m_xSelectionToolTipLB->append(sId, pIDoc->getOutlineText(nOutlIdx, pSh->GetLayout(), true, true, false)); - if ( ( IsFieldEdit() && - pRefField->GetReferencedTextNode() == maOutlineNodes[nOutlIdx] ) || - mpSavedSelectedTextNode == maOutlineNodes[nOutlIdx] ) + if ((IsFieldEdit() && pRefField + && pRefField->GetReferencedTextNode() == maOutlineNodes[nOutlIdx]) + || mpSavedSelectedTextNode == maOutlineNodes[nOutlIdx]) { m_sSelectionToolTipLBId = sId; sOldSel.clear(); @@ -629,9 +624,9 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString) OUString sId(OUString::number(nNumItemIdx)); m_xSelectionToolTipLB->append(sId, pIDoc->getListItemText(*maNumItems[nNumItemIdx], *pSh->GetLayout())); - if ( ( IsFieldEdit() && - pRefField->GetReferencedTextNode() == maNumItems[nNumItemIdx]->GetTextNode() ) || - mpSavedSelectedTextNode == maNumItems[nNumItemIdx]->GetTextNode() ) + if ((IsFieldEdit() && pRefField + && pRefField->GetReferencedTextNode() == maNumItems[nNumItemIdx]->GetTextNode()) + || mpSavedSelectedTextNode == maNumItems[nNumItemIdx]->GetTextNode()) { m_sSelectionToolTipLBId = sId; sOldSel.clear(); @@ -666,12 +661,12 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString) { m_xSelectionLB->append_text( aArr[ n ].sDlgEntry ); } - if (IsFieldEdit() && sOldSel.isEmpty() && + if (IsFieldEdit() && pRefField && sOldSel.isEmpty() && aArr[ n ].nSeqNo == pRefField->GetSeqNo()) sOldSel = aArr[ n ].sDlgEntry; } - if (IsFieldEdit() && sOldSel.isEmpty()) + if (IsFieldEdit() && pRefField && sOldSel.isEmpty()) sOldSel = OUString::number( pRefField->GetSeqNo() + 1); } } @@ -689,7 +684,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString) } } - if (IsFieldEdit()) + if (IsFieldEdit() && pRefField) sOldSel = pRefField->GetSetRefName(); } @@ -962,10 +957,6 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* ) } SwGetRefField const*const pRefField(dynamic_cast<SwGetRefField*>(GetCurField())); - if (!pRefField) - { - return false; - } if (REFFLDFLAG & nTypeId) { @@ -995,10 +986,10 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* ) { aVal = OUString::number( aArr[nPos].nSeqNo ); - if (IsFieldEdit() && aArr[nPos].nSeqNo == pRefField->GetSeqNo()) + if (IsFieldEdit() && pRefField && aArr[nPos].nSeqNo == pRefField->GetSeqNo()) bModified = true; // can happen with fields of which the references were deleted } - else if (IsFieldEdit()) + else if (IsFieldEdit() && pRefField) aVal = OUString::number( pRefField->GetSeqNo() ); } else if (REFFLDFLAG_ENDNOTE == nTypeId) // endnotes @@ -1016,10 +1007,10 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* ) { aVal = OUString::number( aArr[nPos].nSeqNo ); - if (IsFieldEdit() && aArr[nPos].nSeqNo == pRefField->GetSeqNo()) + if (IsFieldEdit() && pRefField && aArr[nPos].nSeqNo == pRefField->GetSeqNo()) bModified = true; // can happen with fields of which the reference was deleted } - else if (IsFieldEdit()) + else if (IsFieldEdit() && pRefField) aVal = OUString::number( pRefField->GetSeqNo() ); } // #i83479# @@ -1084,10 +1075,10 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* ) { aVal = OUString::number( aArr[nPos].nSeqNo ); - if (IsFieldEdit() && aArr[nPos].nSeqNo == pRefField->GetSeqNo()) + if (IsFieldEdit() && pRefField && aArr[nPos].nSeqNo == pRefField->GetSeqNo()) bModified = true; // can happen with fields of which the reference was deleted } - else if (IsFieldEdit()) + else if (IsFieldEdit() && pRefField) aVal = OUString::number( pRefField->GetSeqNo() ); } }