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>