summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vcl/inc/qt5/QtInstanceBuilder.hxx2
-rw-r--r--vcl/qt5/QtInstance.cxx2
-rw-r--r--vcl/qt5/QtInstanceBuilder.cxx11
3 files changed, 11 insertions, 4 deletions
diff --git a/vcl/inc/qt5/QtInstanceBuilder.hxx b/vcl/inc/qt5/QtInstanceBuilder.hxx
index 788484dcbbb3..dc1a9da87457 100644
--- a/vcl/inc/qt5/QtInstanceBuilder.hxx
+++ b/vcl/inc/qt5/QtInstanceBuilder.hxx
@@ -27,7 +27,7 @@ public:
QtInstanceBuilder(QWidget* pParent, std::u16string_view sUIRoot, const OUString& rUIFile);
~QtInstanceBuilder();
- static bool IsUIFileSupported(const OUString& rUIFile);
+ static bool IsUIFileSupported(const OUString& rUIFile, const weld::Widget* pParent);
virtual std::unique_ptr<weld::MessageDialog> weld_message_dialog(const OUString& id) override;
virtual std::unique_ptr<weld::Dialog> weld_dialog(const OUString& rId) override;
diff --git a/vcl/qt5/QtInstance.cxx b/vcl/qt5/QtInstance.cxx
index 242b8d10a5a6..c32ec7128d29 100644
--- a/vcl/qt5/QtInstance.cxx
+++ b/vcl/qt5/QtInstance.cxx
@@ -912,7 +912,7 @@ QtInstance::CreateBuilder(weld::Widget* pParent, const OUString& rUIRoot, const
// for now, require explicitly enabling use of QtInstanceBuilder via SAL_VCL_QT_USE_WELDED_WIDGETS
static const bool bUseWeldedWidgets = (getenv("SAL_VCL_QT_USE_WELDED_WIDGETS") != nullptr);
if (bUseWeldedWidgets && !QtData::noWeldedWidgets()
- && QtInstanceBuilder::IsUIFileSupported(rUIFile))
+ && QtInstanceBuilder::IsUIFileSupported(rUIFile, pParent))
{
QWidget* pQtParent = GetNativeParentFromWeldParent(pParent);
return std::make_unique<QtInstanceBuilder>(pQtParent, rUIRoot, rUIFile);
diff --git a/vcl/qt5/QtInstanceBuilder.cxx b/vcl/qt5/QtInstanceBuilder.cxx
index 7049cbf8e3bf..73c3406ee4f5 100644
--- a/vcl/qt5/QtInstanceBuilder.cxx
+++ b/vcl/qt5/QtInstanceBuilder.cxx
@@ -55,7 +55,7 @@ QtInstanceBuilder::QtInstanceBuilder(QWidget* pParent, std::u16string_view sUIRo
QtInstanceBuilder::~QtInstanceBuilder() {}
-bool QtInstanceBuilder::IsUIFileSupported(const OUString& rUIFile)
+bool QtInstanceBuilder::IsUIFileSupported(const OUString& rUIFile, const weld::Widget* pParent)
{
// set of supported UI files
//
@@ -88,6 +88,8 @@ bool QtInstanceBuilder::IsUIFileSupported(const OUString& rUIFile)
u"cui/ui/tipofthedaydialog.ui"_ustr,
u"cui/ui/toolbarmodedialog.ui"_ustr,
u"cui/ui/uitabpage.ui"_ustr,
+ u"cui/ui/welcomedialog.ui"_ustr,
+ u"cui/ui/whatsnewtabpage.ui"_ustr,
u"cui/ui/zoomdialog.ui"_ustr,
u"dbaccess/ui/savedialog.ui"_ustr,
u"dbaccess/ui/tabledesignsavemodifieddialog.ui"_ustr,
@@ -156,7 +158,12 @@ bool QtInstanceBuilder::IsUIFileSupported(const OUString& rUIFile)
u"writerperfect/ui/exportepub.ui"_ustr,
};
- return aSupportedUIFiles.contains(rUIFile);
+ if (aSupportedUIFiles.contains(rUIFile))
+ return true;
+
+ // this tab page is currently only supported in the "Welcome" dialog, but
+ // not in the "Tools" -> "Options" dialog that's not using native Qt widgets yet
+ return rUIFile == u"cui/ui/appearance.ui" && dynamic_cast<const QtInstanceWidget*>(pParent);
}
std::unique_ptr<weld::MessageDialog> QtInstanceBuilder::weld_message_dialog(const OUString& id)