Resolves: tdf#90863 replace toolbar with apply/remove buttons
which is consistent with the calc format->cells->numbering page
and solves the keyboard traversal problem here
Change-Id: I90c0f4a380693af871bbd20912eafcf5ea259fc7
Reviewed-on: https://gerrit.libreoffice.org/69229
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/sw/source/ui/fldui/fldvar.cxx b/sw/source/ui/fldui/fldvar.cxx
index d156a13..ce303e3 100644
--- a/sw/source/ui/fldui/fldvar.cxx
+++ b/sw/source/ui/fldui/fldvar.cxx
@@ -64,7 +64,8 @@ SwFieldVarPage::SwFieldVarPage(vcl::Window* pParent, const SfxItemSet *const pCo
get(m_pInvisibleCB, "invisible");
get(m_pSeparatorFT, "separatorft");
get(m_pSeparatorED, "separator");
get(m_pNewDelTBX, "toolbar");
get(m_pNewPB, "apply");
get(m_pDelPB, "delete");
long nHeight = m_pTypeLB->GetTextHeight() * 20;
m_pTypeLB->set_height_request(nHeight);
@@ -76,9 +77,6 @@ SwFieldVarPage::SwFieldVarPage(vcl::Window* pParent, const SfxItemSet *const pCo
m_pSelectionLB->set_width_request(nWidth);
m_pFormatLB->set_width_request(nWidth);
m_nApplyId = m_pNewDelTBX->GetItemId("apply");
m_nDeleteId = m_pNewDelTBX->GetItemId("delete");
sOldValueFT = m_pValueFT->GetText();
sOldNameFT = m_pNameFT->GetText();
@@ -112,7 +110,8 @@ void SwFieldVarPage::dispose()
m_pInvisibleCB.clear();
m_pSeparatorFT.clear();
m_pSeparatorED.clear();
m_pNewDelTBX.clear();
m_pNewPB.clear();
m_pDelPB.clear();
SwFieldPage::dispose();
}
@@ -172,7 +171,8 @@ void SwFieldVarPage::Reset(const SfxItemSet* )
m_pNumFormatLB->SetDoubleClickHdl (LINK(this, SwFieldVarPage, ListBoxInsertHdl));
m_pNameED->SetModifyHdl (LINK(this, SwFieldVarPage, ModifyHdl));
m_pValueED->SetModifyHdl (LINK(this, SwFieldVarPage, ModifyHdl));
m_pNewDelTBX->SetClickHdl (LINK(this, SwFieldVarPage, TBClickHdl));
m_pNewPB->SetClickHdl (LINK(this, SwFieldVarPage, TBClickHdl));
m_pDelPB->SetClickHdl (LINK(this, SwFieldVarPage, TBClickHdl));
m_pChapterLevelLB->SetSelectHdl (LINK(this, SwFieldVarPage, ChapterHdl));
m_pSeparatorED->SetModifyHdl (LINK(this, SwFieldVarPage, SeparatorHdl));
@@ -952,18 +952,16 @@ IMPL_LINK_NOARG(SwFieldVarPage, ModifyHdl, Edit&, void)
break;
}
m_pNewDelTBX->EnableItem(m_nApplyId, bApply);
m_pNewDelTBX->EnableItem(m_nDeleteId, bDelete);
m_pNewPB->Enable(bApply);
m_pDelPB->Enable(bDelete);
EnableInsert(bInsert);
}
IMPL_LINK( SwFieldVarPage, TBClickHdl, ToolBox *, pBox, void )
IMPL_LINK( SwFieldVarPage, TBClickHdl, Button*, pBox, void )
{
const sal_uInt16 nTypeId = static_cast<sal_uInt16>(reinterpret_cast<sal_uLong>(m_pTypeLB->GetEntryData(GetTypeSel())));
const sal_uInt16 nCurId = pBox->GetCurItemId();
if (nCurId == m_nDeleteId)
if (pBox == m_pDelPB)
{
if( nTypeId == TYP_USERFLD )
GetFieldMgr().RemoveFieldType(SwFieldIds::User, m_pSelectionLB->GetSelectedEntry());
@@ -994,7 +992,7 @@ IMPL_LINK( SwFieldVarPage, TBClickHdl, ToolBox *, pBox, void )
pSh->SetModified();
}
}
else if (nCurId == m_nApplyId)
else if (pBox == m_pNewPB)
{
OUString sName(m_pNameED->GetText()), sValue(m_pValueED->GetText());
SwFieldType* pType = nullptr;
diff --git a/sw/source/ui/fldui/fldvar.hxx b/sw/source/ui/fldui/fldvar.hxx
index 1ed556b..b7afe73 100644
--- a/sw/source/ui/fldui/fldvar.hxx
+++ b/sw/source/ui/fldui/fldvar.hxx
@@ -65,9 +65,8 @@ class SwFieldVarPage : public SwFieldPage
VclPtr<CheckBox> m_pInvisibleCB;
VclPtr<FixedText> m_pSeparatorFT;
VclPtr<Edit> m_pSeparatorED;
VclPtr<ToolBox> m_pNewDelTBX;
sal_uInt16 m_nApplyId;
sal_uInt16 m_nDeleteId;
VclPtr<PushButton> m_pNewPB;
VclPtr<PushButton> m_pDelPB;
OUString sOldValueFT;
OUString sOldNameFT;
@@ -78,7 +77,7 @@ class SwFieldVarPage : public SwFieldPage
DECL_LINK( TypeHdl, ListBox&, void );
DECL_LINK( SubTypeListBoxHdl, ListBox&, void );
DECL_LINK( ModifyHdl, Edit&, void );
DECL_LINK( TBClickHdl, ToolBox *, void );
DECL_LINK( TBClickHdl, Button*, void );
DECL_LINK( ChapterHdl, ListBox&, void );
DECL_LINK( SeparatorHdl, Edit&, void );
void SubTypeHdl(ListBox const *);
diff --git a/sw/uiconfig/swriter/ui/fldvarpage.ui b/sw/uiconfig/swriter/ui/fldvarpage.ui
index 8ce32e3..d7cb812 100644
--- a/sw/uiconfig/swriter/ui/fldvarpage.ui
+++ b/sw/uiconfig/swriter/ui/fldvarpage.ui
@@ -1,17 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface domain="sw">
<requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
<object class="GtkBox" id="FieldVarPage">
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">svx/res/nu02.png</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">svx/res/nu01.png</property>
</object>
<object class="GtkTreeStore" id="liststore1">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkGrid" id="FieldVarPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="border_width">6</property>
<property name="spacing">12</property>
<property name="homogeneous">True</property>
<property name="row_spacing">12</property>
<property name="column_spacing">12</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
@@ -49,9 +69,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="fldvarpage|label1">_Type</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -64,59 +84,17 @@
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="grid2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">end</property>
<property name="row_spacing">6</property>
<child>
<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="fldvarpage|nameft">Na_me</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="name">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
@@ -149,9 +127,9 @@
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="fldvarpage|label2">S_elect</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -164,59 +142,17 @@
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">end</property>
<property name="row_spacing">6</property>
<child>
<object class="GtkLabel" id="valueft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="fldvarpage|valueft">_Value</property>
<property name="use_underline">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="swlo-ConditionEdit" id="value">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
@@ -291,9 +227,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="fldvarpage|label3">F_ormat</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -346,39 +282,33 @@
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="fldvarpage|label5">_Level</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="separatorft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="fldvarpage|separatorft">_Separator</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">separator</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="level">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="entry_text_column">0</property>
<property name="id_column">1</property>
<items>
<item translatable="yes" context="fldvarpage|level">None</item>
</items>
@@ -386,8 +316,6 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
@@ -401,8 +329,6 @@
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
</object>
@@ -413,9 +339,9 @@
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="fldvarpage|label4">Numbering by Chapter</property>
<property name="use_underline">True</property>
<property name="xalign">0</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
@@ -435,114 +361,120 @@
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<property name="column_homogeneous">True</property>
<child>
<object class="GtkGrid" id="grid4">
<object class="GtkLabel" id="nameft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">end</property>
<property name="row_spacing">6</property>
<property name="label" translatable="yes" context="fldvarpage|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>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="name">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="valueft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="fldvarpage|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">1</property>
<property name="top_attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="swlo-ConditionEdit" id="value">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="toolbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
<property name="column_spacing">6</property>
<child>
<object class="GtkToolbar" id="toolbar">
<object class="GtkButton" id="apply">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="fldvarpage|apply|tooltip_text">Apply</property>
<property name="valign">center</property>
<property name="toolbar_style">icons</property>
<child>
<object class="GtkToolButton" id="apply">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="fldvarpage|apply|tooltip_text">Apply</property>
<property name="action_name">apply</property>
<property name="use_underline">True</property>
<property name="icon_name">svx/res/nu01.png</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="delete">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="fldvarpage|delete|tooltip_text">Delete</property>
<property name="action_name">delete</property>
<property name="use_underline">True</property>
<property name="icon_name">svx/res/nu02.png</property>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="grid5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<placeholder/>
</child>
<property name="image">image2</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="delete">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="tooltip_text" translatable="yes" context="fldvarpage|delete|tooltip_text">Delete</property>
<property name="valign">center</property>
<property name="image">image1</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
<property name="width">3</property>
</packing>
</child>
</object>
<object class="GtkTreeStore" id="liststore1">
<columns>
<!-- column-name gchararray1 -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkSizeGroup" id="sizegroup1">
<property name="mode">both</property>
<property name="ignore_hidden">True</property>
<widgets>
<widget name="type:border"/>
<widget name="select:border"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="sizegroup2">
<property name="mode">vertical</property>
<widgets>
<widget name="grid2"/>
<widget name="grid3"/>
<widget name="grid4"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="sizegroup3">
<property name="mode">vertical</property>
<widgets>
<widget name="nameft"/>
<widget name="valueft"/>
<widget name="grid5"/>
</widgets>
</object>
</interface>