From f6aaebafc6225c038dee2cbc6d04fb831824e4d7 Mon Sep 17 00:00:00 2001 From: Carl Klemm Date: Thu, 13 Jun 2019 00:05:10 +0200 Subject: [PATCH] Bug fixes --- src/items/item.cpp | 6 ++++++ src/items/item.h | 1 + src/items/itemstore.cpp | 1 - src/mainobject.cpp | 13 ++++++++++--- src/mainobject.h | 4 +++- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/items/item.cpp b/src/items/item.cpp index 609335f..b4c1c51 100644 --- a/src/items/item.cpp +++ b/src/items/item.cpp @@ -128,6 +128,12 @@ bool Item::removeActor(Actor* actor) return false; } +void Item::removeAllActors() +{ + for(unsigned int i = 0; i < actors_.size(); i++) delete actors_[i]; + actors_.clear(); +} + std::vector< Actor* >& Item::getActors() { return actors_; diff --git a/src/items/item.h b/src/items/item.h index 0f02d26..7f55fab 100644 --- a/src/items/item.h +++ b/src/items/item.h @@ -59,6 +59,7 @@ public: bool hasActors(); void addActor(Actor* actor); bool removeActor(Actor* actor); + void removeAllActors(); bool actorsActive() const; void setActorsActive(bool in); void informValue(uint8_t value); diff --git a/src/items/itemstore.cpp b/src/items/itemstore.cpp index 9aac242..e3f0e59 100644 --- a/src/items/itemstore.cpp +++ b/src/items/itemstore.cpp @@ -91,7 +91,6 @@ void ItemStore::load(const QJsonObject& json, Microcontroller * const micro) if(itemsArray[i].isObject()) { const QJsonObject itemObject = itemsArray[i].toObject(); - if(!itemObject["Name"].isObject()) qDebug()<<"no name"; std::shared_ptr newItem; if(itemObject["Type"].toString("") == "Relay") { diff --git a/src/mainobject.cpp b/src/mainobject.cpp index 3f4dca0..a94d413 100644 --- a/src/mainobject.cpp +++ b/src/mainobject.cpp @@ -36,7 +36,7 @@ MainObject::MainObject(QIODevice* ioDevice, const QString& settingsPathIn, const items.addItem(rgbItem); items.addItem(auxItem); - connect(&broadCast, &BroadCast::gotJson, this, &MainObject::load); + connect(&broadCast, &BroadCast::gotJson, this, &MainObject::recivedJson); connect(&broadCast, &BroadCast::jsonRequested, this, &MainObject::sendJson); if(master) load(getJsonObjectFromDisk(settingsPath)); @@ -68,9 +68,11 @@ void MainObject::store(QJsonObject &json) json.insert("Power", powerObject); } -void MainObject::load(const QJsonObject json) +void MainObject::load(const QJsonObject& json) { items.clear(); + rgbItem->removeAllActors(); + auxItem->removeAllActors(); items.addItem(rgbItem); items.addItem(auxItem); items.load(json, µ); @@ -78,13 +80,18 @@ void MainObject::load(const QJsonObject json) qDebug()<<"aray size: "<= 2) { - rgbItem->load(json["Items"].toArray()[0].toObject()); auxItem->load(json["Items"].toArray()[1].toObject()); } micro.requestState(); } +void MainObject::recivedJson(const QJsonObject json) +{ + if(master)storeJsonObjectToDisk(json, settingsPath); + load(json); +} + void MainObject::sendJson() { QJsonObject json; diff --git a/src/mainobject.h b/src/mainobject.h index bad171f..5c01dec 100644 --- a/src/mainobject.h +++ b/src/mainobject.h @@ -73,13 +73,15 @@ public: ~MainObject(); void store(QJsonObject& json); + void load(const QJsonObject& json); signals: public slots: - void load(const QJsonObject json); + void sendJson(); + void recivedJson(const QJsonObject json); };