vcl/inc/qt5/QtInstanceScrolledWindow.hxx |   20 ++--
 vcl/inc/qt5/QtInstanceWidget.hxx         |    2 
 vcl/qt5/QtInstanceScrolledWindow.cxx     |  127 ++++++++++++++++++++++++-------
 vcl/qt5/QtInstanceWidget.cxx             |   11 +-
 4 files changed, 120 insertions(+), 40 deletions(-)

New commits:
commit bb111c22a6093ec1f5edc5890d7ec6d238362c02
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sun Dec 22 00:12:13 2024 +0100
Commit:     Michael Weghorn (away) <[email protected]>
CommitDate: Sun Dec 22 11:40:22 2024 +0100

    tdf#130857 qt weld: Implement QtInstanceWidget::get_pixel_size
    
    Change-Id: I082430e653f5634ecdcc101b370f531b2c0e25cf
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179097
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn (away) <[email protected]>

diff --git a/vcl/inc/qt5/QtInstanceWidget.hxx b/vcl/inc/qt5/QtInstanceWidget.hxx
index 17cc6d9886c2..d20812f998c4 100644
--- a/vcl/inc/qt5/QtInstanceWidget.hxx
+++ b/vcl/inc/qt5/QtInstanceWidget.hxx
@@ -64,7 +64,7 @@ public:
 
     virtual int get_text_height() const override;
 
-    virtual Size get_pixel_size(const OUString&) const override;
+    virtual Size get_pixel_size(const OUString& rText) const override;
 
     virtual vcl::Font get_font() override;
 
diff --git a/vcl/qt5/QtInstanceWidget.cxx b/vcl/qt5/QtInstanceWidget.cxx
index 8f1d5075a79c..48e4c9b77fa9 100644
--- a/vcl/qt5/QtInstanceWidget.cxx
+++ b/vcl/qt5/QtInstanceWidget.cxx
@@ -233,10 +233,15 @@ int QtInstanceWidget::get_text_height() const
     return nHeight;
 }
 
-Size QtInstanceWidget::get_pixel_size(const OUString&) const
+Size QtInstanceWidget::get_pixel_size(const OUString& rText) const
 {
-    assert(false && "Not implemented yet");
-    return Size();
+    SolarMutexGuard g;
+
+    Size aSize;
+    GetQtInstance().RunInMainThread(
+        [&] { aSize = 
toSize(m_pWidget->fontMetrics().boundingRect(toQString(rText)).size()); });
+
+    return aSize;
 }
 
 vcl::Font QtInstanceWidget::get_font()
commit 342470f03960274da41c608fc87688f3954d08fb
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Dec 21 23:17:49 2024 +0100
Commit:     Michael Weghorn (away) <[email protected]>
CommitDate: Sun Dec 22 11:40:12 2024 +0100

    tdf#130857 qt weld: Implement {s,g}etters for scroll area min/max/val/step
    
    Change-Id: I698e98ac16d8e1f2cd1e01a50570bd9012c94952
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/179095
    Reviewed-by: Michael Weghorn (away) <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/inc/qt5/QtInstanceScrolledWindow.hxx 
b/vcl/inc/qt5/QtInstanceScrolledWindow.hxx
index 7a612372ae08..5cebe1a597cd 100644
--- a/vcl/inc/qt5/QtInstanceScrolledWindow.hxx
+++ b/vcl/inc/qt5/QtInstanceScrolledWindow.hxx
@@ -30,28 +30,28 @@ public:
     virtual void hadjustment_configure(int value, int lower, int upper, int 
step_increment,
                                        int page_increment, int page_size) 
override;
     virtual int hadjustment_get_value() const override;
-    virtual void hadjustment_set_value(int value) override;
+    virtual void hadjustment_set_value(int nValue) override;
     virtual int hadjustment_get_upper() const override;
-    virtual void hadjustment_set_upper(int upper) override;
+    virtual void hadjustment_set_upper(int nUpper) override;
     virtual int hadjustment_get_page_size() const override;
-    virtual void hadjustment_set_page_size(int size) override;
-    virtual void hadjustment_set_page_increment(int size) override;
-    virtual void hadjustment_set_step_increment(int size) override;
+    virtual void hadjustment_set_page_size(int nSize) override;
+    virtual void hadjustment_set_page_increment(int nSize) override;
+    virtual void hadjustment_set_step_increment(int nSize) override;
     virtual void set_hpolicy(VclPolicyType eHPolicy) override;
     virtual VclPolicyType get_hpolicy() const override;
 
     virtual void vadjustment_configure(int value, int lower, int upper, int 
step_increment,
                                        int page_increment, int page_size) 
override;
     virtual int vadjustment_get_value() const override;
-    virtual void vadjustment_set_value(int value) override;
+    virtual void vadjustment_set_value(int nValue) override;
     virtual int vadjustment_get_upper() const override;
-    virtual void vadjustment_set_upper(int upper) override;
+    virtual void vadjustment_set_upper(int nUpper) override;
     virtual int vadjustment_get_page_size() const override;
-    virtual void vadjustment_set_page_size(int size) override;
-    virtual void vadjustment_set_page_increment(int size) override;
+    virtual void vadjustment_set_page_size(int nSize) override;
+    virtual void vadjustment_set_page_increment(int nSize) override;
     virtual void vadjustment_set_step_increment(int nSize) override;
     virtual int vadjustment_get_lower() const override;
-    virtual void vadjustment_set_lower(int upper) override;
+    virtual void vadjustment_set_lower(int nLower) override;
     virtual void set_vpolicy(VclPolicyType eVPolicy) override;
     virtual VclPolicyType get_vpolicy() const override;
     virtual int get_scroll_thickness() const override;
