[Libreoffice-commits] core.git: 2 commits - writerfilter/source
Miklos Vajna
vmiklos at collabora.co.uk
Wed Mar 5 12:06:35 PST 2014
writerfilter/source/dmapper/DomainMapper.cxx | 41 -----------
writerfilter/source/doctok/resources.xmi | 93 -------------------------
writerfilter/source/rtftok/rtfdocumentimpl.cxx | 84 +++++++++++++++-------
writerfilter/source/rtftok/rtfdocumentimpl.hxx | 16 +++-
4 files changed, 69 insertions(+), 165 deletions(-)
New commits:
commit 1484eee9437346fce788fb4afc8488900a5c4fd1
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Wed Mar 5 21:00:51 2014 +0100
writerfilter: remove handling of never-generated sprm:CRgFtc{0,1,2} tokens
Change-Id: Idbdd4d9b8e0498f09c9a66391a8e8d0bd31606ea
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 6e0f4e3..e30f83a 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -1506,47 +1506,6 @@ void DomainMapper::sprmWithProps( Sprm& rSprm, PropertyMapPtr rContext, SprmType
case NS_ooxml::LN_EG_RPrBase_kern: // auto kerning is bound to a minimum font size in Word - but not in Writer :-(
rContext->Insert(PROP_CHAR_AUTO_KERNING, uno::makeAny( sal_Bool(nIntValue) ) );
break;
- case NS_sprm::LN_CRgFtc0: // sprmCRgFtc0 //ascii font index
- case NS_sprm::LN_CRgFtc1: // sprmCRgFtc1 //Asian font index
- case NS_sprm::LN_CRgFtc2: // sprmCRgFtc2 //CTL font index
- {
- FontTablePtr pFontTable = m_pImpl->GetFontTable();
- if(nIntValue >= 0 && pFontTable->size() > sal_uInt32(nIntValue))
- {
- PropertyIds eFontName = PROP_CHAR_FONT_NAME;
- PropertyIds eFontStyle = PROP_CHAR_FONT_STYLE;
- PropertyIds eFontFamily = PROP_CHAR_FONT_FAMILY;
- PropertyIds eFontCharSet = PROP_CHAR_FONT_CHAR_SET;
- PropertyIds eFontPitch = PROP_CHAR_FONT_PITCH;
- switch(nSprmId)
- {
- case NS_sprm::LN_CRgFtc0:
- //already initialized
- break;
- case NS_sprm::LN_CRgFtc1:
- eFontName = PROP_CHAR_FONT_NAME_ASIAN;
- eFontStyle = PROP_CHAR_FONT_STYLE_ASIAN;
- eFontFamily = PROP_CHAR_FONT_FAMILY_ASIAN;
- eFontCharSet = PROP_CHAR_FONT_CHAR_SET_ASIAN;
- eFontPitch = PROP_CHAR_FONT_PITCH_ASIAN;
- break;
- case NS_sprm::LN_CRgFtc2:
- eFontName = PROP_CHAR_FONT_NAME_COMPLEX;
- eFontStyle = PROP_CHAR_FONT_STYLE_COMPLEX;
- eFontFamily = PROP_CHAR_FONT_FAMILY_COMPLEX;
- eFontCharSet = PROP_CHAR_FONT_CHAR_SET_COMPLEX;
- eFontPitch = PROP_CHAR_FONT_PITCH_COMPLEX;
- break;
- }
- (void)eFontFamily;
- (void)eFontStyle;
- const FontEntry::Pointer_t pFontEntry(pFontTable->getFontEntry(sal_uInt32(nIntValue)));
- rContext->Insert(eFontName, uno::makeAny( pFontEntry->sFontName ));
- rContext->Insert(eFontCharSet, uno::makeAny( (sal_Int16)pFontEntry->nTextEncoding ));
- rContext->Insert(eFontPitch, uno::makeAny( pFontEntry->nPitchRequest ));
- }
- }
- break;
case NS_ooxml::LN_EG_RPrBase_w:
rContext->Insert(PROP_CHAR_SCALE_WIDTH,
uno::makeAny( sal_Int16(nIntValue) ));
diff --git a/writerfilter/source/doctok/resources.xmi b/writerfilter/source/doctok/resources.xmi
index 7c955d1..5f2b4d8 100644
--- a/writerfilter/source/doctok/resources.xmi
+++ b/writerfilter/source/doctok/resources.xmi
@@ -100,99 +100,6 @@
</UML:ModelElement.taggedValue>
</UML:Class>
<!--SPRM sprmCIco-->
- <!--SPRM sprmCRgFtc0-->
- <UML:Class xmi.id="sprmCRgFtc0" name="sprmCRgFtc0">
- <UML:ModelElement.stereotype>
- <UML:Stereotype xmi.idref="ww8sprm"/>
- </UML:ModelElement.stereotype>
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x4A4F</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="sprmcode"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:sprmCRgFtc0</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="sprmid"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>character</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="kind"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
- </UML:Class>
- <!--SPRM sprmCRgFtc0-->
- <!--SPRM sprmCRgFtc1-->
- <UML:Class xmi.id="sprmCRgFtc1" name="sprmCRgFtc1">
- <UML:ModelElement.stereotype>
- <UML:Stereotype xmi.idref="ww8sprm"/>
- </UML:ModelElement.stereotype>
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x4A50</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="sprmcode"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:sprmCRgFtc1</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="sprmid"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>character</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="kind"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
- </UML:Class>
- <!--SPRM sprmCRgFtc1-->
- <!--SPRM sprmCRgFtc2-->
- <UML:Class xmi.id="sprmCRgFtc2" name="sprmCRgFtc2">
- <UML:ModelElement.stereotype>
- <UML:Stereotype xmi.idref="ww8sprm"/>
- </UML:ModelElement.stereotype>
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>0x4A51</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="sprmcode"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>rtf:sprmCRgFtc2</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="sprmid"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
- <UML:ModelElement.taggedValue>
- <UML:TaggedValue>
- <UML:TaggedValue.dataValue>character</UML:TaggedValue.dataValue>
- <UML:TaggedValue.type>
- <UML:TagDefinition xmi.idref="kind"/>
- </UML:TaggedValue.type>
- </UML:TaggedValue>
- </UML:ModelElement.taggedValue>
- </UML:Class>
- <!--SPRM sprmCRgFtc2-->
<!--SPRM sprmSTextFlow-->
<UML:Class xmi.id="sprmSTextFlow" name="sprmSTextFlow">
<UML:ModelElement.stereotype>
commit bbe3627eece0c3486e7ea11f2f13377aaa3a8fed
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Wed Mar 5 20:54:26 2014 +0100
rtftok: stop sending sprm:CRgFtc{0,1,2} tokens
Change-Id: I5009fb6214da763750fba3aa7067e1e28441d7dd
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 60966e6..a60d1a5 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -106,6 +106,15 @@ static void lcl_putNestedSprm(RTFSprms& rSprms, Id nParent, Id nId, RTFValue::Po
lcl_putNestedAttribute(rSprms, nParent, nId, pValue, bOverwrite, false);
}
+static RTFValue::Pointer_t lcl_getNestedAttribute(RTFSprms& rSprms, Id nParent, Id nId)
+{
+ RTFValue::Pointer_t pParent = rSprms.find(nParent);
+ if (!pParent)
+ return RTFValue::Pointer_t();
+ RTFSprms& rAttributes = pParent->getAttributes();
+ return rAttributes.find(nId);
+}
+
static bool lcl_eraseNestedAttribute(RTFSprms& rSprms, Id nParent, Id nId)
{
RTFValue::Pointer_t pParent = rSprms.find(nParent);
@@ -237,7 +246,6 @@ RTFDocumentImpl::RTFDocumentImpl(uno::Reference<uno::XComponentContext> const& x
m_xStatusIndicator(xStatusIndicator),
m_aDefaultState(this),
m_bSkipUnknown(false),
- m_aFontEncodings(),
m_aFontIndexes(),
m_aColorTable(),
m_bFirstRun(true),
@@ -272,6 +280,8 @@ RTFDocumentImpl::RTFDocumentImpl(uno::Reference<uno::XComponentContext> const& x
m_bObject(false),
m_aFontTableEntries(),
m_nCurrentFontIndex(0),
+ m_nCurrentEncoding(0),
+ m_nDefaultFontIndex(-1),
m_aStyleTableEntries(),
m_nCurrentStyleIndex(0),
m_bFormField(false),
@@ -399,10 +409,10 @@ void RTFDocumentImpl::checkFirstRun()
setNeedSect(); // first call that succeeds
// set the requested default font, if there are none
- RTFValue::Pointer_t pFont = m_aDefaultState.aCharacterSprms.find(NS_sprm::LN_CRgFtc0);
- RTFValue::Pointer_t pCurrentFont = m_aStates.top().aCharacterSprms.find(NS_sprm::LN_CRgFtc0);
+ RTFValue::Pointer_t pFont = lcl_getNestedAttribute(m_aDefaultState.aCharacterSprms, NS_ooxml::LN_EG_RPrBase_rFonts, NS_ooxml::LN_CT_Fonts_ascii);
+ RTFValue::Pointer_t pCurrentFont = lcl_getNestedAttribute(m_aStates.top().aCharacterSprms, NS_ooxml::LN_EG_RPrBase_rFonts, NS_ooxml::LN_CT_Fonts_ascii);
if (pFont && !pCurrentFont)
- dispatchValue(RTF_F, pFont->getInt());
+ lcl_putNestedAttribute(m_aStates.top().aCharacterSprms, NS_ooxml::LN_EG_RPrBase_rFonts, NS_ooxml::LN_CT_Fonts_ascii, pFont);
}
}
@@ -610,17 +620,25 @@ sal_uInt32 RTFDocumentImpl::getColorTable(sal_uInt32 nIndex)
return m_pSuperstream->getColorTable(nIndex);
}
-rtl_TextEncoding RTFDocumentImpl::getEncoding(sal_uInt32 nFontIndex)
+rtl_TextEncoding RTFDocumentImpl::getEncoding(OUString aFontName)
{
if (!m_pSuperstream)
{
- std::map<int, rtl_TextEncoding>::iterator it = m_aFontEncodings.find(nFontIndex);
+ std::map<OUString, rtl_TextEncoding>::iterator it = m_aFontEncodings.find(aFontName);
if (it != m_aFontEncodings.end())
return it->second;
return msfilter::util::getBestTextEncodingFromLocale(Application::GetSettings().GetLanguageTag().getLocale());
}
else
- return m_pSuperstream->getEncoding(nFontIndex);
+ return m_pSuperstream->getEncoding(aFontName);
+}
+
+OUString RTFDocumentImpl::getFontName(int nIndex)
+{
+ if (!m_pSuperstream)
+ return m_aFontNames[nIndex];
+ else
+ return m_pSuperstream->getFontName(nIndex);
}
int RTFDocumentImpl::getFontIndex(int nIndex)
@@ -1069,8 +1087,14 @@ void RTFDocumentImpl::text(OUString& rString)
case DESTINATION_FONTTABLE:
case DESTINATION_FONTENTRY:
{
- RTFValue::Pointer_t pValue(new RTFValue(m_aStates.top().aDestinationText.makeStringAndClear()));
- m_aStates.top().aTableAttributes.set(NS_ooxml::LN_CT_Font_name, pValue);
+ OUString aName = m_aStates.top().aDestinationText.makeStringAndClear();
+ m_aFontNames[m_nCurrentFontIndex] = aName;
+ if (m_nCurrentEncoding > 0)
+ {
+ m_aFontEncodings[aName] = m_nCurrentEncoding;
+ m_nCurrentEncoding = 0;
+ }
+ m_aStates.top().aTableAttributes.set(NS_ooxml::LN_CT_Font_name, RTFValue::Pointer_t(new RTFValue(aName)));
writerfilter::Reference<Properties>::Pointer_t const pProp(
new RTFReferenceProperties(m_aStates.top().aTableAttributes, m_aStates.top().aTableSprms)
@@ -2474,9 +2498,9 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword)
case RTF_PLAIN:
{
m_aStates.top().aCharacterSprms = getDefaultState().aCharacterSprms;
- RTFValue::Pointer_t pValue = m_aStates.top().aCharacterSprms.find(NS_sprm::LN_CRgFtc0);
- if (pValue.get())
- m_aStates.top().nCurrentEncoding = getEncoding(pValue->getInt());
+ RTFValue::Pointer_t pValue = lcl_getNestedAttribute(m_aStates.top().aCharacterSprms, NS_ooxml::LN_EG_RPrBase_rFonts, NS_ooxml::LN_CT_Fonts_ascii);
+ if (pValue)
+ m_aStates.top().nCurrentEncoding = getEncoding(pValue->getString());
m_aStates.top().aCharacterAttributes = getDefaultState().aCharacterAttributes;
}
break;
@@ -3120,9 +3144,9 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
case RTF_F:
case RTF_AF:
if (nKeyword == RTF_F)
- nSprm = NS_sprm::LN_CRgFtc0;
+ nSprm = NS_ooxml::LN_CT_Fonts_ascii;
else
- nSprm = (m_aStates.top().bIsCjk ? NS_sprm::LN_CRgFtc1 : NS_sprm::LN_CRgFtc2);
+ nSprm = (m_aStates.top().bIsCjk ? NS_ooxml::LN_CT_Fonts_eastAsia : NS_ooxml::LN_CT_Fonts_cs);
if (m_aStates.top().nDestinationState == DESTINATION_FONTTABLE || m_aStates.top().nDestinationState == DESTINATION_FONTENTRY)
{
m_aFontIndexes.push_back(nParam);
@@ -3130,13 +3154,13 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
}
else if (m_aStates.top().nDestinationState == DESTINATION_LISTLEVEL)
{
- RTFSprms aFontSprms;
- aFontSprms.set(nSprm, RTFValue::Pointer_t(new RTFValue(getFontIndex(nParam))));
+ RTFSprms aFontAttributes;
+ aFontAttributes.set(nSprm, RTFValue::Pointer_t(new RTFValue(m_aFontNames[getFontIndex(nParam)])));
// In the context of listlevels, \af seems to imply \f.
if (nKeyword == RTF_AF)
- aFontSprms.set(NS_sprm::LN_CRgFtc0, RTFValue::Pointer_t(new RTFValue(getFontIndex(nParam))));
+ aFontAttributes.set(NS_ooxml::LN_CT_Fonts_ascii, RTFValue::Pointer_t(new RTFValue(m_aFontNames[getFontIndex(nParam)])));
RTFSprms aRunPropsSprms;
- aRunPropsSprms.set(NS_ooxml::LN_EG_RPrBase_rFonts, RTFValue::Pointer_t(new RTFValue(RTFSprms(), aFontSprms)));
+ aRunPropsSprms.set(NS_ooxml::LN_EG_RPrBase_rFonts, RTFValue::Pointer_t(new RTFValue(aFontAttributes)));
// If there are multiple \f or \af tokens, only handle the first one.
if (!m_aStates.top().aTableSprms.find(NS_ooxml::LN_CT_Lvl_rPr))
m_aStates.top().aTableSprms.set(NS_ooxml::LN_CT_Lvl_rPr, RTFValue::Pointer_t(new RTFValue(RTFSprms(), aRunPropsSprms)));
@@ -3144,9 +3168,9 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
else
{
int nFontIndex = getFontIndex(nParam);
- RTFValue::Pointer_t pValue(new RTFValue(nFontIndex));
- m_aStates.top().aCharacterSprms.set(nSprm, pValue);
- m_aStates.top().nCurrentEncoding = getEncoding(nFontIndex);
+ RTFValue::Pointer_t pValue(new RTFValue(getFontName(nFontIndex)));
+ lcl_putNestedAttribute(m_aStates.top().aCharacterSprms, NS_ooxml::LN_EG_RPrBase_rFonts, nSprm, pValue);
+ m_aStates.top().nCurrentEncoding = getEncoding(getFontName(nFontIndex));
}
break;
case RTF_RED:
@@ -3172,7 +3196,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
// not found
return 0;
- m_aFontEncodings[m_nCurrentFontIndex] = rtl_getTextEncodingFromWindowsCodePage(aRTFEncodings[i].codepage);
+ m_nCurrentEncoding = rtl_getTextEncodingFromWindowsCodePage(aRTFEncodings[i].codepage);
}
break;
case RTF_ANSICPG:
@@ -3182,7 +3206,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
}
break;
case RTF_CPG:
- m_aFontEncodings[m_nCurrentFontIndex] = rtl_getTextEncodingFromWindowsCodePage(nParam);
+ m_nCurrentEncoding = rtl_getTextEncodingFromWindowsCodePage(nParam);
break;
case RTF_CF:
{
@@ -3226,7 +3250,7 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
}
break;
case RTF_DEFF:
- m_aDefaultState.aCharacterSprms.set(NS_sprm::LN_CRgFtc0, pIntValue);
+ m_nDefaultFontIndex = nParam;
break;
case RTF_DEFLANG:
case RTF_ADEFLANG:
@@ -3809,9 +3833,10 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam)
break;
case RTF_PNF:
{
- int nFontIndex = getFontIndex(nParam);
- RTFValue::Pointer_t pValue(new RTFValue(nFontIndex));
- lcl_putNestedSprm(m_aStates.top().aTableSprms, NS_ooxml::LN_CT_Lvl_rPr, NS_sprm::LN_CRgFtc0, pValue);
+ RTFValue::Pointer_t pValue(new RTFValue(m_aFontNames[getFontIndex(nParam)]));
+ RTFSprms aAttributes;
+ aAttributes.set(NS_ooxml::LN_CT_Fonts_ascii, pValue);
+ lcl_putNestedSprm(m_aStates.top().aTableSprms, NS_ooxml::LN_CT_Lvl_rPr, NS_ooxml::LN_EG_RPrBase_rFonts, RTFValue::Pointer_t(new RTFValue(aAttributes)));
}
break;
case RTF_VIEWSCALE:
@@ -4192,6 +4217,11 @@ int RTFDocumentImpl::popState()
{
writerfilter::Reference<Table>::Pointer_t const pTable(new RTFReferenceTable(m_aFontTableEntries));
Mapper().table(NS_ooxml::LN_FONTTABLE, pTable);
+ if (m_nDefaultFontIndex >= 0)
+ {
+ RTFValue::Pointer_t pValue(new RTFValue(m_aFontNames[getFontIndex(m_nDefaultFontIndex)]));
+ lcl_putNestedAttribute(m_aDefaultState.aCharacterSprms, NS_ooxml::LN_EG_RPrBase_rFonts, NS_ooxml::LN_CT_Fonts_ascii, pValue);
+ }
}
break;
case DESTINATION_STYLESHEET:
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
index 1c9ff06..b1a1b8e 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
@@ -353,10 +353,12 @@ namespace writerfilter {
void setNeedPar(bool bNeedPar);
/// Return the dmapper index of an RTF index for fonts.
int getFontIndex(int nIndex);
+ /// Return the name of the font, based on a dmapper index.
+ OUString getFontName(int nIndex);
/// Return the style name of an RTF style index.
OUString getStyleName(int nIndex);
- /// Return the encoding associated with a dmapper font index.
- rtl_TextEncoding getEncoding(sal_uInt32 nFontIndex);
+ /// Return the encoding associated with a font name.
+ rtl_TextEncoding getEncoding(OUString aFontName);
/// Get the default parser state.
RTFParserState& getDefaultState();
oox::GraphicHelper& getGraphicHelper();
@@ -420,8 +422,10 @@ namespace writerfilter {
/// Read by RTF_PARD.
RTFParserState m_aDefaultState;
bool m_bSkipUnknown;
- /// Font index <-> encoding map, *not* part of the parser state
- std::map<int, rtl_TextEncoding> m_aFontEncodings;
+ /// Font name <-> encoding map, *not* part of the parser state
+ std::map<OUString, rtl_TextEncoding> m_aFontEncodings;
+ /// Font index <-> name map.
+ std::map<int, OUString> m_aFontNames;
/// Maps the non-continuous font indexes to the continuous dmapper indexes.
std::vector<int> m_aFontIndexes;
/// Maps style indexes to style names.
@@ -510,6 +514,10 @@ namespace writerfilter {
RTFReferenceTable::Entries_t m_aFontTableEntries;
int m_nCurrentFontIndex;
+ /// Used only during font table parsing till we don't know the font name.
+ int m_nCurrentEncoding;
+ /// Used only before font table parsing.
+ int m_nDefaultFontIndex;
RTFReferenceTable::Entries_t m_aStyleTableEntries;
int m_nCurrentStyleIndex;
More information about the Libreoffice-commits
mailing list