summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-03-17 19:22:08 +0000
committerCaolán McNamara <caolanm@redhat.com>2019-03-18 22:10:57 +0100
commitc403c86c6da4db0a6f2864ad4e13def9a3898cd4 (patch)
tree3b6e0ca5c6255506989f4312ac7a7723eb359b84
parentcc0b0f94b1888709f45bf63b98761a471f73f041 (diff)
weld SwFieldRefPage
Change-Id: I5ae3965aa681ea1f5a005fbc8dad4d0ce36af1b3 Reviewed-on: https://gerrit.libreoffice.org/69373 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--cui/uiconfig/ui/pageformatpage.ui264
-rw-r--r--include/vcl/weld.hxx8
-rwxr-xr-xsolenv/bin/native-code.py1
-rw-r--r--sw/Library_swui.mk1
-rw-r--r--sw/source/ui/fldui/FldRefTreeListBox.cxx69
-rw-r--r--sw/source/ui/fldui/FldRefTreeListBox.hxx34
-rw-r--r--sw/source/ui/fldui/fldref.cxx500
-rw-r--r--sw/source/ui/fldui/fldref.hxx40
-rw-r--r--sw/uiconfig/swriter/ui/fldrefpage.ui184
-rw-r--r--sw/uiconfig/swriter/ui/templatedialog8.ui22
-rw-r--r--vcl/source/app/salvtables.cxx7
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx10
12 files changed, 567 insertions, 573 deletions
diff --git a/cui/uiconfig/ui/pageformatpage.ui b/cui/uiconfig/ui/pageformatpage.ui
index f864e9f6fdd9..61ae2fca7fe1 100644
--- a/cui/uiconfig/ui/pageformatpage.ui
+++ b/cui/uiconfig/ui/pageformatpage.ui
@@ -81,7 +81,6 @@
<property name="can_focus">True</property>
<property name="halign">start</property>
<property name="activates_default">True</property>
- <property name="update_policy">if-valid</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -217,6 +216,7 @@
<child>
<object class="GtkDrawingArea" id="drawingareaPageDirection">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
@@ -310,31 +310,43 @@
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
- <object class="GtkLabel" id="labelTopMargin">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="pageformatpage|labelTopMargin">Top:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargTop</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="labelBottomMargin">
+ <object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes" context="pageformatpage|labelBottomMargin">Bottom:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargBot</property>
- <property name="xalign">0</property>
+ <property name="valign">center</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="labelLeftMargin">
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="pageformatpage|labelLeftMargin">Left:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">spinMargLeft</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="labelInner">
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="pageformatpage|labelInner">I_nner:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">spinMargLeft</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="top_attach">0</property>
</packing>
</child>
<child>
@@ -349,39 +361,6 @@
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="spinMargRight">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="spinMargTop">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkSpinButton" id="spinMargBot">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="activates_default">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -422,43 +401,64 @@
</packing>
</child>
<child>
- <object class="GtkBox" id="box3">
+ <object class="GtkSpinButton" id="spinMargRight">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="activates_default">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="labelTopMargin">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">center</property>
- <property name="orientation">vertical</property>
- <child>
- <object class="GtkLabel" id="labelLeftMargin">
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="pageformatpage|labelLeftMargin">Left:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargLeft</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="labelInner">
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="pageformatpage|labelInner">I_nner:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">spinMargLeft</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="label" translatable="yes" context="pageformatpage|labelTopMargin">Top:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">spinMargTop</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="spinMargTop">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="activates_default">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="labelBottomMargin">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="pageformatpage|labelBottomMargin">Bottom:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">spinMargBot</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="spinMargBot">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="activates_default">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
</packing>
</child>
</object>
@@ -548,6 +548,52 @@
</packing>
</child>
<child>
+ <object class="GtkAlignment" id="alignment8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="labelRegisterStyle">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ <property name="label" translatable="yes" context="pageformatpage|labelRegisterStyle">Reference _Style:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">comboRegisterStyle</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="comboRegisterStyle">
+ <property name="can_focus">False</property>
+ <property name="no_show_all">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkComboBoxText" id="comboPageLayout">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -637,52 +683,6 @@
</packing>
</child>
<child>
- <object class="GtkAlignment" id="alignment8">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="left_padding">12</property>
- <child>
- <object class="GtkBox" id="box1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="labelRegisterStyle">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="label" translatable="yes" context="pageformatpage|labelRegisterStyle">Reference _Style:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">comboRegisterStyle</property>
- <property name="xalign">0</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="comboRegisterStyle">
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- <property name="width">2</property>
- </packing>
- </child>
- <child>
<placeholder/>
</child>
</object>
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index f0f7c95f3cf6..a88cfe5ea04f 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -515,6 +515,9 @@ public:
class VCL_DLLPUBLIC TreeView : virtual public Container
{
+private:
+ OUString m_sSavedValue;
+
protected:
Link<TreeView&, void> m_aChangeHdl;
Link<TreeView&, void> m_aRowActivatedHdl;
@@ -713,6 +716,7 @@ public:
virtual int n_children() const = 0;
virtual void make_sorted() = 0;
+ virtual void make_unsorted() = 0;
virtual bool get_sort_order() const = 0;
virtual void set_sort_order(bool bAscending) = 0;
// TRUE ascending, FALSE, descending, INDET, neither (off)
@@ -736,6 +740,10 @@ public:
void set_toggle_columns_as_radio(const std::vector<int>& rCols) { m_aRadioIndexes = rCols; }
+ void save_value() { m_sSavedValue = get_selected_text(); }
+ OUString const& get_saved_value() const { return m_sSavedValue; }
+ bool get_value_changed_from_saved() const { return m_sSavedValue != get_selected_text(); }
+
using Widget::set_sensitive;
};
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index 88942fe07037..8c93cd1f081f 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -516,7 +516,6 @@ custom_widgets = [
'SvxTextEncodingBox',
'SvxTextEncodingBox',
'SwAddressPreview',
- 'SwFieldRefTreeListBox',
'SwGlTreeListBox',
'SwMarkPreview',
'SwNavHelpToolBox',
diff --git a/sw/Library_swui.mk b/sw/Library_swui.mk
index 2da933936257..51d80f89cff9 100644
--- a/sw/Library_swui.mk
+++ b/sw/Library_swui.mk
@@ -111,7 +111,6 @@ $(eval $(call gb_Library_add_exception_objects,swui,\
sw/source/ui/envelp/mailmrge \
sw/source/ui/fldui/DropDownFieldDialog \
sw/source/ui/fldui/DropDownFormFieldDialog \
- sw/source/ui/fldui/FldRefTreeListBox \
sw/source/ui/fldui/changedb \
sw/source/ui/fldui/flddb \
sw/source/ui/fldui/flddinf \
diff --git a/sw/source/ui/fldui/FldRefTreeListBox.cxx b/sw/source/ui/fldui/FldRefTreeListBox.cxx
deleted file mode 100644
index c69d6141c74c..000000000000
--- a/sw/source/ui/fldui/FldRefTreeListBox.cxx
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-
-#include "FldRefTreeListBox.hxx"
-
-#include <vcl/builderfactory.hxx>
-#include <vcl/event.hxx>
-#include <vcl/help.hxx>
-
-SwFieldRefTreeListBox::SwFieldRefTreeListBox(vcl::Window* pParent, WinBits nStyle)
- : SvTreeListBox(pParent, nStyle)
-{
-}
-
-VCL_BUILDER_FACTORY_CONSTRUCTOR(SwFieldRefTreeListBox, WB_TABSTOP)
-
-void SwFieldRefTreeListBox::RequestHelp( const HelpEvent& rHEvt )
-{
- bool bCallBase( true );
- if ( rHEvt.GetMode() & HelpEventMode::QUICK )
- {
- Point aPos( ScreenToOutputPixel( rHEvt.GetMousePosPixel() ));
- SvTreeListEntry* pEntry = GetEntry( aPos );
- if( pEntry )
- {
- OUString sEntry( GetEntryText( pEntry ) );
- SvLBoxTab* pTab;
- SvLBoxItem* pItem = GetItem( pEntry, aPos.X(), &pTab );
- if( pItem )
- {
- aPos = GetEntryPosition( pEntry );
-
- aPos.setX( GetTabPos( pEntry, pTab ) );
- Size aSize( pItem->GetSize( this, pEntry ) );
-
- if((aPos.X() + aSize.Width()) > GetSizePixel().Width())
- aSize.setWidth( GetSizePixel().Width() - aPos.X() );
-
- aPos = OutputToScreenPixel(aPos);
- tools::Rectangle aItemRect( aPos, aSize );
- Help::ShowQuickHelp( this, aItemRect, sEntry,
- QuickHelpFlags::Left|QuickHelpFlags::VCenter );
- bCallBase = false;
- }
- }
- }
- if ( bCallBase )
- {
- Window::RequestHelp( rHEvt );
- }
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/fldui/FldRefTreeListBox.hxx b/sw/source/ui/fldui/FldRefTreeListBox.hxx
deleted file mode 100644
index 6f7631f4489c..000000000000
--- a/sw/source/ui/fldui/FldRefTreeListBox.hxx
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-#ifndef INCLUDED_SW_SOURCE_UI_FLDUI_FLDREFTREELISTBOX_HXX
-#define INCLUDED_SW_SOURCE_UI_FLDUI_FLDREFTREELISTBOX_HXX
-
-#include <vcl/treelistbox.hxx>
-
-class SwFieldRefTreeListBox : public SvTreeListBox
-{
-protected:
- virtual void RequestHelp( const HelpEvent& rHEvt ) override;
-
-public:
- SwFieldRefTreeListBox(vcl::Window* pParent, WinBits nStyle);
-};
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/fldui/fldref.cxx b/sw/source/ui/fldui/fldref.cxx
index 5e00e0992a6e..d9e084f01413 100644
--- a/sw/source/ui/fldui/fldref.cxx
+++ b/sw/source/ui/fldui/fldref.cxx
@@ -53,70 +53,61 @@ static sal_uInt16 nFieldDlgFormatSel = 0;
#define USER_DATA_VERSION_1 "1"
#define USER_DATA_VERSION USER_DATA_VERSION_1
-SwFieldRefPage::SwFieldRefPage(vcl::Window* pParent, const SfxItemSet *const pCoreSet )
- : SwFieldPage(pParent, "FieldRefPage",
- "modules/swriter/ui/fldrefpage.ui", pCoreSet)
+SwFieldRefPage::SwFieldRefPage(TabPageParent pParent, const SfxItemSet *const pCoreSet )
+ : SwFieldPage(pParent, "modules/swriter/ui/fldrefpage.ui", "FieldRefPage", pCoreSet)
, maOutlineNodes()
, maNumItems()
, mpSavedSelectedTextNode(nullptr)
, mnSavedSelectedPos(0)
+ , m_xTypeLB(m_xBuilder->weld_tree_view("type"))
+ , m_xSelection(m_xBuilder->weld_widget("selectframe"))
+ , m_xSelectionLB(m_xBuilder->weld_tree_view("select"))
+ , m_xSelectionToolTipLB(m_xBuilder->weld_tree_view("selecttip"))
+ , m_xFormat(m_xBuilder->weld_widget("formatframe"))
+ , m_xFormatLB(m_xBuilder->weld_tree_view("format"))
+ , m_xNameFT(m_xBuilder->weld_label("nameft"))
+ , m_xNameED(m_xBuilder->weld_entry("name"))
+ , m_xValueED(m_xBuilder->weld_entry("value"))
+ , m_xFilterED(m_xBuilder->weld_entry("filter"))
{
- get(m_pTypeLB, "type");
- get(m_pSelection, "selectframe");
- get(m_pSelectionLB, "select");
- m_pSelectionLB->SetStyle(m_pSelectionLB->GetStyle() | WB_SORT);
+ m_xSelectionLB->make_sorted();
// #i83479#
- get(m_pSelectionToolTipLB, "selecttip");
- get(m_pFormat, "formatframe");
- get(m_pFormatLB, "format");
for (size_t i = 0; i < SAL_N_ELEMENTS(FLD_REF_PAGE_TYPES); ++i)
{
- m_pTypeLB->InsertEntry(SwResId(FLD_REF_PAGE_TYPES[i]));
- m_pFormatLB->InsertEntry(SwResId(FLD_REF_PAGE_TYPES[i]));
+ m_xTypeLB->append_text(SwResId(FLD_REF_PAGE_TYPES[i]));
+ m_xFormatLB->append_text(SwResId(FLD_REF_PAGE_TYPES[i]));
}
- get(m_pNameFT, "nameft");
- get(m_pNameED, "name");
- get(m_pValueED, "value");
- get(m_pFilterED, "filter");
-
- sBookmarkText = m_pTypeLB->GetEntry(0);
- sFootnoteText = m_pTypeLB->GetEntry(1);
- sEndnoteText = m_pTypeLB->GetEntry(2);
- // #i83479#
- sHeadingText = m_pTypeLB->GetEntry(3);
- sNumItemText = m_pTypeLB->GetEntry(4);
- m_pTypeLB->Clear();
- long nHeight = m_pTypeLB->GetTextHeight() * 20;
- m_pSelection->set_height_request(nHeight);
- m_pSelectionToolTipLB->set_height_request(nHeight);
+ sBookmarkText = m_xTypeLB->get_text(0);
+ sFootnoteText = m_xTypeLB->get_text(1);
+ sEndnoteText = m_xTypeLB->get_text(2);
+ // #i83479#
+ sHeadingText = m_xTypeLB->get_text(3);
+ sNumItemText = m_xTypeLB->get_text(4);
- nHeight = m_pTypeLB->GetTextHeight() * 8;
- m_pTypeLB->set_height_request(nHeight);
- m_pFormatLB->set_height_request(nHeight);
+ auto nHeight = m_xTypeLB->get_height_rows(8);
+ auto nWidth = LogicToPixel(Size(FIELD_COLUMN_WIDTH, 0), MapMode(MapUnit::MapAppFont)).Width();
+ m_xTypeLB->set_size_request(nWidth, nHeight);
+ m_xFormatLB->set_size_request(nWidth, nHeight);
+ m_xSelection->set_size_request(nWidth * 2, nHeight);
+ nHeight = m_xTypeLB->get_height_rows(20);
+ m_xSelectionToolTipLB->set_size_request(nHeight, nWidth*2);
- long nWidth = m_pTypeLB->LogicToPixel(Size(FIELD_COLUMN_WIDTH, 0), MapMode(MapUnit::MapAppFont)).Width();
- m_pTypeLB->set_width_request(nWidth);
- m_pFormatLB->set_width_request(nWidth);
- m_pSelection->set_width_request(nWidth*2);
- m_pSelectionToolTipLB->set_width_request(nWidth*2);
+ m_xTypeLB->clear();
- m_pNameED->SetModifyHdl(LINK(this, SwFieldRefPage, ModifyHdl));
- m_pFilterED->SetModifyHdl( LINK( this, SwFieldRefPage, ModifyHdl_Impl ) );
+ m_xNameED->connect_changed(LINK(this, SwFieldRefPage, ModifyHdl));
+ m_xFilterED->connect_changed( LINK( this, SwFieldRefPage, ModifyHdl_Impl ) );
- m_pTypeLB->SetDoubleClickHdl (LINK(this, SwFieldRefPage, ListBoxInsertHdl));
- m_pTypeLB->SetSelectHdl (LINK(this, SwFieldRefPage, TypeHdl));
- m_pSelectionLB->SetSelectHdl (LINK(this, SwFieldRefPage, SubTypeListBoxHdl));
- m_pSelectionLB->SetDoubleClickHdl (LINK(this, SwFieldRefPage, ListBoxInsertHdl));
- m_pFormatLB->SetDoubleClickHdl (LINK(this, SwFieldRefPage, ListBoxInsertHdl));
+ m_xTypeLB->connect_row_activated(LINK(this, SwFieldRefPage, TreeViewInsertHdl));
+ m_xTypeLB->connect_changed(LINK(this, SwFieldRefPage, TypeHdl));
+ m_xSelectionLB->connect_changed(LINK(this, SwFieldRefPage, SubTypeListBoxHdl));
+ m_xSelectionLB->connect_row_activated(LINK(this, SwFieldRefPage, TreeViewInsertHdl));
+ m_xFormatLB->connect_row_activated(LINK(this, SwFieldRefPage, TreeViewInsertHdl));
// #i83479#
- m_pSelectionToolTipLB->SetSelectHdl( LINK(this, SwFieldRefPage, SubTypeTreeListBoxHdl) );
- m_pSelectionToolTipLB->SetDoubleClickHdl( LINK(this, SwFieldRefPage, TreeListBoxInsertHdl) );
- m_pSelectionToolTipLB->SetStyle( m_pSelectionToolTipLB->GetStyle() | WB_HSCROLL );
- m_pSelectionToolTipLB->SetSpaceBetweenEntries(1);
- m_pSelectionToolTipLB->SetHighlightRange();
- m_pFilterED->GrabFocus();
+ m_xSelectionToolTipLB->connect_changed( LINK(this, SwFieldRefPage, SubTypeTreeListBoxHdl) );
+ m_xSelectionToolTipLB->connect_row_activated( LINK(this, SwFieldRefPage, TreeViewInsertHdl) );
+ m_xFilterED->grab_focus();
}
SwFieldRefPage::~SwFieldRefPage()
@@ -124,24 +115,9 @@ SwFieldRefPage::~SwFieldRefPage()
disposeOnce();
}
-void SwFieldRefPage::dispose()
-{
- m_pTypeLB.clear();
- m_pSelection.clear();
- m_pSelectionLB.clear();
- m_pSelectionToolTipLB.clear();
- m_pFormat.clear();
- m_pFormatLB.clear();
- m_pNameFT.clear();
- m_pNameED.clear();
- m_pFilterED.clear();
- m_pValueED.clear();
- SwFieldPage::dispose();
-}
-
-IMPL_LINK_NOARG(SwFieldRefPage, ModifyHdl_Impl, Edit&, void)
+IMPL_LINK_NOARG(SwFieldRefPage, ModifyHdl_Impl, weld::Entry&, void)
{
- UpdateSubType(comphelper::string::strip(m_pFilterED->GetText(), ' '));
+ UpdateSubType(comphelper::string::strip(m_xFilterED->get_text(), ' '));
}
// #i83479#
@@ -149,16 +125,16 @@ void SwFieldRefPage::SaveSelectedTextNode()
{
mpSavedSelectedTextNode = nullptr;
mnSavedSelectedPos = 0;
- if ( m_pSelectionToolTipLB->IsVisible() )
+ if ( m_xSelectionToolTipLB->get_visible() )
{
- SvTreeListEntry* pEntry = m_pSelectionToolTipLB->GetCurEntry();
- if ( pEntry )
+ int nEntry = m_xSelectionToolTipLB->get_selected_index();
+ if (nEntry != -1)
{
- const sal_uInt16 nTypeId = static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(m_pTypeLB->GetEntryData(GetTypeSel())));
+ const sal_uInt16 nTypeId = m_xTypeLB->get_id(GetTypeSel()).toUInt32();
if ( nTypeId == REFFLDFLAG_HEADING )
{
- mnSavedSelectedPos = static_cast<size_t>(reinterpret_cast<sal_uLong>(pEntry->GetUserData()));
+ mnSavedSelectedPos = m_xSelectionToolTipLB->get_id(nEntry).toUInt32();
if ( mnSavedSelectedPos < maOutlineNodes.size() )
{
mpSavedSelectedTextNode = maOutlineNodes[mnSavedSelectedPos];
@@ -166,7 +142,7 @@ void SwFieldRefPage::SaveSelectedTextNode()
}
else if ( nTypeId == REFFLDFLAG_NUMITEM )
{
- mnSavedSelectedPos = static_cast<size_t>(reinterpret_cast<sal_uLong>(pEntry->GetUserData()));
+ mnSavedSelectedPos = m_xSelectionToolTipLB->get_id(nEntry).toUInt32();
if ( mnSavedSelectedPos < maNumItems.size() )
{
mpSavedSelectedTextNode = maNumItems[mnSavedSelectedPos]->GetTextNode();
@@ -180,21 +156,20 @@ void SwFieldRefPage::Reset(const SfxItemSet* )
{
if (!IsFieldEdit())
{
- SavePos(m_pTypeLB);
+ SavePos(*m_xTypeLB);
// #i83479#
SaveSelectedTextNode();
}
- SetSelectionSel(LISTBOX_ENTRY_NOTFOUND);
- SetTypeSel(LISTBOX_ENTRY_NOTFOUND);
+ SetSelectionSel(-1);
+ SetTypeSel(-1);
Init(); // general initialisation
// initialise TypeListBox
- m_pTypeLB->SetUpdateMode(false);
- m_pTypeLB->Clear();
+ m_xTypeLB->freeze();
+ m_xTypeLB->clear();
// fill Type-Listbox
- sal_Int32 nPos;
// set/insert reference
const SwFieldGroupRgn& rRg = SwFieldMgr::GetGroupRange(IsFieldDlgHtmlMode(), GetGroup());
@@ -204,17 +179,14 @@ void SwFieldRefPage::Reset(const SfxItemSet* )
if (!IsFieldEdit() || nTypeId != TYP_SETREFFLD)
{
- nPos = m_pTypeLB->InsertEntry(SwFieldMgr::GetTypeStr(i), i - rRg.nStart);
- m_pTypeLB->SetEntryData(nPos, reinterpret_cast<void*>(nTypeId));
+ m_xTypeLB->append(OUString::number(nTypeId), SwFieldMgr::GetTypeStr(i));
}
}
// #i83479#
// entries for headings and numbered items
- nPos = m_pTypeLB->InsertEntry(sHeadingText);
- m_pTypeLB->SetEntryData(nPos, reinterpret_cast<void*>(REFFLDFLAG_HEADING));
- nPos = m_pTypeLB->InsertEntry(sNumItemText);
- m_pTypeLB->SetEntryData(nPos, reinterpret_cast<void*>(REFFLDFLAG_NUMITEM));
+ m_xTypeLB->append(OUString::number(REFFLDFLAG_HEADING), sHeadingText);
+ m_xTypeLB->append(OUString::number(REFFLDFLAG_NUMITEM), sNumItemText);
// fill up with the sequence types
SwWrtShell *pSh = GetWrtShell();
@@ -234,34 +206,30 @@ void SwFieldRefPage::Reset(const SfxItemSet* )
if ((nsSwGetSetExpType::GSE_SEQ & pType->GetType()) && pType->HasWriterListeners() && pSh->IsUsed(*pType))
{
- nPos = m_pTypeLB->InsertEntry(pType->GetName());
- m_pTypeLB->SetEntryData(nPos, reinterpret_cast<void*>(static_cast<sal_uIntPtr>(REFFLDFLAG | n)));
+ m_xTypeLB->append(OUString::number(REFFLDFLAG | n), pType->GetName());
}
}
// text marks - now always (because of globaldocuments)
- nPos = m_pTypeLB->InsertEntry(sBookmarkText);
- m_pTypeLB->SetEntryData(nPos, reinterpret_cast<void*>(REFFLDFLAG_BOOKMARK));
+ m_xTypeLB->append(OUString::number(REFFLDFLAG_BOOKMARK), sBookmarkText);
// footnotes:
if( pSh->HasFootnotes() )
{
- nPos = m_pTypeLB->InsertEntry(sFootnoteText);
- m_pTypeLB->SetEntryData(nPos, reinterpret_cast<void*>(REFFLDFLAG_FOOTNOTE));
+ m_xTypeLB->append(OUString::number(REFFLDFLAG_FOOTNOTE), sFootnoteText);
}
// endnotes:
if ( pSh->HasFootnotes(true) )
{
- nPos = m_pTypeLB->InsertEntry(sEndnoteText);
- m_pTypeLB->SetEntryData(nPos, reinterpret_cast<void*>(REFFLDFLAG_ENDNOTE));
+ m_xTypeLB->append(OUString::number(REFFLDFLAG_ENDNOTE), sEndnoteText);
}
+ m_xTypeLB->thaw();
+
// select old Pos
if (!IsFieldEdit())
- RestorePos(m_pTypeLB);
-
- m_pTypeLB->SetUpdateMode(true);
+ RestorePos(*m_xTypeLB);
nFieldDlgFormatSel = 0;
@@ -276,11 +244,11 @@ void SwFieldRefPage::Reset(const SfxItemSet* )
const sal_uInt16 nVal = static_cast< sal_uInt16 >(sUserData.getToken(0, ';', nIdx).toInt32());
if(nVal != USHRT_MAX)
{
- for(sal_Int32 i = 0; i < m_pTypeLB->GetEntryCount(); i++)
+ for(sal_Int32 i = 0, nEntryCount = m_xTypeLB->n_children(); i < nEntryCount; ++i)
{
- if(nVal == static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(m_pTypeLB->GetEntryData(i))))
+ if (nVal == m_xTypeLB->get_id(i).toUInt32())
{
- m_pTypeLB->SelectEntryPos(i);
+ m_xTypeLB->select(i);
break;
}
}
@@ -291,31 +259,31 @@ void SwFieldRefPage::Reset(const SfxItemSet* )
}
}
}
- TypeHdl(*m_pTypeLB);
+ TypeHdl(*m_xTypeLB);
if(nFormatBoxPosition != USHRT_MAX)
{
- m_pFormatLB->SelectEntryPos(nFormatBoxPosition);
+ m_xFormatLB->select(nFormatBoxPosition);
}
if (IsFieldEdit())
{
- m_pTypeLB->SaveValue();
- m_pSelectionLB->SaveValue();
- m_pFormatLB->SaveValue();
- m_pNameED->SaveValue();
- m_pValueED->SaveValue();
- m_pFilterED->SetText(OUString());
+ m_xTypeLB->save_value();
+ m_xSelectionLB->save_value();
+ m_xFormatLB->save_value();
+ m_xNameED->save_value();
+ m_xValueED->save_value();
+ m_xFilterED->set_text(OUString());
}
}
-IMPL_LINK_NOARG(SwFieldRefPage, TypeHdl, ListBox&, void)
+IMPL_LINK_NOARG(SwFieldRefPage, TypeHdl, weld::TreeView&, void)
{
// save old ListBoxPos
const sal_Int32 nOld = GetTypeSel();
// current ListBoxPos
- SetTypeSel(m_pTypeLB->GetSelectedEntryPos());
+ SetTypeSel(m_xTypeLB->get_selected_index());
- if(GetTypeSel() == LISTBOX_ENTRY_NOTFOUND)
+ if(GetTypeSel() == -1)
{
if (IsFieldEdit())
{
@@ -370,47 +338,46 @@ IMPL_LINK_NOARG(SwFieldRefPage, TypeHdl, ListBox&, void)
break;
}
- if (m_pTypeLB->GetEntryPos(sName) == LISTBOX_ENTRY_NOTFOUND) // reference to deleted mark
+ if (m_xTypeLB->find_text(sName) == -1) // reference to deleted mark
{
- sal_Int32 nPos = m_pTypeLB->InsertEntry(sName);
- m_pTypeLB->SetEntryData(nPos, reinterpret_cast<void*>(nFlag));
+ m_xTypeLB->append(OUString::number(nFlag), sName);
}
- m_pTypeLB->SelectEntry(sName);
- SetTypeSel(m_pTypeLB->GetSelectedEntryPos());
+ m_xTypeLB->select_text(sName);
+ SetTypeSel(m_xTypeLB->get_selected_index());
}
else
{
SetTypeSel(0);
- m_pTypeLB->SelectEntryPos(0);
+ m_xTypeLB->select(0);
}
}
if (nOld == GetTypeSel())
return;
- sal_uInt16 nTypeId = static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(m_pTypeLB->GetEntryData(GetTypeSel())));
+ sal_uInt16 nTypeId = m_xTypeLB->get_id(GetTypeSel()).toUInt32();
// fill selection-ListBox
- UpdateSubType(comphelper::string::strip(m_pFilterED->GetText(), ' '));
+ UpdateSubType(comphelper::string::strip(m_xFilterED->get_text(), ' '));
bool bName = false;
nFieldDlgFormatSel = 0;
- if ( ( !IsFieldEdit() || m_pSelectionLB->GetEntryCount() ) &&
- nOld != LISTBOX_ENTRY_NOTFOUND )
+ if ( ( !IsFieldEdit() || m_xSelectionLB->n_children() ) &&
+ nOld != -1 )
{
- m_pNameED->SetText(OUString());
- m_pValueED->SetText(OUString());
- m_pFilterED->SetText(OUString());
+ m_xNameED->set_text(OUString());
+ m_xValueED->set_text(OUString());
+ m_xFilterED->set_text(OUString());
}
switch (nTypeId)
{
case TYP_GETREFFLD:
- if (REFFLDFLAG & static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(m_pTypeLB->GetEntryData(nOld))))
+ if (REFFLDFLAG & m_xTypeLB->get_id(nOld).toUInt32())
// the old one stays
- nFieldDlgFormatSel = m_pFormatLB->GetSelectedEntryPos();
+ nFieldDlgFormatSel = m_xFormatLB->get_selected_index();
bName = true;
break;
@@ -424,47 +391,48 @@ IMPL_LINK_NOARG(SwFieldRefPage, TypeHdl, ListBox&, void)
default:
if( REFFLDFLAG & nTypeId )
{
- const sal_uInt16 nOldId = static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(m_pTypeLB->GetEntryData(nOld)));
+ const sal_uInt16 nOldId = m_xTypeLB->get_id(nOld).toUInt32();
if( nOldId & REFFLDFLAG || nOldId == TYP_GETREFFLD )
// then the old one stays
- nFieldDlgFormatSel = m_pFormatLB->GetSelectedEntryPos();
+ nFieldDlgFormatSel = m_xFormatLB->get_selected_index();
}
break;
}
- m_pNameED->Enable(bName);
- m_pNameFT->Enable(bName);
+ m_xNameED->set_sensitive(bName);
+ m_xNameFT->set_sensitive(bName);
// fill Format-Listbox
sal_Int32 nSize = FillFormatLB(nTypeId);
bool bFormat = nSize != 0;
- m_pFormat->Enable(bFormat);
+ m_xFormat->set_sensitive(bFormat);
SubTypeHdl();
- ModifyHdl(*m_pNameED);
- ModifyHdl(*m_pFilterED);
-
+ ModifyHdl(*m_xNameED);
+ ModifyHdl(*m_xFilterED);
}
-IMPL_LINK_NOARG(SwFieldRefPage, SubTypeTreeListBoxHdl, SvTreeListBox*, void)
+IMPL_LINK_NOARG(SwFieldRefPage, SubTypeTreeListBoxHdl, weld::TreeView&, void)
{
SubTypeHdl();
}
-IMPL_LINK_NOARG(SwFieldRefPage, SubTypeListBoxHdl, ListBox&, void)
+
+IMPL_LINK_NOARG(SwFieldRefPage, SubTypeListBoxHdl, weld::TreeView&, void)
{
SubTypeHdl();
}
+
void SwFieldRefPage::SubTypeHdl()
{
- sal_uInt16 nTypeId = static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(m_pTypeLB->GetEntryData(GetTypeSel())));
+ sal_uInt16 nTypeId = m_xTypeLB->get_id(GetTypeSel()).toUInt32();
switch(nTypeId)
{
case TYP_GETREFFLD:
- if (!IsFieldEdit() || m_pSelectionLB->GetSelectedEntryCount())
+ if (!IsFieldEdit() || m_xSelectionLB->get_selected_index() != -1)
{
- m_pNameED->SetText(m_pSelectionLB->GetSelectedEntry());
- ModifyHdl(*m_pNameED);
+ m_xNameED->set_text(m_xSelectionLB->get_selected_text());
+ ModifyHdl(*m_xNameED);
}
break;
@@ -475,7 +443,7 @@ void SwFieldRefPage::SubTypeHdl()
pSh = ::GetActiveWrtShell();
if(pSh)
{
- m_pValueED->SetText(pSh->GetSelText());
+ m_xValueED->set_text(pSh->GetSelText());
}
}
@@ -484,17 +452,15 @@ void SwFieldRefPage::SubTypeHdl()
case REFFLDFLAG_HEADING:
case REFFLDFLAG_NUMITEM:
{
- if ( m_pSelectionToolTipLB->GetCurEntry() )
- {
- m_pNameED->SetText( m_pSelectionToolTipLB->GetEntryText(
- m_pSelectionToolTipLB->GetCurEntry() ) );
- }
+ int nEntry = m_xSelectionToolTipLB->get_selected_index();
+ if (nEntry != -1)
+ m_xNameED->set_text(m_xSelectionToolTipLB->get_text(nEntry));
}
break;
default:
- if (!IsFieldEdit() || m_pSelectionLB->GetSelectedEntryCount())
- m_pNameED->SetText(m_pSelectionLB->GetSelectedEntry());
+ if (!IsFieldEdit() || m_xSelectionLB->get_selected_index() != -1)
+ m_xNameED->set_text(m_xSelectionLB->get_selected_text());
break;
}
}
@@ -506,33 +472,32 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
if(!pSh)
pSh = ::GetActiveWrtShell();
SwGetRefField* pRefField = static_cast<SwGetRefField*>(GetCurField());
- const sal_uInt16 nTypeId = static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(m_pTypeLB->GetEntryData(GetTypeSel())));
+ const sal_uInt16 nTypeId = m_xTypeLB->get_id(GetTypeSel()).toUInt32();
OUString sOldSel;
// #i83479#
- if ( m_pSelectionLB->IsVisible() )
+ if ( m_xSelectionLB->get_visible() )
{
- const sal_Int32 nSelectionSel = m_pSelectionLB->GetSelectedEntryPos();
- if (nSelectionSel != LISTBOX_ENTRY_NOTFOUND)
- {
- sOldSel = m_pSelectionLB->GetEntry(nSelectionSel);
- }
+ const sal_Int32 nSelectionSel = m_xSelectionLB->get_selected_index();
+ if (nSelectionSel != -1)
+ sOldSel = m_xSelectionLB->get_text(nSelectionSel);
}
if (IsFieldEdit() && sOldSel.isEmpty())
sOldSel = OUString::number( pRefField->GetSeqNo() + 1 );
- m_pSelectionLB->SetUpdateMode(false);
- m_pSelectionLB->Clear();
+ m_xSelectionLB->freeze();
+ m_xSelectionLB->clear();
// #i83479#
- m_pSelectionToolTipLB->SetUpdateMode(false);
- m_pSelectionToolTipLB->Clear();
+ m_xSelectionToolTipLB->freeze();
+ m_xSelectionToolTipLB->clear();
+ OUString m_sSelectionToolTipLBId;
bool bShowSelectionToolTipLB( false );
if( REFFLDFLAG & nTypeId )
{
if (nTypeId == REFFLDFLAG_BOOKMARK) // text marks!
{
- m_pSelectionLB->SetStyle(m_pSelectionLB->GetStyle()|WB_SORT);
+ m_xSelectionLB->make_sorted();
// get all text marks
IDocumentMarkAccess* const pMarkAccess = pSh->getIDocumentMarkAccess();
for(IDocumentMarkAccess::const_iterator_t ppMark = pMarkAccess->getBookmarksBegin();
@@ -545,7 +510,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
bool isSubstring = MatchSubstring(pBkmk->GetName(), filterString);
if(isSubstring)
{
- m_pSelectionLB->InsertEntry( pBkmk->GetName() );
+ m_xSelectionLB->append_text( pBkmk->GetName() );
}
}
}
@@ -554,7 +519,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
}
else if (nTypeId == REFFLDFLAG_FOOTNOTE)
{
- m_pSelectionLB->SetStyle(m_pSelectionLB->GetStyle() & ~WB_SORT);
+ m_xSelectionLB->make_unsorted();
SwSeqFieldList aArr;
const size_t nCnt = pSh->GetSeqFootnoteList( aArr );
@@ -563,7 +528,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
bool isSubstring = MatchSubstring(aArr[ n ].sDlgEntry, filterString);
if(isSubstring)
{
- m_pSelectionLB->InsertEntry( aArr[ n ].sDlgEntry );
+ m_xSelectionLB->append_text( aArr[ n ].sDlgEntry );
}
if (IsFieldEdit() && pRefField->GetSeqNo() == aArr[ n ].nSeqNo)
sOldSel = aArr[n].sDlgEntry;
@@ -571,7 +536,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
}
else if (nTypeId == REFFLDFLAG_ENDNOTE)
{
- m_pSelectionLB->SetStyle(m_pSelectionLB->GetStyle() & ~WB_SORT);
+ m_xSelectionLB->make_unsorted();
SwSeqFieldList aArr;
const size_t nCnt = pSh->GetSeqFootnoteList( aArr, true );
@@ -580,7 +545,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
bool isSubstring = MatchSubstring(aArr[ n ].sDlgEntry, filterString);
if(isSubstring)
{
- m_pSelectionLB->InsertEntry( aArr[ n ].sDlgEntry );
+ m_xSelectionLB->append_text( aArr[ n ].sDlgEntry );
}
if (IsFieldEdit() && pRefField->GetSeqNo() == aArr[ n ].nSeqNo)
sOldSel = aArr[n].sDlgEntry;
@@ -603,20 +568,20 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
bool isSubstring = MatchSubstring(pIDoc->getOutlineText(nOutlIdx, pSh->GetLayout(), true, true, false), filterString);
if(isSubstring)
{
- SvTreeListEntry* pEntry = m_pSelectionToolTipLB->InsertEntry(
- pIDoc->getOutlineText(nOutlIdx, pSh->GetLayout(), true, true, false));
- pEntry->SetUserData( reinterpret_cast<void*>(nOutlIdx) );
+ OUString sId(OUString::number(nOutlIdx));
+ m_xSelectionToolTipLB->append(sId,
+ pIDoc->getOutlineText(nOutlIdx, pSh->GetLayout(), true, true, false));
if ( ( IsFieldEdit() &&
pRefField->GetReferencedTextNode() == maOutlineNodes[nOutlIdx] ) ||
mpSavedSelectedTextNode == maOutlineNodes[nOutlIdx] )
{
- m_pSelectionToolTipLB->Select( pEntry );
+ m_sSelectionToolTipLBId = sId;
sOldSel.clear();
bCertainTextNodeSelected = true;
}
else if ( !bCertainTextNodeSelected && mnSavedSelectedPos == nOutlIdx )
{
- m_pSelectionToolTipLB->Select( pEntry );
+ m_sSelectionToolTipLBId = sId;
sOldSel.clear();
}
}
@@ -638,20 +603,20 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
bool isSubstring = MatchSubstring(pIDoc->getListItemText(*maNumItems[nNumItemIdx], *pSh->GetLayout()), filterString);
if(isSubstring)
{
- SvTreeListEntry* pEntry = m_pSelectionToolTipLB->InsertEntry(
+ OUString sId(OUString::number(nNumItemIdx));
+ m_xSelectionToolTipLB->append(sId,
pIDoc->getListItemText(*maNumItems[nNumItemIdx], *pSh->GetLayout()));
- pEntry->SetUserData( reinterpret_cast<void*>(nNumItemIdx) );
if ( ( IsFieldEdit() &&
pRefField->GetReferencedTextNode() == maNumItems[nNumItemIdx]->GetTextNode() ) ||
mpSavedSelectedTextNode == maNumItems[nNumItemIdx]->GetTextNode() )
{
- m_pSelectionToolTipLB->Select( pEntry );
+ m_sSelectionToolTipLBId = sId;
sOldSel.clear();
bCertainTextNodeSelected = true;
}
else if ( !bCertainTextNodeSelected && mnSavedSelectedPos == nNumItemIdx )
{
- m_pSelectionToolTipLB->Select( pEntry );
+ m_sSelectionToolTipLBId = sId;
sOldSel.clear();
}
}
@@ -659,7 +624,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
}
else
{
- m_pSelectionLB->SetStyle(m_pSelectionLB->GetStyle()|WB_SORT);
+ m_xSelectionLB->make_sorted();
// get the fields to Seq-FieldType:
SwSetExpFieldType* pType = static_cast<SwSetExpFieldType*>(pSh->GetFieldType(
@@ -677,7 +642,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
bool isSubstring = MatchSubstring(aArr[ n ].sDlgEntry, filterString);
if(isSubstring)
{
- m_pSelectionLB->InsertEntry( aArr[ n ].sDlgEntry );
+ m_xSelectionLB->append_text( aArr[ n ].sDlgEntry );
}
if (IsFieldEdit() && sOldSel.isEmpty() &&
aArr[ n ].nSeqNo == pRefField->GetSeqNo())
@@ -698,7 +663,7 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
bool isSubstring = MatchSubstring( i , filterString );
if(isSubstring)
{
- m_pSelectionLB->InsertEntry(i);
+ m_xSelectionLB->append_text(i);
}
}
@@ -707,42 +672,41 @@ void SwFieldRefPage::UpdateSubType(const OUString& filterString)
}
// #i83479#
- m_pSelectionToolTipLB->Show( bShowSelectionToolTipLB );
- m_pSelectionLB->Show( !bShowSelectionToolTipLB );
+ m_xSelectionLB->thaw();
+ m_xSelectionToolTipLB->thaw();
+ if (!m_sSelectionToolTipLBId.isEmpty())
+ m_xSelectionToolTipLB->select_id(m_sSelectionToolTipLBId);
+ m_xSelectionToolTipLB->set_visible( bShowSelectionToolTipLB );
+ m_xSelectionLB->set_visible( !bShowSelectionToolTipLB );
if ( bShowSelectionToolTipLB )
{
- m_pSelectionToolTipLB->SetUpdateMode(true);
+ bool bEnable = m_xSelectionToolTipLB->n_children() != 0;
+ m_xSelection->set_sensitive( bEnable );
- bool bEnable = m_pSelectionToolTipLB->GetEntryCount() != 0;
- m_pSelection->Enable( bEnable );
+ int nEntry = m_xSelectionToolTipLB->get_selected_index();
+ if (nEntry != -1)
+ m_xSelectionToolTipLB->scroll_to_row(nEntry);
- if ( m_pSelectionToolTipLB->GetCurEntry() != nullptr )
+ if (IsFieldEdit() && nEntry == -1)
{
- m_pSelectionToolTipLB->MakeVisible( m_pSelectionToolTipLB->GetCurEntry() );
- }
-
- if ( IsFieldEdit() && m_pSelectionToolTipLB->GetCurEntry() == nullptr )
- {
- m_pNameED->SetText(sOldSel);
+ m_xNameED->set_text(sOldSel);
}
}
else
{
- m_pSelectionLB->SetUpdateMode(true);
-
// enable or disable
- bool bEnable = m_pSelectionLB->GetEntryCount() != 0;
- m_pSelection->Enable( bEnable );
+ bool bEnable = m_xSelectionLB->n_children() != 0;
+ m_xSelection->set_sensitive( bEnable );
if ( bEnable )
{
- m_pSelectionLB->SelectEntry(sOldSel);
- if (!m_pSelectionLB->GetSelectedEntryCount() && !IsFieldEdit())
- m_pSelectionLB->SelectEntryPos(0);
+ m_xSelectionLB->select_text(sOldSel);
+ if (m_xSelectionLB->get_selected_index() == -1 && !IsFieldEdit())
+ m_xSelectionLB->select(0);
}
- if (IsFieldEdit() && !m_pSelectionLB->GetSelectedEntryCount()) // in case the reference was already deleted...
- m_pNameED->SetText(sOldSel);
+ if (IsFieldEdit() && m_xSelectionLB->get_selected_index() == -1) // in case the reference was already deleted...
+ m_xNameED->set_text(sOldSel);
}
}
@@ -789,12 +753,12 @@ sal_Int32 SwFieldRefPage::FillFormatLB(sal_uInt16 nTypeId)
{
OUString sOldSel;
- sal_Int32 nFormatSel = m_pFormatLB->GetSelectedEntryPos();
- if (nFormatSel != LISTBOX_ENTRY_NOTFOUND)
- sOldSel = m_pFormatLB->GetEntry(nFormatSel);
+ sal_Int32 nFormatSel = m_xFormatLB->get_selected_index();
+ if (nFormatSel != -1)
+ sOldSel = m_xFormatLB->get_text(nFormatSel);
// fill Format-Listbox
- m_pFormatLB->Clear();
+ m_xFormatLB->clear();
// reference has less that the annotation
sal_uInt16 nSize( 0 );
@@ -833,8 +797,8 @@ sal_Int32 SwFieldRefPage::FillFormatLB(sal_uInt16 nTypeId)
for (sal_uInt16 i = 0; i < nSize; i++)
{
- sal_Int32 nPos = m_pFormatLB->InsertEntry(GetFieldMgr().GetFormatStr( nTypeId, i ));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, i )));
+ OUString sId(OUString::number(GetFieldMgr().GetFormatId( nTypeId, i )));
+ m_xFormatLB->append(sId, GetFieldMgr().GetFormatStr(nTypeId, i));
}
// #i83479#
@@ -842,14 +806,14 @@ sal_Int32 SwFieldRefPage::FillFormatLB(sal_uInt16 nTypeId)
if ( bAddCrossRefFormats )
{
sal_uInt16 nFormat = FMT_REF_NUMBER_IDX;
- sal_Int32 nPos = m_pFormatLB->InsertEntry(GetFieldMgr().GetFormatStr( nTypeId, nFormat ));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, nFormat )));
+ OUString sId(OUString::number(GetFieldMgr().GetFormatId(nTypeId, nFormat)));
+ m_xFormatLB->append(sId, GetFieldMgr().GetFormatStr( nTypeId, nFormat ));
nFormat = FMT_REF_NUMBER_NO_CONTEXT_IDX;
- nPos = m_pFormatLB->InsertEntry(GetFieldMgr().GetFormatStr( nTypeId, nFormat ));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, nFormat )));
+ sId = OUString::number(GetFieldMgr().GetFormatId(nTypeId, nFormat));
+ m_xFormatLB->append(sId, GetFieldMgr().GetFormatStr( nTypeId, nFormat ));
nFormat = FMT_REF_NUMBER_FULL_CONTEXT_IDX;
- nPos = m_pFormatLB->InsertEntry(GetFieldMgr().GetFormatStr( nTypeId, nFormat ));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, nFormat )));
+ sId = OUString::number(GetFieldMgr().GetFormatId(nTypeId, nFormat));
+ m_xFormatLB->append(sId, GetFieldMgr().GetFormatStr( nTypeId, nFormat ));
nExtraSize = 3;
}
@@ -861,42 +825,42 @@ sal_Int32 SwFieldRefPage::FillFormatLB(sal_uInt16 nTypeId)
{
for (sal_uInt16 i = 0; i < nSize; i++)
{
- sal_Int32 nPos = m_pFormatLB->InsertEntry(SwResId(FMT_REF_WITH_LOWERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, i ));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, i + SAL_N_ELEMENTS(FMT_REF_ARY))));
+ OUString sId(OUString::number(GetFieldMgr().GetFormatId( nTypeId, i + SAL_N_ELEMENTS(FMT_REF_ARY))));
+ m_xFormatLB->append(sId, SwResId(FMT_REF_WITH_LOWERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, i ));
}
nExtraSize += nSize;
if ( bAddCrossRefFormats )
{
sal_uInt16 nFormat = FMT_REF_NUMBER_IDX + SAL_N_ELEMENTS(FMT_REF_ARY);
- sal_Int32 nPos = m_pFormatLB->InsertEntry(SwResId(FMT_REF_WITH_LOWERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, nFormat )));
+ OUString sId(OUString::number(GetFieldMgr().GetFormatId(nTypeId, nFormat)));
+ m_xFormatLB->append(sId, SwResId(FMT_REF_WITH_LOWERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
nFormat = FMT_REF_NUMBER_NO_CONTEXT_IDX + SAL_N_ELEMENTS(FMT_REF_ARY);
- nPos = m_pFormatLB->InsertEntry(SwResId(FMT_REF_WITH_LOWERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, nFormat )));
+ sId = OUString::number(GetFieldMgr().GetFormatId(nTypeId, nFormat));
+ m_xFormatLB->append(sId, SwResId(FMT_REF_WITH_LOWERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
nFormat = FMT_REF_NUMBER_FULL_CONTEXT_IDX + SAL_N_ELEMENTS(FMT_REF_ARY);
- nPos = m_pFormatLB->InsertEntry(SwResId(FMT_REF_WITH_LOWERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, nFormat )));
+ sId = OUString::number(GetFieldMgr().GetFormatId(nTypeId, nFormat));
+ m_xFormatLB->append(sId, SwResId(FMT_REF_WITH_LOWERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
nExtraSize += 3;
}
// uppercase article
for (sal_uInt16 i = 0; i < nSize; i++)
{
- sal_Int32 nPos = m_pFormatLB->InsertEntry(SwResId(FMT_REF_WITH_UPPERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, i ));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, i + 2 * SAL_N_ELEMENTS(FMT_REF_ARY))));
+ OUString sId(OUString::number(GetFieldMgr().GetFormatId( nTypeId, i + 2 * SAL_N_ELEMENTS(FMT_REF_ARY))));
+ m_xFormatLB->append(sId, SwResId(FMT_REF_WITH_UPPERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, i ));
}
nExtraSize += nSize;
if ( bAddCrossRefFormats )
{
sal_uInt16 nFormat = FMT_REF_NUMBER_IDX + 2 * SAL_N_ELEMENTS(FMT_REF_ARY);
- sal_Int32 nPos = m_pFormatLB->InsertEntry(SwResId(FMT_REF_WITH_UPPERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, nFormat )));
+ OUString sId(OUString::number(GetFieldMgr().GetFormatId(nTypeId, nFormat)));
+ m_xFormatLB->append(sId, SwResId(FMT_REF_WITH_UPPERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
nFormat = FMT_REF_NUMBER_NO_CONTEXT_IDX + 2 * SAL_N_ELEMENTS(FMT_REF_ARY);
- nPos = m_pFormatLB->InsertEntry(SwResId(FMT_REF_WITH_UPPERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, nFormat )));
+ sId = OUString::number(GetFieldMgr().GetFormatId(nTypeId, nFormat));
+ m_xFormatLB->append(sId, SwResId(FMT_REF_WITH_UPPERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
nFormat = FMT_REF_NUMBER_FULL_CONTEXT_IDX + 2 * SAL_N_ELEMENTS(FMT_REF_ARY);
- nPos = m_pFormatLB->InsertEntry(SwResId(FMT_REF_WITH_UPPERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
- m_pFormatLB->SetEntryData( nPos, reinterpret_cast<void*>(GetFieldMgr().GetFormatId( nTypeId, nFormat )));
+ sId = OUString::number(GetFieldMgr().GetFormatId(nTypeId, nFormat));
+ m_xFormatLB->append(sId, SwResId(FMT_REF_WITH_UPPERCASE_HU_ARTICLE) + GetFieldMgr().GetFormatStr( nTypeId, nFormat % SAL_N_ELEMENTS(FMT_REF_ARY)));
nExtraSize += 3;
}
}
@@ -907,15 +871,16 @@ sal_Int32 SwFieldRefPage::FillFormatLB(sal_uInt16 nTypeId)
if (nSize)
{
if (!IsFieldEdit())
- m_pFormatLB->SelectEntry(sOldSel);
+ m_xFormatLB->select_text(sOldSel);
else
- m_pFormatLB->SelectEntry(SwResId(FMT_REF_ARY[GetCurField()->GetFormat() % SAL_N_ELEMENTS(FMT_REF_ARY)]));
+ m_xFormatLB->select_text(SwResId(FMT_REF_ARY[GetCurField()->GetFormat() % SAL_N_ELEMENTS(FMT_REF_ARY)]));
- if (!m_pFormatLB->GetSelectedEntryCount())
+ if (m_xFormatLB->get_selected_index() == -1)
{
- m_pFormatLB->SelectEntryPos(nFieldDlgFormatSel);
- if (!m_pFormatLB->GetSelectedEntryCount())
- m_pFormatLB->SelectEntryPos(0);
+ if (nFieldDlgFormatSel < m_xFormatLB->n_children())
+ m_xFormatLB->select(nFieldDlgFormatSel);
+ else
+ m_xFormatLB->select(0);
}
}
@@ -923,13 +888,13 @@ sal_Int32 SwFieldRefPage::FillFormatLB(sal_uInt16 nTypeId)
}
// Modify
-IMPL_LINK_NOARG(SwFieldRefPage, ModifyHdl, Edit&, void)
+IMPL_LINK_NOARG(SwFieldRefPage, ModifyHdl, weld::Entry&, void)
{
- OUString aName(m_pNameED->GetText());
+ OUString aName(m_xNameED->get_text());
const bool bEmptyName = aName.isEmpty();
bool bEnable = true;
- sal_uInt16 nTypeId = static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(m_pTypeLB->GetEntryData(GetTypeSel())));
+ sal_uInt16 nTypeId = m_xTypeLB->get_id(GetTypeSel()).toUInt32();
if ((nTypeId == TYP_SETREFFLD && !GetFieldMgr().CanInsertRefMark(aName)) ||
(bEmptyName && (nTypeId == TYP_GETREFFLD || nTypeId == TYP_SETREFFLD ||
@@ -938,21 +903,21 @@ IMPL_LINK_NOARG(SwFieldRefPage, ModifyHdl, Edit&, void)
EnableInsert(bEnable);
- m_pSelectionLB->SelectEntry(aName);
+ m_xSelectionLB->select_text(aName);
}
bool SwFieldRefPage::FillItemSet(SfxItemSet* )
{
bool bModified = false;
- sal_uInt16 nTypeId = static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(m_pTypeLB->GetEntryData(GetTypeSel())));
+ sal_uInt16 nTypeId = m_xTypeLB->get_id(GetTypeSel()).toUInt32();
sal_uInt16 nSubType = 0;
- const sal_Int32 nEntryPos = m_pFormatLB->GetSelectedEntryPos();
- const sal_uLong nFormat = (nEntryPos == LISTBOX_ENTRY_NOTFOUND)
- ? 0 : reinterpret_cast<sal_uLong>(m_pFormatLB->GetEntryData(nEntryPos));
+ const sal_Int32 nEntryPos = m_xFormatLB->get_selected_index();
+ const sal_uLong nFormat = (nEntryPos == -1)
+ ? 0 : m_xFormatLB->get_id(nEntryPos).toUInt32();
- OUString aVal(m_pValueED->GetText());
- OUString aName(m_pNameED->GetText());
+ OUString aVal(m_xValueED->get_text());
+ OUString aName(m_xNameED->get_text());
switch(nTypeId)
{
@@ -966,8 +931,8 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* )
if(!pType) // Only insert when the name doesn't exist yet
{
- m_pSelectionLB->InsertEntry(aName);
- m_pSelection->Enable();
+ m_xSelectionLB->append_text(aName);
+ m_xSelection->set_sensitive(true);
}
break;
}
@@ -984,14 +949,14 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* )
}
if (nTypeId == REFFLDFLAG_BOOKMARK) // text marks!
{
- aName = m_pNameED->GetText();
+ aName = m_xNameED->get_text();
nTypeId = TYP_GETREFFLD;
nSubType = REF_BOOKMARK;
}
else if (REFFLDFLAG_FOOTNOTE == nTypeId) // footnotes
{
SwSeqFieldList aArr;
- SeqFieldLstElem aElem( m_pSelectionLB->GetSelectedEntry(), 0 );
+ SeqFieldLstElem aElem( m_xSelectionLB->get_selected_text(), 0 );
size_t nPos = 0;
@@ -1012,7 +977,7 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* )
else if (REFFLDFLAG_ENDNOTE == nTypeId) // endnotes
{
SwSeqFieldList aArr;
- SeqFieldLstElem aElem( m_pSelectionLB->GetSelectedEntry(), 0 );
+ SeqFieldLstElem aElem( m_xSelectionLB->get_selected_text(), 0 );
size_t nPos = 0;
@@ -1033,13 +998,12 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* )
// #i83479#
else if ( nTypeId == REFFLDFLAG_HEADING )
{
- SvTreeListEntry* pEntry = m_pSelectionToolTipLB->GetCurEntry();
- OSL_ENSURE( pEntry,
+ int nEntry = m_xSelectionToolTipLB->get_selected_index();
+ OSL_ENSURE( nEntry != -1,
"<SwFieldRefPage::FillItemSet(..)> - no entry selected in selection tool tip listbox!" );
- if ( pEntry )
+ if (nEntry != -1)
{
- const size_t nOutlIdx( static_cast<size_t>
- (reinterpret_cast<sal_uLong>(pEntry->GetUserData())) );
+ const size_t nOutlIdx(m_xSelectionToolTipLB->get_id(nEntry).toUInt32());
pSh->getIDocumentOutlineNodesAccess()->getOutlineNodes( maOutlineNodes );
if ( nOutlIdx < maOutlineNodes.size() )
{
@@ -1054,14 +1018,13 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* )
}
else if ( nTypeId == REFFLDFLAG_NUMITEM )
{
- SvTreeListEntry* pEntry = m_pSelectionToolTipLB->GetCurEntry();
- OSL_ENSURE( pEntry,
+ int nEntry = m_xSelectionToolTipLB->get_selected_index();
+ OSL_ENSURE( nEntry != -1,
"<SwFieldRefPage::FillItemSet(..)> - no entry selected in selection tool tip listbox!" );
- if ( pEntry )
+ if (nEntry != -1)
{
- const size_t nNumItemIdx( static_cast<size_t>
- (reinterpret_cast<sal_uLong>(pEntry->GetUserData())) );
- pSh->getIDocumentListItemsAccess()->getNumItems( maNumItems );
+ const size_t nNumItemIdx(m_xSelectionToolTipLB->get_id(nEntry).toUInt32());
+ pSh->getIDocumentListItemsAccess()->getNumItems(maNumItems);
if ( nNumItemIdx < maNumItems.size() )
{
::sw::mark::IMark const * const pMark = pSh->getIDocumentMarkAccess()->getMarkForTextNode(
@@ -1081,7 +1044,7 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* )
if( pType )
{
SwSeqFieldList aArr;
- SeqFieldLstElem aElem( m_pSelectionLB->GetSelectedEntry(), 0 );
+ SeqFieldLstElem aElem( m_xSelectionLB->get_selected_text(), 0 );
size_t nPos = 0;
@@ -1109,16 +1072,16 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* )
}
if (!IsFieldEdit() || bModified ||
- m_pNameED->IsValueChangedFromSaved() ||
- m_pValueED->IsValueChangedFromSaved() ||
- m_pTypeLB->IsValueChangedFromSaved() ||
- m_pSelectionLB->IsValueChangedFromSaved() ||
- m_pFormatLB->IsValueChangedFromSaved())
+ m_xNameED->get_value_changed_from_saved() ||
+ m_xValueED->get_value_changed_from_saved() ||
+ m_xTypeLB->get_value_changed_from_saved() ||
+ m_xSelectionLB->get_value_changed_from_saved() ||
+ m_xFormatLB->get_value_changed_from_saved())
{
InsertField( nTypeId, nSubType, aName, aVal, nFormat );
}
- ModifyHdl(*m_pNameED); // enable/disable insert if applicable
+ ModifyHdl(*m_xNameED); // enable/disable insert if applicable
return false;
}
@@ -1126,7 +1089,7 @@ bool SwFieldRefPage::FillItemSet(SfxItemSet* )
VclPtr<SfxTabPage> SwFieldRefPage::Create( TabPageParent pParent,
const SfxItemSet *const pAttrSet)
{
- return VclPtr<SwFieldRefPage>::Create( pParent.pParent, pAttrSet );
+ return VclPtr<SwFieldRefPage>::Create( pParent, pAttrSet );
}
sal_uInt16 SwFieldRefPage::GetGroup()
@@ -1136,13 +1099,12 @@ sal_uInt16 SwFieldRefPage::GetGroup()
void SwFieldRefPage::FillUserData()
{
- const sal_Int32 nEntryPos = m_pTypeLB->GetSelectedEntryPos();
- const sal_uInt16 nTypeSel = ( LISTBOX_ENTRY_NOTFOUND == nEntryPos )
+ const sal_Int32 nEntryPos = m_xTypeLB->get_selected_index();
+ const sal_uInt16 nTypeSel = ( -1 == nEntryPos )
? USHRT_MAX
- : sal::static_int_cast< sal_uInt16 >
- (reinterpret_cast< sal_uIntPtr >(m_pTypeLB->GetEntryData( nEntryPos )));
- const sal_Int32 nFormatEntryPos = m_pFormatLB->GetSelectedEntryPos();
- const sal_uInt32 nFormatSel = LISTBOX_ENTRY_NOTFOUND == nFormatEntryPos ? USHRT_MAX : nFormatEntryPos;
+ : m_xTypeLB->get_id(nEntryPos).toUInt32();
+ const sal_Int32 nFormatEntryPos = m_xFormatLB->get_selected_index();
+ const sal_uInt32 nFormatSel = -1 == nFormatEntryPos ? USHRT_MAX : nFormatEntryPos;
SetUserData( USER_DATA_VERSION ";" +
OUString::number( nTypeSel ) + ";" +
OUString::number( nFormatSel ));
diff --git a/sw/source/ui/fldui/fldref.hxx b/sw/source/ui/fldui/fldref.hxx
index 15f026adc385..eacf917b5bb5 100644
--- a/sw/source/ui/fldui/fldref.hxx
+++ b/sw/source/ui/fldui/fldref.hxx
@@ -28,22 +28,10 @@
#include "fldpage.hxx"
#include <IDocumentOutlineNodes.hxx>
#include <IDocumentListItems.hxx>
-#include "FldRefTreeListBox.hxx"
class SwTextNode;
class SwFieldRefPage : public SwFieldPage
{
- VclPtr<ListBox> m_pTypeLB;
- VclPtr<VclContainer> m_pSelection;
- VclPtr<ListBox> m_pSelectionLB;
- // #i83479#
- VclPtr<SwFieldRefTreeListBox> m_pSelectionToolTipLB;
- VclPtr<VclContainer> m_pFormat;
- VclPtr<ListBox> m_pFormatLB;
- VclPtr<FixedText> m_pNameFT;
- VclPtr<Edit> m_pNameED;
- VclPtr<Edit> m_pValueED;
- VclPtr<Edit> m_pFilterED;
OUString sBookmarkText;
OUString sFootnoteText;
OUString sEndnoteText;
@@ -60,11 +48,23 @@ class SwFieldRefPage : public SwFieldPage
// fallback, if previously selected text node doesn't exist anymore
size_t mnSavedSelectedPos;
- DECL_LINK(TypeHdl, ListBox&, void);
- DECL_LINK(SubTypeListBoxHdl, ListBox&, void);
- DECL_LINK(SubTypeTreeListBoxHdl, SvTreeListBox*, void);
- DECL_LINK(ModifyHdl, Edit&, void);
- DECL_LINK(ModifyHdl_Impl, Edit&, void);
+ std::unique_ptr<weld::TreeView> m_xTypeLB;
+ std::unique_ptr<weld::Widget> m_xSelection;
+ std::unique_ptr<weld::TreeView> m_xSelectionLB;
+ // #i83479#
+ std::unique_ptr<weld::TreeView> m_xSelectionToolTipLB;
+ std::unique_ptr<weld::Widget> m_xFormat;
+ std::unique_ptr<weld::TreeView> m_xFormatLB;
+ std::unique_ptr<weld::Label> m_xNameFT;
+ std::unique_ptr<weld::Entry> m_xNameED;
+ std::unique_ptr<weld::Entry> m_xValueED;
+ std::unique_ptr<weld::Entry> m_xFilterED;
+
+ DECL_LINK(TypeHdl, weld::TreeView&, void);
+ DECL_LINK(SubTypeListBoxHdl, weld::TreeView&, void);
+ DECL_LINK(SubTypeTreeListBoxHdl, weld::TreeView&, void);
+ DECL_LINK(ModifyHdl, weld::Entry&, void);
+ DECL_LINK(ModifyHdl_Impl, weld::Entry&, void);
void SubTypeHdl();
@@ -81,10 +81,8 @@ protected:
virtual sal_uInt16 GetGroup() override;
public:
- SwFieldRefPage(vcl::Window* pParent, const SfxItemSet* pSet);
-
- virtual ~SwFieldRefPage() override;
- virtual void dispose() override;
+ SwFieldRefPage(TabPageParent pParent, const SfxItemSet* pSet);
+ virtual ~SwFieldRefPage() override;
static VclPtr<SfxTabPage> Create(TabPageParent pParent, const SfxItemSet* rAttrSet);
diff --git a/sw/uiconfig/swriter/ui/fldrefpage.ui b/sw/uiconfig/swriter/ui/fldrefpage.ui
index 042b373f88f4..812ee1cfa0ef 100644
--- a/sw/uiconfig/swriter/ui/fldrefpage.ui
+++ b/sw/uiconfig/swriter/ui/fldrefpage.ui
@@ -1,11 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.22.1 -->
<interface domain="sw">
<requires lib="gtk+" version="3.18"/>
- <requires lib="LibreOffice" version="1.0"/>
<object class="GtkTreeStore" id="liststore1">
<columns>
- <!-- column-name gchararray1 -->
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkTreeStore" id="liststore2">
+ <columns>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkTreeStore" id="liststore3">
+ <columns>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ </columns>
+ </object>
+ <object class="GtkTreeStore" id="liststore4">
+ <columns>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
<column type="gchararray"/>
</columns>
</object>
@@ -44,14 +69,37 @@
<property name="hexpand">True</property>
<property name="top_padding">6</property>
<child>
- <object class="GtkTreeView" id="type:border">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="model">liststore1</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection"/>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="type">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">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>
</child>
@@ -61,9 +109,9 @@
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="fldrefpage|label1">_Type</property>
<property name="use_underline">True</property>
+ <property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -90,14 +138,37 @@
<property name="hexpand">True</property>
<property name="top_padding">6</property>
<child>
- <object class="GtkTreeView" id="format:border">
+ <object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="model">liststore1</property>
- <property name="search_column">0</property>
- <property name="show_expanders">False</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection2"/>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="format">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore2</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-selection2"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn2">
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext2"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
</child>
</object>
</child>
@@ -107,9 +178,9 @@
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="fldrefpage|label3">Insert _reference to</property>
<property name="use_underline">True</property>
+ <property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -162,9 +233,6 @@
<property name="position">0</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
</object>
<packing>
<property name="left_attach">0</property>
@@ -176,7 +244,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
- <property name="shadow_type">out</property>
+ <property name="activates_default">True</property>
<property name="placeholder_text" translatable="yes" context="fldrefpage|filter">Filter Selection</property>
</object>
<packing>
@@ -199,25 +267,49 @@
<property name="vexpand">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
- <child type="label">
+ <child>
<object class="GtkAlignment" id="alignment2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="top_padding">6</property>
<child>
- <object class="GtkBox" id="box3">
+ <object class="GtkBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
- <object class="swuilo-SwFieldRefTreeListBox" id="selecttip: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="Tooltip Tree List-selection"/>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="selecttip">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore3</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-selection3"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn3">
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext3"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
</child>
</object>
<packing>
@@ -227,14 +319,37 @@
</packing>
</child>
<child>
- <object class="GtkTreeView" id="select: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>
- <property name="show_expanders">False</property>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="treeview-selection4"/>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="select">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore4</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-selection4"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn4">
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext4"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
</child>
</object>
<packing>
@@ -249,11 +364,10 @@
</child>
<child type="label">
<object class="GtkLabel" id="label2">
- <property name="visible">False</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="fldrefpage|label2">S_election</property>
<property name="use_underline">True</property>
+ <property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -278,10 +392,10 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="fldrefpage|valueft">_Value</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">value</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -294,6 +408,7 @@
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
+ <property name="activates_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
@@ -304,10 +419,10 @@
<object class="GtkLabel" id="nameft">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">0</property>
<property name="label" translatable="yes" context="fldrefpage|nameft">Na_me</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">name</property>
+ <property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -319,6 +434,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
+ <property name="activates_default">True</property>
</object>
<packing>
<property name="left_attach">1</property>
diff --git a/sw/uiconfig/swriter/ui/templatedialog8.ui b/sw/uiconfig/swriter/ui/templatedialog8.ui
index 20640bcddf93..87d5a777394c 100644
--- a/sw/uiconfig/swriter/ui/templatedialog8.ui
+++ b/sw/uiconfig/swriter/ui/templatedialog8.ui
@@ -68,7 +68,7 @@
</child>
<child>
<object class="GtkButton" id="standard">
- <property name="label" translatable="no">Standard</property>
+ <property name="label">Standard</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
@@ -162,7 +162,7 @@
<child type="tab">
<object class="GtkLabel" id="organizer">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="label" translatable="yes" context="templatedialog8|organizer">Organizer</property>
</object>
<packing>
@@ -208,7 +208,7 @@
<child type="tab">
<object class="GtkLabel" id="page">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="label" translatable="yes" context="templatedialog8|page">Page</property>
</object>
<packing>
@@ -255,7 +255,7 @@
<child type="tab">
<object class="GtkLabel" id="area">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="label" translatable="yes" context="templatedialog8|area">Area</property>
</object>
<packing>
@@ -302,7 +302,7 @@
<child type="tab">
<object class="GtkLabel" id="transparence">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="label" translatable="yes" context="templatedialog8|transparence">Transparency</property>
</object>
<packing>
@@ -349,7 +349,7 @@
<child type="tab">
<object class="GtkLabel" id="header">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="label" translatable="yes" context="templatedialog8|header">Header</property>
</object>
<packing>
@@ -396,7 +396,7 @@
<child type="tab">
<object class="GtkLabel" id="footer">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="label" translatable="yes" context="templatedialog8|footer">Footer</property>
</object>
<packing>
@@ -443,7 +443,7 @@
<child type="tab">
<object class="GtkLabel" id="borders">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="label" translatable="yes" context="templatedialog8|borders">Borders</property>
</object>
<packing>
@@ -490,7 +490,7 @@
<child type="tab">
<object class="GtkLabel" id="columns">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="label" translatable="yes" context="templatedialog8|columns">Columns</property>
</object>
<packing>
@@ -537,7 +537,7 @@
<child type="tab">
<object class="GtkLabel" id="footnotes">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="label" translatable="yes" context="templatedialog8|footnotes">Footnote</property>
</object>
<packing>
@@ -584,7 +584,7 @@
<child type="tab">
<object class="GtkLabel" id="textgrid">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
<property name="label" translatable="yes" context="templatedialog8|textgrid">Text Grid</property>
</object>
<packing>
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 216de7759527..47f2ecda410f 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -2682,7 +2682,7 @@ public:
const OUString* getEntryData(int index) const
{
SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, index);
- return static_cast<const OUString*>(pEntry->GetUserData());
+ return pEntry ? static_cast<const OUString*>(pEntry->GetUserData()) : nullptr;
}
virtual OUString get_id(int pos) const override
@@ -2986,6 +2986,11 @@ public:
set_sort_order(true);
}
+ virtual void make_unsorted() override
+ {
+ m_xTreeView->SetStyle(m_xTreeView->GetStyle() & ~WB_SORT);
+ }
+
virtual void set_sort_order(bool bAscending) override
{
SvTreeList* pListModel = m_xTreeView->GetModel();
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index 84f13af7c1a6..2a7551456922 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -5935,6 +5935,16 @@ public:
gtk_tree_sortable_set_sort_column_id(pSortable, m_nTextCol, GTK_SORT_ASCENDING);
}
+ virtual void make_unsorted() override
+ {
+ m_xSorter.reset();
+ int nSortColumn;
+ GtkSortType eSortType;
+ GtkTreeSortable* pSortable = GTK_TREE_SORTABLE(m_pTreeStore);
+ gtk_tree_sortable_get_sort_column_id(pSortable, &nSortColumn, &eSortType);
+ gtk_tree_sortable_set_sort_column_id(pSortable, GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, eSortType);
+ }
+
virtual void set_sort_order(bool bAscending) override
{
GtkSortType eSortType = bAscending ? GTK_SORT_ASCENDING : GTK_SORT_DESCENDING;