#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