diff --git a/TranslateUI/SequenceView.cpp b/TranslateUI/SequenceView.cpp index d8bd577..eae8543 100644 --- a/TranslateUI/SequenceView.cpp +++ b/TranslateUI/SequenceView.cpp @@ -5,6 +5,7 @@ #include "TranslateBasic.h" using namespace extract; +using namespace unit_func; IntDelegate::IntDelegate(int min, int max) : _min_value(min), _max_value(max) { diff --git a/TranslateUI/SequenceView.h b/TranslateUI/SequenceView.h index 2d75f98..961a34f 100644 --- a/TranslateUI/SequenceView.h +++ b/TranslateUI/SequenceView.h @@ -9,48 +9,48 @@ #include "TranslateBasic.h" +namespace unit_func { + /// + /// 整形修改代理 + /// + class IntDelegate : public QStyledItemDelegate { + Q_OBJECT + private: + int _min_value, _max_value; + + signals: + void valueChanged(const QModelIndex& idx) const; + + 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 IntDelegate : public QStyledItemDelegate { - Q_OBJECT -private: - int _min_value, _max_value; + /// + /// 翻译规则编辑代理 + /// + class RuleSelectDelegate : public QStyledItemDelegate { + Q_OBJECT + private: + std::shared_ptr _kernel; -signals: - void valueChanged(const QModelIndex& idx) const; + signals: + void dataChanged(const QModelIndex& idx) const; -public: - IntDelegate(int min, int max); + public: + RuleSelectDelegate(std::shared_ptr ins); - 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 RuleSelectDelegate : public QStyledItemDelegate { - Q_OBJECT -private: - std::shared_ptr _kernel; - -signals: - void dataChanged(const QModelIndex& idx) const; - -public: - RuleSelectDelegate(std::shared_ptr ins); - - 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; -}; + 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; + }; +} /// /// 序列化规则视图 diff --git a/TranslateUI/StructuralRuleView.cpp b/TranslateUI/StructuralRuleView.cpp index 8de3171..42995cc 100644 --- a/TranslateUI/StructuralRuleView.cpp +++ b/TranslateUI/StructuralRuleView.cpp @@ -8,6 +8,10 @@ #include #include "TranslateBasic.h" +using namespace configuration_panel; +using namespace size_provider; + + StructuralRuleView::StructuralRuleView( std::shared_ptr base, std::shared_ptr inst_r, QWidget* p /*= nullptr*/) diff --git a/TranslateUI/StructuralRuleView.h b/TranslateUI/StructuralRuleView.h index dd6b562..615dee7 100644 --- a/TranslateUI/StructuralRuleView.h +++ b/TranslateUI/StructuralRuleView.h @@ -9,109 +9,111 @@ #include #include "SequenceView.h" -/// -/// 空白配置面板 -/// -class EmptyConfiguration : public QWidget { -public: - EmptyConfiguration(QWidget* p = nullptr); -}; +namespace configuration_panel { + /// + /// 空白配置面板 + /// + class EmptyConfiguration : public QWidget { + public: + EmptyConfiguration(QWidget* p = nullptr); + }; -/// -/// 字段长度配置面板 -/// -class CountWithinConfiguration : public QWidget { - Q_OBJECT -private: - std::shared_ptr _bind_u; - QModelIndex _bind_index; - QSpinBox* const _count_input; + /// + /// 字段长度配置面板 + /// + class CountWithinConfiguration : public QWidget { + Q_OBJECT + private: + std::shared_ptr _bind_u; + QModelIndex _bind_index; + QSpinBox* const _count_input; -public: - CountWithinConfiguration(QWidget* p = nullptr); + public: + CountWithinConfiguration(QWidget* p = nullptr); - void currentRuleAccept(std::shared_ptr u, const QModelIndex& i); + void currentRuleAccept(std::shared_ptr u, const QModelIndex& i); -signals: - void currentRuleChanged(const QModelIndex& idx); -}; + signals: + void currentRuleChanged(const QModelIndex& idx); + }; -/// -/// 字符串文本编码配置面板 -/// -class EncodingConfiguration : public QWidget { - Q_OBJECT -private: - std::shared_ptr _bind_u; - QModelIndex _bind_index; - QSpinBox* const _count_input; - QComboBox* const _encoding_set; + /// + /// 字符串文本编码配置面板 + /// + class EncodingConfiguration : public QWidget { + Q_OBJECT + private: + std::shared_ptr _bind_u; + QModelIndex _bind_index; + QSpinBox* const _count_input; + QComboBox* const _encoding_set; -public: - EncodingConfiguration(QWidget* p = nullptr); + public: + EncodingConfiguration(QWidget* p = nullptr); - void currentRuleAccept(std::shared_ptr u, const QModelIndex& i); + void currentRuleAccept(std::shared_ptr u, const QModelIndex& i); -signals: - void currentRuleChanged(const QModelIndex& idx); -}; + signals: + void currentRuleChanged(const QModelIndex& idx); + }; #include "extract_basic.h" -/// -/// 位联合配置面板 -/// -class BitCombineConfiguration : public QWidget { - Q_OBJECT -private: - std::shared_ptr _bind_u; - QModelIndex _bind_index; + /// + /// 位联合配置面板 + /// + class BitCombineConfiguration : public QWidget { + Q_OBJECT + private: + std::shared_ptr _bind_u; + QModelIndex _bind_index; - QSpinBox* const _count_input; - QTableView* const _bit_items; - QStandardItemModel* const _bit_model; - QSpinBox* const _index_appoint; - QLineEdit* const _bit_means; + QSpinBox* const _count_input; + QTableView* const _bit_items; + QStandardItemModel* const _bit_model; + QSpinBox* const _index_appoint; + QLineEdit* const _bit_means; -public: - BitCombineConfiguration(QWidget* p = nullptr); + public: + BitCombineConfiguration(QWidget* p = nullptr); - void currentRuleAccept(std::shared_ptr u, const QModelIndex& i); - void reloadContent(std::shared_ptr u); + void currentRuleAccept(std::shared_ptr u, const QModelIndex& i); + void reloadContent(std::shared_ptr u); -signals: - void currentRuleChanged(const QModelIndex& idx); -}; + signals: + void currentRuleChanged(const QModelIndex& idx); + }; -/// -/// 列表字段配置面板 -/// -class ListUnitConfiguration : public QWidget { - Q_OBJECT -private: - std::shared_ptr _bind_core; - std::shared_ptr _bind_u; - QModelIndex _bind_index; + /// + /// 列表字段配置面板 + /// + class ListUnitConfiguration : public QWidget { + Q_OBJECT + private: + std::shared_ptr _bind_core; + std::shared_ptr _bind_u; + QModelIndex _bind_index; - QComboBox* const _rule_select; - QComboBox* const _size_layout_select; + QComboBox* const _rule_select; + QComboBox* const _size_layout_select; - QStackedWidget* const _configs_stack; - QSpinBox* const _const_number_input; - QComboBox* const _prev_field_refer; + QStackedWidget* const _configs_stack; + QSpinBox* const _const_number_input; + QComboBox* const _prev_field_refer; -public: - ListUnitConfiguration(std::shared_ptr core, QWidget* p = nullptr); + public: + ListUnitConfiguration(std::shared_ptr core, QWidget* p = nullptr); - void currentRuleAccept( - std::shared_ptr u, - const QModelIndex& i, - std::shared_ptr getter); - void reloadContent(std::shared_ptr u, - std::shared_ptr getter); + void currentRuleAccept( + std::shared_ptr u, + const QModelIndex& i, + std::shared_ptr getter); + void reloadContent(std::shared_ptr u, + std::shared_ptr getter); -signals: - void currentRuleChanged(const QModelIndex& idx); -}; + signals: + void currentRuleChanged(const QModelIndex& idx); + }; +} class StructuralRuleView : public QWidget { @@ -126,6 +128,6 @@ public: StructuralRuleView(std::shared_ptr base, std::shared_ptr inst_r, QWidget* p = nullptr); - void cacheRefresh(const QModelIndex& curr, ListUnitConfiguration* t); + void cacheRefresh(const QModelIndex& curr, configuration_panel::ListUnitConfiguration* t); }; diff --git a/TranslateUI/TranslateBasic.cpp b/TranslateUI/TranslateBasic.cpp index 3a80dfe..1b76fd8 100644 --- a/TranslateUI/TranslateBasic.cpp +++ b/TranslateUI/TranslateBasic.cpp @@ -1,7 +1,7 @@ #include "TranslateBasic.h" using namespace extract; - +using namespace size_provider; TranslateBasic::TranslateBasic() { diff --git a/TranslateUI/TranslateBasic.h b/TranslateUI/TranslateBasic.h index 0772709..c10c3dc 100644 --- a/TranslateUI/TranslateBasic.h +++ b/TranslateUI/TranslateBasic.h @@ -131,56 +131,58 @@ public: QHash> customRules() const; }; -/// -/// 常量数字提供 -/// -class ConstNumberProvider : public SizeProvider { -public: - struct __Private { - QString _value_string; - } _number; +namespace size_provider { + /// + /// 常量数字提供 + /// + class ConstNumberProvider : public SizeProvider { + public: + struct __Private { + QString _value_string; + } _number; + + public: + QString name() const override; + + void bindInput(std::shared_ptr inst) override; + + int32_t value(const QString& expr) const override; + void setExpression(const QString& expr) override; + QString expression() const override; + + void loadFrom(std::shared_ptr core, const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; + + std::shared_ptr newDefault() const override; + }; -public: - QString name() const override; - - void bindInput(std::shared_ptr inst) override; - - int32_t value(const QString& expr) const override; - void setExpression(const QString& expr) override; - QString expression() const override; - - void loadFrom(std::shared_ptr core, const QJsonObject& obj) override; - void saveTo(QJsonObject& obj) const override; - - std::shared_ptr newDefault() const override; -}; - -/// -/// 解释期数字提供器 -/// -class InterpretedNumberPrivider : public SizeProvider { -public: - struct __Private { - QString _field_refer; - std::shared_ptr _context_inst; - } _refer; + /// + /// 解释期数字提供器 + /// + class InterpretedNumberPrivider : public SizeProvider { + public: + struct __Private { + QString _field_refer; + std::shared_ptr _context_inst; + } _refer; -public: - QString name() const override; + public: + QString name() const override; - void bindInput(std::shared_ptr inst) override; + void bindInput(std::shared_ptr inst) override; - int32_t value(const QString& expr) const override; - void setExpression(const QString& expr) override; - QString expression() const override; + int32_t value(const QString& expr) const override; + void setExpression(const QString& expr) override; + QString expression() const override; - void loadFrom(std::shared_ptr core, const QJsonObject& obj) override; - void saveTo(QJsonObject& obj) const override; + void loadFrom(std::shared_ptr core, const QJsonObject& obj) override; + void saveTo(QJsonObject& obj) const override; - std::shared_ptr newDefault() const override; -}; + std::shared_ptr newDefault() const override; + }; +} class ValueAccess : public DataAccessContext, std::enable_shared_from_this {