From e6753346c1ed9cbfe5c1650ef9064124f74e1bd1 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 5 May 2022 17:46:54 +0300 Subject: [PATCH] - made sure that the draw color in Editors is inverted for the dark mode --- CHANGELOG.md | 1 + appEditors/AppExcEditor.py | 28 +++++++++++++++++---- appEditors/AppGeoEditor.py | 32 +++++++++++++++++++----- appEditors/AppGerberEditor.py | 46 +++++++++++++++++++++++------------ 4 files changed, 81 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 233e313f..d4312f56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ CHANGELOG for FlatCAM Evo beta - changed the activity GIF's for the dark theme - changed some of the dark theme icons to the red color +- made sure that the draw color in Editors is inverted for the dark mode 4.05.2020 diff --git a/appEditors/AppExcEditor.py b/appEditors/AppExcEditor.py index c95c0d06..2eceff0d 100644 --- a/appEditors/AppExcEditor.py +++ b/appEditors/AppExcEditor.py @@ -4858,7 +4858,7 @@ class AppExcEditor(QtCore.QObject): for sub_geo in el.geoms: self.tool_shape.add( shape=sub_geo, - color=(self.app.options["global_draw_color"]), + color=self.get_draw_color(), update=False, layer=0, tolerance=None @@ -4866,20 +4866,38 @@ class AppExcEditor(QtCore.QObject): else: self.tool_shape.add( shape=el, - color=(self.app.options["global_draw_color"]), + color=self.get_draw_color(), update=False, layer=0, tolerance=None) except TypeError: self.tool_shape.add( shape=util_geo, - color=(self.app.options["global_draw_color"]), + color=self.get_draw_color(), update=False, layer=0, tolerance=None) # print(self.tool_shape.data) self.tool_shape.redraw() + def get_draw_color(self): + orig_color = self.app.options["global_draw_color"] + + if self.app.options['global_theme'] in ['default', 'light']: + return orig_color + + # in the "dark" theme we invert the color + lowered_color = orig_color.lower() + group1 = "#0123456789abcdef" + group2 = "#fedcba9876543210" + # create color dict + color_dict = {group1[i]: group2[i] for i in range(len(group1))} + new_color = ''.join([color_dict[j] for j in lowered_color]) + return new_color + + def get_sel_color(self): + return self.app.options['global_sel_draw_color'] + def replot(self): self.plot_all() @@ -4900,10 +4918,10 @@ class AppExcEditor(QtCore.QObject): if shape_plus in self.selected: self.plot_shape(geometry=shape_plus.geo, - color=self.app.options['global_sel_draw_color'][:-2] + 'FF', + color=self.get_sel_color()[:-2] + 'FF', linewidth=2) continue - self.plot_shape(geometry=shape_plus.geo, color=self.app.options['global_draw_color'][:-2] + 'FF') + self.plot_shape(geometry=shape_plus.geo, color=self.get_draw_color()[:-2] + 'FF') for shape_form in self.utility: self.plot_shape(geometry=shape_form.geo, linewidth=1) diff --git a/appEditors/AppGeoEditor.py b/appEditors/AppGeoEditor.py index eec23ce5..6f393372 100644 --- a/appEditors/AppGeoEditor.py +++ b/appEditors/AppGeoEditor.py @@ -4684,7 +4684,7 @@ class AppGeoEditor(QtCore.QObject): for poly in el.geoms: self.tool_shape.add( shape=poly, - color=(self.app.options["global_draw_color"]), + color=self.get_draw_color(), update=False, layer=0, tolerance=None @@ -4693,7 +4693,7 @@ class AppGeoEditor(QtCore.QObject): for linestring in el.geoms: self.tool_shape.add( shape=linestring, - color=(self.app.options["global_draw_color"]), + color=self.get_draw_color(), update=False, layer=0, tolerance=None @@ -4701,20 +4701,38 @@ class AppGeoEditor(QtCore.QObject): else: self.tool_shape.add( shape=el, - color=(self.app.options["global_draw_color"]), + color=(self.get_draw_color()), update=False, layer=0, tolerance=None ) except TypeError: self.tool_shape.add( - shape=geo.geo, color=(self.app.options["global_draw_color"]), + shape=geo.geo, color=self.get_draw_color(), update=False, layer=0, tolerance=None) except AttributeError: pass self.tool_shape.redraw() + def get_draw_color(self): + orig_color = self.app.options["global_draw_color"] + + if self.app.options['global_theme'] in ['default', 'light']: + return orig_color + + # in the "dark" theme we invert the color + lowered_color = orig_color.lower() + group1 = "#0123456789abcdef" + group2 = "#fedcba9876543210" + # create color dict + color_dict = {group1[i]: group2[i] for i in range(len(group1))} + new_color = ''.join([color_dict[j] for j in lowered_color]) + return new_color + + def get_sel_color(self): + return self.app.options['global_sel_draw_color'] + def on_delete_btn(self): self.delete_selected() # self.plot_all() @@ -4830,8 +4848,10 @@ class AppGeoEditor(QtCore.QObject): self.shapes.clear(update=True) - draw_color = self.app.options['global_draw_color'][:-2] + "FF" - sel_color = self.app.options['global_sel_draw_color'][:-2] + 'FF' + orig_draw_color = self.get_draw_color() + draw_color = orig_draw_color[:-2] + "FF" + orig_sel_color = self.get_sel_color() + sel_color = orig_sel_color[:-2] + 'FF' for shape in self.storage.get_objects(): if shape.geo and not shape.geo.is_empty and shape.geo.is_valid: diff --git a/appEditors/AppGerberEditor.py b/appEditors/AppGerberEditor.py index 90a9cd9e..776ee8a6 100644 --- a/appEditors/AppGerberEditor.py +++ b/appEditors/AppGerberEditor.py @@ -3067,11 +3067,9 @@ class ImportEditorGrb(QtCore.QObject, DrawTool): if solid_geo not in self.get_selected_geos(): shape_id = self.app.tool_shapes.add(tolerance=obj.drawing_tolerance, layer=0, shape=solid_geo, - color=self.app.options[ - 'global_sel_draw_color'] + 'AF', - face_color=self.app.options[ - 'global_sel_draw_color' - ] + 'AF', + color=self.draw_app.get_sel_color() + 'AF', + face_color=self.draw_app.get_sel_color() + + 'AF', visible=True) new_ap_dict = {k: v for k, v in obj.tools[apid].items() if k != 'geometry'} new_ap_dict['geometry'] = [DrawToolShape(geo_el)] @@ -3111,8 +3109,8 @@ class ImportEditorGrb(QtCore.QObject, DrawTool): added_poly_count = 0 - color = self.app.options['global_sel_draw_color'] + 'AF' - face_color = self.app.options['global_sel_draw_color'] + 'AF' + color = self.draw_app.get_sel_color() + 'AF' + face_color = self.draw_app.get_sel_color() + 'AF' for obj in self.app.collection.get_list(): # only Gerber objects and only those that are active and not the edited object @@ -5583,7 +5581,7 @@ class AppGerberEditor(QtCore.QObject): geometric_data = el['solid'] # Add the new utility shape self.tool_shape.add( - shape=geometric_data, color=(self.app.options["global_draw_color"]), + shape=geometric_data, color=self.get_draw_color(), # face_color=self.app.options['global_alt_sel_fill'], update=False, layer=0, tolerance=None ) @@ -5592,13 +5590,31 @@ class AppGerberEditor(QtCore.QObject): # Add the new utility shape self.tool_shape.add( shape=geometric_data, - color=(self.app.options["global_draw_color"]), + color=self.get_draw_color(), # face_color=self.app.options['global_alt_sel_fill'], update=False, layer=0, tolerance=None ) self.tool_shape.redraw() + def get_draw_color(self): + orig_color = self.app.options["global_draw_color"] + + if self.app.options['global_theme'] in ['default', 'light']: + return orig_color + + # in the "dark" theme we invert the color + lowered_color = orig_color.lower() + group1 = "#0123456789abcdef" + group2 = "#fedcba9876543210" + # create color dict + color_dict = {group1[i]: group2[i] for i in range(len(group1))} + new_color = ''.join([color_dict[j] for j in lowered_color]) + return new_color + + def get_sel_color(self): + return self.app.options['global_sel_draw_color'] + def plot_all(self): """ Plots all shapes in the editor. @@ -5609,14 +5625,14 @@ class AppGerberEditor(QtCore.QObject): with self.app.proc_container.new('%s ...' % _("Plotting")): self.shapes.clear(update=True) - if len(self.app.options['global_sel_draw_color']) == 7: - sel_draw_color = self.app.options['global_sel_draw_color'] + 'FF' + if len(self.get_sel_color()) == 7: + sel_draw_color = self.get_sel_color() + 'FF' else: - sel_draw_color = self.app.options['global_sel_draw_color'][:-2] + 'FF' - if len(self.app.options['global_draw_color']) == 7: - draw_color = self.app.options['global_draw_color'] + 'FF' + sel_draw_color = self.get_sel_color()[:-2] + 'FF' + if len(self.get_draw_color()) == 7: + draw_color = self.get_draw_color() + 'FF' else: - draw_color = self.app.options['global_draw_color'][:-2] + 'FF' + draw_color = self.get_draw_color()[:-2] + 'FF' for storage in self.storage_dict: # fix for apertures with no geometry inside