00001 #ifndef _RQT_MRTA_CONFIG_INCLUDES_H_ 00002 #define _RQT_MRTA_CONFIG_INCLUDES_H_ 00003 00004 #include <QVector> 00005 #include "utilities/abstract_config.h" 00006 00007 namespace rqt_mrta 00008 { 00009 namespace config 00010 { 00011 class Include; 00012 class Includes : public utilities::AbstractConfig 00013 { 00014 Q_OBJECT 00015 public: 00016 Includes(QObject* parent = NULL); 00017 virtual ~Includes(); 00018 Include* getInclude(size_t index) const; 00019 Include* addInclude(); 00020 void removeInclude(Include* include); 00021 void removeInclude(size_t index); 00022 void clearIncludes(); 00023 bool contains(const QString &file) const; 00024 size_t count() const; 00025 bool isEmpty() const; 00026 void save(QSettings& settings) const; 00027 void load(QSettings& settings); 00028 void reset(); 00029 void write(QDataStream& stream) const; 00030 void read(QDataStream& stream); 00031 Includes& operator=(const Includes& config); 00032 QString validate() const; 00033 QString toLaunch(const QString &prefix = "") const; 00034 00035 signals: 00036 void added(size_t index); 00037 void removed(const QString& id); 00038 void cleared(); 00039 void includeFileChanged(size_t index, const QString& file); 00040 00041 private: 00042 QVector<Include*> includes_; 00043 00044 private slots: 00045 void includeFileChanged(const QString& file); 00046 void includeDestroyed(); 00047 }; 00048 } 00049 } 00050 00051 #endif // _RQT_MRTA_CONFIG_INCLUDES_H_