mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-02-06 19:32:52 +08:00
* [supervision] disable build and clean buttons during build/clean. * [supervision] Move AC color at the left. * [supervision] Add shortcuts and rename "flash" to "upload". * [supervision] Fix telemetry select base path. * [supervision] return key terminate program. * [supervision] Add option to keep "build" programs after they finished.
63 lines
2.3 KiB
Python
63 lines
2.3 KiB
Python
from PyQt5.QtWidgets import *
|
|
from PyQt5 import QtCore
|
|
|
|
import conf
|
|
import utils
|
|
from conf_file_widget import ConfFileWidget
|
|
from conf_settings_widget import ConfSettingsWidget
|
|
|
|
|
|
class ConfWidget(QWidget):
|
|
|
|
conf_changed = QtCore.pyqtSignal()
|
|
setting_changed = QtCore.pyqtSignal()
|
|
|
|
def __init__(self, parent=None):
|
|
QWidget.__init__(self, parent=parent)
|
|
lay = QVBoxLayout(self)
|
|
self.airframe = ConfFileWidget("Airframe", "airframes", self)
|
|
self.airframe.file_changed.connect(self.conf_changed)
|
|
self.flight_plan = ConfFileWidget("Flight Plan", "flight_plans", self)
|
|
self.flight_plan.file_changed.connect(self.conf_changed)
|
|
self.flight_plan.edit_alt_button.show()
|
|
self.flight_plan.edit_alt_button.setText("Edit GCS")
|
|
self.settings = ConfSettingsWidget(self)
|
|
self.settings.settings_changed.connect(self.setting_changed)
|
|
self.radio = ConfFileWidget("Radio", "radios", self)
|
|
self.radio.file_changed.connect(self.conf_changed)
|
|
self.telemetry = ConfFileWidget("Telemetry", "telemetry", self)
|
|
self.telemetry.file_changed.connect(self.conf_changed)
|
|
|
|
self.settings.settings.itemDoubleClicked.connect(self.edit_setting)
|
|
self.settings.settings.itemChanged.connect(self.setting_changed)
|
|
|
|
vb = QVBoxLayout()
|
|
vb.addWidget(self.settings)
|
|
lay.addWidget(self.airframe)
|
|
lay.addWidget(self.flight_plan)
|
|
lay.addItem(vb)
|
|
lay.addWidget(self.radio)
|
|
lay.addWidget(self.telemetry)
|
|
|
|
def set_ac(self, ac: conf.Aircraft):
|
|
self.airframe.set_path(ac.airframe)
|
|
self.telemetry.set_path(ac.telemetry)
|
|
self.radio.set_path(ac.radio)
|
|
self.flight_plan.set_path(ac.flight_plan)
|
|
self.settings.settings.clear()
|
|
for setting in ac.settings + ac.settings_modules:
|
|
item = QListWidgetItem(setting.name)
|
|
item.setCheckState(QtCore.Qt.Checked if setting.enabled else QtCore.Qt.Unchecked)
|
|
self.settings.settings.addItem(item)
|
|
|
|
def edit_setting(self, item: QListWidgetItem):
|
|
utils.edit_file(item.text())
|
|
|
|
def reset(self):
|
|
self.airframe.set_path("")
|
|
self.flight_plan.set_path("")
|
|
self.telemetry.set_path("")
|
|
self.radio.set_path("")
|
|
self.settings.settings.clear()
|
|
|