Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qquickdialog.cpp
Go to the documentation of this file.
1// Copyright (C) 2017 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include "qquickdialog_p.h"
5#include "qquickdialog_p_p.h"
9
11
16
129{
130 const QQuickDialogButtonBoxAttached *attached = qobject_cast<QQuickDialogButtonBoxAttached *>(qmlAttachedPropertiesObject<QQuickDialogButtonBox>(button, false));
131 return attached ? attached->buttonRole() : QPlatformDialogHelper::InvalidRole;
132}
133
135{
136 Q_Q(QQuickDialog);
137 q->accept();
138}
139
141{
142 Q_Q(QQuickDialog);
143 q->reject();
144}
145
147{
148 Q_Q(QQuickDialog);
149 switch (buttonRole(button)) {
151 emit q->applied();
152 break;
154 emit q->reset();
155 break;
157 emit q->discarded();
158 break;
160 emit q->helpRequested();
161 break;
162 default:
163 break;
164 }
165}
166
171
188
200
219{
220 Q_D(const QQuickDialog);
221 return d->popupItem->title();
222}
223
225{
226 Q_D(QQuickDialog);
227 d->popupItem->setTitle(title);
228}
229
247{
248 Q_D(const QQuickDialog);
249 return d->popupItem->header();
250}
251
253{
254 Q_D(QQuickDialog);
255 QQuickItem *oldHeader = d->popupItem->header();
256 if (oldHeader == header)
257 return;
258
260
261 if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(oldHeader)) {
265 if (d->buttonBox == buttonBox)
266 d->buttonBox = nullptr;
267 }
268
269 if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(header)) {
273 d->buttonBox = buttonBox;
274 buttonBox->setStandardButtons(d->standardButtons);
275 }
276
277 d->popupItem->setHeader(header);
278}
279
297{
298 Q_D(const QQuickDialog);
299 return d->popupItem->footer();
300}
301
303{
304 Q_D(QQuickDialog);
305 QQuickItem *oldFooter = d->popupItem->footer();
306 if (oldFooter == footer)
307 return;
308
310
311 if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(oldFooter)) {
315 if (d->buttonBox == buttonBox)
316 d->buttonBox = nullptr;
317 }
318 if (QQuickDialogButtonBox *buttonBox = qobject_cast<QQuickDialogButtonBox *>(footer)) {
322 d->buttonBox = buttonBox;
323 buttonBox->setStandardButtons(d->standardButtons);
324 }
325
326 d->popupItem->setFooter(footer);
327}
328
361QPlatformDialogHelper::StandardButtons QQuickDialog::standardButtons() const
362{
363 Q_D(const QQuickDialog);
364 return d->standardButtons;
365}
366
367void QQuickDialog::setStandardButtons(QPlatformDialogHelper::StandardButtons buttons)
368{
369 Q_D(QQuickDialog);
370 if (d->standardButtons == buttons)
371 return;
372
373 d->standardButtons = buttons;
374 if (d->buttonBox)
375 d->buttonBox->setStandardButtons(buttons);
377}
378
387QQuickAbstractButton *QQuickDialog::standardButton(QPlatformDialogHelper::StandardButton button) const
388{
389 Q_D(const QQuickDialog);
390 if (!d->buttonBox)
391 return nullptr;
392 return d->buttonBox->standardButton(button);
393}
394
408{
409 Q_D(const QQuickDialog);
410 return d->result;
411}
412
414{
415 Q_D(QQuickDialog);
416 if (d->result == result)
417 return;
418
419 d->result = result;
420 emit resultChanged();
421}
422
435{
436 Q_D(const QQuickDialog);
437 return d->popupItem->implicitHeaderWidth();
438}
439
452{
453 Q_D(const QQuickDialog);
454 return d->popupItem->implicitHeaderHeight();
455}
456
469{
470 Q_D(const QQuickDialog);
471 return d->popupItem->implicitFooterWidth();
472}
473
486{
487 Q_D(const QQuickDialog);
488 return d->popupItem->implicitFooterHeight();
489}
490
499{
500 done(Accepted);
501}
502
511{
512 done(Rejected);
513}
514
530{
532
533 if (result == Accepted)
534 emit accepted();
535 else if (result == Rejected)
536 emit rejected();
537
538 close();
539}
540
541#if QT_CONFIG(accessibility)
542QAccessible::Role QQuickDialog::accessibleRole() const
543{
544 return QAccessible::Dialog;
545}
546
547void QQuickDialog::accessibilityActiveChanged(bool active)
548{
549 Q_D(QQuickDialog);
550 QQuickPopup::accessibilityActiveChanged(active);
551
552 if (active)
553 maybeSetAccessibleName(d->popupItem->title());
554}
555#endif
556
558
559#include "moc_qquickdialog_p.cpp"
static QMetaObject::Connection connect(const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiverPrivate, Func2 slot, Qt::ConnectionType type=Qt::AutoConnection)
Definition qobject_p.h:299
static bool disconnect(const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiverPrivate, Func2 slot)
Definition qobject_p.h:328
\inmodule QtCore
Definition qobject.h:103
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
Definition qobject.cpp:2960
static bool disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *member)
\threadsafe
Definition qobject.cpp:3236
static void warnIfCustomizationNotSupported(QObject *control, QQuickItem *item, const QString &propertyName)
QPlatformDialogHelper::ButtonRole buttonRole
void clicked(QQuickAbstractButton *button)
virtual void handleClick(QQuickAbstractButton *button)
virtual void handleAccept()
static QPlatformDialogHelper::ButtonRole buttonRole(QQuickAbstractButton *button)
Popup dialog with standard buttons and a title, used for short-term interaction with the user.
virtual void handleReject()
void setTitle(const QString &title)
void setFooter(QQuickItem *footer)
qreal implicitHeaderWidth
void setResult(int result)
QQuickDialog(QObject *parent=nullptr)
void implicitHeaderHeightChanged()
qreal implicitHeaderHeight
QQuickItem * footer
qreal implicitFooterHeight
QPlatformDialogHelper::StandardButtons standardButtons
void accepted()
qreal implicitFooterWidth
virtual void accept()
\qmlmethod void QtQuick.Controls::Dialog::accept()
void implicitFooterHeightChanged()
void setStandardButtons(QPlatformDialogHelper::StandardButtons buttons)
void footerChanged()
void titleChanged()
void implicitFooterWidthChanged()
void implicitHeaderWidthChanged()
void standardButtonsChanged()
void setHeader(QQuickItem *header)
void headerChanged()
virtual void reject()
\qmlmethod void QtQuick.Controls::Dialog::reject()
virtual void done(int result)
void rejected()
QQuickItem * header
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:63
void headerChanged()
void implicitHeaderHeightChanged()
void implicitHeaderWidthChanged()
void implicitFooterWidthChanged()
void titleChanged()
void implicitFooterHeightChanged()
void footerChanged()
void close()
\qmlmethod void QtQuick.Controls::Popup::close()
void maybeSetAccessibleName(const QString &name)
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
QPushButton * button
[2]
Combined button and popup list for selecting options.
static QString header(const QString &name)
GLdouble GLdouble GLdouble GLdouble q
Definition qopenglext.h:259
GLuint64EXT * result
[6]
#define QStringLiteral(str)
#define emit
double qreal
Definition qtypes.h:187
QString title
[35]