vcl/inc/qt5/QtFrame.hxx      |    4 ++--
 vcl/inc/qt5/QtPainter.hxx    |    4 ++--
 vcl/qt5/QtDragAndDrop.cxx    |    2 +-
 vcl/qt5/QtFrame.cxx          |    6 +-----
 vcl/qt5/QtGraphicsBase.cxx   |    2 +-
 vcl/qt5/QtInstance.cxx       |    2 +-
 vcl/qt5/QtObject.cxx         |   10 +++++-----
 vcl/qt5/QtPainter.cxx        |    2 +-
 vcl/qt5/QtSvpGraphics.cxx    |    5 ++---
 vcl/source/window/layout.cxx |    3 +--
 10 files changed, 17 insertions(+), 23 deletions(-)

New commits:
commit 98a5e1c8bc346c8a65bef1d4ed1d86a1a93e5e32
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Jul 24 07:14:01 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Jul 24 12:05:51 2025 +0200

    qt: Return reference in QtFrame::GetQWidget
    
    QtFrame::m_pQWidget is always non-null, as it
    gets set in the ctor and never reset later.
    
    Return a reference in QtFrame::GetQWidget,
    and drop some now unnecessary checks/asserts.
    
    Also drop an unnecessary null check in
    QtFrame::EndExtTextInput.
    
    Change-Id: I0e9eb87a62116c5196f2a2df37e063933f8920d7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188262
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/inc/qt5/QtFrame.hxx b/vcl/inc/qt5/QtFrame.hxx
index 1f1cd2a7c12d..258f1cc9bac4 100644
--- a/vcl/inc/qt5/QtFrame.hxx
+++ b/vcl/inc/qt5/QtFrame.hxx
@@ -144,7 +144,7 @@ public:
     QtFrame(QtFrame* pParent, SalFrameStyleFlags nSalFrameStyle, bool 
bUseCairo);
     virtual ~QtFrame() override;
 
-    QWidget* GetQWidget() const { return m_pQWidget; }
+    QWidget& GetQWidget() const { return *m_pQWidget; }
     QtMainWindow* GetTopLevelWindow() const { return m_pTopLevel; }
     QWidget* asChild() const;
     qreal devicePixelRatioF() const;
diff --git a/vcl/inc/qt5/QtPainter.hxx b/vcl/inc/qt5/QtPainter.hxx
index 613304ebb34b..6a14e9e13b16 100644
--- a/vcl/inc/qt5/QtPainter.hxx
+++ b/vcl/inc/qt5/QtPainter.hxx
@@ -37,7 +37,7 @@ public:
     ~QtPainter()
     {
         if (m_rGraphics.m_pFrame && !m_aRegion.isEmpty())
-            m_rGraphics.m_pFrame->GetQWidget()->update(m_aRegion);
+            m_rGraphics.m_pFrame->GetQWidget().update(m_aRegion);
     }
 
     void update(int nx, int ny, int nw, int nh)
@@ -61,7 +61,7 @@ public:
     void update()
     {
         if (m_rGraphics.m_pFrame)
-            m_aRegion += m_rGraphics.m_pFrame->GetQWidget()->rect();
+            m_aRegion += m_rGraphics.m_pFrame->GetQWidget().rect();
     }
 };
 
