From 8e5f196fe01fabc9e41ccd9fae236f531910a899 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Sun, 5 Sep 2021 23:41:01 +0300 Subject: [PATCH] - in Subtraction Plugin updated the GUI --- CHANGELOG.md | 1 + appPlugins/ToolSub.py | 155 +++++++++++++++++++++++++----------------- 2 files changed, 92 insertions(+), 64 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 317e7baa..57d2245f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ CHANGELOG for FlatCAM beta - in Extract Drills Plugin updated the GUI - in Paint Plugin updated the GUI - in NCC Plugin updated the GUI +- in Subtraction Plugin updated the GUI 4.09.2021 diff --git a/appPlugins/ToolSub.py b/appPlugins/ToolSub.py index 4eb1cc6a..dddec8fc 100644 --- a/appPlugins/ToolSub.py +++ b/appPlugins/ToolSub.py @@ -8,7 +8,7 @@ from PyQt6 import QtWidgets, QtCore, QtGui from appTool import AppTool -from appGUI.GUIElements import FCCheckBox, FCButton, FCComboBox, FCLabel, VerticalScrollArea, FCGridLayout +from appGUI.GUIElements import FCCheckBox, FCButton, FCComboBox, FCLabel, VerticalScrollArea, FCGridLayout, FCFrame from shapely.geometry import Polygon, MultiPolygon, MultiLineString, LineString from shapely.ops import unary_union @@ -231,27 +231,25 @@ class ToolSub(AppTool): if not checked: self.ui.level.setText('%s' % _('Beginner')) self.ui.level.setStyleSheet(""" - QToolButton - { - color: green; - } - """) + QToolButton + { + color: green; + } + """) - self.ui.delete_sources_cb.hide() - self.ui.separator_line.hide() - self.ui.extra_empty_label.hide() + self.ui.param_label.hide() + self.ui.gp_frame.hide() else: self.ui.level.setText('%s' % _('Advanced')) self.ui.level.setStyleSheet(""" - QToolButton - { - color: red; - } - """) + QToolButton + { + color: red; + } + """) - self.ui.delete_sources_cb.show() - self.ui.separator_line.show() - self.ui.extra_empty_label.show() + self.ui.param_label.show() + self.ui.gp_frame.show() def on_subtract_gerber_click(self): # reset previous values @@ -810,31 +808,49 @@ class SubUI: self.tools_box.setContentsMargins(0, 0, 0, 0) self.tools_frame.setLayout(self.tools_box) - # Form Layout - grid0 = FCGridLayout(v_spacing=5, h_spacing=3) - grid0.setColumnStretch(0, 0) - grid0.setColumnStretch(1, 1) - self.tools_box.addLayout(grid0) + # ############################################################################################################# + # COMMON PARAMETERS Frame + # ############################################################################################################# + self.param_label = FCLabel('%s' % _("Parameters")) + self.param_label.setToolTip(_("Parameters that are common for all tools.")) + self.tools_box.addWidget(self.param_label) + + self.gp_frame = FCFrame() + self.tools_box.addWidget(self.gp_frame) + + param_grid = FCGridLayout(v_spacing=5, h_spacing=3) + param_grid.setColumnStretch(0, 0) + param_grid.setColumnStretch(1, 1) + self.gp_frame.setLayout(param_grid) self.delete_sources_cb = FCCheckBox(_("Delete source")) self.delete_sources_cb.setToolTip( _("When checked will delete the source objects\n" "after a successful operation.") ) - grid0.addWidget(self.delete_sources_cb, 0, 0, 1, 2) + param_grid.addWidget(self.delete_sources_cb, 0, 0, 1, 2) - self.separator_line = QtWidgets.QFrame() - self.separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine) - self.separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - grid0.addWidget(self.separator_line, 2, 0, 1, 3) + # ############################################################################################################# + # Gerber Subtraction Frame + # ############################################################################################################# + self.grb_label = FCLabel('%s' % _("Gerber")) + self.tools_box.addWidget(self.grb_label) - self.extra_empty_label = FCLabel('') - grid0.addWidget(self.extra_empty_label, 4, 0, 1, 2) + grb_frame = FCFrame() + self.tools_box.addWidget(grb_frame) - self.gerber_title = FCLabel("%s" % _("GERBER")) - grid0.addWidget(self.gerber_title, 6, 0, 1, 2) + grb_grid = FCGridLayout(v_spacing=5, h_spacing=3) + grb_grid.setColumnStretch(0, 0) + grb_grid.setColumnStretch(1, 1) + grb_frame.setLayout(grb_grid) # Target Gerber Object + self.target_gerber_label = FCLabel('%s:' % _("Target")) + self.target_gerber_label.setToolTip( + _("Gerber object from which to subtract\n" + "the subtractor Gerber object.") + ) + self.target_gerber_combo = FCComboBox() self.target_gerber_combo.setModel(self.app.collection) self.target_gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) @@ -842,14 +858,8 @@ class SubUI: self.target_gerber_combo.is_last = True self.target_gerber_combo.obj_type = "Gerber" - self.target_gerber_label = FCLabel('%s:' % _("Target")) - self.target_gerber_label.setToolTip( - _("Gerber object from which to subtract\n" - "the subtractor Gerber object.") - ) - - grid0.addWidget(self.target_gerber_label, 8, 0) - grid0.addWidget(self.target_gerber_combo, 8, 1) + grb_grid.addWidget(self.target_gerber_label, 0, 0) + grb_grid.addWidget(self.target_gerber_combo, 0, 1) # Substractor Gerber Object self.sub_gerber_combo = FCComboBox() @@ -864,9 +874,12 @@ class SubUI: "from the target Gerber object.") ) - grid0.addWidget(self.sub_gerber_label, 10, 0) - grid0.addWidget(self.sub_gerber_combo, 10, 1) + grb_grid.addWidget(self.sub_gerber_label, 2, 0) + grb_grid.addWidget(self.sub_gerber_combo, 2, 1) + # ############################################################################################################# + # Gerber Subtraction Button + # ############################################################################################################# self.intersect_btn = FCButton(_('Subtract Gerber')) self.intersect_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/subtract_btn32.png')) self.intersect_btn.setToolTip( @@ -881,13 +894,32 @@ class SubUI: font-weight: bold; } """) - grid0.addWidget(self.intersect_btn, 12, 0, 1, 2) - grid0.addWidget(FCLabel(''), 14, 0, 1, 2) + self.tools_box.addWidget(self.intersect_btn) + # self.tools_box.addWidget(FCLabel('')) + # ############################################################################################################# + # Geometry Subtraction Frame + # ############################################################################################################# + self.geo_label = FCLabel('%s' % _("Geometry")) + self.tools_box.addWidget(self.geo_label) + + geo_frame = FCFrame() + self.tools_box.addWidget(geo_frame) + + geo_grid = FCGridLayout(v_spacing=5, h_spacing=3) + geo_grid.setColumnStretch(0, 0) + geo_grid.setColumnStretch(1, 1) + geo_frame.setLayout(geo_grid) self.geo_title = FCLabel("%s" % _("GEOMETRY")) - grid0.addWidget(self.geo_title, 16, 0, 1, 2) + self.tools_box.addWidget(self.geo_title) # Target Geometry Object + self.target_geo_label = FCLabel('%s:' % _("Target")) + self.target_geo_label.setToolTip( + _("Geometry object from which to subtract\n" + "the subtractor Geometry object.") + ) + self.target_geo_combo = FCComboBox() self.target_geo_combo.setModel(self.app.collection) self.target_geo_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex())) @@ -895,36 +927,33 @@ class SubUI: self.target_geo_combo.is_last = True self.target_geo_combo.obj_type = "Geometry" - self.target_geo_label = FCLabel('%s:' % _("Target")) - self.target_geo_label.setToolTip( - _("Geometry object from which to subtract\n" - "the subtractor Geometry object.") - ) - - grid0.addWidget(self.target_geo_label, 18, 0) - grid0.addWidget(self.target_geo_combo, 18, 1) + geo_grid.addWidget(self.target_geo_label, 0, 0) + geo_grid.addWidget(self.target_geo_combo, 0, 1) # Substractor Geometry Object - self.sub_geo_combo = FCComboBox() - self.sub_geo_combo.setModel(self.app.collection) - self.sub_geo_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex())) - self.sub_geo_combo.is_last = True - self.sub_geo_combo.obj_type = "Geometry" - self.sub_geo_label = FCLabel('%s:' % _("Subtractor")) self.sub_geo_label.setToolTip( _("Geometry object that will be subtracted\n" "from the target Geometry object.") ) - grid0.addWidget(self.sub_geo_label, 20, 0) - grid0.addWidget(self.sub_geo_combo, 20, 1) + self.sub_geo_combo = FCComboBox() + self.sub_geo_combo.setModel(self.app.collection) + self.sub_geo_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex())) + self.sub_geo_combo.is_last = True + self.sub_geo_combo.obj_type = "Geometry" + + geo_grid.addWidget(self.sub_geo_label, 2, 0) + geo_grid.addWidget(self.sub_geo_combo, 2, 1) self.close_paths_cb = FCCheckBox(_("Close paths")) self.close_paths_cb.setToolTip(_("Checking this will close the paths cut by the subtractor object.")) - grid0.addWidget(self.close_paths_cb, 22, 0, 1, 2) + geo_grid.addWidget(self.close_paths_cb, 4, 0, 1, 2) + # ############################################################################################################# + # Geometry Subtraction Button + # ############################################################################################################# self.intersect_geo_btn = FCButton(_('Subtract Geometry')) self.intersect_geo_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/subtract_btn32.png')) self.intersect_geo_btn.setToolTip( @@ -938,9 +967,7 @@ class SubUI: } """) - grid0.addWidget(self.intersect_geo_btn, 24, 0, 1, 2) - - grid0.addWidget(FCLabel(''), 26, 0, 1, 2) + self.tools_box.addWidget(self.intersect_geo_btn) self.tools_box.addStretch(1)