diff --git a/src/FrameworkWidgetFactory.cpp b/src/FrameworkWidgetFactory.cpp index 372563c7..6c01cb2a 100644 --- a/src/FrameworkWidgetFactory.cpp +++ b/src/FrameworkWidgetFactory.cpp @@ -212,6 +212,11 @@ SideBar *DefaultWidgetFactory::createSideBar(SideBarLocation loc, MainWindowBase return nullptr; } +QUrl DefaultWidgetFactory::titleBarFilename() const +{ + return QUrl(QStringLiteral("qrc:/kddockwidgets/private/quick/qml/TitleBar.qml")); +} + #endif // QtQuick // iconForButtonType impl is the same for QtQuick and QtWidgets diff --git a/src/FrameworkWidgetFactory.h b/src/FrameworkWidgetFactory.h index 56d426a9..651772a0 100644 --- a/src/FrameworkWidgetFactory.h +++ b/src/FrameworkWidgetFactory.h @@ -61,7 +61,12 @@ class TabBar; * * @sa Config::setFrameworkWidgetFactory() */ -class DOCKS_EXPORT FrameworkWidgetFactory { +class DOCKS_EXPORT FrameworkWidgetFactory : public QObject +{ +#ifdef KDDOCKWIDGETS_QTQUICK + Q_PROPERTY(QUrl titleBarFilename READ titleBarFilename CONSTANT) +#endif + Q_OBJECT public: FrameworkWidgetFactory() = default; @@ -137,7 +142,7 @@ public: ///@p parent the button's parent virtual QAbstractButton* createTitleBarButton(QWidget *parent, TitleBarButtonType) const = 0; #else - // QtQuick will have some other base class for buttons + virtual QUrl titleBarFilename() const = 0; #endif /// @brief Returns the icon to be used with the specified @p type @@ -168,6 +173,8 @@ public: #ifdef KDDOCKWIDGETS_QTWIDGETS QAbstractButton* createTitleBarButton(QWidget *parent, TitleBarButtonType) const override; +#else + QUrl titleBarFilename() const override; #endif QIcon iconForButtonType(TitleBarButtonType type, qreal dpr) const override; diff --git a/src/private/quick/qml/FloatingWindow.qml b/src/private/quick/qml/FloatingWindow.qml index adfbcdcb..a79884fc 100644 --- a/src/private/quick/qml/FloatingWindow.qml +++ b/src/private/quick/qml/FloatingWindow.qml @@ -31,7 +31,7 @@ Rectangle { Loader { id: titleBar readonly property QtObject titleBarCpp: root.titleBarCpp - source: "TitleBar.qml" + source: _kddw_widgetFactory.titleBarFilename anchors { top: parent.top