From 9dc8bf4b7aa86e2a5ca4c67578a67006fa9262b5 Mon Sep 17 00:00:00 2001 From: Chris Pham Date: Sat, 17 Mar 2018 14:22:00 -0700 Subject: [PATCH] click handers for qtable --- .../NavigationSystems/WaypointsCoordinator.py | 44 ++++++++++++++++--- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/software/ros_packages/ground_station/src/Framework/NavigationSystems/WaypointsCoordinator.py b/software/ros_packages/ground_station/src/Framework/NavigationSystems/WaypointsCoordinator.py index d4f6553..3a2fa4c 100644 --- a/software/ros_packages/ground_station/src/Framework/NavigationSystems/WaypointsCoordinator.py +++ b/software/ros_packages/ground_station/src/Framework/NavigationSystems/WaypointsCoordinator.py @@ -1,12 +1,46 @@ from PyQt5 import QtCore, QtWidgets, QtGui - import logging - import rospy -class WaypointsCoordinator(QtCore.QThread): - +class WaypointsCoordinator(QtCore.QThread): + new_manual_waypoint_entry = QtCore.pyqtSignal(str, str, str, int) + update_waypoint_entry = QtCore.pyqtSignal(str, str, int) + + def __init__(self, shared_objects): + super(WaypointsCoordinator, self).init() + + self.shared_objects = shared_objects + self.left_screen = self.shared_objects["screens"]["left_screen"] + + self.navigation_label = self.left_screen.tableWidget + self.landmark_label = self.left_screen.tableWidget_2 + + # to get access to the values, iteration is needed. + self.lat_long_grid = self.left_screen.gridLayout_7 + + self.settings = QtCore.QSettings() + + self.logger = logging.getLogger("groundstation") def connect_signals_and_slots(self): - self. + self.new_manual_waypoint_entry.connect(self.update_manual_entry) + + self.navigation_label.cellClicked.connect(self._on_nav_clicked) + self.landmark_label.cellClicked.connect(self.__on_land_clicked) + + def _on_nav_clicked(self, row, col): + self.update_waypoint_entry.emit( + self.navigation_label.item(row, 0), + self.navigation_label.item(row, 1), + self.navigation_label.item(row, 2), + 0 + ) + + def _on_land_clicked(self, row, col): + self.update_waypoint_entry.emit( + self.landmark_label.item(row, 0), + self.landmark_label.item(row, 1), + self.landmark_label.item(row, 2), + 1 + )