writerfilter/source/rtftok/rtfdispatchdestination.cxx | 2 writerfilter/source/rtftok/rtfdispatchflag.cxx | 12 writerfilter/source/rtftok/rtfdispatchvalue.cxx | 24 - writerfilter/source/rtftok/rtfdocumentimpl.cxx | 220 ++++++++++-------- writerfilter/source/rtftok/rtfdocumentimpl.hxx | 63 +++-- 5 files changed, 198 insertions(+), 123 deletions(-)
New commits: commit 7e24483d12a1ae284b026cd737374b40f2a08aa2 Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Fri May 17 21:40:02 2019 +0200 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Mon May 20 10:06:17 2019 +0200 writerfilter: make RTFParserState members private, part 3 Change-Id: I823122d89f674539d6aa54ffd48b406d199677d2 Reviewed-on: https://gerrit.libreoffice.org/72556 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/writerfilter/source/rtftok/rtfdispatchdestination.cxx b/writerfilter/source/rtftok/rtfdispatchdestination.cxx index 881096130517..a855f1c99510 100644 --- a/writerfilter/source/rtftok/rtfdispatchdestination.cxx +++ b/writerfilter/source/rtftok/rtfdispatchdestination.cxx @@ -653,7 +653,7 @@ RTFError RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword) } // new destination => use new destination text - m_aStates.top().setCurrentDestinationText(&m_aStates.top().aDestinationText); + m_aStates.top().setCurrentDestinationText(&m_aStates.top().getDestinationText()); return RTFError::OK; } diff --git a/writerfilter/source/rtftok/rtfdispatchflag.cxx b/writerfilter/source/rtftok/rtfdispatchflag.cxx index 5bc0c75d4171..870ab1e9cd27 100644 --- a/writerfilter/source/rtftok/rtfdispatchflag.cxx +++ b/writerfilter/source/rtftok/rtfdispatchflag.cxx @@ -471,7 +471,7 @@ RTFError RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) m_aStates.top().nCurrentEncoding = getEncoding(getFontIndex(m_nDefaultFontIndex)); m_aStates.top().aCharacterAttributes = getDefaultState().aCharacterAttributes; m_aStates.top().setCurrentCharacterStyleIndex(-1); - m_aStates.top().isRightToLeft = false; + m_aStates.top().setIsRightToLeft(false); m_aStates.top().eRunType = RTFParserState::RunType::LOCH; } break; @@ -579,10 +579,10 @@ RTFError RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) break; case RTF_LTRCH: // dmapper does not support this. - m_aStates.top().isRightToLeft = false; + m_aStates.top().setIsRightToLeft(false); break; case RTF_RTLCH: - m_aStates.top().isRightToLeft = true; + m_aStates.top().setIsRightToLeft(true); if (m_aDefaultState.nCurrentEncoding == RTL_TEXTENCODING_MS_1255) m_aStates.top().nCurrentEncoding = m_aDefaultState.nCurrentEncoding; break; diff --git a/writerfilter/source/rtftok/rtfdispatchvalue.cxx b/writerfilter/source/rtftok/rtfdispatchvalue.cxx index 06097845d5dc..fbf76b468ce0 100644 --- a/writerfilter/source/rtftok/rtfdispatchvalue.cxx +++ b/writerfilter/source/rtftok/rtfdispatchvalue.cxx @@ -164,7 +164,7 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) { case RTF_FS: case RTF_AFS: - nSprm = (m_aStates.top().isRightToLeft + nSprm = (m_aStates.top().getIsRightToLeft() || m_aStates.top().eRunType == RTFParserState::RunType::HICH) ? NS_ooxml::LN_EG_RPrBase_szCs : NS_ooxml::LN_EG_RPrBase_sz; @@ -191,7 +191,7 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) { case RTF_LANG: case RTF_ALANG: - if (m_aStates.top().isRightToLeft + if (m_aStates.top().getIsRightToLeft() || m_aStates.top().eRunType == RTFParserState::RunType::HICH) { nSprm = NS_ooxml::LN_CT_Language_bidi; @@ -261,31 +261,31 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) { case RTF_YR: { - m_aStates.top().nYear = nParam; + m_aStates.top().setYear(nParam); nSprm = 1; } break; case RTF_MO: { - m_aStates.top().nMonth = nParam; + m_aStates.top().setMonth(nParam); nSprm = 1; } break; case RTF_DY: { - m_aStates.top().nDay = nParam; + m_aStates.top().setDay(nParam); nSprm = 1; } break; case RTF_HR: { - m_aStates.top().nHour = nParam; + m_aStates.top().setHour(nParam); nSprm = 1; } break; case RTF_MIN: { - m_aStates.top().nMinute = nParam; + m_aStates.top().setMinute(nParam); nSprm = 1; } break; @@ -336,7 +336,7 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) { case RTF_F: case RTF_AF: - if (m_aStates.top().isRightToLeft + if (m_aStates.top().getIsRightToLeft() || m_aStates.top().eRunType == RTFParserState::RunType::HICH) { nSprm = NS_ooxml::LN_CT_Fonts_cs; diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 0d4d4a290041..5ac66cce3abc 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -220,8 +220,14 @@ const char* keywordToString(RTFKeyword nKeyword) static util::DateTime lcl_getDateTime(RTFParserState const& aState) { - return { 0 /*100sec*/, 0 /*sec*/, aState.nMinute, aState.nHour, - aState.nDay, aState.nMonth, aState.nYear, false }; + return { 0 /*100sec*/, + 0 /*sec*/, + aState.getMinute(), + aState.getHour(), + aState.getDay(), + aState.getMonth(), + static_cast<sal_Int16>(aState.getYear()), + false }; } static void lcl_DestinationToMath(OUStringBuffer* pDestinationText, @@ -842,7 +848,7 @@ void RTFDocumentImpl::resolvePict(bool const bInline, uno::Reference<drawing::XS int b = 0, count = 2; // Feed the destination text to a stream. - OString aStr = OUStringToOString(m_aStates.top().aDestinationText.makeStringAndClear(), + OString aStr = OUStringToOString(m_aStates.top().getDestinationText().makeStringAndClear(), RTL_TEXTENCODING_ASCII_US); for (int i = 0; i < aStr.getLength(); ++i) { @@ -1834,14 +1840,14 @@ RTFError RTFDocumentImpl::dispatchToggle(RTFKeyword nKeyword, bool bParam, int n { case RTF_B: case RTF_AB: - nSprm = (m_aStates.top().isRightToLeft + nSprm = (m_aStates.top().getIsRightToLeft() || m_aStates.top().eRunType == RTFParserState::RunType::HICH) ? NS_ooxml::LN_EG_RPrBase_bCs : NS_ooxml::LN_EG_RPrBase_b; break; case RTF_I: case RTF_AI: - nSprm = (m_aStates.top().isRightToLeft + nSprm = (m_aStates.top().getIsRightToLeft() || m_aStates.top().eRunType == RTFParserState::RunType::HICH) ? NS_ooxml::LN_EG_RPrBase_iCs : NS_ooxml::LN_EG_RPrBase_i; @@ -1940,7 +1946,7 @@ RTFError RTFDocumentImpl::pushState() m_bMathNor); m_aStates.push(m_aStates.top()); } - m_aStates.top().aDestinationText.setLength(0); // was copied: always reset! + m_aStates.top().getDestinationText().setLength(0); // was copied: always reset! m_pTokenizer->pushGroup(); @@ -1948,12 +1954,12 @@ RTFError RTFDocumentImpl::pushState() { case Destination::FONTTABLE: // this is a "faked" destination for the font entry - m_aStates.top().setCurrentDestinationText(&m_aStates.top().aDestinationText); + m_aStates.top().setCurrentDestinationText(&m_aStates.top().getDestinationText()); m_aStates.top().eDestination = Destination::FONTENTRY; break; case Destination::STYLESHEET: // this is a "faked" destination for the style sheet entry - m_aStates.top().setCurrentDestinationText(&m_aStates.top().aDestinationText); + m_aStates.top().setCurrentDestinationText(&m_aStates.top().getDestinationText()); m_aStates.top().eDestination = Destination::STYLEENTRY; { // the *default* is \s0 i.e. paragraph style default @@ -1983,7 +1989,7 @@ RTFError RTFDocumentImpl::pushState() break; case Destination::REVISIONTABLE: // this is a "faked" destination for the revision table entry - m_aStates.top().setCurrentDestinationText(&m_aStates.top().aDestinationText); + m_aStates.top().setCurrentDestinationText(&m_aStates.top().getDestinationText()); m_aStates.top().eDestination = Destination::REVISIONENTRY; break; default: @@ -2234,7 +2240,7 @@ RTFError RTFDocumentImpl::popState() aBuf.append("0"); aBuf.append(OUString::number(ch, 16)); } - m_aStates.top().aDestinationText = aBuf; + m_aStates.top().getDestinationText() = aBuf; } } popState(); @@ -2244,7 +2250,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::LEVELTEXT: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString aStr = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); @@ -2301,7 +2308,8 @@ RTFError RTFDocumentImpl::popState() break; } case Destination::SHAPEPROPERTYNAME: - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group aState.aShape.getProperties().emplace_back( m_aStates.top().getCurrentDestinationText()->makeStringAndClear(), OUString()); @@ -2375,7 +2383,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::BOOKMARKSTART: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString aStr = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); int nPos = m_aBookmarks.size(); @@ -2389,7 +2398,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::BOOKMARKEND: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString aStr = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); if (!m_aStates.top().getCurrentBuffer()) @@ -2404,7 +2414,8 @@ RTFError RTFDocumentImpl::popState() case Destination::INDEXENTRY: case Destination::TOCENTRY: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString str(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); // dmapper expects this as a field, so let's fake something... @@ -2421,7 +2432,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::FORMFIELDNAME: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group auto pValue = new RTFValue(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); @@ -2430,7 +2442,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::FORMFIELDLIST: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group auto pValue = new RTFValue(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); @@ -2441,7 +2454,7 @@ RTFError RTFDocumentImpl::popState() { if (m_bFormField) { - if (&m_aStates.top().aDestinationText + if (&m_aStates.top().getDestinationText() != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OString aStr = OUStringToOString( @@ -2515,28 +2528,32 @@ RTFError RTFDocumentImpl::popState() m_xDocumentProperties->setPrintDate(lcl_getDateTime(aState)); break; case Destination::AUTHOR: - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setAuthor( m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); break; case Destination::KEYWORDS: - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setKeywords(comphelper::string::convertCommaSeparated( m_aStates.top().getCurrentDestinationText()->makeStringAndClear())); break; case Destination::COMMENT: - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setGenerator( m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); break; case Destination::SUBJECT: - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setSubject( @@ -2544,7 +2561,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::TITLE: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setTitle( @@ -2553,7 +2571,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::DOCCOMM: - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setDescription( @@ -2562,7 +2581,8 @@ RTFError RTFDocumentImpl::popState() case Destination::OPERATOR: case Destination::COMPANY: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString aName = aState.eDestination == Destination::OPERATOR ? OUString("Operator") : OUString("Company"); @@ -2586,7 +2606,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::OBJDATA: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group RTFError eError = handleEmbeddedObject(); @@ -2639,7 +2660,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::ANNOTATIONDATE: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString aStr(OStringToOUString( DTTM22OString( @@ -2654,19 +2676,22 @@ RTFError RTFDocumentImpl::popState() } break; case Destination::ANNOTATIONAUTHOR: - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group m_aAuthor = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); break; case Destination::ATNID: - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group m_aAuthorInitials = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); break; case Destination::ANNOTATIONREFERENCESTART: case Destination::ANNOTATIONREFERENCEEND: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString aStr = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); auto pValue = new RTFValue(aStr.toInt32()); @@ -2682,7 +2707,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::ANNOTATIONREFERENCE: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString aStr = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); RTFSprms aAnnAttributes; @@ -2692,7 +2718,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::FALT: { - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString aStr(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); auto pValue = new RTFValue(aStr); @@ -3005,12 +3032,14 @@ RTFError RTFDocumentImpl::popState() m_pSdrImport->popParent(); break; case Destination::PROPNAME: - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group aState.setPropName(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); break; case Destination::STATICVAL: - if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) + if (&m_aStates.top().getDestinationText() + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) { @@ -3232,7 +3261,7 @@ RTFError RTFDocumentImpl::popState() if (!m_aStates.empty()) { // FIXME: don't use pDestinationText, points to popped state - auto pValue = new RTFValue(aState.aDestinationText.makeStringAndClear(), true); + auto pValue = new RTFValue(aState.getDestinationText().makeStringAndClear(), true); m_aStates.top().aTableAttributes.set(NS_ooxml::LN_CT_LevelSuffix_val, pValue); } break; @@ -3240,7 +3269,7 @@ RTFError RTFDocumentImpl::popState() if (!m_aStates.empty()) { // FIXME: don't use pDestinationText, points to popped state - auto pValue = new RTFValue(aState.aDestinationText.makeStringAndClear(), true); + auto pValue = new RTFValue(aState.getDestinationText().makeStringAndClear(), true); m_aStates.top().aTableAttributes.set(NS_ooxml::LN_CT_LevelText_val, pValue); } break; @@ -3326,7 +3355,7 @@ RTFError RTFDocumentImpl::popState() { m_aStates.top().aPicture = aState.aPicture; // both \sp and \sv are destinations, copy the text up-ward for later - m_aStates.top().aDestinationText = aState.aDestinationText; + m_aStates.top().getDestinationText() = aState.getDestinationText(); } break; case Destination::FALT: @@ -3477,8 +3506,8 @@ void RTFDocumentImpl::setDestination(Destination eDestination) // situation where it looks like the "current" buffer is needed? void RTFDocumentImpl::setDestinationText(OUString const& rString) { - m_aStates.top().aDestinationText.setLength(0); - m_aStates.top().aDestinationText.append(rString); + m_aStates.top().getDestinationText().setLength(0); + m_aStates.top().getDestinationText().append(rString); } bool RTFDocumentImpl::getSkipUnknown() { return m_bSkipUnknown; } @@ -3517,12 +3546,12 @@ RTFParserState::RTFParserState(RTFDocumentImpl* pDocumentImpl) , bLevelNumbersValid(true) , aFrame(this) , eRunType(RunType::LOCH) - , isRightToLeft(false) - , nYear(0) - , nMonth(0) - , nDay(0) - , nHour(0) - , nMinute(0) + , m_bIsRightToLeft(false) + , m_nYear(0) + , m_nMonth(0) + , m_nDay(0) + , m_nHour(0) + , m_nMinute(0) , m_pCurrentDestinationText(nullptr) , m_nCurrentStyleIndex(-1) , m_nCurrentCharacterStyleIndex(-1) diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index a0394ab55414..42249dd5e590 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -456,6 +456,19 @@ public: m_pCurrentDestinationText = pDestinationText; } OUStringBuffer* getCurrentDestinationText() const { return m_pCurrentDestinationText; } + OUStringBuffer& getDestinationText() { return m_aDestinationText; } + void setMinute(sal_uInt16 nMinute) { m_nMinute = nMinute; } + sal_uInt16 getMinute() const { return m_nMinute; } + void setHour(sal_uInt16 nHour) { m_nHour = nHour; } + sal_uInt16 getHour() const { return m_nHour; } + void setDay(sal_uInt16 nDay) { m_nDay = nDay; } + sal_uInt16 getDay() const { return m_nDay; } + void setMonth(sal_uInt16 nMonth) { m_nMonth = nMonth; } + sal_uInt16 getMonth() const { return m_nMonth; } + void setYear(sal_uInt16 nYear) { m_nYear = nYear; } + sal_uInt16 getYear() const { return m_nYear; } + void setIsRightToLeft(bool bIsRightToLeft) { m_bIsRightToLeft = bIsRightToLeft; } + bool getIsRightToLeft() const { return m_bIsRightToLeft; } RTFDocumentImpl* m_pDocumentImpl; RTFInternalState nInternalState; @@ -517,20 +530,20 @@ public: DBCH }; RunType eRunType; + +private: /// ltrch or rtlch - bool isRightToLeft; + bool m_bIsRightToLeft; // Info group. - sal_Int16 nYear; - sal_uInt16 nMonth; - sal_uInt16 nDay; - sal_uInt16 nHour; - sal_uInt16 nMinute; + sal_Int16 m_nYear; + sal_uInt16 m_nMonth; + sal_uInt16 m_nDay; + sal_uInt16 m_nHour; + sal_uInt16 m_nMinute; /// Text from special destinations. - OUStringBuffer aDestinationText; - -private: + OUStringBuffer m_aDestinationText; /// point to the buffer of the current destination OUStringBuffer* m_pCurrentDestinationText; commit aebe2abe77ab748c5325df82e407663141ce2bf8 Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Fri May 17 21:39:30 2019 +0200 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Mon May 20 10:06:06 2019 +0200 writerfilter: make RTFParserState members private, part 2 Change-Id: I9d712b227ea39bd63c34e77572f7e3d5ff83aa7e Reviewed-on: https://gerrit.libreoffice.org/72555 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/writerfilter/source/rtftok/rtfdispatchdestination.cxx b/writerfilter/source/rtftok/rtfdispatchdestination.cxx index 7b1f84fbe6ae..881096130517 100644 --- a/writerfilter/source/rtftok/rtfdispatchdestination.cxx +++ b/writerfilter/source/rtftok/rtfdispatchdestination.cxx @@ -653,7 +653,7 @@ RTFError RTFDocumentImpl::dispatchDestination(RTFKeyword nKeyword) } // new destination => use new destination text - m_aStates.top().pDestinationText = &m_aStates.top().aDestinationText; + m_aStates.top().setCurrentDestinationText(&m_aStates.top().aDestinationText); return RTFError::OK; } diff --git a/writerfilter/source/rtftok/rtfdispatchflag.cxx b/writerfilter/source/rtftok/rtfdispatchflag.cxx index 34e8401bc368..5bc0c75d4171 100644 --- a/writerfilter/source/rtftok/rtfdispatchflag.cxx +++ b/writerfilter/source/rtftok/rtfdispatchflag.cxx @@ -470,7 +470,7 @@ RTFError RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) m_aStates.top().aCharacterSprms = getDefaultState().aCharacterSprms; m_aStates.top().nCurrentEncoding = getEncoding(getFontIndex(m_nDefaultFontIndex)); m_aStates.top().aCharacterAttributes = getDefaultState().aCharacterAttributes; - m_aStates.top().nCurrentCharacterStyleIndex = -1; + m_aStates.top().setCurrentCharacterStyleIndex(-1); m_aStates.top().isRightToLeft = false; m_aStates.top().eRunType = RTFParserState::RunType::LOCH; } @@ -514,11 +514,11 @@ RTFError RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword) { m_aStates.top().aParagraphSprms.set(NS_ooxml::LN_CT_PPrBase_pStyle, new RTFValue(aName)); - m_aStates.top().nCurrentStyleIndex = 0; + m_aStates.top().setCurrentStyleIndex(0); } else { - m_aStates.top().nCurrentStyleIndex = -1; + m_aStates.top().setCurrentStyleIndex(-1); } } // Need to send paragraph properties again, if there will be any. diff --git a/writerfilter/source/rtftok/rtfdispatchvalue.cxx b/writerfilter/source/rtftok/rtfdispatchvalue.cxx index 7f662812cc43..06097845d5dc 100644 --- a/writerfilter/source/rtftok/rtfdispatchvalue.cxx +++ b/writerfilter/source/rtftok/rtfdispatchvalue.cxx @@ -431,7 +431,7 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) break; case RTF_S: { - m_aStates.top().nCurrentStyleIndex = nParam; + m_aStates.top().setCurrentStyleIndex(nParam); if (m_aStates.top().eDestination == Destination::STYLESHEET || m_aStates.top().eDestination == Destination::STYLEENTRY) @@ -457,7 +457,7 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) } break; case RTF_CS: - m_aStates.top().nCurrentCharacterStyleIndex = nParam; + m_aStates.top().setCurrentCharacterStyleIndex(nParam); if (m_aStates.top().eDestination == Destination::STYLESHEET || m_aStates.top().eDestination == Destination::STYLEENTRY) { @@ -667,7 +667,7 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) pIntValue); else if (m_aStates.top().eDestination == Destination::LISTOVERRIDEENTRY) m_aStates.top().aTableSprms.set(NS_ooxml::LN_CT_Num_abstractNumId, pIntValue); - m_aStates.top().nCurrentListIndex = nParam; + m_aStates.top().setCurrentListIndex(nParam); } break; case RTF_LS: @@ -675,7 +675,7 @@ RTFError RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) if (m_aStates.top().eDestination == Destination::LISTOVERRIDEENTRY) { m_aStates.top().aTableAttributes.set(NS_ooxml::LN_CT_AbstractNum_nsid, pIntValue); - m_aStates.top().nCurrentListOverrideIndex = nParam; + m_aStates.top().setCurrentListOverrideIndex(nParam); } else { diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 764bbf28e960..0d4d4a290041 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -489,7 +489,7 @@ RTFDocumentImpl::getProperties(const RTFSprms& rAttributes, RTFSprms const& rSpr int nStyle = 0; if (!m_aStates.empty()) - nStyle = m_aStates.top().nCurrentStyleIndex; + nStyle = m_aStates.top().getCurrentStyleIndex(); auto it = m_aStyleTableEntries.find(nStyle); if (it != m_aStyleTableEntries.end()) { @@ -498,7 +498,7 @@ RTFDocumentImpl::getProperties(const RTFSprms& rAttributes, RTFSprms const& rSpr auto itChar = m_aStyleTableEntries.end(); if (!m_aStates.empty()) { - int nCharStyle = m_aStates.top().nCurrentCharacterStyleIndex; + int nCharStyle = m_aStates.top().getCurrentCharacterStyleIndex(); itChar = m_aStyleTableEntries.find(nCharStyle); } @@ -1334,7 +1334,8 @@ void RTFDocumentImpl::text(OUString& rString) if (bEnd) { // always clear, necessary in case of group-less fonttable - OUString const aName = m_aStates.top().pDestinationText->makeStringAndClear(); + OUString const aName + = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); switch (m_aStates.top().eDestination) { case Destination::FONTTABLE: @@ -1681,7 +1682,7 @@ void RTFDocumentImpl::replayBuffer(RTFBuffer_t& rBuffer, RTFSprms* const pSprms, else if (std::get<0>(aTuple) == BUFFER_SETSTYLE) { if (!m_aStates.empty()) - m_aStates.top().nCurrentStyleIndex = std::get<1>(aTuple)->getInt(); + m_aStates.top().setCurrentStyleIndex(std::get<1>(aTuple)->getInt()); } else assert(false); @@ -1935,7 +1936,8 @@ RTFError RTFDocumentImpl::pushState() m_aStates.top().eRunType = RTFParserState::RunType::LOCH; if (m_aStates.top().eDestination == Destination::MR) - lcl_DestinationToMath(m_aStates.top().pDestinationText, m_aMathBuffer, m_bMathNor); + lcl_DestinationToMath(m_aStates.top().getCurrentDestinationText(), m_aMathBuffer, + m_bMathNor); m_aStates.push(m_aStates.top()); } m_aStates.top().aDestinationText.setLength(0); // was copied: always reset! @@ -1946,12 +1948,12 @@ RTFError RTFDocumentImpl::pushState() { case Destination::FONTTABLE: // this is a "faked" destination for the font entry - m_aStates.top().pDestinationText = &m_aStates.top().aDestinationText; + m_aStates.top().setCurrentDestinationText(&m_aStates.top().aDestinationText); m_aStates.top().eDestination = Destination::FONTENTRY; break; case Destination::STYLESHEET: // this is a "faked" destination for the style sheet entry - m_aStates.top().pDestinationText = &m_aStates.top().aDestinationText; + m_aStates.top().setCurrentDestinationText(&m_aStates.top().aDestinationText); m_aStates.top().eDestination = Destination::STYLEENTRY; { // the *default* is \s0 i.e. paragraph style default @@ -1981,7 +1983,7 @@ RTFError RTFDocumentImpl::pushState() break; case Destination::REVISIONTABLE: // this is a "faked" destination for the revision table entry - m_aStates.top().pDestinationText = &m_aStates.top().aDestinationText; + m_aStates.top().setCurrentDestinationText(&m_aStates.top().aDestinationText); m_aStates.top().eDestination = Destination::REVISIONENTRY; break; default: @@ -2242,9 +2244,9 @@ RTFError RTFDocumentImpl::popState() break; case Destination::LEVELTEXT: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - OUString aStr = m_aStates.top().pDestinationText->makeStringAndClear(); + OUString aStr = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); // The first character is the length of the string (the rest should be ignored). sal_Int32 nLength(aStr.toChar()); @@ -2299,16 +2301,16 @@ RTFError RTFDocumentImpl::popState() break; } case Destination::SHAPEPROPERTYNAME: - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group aState.aShape.getProperties().emplace_back( - m_aStates.top().pDestinationText->makeStringAndClear(), OUString()); + m_aStates.top().getCurrentDestinationText()->makeStringAndClear(), OUString()); break; case Destination::SHAPEPROPERTYVALUE: if (!aState.aShape.getProperties().empty()) { aState.aShape.getProperties().back().second - = m_aStates.top().pDestinationText->makeStringAndClear(); + = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); if (m_aStates.top().getHadShapeText()) m_pSdrImport->append(aState.aShape.getProperties().back().first, aState.aShape.getProperties().back().second); @@ -2373,9 +2375,9 @@ RTFError RTFDocumentImpl::popState() break; case Destination::BOOKMARKSTART: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - OUString aStr = m_aStates.top().pDestinationText->makeStringAndClear(); + OUString aStr = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); int nPos = m_aBookmarks.size(); m_aBookmarks[aStr] = nPos; if (!m_aStates.top().getCurrentBuffer()) @@ -2387,9 +2389,9 @@ RTFError RTFDocumentImpl::popState() break; case Destination::BOOKMARKEND: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - OUString aStr = m_aStates.top().pDestinationText->makeStringAndClear(); + OUString aStr = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); if (!m_aStates.top().getCurrentBuffer()) Mapper().props(new RTFReferenceProperties( lcl_getBookmarkProperties(m_aBookmarks[aStr], aStr))); @@ -2402,9 +2404,9 @@ RTFError RTFDocumentImpl::popState() case Destination::INDEXENTRY: case Destination::TOCENTRY: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - OUString str(m_aStates.top().pDestinationText->makeStringAndClear()); + OUString str(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); // dmapper expects this as a field, so let's fake something... OUString const field((Destination::INDEXENTRY == aState.eDestination) ? OUStringLiteral("XE") @@ -2419,17 +2421,19 @@ RTFError RTFDocumentImpl::popState() break; case Destination::FORMFIELDNAME: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - auto pValue = new RTFValue(m_aStates.top().pDestinationText->makeStringAndClear()); + auto pValue + = new RTFValue(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); m_aFormfieldSprms.set(NS_ooxml::LN_CT_FFData_name, pValue); } break; case Destination::FORMFIELDLIST: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - auto pValue = new RTFValue(m_aStates.top().pDestinationText->makeStringAndClear()); + auto pValue + = new RTFValue(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); m_aFormfieldSprms.set(NS_ooxml::LN_CT_FFDDList_listEntry, pValue); } break; @@ -2437,11 +2441,12 @@ RTFError RTFDocumentImpl::popState() { if (m_bFormField) { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText + != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - OString aStr - = OUStringToOString(m_aStates.top().pDestinationText->makeStringAndClear(), - aState.nCurrentEncoding); + OString aStr = OUStringToOString( + m_aStates.top().getCurrentDestinationText()->makeStringAndClear(), + aState.nCurrentEncoding); // decode hex dump OStringBuffer aBuf; int b = 0, count = 2; @@ -2510,57 +2515,59 @@ RTFError RTFDocumentImpl::popState() m_xDocumentProperties->setPrintDate(lcl_getDateTime(aState)); break; case Destination::AUTHOR: - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setAuthor( - m_aStates.top().pDestinationText->makeStringAndClear()); + m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); break; case Destination::KEYWORDS: - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setKeywords(comphelper::string::convertCommaSeparated( - m_aStates.top().pDestinationText->makeStringAndClear())); + m_aStates.top().getCurrentDestinationText()->makeStringAndClear())); break; case Destination::COMMENT: - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setGenerator( - m_aStates.top().pDestinationText->makeStringAndClear()); + m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); break; case Destination::SUBJECT: - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setSubject( - m_aStates.top().pDestinationText->makeStringAndClear()); + m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); break; case Destination::TITLE: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) - m_xDocumentProperties->setTitle(aState.pDestinationText->makeStringAndClear()); + m_xDocumentProperties->setTitle( + aState.getCurrentDestinationText()->makeStringAndClear()); } break; case Destination::DOCCOMM: - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) m_xDocumentProperties->setDescription( - m_aStates.top().pDestinationText->makeStringAndClear()); + m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); break; case Destination::OPERATOR: case Destination::COMPANY: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString aName = aState.eDestination == Destination::OPERATOR ? OUString("Operator") : OUString("Company"); - uno::Any aValue = uno::makeAny(m_aStates.top().pDestinationText->makeStringAndClear()); + uno::Any aValue + = uno::makeAny(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); if (m_xDocumentProperties.is()) { uno::Reference<beans::XPropertyContainer> xUserDefinedProperties @@ -2579,7 +2586,7 @@ RTFError RTFDocumentImpl::popState() break; case Destination::OBJDATA: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group RTFError eError = handleEmbeddedObject(); @@ -2589,7 +2596,8 @@ RTFError RTFDocumentImpl::popState() break; case Destination::OBJCLASS: { - auto pValue = new RTFValue(m_aStates.top().pDestinationText->makeStringAndClear()); + auto pValue + = new RTFValue(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); m_aOLEAttributes.set(NS_ooxml::LN_CT_OLEObject_ProgID, pValue); break; } @@ -2631,10 +2639,11 @@ RTFError RTFDocumentImpl::popState() break; case Destination::ANNOTATIONDATE: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group OUString aStr(OStringToOUString( - DTTM22OString(m_aStates.top().pDestinationText->makeStringAndClear().toInt32()), + DTTM22OString( + m_aStates.top().getCurrentDestinationText()->makeStringAndClear().toInt32()), aState.nCurrentEncoding)); auto pValue = new RTFValue(aStr); RTFSprms aAnnAttributes; @@ -2645,21 +2654,21 @@ RTFError RTFDocumentImpl::popState() } break; case Destination::ANNOTATIONAUTHOR: - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - m_aAuthor = m_aStates.top().pDestinationText->makeStringAndClear(); + m_aAuthor = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); break; case Destination::ATNID: - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - m_aAuthorInitials = m_aStates.top().pDestinationText->makeStringAndClear(); + m_aAuthorInitials = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); break; case Destination::ANNOTATIONREFERENCESTART: case Destination::ANNOTATIONREFERENCEEND: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - OUString aStr = m_aStates.top().pDestinationText->makeStringAndClear(); + OUString aStr = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); auto pValue = new RTFValue(aStr.toInt32()); RTFSprms aAttributes; if (aState.eDestination == Destination::ANNOTATIONREFERENCESTART) @@ -2673,9 +2682,9 @@ RTFError RTFDocumentImpl::popState() break; case Destination::ANNOTATIONREFERENCE: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - OUString aStr = m_aStates.top().pDestinationText->makeStringAndClear(); + OUString aStr = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); RTFSprms aAnnAttributes; aAnnAttributes.set(NS_ooxml::LN_CT_Markup_id, new RTFValue(aStr.toInt32())); Mapper().props(new RTFReferenceProperties(aAnnAttributes)); @@ -2683,9 +2692,9 @@ RTFError RTFDocumentImpl::popState() break; case Destination::FALT: { - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - OUString aStr(m_aStates.top().pDestinationText->makeStringAndClear()); + OUString aStr(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); auto pValue = new RTFValue(aStr); aState.aTableSprms.set(NS_ooxml::LN_CT_Font_altName, pValue); } @@ -2793,7 +2802,8 @@ RTFError RTFDocumentImpl::popState() } break; case Destination::MR: - lcl_DestinationToMath(m_aStates.top().pDestinationText, m_aMathBuffer, m_bMathNor); + lcl_DestinationToMath(m_aStates.top().getCurrentDestinationText(), m_aMathBuffer, + m_bMathNor); break; case Destination::MF: m_aMathBuffer.appendClosingTag(M_TOKEN(f)); @@ -2873,7 +2883,8 @@ RTFError RTFDocumentImpl::popState() } oox::formulaimport::XmlStream::AttributeList aAttribs; - aAttribs[M_TOKEN(val)] = m_aStates.top().pDestinationText->makeStringAndClear(); + aAttribs[M_TOKEN(val)] + = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); m_aMathBuffer.appendOpeningTag(nMathToken, aAttribs); m_aMathBuffer.appendClosingTag(nMathToken); } @@ -2994,12 +3005,12 @@ RTFError RTFDocumentImpl::popState() m_pSdrImport->popParent(); break; case Destination::PROPNAME: - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group - aState.setPropName(m_aStates.top().pDestinationText->makeStringAndClear()); + aState.setPropName(m_aStates.top().getCurrentDestinationText()->makeStringAndClear()); break; case Destination::STATICVAL: - if (&m_aStates.top().aDestinationText != m_aStates.top().pDestinationText) + if (&m_aStates.top().aDestinationText != m_aStates.top().getCurrentDestinationText()) break; // not for nested group if (m_xDocumentProperties.is()) { @@ -3007,7 +3018,8 @@ RTFError RTFDocumentImpl::popState() uno::Reference<beans::XPropertyContainer> xPropertyContainer = m_xDocumentProperties->getUserDefinedProperties(); const OUString& rKey = m_aStates.top().getPropName(); - OUString aStaticVal = m_aStates.top().pDestinationText->makeStringAndClear(); + OUString aStaticVal + = m_aStates.top().getCurrentDestinationText()->makeStringAndClear(); uno::Any aAny; if (m_aStates.top().getPropType() == cppu::UnoType<OUString>::get()) aAny <<= aStaticVal; @@ -3127,9 +3139,9 @@ RTFError RTFDocumentImpl::popState() auto pValue = new RTFValue(aState.aTableAttributes, aState.aTableSprms); m_aListTableSprms.set(NS_ooxml::LN_CT_Numbering_abstractNum, pValue, RTFOverwrite::NO_APPEND); - m_aListTable[aState.nCurrentListIndex] = pValue; + m_aListTable[aState.getCurrentListIndex()] = pValue; m_nListLevel = -1; - m_aInvalidListTableFirstIndents[aState.nCurrentListIndex] + m_aInvalidListTableFirstIndents[aState.getCurrentListIndex()] = m_aInvalidListLevelFirstIndents; m_aInvalidListLevelFirstIndents.clear(); } @@ -3274,8 +3286,8 @@ RTFError RTFDocumentImpl::popState() auto pValue = new RTFValue(aState.aTableAttributes, aState.aTableSprms); m_aListTableSprms.set(NS_ooxml::LN_CT_Numbering_num, pValue, RTFOverwrite::NO_APPEND); - m_aListOverrideTable[aState.nCurrentListOverrideIndex] - = aState.nCurrentListIndex; + m_aListOverrideTable[aState.getCurrentListOverrideIndex()] + = aState.getCurrentListIndex(); } } break; @@ -3430,8 +3442,9 @@ RTFError RTFDocumentImpl::popState() RTFError RTFDocumentImpl::handleEmbeddedObject() { - OString aStr = OUStringToOString(m_aStates.top().pDestinationText->makeStringAndClear(), - RTL_TEXTENCODING_ASCII_US); + OString aStr + = OUStringToOString(m_aStates.top().getCurrentDestinationText()->makeStringAndClear(), + RTL_TEXTENCODING_ASCII_US); std::unique_ptr<SvStream> pStream(new SvMemoryStream()); if (!msfilter::rtfutil::ExtractOLE2FromObjdata(aStr, *pStream)) return RTFError::HEX_INVALID; @@ -3510,9 +3523,9 @@ RTFParserState::RTFParserState(RTFDocumentImpl* pDocumentImpl) , nDay(0) , nHour(0) , nMinute(0) - , pDestinationText(nullptr) - , nCurrentStyleIndex(-1) - , nCurrentCharacterStyleIndex(-1) + , m_pCurrentDestinationText(nullptr) + , m_nCurrentStyleIndex(-1) + , m_nCurrentCharacterStyleIndex(-1) , m_pCurrentBuffer(nullptr) , m_bInListpicture(false) , m_bInBackground(false) @@ -3531,7 +3544,7 @@ void RTFDocumentImpl::bufferProperties(RTFBuffer_t& rBuffer, const RTFValue::Poi const tools::SvRef<TableRowBuffer>& pTableProperties) { rBuffer.emplace_back( - Buf_t(BUFFER_SETSTYLE, new RTFValue(m_aStates.top().nCurrentStyleIndex), nullptr)); + Buf_t(BUFFER_SETSTYLE, new RTFValue(m_aStates.top().getCurrentStyleIndex()), nullptr)); rBuffer.emplace_back(Buf_t(BUFFER_PROPS, pValue, pTableProperties)); } diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx index 2fbf158038c4..a0394ab55414 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx @@ -402,8 +402,8 @@ public: void appendDestinationText(const OUString& rString) { - if (pDestinationText) - pDestinationText->append(rString); + if (m_pCurrentDestinationText) + m_pCurrentDestinationText->append(rString); } void setPropName(const OUString& rPropName) { m_aPropName = rPropName; } @@ -437,6 +437,25 @@ public: bool getInListpicture() const { return m_bInListpicture; } void setCurrentBuffer(RTFBuffer_t* pCurrentBuffer) { m_pCurrentBuffer = pCurrentBuffer; } RTFBuffer_t* getCurrentBuffer() const { return m_pCurrentBuffer; } + void setCurrentListOverrideIndex(int nCurrentListOverrideIndex) + { + m_nCurrentListOverrideIndex = nCurrentListOverrideIndex; + } + int getCurrentListOverrideIndex() const { return m_nCurrentListOverrideIndex; } + void setCurrentListIndex(int nCurrentListIndex) { m_nCurrentListIndex = nCurrentListIndex; } + int getCurrentListIndex() const { return m_nCurrentListIndex; } + void setCurrentCharacterStyleIndex(int nCurrentCharacterStyleIndex) + { + m_nCurrentCharacterStyleIndex = nCurrentCharacterStyleIndex; + } + int getCurrentCharacterStyleIndex() const { return m_nCurrentCharacterStyleIndex; } + void setCurrentStyleIndex(int nCurrentStyleIndex) { m_nCurrentStyleIndex = nCurrentStyleIndex; } + int getCurrentStyleIndex() const { return m_nCurrentStyleIndex; } + void setCurrentDestinationText(OUStringBuffer* pDestinationText) + { + m_pCurrentDestinationText = pDestinationText; + } + OUStringBuffer* getCurrentDestinationText() const { return m_pCurrentDestinationText; } RTFDocumentImpl* m_pDocumentImpl; RTFInternalState nInternalState; @@ -510,19 +529,20 @@ public: /// Text from special destinations. OUStringBuffer aDestinationText; + +private: /// point to the buffer of the current destination - OUStringBuffer* pDestinationText; + OUStringBuffer* m_pCurrentDestinationText; /// Index of the current style. - int nCurrentStyleIndex; + int m_nCurrentStyleIndex; /// Index of the current character style. - int nCurrentCharacterStyleIndex; + int m_nCurrentCharacterStyleIndex; /// Current listid, points to a listtable entry. - int nCurrentListIndex = -1; + int m_nCurrentListIndex = -1; /// Current ls, points to a listoverridetable entry. - int nCurrentListOverrideIndex = -1; + int m_nCurrentListOverrideIndex = -1; -private: /// Points to the active buffer, if there is one. RTFBuffer_t* m_pCurrentBuffer; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits