ToolsCornersPrefGroupUI.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. from PyQt5 import QtWidgets
  2. from PyQt5.QtCore import QSettings
  3. from appGUI.GUIElements import FCDoubleSpinner, FCLabel, RadioSet
  4. from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
  5. import gettext
  6. import appTranslation as fcTranslate
  7. import builtins
  8. fcTranslate.apply_language('strings')
  9. if '_' not in builtins.__dict__:
  10. _ = gettext.gettext
  11. settings = QSettings("Open Source", "FlatCAM")
  12. if settings.contains("machinist"):
  13. machinist_setting = settings.value('machinist', type=int)
  14. else:
  15. machinist_setting = 0
  16. class ToolsCornersPrefGroupUI(OptionsGroupUI):
  17. def __init__(self, decimals=4, parent=None):
  18. # OptionsGroupUI.__init__(self, "Calculators Tool Options", parent=parent)
  19. super(ToolsCornersPrefGroupUI, self).__init__(self, parent=parent)
  20. self.setTitle(str(_("Corner Markers Options")))
  21. self.decimals = decimals
  22. grid0 = QtWidgets.QGridLayout()
  23. grid0.setColumnStretch(0, 0)
  24. grid0.setColumnStretch(1, 1)
  25. self.layout.addLayout(grid0)
  26. self.param_label = FCLabel('<b>%s:</b>' % _('Parameters'))
  27. self.param_label.setToolTip(
  28. _("Parameters used for this tool.")
  29. )
  30. grid0.addWidget(self.param_label, 0, 0, 1, 2)
  31. # Type of Marker
  32. self.type_label = FCLabel('%s:' % _("Type"))
  33. self.type_label.setToolTip(
  34. _("Shape of the marker.")
  35. )
  36. self.type_radio = RadioSet([
  37. {"label": _("Semi-Cross"), "value": "s"},
  38. {"label": _("Cross"), "value": "c"},
  39. ])
  40. grid0.addWidget(self.type_label, 2, 0)
  41. grid0.addWidget(self.type_radio, 2, 1)
  42. # Thickness #
  43. self.thick_label = FCLabel('%s:' % _("Thickness"))
  44. self.thick_label.setToolTip(
  45. _("The thickness of the line that makes the corner marker.")
  46. )
  47. self.thick_entry = FCDoubleSpinner()
  48. self.thick_entry.set_range(0.0000, 9.9999)
  49. self.thick_entry.set_precision(self.decimals)
  50. self.thick_entry.setWrapping(True)
  51. self.thick_entry.setSingleStep(10 ** -self.decimals)
  52. grid0.addWidget(self.thick_label, 4, 0)
  53. grid0.addWidget(self.thick_entry, 4, 1)
  54. # Margin #
  55. self.margin_label = FCLabel('%s:' % _("Margin"))
  56. self.margin_label.setToolTip(
  57. _("Bounding box margin.")
  58. )
  59. self.margin_entry = FCDoubleSpinner()
  60. self.margin_entry.set_range(-10000.0000, 10000.0000)
  61. self.margin_entry.set_precision(self.decimals)
  62. self.margin_entry.setSingleStep(0.1)
  63. grid0.addWidget(self.margin_label, 6, 0)
  64. grid0.addWidget(self.margin_entry, 6, 1)
  65. # Length #
  66. self.l_label = FCLabel('%s:' % _("Length"))
  67. self.l_label.setToolTip(
  68. _("The length of the line that makes the corner marker.")
  69. )
  70. self.l_entry = FCDoubleSpinner()
  71. self.l_entry.set_range(-10000.0000, 10000.0000)
  72. self.l_entry.set_precision(self.decimals)
  73. self.l_entry.setSingleStep(10 ** -self.decimals)
  74. grid0.addWidget(self.l_label, 8, 0)
  75. grid0.addWidget(self.l_entry, 8, 1)
  76. # Drill Tool Diameter
  77. self.drill_dia_label = FCLabel('%s:' % _("Drill Dia"))
  78. self.drill_dia_label.setToolTip(
  79. '%s.' % _("Drill Diameter")
  80. )
  81. self.drill_dia_entry = FCDoubleSpinner()
  82. self.drill_dia_entry.set_range(0.0000, 100.0000)
  83. self.drill_dia_entry.set_precision(self.decimals)
  84. self.drill_dia_entry.setWrapping(True)
  85. grid0.addWidget(self.drill_dia_label, 10, 0)
  86. grid0.addWidget(self.drill_dia_entry, 10, 1)
  87. self.layout.addStretch()