include/svx/AccessibilityCheckDialog.hxx | 1 + svx/source/dialog/AccessibilityCheckDialog.cxx | 12 +++++++++++- svx/uiconfig/ui/accessibilitycheckdialog.ui | 4 +++- svx/uiconfig/ui/accessibilitycheckentry.ui | 16 +++++++++------- 4 files changed, 24 insertions(+), 9 deletions(-)
New commits: commit 4a88c5840e022ca896ce26ce1dfde2db7fb7df29 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Thu Mar 2 17:15:06 2023 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Mon Mar 6 16:54:48 2023 +0000 tdf#148776 for scrolling set step size as height of a row similar to FontFeaturesDialog. FWIW gtk's viewport implementation automatically overwrites the step size to be 10% of the visible height (and page size of 90% of the visible height) Change-Id: If356724a47b0a10069f129bed4a40cfdee57bfa8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148138 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/include/svx/AccessibilityCheckDialog.hxx b/include/svx/AccessibilityCheckDialog.hxx index f2e3c567351b..65b100064f87 100644 --- a/include/svx/AccessibilityCheckDialog.hxx +++ b/include/svx/AccessibilityCheckDialog.hxx @@ -45,6 +45,7 @@ private: std::vector<std::unique_ptr<AccessibilityCheckEntry>> m_aAccessibilityCheckEntries; // Controls + std::unique_ptr<weld::ScrolledWindow> m_xScrolledWindow; std::unique_ptr<weld::Box> m_xAccessibilityCheckBox; std::unique_ptr<weld::Button> m_xRescanBtn; diff --git a/svx/source/dialog/AccessibilityCheckDialog.cxx b/svx/source/dialog/AccessibilityCheckDialog.cxx index ac34f7306da4..010f3af0bb81 100644 --- a/svx/source/dialog/AccessibilityCheckDialog.cxx +++ b/svx/source/dialog/AccessibilityCheckDialog.cxx @@ -25,9 +25,10 @@ AccessibilityCheckEntry::AccessibilityCheckEntry( , m_pAccessibilityIssue(rAccessibilityIssue) { m_xLabel->set_label(m_pAccessibilityIssue->m_aIssueText); + // lock in the height as including the button so all rows are the same height + m_xContainer->set_size_request(-1, m_xContainer->get_preferred_size().Height()); m_xGotoButton->set_visible(m_pAccessibilityIssue->canGotoIssue()); m_xGotoButton->connect_clicked(LINK(this, AccessibilityCheckEntry, GotoButtonClicked)); - m_xContainer->show(); } IMPL_LINK_NOARG(AccessibilityCheckEntry, GotoButtonClicked, weld::Button&, void) @@ -42,6 +43,7 @@ AccessibilityCheckDialog::AccessibilityCheckDialog( "AccessibilityCheckDialog") , m_aIssueCollection(std::move(aIssueCollection)) , m_getIssueCollection(getIssueCollection) + , m_xScrolledWindow(m_xBuilder->weld_scrolled_window("scrolledwindow")) , m_xAccessibilityCheckBox(m_xBuilder->weld_box("accessibilityCheckBox")) , m_xRescanBtn(m_xBuilder->weld_button("rescan")) { @@ -62,6 +64,14 @@ void AccessibilityCheckDialog::populateIssues() m_xAccessibilityCheckBox->reorder_child(xEntry->get_widget(), i++); m_aAccessibilityCheckEntries.push_back(std::move(xEntry)); } + + if (!m_aAccessibilityCheckEntries.empty()) + { + auto nRowHeight + = m_aAccessibilityCheckEntries.back()->get_widget()->get_preferred_size().Height(); + // 6 is the spacing set in the .ui + m_xScrolledWindow->vadjustment_set_step_increment(nRowHeight + 6); + } } IMPL_LINK_NOARG(AccessibilityCheckDialog, RescanButtonClicked, weld::Button&, void) diff --git a/svx/uiconfig/ui/accessibilitycheckdialog.ui b/svx/uiconfig/ui/accessibilitycheckdialog.ui index fecab2fbb31f..b19a1e35e738 100644 --- a/svx/uiconfig/ui/accessibilitycheckdialog.ui +++ b/svx/uiconfig/ui/accessibilitycheckdialog.ui @@ -97,7 +97,7 @@ <property name="vexpand">True</property> <property name="orientation">vertical</property> <child> - <object class="GtkScrolledWindow"> + <object class="GtkScrolledWindow" id="scrolledwindow"> <property name="visible">True</property> <property name="can-focus">True</property> <property name="hexpand">True</property> @@ -114,6 +114,8 @@ <property name="visible">True</property> <property name="can-focus">False</property> <property name="orientation">vertical</property> + <property name="spacing">6</property> + <property name="homogeneous">True</property> <child> <placeholder/> </child> diff --git a/svx/uiconfig/ui/accessibilitycheckentry.ui b/svx/uiconfig/ui/accessibilitycheckentry.ui index 0fe33322b11f..3d60179f16b5 100644 --- a/svx/uiconfig/ui/accessibilitycheckentry.ui +++ b/svx/uiconfig/ui/accessibilitycheckentry.ui @@ -1,20 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.22.1 --> +<!-- Generated with glade 3.40.0 --> <interface domain="svx"> <requires lib="gtk+" version="3.20"/> <object class="GtkBox" id="accessibilityCheckEntryBox"> <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="border_width">3</property> + <property name="can-focus">False</property> + <property name="margin-start">3</property> + <property name="margin-end">3</property> + <property name="spacing">6</property> <child> <object class="GtkLabel" id="accessibilityCheckEntryLabel"> <property name="visible">True</property> - <property name="can_focus">False</property> + <property name="can-focus">False</property> <property name="hexpand">True</property> <property name="selectable">True</property> <property name="xalign">0</property> <child internal-child="accessible"> - <object class="AtkObject"> + <object class="AtkObject" id="accessibilityCheckEntryLabel-atkobject"> <property name="AtkObject::accessible-role">static</property> </object> </child> @@ -29,8 +31,8 @@ <object class="GtkButton" id="accessibilityCheckEntryGotoButton"> <property name="label" translatable="yes" context="accessibilitycheckentry|accessibilityCheckEntryGotoButton">Go to Issue</property> <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> </object> <packing> <property name="expand">False</property>