summaryrefslogtreecommitdiff
path: root/xmlsecurity
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-12-29 18:11:33 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-01-01 16:15:58 +0000
commit2e00c0efbe03b3390200ea515da57aa57b0cd1ed (patch)
tree11ad62076620f8d7032030d339abb1129b6dfaed /xmlsecurity
parent504b79c6cae6e15793420a63384e59b5d1f7037a (diff)
move xmlsecurity .ui stuff to right place and adapt code to use it
Change-Id: If1f3dbbbef07004ec02a65563524c6c17dc16c00
Diffstat (limited to 'xmlsecurity')
-rw-r--r--xmlsecurity/AllLangResTarget_xsec.mk1
-rw-r--r--xmlsecurity/Module_xmlsecurity.mk3
-rw-r--r--xmlsecurity/UI_xmlsec.mk17
-rw-r--r--xmlsecurity/inc/xmlsecurity/certificatechooser.hxx13
-rw-r--r--xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx42
-rw-r--r--xmlsecurity/inc/xmlsecurity/global.hrc2
-rw-r--r--xmlsecurity/source/dialogs/certificatechooser.cxx57
-rw-r--r--xmlsecurity/source/dialogs/certificatechooser.src79
-rw-r--r--xmlsecurity/source/dialogs/dialogs.hrc35
-rw-r--r--xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx161
-rw-r--r--xmlsecurity/source/dialogs/digitalsignaturesdialog.src155
-rw-r--r--xmlsecurity/source/dialogs/helpids.hrc2
-rw-r--r--xmlsecurity/source/dialogs/resourcemanager.cxx6
-rw-r--r--xmlsecurity/source/dialogs/resourcemanager.hxx1
-rw-r--r--xmlsecurity/uiconfig/ui/digitalsignaturesdialog.ui371
-rw-r--r--xmlsecurity/uiconfig/ui/selectcertificatedialog.ui190
16 files changed, 716 insertions, 419 deletions
diff --git a/xmlsecurity/AllLangResTarget_xsec.mk b/xmlsecurity/AllLangResTarget_xsec.mk
index 0f7cb282737a..74d8d109b57f 100644
--- a/xmlsecurity/AllLangResTarget_xsec.mk
+++ b/xmlsecurity/AllLangResTarget_xsec.mk
@@ -50,7 +50,6 @@ $(eval $(call gb_SrsTarget_set_include,xmlsec/res,\
$(eval $(call gb_SrsTarget_add_files,xmlsec/res,\
xmlsecurity/source/dialogs/certificateviewer.src \
xmlsecurity/source/dialogs/macrosecurity.src \
- xmlsecurity/source/dialogs/certificatechooser.src \
xmlsecurity/source/dialogs/digitalsignaturesdialog.src \
xmlsecurity/source/component/warnbox.src \
))
diff --git a/xmlsecurity/Module_xmlsecurity.mk b/xmlsecurity/Module_xmlsecurity.mk
index 752f625135a0..d6f66ba91f54 100644
--- a/xmlsecurity/Module_xmlsecurity.mk
+++ b/xmlsecurity/Module_xmlsecurity.mk
@@ -32,7 +32,8 @@ $(eval $(call gb_Module_add_targets,xmlsecurity,\
AllLangResTarget_xsec \
Library_xmlsecurity \
Library_xsec_fw \
- $(if $(filter-out IOS ANDROID,$(OS)),Library_xsec_xmlsec) \
+ $(if $(filter-out IOS ANDROID,$(OS)),Library_xsec_xmlsec) \
+ UI_xmlsec \
))
#FIXME: ^^^, get nss&libxmlsec building on ios and android
diff --git a/xmlsecurity/UI_xmlsec.mk b/xmlsecurity/UI_xmlsec.mk
new file mode 100644
index 000000000000..c9c7232e64f4
--- /dev/null
+++ b/xmlsecurity/UI_xmlsec.mk
@@ -0,0 +1,17 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UI_UI,xmlsec))
+
+$(eval $(call gb_UI_add_uifiles,xmlsec,\
+ xmlsecurity/uiconfig/ui/digitalsignaturesdialog \
+ xmlsecurity/uiconfig/ui/selectcertificatedialog \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/xmlsecurity/inc/xmlsecurity/certificatechooser.hxx b/xmlsecurity/inc/xmlsecurity/certificatechooser.hxx
index 8e9b2bac314c..3ce61f2e38da 100644
--- a/xmlsecurity/inc/xmlsecurity/certificatechooser.hxx
+++ b/xmlsecurity/inc/xmlsecurity/certificatechooser.hxx
@@ -50,16 +50,9 @@ private:
cssu::Sequence< cssu::Reference< dcss::security::XCertificate > > maCerts;
SignatureInformations maCertsToIgnore;
- FixedText maHintFT;
- SvxSimpleTableContainer m_aCertLBContainer;
- SvxSimpleTable maCertLB;
-
- PushButton maViewBtn;
-
- FixedLine maBottomSepFL;
- OKButton maOKBtn;
- CancelButton maCancelBtn;
- HelpButton maHelpBtn;
+ SvxSimpleTable* m_pCertLB;
+ PushButton* m_pViewBtn;
+ OKButton* m_pOKBtn;
bool mbInitialized;
diff --git a/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx b/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx
index 14fbc9a7cf5f..390573d7c6e3 100644
--- a/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx
+++ b/xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx
@@ -67,28 +67,26 @@ private:
DocumentSignatureMode meSignatureMode;
css::uno::Sequence < css::uno::Sequence < css::beans::PropertyValue > > m_manifest;
- FixedText maHintDocFT;
- FixedText maHintBasicFT;
- FixedText maHintPackageFT;
- SvxSimpleTableContainer maSignaturesLBContainer;
- SvxSimpleTable maSignaturesLB;
- FixedImage maSigsValidImg;
- FixedInfo maSigsValidFI;
- FixedImage maSigsInvalidImg;
- FixedInfo maSigsInvalidFI;
- FixedImage maSigsNotvalidatedImg;
- FixedInfo maSigsNotvalidatedFI;
- FixedInfo maSigsOldSignatureFI;
-
- PushButton maViewBtn;
- PushButton maAddBtn;
- PushButton maRemoveBtn;
-
- FixedLine maBottomSepFL;
- OKButton maOKBtn;
- HelpButton maHelpBtn;
-
- ::rtl::OUString m_sODFVersion;
+ FixedText* m_pHintDocFT;
+ FixedText* m_pHintBasicFT;
+ FixedText* m_pHintPackageFT;
+ SvxSimpleTable* m_pSignaturesLB;
+ FixedImage* m_pSigsValidImg;
+ FixedText* m_pSigsValidFI;
+ FixedImage* m_pSigsInvalidImg;
+ FixedText* m_pSigsInvalidFI;
+ FixedImage* m_pSigsNotvalidatedImg;
+ FixedText* m_pSigsNotvalidatedFI;
+ FixedImage* m_pSigsOldSignatureImg;
+ FixedText* m_pSigsOldSignatureFI;
+
+ PushButton* m_pViewBtn;
+ PushButton* m_pAddBtn;
+ PushButton* m_pRemoveBtn;
+
+ PushButton* m_pCloseBtn;
+
+ OUString m_sODFVersion;
//Signals if the document contains already a document signature. This is only
//importent when we are signing macros and if the value is true.
bool m_bHasDocumentSignature;
diff --git a/xmlsecurity/inc/xmlsecurity/global.hrc b/xmlsecurity/inc/xmlsecurity/global.hrc
index 5dee8a7bf3d6..e4393b24f682 100644
--- a/xmlsecurity/inc/xmlsecurity/global.hrc
+++ b/xmlsecurity/inc/xmlsecurity/global.hrc
@@ -21,8 +21,6 @@
// global resource ids
-#define RID_XMLSECDLG_DIGSIG 1000
-#define RID_XMLSECDLG_CERTCHOOSER 1001
#define RID_XMLSECDLG_CERTVIEWER 1002
#define RID_XMLSECTP_GENERAL 1003
#define RID_XMLSECTP_DETAILS 1004
diff --git a/xmlsecurity/source/dialogs/certificatechooser.cxx b/xmlsecurity/source/dialogs/certificatechooser.cxx
index c5382da95a74..be940fb6ae40 100644
--- a/xmlsecurity/source/dialogs/certificatechooser.cxx
+++ b/xmlsecurity/source/dialogs/certificatechooser.cxx
@@ -29,16 +29,10 @@
#include <com/sun/star/security/CertificateCharacters.hpp>
#include <com/sun/star/security/SerialNumberAdapter.hpp>
-#include <dialogs.hrc>
#include <resourcemanager.hxx>
#include <vcl/msgbox.hxx>
#include "svtools/treelistentry.hxx"
-/* HACK: disable some warnings for MS-C */
-#ifdef _MSC_VER
-#pragma warning (disable : 4355) // 4355: this used in initializer-list
-#endif
-
using namespace ::com::sun::star;
#define INVAL_SEL 0xFFFF
@@ -47,7 +41,7 @@ sal_uInt16 CertificateChooser::GetSelectedEntryPos( void ) const
{
sal_uInt16 nSel = INVAL_SEL;
- SvTreeListEntry* pSel = maCertLB.FirstSelected();
+ SvTreeListEntry* pSel = m_pCertLB->FirstSelected();
if( pSel )
nSel = (sal_uInt16) ( sal_uIntPtr ) pSel->GetUserData();
@@ -55,25 +49,31 @@ sal_uInt16 CertificateChooser::GetSelectedEntryPos( void ) const
}
CertificateChooser::CertificateChooser( Window* _pParent, uno::Reference< uno::XComponentContext>& _rxCtx, uno::Reference< dcss::xml::crypto::XSecurityEnvironment >& _rxSecurityEnvironment, const SignatureInformations& _rCertsToIgnore )
- :ModalDialog ( _pParent, XMLSEC_RES( RID_XMLSECDLG_CERTCHOOSER ) )
- ,maCertsToIgnore( _rCertsToIgnore )
- ,maHintFT ( this, XMLSEC_RES( FT_HINT_SELECT ) )
- ,m_aCertLBContainer(this, XMLSEC_RES(LB_SIGNATURES))
- ,maCertLB(m_aCertLBContainer)
- ,maViewBtn ( this, XMLSEC_RES( BTN_VIEWCERT ) )
- ,maBottomSepFL ( this, XMLSEC_RES( FL_BOTTOM_SEP ) )
- ,maOKBtn ( this, XMLSEC_RES( BTN_OK ) )
- ,maCancelBtn ( this, XMLSEC_RES( BTN_CANCEL ) )
- ,maHelpBtn ( this, XMLSEC_RES( BTN_HELP ) )
+ : ModalDialog(_pParent, "SelectCertificateDialog", "xmlsec/ui/selectcertificatedialog.ui")
+ , maCertsToIgnore( _rCertsToIgnore )
{
- static long nTabs[] = { 3, 0, 30*CS_LB_WIDTH/100, 60*CS_LB_WIDTH/100 };
- maCertLB.SetTabs( &nTabs[0] );
- maCertLB.InsertHeaderEntry( XMLSEC_RES( STR_HEADERBAR ) );
- maCertLB.SetSelectHdl( LINK( this, CertificateChooser, CertificateHighlightHdl ) );
- maCertLB.SetDoubleClickHdl( LINK( this, CertificateChooser, CertificateSelectHdl ) );
- maViewBtn.SetClickHdl( LINK( this, CertificateChooser, ViewButtonHdl ) );
-
- FreeResource();
+ get(m_pOKBtn, "ok");
+ get(m_pViewBtn, "viewcert");
+
+ Size aControlSize(275, 122);
+ const long nControlWidth = aControlSize.Width();
+ aControlSize = LogicToPixel(aControlSize, MAP_APPFONT);
+ SvxSimpleTableContainer *pSignatures = get<SvxSimpleTableContainer>("signatures");
+ pSignatures->set_width_request(aControlSize.Width());
+ pSignatures->set_height_request(aControlSize.Height());
+
+ m_pCertLB = new SvxSimpleTable(*pSignatures);
+ static long nTabs[] = { 3, 0, 30*nControlWidth/100, 60*nControlWidth/100 };
+ m_pCertLB->SetTabs( &nTabs[0] );
+ OUStringBuffer sHeader;
+ sHeader.append(get<FixedText>("issuedto")->GetText())
+ .append("\t").append(get<FixedText>("issuedby")->GetText())
+ .append("\t").append(get<FixedText>("expiration")->GetText());
+ m_pCertLB->InsertHeaderEntry(sHeader.makeStringAndClear());
+
+ m_pCertLB->SetSelectHdl( LINK( this, CertificateChooser, CertificateHighlightHdl ) );
+ m_pCertLB->SetDoubleClickHdl( LINK( this, CertificateChooser, CertificateSelectHdl ) );
+ m_pViewBtn->SetClickHdl( LINK( this, CertificateChooser, ViewButtonHdl ) );
mxCtx = _rxCtx;
mxSecurityEnvironment = _rxSecurityEnvironment;
@@ -85,6 +85,7 @@ CertificateChooser::CertificateChooser( Window* _pParent, uno::Reference< uno::X
CertificateChooser::~CertificateChooser()
{
+ delete m_pCertLB;
}
short CertificateChooser::Execute()
@@ -178,7 +179,7 @@ void CertificateChooser::ImplInitialize()
sEntry.append( XmlSec::GetContentPart( maCerts[ nC ]->getIssuerName() ) );
sEntry.append( '\t' );
sEntry.append( XmlSec::GetDateString( maCerts[ nC ]->getNotValidAfter() ) );
- SvTreeListEntry* pEntry = maCertLB.InsertEntry( sEntry.makeStringAndClear() );
+ SvTreeListEntry* pEntry = m_pCertLB->InsertEntry( sEntry.makeStringAndClear() );
pEntry->SetUserData( ( void* )(sal_IntPtr)nC ); // missuse user data as index
}
@@ -201,8 +202,8 @@ uno::Reference< dcss::security::XCertificate > CertificateChooser::GetSelectedCe
IMPL_LINK_NOARG(CertificateChooser, CertificateHighlightHdl)
{
sal_Bool bEnable = GetSelectedCertificate().is();
- maViewBtn.Enable( bEnable );
- maOKBtn.Enable( bEnable );
+ m_pViewBtn->Enable( bEnable );
+ m_pOKBtn->Enable( bEnable );
return 0;
}
diff --git a/xmlsecurity/source/dialogs/certificatechooser.src b/xmlsecurity/source/dialogs/certificatechooser.src
deleted file mode 100644
index 18cb08b39b19..000000000000
--- a/xmlsecurity/source/dialogs/certificatechooser.src
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "dialogs.hrc"
-#include "helpids.hrc"
-
-ModalDialog RID_XMLSECDLG_CERTCHOOSER
-{
- HelpId = HID_XMLSEC_DLG_CERTCHOOSER;
- Size = MAP_APPFONT( CS_WIDTH, CS_HEIGHT );
- OutputSize = TRUE;
- Closeable = TRUE;
- Moveable = TRUE;
- SVLook = TRUE;
-
- Text [ en-US ] = "Select Certificate";
-
- FixedText FT_HINT_SELECT
- {
- Pos = MAP_APPFONT( CS_COL_0, CS_ROW_0 );
- Size = MAP_APPFONT( CS_COL_2-CS_COL_0, RSC_CD_FIXEDTEXT_HEIGHT );
- Text [ en-US ] = "Select the certificate you want to use for signing";
- };
- Control LB_SIGNATURES
- {
- HelpId = HID_XMLSEC_CTRL_CHOOSESIGNATURES;
- Pos = MAP_APPFONT( CS_COL_0, CS_ROW_1 );
- Size = MAP_APPFONT( CS_LB_WIDTH, CS_ROW_2-CS_ROW_1 );
- SVLook = TRUE;
- Border = TRUE;
- };
- String STR_HEADERBAR
- {
- Text [ en-US ] = "Issued to\tIssued by\tExpiration date";
- };
- PushButton BTN_VIEWCERT
- {
- HelpID = "xmlsecurity:PushButton:RID_XMLSECDLG_CERTCHOOSER:BTN_VIEWCERT";
- Pos = MAP_APPFONT( CS_COL_1, CS_ROW_3 );
- Size = MAP_APPFONT( CS_COL_2-CS_COL_1, RSC_CD_PUSHBUTTON_HEIGHT );
- Text [ en-US ] = "View Certificate...";
- };
- FixedLine FL_BOTTOM_SEP
- {
- Pos = MAP_APPFONT( 0, DLGS_BOTTOM_FL_Y( CS_HEIGHT ) );
- Size = MAP_APPFONT( CS_WIDTH, RSC_CD_FIXEDLINE_HEIGHT );
- };
- OKButton BTN_OK
- {
- DefButton = TRUE;
- Pos = MAP_APPFONT( DLGS_BOTTOM_OK_X( CS_WIDTH ), DLGS_BOTTOM_BTN_Y( CS_HEIGHT ) );
- Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
- };
- CancelButton BTN_CANCEL
- {
- Pos = MAP_APPFONT( DLGS_BOTTOM_CANCEL_X( CS_WIDTH ), DLGS_BOTTOM_BTN_Y( CS_HEIGHT ) );
- Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
- };
- HelpButton BTN_HELP
- {
- Pos = MAP_APPFONT( DLGS_BOTTOM_HELP_X( CS_WIDTH ), DLGS_BOTTOM_BTN_Y( CS_HEIGHT ) );
- Size = MAP_APPFONT( RSC_CD_PUSHBUTTON_WIDTH, RSC_CD_PUSHBUTTON_HEIGHT );
- };
-};
diff --git a/xmlsecurity/source/dialogs/dialogs.hrc b/xmlsecurity/source/dialogs/dialogs.hrc
index 4f5fe5ca0110..ea6097a3a830 100644
--- a/xmlsecurity/source/dialogs/dialogs.hrc
+++ b/xmlsecurity/source/dialogs/dialogs.hrc
@@ -61,43 +61,12 @@
#define DLGS_BOTTOM_OK_X(dlgw) (DLGS_BOTTOM_CANCEL_X(dlgw)-RSC_SP_CTRL_DESC_X-RSC_CD_PUSHBUTTON_WIDTH)
-// --------- dialog Digital Signatures ---------
-#define BTN_ADDCERT 2
-#define BTN_REMOVECERT 3
-#define FT_HINT_DOC 4
-#define FT_HINT_BASIC 5
-#define FT_HINT_PACK 6
-#define IMG_STATE_VALID 7
-#define FI_STATE_VALID 8
-#define IMG_STATE_BROKEN 9
-#define FI_STATE_BROKEN 10
-#define IMG_STATE_NOTVALIDATED 11
-#define FI_STATE_NOTVALIDATED 12
-#define FI_STATE_OLDSIGNATURE 16
-
-#define DS_BTNWIDTH_1 70
-
-// --------- dialog Ceritficate chooser ---------
-#define FT_HINT_SELECT 1
-
-#define CS_WIDTH DLGS_WIDTH
-#define CS_HEIGHT DLGS_HEIGHT
-#define CS_BTNWIDTH_1 DS_BTNWIDTH_1
+// --------- tab dialog Certificate viewer ---------
#define CS_COL_0 RSC_SP_DLG_INNERBORDER_LEFT
-#define CS_COL_2 (CS_WIDTH-RSC_SP_DLG_INNERBORDER_RIGHT)
-#define CS_COL_1 (CS_COL_2-CS_BTNWIDTH_1)
-
-#define CS_ROW_0 RSC_SP_DLG_INNERBORDER_TOP
-#define CS_ROW_1 (CS_ROW_0+RSC_CD_FIXEDTEXT_HEIGHT+RSC_SP_CTRL_DESC_X)
-#define CS_ROW_4 DLGS_BOTTOM_LAST_CTRL_L(CS_HEIGHT)
-#define CS_ROW_3 (CS_ROW_4-RSC_CD_PUSHBUTTON_HEIGHT)
-#define CS_ROW_2 (CS_ROW_3-RSC_SP_CTRL_Y)
-
+#define CS_COL_2 (DLGS_WIDTH-RSC_SP_DLG_INNERBORDER_RIGHT)
#define CS_LB_WIDTH (CS_COL_2-CS_COL_0)
-// --------- tab dialog Certificate viewer ---------
-
#define CV_COL_0 TD_SP_INNERBORDER_LEFT
#define CV_COL_1 (TP_WIDTH-RSC_SP_TBPG_INNERBORDER_RIGHT)
#define CV_ROW_0 RSC_SP_TBPG_INNERBORDER_TOP
diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
index ddd929a13e3e..cf8f692b8ecc 100644
--- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
+++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx
@@ -174,79 +174,78 @@ DigitalSignaturesDialog::DigitalSignaturesDialog(
Window* pParent,
uno::Reference< uno::XComponentContext >& rxCtx, DocumentSignatureMode eMode,
sal_Bool bReadOnly, const ::rtl::OUString& sODFVersion, bool bHasDocumentSignature)
- :ModalDialog ( pParent, XMLSEC_RES( RID_XMLSECDLG_DIGSIG ) )
- ,mxCtx ( rxCtx )
- ,maSignatureHelper ( rxCtx )
- ,meSignatureMode ( eMode )
- ,maHintDocFT ( this, XMLSEC_RES( FT_HINT_DOC ) )
- ,maHintBasicFT ( this, XMLSEC_RES( FT_HINT_BASIC ) )
- ,maHintPackageFT ( this, XMLSEC_RES( FT_HINT_PACK ) )
- ,maSignaturesLBContainer(this, XMLSEC_RES(LB_SIGNATURES))
- ,maSignaturesLB(maSignaturesLBContainer)
- ,maSigsValidImg ( this, XMLSEC_RES( IMG_STATE_VALID ) )
- ,maSigsValidFI ( this, XMLSEC_RES( FI_STATE_VALID ) )
- ,maSigsInvalidImg ( this, XMLSEC_RES( IMG_STATE_BROKEN ) )
- ,maSigsInvalidFI ( this, XMLSEC_RES( FI_STATE_BROKEN ) )
- ,maSigsNotvalidatedImg( this, XMLSEC_RES( IMG_STATE_NOTVALIDATED ) )
- ,maSigsNotvalidatedFI ( this, XMLSEC_RES( FI_STATE_NOTVALIDATED ) )
- ,maSigsOldSignatureFI ( this, XMLSEC_RES( FI_STATE_OLDSIGNATURE) )
- ,maViewBtn ( this, XMLSEC_RES( BTN_VIEWCERT ) )
- ,maAddBtn ( this, XMLSEC_RES( BTN_ADDCERT ) )
- ,maRemoveBtn ( this, XMLSEC_RES( BTN_REMOVECERT ) )
- ,maBottomSepFL ( this, XMLSEC_RES( FL_BOTTOM_SEP ) )
- ,maOKBtn ( this, XMLSEC_RES( BTN_OK ) )
- ,maHelpBtn ( this, XMLSEC_RES( BTN_HELP ) )
- ,m_sODFVersion (sODFVersion)
- ,m_bHasDocumentSignature(bHasDocumentSignature)
- ,m_bWarningShowSignMacro(false)
+ : ModalDialog(pParent, "DigitalSignaturesDialog", "xmlsec/ui/digitalsignaturesdialog.ui")
+ , mxCtx(rxCtx)
+ , maSignatureHelper(rxCtx)
+ , meSignatureMode(eMode)
+ , m_sODFVersion (sODFVersion)
+ , m_bHasDocumentSignature(bHasDocumentSignature)
+ , m_bWarningShowSignMacro(false)
{
- // #i48253# the tablistbox needs its own unique id
- maSignaturesLB.Window::SetUniqueId( HID_XMLSEC_TREE_SIGNATURESDLG );
- Size aControlSize( maSignaturesLB.GetSizePixel() );
- aControlSize = maSignaturesLB.PixelToLogic( aControlSize, MapMode( MAP_APPFONT ) );
+ get(m_pHintDocFT, "dochint");
+ get(m_pHintBasicFT, "macrohint");
+ get(m_pHintPackageFT, "packagehint");
+ get(m_pViewBtn, "view");
+ get(m_pAddBtn, "sign");
+ get(m_pRemoveBtn, "remove");
+ get(m_pCloseBtn, "close");
+ get(m_pSigsValidImg, "validimg");
+ get(m_pSigsValidFI, "validft");
+ get(m_pSigsInvalidImg, "invalidimg");
+ get(m_pSigsInvalidFI, "invalidft");
+ get(m_pSigsNotvalidatedImg, "notvalidatedimg");
+ get(m_pSigsNotvalidatedFI, "notvalidatedft");
+ get(m_pSigsOldSignatureImg, "oldsignatureimg");
+ get(m_pSigsOldSignatureFI, "oldsignatureft");
+
+ Size aControlSize(275, 109);
const long nControlWidth = aControlSize.Width();
- static long nTabs[] = { 4, 0, 6*nControlWidth/100, 36*nControlWidth/100, 74*nControlWidth/100 };
- maSignaturesLB.SetTabs( &nTabs[ 0 ] );
- maSignaturesLB.InsertHeaderEntry( XMLSEC_RES( STR_HEADERBAR ) );
+ aControlSize = LogicToPixel(aControlSize, MAP_APPFONT);
+ SvxSimpleTableContainer *pSignatures = get<SvxSimpleTableContainer>("signatures");
+ pSignatures->set_width_request(aControlSize.Width());
+ pSignatures->set_height_request(aControlSize.Height());
- maSigsNotvalidatedFI.SetText( XMLSEC_RES( STR_NO_INFO_TO_VERIFY ) );
+ m_pSignaturesLB = new SvxSimpleTable(*pSignatures);
+ // #i48253# the tablistbox needs its own unique id
+ m_pSignaturesLB->Window::SetUniqueId( HID_XMLSEC_TREE_SIGNATURESDLG );
+ static long nTabs[] = { 4, 0, 6*nControlWidth/100, 36*nControlWidth/100, 74*nControlWidth/100 };
+ m_pSignaturesLB->SetTabs( &nTabs[ 0 ] );
- FreeResource();
+ OUStringBuffer sHeader;
+ sHeader.append("\t").append(get<FixedText>("signed")->GetText())
+ .append("\t").append(get<FixedText>("issued")->GetText())
+ .append("\t").append(get<FixedText>("date")->GetText());
+ m_pSignaturesLB->InsertHeaderEntry(sHeader.makeStringAndClear());
mbVerifySignatures = true;
mbSignaturesChanged = false;
- maSignaturesLB.SetSelectHdl( LINK( this, DigitalSignaturesDialog, SignatureHighlightHdl ) );
- maSignaturesLB.SetDoubleClickHdl( LINK( this, DigitalSignaturesDialog, SignatureSelectHdl ) );
+ m_pSignaturesLB->SetSelectHdl( LINK( this, DigitalSignaturesDialog, SignatureHighlightHdl ) );
+ m_pSignaturesLB->SetDoubleClickHdl( LINK( this, DigitalSignaturesDialog, SignatureSelectHdl ) );
- maViewBtn.SetClickHdl( LINK( this, DigitalSignaturesDialog, ViewButtonHdl ) );
- maViewBtn.Disable();
+ m_pViewBtn->SetClickHdl( LINK( this, DigitalSignaturesDialog, ViewButtonHdl ) );
+ m_pViewBtn->Disable();
- maAddBtn.SetClickHdl( LINK( this, DigitalSignaturesDialog, AddButtonHdl ) );
+ m_pAddBtn->SetClickHdl( LINK( this, DigitalSignaturesDialog, AddButtonHdl ) );
if ( bReadOnly )
- maAddBtn.Disable();
+ m_pAddBtn->Disable();
- maRemoveBtn.SetClickHdl( LINK( this, DigitalSignaturesDialog, RemoveButtonHdl ) );
- maRemoveBtn.Disable();
+ m_pRemoveBtn->SetClickHdl( LINK( this, DigitalSignaturesDialog, RemoveButtonHdl ) );
+ m_pRemoveBtn->Disable();
- maOKBtn.SetClickHdl( LINK( this, DigitalSignaturesDialog, OKButtonHdl) );
+ m_pCloseBtn->SetClickHdl( LINK( this, DigitalSignaturesDialog, OKButtonHdl) );
switch( meSignatureMode )
{
- case SignatureModeDocumentContent: maHintDocFT.Show(); break;
- case SignatureModeMacros: maHintBasicFT.Show(); break;
- case SignatureModePackage: maHintPackageFT.Show(); break;
+ case SignatureModeDocumentContent: m_pHintDocFT->Show(); break;
+ case SignatureModeMacros: m_pHintBasicFT->Show(); break;
+ case SignatureModePackage: m_pHintPackageFT->Show(); break;
}
-
- // adjust fixed text to images
- XmlSec::AlignAndFitImageAndControl( maSigsValidImg, maSigsValidFI, 5 );
- XmlSec::AlignAndFitImageAndControl( maSigsInvalidImg, maSigsInvalidFI, 5 );
- XmlSec::AlignAndFitImageAndControl( maSigsNotvalidatedImg, maSigsNotvalidatedFI, 5 );
- XmlSec::AlignAndFitImageAndControl( maSigsNotvalidatedImg, maSigsOldSignatureFI, 5 );
}
DigitalSignaturesDialog::~DigitalSignaturesDialog()
{
+ delete m_pSignaturesLB;
}
sal_Bool DigitalSignaturesDialog::Init()
@@ -362,10 +361,10 @@ short DigitalSignaturesDialog::Execute()
IMPL_LINK_NOARG(DigitalSignaturesDialog, SignatureHighlightHdl)
{
- bool bSel = maSignaturesLB.FirstSelected() ? true : false;
- maViewBtn.Enable( bSel );
- if ( maAddBtn.IsEnabled() ) // not read only
- maRemoveBtn.Enable( bSel );
+ bool bSel = m_pSignaturesLB->FirstSelected() ? true : false;
+ m_pViewBtn->Enable( bSel );
+ if ( m_pAddBtn->IsEnabled() ) // not read only
+ m_pRemoveBtn->Enable( bSel );
return 0;
}
@@ -523,11 +522,11 @@ IMPL_LINK_NOARG(DigitalSignaturesDialog, RemoveButtonHdl)
{
if (!canRemove())
return 0;
- if( maSignaturesLB.FirstSelected() )
+ if( m_pSignaturesLB->FirstSelected() )
{
try
{
- sal_uInt16 nSelected = (sal_uInt16) (sal_uIntPtr) maSignaturesLB.FirstSelected()->GetUserData();
+ sal_uInt16 nSelected = (sal_uInt16) (sal_uIntPtr) m_pSignaturesLB->FirstSelected()->GetUserData();
maCurrentSignatureInformations.erase( maCurrentSignatureInformations.begin()+nSelected );
// Export all other signatures...
@@ -570,7 +569,7 @@ IMPL_LINK_NOARG(DigitalSignaturesDialog, StartVerifySignatureHdl)
void DigitalSignaturesDialog::ImplFillSignaturesBox()
{
- maSignaturesLB.Clear();
+ m_pSignaturesLB->Clear();
uno::Reference< ::com::sun::star::xml::crypto::XSecurityEnvironment > xSecEnv = maSignatureHelper.GetSecurityEnvironment();
uno::Reference<com::sun::star::security::XSerialNumberAdapter> xSerialNumberAdapter =
@@ -654,11 +653,11 @@ void DigitalSignaturesDialog::ImplFillSignaturesBox()
Image aImage;
if (!bSigValid)
{
- aImage = maSigsInvalidImg.GetImage();
+ aImage = m_pSigsInvalidImg->GetImage();
}
else if (bSigValid && !bCertValid)
{
- aImage = maSigsNotvalidatedImg.GetImage();
+ aImage = m_pSigsNotvalidatedImg->GetImage();
}
//Check if the signature is a "old" document signature, that is, which was created
//by an version of OOo previous to 3.2
@@ -666,25 +665,25 @@ void DigitalSignaturesDialog::ImplFillSignaturesBox()
&& bSigValid && bCertValid && !DocumentSignatureHelper::isOOo3_2_Signature(
maCurrentSignatureInformations[n]))
{
- aImage = maSigsNotvalidatedImg.GetImage();
+ aImage = m_pSigsNotvalidatedImg->GetImage();
bAllNewSignatures &= false;
}
else if (meSignatureMode == SignatureModeDocumentContent
&& bSigValid && bCertValid && DocumentSignatureHelper::isOOo3_2_Signature(
maCurrentSignatureInformations[n]))
{
- aImage = maSigsValidImg.GetImage();
+ aImage = m_pSigsValidImg->GetImage();
}
else if (meSignatureMode == SignatureModeMacros
&& bSigValid && bCertValid)
{
- aImage = maSigsValidImg.GetImage();
+ aImage = m_pSigsValidImg->GetImage();
}
- SvTreeListEntry* pEntry = maSignaturesLB.InsertEntry( OUString(), aImage, aImage );
- maSignaturesLB.SetEntryText( aSubject, pEntry, 1 );
- maSignaturesLB.SetEntryText( aIssuer, pEntry, 2 );
- maSignaturesLB.SetEntryText( aDateTimeStr, pEntry, 3 );
+ SvTreeListEntry* pEntry = m_pSignaturesLB->InsertEntry( OUString(), aImage, aImage );
+ m_pSignaturesLB->SetEntryText( aSubject, pEntry, 1 );
+ m_pSignaturesLB->SetEntryText( aIssuer, pEntry, 2 );
+ m_pSignaturesLB->SetEntryText( aDateTimeStr, pEntry, 3 );
pEntry->SetUserData( ( void* ) n ); // missuse user data as index
}
}
@@ -693,23 +692,27 @@ void DigitalSignaturesDialog::ImplFillSignaturesBox()
bool bAllCertsValid = (nValidCerts == nInfos);
bool bShowValidState = nInfos && (bAllSigsValid && bAllCertsValid && bAllNewSignatures);
- bool bShowNotValidatedState = nInfos && (bAllSigsValid && (!bAllCertsValid || !bAllNewSignatures));
+ m_pSigsValidImg->Show( bShowValidState);
+ m_pSigsValidFI->Show( bShowValidState );
+
bool bShowInvalidState = nInfos && !bAllSigsValid;
- maSigsValidImg.Show( bShowValidState);
- maSigsValidFI.Show( bShowValidState );
- maSigsInvalidImg.Show( bShowInvalidState );
- maSigsInvalidFI.Show( bShowInvalidState );
+ m_pSigsInvalidImg->Show( bShowInvalidState );
+ m_pSigsInvalidFI->Show( bShowInvalidState );
+
+ bool bShowNotValidatedState = nInfos && bAllSigsValid && !bAllCertsValid;
+
+ m_pSigsNotvalidatedImg->Show(bShowNotValidatedState);
+ m_pSigsNotvalidatedFI->Show(bShowNotValidatedState);
- maSigsNotvalidatedImg.Show(bShowNotValidatedState);
//bAllNewSignatures is always true if we are not in document mode
- maSigsNotvalidatedFI.Show(nInfos && bAllSigsValid && ! bAllCertsValid);
- maSigsOldSignatureFI.Show(nInfos && bAllSigsValid && bAllCertsValid && !bAllNewSignatures);
+ bool bShowOldSignature = nInfos && bAllSigsValid && bAllCertsValid && !bAllNewSignatures;
+ m_pSigsOldSignatureImg->Show(bShowOldSignature);
+ m_pSigsOldSignatureFI->Show(bShowOldSignature);
SignatureHighlightHdl( NULL );
}
-
//If bUseTempStream is true then the temporary signature stream is used.
//Otherwise the real signature stream is used.
void DigitalSignaturesDialog::ImplGetSignatureInformations(bool bUseTempStream)
@@ -734,9 +737,9 @@ void DigitalSignaturesDialog::ImplGetSignatureInformations(bool bUseTempStream)
void DigitalSignaturesDialog::ImplShowSignaturesDetails()
{
- if( maSignaturesLB.FirstSelected() )
+ if( m_pSignaturesLB->FirstSelected() )
{
- sal_uInt16 nSelected = (sal_uInt16) (sal_uIntPtr) maSignaturesLB.FirstSelected()->GetUserData();
+ sal_uInt16 nSelected = (sal_uInt16) (sal_uIntPtr) m_pSignaturesLB->FirstSelected()->GetUserData();
const SignatureInformation& rInfo = maCurrentSignatureInformations[ nSelected ];
css::uno::Reference<css::xml::crypto::XSecurityEnvironment > xSecEnv =
maSignatureHelper.GetSecurityEnvironment();
diff --git a/xmlsecurity/source/dialogs/digitalsignaturesdialog.src b/xmlsecurity/source/dialogs/digitalsignaturesdialog.src
index 00e33e7834a0..64103fe5c3b7 100644
--- a/xmlsecurity/source/dialogs/digitalsignaturesdialog.src
+++ b/xmlsecurity/source/dialogs/digitalsignaturesdialog.src
@@ -20,161 +20,6 @@
#include "helpids.hrc"
#include "digitalsignaturesdialog.hrc"
-ModalDialog RID_XMLSECDLG_DIGSIG
-{
- HelpId = HID_XMLSEC_DLG_DIGSIG;
- Size = MAP_APPFONT( 234, 191 );
- OutputSize = TRUE;
- Closeable = TRUE;
- Moveable = TRUE;
- SVLook = TRUE;
-
- Text [ en-US ] = "Digital Signatures";
-
- FixedText FT_HINT_DOC
- {
- Pos = MAP_APPFONT( 6, 3 );
- Size = MAP_APPFONT( 222, 8 );
- Hide = TRUE;
- Text [ en-US ] = "The following have signed the document content:";
- };
- FixedText FT_HINT_BASIC
- {
- Pos = MAP_APPFONT( 6, 3 );
- Size = MAP_APPFONT( 222, 8 );
- Hide = TRUE;
- Text [ en-US ] = "The following have signed the document macro:";
- };
- FixedText FT_HINT_PACK
- {
- Pos = MAP_APPFONT( 6, 3 );
- Size = MAP_APPFONT( 222, 8 );
- Hide = TRUE;
- Text [ en-US ] = "The following have signed this package:";
- };
- Control LB_SIGNATURES
- {
- HelpId = HID_XMLSEC_CTRL_SIGNATURESDLG;
- Pos = MAP_APPFONT( 6, 14 );
- Size = MAP_APPFONT( 222, 109 );
- SVLook = TRUE;
- Border = TRUE;
- };
- String STR_HEADERBAR
- {
- Text [ en-US ] = "\tSigned by\tDigital ID issued by\tDate";
- };
- String STR_VALID_SIGNATURE
- {
- Text [ en-US ] = "Valid signature";
- };
- String STR_NO_INFO_TO_VERIFY
- {
- Text [ en-US ] = "Certificate could not be validated";
- };
- String STR_INVALID_SIGNATURE
- {
- Text [ en-US ] = "The signatures in this document are invalid";
- };
-
- FixedImage IMG_STATE_VALID
- {
- Pos = MAP_APPFONT( 6, 127 );
- Size = MAP_APPFONT( 33, 22 );
- Fixed = Image
- {
- ImageBitmap = Bitmap { File = "signet_11x16.png"; };
- MaskColor = STD_MASKCOLOR;
- };
- };
- FixedText FI_STATE_VALID
- {
- Pos = MAP_APPFONT( 6, 127 );
- Size = MAP_APPFONT( 222, 8 );
- Hide = TRUE;
- Text [ en-US ] = "The signatures in this document are valid";
- };
- FixedText FI_STATE_OLDSIGNATURE
- {
- Pos = MAP_APPFONT( 6, 127 );
- Size = MAP_APPFONT( 222, 8 );
- Hide = TRUE;
- Text [ en-US ] = "Not all parts of the document are signed";
- };
- FixedImage IMG_STATE_BROKEN
- {
- Pos = MAP_APPFONT( 6, 127 );
- Size = MAP_APPFONT( 33, 22 );
- Fixed = Image
- {
- ImageBitmap = Bitmap { File = "caution_11x16.png"; };
- MaskColor = STD_MASKCOLOR;
- };
- };
- FixedText FI_STATE_BROKEN
- {
- Pos = MAP_APPFONT( 6, 127 );
- Size = MAP_APPFONT( 222, 8 );
- Hide = TRUE;
- Text [ en-US ] = "The signatures in this document are invalid";
- };
- FixedImage IMG_STATE_NOTVALIDATED
- {
- Pos = MAP_APPFONT( 6, 127 );
- Size = MAP_APPFONT( 33, 22 );
- Fixed = Image
- {
- ImageBitmap = Bitmap { File = "notcertificate_16.png"; };
- MaskColor = STD_MASKCOLOR;
- };
- };
- FixedText FI_STATE_NOTVALIDATED
- {
- Pos = MAP_APPFONT( 6, 127 );
- Size = MAP_APPFONT( 222, 8 );
- Hide = TRUE;
- };
- PushButton BTN_VIEWCERT
- {
- HelpID = "xmlsecurity:PushButton:RID_XMLSECDLG_DIGSIG:BTN_VIEWCERT";
- Pos = MAP_APPFONT( 6, 142 );
- Size = MAP_APPFONT( 70, 14 );
- Text [ en-US ] = "View Certificate...";
- };
- PushButton BTN_ADDCERT
- {
- HelpID = "xmlsecurity:PushButton:RID_XMLSECDLG_DIGSIG:BTN_ADDCERT";
- Pos = MAP_APPFONT( 82, 142 );
- Size = MAP_APPFONT( 70, 14 );
- Text [ en-US ] = "Sign Document...";
- };
- PushButton BTN_REMOVECERT
- {
- HelpID = "xmlsecurity:PushButton:RID_XMLSECDLG_DIGSIG:BTN_REMOVECERT";
- Pos = MAP_APPFONT( 158, 142 );
- Size = MAP_APPFONT( 70, 14 );
- Text [ en-US ] = "Remove";
- };
- FixedLine FL_BOTTOM_SEP
- {
- Pos = MAP_APPFONT( 0, 160 );
- Size = MAP_APPFONT( 234, 8 );
- };
- OKButton BTN_OK
- {
- DefButton = TRUE;
- Pos = MAP_APPFONT( 178, 171 );
- Size = MAP_APPFONT( 50, 14 );
- Text [ en-US ] = "Close";
- };
- HelpButton BTN_HELP
- {
- Pos = MAP_APPFONT( 6, 171 );
- Size = MAP_APPFONT( 50, 14 );
- };
-};
-
-
ErrorBox RID_XMLSECDLG_OLD_ODF_FORMAT
{
Buttons = WB_OK ;
diff --git a/xmlsecurity/source/dialogs/helpids.hrc b/xmlsecurity/source/dialogs/helpids.hrc
index 490d95547683..8a3dde570e42 100644
--- a/xmlsecurity/source/dialogs/helpids.hrc
+++ b/xmlsecurity/source/dialogs/helpids.hrc
@@ -30,9 +30,7 @@
#define HID_XMLSEC_TP_GENERAL "XMLSECURITY_HID_XMLSEC_TP_GENERAL"
#define HID_XMLSEC_TP_DETAILS "XMLSECURITY_HID_XMLSEC_TP_DETAILS"
#define HID_XMLSEC_TP_CERTPATH "XMLSECURITY_HID_XMLSEC_TP_CERTPATH"
-#define HID_XMLSEC_DLG_DIGSIG "XMLSECURITY_HID_XMLSEC_DLG_DIGSIG"
#define HID_XMLSEC_TP_MACROWARN "XMLSECURITY_HID_XMLSEC_TP_MACROWARN"
-#define HID_XMLSEC_DLG_CERTCHOOSER "XMLSECURITY_HID_XMLSEC_DLG_CERTCHOOSER"
#define HID_XMLSEC_CTRL_TRUSTSOURCES "XMLSECURITY_HID_XMLSEC_CTRL_TRUSTSOURCES"
#define HID_XMLSEC_CTRL_ELEMENTS "XMLSECURITY_HID_XMLSEC_CTRL_ELEMENTS"
#define HID_XMLSEC_CTRL_VIEWSIGNATURES "XMLSECURITY_HID_XMLSEC_CTRL_VIEWSIGNATURES"
diff --git a/xmlsecurity/source/dialogs/resourcemanager.cxx b/xmlsecurity/source/dialogs/resourcemanager.cxx
index aa920d5491b4..ab85dca66dea 100644
--- a/xmlsecurity/source/dialogs/resourcemanager.cxx
+++ b/xmlsecurity/source/dialogs/resourcemanager.cxx
@@ -381,12 +381,6 @@ vector< pair< OUString, OUString> > parseDN(const OUString& rRawString)
AlignAfterImage( _rImage, static_cast< Control& >( _rFI ), _nXOffset );
ShrinkToFitWidth( _rFI );
}
-
- void AlignAndFitImageAndControl( FixedImage& _rImage, FixedInfo& _rFI, long _nXOffset )
- {
- _rImage.SetSizePixel( _rImage.GetImage().GetSizePixel() );
- AlignAfterImage( _rImage, _rFI, _nXOffset );
- }
}
diff --git a/xmlsecurity/source/dialogs/resourcemanager.hxx b/xmlsecurity/source/dialogs/resourcemanager.hxx
index aa893fa4353c..d23c656872a9 100644
--- a/xmlsecurity/source/dialogs/resourcemanager.hxx
+++ b/xmlsecurity/source/dialogs/resourcemanager.hxx
@@ -52,7 +52,6 @@ namespace XmlSec
long ShrinkToFitWidth( Control& _rCtrl, long _nOffs = 0 ); // return = new width
void AlignAfterImage( const FixedImage& _rImage, Control& _rCtrl, long _nXOffset = 0 );
void AlignAfterImage( const FixedImage& _rImage, FixedInfo& _rFI, long _nXOffset = 0 );
- void AlignAndFitImageAndControl( FixedImage& _rImage, FixedInfo& _rFI, long _nXOffset = 0 );
}
#define XMLSEC_RES(id) ResId(id,*XmlSec::GetResMgr())
diff --git a/xmlsecurity/uiconfig/ui/digitalsignaturesdialog.ui b/xmlsecurity/uiconfig/ui/digitalsignaturesdialog.ui
new file mode 100644
index 000000000000..a56bc24e0f20
--- /dev/null
+++ b/xmlsecurity/uiconfig/ui/digitalsignaturesdialog.ui
@@ -0,0 +1,371 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkDialog" id="DigitalSignaturesDialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Digital Signatures</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area1">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="help">
+ <property name="label">gtk-help</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ <property name="secondary">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="close">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="dochint">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">The following have signed the document content: </property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="svxcorelo:SvxSimpleTableContainer" id="signatures">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButtonBox" id="buttonbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <property name="homogeneous">True</property>
+ <property name="layout_style">spread</property>
+ <child>
+ <object class="GtkButton" id="view">
+ <property name="label" translatable="yes">View Certificate...</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="sign">
+ <property name="label" translatable="yes">Sign Document...</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="remove">
+ <property name="label" translatable="yes">Remove</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">6</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="signed">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Signed by </property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="issued">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Digital ID issued by </property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="date">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Date</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="macrohint">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">The following have signed the document macro:</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="packagehint">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">The following have signed this package:</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="validft">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="hexpand">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">The signatures in this document are valid</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="validimg">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="pixbuf">xmlsecurity/res/signet_11x16.png</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="invalidft">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="hexpand">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">The signatures in this document are invalid</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="oldsignatureft">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="hexpand">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Not all parts of the document are signed</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="notvalidatedft">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="hexpand">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Certificate could not be validated</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="invalidimg">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="pixbuf">xmlsecurity/res/caution_11x16.png</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="oldsignatureimg">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="pixbuf">xmlsecurity/res/caution_11x16.png</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkImage" id="notvalidatedimg">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="pixbuf">xmlsecurity/res/notcertificate_16.png</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">5</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">help</action-widget>
+ <action-widget response="0">close</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/xmlsecurity/uiconfig/ui/selectcertificatedialog.ui b/xmlsecurity/uiconfig/ui/selectcertificatedialog.ui
new file mode 100644
index 000000000000..26128ee4d4ac
--- /dev/null
+++ b/xmlsecurity/uiconfig/ui/selectcertificatedialog.ui
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <!-- interface-requires gtk+ 3.0 -->
+ <object class="GtkDialog" id="SelectCertificateDialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Select Certificate</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area1">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="ok">
+ <property name="label">gtk-ok</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="cancel">
+ <property name="label">gtk-cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="help">
+ <property name="label">gtk-help</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="grid1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="row_spacing">12</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkGrid" id="grid2">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="hexpand">True</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="issuedto">
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Issued to </property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="issuedby">
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Issued by</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="expiration">
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Expiration date</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="ypad">1</property>
+ <property name="label" translatable="yes">Select the certificate you want to use for signing </property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="svxcorelo:SvxSimpleTableContainer" id="signatures">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="viewcert">
+ <property name="label" translatable="yes">View Certificate...</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="halign">end</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="0">ok</action-widget>
+ <action-widget response="0">cancel</action-widget>
+ <action-widget response="0">help</action-widget>
+ </action-widgets>
+ </object>
+</interface>