112 if (subMenu == newSubMenu)
116 QObject::disconnect(subMenu, &QQuickMenu::titleChanged, q, &QQuickAbstractButton::setText);
117 QObject::disconnect(subMenu, &QQuickMenu::iconChanged, q, &QQuickAbstractButton::setIcon);
118 QObjectPrivate::disconnect(subMenu, &QQuickPopup::enabledChanged,
this, &QQuickMenuItemPrivate::updateEnabled);
122 QObject::connect(newSubMenu, &QQuickMenu::titleChanged, q, &QQuickAbstractButton::setText);
123 QObject::connect(newSubMenu, &QQuickMenu::iconChanged, q, &QQuickAbstractButton::setIcon);
124 QObjectPrivate::connect(newSubMenu, &QQuickPopup::enabledChanged,
this, &QQuickMenuItemPrivate::updateEnabled);
125 q->setText(newSubMenu->title());
126 q->setIcon(newSubMenu->icon());
127#if QT_CONFIG(wayland)
128 QQuickMenuPrivate::get(newSubMenu)->extendedWindowType = QNativeInterface::Private::QWaylandWindow::SubMenu;
132 subMenu = newSubMenu;
134 emit q->subMenuChanged();
180QQuickMenuItem::QQuickMenuItem(QQuickItem *parent)
181 : QQuickAbstractButton(*(
new QQuickMenuItemPrivate), parent)
183 connect(
this, &QQuickAbstractButton::clicked,
this, &QQuickMenuItem::triggered);
229void QQuickMenuItem::setArrow(QQuickItem *arrow)
232 if (d->arrow == arrow)
235 if (!d->arrow.isExecuting())
238 QQuickControlPrivate::hideOldItem(d->arrow);
240 if (arrow && !arrow->parentItem())
241 arrow->setParentItem(
this);
242 if (!d->arrow.isExecuting())
291void QQuickMenuItem::setImplicitTextPadding(qreal newImplicitTextPadding)
294 if (qFuzzyCompare(d->implicitTextPadding, newImplicitTextPadding))
296 d->implicitTextPadding = newImplicitTextPadding;
297 emit implicitTextPaddingChanged();
316 QDebugStateSaver saver(debug);
319 debug <<
"QQuickMenuItem(nullptr)";
323 debug << menuItem->metaObject()->className() <<
'(' <<
static_cast<
const void *>(menuItem);
324 if (!menuItem->objectName().isEmpty())
325 debug <<
", name=" << menuItem->objectName();
326 debug <<
", text=" << menuItem->text();