diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-02-03 12:56:40 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-02-03 18:20:35 +0100 |
commit | 49d8e5fb744534f4af7e5c7f08dee7a95bcc6ed5 (patch) | |
tree | ade9535ad15b1fab0402ba9cf4bfa8dbe8991343 | |
parent | fac86a90db33e4e6d38af134c55f1f6416c928f8 (diff) |
Resolves: tdf#130364 let font treeview fit to available dialog space
Change-Id: Ia000f4cfa041733fc84b45c955e69251c3ce9bcc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87871
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | cui/source/options/fontsubs.cxx | 16 | ||||
-rw-r--r-- | cui/source/options/fontsubs.hxx | 4 | ||||
-rw-r--r-- | cui/uiconfig/ui/optfontspage.ui | 149 |
3 files changed, 95 insertions, 74 deletions
diff --git a/cui/source/options/fontsubs.cxx b/cui/source/options/fontsubs.cxx index 5db165ccfa6a..d9d4debec894 100644 --- a/cui/source/options/fontsubs.cxx +++ b/cui/source/options/fontsubs.cxx @@ -52,12 +52,13 @@ SvxFontSubstTabPage::SvxFontSubstTabPage(weld::Container* pPage, weld::DialogCon m_sAutomatic = m_xFontNameLB->get_text(0); assert(!m_sAutomatic.isEmpty()); - m_xCheckLB->set_size_request(m_xCheckLB->get_approximate_digit_width() * 80, - m_xCheckLB->get_height_rows(10)); + m_xCheckLB->set_size_request(m_xCheckLB->get_approximate_digit_width() * 60, + m_xCheckLB->get_height_rows(8)); m_xCheckLB->set_help_id(HID_OFA_FONT_SUBST_CLB); m_xCheckLB->set_selection_mode(SelectionMode::Multiple); - setColSizes(); + setColSizes(m_xCheckLB->get_size_request()); + m_xCheckLB->connect_size_allocate(LINK(this, SvxFontSubstTabPage, ResizeHdl)); m_xCheckLB->set_centered_column(1); m_xCheckLB->set_centered_column(2); @@ -111,7 +112,7 @@ IMPL_LINK(SvxFontSubstTabPage, HeaderBarClick, int, nColumn, void) } } -void SvxFontSubstTabPage::setColSizes() +void SvxFontSubstTabPage::setColSizes(const Size& rSize) { int nW1 = m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(3)).Width(); int nW2 = m_xCheckLB->get_pixel_size(m_xCheckLB->get_column_title(4)).Width(); @@ -119,7 +120,7 @@ void SvxFontSubstTabPage::setColSizes() int nMin = m_xCheckLB->get_checkbox_column_width(); nMax = std::max(nMax, nMin); const int nDoubleMax = 2*nMax; - const int nRest = m_xCheckLB->get_size_request().Width() - nDoubleMax; + const int nRest = rSize.Width() - nDoubleMax; std::vector<int> aWidths; aWidths.push_back(1); // just abandon the built-in column for checkbuttons and use another aWidths.push_back(nMax); @@ -128,6 +129,11 @@ void SvxFontSubstTabPage::setColSizes() m_xCheckLB->set_column_fixed_widths(aWidths); } +IMPL_LINK(SvxFontSubstTabPage, ResizeHdl, const Size&, rSize, void) +{ + setColSizes(rSize); +} + SvxFontSubstTabPage::~SvxFontSubstTabPage() { } diff --git a/cui/source/options/fontsubs.hxx b/cui/source/options/fontsubs.hxx index c7b141de524f..7af81e211b7c 100644 --- a/cui/source/options/fontsubs.hxx +++ b/cui/source/options/fontsubs.hxx @@ -43,10 +43,12 @@ class SvxFontSubstTabPage : public SfxTabPage DECL_LINK(TreeListBoxSelectHdl, weld::TreeView&, void); DECL_LINK(NonPropFontsHdl, weld::ToggleButton&, void); DECL_LINK(HeaderBarClick, int, void); + DECL_LINK(ResizeHdl, const Size&, void); + void SelectHdl(const weld::Widget* pWidget); void CheckEnable(); - void setColSizes(); + void setColSizes(const Size& rSize); public: SvxFontSubstTabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet); diff --git a/cui/uiconfig/ui/optfontspage.ui b/cui/uiconfig/ui/optfontspage.ui index 530a5316fa0e..52524bd1a284 100644 --- a/cui/uiconfig/ui/optfontspage.ui +++ b/cui/uiconfig/ui/optfontspage.ui @@ -43,6 +43,7 @@ <object class="GtkBox" id="OptFontsPage"> <property name="visible">True</property> <property name="can_focus">False</property> + <property name="vexpand">True</property> <property name="border_width">6</property> <property name="orientation">vertical</property> <property name="spacing">12</property> @@ -108,95 +109,107 @@ </packing> </child> <child> - <object class="GtkScrolledWindow" id="checklbscroll"> + <object class="GtkBox" id="box2"> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hexpand">True</property> + <property name="can_focus">False</property> <property name="vexpand">True</property> - <property name="shadow_type">in</property> <child> - <object class="GtkTreeView" id="checklb"> + <object class="GtkScrolledWindow" id="checklbscroll"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="receives_default">True</property> <property name="hexpand">True</property> <property name="vexpand">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="Macro Library List-selection2"/> - </child> + <property name="shadow_type">in</property> <child> - <object class="GtkTreeViewColumn" id="treeviewcolumn1"> - <property name="resizable">True</property> - <property name="spacing">6</property> + <object class="GtkTreeView" id="checklb"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="hexpand">True</property> + <property name="vexpand">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="Macro Library List-selection2"/> + </child> <child> - <object class="GtkCellRendererToggle" id="cellrenderer1"/> - <attributes> - <attribute name="visible">6</attribute> - <attribute name="active">0</attribute> - </attributes> + <object class="GtkTreeViewColumn" id="treeviewcolumn1"> + <property name="resizable">True</property> + <property name="spacing">6</property> + <child> + <object class="GtkCellRendererToggle" id="cellrenderer1"/> + <attributes> + <attribute name="visible">6</attribute> + <attribute name="active">0</attribute> + </attributes> + </child> + </object> </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="treeviewcolumn4"> - <property name="resizable">True</property> - <property name="spacing">6</property> - <property name="title" translatable="yes" context="optfontspage|always">Always</property> <child> - <object class="GtkCellRendererToggle" id="cellrenderer5"/> - <attributes> - <attribute name="visible">7</attribute> - <attribute name="active">1</attribute> - </attributes> + <object class="GtkTreeViewColumn" id="treeviewcolumn4"> + <property name="resizable">True</property> + <property name="spacing">6</property> + <property name="title" translatable="yes" context="optfontspage|always">Always</property> + <child> + <object class="GtkCellRendererToggle" id="cellrenderer5"/> + <attributes> + <attribute name="visible">7</attribute> + <attribute name="active">1</attribute> + </attributes> + </child> + </object> </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="treeviewcolumn7"> - <property name="resizable">True</property> - <property name="spacing">6</property> - <property name="title" translatable="yes" context="optfontspage|screenonly">Screen only</property> <child> - <object class="GtkCellRendererToggle" id="cellrenderer7"/> - <attributes> - <attribute name="visible">8</attribute> - <attribute name="active">2</attribute> - </attributes> + <object class="GtkTreeViewColumn" id="treeviewcolumn7"> + <property name="resizable">True</property> + <property name="spacing">6</property> + <property name="title" translatable="yes" context="optfontspage|screenonly">Screen only</property> + <child> + <object class="GtkCellRendererToggle" id="cellrenderer7"/> + <attributes> + <attribute name="visible">8</attribute> + <attribute name="active">2</attribute> + </attributes> + </child> + </object> </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="treeviewcolumn5"> - <property name="resizable">True</property> - <property name="spacing">6</property> - <property name="title" translatable="yes" context="optfontspage|font">Font</property> - <property name="clickable">True</property> <child> - <object class="GtkCellRendererText" id="cellrenderer4"/> - <attributes> - <attribute name="text">3</attribute> - </attributes> + <object class="GtkTreeViewColumn" id="treeviewcolumn5"> + <property name="resizable">True</property> + <property name="spacing">6</property> + <property name="title" translatable="yes" context="optfontspage|font">Font</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="cellrenderer4"/> + <attributes> + <attribute name="text">3</attribute> + </attributes> + </child> + </object> </child> - </object> - </child> - <child> - <object class="GtkTreeViewColumn" id="treeviewcolumn9"> - <property name="resizable">True</property> - <property name="spacing">6</property> - <property name="title" translatable="yes" context="optfontspage|replacewith">Replace with</property> - <property name="clickable">True</property> <child> - <object class="GtkCellRendererText" id="cellrenderer9"/> - <attributes> - <attribute name="text">4</attribute> - </attributes> + <object class="GtkTreeViewColumn" id="treeviewcolumn9"> + <property name="resizable">True</property> + <property name="spacing">6</property> + <property name="title" translatable="yes" context="optfontspage|replacewith">Replace with</property> + <property name="clickable">True</property> + <child> + <object class="GtkCellRendererText" id="cellrenderer9"/> + <attributes> + <attribute name="text">4</attribute> + </attributes> + </child> + </object> </child> </object> </child> </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> </child> </object> <packing> |