[Libreoffice-commits] core.git: sw/inc sw/qa sw/source writerfilter/source
László Németh (via logerrit)
logerrit at kemper.freedesktop.org
Mon Oct 4 06:22:58 UTC 2021
sw/inc/tox.hxx | 19 ---------
sw/inc/unomap.hxx | 1
sw/inc/unoprnms.hxx | 1
sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx | 6 ++
sw/source/core/tox/tox.cxx | 7 ---
sw/source/core/unocore/unoidx.cxx | 25 -----------
sw/source/core/unocore/unomap.cxx | 1
sw/source/filter/ww8/wrtw8nds.cxx | 17 +++++++-
sw/source/filter/ww8/ww8atr.cxx | 20 +++++----
writerfilter/source/dmapper/DomainMapper_Impl.cxx | 46 +++++++++++++++++-----
writerfilter/source/dmapper/PropertyIds.cxx | 1
writerfilter/source/dmapper/PropertyIds.hxx | 1
12 files changed, 69 insertions(+), 76 deletions(-)
New commits:
commit 05f92eb1359c399c43d3bcbe8942034408fa23eb
Author: László Németh <nemeth at numbertext.org>
AuthorDate: Fri Oct 1 17:42:48 2021 +0200
Commit: László Németh <nemeth at numbertext.org>
CommitDate: Mon Oct 4 08:22:23 2021 +0200
tdf#77051 DOCX: fix user index and index entry support
defined by field code \f.
E.g. INDEX \f "user-index" inserts only the entries
defined by XE "entry" \f "user-index" field codes.
Revert commit a7bc9c1e4977bd3430df69287fa0a8377a686c58
"fdo#77051: Preservation of Index field flag '\f'", which
added an undocumented UNO property only for round-trip
support of INDEX, but not for XE index entries, so the
DOCX export still resulted a broken index with lost
entries, not only the import was broken because of the
missing functionality in com.sun.star.text.DocumentIndex.
Now the import uses com.sun.star.text.UserIndex and
com.sun.star.text.UserIndexMark index and index entry
fields, which support the requested user index not
only during the DOCX and OpenDocument round-trip, but
its run-time functionality, the multiple user-defined
indices.
Note: for manual testing, update the user index (the
first index) of the left original unit test document
IndexFieldFlagF.docx: the updated index is not empty,
as before, but contains the user index entries.
Change-Id: Ia6139bba88907051fd050cfd40809f5544b9a89e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122930
Tested-by: László Németh <nemeth at numbertext.org>
Reviewed-by: László Németh <nemeth at numbertext.org>
diff --git a/sw/inc/tox.hxx b/sw/inc/tox.hxx
index e16882e87afa..77f7e6cd5e5b 100644
--- a/sw/inc/tox.hxx
+++ b/sw/inc/tox.hxx
@@ -99,7 +99,6 @@ class SW_DLLPUBLIC SwTOXMark final
sal_uInt16 m_nLevel;
OUString m_aBookmarkName;
- OUString m_aEntryTypeName; // stored specific entry type name for INDEX field \f
bool m_bAutoGenerated; // generated using a concordance file
bool m_bMainEntry; // main entry emphasized by character style
@@ -136,8 +135,6 @@ public:
inline sal_uInt16 GetLevel() const;
inline void SetBookmarkName( const OUString& bName);
inline const OUString& GetBookmarkName() const;
- inline void SetEntryTypeName( const OUString& sName);
- inline const OUString& GetEntryTypeName() const;
// for alphabetical index only
inline void SetPrimaryKey(const OUString& rStr );
@@ -381,7 +378,6 @@ enum class SwTOXElement : sal_uInt16
Bookmark = 0x0400,
Newline = 0x0800,
ParagraphOutlineLevel = 0x1000,
- IndexEntryType = 0x2000,
};
namespace o3tl {
template<> struct typed_flags<SwTOXElement> : is_typed_flags<SwTOXElement, 0x3fff> {};
@@ -432,7 +428,6 @@ class SW_DLLPUBLIC SwTOXBase : public SwClient
OUString m_aName; // unique name
OUString m_aTitle; // title
OUString m_aBookmarkName; //Bookmark Name
- OUString m_aEntryTypeName; // Type name
OUString m_sMainEntryCharStyle; // name of the character style applied to main index entries
@@ -507,10 +502,6 @@ public:
const OUString& GetMainEntryCharStyle() const {return m_sMainEntryCharStyle;}
void SetMainEntryCharStyle(const OUString& rSet) {m_sMainEntryCharStyle = rSet;}
- // for record the Index field expression of MS Word
- const OUString& GetEntryTypeName() const;
- void SetEntryTypeName(const OUString& sName);
-
// content index only
inline void SetLevel(sal_uInt16); // consider outline level
inline sal_uInt16 GetLevel() const;
@@ -582,9 +573,6 @@ inline const OUString& SwTOXMark::GetAlternativeText() const
inline const OUString& SwTOXMark::GetBookmarkName() const
{ return m_aBookmarkName; }
-inline const OUString& SwTOXMark::GetEntryTypeName() const
- { return m_aEntryTypeName; }
-
inline const SwTOXType* SwTOXMark::GetTOXType() const
{ return m_pType; }
@@ -601,10 +589,6 @@ inline void SwTOXMark::SetBookmarkName(const OUString& bName)
m_aBookmarkName = bName;
}
-inline void SwTOXMark::SetEntryTypeName(const OUString& sName)
-{
- m_aEntryTypeName = sName;
-}
inline void SwTOXMark::SetLevel( sal_uInt16 nLvl )
{
SAL_WARN_IF( GetTOXType() && GetTOXType()->GetType() == TOX_INDEX, "sw", "Wrong type");
@@ -723,9 +707,6 @@ inline const OUString& SwTOXBase::GetTitle() const
inline const OUString& SwTOXBase::GetBookmarkName() const
{ return m_aBookmarkName; }
-inline const OUString& SwTOXBase::GetEntryTypeName() const
- { return m_aEntryTypeName; }
-
inline OUString const & SwTOXBase::GetTypeName() const
{ return GetTOXType()->GetTypeName(); }
diff --git a/sw/inc/unomap.hxx b/sw/inc/unomap.hxx
index d2c54d204188..c4c166032983 100644
--- a/sw/inc/unomap.hxx
+++ b/sw/inc/unomap.hxx
@@ -223,7 +223,6 @@ struct SfxItemPropertyMapEntry;
#define WID_TOC_BOOKMARK 1061
#define WID_TOC_NEWLINE 1062
#define WID_TOC_PARAGRAPH_OUTLINE_LEVEL 1063
-#define WID_INDEX_ENTRY_TYPE 1064
// Text document
#define WID_DOC_CHAR_COUNT 1000
diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx
index a823d381e607..7ef5d0a58cd7 100644
--- a/sw/inc/unoprnms.hxx
+++ b/sw/inc/unoprnms.hxx
@@ -490,7 +490,6 @@
#define UNO_NAME_HIDE_FIELD_TIPS "HideFieldTips"
#define UNO_NAME_PARA_SHADOW_FORMAT "ParaShadowFormat"
#define UNO_NAME_CONTOUR_POLY_POLYGON "ContourPolyPolygon"
-#define UNO_NAME_INDEX_ENTRY_TYPE "IndexEntryType"
#define UNO_NAME_IS_PIXEL_CONTOUR "IsPixelContour"
#define UNO_NAME_IS_AUTOMATIC_CONTOUR "IsAutomaticContour"
diff --git a/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx
index f6e6ea78bc99..658830274534 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlfieldexport.cxx
@@ -290,7 +290,11 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testIndexFieldFlagF,"IndexFieldFlagF.docx")
// Specific Entry Type (ex. "Syn" in our case).
xmlDocUniquePtr pXmlDoc = parseExport("word/document.xml");
// We check the Index field flag '\f'.
- assertXPathContent(pXmlDoc, "/w:document[1]/w:body[1]/w:p[4]/w:r[2]/w:instrText[1]", " INDEX \\c \"2\"\\f \"Syn\" \" \\e \"");
+ // Note: no syntax error any more (extra quotation mark between "Syn" and \e)
+ assertXPathContent(pXmlDoc, "/w:document[1]/w:body[1]/w:p[4]/w:r[2]/w:instrText[1]", " INDEX \\c \"2\"\\f \"Syn\"\\e \"");
+ // XE entries lost their \f "Syn" before
+ assertXPathContent(pXmlDoc, "/w:document[1]/w:body[1]/w:p[17]/w:r[21]/w:instrText[1]", " XE \"formatting\" \\f \"Syn\" ");
+ assertXPathContent(pXmlDoc, "/w:document[1]/w:body[1]/w:p[17]/w:r[29]/w:instrText[1]", " XE \"choosing:aaaa\" \\f \"Syn\" ");
}
DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testBibliography,"FDO75133.docx")
diff --git a/sw/source/core/tox/tox.cxx b/sw/source/core/tox/tox.cxx
index 65462bf44f80..0af14542e2de 100644
--- a/sw/source/core/tox/tox.cxx
+++ b/sw/source/core/tox/tox.cxx
@@ -590,7 +590,6 @@ void SwTOXBase::CopyTOXBase( SwDoc* pDoc, const SwTOXBase& rSource )
m_aTitle = rSource.m_aTitle;
m_aForm = rSource.m_aForm;
m_aBookmarkName = rSource.m_aBookmarkName;
- m_aEntryTypeName = rSource.m_aEntryTypeName ;
m_bProtected = rSource.m_bProtected;
m_bFromChapter = rSource.m_bFromChapter;
m_bFromObjectNames = rSource.m_bFromObjectNames;
@@ -629,18 +628,12 @@ void SwTOXBase::SetBookmarkName(const OUString& bName)
m_aBookmarkName = bName;
}
-void SwTOXBase::SetEntryTypeName(const OUString& sName)
-{
- m_aEntryTypeName = sName ;
-}
-
SwTOXBase & SwTOXBase::operator = (const SwTOXBase & rSource)
{
m_aForm = rSource.m_aForm;
m_aName = rSource.m_aName;
m_aTitle = rSource.m_aTitle;
m_aBookmarkName = rSource.m_aBookmarkName;
- m_aEntryTypeName = rSource.m_aEntryTypeName ;
m_sMainEntryCharStyle = rSource.m_sMainEntryCharStyle;
for(sal_uInt16 nLevel = 0; nLevel < MAXLEVEL; nLevel++)
m_aStyleNames[nLevel] = rSource.m_aStyleNames[nLevel];
diff --git a/sw/source/core/unocore/unoidx.cxx b/sw/source/core/unocore/unoidx.cxx
index b7f2681953a0..5e2e39a49a21 100644
--- a/sw/source/core/unocore/unoidx.cxx
+++ b/sw/source/core/unocore/unoidx.cxx
@@ -633,13 +633,6 @@ SwXDocumentIndex::setPropertyValue(
rTOXBase.SetCreate(nCreate);
}
break;
- case WID_INDEX_ENTRY_TYPE:
- {
- rTOXBase.SetEntryTypeName(lcl_AnyToType<OUString>(rValue));
- nCreate = SwTOXElement::IndexEntryType;
- rTOXBase.SetCreate(nCreate);
- }
- break;
case WID_CREATE_FROM_MARKS:
lcl_AnyToBitMask(rValue, nCreate, SwTOXElement::Mark);
break;
@@ -954,9 +947,6 @@ SwXDocumentIndex::getPropertyValue(const OUString& rPropertyName)
case WID_TOC_BOOKMARK :
aRet <<= pTOXBase->GetBookmarkName();
break;
- case WID_INDEX_ENTRY_TYPE :
- aRet <<= pTOXBase->GetEntryTypeName();
- break;
case WID_CREATE_FROM_MARKS:
lcl_BitMaskToAny(aRet, nCreate, SwTOXElement::Mark);
break;
@@ -1506,7 +1496,6 @@ public:
bool m_bMainEntry;
sal_uInt16 m_nLevel;
OUString m_aBookmarkName;
- OUString m_aEntryTypeName;
OUString m_sAltText;
OUString m_sPrimaryKey;
OUString m_sSecondaryKey;
@@ -2075,9 +2064,6 @@ SwXDocumentIndexMark::setPropertyValue(
case WID_TOC_BOOKMARK :
aMark.SetBookmarkName(lcl_AnyToType<OUString>(rValue));
break;
- case WID_INDEX_ENTRY_TYPE :
- aMark.SetEntryTypeName(lcl_AnyToType<OUString>(rValue));
- break;
case WID_PRIMARY_KEY :
aMark.SetPrimaryKey(lcl_AnyToType<OUString>(rValue));
break;
@@ -2134,11 +2120,6 @@ SwXDocumentIndexMark::setPropertyValue(
m_pImpl->m_aBookmarkName = lcl_AnyToType<OUString>(rValue);
}
break;
- case WID_INDEX_ENTRY_TYPE :
- {
- m_pImpl->m_aEntryTypeName = lcl_AnyToType<OUString>(rValue);
- }
- break;
case WID_PRIMARY_KEY:
m_pImpl->m_sPrimaryKey = lcl_AnyToType<OUString>(rValue);
break;
@@ -2209,9 +2190,6 @@ SwXDocumentIndexMark::getPropertyValue(const OUString& rPropertyName)
case WID_TOC_BOOKMARK :
aRet <<= m_pImpl->m_pTOXMark->GetBookmarkName();
break;
- case WID_INDEX_ENTRY_TYPE :
- aRet <<= m_pImpl->m_pTOXMark->GetEntryTypeName();
- break;
case WID_PRIMARY_KEY :
aRet <<= m_pImpl->m_pTOXMark->GetPrimaryKey();
break;
@@ -2255,9 +2233,6 @@ SwXDocumentIndexMark::getPropertyValue(const OUString& rPropertyName)
case WID_TOC_BOOKMARK :
aRet <<= m_pImpl->m_aBookmarkName;
break;
- case WID_INDEX_ENTRY_TYPE :
- aRet <<= m_pImpl->m_aEntryTypeName;
- break;
case WID_PRIMARY_KEY:
aRet <<= m_pImpl->m_sPrimaryKey;
break;
diff --git a/sw/source/core/unocore/unomap.cxx b/sw/source/core/unocore/unomap.cxx
index 3580a8f416a2..4e373b6c511e 100644
--- a/sw/source/core/unocore/unomap.cxx
+++ b/sw/source/core/unocore/unomap.cxx
@@ -348,7 +348,6 @@ const SfxItemPropertyMapEntry* SwUnoPropertyMapProvider::GetPropertyMapEntries(s
{ u"" UNO_NAME_IS_RELATIVE_TABSTOPS, WID_IS_RELATIVE_TABSTOPS, cppu::UnoType<bool>::get(), PROPERTY_NONE, 0},
{ u"" UNO_NAME_LOCALE, WID_IDX_LOCALE, cppu::UnoType<css::lang::Locale>::get(), PROPERTY_NONE, 0},
{ u"" UNO_NAME_SORT_ALGORITHM, WID_IDX_SORT_ALGORITHM, cppu::UnoType<OUString>::get(), PROPERTY_NONE, 0},
- { u"" UNO_NAME_INDEX_ENTRY_TYPE, WID_INDEX_ENTRY_TYPE, cppu::UnoType<OUString>::get(), PROPERTY_NONE, 0},
{ u"", 0, css::uno::Type(), 0, 0 }
};
m_aMapEntriesArr[nPropertyId] = aTOXIndexMap_Impl;
diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx
index 4856fb16065e..68bd7654f5f9 100644
--- a/sw/source/filter/ww8/wrtw8nds.cxx
+++ b/sw/source/filter/ww8/wrtw8nds.cxx
@@ -1292,7 +1292,17 @@ void AttributeOutputBase::TOXMark( const SwTextNode& rNode, const SwTOXMark& rAt
else
sText = rAttr.GetAlternativeText();
- switch ( rAttr.GetTOXType()->GetType() )
+ OUString sUserTypeName;
+ auto aType = rAttr.GetTOXType()->GetType();
+ // user index mark, it needs XE with \f
+ if ( TOX_USER == aType )
+ {
+ sUserTypeName = rAttr.GetTOXType()->GetTypeName();
+ if ( !sUserTypeName.isEmpty() )
+ aType = TOX_INDEX;
+ }
+
+ switch ( aType )
{
case TOX_INDEX:
eType = ww::eXE;
@@ -1306,6 +1316,11 @@ void AttributeOutputBase::TOXMark( const SwTextNode& rNode, const SwTOXMark& rAt
sText = rAttr.GetPrimaryKey() + ":" + sText;
}
sText = " XE \"" + sText + "\" ";
+
+ if (!sUserTypeName.isEmpty())
+ {
+ sText += "\\f \"" + sUserTypeName + "\" ";
+ }
break;
case TOX_USER:
diff --git a/sw/source/filter/ww8/ww8atr.cxx b/sw/source/filter/ww8/ww8atr.cxx
index 8d5710e2b1cd..de8dbc3f0468 100644
--- a/sw/source/filter/ww8/ww8atr.cxx
+++ b/sw/source/filter/ww8/ww8atr.cxx
@@ -2248,7 +2248,16 @@ void AttributeOutputBase::StartTOX( const SwSection& rSect )
OUString sStr = pTOX ->GetMSTOCExpression();
if ( sStr.isEmpty() )
{
- switch (pTOX->GetType())
+ OUString sUserTypeName;
+ auto aType = pTOX->GetType();
+ // user index, it needs INDEX with \f
+ if ( TOX_USER == aType )
+ {
+ sUserTypeName = pTOX->GetTOXType()->GetTypeName();
+ if ( !sUserTypeName.isEmpty() )
+ aType = TOX_INDEX;
+ }
+ switch (aType)
{
case TOX_INDEX:
eCode = ww::eINDEX;
@@ -2280,14 +2289,9 @@ void AttributeOutputBase::StartTOX( const SwSection& rSect )
if (SwTOIOptions::AlphaDelimiter & pTOX->GetOptions())
sStr += "\\h \"A\" ";
- if(SwTOXElement::IndexEntryType & pTOX->GetCreateType())
+ if (!sUserTypeName.isEmpty())
{
- sStr += "\\f ";
- const OUString& sName = pTOX->GetEntryTypeName();
- if(!sName.isEmpty())
- {
- sStr += sName + sEntryEnd;
- }
+ sStr += "\\f \"" + sUserTypeName + "\"";
}
if (!pTOX->GetTOXForm().IsCommaSeparated())
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index f11add33d7ca..644beef21e06 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -4165,6 +4165,12 @@ static bool lcl_FindInCommand(
return bRet;
}
+static OUString lcl_trim(OUString& sValue)
+{
+ // it seems, all kind of quotation marks are allowed around index type identifiers
+ // TODO apply this on bookmarks, too, if needed
+ return sValue.trim().replaceAll("\"","").replaceAll(u"“", "").replaceAll(u"”", "");
+}
void DomainMapper_Impl::GetCurrentLocale(lang::Locale& rLocale)
{
@@ -5629,15 +5635,21 @@ void DomainMapper_Impl::handleIndex
(const FieldContextPtr& pContext,
const OUString & sTOCServiceName)
{
+ // only UserIndex can handle user index defined by \f
+ // e.g. INDEX \f "user-index-id"
+ OUString sUserIndex;
+ if ( lcl_FindInCommand( pContext->GetCommand(), 'f', sUserIndex ) )
+ sUserIndex = lcl_trim(sUserIndex);
+
// Create section before setting m_bStartTOC and m_bStartIndex: finishing paragraph
// inside StartIndexSectionChecked could do the wrong thing otherwise
- const auto xTOC = StartIndexSectionChecked(sTOCServiceName);
+ const auto xTOC = StartIndexSectionChecked( sUserIndex.isEmpty()
+ ? sTOCServiceName
+ : "com.sun.star.text.UserIndex");
m_bStartTOC = true;
m_bStartIndex = true;
OUString sValue;
- OUString sIndexEntryType = "I"; // Default value for field flag '\f' is 'I'.
-
if (xTOC.is())
{
xTOC->setPropertyValue(getPropertyName( PROP_TITLE ), uno::makeAny(OUString()));
@@ -5650,11 +5662,9 @@ void DomainMapper_Impl::handleIndex
{
xTOC->setPropertyValue("UseAlphabeticalSeparators", uno::makeAny(true));
}
- if( lcl_FindInCommand( pContext->GetCommand(), 'f', sValue ))
+ if( !sUserIndex.isEmpty() )
{
- if(!sValue.isEmpty())
- sIndexEntryType = sValue ;
- xTOC->setPropertyValue(getPropertyName( PROP_INDEX_ENTRY_TYPE ), uno::makeAny(sIndexEntryType));
+ xTOC->setPropertyValue("UserIndexName", uno::makeAny(sUserIndex));
}
}
pContext->SetTOC( xTOC );
@@ -6425,15 +6435,31 @@ void DomainMapper_Impl::CloseFieldCommand()
if( !m_xTextFactory.is() )
break;
+ // only UserIndexMark can handle user index types defined by \f
+ // e.g. XE "text" \f "user-index-id"
+ OUString sUserIndex;
+ OUString sFieldServiceName =
+ lcl_FindInCommand( pContext->GetCommand(), 'f', sUserIndex )
+ ? "com.sun.star.text.UserIndexMark"
+ : OUString::createFromAscii(aIt->second.cFieldServiceName);
uno::Reference< beans::XPropertySet > xTC(
- m_xTextFactory->createInstance(
- OUString::createFromAscii(aIt->second.cFieldServiceName)),
+ m_xTextFactory->createInstance(sFieldServiceName),
uno::UNO_QUERY_THROW);
+
if (!sFirstParam.isEmpty())
{
- xTC->setPropertyValue("PrimaryKey",
+ xTC->setPropertyValue(sUserIndex.isEmpty()
+ ? OUString("PrimaryKey")
+ : OUString("AlternativeText"),
uno::makeAny(sFirstParam));
}
+
+ sUserIndex = lcl_trim(sUserIndex);
+ if (!sUserIndex.isEmpty())
+ {
+ xTC->setPropertyValue("UserIndexName",
+ uno::makeAny(sUserIndex));
+ }
uno::Reference< text::XTextContent > xToInsert( xTC, uno::UNO_QUERY );
uno::Reference< text::XTextAppend > xTextAppend = m_aTextAppendStack.top().xTextAppend;
if (xTextAppend.is())
diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx
index 00d5b795b132..b339a83f8ae6 100644
--- a/writerfilter/source/dmapper/PropertyIds.cxx
+++ b/writerfilter/source/dmapper/PropertyIds.cxx
@@ -331,7 +331,6 @@ OUString getPropertyName( PropertyIds eId )
case PROP_CHAR_STYLISTICSETS_TEXT_EFFECT : sName = "CharStylisticSetsTextEffect"; break;
case PROP_CHAR_CNTXTALTS_TEXT_EFFECT : sName = "CharCntxtAltsTextEffect"; break;
case PROP_SDTPR : sName = "SdtPr"; break;
- case PROP_INDEX_ENTRY_TYPE : sName = "IndexEntryType"; break;
case PROP_CELL_INTEROP_GRAB_BAG : sName = "CellInteropGrabBag"; break;
case PROP_TABLE_INTEROP_GRAB_BAG : sName = "TableInteropGrabBag"; break;
case PROP_APPLY_PARAGRAPH_MARK_FORMAT_TO_NUMBERING : sName = "ApplyParagraphMarkFormatToNumbering"; break;
diff --git a/writerfilter/source/dmapper/PropertyIds.hxx b/writerfilter/source/dmapper/PropertyIds.hxx
index 8e23533c57ba..b09170d2da36 100644
--- a/writerfilter/source/dmapper/PropertyIds.hxx
+++ b/writerfilter/source/dmapper/PropertyIds.hxx
@@ -334,7 +334,6 @@ enum PropertyIds
,PROP_SDTPR
,PROP_CELL_INTEROP_GRAB_BAG
,PROP_TABLE_INTEROP_GRAB_BAG
- ,PROP_INDEX_ENTRY_TYPE
,PROP_APPLY_PARAGRAPH_MARK_FORMAT_TO_NUMBERING
,PROP_SDT_END_BEFORE
,PROP_PARA_SDT_END_BEFORE
More information about the Libreoffice-commits
mailing list