summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linguistic/source/gciterator.cxx2
-rw-r--r--offapi/com/sun/star/style/ParagraphProperties.idl9
-rw-r--r--sw/inc/cmdid.h3
-rw-r--r--sw/inc/unoprnms.hxx1
-rw-r--r--sw/source/core/unocore/unocrsrhelper.cxx12
-rw-r--r--sw/source/core/unocore/unoflatpara.cxx18
-rw-r--r--sw/source/core/unocore/unomapproperties.hxx1
-rw-r--r--sw/source/uibase/sidebar/WriterInspectorTextPanel.cxx1
8 files changed, 46 insertions, 1 deletions
diff --git a/linguistic/source/gciterator.cxx b/linguistic/source/gciterator.cxx
index 581f356f215e..1613b2dac36b 100644
--- a/linguistic/source/gciterator.cxx
+++ b/linguistic/source/gciterator.cxx
@@ -557,6 +557,8 @@ lcl_makeProperties(uno::Reference<text::XFlatParagraph> const& xFlatPara, sal_In
return comphelper::InitPropertySequence({
{ "FieldPositions", xProps->getPropertyValue("FieldPositions") },
{ "FootnotePositions", xProps->getPropertyValue("FootnotePositions") },
+ { "SortedTextId", xProps->getPropertyValue("SortedTextId") },
+ { "DocumentElementsCount", xProps->getPropertyValue("DocumentElementsCount") },
{ "ProofInfo", a }
});
}
diff --git a/offapi/com/sun/star/style/ParagraphProperties.idl b/offapi/com/sun/star/style/ParagraphProperties.idl
index 9951703c8a3d..a7d6c059bd8a 100644
--- a/offapi/com/sun/star/style/ParagraphProperties.idl
+++ b/offapi/com/sun/star/style/ParagraphProperties.idl
@@ -419,6 +419,15 @@ published service ParagraphProperties
@since LibreOffice 7.4
*/
[optional, property] long ParaHyphenationZone;
+
+ /** contains a paragraph identifier within the actual text,
+ which also shows the position of the paragraph relative to the
+ other paragraphs of the same text, i.e. a paragraph with lower
+ identifier is there before the other ones with greater values.
+ This property depends on implementation details and is considered experimental.
+ @since LibreOffice 7.5
+ */
+ [optional, property, readonly] long SortedTextId;
};
diff --git a/sw/inc/cmdid.h b/sw/inc/cmdid.h
index c44745a0e861..02d78f338851 100644
--- a/sw/inc/cmdid.h
+++ b/sw/inc/cmdid.h
@@ -577,7 +577,8 @@ class SwUINumRuleItem;
#define FN_UNO_FOOTER_LEFT (FN_EXTRA2 + 39)
#define FN_UNO_FOOTER_RIGHT (FN_EXTRA2 + 40)
#define FN_UNO_TEXT_PARAGRAPH (FN_EXTRA2 + 41)
-#define FN_UNO_PARENT_TEXT (FN_EXTRA2 + 42)
+#define FN_UNO_PARENT_TEXT (FN_EXTRA2 + 42)
+#define FN_UNO_SORTED_TEXT_ID (FN_EXTRA2 + 43)
#define FN_UNO_FOLLOW_STYLE (FN_EXTRA2 + 59)
#define FN_API_CALL TypedWhichId<SfxBoolItem>(FN_EXTRA2 + 60)
diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx
index 42a38fdef0aa..85a1938d61ce 100644
--- a/sw/inc/unoprnms.hxx
+++ b/sw/inc/unoprnms.hxx
@@ -412,6 +412,7 @@ inline constexpr OUStringLiteral UNO_NAME_FOOTER_IS_DYNAMIC_HEIGHT = u"FooterIsD
inline constexpr OUStringLiteral UNO_NAME_FOOTER_IS_SHARED = u"FooterIsShared";
inline constexpr OUStringLiteral UNO_NAME_TEXT_PARAGRAPH = u"TextParagraph";
inline constexpr OUStringLiteral UNO_NAME_PARENT_TEXT = u"ParentText";
+inline constexpr OUStringLiteral UNO_NAME_SORTED_TEXT_ID = u"SortedTextId";
inline constexpr OUStringLiteral UNO_NAME_FOOTER_HEIGHT = u"FooterHeight";
inline constexpr OUStringLiteral UNO_NAME_FOOTER_IS_ON = u"FooterIsOn";
diff --git a/sw/source/core/unocore/unocrsrhelper.cxx b/sw/source/core/unocore/unocrsrhelper.cxx
index 04567219168f..3596e21cf00a 100644
--- a/sw/source/core/unocore/unocrsrhelper.cxx
+++ b/sw/source/core/unocore/unocrsrhelper.cxx
@@ -675,6 +675,18 @@ bool getCursorPropertyValue(const SfxItemPropertyMapEntry& rEntry
eNewState = PropertyState_DEFAULT_VALUE;
}
break;
+ case FN_UNO_SORTED_TEXT_ID:
+ {
+ if( pAny )
+ {
+ sal_Int32 nIndex = -1;
+ SwTextNode* pTextNode = rPam.GetPoint()->GetNode().GetTextNode();
+ if ( pTextNode )
+ nIndex = pTextNode->GetIndex().get();
+ *pAny <<= nIndex;
+ }
+ }
+ break;
case FN_UNO_ENDNOTE:
case FN_UNO_FOOTNOTE:
{
diff --git a/sw/source/core/unocore/unoflatpara.cxx b/sw/source/core/unocore/unoflatpara.cxx
index 3182812cecdb..ea86284fb4ab 100644
--- a/sw/source/core/unocore/unoflatpara.cxx
+++ b/sw/source/core/unocore/unoflatpara.cxx
@@ -83,6 +83,8 @@ SwXFlatParagraph::getPropertySetInfo()
static const comphelper::PropertyMapEntry s_Entries[] = {
{ OUString("FieldPositions"), -1, ::cppu::UnoType<uno::Sequence<sal_Int32>>::get(), beans::PropertyAttribute::READONLY, 0 },
{ OUString("FootnotePositions"), -1, ::cppu::UnoType<uno::Sequence<sal_Int32>>::get(), beans::PropertyAttribute::READONLY, 0 },
+ { OUString("SortedTextId"), -1, ::cppu::UnoType<sal_Int32>::get(), beans::PropertyAttribute::READONLY, 0 },
+ { OUString("DocumentElementsCount"), -1, ::cppu::UnoType<sal_Int32>::get(), beans::PropertyAttribute::READONLY, 0 },
};
return new comphelper::PropertySetInfo(s_Entries);
}
@@ -107,6 +109,22 @@ SwXFlatParagraph::getPropertyValue(const OUString& rPropertyName)
{
return uno::Any( comphelper::containerToSequence( GetConversionMap().getFootnotePositions() ) );
}
+ else if (rPropertyName == "SortedTextId")
+ {
+ SwTextNode const*const pCurrentNode = GetTextNode();
+ sal_Int32 nIndex = -1;
+ if ( pCurrentNode )
+ nIndex = pCurrentNode->GetIndex().get();
+ return uno::Any( nIndex );
+ }
+ else if (rPropertyName == "DocumentElementsCount")
+ {
+ SwTextNode const*const pCurrentNode = GetTextNode();
+ sal_Int32 nCount = -1;
+ if ( pCurrentNode )
+ nCount = pCurrentNode->GetDoc().GetNodes().Count().get();
+ return uno::Any( nCount );
+ }
return uno::Any();
}
diff --git a/sw/source/core/unocore/unomapproperties.hxx b/sw/source/core/unocore/unomapproperties.hxx
index 583babbf2e3f..d849c4fcb36c 100644
--- a/sw/source/core/unocore/unomapproperties.hxx
+++ b/sw/source/core/unocore/unomapproperties.hxx
@@ -89,6 +89,7 @@
{ UNO_NAME_TEXT_FRAME, FN_UNO_TEXT_FRAME, cppu::UnoType<css::text::XTextFrame>::get(), PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY ,0 }, \
{ UNO_NAME_TEXT_SECTION, FN_UNO_TEXT_SECTION, cppu::UnoType<css::text::XTextSection>::get(), PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY ,0 }, \
{ UNO_NAME_TEXT_PARAGRAPH, FN_UNO_TEXT_PARAGRAPH, cppu::UnoType<css::text::XTextContent>::get(), PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY ,0 }, \
+ { UNO_NAME_SORTED_TEXT_ID, FN_UNO_SORTED_TEXT_ID, cppu::UnoType<sal_Int32>::get(), PropertyAttribute::MAYBEVOID|PropertyAttribute::READONLY ,0 }, \
{ UNO_NAME_PARA_CHAPTER_NUMBERING_LEVEL, FN_UNO_PARA_CHAPTER_NUMBERING_LEVEL,cppu::UnoType<sal_Int8>::get(), PropertyAttribute::MAYBEVOID, 0}, \
{ UNO_NAME_PARA_CONDITIONAL_STYLE_NAME, FN_UNO_PARA_CONDITIONAL_STYLE_NAME, cppu::UnoType<OUString>::get(), PropertyAttribute::READONLY, 0}, \
{ UNO_NAME_LIST_ID, FN_UNO_LIST_ID, cppu::UnoType<OUString>::get(), PropertyAttribute::MAYBEVOID, 0}, \
diff --git a/sw/source/uibase/sidebar/WriterInspectorTextPanel.cxx b/sw/source/uibase/sidebar/WriterInspectorTextPanel.cxx
index b0fc9b82ce1d..313af767ba5d 100644
--- a/sw/source/uibase/sidebar/WriterInspectorTextPanel.cxx
+++ b/sw/source/uibase/sidebar/WriterInspectorTextPanel.cxx
@@ -562,6 +562,7 @@ static void UpdateTree(SwDocShell& rDocSh, SwEditShell& rEditSh,
UNO_NAME_PARA_CONTINUEING_PREVIOUS_SUB_TREE,
UNO_NAME_CHAR_STYLE_NAME,
UNO_NAME_NUMBERING_LEVEL,
+ UNO_NAME_SORTED_TEXT_ID,
UNO_NAME_PARRSID,
UNO_NAME_CHAR_COLOR_THEME,
UNO_NAME_CHAR_COLOR_TINT_OR_SHADE };