From 377d79d413c3388a74fc48a9056ee13b7654148f Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Thu, 14 Apr 2022 17:59:32 +0300 Subject: [PATCH] - added ability to control the color of the project items for the dark theme too --- CHANGELOG.md | 3 +- appGUI/preferences/PreferencesUIManager.py | 27 ++++-- .../general/GeneralGUIPrefGroupUI.py | 83 ++++++++++++++----- appObjects/ObjectCollection.py | 12 ++- defaults.py | 9 +- 5 files changed, 99 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d051f54a..0def0bae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,8 @@ CHANGELOG for FlatCAM Evo beta - in Geometry Editor, for Path tool, added UI that close on end of the Path tool action; it displays the projected length which now is kept for as long as it is wanted, allowing for path automation in case of repetitive lengths - solved a ZeroDivisionError exception in the Geometry Editor -> Path Tool - in Geometry Editor, for Path tool, added the ability to differentiate between creating a multidigit number for the projection and starting a new number (for a new segment) -- +- added ability to control the color of the project items for the dark theme too + 13.04.2022 - fixed the display of lines in Distance Plugin when using 'snap to' together with 'multipoint' diff --git a/appGUI/preferences/PreferencesUIManager.py b/appGUI/preferences/PreferencesUIManager.py index a4118a29..a5acde02 100644 --- a/appGUI/preferences/PreferencesUIManager.py +++ b/appGUI/preferences/PreferencesUIManager.py @@ -87,8 +87,11 @@ class PreferencesUIManager(QtCore.QObject): "global_draw_color": self.ui.general_pref_form.general_gui_group.draw_color_entry, "global_sel_draw_color": self.ui.general_pref_form.general_gui_group.sel_draw_color_entry, - "global_proj_item_color": self.ui.general_pref_form.general_gui_group.proj_color_entry, - "global_proj_item_dis_color": self.ui.general_pref_form.general_gui_group.proj_color_dis_entry, + "global_proj_item_color_light": self.ui.general_pref_form.general_gui_group.proj_color_light_entry, + "global_proj_item_dis_color_light": self.ui.general_pref_form.general_gui_group.proj_color_dis_light_entry, + "global_proj_item_color_dark": self.ui.general_pref_form.general_gui_group.proj_color_dark_entry, + "global_proj_item_dis_color_dark": self.ui.general_pref_form.general_gui_group.proj_color_dis_dark_entry, + "global_project_autohide": self.ui.general_pref_form.general_gui_group.project_autohide_cb, # General APP Settings @@ -1006,13 +1009,21 @@ class PreferencesUIManager(QtCore.QObject): self.ui.general_pref_form.general_gui_group.sel_draw_color_entry.set_value( self.defaults['global_sel_draw_color']) - # Init Project Items color - self.ui.general_pref_form.general_gui_group.proj_color_entry.set_value( - self.defaults['global_proj_item_color']) + # Init Project Items color - Light Theme + self.ui.general_pref_form.general_gui_group.proj_color_light_entry.set_value( + self.defaults['global_proj_item_color_light']) - # Init Project Disabled Items color - self.ui.general_pref_form.general_gui_group.proj_color_dis_entry.set_value( - self.defaults['global_proj_item_dis_color']) + # Init Project Disabled Items color - Light Theme + self.ui.general_pref_form.general_gui_group.proj_color_dis_light_entry.set_value( + self.defaults['global_proj_item_dis_color_light']) + + # Init Project Items color - Dark Theme + self.ui.general_pref_form.general_gui_group.proj_color_dark_entry.set_value( + self.defaults['global_proj_item_color_dark']) + + # Init Project Disabled Items color - Dark Theme + self.ui.general_pref_form.general_gui_group.proj_color_dis_dark_entry.set_value( + self.defaults['global_proj_item_dis_color_dark']) # Init Mouse Cursor color self.ui.general_pref_form.general_app_set_group.mouse_cursor_entry.set_value( diff --git a/appGUI/preferences/general/GeneralGUIPrefGroupUI.py b/appGUI/preferences/general/GeneralGUIPrefGroupUI.py index 49c76a07..7278ac01 100644 --- a/appGUI/preferences/general/GeneralGUIPrefGroupUI.py +++ b/appGUI/preferences/general/GeneralGUIPrefGroupUI.py @@ -272,29 +272,59 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): # ------------------------------------------------------------------ # ----------------------- Project Settings ----------------------------- # ------------------------------------------------------------------ - - self.proj_settings_label = FCLabel('%s' % _('Project Items Color')) - grid1.addWidget(self.proj_settings_label, 28, 0, 1, 2) + # Light Theme + self.proj_settings_l_label = FCLabel('%s - %s' % (_('Project Items Color'), _("Light"))) + grid1.addWidget(self.proj_settings_l_label, 28, 0, 1, 2) # Project Tab items color - self.proj_color_label = FCLabel('%s:' % _('Enabled')) - self.proj_color_label.setToolTip( - _("Set the color of the items in Project Tab Tree.") + self.proj_color_l_label = FCLabel('%s:' % _('Enabled')) + self.proj_color_l_label.setToolTip( + '%s %s' % (_("Set the color of the items in Project Tab Tree."), _("Light Theme.")) ) - self.proj_color_entry = FCColorEntry(icon=QtGui.QIcon(self.app.resource_location + '/set_colors64.png')) + self.proj_color_light_entry = FCColorEntry(icon=QtGui.QIcon(self.app.resource_location + '/set_colors64.png')) - grid1.addWidget(self.proj_color_label, 30, 0) - grid1.addWidget(self.proj_color_entry, 30, 1) + grid1.addWidget(self.proj_color_l_label, 30, 0) + grid1.addWidget(self.proj_color_light_entry, 30, 1) - self.proj_color_dis_label = FCLabel('%s:' % _('Disabled')) - self.proj_color_dis_label.setToolTip( - _("Set the color of the items in Project Tab Tree,\n" - "for the case when the items are disabled.") + self.proj_color_dis_l_label = FCLabel('%s:' % _('Disabled')) + self.proj_color_dis_l_label.setToolTip( + '%s %s' % ( + _("Set the color of the items in Project Tab Tree,\n" + "for the case when the items are disabled."), + _("Light Theme.")) ) - self.proj_color_dis_entry = FCColorEntry(icon=QtGui.QIcon(self.app.resource_location + '/set_colors64.png')) + self.proj_color_dis_light_entry = FCColorEntry(icon=QtGui.QIcon( + self.app.resource_location + '/set_colors64.png')) - grid1.addWidget(self.proj_color_dis_label, 32, 0) - grid1.addWidget(self.proj_color_dis_entry, 32, 1) + grid1.addWidget(self.proj_color_dis_l_label, 32, 0) + grid1.addWidget(self.proj_color_dis_light_entry, 32, 1) + + # Dark Theme + self.proj_settings_d_label = FCLabel('%s - %s' % (_('Project Items Color'), _("Dark"))) + grid1.addWidget(self.proj_settings_d_label, 34, 0, 1, 2) + + # Project Tab items color + self.proj_color_d_label = FCLabel('%s:' % _('Enabled')) + self.proj_color_d_label.setToolTip( + '%s %s' % (_("Set the color of the items in Project Tab Tree."), _("Dark Theme.")) + ) + self.proj_color_dark_entry = FCColorEntry(icon=QtGui.QIcon(self.app.resource_location + '/set_colors64.png')) + + grid1.addWidget(self.proj_color_d_label, 36, 0) + grid1.addWidget(self.proj_color_dark_entry, 36, 1) + + self.proj_color_dis_d_label = FCLabel('%s:' % _('Disabled')) + self.proj_color_dis_d_label.setToolTip( + '%s %s' % ( + _("Set the color of the items in Project Tab Tree,\n" + "for the case when the items are disabled."), + _("Dark Theme.")) + ) + self.proj_color_dis_dark_entry = FCColorEntry(icon=QtGui.QIcon( + self.app.resource_location + '/set_colors64.png')) + + grid1.addWidget(self.proj_color_dis_d_label, 38, 0) + grid1.addWidget(self.proj_color_dis_dark_entry, 38, 1) GLay.set_common_column_size([grid0, grid1], 0) @@ -330,8 +360,11 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.draw_color_entry.editingFinished.connect(self.on_draw_color_entry) self.sel_draw_color_entry.editingFinished.connect(self.on_sel_draw_color_entry) - self.proj_color_entry.editingFinished.connect(self.on_proj_color_entry) - self.proj_color_dis_entry.editingFinished.connect(self.on_proj_color_dis_entry) + self.proj_color_light_entry.editingFinished.connect(self.on_proj_color_light_entry) + self.proj_color_dis_light_entry.editingFinished.connect(self.on_proj_color_dis_light_entry) + + self.proj_color_dark_entry.editingFinished.connect(self.on_proj_color_dark_entry) + self.proj_color_dis_dark_entry.editingFinished.connect(self.on_proj_color_dis_dark_entry) self.layout_combo.activated.connect(self.app.on_layout) @@ -400,8 +433,14 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): def on_sel_draw_color_entry(self): self.app.options['global_sel_draw_color'] = self.sel_draw_color_entry.get_value() - def on_proj_color_entry(self): - self.app.options['global_proj_item_color'] = self.proj_color_entry.get_value() + def on_proj_color_light_entry(self): + self.app.options['global_proj_item_color_light'] = self.proj_color_light_entry.get_value() - def on_proj_color_dis_entry(self): - self.app.options['global_proj_item_dis_color'] = self.proj_color_dis_entry.get_value() + def on_proj_color_dis_light_entry(self): + self.app.options['global_proj_item_dis_color_light'] = self.proj_color_dis_light_entry.get_value() + + def on_proj_color_dark_entry(self): + self.app.options['global_proj_item_color_dark'] = self.proj_color_dark_entry.get_value() + + def on_proj_color_dis_dark_entry(self): + self.app.options['global_proj_item_dis_color_dark'] = self.proj_color_dis_dark_entry.get_value() diff --git a/appObjects/ObjectCollection.py b/appObjects/ObjectCollection.py index 4b5e7de9..d8fa9660 100644 --- a/appObjects/ObjectCollection.py +++ b/appObjects/ObjectCollection.py @@ -505,8 +505,16 @@ class ObjectCollection(QtCore.QAbstractItemModel): return index.internalPointer().data(index.column()) if role == Qt.ItemDataRole.ForegroundRole: - color = QColor(self.app.options['global_proj_item_color'][:-2]) - color_disabled = QColor(self.app.options['global_proj_item_dis_color'][:-2]) + theme_settings = QtCore.QSettings("Open Source", "FlatCAM") + theme = theme_settings.value('theme', type=str) + + if theme in ['black', 'dark']: + color = QColor(self.app.options['global_proj_item_color_dark'][:-2]) + color_disabled = QColor(self.app.options['global_proj_item_dis_color_dark'][:-2]) + else: + color = QColor(self.app.options['global_proj_item_color_light'][:-2]) + color_disabled = QColor(self.app.options['global_proj_item_dis_color_light'][:-2]) + obj = index.internalPointer().obj if obj: return QtGui.QBrush(color) if obj.obj_options["plot"] else QtGui.QBrush(color_disabled) diff --git a/defaults.py b/defaults.py index e266507e..8fa0d201 100644 --- a/defaults.py +++ b/defaults.py @@ -125,8 +125,13 @@ class AppDefaults: "global_alt_sel_line": '#006E20BF', "global_draw_color": '#FF000080', "global_sel_draw_color": '#0000FF80', - "global_proj_item_color": '#000000FF', - "global_proj_item_dis_color": '#b7b7cbFF', + + # Project Items colors + "global_proj_item_color_light": '#000000FF', + "global_proj_item_dis_color_light": '#b7b7cbFF', + "global_proj_item_color_dark": '#4385C8FF', + "global_proj_item_dis_color_dark": '#61616CFF', + "global_project_autohide": True, # General App Settings