tdf#158597 writerfilter,sw: fix toggle properties in ListAutoFormat
... for DOCX import. These can be set both via paragraph style and via character style in the w:pPr/w:rPr, so use the applyToggleAttributes(). Adding a test for this requires adding the "CharStyleName" property to GetAutoCharStylePropertyMap(). Change-Id: I9701d5ac82ec3e7757650c08861791dc398a1a77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163386 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
This commit is contained in:
Binary file not shown.
@@ -9,6 +9,7 @@
|
||||
|
||||
#include <swmodeltestbase.hxx>
|
||||
|
||||
#include <com/sun/star/awt/FontSlant.hpp>
|
||||
#include <com/sun/star/beans/XPropertyState.hpp>
|
||||
#include <com/sun/star/text/XDocumentIndex.hpp>
|
||||
#include <com/sun/star/text/XTextTable.hpp>
|
||||
@@ -16,6 +17,7 @@
|
||||
#include <com/sun/star/style/LineSpacingMode.hpp>
|
||||
|
||||
#include <comphelper/configuration.hxx>
|
||||
#include <comphelper/sequenceashashmap.hxx>
|
||||
#include <officecfg/Office/Common.hxx>
|
||||
|
||||
#include <pam.hxx>
|
||||
@@ -33,6 +35,261 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf158597, "tdf158597.docx")
|
||||
{
|
||||
// test with 2 properties: font size, italic (toggle)
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("No style"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(""), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(11.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_NONE, getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
CPPUNIT_ASSERT(!xProps->getPropertyValue("ListAutoFormat").hasValue());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(2));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Char style mark"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(""), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(11.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_NONE, getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
comphelper::SequenceAsHashMap listAutoFormat(xProps->getPropertyValue("ListAutoFormat"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), listAutoFormat["CharStyleName"].get<OUString>());
|
||||
CPPUNIT_ASSERT(!listAutoFormat["CharHeight"].hasValue());
|
||||
CPPUNIT_ASSERT(!listAutoFormat["CharPosture"].hasValue());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(3));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Char style mark and text"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
comphelper::SequenceAsHashMap listAutoFormat(xProps->getPropertyValue("ListAutoFormat"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), listAutoFormat["CharStyleName"].get<OUString>());
|
||||
CPPUNIT_ASSERT(!listAutoFormat["CharHeight"].hasValue());
|
||||
CPPUNIT_ASSERT(!listAutoFormat["CharPosture"].hasValue());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(4));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Char style text"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
CPPUNIT_ASSERT(!xProps->getPropertyValue("ListAutoFormat").hasValue());
|
||||
}
|
||||
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(5));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Para style"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph E"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(""), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
CPPUNIT_ASSERT(!xProps->getPropertyValue("ListAutoFormat").hasValue());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(6));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Para style + Char style mark"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph E"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(""), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
comphelper::SequenceAsHashMap listAutoFormat(xProps->getPropertyValue("ListAutoFormat"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), listAutoFormat["CharStyleName"].get<OUString>());
|
||||
CPPUNIT_ASSERT(!listAutoFormat["CharHeight"].hasValue());
|
||||
// bug was that here the toggle property was not overwritten
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_NONE,
|
||||
listAutoFormat["CharPosture"].get<awt::FontSlant>());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(7));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Para style + Char style mark and text"),
|
||||
xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph E"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_NONE, getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
comphelper::SequenceAsHashMap listAutoFormat(xProps->getPropertyValue("ListAutoFormat"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), listAutoFormat["CharStyleName"].get<OUString>());
|
||||
CPPUNIT_ASSERT(!listAutoFormat["CharHeight"].hasValue());
|
||||
// bug was that here the toggle property was not overwritten
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_NONE,
|
||||
listAutoFormat["CharPosture"].get<awt::FontSlant>());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(8));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Para style + Char style text"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph E"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_NONE, getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
CPPUNIT_ASSERT(!xProps->getPropertyValue("ListAutoFormat").hasValue());
|
||||
}
|
||||
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(9));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("No style + direct mark"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(""), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(11.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_NONE, getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
comphelper::SequenceAsHashMap listAutoFormat(xProps->getPropertyValue("ListAutoFormat"));
|
||||
CPPUNIT_ASSERT(!listAutoFormat["CharStyleName"].hasValue());
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, listAutoFormat["CharHeight"].get<float>());
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
listAutoFormat["CharPosture"].get<awt::FontSlant>());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(10));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Char style + direct mark"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(""), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(11.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_NONE, getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
comphelper::SequenceAsHashMap listAutoFormat(xProps->getPropertyValue("ListAutoFormat"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), listAutoFormat["CharStyleName"].get<OUString>());
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, listAutoFormat["CharHeight"].get<float>());
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
listAutoFormat["CharPosture"].get<awt::FontSlant>());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(11));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Char style + direct mark and text"),
|
||||
xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
comphelper::SequenceAsHashMap listAutoFormat(xProps->getPropertyValue("ListAutoFormat"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), listAutoFormat["CharStyleName"].get<OUString>());
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, listAutoFormat["CharHeight"].get<float>());
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
listAutoFormat["CharPosture"].get<awt::FontSlant>());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(12));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Char style + direct text"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
CPPUNIT_ASSERT(!xProps->getPropertyValue("ListAutoFormat").hasValue());
|
||||
}
|
||||
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(13));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Para style + direct mark"), xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph E"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(""), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
comphelper::SequenceAsHashMap listAutoFormat(xProps->getPropertyValue("ListAutoFormat"));
|
||||
CPPUNIT_ASSERT(!listAutoFormat["CharStyleName"].hasValue());
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, listAutoFormat["CharHeight"].get<float>());
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
listAutoFormat["CharPosture"].get<awt::FontSlant>());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(14));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Para style + Char style + direct mark"),
|
||||
xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph E"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString(""), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
comphelper::SequenceAsHashMap listAutoFormat(xProps->getPropertyValue("ListAutoFormat"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), listAutoFormat["CharStyleName"].get<OUString>());
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, listAutoFormat["CharHeight"].get<float>());
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
listAutoFormat["CharPosture"].get<awt::FontSlant>());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(15));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Para style + Char style + direct mark and text"),
|
||||
xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph E"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
comphelper::SequenceAsHashMap listAutoFormat(xProps->getPropertyValue("ListAutoFormat"));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), listAutoFormat["CharStyleName"].get<OUString>());
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, listAutoFormat["CharHeight"].get<float>());
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
listAutoFormat["CharPosture"].get<awt::FontSlant>());
|
||||
}
|
||||
{
|
||||
uno::Reference<text::XTextRange> xParagraph(getParagraph(16));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Para style + Char style + direct text"),
|
||||
xParagraph->getString());
|
||||
uno::Reference<beans::XPropertySet> xProps(xParagraph, uno::UNO_QUERY);
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("List Paragraph E"),
|
||||
getProperty<OUString>(xProps, "ParaStyleName"));
|
||||
uno::Reference<text::XTextRange> xRun(getRun(xParagraph, 1));
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("Emphasis"), getProperty<OUString>(xRun, "CharStyleName"));
|
||||
CPPUNIT_ASSERT_EQUAL(16.f, getProperty<float>(xRun, "CharHeight"));
|
||||
CPPUNIT_ASSERT_EQUAL(awt::FontSlant_ITALIC,
|
||||
getProperty<awt::FontSlant>(xRun, "CharPosture"));
|
||||
CPPUNIT_ASSERT(!xProps->getPropertyValue("ListAutoFormat").hasValue());
|
||||
}
|
||||
}
|
||||
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf153909_followTextFlow, "tdf153909_followTextFlow.docx")
|
||||
{
|
||||
// Although MSO's UI reports "layoutInCell" for the rectangle, it isn't specified or honored
|
||||
|
||||
@@ -307,6 +307,7 @@ std::span<const SfxItemPropertyMapEntry> SwUnoPropertyMapProvider::GetAutoCharS
|
||||
{ UNO_NAME_CHAR_BORDER_TOP_COMPLEX_COLOR, RES_CHRATR_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_BORDER_TOP_COLOR },
|
||||
{ UNO_NAME_CHAR_BORDER_BOTTOM_COMPLEX_COLOR, RES_CHRATR_BOX, cppu::UnoType<css::util::XComplexColor>::get(), PropertyAttribute::MAYBEVOID, MID_BORDER_BOTTOM_COLOR },
|
||||
{ UNO_NAME_CHAR_SHADOW_FORMAT, RES_CHRATR_SHADOW, cppu::UnoType<css::table::ShadowFormat>::get(), PROPERTY_NONE, CONVERT_TWIPS},
|
||||
{ UNO_NAME_CHAR_STYLE_NAME, RES_TXTATR_CHARFMT, cppu::UnoType<OUString>::get(), PropertyAttribute::MAYBEVOID, 0 },
|
||||
};
|
||||
|
||||
return aAutoCharStyleMap;
|
||||
|
||||
@@ -539,11 +539,6 @@ SwUnoCursorHelper::SetCursorPropertyValue(
|
||||
rMap.getByName(prop.Name);
|
||||
if (!pEntry)
|
||||
{
|
||||
if (prop.Name == "CharStyleName")
|
||||
{
|
||||
lcl_setCharStyle(rPam.GetDoc(), prop.Value, items);
|
||||
continue;
|
||||
}
|
||||
throw beans::UnknownPropertyException(
|
||||
"Unknown property: " + prop.Name);
|
||||
}
|
||||
@@ -552,7 +547,14 @@ SwUnoCursorHelper::SetCursorPropertyValue(
|
||||
throw beans::PropertyVetoException(
|
||||
"Property is read-only: " + prop.Name);
|
||||
}
|
||||
rPropSet.setPropertyValue(*pEntry, prop.Value, items);
|
||||
if (prop.Name == "CharStyleName")
|
||||
{
|
||||
lcl_setCharStyle(rPam.GetDoc(), prop.Value, items);
|
||||
}
|
||||
else
|
||||
{
|
||||
rPropSet.setPropertyValue(*pEntry, prop.Value, items);
|
||||
}
|
||||
}
|
||||
|
||||
IStyleAccess& rStyleAccess = rPam.GetDoc().GetIStyleAccess();
|
||||
|
||||
@@ -2533,6 +2533,7 @@ void DomainMapper_Impl::finishParagraph( const PropertyMapPtr& pPropertyMap, con
|
||||
lcl_AddRange(pToBeSavedProperties, xTextAppend, rAppendContext);
|
||||
}
|
||||
}
|
||||
applyToggleAttributes(pPropertyMap); // for paragraph marker formatting
|
||||
std::vector<beans::PropertyValue> aProperties;
|
||||
if (pPropertyMap)
|
||||
{
|
||||
@@ -3011,6 +3012,7 @@ void DomainMapper_Impl::finishParagraph( const PropertyMapPtr& pPropertyMap, con
|
||||
|
||||
}
|
||||
|
||||
// TODO this does not yet take table styles into account
|
||||
void DomainMapper_Impl::applyToggleAttributes(const PropertyMapPtr& pPropertyMap)
|
||||
{
|
||||
std::optional<PropertyMap::Property> charStyleProperty = pPropertyMap->getProperty(PROP_CHAR_STYLE_NAME);
|
||||
|
||||
Reference in New Issue
Block a user