Kaydet (Commit) d416fa9a authored tarafından Caolán McNamara's avatar Caolán McNamara

weld SignatureLineDialog

Change-Id: I14cbc7e1aa70696abdeb21eae31176566f17e066
Reviewed-on: https://gerrit.libreoffice.org/51422Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 009d2756
......@@ -400,7 +400,7 @@ public:
SwCharDlgMode nDialogMode, const OUString* pFormatStr = nullptr) = 0;
virtual VclPtr<AbstractSwConvertTableDlg> CreateSwConvertTableDlg(SwView& rView, bool bToTable) = 0;
virtual VclPtr<VclAbstractDialog> CreateSwCaptionDialog ( vcl::Window *pParent, SwView &rV) = 0;
virtual VclPtr<VclAbstractDialog> CreateSignatureLineDialog(vcl::Window* pParent, SwView& rView) = 0;
virtual VclPtr<VclAbstractDialog> CreateSignatureLineDialog(weld::Window* pParent, SwView& rView) = 0;
virtual VclPtr<AbstractSwInsertDBColAutoPilot> CreateSwInsertDBColAutoPilot(SwView& rView,
css::uno::Reference< css::sdbc::XDataSource> rxSource,
......
......@@ -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<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateSwCaptionDialog (
return VclPtr<VclAbstractDialog_Impl>::Create( pDlg );
}
VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateSignatureLineDialog(vcl::Window* pParent, SwView& rV)
VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateSignatureLineDialog(weld::Window* pParent, SwView& rV)
{
VclPtr<Dialog> pDlg = VclPtr<SignatureLineDialog>::Create(pParent, rV);
return VclPtr<VclAbstractDialog_Impl>::Create(pDlg);
return VclPtr<AbstractSignatureLineDialog_Impl>::Create(new SignatureLineDialog(pParent, rV));
}
VclPtr<AbstractSwInsertDBColAutoPilot> SwAbstractDialogFactory_Impl::CreateSwInsertDBColAutoPilot( SwView& rView,
......
......@@ -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<SignatureLineDialog> 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<AbstractSwConvertTableDlg> CreateSwConvertTableDlg(SwView& rView, bool bToTable) override;
virtual VclPtr<VclAbstractDialog> CreateSwCaptionDialog ( vcl::Window *pParent, SwView &rV) override;
virtual VclPtr<VclAbstractDialog> CreateSignatureLineDialog(vcl::Window* pParent,
SwView& rView) override;
virtual VclPtr<VclAbstractDialog> CreateSignatureLineDialog(weld::Window* pParent, SwView& rView) override;
virtual VclPtr<AbstractSwInsertDBColAutoPilot> CreateSwInsertDBColAutoPilot(SwView& rView,
css::uno::Reference< css::sdbc::XDataSource> rxSource,
......
......@@ -39,6 +39,7 @@
#include <selglos.hxx>
#include <splittbl.hxx>
#include <tautofmt.hxx>
#include <SignatureLineDialog.hxx>
#include <swmodalredlineacceptdlg.hxx>
#include <swrenamexnameddlg.hxx>
#include <swuiidxmrk.hxx>
......
......@@ -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());
......
......@@ -11,36 +11,33 @@
#include <svx/stddlg.hxx>
#include <swdllapi.h>
#include <vcl/button.hxx>
#include <vcl/edit.hxx>
#include <vcl/weld.hxx>
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/uno/Reference.hxx>
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<weld::Entry> m_xEditName;
std::unique_ptr<weld::Entry> m_xEditTitle;
std::unique_ptr<weld::Entry> m_xEditEmail;
std::unique_ptr<weld::TextView> m_xEditInstructions;
std::unique_ptr<weld::CheckButton> m_xCheckboxCanAddComments;
std::unique_ptr<weld::CheckButton> m_xCheckboxShowSignDate;
SwView& mrView;
css::uno::Reference<css::beans::XPropertySet> m_xExistingShapeProperties;
OUString m_aSignatureLineId;
VclPtr<Edit> m_pEditName;
VclPtr<Edit> m_pEditTitle;
VclPtr<Edit> m_pEditEmail;
VclPtr<Edit> m_pEditInstructions;
VclPtr<CheckBox> m_pCheckboxCanAddComments;
VclPtr<CheckBox> m_pCheckboxShowSignDate;
OUString getSignatureImage();
void Apply();
};
#endif
......
......@@ -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<VclAbstractDialog> pDialog(pFact->CreateSwCaptionDialog( pMDI, *this ));
ScopedVclPtr<VclAbstractDialog> 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<VclAbstractDialog> pDialog(pFact->CreateSignatureLineDialog(pMDI, *this));
ScopedVclPtr<VclAbstractDialog> 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<AbstractInsFootNoteDlg> pDlg(pFact->CreateInsFootNoteDlg(
pMDI, *m_pWrtShell, true));
&rMDI, *m_pWrtShell, true));
assert(pDlg && "Dialog creation failed!");
pDlg->SetHelpId(GetStaticInterface()->GetSlot(FN_EDIT_FOOTNOTE)->GetCommand());
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<!-- Generated with glade 3.20.2 -->
<interface domain="sw">
<requires lib="gtk+" version="3.18"/>
<object class="GtkDialog" id="SignatureLineDialog">
<property name="can_focus">False</property>
<property name="title" translatable="yes" context="signatureline|SignatureLineDialog">Signature Line</property>
<property name="modal">True</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox">
......@@ -34,6 +37,7 @@
<property name="label">gtk-ok</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>
......@@ -66,6 +70,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
<property name="placeholder_text" translatable="yes" context="signatureline|edit_name">John Doe</property>
</object>
<packing>
......@@ -78,6 +83,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
<property name="placeholder_text" translatable="yes" context="signatureline|edit_title">Director</property>
</object>
<packing>
......@@ -90,6 +96,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
<property name="placeholder_text" translatable="yes" context="signatureline|edit_email">john.doe@example.org</property>
</object>
<packing>
......@@ -175,7 +182,6 @@
<property name="halign">start</property>
<property name="label" translatable="yes" context="signatureline|label_instructions">Instructions to the signer:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">edit_instructions</property>
</object>
<packing>
<property name="left_attach">0</property>
......@@ -183,20 +189,6 @@
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkTextView" id="edit_instructions">
<property name="height_request">60</property>
<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">8</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="checkbox_can_add_comments">
<property name="label" translatable="yes" context="signatureline|checkbox_can_add_comments">Signer can add comments</property>
......@@ -227,6 +219,27 @@
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkTextView" id="edit_instructions">
<property name="height_request">60</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">8</property>
<property name="width">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
......@@ -236,9 +249,12 @@
</child>
</object>
</child>
<action-widgets>
<action-widget response="-5">ok</action-widget>
<action-widgets>
<action-widget response="-6">cancel</action-widget>
</action-widgets>
<action-widget response="-5">ok</action-widget>
</action-widgets>
<child>
<placeholder/>
</child>
</object>
</interface>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment