diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2021-10-20 11:01:41 +0200 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2021-10-29 14:47:30 +0200 |
commit | f5e65834c77162ac12d8bbcec82972e055aa3084 (patch) | |
tree | 6c2d01bb86d77a515caebc42d14d35d16084bf57 /xmlsecurity/source | |
parent | 65dc39563a2907f791d3fdda322a861590f5564b (diff) |
jsdialog: enable Digital Signatures dialog
In LOK case run it in the readonly mode.
In readonly mode we can run it asynchronously.
Change-Id: I721dd14fa23d4e30255dd976e0cc2a4f30470a3b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124058
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'xmlsecurity/source')
-rw-r--r-- | xmlsecurity/source/component/documentdigitalsignatures.cxx | 19 | ||||
-rw-r--r-- | xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx | 14 |
2 files changed, 26 insertions, 7 deletions
diff --git a/xmlsecurity/source/component/documentdigitalsignatures.cxx b/xmlsecurity/source/component/documentdigitalsignatures.cxx index b9066ea92cac..b4d8d7234a8c 100644 --- a/xmlsecurity/source/component/documentdigitalsignatures.cxx +++ b/xmlsecurity/source/component/documentdigitalsignatures.cxx @@ -433,19 +433,26 @@ bool DocumentDigitalSignatures::ImplViewSignatures( DocumentSignatureMode eMode, bool bReadOnly ) { bool bChanges = false; - DigitalSignaturesDialog aSignaturesDialog( + auto xSignaturesDialog = std::make_shared<DigitalSignaturesDialog>( Application::GetFrameWeld(mxParentWindow), mxCtx, eMode, bReadOnly, m_sODFVersion, m_bHasDocumentSignature); - bool bInit = aSignaturesDialog.Init(); + bool bInit = xSignaturesDialog->Init(); SAL_WARN_IF( !bInit, "xmlsecurity.comp", "Error initializing security context!" ); if ( bInit ) { - aSignaturesDialog.SetStorage(rxStorage); + xSignaturesDialog->SetStorage(rxStorage); - aSignaturesDialog.SetSignatureStream( xSignStream ); - if (aSignaturesDialog.run() == RET_OK) + xSignaturesDialog->SetSignatureStream( xSignStream ); + + if (bReadOnly) + { + xSignaturesDialog->beforeRun(); + weld::DialogController::runAsync(xSignaturesDialog, [] (sal_Int32) {}); + return false; + } + else if (xSignaturesDialog->run() == RET_OK) { - if (aSignaturesDialog.SignaturesChanged()) + if (xSignaturesDialog->SignaturesChanged()) { bChanges = true; // If we have a storage and no stream, we are responsible for commit diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx index 7c6ab0ef3be1..ac31d5ba3875 100644 --- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx +++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx @@ -57,6 +57,7 @@ #include <bitmaps.hlst> #include <strings.hrc> #include <resourcemanager.hxx> +#include <comphelper/lok.hxx> #include <comphelper/xmlsechelper.hxx> #include <comphelper/processfactory.hxx> @@ -193,6 +194,13 @@ DigitalSignaturesDialog::DigitalSignaturesDialog( m_xHintPackageFT->show(); break; } + + if (comphelper::LibreOfficeKit::isActive()) + { + m_xAddBtn->hide(); + m_xRemoveBtn->hide(); + m_xStartCertMgrBtn->hide(); + } } DigitalSignaturesDialog::~DigitalSignaturesDialog() @@ -313,7 +321,7 @@ bool DigitalSignaturesDialog::canRemove() return (bRet && canAddRemove()); } -short DigitalSignaturesDialog::run() +void DigitalSignaturesDialog::beforeRun() { // Verify Signatures and add certificates to ListBox... mbVerifySignatures = true; @@ -338,7 +346,11 @@ short DigitalSignaturesDialog::run() // Only verify once, content will not change. // But for refreshing signature information, StartVerifySignatureHdl will be called after each add/remove mbVerifySignatures = false; +} +short DigitalSignaturesDialog::run() +{ + beforeRun(); return GenericDialogController::run(); } |