diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-03-04 12:20:38 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-03-04 16:01:34 +0100 |
commit | 4351ff1f12268a0b97413e811503ac65a51665eb (patch) | |
tree | 2d771c2c4c706224aed13f3a2674b0fd1536a8b3 /xmlsecurity/source | |
parent | 4225092a3586498f27dcb3cc54ae7f5b8ea53d4e (diff) |
xmlsecurity: extract signature removal logic from DigitalSignaturesDialog
So that it'll be possible to call that code without an active dialog,
from a headless unit test.
Change-Id: I1728a666ff5d84b337efd7e2b7eb68469896257a
Diffstat (limited to 'xmlsecurity/source')
-rw-r--r-- | xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx | 18 | ||||
-rw-r--r-- | xmlsecurity/source/helper/documentsignaturemanager.cxx | 17 |
2 files changed, 18 insertions, 17 deletions
diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx index 8e7806e12453..1dc929d1b1f3 100644 --- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx +++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx @@ -436,26 +436,10 @@ IMPL_LINK_NOARG_TYPED(DigitalSignaturesDialog, RemoveButtonHdl, Button*, void) try { sal_uInt16 nSelected = (sal_uInt16) reinterpret_cast<sal_uIntPtr>( m_pSignaturesLB->FirstSelected()->GetUserData() ); - maSignatureManager.maCurrentSignatureInformations.erase( maSignatureManager.maCurrentSignatureInformations.begin()+nSelected ); - - // Export all other signatures... - SignatureStreamHelper aStreamHelper = maSignatureManager.ImplOpenSignatureStream(css::embed::ElementModes::WRITE | css::embed::ElementModes::TRUNCATE, true); - Reference< css::io::XOutputStream > xOutputStream( - aStreamHelper.xSignatureStream, UNO_QUERY_THROW); - Reference< css::xml::sax::XWriter> xSaxWriter = - maSignatureManager.maSignatureHelper.CreateDocumentHandlerWithHeader( xOutputStream ); - - uno::Reference< xml::sax::XDocumentHandler> xDocumentHandler(xSaxWriter, UNO_QUERY_THROW); - size_t nInfos = maSignatureManager.maCurrentSignatureInformations.size(); - for( size_t n = 0 ; n < nInfos ; ++n ) - XMLSignatureHelper::ExportSignature( xDocumentHandler, maSignatureManager.maCurrentSignatureInformations[ n ] ); - - XMLSignatureHelper::CloseDocumentHandler( xDocumentHandler); + maSignatureManager.remove(nSelected); mbSignaturesChanged = true; - aStreamHelper = SignatureStreamHelper(); // release objects... - ImplFillSignaturesBox(); } catch ( uno::Exception& ) diff --git a/xmlsecurity/source/helper/documentsignaturemanager.cxx b/xmlsecurity/source/helper/documentsignaturemanager.cxx index 5127e3cb87b1..d5066bd0204a 100644 --- a/xmlsecurity/source/helper/documentsignaturemanager.cxx +++ b/xmlsecurity/source/helper/documentsignaturemanager.cxx @@ -290,6 +290,23 @@ bool DocumentSignatureManager::add(const uno::Reference<security::XCertificate>& return true; } +void DocumentSignatureManager::remove(sal_uInt16 nPosition) +{ + maCurrentSignatureInformations.erase(maCurrentSignatureInformations.begin() + nPosition); + + // Export all other signatures... + SignatureStreamHelper aStreamHelper = ImplOpenSignatureStream(embed::ElementModes::WRITE | embed::ElementModes::TRUNCATE, /*bTempStream=*/true); + uno::Reference<io::XOutputStream> xOutputStream(aStreamHelper.xSignatureStream, uno::UNO_QUERY_THROW); + uno::Reference<xml::sax::XWriter> xSaxWriter = maSignatureHelper.CreateDocumentHandlerWithHeader(xOutputStream); + + uno::Reference< xml::sax::XDocumentHandler> xDocumentHandler(xSaxWriter, uno::UNO_QUERY_THROW); + size_t nInfos = maCurrentSignatureInformations.size(); + for (size_t n = 0 ; n < nInfos ; ++n) + XMLSignatureHelper::ExportSignature(xDocumentHandler, maCurrentSignatureInformations[n]); + + XMLSignatureHelper::CloseDocumentHandler(xDocumentHandler); +} + void DocumentSignatureManager::read(bool bUseTempStream, bool bCacheLastSignature) { maCurrentSignatureInformations.clear(); |