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());
129 subMenu = newSubMenu;
131 emit q->subMenuChanged();
177QQuickMenuItem::QQuickMenuItem(QQuickItem *parent)
178 : QQuickAbstractButton(*(
new QQuickMenuItemPrivate), parent)
180 connect(
this, &QQuickAbstractButton::clicked,
this, &QQuickMenuItem::triggered);
226void QQuickMenuItem::setArrow(QQuickItem *arrow)
229 if (d->arrow == arrow)
232 if (!d->arrow.isExecuting())
235 QQuickControlPrivate::hideOldItem(d->arrow);
237 if (arrow && !arrow->parentItem())
238 arrow->setParentItem(
this);
239 if (!d->arrow.isExecuting())
288void QQuickMenuItem::setImplicitTextPadding(qreal newImplicitTextPadding)
291 if (qFuzzyCompare(d->implicitTextPadding, newImplicitTextPadding))
293 d->implicitTextPadding = newImplicitTextPadding;
294 emit implicitTextPaddingChanged();
313 QDebugStateSaver saver(debug);
316 debug <<
"QQuickMenuItem(nullptr)";
320 debug << menuItem->metaObject()->className() <<
'(' <<
static_cast<
const void *>(menuItem);
321 if (!menuItem->objectName().isEmpty())
322 debug <<
", name=" << menuItem->objectName();
323 debug <<
", text=" << menuItem->text();