summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-04-16 20:52:37 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-04-17 10:03:27 +0200
commit8a35cafb58c38e84541a44f8534c0511d2400e75 (patch)
tree276c93c12f6e4a9a562384a612224c00fd7ec121 /sw
parent82fb4c66103073043d17b5cea845e35410b826f3 (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.hxx2
-rw-r--r--sw/source/ui/dialog/swdlgfact.cxx9
-rw-r--r--sw/source/ui/dialog/swdlgfact.hxx15
-rw-r--r--sw/source/ui/dialog/swuiexp.cxx1
-rw-r--r--sw/source/ui/index/multmrk.cxx50
-rw-r--r--sw/source/uibase/inc/multmrk.hxx29
-rw-r--r--sw/source/uibase/shells/textidx.cxx2
-rw-r--r--sw/uiconfig/swriter/ui/selectindexdialog.ui49
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>