#pragma once #include "config.h" #include // interface class ButtonManagerItem : public QTreeWidgetItem { protected: ButtonManagerItem(QTreeWidgetItem* parent, int type); public: virtual ~ButtonManagerItem(); virtual bool hasAdd() const; virtual bool hasEdit() const; virtual bool hasRemove() const; virtual bool hasMoveUp() const; virtual bool hasMoveDown() const; virtual void add(); virtual void edit(); virtual void remove(); virtual void moveUp(); virtual void moveDown(); protected: QTreeWidgetItem* mparent; }; class RowItem : public ButtonManagerItem { public: RowItem(QTreeWidgetItem* parent, uint8_t rownr, Config::RootConfig& conf); const static int TYPE = 1000; virtual bool hasRemove() const; virtual bool hasMoveUp() const; virtual bool hasMoveDown() const; virtual void remove(); virtual void moveUp(); virtual void moveDown(); private: Config::RootConfig& conf; uint8_t pos = 0; //called when the row was moved void updatePosition(); };