[Libreoffice-commits] core.git: Branch 'libreoffice-6-2' - svx/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Sat May 18 08:42:20 UTC 2019


 svx/source/items/pageitem.cxx |   31 +++++++++++++++++++++++++++----
 1 file changed, 27 insertions(+), 4 deletions(-)

New commits:
commit c25b5c2c3d019f1a282ba3fe65eb577ff1c8870b
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri May 17 15:44:02 2019 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Sat May 18 10:41:34 2019 +0200

    Resolves: tdf#125104 crash on getting text desc of numbering
    
    this seems to have been wrong for a very long time, but we used
    to get away with it back in the .src era with presumably amusingly
    random strings from other parts of the ui shown in the summary
    of changes are of the organizer page of the dialog
    
    Change-Id: If223182170ba8519d7899f8044f01c2a12f4e391
    Reviewed-on: https://gerrit.libreoffice.org/72491
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>
    Tested-by: Jenkins

diff --git a/svx/source/items/pageitem.cxx b/svx/source/items/pageitem.cxx
index bbf80d45d5c0..9f6c9a4ac3a1 100644
--- a/svx/source/items/pageitem.cxx
+++ b/svx/source/items/pageitem.cxx
@@ -22,10 +22,15 @@
 #include <utility>
 
 #include <osl/diagnose.h>
+#include <comphelper/processfactory.hxx>
 #include <tools/stream.hxx>
+#include <tools/resary.hxx>
 #include <svx/pageitem.hxx>
+#include <svx/strarray.hxx>
 #include <editeng/itemtype.hxx>
 #include <svx/unomid.hxx>
+#include <com/sun/star/text/DefaultNumberingProvider.hpp>
+#include <com/sun/star/text/XNumberingTypeInfo.hpp>
 #include <com/sun/star/style/NumberingType.hpp>
 #include <com/sun/star/style/PageStyleLayout.hpp>
 #include <com/sun/star/style/BreakType.hpp>
@@ -95,6 +100,26 @@ static const char* RID_SVXITEMS_PAGE_NUMS[] =
     RID_SVXITEMS_PAGE_NUM_NONE
 };
 
+namespace
+{
+    OUString GetNumberingDescription(SvxNumType eNumType)
+    {
+        // classic ones, keep displaying the old name
+        if (eNumType <= css::style::NumberingType::NUMBER_NONE)
+            return SvxResId(RID_SVXITEMS_PAGE_NUMS[eNumType]);
+        // new ones, reuse the text used in the numbering dropdown list
+        sal_uInt32 n = SvxNumberingTypeTable::FindIndex(eNumType);
+        if (n != RESARRAY_INDEX_NOTFOUND)
+            return SvxNumberingTypeTable::GetString(n);
+        css::uno::Reference<css::uno::XComponentContext> xContext = comphelper::getProcessComponentContext();
+        css::uno::Reference<css::text::XDefaultNumberingProvider> xDefNum = css::text::DefaultNumberingProvider::create(xContext);
+        css::uno::Reference<css::text::XNumberingTypeInfo> xInfo(xDefNum, css::uno::UNO_QUERY);
+        if (!xInfo.is())
+            return OUString();
+        return xInfo->getNumberingIdentifier(eNumType);
+    }
+}
+
 bool SvxPageItem::GetPresentation
 (
     SfxItemPresentation ePres,
@@ -114,8 +139,7 @@ bool SvxPageItem::GetPresentation
             {
                 rText = aDescName + cpDelimTmp;
             }
-            assert(eNumType <= css::style::NumberingType::NUMBER_NONE && "enum overflow");
-            rText += SvxResId(RID_SVXITEMS_PAGE_NUMS[eNumType]) + cpDelimTmp;
+            rText += GetNumberingDescription(eNumType) + cpDelimTmp;
             if ( bLandscape )
                 rText += SvxResId(RID_SVXITEMS_PAGE_LAND_TRUE);
             else
@@ -134,8 +158,7 @@ bool SvxPageItem::GetPresentation
             {
                 rText += aDescName + cpDelimTmp;
             }
-            assert(eNumType <= css::style::NumberingType::NUMBER_NONE && "enum overflow");
-            rText += SvxResId(RID_SVXITEMS_PAGE_NUMS[eNumType]) + cpDelimTmp;
+            rText += GetNumberingDescription(eNumType) + cpDelimTmp;
             if ( bLandscape )
                 rText += SvxResId(RID_SVXITEMS_PAGE_LAND_TRUE);
             else


More information about the Libreoffice-commits mailing list