#ifndef QMPSETTINGSRO_H #define QMPSETTINGSRO_H #include #include #include #include #include struct qmpOptionR { enum ParameterType { parameter_int = 0, parameter_uint, parameter_bool, parameter_double, parameter_str, parameter_enum, parameter_url, parameter_custom = 0x100 }; std::string desc; ParameterType type; QVariant defaultval, minv, maxv; std::vector enumlist; qmpOptionR() {} qmpOptionR( std::string _desc, ParameterType _t, QVariant _def = QVariant(), QVariant _min = QVariant(), QVariant _max = QVariant()): desc(_desc), type(_t), defaultval(_def), minv(_min), maxv(_max) {} }; class qmpSettingsRO { public: qmpSettingsRO(); void registerOptionInt(std::string tab, std::string desc, std::string key, int min, int max, int defaultval); int getOptionInt(std::string key); void setOptionInt(std::string key, int val); void registerOptionUint(std::string tab, std::string desc, std::string key, unsigned min, unsigned max, unsigned defaultval); unsigned getOptionUint(std::string key); void setOptionUint(std::string key, unsigned val); void registerOptionBool(std::string tab, std::string desc, std::string key, bool defaultval); bool getOptionBool(std::string key); void setOptionBool(std::string key, bool val); void registerOptionDouble(std::string tab, std::string desc, std::string key, double min, double max, double defaultval); double getOptionDouble(std::string key); void setOptionDouble(std::string key, double val); void registerOptionString(std::string tab, std::string desc, std::string key, std::string defaultval, bool is_url); std::string getOptionString(std::string key); void setOptionString(std::string key, std::string val); void registerOptionEnumInt(std::string tab, std::string desc, std::string key, std::vector enumlist, int defaultval); int getOptionEnumInt(std::string key); std::string getOptionEnumIntOptName(std::string key); void setOptionEnumInt(std::string key, int val); void setOptionEnumIntOptName(std::string key, std::string valname); void load(const char *path); void setopt(std::string key, std::string val); void listopt(); private: std::map options; std::vector optionlist; QVariantMap settings; }; #endif