diff --git a/FlatCAMObj.py b/FlatCAMObj.py
index 963e64a6..610df50d 100644
--- a/FlatCAMObj.py
+++ b/FlatCAMObj.py
@@ -733,7 +733,12 @@ class FlatCAMGerber(FlatCAMObj, Gerber):
# set the model for the Area Exception comboboxes
self.ui.obj_combo.setModel(self.app.collection)
self.ui.obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.ui.obj_combo.set_last = True
+ self.ui.obj_combo.is_last = True
+ self.ui.obj_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Geometry"): "Geometry"
+ }[self.ui.type_obj_combo.get_value()]
+ self.on_type_obj_index_changed()
+
self.ui.type_obj_combo.currentIndexChanged.connect(self.on_type_obj_index_changed)
self.ui.tool_type_radio.activated_custom.connect(self.on_tool_type_change)
@@ -813,10 +818,12 @@ class FlatCAMGerber(FlatCAMObj, Gerber):
tool_diameter = tdia + (2 * cutz * math.tan(math.radians(half_tip_angle)))
self.ui.iso_tool_dia_entry.set_value(tool_diameter)
- def on_type_obj_index_changed(self, index):
- obj_type = self.ui.type_obj_combo.currentIndex()
+ def on_type_obj_index_changed(self):
+ val = self.ui.type_obj_combo.get_value()
+ obj_type = {"Gerber": 0, "Geometry": 2}[val]
self.ui.obj_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.ui.obj_combo.setCurrentIndex(0)
+ self.ui.obj_combo.obj_type = {_("Gerber"): "Gerber", _("Geometry"): "Geometry"}[val]
def on_tool_type_change(self, state):
if state == 'circular':
diff --git a/README.md b/README.md
index dd227f7c..924856e7 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,12 @@ CAD program, and create G-Code for Isolation routing.
=================================================
+4.03.2020
+
+- updated all the FlatCAM Tools and the Gerber UI FCComboBoxes to update the box value with the latest object loaded in the App
+- some fixes in the NCC Tool
+- modified some strings
+
02.03.2020
- added property that allow the FCComboBox to update the view with the last item loaded; updated the app to use this property
diff --git a/flatcamGUI/GUIElements.py b/flatcamGUI/GUIElements.py
index 9e3094ec..f9c7b814 100644
--- a/flatcamGUI/GUIElements.py
+++ b/flatcamGUI/GUIElements.py
@@ -1286,6 +1286,7 @@ class FCComboBox(QtWidgets.QComboBox):
self.view.setContextMenuPolicy(Qt.CustomContextMenu)
self._set_last = False
+ self._obj_type = None
# the callback() will be called on customcontextmenu event and will be be passed 2 parameters:
# pos = mouse right click click position
@@ -1309,17 +1310,27 @@ class FCComboBox(QtWidgets.QComboBox):
self.setCurrentIndex(self.findText(str(val)))
@property
- def set_last(self):
+ def is_last(self):
return self._set_last
- @set_last.setter
- def set_last(self, val):
+ @is_last.setter
+ def is_last(self, val):
self._set_last = val
if self._set_last is True:
self.model().rowsInserted.connect(self.on_model_changed)
+ self.setCurrentIndex(1)
- def on_model_changed(self, first, last):
- self.setCurrentIndex(last)
+ @property
+ def obj_type(self):
+ return self._obj_type
+
+ @obj_type.setter
+ def obj_type(self, val):
+ self._obj_type = val
+
+ def on_model_changed(self, parent, first, last):
+ if self.model().data(parent, QtCore.Qt.DisplayRole) == self.obj_type:
+ self.setCurrentIndex(first)
class FCInputDialog(QtWidgets.QInputDialog):
diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py
index 1b298f29..39de3558 100644
--- a/flatcamGUI/ObjectUI.py
+++ b/flatcamGUI/ObjectUI.py
@@ -446,11 +446,7 @@ class GerberObjectUI(ObjectUI):
# ##### Type of object to be excepted ############
# ################################################
self.type_obj_combo = FCComboBox()
- self.type_obj_combo.addItems(["Gerber", "Geometry"])
-
- # self.type_obj_combo.addItem("Gerber")
- # self.type_obj_combo.addItem("Excellon")
- # self.type_obj_combo.addItem("Geometry")
+ self.type_obj_combo.addItems([_("Gerber"), _("Geometry")])
# we get rid of item1 ("Excellon") as it is not suitable
# self.type_obj_combo.view().setRowHidden(1, True)
diff --git a/flatcamTools/ToolAlignObjects.py b/flatcamTools/ToolAlignObjects.py
index f8f6d14f..863f27c3 100644
--- a/flatcamTools/ToolAlignObjects.py
+++ b/flatcamTools/ToolAlignObjects.py
@@ -80,7 +80,7 @@ class AlignObjects(FlatCAMTool):
self.object_combo = FCComboBox()
self.object_combo.setModel(self.app.collection)
self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.object_combo.set_last = True
+ self.object_combo.is_last = True
self.object_combo.setToolTip(
_("Object to be aligned.")
@@ -116,7 +116,7 @@ class AlignObjects(FlatCAMTool):
self.aligner_object_combo = FCComboBox()
self.aligner_object_combo.setModel(self.app.collection)
self.aligner_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.aligner_object_combo.set_last = True
+ self.aligner_object_combo.is_last = True
self.aligner_object_combo.setToolTip(
_("Object to be aligned to. Aligner.")
@@ -270,11 +270,13 @@ class AlignObjects(FlatCAMTool):
obj_type = {'grb': 0, 'exc': 1}[val]
self.object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.object_combo.setCurrentIndex(0)
+ self.object_combo.obj_type = {'grb': "Gerber", 'exc': "Excellon"}[val]
def on_type_aligner_changed(self, val):
obj_type = {'grb': 0, 'exc': 1}[val]
self.aligner_object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.aligner_object_combo.setCurrentIndex(0)
+ self.aligner_object_combo.obj_type = {'grb': "Gerber", 'exc': "Excellon"}[val]
def on_align(self):
self.app.delete_selection_shape()
diff --git a/flatcamTools/ToolCalibration.py b/flatcamTools/ToolCalibration.py
index 2a3956e3..b2a879fe 100644
--- a/flatcamTools/ToolCalibration.py
+++ b/flatcamTools/ToolCalibration.py
@@ -195,7 +195,6 @@ class ToolCalibration(FlatCAMTool):
self.obj_type_combo = FCComboBox()
self.obj_type_combo.addItem(_("Gerber"))
self.obj_type_combo.addItem(_("Excellon"))
- self.obj_type_combo.setCurrentIndex(1)
self.obj_type_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
self.obj_type_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/drill16.png"))
@@ -206,7 +205,7 @@ class ToolCalibration(FlatCAMTool):
self.object_combo = FCComboBox()
self.object_combo.setModel(self.app.collection)
self.object_combo.setRootModelIndex(self.app.collection.index(1, 0, QtCore.QModelIndex()))
- self.object_combo.set_last = True
+ self.object_combo.is_last = True
self.object_label = QtWidgets.QLabel("%s:" % _("Source object selection"))
self.object_label.setToolTip(
@@ -630,16 +629,13 @@ class ToolCalibration(FlatCAMTool):
self.adj_object_type_combo = FCComboBox()
self.adj_object_type_combo.addItems([_("Gerber"), _("Excellon"), _("Geometry")])
- self.adj_object_type_combo.setCurrentIndex(0)
self.adj_object_type_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
self.adj_object_type_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/drill16.png"))
self.adj_object_type_combo.setItemIcon(2, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
self.adj_object_type_label = QtWidgets.QLabel("%s:" % _("Adjusted object type"))
- self.adj_object_type_label.setToolTip(
- _("Type of the FlatCAM Object to be adjusted.")
- )
+ self.adj_object_type_label.setToolTip(_("Type of the FlatCAM Object to be adjusted."))
grid_lay.addWidget(self.adj_object_type_label, 46, 0, 1, 3)
grid_lay.addWidget(self.adj_object_type_combo, 47, 0, 1, 3)
@@ -647,7 +643,10 @@ class ToolCalibration(FlatCAMTool):
self.adj_object_combo = FCComboBox()
self.adj_object_combo.setModel(self.app.collection)
self.adj_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.adj_object_combo.setCurrentIndex(0)
+ self.adj_object_combo.is_last = True
+ self.adj_object_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Excellon"): "Excellon", _("Geometry"): "Geometry"
+ }[self.adj_object_type_combo.get_value()]
self.adj_object_label = QtWidgets.QLabel("%s:" % _("Adjusted object selection"))
self.adj_object_label.setToolTip(
@@ -787,6 +786,14 @@ class ToolCalibration(FlatCAMTool):
self.skewx_entry.set_value(0.0)
self.skewy_entry.set_value(0.0)
+ # default object selection is Excellon = index_1
+ self.obj_type_combo.setCurrentIndex(1)
+ self.on_obj_type_combo()
+
+ self.adj_object_type_combo.setCurrentIndex(0)
+ self.on_adj_obj_type_combo()
+ # self.adj_object_combo.setCurrentIndex(0)
+
# calibrated object
self.cal_object = None
@@ -795,12 +802,18 @@ class ToolCalibration(FlatCAMTool):
def on_obj_type_combo(self):
obj_type = self.obj_type_combo.currentIndex()
self.object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
- self.object_combo.setCurrentIndex(0)
+ # self.object_combo.setCurrentIndex(0)
+ self.object_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Excellon"): "Excellon"
+ }[self.obj_type_combo.get_value()]
def on_adj_obj_type_combo(self):
obj_type = self.adj_object_type_combo.currentIndex()
self.adj_object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
- self.adj_object_combo.setCurrentIndex(0)
+ # self.adj_object_combo.setCurrentIndex(0)
+ self.adj_object_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Excellon"): "Excellon", _("Geometry"): "Geometry"
+ }[self.adj_object_type_combo.get_value()]
def on_cal_source_radio(self, val):
if val == 'object':
diff --git a/flatcamTools/ToolCopperThieving.py b/flatcamTools/ToolCopperThieving.py
index 3949cdda..7000ca0e 100644
--- a/flatcamTools/ToolCopperThieving.py
+++ b/flatcamTools/ToolCopperThieving.py
@@ -69,7 +69,8 @@ class ToolCopperThieving(FlatCAMTool):
self.grb_object_combo = FCComboBox()
self.grb_object_combo.setModel(self.app.collection)
self.grb_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.grb_object_combo.set_last = True
+ self.grb_object_combo.is_last = True
+ self.grb_object_combo.obj_type = 'Gerber'
self.grbobj_label = QtWidgets.QLabel("%s:" % _("GERBER"))
self.grbobj_label.setToolTip(
@@ -135,35 +136,36 @@ class ToolCopperThieving(FlatCAMTool):
grid_lay.addWidget(self.reference_label, 3, 0)
grid_lay.addWidget(self.reference_radio, 3, 1)
- self.box_combo_type_label = QtWidgets.QLabel('%s:' % _("Ref. Type"))
- self.box_combo_type_label.setToolTip(
+ self.ref_combo_type_label = QtWidgets.QLabel('%s:' % _("Ref. Type"))
+ self.ref_combo_type_label.setToolTip(
_("The type of FlatCAM object to be used as copper thieving reference.\n"
"It can be Gerber, Excellon or Geometry.")
)
- self.box_combo_type = FCComboBox()
- self.box_combo_type.addItem(_("Reference Gerber"))
- self.box_combo_type.addItem(_("Reference Excellon"))
- self.box_combo_type.addItem(_("Reference Geometry"))
+ self.ref_combo_type = FCComboBox()
+ self.ref_combo_type.addItems([_("Gerber"), _("Excellon"), _("Geometry")])
- grid_lay.addWidget(self.box_combo_type_label, 4, 0)
- grid_lay.addWidget(self.box_combo_type, 4, 1)
+ grid_lay.addWidget(self.ref_combo_type_label, 4, 0)
+ grid_lay.addWidget(self.ref_combo_type, 4, 1)
- self.box_combo_label = QtWidgets.QLabel('%s:' % _("Ref. Object"))
- self.box_combo_label.setToolTip(
+ self.ref_combo_label = QtWidgets.QLabel('%s:' % _("Ref. Object"))
+ self.ref_combo_label.setToolTip(
_("The FlatCAM object to be used as non copper clearing reference.")
)
- self.box_combo = FCComboBox()
- self.box_combo.setModel(self.app.collection)
- self.box_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.box_combo.set_last = True
+ self.ref_combo = FCComboBox()
+ self.ref_combo.setModel(self.app.collection)
+ self.ref_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
+ self.ref_combo.is_last = True
+ self.ref_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Excellon"): "Excellon", _("Geometry"): "Geometry"
+ }[self.ref_combo_type.get_value()]
- grid_lay.addWidget(self.box_combo_label, 5, 0)
- grid_lay.addWidget(self.box_combo, 5, 1)
+ grid_lay.addWidget(self.ref_combo_label, 5, 0)
+ grid_lay.addWidget(self.ref_combo, 5, 1)
- self.box_combo.hide()
- self.box_combo_label.hide()
- self.box_combo_type.hide()
- self.box_combo_type_label.hide()
+ self.ref_combo.hide()
+ self.ref_combo_label.hide()
+ self.ref_combo_type.hide()
+ self.ref_combo_type_label.hide()
# Bounding Box Type #
self.bbox_type_radio = RadioSet([
@@ -420,7 +422,8 @@ class ToolCopperThieving(FlatCAMTool):
self.sm_object_combo = FCComboBox()
self.sm_object_combo.setModel(self.app.collection)
self.sm_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.sm_object_combo.set_last = True
+ self.sm_object_combo.is_last = True
+ self.sm_object_combo.obj_type = 'Gerber'
grid_lay_1.addWidget(self.sm_obj_label, 7, 0, 1, 3)
grid_lay_1.addWidget(self.sm_object_combo, 8, 0, 1, 3)
@@ -526,7 +529,7 @@ class ToolCopperThieving(FlatCAMTool):
self.rb_thickness = None
# SIGNALS
- self.box_combo_type.currentIndexChanged.connect(self.on_combo_box_type)
+ self.ref_combo_type.currentIndexChanged.connect(self.on_ref_combo_type_change)
self.reference_radio.group_toggle_fn = self.on_toggle_reference
self.fill_type_radio.activated_custom.connect(self.on_thieving_type)
@@ -594,22 +597,25 @@ class ToolCopperThieving(FlatCAMTool):
self.robber_line = None
self.new_solid_geometry = None
- def on_combo_box_type(self):
- obj_type = self.box_combo_type.currentIndex()
- self.box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
- self.box_combo.setCurrentIndex(0)
+ def on_ref_combo_type_change(self):
+ obj_type = self.ref_combo_type.currentIndex()
+ self.ref_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
+ self.ref_combo.setCurrentIndex(0)
+ self.ref_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Excellon"): "Excellon", _("Geometry"): "Geometry"
+ }[self.ref_combo_type.get_value()]
def on_toggle_reference(self):
if self.reference_radio.get_value() == "itself" or self.reference_radio.get_value() == "area":
- self.box_combo.hide()
- self.box_combo_label.hide()
- self.box_combo_type.hide()
- self.box_combo_type_label.hide()
+ self.ref_combo.hide()
+ self.ref_combo_label.hide()
+ self.ref_combo_type.hide()
+ self.ref_combo_type_label.hide()
else:
- self.box_combo.show()
- self.box_combo_label.show()
- self.box_combo_type.show()
- self.box_combo_type_label.show()
+ self.ref_combo.show()
+ self.ref_combo_label.show()
+ self.ref_combo_type.show()
+ self.ref_combo_type_label.show()
if self.reference_radio.get_value() == "itself":
self.bbox_type_label.show()
@@ -778,7 +784,7 @@ class ToolCopperThieving(FlatCAMTool):
self.mm = self.app.plotcanvas.graph_event_connect('mouse_move', self.on_mouse_move)
elif reference_method == 'box':
- bound_obj_name = self.box_combo.currentText()
+ bound_obj_name = self.ref_combo.currentText()
# Get reference object.
try:
diff --git a/flatcamTools/ToolCutOut.py b/flatcamTools/ToolCutOut.py
index a94d7fa5..9b0ecb3d 100644
--- a/flatcamTools/ToolCutOut.py
+++ b/flatcamTools/ToolCutOut.py
@@ -108,7 +108,7 @@ class CutOut(FlatCAMTool):
self.obj_combo = FCComboBox()
self.obj_combo.setModel(self.app.collection)
self.obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.obj_combo.set_last = True
+ self.obj_combo.is_last = True
grid0.addWidget(self.obj_combo, 3, 0, 1, 2)
@@ -321,7 +321,8 @@ class CutOut(FlatCAMTool):
self.man_object_combo = FCComboBox()
self.man_object_combo.setModel(self.app.collection)
self.man_object_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex()))
- self.man_object_combo.set_last = True
+ self.man_object_combo.is_last = True
+ self.man_object_combo.obj_type = "Geometry"
self.man_object_label = QtWidgets.QLabel('%s:' % _("Geometry Object"))
self.man_object_label.setToolTip(
@@ -416,6 +417,7 @@ class CutOut(FlatCAMTool):
obj_type = {'grb': 0, 'geo': 2}[val]
self.obj_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.obj_combo.setCurrentIndex(0)
+ self.obj_combo.obj_type = {"grb": "Gerber", "geo": "Geometry"}[val]
def run(self, toggle=True):
self.app.report_usage("ToolCutOut()")
diff --git a/flatcamTools/ToolDblSided.py b/flatcamTools/ToolDblSided.py
index 8612932c..75071e88 100644
--- a/flatcamTools/ToolDblSided.py
+++ b/flatcamTools/ToolDblSided.py
@@ -59,7 +59,8 @@ class DblSidedTool(FlatCAMTool):
self.gerber_object_combo = FCComboBox()
self.gerber_object_combo.setModel(self.app.collection)
self.gerber_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.gerber_object_combo.set_last = True
+ self.gerber_object_combo.is_last = True
+ self.gerber_object_combo.obj_type = "Gerber"
self.botlay_label = QtWidgets.QLabel("%s:" % _("GERBER"))
self.botlay_label.setToolTip('%s.' % _("Gerber to be mirrored"))
@@ -86,7 +87,8 @@ class DblSidedTool(FlatCAMTool):
self.exc_object_combo = FCComboBox()
self.exc_object_combo.setModel(self.app.collection)
self.exc_object_combo.setRootModelIndex(self.app.collection.index(1, 0, QtCore.QModelIndex()))
- self.exc_object_combo.set_last = True
+ self.exc_object_combo.is_last = True
+ self.exc_object_combo.obj_type = "Excellon"
self.excobj_label = QtWidgets.QLabel("%s:" % _("EXCELLON"))
self.excobj_label.setToolTip(_("Excellon Object to be mirrored."))
@@ -113,7 +115,8 @@ class DblSidedTool(FlatCAMTool):
self.geo_object_combo = FCComboBox()
self.geo_object_combo.setModel(self.app.collection)
self.geo_object_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex()))
- self.geo_object_combo.set_last = True
+ self.geo_object_combo.is_last = True
+ self.geo_object_combo.obj_type = "Geometry"
self.geoobj_label = QtWidgets.QLabel("%s:" % _("GEOMETRY"))
self.geoobj_label.setToolTip(
@@ -232,7 +235,7 @@ class DblSidedTool(FlatCAMTool):
self.box_combo = FCComboBox()
self.box_combo.setModel(self.app.collection)
self.box_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.box_combo.set_last = True
+ self.box_combo.is_last = True
self.box_combo.hide()
@@ -555,14 +558,16 @@ class DblSidedTool(FlatCAMTool):
self.align_ref_label_val.set_value('%.*f' % (self.decimals, 0.0))
+ # run once to make sure that the obj_type attribute is updated in the FCComboBox
+ self.box_type_radio.set_value('grb')
+ self.on_combo_box_type('grb')
+
def on_combo_box_type(self, val):
- obj_type = {
- 'grb': 0,
- 'exc': 1,
- 'geo': 2
- }[val]
+ obj_type = {'grb': 0, 'exc': 1, 'geo': 2}[val]
self.box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.box_combo.setCurrentIndex(0)
+ self.box_combo.obj_type = {
+ "grb": "Gerber", "exc": "Excellon", "geo": "Geometry"}[val]
def on_create_alignment_holes(self):
axis = self.align_axis_radio.get_value()
diff --git a/flatcamTools/ToolExtractDrills.py b/flatcamTools/ToolExtractDrills.py
index 39e287a4..aa4a7adc 100644
--- a/flatcamTools/ToolExtractDrills.py
+++ b/flatcamTools/ToolExtractDrills.py
@@ -55,7 +55,8 @@ class ToolExtractDrills(FlatCAMTool):
self.gerber_object_combo = FCComboBox()
self.gerber_object_combo.setModel(self.app.collection)
self.gerber_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.gerber_object_combo.set_last = True
+ self.gerber_object_combo.is_last = True
+ self.gerber_object_combo.obj_type = "Gerber"
self.grb_label = QtWidgets.QLabel("%s:" % _("GERBER"))
self.grb_label.setToolTip('%s.' % _("Gerber from which to extract drill holes"))
diff --git a/flatcamTools/ToolFiducials.py b/flatcamTools/ToolFiducials.py
index 1586f010..4c9070e9 100644
--- a/flatcamTools/ToolFiducials.py
+++ b/flatcamTools/ToolFiducials.py
@@ -253,7 +253,8 @@ class ToolFiducials(FlatCAMTool):
self.grb_object_combo = FCComboBox()
self.grb_object_combo.setModel(self.app.collection)
self.grb_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.grb_object_combo.set_last = True
+ self.grb_object_combo.is_last = True
+ self.grb_object_combo.obj_type = "Gerber"
self.grbobj_label = QtWidgets.QLabel("%s:" % _("Copper Gerber"))
self.grbobj_label.setToolTip(
@@ -289,7 +290,8 @@ class ToolFiducials(FlatCAMTool):
self.sm_object_combo = FCComboBox()
self.sm_object_combo.setModel(self.app.collection)
self.sm_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.sm_object_combo.set_last = True
+ self.sm_object_combo.is_last = True
+ self.sm_object_combo.obj_type = "Gerber"
grid_lay.addWidget(self.sm_object_label, 13, 0, 1, 2)
grid_lay.addWidget(self.sm_object_combo, 14, 0, 1, 2)
diff --git a/flatcamTools/ToolFilm.py b/flatcamTools/ToolFilm.py
index 98a9f1d3..252cb0fb 100644
--- a/flatcamTools/ToolFilm.py
+++ b/flatcamTools/ToolFilm.py
@@ -66,10 +66,7 @@ class Film(FlatCAMTool):
# Type of object for which to create the film
self.tf_type_obj_combo = FCComboBox()
- self.tf_type_obj_combo.addItems(["Gerber", "Geometry"])
- # self.tf_type_obj_combo.addItem("Gerber")
- # self.tf_type_obj_combo.addItem("Excellon")
- # self.tf_type_obj_combo.addItem("Geometry")
+ self.tf_type_obj_combo.addItems([_("Gerber"), _("Geometry")])
# we get rid of item1 ("Excellon") as it is not suitable for creating film
# self.tf_type_obj_combo.view().setRowHidden(1, True)
@@ -90,7 +87,7 @@ class Film(FlatCAMTool):
self.tf_object_combo = FCComboBox()
self.tf_object_combo.setModel(self.app.collection)
self.tf_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.tf_object_combo.set_last = True
+ self.tf_object_combo.is_last = True
self.tf_object_label = QtWidgets.QLabel('%s:' % _("Film Object"))
self.tf_object_label.setToolTip(
@@ -102,7 +99,7 @@ class Film(FlatCAMTool):
# Type of Box Object to be used as an envelope for film creation
# Within this we can create negative
self.tf_type_box_combo = FCComboBox()
- self.tf_type_box_combo.addItems(["Gerber", "Geometry"])
+ self.tf_type_box_combo.addItems([_("Gerber"), _("Geometry")])
# self.tf_type_box_combo.addItem("Gerber")
# self.tf_type_box_combo.addItem("Excellon")
@@ -127,7 +124,7 @@ class Film(FlatCAMTool):
self.tf_box_combo = FCComboBox()
self.tf_box_combo.setModel(self.app.collection)
self.tf_box_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.tf_box_combo.set_last = True
+ self.tf_box_combo.is_last = True
self.tf_box_combo_label = QtWidgets.QLabel('%s:' % _("Box Object"))
self.tf_box_combo_label.setToolTip(
@@ -372,7 +369,9 @@ class Film(FlatCAMTool):
self.exc_combo = FCComboBox()
self.exc_combo.setModel(self.app.collection)
self.exc_combo.setRootModelIndex(self.app.collection.index(1, 0, QtCore.QModelIndex()))
- self.exc_combo.set_last = True
+ self.exc_combo.is_last = True
+ self.exc_combo.obj_type = "Excellon"
+
punch_grid.addWidget(self.exc_label, 1, 0)
punch_grid.addWidget(self.exc_combo, 1, 1)
@@ -542,15 +541,21 @@ class Film(FlatCAMTool):
self.file_type_radio.activated_custom.connect(self.on_file_type)
self.reset_button.clicked.connect(self.set_tool_ui)
- def on_type_obj_index_changed(self, index):
+ def on_type_obj_index_changed(self):
obj_type = self.tf_type_obj_combo.currentIndex()
self.tf_object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.tf_object_combo.setCurrentIndex(0)
+ self.tf_object_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Geometry"): "Geometry"
+ }[self.tf_type_obj_combo.get_value()]
- def on_type_box_index_changed(self, index):
+ def on_type_box_index_changed(self):
obj_type = self.tf_type_box_combo.currentIndex()
self.tf_box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.tf_box_combo.setCurrentIndex(0)
+ self.tf_box_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Geometry"): "Geometry"
+ }[self.tf_type_obj_combo.get_value()]
def run(self, toggle=True):
self.app.report_usage("ToolFilm()")
@@ -613,6 +618,10 @@ class Film(FlatCAMTool):
self.orientation_radio.set_value(self.app.defaults["tools_film_orientation"])
self.pagesize_combo.set_value(self.app.defaults["tools_film_pagesize"])
+ # run once to update the obj_type attribute in the FCCombobox so the last object is showed in cb
+ self.on_type_obj_index_changed()
+ self.on_type_box_index_changed()
+
def on_film_type(self, val):
type_of_film = val
diff --git a/flatcamTools/ToolImage.py b/flatcamTools/ToolImage.py
index 8ac9ed89..603fb9e1 100644
--- a/flatcamTools/ToolImage.py
+++ b/flatcamTools/ToolImage.py
@@ -46,8 +46,7 @@ class ToolImage(FlatCAMTool):
# Type of object to create for the image
self.tf_type_obj_combo = FCComboBox()
- self.tf_type_obj_combo.addItem("Gerber")
- self.tf_type_obj_combo.addItem("Geometry")
+ self.tf_type_obj_combo.addItems([_("Gerber"), _("Geometry")])
self.tf_type_obj_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
self.tf_type_obj_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
@@ -238,7 +237,7 @@ class ToolImage(FlatCAMTool):
filename, _f = QtWidgets.QFileDialog.getOpenFileName(caption=_("Import IMAGE"), filter=filter)
filename = str(filename)
- type_obj = self.tf_type_obj_combo.get_value().lower()
+ type_obj = self.tf_type_obj_combo.get_value()
dpi = self.dpi_entry.get_value()
mode = self.image_type.get_value()
mask = [self.mask_bw_entry.get_value(), self.mask_r_entry.get_value(), self.mask_g_entry.get_value(),
@@ -250,7 +249,7 @@ class ToolImage(FlatCAMTool):
self.app.worker_task.emit({'fcn': self.import_image,
'params': [filename, type_obj, dpi, mode, mask]})
- def import_image(self, filename, o_type='gerber', dpi=96, mode='black', mask=None, outname=None):
+ def import_image(self, filename, o_type=_("Gerber"), dpi=96, mode='black', mask=None, outname=None):
"""
Adds a new Geometry Object to the projects and populates
it with shapes extracted from the SVG file.
@@ -269,10 +268,10 @@ class ToolImage(FlatCAMTool):
if mask is None:
mask = [250, 250, 250, 250]
- if o_type is None or o_type == "geometry":
+ if o_type is None or o_type == _("Geometry"):
obj_type = "geometry"
- elif o_type == "gerber":
- obj_type = o_type
+ elif o_type == _("Gerber"):
+ obj_type = "gerber"
else:
self.app.inform.emit('[ERROR_NOTCL] %s' %
_("Not supported type is picked as parameter. "
diff --git a/flatcamTools/ToolInvertGerber.py b/flatcamTools/ToolInvertGerber.py
index 46124730..ffacf098 100644
--- a/flatcamTools/ToolInvertGerber.py
+++ b/flatcamTools/ToolInvertGerber.py
@@ -66,7 +66,8 @@ class ToolInvertGerber(FlatCAMTool):
self.gerber_combo = FCComboBox()
self.gerber_combo.setModel(self.app.collection)
self.gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.gerber_combo.set_last = True
+ self.gerber_combo.is_last = True
+ self.gerber_combo.obj_type = "Gerber"
self.gerber_label = QtWidgets.QLabel('%s:' % _("GERBER"))
self.gerber_label.setToolTip(
diff --git a/flatcamTools/ToolNCC.py b/flatcamTools/ToolNCC.py
index 1203a3c5..2873be89 100644
--- a/flatcamTools/ToolNCC.py
+++ b/flatcamTools/ToolNCC.py
@@ -71,15 +71,15 @@ class NonCopperClear(FlatCAMTool, Gerber):
# ################################################
# ##### Type of object to be copper cleaned ######
# ################################################
- # self.type_obj_combo = FCComboBox()
- # self.type_obj_combo.addItem("Gerber")
- # self.type_obj_combo.addItem("Excellon")
- # self.type_obj_combo.addItem("Geometry")
+ # self.type_obj_radio = FCComboBox()
+ # self.type_obj_radio.addItem("Gerber")
+ # self.type_obj_radio.addItem("Excellon")
+ # self.type_obj_radio.addItem("Geometry")
#
# # we get rid of item1 ("Excellon") as it is not suitable
- # self.type_obj_combo.view().setRowHidden(1, True)
- # self.type_obj_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
- # self.type_obj_combo.setItemIcon(2, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
+ # self.type_obj_radio.view().setRowHidden(1, True)
+ # self.type_obj_radio.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
+ # self.type_obj_radio.setItemIcon(2, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
self.type_obj_combo_label = QtWidgets.QLabel('%s:' % _("Obj Type"))
self.type_obj_combo_label.setToolTip(
@@ -90,10 +90,10 @@ class NonCopperClear(FlatCAMTool, Gerber):
)
self.type_obj_combo_label.setMinimumWidth(60)
- self.type_obj_combo = RadioSet([{'label': "Geometry", 'value': 'geometry'},
- {'label': "Gerber", 'value': 'gerber'}])
+ self.type_obj_radio = RadioSet([{'label': _("Geometry"), 'value': 'geometry'},
+ {'label': _("Gerber"), 'value': 'gerber'}])
- form_layout.addRow(self.type_obj_combo_label, self.type_obj_combo)
+ form_layout.addRow(self.type_obj_combo_label, self.type_obj_radio)
# ################################################
# ##### The object to be copper cleaned ##########
@@ -102,7 +102,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.object_combo.setModel(self.app.collection)
self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
# self.object_combo.setCurrentIndex(1)
- self.object_combo.set_last = True
+ self.object_combo.is_last = True
self.object_label = QtWidgets.QLabel('%s:' % _("Object"))
self.object_label.setToolTip(_("Object to be cleared of excess copper."))
@@ -546,31 +546,30 @@ class NonCopperClear(FlatCAMTool, Gerber):
form1 = QtWidgets.QFormLayout()
self.grid3.addLayout(form1, 28, 0, 1, 2)
- self.box_combo_type_label = QtWidgets.QLabel('%s:' % _("Ref. Type"))
- self.box_combo_type_label.setToolTip(
+ self.reference_combo_type_label = QtWidgets.QLabel('%s:' % _("Ref. Type"))
+ self.reference_combo_type_label.setToolTip(
_("The type of FlatCAM object to be used as non copper clearing reference.\n"
"It can be Gerber, Excellon or Geometry.")
)
- self.box_combo_type = FCComboBox()
- self.box_combo_type.addItem(_("Reference Gerber"))
- self.box_combo_type.addItem(_("Reference Excellon"))
- self.box_combo_type.addItem(_("Reference Geometry"))
- form1.addRow(self.box_combo_type_label, self.box_combo_type)
+ self.reference_combo_type = FCComboBox()
+ self.reference_combo_type.addItems([_("Gerber"), _("Excellon"), _("Geometry")])
- self.box_combo_label = QtWidgets.QLabel('%s:' % _("Ref. Object"))
- self.box_combo_label.setToolTip(
+ form1.addRow(self.reference_combo_type_label, self.reference_combo_type)
+
+ self.reference_combo_label = QtWidgets.QLabel('%s:' % _("Ref. Object"))
+ self.reference_combo_label.setToolTip(
_("The FlatCAM object to be used as non copper clearing reference.")
)
- self.box_combo = FCComboBox()
- self.box_combo.setModel(self.app.collection)
- self.box_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.box_combo.set_last = True
- form1.addRow(self.box_combo_label, self.box_combo)
+ self.reference_combo = FCComboBox()
+ self.reference_combo.setModel(self.app.collection)
+ self.reference_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
+ self.reference_combo.is_last = True
+ form1.addRow(self.reference_combo_label, self.reference_combo)
- self.box_combo.hide()
- self.box_combo_label.hide()
- self.box_combo_type.hide()
- self.box_combo_type_label.hide()
+ self.reference_combo.hide()
+ self.reference_combo_label.hide()
+ self.reference_combo_type.hide()
+ self.reference_combo_type_label.hide()
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
@@ -706,13 +705,13 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.op_radio.activated_custom.connect(self.on_operation_change)
- self.box_combo_type.currentIndexChanged.connect(self.on_combo_box_type)
- self.select_combo.group_toggle_fn = self.on_toggle_reference
+ self.reference_combo_type.currentIndexChanged.connect(self.on_reference_combo_changed)
+ self.select_combo.currentIndexChanged.connect(self.on_toggle_reference)
self.ncc_rest_cb.stateChanged.connect(self.on_rest_machining_check)
self.ncc_order_radio.activated_custom[str].connect(self.on_order_changed)
- self.type_obj_combo.activated_custom.connect(self.on_type_obj_index_changed)
+ self.type_obj_radio.activated_custom.connect(self.on_type_obj_index_changed)
self.apply_param_to_all.clicked.connect(self.on_apply_param_to_all_clicked)
@@ -722,6 +721,9 @@ class NonCopperClear(FlatCAMTool, Gerber):
obj_type = 0 if val == 'gerber' else 2
self.object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.object_combo.setCurrentIndex(0)
+ self.object_combo.obj_type = {
+ "gerber": "Gerber", "geometry": "Geometry"
+ }[self.type_obj_radio.get_value()]
def on_operation_change(self, val):
if val == 'iso':
@@ -910,6 +912,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
def run(self, toggle=True):
self.app.report_usage("ToolNonCopperClear()")
+ log.debug("ToolNCC().run() was launched ...")
if toggle:
# if the splitter is hidden, display it, else hide it but only if the current widget is the same
@@ -948,7 +951,12 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.tools_frame.show()
- self.type_obj_combo.set_value('gerber')
+ self.type_obj_radio.set_value('gerber')
+
+ # run those once so the obj_type attribute is updated for the FCComboboxes
+ # so the last loaded object is displayed
+ self.on_type_obj_index_changed(val="gerber")
+ self.on_reference_combo_changed()
self.op_radio.set_value(self.app.defaults["tools_nccoperation"])
self.ncc_order_radio.set_value(self.app.defaults["tools_nccorder"])
@@ -1254,22 +1262,25 @@ class NonCopperClear(FlatCAMTool, Gerber):
if self.tool_type_radio.get_value() == 'C1':
self.old_tool_dia = self.addtool_entry.get_value()
- def on_combo_box_type(self):
- obj_type = self.box_combo_type.currentIndex()
- self.box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
- self.box_combo.setCurrentIndex(0)
+ def on_reference_combo_changed(self):
+ obj_type = self.reference_combo_type.currentIndex()
+ self.reference_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
+ self.reference_combo.setCurrentIndex(0)
+ self.reference_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Excellon"): "Excellon", _("Geometry"): "Geometry"
+ }[self.reference_combo_type.get_value()]
def on_toggle_reference(self):
if self.select_combo.get_value() == _("Itself") or self.select_combo.get_value() == _("Area Selection"):
- self.box_combo.hide()
- self.box_combo_label.hide()
- self.box_combo_type.hide()
- self.box_combo_type_label.hide()
+ self.reference_combo.hide()
+ self.reference_combo_label.hide()
+ self.reference_combo_type.hide()
+ self.reference_combo_type_label.hide()
else:
- self.box_combo.show()
- self.box_combo_label.show()
- self.box_combo_type.show()
- self.box_combo_type_label.show()
+ self.reference_combo.show()
+ self.reference_combo_label.show()
+ self.reference_combo_type.show()
+ self.reference_combo_type_label.show()
def on_order_changed(self, order):
if order != 'no':
@@ -1567,7 +1578,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
"use a number."))
continue
- if self.tools_table.cellWidget(x.row(), 4).currentText() == 'iso_op':
+ if self.op_radio.get_value() == _("Isolation"):
self.iso_dia_list.append(self.tooldia)
else:
self.ncc_dia_list.append(self.tooldia)
@@ -1606,7 +1617,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_mouse_release)
self.mm = self.app.plotcanvas.graph_event_connect('mouse_move', self.on_mouse_move)
elif self.select_method == 'box':
- self.bound_obj_name = self.box_combo.currentText()
+ self.bound_obj_name = self.reference_combo.currentText()
# Get source object.
try:
self.bound_obj = self.app.collection.get_by_name(self.bound_obj_name)
diff --git a/flatcamTools/ToolOptimal.py b/flatcamTools/ToolOptimal.py
index 0cbbf0f6..7dcbf121 100644
--- a/flatcamTools/ToolOptimal.py
+++ b/flatcamTools/ToolOptimal.py
@@ -66,7 +66,8 @@ class ToolOptimal(FlatCAMTool):
self.gerber_object_combo = FCComboBox()
self.gerber_object_combo.setModel(self.app.collection)
self.gerber_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.gerber_object_combo.set_last = True
+ self.gerber_object_combo.is_last = True
+ self.gerber_object_combo.obj_type = "Gerber"
self.gerber_object_label = QtWidgets.QLabel("%s:" % _("GERBER"))
self.gerber_object_label.setToolTip(
diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py
index 0c436f58..3951a5cc 100644
--- a/flatcamTools/ToolPaint.py
+++ b/flatcamTools/ToolPaint.py
@@ -97,7 +97,7 @@ class ToolPaint(FlatCAMTool, Gerber):
self.obj_combo = FCComboBox()
self.obj_combo.setModel(self.app.collection)
self.obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.obj_combo.set_last = True
+ self.obj_combo.is_last = True
self.object_label = QtWidgets.QLabel('%s:' % _("Object"))
self.object_label.setToolTip(_("Object to be painted."))
@@ -491,31 +491,30 @@ class ToolPaint(FlatCAMTool, Gerber):
form1 = QtWidgets.QFormLayout()
grid4.addLayout(form1, 20, 0, 1, 2)
- self.box_combo_type_label = QtWidgets.QLabel('%s:' % _("Ref. Type"))
- self.box_combo_type_label.setToolTip(
+ self.reference_type_label = QtWidgets.QLabel('%s:' % _("Ref. Type"))
+ self.reference_type_label.setToolTip(
_("The type of FlatCAM object to be used as paint reference.\n"
"It can be Gerber, Excellon or Geometry.")
)
- self.box_combo_type = FCComboBox()
- self.box_combo_type.addItem(_("Reference Gerber"))
- self.box_combo_type.addItem(_("Reference Excellon"))
- self.box_combo_type.addItem(_("Reference Geometry"))
- form1.addRow(self.box_combo_type_label, self.box_combo_type)
+ self.reference_type_combo = FCComboBox()
+ self.reference_type_combo.addItems([_("Gerber"), _("Excellon"), _("Geometry")])
- self.box_combo_label = QtWidgets.QLabel('%s:' % _("Ref. Object"))
- self.box_combo_label.setToolTip(
+ form1.addRow(self.reference_type_label, self.reference_type_combo)
+
+ self.reference_combo_label = QtWidgets.QLabel('%s:' % _("Ref. Object"))
+ self.reference_combo_label.setToolTip(
_("The FlatCAM object to be used as non copper clearing reference.")
)
- self.box_combo = FCComboBox()
- self.box_combo.setModel(self.app.collection)
- self.box_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.box_combo.set_last = True
- form1.addRow(self.box_combo_label, self.box_combo)
+ self.reference_combo = FCComboBox()
+ self.reference_combo.setModel(self.app.collection)
+ self.reference_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
+ self.reference_combo.is_last = True
+ form1.addRow(self.reference_combo_label, self.reference_combo)
- self.box_combo.hide()
- self.box_combo_label.hide()
- self.box_combo_type.hide()
- self.box_combo_type_label.hide()
+ self.reference_combo.hide()
+ self.reference_combo_label.hide()
+ self.reference_type_combo.hide()
+ self.reference_type_label.hide()
# GO Button
self.generate_paint_button = QtWidgets.QPushButton(_('Generate Geometry'))
@@ -633,7 +632,7 @@ class ToolPaint(FlatCAMTool, Gerber):
self.order_radio.activated_custom[str].connect(self.on_order_changed)
self.rest_cb.stateChanged.connect(self.on_rest_machining_check)
- self.box_combo_type.currentIndexChanged.connect(self.on_combo_box_type)
+ self.reference_type_combo.currentIndexChanged.connect(self.on_reference_combo_changed)
self.type_obj_combo.activated_custom.connect(self.on_type_obj_changed)
self.apply_param_to_all.clicked.connect(self.on_apply_param_to_all_clicked)
@@ -660,6 +659,7 @@ class ToolPaint(FlatCAMTool, Gerber):
obj_type = 0 if val == 'gerber' else 2
self.obj_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.obj_combo.setCurrentIndex(0)
+ self.obj_combo.obj_type = {"gerber": "Gerber", "geometry": "Geometry"}[val]
idx = self.paintmethod_combo.findText(_("Laser_lines"))
if self.type_obj_combo.get_value().lower() == 'gerber':
@@ -669,6 +669,14 @@ class ToolPaint(FlatCAMTool, Gerber):
if self.paintmethod_combo.get_value() == _("Laser_lines"):
self.paintmethod_combo.set_value(_("Lines"))
+ def on_reference_combo_changed(self):
+ obj_type = self.reference_type_combo.currentIndex()
+ self.reference_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
+ self.reference_combo.setCurrentIndex(0)
+ self.reference_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Excellon"): "Excellon", _("Geometry"): "Geometry"
+ }[self.reference_type_combo.get_value()]
+
def install(self, icon=None, separator=None, **kwargs):
FlatCAMTool.install(self, icon, separator, shortcut='ALT+P', **kwargs)
@@ -888,15 +896,15 @@ class ToolPaint(FlatCAMTool, Gerber):
def on_selection(self):
if self.selectmethod_combo.get_value() == _("Reference Object"):
- self.box_combo.show()
- self.box_combo_label.show()
- self.box_combo_type.show()
- self.box_combo_type_label.show()
+ self.reference_combo.show()
+ self.reference_combo_label.show()
+ self.reference_type_combo.show()
+ self.reference_type_label.show()
else:
- self.box_combo.hide()
- self.box_combo_label.hide()
- self.box_combo_type.hide()
- self.box_combo_type_label.hide()
+ self.reference_combo.hide()
+ self.reference_combo_label.hide()
+ self.reference_type_combo.hide()
+ self.reference_type_label.hide()
if self.selectmethod_combo.get_value() == _("Polygon Selection"):
# disable rest-machining for single polygon painting
@@ -997,6 +1005,11 @@ class ToolPaint(FlatCAMTool, Gerber):
# make the default object type, "Geometry"
self.type_obj_combo.set_value("geometry")
+ # run those once so the obj_type attribute is updated in the FCComboBoxes
+ # to make sure that the last loaded object is displayed in the combobox
+ self.on_type_obj_changed(val="geometry")
+ self.on_reference_combo_changed()
+
try:
diameters = [float(self.app.defaults["tools_painttooldia"])]
except (ValueError, TypeError):
@@ -1103,11 +1116,6 @@ class ToolPaint(FlatCAMTool, Gerber):
self.ui_connect()
- def on_combo_box_type(self):
- obj_type = self.box_combo_type.currentIndex()
- self.box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
- self.box_combo.setCurrentIndex(0)
-
def on_tool_add(self, dia=None, muted=None):
self.blockSignals(True)
@@ -1411,7 +1419,7 @@ class ToolPaint(FlatCAMTool, Gerber):
self.mr = self.app.plotcanvas.graph_event_connect('mouse_release', self.on_mouse_release)
self.mm = self.app.plotcanvas.graph_event_connect('mouse_move', self.on_mouse_move)
elif self.select_method == _("Reference Object"):
- self.bound_obj_name = self.box_combo.currentText()
+ self.bound_obj_name = self.reference_combo.currentText()
# Get source object.
try:
self.bound_obj = self.app.collection.get_by_name(self.bound_obj_name)
diff --git a/flatcamTools/ToolPanelize.py b/flatcamTools/ToolPanelize.py
index 0b7f5fec..fe381fc0 100644
--- a/flatcamTools/ToolPanelize.py
+++ b/flatcamTools/ToolPanelize.py
@@ -83,7 +83,7 @@ class Panelize(FlatCAMTool):
self.object_combo = FCComboBox()
self.object_combo.setModel(self.app.collection)
self.object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.object_combo.set_last = True
+ self.object_combo.is_last = True
self.object_combo.setToolTip(
_("Object to be panelized. This means that it will\n"
@@ -115,10 +115,7 @@ class Panelize(FlatCAMTool):
# Type of Box Object to be used as an envelope for panelization
self.type_box_combo = FCComboBox()
- self.type_box_combo.addItems(["Gerber", "Geometry"])
- # self.type_box_combo.addItem("Gerber")
- # self.type_box_combo.addItem("Excellon")
- # self.type_box_combo.addItem("Geometry")
+ self.type_box_combo.addItems([_("Gerber"), _("Geometry")])
# we get rid of item1 ("Excellon") as it is not suitable for use as a "box" for panelizing
# self.type_box_combo.view().setRowHidden(1, True)
@@ -138,7 +135,7 @@ class Panelize(FlatCAMTool):
self.box_combo = FCComboBox()
self.box_combo.setModel(self.app.collection)
self.box_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.box_combo.set_last = True
+ self.box_combo.is_last = True
self.box_combo.setToolTip(
_("The actual object that is used a container for the\n "
@@ -364,10 +361,18 @@ class Panelize(FlatCAMTool):
self.app.defaults["tools_panelize_panel_type"] else 'gerber'
self.panel_type_radio.set_value(panel_type)
+ # run once the following so the obj_type attribute is updated in the FCComboBoxes
+ # such that the last loaded object is populated in the combo boxes
+ self.on_type_obj_index_changed()
+ self.on_type_box_index_changed()
+
def on_type_obj_index_changed(self):
obj_type = self.type_obj_combo.currentIndex()
self.object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.object_combo.setCurrentIndex(0)
+ self.object_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Excellon"): "Excellon", _("Geometry"): "Geometry"
+ }[self.type_obj_combo.get_value()]
# hide the panel type for Excellons, the panel can be only of type Geometry
if self.type_obj_combo.currentText() != 'Excellon':
@@ -382,6 +387,9 @@ class Panelize(FlatCAMTool):
obj_type = self.type_box_combo.currentIndex()
self.box_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.box_combo.setCurrentIndex(0)
+ self.box_combo.obj_type = {
+ _("Gerber"): "Gerber", _("Geometry"): "Geometry"
+ }[self.type_box_combo.get_value()]
def on_reference_radio_changed(self, current_val):
if current_val == 'object':
diff --git a/flatcamTools/ToolPunchGerber.py b/flatcamTools/ToolPunchGerber.py
index c4c9ae61..8c094dbf 100644
--- a/flatcamTools/ToolPunchGerber.py
+++ b/flatcamTools/ToolPunchGerber.py
@@ -58,7 +58,8 @@ class ToolPunchGerber(FlatCAMTool):
self.gerber_object_combo = FCComboBox()
self.gerber_object_combo.setModel(self.app.collection)
self.gerber_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.gerber_object_combo.set_last = True
+ self.gerber_object_combo.is_last = True
+ self.gerber_object_combo.obj_type = "Gerber"
self.grb_label = QtWidgets.QLabel("%s:" % _("GERBER"))
self.grb_label.setToolTip('%s.' % _("Gerber into which to punch holes"))
@@ -168,7 +169,8 @@ class ToolPunchGerber(FlatCAMTool):
self.exc_combo = FCComboBox()
self.exc_combo.setModel(self.app.collection)
self.exc_combo.setRootModelIndex(self.app.collection.index(1, 0, QtCore.QModelIndex()))
- self.exc_combo.set_last = True
+ self.exc_combo.is_last = True
+ self.exc_combo.obj_type = "Excellon"
grid0.addWidget(self.exc_label, 3, 0, 1, 2)
grid0.addWidget(self.exc_combo, 4, 0, 1, 2)
diff --git a/flatcamTools/ToolQRCode.py b/flatcamTools/ToolQRCode.py
index 67add5c9..b71d477e 100644
--- a/flatcamTools/ToolQRCode.py
+++ b/flatcamTools/ToolQRCode.py
@@ -72,9 +72,10 @@ class QRCode(FlatCAMTool):
self.grb_object_combo = FCComboBox()
self.grb_object_combo.setModel(self.app.collection)
self.grb_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.grb_object_combo.set_last = True
+ self.grb_object_combo.is_last = True
+ self.grb_object_combo.obj_type = "Gerber"
- self.grbobj_label = QtWidgets.QLabel("%s:" % _("GERBER"))
+ self.grbobj_label = QtWidgets.QLabel("%s:" % _("Object"))
self.grbobj_label.setToolTip(
_("Gerber Object to which the QRCode will be added.")
)
diff --git a/flatcamTools/ToolRulesCheck.py b/flatcamTools/ToolRulesCheck.py
index 9deb26be..eb236381 100644
--- a/flatcamTools/ToolRulesCheck.py
+++ b/flatcamTools/ToolRulesCheck.py
@@ -72,7 +72,8 @@ class RulesCheck(FlatCAMTool):
self.copper_t_object = FCComboBox()
self.copper_t_object.setModel(self.app.collection)
self.copper_t_object.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.copper_t_object.set_last = True
+ self.copper_t_object.is_last = True
+ self.copper_t_object.obj_type = "Gerber"
self.copper_t_object_lbl = QtWidgets.QLabel('%s:' % _("Top"))
self.copper_t_object_lbl.setToolTip(
@@ -89,7 +90,8 @@ class RulesCheck(FlatCAMTool):
self.copper_b_object = FCComboBox()
self.copper_b_object.setModel(self.app.collection)
self.copper_b_object.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.copper_b_object.set_last = True
+ self.copper_b_object.is_last = True
+ self.copper_b_object.obj_type = "Gerber"
self.copper_b_object_lbl = QtWidgets.QLabel('%s:' % _("Bottom"))
self.copper_b_object_lbl.setToolTip(
@@ -106,7 +108,8 @@ class RulesCheck(FlatCAMTool):
self.sm_t_object = FCComboBox()
self.sm_t_object.setModel(self.app.collection)
self.sm_t_object.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.sm_t_object.set_last = True
+ self.sm_t_object.is_last = True
+ self.sm_t_object.obj_type = "Gerber"
self.sm_t_object_lbl = QtWidgets.QLabel('%s:' % _("SM Top"))
self.sm_t_object_lbl.setToolTip(
@@ -123,7 +126,8 @@ class RulesCheck(FlatCAMTool):
self.sm_b_object = FCComboBox()
self.sm_b_object.setModel(self.app.collection)
self.sm_b_object.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.sm_b_object.set_last = True
+ self.sm_b_object.is_last = True
+ self.sm_b_object.obj_type = "Gerber"
self.sm_b_object_lbl = QtWidgets.QLabel('%s:' % _("SM Bottom"))
self.sm_b_object_lbl.setToolTip(
@@ -140,7 +144,8 @@ class RulesCheck(FlatCAMTool):
self.ss_t_object = FCComboBox()
self.ss_t_object.setModel(self.app.collection)
self.ss_t_object.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.ss_t_object.set_last = True
+ self.ss_t_object.is_last = True
+ self.ss_t_object.obj_type = "Gerber"
self.ss_t_object_lbl = QtWidgets.QLabel('%s:' % _("Silk Top"))
self.ss_t_object_lbl.setToolTip(
@@ -157,7 +162,8 @@ class RulesCheck(FlatCAMTool):
self.ss_b_object = FCComboBox()
self.ss_b_object.setModel(self.app.collection)
self.ss_b_object.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.ss_b_object.set_last = True
+ self.ss_b_object.is_last = True
+ self.ss_b_object.obj_type = "Gerber"
self.ss_b_object_lbl = QtWidgets.QLabel('%s:' % _("Silk Bottom"))
self.ss_b_object_lbl.setToolTip(
@@ -174,7 +180,8 @@ class RulesCheck(FlatCAMTool):
self.outline_object = FCComboBox()
self.outline_object.setModel(self.app.collection)
self.outline_object.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.outline_object.set_last = True
+ self.outline_object.is_last = True
+ self.outline_object.obj_type = "Gerber"
self.outline_object_lbl = QtWidgets.QLabel('%s:' % _("Outline"))
self.outline_object_lbl.setToolTip(
@@ -200,7 +207,8 @@ class RulesCheck(FlatCAMTool):
self.e1_object = FCComboBox()
self.e1_object.setModel(self.app.collection)
self.e1_object.setRootModelIndex(self.app.collection.index(1, 0, QtCore.QModelIndex()))
- self.e1_object.set_last = True
+ self.e1_object.is_last = True
+ self.e1_object.obj_type = "Excellon"
self.e1_object_lbl = QtWidgets.QLabel('%s:' % _("Excellon 1"))
self.e1_object_lbl.setToolTip(
@@ -218,7 +226,8 @@ class RulesCheck(FlatCAMTool):
self.e2_object = FCComboBox()
self.e2_object.setModel(self.app.collection)
self.e2_object.setRootModelIndex(self.app.collection.index(1, 0, QtCore.QModelIndex()))
- self.e2_object.set_last = True
+ self.e2_object.is_last = True
+ self.e2_object.obj_type = "Excellon"
self.e2_object_lbl = QtWidgets.QLabel('%s:' % _("Excellon 2"))
self.e2_object_lbl.setToolTip(
diff --git a/flatcamTools/ToolSolderPaste.py b/flatcamTools/ToolSolderPaste.py
index 568f164e..2dfd5d97 100644
--- a/flatcamTools/ToolSolderPaste.py
+++ b/flatcamTools/ToolSolderPaste.py
@@ -61,7 +61,8 @@ class SolderPaste(FlatCAMTool):
self.obj_combo = FCComboBox(callback=self.on_rmb_combo)
self.obj_combo.setModel(self.app.collection)
self.obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.obj_combo.set_last = True
+ self.obj_combo.is_last = True
+ self.obj_combo.obj_type = "Gerber"
self.object_label = QtWidgets.QLabel("Gerber: ")
self.object_label.setToolTip(
@@ -383,7 +384,8 @@ class SolderPaste(FlatCAMTool):
self.geo_obj_combo = FCComboBox(callback=self.on_rmb_combo)
self.geo_obj_combo.setModel(self.app.collection)
self.geo_obj_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex()))
- self.geo_obj_combo.set_last = True
+ self.geo_obj_combo.is_last = True
+ self.geo_obj_combo.obj_type = "Geometry"
self.geo_object_label = QtWidgets.QLabel('%s:' % _("Geo Result"))
self.geo_object_label.setToolTip(
@@ -416,7 +418,8 @@ class SolderPaste(FlatCAMTool):
self.cnc_obj_combo = FCComboBox(callback=self.on_rmb_combo)
self.cnc_obj_combo.setModel(self.app.collection)
self.cnc_obj_combo.setRootModelIndex(self.app.collection.index(3, 0, QtCore.QModelIndex()))
- self.cnc_obj_combo.set_last = True
+ self.cnc_obj_combo.is_last = True
+ self.geo_obj_combo.obj_type = "CNCJob"
self.cnc_object_label = QtWidgets.QLabel('%s:' % _("CNC Result"))
self.cnc_object_label.setToolTip(
diff --git a/flatcamTools/ToolSub.py b/flatcamTools/ToolSub.py
index c63ff5e2..1471bd70 100644
--- a/flatcamTools/ToolSub.py
+++ b/flatcamTools/ToolSub.py
@@ -69,7 +69,9 @@ class ToolSub(FlatCAMTool):
self.target_gerber_combo = FCComboBox()
self.target_gerber_combo.setModel(self.app.collection)
self.target_gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.target_gerber_combo.setCurrentIndex(1)
+ # self.target_gerber_combo.setCurrentIndex(1)
+ self.target_gerber_combo.is_last = True
+ self.target_gerber_combo.obj_type = "Gerber"
self.target_gerber_label = QtWidgets.QLabel('%s:' % _("Target"))
self.target_gerber_label.setToolTip(
@@ -83,7 +85,8 @@ class ToolSub(FlatCAMTool):
self.sub_gerber_combo = FCComboBox()
self.sub_gerber_combo.setModel(self.app.collection)
self.sub_gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
- self.sub_gerber_combo.set_last = True
+ self.sub_gerber_combo.is_last = True
+ self.sub_gerber_combo.obj_type = "Gerber"
self.sub_gerber_label = QtWidgets.QLabel('%s:' % _("Subtractor"))
self.sub_gerber_label.setToolTip(
@@ -121,7 +124,9 @@ class ToolSub(FlatCAMTool):
self.target_geo_combo = FCComboBox()
self.target_geo_combo.setModel(self.app.collection)
self.target_geo_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex()))
- self.target_geo_combo.setCurrentIndex(1)
+ # self.target_geo_combo.setCurrentIndex(1)
+ self.target_geo_combo.is_last = True
+ self.target_geo_combo.obj_type = "Geometry"
self.target_geo_label = QtWidgets.QLabel('%s:' % _("Target"))
self.target_geo_label.setToolTip(
@@ -135,7 +140,8 @@ class ToolSub(FlatCAMTool):
self.sub_geo_combo = FCComboBox()
self.sub_geo_combo.setModel(self.app.collection)
self.sub_geo_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex()))
- self.sub_geo_combo.set_last = True
+ self.sub_geo_combo.is_last = True
+ self.sub_geo_combo.obj_type = "Geometry"
self.sub_geo_label = QtWidgets.QLabel('%s:' % _("Subtractor"))
self.sub_geo_label.setToolTip(