wip item refactor
This commit is contained in:
parent
5cd7c782ce
commit
18cf2b01bd
6 changed files with 60 additions and 18 deletions
|
|
@ -14,6 +14,12 @@ typedef enum {
|
|||
ITEM_VALUE_NO_VALUE
|
||||
} item_value_type_t;
|
||||
|
||||
typedef enum {
|
||||
ITEM_UPDATE_USER = 0,
|
||||
ITEM_UPDATE_ACTOR,
|
||||
ITEM_UPDATE_REMOTE
|
||||
} item_update_type_t;
|
||||
|
||||
class ItemData
|
||||
{
|
||||
protected:
|
||||
|
|
@ -48,7 +54,7 @@ public:
|
|||
uint8_t getValue() const;
|
||||
bool getLoaded() const;
|
||||
void setLoaded(bool loaded);
|
||||
bool isHidden();
|
||||
bool isHidden() const;
|
||||
void setHidden(bool hidden);
|
||||
item_value_type_t getValueType();
|
||||
virtual QString getName() const;
|
||||
|
|
@ -56,24 +62,26 @@ public:
|
|||
virtual void load(const QJsonObject& json, const bool preserve = false);
|
||||
};
|
||||
|
||||
struct ItemUpdateRequest
|
||||
{
|
||||
item_update_type_t type;
|
||||
ItemData data;
|
||||
bool valueOnly;
|
||||
};
|
||||
|
||||
|
||||
class Item: public QObject, public ItemData
|
||||
{
|
||||
Q_OBJECT
|
||||
private:
|
||||
std::vector< std::shared_ptr<Actor> > actors_;
|
||||
|
||||
bool override_ = false;
|
||||
|
||||
signals:
|
||||
void valueChanged(uint8_t value);
|
||||
void updated(ItemData data);
|
||||
|
||||
private slots:
|
||||
virtual void actorSetValue(uint8_t value);
|
||||
void updated(ItemUpdateRequest update);
|
||||
|
||||
public slots:
|
||||
void setValue(uint8_t value);
|
||||
void requestUpdate(ItemUpdateRequest update);
|
||||
|
||||
public:
|
||||
|
||||
|
|
@ -83,6 +91,7 @@ public:
|
|||
|
||||
virtual ~Item();
|
||||
|
||||
Item& operator=(const ItemData& other);
|
||||
std::vector< std::shared_ptr<Actor> >& getActors();
|
||||
bool hasActors();
|
||||
void addActor(std::shared_ptr<Actor> actor);
|
||||
|
|
@ -91,7 +100,6 @@ public:
|
|||
void setActorsActive(bool in);
|
||||
void setOverride(const bool in);
|
||||
bool getOverride();
|
||||
void informValue(uint8_t value);
|
||||
void mergeLoaded(Item& item);
|
||||
|
||||
virtual void store(QJsonObject& json);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue