aboutsummaryrefslogblamecommitdiff
path: root/visualization/renderer/qmpsettingsro.hpp
blob: c5dd8afc30c73716a93f36102ababcbfa71731af (plain) (tree)

































































                                                                                                                                      
                                                     
                       






                                                 
#ifndef QMPSETTINGSRO_H
#define QMPSETTINGSRO_H

#include <map>
#include <string>
#include <vector>

#include <QVariant>
#include <QPointer>

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<std::string> 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<std::string> 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<std::string,qmpOptionR> options;
	std::vector<std::string> optionlist;
	QVariantMap settings;
};

#endif