From 5c66c0711286bcfa9d3ab4a87777c2af9e1c25d9 Mon Sep 17 00:00:00 2001 From: Katarina Behrens Date: Thu, 14 Dec 2017 13:14:02 +0100 Subject: Read/write 'encrypt to self' bit use some template functions to avoid duplicate code Change-Id: Ia178ea3a0561e34e0431749262f5f8f1f49b4fe7 Reviewed-on: https://gerrit.libreoffice.org/46693 Tested-by: Jenkins Reviewed-by: Thorsten Behrens --- unotools/source/config/useroptions.cxx | 50 +++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 4 deletions(-) (limited to 'unotools') diff --git a/unotools/source/config/useroptions.cxx b/unotools/source/config/useroptions.cxx index e19168da2885..adf58180204a 100644 --- a/unotools/source/config/useroptions.cxx +++ b/unotools/source/config/useroptions.cxx @@ -67,7 +67,8 @@ static o3tl::enumarray vOptionNames = { "fathersname", // UserOptToken::FathersName "apartment", // UserOptToken::Apartment "signingkey", // UserOptToken::SigningKey - "encryptionkey" // UserOptToken::EncryptionKey + "encryptionkey", // UserOptToken::EncryptionKey + "encrypttoself" // UserOptToken::EncryptToSelf }; std::weak_ptr SvtUserOptions::xSharedImpl; @@ -96,12 +97,19 @@ public: bool IsTokenReadonly (UserOptToken nToken) const; OUString GetToken (UserOptToken nToken) const; void SetToken (UserOptToken nToken, OUString const& rNewToken); + bool GetBoolValue (UserOptToken nToken) const; + void SetBoolValue (UserOptToken nToken, bool& bNewValue); void Notify (); private: uno::Reference m_xChangeListener; uno::Reference m_xCfg; uno::Reference m_xData; + + template < typename ValueType > + ValueType GetValue_Impl( UserOptToken nToken ) const; + template < typename ValueType > + void SetValue_Impl( UserOptToken nToken, ValueType const& rNewValue ); }; void SvtUserOptions::ChangeListener::changesOccurred (util::ChangesEvent const& rEvent) @@ -153,9 +161,10 @@ SvtUserOptions::Impl::Impl() : } } -OUString SvtUserOptions::Impl::GetToken (UserOptToken nToken) const +template < typename ValueType > +ValueType SvtUserOptions::Impl::GetValue_Impl (UserOptToken nToken) const { - OUString sToken; + ValueType sToken = ValueType(); try { if (m_xData.is()) @@ -168,7 +177,8 @@ OUString SvtUserOptions::Impl::GetToken (UserOptToken nToken) const return sToken; } -void SvtUserOptions::Impl::SetToken (UserOptToken nToken, OUString const& sToken) +template < typename ValueType > +void SvtUserOptions::Impl::SetValue_Impl (UserOptToken nToken, ValueType const& sToken) { try { @@ -182,6 +192,26 @@ void SvtUserOptions::Impl::SetToken (UserOptToken nToken, OUString const& sToken } } +OUString SvtUserOptions::Impl::GetToken (UserOptToken nToken) const +{ + return GetValue_Impl( nToken ); +} + +void SvtUserOptions::Impl::SetToken (UserOptToken nToken, OUString const& sToken) +{ + SetValue_Impl( nToken, sToken ); +} + +bool SvtUserOptions::Impl::GetBoolValue (UserOptToken nToken) const +{ + return GetValue_Impl( nToken ); +} + +void SvtUserOptions::Impl::SetBoolValue (UserOptToken nToken, bool& bNewValue) +{ + SetValue_Impl( nToken, bNewValue ); +} + OUString SvtUserOptions::Impl::GetFullName () const { OUString sFullName; @@ -299,6 +329,18 @@ void SvtUserOptions::SetToken (UserOptToken nToken, OUString const& rNewToken) xImpl->SetToken(nToken, rNewToken); } +void SvtUserOptions::SetBoolValue (UserOptToken nToken, bool bNewValue) +{ + osl::MutexGuard aGuard(GetInitMutex()); + xImpl->SetBoolValue(nToken, bNewValue); +} + +bool SvtUserOptions::GetEncryptToSelf() const +{ + osl::MutexGuard aGuard(GetInitMutex()); + return xImpl->GetBoolValue(UserOptToken::EncryptToSelf); +} + OUString SvtUserOptions::GetFullName () const { osl::MutexGuard aGuard(GetInitMutex()); -- cgit