00001 #ifndef DIALOG_SELECT_ROS_TOPICS_H 00002 #define DIALOG_SELECT_ROS_TOPICS_H 00003 00004 #include <QDialog> 00005 #include <QString> 00006 #include <QFile> 00007 #include <QStringList> 00008 #include <QCheckBox> 00009 #include "PlotJuggler/optional.hpp" 00010 #include <ros_type_introspection/ros_introspection.hpp> 00011 #include <ros_type_introspection/string.hpp> 00012 00013 namespace Ui { 00014 class dialogSelectRosTopics; 00015 } 00016 00017 class DialogSelectRosTopics : public QDialog 00018 { 00019 Q_OBJECT 00020 00021 public: 00022 00023 explicit DialogSelectRosTopics(const std::vector<std::pair<QString,QString>>& topic_list, 00024 QStringList default_selected_topics, 00025 QWidget *parent = 0); 00026 00027 ~DialogSelectRosTopics(); 00028 00029 QStringList getSelectedItems(); 00030 00031 const QCheckBox* checkBoxUseHeaderStamp(); 00032 00033 const QCheckBox *checkBoxUseRenamingRules(); 00034 00035 public slots: 00036 00037 void updateTopicList(std::vector<std::pair<QString,QString>> topic_list); 00038 00039 private slots: 00040 00041 void on_buttonBox_accepted(); 00042 00043 void on_listRosTopics_itemSelectionChanged(); 00044 00045 void on_checkBoxEnableRules_toggled(bool checked); 00046 00047 void on_pushButtonEditRules_pressed(); 00048 00049 private: 00050 00051 void closeEvent(QCloseEvent *event) override; 00052 00053 QStringList _topic_list; 00054 00055 Ui::dialogSelectRosTopics *ui; 00056 00057 }; 00058 00059 nonstd::optional<double> FlatContainedContainHeaderStamp(const RosIntrospection::RenamedValues& flat_container); 00060 00061 #endif // DIALOG_SELECT_ROS_TOPICS_H