summaryrefslogtreecommitdiff
path: root/writerfilter/source/dmapper
diff options
context:
space:
mode:
authorVasily Melenchuk <vasily.melenchuk@cib.de>2021-09-25 19:06:11 +0300
committerVasily Melenchuk <vasily.melenchuk@cib.de>2021-10-04 15:29:07 +0200
commit66a7f8a49d2db1829dd533f32ae5818499f8544b (patch)
tree8d811e40fc4e9a90c187ea2df55d3017819b658c /writerfilter/source/dmapper
parent1ecc5d98aefbf1779d157aee80308d26ff28458a (diff)
tdf#144609: numbering "None" should still show prefix/suffix
Unlike it was implemented in tdf#143605, prefix and suffix should be displayed anyway, we do not display only numbers. Moreover tdf#143605 did accidentally fix tdf#135164 in a invalid way. So this patch is also providing a better fix for it: untittest is already created and failing without it. Problem in tdf#135164 is inability to distingush missing level text (bullet char in given case) and empty ("") one. In first case we should use abstract level definition. In second - not. Change-Id: Ica3a714d22de4d2f14ebbcb12f0e1311dbc9b801 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122609 Tested-by: Jenkins Reviewed-by: Vasily Melenchuk <vasily.melenchuk@cib.de>
Diffstat (limited to 'writerfilter/source/dmapper')
-rw-r--r--writerfilter/source/dmapper/NumberingManager.cxx8
-rw-r--r--writerfilter/source/dmapper/NumberingManager.hxx5
2 files changed, 7 insertions, 6 deletions
diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx
index f003dba2abe7..51484b74408f 100644
--- a/writerfilter/source/dmapper/NumberingManager.cxx
+++ b/writerfilter/source/dmapper/NumberingManager.cxx
@@ -175,7 +175,7 @@ uno::Sequence< beans::PropertyValue > ListLevel::GetCharStyleProperties( )
uno::Sequence< beans::PropertyValue > vPropVals = PropertyMap::GetPropertyValues();
beans::PropertyValue* aValIter = vPropVals.begin();
beans::PropertyValue* aEndIter = vPropVals.end();
- const bool bIsSymbol(m_sBulletChar.getLength() <= 1);
+ const bool bIsSymbol(GetBulletChar().getLength() <= 1);
for( ; aValIter != aEndIter; ++aValIter )
if (! IgnoreForCharStyle(aValIter->Name, bIsSymbol))
rProperties.emplace_back(aValIter->Name, 0, aValIter->Value, beans::PropertyState_DIRECT_VALUE);
@@ -211,9 +211,9 @@ uno::Sequence<beans::PropertyValue> ListLevel::GetLevelProperties(bool bDefaults
// todo: this is not the bullet char
if( nNumberFormat == style::NumberingType::CHAR_SPECIAL )
{
- if (!m_sBulletChar.isEmpty())
+ if (!GetBulletChar().isEmpty())
{
- aNumberingProperties.push_back(lcl_makePropVal(PROP_BULLET_CHAR, m_sBulletChar.copy(0, 1)));
+ aNumberingProperties.push_back(lcl_makePropVal(PROP_BULLET_CHAR, m_sBulletChar->copy(0, 1)));
}
else
{
@@ -584,7 +584,7 @@ void ListDef::CreateNumberingRules( DomainMapper& rDMapper,
? pAbsLevel->GetBulletChar()
: OUString();
// Inherit <w:lvlText> from the abstract level in case the override would be empty.
- if (pLevel && !pLevel->GetBulletChar().isEmpty())
+ if (pLevel && pLevel->HasBulletChar())
sText = pLevel->GetBulletChar( );
aLvlProps.push_back(comphelper::makePropertyValue(getPropertyName(PROP_PREFIX), OUString("")));
diff --git a/writerfilter/source/dmapper/NumberingManager.hxx b/writerfilter/source/dmapper/NumberingManager.hxx
index 252f26149fea..2c1e0af3cb77 100644
--- a/writerfilter/source/dmapper/NumberingManager.hxx
+++ b/writerfilter/source/dmapper/NumberingManager.hxx
@@ -46,7 +46,7 @@ class ListLevel : public PropertyMap
/// LN_CT_NumFmt_format, in case m_nNFC is custom.
OUString m_aCustomNumberFormat;
sal_Int16 m_nXChFollow; //LN_IXCHFOLLOW
- OUString m_sBulletChar;
+ std::optional<OUString> m_sBulletChar;
css::awt::Size m_aGraphicSize;
css::uno::Reference<css::awt::XBitmap> m_xGraphicBitmap;
std::optional<sal_Int32> m_nTabstop;
@@ -76,7 +76,8 @@ public:
// Getters
sal_Int16 GetNumberingType(sal_Int16 nDefault) const;
- const OUString& GetBulletChar( ) const { return m_sBulletChar; };
+ bool HasBulletChar() const { return m_sBulletChar.has_value(); };
+ OUString GetBulletChar( ) const { return m_sBulletChar.has_value()? *m_sBulletChar : OUString(); };
const tools::SvRef< StyleSheetEntry >& GetParaStyle( ) const { return m_pParaStyle; };
sal_Int32 GetStartOverride() const { return m_nStartOverride; };
/// Determines if SetValue() was called at least once.