Kaydet (Commit) 5c66c071 authored tarafından Katarina Behrens's avatar Katarina Behrens Kaydeden (comit) Thorsten Behrens

Read/write 'encrypt to self' bit

use some template functions to avoid duplicate code

Change-Id: Ia178ea3a0561e34e0431749262f5f8f1f49b4fe7
Reviewed-on: https://gerrit.libreoffice.org/46693Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
üst df4fac1d
......@@ -443,11 +443,14 @@ bool SvxGeneralTabPage::GetData_Impl()
: m_pSigningKeyLB->GetSelectedEntry();
OUString aEK = m_pEncryptionKeyLB->GetSelectedEntryPos() == 0 ? OUString()
: m_pEncryptionKeyLB->GetSelectedEntry();
aUserOpt.SetToken( UserOptToken::SigningKey, aSK );
aUserOpt.SetToken( UserOptToken::EncryptionKey, aEK );
aUserOpt.SetBoolValue( UserOptToken::EncryptToSelf, m_pEncryptToSelfCB->IsChecked() );
bModified |= m_pSigningKeyLB->IsValueChangedFromSaved();
bModified |= m_pEncryptionKeyLB->IsValueChangedFromSaved();
bModified |= m_pSigningKeyLB->IsValueChangedFromSaved() ||
m_pEncryptionKeyLB->IsValueChangedFromSaved() ||
m_pEncryptToSelfCB->IsValueChangedFromSaved();
#endif
return bModified;
......@@ -489,6 +492,8 @@ void SvxGeneralTabPage::SetData_Impl()
OUString aEK = aUserOpt.GetToken(UserOptToken::EncryptionKey);
aEK.isEmpty() ? m_pEncryptionKeyLB->SelectEntryPos( 0 ) //i.e. 'No Key'
: m_pEncryptionKeyLB->SelectEntry( aEK );
m_pEncryptToSelfCB->Check( aUserOpt.GetEncryptToSelf() );
#endif
}
......
......@@ -47,7 +47,8 @@ enum class UserOptToken
Apartment = 16,
SigningKey = 17,
EncryptionKey = 18,
LAST = EncryptionKey,
EncryptToSelf = 19,
LAST = EncryptToSelf,
};
// class SvtUserOptions --------------------------------------------------
......@@ -78,12 +79,14 @@ public:
OUString GetEmail () const;
OUString GetSigningKey () const;
OUString GetEncryptionKey () const;
bool GetEncryptToSelf () const;
OUString GetFullName () const;
bool IsTokenReadonly (UserOptToken nToken) const;
OUString GetToken (UserOptToken nToken) const;
void SetToken (UserOptToken nToken, OUString const& rNewToken);
void SetBoolValue (UserOptToken nToken, bool bNewValue);
private:
class Impl;
......
......@@ -67,7 +67,8 @@ static o3tl::enumarray<UserOptToken, char const *> vOptionNames = {
"fathersname", // UserOptToken::FathersName
"apartment", // UserOptToken::Apartment
"signingkey", // UserOptToken::SigningKey
"encryptionkey" // UserOptToken::EncryptionKey
"encryptionkey", // UserOptToken::EncryptionKey
"encrypttoself" // UserOptToken::EncryptToSelf
};
std::weak_ptr<SvtUserOptions::Impl> 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<util::XChangesListener> m_xChangeListener;
uno::Reference<container::XNameAccess> m_xCfg;
uno::Reference<beans::XPropertySet> 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<OUString>( nToken );
}
void SvtUserOptions::Impl::SetToken (UserOptToken nToken, OUString const& sToken)
{
SetValue_Impl<OUString>( nToken, sToken );
}
bool SvtUserOptions::Impl::GetBoolValue (UserOptToken nToken) const
{
return GetValue_Impl<bool>( nToken );
}
void SvtUserOptions::Impl::SetBoolValue (UserOptToken nToken, bool& bNewValue)
{
SetValue_Impl<bool>( 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());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment