16 Q_Q(QQuickMessageDialogImpl);
19 QPlatformDialogHelper::StandardButton standardButton =
20 QQuickDialogButtonBoxPrivate::get(attached->buttonBox())->standardButton(button);
21 QPlatformDialogHelper::ButtonRole role = buttonRole(button);
23 emit q->buttonClicked(standardButton, role);
48void QQuickMessageDialogImpl::setOptions(
const QSharedPointer<QMessageDialogOptions> &options)
50 Q_D(QQuickMessageDialogImpl);
53 QQuickMessageDialogImplAttached *attached = d->attachedOrWarn();
55 if (options && attached) {
56 attached->detailedTextButton()->setVisible(!d->options->detailedText().isEmpty());
57 attached->buttonBox()->setStandardButtons(d->options->standardButtons());
60 if (showDetailedText())
61 toggleShowDetailedText();
63 emit optionsChanged();
117void QQuickMessageDialogImplAttached::setButtonBox(QQuickDialogButtonBox *buttons)
119 Q_D(QQuickMessageDialogImplAttached);
120 if (d->buttonBox == buttons)
124 QQuickMessageDialogImpl *messageDialogImpl =
125 qobject_cast<QQuickMessageDialogImpl *>(parent());
126 if (messageDialogImpl) {
127 auto dialogPrivate = QQuickMessageDialogImplPrivate::get(messageDialogImpl);
128 QObjectPrivate::disconnect(d->buttonBox, &QQuickDialogButtonBox::clicked, dialogPrivate,
129 &QQuickMessageDialogImplPrivate::handleClick);
133 d->buttonBox = buttons;
136 QQuickMessageDialogImpl *messageDialogImpl =
137 qobject_cast<QQuickMessageDialogImpl *>(parent());
138 if (messageDialogImpl) {
139 auto dialogPrivate = QQuickMessageDialogImplPrivate::get(messageDialogImpl);
140 QObjectPrivate::connect(d->buttonBox, &QQuickDialogButtonBox::clicked, dialogPrivate,
141 &QQuickMessageDialogImplPrivate::handleClick);
145 emit buttonBoxChanged();
153void QQuickMessageDialogImplAttached::setDetailedTextButton(QQuickButton *detailedTextButton)
155 Q_D(QQuickMessageDialogImplAttached);
157 if (d->detailedTextButton == detailedTextButton)
160 if (d->detailedTextButton) {
161 QQuickMessageDialogImpl *messageDialogImpl =
162 qobject_cast<QQuickMessageDialogImpl *>(parent());
163 if (messageDialogImpl)
164 disconnect(d->detailedTextButton, &QQuickAbstractButton::clicked, messageDialogImpl,
165 &QQuickMessageDialogImpl::toggleShowDetailedText);
168 d->detailedTextButton = detailedTextButton;
170 if (d->detailedTextButton) {
171 QQuickMessageDialogImpl *messageDialogImpl =
172 qobject_cast<QQuickMessageDialogImpl *>(parent());
173 if (messageDialogImpl)
174 connect(d->detailedTextButton, &QQuickAbstractButton::clicked, messageDialogImpl,
175 &QQuickMessageDialogImpl::toggleShowDetailedText);
178 emit detailedTextButtonChanged();