diff options
-rw-r--r-- | vcl/inc/qt5/QtInstanceBuilder.hxx | 2 | ||||
-rw-r--r-- | vcl/qt5/QtInstance.cxx | 2 | ||||
-rw-r--r-- | vcl/qt5/QtInstanceBuilder.cxx | 11 |
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) |