tdf#130857 weld: Have default Scrolledwindow::{h,v}adjustment_configure

These are convenience methods to set multiple of the
weld::ScrolledWindow properties/parameters at once.

Have a default implementation that calls the setters
for the single properties.

Drop the overrides in QtInstanceScrolledWindow that
are equivalent.

Change-Id: I8a7676d32917d0e33a5ae7f2ae1eb761a63c8b01
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204182
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This commit is contained in:
Michael Weghorn
2026-04-24 14:23:24 +02:00
parent 1eaf39618f
commit c6d91c9360
5 changed files with 38 additions and 46 deletions
+2 -4
View File
@@ -29,8 +29,7 @@ protected:
public:
virtual void hadjustment_configure(int value, int upper, int step_increment, int page_increment,
int page_size)
= 0;
int page_size);
virtual int hadjustment_get_value() const = 0;
virtual void hadjustment_set_value(int value) = 0;
virtual int hadjustment_get_upper() const = 0;
@@ -47,8 +46,7 @@ public:
}
virtual void vadjustment_configure(int value, int upper, int step_increment, int page_increment,
int page_size)
= 0;
int page_size);
virtual int vadjustment_get_value() const = 0;
virtual void vadjustment_set_value(int value) = 0;
virtual int vadjustment_get_upper() const = 0;
+1
View File
@@ -607,6 +607,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
vcl/source/weld/IconView \
vcl/source/weld/ItemView \
vcl/source/weld/MetricSpinButton \
vcl/source/weld/ScrolledWindow \
vcl/source/weld/SpinButton \
vcl/source/weld/TextView \
vcl/source/weld/TextWidget \
-4
View File
@@ -27,8 +27,6 @@ public:
QtInstanceScrolledWindow(QScrollArea* pScrollArea);
public:
virtual void hadjustment_configure(int nValue, int nUpper, int nStepIncrement,
int nPageIncrement, int nPageSize) override;
virtual int hadjustment_get_value() const override;
virtual void hadjustment_set_value(int nValue) override;
virtual int hadjustment_get_upper() const override;
@@ -40,8 +38,6 @@ public:
virtual void set_hpolicy(VclPolicyType eHPolicy) override;
virtual VclPolicyType get_hpolicy() const override;
virtual void vadjustment_configure(int nValue, int nUpper, int nStepIncrement,
int nPageIncrement, int nPageSize) override;
virtual int vadjustment_get_value() const override;
virtual void vadjustment_set_value(int nValue) override;
virtual int vadjustment_get_upper() const override;
-38
View File
@@ -29,25 +29,6 @@ QtInstanceScrolledWindow::QtInstanceScrolledWindow(QScrollArea* pScrollArea)
&QtInstanceScrolledWindow::handleVerticalScrollValueChanged);
}
void QtInstanceScrolledWindow::hadjustment_configure(int nValue, int nUpper, int nStepIncrement,
int nPageIncrement, int nPageSize)
{
SolarMutexGuard g;
GetQtInstance().RunInMainThread([&] {
QScrollBar* pScrollBar = m_pScrollArea->horizontalScrollBar();
if (!pScrollBar)
return;
pScrollBar->setValue(nValue);
pScrollBar->setMaximum(nUpper);
pScrollBar->setSingleStep(nStepIncrement);
pScrollBar->setPageStep(nPageIncrement);
if (QWidget* pWidget = m_pScrollArea->widget())
pWidget->resize(nPageSize, pWidget->height());
});
}
int QtInstanceScrolledWindow::hadjustment_get_value() const
{
SolarMutexGuard g;
@@ -156,25 +137,6 @@ VclPolicyType QtInstanceScrolledWindow::get_hpolicy() const
return ePolicy;
}
void QtInstanceScrolledWindow::vadjustment_configure(int nValue, int nUpper, int nStepIncrement,
int nPageIncrement, int nPageSize)
{
SolarMutexGuard g;
GetQtInstance().RunInMainThread([&] {
QScrollBar* pScrollBar = m_pScrollArea->verticalScrollBar();
if (!pScrollBar)
return;
pScrollBar->setValue(nValue);
pScrollBar->setMaximum(nUpper);
pScrollBar->setSingleStep(nStepIncrement);
pScrollBar->setPageStep(nPageIncrement);
if (QWidget* pWidget = m_pScrollArea->widget())
pWidget->resize(pWidget->width(), nPageSize);
});
}
int QtInstanceScrolledWindow::vadjustment_get_value() const
{
SolarMutexGuard g;
+35
View File
@@ -0,0 +1,35 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* 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/.
*/
#include <vcl/weld/ScrolledWindow.hxx>
namespace weld
{
void ScrolledWindow::hadjustment_configure(int value, int upper, int step_increment,
int page_increment, int page_size)
{
hadjustment_set_value(value);
hadjustment_set_upper(upper);
hadjustment_set_step_increment(step_increment);
hadjustment_set_page_increment(page_increment);
hadjustment_set_page_size(page_size);
}
void ScrolledWindow::vadjustment_configure(int value, int upper, int step_increment,
int page_increment, int page_size)
{
vadjustment_set_value(value);
vadjustment_set_upper(upper);
vadjustment_set_step_increment(step_increment);
vadjustment_set_page_increment(page_increment);
vadjustment_set_page_size(page_size);
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */