diff options
-rw-r--r-- | cui/source/options/optgenrl.cxx | 33 | ||||
-rw-r--r-- | include/unotools/useroptions.hxx | 6 | ||||
-rw-r--r-- | unotools/source/config/useroptions.cxx | 6 |
3 files changed, 41 insertions, 4 deletions
diff --git a/cui/source/options/optgenrl.cxx b/cui/source/options/optgenrl.cxx index b63fbf580b69..83a98e60c7b0 100644 --- a/cui/source/options/optgenrl.cxx +++ b/cui/source/options/optgenrl.cxx @@ -428,10 +428,29 @@ bool SvxGeneralTabPage::GetData_Impl() ); // modified? + bool bModified = false; for (auto const & i: vFields) + { if (i->pEdit->IsValueChangedFromSaved()) - return true; - return false; + { + bModified = true; + break; + } + } + +#if HAVE_FEATURE_GPGME + OUString aSK = m_pSigningKeyLB->GetSelectedEntryPos() == 0 ? OUString() //i.e. no key + : m_pSigningKeyLB->GetSelectedEntry(); + OUString aEK = m_pEncryptionKeyLB->GetSelectedEntryPos() == 0 ? OUString() + : m_pEncryptionKeyLB->GetSelectedEntry(); + aUserOpt.SetToken( UserOptToken::SigningKey, aSK ); + aUserOpt.SetToken( UserOptToken::EncryptionKey, aEK ); + + bModified |= m_pSigningKeyLB->IsValueChangedFromSaved(); + bModified |= m_pEncryptionKeyLB->IsValueChangedFromSaved(); +#endif + + return bModified; } @@ -461,6 +480,16 @@ void SvxGeneralTabPage::SetData_Impl() // saving for (auto const & i: vFields) i->pEdit->SaveValue(); + +#if HAVE_FEATURE_GPGME + OUString aSK = aUserOpt.GetToken(UserOptToken::SigningKey); + aSK.isEmpty() ? m_pSigningKeyLB->SelectEntryPos( 0 ) //i.e. 'No Key' + : m_pSigningKeyLB->SelectEntry( aSK ); + + OUString aEK = aUserOpt.GetToken(UserOptToken::EncryptionKey); + aEK.isEmpty() ? m_pEncryptionKeyLB->SelectEntryPos( 0 ) //i.e. 'No Key' + : m_pEncryptionKeyLB->SelectEntry( aEK ); +#endif } diff --git a/include/unotools/useroptions.hxx b/include/unotools/useroptions.hxx index f82201fdd28a..946ba8d34c10 100644 --- a/include/unotools/useroptions.hxx +++ b/include/unotools/useroptions.hxx @@ -45,7 +45,9 @@ enum class UserOptToken Zip = 14, FathersName = 15, Apartment = 16, - LAST = Apartment, + SigningKey = 17, + EncryptionKey = 18, + LAST = EncryptionKey, }; // class SvtUserOptions -------------------------------------------------- @@ -74,6 +76,8 @@ public: OUString GetTelephoneWork () const; OUString GetFax () const; OUString GetEmail () const; + OUString GetSigningKey () const; + OUString GetEncryptionKey () const; OUString GetFullName () const; diff --git a/unotools/source/config/useroptions.cxx b/unotools/source/config/useroptions.cxx index 31ce8c9893d0..e19168da2885 100644 --- a/unotools/source/config/useroptions.cxx +++ b/unotools/source/config/useroptions.cxx @@ -65,7 +65,9 @@ static o3tl::enumarray<UserOptToken, char const *> vOptionNames = { "initials", // UserOptToken::ID "postalcode", // UserOptToken::Zip "fathersname", // UserOptToken::FathersName - "apartment" // UserOptToken::Apartment + "apartment", // UserOptToken::Apartment + "signingkey", // UserOptToken::SigningKey + "encryptionkey" // UserOptToken::EncryptionKey }; std::weak_ptr<SvtUserOptions::Impl> SvtUserOptions::xSharedImpl; @@ -276,6 +278,8 @@ OUString SvtUserOptions::GetTelephoneHome () const { return GetToken(UserOptTok OUString SvtUserOptions::GetTelephoneWork () const { return GetToken(UserOptToken::TelephoneWork); } OUString SvtUserOptions::GetFax () const { return GetToken(UserOptToken::Fax); } OUString SvtUserOptions::GetEmail () const { return GetToken(UserOptToken::Email); } +OUString SvtUserOptions::GetSigningKey () const { return GetToken(UserOptToken::SigningKey); } +OUString SvtUserOptions::GetEncryptionKey () const { return GetToken(UserOptToken::EncryptionKey); } bool SvtUserOptions::IsTokenReadonly (UserOptToken nToken) const { |