00001 #ifndef _RQT_MRTA_CONFIG_LAUNCHES_H_ 00002 #define _RQT_MRTA_CONFIG_LAUNCHES_H_ 00003 00004 #include <QVector> 00005 #include "utilities/abstract_config.h" 00006 00007 namespace rqt_mrta 00008 { 00009 namespace config 00010 { 00011 namespace application 00012 { 00013 class Robots; 00014 } 00015 class Launch; 00016 class Launches : public utilities::AbstractConfig 00017 { 00018 Q_OBJECT 00019 public: 00020 Launches(QObject* parent = NULL); 00021 virtual ~Launches(); 00022 Launch* getLaunch(size_t index) const; 00023 Launch* getLaunch(const QString& id) const; 00024 Launch* addLaunch(); 00025 void removeLaunch(Launch* launch); 00026 void removeLaunch(size_t index); 00027 void clearLaunches(); 00028 bool contains(const QString& id) const; 00029 size_t count() const; 00030 bool isEmpty() const; 00031 QString validate() const; 00032 void save(QSettings& settings) const; 00033 void load(QSettings& settings); 00034 void reset(); 00035 void write(QDataStream& stream) const; 00036 void read(QDataStream& stream); 00037 Launches& operator=(const Launches& config); 00038 void setLaunches(const Launches& launches, const application::Robots& robots, 00039 const QString& robots_launch_id); 00040 QStringList willBeGenerated() const; 00041 void saveAsLaunch(const QString& package_url) const; 00042 00043 signals: 00044 void added(size_t index); 00045 void removed(const QString& id); 00046 void cleared(); 00047 void launchIdChanged(size_t index, const QString& id); 00048 00049 private: 00050 QVector<Launch*> launches_; 00051 00052 private slots: 00053 void launchIdChanged(const QString& id); 00054 void launchDestroyed(); 00055 }; 00056 } 00057 } 00058 00059 #endif // _RQT_MRTA_CONFIG_LAUNCHES_H_