#pragma once #include "extract_basic.h" #include "convert_basic.h" /// /// ·­Òë³ÌÐòºËÐÄ /// class TranslateBasic { private: QHash> _extractor_types; std::shared_ptr _default_translate_rule = nullptr; QHash> _size_provider_types; std::shared_ptr _default_size_provider = nullptr; QHash> _rule_match_types; std::shared_ptr _default_rule_match = nullptr; public: TranslateBasic(); std::shared_ptr defaultSizeProvider() const; QHash> sizeProviderList() const; std::shared_ptr defaultRuleMatch() const; QHash> ruleMatchList() const; std::shared_ptr defaultExtractUnit() const; QHash> extractUnitList() const; }; class ConstNumberProvider : public SizeProvider { public: struct __Private { QString _value_string; } _number; public: QString name() 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; std::shared_ptr newDefault() const override; };