00001 #ifndef _RQT_MRTA_ARCHITECTURE_CONFIG_PARAM_H_ 00002 #define _RQT_MRTA_ARCHITECTURE_CONFIG_PARAM_H_ 00003 00004 #include "rqt_mrta/config/param_interface.h" 00005 00006 namespace rqt_mrta 00007 { 00008 namespace config 00009 { 00010 class Param : public ParamInterface 00011 { 00012 Q_OBJECT 00013 public: 00014 Param(Params* parent = NULL); 00015 virtual ~Param(); 00016 QMetaType::Type getType() const; 00017 QString getToolTip() const; 00018 QVariant getValue() const; 00019 QVariant getDefaultValue() const; 00020 bool isMandatory() const; 00021 void setType(const QString& type); 00022 void setType(const QMetaType::Type& type); 00023 void setToolTip(const QString& tool_tip); 00024 void setValue(const QString& value); 00025 void setValue(const QVariant& value); 00026 void setDefaultValue(const QString& value); 00027 void setDefaultValue(const QVariant& default_value); 00028 QString validate() const; 00029 bool isParam() const; 00030 void save(QSettings& settings) const; 00031 void load(QSettings& settings); 00032 void reset(); 00033 void write(QDataStream& stream) const; 00034 void read(QDataStream& stream); 00035 Param& operator=(const Param& config); 00036 Param* clone() const; 00037 QString toYaml(const QString &prefix) const; 00038 00039 signals: 00040 void typeChanged(const QString& full_name, const QMetaType::Type& type); 00041 void toolTipChanged(const QString& full_name, const QString& tool_tip); 00042 void valueChanged(const QString& full_name, const QVariant& value); 00043 void defaultValueChanged(const QString& full_name, 00044 const QVariant& default_value); 00045 00046 private: 00047 QMetaType::Type type_; 00048 QString tool_tip_; 00049 QVariant value_; 00050 QVariant default_value_; 00051 }; 00052 } 00053 } 00054 00055 #endif // _RQT_MRTA_ARCHITECTURE_CONFIG_PARAM_H_