From 7292a30b9ef91b403d6374a58bc95bbc6e030ff0 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Mon, 17 Feb 2020 14:27:45 +0200 Subject: [PATCH] - fixed some issues realted to the usage of the new confirmation message in FlatCAM Tools - made sure that the FlatCAM Tools UI initialization is done only in set_tool_ui() method and not in the constructor --- FlatCAMCommon.py | 2 +- README.md | 2 ++ flatcamGUI/GUIElements.py | 7 +++++++ flatcamGUI/ObjectUI.py | 5 +++-- flatcamGUI/PreferencesUI.py | 29 +++++++++++++++-------------- flatcamTools/ToolCalculators.py | 2 +- flatcamTools/ToolCalibration.py | 5 +++-- flatcamTools/ToolDistanceMin.py | 9 --------- flatcamTools/ToolOptimal.py | 6 +++--- flatcamTools/ToolQRCode.py | 3 ++- flatcamTools/ToolSolderPaste.py | 4 ++-- flatcamTools/ToolTransform.py | 31 ++++++++++++++++--------------- 12 files changed, 55 insertions(+), 50 deletions(-) diff --git a/FlatCAMCommon.py b/FlatCAMCommon.py index d4a7f0ff..2bc95131 100644 --- a/FlatCAMCommon.py +++ b/FlatCAMCommon.py @@ -927,7 +927,7 @@ class ToolsDB(QtWidgets.QWidget): spindlespeed_item = FCSpinner() spindlespeed_item.set_range(0, 1000000) spindlespeed_item.set_value(int(data['spindlespeed'])) - spindlespeed_item.setSingleStep(100) + spindlespeed_item.set_step(100) widget.setCellWidget(row, 16, spindlespeed_item) dwell_item = FCCheckBox() diff --git a/README.md b/README.md index a1c37433..be19c4c3 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,8 @@ CAD program, and create G-Code for Isolation routing. - updated all FlatCAM tools to use the new confirmation message that show if the entered value is within range or outside - updated all FlatCAM tools to use the new confirmation message for QSpinBoxes, too - in Excellon UI protected the values that are common parameters from change on tool selection change +- fixed some issues realted to the usage of the new confirmation message in FlatCAM Tools +- made sure that the FlatCAM Tools UI initialization is done only in set_tool_ui() method and not in the constructor 16.02.2020 diff --git a/flatcamGUI/GUIElements.py b/flatcamGUI/GUIElements.py index de4fd34f..d53575d2 100644 --- a/flatcamGUI/GUIElements.py +++ b/flatcamGUI/GUIElements.py @@ -670,7 +670,14 @@ class FCSpinner(QtWidgets.QSpinBox): return QtGui.QValidator.Acceptable, p_str, p_int def set_range(self, min_val, max_val): + self.blockSignals(True) self.setRange(min_val, max_val) + self.blockSignals(False) + + def set_step(self, p_int): + self.blockSignals(True) + self.setSingleStep(p_int) + self.blockSignals(False) # def sizeHint(self): # default_hint_size = super(FCSpinner, self).sizeHint() diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py index ab30498d..c4204765 100644 --- a/flatcamGUI/ObjectUI.py +++ b/flatcamGUI/ObjectUI.py @@ -386,6 +386,7 @@ class GerberObjectUI(ObjectUI): passlabel.setMinimumWidth(90) self.iso_width_entry = FCSpinner(callback=self.confirmation_message_int) self.iso_width_entry.set_range(1, 999) + grid1.addWidget(passlabel, 5, 0) grid1.addWidget(self.iso_width_entry, 5, 1, 1, 2) @@ -1054,7 +1055,7 @@ class ExcellonObjectUI(ObjectUI): self.spindlespeed_entry = FCSpinner(callback=self.confirmation_message_int) self.spindlespeed_entry.set_range(0, 1000000) - self.spindlespeed_entry.setSingleStep(100) + self.spindlespeed_entry.set_step(100) self.spindlespeed_entry.setObjectName("e_spindlespeed") self.grid3.addWidget(self.spindle_label, 19, 0) @@ -1823,7 +1824,7 @@ class GeometryObjectUI(ObjectUI): ) self.cncspindlespeed_entry = FCSpinner(callback=self.confirmation_message_int) self.cncspindlespeed_entry.set_range(0, 1000000) - self.cncspindlespeed_entry.setSingleStep(100) + self.cncspindlespeed_entry.set_step(100) self.grid3.addWidget(self.spindle_label, 14, 0) self.grid3.addWidget(self.cncspindlespeed_entry, 14, 1) diff --git a/flatcamGUI/PreferencesUI.py b/flatcamGUI/PreferencesUI.py index e3fd5fff..0c5537c8 100644 --- a/flatcamGUI/PreferencesUI.py +++ b/flatcamGUI/PreferencesUI.py @@ -1133,7 +1133,7 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): ) self.notebook_font_size_spinner = FCSpinner() - self.notebook_font_size_spinner.setRange(8, 40) + self.notebook_font_size_spinner.set_range(8, 40) self.notebook_font_size_spinner.setWrapping(True) settings = QSettings("Open Source", "FlatCAM") @@ -1152,7 +1152,7 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): ) self.axis_font_size_spinner = FCSpinner() - self.axis_font_size_spinner.setRange(0, 40) + self.axis_font_size_spinner.set_range(0, 40) self.axis_font_size_spinner.setWrapping(True) settings = QSettings("Open Source", "FlatCAM") @@ -1172,7 +1172,7 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): ) self.textbox_font_size_spinner = FCSpinner() - self.textbox_font_size_spinner.setRange(8, 40) + self.textbox_font_size_spinner.set_range(8, 40) self.textbox_font_size_spinner.setWrapping(True) settings = QSettings("Open Source", "FlatCAM") @@ -1342,6 +1342,7 @@ class GeneralAPPSetGroupUI(OptionsGroupUI): # Bookmarks Limit in the Help Menu self.bm_limit_spinner = FCSpinner() + self.bm_limit_spinner.set_range(0, 9999) self.bm_limit_label = QtWidgets.QLabel('%s:' % _('Bookmarks limit')) self.bm_limit_label.setToolTip( _("The maximum number of bookmarks that may be installed in the menu.\n" @@ -2040,7 +2041,7 @@ class GerberOptPrefGroupUI(OptionsGroupUI): "number (integer) of tool widths.") ) self.iso_width_entry = FCSpinner() - self.iso_width_entry.setRange(1, 999) + self.iso_width_entry.set_range(1, 999) grid0.addWidget(passlabel, 1, 0) grid0.addWidget(self.iso_width_entry, 1, 1) @@ -2247,7 +2248,7 @@ class GerberAdvOptPrefGroupUI(OptionsGroupUI): ) self.tipangle_spinner = FCSpinner() self.tipangle_spinner.set_range(1, 180) - self.tipangle_spinner.setSingleStep(5) + self.tipangle_spinner.set_step(5) self.tipangle_spinner.setWrapping(True) grid0.addWidget(self.tipanglelabel, 5, 0) grid0.addWidget(self.tipangle_spinner, 5, 1, 1, 2) @@ -2379,7 +2380,7 @@ class GerberExpPrefGroupUI(OptionsGroupUI): self.format_whole_entry = FCSpinner() self.format_whole_entry.set_range(0, 9) - self.format_whole_entry.setSingleStep(1) + self.format_whole_entry.set_step(1) self.format_whole_entry.setWrapping(True) self.format_whole_entry.setMinimumWidth(30) @@ -2395,7 +2396,7 @@ class GerberExpPrefGroupUI(OptionsGroupUI): self.format_dec_entry = FCSpinner() self.format_dec_entry.set_range(0, 9) - self.format_dec_entry.setSingleStep(1) + self.format_dec_entry.set_step(1) self.format_dec_entry.setWrapping(True) self.format_dec_entry.setMinimumWidth(30) @@ -3252,7 +3253,7 @@ class ExcellonOptPrefGroupUI(OptionsGroupUI): self.spindlespeed_entry = FCSpinner() self.spindlespeed_entry.set_range(0, 1000000) - self.spindlespeed_entry.setSingleStep(100) + self.spindlespeed_entry.set_step(100) grid2.addWidget(spdlabel, 10, 0) grid2.addWidget(self.spindlespeed_entry, 10, 1) @@ -4207,7 +4208,7 @@ class GeometryOptPrefGroupUI(OptionsGroupUI): grid1.addWidget(spdlabel, 9, 0) self.cncspindlespeed_entry = FCSpinner() self.cncspindlespeed_entry.set_range(0, 1000000) - self.cncspindlespeed_entry.setSingleStep(100) + self.cncspindlespeed_entry.set_step(100) grid1.addWidget(self.cncspindlespeed_entry, 9, 1) @@ -6258,7 +6259,7 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): # ## Columns self.pcolumns = FCSpinner() self.pcolumns.set_range(1, 1000) - self.pcolumns.setSingleStep(1) + self.pcolumns.set_step(1) self.columns_label = QtWidgets.QLabel('%s:' % _("Columns")) self.columns_label.setToolTip( @@ -6270,7 +6271,7 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI): # ## Rows self.prows = FCSpinner() self.prows.set_range(1, 1000) - self.prows.setSingleStep(1) + self.prows.set_step(1) self.rows_label = QtWidgets.QLabel('%s:' % _("Rows")) self.rows_label.setToolTip( @@ -6848,7 +6849,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Spindle Speed Forward self.speedfwd_entry = FCSpinner() self.speedfwd_entry.set_range(0, 99999) - self.speedfwd_entry.setSingleStep(1000) + self.speedfwd_entry.set_step(1000) self.speedfwd_label = QtWidgets.QLabel('%s:' % _("Spindle Speed FWD")) self.speedfwd_label.setToolTip( @@ -6874,7 +6875,7 @@ class ToolsSolderpastePrefGroupUI(OptionsGroupUI): # Spindle Speed Reverse self.speedrev_entry = FCSpinner() self.speedrev_entry.set_range(0, 999999) - self.speedrev_entry.setSingleStep(1000) + self.speedrev_entry.set_step(1000) self.speedrev_label = QtWidgets.QLabel('%s:' % _("Spindle Speed REV")) self.speedrev_label.setToolTip( @@ -7180,7 +7181,7 @@ class Tools2OptimalPrefGroupUI(OptionsGroupUI): self.precision_sp = FCSpinner() self.precision_sp.set_range(2, 10) - self.precision_sp.setSingleStep(1) + self.precision_sp.set_step(1) self.precision_sp.setWrapping(True) self.precision_lbl = QtWidgets.QLabel('%s:' % _("Precision")) diff --git a/flatcamTools/ToolCalculators.py b/flatcamTools/ToolCalculators.py index a7dbda2e..086ab83e 100644 --- a/flatcamTools/ToolCalculators.py +++ b/flatcamTools/ToolCalculators.py @@ -105,7 +105,7 @@ class ToolCalculator(FlatCAMTool): self.tipAngle_label = QtWidgets.QLabel('%s:' % _("Tip Angle")) self.tipAngle_entry = FCSpinner(callback=self.confirmation_message_int) self.tipAngle_entry.set_range(0,180) - self.tipAngle_entry.setSingleStep(5) + self.tipAngle_entry.set_step(5) # self.tipAngle_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.tipAngle_label.setToolTip(_("This is the angle of the tip of the tool.\n" diff --git a/flatcamTools/ToolCalibration.py b/flatcamTools/ToolCalibration.py index cc964b1a..ae83edb6 100644 --- a/flatcamTools/ToolCalibration.py +++ b/flatcamTools/ToolCalibration.py @@ -263,8 +263,6 @@ class ToolCalibration(FlatCAMTool): self.bottom_left_coordy_found = EvalEntry() self.points_table.setCellWidget(row, 3, self.bottom_left_coordy_found) - self.bottom_left_coordx_found.set_value(_("Origin")) - self.bottom_left_coordy_found.set_value(_("Origin")) self.bottom_left_coordx_found.setDisabled(True) self.bottom_left_coordy_found.setDisabled(True) row += 1 @@ -770,6 +768,9 @@ class ToolCalibration(FlatCAMTool): if self.local_connected is True: self.disconnect_cal_events() + self.bottom_left_coordx_found.set_value(_("Origin")) + self.bottom_left_coordy_found.set_value(_("Origin")) + self.reset_calibration_points() self.cal_source_radio.set_value(self.app.defaults['tools_cal_calsource']) diff --git a/flatcamTools/ToolDistanceMin.py b/flatcamTools/ToolDistanceMin.py index 08bfc62f..485fca3b 100644 --- a/flatcamTools/ToolDistanceMin.py +++ b/flatcamTools/ToolDistanceMin.py @@ -128,15 +128,6 @@ class DistanceMin(FlatCAMTool): form_layout.addRow(self.total_distance_label, self.total_distance_entry) form_layout.addRow(self.half_point_label, self.half_point_entry) - # initial view of the layout - self.start_entry.set_value('(0, 0)') - self.stop_entry.set_value('(0, 0)') - self.distance_x_entry.set_value('0.0') - self.distance_y_entry.set_value('0.0') - self.angle_entry.set_value('0.0') - self.total_distance_entry.set_value('0.0') - self.half_point_entry.set_value('(0, 0)') - self.layout.addStretch() self.h_point = (0, 0) diff --git a/flatcamTools/ToolOptimal.py b/flatcamTools/ToolOptimal.py index 876b0ded..5160fc81 100644 --- a/flatcamTools/ToolOptimal.py +++ b/flatcamTools/ToolOptimal.py @@ -282,9 +282,6 @@ class ToolOptimal(FlatCAMTool): def run(self, toggle=True): self.app.report_usage("ToolOptimal()") - self.result_entry.set_value(0.0) - self.freq_entry.set_value('0') - if toggle: # if the splitter is hidden, display it, else hide it but only if the current widget is the same if self.app.ui.splitter.sizes()[0] == 0: @@ -310,6 +307,9 @@ class ToolOptimal(FlatCAMTool): self.app.ui.notebook.setTabText(2, _("Optimal Tool")) def set_tool_ui(self): + self.result_entry.set_value(0.0) + self.freq_entry.set_value('0') + self.precision_spinner.set_value(int(self.app.defaults["tools_opt_precision"])) self.locations_textb.clear() # new cursor - select all document diff --git a/flatcamTools/ToolQRCode.py b/flatcamTools/ToolQRCode.py index a70b1f63..5e9b8ff0 100644 --- a/flatcamTools/ToolQRCode.py +++ b/flatcamTools/ToolQRCode.py @@ -153,7 +153,6 @@ class QRCode(FlatCAMTool): self.border_size_entry = FCSpinner(callback=self.confirmation_message_int) self.border_size_entry.set_range(1, 9999) self.border_size_entry.setWrapping(True) - self.border_size_entry.set_value(4) grid_lay.addWidget(self.border_size_label, 4, 0) grid_lay.addWidget(self.border_size_entry, 4, 1) @@ -386,6 +385,8 @@ class QRCode(FlatCAMTool): def set_tool_ui(self): self.units = self.app.defaults['units'] + self.border_size_entry.set_value(4) + self.version_entry.set_value(int(self.app.defaults["tools_qrcode_version"])) self.error_radio.set_value(self.app.defaults["tools_qrcode_error"]) self.bsize_entry.set_value(int(self.app.defaults["tools_qrcode_box_size"])) diff --git a/flatcamTools/ToolSolderPaste.py b/flatcamTools/ToolSolderPaste.py index 0626a4c9..655ab3aa 100644 --- a/flatcamTools/ToolSolderPaste.py +++ b/flatcamTools/ToolSolderPaste.py @@ -284,7 +284,7 @@ class SolderPaste(FlatCAMTool): # Spindle Speed Forward self.speedfwd_entry = FCSpinner(callback=self.confirmation_message_int) self.speedfwd_entry.set_range(0, 999999) - self.speedfwd_entry.setSingleStep(1000) + self.speedfwd_entry.set_step(1000) self.speedfwd_label = QtWidgets.QLabel('%s:' % _("Spindle Speed FWD")) self.speedfwd_label.setToolTip( @@ -308,7 +308,7 @@ class SolderPaste(FlatCAMTool): # Spindle Speed Reverse self.speedrev_entry = FCSpinner(callback=self.confirmation_message_int) self.speedrev_entry.set_range(0, 999999) - self.speedrev_entry.setSingleStep(1000) + self.speedrev_entry.set_step(1000) self.speedrev_label = QtWidgets.QLabel('%s:' % _("Spindle Speed REV")) self.speedrev_label.setToolTip( diff --git a/flatcamTools/ToolTransform.py b/flatcamTools/ToolTransform.py index cebe6953..8ce0eff5 100644 --- a/flatcamTools/ToolTransform.py +++ b/flatcamTools/ToolTransform.py @@ -77,7 +77,6 @@ class ToolTransform(FlatCAMTool): # self.rotate_entry.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter) self.rotate_button = FCButton() - self.rotate_button.set_value(_("Rotate")) self.rotate_button.setToolTip( _("Rotate the selected object(s).\n" "The point of reference is the middle of\n" @@ -109,7 +108,6 @@ class ToolTransform(FlatCAMTool): self.skewx_entry.set_range(-360, 360) self.skewx_button = FCButton() - self.skewx_button.set_value(_("Skew X")) self.skewx_button.setToolTip( _("Skew/shear the selected object(s).\n" "The point of reference is the middle of\n" @@ -131,7 +129,6 @@ class ToolTransform(FlatCAMTool): self.skewy_entry.set_range(-360, 360) self.skewy_button = FCButton() - self.skewy_button.set_value(_("Skew Y")) self.skewy_button.setToolTip( _("Skew/shear the selected object(s).\n" "The point of reference is the middle of\n" @@ -161,7 +158,6 @@ class ToolTransform(FlatCAMTool): self.scalex_entry.setMinimum(-1e6) self.scalex_button = FCButton() - self.scalex_button.set_value(_("Scale X")) self.scalex_button.setToolTip( _("Scale the selected object(s).\n" "The point of reference depends on \n" @@ -182,7 +178,6 @@ class ToolTransform(FlatCAMTool): self.scaley_entry.setMinimum(-1e6) self.scaley_button = FCButton() - self.scaley_button.set_value(_("Scale Y")) self.scaley_button.setToolTip( _("Scale the selected object(s).\n" "The point of reference depends on \n" @@ -194,7 +189,6 @@ class ToolTransform(FlatCAMTool): grid0.addWidget(self.scaley_button, 9, 2) self.scale_link_cb = FCCheckBox() - self.scale_link_cb.set_value(True) self.scale_link_cb.setText(_("Link")) self.scale_link_cb.setToolTip( _("Scale the selected object(s)\n" @@ -202,7 +196,6 @@ class ToolTransform(FlatCAMTool): ) self.scale_zero_ref_cb = FCCheckBox() - self.scale_zero_ref_cb.set_value(True) self.scale_zero_ref_cb.setText('%s' % _("Scale Reference")) self.scale_zero_ref_cb.setToolTip( _("Scale the selected object(s)\n" @@ -234,7 +227,6 @@ class ToolTransform(FlatCAMTool): self.offx_entry.setMinimum(-1e6) self.offx_button = FCButton() - self.offx_button.set_value(_("Offset X")) self.offx_button.setToolTip( _("Offset the selected object(s).\n" "The point of reference is the middle of\n" @@ -255,7 +247,6 @@ class ToolTransform(FlatCAMTool): self.offy_entry.setMinimum(-1e6) self.offy_button = FCButton() - self.offy_button.set_value(_("Offset Y")) self.offy_button.setToolTip( _("Offset the selected object(s).\n" "The point of reference is the middle of\n" @@ -276,13 +267,11 @@ class ToolTransform(FlatCAMTool): grid0.addWidget(flip_title_label, 16, 0, 1, 3) self.flipx_button = FCButton() - self.flipx_button.set_value(_("Flip on X")) self.flipx_button.setToolTip( _("Flip the selected object(s) over the X axis.") ) self.flipy_button = FCButton() - self.flipy_button.set_value(_("Flip on Y")) self.flipy_button.setToolTip( _("Flip the selected object(s) over the X axis.") ) @@ -294,7 +283,6 @@ class ToolTransform(FlatCAMTool): hlay0.addWidget(self.flipy_button) self.flip_ref_cb = FCCheckBox() - self.flip_ref_cb.set_value(True) self.flip_ref_cb.setText('%s' % _("Mirror Reference")) self.flip_ref_cb.setToolTip( _("Flip the selected object(s)\n" @@ -320,7 +308,6 @@ class ToolTransform(FlatCAMTool): # self.flip_ref_entry.setFixedWidth(70) self.flip_ref_button = FCButton() - self.flip_ref_button.set_value(_("Add")) self.flip_ref_button.setToolTip( _("The point coordinates can be captured by\n" "left click on canvas together with pressing\n" @@ -360,7 +347,6 @@ class ToolTransform(FlatCAMTool): self.buffer_entry.set_range(-9999.9999, 9999.9999) self.buffer_button = FCButton() - self.buffer_button.set_value(_("Buffer D")) self.buffer_button.setToolTip( _("Create the buffer effect on each geometry,\n" "element from the selected object, using the distance.") @@ -387,7 +373,6 @@ class ToolTransform(FlatCAMTool): self.buffer_factor_entry.setSingleStep(1) self.buffer_factor_button = FCButton() - self.buffer_factor_button.set_value(_("Buffer F")) self.buffer_factor_button.setToolTip( _("Create the buffer effect on each geometry,\n" "element from the selected object, using the factor.") @@ -481,6 +466,22 @@ class ToolTransform(FlatCAMTool): FlatCAMTool.install(self, icon, separator, shortcut='ALT+T', **kwargs) def set_tool_ui(self): + self.rotate_button.set_value(_("Rotate")) + self.skewx_button.set_value(_("Skew X")) + self.skewy_button.set_value(_("Skew Y")) + self.scalex_button.set_value(_("Scale X")) + self.scaley_button.set_value(_("Scale Y")) + self.scale_link_cb.set_value(True) + self.scale_zero_ref_cb.set_value(True) + self.offx_button.set_value(_("Offset X")) + self.offy_button.set_value(_("Offset Y")) + self.flipx_button.set_value(_("Flip on X")) + self.flipy_button.set_value(_("Flip on Y")) + self.flip_ref_cb.set_value(True) + self.flip_ref_button.set_value(_("Add")) + self.buffer_button.set_value(_("Buffer D")) + self.buffer_factor_button.set_value(_("Buffer F")) + # ## Initialize form if self.app.defaults["tools_transform_rotate"]: self.rotate_entry.set_value(self.app.defaults["tools_transform_rotate"])