diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d3cc8be..018790ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ CHANGELOG for FlatCAM beta ================================================= +4.09.2021 + +- in Calculators Plugin added a new calculator to calculate the required chemical weights for tinning solutions +- in Calculators Plugin remade the GUI +- some minor GUI modifications for a series of App Plugins + 3.09.2021 - trying to get the right size of the HUD rectangle diff --git a/appGUI/GUIElements.py b/appGUI/GUIElements.py index 0aca957f..fa4d9c85 100644 --- a/appGUI/GUIElements.py +++ b/appGUI/GUIElements.py @@ -2224,6 +2224,12 @@ class FCPlainTextAreaExtended(QtWidgets.QPlainTextEdit): self.setTextCursor(cursor) +class FCFrame(QtWidgets.QFrame): + # used when I want to apply stylesheets but not to children's of the same type + def __init__(self, **kwargs): + super().__init__(**kwargs) + + class FCComboBox(QtWidgets.QComboBox): def __init__(self, parent=None, callback=None, policy=True): diff --git a/appPlugins/ToolAlignObjects.py b/appPlugins/ToolAlignObjects.py index 3ab0ef7c..75bdaa7d 100644 --- a/appPlugins/ToolAlignObjects.py +++ b/appPlugins/ToolAlignObjects.py @@ -411,8 +411,6 @@ class AlignUI: """) self.layout.addWidget(title_label) - self.layout.addWidget(FCLabel("")) - # Form Layout grid0 = FCGridLayout(v_spacing=5, h_spacing=3) grid0.setColumnStretch(0, 0) diff --git a/appPlugins/ToolCalculators.py b/appPlugins/ToolCalculators.py index 8eef83e5..830d6374 100644 --- a/appPlugins/ToolCalculators.py +++ b/appPlugins/ToolCalculators.py @@ -8,7 +8,7 @@ from PyQt6 import QtWidgets, QtGui from appTool import AppTool from appGUI.GUIElements import FCSpinner, FCDoubleSpinner, NumericalEvalEntry, FCLabel, RadioSet, FCButton, \ - VerticalScrollArea, FCGridLayout + VerticalScrollArea, FCGridLayout, FCFrame import math import gettext @@ -98,6 +98,8 @@ class ToolCalculator(AppTool): self.ui.inch_entry.editingFinished.connect(self.on_calculate_mm_units) self.ui.reset_button.clicked.connect(self.set_tool_ui) self.ui.area_sel_radio.activated_custom.connect(self.on_area_calculation_radio) + self.ui.calculate_tin_button.clicked.connect(lambda: self.on_tin_solution_calculation()) + self.ui.sol_radio.activated_custom.connect(self.on_tin_solution_type) def install(self, icon=None, separator=None, **kwargs): AppTool.install(self, icon, separator, shortcut='Alt+C', **kwargs) @@ -108,6 +110,7 @@ class ToolCalculator(AppTool): self.clear_ui(self.layout) self.ui = CalcUI(layout=self.layout, app=self.app) self.pluginName = self.ui.pluginName + self.connect_signals_at_init() # ## Initialize form @@ -141,6 +144,9 @@ class ToolCalculator(AppTool): self.on_calculate_eplate() + # Tinning Calculator + self.ui.sol_radio.set_value("sol1") + self.ui_disconnect() self.ui_connect() @@ -303,6 +309,52 @@ class ToolCalculator(AppTool): self.ui_connect() + def on_tin_solution_type(self, val): + if val == 'sol1': + sncl2_val = 0.5 + thiourea_val = 2.0 + sulfamic_acid_val = 3.0 + water_val = 100.0 + soap_val = 0.1 + else: + sncl2_val = 2.0 + thiourea_val = 7.5 + sulfamic_acid_val = 9.0 + water_val = 100.0 + soap_val = 0.1 + + desired_vol = 100 + + self.ui.sn_cl_entry.set_value(sncl2_val) + self.ui.th_entry.set_value(thiourea_val) + self.ui.sa_entry.set_value(sulfamic_acid_val) + self.ui.h2o_entry.set_value(water_val) + self.ui.soap_entry.set_value(soap_val) + self.ui.vol_entry.set_value(desired_vol) + + def on_tin_solution_calculation(self): + solution_type = self.ui.sol_radio.get_value() + desired_volume = self.ui.vol_entry.get_value() # milliliters + + if solution_type == 'sol1': + sncl2_val = 0.005 + thiourea_val = 0.02 + sulfamic_acid_val = 0.03 + water_val = 1 + soap_val = 0.001 + else: + sncl2_val = 0.02 + thiourea_val = 0.075 + sulfamic_acid_val = 0.09 + water_val = 1 + soap_val = 0.001 + + self.ui.sn_cl_entry.set_value(sncl2_val * desired_volume) + self.ui.th_entry.set_value(thiourea_val * desired_volume) + self.ui.sa_entry.set_value(sulfamic_acid_val * desired_volume) + self.ui.h2o_entry.set_value(water_val * desired_volume) + self.ui.soap_entry.set_value(soap_val * desired_volume) + def ui_connect(self): # V-Shape Calculator self.ui.cutDepth_entry.valueChanged.connect(self.on_calculate_tool_dia) @@ -412,9 +464,10 @@ class ToolCalculator(AppTool): class CalcUI: pluginName = _("Calculators") - v_shapeName = _("V-Shape Tool Calculator") - unitsName = _("Units Calculator") - eplateName = _("ElectroPlating Calculator") + v_shapeName = _("V-Shape Tool") + unitsName = _("Units Conversion") + eplateName = _("ElectroPlating") + tinningName = _("Tinning") def __init__(self, layout, app): self.app = app @@ -437,16 +490,19 @@ class CalcUI: # ## Units Calculator # # ##################### - self.unists_spacer_label = FCLabel(" ") - self.layout.addWidget(self.unists_spacer_label) - # ## Title of the Units Calculator - units_label = FCLabel("%s" % self.unitsName) + units_label = FCLabel('%s' % self.unitsName) self.layout.addWidget(units_label) + units_frame = FCFrame() + units_frame.setFrameStyle(QtWidgets.QFrame.Shape.StyledPanel | QtWidgets.QFrame.Shadow.Plain) + # units_frame.setContentsMargins(0, 0, 0, 0) + units_frame.setStyleSheet(".FCFrame{border: 1px solid gray; border-radius: 5px;}") + self.layout.addWidget(units_frame) + # Grid Layout grid_units_layout = FCGridLayout(v_spacing=5, h_spacing=3) - self.layout.addLayout(grid_units_layout) + units_frame.setLayout(grid_units_layout) inch_label = FCLabel(_("INCH")) mm_label = FCLabel(_("MM")) @@ -470,17 +526,23 @@ class CalcUI: # ############################################################################################################# # ################################ V-shape Tool Calculator #################################################### # ############################################################################################################# + # ## Title of the V-shape Tools Calculator + v_shape_title_label = FCLabel('%s' % self.v_shapeName) + self.layout.addWidget(v_shape_title_label) + + v_frame = FCFrame() + v_frame.setFrameStyle(QtWidgets.QFrame.Shape.StyledPanel | QtWidgets.QFrame.Shadow.Plain) + # units_frame.setContentsMargins(0, 0, 0, 0) + v_frame.setStyleSheet(".FCFrame{border: 1px solid gray; border-radius: 5px;}") + self.layout.addWidget(v_frame) + grid_vshape = FCGridLayout(v_spacing=5, h_spacing=3) grid_vshape.setColumnStretch(0, 0) grid_vshape.setColumnStretch(1, 1) - self.layout.addLayout(grid_vshape) + v_frame.setLayout(grid_vshape) - self.v_shape_spacer_label = FCLabel(" ") - grid_vshape.addWidget(self.v_shape_spacer_label, 0, 0, 1, 2) - - # ## Title of the V-shape Tools Calculator - v_shape_title_label = FCLabel("%s" % self.v_shapeName) - grid_vshape.addWidget(v_shape_title_label, 2, 0, 1, 2) + # self.v_shape_spacer_label = FCLabel(" ") + # grid_vshape.addWidget(self.v_shape_spacer_label, 0, 0, 1, 2) # Tip Diameter self.tipDia_label = FCLabel('%s:' % _("Tip Diameter")) @@ -546,21 +608,27 @@ class CalcUI: # ############################################################################################################# # ############################## ElectroPlating Tool Calculator ############################################### # ############################################################################################################# + # ## Title of the ElectroPlating Tools Calculator + tin_title_label = FCLabel('%s' % self.eplateName) + tin_title_label.setToolTip( + _("This calculator is useful for those who plate the via/pad/drill holes,\n" + "using a method like graphite ink or calcium hypophosphite ink or palladium chloride.") + ) + self.layout.addWidget(tin_title_label) + + ep_frame = FCFrame() + ep_frame.setFrameStyle(QtWidgets.QFrame.Shape.StyledPanel | QtWidgets.QFrame.Shadow.Plain) + # units_frame.setContentsMargins(0, 0, 0, 0) + ep_frame.setStyleSheet(".FCFrame{border: 1px solid gray; border-radius: 5px;}") + self.layout.addWidget(ep_frame) + grid_electro = FCGridLayout(v_spacing=5, h_spacing=3) grid_electro.setColumnStretch(0, 0) grid_electro.setColumnStretch(1, 1) - self.layout.addLayout(grid_electro) + ep_frame.setLayout(grid_electro) - grid_electro.addWidget(FCLabel(""), 0, 0, 1, 2) - - # ## Title of the ElectroPlating Tools Calculator - plate_title_label = FCLabel("%s" % self.eplateName) - plate_title_label.setToolTip( - _("This calculator is useful for those who plate the via/pad/drill holes,\n" - "using a method like graphite ink or calcium hypophosphite ink or palladium chloride.") - ) - grid_electro.addWidget(plate_title_label, 2, 0, 1, 2) + # grid_electro.addWidget(FCLabel(""), 0, 0, 1, 2) # Area Calculation self.area_sel_label = FCLabel('%s:' % _("Area Calculation")) @@ -629,10 +697,10 @@ class CalcUI: grid_electro.addWidget(self.area_label, 12, 0) grid_electro.addLayout(a_hlay, 12, 1) - separator_line = QtWidgets.QFrame() - separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine) - separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) - grid_electro.addWidget(separator_line, 14, 0, 1, 2) + self.separator_line = QtWidgets.QFrame() + self.separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine) + self.separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + grid_electro.addWidget(self.separator_line, 14, 0, 1, 2) # DENSITY self.cdensity_label = FCLabel('%s:' % _("Current Density")) @@ -725,6 +793,202 @@ class CalcUI: ) grid_electro.addWidget(self.calculate_plate_button, 24, 0, 1, 2) + # ############################################################################################################# + # ############################## Tinning Calculator ############################################### + # ############################################################################################################# + # ## Title of the Tinning Calculator + tin_title_label = FCLabel('%s' % self.tinningName) + tin_title_label.setToolTip( + _("Calculator for chemical quantities\n" + "required for tinning PCB's.") + ) + self.layout.addWidget(tin_title_label) + + tin_frame = FCFrame() + tin_frame.setFrameStyle(QtWidgets.QFrame.Shape.StyledPanel | QtWidgets.QFrame.Shadow.Plain) + # units_frame.setContentsMargins(0, 0, 0, 0) + tin_frame.setStyleSheet(".FCFrame{border: 1px solid gray; border-radius: 5px;}") + self.layout.addWidget(tin_frame) + + grid_tin = FCGridLayout(v_spacing=5, h_spacing=3) + grid_tin.setColumnStretch(0, 0) + grid_tin.setColumnStretch(1, 1) + + tin_frame.setLayout(grid_tin) + + # Solution + self.solution_lbl = FCLabel('%s:' % _("Solution")) + self.solution_lbl.setToolTip( + _("Choose one solution for tinning.") + ) + self.sol_radio = RadioSet([ + {'label': '1', 'value': 'sol1'}, + {"label": '2', "value": "sol2"} + ], stretch=False) + + grid_tin.addWidget(self.solution_lbl, 4, 0) + grid_tin.addWidget(self.sol_radio, 4, 1) + + # Stannous Chloride + self.sn_cl_lbl = FCLabel('%s :' % "SnCl2") + self.sn_cl_lbl.setToolTip(_('Stannous Chloride.')) + self.sn_cl_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.sn_cl_entry.setSizePolicy(QtWidgets.QSizePolicy.Policy.MinimumExpanding, + QtWidgets.QSizePolicy.Policy.Preferred) + self.sn_cl_entry.lineEdit().setReadOnly(True) + self.sn_cl_entry.set_precision(self.decimals) + self.sn_cl_entry.set_range(0.0, 10000.0000) + + self.sncl_unit = FCLabel('%s' % _("g")) + self.sncl_unit.setMinimumWidth(25) + + sncl_hlay = QtWidgets.QHBoxLayout() + sncl_hlay.addWidget(self.sn_cl_entry) + sncl_hlay.addWidget(self.sncl_unit) + + grid_tin.addWidget(self.sn_cl_lbl, 8, 0) + grid_tin.addLayout(sncl_hlay, 8, 1) + + # Thiourea + self.th_label = FCLabel('%s:' % _("Thiourea")) + self.th_label.setToolTip(_('Thiourea.')) + self.th_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.th_entry.setSizePolicy(QtWidgets.QSizePolicy.Policy.MinimumExpanding, + QtWidgets.QSizePolicy.Policy.Preferred) + self.th_entry.lineEdit().setReadOnly(True) + self.th_entry.set_precision(self.decimals) + self.th_entry.set_range(0.0, 10000.0000) + + self.th_unit = FCLabel('%s' % _("g")) + self.th_unit.setMinimumWidth(25) + + th_hlay = QtWidgets.QHBoxLayout() + th_hlay.addWidget(self.th_entry) + th_hlay.addWidget(self.th_unit) + + grid_tin.addWidget(self.th_label, 12, 0) + grid_tin.addLayout(th_hlay, 12, 1) + + # Sulfamic Acid + self.sa_label = FCLabel('%s :' % "H3NSO3") + self.sa_label.setToolTip(_('Sulfamic Acid.')) + self.sa_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.sa_entry.setSizePolicy(QtWidgets.QSizePolicy.Policy.MinimumExpanding, + QtWidgets.QSizePolicy.Policy.Preferred) + self.sa_entry.lineEdit().setReadOnly(True) + self.sa_entry.set_precision(self.decimals) + self.sa_entry.set_range(0.0, 10000.0000) + + self.sa_unit = FCLabel('%s' % _("g")) + self.sa_unit.setMinimumWidth(25) + + sa_hlay = QtWidgets.QHBoxLayout() + sa_hlay.addWidget(self.sa_entry) + sa_hlay.addWidget(self.sa_unit) + + grid_tin.addWidget(self.sa_label, 14, 0) + grid_tin.addLayout(sa_hlay, 14, 1) + + # Water + self.h2o_label = FCLabel("H2O :") + self.h2o_label.setToolTip(_('Distilled Water.')) + self.h2o_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.h2o_entry.setSizePolicy(QtWidgets.QSizePolicy.Policy.MinimumExpanding, + QtWidgets.QSizePolicy.Policy.Preferred) + self.h2o_entry.lineEdit().setReadOnly(True) + self.h2o_entry.set_precision(self.decimals) + self.h2o_entry.set_range(0.0, 10000.0000) + + self.h20_unit = FCLabel('%s' % _("mL")) + self.h20_unit.setMinimumWidth(25) + + h2o_hlay = QtWidgets.QHBoxLayout() + h2o_hlay.addWidget(self.h2o_entry) + h2o_hlay.addWidget(self.h20_unit) + + grid_tin.addWidget(self.h2o_label, 16, 0) + grid_tin.addLayout(h2o_hlay, 16, 1) + + # Soap + self.soap_label = FCLabel('%s:' % _("Soap")) + self.soap_label.setToolTip(_('Liquid soap.')) + self.soap_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.soap_entry.setSizePolicy(QtWidgets.QSizePolicy.Policy.MinimumExpanding, + QtWidgets.QSizePolicy.Policy.Preferred) + self.soap_entry.lineEdit().setReadOnly(True) + self.soap_entry.set_precision(self.decimals) + self.soap_entry.set_range(0.0, 10000.0000) + + self.soap_unit = FCLabel('%s' % _("mL")) + self.soap_unit.setMinimumWidth(25) + + soap_hlay = QtWidgets.QHBoxLayout() + soap_hlay.addWidget(self.soap_entry) + soap_hlay.addWidget(self.soap_unit) + + grid_tin.addWidget(self.soap_label, 18, 0) + grid_tin.addLayout(soap_hlay, 18, 1) + + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + grid_tin.addWidget(separator_line, 20, 0, 1, 2) + + self.tin_opt_label = FCLabel('%s:' % _("Optional")) + grid_tin.addWidget(self.tin_opt_label, 22, 0) + + # Sodium hypophosphite + self.hypo_label = FCLabel("NaPO2H2 :") + self.hypo_label.setToolTip(_('Sodium hypophosphite. Optional, for solution stability.')) + self.hypo_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.hypo_entry.setSizePolicy(QtWidgets.QSizePolicy.Policy.MinimumExpanding, + QtWidgets.QSizePolicy.Policy.Preferred) + self.hypo_entry.lineEdit().setReadOnly(True) + self.hypo_entry.set_precision(self.decimals) + self.hypo_entry.set_range(0.0, 10000.0000) + + self.hypo_unit = FCLabel('%s' % _("g")) + self.hypo_unit.setMinimumWidth(25) + + hypo_hlay = QtWidgets.QHBoxLayout() + hypo_hlay.addWidget(self.hypo_entry) + hypo_hlay.addWidget(self.hypo_unit) + + grid_tin.addWidget(self.hypo_label, 24, 0) + grid_tin.addLayout(hypo_hlay, 24, 1) + + separator_line = QtWidgets.QFrame() + separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine) + separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken) + grid_tin.addWidget(separator_line, 26, 0, 1, 2) + + # Volume + self.vol_lbl = FCLabel('%s:' % _("Volume")) + self.vol_lbl.setToolTip(_('Desired volume of tinning solution.')) + self.vol_entry = FCDoubleSpinner(callback=self.confirmation_message) + self.vol_entry.setSizePolicy(QtWidgets.QSizePolicy.Policy.MinimumExpanding, + QtWidgets.QSizePolicy.Policy.Preferred) + self.vol_entry.set_precision(self.decimals) + self.vol_entry.set_range(0.0, 10000.0000) + + self.vol_unit = FCLabel('%s' % _("mL")) + self.vol_unit.setMinimumWidth(25) + + vol_hlay = QtWidgets.QHBoxLayout() + vol_hlay.addWidget(self.vol_entry) + vol_hlay.addWidget(self.vol_unit) + + grid_tin.addWidget(self.vol_lbl, 28, 0) + grid_tin.addLayout(vol_hlay, 28, 1) + + # ## Buttons + self.calculate_tin_button = FCButton(_("Calculate")) + self.calculate_tin_button.setIcon(QtGui.QIcon(self.app.resource_location + '/calculator16.png')) + self.calculate_tin_button.setToolTip( + _("Calculate the chemical quantities for the desired volume of tinning solution.") + ) + grid_tin.addWidget(self.calculate_tin_button, 30, 0, 1, 2) + self.layout.addStretch(1) # ## Reset Tool diff --git a/appPlugins/ToolCalibration.py b/appPlugins/ToolCalibration.py index 4c766245..94a98c5c 100644 --- a/appPlugins/ToolCalibration.py +++ b/appPlugins/ToolCalibration.py @@ -780,8 +780,6 @@ class CalibrationUI: """) self.layout.addWidget(title_label) - self.layout.addWidget(FCLabel("")) - # ## Grid Layout grid_lay = FCGridLayout(v_spacing=5, h_spacing=3) self.layout.addLayout(grid_lay) diff --git a/appPlugins/ToolCopperThieving.py b/appPlugins/ToolCopperThieving.py index ae9fd4a5..d3e26467 100644 --- a/appPlugins/ToolCopperThieving.py +++ b/appPlugins/ToolCopperThieving.py @@ -1287,7 +1287,6 @@ class ThievingUI: } """) self.layout.addWidget(title_label) - self.layout.addWidget(FCLabel("")) # ## Grid Layout i_grid_lay = FCGridLayout(v_spacing=5, h_spacing=3) diff --git a/appPlugins/ToolCorners.py b/appPlugins/ToolCorners.py index 85f1b7d4..be4cf0f5 100644 --- a/appPlugins/ToolCorners.py +++ b/appPlugins/ToolCorners.py @@ -697,8 +697,6 @@ class CornersUI: self.level.setCheckable(True) self.title_box.addWidget(self.level) - self.layout.addWidget(FCLabel("")) - # Gerber object # self.object_label = FCLabel('%s:' % _("GERBER")) self.object_label.setToolTip( diff --git a/appPlugins/ToolExtract.py b/appPlugins/ToolExtract.py index e2a7cbba..4d77d21e 100644 --- a/appPlugins/ToolExtract.py +++ b/appPlugins/ToolExtract.py @@ -913,8 +913,6 @@ class ExtractUI: """) self.layout.addWidget(title_label) - self.layout.addWidget(FCLabel("")) - # ## Grid Layout grid_lay = FCGridLayout(v_spacing=5, h_spacing=3) self.layout.addLayout(grid_lay) diff --git a/appPlugins/ToolFiducials.py b/appPlugins/ToolFiducials.py index 9d6d81e8..d1ff5702 100644 --- a/appPlugins/ToolFiducials.py +++ b/appPlugins/ToolFiducials.py @@ -802,8 +802,6 @@ class FidoUI: self.level.setCheckable(True) self.title_box.addWidget(self.level) - self.layout.addWidget(FCLabel("")) - self.points_label = FCLabel('%s:' % _('Fiducials Coordinates')) self.points_label.setToolTip( _("A table with the fiducial points coordinates,\n" diff --git a/appPlugins/ToolMilling.py b/appPlugins/ToolMilling.py index 877ad7e4..ca751adb 100644 --- a/appPlugins/ToolMilling.py +++ b/appPlugins/ToolMilling.py @@ -839,17 +839,27 @@ class ToolMilling(AppTool, Excellon): # Get source object. try: self.target_obj = self.app.collection.get_by_name(self.obj_name) - except Exception: + except Exception as err: self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), str(self.obj_name))) + self.app.log("ToolMilling.build_ui() getting the object --> %s" % str(err)) + self.ui_disconnect() + self.ui_connect() return - if self.ui.target_radio.get_value() == 'geo': - self.build_ui_mill() - else: - self.build_ui_exc() + # build the UI + try: + if self.ui.target_radio.get_value() == 'geo': + self.build_ui_mill() + else: + self.build_ui_exc() + except Exception as err: + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Could not build the Plugin UI")) + self.app.log("ToolMilling.build_ui() building the UI --> %s" % str(err)) + self.ui_connect() + return - self.ui_disconnect() # Build Exclusion Areas section + self.ui_disconnect() e_len = len(self.app.exc_areas.exclusion_areas_storage) self.ui.exclusion_table.setRowCount(e_len) diff --git a/appPlugins/ToolPunchGerber.py b/appPlugins/ToolPunchGerber.py index cf63e016..72990581 100644 --- a/appPlugins/ToolPunchGerber.py +++ b/appPlugins/ToolPunchGerber.py @@ -1988,7 +1988,6 @@ class PunchUI: self.title_box.addWidget(self.level) # Punch Drill holes - self.layout.addWidget(FCLabel("")) # ## Grid Layout grid_lay = FCGridLayout(v_spacing=5, h_spacing=3) diff --git a/appPlugins/ToolQRCode.py b/appPlugins/ToolQRCode.py index 47928ede..23c0ce82 100644 --- a/appPlugins/ToolQRCode.py +++ b/appPlugins/ToolQRCode.py @@ -758,8 +758,6 @@ class QRcodeUI: self.level.setCheckable(True) self.title_box.addWidget(self.level) - self.layout.addWidget(FCLabel('')) - # ## Grid Layout i_grid_lay = FCGridLayout(v_spacing=5, h_spacing=3) self.layout.addLayout(i_grid_lay) diff --git a/appPlugins/ToolSub.py b/appPlugins/ToolSub.py index fce0d831..4eb1cc6a 100644 --- a/appPlugins/ToolSub.py +++ b/appPlugins/ToolSub.py @@ -803,8 +803,6 @@ class SubUI: self.level.setCheckable(True) self.title_box.addWidget(self.level) - self.layout.addWidget(FCLabel("")) - self.tools_frame = QtWidgets.QFrame() self.tools_frame.setContentsMargins(0, 0, 0, 0) self.layout.addWidget(self.tools_frame) diff --git a/appPlugins/ToolTransform.py b/appPlugins/ToolTransform.py index 12f0977f..eb78c514 100644 --- a/appPlugins/ToolTransform.py +++ b/appPlugins/ToolTransform.py @@ -595,7 +595,6 @@ class TransformUI: _("A plugin that allow geometry transformation.") ) self.layout.addWidget(title_label) - self.layout.addWidget(FCLabel("")) # ## Layout grid0 = FCGridLayout(v_spacing=5, h_spacing=3) @@ -604,8 +603,6 @@ class TransformUI: grid0.setColumnStretch(1, 1) grid0.setColumnStretch(2, 0) - grid0.addWidget(FCLabel('')) - # Reference ref_label = FCLabel('%s:' % _("Reference")) ref_label.setToolTip(