diff options
Diffstat (limited to 'src/gui/kernel/qplatformdialoghelper.cpp')
-rw-r--r-- | src/gui/kernel/qplatformdialoghelper.cpp | 93 |
1 files changed, 87 insertions, 6 deletions
diff --git a/src/gui/kernel/qplatformdialoghelper.cpp b/src/gui/kernel/qplatformdialoghelper.cpp index 0224fb2c61..93de7933d4 100644 --- a/src/gui/kernel/qplatformdialoghelper.cpp +++ b/src/gui/kernel/qplatformdialoghelper.cpp @@ -15,6 +15,7 @@ #include <QtCore/QUrl> #include <QtCore/QVariant> #include <QtGui/QColor> +#include <QtGui/QPixmap> #include <algorithm> @@ -767,13 +768,19 @@ public: {} QString windowTitle; - QMessageDialogOptions::Icon icon; + QMessageDialogOptions::StandardIcon icon; QString text; QString informativeText; QString detailedText; QPlatformDialogHelper::StandardButtons buttons; QList<QMessageDialogOptions::CustomButton> customButtons; int nextCustomButtonId; + QPixmap iconPixmap; + QString checkBoxLabel; + Qt::CheckState checkBoxState = Qt::Unchecked; + int defaultButtonId = 0; + int escapeButtonId = 0; + QMessageDialogOptions::Options options; }; QMessageDialogOptions::QMessageDialogOptions(QMessageDialogOptionsPrivate *dd) @@ -815,16 +822,26 @@ void QMessageDialogOptions::setWindowTitle(const QString &title) d->windowTitle = title; } -QMessageDialogOptions::Icon QMessageDialogOptions::icon() const +QMessageDialogOptions::StandardIcon QMessageDialogOptions::standardIcon() const { return d->icon; } -void QMessageDialogOptions::setIcon(Icon icon) +void QMessageDialogOptions::setStandardIcon(StandardIcon icon) { d->icon = icon; } +void QMessageDialogOptions::setIconPixmap(const QPixmap &pixmap) +{ + d->iconPixmap = pixmap; +} + +QPixmap QMessageDialogOptions::iconPixmap() const +{ + return d->iconPixmap; +} + QString QMessageDialogOptions::text() const { return d->text; @@ -866,9 +883,9 @@ QPlatformDialogHelper::StandardButtons QMessageDialogOptions::standardButtons() } int QMessageDialogOptions::addButton(const QString &label, QPlatformDialogHelper::ButtonRole role, - void *buttonImpl) + void *buttonImpl, int buttonId) { - const CustomButton b(d->nextCustomButtonId++, label, role, buttonImpl); + const CustomButton b(buttonId ? buttonId : d->nextCustomButtonId++, label, role, buttonImpl); d->customButtons.append(b); return b.id; } @@ -888,12 +905,76 @@ const QList<QMessageDialogOptions::CustomButton> &QMessageDialogOptions::customB return d->customButtons; } +void QMessageDialogOptions::clearCustomButtons() +{ + d->customButtons.clear(); +} + const QMessageDialogOptions::CustomButton *QMessageDialogOptions::customButton(int id) { - int i = d->customButtons.indexOf(CustomButton(id)); + const int i = int(d->customButtons.indexOf(CustomButton(id))); return (i < 0 ? nullptr : &d->customButtons.at(i)); } +void QMessageDialogOptions::setCheckBox(const QString &label, Qt::CheckState state) +{ + d->checkBoxLabel = label; + d->checkBoxState = state; +} + +QString QMessageDialogOptions::checkBoxLabel() const +{ + return d->checkBoxLabel; +} + +Qt::CheckState QMessageDialogOptions::checkBoxState() const +{ + return d->checkBoxState; +} + +void QMessageDialogOptions::setDefaultButton(int id) +{ + d->defaultButtonId = id; +} + +int QMessageDialogOptions::defaultButton() const +{ + return d->defaultButtonId; +} + +void QMessageDialogOptions::setEscapeButton(int id) +{ + d->escapeButtonId = id; +} + +int QMessageDialogOptions::escapeButton() const +{ + return d->escapeButtonId; +} + +void QMessageDialogOptions::setOption(QMessageDialogOptions::Option option, bool on) +{ + if (!(d->options & option) != !on) + setOptions(d->options ^ option); +} + +bool QMessageDialogOptions::testOption(QMessageDialogOptions::Option option) const +{ + return d->options & option; +} + +void QMessageDialogOptions::setOptions(QMessageDialogOptions::Options options) +{ + if (options != d->options) + d->options = options; +} + +QMessageDialogOptions::Options QMessageDialogOptions::options() const +{ + return d->options; +} + + QPlatformDialogHelper::ButtonRole QPlatformDialogHelper::buttonRole(QPlatformDialogHelper::StandardButton button) { switch (button) { |