#include "messageitem.h" #include #include BroadCast* MessageItem::broadCast = nullptr; MessageItem::MessageItem(uint32_t itemIdIn, QString name, uint8_t value, QObject *parent): Item(itemIdIn, name, value, parent) { } MessageItem::MessageItem(const ItemData& itemData, QObject *parent): Item(itemData, parent) { } MessageItem::~MessageItem() { closeMessageBox(); } void MessageItem::setValue(uint8_t value) { Item::setValue(value); if(value && !messageBox_) { if(broadCast) broadCast->sendMessage(name_, message_); if(!alertSoundFileName.isEmpty()) QSound::play(alertSoundFileName); messageBox_ = new QMessageBox(QMessageBox::NoIcon, name_, message_); messageBox_->setModal(false); connect(messageBox_, &QMessageBox::finished, this, &MessageItem::closeMessageBox); messageBox_->show(); } else if(!value && messageBox_) { closeMessageBox(); } } void MessageItem::closeMessageBox() { if(messageBox_) { value_ = 0; messageBox_->hide(); delete messageBox_; messageBox_ = nullptr; } } QString MessageItem::getAlert() { return alertSoundFileName; } void MessageItem::setAlert(const QString &in) { alertSoundFileName = in; } void MessageItem::setMessage(const QString& in) { message_ = in; } QString MessageItem::getMessage() { return message_; } void MessageItem::store(QJsonObject &json) { json["Type"] = "Message"; Item::store(json); json["Message"] = message_; if(!alertSoundFileName.isEmpty()) json["Alert"] = alertSoundFileName; } void MessageItem::load(const QJsonObject &json, const bool preserve) { Item::load(json,preserve); message_ = json["Message"].toString("Invalid Message"); alertSoundFileName = json["Alert"].toString(""); }