some changes
This commit is contained in:
parent
fb7063de2c
commit
67ee3963a6
4 changed files with 45 additions and 6 deletions
|
@ -1,4 +1,4 @@
|
||||||
#include "omobidisplaybackend.h"
|
#include "omobidisplaybackend.h"
|
||||||
|
|
||||||
OmobiDisplayBackend::OmobiDisplayBackend(QObject *parent) : QObject(parent)
|
OmobiDisplayBackend::OmobiDisplayBackend(QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
|
@ -96,8 +96,15 @@ void OmobiDisplayBackend::DataHandler(QString s){
|
||||||
};
|
};
|
||||||
|
|
||||||
for(QString key : textMap.toMap().keys()) {
|
for(QString key : textMap.toMap().keys()) {
|
||||||
if(keyTranslations.contains(key))
|
if(keyTranslations.contains(key)) {
|
||||||
text.insert(keyTranslations[key], textMap.toMap()[key]);
|
if(key == "color") {
|
||||||
|
QVariantMap colorMap = textMap.toMap()[key].toMap();
|
||||||
|
QColor color(colorMap["r"].toInt(), colorMap["g"].toInt(), colorMap["b"].toInt());
|
||||||
|
text.insert(keyTranslations[key], color.name());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
text.insert(keyTranslations[key], textMap.toMap()[key]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
texts.append(text);
|
texts.append(text);
|
||||||
|
@ -120,7 +127,13 @@ void OmobiDisplayBackend::handleDisplayTextModelDataChanged() {
|
||||||
QVariantHash textMap;
|
QVariantHash textMap;
|
||||||
|
|
||||||
for(int key : text.keys()) {
|
for(int key : text.keys()) {
|
||||||
textMap.insert(this->displayTextModel->roleNames()[key], text[key]);
|
if(key == OmobiDisplayTextModel::ColorRole) {
|
||||||
|
QColor color = QColor(text[key].toString());
|
||||||
|
color = color.toRgb();
|
||||||
|
QVariantMap colorMap = {{"r", color.red()}, {"g", color.green()}, {"b", color.blue()}};
|
||||||
|
}
|
||||||
|
else
|
||||||
|
textMap.insert(this->displayTextModel->roleNames()[key], text[key]);
|
||||||
}
|
}
|
||||||
|
|
||||||
textList.append(textMap);
|
textList.append(textMap);
|
||||||
|
@ -128,6 +141,8 @@ void OmobiDisplayBackend::handleDisplayTextModelDataChanged() {
|
||||||
|
|
||||||
QJsonDocument doc = QJsonDocument::fromVariant(textList);
|
QJsonDocument doc = QJsonDocument::fromVariant(textList);
|
||||||
|
|
||||||
|
qDebug() << doc.toJson(QJsonDocument::Indented);
|
||||||
|
|
||||||
this->ble->sendData("SET_TEXTS:" + doc.toJson(QJsonDocument::Compact));
|
this->ble->sendData("SET_TEXTS:" + doc.toJson(QJsonDocument::Compact));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,16 @@ public:
|
||||||
};
|
};
|
||||||
Q_ENUM(OmobiDisplayAppState)
|
Q_ENUM(OmobiDisplayAppState)
|
||||||
|
|
||||||
|
typedef struct text_set_t
|
||||||
|
{
|
||||||
|
const char text[5];
|
||||||
|
uint time_ms;
|
||||||
|
uint color;
|
||||||
|
bool text_scroll;
|
||||||
|
uint text_scroll_pass;
|
||||||
|
bool active;
|
||||||
|
} text_set_t;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
OmobiDisplayAppState state;
|
OmobiDisplayAppState state;
|
||||||
QBluetoothLeUart *ble;
|
QBluetoothLeUart *ble;
|
||||||
|
|
|
@ -47,6 +47,11 @@ void OmobiDisplayTextModel::append(
|
||||||
unsigned int scrollSpeed,
|
unsigned int scrollSpeed,
|
||||||
unsigned int scrollCount
|
unsigned int scrollCount
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
// the current Maximum is 5
|
||||||
|
if(this->texts.length() >= 5)
|
||||||
|
return;
|
||||||
|
|
||||||
QMap<int, QVariant> roles = {
|
QMap<int, QVariant> roles = {
|
||||||
{ TextRole, text },
|
{ TextRole, text },
|
||||||
{ ActiveRole, active },
|
{ ActiveRole, active },
|
||||||
|
|
|
@ -12,7 +12,7 @@ class OmobiDisplayTextModel : public QAbstractListModel
|
||||||
public:
|
public:
|
||||||
friend class OmobiDisplayBackend;
|
friend class OmobiDisplayBackend;
|
||||||
|
|
||||||
enum QBluetoothLeUartDeviceModelRole {
|
enum OmobiDisplayTextModelRole {
|
||||||
TextRole = Qt::DisplayRole,
|
TextRole = Qt::DisplayRole,
|
||||||
ActiveRole,
|
ActiveRole,
|
||||||
RuntimeRole,
|
RuntimeRole,
|
||||||
|
@ -23,7 +23,16 @@ public:
|
||||||
ScrollCountRole,
|
ScrollCountRole,
|
||||||
IndexRole
|
IndexRole
|
||||||
};
|
};
|
||||||
Q_ENUM(QBluetoothLeUartDeviceModelRole)
|
Q_ENUM(OmobiDisplayTextModelRole)
|
||||||
|
|
||||||
|
|
||||||
|
enum text_align_t
|
||||||
|
{
|
||||||
|
AlignLeft,
|
||||||
|
AlignCenter,
|
||||||
|
AlignRignt
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
int rowCount(const QModelIndex & = QModelIndex()) const;
|
int rowCount(const QModelIndex & = QModelIndex()) const;
|
||||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
|
||||||
|
|
Loading…
Reference in a new issue