summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-05-13 17:55:03 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-05-13 21:44:24 +0200
commit9f55cc13d64b4c8d60b1ff2e93ed854b0dccad46 (patch)
tree82d33c4b3f33c240b3c7f0c83f72a2a9f2c411e9
parent1bbc741c078899a16cedd78def6d4107f3ed4c96 (diff)
weld SwNewGlosNameDlg
Change-Id: Ie1c320958813bfb602da46738782b9e1e9fe5a9e Reviewed-on: https://gerrit.libreoffice.org/54196 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sw/source/ui/misc/glossary.cxx132
-rw-r--r--sw/uiconfig/swriter/ui/renameautotextdialog.ui42
2 files changed, 76 insertions, 98 deletions
diff --git a/sw/source/ui/misc/glossary.cxx b/sw/source/ui/misc/glossary.cxx
index b38de3134e14..c62a67a214c6 100644
--- a/sw/source/ui/misc/glossary.cxx
+++ b/sw/source/ui/misc/glossary.cxx
@@ -114,64 +114,54 @@ struct GroupUserData
};
// dialog for new block name
-class SwNewGlosNameDlg : public ModalDialog
+class SwNewGlosNameDlg : public weld::GenericDialogController
{
- VclPtr<Edit> m_pNewName;
TextFilter m_aNoSpaceFilter;
- VclPtr<Edit> m_pNewShort;
- VclPtr<OKButton> m_pOk;
- VclPtr<Edit> m_pOldName;
- VclPtr<Edit> m_pOldShort;
+ VclPtr<SwGlossaryDlg> m_pParent;
+
+ std::unique_ptr<weld::Entry> m_xNewName;
+ std::unique_ptr<weld::Entry> m_xNewShort;
+ std::unique_ptr<weld::Button> m_xOk;
+ std::unique_ptr<weld::Entry> m_xOldName;
+ std::unique_ptr<weld::Entry> m_xOldShort;
protected:
- DECL_LINK( Modify, Edit&, void );
- DECL_LINK(Rename, Button*, void);
+ DECL_LINK(Modify, weld::Entry&, void);
+ DECL_LINK(Rename, weld::Button&, void);
+ DECL_LINK(TextFilterHdl, OUString&, bool);
public:
- SwNewGlosNameDlg( vcl::Window* pParent,
- const OUString& rOldName,
- const OUString& rOldShort );
- virtual ~SwNewGlosNameDlg() override;
- virtual void dispose() override;
-
- OUString GetNewName() const { return m_pNewName->GetText(); }
- OUString GetNewShort() const { return m_pNewShort->GetText(); }
-};
+ SwNewGlosNameDlg(SwGlossaryDlg* pParent,
+ const OUString& rOldName,
+ const OUString& rOldShort);
-SwNewGlosNameDlg::SwNewGlosNameDlg(vcl::Window* pParent,
- const OUString& rOldName,
- const OUString& rOldShort )
- : ModalDialog(pParent, "RenameAutoTextDialog",
- "modules/swriter/ui/renameautotextdialog.ui")
-{
- get(m_pNewName, "newname");
- get(m_pNewShort, "newsc");
- m_pNewShort->SetTextFilter(&m_aNoSpaceFilter);
- get(m_pOk, "ok");
- get(m_pOldName, "oldname");
- get(m_pOldShort, "oldsc");
-
- m_pOldName->SetText( rOldName );
- m_pOldShort->SetText( rOldShort );
- m_pNewName->SetModifyHdl(LINK(this, SwNewGlosNameDlg, Modify ));
- m_pNewShort->SetModifyHdl(LINK(this, SwNewGlosNameDlg, Modify ));
- m_pOk->SetClickHdl(LINK(this, SwNewGlosNameDlg, Rename ));
- m_pNewName->GrabFocus();
-}
+ OUString GetNewName() const { return m_xNewName->get_text(); }
+ OUString GetNewShort() const { return m_xNewShort->get_text(); }
+};
-SwNewGlosNameDlg::~SwNewGlosNameDlg()
+IMPL_LINK(SwNewGlosNameDlg, TextFilterHdl, OUString&, rTest, bool)
{
- disposeOnce();
+ rTest = m_aNoSpaceFilter.filter(rTest);
+ return true;
}
-void SwNewGlosNameDlg::dispose()
+SwNewGlosNameDlg::SwNewGlosNameDlg(SwGlossaryDlg* pParent, const OUString& rOldName, const OUString& rOldShort)
+ : GenericDialogController(pParent->GetFrameWeld(), "modules/swriter/ui/renameautotextdialog.ui", "RenameAutoTextDialog")
+ , m_pParent(pParent)
+ , m_xNewName(m_xBuilder->weld_entry("newname"))
+ , m_xNewShort(m_xBuilder->weld_entry("newsc"))
+ , m_xOk(m_xBuilder->weld_button("ok"))
+ , m_xOldName(m_xBuilder->weld_entry("oldname"))
+ , m_xOldShort(m_xBuilder->weld_entry("oldsc"))
{
- m_pNewName.clear();
- m_pNewShort.clear();
- m_pOk.clear();
- m_pOldName.clear();
- m_pOldShort.clear();
- ModalDialog::dispose();
+ m_xNewShort->connect_insert_text(LINK(this, SwNewGlosNameDlg, TextFilterHdl));
+
+ m_xOldName->set_text(rOldName);
+ m_xOldShort->set_text(rOldShort);
+ m_xNewName->connect_changed(LINK(this, SwNewGlosNameDlg, Modify ));
+ m_xNewShort->connect_changed(LINK(this, SwNewGlosNameDlg, Modify ));
+ m_xOk->connect_clicked(LINK(this, SwNewGlosNameDlg, Rename ));
+ m_xNewName->grab_focus();
}
// query / set currently set group
@@ -503,17 +493,15 @@ IMPL_LINK( SwGlossaryDlg, MenuHdl, Menu *, pMn, bool )
else if (sItemIdent == "rename")
{
m_pShortNameEdit->SetText(pGlossaryHdl->GetGlossaryShortName(m_pNameED->GetText()));
- ScopedVclPtrInstance<SwNewGlosNameDlg> pNewNameDlg(this, m_pNameED->GetText(),
- m_pShortNameEdit->GetText());
- if( RET_OK == pNewNameDlg->Execute() &&
- pGlossaryHdl->Rename( m_pShortNameEdit->GetText(),
- pNewNameDlg->GetNewShort(),
- pNewNameDlg->GetNewName()))
+ SwNewGlosNameDlg aNewNameDlg(this, m_pNameED->GetText(), m_pShortNameEdit->GetText());
+ if (aNewNameDlg.run() == RET_OK && pGlossaryHdl->Rename(m_pShortNameEdit->GetText(),
+ aNewNameDlg.GetNewShort(),
+ aNewNameDlg.GetNewName()))
{
SvTreeListEntry* pEntry = m_pCategoryBox->FirstSelected();
SvTreeListEntry* pNewEntry = m_pCategoryBox->InsertEntry(
- pNewNameDlg->GetNewName(), m_pCategoryBox->GetParent(pEntry));
- pNewEntry->SetUserData(new OUString(pNewNameDlg->GetNewShort()));
+ aNewNameDlg.GetNewName(), m_pCategoryBox->GetParent(pEntry));
+ pNewEntry->SetUserData(new OUString(aNewNameDlg.GetNewShort()));
delete static_cast<OUString*>(pEntry->GetUserData());
m_pCategoryBox->GetModel()->Remove(pEntry);
m_pCategoryBox->Select(pNewEntry);
@@ -790,34 +778,34 @@ IMPL_LINK_NOARG(SwGlossaryDlg, EditHdl, MenuButton *, void)
}
// KeyInput for ShortName - Edits without Spaces
-IMPL_LINK( SwNewGlosNameDlg, Modify, Edit&, rBox, void )
+IMPL_LINK( SwNewGlosNameDlg, Modify, weld::Entry&, rBox, void )
{
- OUString aName(m_pNewName->GetText());
- SwGlossaryDlg* pDlg = static_cast<SwGlossaryDlg*>(GetParent());
- if (&rBox == m_pNewName)
- m_pNewShort->SetText( lcl_GetValidShortCut( aName ) );
-
- bool bEnable = !aName.isEmpty() && !m_pNewShort->GetText().isEmpty() &&
- (!pDlg->DoesBlockExist(aName, m_pNewShort->GetText())
- || aName == m_pOldName->GetText());
- m_pOk->Enable(bEnable);
+ OUString aName(m_xNewName->get_text());
+ SwGlossaryDlg* pDlg = m_pParent;
+ if (&rBox == m_xNewName.get())
+ m_xNewShort->set_text(lcl_GetValidShortCut(aName));
+
+ bool bEnable = !aName.isEmpty() && !m_xNewShort->get_text().isEmpty() &&
+ (!pDlg->DoesBlockExist(aName, m_xNewShort->get_text())
+ || aName == m_xOldName->get_text());
+ m_xOk->set_sensitive(bEnable);
}
-IMPL_LINK_NOARG(SwNewGlosNameDlg, Rename, Button*, void)
+IMPL_LINK_NOARG(SwNewGlosNameDlg, Rename, weld::Button&, void)
{
- SwGlossaryDlg* pDlg = static_cast<SwGlossaryDlg*>(GetParent());
- OUString sNew = GetAppCharClass().uppercase(m_pNewShort->GetText());
- if( pDlg->pGlossaryHdl->HasShortName(m_pNewShort->GetText())
- && sNew != m_pOldShort->GetText() )
+ SwGlossaryDlg* pDlg = m_pParent;
+ OUString sNew = GetAppCharClass().uppercase(m_xNewShort->get_text());
+ if (pDlg->pGlossaryHdl->HasShortName(m_xNewShort->get_text())
+ && sNew != m_xOldShort->get_text())
{
- std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(GetFrameWeld(),
+ std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Info, VclButtonsType::Ok,
SwResId(STR_DOUBLE_SHORTNAME)));
xBox->run();
- m_pNewShort->GrabFocus();
+ m_xNewShort->grab_focus();
}
else
- EndDialog(RET_OK);
+ m_xDialog->response(RET_OK);
}
IMPL_LINK( SwGlossaryDlg, CheckBoxHdl, Button *, pBox, void )
diff --git a/sw/uiconfig/swriter/ui/renameautotextdialog.ui b/sw/uiconfig/swriter/ui/renameautotextdialog.ui
index 29882c2005b8..15e450e25303 100644
--- a/sw/uiconfig/swriter/ui/renameautotextdialog.ui
+++ b/sw/uiconfig/swriter/ui/renameautotextdialog.ui
@@ -1,12 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
<interface domain="sw">
- <!-- interface-requires gtk+ 3.0 -->
- <!-- interface-requires LibreOffice 1.0 -->
+ <requires lib="gtk+" version="3.18"/>
<object class="GtkDialog" id="RenameAutoTextDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="renameautotextdialog|RenameAutoTextDialog">Rename AutoText</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>
+ <placeholder/>
+ </child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
@@ -73,16 +79,14 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="double_buffered">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="renameautotextdialog|label2">Na_me</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">oldname</property>
+ <property name="xalign">0</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>
@@ -90,16 +94,14 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="double_buffered">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="renameautotextdialog|label3">_New</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">newname</property>
+ <property name="xalign">0</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>
@@ -108,13 +110,12 @@
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="editable">False</property>
+ <property name="activates_default">True</property>
<property name="width_chars">32</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>
@@ -123,21 +124,18 @@
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="max_length">60</property>
+ <property name="activates_default">True</property>
<property name="width_chars">32</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>
</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>
@@ -151,16 +149,14 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="double_buffered">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="renameautotextdialog|label4">Short_cut</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">oldsc</property>
+ <property name="xalign">0</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>
@@ -168,16 +164,14 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="double_buffered">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="renameautotextdialog|label5">_Shortcut</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">newsc</property>
+ <property name="xalign">0</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>
@@ -185,34 +179,30 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">False</property>
+ <property name="activates_default">True</property>
<property name="width_chars">6</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="GtkEntry" id="newsc">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="activates_default">True</property>
<property name="width_chars">6</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>
</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>
</object>