From d416fa9a212e0421a7c925507ddee07132f3cab3 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Fri, 16 Mar 2018 12:02:17 +0000 Subject: weld SignatureLineDialog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I14cbc7e1aa70696abdeb21eae31176566f17e066 Reviewed-on: https://gerrit.libreoffice.org/51422 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sw/inc/swabstdlg.hxx | 2 +- sw/source/ui/dialog/swdlgfact.cxx | 9 ++-- sw/source/ui/dialog/swdlgfact.hxx | 16 ++++++- sw/source/ui/dialog/swuiexp.cxx | 1 + sw/source/uibase/dialog/SignatureLineDialog.cxx | 58 ++++++++++++------------- sw/source/uibase/inc/SignatureLineDialog.hxx | 29 ++++++------- sw/source/uibase/uiview/viewdlg2.cxx | 8 ++-- sw/uiconfig/swriter/ui/signatureline.ui | 54 +++++++++++++++-------- 8 files changed, 101 insertions(+), 76 deletions(-) diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx index 0c9a77babacd..7c7861797d03 100644 --- a/sw/inc/swabstdlg.hxx +++ b/sw/inc/swabstdlg.hxx @@ -400,7 +400,7 @@ public: SwCharDlgMode nDialogMode, const OUString* pFormatStr = nullptr) = 0; virtual VclPtr CreateSwConvertTableDlg(SwView& rView, bool bToTable) = 0; virtual VclPtr CreateSwCaptionDialog ( vcl::Window *pParent, SwView &rV) = 0; - virtual VclPtr CreateSignatureLineDialog(vcl::Window* pParent, SwView& rView) = 0; + virtual VclPtr CreateSignatureLineDialog(weld::Window* pParent, SwView& rView) = 0; virtual VclPtr CreateSwInsertDBColAutoPilot(SwView& rView, css::uno::Reference< css::sdbc::XDataSource> rxSource, diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx index 4ddbae92c8b3..b0724dcf18e7 100644 --- a/sw/source/ui/dialog/swdlgfact.cxx +++ b/sw/source/ui/dialog/swdlgfact.cxx @@ -104,6 +104,10 @@ short AbstractSwSortDlg_Impl::Execute() { return m_xDlg->execute(); } +short AbstractSignatureLineDialog_Impl::Execute() +{ + return m_xDlg->execute(); +} IMPL_ABSTDLG_BASE(AbstractTabDialog_Impl); short AbstractSwConvertTableDlg_Impl::Execute() { @@ -724,10 +728,9 @@ VclPtr SwAbstractDialogFactory_Impl::CreateSwCaptionDialog ( return VclPtr::Create( pDlg ); } -VclPtr SwAbstractDialogFactory_Impl::CreateSignatureLineDialog(vcl::Window* pParent, SwView& rV) +VclPtr SwAbstractDialogFactory_Impl::CreateSignatureLineDialog(weld::Window* pParent, SwView& rV) { - VclPtr pDlg = VclPtr::Create(pParent, rV); - return VclPtr::Create(pDlg); + return VclPtr::Create(new SignatureLineDialog(pParent, rV)); } VclPtr SwAbstractDialogFactory_Impl::CreateSwInsertDBColAutoPilot( SwView& rView, diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx index b24f08177d0d..33db10f8cb49 100644 --- a/sw/source/ui/dialog/swdlgfact.hxx +++ b/sw/source/ui/dialog/swdlgfact.hxx @@ -26,6 +26,7 @@ class SwAsciiFilterDlg; class Dialog; class SwBreakDlg; class SwSortDlg; +class SignatureLineDialog; class SfxTabDialog; class SwConvertTableDlg; class SwInsertDBColAutoPilot; @@ -114,6 +115,18 @@ public: virtual short Execute() override; }; +class AbstractSignatureLineDialog_Impl : public VclAbstractDialog +{ +protected: + std::unique_ptr m_xDlg; +public: + explicit AbstractSignatureLineDialog_Impl(SignatureLineDialog* p) + : m_xDlg(p) + { + } + virtual short Execute() override; +}; + class AbstractSwBreakDlg_Impl : public AbstractSwBreakDlg { protected: @@ -438,8 +451,7 @@ public: SwCharDlgMode nDialogMode, const OUString* pFormatStr = nullptr) override; virtual VclPtr CreateSwConvertTableDlg(SwView& rView, bool bToTable) override; virtual VclPtr CreateSwCaptionDialog ( vcl::Window *pParent, SwView &rV) override; - virtual VclPtr CreateSignatureLineDialog(vcl::Window* pParent, - SwView& rView) override; + virtual VclPtr CreateSignatureLineDialog(weld::Window* pParent, SwView& rView) override; virtual VclPtr CreateSwInsertDBColAutoPilot(SwView& rView, css::uno::Reference< css::sdbc::XDataSource> rxSource, diff --git a/sw/source/ui/dialog/swuiexp.cxx b/sw/source/ui/dialog/swuiexp.cxx index b6f412435c33..f938df0b3ff0 100644 --- a/sw/source/ui/dialog/swuiexp.cxx +++ b/sw/source/ui/dialog/swuiexp.cxx @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include diff --git a/sw/source/uibase/dialog/SignatureLineDialog.cxx b/sw/source/uibase/dialog/SignatureLineDialog.cxx index c7832e4078e9..815636d86ab9 100644 --- a/sw/source/uibase/dialog/SignatureLineDialog.cxx +++ b/sw/source/uibase/dialog/SignatureLineDialog.cxx @@ -37,16 +37,18 @@ using namespace css::view; using namespace css::drawing; using namespace css::graphic; -SignatureLineDialog::SignatureLineDialog(vcl::Window* pParent, SwView& rView) - : SvxStandardDialog(pParent, "SignatureLineDialog", "modules/swriter/ui/signatureline.ui") +SignatureLineDialog::SignatureLineDialog(weld::Window* pParent, SwView& rView) + : GenericDialogController(pParent, "modules/swriter/ui/signatureline.ui", "SignatureLineDialog") + , m_xEditName(m_xBuilder->weld_entry("edit_name")) + , m_xEditTitle(m_xBuilder->weld_entry("edit_title")) + , m_xEditEmail(m_xBuilder->weld_entry("edit_email")) + , m_xEditInstructions(m_xBuilder->weld_text_view("edit_instructions")) + , m_xCheckboxCanAddComments(m_xBuilder->weld_check_button("checkbox_can_add_comments")) + , m_xCheckboxShowSignDate(m_xBuilder->weld_check_button("checkbox_show_sign_date")) , mrView(rView) { - get(m_pEditName, "edit_name"); - get(m_pEditTitle, "edit_title"); - get(m_pEditEmail, "edit_email"); - get(m_pEditInstructions, "edit_instructions"); - get(m_pCheckboxCanAddComments, "checkbox_can_add_comments"); - get(m_pCheckboxShowSignDate, "checkbox_show_sign_date"); + m_xEditInstructions->set_size_request(m_xEditInstructions->get_approximate_char_width() * 24, + m_xEditInstructions->get_text_height() * 5); // No signature line selected - start with empty dialog and generate a new one if (!rView.isSignatureLineSelected()) @@ -60,39 +62,33 @@ SignatureLineDialog::SignatureLineDialog(vcl::Window* pParent, SwView& rView) xProps->getPropertyValue("SignatureLineId") >>= m_aSignatureLineId; OUString aSuggestedSignerName; xProps->getPropertyValue("SignatureLineSuggestedSignerName") >>= aSuggestedSignerName; - m_pEditName->SetText(aSuggestedSignerName); + m_xEditName->set_text(aSuggestedSignerName); OUString aSuggestedSignerTitle; xProps->getPropertyValue("SignatureLineSuggestedSignerTitle") >>= aSuggestedSignerTitle; - m_pEditTitle->SetText(aSuggestedSignerTitle); + m_xEditTitle->set_text(aSuggestedSignerTitle); OUString aSuggestedSignerEmail; xProps->getPropertyValue("SignatureLineSuggestedSignerEmail") >>= aSuggestedSignerEmail; - m_pEditEmail->SetText(aSuggestedSignerEmail); + m_xEditEmail->set_text(aSuggestedSignerEmail); OUString aSigningInstructions; xProps->getPropertyValue("SignatureLineSigningInstructions") >>= aSigningInstructions; - m_pEditInstructions->SetText(aSigningInstructions); + m_xEditInstructions->set_text(aSigningInstructions); bool bCanAddComments = false; xProps->getPropertyValue("SignatureLineShowSignDate") >>= bCanAddComments; - m_pCheckboxCanAddComments->Check(bCanAddComments); + m_xCheckboxCanAddComments->set_active(bCanAddComments); bool bShowSignDate = false; xProps->getPropertyValue("SignatureLineShowSignDate") >>= bShowSignDate; - m_pCheckboxShowSignDate->Check(bShowSignDate); + m_xCheckboxShowSignDate->set_active(bShowSignDate); // Mark this as existing shape m_xExistingShapeProperties = xProps; } -SignatureLineDialog::~SignatureLineDialog() { disposeOnce(); } - -void SignatureLineDialog::dispose() +short SignatureLineDialog::execute() { - m_pEditName.clear(); - m_pEditTitle.clear(); - m_pEditEmail.clear(); - m_pEditInstructions.clear(); - m_pCheckboxCanAddComments.clear(); - m_pCheckboxShowSignDate.clear(); - - SvxStandardDialog::dispose(); + short nRet = run(); + if (nRet == RET_OK) + Apply(); + return nRet; } void SignatureLineDialog::Apply() @@ -100,12 +96,12 @@ void SignatureLineDialog::Apply() if (m_aSignatureLineId.isEmpty()) m_aSignatureLineId = OStringToOUString(comphelper::xml::generateGUIDString(), RTL_TEXTENCODING_ASCII_US); - OUString aSignerName(m_pEditName->GetText()); - OUString aSignerTitle(m_pEditTitle->GetText()); - OUString aSignerEmail(m_pEditEmail->GetText()); - OUString aSigningInstructions(m_pEditInstructions->GetText()); - bool bCanAddComments(m_pCheckboxCanAddComments->IsChecked()); - bool bShowSignDate(m_pCheckboxShowSignDate->IsChecked()); + OUString aSignerName(m_xEditName->get_text()); + OUString aSignerTitle(m_xEditTitle->get_text()); + OUString aSignerEmail(m_xEditEmail->get_text()); + OUString aSigningInstructions(m_xEditInstructions->get_text()); + bool bCanAddComments(m_xCheckboxCanAddComments->get_active()); + bool bShowSignDate(m_xCheckboxShowSignDate->get_active()); // Read svg and replace placeholder texts OUString aSvgImage(getSignatureImage()); diff --git a/sw/source/uibase/inc/SignatureLineDialog.hxx b/sw/source/uibase/inc/SignatureLineDialog.hxx index f85ebcc39fbb..f3da0ba0bad2 100644 --- a/sw/source/uibase/inc/SignatureLineDialog.hxx +++ b/sw/source/uibase/inc/SignatureLineDialog.hxx @@ -11,36 +11,33 @@ #include #include -#include -#include +#include #include #include class SwView; -class SW_DLLPUBLIC SignatureLineDialog : public SvxStandardDialog +class SW_DLLPUBLIC SignatureLineDialog : public weld::GenericDialogController { public: - SignatureLineDialog(vcl::Window* pParent, SwView& rView); - virtual ~SignatureLineDialog() override; - virtual void dispose() override; + SignatureLineDialog(weld::Window* pParent, SwView& rView); - virtual void Apply() override; + short execute(); private: - OUString getSignatureImage(); - + std::unique_ptr m_xEditName; + std::unique_ptr m_xEditTitle; + std::unique_ptr m_xEditEmail; + std::unique_ptr m_xEditInstructions; + std::unique_ptr m_xCheckboxCanAddComments; + std::unique_ptr m_xCheckboxShowSignDate; SwView& mrView; - css::uno::Reference m_xExistingShapeProperties; OUString m_aSignatureLineId; - VclPtr m_pEditName; - VclPtr m_pEditTitle; - VclPtr m_pEditEmail; - VclPtr m_pEditInstructions; - VclPtr m_pCheckboxCanAddComments; - VclPtr m_pCheckboxShowSignDate; + + OUString getSignatureImage(); + void Apply(); }; #endif diff --git a/sw/source/uibase/uiview/viewdlg2.cxx b/sw/source/uibase/uiview/viewdlg2.cxx index 9de01bf198ba..ec56e4df9c66 100644 --- a/sw/source/uibase/uiview/viewdlg2.cxx +++ b/sw/source/uibase/uiview/viewdlg2.cxx @@ -44,7 +44,7 @@ void SwView::ExecDlgExt(SfxRequest const &rReq) { - vcl::Window *pMDI = &GetViewFrame()->GetWindow(); + vcl::Window& rMDI = GetViewFrame()->GetWindow(); switch ( rReq.GetSlot() ) { @@ -53,7 +53,7 @@ void SwView::ExecDlgExt(SfxRequest const &rReq) SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); assert(pFact && "SwAbstractDialogFactory fail!"); - ScopedVclPtr pDialog(pFact->CreateSwCaptionDialog( pMDI, *this )); + ScopedVclPtr pDialog(pFact->CreateSwCaptionDialog( &rMDI, *this )); assert(pDialog && "Dialog creation failed!"); if ( pDialog ) { @@ -67,7 +67,7 @@ void SwView::ExecDlgExt(SfxRequest const &rReq) SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); assert(pFact && "SwAbstractDialogFactory fail!"); - ScopedVclPtr pDialog(pFact->CreateSignatureLineDialog(pMDI, *this)); + ScopedVclPtr pDialog(pFact->CreateSignatureLineDialog(rMDI.GetFrameWeld(), *this)); assert(pDialog && "Dialog creation failed!"); if (pDialog) pDialog->Execute(); @@ -78,7 +78,7 @@ void SwView::ExecDlgExt(SfxRequest const &rReq) SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); assert(pFact && "Dialog creation failed!"); ScopedVclPtr pDlg(pFact->CreateInsFootNoteDlg( - pMDI, *m_pWrtShell, true)); + &rMDI, *m_pWrtShell, true)); assert(pDlg && "Dialog creation failed!"); pDlg->SetHelpId(GetStaticInterface()->GetSlot(FN_EDIT_FOOTNOTE)->GetCommand()); diff --git a/sw/uiconfig/swriter/ui/signatureline.ui b/sw/uiconfig/swriter/ui/signatureline.ui index 8b9395ab8295..edf50bf5e884 100644 --- a/sw/uiconfig/swriter/ui/signatureline.ui +++ b/sw/uiconfig/swriter/ui/signatureline.ui @@ -1,10 +1,13 @@ - + False Signature Line + True + 0 + 0 dialog @@ -34,6 +37,7 @@ gtk-ok True True + True True True True @@ -66,6 +70,7 @@ True True True + True John Doe @@ -78,6 +83,7 @@ True True True + True Director @@ -90,6 +96,7 @@ True True True + True john.doe@example.org @@ -175,7 +182,6 @@ start Instructions to the signer: True - edit_instructions 0 @@ -183,20 +189,6 @@ 2 - - - 60 - True - True - True - True - - - 0 - 8 - 2 - - Signer can add comments @@ -227,6 +219,27 @@ 2 + + + True + True + in + + + 60 + True + True + True + True + + + + + 0 + 8 + 2 + + False @@ -236,9 +249,12 @@ - - ok + cancel - + ok + + + + -- cgit