Files
TrainControllerUi/src/ui/itemwidget.h
2022-02-11 11:46:30 +01:00

59 lines
988 B
C++

#ifndef RELAYWIDGET_H
#define RELAYWIDGET_H
#include <QWidget>
#include <memory>
#include <QShortcut>
#include "itemsettingsdialog.h"
#include "../items/item.h"
namespace Ui
{
class ItemWidget;
}
class ItemWidget : public QWidget
{
Q_OBJECT
private:
std::weak_ptr<Item> item_;
std::vector< std::unique_ptr<QShortcut> > shortcuts_;
void disable();
signals:
void deleteRequest(const ItemData& item);
private slots:
void setValue(int8_t value);
void moveToValue(int8_t value);
void deleteItem();
void stepUp();
void stepDown();
void f1(int state);
void f2(int state);
void f3(int state);
void f4(int state);
void reverse();
public:
explicit ItemWidget(std::weak_ptr<Item> item, QWidget *parent);
std::weak_ptr<Item> getItem();
bool controles(const ItemData& relay);
~ItemWidget();
void setShortcuts(QKeySequence up, QKeySequence down, QKeySequence rev);
public slots:
void stateChanged(int state);
private:
Ui::ItemWidget *ui;
};
#endif // RELAYWIDGET_H