Преглед изворни кода

- 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

Marius Stanciu пре 6 година
родитељ
комит
7292a30b9e

+ 1 - 1
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()

+ 2 - 0
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
 

+ 7 - 0
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()

+ 3 - 2
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)

+ 15 - 14
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"))

+ 1 - 1
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"

+ 3 - 2
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'])

+ 0 - 9
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)

+ 3 - 3
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

+ 2 - 1
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"]))

+ 2 - 2
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(

+ 16 - 15
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"])