-
Notifications
You must be signed in to change notification settings - Fork 4
/
qSlicerROS2ModuleWidget.h
87 lines (69 loc) · 2.79 KB
/
qSlicerROS2ModuleWidget.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*==============================================================================
Program: 3D Slicer
Portions (c) Copyright Brigham and Women's Hospital (BWH) All Rights Reserved.
See COPYRIGHT.txt
or http://www.slicer.org/copyright/copyright.txt for details.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
==============================================================================*/
#ifndef __qSlicerROS2ModuleWidget_h
#define __qSlicerROS2ModuleWidget_h
// Slicer includes
#include "qSlicerAbstractModuleWidget.h"
#include "qSlicerROS2ModuleExport.h"
// Qt includes
#include <QFileDialog>
class qSlicerROS2ModuleWidgetPrivate;
class vtkMRMLNode;
class vtkMRMLROS2SubscriberNode;
class vtkMRMLROS2PublisherNode;
class vtkMRMLROS2RobotNode;
class QLineEdit;
class QPushButton;
/// \ingroup Slicer_QtModules_ExtensionTemplate
class Q_SLICER_QTMODULES_ROS2_EXPORT qSlicerROS2ModuleWidget :
public qSlicerAbstractModuleWidget
{
Q_OBJECT
public:
typedef qSlicerAbstractModuleWidget Superclass;
qSlicerROS2ModuleWidget(QWidget *parent=0);
virtual ~qSlicerROS2ModuleWidget();
public slots:
void stopTimer(void);
protected:
QScopedPointer<qSlicerROS2ModuleWidgetPrivate> d_ptr;
void setup() override;
QTimer* mTimer;
bool timerOff = false;
protected slots:
void onTimerTimeOut(void);
void updateWidget(void);
void updateSubscriberTable(vtkMRMLROS2SubscriberNode * sub, size_t row);
void updatePublisherTable(vtkMRMLROS2PublisherNode * sub, size_t row);
void onAddNewRobotClicked(const std::string & robotName = "robot", bool active = false);
void refreshSubTable(void);
void refreshPubTable(void);
// Slots for dynamic widgets
void subscriberClicked(int row, int col);
void publisherClicked(int row, int col);
void onLoadRobotClicked(QLineEdit * robotNameLineEdit,
QLineEdit * parameterNodeNameLineEdit,
QLineEdit * parameterNameLineEdit,
QPushButton * loadRobotButton,
QPushButton * removeRobotButton);
void onRemoveRobotClicked(QLineEdit * robotNameLineEdit,
QLineEdit * parameterNodeNameLineEdit,
QLineEdit * parameterNameLineEdit,
QPushButton * loadRobotButton,
QPushButton * removeRobotButton,
QWidget * robotWidget);
private:
std::vector<std::string> robotsAddedToTheWidget;
Q_DECLARE_PRIVATE(qSlicerROS2ModuleWidget);
Q_DISABLE_COPY(qSlicerROS2ModuleWidget);
};
#endif