diff --git a/FlatCAMApp.py b/FlatCAMApp.py index 410212fe..4c224815 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -343,6 +343,7 @@ class App(QtCore.QObject): "global_sel_draw_color": self.ui.general_defaults_form.general_gui_group.sel_draw_color_entry, "global_proj_item_color": self.ui.general_defaults_form.general_gui_group.proj_color_entry, + "global_proj_item_dis_color": self.ui.general_defaults_form.general_gui_group.proj_color_dis_entry, # General GUI Settings "global_layout": self.ui.general_defaults_form.general_gui_set_group.layout_combo, @@ -617,6 +618,7 @@ class App(QtCore.QObject): "global_draw_color": '#FF0000', "global_sel_draw_color": '#0000FF', "global_proj_item_color": '#000000', + "global_proj_item_dis_color": '#b7b7cb', "global_toolbar_view": 511, @@ -1199,6 +1201,11 @@ class App(QtCore.QObject): self.ui.general_defaults_form.general_gui_group.proj_color_button.setStyleSheet( "background-color:%s" % str(self.defaults['global_proj_item_color'])[:7]) + self.ui.general_defaults_form.general_gui_group.proj_color_dis_entry.set_value( + self.defaults['global_proj_item_dis_color']) + self.ui.general_defaults_form.general_gui_group.proj_color_dis_button.setStyleSheet( + "background-color:%s" % str(self.defaults['global_proj_item_dis_color'])[:7]) + #### End of Data #### #### Plot Area #### @@ -1469,6 +1476,11 @@ class App(QtCore.QObject): self.ui.general_defaults_form.general_gui_group.proj_color_button.clicked.connect( self.on_proj_color_button) + self.ui.general_defaults_form.general_gui_group.proj_color_dis_entry.editingFinished.connect( + self.on_proj_color_dis_entry) + self.ui.general_defaults_form.general_gui_group.proj_color_dis_button.clicked.connect( + self.on_proj_color_dis_button) + self.ui.general_defaults_form.general_gui_group.wk_cb.currentIndexChanged.connect(self.on_workspace_modified) self.ui.general_defaults_form.general_gui_group.workspace_cb.stateChanged.connect(self.on_workspace) @@ -4082,6 +4094,28 @@ class App(QtCore.QObject): self.ui.general_defaults_form.general_gui_group.proj_color_entry.set_value(new_val_sel) self.defaults['global_proj_item_color'] = new_val_sel + def on_proj_color_dis_entry(self): + self.defaults['global_proj_item_dis_color'] = self.ui.general_defaults_form.general_gui_group \ + .proj_color_dis_entry.get_value() + self.ui.general_defaults_form.general_gui_group.proj_color_dis_button.setStyleSheet( + "background-color:%s" % str(self.defaults['global_proj_item_dis_color'])) + + def on_proj_color_dis_button(self): + current_color = QtGui.QColor(self.defaults['global_proj_item_dis_color']) + + c_dialog = QtWidgets.QColorDialog() + proj_color = c_dialog.getColor(initial=current_color) + + if proj_color.isValid() is False: + return + + self.ui.general_defaults_form.general_gui_group.proj_color_dis_button.setStyleSheet( + "background-color:%s" % str(proj_color.name())) + + new_val_sel = str(proj_color.name()) + self.ui.general_defaults_form.general_gui_group.proj_color_dis_entry.set_value(new_val_sel) + self.defaults['global_proj_item_dis_color'] = new_val_sel + def on_deselect_all(self): self.collection.set_all_inactive() self.delete_selection_shape() diff --git a/ObjectCollection.py b/ObjectCollection.py index 153f68fe..d7706a4b 100644 --- a/ObjectCollection.py +++ b/ObjectCollection.py @@ -379,9 +379,10 @@ class ObjectCollection(QtCore.QAbstractItemModel): if role == Qt.ForegroundRole: color = QColor(self.app.defaults['global_proj_item_color']) + color_disabled = QColor(self.app.defaults['global_proj_item_dis_color']) obj = index.internalPointer().obj if obj: - return QtGui.QBrush(color) if obj.options["plot"] else QtGui.QBrush(QtCore.Qt.lightGray) + return QtGui.QBrush(color) if obj.options["plot"] else QtGui.QBrush(color_disabled) else: return index.internalPointer().data(index.column()) @@ -765,4 +766,4 @@ class ObjectCollection(QtCore.QAbstractItemModel): return obj_list def update_view(self): - self.dataChanged.emit(QtCore.QModelIndex(), QtCore.QModelIndex(), [QtCore.Qt.EditRole]) + self.dataChanged.emit(QtCore.QModelIndex(), QtCore.QModelIndex()) diff --git a/README.md b/README.md index 3530c21a..4e7e08f4 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ CAD program, and create G-Code for Isolation routing. - the project items color is now controlled from Foreground Role in ObjectCollection.data() - made again plot functions threaded but moved the dataChanged signal (update_view() ) to the main thread by using an already existing signal (plots_updated signal) to avoid the errors with register QVector +- Enable/Disable Object toggle key ("Space" key) will trigger also the datChanged signal for the Project MVC +- added a new setting for the color of the Porject items, the color when they are disabled. 30.04.2019 diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index ab8849df..c3d3458b 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -2237,6 +2237,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow): if key == QtCore.Qt.Key_Space: for select in selected: select.ui.plot_cb.toggle() + self.app.collection.update_view() self.app.delete_selection_shape() # New Geometry @@ -3521,6 +3522,20 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_12.addWidget(self.proj_color_button) self.form_box_child_12.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + self.proj_color_dis_label = QtWidgets.QLabel(_('Proj. Dis. Items:')) + 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_entry = FCEntry() + self.proj_color_dis_button = QtWidgets.QPushButton() + self.proj_color_dis_button.setFixedSize(15, 15) + + self.form_box_child_13 = QtWidgets.QHBoxLayout() + self.form_box_child_13.addWidget(self.proj_color_dis_entry) + self.form_box_child_13.addWidget(self.proj_color_dis_button) + self.form_box_child_13.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + # Just to add empty rows self.spacelabel = QtWidgets.QLabel('') @@ -3547,6 +3562,7 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box.addRow(self.sel_draw_color_label, self.form_box_child_11) self.form_box.addRow(QtWidgets.QLabel("")) self.form_box.addRow(self.proj_color_label, self.form_box_child_12) + self.form_box.addRow(self.proj_color_dis_label, self.form_box_child_13) self.form_box.addRow(self.spacelabel, self.spacelabel) @@ -3727,6 +3743,13 @@ class GeneralAppPrefGroupUI(OptionsGroupUI): self.language_cb = FCComboBox() self.languagespace = QtWidgets.QLabel('') self.language_apply_btn = FCButton(_("Apply Language")) + self.language_apply_btn.setToolTip(_("Set the language used throughout FlatCAM.\n" + "The app will restart after click." + "Windows: When FlatCAM is installed in Program Files\n" + "directory, it is possible that the app will not\n" + "restart after the button is clicked due of Windows\n" + "security features. In this case the language will be\n" + "applied at the next app start.")) # Shell StartUp CB self.shell_startup_label = QtWidgets.QLabel(_('Shell at StartUp:'))