diff --git a/vcl/qt5/QtInstanceScrolledWindow.cxx 
b/vcl/qt5/QtInstanceScrolledWindow.cxx
index 223eec9796ff..d799555d94cf 100644
--- a/vcl/qt5/QtInstanceScrolledWindow.cxx
+++ b/vcl/qt5/QtInstanceScrolledWindow.cxx
@@ -39,24 +39,48 @@ void QtInstanceScrolledWindow::hadjustment_configure(int, 
int, int, int, int, in
 
 int QtInstanceScrolledWindow::hadjustment_get_value() const
 {
-    assert(false && "Not implemented yet");
-    return 0;
+    SolarMutexGuard g;
+
+    int nValue = 0;
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->horizontalScrollBar())
+            nValue = pScrollBar->value();
+    });
+
+    return nValue;
 }
 
-void QtInstanceScrolledWindow::hadjustment_set_value(int)
+void QtInstanceScrolledWindow::hadjustment_set_value(int nValue)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->horizontalScrollBar())
+            pScrollBar->setValue(nValue);
+    });
 }
 
 int QtInstanceScrolledWindow::hadjustment_get_upper() const
 {
-    assert(false && "Not implemented yet");
-    return 0;
+    SolarMutexGuard g;
+
+    int nMax = 0;
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->horizontalScrollBar())
+            nMax = pScrollBar->maximum();
+    });
+
+    return nMax;
 }
 
-void QtInstanceScrolledWindow::hadjustment_set_upper(int)
+void QtInstanceScrolledWindow::hadjustment_set_upper(int nUpper)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->horizontalScrollBar())
+            pScrollBar->setMaximum(nUpper);
+    });
 }
 
 int QtInstanceScrolledWindow::hadjustment_get_page_size() const
@@ -70,14 +94,24 @@ void 
QtInstanceScrolledWindow::hadjustment_set_page_size(int)
     assert(false && "Not implemented yet");
 }
 
-void QtInstanceScrolledWindow::hadjustment_set_page_increment(int)
+void QtInstanceScrolledWindow::hadjustment_set_page_increment(int nSize)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->horizontalScrollBar())
+            pScrollBar->setPageStep(nSize);
+    });
 }
 
-void QtInstanceScrolledWindow::hadjustment_set_step_increment(int)
+void QtInstanceScrolledWindow::hadjustment_set_step_increment(int nSize)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->horizontalScrollBar())
+            pScrollBar->setSingleStep(nSize);
+    });
 }
 
 void QtInstanceScrolledWindow::set_hpolicy(VclPolicyType eHPolicy)
@@ -106,24 +140,48 @@ void QtInstanceScrolledWindow::vadjustment_configure(int, 
int, int, int, int, in
 
 int QtInstanceScrolledWindow::vadjustment_get_value() const
 {
-    assert(false && "Not implemented yet");
-    return 0;
+    SolarMutexGuard g;
+
+    int nValue = 0;
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->verticalScrollBar())
+            nValue = pScrollBar->value();
+    });
+
+    return nValue;
 }
 
-void QtInstanceScrolledWindow::vadjustment_set_value(int)
+void QtInstanceScrolledWindow::vadjustment_set_value(int nValue)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->verticalScrollBar())
+            pScrollBar->setValue(nValue);
+    });
 }
 
 int QtInstanceScrolledWindow::vadjustment_get_upper() const
 {
-    assert(false && "Not implemented yet");
-    return 0;
+    SolarMutexGuard g;
+
+    int nMax = 0;
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->verticalScrollBar())
+            nMax = pScrollBar->maximum();
+    });
+
+    return nMax;
 }
 
-void QtInstanceScrolledWindow::vadjustment_set_upper(int)
+void QtInstanceScrolledWindow::vadjustment_set_upper(int nUpper)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->verticalScrollBar())
+            pScrollBar->setMaximum(nUpper);
+    });
 }
 
 int QtInstanceScrolledWindow::vadjustment_get_page_size() const
@@ -137,9 +195,14 @@ void 
QtInstanceScrolledWindow::vadjustment_set_page_size(int)
     assert(false && "Not implemented yet");
 }
 
-void QtInstanceScrolledWindow::vadjustment_set_page_increment(int)
+void QtInstanceScrolledWindow::vadjustment_set_page_increment(int nSize)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->verticalScrollBar())
+            pScrollBar->setPageStep(nSize);
+    });
 }
 
 void QtInstanceScrolledWindow::vadjustment_set_step_increment(int nSize)
@@ -154,13 +217,25 @@ void 
QtInstanceScrolledWindow::vadjustment_set_step_increment(int nSize)
 
 int QtInstanceScrolledWindow::vadjustment_get_lower() const
 {
-    assert(false && "Not implemented yet");
-    return 0;
+    SolarMutexGuard g;
+
+    int nMin = 0;
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->verticalScrollBar())
+            nMin = pScrollBar->minimum();
+    });
+
+    return nMin;
 }
 
-void QtInstanceScrolledWindow::vadjustment_set_lower(int)
+void QtInstanceScrolledWindow::vadjustment_set_lower(int nLower)
 {
-    assert(false && "Not implemented yet");
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        if (QScrollBar* pScrollBar = m_pScrollArea->verticalScrollBar())
+            pScrollBar->setMinimum(nLower);
+    });
 }
 
 void QtInstanceScrolledWindow::set_vpolicy(VclPolicyType eVPolicy)

Reply via email to