- 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.
This commit is contained in:
Marius Stanciu 2019-05-01 12:29:47 +03:00 committed by Marius
parent dc64f8174e
commit f172d5b765
4 changed files with 62 additions and 2 deletions

View File

@ -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()

View File

@ -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())

View File

@ -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

View File

@ -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:'))