Преглед изворни кода

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

Marius Stanciu пре 6 година
родитељ
комит
f172d5b765
4 измењених фајлова са 62 додато и 2 уклоњено
  1. 34 0
      FlatCAMApp.py
  2. 3 2
      ObjectCollection.py
  3. 2 0
      README.md
  4. 23 0
      flatcamGUI/FlatCAMGUI.py

+ 34 - 0
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_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_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
             # General GUI Settings
             "global_layout": self.ui.general_defaults_form.general_gui_set_group.layout_combo,
             "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_draw_color": '#FF0000',
             "global_sel_draw_color": '#0000FF',
             "global_sel_draw_color": '#0000FF',
             "global_proj_item_color": '#000000',
             "global_proj_item_color": '#000000',
+            "global_proj_item_dis_color": '#b7b7cb',
 
 
             "global_toolbar_view": 511,
             "global_toolbar_view": 511,
 
 
@@ -1199,6 +1201,11 @@ class App(QtCore.QObject):
         self.ui.general_defaults_form.general_gui_group.proj_color_button.setStyleSheet(
         self.ui.general_defaults_form.general_gui_group.proj_color_button.setStyleSheet(
             "background-color:%s" % str(self.defaults['global_proj_item_color'])[:7])
             "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 ####
         #### End of Data ####
 
 
         #### Plot Area ####
         #### Plot Area ####
@@ -1469,6 +1476,11 @@ class App(QtCore.QObject):
         self.ui.general_defaults_form.general_gui_group.proj_color_button.clicked.connect(
         self.ui.general_defaults_form.general_gui_group.proj_color_button.clicked.connect(
             self.on_proj_color_button)
             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.wk_cb.currentIndexChanged.connect(self.on_workspace_modified)
         self.ui.general_defaults_form.general_gui_group.workspace_cb.stateChanged.connect(self.on_workspace)
         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.ui.general_defaults_form.general_gui_group.proj_color_entry.set_value(new_val_sel)
         self.defaults['global_proj_item_color'] = 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):
     def on_deselect_all(self):
         self.collection.set_all_inactive()
         self.collection.set_all_inactive()
         self.delete_selection_shape()
         self.delete_selection_shape()

+ 3 - 2
ObjectCollection.py

@@ -379,9 +379,10 @@ class ObjectCollection(QtCore.QAbstractItemModel):
 
 
         if role == Qt.ForegroundRole:
         if role == Qt.ForegroundRole:
             color = QColor(self.app.defaults['global_proj_item_color'])
             color = QColor(self.app.defaults['global_proj_item_color'])
+            color_disabled = QColor(self.app.defaults['global_proj_item_dis_color'])
             obj = index.internalPointer().obj
             obj = index.internalPointer().obj
             if 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:
             else:
                 return index.internalPointer().data(index.column())
                 return index.internalPointer().data(index.column())
 
 
@@ -765,4 +766,4 @@ class ObjectCollection(QtCore.QAbstractItemModel):
         return obj_list
         return obj_list
 
 
     def update_view(self):
     def update_view(self):
-        self.dataChanged.emit(QtCore.QModelIndex(), QtCore.QModelIndex(), [QtCore.Qt.EditRole])
+        self.dataChanged.emit(QtCore.QModelIndex(), QtCore.QModelIndex())

+ 2 - 0
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()
 - 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
 - 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
 30.04.2019
 
 

+ 23 - 0
flatcamGUI/FlatCAMGUI.py

@@ -2237,6 +2237,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
                 if key == QtCore.Qt.Key_Space:
                 if key == QtCore.Qt.Key_Space:
                     for select in selected:
                     for select in selected:
                         select.ui.plot_cb.toggle()
                         select.ui.plot_cb.toggle()
+                    self.app.collection.update_view()
                     self.app.delete_selection_shape()
                     self.app.delete_selection_shape()
 
 
                 # New Geometry
                 # New Geometry
@@ -3521,6 +3522,20 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI):
         self.form_box_child_12.addWidget(self.proj_color_button)
         self.form_box_child_12.addWidget(self.proj_color_button)
         self.form_box_child_12.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter)
         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
         # Just to add empty rows
         self.spacelabel = QtWidgets.QLabel('')
         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(self.sel_draw_color_label, self.form_box_child_11)
         self.form_box.addRow(QtWidgets.QLabel(""))
         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_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)
         self.form_box.addRow(self.spacelabel, self.spacelabel)
 
 
@@ -3727,6 +3743,13 @@ class GeneralAppPrefGroupUI(OptionsGroupUI):
         self.language_cb = FCComboBox()
         self.language_cb = FCComboBox()
         self.languagespace = QtWidgets.QLabel('')
         self.languagespace = QtWidgets.QLabel('')
         self.language_apply_btn = FCButton(_("Apply Language"))
         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
         # Shell StartUp CB
         self.shell_startup_label = QtWidgets.QLabel(_('Shell at StartUp:'))
         self.shell_startup_label = QtWidgets.QLabel(_('Shell at StartUp:'))