mirror of
https://github.com/naruxde/revpicommander.git
synced 2025-11-08 16:43:53 +01:00
Change most button pressed event to clicked and add global shortcuts
Most events of the buttons was on pressed, which should not be used. Now the debugcontrol buttons has a repeating pressed event, if you hold the button, it will read the IOs every 200 ms. The shortcuts F4, F5, F6 to read/write IOs are now application wide.
This commit is contained in:
@@ -85,7 +85,7 @@ class AclManager(QtWidgets.QDialog, Ui_diag_aclmanager):
|
||||
)
|
||||
) == QtWidgets.QMessageBox.Yes
|
||||
if ask:
|
||||
self.on_btn_add_pressed()
|
||||
self.on_btn_add_clicked()
|
||||
|
||||
if self.__check_load_error():
|
||||
return
|
||||
@@ -252,11 +252,11 @@ class AclManager(QtWidgets.QDialog, Ui_diag_aclmanager):
|
||||
self.btn_remove.setEnabled(not self.__read_only and selected_rows > 0)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_edit_pressed(self):
|
||||
def on_btn_edit_clicked(self):
|
||||
self.__load_selected_entry()
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_remove_pressed(self):
|
||||
def on_btn_remove_clicked(self):
|
||||
lst_selected_row_indexes = [mi.row() for mi in self.tb_acls.selectionModel().selectedRows(0)]
|
||||
if len(lst_selected_row_indexes) == 0:
|
||||
return
|
||||
@@ -355,7 +355,7 @@ class AclManager(QtWidgets.QDialog, Ui_diag_aclmanager):
|
||||
self._check_all_filled()
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_add_pressed(self):
|
||||
def on_btn_add_clicked(self):
|
||||
"""Add a new entry to acl table."""
|
||||
ip_level = "{0}.{1}.{2}.{3},{4}".format(
|
||||
self.txt_ip_a.text(),
|
||||
@@ -366,7 +366,7 @@ class AclManager(QtWidgets.QDialog, Ui_diag_aclmanager):
|
||||
)
|
||||
if self.__re_ipacl.match(ip_level):
|
||||
self.__table_add_acl(ip_level)
|
||||
self.on_btn_clear_pressed()
|
||||
self.on_btn_clear_clicked()
|
||||
else:
|
||||
QtWidgets.QMessageBox.critical(
|
||||
self, self.tr("Error"), self.tr(
|
||||
@@ -376,7 +376,7 @@ class AclManager(QtWidgets.QDialog, Ui_diag_aclmanager):
|
||||
)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_clear_pressed(self):
|
||||
def on_btn_clear_clicked(self):
|
||||
"""Clear entry widgets."""
|
||||
self.txt_ip_a.clear()
|
||||
self.txt_ip_b.clear()
|
||||
|
||||
@@ -45,7 +45,7 @@ class BackgroundWorker(QtCore.QThread):
|
||||
while counter != 0:
|
||||
counter -= 1
|
||||
self.msleep(250)
|
||||
if self._check_cancel():
|
||||
if self.check_cancel():
|
||||
break
|
||||
|
||||
def run(self) -> None:
|
||||
@@ -54,7 +54,7 @@ class BackgroundWorker(QtCore.QThread):
|
||||
self.status_message.emit("Started dummy thread...")
|
||||
self.wait_interruptable(5)
|
||||
self.status_message.emit("Completed dummy thread.")
|
||||
self._save_wait(3)
|
||||
self.wait_interruptable(2)
|
||||
|
||||
|
||||
class WorkerDialog(QtWidgets.QDialog, Ui_diag_backgroundworker):
|
||||
|
||||
@@ -7,7 +7,7 @@ __license__ = "GPLv3"
|
||||
import pickle
|
||||
from xmlrpc.client import Binary, Fault, MultiCall, MultiCallIterator
|
||||
|
||||
from PyQt5 import QtCore, QtWidgets
|
||||
from PyQt5 import QtCore, QtGui, QtWidgets
|
||||
|
||||
from . import helper
|
||||
from . import proginit as pi
|
||||
@@ -76,6 +76,16 @@ class DebugControl(QtWidgets.QWidget, Ui_wid_debugcontrol):
|
||||
self.cbx_write.setEnabled(False)
|
||||
self.cbx_stay_on_top.setChecked(helper.settings.value("debugcontrol/stay_on_top", False, bool))
|
||||
|
||||
self.shc_read_io = QtWidgets.QShortcut(QtGui.QKeySequence("F4"), self)
|
||||
self.shc_read_io.setContext(QtCore.Qt.ApplicationShortcut)
|
||||
self.shc_read_io.activated.connect(self.on_btn_read_io_pressed)
|
||||
self.shc_refresh_io = QtWidgets.QShortcut(QtGui.QKeySequence("F5"), self)
|
||||
self.shc_refresh_io.setContext(QtCore.Qt.ApplicationShortcut)
|
||||
self.shc_refresh_io.activated.connect(self.on_btn_refresh_io_pressed)
|
||||
self.shc_write_o = QtWidgets.QShortcut(QtGui.QKeySequence("F6"), self)
|
||||
self.shc_write_o.setContext(QtCore.Qt.ApplicationShortcut)
|
||||
self.shc_write_o.activated.connect(self.on_btn_write_o_clicked)
|
||||
|
||||
def __del__(self):
|
||||
pi.logger.debug("DebugControl.__del__")
|
||||
|
||||
@@ -323,8 +333,6 @@ class DebugControl(QtWidgets.QWidget, Ui_wid_debugcontrol):
|
||||
dict_inps[position], dict_outs[position]
|
||||
)
|
||||
win.device_closed.connect(self.on_device_closed)
|
||||
win.do_read.connect(self.btn_refresh_io.pressed)
|
||||
win.do_write.connect(self.btn_write_o.pressed)
|
||||
self.dict_windows[position] = win
|
||||
|
||||
btn = QtWidgets.QPushButton(self.gb_devices)
|
||||
@@ -380,9 +388,9 @@ class DebugControl(QtWidgets.QWidget, Ui_wid_debugcontrol):
|
||||
self._work_values(refresh=True)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_write_o_pressed(self):
|
||||
def on_btn_write_o_clicked(self):
|
||||
"""Write outputs."""
|
||||
pi.logger.debug("DebugControl.on_btn_write_o_pressed")
|
||||
pi.logger.debug("DebugControl.on_btn_write_o_clicked")
|
||||
if not self.cbx_write.isChecked() and (helper.cm.xml_mode >= 3 or helper.cm.simulating):
|
||||
for win in self.dict_windows.values(): # type: DebugIos
|
||||
win.reset_label_colors()
|
||||
|
||||
@@ -18,8 +18,7 @@ class DebugIos(QtWidgets.QMainWindow, Ui_win_debugios):
|
||||
|
||||
device_closed = QtCore.pyqtSignal(int)
|
||||
"""This window was closed."""
|
||||
do_read = QtCore.pyqtSignal()
|
||||
do_write = QtCore.pyqtSignal()
|
||||
|
||||
search_class = (QtWidgets.QLineEdit, QtWidgets.QDoubleSpinBox, QtWidgets.QCheckBox)
|
||||
|
||||
def __init__(self, position: int, name: str, inputs: list, outputs: list, parent=None):
|
||||
@@ -48,11 +47,6 @@ class DebugIos(QtWidgets.QMainWindow, Ui_win_debugios):
|
||||
self._create_io(self.outputs, self.saw_out, False)
|
||||
self.style_sheet = "background-color: red;"
|
||||
|
||||
shc_read = QtWidgets.QShortcut(QtGui.QKeySequence("F5"), self)
|
||||
shc_read.activated.connect(self.do_read)
|
||||
shc_write = QtWidgets.QShortcut(QtGui.QKeySequence("F6"), self)
|
||||
shc_write.activated.connect(self.do_write)
|
||||
|
||||
def __del__(self):
|
||||
pi.logger.debug("DebugIos.__del__")
|
||||
|
||||
|
||||
Binary file not shown.
@@ -75,25 +75,25 @@ Nicht gespeicherte Änderunen gehen verloren</translation>
|
||||
<message>
|
||||
<location filename="../avahisearch.py" line="191"/>
|
||||
<source>Already in list...</source>
|
||||
<translation>Bereits in Liste...</translation>
|
||||
<translation type="obsolete">Bereits in Liste...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../avahisearch.py" line="201"/>
|
||||
<source>Success</source>
|
||||
<translation>Erfolgreich</translation>
|
||||
<translation type="obsolete">Erfolgreich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../avahisearch.py" line="201"/>
|
||||
<source>The connection with the name '{0}' was successfully saved to folder '{1}' in your connections.</source>
|
||||
<translation>Die Verbindung mit dem Namen '{0}' wurde erfolgreich im Ordner '{1}' gespeichert.</translation>
|
||||
<translation type="obsolete">Die Verbindung mit dem Namen '{0}' wurde erfolgreich im Ordner '{1}' gespeichert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../avahisearch.py" line="191"/>
|
||||
<source>The selected Revolution Pi is already saved in your connection list as '{0}'.</source>
|
||||
<translation>Der ausgewählte RevPi ist schon in der Verbindungsliste als '{0}'.</translation>
|
||||
<translation type="obsolete">Der ausgewählte RevPi ist schon in der Verbindungsliste als '{0}'.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../avahisearch.py" line="317"/>
|
||||
<location filename="../avahisearch.py" line="283"/>
|
||||
<source> over SSH</source>
|
||||
<translation> über SSH</translation>
|
||||
</message>
|
||||
@@ -101,62 +101,62 @@ Nicht gespeicherte Änderunen gehen verloren</translation>
|
||||
<context>
|
||||
<name>ConnectionManager</name>
|
||||
<message>
|
||||
<location filename="../helper.py" line="521"/>
|
||||
<location filename="../helper.py" line="504"/>
|
||||
<source>SIMULATING</source>
|
||||
<translation>SIMULATION</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="524"/>
|
||||
<location filename="../helper.py" line="507"/>
|
||||
<source>NOT CONNECTED</source>
|
||||
<translation>NICHT VERBUNDEN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="541"/>
|
||||
<location filename="../helper.py" line="524"/>
|
||||
<source>SERVER ERROR</source>
|
||||
<translation>SERVER FEHLER</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="566"/>
|
||||
<location filename="../helper.py" line="549"/>
|
||||
<source>RUNNING</source>
|
||||
<translation>LÄUFT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="568"/>
|
||||
<location filename="../helper.py" line="551"/>
|
||||
<source>PLC FILE NOT FOUND</source>
|
||||
<translation>SPS PROGRAMM NICHT GEFUNDEN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="570"/>
|
||||
<location filename="../helper.py" line="553"/>
|
||||
<source>NOT RUNNING (NO STATUS)</source>
|
||||
<translation>LÄUFT NICHT (KEIN STATUS)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="572"/>
|
||||
<location filename="../helper.py" line="555"/>
|
||||
<source>PROGRAM KILLED</source>
|
||||
<translation>PROGRAMM GETÖTET</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="574"/>
|
||||
<location filename="../helper.py" line="557"/>
|
||||
<source>PROGRAM TERMED</source>
|
||||
<translation>PROGRAMM BEENDET</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="576"/>
|
||||
<location filename="../helper.py" line="559"/>
|
||||
<source>NOT RUNNING</source>
|
||||
<translation>LÄUFT NICHT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="578"/>
|
||||
<location filename="../helper.py" line="561"/>
|
||||
<source>FINISHED WITH CODE {0}</source>
|
||||
<translation>BEENDET MIT CODE {0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="393"/>
|
||||
<location filename="../helper.py" line="376"/>
|
||||
<source>Error</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="361"/>
|
||||
<location filename="../helper.py" line="344"/>
|
||||
<source>The combination of username and password was rejected from the SSH server.
|
||||
|
||||
Try again.</source>
|
||||
@@ -165,7 +165,7 @@ Try again.</source>
|
||||
Bitte erneut versuchen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="370"/>
|
||||
<location filename="../helper.py" line="353"/>
|
||||
<source>Could not establish a SSH connection to server:
|
||||
|
||||
{0}</source>
|
||||
@@ -174,7 +174,7 @@ Bitte erneut versuchen.</translation>
|
||||
{0}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../helper.py" line="393"/>
|
||||
<location filename="../helper.py" line="376"/>
|
||||
<source>Can not connect to RevPi XML-RPC Service!
|
||||
|
||||
This could have the following reasons: The RevPi is not online, the XML-RPC service is not running / bind to localhost or the ACL permission is not set for your IP!!!
|
||||
@@ -190,34 +190,34 @@ Führe 'sudo revpipyload_secure_installation' auf dem Revolution Pi au
|
||||
<context>
|
||||
<name>DebugControl</name>
|
||||
<message>
|
||||
<location filename="../debugcontrol.py" line="124"/>
|
||||
<location filename="../debugcontrol.py" line="134"/>
|
||||
<source>Driver reset for piControl detected.</source>
|
||||
<translation>Treiberneustart in piCtory erkannt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../debugcontrol.py" line="164"/>
|
||||
<location filename="../debugcontrol.py" line="174"/>
|
||||
<source>Error while getting values from Revolution Pi.</source>
|
||||
<translation>Fehler bei Werteempfang von RevPi.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../debugcontrol.py" line="218"/>
|
||||
<location filename="../debugcontrol.py" line="228"/>
|
||||
<source>Auto update values...</source>
|
||||
<translation>Werte automatisch aktualisiert...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../debugcontrol.py" line="220"/>
|
||||
<location filename="../debugcontrol.py" line="230"/>
|
||||
<source>Values updated...</source>
|
||||
<translation>Werte aktualisiert...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../debugcontrol.py" line="257"/>
|
||||
<location filename="../debugcontrol.py" line="267"/>
|
||||
<source>Error set value of device '{0}' Output '{1}': {2}
|
||||
</source>
|
||||
<translation>Fehler beim Setzen des Ausgangs '{1}' auf Modul '{0}': {2}
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../debugcontrol.py" line="266"/>
|
||||
<location filename="../debugcontrol.py" line="276"/>
|
||||
<source>Error</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
@@ -225,32 +225,32 @@ Führe 'sudo revpipyload_secure_installation' auf dem Revolution Pi au
|
||||
<context>
|
||||
<name>DebugIos</name>
|
||||
<message>
|
||||
<location filename="../debugios.py" line="213"/>
|
||||
<location filename="../debugios.py" line="207"/>
|
||||
<source>signed</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../debugios.py" line="218"/>
|
||||
<location filename="../debugios.py" line="212"/>
|
||||
<source>big_endian</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../debugios.py" line="207"/>
|
||||
<location filename="../debugios.py" line="201"/>
|
||||
<source>as text</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../debugios.py" line="209"/>
|
||||
<location filename="../debugios.py" line="203"/>
|
||||
<source>as number</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../debugios.py" line="352"/>
|
||||
<location filename="../debugios.py" line="346"/>
|
||||
<source>Can not use format text</source>
|
||||
<translation>Formatierung nicht möglich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../debugios.py" line="352"/>
|
||||
<location filename="../debugios.py" line="346"/>
|
||||
<source>Can not convert bytes {0} to a text for IO '{1}'. Switch to number format instead!</source>
|
||||
<translation>Kann bytes {0} für '{1}' nicht in Text konvertieren. Wechseln Sie auf Nummernformat!</translation>
|
||||
</message>
|
||||
@@ -683,22 +683,22 @@ Ungesicherte Änderungen gehen verloren.</translation>
|
||||
<context>
|
||||
<name>RevPiProgram</name>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="680"/>
|
||||
<location filename="../revpiprogram.py" line="679"/>
|
||||
<source>Error</source>
|
||||
<translation>Fehler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="111"/>
|
||||
<location filename="../revpiprogram.py" line="110"/>
|
||||
<source>You have to select a start program, before uploading the settings.</source>
|
||||
<translation>Es muss erst ein Startprogramm gewählt werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="154"/>
|
||||
<location filename="../revpiprogram.py" line="153"/>
|
||||
<source>Question</source>
|
||||
<translation>Frage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="119"/>
|
||||
<location filename="../revpiprogram.py" line="118"/>
|
||||
<source>The settings will be set on the Revolution Pi now.
|
||||
|
||||
If you made changes on the 'PCL Program' section, your plc program will restart now!</source>
|
||||
@@ -707,245 +707,245 @@ If you made changes on the 'PCL Program' section, your plc program wil
|
||||
Sollte es Änderungen in dem SPS Programmabschnitt geben, wird das SPS Programm neu gestartet!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="144"/>
|
||||
<location filename="../revpiprogram.py" line="143"/>
|
||||
<source>The settings could not be saved on the Revolution Pi!
|
||||
Try to save the values one mor time and check the log files of RevPiPyLoad if the error rises again.</source>
|
||||
<translation>Die Einstellungen konnten nicht auf dem Revolution Pi gespeichert werden!
|
||||
Versuche es erneut und prüfe die Logdateien von RevPiPyLoad, wenn der Fehler erneut auftritt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="154"/>
|
||||
<location filename="../revpiprogram.py" line="153"/>
|
||||
<source>Do you really want to quit?
|
||||
Unsaved changes will be lost.</source>
|
||||
<translation>Soll das Fenster wirklich geschlossen werden?
|
||||
Ungesicherte Änderungen gehen verloren.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="194"/>
|
||||
<location filename="../revpiprogram.py" line="193"/>
|
||||
<source>Reset driver...</source>
|
||||
<translation>Treiber zurücksetzen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="194"/>
|
||||
<location filename="../revpiprogram.py" line="193"/>
|
||||
<source>Reset piControl driver after successful uploading new piCtory configuration?
|
||||
The process image will be interrupted for a short time!</source>
|
||||
<translation>Soll piControl nach dem erfolgreichen Hochladen der neuen piCtory Konfiguration zurückgesetzt werden?
|
||||
Das Prozessabbild wird kurzzeitig nicht verfügbar sein!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="209"/>
|
||||
<location filename="../revpiprogram.py" line="208"/>
|
||||
<source>Got an network error while send data to Revolution Pi.
|
||||
Please try again.</source>
|
||||
<translation>Beim Senden der Daten an den Revolution Pi trat ein Netzwerkfehler auf.
|
||||
Versuche es erneut.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="690"/>
|
||||
<location filename="../revpiprogram.py" line="689"/>
|
||||
<source>Success</source>
|
||||
<translation>Erfolgreich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="218"/>
|
||||
<location filename="../revpiprogram.py" line="217"/>
|
||||
<source>The transfer of the piCtory configuration and the reset of piControl have been successfully executed.</source>
|
||||
<translation>Die piCtory Übertragung und der Reset von piControl wurden erfolgreich durchgeführt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="226"/>
|
||||
<location filename="../revpiprogram.py" line="225"/>
|
||||
<source>The piCtory configuration was successfully transferred.</source>
|
||||
<translation>Die piCtory Konfiguration wurde erfolgreich übertragen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="233"/>
|
||||
<location filename="../revpiprogram.py" line="232"/>
|
||||
<source>Can not process the transferred file.</source>
|
||||
<translation>Kann die Übertragene Datei nicht verarbeiten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="239"/>
|
||||
<location filename="../revpiprogram.py" line="238"/>
|
||||
<source>Can not find main elements in piCtory file.</source>
|
||||
<translation>Konnte piCtory Struktur nicht erkennen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="245"/>
|
||||
<location filename="../revpiprogram.py" line="244"/>
|
||||
<source>Contained devices could not be found on Revolution Pi. The configuration may be from a newer piCtory version!</source>
|
||||
<translation>Enthaltene Module können auf dem Revolution Pi nicht gefunden werden. Die Konfiguraiton könnte von einer neueren piCtory Version stammen!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="252"/>
|
||||
<location filename="../revpiprogram.py" line="251"/>
|
||||
<source>Could not load RAP catalog on Revolution Pi.</source>
|
||||
<translation>Kann RAP Katalog auf dem Revolution Pi nicht laden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="258"/>
|
||||
<location filename="../revpiprogram.py" line="257"/>
|
||||
<source>The piCtory configuration could not be written on the Revolution Pi.</source>
|
||||
<translation>Die piCtory Konfiguration konnte nicht auf dem Revolution Pi geschrieben werden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="265"/>
|
||||
<location filename="../revpiprogram.py" line="264"/>
|
||||
<source>Warning</source>
|
||||
<translation>Warnung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="265"/>
|
||||
<location filename="../revpiprogram.py" line="264"/>
|
||||
<source>The piCtroy configuration has been saved successfully.
|
||||
An error occurred on piControl reset!</source>
|
||||
<translation>Die piCtory Konfiguration wurde erfolgreich hochgeladen.
|
||||
Es trat jedoch ein Fehler beim Zurücksetzen von piControl auf!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="329"/>
|
||||
<location filename="../revpiprogram.py" line="328"/>
|
||||
<source>Save ZIP archive...</source>
|
||||
<translation>ZIP Archiv speichern...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="419"/>
|
||||
<location filename="../revpiprogram.py" line="418"/>
|
||||
<source>ZIP archive (*.zip);;All files (*.*)</source>
|
||||
<translation>ZIP Archive (*.zip);;Alle Dateien (*.*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="347"/>
|
||||
<location filename="../revpiprogram.py" line="346"/>
|
||||
<source>Save TGZ archive...</source>
|
||||
<translation>TGZ Archiv speichern...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="347"/>
|
||||
<location filename="../revpiprogram.py" line="346"/>
|
||||
<source>TGZ archive (*.tgz);;All files (*.*)</source>
|
||||
<translation>TAR Archive (*.tgz);;Alle Dateien (*.*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="374"/>
|
||||
<location filename="../revpiprogram.py" line="373"/>
|
||||
<source>Could not load PLC program from Revolution Pi.</source>
|
||||
<translation>Kann SPS Programm nicht vom Revolution Pi laden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="387"/>
|
||||
<location filename="../revpiprogram.py" line="386"/>
|
||||
<source>Coud not save the archive or extract the files!
|
||||
Please retry.</source>
|
||||
<translation>Konnte das Archiv nicht speichern oder extrahieren!
|
||||
Versuche es erneut.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="393"/>
|
||||
<location filename="../revpiprogram.py" line="392"/>
|
||||
<source>Transfer successfully completed.</source>
|
||||
<translation>Übertragung erfolgreich abgeschlossen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="419"/>
|
||||
<location filename="../revpiprogram.py" line="418"/>
|
||||
<source>Upload content of ZIP archive...</source>
|
||||
<translation>ZIP Archiv hochladen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="444"/>
|
||||
<location filename="../revpiprogram.py" line="443"/>
|
||||
<source>The selected file ist not a ZIP archive.</source>
|
||||
<translation>Die ausgewählte Datei ist kein ZIP Archiv.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="453"/>
|
||||
<location filename="../revpiprogram.py" line="452"/>
|
||||
<source>Upload content of TAR archive...</source>
|
||||
<translation>TAR Archiv hochladen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="453"/>
|
||||
<location filename="../revpiprogram.py" line="452"/>
|
||||
<source>TAR archive (*.tgz);;All files (*.*)</source>
|
||||
<translation>TAR Archive (*.tgz);;Alle Dateien (*.*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="478"/>
|
||||
<location filename="../revpiprogram.py" line="477"/>
|
||||
<source>The selected file ist not a TAR archive.</source>
|
||||
<translation>Die ausgewählte Datei ist kein TAR Archiv.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="487"/>
|
||||
<location filename="../revpiprogram.py" line="486"/>
|
||||
<source>No files to upload...</source>
|
||||
<translation>Keine Dateien zum Hochladen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="487"/>
|
||||
<location filename="../revpiprogram.py" line="486"/>
|
||||
<source>Found no files to upload in given location or archive.</source>
|
||||
<translation>Konnte keine Dateien in der Quelle zum Hochladen finden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="498"/>
|
||||
<location filename="../revpiprogram.py" line="497"/>
|
||||
<source>There was an error deleting the files on the Revolution Pi.
|
||||
Upload aborted! Please try again.</source>
|
||||
<translation>Beim Löschen der Dateien auf dem Revolution Pi ist ein Fehler aufgetreten.
|
||||
Hochladen abgebrochen! Versuche es erneut.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="544"/>
|
||||
<location filename="../revpiprogram.py" line="543"/>
|
||||
<source>The PLC program was transferred successfully.</source>
|
||||
<translation>Das SPS Programm wurde erfolgreich übertragen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="552"/>
|
||||
<location filename="../revpiprogram.py" line="551"/>
|
||||
<source>Information</source>
|
||||
<translation>Information</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="552"/>
|
||||
<location filename="../revpiprogram.py" line="551"/>
|
||||
<source>Could not find the selected PLC start program in uploaded files.
|
||||
This is not an error, if the file was already on the Revolution Pi. Check PLC start program field</source>
|
||||
<translation>Konnte eingestelltes SPS Starprogramm in hochgeladenen Dateien nicht finden.
|
||||
Dies ist kein Fehler, wenn das SPS Startprogramm bereits auf dem Rev Pi ist. Prüfe SPS Programm Einstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="565"/>
|
||||
<location filename="../revpiprogram.py" line="564"/>
|
||||
<source>There is no piCtory configuration in this archive.</source>
|
||||
<translation>Kann keine piCtory Konfiguration im Archiv finden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="572"/>
|
||||
<location filename="../revpiprogram.py" line="571"/>
|
||||
<source>The Revolution Pi could not process some parts of the transmission.</source>
|
||||
<translation>Der Revolution Pi konnte Teile der Übertragung nicht verarbeiten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="579"/>
|
||||
<location filename="../revpiprogram.py" line="578"/>
|
||||
<source>Errors occurred during transmission.</source>
|
||||
<translation>Fehler bei Übertragung aufgetreten.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="598"/>
|
||||
<location filename="../revpiprogram.py" line="597"/>
|
||||
<source>Save piCtory file...</source>
|
||||
<translation>piCtory Datei speichern...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="638"/>
|
||||
<location filename="../revpiprogram.py" line="637"/>
|
||||
<source>piCtory file (*.rsc);;All files (*.*)</source>
|
||||
<translation>piCtory Datei (*.rsc);;Alle Dateien (*.*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="617"/>
|
||||
<location filename="../revpiprogram.py" line="616"/>
|
||||
<source>Could not load piCtory file from Revolution Pi.</source>
|
||||
<translation>Kann piCtory Konfiguration nicht vom Revolution Pi laden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="627"/>
|
||||
<location filename="../revpiprogram.py" line="626"/>
|
||||
<source>piCtory configuration successfully loaded and saved to:
|
||||
{0}.</source>
|
||||
<translation>piCtory Konfiguration erfolgreich geladen und gespeichert als:
|
||||
{0}.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="638"/>
|
||||
<location filename="../revpiprogram.py" line="637"/>
|
||||
<source>Upload piCtory file...</source>
|
||||
<translation>piCtory datei hochladen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="659"/>
|
||||
<location filename="../revpiprogram.py" line="658"/>
|
||||
<source>Save piControl file...</source>
|
||||
<translation>piCtory Datei speichern...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="659"/>
|
||||
<location filename="../revpiprogram.py" line="658"/>
|
||||
<source>Process image file (*.img);;All files (*.*)</source>
|
||||
<translation>Processabbild (*.img);;Alle Dateien (*.*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="680"/>
|
||||
<location filename="../revpiprogram.py" line="679"/>
|
||||
<source>Could not load process image from Revolution Pi.</source>
|
||||
<translation>Kann Prozessabbild von Revolution Pi nicht laden.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../revpiprogram.py" line="690"/>
|
||||
<location filename="../revpiprogram.py" line="689"/>
|
||||
<source>Process image successfully loaded and saved to:
|
||||
{0}.</source>
|
||||
<translation>Prozessabbild erfolgreich geladen und gespeichert als:
|
||||
@@ -1693,43 +1693,61 @@ applicable law.
|
||||
<message>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="56"/>
|
||||
<source>Read all IO values and discard local changes (F4)</source>
|
||||
<translation>Alle EA Werte lesen und lokale Änderungen überschreiben (F4)</translation>
|
||||
<translation type="obsolete">Alle EA Werte lesen und lokale Änderungen überschreiben (F4)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="59"/>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="61"/>
|
||||
<source>Read &all IO values</source>
|
||||
<translation>&Alle EA Werte lesen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="69"/>
|
||||
<source>Refresh all IO values which are locally not changed (F5)</source>
|
||||
<translation>Alle EA Werte aktualisieren, die lokal nicht geändert sind (F5)</translation>
|
||||
<translation type="obsolete">Alle EA Werte aktualisieren, die lokal nicht geändert sind (F5)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="72"/>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="82"/>
|
||||
<source>&Refresh unchanged IOs</source>
|
||||
<translation>Unve&ränderte EAs lesen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="82"/>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="98"/>
|
||||
<source>Write locally changed output values to process image (F6)</source>
|
||||
<translation>Schreibe lokal veränderte Ausgangswerte in das Prozessabbild (F6)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="85"/>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="101"/>
|
||||
<source>&Write changed outputs</source>
|
||||
<translation>Ausgänge &schreiben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="95"/>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="108"/>
|
||||
<source>&Auto refresh values</source>
|
||||
<translation>&Automatisch aktualisieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="102"/>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="115"/>
|
||||
<source>and write outputs</source>
|
||||
<translation>und Ausgänge schreiben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="56"/>
|
||||
<source>Read all IO values and discard local changes (F4)
|
||||
|
||||
Hold this button pressed and it will refresh the IOs every 200 ms.</source>
|
||||
<translation>Alle EA Werte lesen und lokale Änderungen überschreiben (F4)
|
||||
|
||||
Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../ui_dev/debugcontrol.ui" line="77"/>
|
||||
<source>Refresh all IO values which are locally not changed (F5)
|
||||
|
||||
Hold this button pressed and it will refresh the IOs every 200 ms.</source>
|
||||
<translation>Alle EA Werte aktualisieren, die lokal nicht geändert sind (F5)
|
||||
|
||||
Wird der Button gehalten, aktualisieren sich die EAs alle 200 ms.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>win_debugios</name>
|
||||
|
||||
@@ -54,7 +54,7 @@ class RevPiCommander(QtWidgets.QMainWindow, Ui_win_revpicommander):
|
||||
self.win_files = RevPiFiles(self)
|
||||
self.win_log = revpilogfile.RevPiLogfile(self)
|
||||
|
||||
self.btn_plc_logs.pressed.connect(self.on_act_logs_triggered)
|
||||
self.btn_plc_logs.clicked.connect(self.on_act_logs_triggered)
|
||||
|
||||
helper.cm.connection_disconnected.connect(self.on_cm_connection_disconnected)
|
||||
helper.cm.connection_disconnecting.connect(self.on_cm_connection_disconnecting)
|
||||
|
||||
@@ -207,7 +207,7 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files):
|
||||
elif item.type() == NodeType.FILE:
|
||||
item.setSelected(value)
|
||||
|
||||
def __item_selection_changed(self, tree_view: QtWidgets.QTreeView):
|
||||
def __item_selection_changed(self, tree_view: QtWidgets.QTreeWidget):
|
||||
"""Manager vor item selection of three views."""
|
||||
item = tree_view.currentItem()
|
||||
if item is None:
|
||||
@@ -434,14 +434,14 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files):
|
||||
# endregion # # # # #
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_all_pressed(self):
|
||||
pi.logger.debug("RevPiFiles.on_btn_all_pressed")
|
||||
def on_btn_all_clicked(self):
|
||||
pi.logger.debug("RevPiFiles.on_btn_all_clicked")
|
||||
self._do_my_job(True)
|
||||
self.file_list_revpi()
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_select_local_pressed(self):
|
||||
pi.logger.debug("RevPiFiles.on_btn_select_pressed")
|
||||
def on_btn_select_local_clicked(self):
|
||||
pi.logger.debug("RevPiFiles.on_btn_select_clicked")
|
||||
|
||||
diag_folder = QtWidgets.QFileDialog(
|
||||
self, self.tr("Select folder..."),
|
||||
@@ -471,26 +471,26 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files):
|
||||
self._load_files_local(False)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_refresh_local_pressed(self):
|
||||
pi.logger.debug("RevPiFiles.on_btn_refresh_pressed")
|
||||
def on_btn_refresh_local_clicked(self):
|
||||
pi.logger.debug("RevPiFiles.on_btn_refresh_clicked")
|
||||
self._load_files_local(False)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_refresh_revpi_pressed(self):
|
||||
pi.logger.debug("RevPiFiles.on_btn_refresh_revpi_pressed")
|
||||
def on_btn_refresh_revpi_clicked(self):
|
||||
pi.logger.debug("RevPiFiles.on_btn_refresh_revpi_clicked")
|
||||
self._load_files_revpi(False)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_to_right_pressed(self):
|
||||
def on_btn_to_right_clicked(self):
|
||||
"""Upload selected files to revolution pi."""
|
||||
pi.logger.debug("RevPiFiles.on_btn_to_right_pressed")
|
||||
pi.logger.debug("RevPiFiles.on_btn_to_right_clicked")
|
||||
self._do_my_job(False)
|
||||
self._load_files_revpi(True)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_to_left_pressed(self):
|
||||
def on_btn_to_left_clicked(self):
|
||||
"""Download selected file."""
|
||||
pi.logger.debug("RevPiFiles.on_btn_to_left_pressed")
|
||||
pi.logger.debug("RevPiFiles.on_btn_to_left_clicked")
|
||||
|
||||
override = None
|
||||
for item in self.tree_files_revpi.selectedItems():
|
||||
@@ -535,9 +535,9 @@ class RevPiFiles(QtWidgets.QMainWindow, Ui_win_files):
|
||||
self._load_files_local()
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_delete_revpi_pressed(self):
|
||||
def on_btn_delete_revpi_clicked(self):
|
||||
"""Remove selected files from working directory on revolution pi."""
|
||||
pi.logger.debug("RevPiFiles.btn_delete_revpi_pressed")
|
||||
pi.logger.debug("RevPiFiles.btn_delete_revpi_clicked")
|
||||
|
||||
lst_delete = []
|
||||
for item in self.tree_files_revpi.selectedItems():
|
||||
|
||||
@@ -166,12 +166,12 @@ class RevPiLogfile(QtWidgets.QMainWindow, Ui_win_revpilogfile):
|
||||
self.th_data.resume()
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_daemon_pressed(self):
|
||||
def on_btn_daemon_clicked(self):
|
||||
"""Clear the daemon log view."""
|
||||
self.txt_daemon.clear()
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_app_pressed(self):
|
||||
def on_btn_app_clicked(self):
|
||||
"""Clear the app log view."""
|
||||
self.txt_app.clear()
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@ class RevPiPlcList(QtWidgets.QDialog, Ui_diag_connections):
|
||||
:return: Dialog status
|
||||
"""
|
||||
self._load_settings()
|
||||
self.on_btn_add_pressed(presets)
|
||||
self.on_btn_add_clicked(presets)
|
||||
return super(RevPiPlcList, self).exec()
|
||||
|
||||
@QtCore.pyqtSlot(QtWidgets.QAbstractButton)
|
||||
@@ -231,15 +231,15 @@ class RevPiPlcList(QtWidgets.QDialog, Ui_diag_connections):
|
||||
self.cbb_folder.setCurrentText(current.text(0) if current else "")
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_up_pressed(self):
|
||||
def on_btn_up_clicked(self):
|
||||
self._move_item(-1)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_down_pressed(self):
|
||||
def on_btn_down_clicked(self):
|
||||
self._move_item(1)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_delete_pressed(self):
|
||||
def on_btn_delete_clicked(self):
|
||||
"""Remove selected entry."""
|
||||
item = self.tre_connections.currentItem()
|
||||
if item and item.type() == NodeType.CON:
|
||||
@@ -253,7 +253,7 @@ class RevPiPlcList(QtWidgets.QDialog, Ui_diag_connections):
|
||||
self._edit_state()
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_add_pressed(self, settings_preset: RevPiSettings = None):
|
||||
def on_btn_add_clicked(self, settings_preset: RevPiSettings = None):
|
||||
"""Create new element."""
|
||||
settings = settings_preset or RevPiSettings()
|
||||
new_item = QtWidgets.QTreeWidgetItem(NodeType.CON)
|
||||
|
||||
@@ -318,7 +318,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program):
|
||||
self.cbx_pictory.setEnabled(index >= 1)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_program_download_pressed(self):
|
||||
def on_btn_program_download_clicked(self):
|
||||
"""Download plc program from Revolution Pi."""
|
||||
if not helper.cm.connected:
|
||||
return
|
||||
@@ -396,7 +396,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program):
|
||||
)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_program_upload_pressed(self):
|
||||
def on_btn_program_upload_clicked(self):
|
||||
"""Upload plc program to Revolution Pi."""
|
||||
if not helper.cm.connected:
|
||||
return
|
||||
@@ -589,7 +589,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program):
|
||||
# region # REGION: Control files
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_pictory_download_pressed(self):
|
||||
def on_btn_pictory_download_clicked(self):
|
||||
"""Download piCtory configuration."""
|
||||
if not helper.cm.connected:
|
||||
return
|
||||
@@ -630,7 +630,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program):
|
||||
)
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_pictory_upload_pressed(self):
|
||||
def on_btn_pictory_upload_clicked(self):
|
||||
if not helper.cm.connected:
|
||||
return
|
||||
|
||||
@@ -650,7 +650,7 @@ class RevPiProgram(QtWidgets.QDialog, Ui_diag_program):
|
||||
self._upload_pictory(diag_open.selectedFiles()[0])
|
||||
|
||||
@QtCore.pyqtSlot()
|
||||
def on_btn_procimg_download_pressed(self):
|
||||
def on_btn_procimg_download_clicked(self):
|
||||
"""Download process image."""
|
||||
if not helper.cm.connected:
|
||||
return
|
||||
|
||||
@@ -36,15 +36,18 @@ class Ui_wid_debugcontrol(object):
|
||||
self.verticalLayout = QtWidgets.QVBoxLayout(self.gb_control)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.btn_read_io = QtWidgets.QPushButton(self.gb_control)
|
||||
self.btn_read_io.setShortcut("F4")
|
||||
self.btn_read_io.setAutoRepeat(True)
|
||||
self.btn_read_io.setAutoRepeatDelay(100)
|
||||
self.btn_read_io.setAutoRepeatInterval(200)
|
||||
self.btn_read_io.setObjectName("btn_read_io")
|
||||
self.verticalLayout.addWidget(self.btn_read_io)
|
||||
self.btn_refresh_io = QtWidgets.QPushButton(self.gb_control)
|
||||
self.btn_refresh_io.setShortcut("F5")
|
||||
self.btn_refresh_io.setAutoRepeat(True)
|
||||
self.btn_refresh_io.setAutoRepeatDelay(100)
|
||||
self.btn_refresh_io.setAutoRepeatInterval(200)
|
||||
self.btn_refresh_io.setObjectName("btn_refresh_io")
|
||||
self.verticalLayout.addWidget(self.btn_refresh_io)
|
||||
self.btn_write_o = QtWidgets.QPushButton(self.gb_control)
|
||||
self.btn_write_o.setShortcut("F6")
|
||||
self.btn_write_o.setObjectName("btn_write_o")
|
||||
self.verticalLayout.addWidget(self.btn_write_o)
|
||||
self.cbx_refresh = QtWidgets.QCheckBox(self.gb_control)
|
||||
@@ -65,9 +68,13 @@ class Ui_wid_debugcontrol(object):
|
||||
self.gb_devices.setTitle(_translate("wid_debugcontrol", "Revolution Pi devices"))
|
||||
self.cbx_stay_on_top.setText(_translate("wid_debugcontrol", "Open to stay on top"))
|
||||
self.gb_control.setTitle(_translate("wid_debugcontrol", "IO Control"))
|
||||
self.btn_read_io.setToolTip(_translate("wid_debugcontrol", "Read all IO values and discard local changes (F4)"))
|
||||
self.btn_read_io.setToolTip(_translate("wid_debugcontrol", "Read all IO values and discard local changes (F4)\n"
|
||||
"\n"
|
||||
"Hold this button pressed and it will refresh the IOs every 200 ms."))
|
||||
self.btn_read_io.setText(_translate("wid_debugcontrol", "Read &all IO values"))
|
||||
self.btn_refresh_io.setToolTip(_translate("wid_debugcontrol", "Refresh all IO values which are locally not changed (F5)"))
|
||||
self.btn_refresh_io.setToolTip(_translate("wid_debugcontrol", "Refresh all IO values which are locally not changed (F5)\n"
|
||||
"\n"
|
||||
"Hold this button pressed and it will refresh the IOs every 200 ms."))
|
||||
self.btn_refresh_io.setText(_translate("wid_debugcontrol", "&Refresh unchanged IOs"))
|
||||
self.btn_write_o.setToolTip(_translate("wid_debugcontrol", "Write locally changed output values to process image (F6)"))
|
||||
self.btn_write_o.setText(_translate("wid_debugcontrol", "&Write changed outputs"))
|
||||
|
||||
@@ -53,26 +53,42 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_read_io">
|
||||
<property name="toolTip">
|
||||
<string>Read all IO values and discard local changes (F4)</string>
|
||||
<string>Read all IO values and discard local changes (F4)
|
||||
|
||||
Hold this button pressed and it will refresh the IOs every 200 ms.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Read &all IO values</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string notr="true">F4</string>
|
||||
<property name="autoRepeat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="autoRepeatDelay">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="autoRepeatInterval">
|
||||
<number>200</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_refresh_io">
|
||||
<property name="toolTip">
|
||||
<string>Refresh all IO values which are locally not changed (F5)</string>
|
||||
<string>Refresh all IO values which are locally not changed (F5)
|
||||
|
||||
Hold this button pressed and it will refresh the IOs every 200 ms.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Refresh unchanged IOs</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string notr="true">F5</string>
|
||||
<property name="autoRepeat">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="autoRepeatDelay">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="autoRepeatInterval">
|
||||
<number>200</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -84,9 +100,6 @@
|
||||
<property name="text">
|
||||
<string>&Write changed outputs</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string notr="true">F6</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
|
||||
Reference in New Issue
Block a user