sc/inc/stylehelper.hxx               |    4 +++-
 sc/source/filter/orcus/interface.cxx |    5 ++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

New commits:
commit 4024673d69475191ba221fd0db2e595bf796d4fd
Author:     Kevin Suo <suokunl...@126.com>
AuthorDate: Wed Nov 3 14:16:52 2021 +0800
Commit:     Eike Rathke <er...@redhat.com>
CommitDate: Mon Nov 8 21:40:35 2021 +0100

    tdf#139205: Keep hierarchical structure of localized default styles in Calc
    
    The default cell styles (when creating a new Calc document), as returned by 
orcus
    parsing, are built-in English names, as defined in sc/res/xml/styles.xml. 
These
    names can be localized. On non-English UI, all these (localized) styles 
names
    will be forced to use the localized "Default" as their parent because there 
is
    no such non-localized parents in the localized style tree on UI.
    
    In this patch, I added SC_DLLPUBLIC to 
ScStyleNameConversion::ProgrammaticToDisplayName,
    then used this function to convert the parent style name to the (localized) 
UI name.
    
    Change-Id: I3689211a10c60a5e7b2b273b6c15a4da92f0d633
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124556
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com>
    Reviewed-by: Eike Rathke <er...@redhat.com>

diff --git a/sc/inc/stylehelper.hxx b/sc/inc/stylehelper.hxx
index 63189ccd6c77..e11fcef97c8e 100644
--- a/sc/inc/stylehelper.hxx
+++ b/sc/inc/stylehelper.hxx
@@ -20,6 +20,7 @@
 #pragma once
 
 #include <rtl/ustring.hxx>
+#include "scdllapi.h"
 
 //  conversion programmatic <-> display (visible) name
 //  currently, the core always has the visible names
@@ -46,7 +47,8 @@ class ScStyleNameConversion
 {
 public:
     static OUString DisplayToProgrammaticName(const OUString& rDispName, 
SfxStyleFamily nType);
-    static OUString ProgrammaticToDisplayName(const OUString& rProgName, 
SfxStyleFamily nType);
+    static SC_DLLPUBLIC OUString ProgrammaticToDisplayName(const OUString& 
rProgName,
+                                                           SfxStyleFamily 
nType);
 };
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/orcus/interface.cxx 
b/sc/source/filter/orcus/interface.cxx
index 63926a72fc59..1bcc914a0ada 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -49,6 +49,7 @@
 
 #include <stylesbuffer.hxx>
 #include <orcus/exception.hpp>
+#include <stylehelper.hxx>
 
 using namespace com::sun::star;
 
@@ -2176,7 +2177,9 @@ size_t ScOrcusStyles::commit_cell_style()
 
     ScStyleSheetPool* pPool = mrFactory.getDoc().getDoc().GetStyleSheetPool();
     SfxStyleSheetBase& rBase = pPool->Make(maCurrentCellStyle.maName, 
SfxStyleFamily::Para);
-    rBase.SetParent(maCurrentCellStyle.maParentName);
+    // Need to convert the parent name to localized UI name, see tdf#139205.
+    
rBase.SetParent(ScStyleNameConversion::ProgrammaticToDisplayName(maCurrentCellStyle.maParentName,
+                                                                     
SfxStyleFamily::Para));
     SfxItemSet& rSet = rBase.GetItemSet();
 
     xf& rXf = maCellStyleXfs[maCurrentCellStyle.mnXFId];

Reply via email to