diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2023-03-21 11:04:32 +0100 |
---|---|---|
committer | Xisco Fauli <xiscofauli@libreoffice.org> | 2023-03-22 07:26:40 +0000 |
commit | 7131530929d3670b8c2db7dc0c1a86c822e05660 (patch) | |
tree | 057a7d4bb5a37fdcd05796191754dbfdabfb6d54 /sc/source/core | |
parent | b1dc8d302f5a7c7b8f69261f86ff01377a910c68 (diff) |
tdf#154274: show "Unknown Author" when no name is set
Same as in Writer
Change-Id: I830ba9f34dc39424202110538ba4a7dbada1b06c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149206
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Diffstat (limited to 'sc/source/core')
-rw-r--r-- | sc/source/core/tool/chgtrack.cxx | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/sc/source/core/tool/chgtrack.cxx b/sc/source/core/tool/chgtrack.cxx index 925b30378c1a..996ff1c912e3 100644 --- a/sc/source/core/tool/chgtrack.cxx +++ b/sc/source/core/tool/chgtrack.cxx @@ -43,6 +43,7 @@ #include <tools/json_writer.hxx> #include <algorithm> #include <memory> +#include <strings.hrc> #include <utility> ScChangeAction::ScChangeAction( ScChangeActionType eTypeP, const ScRange& rRange ) @@ -2061,9 +2062,7 @@ void ScChangeTrack::Init() bUseFixDateTime = false; bTimeNanoSeconds = true; - const SvtUserOptions& rUserOpt = SC_MOD()->GetUserOptions(); - maUser = rUserOpt.GetFirstName() + " " + rUserOpt.GetLastName(); - maUserCollection.insert(maUser); + CreateAuthorName(); } void ScChangeTrack::DtorClear() @@ -2160,10 +2159,9 @@ void ScChangeTrack::ConfigurationChanged( utl::ConfigurationBroadcaster*, Config if ( rDoc.IsInDtorClear() ) return; - const SvtUserOptions& rUserOptions = SC_MOD()->GetUserOptions(); size_t nOldCount = maUserCollection.size(); - SetUser(rUserOptions.GetFirstName() + " " + rUserOptions.GetLastName()); + CreateAuthorName(); if ( maUserCollection.size() != nOldCount ) { @@ -2178,6 +2176,22 @@ void ScChangeTrack::ConfigurationChanged( utl::ConfigurationBroadcaster*, Config } } +void ScChangeTrack::CreateAuthorName() +{ + const SvtUserOptions& rUserOptions = SC_MOD()->GetUserOptions(); + OUString aFirstName(rUserOptions.GetFirstName()); + OUString aLastName(rUserOptions.GetLastName()); + if (aFirstName.isEmpty() && aLastName.isEmpty()) + SetUser(ScResId(STR_CHG_UNKNOWN_AUTHOR)); + else if(!aFirstName.isEmpty() && aLastName.isEmpty()) + SetUser(aFirstName); + else if(aFirstName.isEmpty() && !aLastName.isEmpty()) + SetUser(aLastName); + else + SetUser(aFirstName + " " + aLastName); +} + + void ScChangeTrack::SetUser( const OUString& rUser ) { maUser = rUser; |