Added system item support, support for RGBControlers with multiple item backends, and item settings widgets

This commit is contained in:
2020-05-05 22:29:43 +02:00
parent a761eb4317
commit 5fb9ca7cc0
56 changed files with 635 additions and 210 deletions

View File

@ -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("");
}