- more UI changes in the Preferences to align them to the new app look

This commit is contained in:
Marius Stanciu
2021-09-29 22:17:49 +03:00
committed by Marius
parent b4c817722b
commit 75972180a8
7 changed files with 268 additions and 197 deletions

View File

@@ -2,7 +2,7 @@ from PyQt6 import QtWidgets, QtCore
from PyQt6.QtCore import Qt
from appGUI.GUIElements import RadioSet, FCDoubleSpinner, FCComboBox, FCCheckBox, FCSpinner, NumericalEvalTupleEntry, \
OptionalInputSection, NumericalEvalEntry, FCLabel, FCGridLayout, FCComboBox2
OptionalInputSection, NumericalEvalEntry, FCLabel, FCGridLayout, FCComboBox2, FCFrame
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
@@ -22,15 +22,20 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.decimals = decimals
self.defaults = defaults
# ## Clear non-copper regions
self.drill_label = FCLabel("<b>%s:</b>" % _("Parameters"))
# #############################################################################################################
# PARAMETERS Frame
# #############################################################################################################
self.drill_label = FCLabel('<span style="color:blue;"><b>%s</b></span>' % _("Parameters"))
self.drill_label.setToolTip(
_("Create CNCJob with toolpaths for drilling or milling holes.")
)
self.layout.addWidget(self.drill_label)
grid0 = FCGridLayout(v_spacing=5, h_spacing=3)
self.layout.addLayout(grid0)
param_frame = FCFrame()
self.layout.addWidget(param_frame)
param_grid = FCGridLayout(v_spacing=5, h_spacing=3)
param_frame.setLayout(param_grid)
# Tool order Radio Button
self.order_label = FCLabel('%s:' % _('Tool order'))
@@ -44,8 +49,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.order_combo = FCComboBox2()
self.order_combo.addItems([_('Default'), _('Forward'), _('Reverse')])
grid0.addWidget(self.order_label, 1, 0)
grid0.addWidget(self.order_combo, 1, 1, 1, 2)
param_grid.addWidget(self.order_label, 0, 0)
param_grid.addWidget(self.order_combo, 0, 1, 1, 2)
# Cut Z
cutzlabel = FCLabel('%s:' % _('Cut Z'))
@@ -60,8 +65,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.cutz_entry.setSingleStep(0.1)
self.cutz_entry.set_precision(self.decimals)
grid0.addWidget(cutzlabel, 3, 0)
grid0.addWidget(self.cutz_entry, 3, 1, 1, 2)
param_grid.addWidget(cutzlabel, 2, 0)
param_grid.addWidget(self.cutz_entry, 2, 1, 1, 2)
# Multi-Depth
self.mpass_cb = FCCheckBox('%s:' % _("Multi-Depth"))
@@ -81,8 +86,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.maxdepth_entry.setToolTip(_("Depth of each pass (positive)."))
grid0.addWidget(self.mpass_cb, 5, 0)
grid0.addWidget(self.maxdepth_entry, 5, 1, 1, 2)
param_grid.addWidget(self.mpass_cb, 4, 0)
param_grid.addWidget(self.maxdepth_entry, 4, 1, 1, 2)
self.ois_md = OptionalInputSection(self.mpass_cb, [self.maxdepth_entry])
@@ -97,8 +102,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.travelz_entry.set_precision(self.decimals)
self.travelz_entry.set_range(-10000.0000, 10000.0000)
grid0.addWidget(travelzlabel, 7, 0)
grid0.addWidget(self.travelz_entry, 7, 1, 1, 2)
param_grid.addWidget(travelzlabel, 6, 0)
param_grid.addWidget(self.travelz_entry, 6, 1, 1, 2)
# Tool change:
self.toolchange_cb = FCCheckBox('%s' % _("Tool change"))
@@ -106,7 +111,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
_("Include tool-change sequence\n"
"in G-Code (Pause for tool change).")
)
grid0.addWidget(self.toolchange_cb, 9, 0, 1, 3)
param_grid.addWidget(self.toolchange_cb, 8, 0, 1, 3)
# Tool Change Z
toolchangezlabel = FCLabel('%s:' % _('Toolchange Z'))
@@ -119,8 +124,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.toolchangez_entry.set_precision(self.decimals)
self.toolchangez_entry.set_range(-10000.0000, 10000.0000)
grid0.addWidget(toolchangezlabel, 11, 0)
grid0.addWidget(self.toolchangez_entry, 11, 1, 1, 2)
param_grid.addWidget(toolchangezlabel, 10, 0)
param_grid.addWidget(self.toolchangez_entry, 10, 1, 1, 2)
# End Move Z
endz_label = FCLabel('%s:' % _('End move Z'))
@@ -132,8 +137,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.endz_entry.set_precision(self.decimals)
self.endz_entry.set_range(-10000.0000, 10000.0000)
grid0.addWidget(endz_label, 15, 0)
grid0.addWidget(self.endz_entry, 15, 1, 1, 2)
param_grid.addWidget(endz_label, 12, 0)
param_grid.addWidget(self.endz_entry, 12, 1, 1, 2)
# End Move X,Y
endmove_xy_label = FCLabel('%s:' % _('End move X,Y'))
@@ -144,8 +149,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
)
self.endxy_entry = NumericalEvalTupleEntry(border_color='#0069A9')
grid0.addWidget(endmove_xy_label, 17, 0)
grid0.addWidget(self.endxy_entry, 17, 1, 1, 2)
param_grid.addWidget(endmove_xy_label, 14, 0)
param_grid.addWidget(self.endxy_entry, 14, 1, 1, 2)
# Feedrate Z
frlabel = FCLabel('%s:' % _('Feedrate Z'))
@@ -159,8 +164,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.feedrate_z_entry.set_precision(self.decimals)
self.feedrate_z_entry.set_range(0, 910000.0000)
grid0.addWidget(frlabel, 19, 0)
grid0.addWidget(self.feedrate_z_entry, 19, 1, 1, 2)
param_grid.addWidget(frlabel, 16, 0)
param_grid.addWidget(self.feedrate_z_entry, 16, 1, 1, 2)
# Spindle speed
spdlabel = FCLabel('%s:' % _('Spindle Speed'))
@@ -173,8 +178,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.spindlespeed_entry.set_range(0, 1000000)
self.spindlespeed_entry.set_step(100)
grid0.addWidget(spdlabel, 21, 0)
grid0.addWidget(self.spindlespeed_entry, 21, 1, 1, 2)
param_grid.addWidget(spdlabel, 18, 0)
param_grid.addWidget(self.spindlespeed_entry, 18, 1, 1, 2)
# Dwell
self.dwell_cb = FCCheckBox('%s' % _('Enable Dwell'))
@@ -183,7 +188,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
"speed before cutting.")
)
grid0.addWidget(self.dwell_cb, 23, 0)
param_grid.addWidget(self.dwell_cb, 20, 0)
# Dwell Time
self.dwelltime_entry = FCDoubleSpinner()
@@ -191,7 +196,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.dwelltime_entry.set_precision(self.decimals)
self.dwelltime_entry.set_range(0, 910000.0000)
grid0.addWidget(self.dwelltime_entry, 23, 1, 1, 2)
param_grid.addWidget(self.dwelltime_entry, 20, 1, 1, 2)
self.ois_dwell_exc = OptionalInputSection(self.dwell_cb, [self.dwelltime_entry])
@@ -212,24 +217,40 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.pp_excellon_name_cb.setItemData(it, self.pp_excellon_name_cb.itemText(it),
QtCore.Qt.ItemDataRole.ToolTipRole)
grid0.addWidget(pp_excellon_label, 27, 0)
grid0.addWidget(self.pp_excellon_name_cb, 27, 1, 1, 2)
param_grid.addWidget(pp_excellon_label, 24, 0)
param_grid.addWidget(self.pp_excellon_name_cb, 24, 1, 1, 2)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
grid0.addWidget(separator_line, 29, 0, 1, 3)
# separator_line = QtWidgets.QFrame()
# separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
# separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
# param_grid.addWidget(separator_line, 29, 0, 1, 3)
# DRILL SLOTS LABEL
self.dslots_label = FCLabel('<b>%s:</b>' % _('Drilling Slots'))
grid0.addWidget(self.dslots_label, 31, 0, 1, 3)
# #############################################################################################################
# Drill Slots Frame
# #############################################################################################################
self.dslots_label = FCLabel('<span style="color:brown;"><b>%s</b></span>' % _('Drilling Slots'))
self.layout.addWidget(self.dslots_label)
ds_frame = FCFrame()
self.layout.addWidget(ds_frame)
ds_grid = FCGridLayout(v_spacing=5, h_spacing=3)
ds_frame.setLayout(ds_grid)
# Drill slots
self.drill_slots_cb = FCCheckBox('%s' % _('Drill slots'))
self.drill_slots_cb.setToolTip(
_("If the selected tool has slots then they will be drilled.")
)
grid0.addWidget(self.drill_slots_cb, 33, 0, 1, 3)
ds_grid.addWidget(self.drill_slots_cb, 0, 0)
# Last drill in slot
self.last_drill_cb = FCCheckBox('%s' % _('Last drill'))
self.last_drill_cb.setToolTip(
_("If the slot length is not completely covered by drill holes,\n"
"add a drill hole on the slot end point.")
)
ds_grid.addWidget(self.last_drill_cb, 0, 1, 1, 2)
# Drill Overlap
self.drill_overlap_label = FCLabel('%s:' % _('Overlap'))
@@ -242,27 +263,28 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.drill_overlap_entry.set_range(0.0, 10000.0000)
self.drill_overlap_entry.setSingleStep(0.1)
grid0.addWidget(self.drill_overlap_label, 35, 0)
grid0.addWidget(self.drill_overlap_entry, 35, 1, 1, 2)
ds_grid.addWidget(self.drill_overlap_label, 2, 0)
ds_grid.addWidget(self.drill_overlap_entry, 2, 1, 1, 2)
# Last drill in slot
self.last_drill_cb = FCCheckBox('%s' % _('Last drill'))
self.last_drill_cb.setToolTip(
_("If the slot length is not completely covered by drill holes,\n"
"add a drill hole on the slot end point.")
)
grid0.addWidget(self.last_drill_cb, 37, 0, 1, 3)
# separator_line = QtWidgets.QFrame()
# separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
# separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
# ds_grid.addWidget(separator_line, 6, 0, 1, 3)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
grid0.addWidget(separator_line, 39, 0, 1, 3)
self.exc_label = FCLabel('<b>%s:</b>' % _('Advanced Options'))
# #############################################################################################################
# Advanced Options Frame
# #############################################################################################################
self.exc_label = FCLabel('<span style="color:teal;"><b>%s</b></span>' % _('Advanced Options'))
self.exc_label.setToolTip(
_("A list of advanced parameters.")
)
grid0.addWidget(self.exc_label, 41, 0, 1, 3)
self.layout.addWidget(self.exc_label)
adv_frame = FCFrame()
self.layout.addWidget(adv_frame)
adv_grid = FCGridLayout(v_spacing=5, h_spacing=3)
adv_frame.setLayout(adv_grid)
# Offset Z
offsetlabel = FCLabel('%s:' % _('Offset Z'))
@@ -274,8 +296,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.offset_entry.set_precision(self.decimals)
self.offset_entry.set_range(-999.9999, 999.9999)
grid0.addWidget(offsetlabel, 43, 0)
grid0.addWidget(self.offset_entry, 43, 1, 1, 2)
adv_grid.addWidget(offsetlabel, 0, 0)
adv_grid.addWidget(self.offset_entry, 0, 1, 1, 2)
# ToolChange X,Y
toolchange_xy_label = FCLabel('%s:' % _('Toolchange X,Y'))
@@ -284,8 +306,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
)
self.toolchangexy_entry = NumericalEvalTupleEntry(border_color='#0069A9')
grid0.addWidget(toolchange_xy_label, 45, 0)
grid0.addWidget(self.toolchangexy_entry, 45, 1, 1, 2)
adv_grid.addWidget(toolchange_xy_label, 2, 0)
adv_grid.addWidget(self.toolchangexy_entry, 2, 1, 1, 2)
# Start Z
startzlabel = FCLabel('%s:' % _('Start Z'))
@@ -295,8 +317,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
)
self.estartz_entry = NumericalEvalEntry(border_color='#0069A9')
grid0.addWidget(startzlabel, 47, 0)
grid0.addWidget(self.estartz_entry, 47, 1, 1, 2)
adv_grid.addWidget(startzlabel, 4, 0)
adv_grid.addWidget(self.estartz_entry, 4, 1, 1, 2)
# Feedrate Rapids
fr_rapid_label = FCLabel('%s:' % _('Feedrate Rapids'))
@@ -311,8 +333,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.feedrate_rapid_entry.set_precision(self.decimals)
self.feedrate_rapid_entry.set_range(0, 910000.0000)
grid0.addWidget(fr_rapid_label, 49, 0)
grid0.addWidget(self.feedrate_rapid_entry, 49, 1, 1, 2)
adv_grid.addWidget(fr_rapid_label, 6, 0)
adv_grid.addWidget(self.feedrate_rapid_entry, 6, 1, 1, 2)
# Probe depth
self.pdepth_label = FCLabel('%s:' % _("Probe Z depth"))
@@ -324,8 +346,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.pdepth_entry.set_precision(self.decimals)
self.pdepth_entry.set_range(-910000.0000, 0.0000)
grid0.addWidget(self.pdepth_label, 51, 0)
grid0.addWidget(self.pdepth_entry, 51, 1, 1, 2)
adv_grid.addWidget(self.pdepth_label, 8, 0)
adv_grid.addWidget(self.pdepth_entry, 8, 1, 1, 2)
# Probe feedrate
self.feedrate_probe_label = FCLabel('%s:' % _("Feedrate Probe"))
@@ -336,8 +358,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.feedrate_probe_entry.set_precision(self.decimals)
self.feedrate_probe_entry.set_range(0, 910000.0000)
grid0.addWidget(self.feedrate_probe_label, 53, 0)
grid0.addWidget(self.feedrate_probe_entry, 53, 1, 1, 2)
adv_grid.addWidget(self.feedrate_probe_label, 10, 0)
adv_grid.addWidget(self.feedrate_probe_entry, 10, 1, 1, 2)
# Spindle direction
spindle_dir_label = FCLabel('%s:' % _('Spindle direction'))
@@ -349,9 +371,9 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
)
self.spindledir_radio = RadioSet([{'label': _('CW'), 'value': 'CW'},
{'label': _('CCW'), 'value': 'CCW'}])
grid0.addWidget(spindle_dir_label, 55, 0)
grid0.addWidget(self.spindledir_radio, 55, 1, 1, 2)
{'label': _('CCW'), 'value': 'CCW'}], compact=True)
adv_grid.addWidget(spindle_dir_label, 12, 0)
adv_grid.addWidget(self.spindledir_radio, 12, 1, 1, 2)
self.fplunge_cb = FCCheckBox('%s' % _('Fast Plunge'))
self.fplunge_cb.setToolTip(
@@ -360,7 +382,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
"meaning the fastest speed available.\n"
"WARNING: the move is done at Toolchange X,Y coords.")
)
grid0.addWidget(self.fplunge_cb, 57, 0, 1, 3)
adv_grid.addWidget(self.fplunge_cb, 14, 0)
self.fretract_cb = FCCheckBox('%s' % _('Fast Retract'))
self.fretract_cb.setToolTip(
@@ -372,21 +394,27 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
"(travel height) is done as fast as possible (G0) in one move.")
)
grid0.addWidget(self.fretract_cb, 59, 0, 1, 3)
adv_grid.addWidget(self.fretract_cb, 14, 1, 1, 2)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
grid0.addWidget(separator_line, 61, 0, 1, 3)
# separator_line = QtWidgets.QFrame()
# separator_line.setFrameShape(QtWidgets.QFrame.Shape.HLine)
# separator_line.setFrameShadow(QtWidgets.QFrame.Shadow.Sunken)
# adv_grid.addWidget(separator_line, 18, 0, 1, 3)
# -----------------------------
# --- Area Exclusion ----------
# -----------------------------
self.area_exc_label = FCLabel('<b>%s:</b>' % _('Area Exclusion'))
# #############################################################################################################
# Area Exclusion Frame
# #############################################################################################################
self.area_exc_label = FCLabel('<span style="color:magenta;"><b>%s</b></span>' % _('Area Exclusion'))
self.area_exc_label.setToolTip(
_("Area exclusion parameters.")
)
grid0.addWidget(self.area_exc_label, 63, 0, 1, 3)
self.layout.addWidget(self.area_exc_label)
area_frame = FCFrame()
self.layout.addWidget(area_frame)
area_grid = FCGridLayout(v_spacing=5, h_spacing=3)
area_frame.setLayout(area_grid)
# Exclusion Area CB
self.exclusion_cb = FCCheckBox('%s' % _("Exclusion areas"))
@@ -397,7 +425,7 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
"is forbidden."
)
)
grid0.addWidget(self.exclusion_cb, 65, 0, 1, 3)
area_grid.addWidget(self.exclusion_cb, 0, 0, 1, 3)
# Area Selection shape
self.area_shape_label = FCLabel('%s:' % _("Shape"))
@@ -408,8 +436,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.area_shape_radio = RadioSet([{'label': _("Square"), 'value': 'square'},
{'label': _("Polygon"), 'value': 'polygon'}])
grid0.addWidget(self.area_shape_label, 67, 0)
grid0.addWidget(self.area_shape_radio, 67, 1, 1, 2)
area_grid.addWidget(self.area_shape_label, 2, 0)
area_grid.addWidget(self.area_shape_radio, 2, 1, 1, 2)
# Chose Strategy
self.strategy_label = FCLabel('%s:' % _("Strategy"))
@@ -420,8 +448,8 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.strategy_radio = RadioSet([{'label': _('Over'), 'value': 'over'},
{'label': _('Around'), 'value': 'around'}])
grid0.addWidget(self.strategy_label, 69, 0)
grid0.addWidget(self.strategy_radio, 69, 1, 1, 2)
area_grid.addWidget(self.strategy_label, 4, 0)
area_grid.addWidget(self.strategy_radio, 4, 1, 1, 2)
# Over Z
self.over_z_label = FCLabel('%s:' % _("Over Z"))
@@ -431,7 +459,9 @@ class ToolsDrillPrefGroupUI(OptionsGroupUI):
self.over_z_entry.set_range(-10000.000, 10000.0000)
self.over_z_entry.set_precision(self.decimals)
grid0.addWidget(self.over_z_label, 71, 0)
grid0.addWidget(self.over_z_entry, 71, 1, 1, 2)
area_grid.addWidget(self.over_z_label, 6, 0)
area_grid.addWidget(self.over_z_entry, 6, 1, 1, 2)
FCGridLayout.set_common_column_size([param_grid, ds_grid, adv_grid, area_grid], 0)
self.layout.addStretch()