vcl/qt5/QtBuilder.cxx        |    7 +++++++
 vcl/qt5/QtInstanceWidget.cxx |    5 +++--
 2 files changed, 10 insertions(+), 2 deletions(-)

New commits:
commit 70503aed6a786aa3958c6f6b33ea92bd32e50bb8
Author:     Michael Weghorn <[email protected]>
AuthorDate: Tue Dec 10 17:51:14 2024 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Tue Dec 10 20:37:25 2024 +0100

    tdf#130857 qt weld: Implement QtInstanceWidget::create_virtual_device
    
    Do the same as GtkInstanceWidget::create_virtual_device
    and don't use a separate alpha channel.
    
    Change-Id: Ie69024ee317f68dd927752b57b8a0b8d2840aede
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178252
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/qt5/QtInstanceWidget.cxx b/vcl/qt5/QtInstanceWidget.cxx
index 29cb929cb80d..5054584f1681 100644
--- a/vcl/qt5/QtInstanceWidget.cxx
+++ b/vcl/qt5/QtInstanceWidget.cxx
@@ -530,8 +530,9 @@ OUString QtInstanceWidget::escape_ui_str(const OUString& 
rLabel) const
 
 VclPtr<VirtualDevice> QtInstanceWidget::create_virtual_device() const
 {
-    assert(false && "Not implemented yet");
-    return nullptr;
+    VclPtr<VirtualDevice> xRet = VclPtr<VirtualDevice>::Create();
+    xRet->SetBackground(COL_TRANSPARENT);
+    return xRet;
 }
 
 css::uno::Reference<css::datatransfer::dnd::XDropTarget> 
QtInstanceWidget::get_drop_target()
commit 6ae8fd04fd9b849b509ced8ff5aa8af8b8260af2
Author:     Michael Weghorn <[email protected]>
AuthorDate: Tue Dec 10 17:48:03 2024 +0100
Commit:     Michael Weghorn <[email protected]>
CommitDate: Tue Dec 10 20:37:18 2024 +0100

    tdf#130857 qt weld: Handle GtkViewPort child
    
    The GtkViewPort doc [1] says:
    
    > The GtkViewport widget acts as an adaptor class, implementing
    > scrollability for child widgets that lack their own scrolling
    > capabilities. Use GtkViewport to scroll child widgets such as GtkGrid,
    > GtkBox, and so on.
    
    For QScrollArea (which is created for "GtkScrolledWindow"
    objects in .ui files), no special adaptor class is needed.
    
    Therefore, just create a simple QWidget for "GtkViewport".
    
    In theory, that widget could even be removed from the
    hierarchy again later (e.g. in QtBuilder::tweakInsertedChild)
    if there's a reason to.
    
    [1] https://docs.gtk.org/gtk3/class.Viewport.html
    
    Change-Id: I4d4f5164e73c8077aa4c5c65c080ee9d0e4676d0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178251
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/vcl/qt5/QtBuilder.cxx b/vcl/qt5/QtBuilder.cxx
index 8ba77d82fbd5..98902bb9ab5e 100644
--- a/vcl/qt5/QtBuilder.cxx
+++ b/vcl/qt5/QtBuilder.cxx
@@ -318,6 +318,13 @@ QObject* QtBuilder::makeObject(QObject* pParent, 
std::u16string_view sName, std:
         // nothing else to do, return tree view parent for the widget
         return pTreeView;
     }
+    else if (sName == u"GtkViewport")
+    {
+        // GtkViewport is an adaptor to make GtkWidgets scrollable
+        // inside a GtkScrolledWindow; no equivalent needed for widgets
+        // inside QScrollArea - just create a simple QWidget
+        pObject = new QWidget(pParentWidget);
+    }
     else
     {
         SAL_WARN("vcl.qt", "Widget type not supported yet: "

Reply via email to