qtquick: Don't hardcode "DockWidget.qml"

Allow the user to specify their impl
This commit is contained in:
Sergio Martins
2021-02-26 18:57:31 +00:00
parent c2c37488a3
commit 67a173ef53
3 changed files with 10 additions and 1 deletions

View File

@@ -10,6 +10,7 @@
*/
#include "DockWidgetQuick.h"
#include "FrameworkWidgetFactory.h"
#include <Config.h>
#include <QQuickItem>
@@ -29,7 +30,8 @@ class DockWidgetQuick::Private
public:
Private(DockWidgetQuick *dw)
: q(dw)
, m_visualItem(q->createItem(Config::self().qmlEngine(), QStringLiteral("qrc:/kddockwidgets/private/quick/qml/DockWidget.qml")))
, m_visualItem(q->createItem(Config::self().qmlEngine(),
Config::self().frameworkWidgetFactory()->dockwidgetFilename().toString()))
{
Q_ASSERT(m_visualItem);
m_visualItem->setParent(q);

View File

@@ -217,6 +217,11 @@ QUrl DefaultWidgetFactory::titleBarFilename() const
return QUrl(QStringLiteral("qrc:/kddockwidgets/private/quick/qml/TitleBar.qml"));
}
QUrl DefaultWidgetFactory::dockwidgetFilename() const
{
return QUrl(QStringLiteral("qrc:/kddockwidgets/private/quick/qml/DockWidget.qml"));
}
#endif // QtQuick
// iconForButtonType impl is the same for QtQuick and QtWidgets

View File

@@ -146,6 +146,7 @@ public:
virtual QAbstractButton* createTitleBarButton(QWidget *parent, TitleBarButtonType) const = 0;
#else
virtual QUrl titleBarFilename() const = 0;
virtual QUrl dockwidgetFilename() const = 0;
#endif
/// @brief Returns the icon to be used with the specified @p type
@@ -179,6 +180,7 @@ public:
QAbstractButton* createTitleBarButton(QWidget *parent, TitleBarButtonType) const override;
#else
QUrl titleBarFilename() const override;
QUrl dockwidgetFilename() const override;
#endif
QIcon iconForButtonType(TitleBarButtonType type, qreal dpr) const override;