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.kaganski@collabora.com> Reviewed-by: Eike Rathke <erack@redhat.com>
This commit is contained in:
@@ -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: */
|
||||
|
||||
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user