diff --git a/vcl/qt5/QtDragAndDrop.cxx b/vcl/qt5/QtDragAndDrop.cxx
index a5dae454d4a4..202b7d7e0a87 100644
--- a/vcl/qt5/QtDragAndDrop.cxx
+++ b/vcl/qt5/QtDragAndDrop.cxx
@@ -135,7 +135,7 @@ void QtDragSource::startDrag(
 
     if (m_pFrame)
     {
-        QDrag* drag = new QDrag(m_pFrame->GetQWidget());
+        QDrag* drag = new QDrag(&m_pFrame->GetQWidget());
         drag->setMimeData(new QtDragMimeData(rTrans));
         // just a reminder that exec starts a nested event loop, so everything 
after
         // this call is just executed, after D'n'D has finished!
diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx
index b1298b2075cb..00aadf9f1ab4 100644
--- a/vcl/qt5/QtFrame.cxx
+++ b/vcl/qt5/QtFrame.cxx
@@ -849,11 +849,7 @@ void QtFrame::SetInputContext(SalInputContext* pContext)
     m_pQWidget->setAttribute(Qt::WA_InputMethodEnabled);
 }
 
-void QtFrame::EndExtTextInput(EndExtTextInputFlags /*nFlags*/)
-{
-    if (m_pQWidget)
-        m_pQWidget->endExtTextInput();
-}
+void QtFrame::EndExtTextInput(EndExtTextInputFlags /*nFlags*/) { 
m_pQWidget->endExtTextInput(); }
 
 OUString QtFrame::GetKeyName(sal_uInt16 nKeyCode)
 {
diff --git a/vcl/qt5/QtGraphicsBase.cxx b/vcl/qt5/QtGraphicsBase.cxx
index d3fd462e605a..2d61f6415daf 100644
--- a/vcl/qt5/QtGraphicsBase.cxx
+++ b/vcl/qt5/QtGraphicsBase.cxx
@@ -26,7 +26,7 @@ void QtGraphicsBase::ImplGetResolution(const QtFrame* pFrame, 
sal_Int32& rDPIX,
     if (!pFrame)
         return;
 
-    QScreen* pScreen = pFrame->GetQWidget()->screen();
+    QScreen* pScreen = pFrame->GetQWidget().screen();
     qreal devicePixelRatio = 
GetQtInstance().EmscriptenLightweightRunInMainThread(
         [pScreen] { return pScreen->devicePixelRatio(); });
     rDPIX = pScreen->logicalDotsPerInchX() * devicePixelRatio + 0.5;
diff --git a/vcl/qt5/QtInstance.cxx b/vcl/qt5/QtInstance.cxx
index ed37179fb471..55a8d3310b76 100644
--- a/vcl/qt5/QtInstance.cxx
+++ b/vcl/qt5/QtInstance.cxx
@@ -899,7 +899,7 @@ QWidget* 
QtInstance::GetNativeParentFromWeldParent(weld::Widget* pParent)
         if (vcl::Window* pWindow = pSalWidget->getWidget())
         {
             if (QtFrame* pFrame = 
static_cast<QtFrame*>(pWindow->ImplGetFrame()))
-                return pFrame->GetQWidget();
+                return &pFrame->GetQWidget();
         }
     }
 
diff --git a/vcl/qt5/QtObject.cxx b/vcl/qt5/QtObject.cxx
index ced1a663f8cc..2074733970dd 100644
--- a/vcl/qt5/QtObject.cxx
+++ b/vcl/qt5/QtObject.cxx
@@ -33,13 +33,13 @@ QtObject::QtObject(QtFrame* pParent, bool bShow)
     , m_pQWidget(nullptr)
     , m_bForwardKey(false)
 {
-    if (!m_pParent || !pParent->GetQWidget())
+    if (!m_pParent)
         return;
 
     if (QLibraryInfo::version().majorVersion() > 5)
     {
         m_pQWindow = new QWindow;
-        m_pQWidget = QWidget::createWindowContainer(m_pQWindow, 
pParent->GetQWidget());
+        m_pQWidget = QWidget::createWindowContainer(m_pQWindow, 
&pParent->GetQWidget());
     }
     else
     {
@@ -122,14 +122,14 @@ void QtObject::Reparent(SalFrame* pFrame)
     if (m_pParent == pNewParent)
         return;
     m_pParent = pNewParent;
-    m_pQWidget->setParent(m_pParent->GetQWidget());
+    m_pQWidget->setParent(&m_pParent->GetQWidget());
 }
 
 QtObjectWidget::QtObjectWidget(QtObject& rParent)
-    : QWidget(rParent.frame()->GetQWidget())
+    : QWidget(&rParent.frame()->GetQWidget())
     , m_rParent(rParent)
 {
-    assert(m_rParent.frame() && m_rParent.frame()->GetQWidget());
+    assert(m_rParent.frame());
     setAttribute(Qt::WA_NoSystemBackground);
     setAttribute(Qt::WA_OpaquePaintEvent);
 }
diff --git a/vcl/qt5/QtPainter.cxx b/vcl/qt5/QtPainter.cxx
index cee3b38ad2e7..377e961de764 100644
--- a/vcl/qt5/QtPainter.cxx
+++ b/vcl/qt5/QtPainter.cxx
@@ -32,7 +32,7 @@ QtPainter::QtPainter(QtGraphicsBackend& rGraphics, bool 
bPrepareBrush, sal_uInt8
     else
     {
         assert(rGraphics.m_pFrame);
-        if (!begin(rGraphics.m_pFrame->GetQWidget()))
+        if (!begin(&rGraphics.m_pFrame->GetQWidget()))
             std::abort();
     }
     if (!rGraphics.m_aClipPath.isEmpty())
diff --git a/vcl/qt5/QtSvpGraphics.cxx b/vcl/qt5/QtSvpGraphics.cxx
index 78bf9fc82b11..f0538fd3f89e 100644
--- a/vcl/qt5/QtSvpGraphics.cxx
+++ b/vcl/qt5/QtSvpGraphics.cxx
@@ -35,9 +35,8 @@ void QtSvpGraphics::updateQWidget() const
 {
     if (!m_pFrame)
         return;
-    QWidget* pQWidget = m_pFrame->GetQWidget();
-    if (pQWidget)
-        pQWidget->update(pQWidget->rect());
+    QWidget& rQWidget = m_pFrame->GetQWidget();
+    rQWidget.update(rQWidget.rect());
 }
 
 #if ENABLE_CAIRO_CANVAS
commit a4ca97775175a519924ecf5a2643caa1643d139b
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Jul 24 07:07:05 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Jul 24 12:05:44 2025 +0200

    qt: Mark QtFrame as final
    
    This silences the following warning shown in Qt Creator:
    
    > .../libreoffice/vcl/qt5/QtFrame.cxx:152:5: Call to virtual method 
'QtFrame::SetIcon'
    > during construction bypasses virtual dispatch 
[clang-analyzer-optin.cplusplus.VirtualCall]
    
    Change-Id: Ia8e120ec6e6ec0722953456f8123ebc2cfbe226a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188261
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/vcl/inc/qt5/QtFrame.hxx b/vcl/inc/qt5/QtFrame.hxx
index d57cf20e1502..1f1cd2a7c12d 100644
--- a/vcl/inc/qt5/QtFrame.hxx
+++ b/vcl/inc/qt5/QtFrame.hxx
@@ -68,7 +68,7 @@ class QPaintDevice;
 class QScreen;
 class QWidget;
 
-class VCLPLUG_QT_PUBLIC QtFrame : public QObject, public SalFrame
+class VCLPLUG_QT_PUBLIC QtFrame final : public QObject, public SalFrame
 {
     Q_OBJECT
 
commit 824147bcb302ffffbeea96083e3f44ca02d8f416
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Jul 24 07:00:01 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Jul 24 12:05:37 2025 +0200

    vcl: Drop local var in VclDrawingArea::StartDrag
    
    Just use `m_xTransferHelper` directly.
    
    Change-Id: I39c79cebfa48f3012c966798a96cc9e4e62d9e41
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188260
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx
index e273a09ea744..c16cde29d957 100644
--- a/vcl/source/window/layout.cxx
+++ b/vcl/source/window/layout.cxx
@@ -3047,11 +3047,10 @@ void VclDrawingArea::StartDrag(sal_Int8, const Point&)
     if (m_aStartDragHdl.Call(this))
         return;
 
-    rtl::Reference<TransferDataContainer> xContainer = m_xTransferHelper;
     if (!m_xTransferHelper.is())
         return;
 
-    xContainer->StartDrag(this, m_nDragAction);
+    m_xTransferHelper->StartDrag(this, m_nDragAction);
 }
 
 OUString VclDrawingArea::GetSurroundingText() const

Reply via email to