mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-03 21:33:39 +08:00
Supervision improvements (#3002)
* [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.
This commit is contained in:
@@ -15,6 +15,7 @@ class AppSettings(QDialog, Ui_AppSettingsDialog):
|
|||||||
self.text_editor_edit.setText(settings.value("text_editor", "", str))
|
self.text_editor_edit.setText(settings.value("text_editor", "", str))
|
||||||
self.terminal_emulator_edit.setText(settings.value("terminal_emulator", "", str))
|
self.terminal_emulator_edit.setText(settings.value("terminal_emulator", "", str))
|
||||||
self.keep_changes_checkbox.setChecked(settings.value("always_keep_changes", False, bool))
|
self.keep_changes_checkbox.setChecked(settings.value("always_keep_changes", False, bool))
|
||||||
|
self.keep_build_programs_checkbox.setChecked(settings.value("keep_build_programs", False, bool))
|
||||||
self.finished.connect(self.handle_finished)
|
self.finished.connect(self.handle_finished)
|
||||||
|
|
||||||
def handle_finished(self, result):
|
def handle_finished(self, result):
|
||||||
@@ -26,3 +27,5 @@ class AppSettings(QDialog, Ui_AppSettingsDialog):
|
|||||||
settings.setValue("terminal_emulator", terminal_emulator)
|
settings.setValue("terminal_emulator", terminal_emulator)
|
||||||
keep_changes = self.keep_changes_checkbox.isChecked()
|
keep_changes = self.keep_changes_checkbox.isChecked()
|
||||||
settings.setValue("always_keep_changes", keep_changes)
|
settings.setValue("always_keep_changes", keep_changes)
|
||||||
|
keep_build_programs = self.keep_build_programs_checkbox.isChecked()
|
||||||
|
settings.setValue("keep_build_programs", keep_build_programs)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ class FlashMode:
|
|||||||
|
|
||||||
class BuildWidget(Ui_Build, QWidget):
|
class BuildWidget(Ui_Build, QWidget):
|
||||||
|
|
||||||
spawn_program = QtCore.pyqtSignal(str, list, str)
|
spawn_program = QtCore.pyqtSignal(str, list, str, object)
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
QWidget.__init__(self, parent=parent)
|
QWidget.__init__(self, parent=parent)
|
||||||
@@ -93,13 +93,15 @@ class BuildWidget(Ui_Build, QWidget):
|
|||||||
cmd.append("PRINT_CONFIG=1")
|
cmd.append("PRINT_CONFIG=1")
|
||||||
shortname = "Build {}".format(self.ac.name)
|
shortname = "Build {}".format(self.ac.name)
|
||||||
self.conf.save(False)
|
self.conf.save(False)
|
||||||
self.spawn_program.emit(shortname, cmd, None)
|
self.enable_buttons(False)
|
||||||
|
self.spawn_program.emit(shortname, cmd, None, lambda: self.enable_buttons(True))
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
cmd = ["make", "-C", utils.PAPARAZZI_HOME, "-f", "Makefile.ac",
|
cmd = ["make", "-C", utils.PAPARAZZI_HOME, "-f", "Makefile.ac",
|
||||||
"AIRCRAFT={}".format(self.ac.name), "clean_ac"]
|
"AIRCRAFT={}".format(self.ac.name), "clean_ac"]
|
||||||
shortname = "Clean {}".format(self.ac.name)
|
shortname = "Clean {}".format(self.ac.name)
|
||||||
self.spawn_program.emit(shortname, cmd, None)
|
self.enable_buttons(False)
|
||||||
|
self.spawn_program.emit(shortname, cmd, None, lambda: self.enable_buttons(True))
|
||||||
|
|
||||||
def flash(self):
|
def flash(self):
|
||||||
target = self.target_combo.currentText()
|
target = self.target_combo.currentText()
|
||||||
@@ -115,5 +117,8 @@ class BuildWidget(Ui_Build, QWidget):
|
|||||||
cmd = ["make", "-C", utils.PAPARAZZI_HOME, "-f", "Makefile.ac",
|
cmd = ["make", "-C", utils.PAPARAZZI_HOME, "-f", "Makefile.ac",
|
||||||
"AIRCRAFT={}".format(self.ac.name)] + vars + ["{}.upload".format(target)]
|
"AIRCRAFT={}".format(self.ac.name)] + vars + ["{}.upload".format(target)]
|
||||||
shortname = "Flash {}".format(self.ac.name)
|
shortname = "Flash {}".format(self.ac.name)
|
||||||
self.spawn_program.emit(shortname, cmd, None)
|
self.spawn_program.emit(shortname, cmd, None, None)
|
||||||
|
|
||||||
|
def enable_buttons(self, enable: bool):
|
||||||
|
self.build_button.setEnabled(enable)
|
||||||
|
self.clean_button.setEnabled(enable)
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ class ConfFileWidget(QWidget, Ui_FileConf):
|
|||||||
file_changed = QtCore.pyqtSignal()
|
file_changed = QtCore.pyqtSignal()
|
||||||
edit_alt = QtCore.pyqtSignal(str)
|
edit_alt = QtCore.pyqtSignal(str)
|
||||||
|
|
||||||
def __init__(self, title: str, parent=None):
|
def __init__(self, title: str, conf_subdir: str, parent=None):
|
||||||
QWidget.__init__(self, parent=parent)
|
QWidget.__init__(self, parent=parent)
|
||||||
self.nature = title.lower().replace(" ", "_") + "s"
|
self.conf_subdir = conf_subdir
|
||||||
self.path = None
|
self.path = None
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
self.edit_alt_button.hide()
|
self.edit_alt_button.hide()
|
||||||
@@ -31,9 +31,8 @@ class ConfFileWidget(QWidget, Ui_FileConf):
|
|||||||
utils.edit_file(self.path)
|
utils.edit_file(self.path)
|
||||||
|
|
||||||
def select_file(self):
|
def select_file(self):
|
||||||
base_path = os.path.join(utils.CONF_DIR, self.nature)
|
base_path = os.path.join(utils.CONF_DIR, self.conf_subdir)
|
||||||
print(base_path)
|
(path, _) = QFileDialog().getOpenFileName(self, "Select {} file".format(self.title_label.text()),
|
||||||
(path, _) = QFileDialog().getOpenFileName(self, "Select {} file".format(self.nature),
|
|
||||||
base_path, "Xml (*.xml)")
|
base_path, "Xml (*.xml)")
|
||||||
if path != "":
|
if path != "":
|
||||||
self.path = os.path.relpath(path, utils.CONF_DIR)
|
self.path = os.path.relpath(path, utils.CONF_DIR)
|
||||||
|
|||||||
@@ -15,17 +15,17 @@ class ConfWidget(QWidget):
|
|||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
QWidget.__init__(self, parent=parent)
|
QWidget.__init__(self, parent=parent)
|
||||||
lay = QVBoxLayout(self)
|
lay = QVBoxLayout(self)
|
||||||
self.airframe = ConfFileWidget("Airframe", self)
|
self.airframe = ConfFileWidget("Airframe", "airframes", self)
|
||||||
self.airframe.file_changed.connect(self.conf_changed)
|
self.airframe.file_changed.connect(self.conf_changed)
|
||||||
self.flight_plan = ConfFileWidget("Flight Plan", self)
|
self.flight_plan = ConfFileWidget("Flight Plan", "flight_plans", self)
|
||||||
self.flight_plan.file_changed.connect(self.conf_changed)
|
self.flight_plan.file_changed.connect(self.conf_changed)
|
||||||
self.flight_plan.edit_alt_button.show()
|
self.flight_plan.edit_alt_button.show()
|
||||||
self.flight_plan.edit_alt_button.setText("Edit GCS")
|
self.flight_plan.edit_alt_button.setText("Edit GCS")
|
||||||
self.settings = ConfSettingsWidget(self)
|
self.settings = ConfSettingsWidget(self)
|
||||||
self.settings.settings_changed.connect(self.setting_changed)
|
self.settings.settings_changed.connect(self.setting_changed)
|
||||||
self.radio = ConfFileWidget("Radio", self)
|
self.radio = ConfFileWidget("Radio", "radios", self)
|
||||||
self.radio.file_changed.connect(self.conf_changed)
|
self.radio.file_changed.connect(self.conf_changed)
|
||||||
self.telemetry = ConfFileWidget("Telemetry", self)
|
self.telemetry = ConfFileWidget("Telemetry", "telemetry", self)
|
||||||
self.telemetry.file_changed.connect(self.conf_changed)
|
self.telemetry.file_changed.connect(self.conf_changed)
|
||||||
|
|
||||||
self.settings.settings.itemDoubleClicked.connect(self.edit_setting)
|
self.settings.settings.itemDoubleClicked.connect(self.edit_setting)
|
||||||
|
|||||||
@@ -7,9 +7,6 @@ from conf import *
|
|||||||
from programs_conf import parse_tools
|
from programs_conf import parse_tools
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
# TODO make a setting ?
|
|
||||||
REMOVE_PROGRAMS_FINISHED = True
|
|
||||||
|
|
||||||
|
|
||||||
class ConfigurationPanel(QWidget, Ui_ConfigurationPanel):
|
class ConfigurationPanel(QWidget, Ui_ConfigurationPanel):
|
||||||
|
|
||||||
@@ -82,14 +79,17 @@ class ConfigurationPanel(QWidget, Ui_ConfigurationPanel):
|
|||||||
subprocess.Popen(cmd)
|
subprocess.Popen(cmd)
|
||||||
# self.launch_program(self.flight_plan_editor.name, cmd, self.flight_plan_editor.icon)
|
# self.launch_program(self.flight_plan_editor.name, cmd, self.flight_plan_editor.icon)
|
||||||
|
|
||||||
def launch_program(self, shortname, cmd, icon):
|
def launch_program(self, shortname, cmd, icon, cb):
|
||||||
pw = ProgramWidget(shortname, cmd, icon, self.programs_widget)
|
pw = ProgramWidget(shortname, cmd, icon, self.programs_widget)
|
||||||
self.programs_widget.layout().addWidget(pw)
|
self.programs_widget.layout().addWidget(pw)
|
||||||
pw.ready_read_stderr.connect(lambda: self.console_widget.handle_stderr(pw))
|
pw.ready_read_stderr.connect(lambda: self.console_widget.handle_stderr(pw))
|
||||||
pw.ready_read_stdout.connect(lambda: self.console_widget.handle_stdout(pw))
|
pw.ready_read_stdout.connect(lambda: self.console_widget.handle_stdout(pw))
|
||||||
pw.finished.connect(lambda c, s: self.console_widget.handle_program_finished(pw, c, s))
|
pw.finished.connect(lambda c, s: self.console_widget.handle_program_finished(pw, c, s))
|
||||||
|
if cb is not None:
|
||||||
|
pw.finished.connect(cb)
|
||||||
pw.remove.connect(lambda: self.remove_program(pw))
|
pw.remove.connect(lambda: self.remove_program(pw))
|
||||||
if REMOVE_PROGRAMS_FINISHED:
|
settings = utils.get_settings()
|
||||||
|
if not settings.value("keep_build_programs", False, bool):
|
||||||
pw.finished.connect(lambda: self.remove_program(pw))
|
pw.finished.connect(lambda: self.remove_program(pw))
|
||||||
pw.start_program()
|
pw.start_program()
|
||||||
|
|
||||||
|
|||||||
@@ -22,24 +22,32 @@ class Ui_AppSettingsDialog(object):
|
|||||||
self.text_editor_edit = QtWidgets.QLineEdit(AppSettingsDialog)
|
self.text_editor_edit = QtWidgets.QLineEdit(AppSettingsDialog)
|
||||||
self.text_editor_edit.setObjectName("text_editor_edit")
|
self.text_editor_edit.setObjectName("text_editor_edit")
|
||||||
self.gridLayout.addWidget(self.text_editor_edit, 0, 1, 1, 1)
|
self.gridLayout.addWidget(self.text_editor_edit, 0, 1, 1, 1)
|
||||||
|
self.label_3 = QtWidgets.QLabel(AppSettingsDialog)
|
||||||
|
self.label_3.setObjectName("label_3")
|
||||||
|
self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
|
||||||
|
self.buttonBox = QtWidgets.QDialogButtonBox(AppSettingsDialog)
|
||||||
|
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
|
||||||
|
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
|
||||||
|
self.buttonBox.setObjectName("buttonBox")
|
||||||
|
self.gridLayout.addWidget(self.buttonBox, 5, 0, 1, 2)
|
||||||
|
self.keep_changes_checkbox = QtWidgets.QCheckBox(AppSettingsDialog)
|
||||||
|
self.keep_changes_checkbox.setText("")
|
||||||
|
self.keep_changes_checkbox.setObjectName("keep_changes_checkbox")
|
||||||
|
self.gridLayout.addWidget(self.keep_changes_checkbox, 2, 1, 1, 1)
|
||||||
self.label_2 = QtWidgets.QLabel(AppSettingsDialog)
|
self.label_2 = QtWidgets.QLabel(AppSettingsDialog)
|
||||||
self.label_2.setObjectName("label_2")
|
self.label_2.setObjectName("label_2")
|
||||||
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
|
self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
|
||||||
self.terminal_emulator_edit = QtWidgets.QLineEdit(AppSettingsDialog)
|
self.terminal_emulator_edit = QtWidgets.QLineEdit(AppSettingsDialog)
|
||||||
self.terminal_emulator_edit.setObjectName("terminal_emulator_edit")
|
self.terminal_emulator_edit.setObjectName("terminal_emulator_edit")
|
||||||
self.gridLayout.addWidget(self.terminal_emulator_edit, 1, 1, 1, 1)
|
self.gridLayout.addWidget(self.terminal_emulator_edit, 1, 1, 1, 1)
|
||||||
self.label_3 = QtWidgets.QLabel(AppSettingsDialog)
|
self.label_4 = QtWidgets.QLabel(AppSettingsDialog)
|
||||||
self.label_3.setObjectName("label_3")
|
self.label_4.setWordWrap(True)
|
||||||
self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
|
self.label_4.setObjectName("label_4")
|
||||||
self.keep_changes_checkbox = QtWidgets.QCheckBox(AppSettingsDialog)
|
self.gridLayout.addWidget(self.label_4, 3, 0, 1, 1)
|
||||||
self.keep_changes_checkbox.setText("")
|
self.keep_build_programs_checkbox = QtWidgets.QCheckBox(AppSettingsDialog)
|
||||||
self.keep_changes_checkbox.setObjectName("keep_changes_checkbox")
|
self.keep_build_programs_checkbox.setText("")
|
||||||
self.gridLayout.addWidget(self.keep_changes_checkbox, 2, 1, 1, 1)
|
self.keep_build_programs_checkbox.setObjectName("keep_build_programs_checkbox")
|
||||||
self.buttonBox = QtWidgets.QDialogButtonBox(AppSettingsDialog)
|
self.gridLayout.addWidget(self.keep_build_programs_checkbox, 3, 1, 1, 1)
|
||||||
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
|
|
||||||
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
|
|
||||||
self.buttonBox.setObjectName("buttonBox")
|
|
||||||
self.gridLayout.addWidget(self.buttonBox, 3, 0, 1, 2)
|
|
||||||
|
|
||||||
self.retranslateUi(AppSettingsDialog)
|
self.retranslateUi(AppSettingsDialog)
|
||||||
self.buttonBox.accepted.connect(AppSettingsDialog.accept)
|
self.buttonBox.accepted.connect(AppSettingsDialog.accept)
|
||||||
@@ -50,5 +58,6 @@ class Ui_AppSettingsDialog(object):
|
|||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
AppSettingsDialog.setWindowTitle(_translate("AppSettingsDialog", "Settings"))
|
AppSettingsDialog.setWindowTitle(_translate("AppSettingsDialog", "Settings"))
|
||||||
self.label.setText(_translate("AppSettingsDialog", "Text editor"))
|
self.label.setText(_translate("AppSettingsDialog", "Text editor"))
|
||||||
self.label_2.setText(_translate("AppSettingsDialog", "Terminal Emulator"))
|
|
||||||
self.label_3.setText(_translate("AppSettingsDialog", "Keep changes on exit"))
|
self.label_3.setText(_translate("AppSettingsDialog", "Keep changes on exit"))
|
||||||
|
self.label_2.setText(_translate("AppSettingsDialog", "Terminal Emulator"))
|
||||||
|
self.label_4.setText(_translate("AppSettingsDialog", "keep build programs"))
|
||||||
|
|||||||
@@ -86,10 +86,13 @@ class Ui_Build(object):
|
|||||||
self.label_14.setText(_translate("Build", "Target"))
|
self.label_14.setText(_translate("Build", "Target"))
|
||||||
self.clean_button.setToolTip(_translate("Build", "Clean"))
|
self.clean_button.setToolTip(_translate("Build", "Clean"))
|
||||||
self.clean_button.setText(_translate("Build", "..."))
|
self.clean_button.setText(_translate("Build", "..."))
|
||||||
|
self.clean_button.setShortcut(_translate("Build", "Ctrl+C"))
|
||||||
self.build_button.setToolTip(_translate("Build", "Build"))
|
self.build_button.setToolTip(_translate("Build", "Build"))
|
||||||
self.build_button.setText(_translate("Build", "..."))
|
self.build_button.setText(_translate("Build", "..."))
|
||||||
|
self.build_button.setShortcut(_translate("Build", "Ctrl+B"))
|
||||||
self.print_config_checkbox.setToolTip(_translate("Build", "print config at build time"))
|
self.print_config_checkbox.setToolTip(_translate("Build", "print config at build time"))
|
||||||
self.groupBox_2.setTitle(_translate("Build", "Flash"))
|
self.groupBox_2.setTitle(_translate("Build", "Upload"))
|
||||||
self.label_15.setText(_translate("Build", "Device"))
|
self.label_15.setText(_translate("Build", "Device"))
|
||||||
self.flash_button.setToolTip(_translate("Build", "Upload"))
|
self.flash_button.setToolTip(_translate("Build", "Upload"))
|
||||||
self.flash_button.setText(_translate("Build", "Flash"))
|
self.flash_button.setText(_translate("Build", "Flash"))
|
||||||
|
self.flash_button.setShortcut(_translate("Build", "Ctrl+U"))
|
||||||
|
|||||||
@@ -16,15 +16,15 @@ class Ui_ConfHeader(object):
|
|||||||
ConfHeader.resize(664, 192)
|
ConfHeader.resize(664, 192)
|
||||||
self.horizontalLayout = QtWidgets.QHBoxLayout(ConfHeader)
|
self.horizontalLayout = QtWidgets.QHBoxLayout(ConfHeader)
|
||||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||||
self.id_spinBox = QtWidgets.QSpinBox(ConfHeader)
|
|
||||||
self.id_spinBox.setMaximum(255)
|
|
||||||
self.id_spinBox.setObjectName("id_spinBox")
|
|
||||||
self.horizontalLayout.addWidget(self.id_spinBox)
|
|
||||||
self.color_button = QtWidgets.QToolButton(ConfHeader)
|
self.color_button = QtWidgets.QToolButton(ConfHeader)
|
||||||
self.color_button.setStyleSheet("")
|
self.color_button.setStyleSheet("")
|
||||||
self.color_button.setText("")
|
self.color_button.setText("")
|
||||||
self.color_button.setObjectName("color_button")
|
self.color_button.setObjectName("color_button")
|
||||||
self.horizontalLayout.addWidget(self.color_button)
|
self.horizontalLayout.addWidget(self.color_button)
|
||||||
|
self.id_spinBox = QtWidgets.QSpinBox(ConfHeader)
|
||||||
|
self.id_spinBox.setMaximum(255)
|
||||||
|
self.id_spinBox.setObjectName("id_spinBox")
|
||||||
|
self.horizontalLayout.addWidget(self.id_spinBox)
|
||||||
self.ac_combo = QtWidgets.QComboBox(ConfHeader)
|
self.ac_combo = QtWidgets.QComboBox(ConfHeader)
|
||||||
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
@@ -85,8 +85,10 @@ class Ui_ConfHeader(object):
|
|||||||
ConfHeader.setWindowTitle(_translate("ConfHeader", "Form"))
|
ConfHeader.setWindowTitle(_translate("ConfHeader", "Form"))
|
||||||
self.refresh_button.setToolTip(_translate("ConfHeader", "refresh Aircraft"))
|
self.refresh_button.setToolTip(_translate("ConfHeader", "refresh Aircraft"))
|
||||||
self.refresh_button.setText(_translate("ConfHeader", "..."))
|
self.refresh_button.setText(_translate("ConfHeader", "..."))
|
||||||
|
self.refresh_button.setShortcut(_translate("ConfHeader", "Ctrl+R"))
|
||||||
self.save_button.setToolTip(_translate("ConfHeader", "save conf"))
|
self.save_button.setToolTip(_translate("ConfHeader", "save conf"))
|
||||||
self.save_button.setText(_translate("ConfHeader", "..."))
|
self.save_button.setText(_translate("ConfHeader", "..."))
|
||||||
|
self.save_button.setShortcut(_translate("ConfHeader", "Ctrl+S"))
|
||||||
self.label_4.setText(_translate("ConfHeader", "Set"))
|
self.label_4.setText(_translate("ConfHeader", "Set"))
|
||||||
self.new_ac_action.setText(_translate("ConfHeader", "New AC"))
|
self.new_ac_action.setText(_translate("ConfHeader", "New AC"))
|
||||||
self.remove_ac_action.setText(_translate("ConfHeader", "Remove"))
|
self.remove_ac_action.setText(_translate("ConfHeader", "Remove"))
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ class ProgramWidget(QWidget, Ui_Program):
|
|||||||
if self.process.state() == QProcess.NotRunning:
|
if self.process.state() == QProcess.NotRunning:
|
||||||
self.cmd = self.program_lineedit.text().split(" ")
|
self.cmd = self.program_lineedit.text().split(" ")
|
||||||
self.start_program()
|
self.start_program()
|
||||||
|
elif self.process.state() == QProcess.Running:
|
||||||
|
self.terminate()
|
||||||
|
|
||||||
def handle_run(self):
|
def handle_run(self):
|
||||||
if self.process.state() == QProcess.NotRunning:
|
if self.process.state() == QProcess.NotRunning:
|
||||||
|
|||||||
@@ -24,16 +24,6 @@
|
|||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QLineEdit" name="text_editor_edit"/>
|
<widget class="QLineEdit" name="text_editor_edit"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="label_2">
|
|
||||||
<property name="text">
|
|
||||||
<string>Terminal Emulator</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QLineEdit" name="terminal_emulator_edit"/>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="label_3">
|
<widget class="QLabel" name="label_3">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -41,6 +31,16 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="5" column="0" colspan="2">
|
||||||
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QCheckBox" name="keep_changes_checkbox">
|
<widget class="QCheckBox" name="keep_changes_checkbox">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -48,13 +48,30 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0" colspan="2">
|
<item row="1" column="0">
|
||||||
<widget class="QDialogButtonBox" name="buttonBox">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="orientation">
|
<property name="text">
|
||||||
<enum>Qt::Horizontal</enum>
|
<string>Terminal Emulator</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="standardButtons">
|
</widget>
|
||||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLineEdit" name="terminal_emulator_edit"/>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_4">
|
||||||
|
<property name="text">
|
||||||
|
<string>keep build programs</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QCheckBox" name="keep_build_programs_checkbox">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -55,6 +55,9 @@
|
|||||||
<iconset theme="edit-clear">
|
<iconset theme="edit-clear">
|
||||||
<normaloff>.</normaloff>.</iconset>
|
<normaloff>.</normaloff>.</iconset>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="shortcut">
|
||||||
|
<string>Ctrl+C</string>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@@ -69,6 +72,9 @@
|
|||||||
<iconset theme="system-run">
|
<iconset theme="system-run">
|
||||||
<normaloff>.</normaloff>.</iconset>
|
<normaloff>.</normaloff>.</iconset>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="shortcut">
|
||||||
|
<string>Ctrl+B</string>
|
||||||
|
</property>
|
||||||
<property name="toolButtonStyle">
|
<property name="toolButtonStyle">
|
||||||
<enum>Qt::ToolButtonIconOnly</enum>
|
<enum>Qt::ToolButtonIconOnly</enum>
|
||||||
</property>
|
</property>
|
||||||
@@ -96,7 +102,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="groupBox_2">
|
<widget class="QGroupBox" name="groupBox_2">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Flash</string>
|
<string>Upload</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||||
<item>
|
<item>
|
||||||
@@ -127,6 +133,9 @@
|
|||||||
<iconset theme="emblem-downloads">
|
<iconset theme="emblem-downloads">
|
||||||
<normaloff>.</normaloff>.</iconset>
|
<normaloff>.</normaloff>.</iconset>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="shortcut">
|
||||||
|
<string>Ctrl+U</string>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
|||||||
@@ -14,13 +14,6 @@
|
|||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<item>
|
|
||||||
<widget class="QSpinBox" name="id_spinBox">
|
|
||||||
<property name="maximum">
|
|
||||||
<number>255</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QToolButton" name="color_button">
|
<widget class="QToolButton" name="color_button">
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
@@ -31,6 +24,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="id_spinBox">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>255</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QComboBox" name="ac_combo">
|
<widget class="QComboBox" name="ac_combo">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@@ -70,6 +70,9 @@
|
|||||||
<iconset theme="view-refresh">
|
<iconset theme="view-refresh">
|
||||||
<normaloff>.</normaloff>.</iconset>
|
<normaloff>.</normaloff>.</iconset>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="shortcut">
|
||||||
|
<string>Ctrl+R</string>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@@ -84,6 +87,9 @@
|
|||||||
<iconset theme="document-save">
|
<iconset theme="document-save">
|
||||||
<normaloff>.</normaloff>.</iconset>
|
<normaloff>.</normaloff>.</iconset>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="shortcut">
|
||||||
|
<string>Ctrl+S</string>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
|||||||
Reference in New Issue
Block a user