diff --git a/FlatCAMApp.py b/FlatCAMApp.py index a8844216..3dd4646f 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -342,6 +342,8 @@ class App(QtCore.QObject): "global_draw_color": self.ui.general_defaults_form.general_gui_group.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, + # General GUI Settings "global_layout": self.ui.general_defaults_form.general_gui_set_group.layout_combo, "global_hover": self.ui.general_defaults_form.general_gui_set_group.hover_cb, @@ -614,6 +616,7 @@ class App(QtCore.QObject): "global_alt_sel_line": '#006E20BF', "global_draw_color": '#FF0000', "global_sel_draw_color": '#0000FF', + "global_proj_item_color": '#000000', "global_toolbar_view": 511, @@ -1165,7 +1168,8 @@ class App(QtCore.QObject): "background-color:%s" % str(self.defaults['global_sel_line'])[:7]) # Init Right-Left Selection colors - self.ui.general_defaults_form.general_gui_group.alt_sf_color_entry.set_value(self.defaults['global_alt_sel_fill']) + self.ui.general_defaults_form.general_gui_group.alt_sf_color_entry.set_value( + self.defaults['global_alt_sel_fill']) self.ui.general_defaults_form.general_gui_group.alt_sf_color_button.setStyleSheet( "background-color:%s" % str(self.defaults['global_alt_sel_fill'])[:7]) self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_spinner.set_value( @@ -1173,18 +1177,28 @@ class App(QtCore.QObject): self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_slider.setValue( int(self.defaults['global_sel_fill'][7:9], 16)) - self.ui.general_defaults_form.general_gui_group.alt_sl_color_entry.set_value(self.defaults['global_alt_sel_line']) + self.ui.general_defaults_form.general_gui_group.alt_sl_color_entry.set_value( + self.defaults['global_alt_sel_line']) self.ui.general_defaults_form.general_gui_group.alt_sl_color_button.setStyleSheet( "background-color:%s" % str(self.defaults['global_alt_sel_line'])[:7]) # Init Draw color and Selection Draw Color - self.ui.general_defaults_form.general_gui_group.draw_color_entry.set_value(self.defaults['global_draw_color']) + self.ui.general_defaults_form.general_gui_group.draw_color_entry.set_value( + self.defaults['global_draw_color']) self.ui.general_defaults_form.general_gui_group.draw_color_button.setStyleSheet( "background-color:%s" % str(self.defaults['global_draw_color'])[:7]) - self.ui.general_defaults_form.general_gui_group.sel_draw_color_entry.set_value(self.defaults['global_sel_draw_color']) + self.ui.general_defaults_form.general_gui_group.sel_draw_color_entry.set_value( + self.defaults['global_sel_draw_color']) self.ui.general_defaults_form.general_gui_group.sel_draw_color_button.setStyleSheet( "background-color:%s" % str(self.defaults['global_sel_draw_color'])[:7]) + + # Init Project Items color + self.ui.general_defaults_form.general_gui_group.proj_color_entry.set_value( + self.defaults['global_proj_item_color']) + self.ui.general_defaults_form.general_gui_group.proj_color_button.setStyleSheet( + "background-color:%s" % str(self.defaults['global_proj_item_color'])[:7]) + #### End of Data #### #### Plot Area #### @@ -1401,34 +1415,59 @@ class App(QtCore.QObject): ############################### # Setting plot colors signals - self.ui.general_defaults_form.general_gui_group.pf_color_entry.editingFinished.connect(self.on_pf_color_entry) - self.ui.general_defaults_form.general_gui_group.pf_color_button.clicked.connect(self.on_pf_color_button) - self.ui.general_defaults_form.general_gui_group.pf_color_alpha_spinner.valueChanged.connect(self.on_pf_color_spinner) - self.ui.general_defaults_form.general_gui_group.pf_color_alpha_slider.valueChanged.connect(self.on_pf_color_slider) - self.ui.general_defaults_form.general_gui_group.pl_color_entry.editingFinished.connect(self.on_pl_color_entry) - self.ui.general_defaults_form.general_gui_group.pl_color_button.clicked.connect(self.on_pl_color_button) + self.ui.general_defaults_form.general_gui_group.pf_color_entry.editingFinished.connect( + self.on_pf_color_entry) + self.ui.general_defaults_form.general_gui_group.pf_color_button.clicked.connect( + self.on_pf_color_button) + self.ui.general_defaults_form.general_gui_group.pf_color_alpha_spinner.valueChanged.connect( + self.on_pf_color_spinner) + self.ui.general_defaults_form.general_gui_group.pf_color_alpha_slider.valueChanged.connect( + self.on_pf_color_slider) + self.ui.general_defaults_form.general_gui_group.pl_color_entry.editingFinished.connect( + self.on_pl_color_entry) + self.ui.general_defaults_form.general_gui_group.pl_color_button.clicked.connect( + self.on_pl_color_button) # Setting selection (left - right) colors signals - self.ui.general_defaults_form.general_gui_group.sf_color_entry.editingFinished.connect(self.on_sf_color_entry) - self.ui.general_defaults_form.general_gui_group.sf_color_button.clicked.connect(self.on_sf_color_button) - self.ui.general_defaults_form.general_gui_group.sf_color_alpha_spinner.valueChanged.connect(self.on_sf_color_spinner) - self.ui.general_defaults_form.general_gui_group.sf_color_alpha_slider.valueChanged.connect(self.on_sf_color_slider) - self.ui.general_defaults_form.general_gui_group.sl_color_entry.editingFinished.connect(self.on_sl_color_entry) - self.ui.general_defaults_form.general_gui_group.sl_color_button.clicked.connect(self.on_sl_color_button) + self.ui.general_defaults_form.general_gui_group.sf_color_entry.editingFinished.connect( + self.on_sf_color_entry) + self.ui.general_defaults_form.general_gui_group.sf_color_button.clicked.connect( + self.on_sf_color_button) + self.ui.general_defaults_form.general_gui_group.sf_color_alpha_spinner.valueChanged.connect( + self.on_sf_color_spinner) + self.ui.general_defaults_form.general_gui_group.sf_color_alpha_slider.valueChanged.connect( + self.on_sf_color_slider) + self.ui.general_defaults_form.general_gui_group.sl_color_entry.editingFinished.connect( + self.on_sl_color_entry) + self.ui.general_defaults_form.general_gui_group.sl_color_button.clicked.connect( + self.on_sl_color_button) # Setting selection (right - left) colors signals - self.ui.general_defaults_form.general_gui_group.alt_sf_color_entry.editingFinished.connect(self.on_alt_sf_color_entry) - self.ui.general_defaults_form.general_gui_group.alt_sf_color_button.clicked.connect(self.on_alt_sf_color_button) + self.ui.general_defaults_form.general_gui_group.alt_sf_color_entry.editingFinished.connect( + self.on_alt_sf_color_entry) + self.ui.general_defaults_form.general_gui_group.alt_sf_color_button.clicked.connect( + self.on_alt_sf_color_button) self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_spinner.valueChanged.connect( self.on_alt_sf_color_spinner) self.ui.general_defaults_form.general_gui_group.alt_sf_color_alpha_slider.valueChanged.connect( self.on_alt_sf_color_slider) - self.ui.general_defaults_form.general_gui_group.alt_sl_color_entry.editingFinished.connect(self.on_alt_sl_color_entry) - self.ui.general_defaults_form.general_gui_group.alt_sl_color_button.clicked.connect(self.on_alt_sl_color_button) + self.ui.general_defaults_form.general_gui_group.alt_sl_color_entry.editingFinished.connect( + self.on_alt_sl_color_entry) + self.ui.general_defaults_form.general_gui_group.alt_sl_color_button.clicked.connect( + self.on_alt_sl_color_button) # Setting Editor Draw colors signals - self.ui.general_defaults_form.general_gui_group.draw_color_entry.editingFinished.connect(self.on_draw_color_entry) - self.ui.general_defaults_form.general_gui_group.draw_color_button.clicked.connect(self.on_draw_color_button) + self.ui.general_defaults_form.general_gui_group.draw_color_entry.editingFinished.connect( + self.on_draw_color_entry) + self.ui.general_defaults_form.general_gui_group.draw_color_button.clicked.connect( + self.on_draw_color_button) - self.ui.general_defaults_form.general_gui_group.sel_draw_color_entry.editingFinished.connect(self.on_sel_draw_color_entry) - self.ui.general_defaults_form.general_gui_group.sel_draw_color_button.clicked.connect(self.on_sel_draw_color_button) + self.ui.general_defaults_form.general_gui_group.sel_draw_color_entry.editingFinished.connect( + self.on_sel_draw_color_entry) + self.ui.general_defaults_form.general_gui_group.sel_draw_color_button.clicked.connect( + self.on_sel_draw_color_button) + + self.ui.general_defaults_form.general_gui_group.proj_color_entry.editingFinished.connect( + self.on_proj_color_entry) + 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.wk_cb.currentIndexChanged.connect(self.on_workspace_modified) self.ui.general_defaults_form.general_gui_group.workspace_cb.stateChanged.connect(self.on_workspace) @@ -4021,6 +4060,28 @@ class App(QtCore.QObject): self.ui.general_defaults_form.general_gui_group.sel_draw_color_entry.set_value(new_val_sel) self.defaults['global_sel_draw_color'] = new_val_sel + def on_proj_color_entry(self): + self.defaults['global_proj_item_color'] = self.ui.general_defaults_form.general_gui_group \ + .proj_color_entry.get_value() + self.ui.general_defaults_form.general_gui_group.proj_color_button.setStyleSheet( + "background-color:%s" % str(self.defaults['global_proj_item_color'])) + + def on_proj_color_button(self): + current_color = QtGui.QColor(self.defaults['global_proj_item_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_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_entry.set_value(new_val_sel) + self.defaults['global_proj_item_color'] = new_val_sel + def on_deselect_all(self): self.collection.set_all_inactive() self.delete_selection_shape() @@ -7603,6 +7664,7 @@ class App(QtCore.QObject): icons = { "gerber": "share/flatcam_icon16.png", "excellon": "share/drill16.png", + 'geometry': "share/geometry16.png", "cncjob": "share/cnc16.png", "project": "share/project16.png", "svg": "share/geometry16.png", diff --git a/ObjectCollection.py b/ObjectCollection.py index 3b7e98bc..2f2d5711 100644 --- a/ObjectCollection.py +++ b/ObjectCollection.py @@ -256,6 +256,13 @@ class ObjectCollection(QtCore.QAbstractItemModel): # self.view.setAcceptDrops(True) # self.view.setDropIndicatorShown(True) + color = self.app.defaults['global_proj_item_color'] + # set StyleSheet + stylesheet = "QTreeView::item {color: %s;}" % color + + self.view.setStyleSheet(stylesheet) + + font = QtGui.QFont() font.setPixelSize(12) font.setFamily("Seagoe UI") diff --git a/README.md b/README.md index 7ecd5e2d..0504b0d6 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ CAD program, and create G-Code for Isolation routing. - started to modify the Substract Tool to work on Geometry objects too - progress in the new Substract Tool for Geometry Objects - finished the new Substract Tool +- added new setting for the color of the Project Tree items; it helps in providing contrast when using dark theme like the one in MacOS 29.04.2019 diff --git a/flatcamEditors/FlatCAMGeoEditor.py b/flatcamEditors/FlatCAMGeoEditor.py index e00e671f..3d3467ce 100644 --- a/flatcamEditors/FlatCAMGeoEditor.py +++ b/flatcamEditors/FlatCAMGeoEditor.py @@ -2875,8 +2875,12 @@ class FlatCAMGeoEditor(QtCore.QObject): def gridx_changed(goption, gentry): entry2option(option=goption, entry=gentry) # if the grid link is checked copy the value in the GridX field to GridY + try: + val = float(self.app.ui.grid_gap_x_entry.get_value()) + except ValueError: + return if self.app.ui.grid_gap_link_cb.isChecked(): - self.app.ui.grid_gap_y_entry.set_value(self.app.ui.grid_gap_x_entry.get_value()) + self.app.ui.grid_gap_y_entry.set_value(val) self.app.ui.grid_gap_x_entry.setValidator(QtGui.QDoubleValidator()) self.app.ui.grid_gap_x_entry.textChanged.connect( diff --git a/flatcamGUI/FlatCAMGUI.py b/flatcamGUI/FlatCAMGUI.py index cdeff7c3..ab8849df 100644 --- a/flatcamGUI/FlatCAMGUI.py +++ b/flatcamGUI/FlatCAMGUI.py @@ -3507,6 +3507,20 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box_child_11.addWidget(self.sel_draw_color_button) self.form_box_child_11.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + # Project Tab items color + self.proj_color_label = QtWidgets.QLabel(_('Project Items:')) + self.proj_color_label.setToolTip( + _("Set the color of the items in Project Tab Tree.") + ) + self.proj_color_entry = FCEntry() + self.proj_color_button = QtWidgets.QPushButton() + self.proj_color_button.setFixedSize(15, 15) + + self.form_box_child_12 = QtWidgets.QHBoxLayout() + self.form_box_child_12.addWidget(self.proj_color_entry) + self.form_box_child_12.addWidget(self.proj_color_button) + self.form_box_child_12.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignVCenter) + # Just to add empty rows self.spacelabel = QtWidgets.QLabel('') @@ -3531,6 +3545,8 @@ class GeneralGUIPrefGroupUI(OptionsGroupUI): self.form_box.addRow(self.alt_sl_color_label, self.form_box_child_9) self.form_box.addRow(self.draw_color_label, self.form_box_child_10) 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.spacelabel, self.spacelabel) diff --git a/setup_ubuntu.sh b/setup_ubuntu.sh index fe04bb9a..6a2249cf 100644 --- a/setup_ubuntu.sh +++ b/setup_ubuntu.sh @@ -20,7 +20,6 @@ pip3 install --upgrade Shapely pip3 install --upgrade vispy pip3 install --upgrade rtree pip3 install --upgrade pyopengl -pip3 install --upgrade pyopengl-accelerate pip3 install --upgrade setuptools pip3 install --upgrade svg.path pip3 install --upgrade ortools