qtquick: Allow to add the guest widget declaratively
This is an alternative to setting source
This commit is contained in:
@@ -33,6 +33,15 @@ KDDW.MainWindowLayout {
|
||||
source: ":/Another.qml"
|
||||
}
|
||||
|
||||
KDDW.DockWidget {
|
||||
id: dock5
|
||||
uniqueName: "dock5"
|
||||
Rectangle {
|
||||
id: guest
|
||||
color: "pink"
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "Toggle Another"
|
||||
anchors {
|
||||
@@ -43,10 +52,10 @@ KDDW.MainWindowLayout {
|
||||
z: 10
|
||||
|
||||
onClicked: {
|
||||
if (dock4.dockWidget.visible) {
|
||||
dock4.dockWidget.close();
|
||||
if (dock5.dockWidget.visible) {
|
||||
dock5.dockWidget.close();
|
||||
} else {
|
||||
dock4.dockWidget.show();
|
||||
dock5.dockWidget.show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,14 +63,21 @@ void DockWidgetInstantiator::componentComplete()
|
||||
qWarning() << Q_FUNC_INFO << "Unexpected bug.";
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_sourceFilename.isEmpty()) {
|
||||
qWarning() << Q_FUNC_INFO << "the 'source' property must be set.";
|
||||
const auto childItems = this->childItems();
|
||||
if (m_sourceFilename.isEmpty() && childItems.size() != 1) {
|
||||
qWarning() << Q_FUNC_INFO << "Either 'source' property must be set or add exactly one child"
|
||||
<< "; source=" << m_sourceFilename << "; num children=" << childItems.size();
|
||||
return;
|
||||
}
|
||||
|
||||
m_dockWidget = new DockWidgetQuick(m_uniqueName);
|
||||
m_dockWidget->setWidget(m_sourceFilename);
|
||||
|
||||
if (m_sourceFilename.isEmpty()) {
|
||||
m_dockWidget->setWidget(childItems.constFirst());
|
||||
} else {
|
||||
m_dockWidget->setWidget(m_sourceFilename);
|
||||
}
|
||||
|
||||
|
||||
Q_EMIT dockWidgetChanged();
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ class DockWidgetQuick;
|
||||
class DockWidgetInstantiator : public QQuickItem
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(QQmlParserStatus)
|
||||
Q_PROPERTY(QString uniqueName READ uniqueName WRITE setUniqueName NOTIFY uniqueNameChanged)
|
||||
Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged)
|
||||
Q_PROPERTY(KDDockWidgets::DockWidgetQuick *dockWidget READ dockWidget NOTIFY dockWidgetChanged)
|
||||
|
||||
Reference in New Issue
Block a user