vcl/inc/qt5/QtInstanceWidget.hxx |    8 +--
 vcl/qt5/QtInstanceWidget.cxx     |   92 +++++++++++++++++++++++++++++++++------
 2 files changed, 84 insertions(+), 16 deletions(-)

New commits:
commit 2da018de56e99e0843b9141d326a57aa1f264dab
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon Mar 10 21:24:51 2025 -0700
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Tue Mar 11 10:13:23 2025 +0100

    tdf#130857 qt weld: Implement QtInstanceWidget::{g,s}et_margin_*
    
    Change-Id: I8b909a133ed87823ba4e362dbb8a25943baa2686
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182762
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/inc/qt5/QtInstanceWidget.hxx b/vcl/inc/qt5/QtInstanceWidget.hxx
index d2bc8823ecd4..38eb66b0bfb8 100644
--- a/vcl/inc/qt5/QtInstanceWidget.hxx
+++ b/vcl/inc/qt5/QtInstanceWidget.hxx
@@ -84,13 +84,13 @@ public:
 
     virtual bool get_vexpand() const override;
 
-    virtual void set_margin_top(int) override;
+    virtual void set_margin_top(int nMargin) override;
 
-    virtual void set_margin_bottom(int) override;
+    virtual void set_margin_bottom(int nMargin) override;
 
-    virtual void set_margin_start(int) override;
+    virtual void set_margin_start(int nMargin) override;
 
-    virtual void set_margin_end(int) override;
+    virtual void set_margin_end(int nMargin) override;
 
     virtual int get_margin_top() const override;
 
diff --git a/vcl/qt5/QtInstanceWidget.cxx b/vcl/qt5/QtInstanceWidget.cxx
index 9c4e60b29bff..66a23f13036c 100644
--- a/vcl/qt5/QtInstanceWidget.cxx
+++ b/vcl/qt5/QtInstanceWidget.cxx
@@ -289,36 +289,104 @@ bool QtInstanceWidget::get_vexpand() const
     return true;
 }
 
-void QtInstanceWidget::set_margin_top(int) { assert(false && "Not implemented 
yet"); }
+void QtInstanceWidget::set_margin_top(int nMargin)
+{
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        QMargins aMargins = m_pWidget->contentsMargins();
+        aMargins.setTop(nMargin);
+        m_pWidget->setContentsMargins(aMargins);
+    });
+}
+
+void QtInstanceWidget::set_margin_bottom(int nMargin)
+{
+    SolarMutexGuard g;
+
+    GetQtInstance().RunInMainThread([&] {
+        QMargins aMargins = m_pWidget->contentsMargins();
+        aMargins.setBottom(nMargin);
+        m_pWidget->setContentsMargins(aMargins);
+    });
+}
+
+void QtInstanceWidget::set_margin_start(int nMargin)
+{
+    SolarMutexGuard g;
 
-void QtInstanceWidget::set_margin_bottom(int) { assert(false && "Not 
implemented yet"); }
+    GetQtInstance().RunInMainThread([&] {
+        QMargins aMargins = m_pWidget->contentsMargins();
+        if (m_pWidget->isRightToLeft())
+            aMargins.setRight(nMargin);
+        else
+            aMargins.setLeft(nMargin);
+        m_pWidget->setContentsMargins(aMargins);
+    });
+}
 
-void QtInstanceWidget::set_margin_start(int) { assert(false && "Not 
implemented yet"); }
+void QtInstanceWidget::set_margin_end(int nMargin)
+{
+    SolarMutexGuard g;
 
-void QtInstanceWidget::set_margin_end(int) { assert(false && "Not implemented 
yet"); }
+    GetQtInstance().RunInMainThread([&] {
+        QMargins aMargins = m_pWidget->contentsMargins();
+        if (m_pWidget->isRightToLeft())
+            aMargins.setLeft(nMargin);
+        else
+            aMargins.setRight(nMargin);
+        m_pWidget->setContentsMargins(aMargins);
+    });
+}
 
 int QtInstanceWidget::get_margin_top() const
 {
-    assert(false && "Not implemented yet");
-    return 0;
+    SolarMutexGuard g;
+
+    int nMargin = 0;
+    GetQtInstance().RunInMainThread([&] { nMargin = 
m_pWidget->contentsMargins().top(); });
+
+    return nMargin;
 }
 
 int QtInstanceWidget::get_margin_bottom() const
 {
-    assert(false && "Not implemented yet");
-    return 0;
+    SolarMutexGuard g;
+
+    int nMargin = 0;
+    GetQtInstance().RunInMainThread([&] { nMargin = 
m_pWidget->contentsMargins().bottom(); });
+
+    return nMargin;
 }
 
 int QtInstanceWidget::get_margin_start() const
 {
-    assert(false && "Not implemented yet");
-    return 0;
+    SolarMutexGuard g;
+
+    int nMargin = 0;
+    GetQtInstance().RunInMainThread([&] {
+        if (m_pWidget->isRightToLeft())
+            nMargin = m_pWidget->contentsMargins().right();
+        else
+            nMargin = m_pWidget->contentsMargins().left();
+    });
+
+    return nMargin;
 }
 
 int QtInstanceWidget::get_margin_end() const
 {
-    assert(false && "Not implemented yet");
-    return 0;
+    SolarMutexGuard g;
+
+    int nMargin = 0;
+    GetQtInstance().RunInMainThread([&] {
+        if (m_pWidget->isRightToLeft())
+            nMargin = m_pWidget->contentsMargins().left();
+        else
+            nMargin = m_pWidget->contentsMargins().right();
+    });
+
+    return nMargin;
 }
 
 void QtInstanceWidget::set_accessible_name(const OUString& rName)

Reply via email to