From ff92e501ffba14218f2c40e28c2edf78683a2315 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Tue, 27 Oct 2020 01:21:53 +0200 Subject: [PATCH] - overloaded the context menu for FCSpinner and for FCDoubleSpinner - added new strings and therefore updated the translation strings --- CHANGELOG.md | 2 + appGUI/GUIElements.py | 184 +++++++++++++++++++++++++ locale/de/LC_MESSAGES/strings.mo | Bin 367407 -> 367407 bytes locale/de/LC_MESSAGES/strings.po | 196 +++++++++++++++------------ locale/en/LC_MESSAGES/strings.mo | Bin 371026 -> 371110 bytes locale/en/LC_MESSAGES/strings.po | 199 +++++++++++++++------------ locale/es/LC_MESSAGES/strings.mo | Bin 405405 -> 405488 bytes locale/es/LC_MESSAGES/strings.po | 197 +++++++++++++++------------ locale/fr/LC_MESSAGES/strings.mo | Bin 373954 -> 373954 bytes locale/fr/LC_MESSAGES/strings.po | 199 +++++++++++++++------------ locale/it/LC_MESSAGES/strings.mo | Bin 390862 -> 390947 bytes locale/it/LC_MESSAGES/strings.po | 197 +++++++++++++++------------ locale/pt_BR/LC_MESSAGES/strings.mo | Bin 360176 -> 360176 bytes locale/pt_BR/LC_MESSAGES/strings.po | 199 +++++++++++++++------------ locale/ro/LC_MESSAGES/strings.mo | Bin 401027 -> 401098 bytes locale/ro/LC_MESSAGES/strings.po | 201 +++++++++++++++------------- locale/ru/LC_MESSAGES/strings.po | 194 +++++++++++++++------------ locale/tr/LC_MESSAGES/strings.mo | Bin 395659 -> 395659 bytes locale/tr/LC_MESSAGES/strings.po | 201 ++++++++++++++++------------ locale_template/strings.pot | 132 ++++++++++-------- 20 files changed, 1259 insertions(+), 842 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ac94c3d..9bda74a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,8 @@ CHANGELOG for FlatCAM beta - fixed a formatting issue in the MainGUI.py file - updated the translations for the new strings that were added - another GUI element for which I've overloaded the context menu to make it translatable: _ExpandableTextEdit +- overloaded the context menu for FCSpinner and for FCDoubleSpinner +- added new strings and therefore updated the translation strings 25.10.2020 diff --git a/appGUI/GUIElements.py b/appGUI/GUIElements.py index 9d221081..817a4901 100644 --- a/appGUI/GUIElements.py +++ b/appGUI/GUIElements.py @@ -916,6 +916,8 @@ class FCSpinner(QtWidgets.QSpinBox): self.setAlignment(align_val) self.prev_readyToEdit = True + self.menu = None + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred) self.setSizePolicy(sizePolicy) @@ -961,6 +963,96 @@ class FCSpinner(QtWidgets.QSpinBox): self.readyToEdit = True self.prev_readyToEdit = True + def contextMenuEvent(self, event): + self.menu = QtWidgets.QMenu() + line_edit = self.lineEdit() + + # UNDO + undo_action = QAction('%s\t%s' % (_("Undo"), _('Ctrl+Z')), self) + self.menu.addAction(undo_action) + undo_action.triggered.connect(line_edit.undo) + if line_edit.isUndoAvailable() is False: + undo_action.setDisabled(True) + + # REDO + redo_action = QAction('%s\t%s' % (_("Redo"), _('Ctrl+Y')), self) + self.menu.addAction(redo_action) + redo_action.triggered.connect(line_edit.redo) + if line_edit.isRedoAvailable() is False: + redo_action.setDisabled(True) + + self.menu.addSeparator() + + # CUT + cut_action = QAction('%s\t%s' % (_("Cut"), _('Ctrl+X')), self) + self.menu.addAction(cut_action) + cut_action.triggered.connect(self.cut_text) + if not line_edit.hasSelectedText(): + cut_action.setDisabled(True) + + # COPY + copy_action = QAction('%s\t%s' % (_("Copy"), _('Ctrl+C')), self) + self.menu.addAction(copy_action) + copy_action.triggered.connect(self.copy_text) + if not line_edit.hasSelectedText(): + copy_action.setDisabled(True) + + # PASTE + paste_action = QAction('%s\t%s' % (_("Paste"), _('Ctrl+V')), self) + self.menu.addAction(paste_action) + paste_action.triggered.connect(self.paste_text) + + # DELETE + delete_action = QAction('%s\t%s' % (_("Delete"), _('Del')), self) + self.menu.addAction(delete_action) + delete_action.triggered.connect(line_edit.del_) + + self.menu.addSeparator() + + # SELECT ALL + sel_all_action = QAction('%s\t%s' % (_("Select All"), _('Ctrl+A')), self) + self.menu.addAction(sel_all_action) + sel_all_action.triggered.connect(line_edit.selectAll) + + self.menu.addSeparator() + + # STEP UP + step_up_action = QAction('%s\t%s' % (_("Step Up"), ''), self) + self.menu.addAction(step_up_action) + step_up_action.triggered.connect(self.stepUp) + + # STEP DOWN + step_down_action = QAction('%s\t%s' % (_("Step Down"), ''), self) + self.menu.addAction(step_down_action) + step_down_action.triggered.connect(self.stepDown) + + self.menu.exec_(event.globalPos()) + + def cut_text(self): + clipboard = QtWidgets.QApplication.clipboard() + line_edit = self.lineEdit() + + txt = line_edit.selectedText() + clipboard.clear() + clipboard.setText(txt) + + line_edit.del_() + + def copy_text(self): + clipboard = QtWidgets.QApplication.clipboard() + line_edit = self.lineEdit() + + txt = line_edit.selectedText() + clipboard.clear() + clipboard.setText(txt) + + def paste_text(self): + clipboard = QtWidgets.QApplication.clipboard() + line_edit = self.lineEdit() + + txt = clipboard.text() + line_edit.insert(txt) + def valueFromText(self, text): txt = text.strip('%%') try: @@ -1165,6 +1257,8 @@ class FCDoubleSpinner(QtWidgets.QDoubleSpinBox): self.setAlignment(align_val) self.prev_readyToEdit = True + self.menu = None + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Preferred) self.setSizePolicy(sizePolicy) @@ -1205,6 +1299,96 @@ class FCDoubleSpinner(QtWidgets.QDoubleSpinBox): self.readyToEdit = True self.prev_readyToEdit = True + def contextMenuEvent(self, event): + self.menu = QtWidgets.QMenu() + line_edit = self.lineEdit() + + # UNDO + undo_action = QAction('%s\t%s' % (_("Undo"), _('Ctrl+Z')), self) + self.menu.addAction(undo_action) + undo_action.triggered.connect(line_edit.undo) + if line_edit.isUndoAvailable() is False: + undo_action.setDisabled(True) + + # REDO + redo_action = QAction('%s\t%s' % (_("Redo"), _('Ctrl+Y')), self) + self.menu.addAction(redo_action) + redo_action.triggered.connect(line_edit.redo) + if line_edit.isRedoAvailable() is False: + redo_action.setDisabled(True) + + self.menu.addSeparator() + + # CUT + cut_action = QAction('%s\t%s' % (_("Cut"), _('Ctrl+X')), self) + self.menu.addAction(cut_action) + cut_action.triggered.connect(self.cut_text) + if not line_edit.hasSelectedText(): + cut_action.setDisabled(True) + + # COPY + copy_action = QAction('%s\t%s' % (_("Copy"), _('Ctrl+C')), self) + self.menu.addAction(copy_action) + copy_action.triggered.connect(self.copy_text) + if not line_edit.hasSelectedText(): + copy_action.setDisabled(True) + + # PASTE + paste_action = QAction('%s\t%s' % (_("Paste"), _('Ctrl+V')), self) + self.menu.addAction(paste_action) + paste_action.triggered.connect(self.paste_text) + + # DELETE + delete_action = QAction('%s\t%s' % (_("Delete"), _('Del')), self) + self.menu.addAction(delete_action) + delete_action.triggered.connect(line_edit.del_) + + self.menu.addSeparator() + + # SELECT ALL + sel_all_action = QAction('%s\t%s' % (_("Select All"), _('Ctrl+A')), self) + self.menu.addAction(sel_all_action) + sel_all_action.triggered.connect(line_edit.selectAll) + + self.menu.addSeparator() + + # STEP UP + step_up_action = QAction('%s\t%s' % (_("Step Up"), ''), self) + self.menu.addAction(step_up_action) + step_up_action.triggered.connect(self.stepUp) + + # STEP DOWN + step_down_action = QAction('%s\t%s' % (_("Step Down"), ''), self) + self.menu.addAction(step_down_action) + step_down_action.triggered.connect(self.stepDown) + + self.menu.exec_(event.globalPos()) + + def cut_text(self): + clipboard = QtWidgets.QApplication.clipboard() + line_edit = self.lineEdit() + + txt = line_edit.selectedText() + clipboard.clear() + clipboard.setText(txt) + + line_edit.del_() + + def copy_text(self): + clipboard = QtWidgets.QApplication.clipboard() + line_edit = self.lineEdit() + + txt = line_edit.selectedText() + clipboard.clear() + clipboard.setText(txt) + + def paste_text(self): + clipboard = QtWidgets.QApplication.clipboard() + line_edit = self.lineEdit() + + txt = clipboard.text() + line_edit.insert(txt) + def valueFromText(self, p_str): text = p_str.replace(',', '.') text = text.strip('%%') diff --git a/locale/de/LC_MESSAGES/strings.mo b/locale/de/LC_MESSAGES/strings.mo index f91e664a221f82705d5b10dcca7e6223b7601229..0d12d5983fe9c56f6e7ed322ece3f37aa295a385 100644 GIT binary patch delta 34 ocmZ3#O>F%(v4$4L7N#xCt3+80tqjfE*NHL%G0XOKqO6Ur0Nk$&?*IS* delta 34 ocmZ3#O>F%(v4$4L7N#xCt3+80tPBj>*NHL%G0XOKqO6Ur0NgVR=Kufz diff --git a/locale/de/LC_MESSAGES/strings.po b/locale/de/LC_MESSAGES/strings.po index 12386af4..eacbf118 100644 --- a/locale/de/LC_MESSAGES/strings.po +++ b/locale/de/LC_MESSAGES/strings.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2020-10-27 00:01+0200\n" -"PO-Revision-Date: 2020-10-27 00:01+0200\n" +"POT-Creation-Date: 2020-10-27 01:17+0200\n" +"PO-Revision-Date: 2020-10-27 01:17+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: de\n" @@ -1981,7 +1981,7 @@ msgstr "" #: appEditors/AppExcEditor.py:3908 appEditors/AppExcEditor.py:4030 #: appEditors/AppExcEditor.py:4123 appEditors/AppGerberEditor.py:2820 -#: appGUI/GUIElements.py:3850 appGUI/MainGUI.py:475 appGUI/MainGUI.py:668 +#: appGUI/GUIElements.py:4130 appGUI/MainGUI.py:475 appGUI/MainGUI.py:668 #: appGUI/MainGUI.py:4416 appGUI/MainGUI.py:4682 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:92 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:187 @@ -1994,7 +1994,7 @@ msgstr "X" #: appEditors/AppExcEditor.py:3909 appEditors/AppExcEditor.py:4031 #: appEditors/AppExcEditor.py:4124 appEditors/AppGerberEditor.py:2821 -#: appGUI/GUIElements.py:3857 appGUI/MainGUI.py:478 appGUI/MainGUI.py:4417 +#: appGUI/GUIElements.py:4137 appGUI/MainGUI.py:478 appGUI/MainGUI.py:4417 #: appGUI/MainGUI.py:4683 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:93 #: appGUI/preferences/excellon/ExcellonEditorPrefGroupUI.py:188 @@ -2394,7 +2394,7 @@ msgid "Buffer" msgstr "Puffer" #: appEditors/AppGeoEditor.py:643 appEditors/AppGerberEditor.py:5353 -#: appGUI/GUIElements.py:3283 +#: appGUI/GUIElements.py:3467 #: appGUI/preferences/tools/ToolsFilmPrefGroupUI.py:169 #: appGUI/preferences/tools/ToolsTransformPrefGroupUI.py:44 #: appTools/ToolDblSided.py:683 appTools/ToolDblSided.py:857 @@ -3554,14 +3554,15 @@ msgid "Add a new aperture to the aperture list." msgstr "Fügen Sie der Blendenliste eine neue Blende hinzu." #: appEditors/AppGerberEditor.py:2595 appEditors/AppGerberEditor.py:2743 -#: appGUI/GUIElements.py:568 appGUI/GUIElements.py:1514 -#: appGUI/GUIElements.py:1690 appGUI/MainGUI.py:420 appGUI/MainGUI.py:731 -#: appGUI/MainGUI.py:790 appGUI/MainGUI.py:869 appGUI/MainGUI.py:988 -#: appGUI/MainGUI.py:1205 appGUI/MainGUI.py:1689 appGUI/MainGUI.py:2147 -#: appGUI/MainGUI.py:2360 appGUI/MainGUI.py:4922 appGUI/ObjectUI.py:1132 -#: appObjects/FlatCAMGeometry.py:561 appTools/ToolIsolation.py:70 -#: appTools/ToolIsolation.py:3150 appTools/ToolNCC.py:69 -#: appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 +#: appGUI/GUIElements.py:568 appGUI/GUIElements.py:1006 +#: appGUI/GUIElements.py:1342 appGUI/GUIElements.py:1698 +#: appGUI/GUIElements.py:1874 appGUI/GUIElements.py:3769 appGUI/MainGUI.py:420 +#: appGUI/MainGUI.py:731 appGUI/MainGUI.py:790 appGUI/MainGUI.py:869 +#: appGUI/MainGUI.py:988 appGUI/MainGUI.py:1205 appGUI/MainGUI.py:1689 +#: appGUI/MainGUI.py:2147 appGUI/MainGUI.py:2360 appGUI/MainGUI.py:4922 +#: appGUI/ObjectUI.py:1132 appObjects/FlatCAMGeometry.py:561 +#: appTools/ToolIsolation.py:70 appTools/ToolIsolation.py:3150 +#: appTools/ToolNCC.py:69 appTools/ToolNCC.py:4024 appTools/ToolPaint.py:143 #: appTools/ToolPaint.py:2926 appTools/ToolSolderPaste.py:163 #: appTools/ToolSolderPaste.py:1209 app_Main.py:6063 msgid "Delete" @@ -3910,7 +3911,7 @@ msgid "String to replace the one in the Find box throughout the text." msgstr "" "Zeichenfolge, die die Zeichenfolge im Feld Suchen im gesamten Text ersetzt." -#: appEditors/AppTextEditor.py:106 appGUI/GUIElements.py:3878 +#: appEditors/AppTextEditor.py:106 appGUI/GUIElements.py:4158 #: appGUI/ObjectUI.py:1864 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:61 #: appGUI/preferences/tools/ToolsISOPrefGroupUI.py:295 #: appGUI/preferences/tools/ToolsPaintPrefGroupUI.py:278 @@ -4066,92 +4067,117 @@ msgstr "" msgid "Insert the code above at the cursor location." msgstr "" -#: appGUI/GUIElements.py:533 appGUI/GUIElements.py:1479 -#: appGUI/GUIElements.py:1655 +#: appGUI/GUIElements.py:533 appGUI/GUIElements.py:971 +#: appGUI/GUIElements.py:1307 appGUI/GUIElements.py:1663 +#: appGUI/GUIElements.py:1839 appGUI/GUIElements.py:3734 msgid "Undo" msgstr "" -#: appGUI/GUIElements.py:533 appGUI/GUIElements.py:1479 -#: appGUI/GUIElements.py:1655 +#: appGUI/GUIElements.py:533 appGUI/GUIElements.py:971 +#: appGUI/GUIElements.py:1307 appGUI/GUIElements.py:1663 +#: appGUI/GUIElements.py:1839 appGUI/GUIElements.py:3734 #, fuzzy #| msgid "Ctrl+C" msgid "Ctrl+Z" msgstr "Kopieren" -#: appGUI/GUIElements.py:540 appGUI/GUIElements.py:1486 -#: appGUI/GUIElements.py:1662 +#: appGUI/GUIElements.py:540 appGUI/GUIElements.py:978 +#: appGUI/GUIElements.py:1314 appGUI/GUIElements.py:1670 +#: appGUI/GUIElements.py:1846 appGUI/GUIElements.py:3741 msgid "Redo" msgstr "" -#: appGUI/GUIElements.py:540 appGUI/GUIElements.py:1486 -#: appGUI/GUIElements.py:1662 +#: appGUI/GUIElements.py:540 appGUI/GUIElements.py:978 +#: appGUI/GUIElements.py:1314 appGUI/GUIElements.py:1670 +#: appGUI/GUIElements.py:1846 appGUI/GUIElements.py:3741 #, fuzzy #| msgid "Ctrl+C" msgid "Ctrl+Y" msgstr "Kopieren" -#: appGUI/GUIElements.py:549 appGUI/GUIElements.py:1495 -#: appGUI/GUIElements.py:1671 appGUI/MainGUI.py:1630 appGUI/ObjectUI.py:1866 -#: appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 +#: appGUI/GUIElements.py:549 appGUI/GUIElements.py:987 +#: appGUI/GUIElements.py:1323 appGUI/GUIElements.py:1679 +#: appGUI/GUIElements.py:1855 appGUI/GUIElements.py:3750 appGUI/MainGUI.py:1630 +#: appGUI/ObjectUI.py:1866 appGUI/preferences/cncjob/CNCJobOptPrefGroupUI.py:63 msgid "Cut" msgstr "Schnitt" -#: appGUI/GUIElements.py:549 appGUI/GUIElements.py:1495 -#: appGUI/GUIElements.py:1671 appGUI/MainGUI.py:4692 +#: appGUI/GUIElements.py:549 appGUI/GUIElements.py:987 +#: appGUI/GUIElements.py:1323 appGUI/GUIElements.py:1679 +#: appGUI/GUIElements.py:1855 appGUI/GUIElements.py:3750 appGUI/MainGUI.py:4692 msgid "Ctrl+X" msgstr "Strg+X" -#: appGUI/GUIElements.py:556 appGUI/GUIElements.py:1502 -#: appGUI/GUIElements.py:1678 appGUI/GUIElements.py:3345 appGUI/MainGUI.py:414 -#: appGUI/MainGUI.py:728 appGUI/MainGUI.py:787 appGUI/MainGUI.py:867 -#: appGUI/MainGUI.py:986 appGUI/MainGUI.py:1203 appGUI/MainGUI.py:1687 -#: appGUI/MainGUI.py:2145 appGUI/MainGUI.py:2358 appGUI/MainGUI.py:4911 -#: appGUI/ObjectUI.py:1125 appObjects/FlatCAMGeometry.py:558 -#: appTools/ToolPanelize.py:325 appTools/ToolPanelize.py:351 -#: appTools/ToolPanelize.py:448 appTools/ToolPanelize.py:477 -#: appTools/ToolPanelize.py:538 +#: appGUI/GUIElements.py:556 appGUI/GUIElements.py:994 +#: appGUI/GUIElements.py:1330 appGUI/GUIElements.py:1686 +#: appGUI/GUIElements.py:1862 appGUI/GUIElements.py:3529 +#: appGUI/GUIElements.py:3757 appGUI/MainGUI.py:414 appGUI/MainGUI.py:728 +#: appGUI/MainGUI.py:787 appGUI/MainGUI.py:867 appGUI/MainGUI.py:986 +#: appGUI/MainGUI.py:1203 appGUI/MainGUI.py:1687 appGUI/MainGUI.py:2145 +#: appGUI/MainGUI.py:2358 appGUI/MainGUI.py:4911 appGUI/ObjectUI.py:1125 +#: appObjects/FlatCAMGeometry.py:558 appTools/ToolPanelize.py:325 +#: appTools/ToolPanelize.py:351 appTools/ToolPanelize.py:448 +#: appTools/ToolPanelize.py:477 appTools/ToolPanelize.py:538 msgid "Copy" msgstr "Kopieren" -#: appGUI/GUIElements.py:556 appGUI/GUIElements.py:1502 -#: appGUI/GUIElements.py:1678 appGUI/GUIElements.py:3345 appGUI/MainGUI.py:414 -#: appGUI/MainGUI.py:4423 +#: appGUI/GUIElements.py:556 appGUI/GUIElements.py:994 +#: appGUI/GUIElements.py:1330 appGUI/GUIElements.py:1686 +#: appGUI/GUIElements.py:1862 appGUI/GUIElements.py:3529 +#: appGUI/GUIElements.py:3757 appGUI/MainGUI.py:414 appGUI/MainGUI.py:4423 msgid "Ctrl+C" msgstr "Kopieren" -#: appGUI/GUIElements.py:563 appGUI/GUIElements.py:1509 -#: appGUI/GUIElements.py:1685 +#: appGUI/GUIElements.py:563 appGUI/GUIElements.py:1001 +#: appGUI/GUIElements.py:1337 appGUI/GUIElements.py:1693 +#: appGUI/GUIElements.py:1869 appGUI/GUIElements.py:3764 msgid "Paste" msgstr "" -#: appGUI/GUIElements.py:563 appGUI/GUIElements.py:1509 -#: appGUI/GUIElements.py:1685 +#: appGUI/GUIElements.py:563 appGUI/GUIElements.py:1001 +#: appGUI/GUIElements.py:1337 appGUI/GUIElements.py:1693 +#: appGUI/GUIElements.py:1869 appGUI/GUIElements.py:3764 #, fuzzy #| msgid "Ctrl+C" msgid "Ctrl+V" msgstr "Kopieren" -#: appGUI/GUIElements.py:568 appGUI/GUIElements.py:1514 -#: appGUI/GUIElements.py:1690 appGUI/GUIElements.py:3363 appGUI/MainGUI.py:4491 -#: appGUI/MainGUI.py:4492 appGUI/MainGUI.py:4696 appGUI/MainGUI.py:4788 -#: appGUI/MainGUI.py:4789 appGUI/MainGUI.py:4922 appGUI/MainGUI.py:4923 +#: appGUI/GUIElements.py:568 appGUI/GUIElements.py:1006 +#: appGUI/GUIElements.py:1342 appGUI/GUIElements.py:1698 +#: appGUI/GUIElements.py:1874 appGUI/GUIElements.py:3547 +#: appGUI/GUIElements.py:3769 appGUI/MainGUI.py:4491 appGUI/MainGUI.py:4492 +#: appGUI/MainGUI.py:4696 appGUI/MainGUI.py:4788 appGUI/MainGUI.py:4789 +#: appGUI/MainGUI.py:4922 appGUI/MainGUI.py:4923 msgid "Del" msgstr "Del" -#: appGUI/GUIElements.py:575 appGUI/GUIElements.py:1521 -#: appGUI/GUIElements.py:1697 appGUI/GUIElements.py:3353 appGUI/MainGUI.py:445 -#: appGUI/MainGUI.py:565 appGUI/MainGUI.py:4422 -#: appObjects/ObjectCollection.py:1128 appObjects/ObjectCollection.py:1175 +#: appGUI/GUIElements.py:575 appGUI/GUIElements.py:1013 +#: appGUI/GUIElements.py:1349 appGUI/GUIElements.py:1705 +#: appGUI/GUIElements.py:1881 appGUI/GUIElements.py:3537 +#: appGUI/GUIElements.py:3776 appGUI/MainGUI.py:445 appGUI/MainGUI.py:565 +#: appGUI/MainGUI.py:4422 appObjects/ObjectCollection.py:1128 +#: appObjects/ObjectCollection.py:1175 msgid "Select All" msgstr "Select All" -#: appGUI/GUIElements.py:575 appGUI/GUIElements.py:1521 -#: appGUI/GUIElements.py:1697 appGUI/GUIElements.py:3353 appGUI/MainGUI.py:445 -#: appGUI/MainGUI.py:4422 +#: appGUI/GUIElements.py:575 appGUI/GUIElements.py:1013 +#: appGUI/GUIElements.py:1349 appGUI/GUIElements.py:1705 +#: appGUI/GUIElements.py:1881 appGUI/GUIElements.py:3537 +#: appGUI/GUIElements.py:3776 appGUI/MainGUI.py:445 appGUI/MainGUI.py:4422 msgid "Ctrl+A" msgstr "Strg+A" -#: appGUI/GUIElements.py:3285 +#: appGUI/GUIElements.py:1020 appGUI/GUIElements.py:1356 +msgid "Step Up" +msgstr "" + +#: appGUI/GUIElements.py:1025 appGUI/GUIElements.py:1361 +#, fuzzy +#| msgid "Down" +msgid "Step Down" +msgstr "Runter" + +#: appGUI/GUIElements.py:3469 msgid "" "The reference can be:\n" "- Absolute -> the reference point is point (0,0)\n" @@ -4161,19 +4187,19 @@ msgstr "" "- Absolut -> Der Bezugspunkt ist Punkt (0,0)\n" "- Relativ -> Der Referenzpunkt ist die Mausposition vor dem Sprung" -#: appGUI/GUIElements.py:3290 +#: appGUI/GUIElements.py:3474 msgid "Abs" msgstr "Abs" -#: appGUI/GUIElements.py:3291 +#: appGUI/GUIElements.py:3475 msgid "Relative" msgstr "Relativ" -#: appGUI/GUIElements.py:3301 +#: appGUI/GUIElements.py:3485 msgid "Location" msgstr "Ort" -#: appGUI/GUIElements.py:3303 +#: appGUI/GUIElements.py:3487 msgid "" "The Location value is a tuple (x,y).\n" "If the reference is Absolute then the Jump will be at the position (x,y).\n" @@ -4187,87 +4213,87 @@ msgstr "" "(x, y)\n" "vom aktuellen Mausstandort aus." -#: appGUI/GUIElements.py:3358 +#: appGUI/GUIElements.py:3542 msgid "Save Log" msgstr "Protokoll speichern" -#: appGUI/GUIElements.py:3358 appGUI/MainGUI.py:161 appGUI/MainGUI.py:343 +#: appGUI/GUIElements.py:3542 appGUI/MainGUI.py:161 appGUI/MainGUI.py:343 #: appGUI/MainGUI.py:4432 appGUI/MainGUI.py:4691 appGUI/MainGUI.py:4791 #: appGUI/MainGUI.py:4927 msgid "Ctrl+S" msgstr "Strg+S" -#: appGUI/GUIElements.py:3363 +#: appGUI/GUIElements.py:3547 #, fuzzy #| msgid "Clear Plot" msgid "Clear All" msgstr "Plot klar löschen" -#: appGUI/GUIElements.py:3406 appTools/ToolShell.py:296 +#: appGUI/GUIElements.py:3590 appTools/ToolShell.py:296 msgid "Type >help< to get started" msgstr "Geben Sie> help zj3Bg?w9D)RQcPGfj%VNddwZ)xc#oet~@lvG4ixqdc z&;QKa5BIk-yE{Ac&O5W4K-)k5NW0=f&- z;Bf+QCl12vm>KJ3^f(!?H)g|0m>oA`1YWb{c$qv-Qp&k8K98<�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