diff --git a/sc/inc/defaultsoptions.hxx b/sc/inc/defaultsoptions.hxx index 094dc066ec74..0f20b8423af4 100644 --- a/sc/inc/defaultsoptions.hxx +++ b/sc/inc/defaultsoptions.hxx @@ -21,6 +21,7 @@ private: SCTAB nInitTabCount; // number of Tabs for new Spreadsheet doc OUString aInitTabPrefix; // The Tab prefix name in new Spreadsheet doc bool bJumboSheets; + bool bInitTabPrefixChanged; public: ScDefaultsOptions(); @@ -29,8 +30,8 @@ public: SCTAB GetInitTabCount() const { return nInitTabCount; } void SetInitTabCount( SCTAB nTabs) { nInitTabCount = nTabs; } - void SetInitTabPrefix(const OUString& aPrefix) { aInitTabPrefix = aPrefix; } - const OUString& GetInitTabPrefix() const { return aInitTabPrefix; } + void SetInitTabPrefix(const OUString& aPrefix); + OUString GetInitTabPrefix() const; bool GetInitJumboSheets() const { return bJumboSheets; } #if HAVE_FEATURE_JUMBO_SHEETS void SetInitJumboSheets( bool b) { bJumboSheets = b; } diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index a1d3cb27431f..c1fcaff47ab3 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -386,7 +386,7 @@ void ScDocument::CreateValidTabName(OUString& rName) const // Get Custom prefix const ScDefaultsOptions& rOpt = ScModule::get()->GetDefaultsOptions(); - const OUString& aStrTable = rOpt.GetInitTabPrefix(); + const OUString aStrTable = rOpt.GetInitTabPrefix(); bool bOk = false; @@ -429,7 +429,7 @@ void ScDocument::CreateValidTabNames(std::vector& aNames, SCTAB nCount // Get Custom prefix const ScDefaultsOptions& rOpt = ScModule::get()->GetDefaultsOptions(); - const OUString& aStrTable = rOpt.GetInitTabPrefix(); + const OUString aStrTable = rOpt.GetInitTabPrefix(); OUStringBuffer rName; diff --git a/sc/source/core/tool/defaultsoptions.cxx b/sc/source/core/tool/defaultsoptions.cxx index 098cc11e6230..5caaa4f61832 100644 --- a/sc/source/core/tool/defaultsoptions.cxx +++ b/sc/source/core/tool/defaultsoptions.cxx @@ -15,6 +15,7 @@ #include #include #include +#include using namespace utl; using namespace com::sun::star::uno; @@ -30,6 +31,27 @@ void ScDefaultsOptions::SetDefaults() nInitTabCount = 1; aInitTabPrefix = ScResId(STR_TABLE_DEF); // Default Prefix "Sheet" bJumboSheets = false; + bInitTabPrefixChanged = false; +} + +void ScDefaultsOptions::SetInitTabPrefix(const OUString& aPrefix) +{ + if (aInitTabPrefix != aPrefix) + { + bInitTabPrefixChanged = true; + aInitTabPrefix = aPrefix; + } +} + +OUString ScDefaultsOptions::GetInitTabPrefix() const +{ + if (comphelper::LibreOfficeKit::isActive() && !bInitTabPrefixChanged) + { + // LOKit may have different users with different locales, so the proper + // translation of the defualt TabPrefix has to be fetched each time + return ScResId(STR_TABLE_DEF); + } + return aInitTabPrefix; } bool ScDefaultsOptions::operator==( const ScDefaultsOptions& rOpt ) const