#pragma once #include #include #include #include #include #include #include #include #include #include #include "extract_basic.h" #include "TranslateBasic.h" namespace unit_configurations { class SingleBasedConfiguration : public QWidget { Q_OBJECT private: std::shared_ptr _bind_core; QSpinBox* const _offset_enter; QComboBox* const _delegate_changed; QPushButton* const _delegate_sync; QTextBrowser* const _content_display; std::shared_ptr inst_current = nullptr; QModelIndex idx_current; public: SingleBasedConfiguration(std::shared_ptr core, QWidget* p = nullptr); void currentAccept(std::shared_ptr inst_u, const QModelIndex& idx); signals: void reloadRequest(); }; /// /// Áбí×Ö¶ÎÅäÖÃÃæ°å /// class ListBasedConfiguration : public QWidget { Q_OBJECT private: std::shared_ptr _bind_core; QSpinBox* const _offset_enter; QPushButton* const _delegate_sync; QComboBox* const _rule_select; QComboBox* const _size_layout_select; QStackedWidget* const _configs_stack; QTextBrowser* const _content_display; QSpinBox* const _const_number_input; QComboBox* const _prev_field_refer; std::shared_ptr _bind_u = nullptr; QModelIndex _bind_index; public: ListBasedConfiguration(std::shared_ptr core, QWidget* p = nullptr); void currentAccept(std::shared_ptr inst_u, const QModelIndex& idx); signals: void reloadRequest(); }; class UnionBasedConfiguration : public QWidget { Q_OBJECT public: UnionBasedConfiguration(std::shared_ptr core, QWidget* p = nullptr); void currentAccept(std::shared_ptr inst_u, const QModelIndex& idx); signals: void reloadRequest(); }; } class ExtractRuleView : public QWidget { private: QTableView* const _member_units; QStandardItemModel* const _member_model; QStackedWidget* const _configs_stack; std::shared_ptr _rule_base; std::shared_ptr _base_bind; std::shared_ptr _current_fields_cache = nullptr; public: ExtractRuleView( std::shared_ptr base, std::shared_ptr inst_r, QWidget* p = nullptr); void reload(); void appendUnit(); protected: void showEvent(QShowEvent* e) override; };