diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-04-16 20:52:37 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-04-17 10:03:27 +0200 |
commit | 8a35cafb58c38e84541a44f8534c0511d2400e75 (patch) | |
tree | 276c93c12f6e4a9a562384a612224c00fd7ec121 /sw | |
parent | 82fb4c66103073043d17b5cea845e35410b826f3 (diff) |
weld SwMultiTOXMarkDlg
Change-Id: Idff6120f0a04bd94ec8402ae02daa9599f133698
Reviewed-on: https://gerrit.libreoffice.org/53004
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 'sw')
-rw-r--r-- | sw/inc/swabstdlg.hxx | 2 | ||||
-rw-r--r-- | sw/source/ui/dialog/swdlgfact.cxx | 9 | ||||
-rw-r--r-- | sw/source/ui/dialog/swdlgfact.hxx | 15 | ||||
-rw-r--r-- | sw/source/ui/dialog/swuiexp.cxx | 1 | ||||
-rw-r--r-- | sw/source/ui/index/multmrk.cxx | 50 | ||||
-rw-r--r-- | sw/source/uibase/inc/multmrk.hxx | 29 | ||||
-rw-r--r-- | sw/source/uibase/shells/textidx.cxx | 2 | ||||
-rw-r--r-- | sw/uiconfig/swriter/ui/selectindexdialog.ui | 49 |
8 files changed, 102 insertions, 55 deletions
diff --git a/sw/inc/swabstdlg.hxx b/sw/inc/swabstdlg.hxx index 862f8bb94751..2c24fc1bfbe1 100644 --- a/sw/inc/swabstdlg.hxx +++ b/sw/inc/swabstdlg.hxx @@ -477,7 +477,7 @@ public: const css::uno::Reference< css::sdbc::XConnection>& xConnection ) = 0; virtual VclPtr<AbstractMailMergeCreateFromDlg> CreateMailMergeCreateFromDlg(vcl::Window* pParent) = 0; virtual VclPtr<AbstractMailMergeFieldConnectionsDlg> CreateMailMergeFieldConnectionsDlg(vcl::Window* pParent) = 0; - virtual VclPtr<VclAbstractDialog> CreateMultiTOXMarkDlg(vcl::Window* pParent, SwTOXMgr &rTOXMgr) = 0; + virtual VclPtr<VclAbstractDialog> CreateMultiTOXMarkDlg(weld::Window* pParent, SwTOXMgr &rTOXMgr) = 0; virtual VclPtr<SfxAbstractTabDialog> CreateOutlineTabDialog(vcl::Window* pParent, const SfxItemSet* pSwItemSet, SwWrtShell &) = 0; diff --git a/sw/source/ui/dialog/swdlgfact.cxx b/sw/source/ui/dialog/swdlgfact.cxx index 6796a973c5dc..e3e9559a3331 100644 --- a/sw/source/ui/dialog/swdlgfact.cxx +++ b/sw/source/ui/dialog/swdlgfact.cxx @@ -123,6 +123,10 @@ short AbstractSwSortDlg_Impl::Execute() { return m_xDlg->execute(); } +short AbstractMultiTOXMarkDlg_Impl::Execute() +{ + return m_xDlg->execute(); +} IMPL_ABSTDLG_BASE(AbstractTabDialog_Impl); short AbstractSwConvertTableDlg_Impl::Execute() { @@ -987,10 +991,9 @@ VclPtr<AbstractMailMergeFieldConnectionsDlg> SwAbstractDialogFactory_Impl::Creat return VclPtr<AbstractMailMergeFieldConnectionsDlg_Impl>::Create( pDlg ); } -VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateMultiTOXMarkDlg(vcl::Window* pParent, SwTOXMgr &rTOXMgr) +VclPtr<VclAbstractDialog> SwAbstractDialogFactory_Impl::CreateMultiTOXMarkDlg(weld::Window* pParent, SwTOXMgr &rTOXMgr) { - VclPtr<Dialog> pDlg = VclPtr<SwMultiTOXMarkDlg>::Create(pParent, rTOXMgr); - return VclPtr<VclAbstractDialog_Impl>::Create(pDlg); + return VclPtr<AbstractMultiTOXMarkDlg_Impl>::Create(new SwMultiTOXMarkDlg(pParent, rTOXMgr)); } VclPtr<SfxAbstractTabDialog> SwAbstractDialogFactory_Impl::CreateSvxNumBulletTabDialog(vcl::Window* pParent, diff --git a/sw/source/ui/dialog/swdlgfact.hxx b/sw/source/ui/dialog/swdlgfact.hxx index 904e005276c4..d53aad217e3c 100644 --- a/sw/source/ui/dialog/swdlgfact.hxx +++ b/sw/source/ui/dialog/swdlgfact.hxx @@ -25,6 +25,7 @@ class SwInsertAbstractDlg; class SwAsciiFilterDlg; class Dialog; class SwBreakDlg; +class SwMultiTOXMarkDlg; class SwSortDlg; class SwTableHeightDlg; class SwTableWidthDlg; @@ -135,6 +136,18 @@ public: virtual short Execute() override; }; +class AbstractMultiTOXMarkDlg_Impl : public VclAbstractDialog +{ +protected: + std::unique_ptr<SwMultiTOXMarkDlg> m_xDlg; +public: + explicit AbstractMultiTOXMarkDlg_Impl(SwMultiTOXMarkDlg* p) + : m_xDlg(p) + { + } + virtual short Execute() override; +}; + class AbstractSwBreakDlg_Impl : public AbstractSwBreakDlg { protected: @@ -591,7 +604,7 @@ public: const css::uno::Reference< css::sdbc::XConnection>& xConnection ) override; virtual VclPtr<AbstractMailMergeCreateFromDlg> CreateMailMergeCreateFromDlg(vcl::Window* pParent) override; virtual VclPtr<AbstractMailMergeFieldConnectionsDlg> CreateMailMergeFieldConnectionsDlg(vcl::Window* pParent) override; - virtual VclPtr<VclAbstractDialog> CreateMultiTOXMarkDlg(vcl::Window* pParent, SwTOXMgr &rTOXMgr) override; + virtual VclPtr<VclAbstractDialog> CreateMultiTOXMarkDlg(weld::Window* pParent, SwTOXMgr &rTOXMgr) override; virtual VclPtr<SfxAbstractTabDialog> CreateOutlineTabDialog(vcl::Window* pParent, const SfxItemSet* pSwItemSet, SwWrtShell &) override; virtual VclPtr<SfxAbstractTabDialog> CreateSvxNumBulletTabDialog(vcl::Window* pParent, diff --git a/sw/source/ui/dialog/swuiexp.cxx b/sw/source/ui/dialog/swuiexp.cxx index f541a4507909..ba351e57ced5 100644 --- a/sw/source/ui/dialog/swuiexp.cxx +++ b/sw/source/ui/dialog/swuiexp.cxx @@ -37,6 +37,7 @@ #include <mailmrge.hxx> #include <mailmergewizard.hxx> #include <mergetbl.hxx> +#include <multmrk.hxx> #include <regionsw.hxx> #include <rowht.hxx> #include <selglos.hxx> diff --git a/sw/source/ui/index/multmrk.cxx b/sw/source/ui/index/multmrk.cxx index 0e16c05355ae..735927a58ff5 100644 --- a/sw/source/ui/index/multmrk.cxx +++ b/sw/source/ui/index/multmrk.cxx @@ -18,56 +18,46 @@ */ #include <swtypes.hxx> - #include <multmrk.hxx> #include <toxmgr.hxx> -SwMultiTOXMarkDlg::SwMultiTOXMarkDlg(vcl::Window* pParent, SwTOXMgr& rTOXMgr) - : SvxStandardDialog(pParent, "SelectIndexDialog", - "modules/swriter/ui/selectindexdialog.ui") - , rMgr(rTOXMgr) - , nPos(0) +SwMultiTOXMarkDlg::SwMultiTOXMarkDlg(weld::Window* pParent, SwTOXMgr& rTOXMgr) + : GenericDialogController(pParent, "modules/swriter/ui/selectindexdialog.ui", "SelectIndexDialog") + , m_rMgr(rTOXMgr) + , m_nPos(0) + , m_xTextFT(m_xBuilder->weld_label("type")) + , m_xTOXLB(m_xBuilder->weld_tree_view("treeview")) { - get(m_pTextFT, "type"); - get(m_pTOXLB, "treeview"); - m_pTOXLB->set_height_request(m_pTOXLB->GetTextHeight() * 10); - m_pTOXLB->set_width_request(m_pTOXLB->approximate_char_width() * 25); + m_xTOXLB->set_size_request(m_xTOXLB->get_approximate_digit_width() * 32, + m_xTOXLB->get_height_rows(8)); - m_pTOXLB->SetSelectHdl(LINK(this, SwMultiTOXMarkDlg, SelectHdl)); + m_xTOXLB->connect_changed(LINK(this, SwMultiTOXMarkDlg, SelectHdl)); - sal_uInt16 nSize = rMgr.GetTOXMarkCount(); + sal_uInt16 nSize = m_rMgr.GetTOXMarkCount(); for(sal_uInt16 i=0; i < nSize; ++i) - m_pTOXLB->InsertEntry(rMgr.GetTOXMark(i)->GetText()); + m_xTOXLB->append_text(m_rMgr.GetTOXMark(i)->GetText()); - m_pTOXLB->SelectEntryPos(0); - m_pTextFT->SetText(rMgr.GetTOXMark(0)->GetTOXType()->GetTypeName()); + m_xTOXLB->select(0); + m_xTextFT->set_label(m_rMgr.GetTOXMark(0)->GetTOXType()->GetTypeName()); } -IMPL_LINK( SwMultiTOXMarkDlg, SelectHdl, ListBox&, rBox, void ) +IMPL_LINK( SwMultiTOXMarkDlg, SelectHdl, weld::TreeView&, rBox, void ) { - if(rBox.GetSelectedEntryPos() != LISTBOX_ENTRY_NOTFOUND) - { SwTOXMark* pMark = rMgr.GetTOXMark(rBox.GetSelectedEntryPos()); - m_pTextFT->SetText(pMark->GetTOXType()->GetTypeName()); - nPos = rBox.GetSelectedEntryPos(); + if (rBox.get_selected_index() != -1) + { + SwTOXMark* pMark = m_rMgr.GetTOXMark(rBox.get_selected_index()); + m_xTextFT->set_label(pMark->GetTOXType()->GetTypeName()); + m_nPos = rBox.get_selected_index(); } } void SwMultiTOXMarkDlg::Apply() { - rMgr.SetCurTOXMark(nPos); + m_rMgr.SetCurTOXMark(m_nPos); } SwMultiTOXMarkDlg::~SwMultiTOXMarkDlg() { - disposeOnce(); } -void SwMultiTOXMarkDlg::dispose() -{ - m_pTextFT.clear(); - m_pTOXLB.clear(); - SvxStandardDialog::dispose(); -} - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sw/source/uibase/inc/multmrk.hxx b/sw/source/uibase/inc/multmrk.hxx index e8068e1d5cb5..0e7959433d01 100644 --- a/sw/source/uibase/inc/multmrk.hxx +++ b/sw/source/uibase/inc/multmrk.hxx @@ -20,28 +20,31 @@ #ifndef INCLUDED_SW_SOURCE_UIBASE_INC_MULTMRK_HXX #define INCLUDED_SW_SOURCE_UIBASE_INC_MULTMRK_HXX -#include <svx/stddlg.hxx> -#include <vcl/fixed.hxx> -#include <vcl/lstbox.hxx> -#include <vcl/button.hxx> +#include <vcl/weld.hxx> class SwTOXMgr; // insert mark for index entry -class SwMultiTOXMarkDlg : public SvxStandardDialog +class SwMultiTOXMarkDlg : public weld::GenericDialogController { - DECL_LINK( SelectHdl, ListBox&, void ); - VclPtr<FixedText> m_pTextFT; - VclPtr<ListBox> m_pTOXLB; + DECL_LINK(SelectHdl, weld::TreeView&, void); + SwTOXMgr& m_rMgr; + sal_uInt16 m_nPos; - SwTOXMgr& rMgr; - sal_uInt16 nPos; + std::unique_ptr<weld::Label> m_xTextFT; + std::unique_ptr<weld::TreeView> m_xTOXLB; - void Apply() override; + void Apply(); public: - SwMultiTOXMarkDlg( vcl::Window* pParent, SwTOXMgr &rTOXMgr ); + SwMultiTOXMarkDlg(weld::Window* pParent, SwTOXMgr &rTOXMgr); virtual ~SwMultiTOXMarkDlg() override; - virtual void dispose() override; + short execute() + { + short nRet = run(); + if (nRet == RET_OK) + Apply(); + return nRet; + } }; #endif // INCLUDED_SW_SOURCE_UIBASE_INC_MULTMRK_HXX diff --git a/sw/source/uibase/shells/textidx.cxx b/sw/source/uibase/shells/textidx.cxx index e2ce8d906be6..099c5c4448fe 100644 --- a/sw/source/uibase/shells/textidx.cxx +++ b/sw/source/uibase/shells/textidx.cxx @@ -82,7 +82,7 @@ void SwTextShell::ExecIdx(SfxRequest const &rReq) { // Several marks, which should it be? SwAbstractDialogFactory* pFact = SwAbstractDialogFactory::Create(); OSL_ENSURE(pFact, "Dialog creation failed!"); - ScopedVclPtr<VclAbstractDialog> pMultDlg(pFact->CreateMultiTOXMarkDlg(pMDI, aMgr)); + ScopedVclPtr<VclAbstractDialog> pMultDlg(pFact->CreateMultiTOXMarkDlg(GetView().GetFrameWeld(), aMgr)); OSL_ENSURE(pMultDlg, "Dialog creation failed!"); nRet = pMultDlg->Execute(); } diff --git a/sw/uiconfig/swriter/ui/selectindexdialog.ui b/sw/uiconfig/swriter/ui/selectindexdialog.ui index 9762c79f1391..50b940124a27 100644 --- a/sw/uiconfig/swriter/ui/selectindexdialog.ui +++ b/sw/uiconfig/swriter/ui/selectindexdialog.ui @@ -1,12 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.20.4 --> <interface domain="sw"> <requires lib="gtk+" version="3.18"/> + <object class="GtkListStore" id="liststore1"> + <columns> + <!-- column-name text --> + <column type="gchararray"/> + <!-- column-name id --> + <column type="gchararray"/> + </columns> + </object> <object class="GtkDialog" id="SelectIndexDialog"> <property name="can_focus">False</property> <property name="border_width">6</property> <property name="title" translatable="yes" context="selectindexdialog|SelectIndexDialog">Index Markings</property> <property name="resizable">False</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-vbox1"> @@ -79,9 +90,9 @@ <object class="GtkLabel" id="type"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="use_underline">True</property> - <property name="mnemonic_widget">treeview:border</property> + <property name="mnemonic_widget">treeview</property> + <property name="xalign">0</property> </object> <packing> <property name="expand">False</property> @@ -90,13 +101,36 @@ </packing> </child> <child> - <object class="GtkTreeView" id="treeview:border"> + <object class="GtkScrolledWindow"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hexpand">True</property> <property name="vexpand">True</property> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection1"/> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="treeview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="vexpand">True</property> + <property name="model">liststore1</property> + <property name="headers_visible">False</property> + <property name="headers_clickable">False</property> + <property name="search_column">0</property> + <property name="show_expanders">False</property> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="treeview-selection1"/> + </child> + <child> + <object class="GtkTreeViewColumn" id="treeviewcolumn1"> + <child> + <object class="GtkCellRendererText" id="cellrenderertext1"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + </child> + </object> </child> </object> <packing> @@ -132,5 +166,8 @@ <action-widget response="-5">ok</action-widget> <action-widget response="-6">cancel</action-widget> </action-widgets> + <child> + <placeholder/> + </child> </object> </interface> |