From b4ef812384a2be0138599f18a79960f2fac20b66 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Mon, 6 Sep 2021 01:47:04 +0300 Subject: [PATCH] - in Etch Compensation Plugin updated the GUI - small UI updates in other Plugins --- CHANGELOG.md | 2 + appPlugins/ToolCopperThieving.py | 2 +- appPlugins/ToolEtchCompensation.py | 113 ++++++++++++++++------------- appPlugins/ToolPanelize.py | 2 +- 4 files changed, 66 insertions(+), 53 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c6e6f44..3442aa25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,8 @@ CHANGELOG for FlatCAM beta - remade the Excellon Object Properties UI - remade the Geometry Object Properties UI - remade the CNC Job Object Properties UI +- in Etch Compensation Plugin updated the GUI +- small UI updates in other Plugins 5.09.2021 diff --git a/appPlugins/ToolCopperThieving.py b/appPlugins/ToolCopperThieving.py index 19278b5a..0775ad3b 100644 --- a/appPlugins/ToolCopperThieving.py +++ b/appPlugins/ToolCopperThieving.py @@ -1633,7 +1633,7 @@ class ThievingUI: # ## Robber Bar Parameters # ############################################################################################################# self.robber_bar_label = FCLabel('%s' % - _('Robber Bar Parameters').upper()) + _('Robber Bar Parameters')) self.robber_bar_label.setToolTip( _("Parameters used for the robber bar.\n" "Robber bar = copper border to help in pattern hole plating.") diff --git a/appPlugins/ToolEtchCompensation.py b/appPlugins/ToolEtchCompensation.py index 2dda8278..3d38f1e3 100644 --- a/appPlugins/ToolEtchCompensation.py +++ b/appPlugins/ToolEtchCompensation.py @@ -9,7 +9,7 @@ from PyQt6 import QtWidgets, QtCore, QtGui from appTool import AppTool from appGUI.GUIElements import FCButton, FCDoubleSpinner, RadioSet, FCComboBox, NumericalEvalEntry, FCEntry, \ - VerticalScrollArea, FCGridLayout, FCLabel + VerticalScrollArea, FCGridLayout, FCLabel, FCFrame from shapely.ops import unary_union @@ -327,13 +327,14 @@ class EtchUI: """) self.tools_box.addWidget(title_label) - # Grid Layout - grid0 = FCGridLayout(v_spacing=5, h_spacing=3) - grid0.setColumnStretch(0, 0) - grid0.setColumnStretch(1, 1) - self.tools_box.addLayout(grid0) - - grid0.addWidget(FCLabel(''), 0, 0, 1, 2) + # ############################################################################################################# + # Source Object Frame + # ############################################################################################################# + self.gerber_label = FCLabel('%s' % _("Source Object")) + self.gerber_label.setToolTip( + _("Gerber object that will be compensated.") + ) + self.tools_box.addWidget(self.gerber_label) # Target Gerber Object self.gerber_combo = FCComboBox() @@ -342,23 +343,23 @@ class EtchUI: self.gerber_combo.is_last = True self.gerber_combo.obj_type = "Gerber" - self.gerber_label = FCLabel('%s:' % _("GERBER")) - self.gerber_label.setToolTip( - _("Gerber object that will be inverted.") - ) + self.tools_box.addWidget(self.gerber_combo) - grid0.addWidget(self.gerber_label, 1, 0, 1, 2) - grid0.addWidget(self.gerber_combo, 2, 0, 1, 2) - - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - grid0.addWidget(separator_line, 3, 0, 1, 2) - - self.util_label = FCLabel("%s:" % _("Utilities")) + # ############################################################################################################# + # Utilities + # ############################################################################################################# + self.util_label = FCLabel('%s' % _("Utilities")) self.util_label.setToolTip('%s.' % _("Conversion utilities")) + self.tools_box.addWidget(self.util_label) - grid0.addWidget(self.util_label, 4, 0, 1, 2) + util_frame = FCFrame() + self.tools_box.addWidget(util_frame) + + # Grid Layout + grid0 = FCGridLayout(v_spacing=5, h_spacing=3) + grid0.setColumnStretch(0, 0) + grid0.setColumnStretch(1, 1) + util_frame.setLayout(grid0) # Oz to um conversion self.oz_um_label = FCLabel('%s:' % _('Oz to Microns')) @@ -367,7 +368,7 @@ class EtchUI: "Can use formulas with operators: /, *, +, -, %, .\n" "The real numbers use the dot decimals separator.") ) - grid0.addWidget(self.oz_um_label, 5, 0, 1, 2) + grid0.addWidget(self.oz_um_label, 0, 0, 1, 2) hlay_1 = QtWidgets.QHBoxLayout() @@ -378,8 +379,9 @@ class EtchUI: self.oz_to_um_entry.setReadOnly(True) hlay_1.addWidget(self.oz_entry) + hlay_1.addWidget(FCLabel(" ")) hlay_1.addWidget(self.oz_to_um_entry) - grid0.addLayout(hlay_1, 6, 0, 1, 2) + grid0.addLayout(hlay_1, 2, 0, 1, 2) # Mils to um conversion self.mils_um_label = FCLabel('%s:' % _('Mils to Microns')) @@ -388,7 +390,7 @@ class EtchUI: "Can use formulas with operators: /, *, +, -, %, .\n" "The real numbers use the dot decimals separator.") ) - grid0.addWidget(self.mils_um_label, 7, 0, 1, 2) + grid0.addWidget(self.mils_um_label, 4, 0, 1, 2) hlay_2 = QtWidgets.QHBoxLayout() @@ -399,18 +401,24 @@ class EtchUI: self.mils_to_um_entry.setReadOnly(True) hlay_2.addWidget(self.mils_entry) + hlay_2.addWidget(FCLabel(" ")) hlay_2.addWidget(self.mils_to_um_entry) - grid0.addLayout(hlay_2, 8, 0, 1, 2) + grid0.addLayout(hlay_2, 6, 0, 1, 2) - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - grid0.addWidget(separator_line, 9, 0, 1, 2) + # ############################################################################################################# + # COMMON PARAMETERS Frame + # ############################################################################################################# + self.param_label = FCLabel('%s' % _("Parameters")) + self.param_label.setToolTip(_("Parameters used for this tool.")) + self.tools_box.addWidget(self.param_label) - self.param_label = FCLabel("%s:" % _("Parameters")) - self.param_label.setToolTip('%s.' % _("Parameters for this tool")) + self.gp_frame = FCFrame() + self.tools_box.addWidget(self.gp_frame) - grid0.addWidget(self.param_label, 10, 0, 1, 2) + grid1 = FCGridLayout(v_spacing=5, h_spacing=3) + grid1.setColumnStretch(0, 0) + grid1.setColumnStretch(1, 1) + self.gp_frame.setLayout(grid1) # Thickness self.thick_label = FCLabel('%s:' % _('Copper Thickness')) @@ -422,8 +430,8 @@ class EtchUI: self.thick_entry.set_precision(self.decimals) self.thick_entry.set_range(0.0000, 10000.0000) - grid0.addWidget(self.thick_label, 12, 0) - grid0.addWidget(self.thick_entry, 12, 1) + grid1.addWidget(self.thick_label, 0, 0) + grid1.addWidget(self.thick_entry, 0, 1) self.ratio_label = FCLabel('%s:' % _("Ratio")) self.ratio_label.setToolTip( @@ -438,8 +446,13 @@ class EtchUI: {'label': _('Manual offset'), 'value': 'manual'} ], orientation='vertical', stretch=False) - grid0.addWidget(self.ratio_label, 14, 0, 1, 2) - grid0.addWidget(self.ratio_radio, 16, 0, 1, 2) + grid1.addWidget(self.ratio_label, 2, 0, 1, 2) + grid1.addWidget(self.ratio_radio, 4, 0, 1, 2) + + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + grid1.addWidget(separator_line, 6, 0, 1, 2) # Etchants self.etchants_label = FCLabel('%s:' % _('Etchants')) @@ -449,8 +462,8 @@ class EtchUI: self.etchants_combo = FCComboBox(callback=self.confirmation_message) self.etchants_combo.addItems(["CuCl2", "Fe3Cl", _("Alkaline baths")]) - grid0.addWidget(self.etchants_label, 18, 0) - grid0.addWidget(self.etchants_combo, 18, 1) + grid1.addWidget(self.etchants_label, 8, 0) + grid1.addWidget(self.etchants_combo, 8, 1) # Etch Factor self.factor_label = FCLabel('%s:' % _('Etch Factor')) @@ -461,8 +474,8 @@ class EtchUI: self.factor_entry = NumericalEvalEntry(border_color='#0069A9') self.factor_entry.setPlaceholderText(_("Real number or formula")) - grid0.addWidget(self.factor_label, 19, 0) - grid0.addWidget(self.factor_entry, 19, 1) + grid1.addWidget(self.factor_label, 10, 0) + grid1.addWidget(self.factor_entry, 10, 1) # Manual Offset self.offset_label = FCLabel('%s:' % _('Offset')) @@ -474,8 +487,8 @@ class EtchUI: self.offset_entry.set_precision(self.decimals) self.offset_entry.set_range(-10000.0000, 10000.0000) - grid0.addWidget(self.offset_label, 20, 0) - grid0.addWidget(self.offset_entry, 20, 1) + grid1.addWidget(self.offset_label, 12, 0) + grid1.addWidget(self.offset_entry, 12, 1) # Hide the Etchants and Etch factor self.etchants_label.hide() @@ -485,11 +498,9 @@ class EtchUI: self.offset_label.hide() self.offset_entry.hide() - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - grid0.addWidget(separator_line, 22, 0, 1, 2) - + # ############################################################################################################# + # Generate Etch Compensation Button + # ############################################################################################################# self.compensate_btn = FCButton(_('Compensate')) self.compensate_btn.setIcon(QtGui.QIcon(self.app.resource_location + '/etch_32.png')) self.compensate_btn.setToolTip( @@ -501,9 +512,9 @@ class EtchUI: font-weight: bold; } """) - grid0.addWidget(self.compensate_btn, 24, 0, 1, 2) + self.tools_box.addWidget(self.compensate_btn) - self.tools_box.addStretch() + self.tools_box.addStretch(1) # ## Reset Tool self.reset_button = QtWidgets.QPushButton(_("Reset Tool")) @@ -517,7 +528,7 @@ class EtchUI: font-weight: bold; } """) - self.tools_box.addWidget(self.reset_button) + self.layout.addWidget(self.reset_button) # #################################### FINSIHED GUI ########################### # ############################################################################# diff --git a/appPlugins/ToolPanelize.py b/appPlugins/ToolPanelize.py index f8383b7b..3b616650 100644 --- a/appPlugins/ToolPanelize.py +++ b/appPlugins/ToolPanelize.py @@ -1409,7 +1409,7 @@ class PanelizeUI: font-weight: bold; } """) - self.tools_box.addWidget(self.reset_button) + self.layout.addWidget(self.reset_button) # #################################### FINSIHED GUI ########################### # #############################################################################