//// MessageDialog.cpp//// Created by Bradley Austin Davis on 2015/04/14// Copyright 2015 High Fidelity, Inc.//// Distributed under the Apache License, Version 2.0.// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html//#include "MessageDialog.h" HIFI_QML_DEF(MessageDialog) MessageDialog::MessageDialog(QQuickItem* parent) : OffscreenQmlDialog(parent) { _buttons = StandardButtons(Ok | Cancel);} MessageDialog::~MessageDialog() {} QString MessageDialog::text() const { return _text;} QString MessageDialog::informativeText() const { return _informativeText;} QString MessageDialog::detailedText() const { return _detailedText;} MessageDialog::Icon MessageDialog::icon() const { return _icon;} void MessageDialog::setVisible(bool v) { OffscreenQmlDialog::setVisible(v);} void MessageDialog::setText(const QString& arg) { if (arg != _text) { _text = arg; emit textChanged(); }} void MessageDialog::setInformativeText(const QString& arg) { if (arg != _informativeText) { _informativeText = arg; emit informativeTextChanged(); }} void MessageDialog::setDetailedText(const QString& arg) { if (arg != _detailedText) { _detailedText = arg; emit detailedTextChanged(); }} void MessageDialog::setIcon(MessageDialog::Icon icon) { if (icon != _icon) { _icon = icon; emit iconChanged(); }} void MessageDialog::setStandardButtons(StandardButtons buttons) { if (buttons != _buttons) { _buttons = buttons; emit standardButtonsChanged(); }} void MessageDialog::click(StandardButton button) { // FIXME try to do it more like the standard dialog click(StandardButton(button), ButtonRole::NoRole);} MessageDialog::StandardButtons MessageDialog::standardButtons() const { return _buttons;} MessageDialog::StandardButton MessageDialog::clickedButton() const { return _clickedButton;} void MessageDialog::click(StandardButton button, ButtonRole) { _clickedButton = button; if (_resultCallback) { _resultCallback(QMessageBox::StandardButton(_clickedButton)); } hide();} void MessageDialog::accept() { // enter key is treated like OK if (_clickedButton == NoButton) _clickedButton = Ok; if (_resultCallback) { _resultCallback(QMessageBox::StandardButton(_clickedButton)); } OffscreenQmlDialog::accept();} void MessageDialog::reject() { // escape key is treated like cancel if (_clickedButton == NoButton) _clickedButton = Cancel; if (_resultCallback) { _resultCallback(QMessageBox::StandardButton(_clickedButton)); } OffscreenQmlDialog::reject();} void MessageDialog::setResultCallback(OffscreenUi::ButtonCallback callback) { _resultCallback = callback;}
//
// MessageDialog.cpp
//
// Created by Bradley Austin Davis on 2015/04/14
// Copyright 2015 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
#include "MessageDialog.h"
HIFI_QML_DEF(MessageDialog)
MessageDialog::MessageDialog(QQuickItem* parent) : OffscreenQmlDialog(parent) {
_buttons = StandardButtons(Ok | Cancel);
}
MessageDialog::~MessageDialog() {
}
QString MessageDialog::text() const {
return _text;
}
QString MessageDialog::informativeText() const {
return _informativeText;
}
QString MessageDialog::detailedText() const {
return _detailedText;
}
MessageDialog::Icon MessageDialog::icon() const {
return _icon;
}
void MessageDialog::setVisible(bool v) {
OffscreenQmlDialog::setVisible(v);
}
void MessageDialog::setText(const QString& arg) {
if (arg != _text) {
_text = arg;
emit textChanged();
}
}
void MessageDialog::setInformativeText(const QString& arg) {
if (arg != _informativeText) {
_informativeText = arg;
emit informativeTextChanged();
}
}
void MessageDialog::setDetailedText(const QString& arg) {
if (arg != _detailedText) {
_detailedText = arg;
emit detailedTextChanged();
}
}
void MessageDialog::setIcon(MessageDialog::Icon icon) {
if (icon != _icon) {
_icon = icon;
emit iconChanged();
}
}
void MessageDialog::setStandardButtons(StandardButtons buttons) {
if (buttons != _buttons) {
_buttons = buttons;
emit standardButtonsChanged();
}
}
void MessageDialog::click(StandardButton button) {
// FIXME try to do it more like the standard dialog
click(StandardButton(button), ButtonRole::NoRole);
}
MessageDialog::StandardButtons MessageDialog::standardButtons() const {
return _buttons;
}
MessageDialog::StandardButton MessageDialog::clickedButton() const {
return _clickedButton;
}
void MessageDialog::click(StandardButton button, ButtonRole) {
_clickedButton = button;
if (_resultCallback) {
_resultCallback(QMessageBox::StandardButton(_clickedButton));
}
hide();
}
void MessageDialog::accept() {
// enter key is treated like OK
if (_clickedButton == NoButton)
_clickedButton = Ok;
if (_resultCallback) {
_resultCallback(QMessageBox::StandardButton(_clickedButton));
}
OffscreenQmlDialog::accept();
}
void MessageDialog::reject() {
// escape key is treated like cancel
if (_clickedButton == NoButton)
_clickedButton = Cancel;
if (_resultCallback) {
_resultCallback(QMessageBox::StandardButton(_clickedButton));
}
OffscreenQmlDialog::reject();
}
void MessageDialog::setResultCallback(OffscreenUi::ButtonCallback callback) {
_resultCallback = callback;
}