00001 #ifndef QNODEDIALOG_H 00002 #define QNODEDIALOG_H 00003 00004 #include <QDialog> 00005 #include <ros/ros.h> 00006 00007 namespace Ui { 00008 class QNodeDialog; 00009 } 00010 00011 class QNodeDialog : public QDialog 00012 { 00013 Q_OBJECT 00014 00015 public: 00016 ~QNodeDialog(); 00017 explicit QNodeDialog(QWidget *parent = 0); 00018 00019 static bool Connect(const std::string &ros_master_uri, 00020 const std::string &hostname = "localhost"); 00021 00022 private slots: 00023 void on_checkBoxUseEnvironment_toggled(bool checked); 00024 00025 void on_pushButtonConnect_pressed(); 00026 00027 void on_pushButtonCancel_pressed(); 00028 00029 private: 00030 Ui::QNodeDialog *ui; 00031 00032 }; 00033 00034 00035 class RosManager 00036 { 00037 private: 00038 ros::NodeHandlePtr _node; 00039 RosManager(): _node(nullptr) {} 00040 void stopROS(); 00041 00042 public: 00043 static RosManager& get(); 00044 ~RosManager(); 00045 static ros::NodeHandlePtr getNode(); 00046 }; 00047 00048 00049 00050 #endif // QNODEDIALOG_H