mainwindow.hpp
Go to the documentation of this file.
1 #ifndef RQT_BAG_EXPORTER_MAINWINDOW_HPP
2 #define RQT_BAG_EXPORTER_MAINWINDOW_HPP
3 
4 #include <QApplication>
5 #include <QCheckBox>
6 #include <QDoubleSpinBox>
7 #include <QFileDialog>
8 #include <QLabel>
9 #include <QList>
10 #include <QMainWindow>
11 #include <QMenuBar>
12 #include <QMessageBox>
13 #include <QPushButton>
14 #include <QSettings>
15 #include <QSpinBox>
16 #include <QString>
17 #include <QTabWidget>
18 #include <QWidget>
20 #include <ros/ros.h>
21 #include <rqt_bag_exporter/CloseBag.h>
22 #include <rqt_bag_exporter/EstimateVideoFps.h>
23 #include <rqt_bag_exporter/ExportToCSVAction.h>
24 #include <rqt_bag_exporter/ExportToVideoAction.h>
25 #include <rqt_bag_exporter/GetDuration.h>
26 #include <rqt_bag_exporter/ListTopics.h>
27 #include <rqt_bag_exporter/OpenBag.h>
29 
30 class MainWindow : public QMainWindow
31 {
32 Q_OBJECT
33 
34 public:
35  MainWindow(QWidget *parent = 0);
36  ~MainWindow();
37 
38 Q_SIGNALS:
39  void displayMessageBox(const QString,
40  const QString,
41  const QString,
42  const QMessageBox::Icon);
43 
44 private Q_SLOTS:
45  void closeBag();
46  void exportTopic();
47  void exportToDirectory();
48  void openBagFile();
49  void updateTimeBegin(const double time_end);
50  void updateTimeEnd(const double time_begin);
51  void updateFps(const int fps);
52  void displayMessageBoxHandler(const QString title,
53  const QString message,
54  const QString info_msg = "",
55  const QMessageBox::Icon icon = QMessageBox::Icon::Information);
56 
57 private:
58  bool isCsvWritableTopic(const std::string topic_type);
59  bool isCompressedImageTopic(const std::string topic_type);
60  void displayTopics();
61  void fillStartEndTime();
62  void fillVideoTab(const std::string topic_name);
63  void listTopicsInBagFile();
64  void fillTopicsToExport();
66  const rqt_bag_exporter::ExportToCSVResultConstPtr &result);
67  void csvFeedbackCb(const rqt_bag_exporter::ExportToCSVFeedbackConstPtr &feedback);
69  const rqt_bag_exporter::ExportToVideoResultConstPtr &result);
70  void videoFeedbackCb(const rqt_bag_exporter::ExportToVideoFeedbackConstPtr &feedback);
71  void closeEvent(QCloseEvent *event);
72  void load();
73 
75 
76  std::shared_ptr<ProgressDialog> progress_dialog_;
77 
80 
81  std::unique_ptr<ExportToCSVActionClient> csv_ac_;
82  std::unique_ptr<ExportToVideoActionClient> video_ac_;
83 
84  QSettings* settings_;
85 
86  QDoubleSpinBox* time_begin_;
87  QDoubleSpinBox* time_end_;
88  QTabWidget* video_tab_;
89  QWidget* start_end_time_;
91  rqt_bag_exporter::ListTopicsResponse topics_list_;
92  rqt_bag_exporter::ListTopicsResponse topics_to_export_;
93  std::string directory_;
94  unsigned fps_;
95 };
96 
97 #endif
actionlib::SimpleActionClient< rqt_bag_exporter::ExportToVideoAction > ExportToVideoActionClient
Definition: mainwindow.hpp:79
void exportToDirectory()
Definition: mainwindow.cpp:408
QSettings * settings_
Definition: mainwindow.hpp:84
void fillTopicsToExport()
Definition: mainwindow.cpp:518
void csvDoneCb(const actionlib::SimpleClientGoalState &state, const rqt_bag_exporter::ExportToCSVResultConstPtr &result)
Definition: mainwindow.cpp:533
void closeEvent(QCloseEvent *event)
Definition: mainwindow.cpp:608
void updateTimeBegin(const double time_end)
Definition: mainwindow.cpp:402
void closeBag()
Definition: mainwindow.cpp:82
bool isCompressedImageTopic(const std::string topic_type)
Definition: mainwindow.cpp:239
void displayMessageBoxHandler(const QString title, const QString message, const QString info_msg="", const QMessageBox::Icon icon=QMessageBox::Icon::Information)
Definition: mainwindow.cpp:624
void videoDoneCb(const actionlib::SimpleClientGoalState &state, const rqt_bag_exporter::ExportToVideoResultConstPtr &result)
Definition: mainwindow.cpp:570
QDoubleSpinBox * time_begin_
Definition: mainwindow.hpp:86
void fillVideoTab(const std::string topic_name)
Definition: mainwindow.cpp:339
void fillStartEndTime()
Definition: mainwindow.cpp:293
rqt_bag_exporter::ListTopicsResponse topics_to_export_
Definition: mainwindow.hpp:92
std::string directory_
Definition: mainwindow.hpp:93
QDoubleSpinBox * time_end_
Definition: mainwindow.hpp:87
rqt_bag_exporter::ListTopicsResponse topics_list_
Definition: mainwindow.hpp:91
std::shared_ptr< ProgressDialog > progress_dialog_
Definition: mainwindow.hpp:76
QWidget * topics_container_
Definition: mainwindow.hpp:90
MainWindow(QWidget *parent=0)
Definition: mainwindow.cpp:3
unsigned fps_
Definition: mainwindow.hpp:94
void csvFeedbackCb(const rqt_bag_exporter::ExportToCSVFeedbackConstPtr &feedback)
Definition: mainwindow.cpp:564
actionlib::SimpleActionClient< rqt_bag_exporter::ExportToCSVAction > ExportToCSVActionClient
Definition: mainwindow.hpp:78
void displayTopics()
Definition: mainwindow.cpp:216
QTabWidget * video_tab_
Definition: mainwindow.hpp:88
QWidget * start_end_time_
Definition: mainwindow.hpp:89
bool isCsvWritableTopic(const std::string topic_type)
Definition: mainwindow.cpp:246
ros::NodeHandle nh_
Definition: mainwindow.hpp:74
void updateTimeEnd(const double time_begin)
Definition: mainwindow.cpp:396
std::unique_ptr< ExportToCSVActionClient > csv_ac_
Definition: mainwindow.hpp:81
void displayMessageBox(const QString, const QString, const QString, const QMessageBox::Icon)
void updateFps(const int fps)
Definition: mainwindow.cpp:391
void exportTopic()
Definition: mainwindow.cpp:431
void load()
Definition: mainwindow.cpp:617
void openBagFile()
Definition: mainwindow.cpp:114
void videoFeedbackCb(const rqt_bag_exporter::ExportToVideoFeedbackConstPtr &feedback)
Definition: mainwindow.cpp:602
void listTopicsInBagFile()
Definition: mainwindow.cpp:167
std::unique_ptr< ExportToVideoActionClient > video_ac_
Definition: mainwindow.hpp:82


rqt_bag_exporter
Author(s): Romain Hernandez, Victor Lamoine - Institut Maupertuis
autogenerated on Mon Jun 10 2019 14:57:01