Skip to content

Commit e5d4b70

Browse files
Merge pull request #29 from cwruRobotics/atexit-gui-app-changes
Remove dual inheritence for apps
2 parents 120e88d + 9841302 commit e5d4b70

File tree

11 files changed

+20
-23
lines changed

11 files changed

+20
-23
lines changed

src/surface/gui/gui/app.py

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,38 +8,35 @@
88
from rclpy.node import Node
99

1010

11-
class App(Node, QWidget):
11+
class App(QWidget):
1212
"""Main app window."""
1313

1414
def __init__(self, node_name: str):
1515
self.app: QApplication = QApplication(sys.argv)
1616
rclpy.init()
17+
super().__init__()
18+
self.node = Node(node_name, parameter_overrides=[])
1719

18-
super().__init__(
19-
node_name=node_name,
20-
parameter_overrides=[])
21-
super(QWidget, self).__init__()
22-
23-
self.declare_parameter('theme', '')
20+
self.node.declare_parameter('theme', '')
2421
self.resize(1850, 720)
2522

26-
def kill():
27-
self.destroy_node()
28-
rclpy.shutdown()
29-
30-
atexit.register(kill)
23+
atexit.register(rclpy.shutdown)
3124

3225
def run_gui(self):
3326
# Kills with Control + C
3427
signal.signal(signal.SIGINT, signal.SIG_DFL)
3528

36-
if self.get_parameter('theme').get_parameter_value().string_value == "dark":
29+
if self.node.get_parameter('theme').get_parameter_value().string_value == "dark":
3730
qdarktheme.setup_theme()
38-
elif self.get_parameter('theme').get_parameter_value().string_value == "watermelon":
31+
elif self.node.get_parameter('theme').get_parameter_value().string_value == "watermelon":
3932
# UGLY But WORKS
4033
self.app.setStyleSheet("QWidget { background-color: green; color: pink; }")
4134
else:
4235
qdarktheme.setup_theme("light")
36+
# Delete node now that we've used it to get params
37+
self.node.destroy_node()
4338

4439
self.show()
45-
sys.exit(self.app.exec())
40+
41+
# TODO: when the app closes it causes an error. Make not cause error?
42+
self.app.exec()

src/surface/gui/gui/operator_app.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
from gui.app import App
2-
from gui.modules.logger import Logger
3-
from gui.modules.seagrass import SeagrassWidget
4-
from gui.modules.task_selector import TaskSelector
5-
from gui.modules.timer import Timer
2+
from gui.widgets.logger import Logger
3+
from gui.widgets.seagrass import SeagrassWidget
4+
from gui.widgets.task_selector import TaskSelector
5+
from gui.widgets.timer import Timer
66
from PyQt6.QtWidgets import QGridLayout, QTabWidget, QWidget
77

88

src/surface/gui/gui/pilot_app.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from gui.app import App
2-
from gui.modules.arm import Arm
3-
from gui.modules.video_widget import SwitchableVideoWidget
2+
from gui.widgets.arm import Arm
3+
from gui.widgets.video_widget import SwitchableVideoWidget
44
from PyQt6.QtCore import Qt
55
from PyQt6.QtWidgets import QHBoxLayout
66

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from typing import Callable, Optional
22

3-
from gui.modules.video_widget import PauseableVideoWidget
3+
from gui.widgets.video_widget import PauseableVideoWidget
44
from PyQt6.QtCore import Qt
55
from PyQt6.QtWidgets import (QFrame, QGridLayout, QHBoxLayout, QLabel,
66
QPushButton, QVBoxLayout, QWidget)
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)