#ifndef TMRRELAYASSOCIATION_H #define TMRRELAYASSOCIATION_H #include #include #include #include "data_config.h" #include "config_mgr.h" #include "tmrrelayassociation_data.h" #include namespace Ui { class TMRRelayAssociation; } class TMRRelayAssociation : public QDialog { Q_OBJECT public: explicit TMRRelayAssociation(int slot,int cardtype,QWidget *parent = nullptr); ~TMRRelayAssociation(); int slot_no; CardType car_type; private slots: void on_pushButton_cancel_clicked(); void on_pushButton_confirm_clicked(); void onComboBoxIndexChanged(int index); void OnButtonGroup(QAbstractButton *); void on_pushButton_and_clicked(); void on_pushButton_or_clicked(); void on_treeView_Relay_customContextMenuRequested(const QPoint &pos); void slotDeleteItem(); void on_checkBox_sgcc_stateChanged(int arg1); void on_pushButton_logic_clicked(); private: Ui::TMRRelayAssociation *ui; QButtonGroup * btnGroup_slot = nullptr; QListWidget *list_widget_available = nullptr; int current_index; QTreeView *treeView_relay; QStandardItemModel *model_Relay; std::shared_ptr relay_data = nullptr; QMap channelNameMap; void Init(); void buildTreeFromExpression(QTreeView *treeView, const QString &expr); ExprNode* parseExpression(const QString& expr, int& pos); QStandardItem* buildItemTree(ExprNode* node); void setExpressionToTreeView(QTreeView* treeView, const QString& expr); QStandardItem* parseExpression(const QString &expr); QString buildLogicExpression(QStandardItem *item); ExprValidationResult validateLogicExpression(const QString& expr); }; #endif // TMRRELAYASSOCIATION_H