Added system item support, support for RGBControlers with multiple item backends, and item settings widgets
This commit is contained in:
@ -1,8 +1,9 @@
|
||||
#include "messageitem.h"
|
||||
|
||||
#include <QTimer>
|
||||
#include <QSound>
|
||||
|
||||
BroadCast* MessageItem::broadCast_ = nullptr;
|
||||
BroadCast* MessageItem::broadCast = nullptr;
|
||||
|
||||
MessageItem::MessageItem(uint32_t itemIdIn, QString name, uint8_t value, QObject *parent):
|
||||
Item(itemIdIn, name, value, parent)
|
||||
@ -26,13 +27,12 @@ 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();
|
||||
if(broadCast_) broadCast_->sendMessage(name_, message_);
|
||||
|
||||
//QTimer::singleShot(600000, this, &MessageItem::closeMessageBox);
|
||||
}
|
||||
else if(!value && messageBox_)
|
||||
{
|
||||
@ -52,6 +52,16 @@ void MessageItem::closeMessageBox()
|
||||
}
|
||||
}
|
||||
|
||||
QString MessageItem::getAlert()
|
||||
{
|
||||
return alertSoundFileName;
|
||||
}
|
||||
|
||||
void MessageItem::setAlert(const QString &in)
|
||||
{
|
||||
alertSoundFileName = in;
|
||||
}
|
||||
|
||||
void MessageItem::setMessage(const QString& in)
|
||||
{
|
||||
message_ = in;
|
||||
@ -67,10 +77,12 @@ 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("");
|
||||
}
|
||||
|
Reference in New Issue
Block a user