diff options
-rw-r--r-- | include/editeng/numitem.hxx | 8 | ||||
-rw-r--r-- | sw/source/core/doc/number.cxx | 4 | ||||
-rw-r--r-- | sw/source/core/unocore/unosett.cxx | 7 | ||||
-rw-r--r-- | sw/source/filter/ww8/wrtw8num.cxx | 2 |
4 files changed, 13 insertions, 8 deletions
diff --git a/include/editeng/numitem.hxx b/include/editeng/numitem.hxx index fda3169cbfd9..629d4c56f071 100644 --- a/include/editeng/numitem.hxx +++ b/include/editeng/numitem.hxx @@ -31,6 +31,7 @@ #include <editeng/editengdllapi.h> #include <o3tl/typed_flags_set.hxx> #include <memory> +#include <optional> #include <algorithm> class SvxBrushItem; @@ -103,7 +104,9 @@ public: private: OUString sPrefix; OUString sSuffix; - OUString sListFormat; // Format string ">%1.%2<" can be used instead of prefix/suffix + std::optional<OUString> sListFormat; // Format string ">%1.%2<" can be used instead of prefix/suffix + // Right now it is optional value to dostinguish empty list format + // and not set list format when we need to fallback to prefix/suffix. SvxAdjust eNumAdjust; @@ -169,7 +172,8 @@ public: void SetSuffix(const OUString& rSet) { sSuffix = rSet;} const OUString& GetSuffix() const { return sSuffix;} void SetListFormat(const OUString& rSet) { sListFormat = rSet; } - const OUString& GetListFormat() const { return sListFormat; } + bool HasListFormat() const { return sListFormat.has_value(); } + const OUString& GetListFormat() const { return *sListFormat; } void SetCharFormatName(const OUString& rSet){ sCharStyleName = rSet; } virtual OUString GetCharFormatName()const; diff --git a/sw/source/core/doc/number.cxx b/sw/source/core/doc/number.cxx index 0c7810f058f4..fa58d9ed789f 100644 --- a/sw/source/core/doc/number.cxx +++ b/sw/source/core/doc/number.cxx @@ -644,9 +644,9 @@ OUString SwNumRule::MakeNumString( const SwNumberTree::tNumberVector & rNumVecto { css::lang::Locale aLocale( LanguageTag::convertToLocale(nLang)); - OUString sLevelFormat = rMyNFormat.GetListFormat(); - if (!sLevelFormat.isEmpty()) + if (rMyNFormat.HasListFormat()) { + OUString sLevelFormat = rMyNFormat.GetListFormat(); // In this case we are ignoring GetIncludeUpperLevels: we put all // level numbers requested by level format for (SwNumberTree::tNumberVector::size_type i=0; i <= nLevel; ++i) diff --git a/sw/source/core/unocore/unosett.cxx b/sw/source/core/unocore/unosett.cxx index ebffc9ae2852..817938749bf7 100644 --- a/sw/source/core/unocore/unosett.cxx +++ b/sw/source/core/unocore/unosett.cxx @@ -1335,11 +1335,12 @@ uno::Sequence<beans::PropertyValue> SwXNumberingRules::GetPropertiesForNumFormat aPropertyValues.push_back(comphelper::makePropertyValue("Suffix", aUString)); //listformat - aUString = rFormat.GetListFormat(); - aPropertyValues.push_back(comphelper::makePropertyValue("ListFormat", aUString)); + if (rFormat.HasListFormat()) + { + aPropertyValues.push_back(comphelper::makePropertyValue("ListFormat", rFormat.GetListFormat())); + } //char style name - aUString.clear(); SwStyleNameMapper::FillProgName( rCharFormatName, aUString, SwGetPoolIdFromName::ChrFmt); aPropertyValues.push_back(comphelper::makePropertyValue("CharStyleName", aUString)); diff --git a/sw/source/filter/ww8/wrtw8num.cxx b/sw/source/filter/ww8/wrtw8num.cxx index ca3a026f2323..e2aad33206d3 100644 --- a/sw/source/filter/ww8/wrtw8num.cxx +++ b/sw/source/filter/ww8/wrtw8num.cxx @@ -494,7 +494,7 @@ void MSWordExportBase::NumberingLevel( const vcl::Font* pBulletFont=nullptr; rtl_TextEncoding eChrSet=0; FontFamily eFamily=FAMILY_DECORATIVE; - if (!rRule.Get(nLvl).GetListFormat().isEmpty()) + if (rRule.Get(nLvl).HasListFormat()) { // Nothing to construct: we have it already sNumStr = rRule.Get(nLvl).GetListFormat(); |