summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/source/options/optgenrl.cxx33
-rw-r--r--include/unotools/useroptions.hxx6
-rw-r--r--unotools/source/config/useroptions.cxx6
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
{