00001 #ifndef _RQT_MRTA_ARCHITECTURE_CONFIG_WIDGETS_H_ 00002 #define _RQT_MRTA_ARCHITECTURE_CONFIG_WIDGETS_H_ 00003 00004 #include <QVector> 00005 #include "utilities/abstract_config.h" 00006 #include "rqt_mrta/config/architecture/widget.h" 00007 00008 namespace rqt_mrta 00009 { 00010 namespace config 00011 { 00012 namespace architecture 00013 { 00014 class Widgets : public utilities::AbstractConfig 00015 { 00016 Q_OBJECT 00017 public: 00018 Widgets(QObject* parent = NULL); 00019 virtual ~Widgets(); 00020 size_t count() const; 00021 Widget* getWidget(size_t index) const; 00022 Widget* addWidget(); 00023 void removeWidget(Widget* task); 00024 void removeWidget(size_t index); 00025 void clearWidgets(); 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 Widgets& operator=(const Widgets& config); 00032 00033 signals: 00034 void added(size_t index); 00035 void removed(size_t index); 00036 void cleared(); 00037 void widgetChanged(size_t index); 00038 void widgetPluginNameChanged(size_t index, const QString& plugin_name); 00039 00040 private: 00041 QVector<Widget*> widgets_; 00042 00043 private slots: 00044 void widgetChanged(); 00045 void widgetPluginNameChanged(const QString& plugin_name); 00046 void widgetDestroyed(); 00047 }; 00048 } 00049 } 00050 } 00051 00052 #endif // _RQT_MRTA_ARCHITECTURE_CONFIG_WIDGETS_H_