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)