summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/editeng/numitem.hxx8
-rw-r--r--sw/source/core/doc/number.cxx4
-rw-r--r--sw/source/core/unocore/unosett.cxx7
-rw-r--r--sw/source/filter/ww8/wrtw8num.cxx2
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();