qml: Wire up some events for DockWidget

Some events like QEvent::Show, Hide and Close are for QWidget only,
so we have to synthetize them, as KDDW expects them
This commit is contained in:
Sergio Martins
2020-08-02 12:15:26 +01:00
parent 1df0e6d6dd
commit 197a0abb7e
3 changed files with 21 additions and 11 deletions

View File

@@ -66,10 +66,20 @@ void QWidgetAdapter::itemChange(QQuickItem::ItemChange change, const QQuickItem:
{
QQuickItem::itemChange(change, data);
if (change == QQuickItem::ItemParentHasChanged) {
// Emulate the QWidget behaviour as QQuickItem doesn't emit parentChange event.
// Emulate the QWidget behaviour as QQuickItem doesn't receive some QEvents.
switch (change) {
case QQuickItem::ItemVisibleHasChanged: {
QEvent ev(QEvent::ParentChange);
event(&ev);
break;
}
case QQuickItem::ItemParentHasChanged: {
QEvent ev(isVisible() ? QEvent::Show : QEvent::Hide);
event(&ev);
break;
}
default:
break;
}
}