diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-03-15 20:52:43 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-03-16 00:24:52 +0100 |
commit | 8f61b382a776b2e241be0e3743c38fea53a6a729 (patch) | |
tree | bbcb792e1b8d4435ee6878ac574c64868210cd01 /cui | |
parent | 4bbf37b7ed83491efdfa9cb12cd434f67a1764ae (diff) |
weld SvxObjectNameDialog
Change-Id: I588bdc61cce9a7b4e709fcac612b229c02e734c0
Reviewed-on: https://gerrit.libreoffice.org/51375
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'cui')
-rw-r--r-- | cui/source/dialogs/dlgname.cxx | 38 | ||||
-rw-r--r-- | cui/source/factory/dlgfact.cxx | 16 | ||||
-rw-r--r-- | cui/source/factory/dlgfact.hxx | 13 | ||||
-rw-r--r-- | cui/source/inc/dlgname.hxx | 14 | ||||
-rw-r--r-- | cui/uiconfig/ui/objectnamedialog.ui | 11 |
5 files changed, 46 insertions, 46 deletions
diff --git a/cui/source/dialogs/dlgname.cxx b/cui/source/dialogs/dlgname.cxx index e3ad99d3497e..3e9eb3d0d78b 100644 --- a/cui/source/dialogs/dlgname.cxx +++ b/cui/source/dialogs/dlgname.cxx @@ -54,44 +54,28 @@ IMPL_LINK_NOARG(SvxNameDialog, ModifyHdl, weld::Entry&, void) // Dialog for editing Object Name // plus uniqueness-callback-linkHandler -SvxObjectNameDialog::SvxObjectNameDialog( - vcl::Window* pWindow, - const OUString& rName) : - ModalDialog ( pWindow, "ObjectNameDialog", "cui/ui/objectnamedialog.ui" ) +SvxObjectNameDialog::SvxObjectNameDialog(weld::Window* pParent, const OUString& rName) + : GenericDialogController(pParent, "cui/ui/objectnamedialog.ui", "ObjectNameDialog") + , m_xEdtName(m_xBuilder->weld_entry("object_name_entry")) + , m_xBtnOK(m_xBuilder->weld_button("ok")) { - get(pBtnOK, "ok"); - get(pEdtName, "object_name_entry"); // set name - pEdtName->SetText(rName); + m_xEdtName->set_text(rName); + m_xEdtName->select_region(0, -1); // activate name - pEdtName->SetSelection(Selection(SELECTION_MIN, SELECTION_MAX)); - ModifyHdl(*pEdtName.get()); - pEdtName->SetModifyHdl(LINK(this, SvxObjectNameDialog, ModifyHdl)); -} - -SvxObjectNameDialog::~SvxObjectNameDialog() -{ - disposeOnce(); -} - -void SvxObjectNameDialog::dispose() -{ - pEdtName.clear(); - pBtnOK.clear(); - ModalDialog::dispose(); + ModifyHdl(*m_xEdtName); + m_xEdtName->connect_changed(LINK(this, SvxObjectNameDialog, ModifyHdl)); } - -IMPL_LINK_NOARG(SvxObjectNameDialog, ModifyHdl, Edit&, void) +IMPL_LINK_NOARG(SvxObjectNameDialog, ModifyHdl, weld::Entry&, void) { - if(aCheckNameHdl.IsSet()) + if (aCheckNameHdl.IsSet()) { - pBtnOK->Enable(aCheckNameHdl.Call(*this)); + m_xBtnOK->set_sensitive(aCheckNameHdl.Call(*this)); } } - // #i68101# // Dialog for editing Object Title and Description diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx index e5306a261f1e..33abcf354fea 100644 --- a/cui/source/factory/dlgfact.cxx +++ b/cui/source/factory/dlgfact.cxx @@ -122,7 +122,11 @@ short AbstractSvxNameDialog_Impl::Execute() } // #i68101# -IMPL_ABSTDLG_BASE(AbstractSvxObjectNameDialog_Impl); +short AbstractSvxObjectNameDialog_Impl::Execute() +{ + return m_xDlg->run(); +} + IMPL_ABSTDLG_BASE(AbstractSvxObjectTitleDescDialog_Impl); IMPL_ABSTDLG_BASE(AbstractSvxMultiPathDialog_Impl); @@ -593,7 +597,7 @@ IMPL_LINK_NOARG(AbstractSvxNameDialog_Impl, CheckNameHdl, SvxNameDialog&, bool) void AbstractSvxObjectNameDialog_Impl::GetName(OUString& rName) { - pDlg->GetName(rName); + rName = m_xDlg->GetName(); } void AbstractSvxObjectNameDialog_Impl::SetCheckNameHdl(const Link<AbstractSvxObjectNameDialog&,bool>& rLink) @@ -602,11 +606,11 @@ void AbstractSvxObjectNameDialog_Impl::SetCheckNameHdl(const Link<AbstractSvxObj if(rLink.IsSet()) { - pDlg->SetCheckNameHdl(LINK(this, AbstractSvxObjectNameDialog_Impl, CheckNameHdl)); + m_xDlg->SetCheckNameHdl(LINK(this, AbstractSvxObjectNameDialog_Impl, CheckNameHdl)); } else { - pDlg->SetCheckNameHdl(Link<SvxObjectNameDialog&,bool>()); + m_xDlg->SetCheckNameHdl(Link<SvxObjectNameDialog&,bool>()); } } @@ -1103,9 +1107,9 @@ VclPtr<AbstractSvxNameDialog> AbstractDialogFactory_Impl::CreateSvxNameDialog(we return VclPtr<AbstractSvxNameDialog_Impl>::Create(new SvxNameDialog(pParent, rName, rDesc)); } -VclPtr<AbstractSvxObjectNameDialog> AbstractDialogFactory_Impl::CreateSvxObjectNameDialog(const OUString& rName ) +VclPtr<AbstractSvxObjectNameDialog> AbstractDialogFactory_Impl::CreateSvxObjectNameDialog(weld::Window* pParent, const OUString& rName) { - return VclPtr<AbstractSvxObjectNameDialog_Impl>::Create(VclPtr<SvxObjectNameDialog>::Create(nullptr, rName)); + return VclPtr<AbstractSvxObjectNameDialog_Impl>::Create(new SvxObjectNameDialog(pParent, rName)); } VclPtr<AbstractSvxObjectTitleDescDialog> AbstractDialogFactory_Impl::CreateSvxObjectTitleDescDialog(const OUString& rTitle, const OUString& rDescription) diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx index d36ecabeb517..e21a3d895d1c 100644 --- a/cui/source/factory/dlgfact.hxx +++ b/cui/source/factory/dlgfact.hxx @@ -324,9 +324,16 @@ private: class SvxObjectNameDialog; class SvxObjectTitleDescDialog; -class AbstractSvxObjectNameDialog_Impl :public AbstractSvxObjectNameDialog +class AbstractSvxObjectNameDialog_Impl : public AbstractSvxObjectNameDialog { - DECL_ABSTDLG_BASE(AbstractSvxObjectNameDialog_Impl, SvxObjectNameDialog) +protected: + std::unique_ptr<SvxObjectNameDialog> m_xDlg; +public: + explicit AbstractSvxObjectNameDialog_Impl(SvxObjectNameDialog* p) + : m_xDlg(p) + { + } + virtual short Execute() override; virtual void GetName(OUString& rName) override ; virtual void SetCheckNameHdl(const Link<AbstractSvxObjectNameDialog&,bool>& rLink) override; @@ -566,7 +573,7 @@ public: virtual VclPtr<AbstractSvxNameDialog> CreateSvxNameDialog(weld::Window* pParent, const OUString& rName, const OUString& rDesc) override; // #i68101# - virtual VclPtr<AbstractSvxObjectNameDialog> CreateSvxObjectNameDialog(const OUString& rName ) override; + virtual VclPtr<AbstractSvxObjectNameDialog> CreateSvxObjectNameDialog(weld::Window* pParent, const OUString& rName) override; virtual VclPtr<AbstractSvxObjectTitleDescDialog> CreateSvxObjectTitleDescDialog(const OUString& rTitle, const OUString& rDescription) override; virtual VclPtr<AbstractSvxMultiPathDialog> CreateSvxMultiPathDialog(vcl::Window* pParent) override; diff --git a/cui/source/inc/dlgname.hxx b/cui/source/inc/dlgname.hxx index 5543d9cf1dea..73f66be6854b 100644 --- a/cui/source/inc/dlgname.hxx +++ b/cui/source/inc/dlgname.hxx @@ -72,28 +72,26 @@ public: /** #i68101# Dialog for editing Object name plus uniqueness-callback-linkHandler */ -class SvxObjectNameDialog : public ModalDialog +class SvxObjectNameDialog : public weld::GenericDialogController { private: // name - VclPtr<Edit> pEdtName; + std::unique_ptr<weld::Entry> m_xEdtName; // buttons - VclPtr<OKButton> pBtnOK; + std::unique_ptr<weld::Button> m_xBtnOK; // callback link for name uniqueness Link<SvxObjectNameDialog&,bool> aCheckNameHdl; - DECL_LINK(ModifyHdl, Edit&, void); + DECL_LINK(ModifyHdl, weld::Entry&, void); public: // constructor - SvxObjectNameDialog(vcl::Window* pWindow, const OUString& rName); - virtual ~SvxObjectNameDialog() override; - virtual void dispose() override; + SvxObjectNameDialog(weld::Window* pWindow, const OUString& rName); // data access - void GetName(OUString& rName) {rName = pEdtName->GetText(); } + OUString GetName() { return m_xEdtName->get_text(); } // set handler void SetCheckNameHdl(const Link<SvxObjectNameDialog&,bool>& rLink) diff --git a/cui/uiconfig/ui/objectnamedialog.ui b/cui/uiconfig/ui/objectnamedialog.ui index 8644c0ae3835..907e334a2db9 100644 --- a/cui/uiconfig/ui/objectnamedialog.ui +++ b/cui/uiconfig/ui/objectnamedialog.ui @@ -1,11 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.20.2 --> <interface domain="cui"> <requires lib="gtk+" version="3.18"/> <object class="GtkDialog" id="ObjectNameDialog"> <property name="can_focus">False</property> <property name="border_width">6</property> <property name="title" translatable="yes" context="objectnamedialog|ObjectNameDialog">Name</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" id="dialog-vbox3"> @@ -79,10 +82,10 @@ <object class="GtkLabel" id="object_name_label"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="objectnamedialog|object_name_label">_Name:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">object_name_entry</property> + <property name="xalign">0</property> </object> <packing> <property name="expand">False</property> @@ -95,6 +98,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="invisible_char">•</property> + <property name="activates_default">True</property> <property name="width_chars">55</property> </object> <packing> @@ -117,5 +121,8 @@ <action-widget response="-5">ok</action-widget> <action-widget response="-6">cancel</action-widget> </action-widgets> + <child> + <placeholder/> + </child> </object> </interface> |