#pragma once #include #include #include #include #include #include #include #include "TranslateBasic.h" namespace unit_func { /// /// 整形修改代理 /// class IntDelegate : public QStyledItemDelegate { Q_OBJECT private: int _min_value, _max_value; public: IntDelegate(int min, int max); virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override; virtual void setEditorData(QWidget* editor, const QModelIndex& index) const override; virtual void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override; virtual void updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) const override; }; } /// /// 序列化规则视图 /// class RuleSetCustom : public QTableView { Q_OBJECT private: struct __Private { QStandardItemModel* _seqs_model; std::shared_ptr base = nullptr; std::shared_ptr _ruleset = nullptr; } _view; signals: void currentRuleChanged(std::shared_ptr u, const QModelIndex& i) const; public: void targetRuleRefresh(const QModelIndex& idx); protected: void showEvent(QShowEvent* e) override; public: RuleSetCustom(std::shared_ptr base, std::shared_ptr rule_set, QWidget* p = nullptr); void customTranslateRuleEdit(const QPoint& pos); void addTranslateUnit(); void removeTranslateUnit(); void membersPresent(std::shared_ptr _bind, QStandardItemModel* model); };