diff --git a/CHANGELOG.md b/CHANGELOG.md index c8911930..b933720d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ CHANGELOG for FlatCAM beta - some refactoring - in a FCColorEntry GUI element, setting a color in the Color dialog will trigger the editingFinished signal therefore propagating the changes - Milling Tool fixes: milling tool dia after edit fix and milling slots fix +- update in Code Highlighter to highlight the X and Y chars +- updated the Document and Script objects Beginner/Advanced selection labels to the same as the rest of the app objects 26.02.2021 diff --git a/appGUI/GUIElements.py b/appGUI/GUIElements.py index 81ac8d44..5bbe9d79 100644 --- a/appGUI/GUIElements.py +++ b/appGUI/GUIElements.py @@ -4347,6 +4347,8 @@ class FCTextAreaLineNumber(QtWidgets.QFrame): number = QtGui.QTextCharFormat() string = QtGui.QTextCharFormat() singleQuotedString = QtGui.QTextCharFormat() + x_chars = QtGui.QTextCharFormat() + y_chars = QtGui.QTextCharFormat() comment = QtGui.QTextCharFormat() # comment @@ -4483,6 +4485,24 @@ class FCTextAreaLineNumber(QtWidgets.QFrame): singleQuotedString.setForeground(brush) rule = (pattern, singleQuotedString) self.highlightingRules.append(rule) + + # X coordinate + brush = QtGui.QBrush(Qt.darkBlue, Qt.SolidPattern) + pattern = QtCore.QRegExp("X") + pattern.setMinimal(True) + x_chars.setFontWeight(QtGui.QFont.Bold) + x_chars.setForeground(brush) + rule = (pattern, x_chars) + self.highlightingRules.append(rule) + + # Y coordinate + brush = QtGui.QBrush(Qt.darkBlue, Qt.SolidPattern) + pattern = QtCore.QRegExp("Y") + pattern.setMinimal(True) + y_chars.setFontWeight(QtGui.QFont.Bold) + y_chars.setForeground(brush) + rule = (pattern, y_chars) + self.highlightingRules.append(rule) else: self.highlightingRules = highlight_rules diff --git a/appObjects/FlatCAMDocument.py b/appObjects/FlatCAMDocument.py index 0c809e30..89cca49d 100644 --- a/appObjects/FlatCAMDocument.py +++ b/appObjects/FlatCAMDocument.py @@ -66,10 +66,8 @@ class DocumentObject(FlatCAMObj): self.to_form() # Show/Hide Advanced Options - if self.app.defaults["global_app_level"] == 'b': - self.ui.level.setText('%s' % _("Beginner")) - else: - self.ui.level.setText('%s' % _("Advanced")) + app_mode = self.app.defaults["global_app_level"] + self.change_level(app_mode) self.document_editor_tab = AppTextEditor(app=self.app) stylesheet = """ @@ -91,6 +89,8 @@ class DocumentObject(FlatCAMObj): # ###################################################################### # ######################## SIGNALS ##################################### # ###################################################################### + self.ui.level.toggled.connect(self.on_level_changed) + self.document_editor_tab.buttonOpen.clicked.disconnect() self.document_editor_tab.buttonOpen.clicked.connect(lambda: self.document_editor_tab.handleOpen(filt=flt)) self.document_editor_tab.buttonSave.clicked.disconnect() @@ -172,6 +172,39 @@ class DocumentObject(FlatCAMObj): # Switch plot_area to CNCJob tab self.app.ui.plot_tab_area.setCurrentWidget(self.document_editor_tab) + def change_level(self, level): + """ + + :param level: application level: either 'b' or 'a' + :type level: str + :return: + """ + + if level == 'a': + self.ui.level.setChecked(True) + else: + self.ui.level.setChecked(False) + self.on_level_changed(self.ui.level.isChecked()) + + def on_level_changed(self, checked): + if not checked: + self.ui.level.setText('%s' % _('Beginner')) + self.ui.level.setStyleSheet(""" + QToolButton + { + color: green; + } + """) + + else: + self.ui.level.setText('%s' % _('Advanced')) + self.ui.level.setStyleSheet(""" + QToolButton + { + color: red; + } + """) + def on_autocomplete_changed(self, state): if state: self.document_editor_tab.code_editor.completer_enable = True diff --git a/appObjects/FlatCAMScript.py b/appObjects/FlatCAMScript.py index 86aa87ea..427d9964 100644 --- a/appObjects/FlatCAMScript.py +++ b/appObjects/FlatCAMScript.py @@ -77,10 +77,8 @@ class ScriptObject(FlatCAMObj): self.to_form() # Show/Hide Advanced Options - if self.app.defaults["global_app_level"] == 'b': - self.ui.level.setText('%s' % _("Beginner")) - else: - self.ui.level.setText('%s' % _("Advanced")) + app_mode = self.app.defaults["global_app_level"] + self.change_level(app_mode) self.script_editor_tab = AppTextEditor(app=self.app, plain_text=True, parent=self.app.ui) @@ -112,6 +110,12 @@ class ScriptObject(FlatCAMObj): self.app.ui.plot_tab_area.setCurrentWidget(self.script_editor_tab) flt = "FlatCAM Scripts (*.FlatScript);;All Files (*.*)" + + # ############################################################################# + # ############################ SIGNALS ######################################## + # ############################################################################# + self.ui.level.toggled.connect(self.on_level_changed) + self.script_editor_tab.buttonOpen.clicked.disconnect() self.script_editor_tab.buttonOpen.clicked.connect(lambda: self.script_editor_tab.handleOpen(filt=flt)) self.script_editor_tab.buttonSave.clicked.disconnect() @@ -157,6 +161,39 @@ class ScriptObject(FlatCAMObj): self.script_editor_tab.setObjectName(self.options['name']) self.app.ui.plot_tab_area.setCurrentWidget(self.script_editor_tab) + def change_level(self, level): + """ + + :param level: application level: either 'b' or 'a' + :type level: str + :return: + """ + + if level == 'a': + self.ui.level.setChecked(True) + else: + self.ui.level.setChecked(False) + self.on_level_changed(self.ui.level.isChecked()) + + def on_level_changed(self, checked): + if not checked: + self.ui.level.setText('%s' % _('Beginner')) + self.ui.level.setStyleSheet(""" + QToolButton + { + color: green; + } + """) + + else: + self.ui.level.setText('%s' % _('Advanced')) + self.ui.level.setStyleSheet(""" + QToolButton + { + color: red; + } + """) + def parse_file(self, filename): """ Will set an attribute of the object, self.source_file, with the parsed data.