diff --git a/FlatCAMObj.py b/FlatCAMObj.py
index 2c4dcfdc..963e64a6 100644
--- a/FlatCAMObj.py
+++ b/FlatCAMObj.py
@@ -733,7 +733,7 @@ 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.setCurrentIndex(1)
+ self.ui.obj_combo.set_last = True
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)
@@ -4101,21 +4101,21 @@ class FlatCAMGeometry(FlatCAMObj, Geometry):
dia_item.setFlags(QtCore.Qt.ItemIsEnabled)
- offset_item = QtWidgets.QComboBox()
+ offset_item = FCComboBox()
for item in self.offset_item_options:
offset_item.addItem(item)
# offset_item.setStyleSheet('background-color: rgb(255,255,255)')
idx = offset_item.findText(tooluid_value['offset'])
offset_item.setCurrentIndex(idx)
- type_item = QtWidgets.QComboBox()
+ type_item = FCComboBox()
for item in self.type_item_options:
type_item.addItem(item)
# type_item.setStyleSheet('background-color: rgb(255,255,255)')
idx = type_item.findText(tooluid_value['type'])
type_item.setCurrentIndex(idx)
- tool_type_item = QtWidgets.QComboBox()
+ tool_type_item = FCComboBox()
for item in self.tool_type_item_options:
tool_type_item.addItem(item)
# tool_type_item.setStyleSheet('background-color: rgb(255,255,255)')
diff --git a/README.md b/README.md
index 4b42bb5c..dd227f7c 100644
--- a/README.md
+++ b/README.md
@@ -9,6 +9,10 @@ CAD program, and create G-Code for Isolation routing.
=================================================
+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
+
01.03.2020
- updated the CutOut Tool such that while adding manual gaps, the cutting geometry is updated on-the-fly if the gap size or tool diameter parameters are adjusted
@@ -42,7 +46,6 @@ CAD program, and create G-Code for Isolation routing.
- fixed an issue in Gerber Editor where the multiprocessing pool was reported as closed and an ValueError exception was raised in a certain scneraio
- on Set Origin, Move to Origin and Move actions for Gerber and Excellon objects the source file will be also updated (the export functions will export an updated object)
- in FlatCAMObj.export_gerber() method took into account the possibility of polygons of type 'clear' (the ones found in the Gerber files under the LPC command)
-
17.02.2020
- updated the Excellon UI to hold data for each tool
diff --git a/flatcamGUI/GUIElements.py b/flatcamGUI/GUIElements.py
index 18c46b55..9e3094ec 100644
--- a/flatcamGUI/GUIElements.py
+++ b/flatcamGUI/GUIElements.py
@@ -302,7 +302,7 @@ class LengthEntry(QtWidgets.QLineEdit):
units = raw[-2:]
units = self.scales[self.output_units][units.upper()]
value = raw[:-2]
- return float(eval(value))* units
+ return float(eval(value)) * units
except IndexError:
value = raw
return float(eval(value))
@@ -334,7 +334,7 @@ class FloatEntry(QtWidgets.QLineEdit):
def mousePressEvent(self, e, Parent=None):
super(FloatEntry, self).mousePressEvent(e) # required to deselect on 2e click
- if self.readyToEdit == True:
+ if self.readyToEdit is True:
self.selectAll()
self.readyToEdit = False
@@ -1285,6 +1285,8 @@ class FCComboBox(QtWidgets.QComboBox):
self.view.viewport().installEventFilter(self)
self.view.setContextMenuPolicy(Qt.CustomContextMenu)
+ self._set_last = False
+
# the callback() will be called on customcontextmenu event and will be be passed 2 parameters:
# pos = mouse right click click position
# self = is the combobox object itself
@@ -1306,6 +1308,19 @@ class FCComboBox(QtWidgets.QComboBox):
def set_value(self, val):
self.setCurrentIndex(self.findText(str(val)))
+ @property
+ def set_last(self):
+ return self._set_last
+
+ @set_last.setter
+ def set_last(self, val):
+ self._set_last = val
+ if self._set_last is True:
+ self.model().rowsInserted.connect(self.on_model_changed)
+
+ def on_model_changed(self, first, last):
+ self.setCurrentIndex(last)
+
class FCInputDialog(QtWidgets.QInputDialog):
def __init__(self, parent=None, ok=False, val=None, title=None, text=None, min=None, max=None, decimals=None,
@@ -1436,7 +1451,7 @@ class FCDetachableTab(QtWidgets.QTabWidget):
self.protect_by_name = protect_by_name if isinstance(protect_by_name, list) else None
# Close all detached tabs if the application is closed explicitly
- QtWidgets.qApp.aboutToQuit.connect(self.closeDetachedTabs) # @UndefinedVariable
+ QtWidgets.qApp.aboutToQuit.connect(self.closeDetachedTabs) # @UndefinedVariable
# used by the property self.useOldIndex(param)
self.use_old_index = None
@@ -1916,7 +1931,7 @@ class FCDetachableTab(QtWidgets.QTabWidget):
self.dragInitiated = True
# If the current movement is a drag initiated by the left button
- if ((event.buttons() & QtCore.Qt.LeftButton)) and self.dragInitiated and self.can_be_dragged:
+ if (event.buttons() & QtCore.Qt.LeftButton) and self.dragInitiated and self.can_be_dragged:
# Stop the move event
finishMoveEvent = QtGui.QMouseEvent(
diff --git a/flatcamGUI/ObjectUI.py b/flatcamGUI/ObjectUI.py
index ca99e6c4..1b298f29 100644
--- a/flatcamGUI/ObjectUI.py
+++ b/flatcamGUI/ObjectUI.py
@@ -445,15 +445,17 @@ class GerberObjectUI(ObjectUI):
# ################################################
# ##### Type of object to be excepted ############
# ################################################
- self.type_obj_combo = QtWidgets.QComboBox()
- self.type_obj_combo.addItem("Gerber")
- self.type_obj_combo.addItem("Excellon")
- self.type_obj_combo.addItem("Geometry")
+ 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")
# we get rid of item1 ("Excellon") as it is not suitable
- self.type_obj_combo.view().setRowHidden(1, True)
+ # self.type_obj_combo.view().setRowHidden(1, True)
self.type_obj_combo.setItemIcon(0, QtGui.QIcon(self.resource_loc + "/flatcam_icon16.png"))
- self.type_obj_combo.setItemIcon(2, QtGui.QIcon(self.resource_loc + "/geometry16.png"))
+ self.type_obj_combo.setItemIcon(1, QtGui.QIcon(self.resource_loc + "/geometry16.png"))
self.type_obj_combo_label = QtWidgets.QLabel('%s:' % _("Obj Type"))
self.type_obj_combo_label.setToolTip(
@@ -468,7 +470,7 @@ class GerberObjectUI(ObjectUI):
# ################################################
# ##### The object to be excepted ################
# ################################################
- self.obj_combo = QtWidgets.QComboBox()
+ self.obj_combo = FCComboBox()
self.obj_label = QtWidgets.QLabel('%s:' % _("Object"))
self.obj_label.setToolTip(_("Object whose area will be removed from isolation geometry."))
diff --git a/flatcamTools/ToolAlignObjects.py b/flatcamTools/ToolAlignObjects.py
index 1ffbe1e5..f8f6d14f 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.setCurrentIndex(1)
+ self.object_combo.set_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.setCurrentIndex(1)
+ self.aligner_object_combo.set_last = True
self.aligner_object_combo.setToolTip(
_("Object to be aligned to. Aligner.")
diff --git a/flatcamTools/ToolCalibration.py b/flatcamTools/ToolCalibration.py
index 6f9b015c..2a3956e3 100644
--- a/flatcamTools/ToolCalibration.py
+++ b/flatcamTools/ToolCalibration.py
@@ -206,7 +206,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.setCurrentIndex(1)
+ self.object_combo.set_last = True
self.object_label = QtWidgets.QLabel("%s:" % _("Source object selection"))
self.object_label.setToolTip(
@@ -628,7 +628,7 @@ class ToolCalibration(FlatCAMTool):
)
grid_lay.addWidget(step_5, 45, 0, 1, 3)
- self.adj_object_type_combo = QtWidgets.QComboBox()
+ self.adj_object_type_combo = FCComboBox()
self.adj_object_type_combo.addItems([_("Gerber"), _("Excellon"), _("Geometry")])
self.adj_object_type_combo.setCurrentIndex(0)
diff --git a/flatcamTools/ToolCopperThieving.py b/flatcamTools/ToolCopperThieving.py
index 295aed5a..3949cdda 100644
--- a/flatcamTools/ToolCopperThieving.py
+++ b/flatcamTools/ToolCopperThieving.py
@@ -9,7 +9,7 @@ from PyQt5 import QtWidgets, QtCore
import FlatCAMApp
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet, FCEntry
+from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet, FCEntry, FCComboBox
from FlatCAMObj import FlatCAMGerber, FlatCAMGeometry, FlatCAMExcellon
import shapely.geometry.base as base
@@ -66,10 +66,10 @@ class ToolCopperThieving(FlatCAMTool):
i_grid_lay.setColumnStretch(0, 0)
i_grid_lay.setColumnStretch(1, 1)
- self.grb_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.grb_object_combo.set_last = True
self.grbobj_label = QtWidgets.QLabel("%s:" % _("GERBER"))
self.grbobj_label.setToolTip(
@@ -140,7 +140,7 @@ class ToolCopperThieving(FlatCAMTool):
_("The type of FlatCAM object to be used as copper thieving reference.\n"
"It can be Gerber, Excellon or Geometry.")
)
- self.box_combo_type = QtWidgets.QComboBox()
+ 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"))
@@ -152,10 +152,10 @@ class ToolCopperThieving(FlatCAMTool):
self.box_combo_label.setToolTip(
_("The FlatCAM object to be used as non copper clearing reference.")
)
- self.box_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.box_combo.set_last = True
grid_lay.addWidget(self.box_combo_label, 5, 0)
grid_lay.addWidget(self.box_combo, 5, 1)
@@ -417,10 +417,10 @@ class ToolCopperThieving(FlatCAMTool):
"the pattern plating mask.")
)
- self.sm_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.sm_object_combo.set_last = True
grid_lay_1.addWidget(self.sm_obj_label, 7, 0, 1, 3)
grid_lay_1.addWidget(self.sm_object_combo, 8, 0, 1, 3)
diff --git a/flatcamTools/ToolCutOut.py b/flatcamTools/ToolCutOut.py
index 38f4ae7c..a94d7fa5 100644
--- a/flatcamTools/ToolCutOut.py
+++ b/flatcamTools/ToolCutOut.py
@@ -73,7 +73,7 @@ class CutOut(FlatCAMTool):
grid0.addWidget(self.object_label, 0, 0, 1, 2)
# Object kind
- self.kindlabel = QtWidgets.QLabel('%s:' % _('Object kind'))
+ self.kindlabel = QtWidgets.QLabel('%s:' % _('Kind'))
self.kindlabel.setToolTip(
_("Choice of what kind the object we want to cutout is.
"
"- Single: contain a single PCB Gerber outline object.
"
@@ -93,7 +93,7 @@ class CutOut(FlatCAMTool):
{"label": _("Geometry"), "value": "geo"},
])
- self.type_obj_combo_label = QtWidgets.QLabel('%s:' % _("Object Type"))
+ self.type_obj_combo_label = QtWidgets.QLabel('%s:' % _("Type"))
self.type_obj_combo_label.setToolTip(
_("Specify the type of object to be cutout.\n"
"It can be of type: Gerber or Geometry.\n"
@@ -105,10 +105,10 @@ class CutOut(FlatCAMTool):
grid0.addWidget(self.type_obj_radio, 2, 1)
# Object to be cutout
- self.obj_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.obj_combo.set_last = True
grid0.addWidget(self.obj_combo, 3, 0, 1, 2)
@@ -318,10 +318,10 @@ class CutOut(FlatCAMTool):
self.layout.addLayout(form_layout_3)
# Manual Geo Object
- self.man_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.man_object_combo.set_last = True
self.man_object_label = QtWidgets.QLabel('%s:' % _("Geometry Object"))
self.man_object_label.setToolTip(
diff --git a/flatcamTools/ToolDblSided.py b/flatcamTools/ToolDblSided.py
index 56602125..8612932c 100644
--- a/flatcamTools/ToolDblSided.py
+++ b/flatcamTools/ToolDblSided.py
@@ -2,7 +2,7 @@
from PyQt5 import QtWidgets, QtCore
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, EvalEntry, FCEntry, FCButton
+from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, EvalEntry, FCEntry, FCButton, FCComboBox
from FlatCAMObj import FlatCAMGerber, FlatCAMExcellon, FlatCAMGeometry
from numpy import Inf
@@ -56,10 +56,10 @@ class DblSidedTool(FlatCAMTool):
grid_lay.addWidget(self.m_objects_label, 0, 0, 1, 2)
# ## Gerber Object to mirror
- self.gerber_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.gerber_object_combo.set_last = True
self.botlay_label = QtWidgets.QLabel("%s:" % _("GERBER"))
self.botlay_label.setToolTip('%s.' % _("Gerber to be mirrored"))
@@ -83,10 +83,10 @@ class DblSidedTool(FlatCAMTool):
grid_lay.addWidget(self.mirror_gerber_button, 2, 1)
# ## Excellon Object to mirror
- self.exc_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.exc_object_combo.set_last = True
self.excobj_label = QtWidgets.QLabel("%s:" % _("EXCELLON"))
self.excobj_label.setToolTip(_("Excellon Object to be mirrored."))
@@ -110,10 +110,10 @@ class DblSidedTool(FlatCAMTool):
grid_lay.addWidget(self.mirror_exc_button, 4, 1)
# ## Geometry Object to mirror
- self.geo_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.geo_object_combo.set_last = True
self.geoobj_label = QtWidgets.QLabel("%s:" % _("GEOMETRY"))
self.geoobj_label.setToolTip(
@@ -229,10 +229,10 @@ class DblSidedTool(FlatCAMTool):
grid_lay2.addWidget(self.box_type_radio, 1, 0, 1, 2)
# Object used as BOX reference
- self.box_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.box_combo.set_last = True
self.box_combo.hide()
diff --git a/flatcamTools/ToolExtractDrills.py b/flatcamTools/ToolExtractDrills.py
index 287a1571..39e287a4 100644
--- a/flatcamTools/ToolExtractDrills.py
+++ b/flatcamTools/ToolExtractDrills.py
@@ -8,7 +8,7 @@
from PyQt5 import QtWidgets, QtCore
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox
+from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCComboBox
from shapely.geometry import Point
@@ -52,10 +52,10 @@ class ToolExtractDrills(FlatCAMTool):
grid_lay.setColumnStretch(1, 0)
# ## Gerber Object
- self.gerber_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.gerber_object_combo.set_last = True
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 342f1d5c..1586f010 100644
--- a/flatcamTools/ToolFiducials.py
+++ b/flatcamTools/ToolFiducials.py
@@ -8,7 +8,7 @@
from PyQt5 import QtWidgets, QtCore
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet, EvalEntry, FCTable
+from flatcamGUI.GUIElements import FCDoubleSpinner, RadioSet, EvalEntry, FCTable, FCComboBox
from shapely.geometry import Point, Polygon, MultiPolygon, LineString
from shapely.geometry import box as box
@@ -250,10 +250,10 @@ class ToolFiducials(FlatCAMTool):
grid_lay.addWidget(separator_line_1, 8, 0, 1, 2)
# Copper Gerber object
- self.grb_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.grb_object_combo.set_last = True
self.grbobj_label = QtWidgets.QLabel("%s:" % _("Copper Gerber"))
self.grbobj_label.setToolTip(
@@ -286,10 +286,10 @@ class ToolFiducials(FlatCAMTool):
self.sm_object_label.setToolTip(
_("The Soldermask Gerber object.")
)
- self.sm_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.sm_object_combo.set_last = True
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 bf3af64a..98a9f1d3 100644
--- a/flatcamTools/ToolFilm.py
+++ b/flatcamTools/ToolFilm.py
@@ -65,15 +65,16 @@ class Film(FlatCAMTool):
grid0.setColumnStretch(1, 1)
# Type of object for which to create the film
- self.tf_type_obj_combo = QtWidgets.QComboBox()
- 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 = 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")
# we get rid of item1 ("Excellon") as it is not suitable for creating film
- self.tf_type_obj_combo.view().setRowHidden(1, True)
+ # self.tf_type_obj_combo.view().setRowHidden(1, True)
self.tf_type_obj_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
- self.tf_type_obj_combo.setItemIcon(2, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
+ self.tf_type_obj_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
self.tf_type_obj_combo_label = QtWidgets.QLabel('%s:' % _("Object Type"))
self.tf_type_obj_combo_label.setToolTip(
@@ -86,10 +87,10 @@ class Film(FlatCAMTool):
grid0.addWidget(self.tf_type_obj_combo, 0, 1)
# List of objects for which we can create the film
- self.tf_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.tf_object_combo.set_last = True
self.tf_object_label = QtWidgets.QLabel('%s:' % _("Film Object"))
self.tf_object_label.setToolTip(
@@ -100,15 +101,17 @@ 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 = QtWidgets.QComboBox()
- self.tf_type_box_combo.addItem("Gerber")
- self.tf_type_box_combo.addItem("Excellon")
- self.tf_type_box_combo.addItem("Geometry")
+ self.tf_type_box_combo = FCComboBox()
+ self.tf_type_box_combo.addItems(["Gerber", "Geometry"])
+
+ # self.tf_type_box_combo.addItem("Gerber")
+ # self.tf_type_box_combo.addItem("Excellon")
+ # self.tf_type_box_combo.addItem("Geometry")
# we get rid of item1 ("Excellon") as it is not suitable for box when creating film
- self.tf_type_box_combo.view().setRowHidden(1, True)
+ # self.tf_type_box_combo.view().setRowHidden(1, True)
self.tf_type_box_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
- self.tf_type_box_combo.setItemIcon(2, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
+ self.tf_type_box_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
self.tf_type_box_combo_label = QtWidgets.QLabel(_("Box Type:"))
self.tf_type_box_combo_label.setToolTip(
@@ -121,10 +124,10 @@ class Film(FlatCAMTool):
grid0.addWidget(self.tf_type_box_combo, 2, 1)
# Box
- self.tf_box_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.tf_box_combo.set_last = True
self.tf_box_combo_label = QtWidgets.QLabel('%s:' % _("Box Object"))
self.tf_box_combo_label.setToolTip(
@@ -366,10 +369,10 @@ class Film(FlatCAMTool):
self.exc_label.setToolTip(
_("Remove the geometry of Excellon from the Film to create the holes in pads.")
)
- self.exc_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.exc_combo.set_last = True
punch_grid.addWidget(self.exc_label, 1, 0)
punch_grid.addWidget(self.exc_combo, 1, 1)
diff --git a/flatcamTools/ToolInvertGerber.py b/flatcamTools/ToolInvertGerber.py
index 4d8e62c8..46124730 100644
--- a/flatcamTools/ToolInvertGerber.py
+++ b/flatcamTools/ToolInvertGerber.py
@@ -8,7 +8,7 @@
from PyQt5 import QtWidgets, QtCore
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCButton, FCDoubleSpinner, RadioSet
+from flatcamGUI.GUIElements import FCButton, FCDoubleSpinner, RadioSet, FCComboBox
from shapely.geometry import box
@@ -63,10 +63,10 @@ class ToolInvertGerber(FlatCAMTool):
grid0.addWidget(QtWidgets.QLabel(''), 0, 0, 1, 2)
# Target Gerber Object
- self.gerber_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.gerber_combo.set_last = True
self.gerber_label = QtWidgets.QLabel('%s:' % _("GERBER"))
self.gerber_label.setToolTip(
diff --git a/flatcamTools/ToolNCC.py b/flatcamTools/ToolNCC.py
index 4b7c7253..1203a3c5 100644
--- a/flatcamTools/ToolNCC.py
+++ b/flatcamTools/ToolNCC.py
@@ -101,7 +101,8 @@ class NonCopperClear(FlatCAMTool, Gerber):
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.setCurrentIndex(1)
+ # self.object_combo.setCurrentIndex(1)
+ self.object_combo.set_last = True
self.object_label = QtWidgets.QLabel('%s:' % _("Object"))
self.object_label.setToolTip(_("Object to be cleared of excess copper."))
@@ -563,7 +564,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
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.setCurrentIndex(1)
+ self.box_combo.set_last = True
form1.addRow(self.box_combo_label, self.box_combo)
self.box_combo.hide()
diff --git a/flatcamTools/ToolOptimal.py b/flatcamTools/ToolOptimal.py
index 16c00efa..0cbbf0f6 100644
--- a/flatcamTools/ToolOptimal.py
+++ b/flatcamTools/ToolOptimal.py
@@ -8,7 +8,7 @@
from PyQt5 import QtWidgets, QtCore, QtGui
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import OptionalHideInputSection, FCTextArea, FCEntry, FCSpinner, FCCheckBox
+from flatcamGUI.GUIElements import OptionalHideInputSection, FCTextArea, FCEntry, FCSpinner, FCCheckBox, FCComboBox
from FlatCAMObj import FlatCAMGerber
import FlatCAMApp
@@ -63,10 +63,10 @@ class ToolOptimal(FlatCAMTool):
form_lay.addRow(QtWidgets.QLabel(""))
# ## Gerber Object to mirror
- self.gerber_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.gerber_object_combo.set_last = True
self.gerber_object_label = QtWidgets.QLabel("%s:" % _("GERBER"))
self.gerber_object_label.setToolTip(
diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py
index 7f9a8c27..0c436f58 100644
--- a/flatcamTools/ToolPaint.py
+++ b/flatcamTools/ToolPaint.py
@@ -94,10 +94,10 @@ class ToolPaint(FlatCAMTool, Gerber):
# ################################################
# ##### The object to be painted #################
# ################################################
- self.obj_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.obj_combo.set_last = True
self.object_label = QtWidgets.QLabel('%s:' % _("Object"))
self.object_label.setToolTip(_("Object to be painted."))
@@ -496,7 +496,7 @@ class ToolPaint(FlatCAMTool, Gerber):
_("The type of FlatCAM object to be used as paint reference.\n"
"It can be Gerber, Excellon or Geometry.")
)
- self.box_combo_type = QtWidgets.QComboBox()
+ 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"))
@@ -506,10 +506,10 @@ class ToolPaint(FlatCAMTool, Gerber):
self.box_combo_label.setToolTip(
_("The FlatCAM object to be used as non copper clearing reference.")
)
- self.box_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.box_combo.set_last = True
form1.addRow(self.box_combo_label, self.box_combo)
self.box_combo.hide()
@@ -1058,7 +1058,7 @@ class ToolPaint(FlatCAMTool, Gerber):
dia.setFlags(QtCore.Qt.ItemIsEnabled)
- tool_type_item = QtWidgets.QComboBox()
+ tool_type_item = FCComboBox()
for item in self.tool_type_item_options:
tool_type_item.addItem(item)
# tool_type_item.setStyleSheet('background-color: rgb(255,255,255)')
diff --git a/flatcamTools/ToolPanelize.py b/flatcamTools/ToolPanelize.py
index 9494c2d0..0b7f5fec 100644
--- a/flatcamTools/ToolPanelize.py
+++ b/flatcamTools/ToolPanelize.py
@@ -8,7 +8,7 @@
from PyQt5 import QtWidgets, QtGui, QtCore
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet, FCCheckBox, OptionalInputSection
+from flatcamGUI.GUIElements import FCSpinner, FCDoubleSpinner, RadioSet, FCCheckBox, OptionalInputSection, FCComboBox
from FlatCAMObj import FlatCAMGeometry, FlatCAMGerber, FlatCAMExcellon
import FlatCAMApp
from copy import deepcopy
@@ -66,7 +66,7 @@ class Panelize(FlatCAMTool):
self.layout.addLayout(form_layout_0)
# Type of object to be panelized
- self.type_obj_combo = QtWidgets.QComboBox()
+ self.type_obj_combo = FCComboBox()
self.type_obj_combo.addItem("Gerber")
self.type_obj_combo.addItem("Excellon")
self.type_obj_combo.addItem("Geometry")
@@ -80,10 +80,10 @@ class Panelize(FlatCAMTool):
form_layout_0.addRow(self.type_object_label, self.type_obj_combo)
# Object to be panelized
- self.object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.object_combo.set_last = True
self.object_combo.setToolTip(
_("Object to be panelized. This means that it will\n"
@@ -114,15 +114,16 @@ class Panelize(FlatCAMTool):
form_layout.addRow(self.reference_radio)
# Type of Box Object to be used as an envelope for panelization
- self.type_box_combo = QtWidgets.QComboBox()
- self.type_box_combo.addItem("Gerber")
- self.type_box_combo.addItem("Excellon")
- self.type_box_combo.addItem("Geometry")
+ 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")
# 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)
+ # self.type_box_combo.view().setRowHidden(1, True)
self.type_box_combo.setItemIcon(0, QtGui.QIcon(self.app.resource_location + "/flatcam_icon16.png"))
- self.type_box_combo.setItemIcon(2, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
+ self.type_box_combo.setItemIcon(1, QtGui.QIcon(self.app.resource_location + "/geometry16.png"))
self.type_box_combo_label = QtWidgets.QLabel('%s:' % _("Box Type"))
self.type_box_combo_label.setToolTip(
@@ -134,10 +135,10 @@ class Panelize(FlatCAMTool):
form_layout.addRow(self.type_box_combo_label, self.type_box_combo)
# Box
- self.box_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.box_combo.set_last = True
self.box_combo.setToolTip(
_("The actual object that is used a container for the\n "
diff --git a/flatcamTools/ToolPunchGerber.py b/flatcamTools/ToolPunchGerber.py
index 660dae7f..c4c9ae61 100644
--- a/flatcamTools/ToolPunchGerber.py
+++ b/flatcamTools/ToolPunchGerber.py
@@ -8,7 +8,7 @@
from PyQt5 import QtCore, QtWidgets
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox
+from flatcamGUI.GUIElements import RadioSet, FCDoubleSpinner, FCCheckBox, FCComboBox
from copy import deepcopy
import logging
@@ -55,10 +55,10 @@ class ToolPunchGerber(FlatCAMTool):
grid_lay.setColumnStretch(1, 0)
# ## Gerber Object
- self.gerber_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.gerber_object_combo.set_last = True
self.grb_label = QtWidgets.QLabel("%s:" % _("GERBER"))
self.grb_label.setToolTip('%s.' % _("Gerber into which to punch holes"))
@@ -165,10 +165,10 @@ class ToolPunchGerber(FlatCAMTool):
_("Remove the geometry of Excellon from the Gerber to create the holes in pads.")
)
- self.exc_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.exc_combo.set_last = True
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 2486ba7f..67add5c9 100644
--- a/flatcamTools/ToolQRCode.py
+++ b/flatcamTools/ToolQRCode.py
@@ -9,7 +9,7 @@ from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import Qt
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import RadioSet, FCTextArea, FCSpinner, FCEntry, FCCheckBox
+from flatcamGUI.GUIElements import RadioSet, FCTextArea, FCSpinner, FCEntry, FCCheckBox, FCComboBox
from flatcamParsers.ParseSVG import *
from shapely.geometry.base import *
@@ -69,10 +69,10 @@ class QRCode(FlatCAMTool):
i_grid_lay.setColumnStretch(0, 0)
i_grid_lay.setColumnStretch(1, 1)
- self.grb_object_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.grb_object_combo.set_last = True
self.grbobj_label = QtWidgets.QLabel("%s:" % _("GERBER"))
self.grbobj_label.setToolTip(
diff --git a/flatcamTools/ToolRulesCheck.py b/flatcamTools/ToolRulesCheck.py
index ffd5844d..9deb26be 100644
--- a/flatcamTools/ToolRulesCheck.py
+++ b/flatcamTools/ToolRulesCheck.py
@@ -8,7 +8,7 @@
from PyQt5 import QtWidgets
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection
+from flatcamGUI.GUIElements import FCDoubleSpinner, FCCheckBox, OptionalInputSection, FCComboBox
from copy import deepcopy
from FlatCAMPool import *
@@ -69,10 +69,10 @@ class RulesCheck(FlatCAMTool):
self.grid_layout.addWidget(self.all_obj_cb, 0, 2)
# Copper Top object
- self.copper_t_object = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.copper_t_object.set_last = True
self.copper_t_object_lbl = QtWidgets.QLabel('%s:' % _("Top"))
self.copper_t_object_lbl.setToolTip(
@@ -86,10 +86,10 @@ class RulesCheck(FlatCAMTool):
self.grid_layout.addWidget(self.copper_t_cb, 1, 2)
# Copper Bottom object
- self.copper_b_object = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.copper_b_object.set_last = True
self.copper_b_object_lbl = QtWidgets.QLabel('%s:' % _("Bottom"))
self.copper_b_object_lbl.setToolTip(
@@ -103,10 +103,10 @@ class RulesCheck(FlatCAMTool):
self.grid_layout.addWidget(self.copper_b_cb, 2, 2)
# SolderMask Top object
- self.sm_t_object = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.sm_t_object.set_last = True
self.sm_t_object_lbl = QtWidgets.QLabel('%s:' % _("SM Top"))
self.sm_t_object_lbl.setToolTip(
@@ -120,10 +120,10 @@ class RulesCheck(FlatCAMTool):
self.grid_layout.addWidget(self.sm_t_cb, 3, 2)
# SolderMask Bottom object
- self.sm_b_object = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.sm_b_object.set_last = True
self.sm_b_object_lbl = QtWidgets.QLabel('%s:' % _("SM Bottom"))
self.sm_b_object_lbl.setToolTip(
@@ -137,10 +137,10 @@ class RulesCheck(FlatCAMTool):
self.grid_layout.addWidget(self.sm_b_cb, 4, 2)
# SilkScreen Top object
- self.ss_t_object = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.ss_t_object.set_last = True
self.ss_t_object_lbl = QtWidgets.QLabel('%s:' % _("Silk Top"))
self.ss_t_object_lbl.setToolTip(
@@ -154,10 +154,10 @@ class RulesCheck(FlatCAMTool):
self.grid_layout.addWidget(self.ss_t_cb, 5, 2)
# SilkScreen Bottom object
- self.ss_b_object = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.ss_b_object.set_last = True
self.ss_b_object_lbl = QtWidgets.QLabel('%s:' % _("Silk Bottom"))
self.ss_b_object_lbl.setToolTip(
@@ -171,10 +171,10 @@ class RulesCheck(FlatCAMTool):
self.grid_layout.addWidget(self.ss_b_cb, 6, 2)
# Outline object
- self.outline_object = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.outline_object.set_last = True
self.outline_object_lbl = QtWidgets.QLabel('%s:' % _("Outline"))
self.outline_object_lbl.setToolTip(
@@ -197,10 +197,10 @@ class RulesCheck(FlatCAMTool):
self.grid_layout.addWidget(self.excellon_title_lbl, 9, 0, 1, 3)
# Excellon 1 object
- self.e1_object = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.e1_object.set_last = True
self.e1_object_lbl = QtWidgets.QLabel('%s:' % _("Excellon 1"))
self.e1_object_lbl.setToolTip(
@@ -215,10 +215,10 @@ class RulesCheck(FlatCAMTool):
self.grid_layout.addWidget(self.e1_cb, 10, 2)
# Excellon 2 object
- self.e2_object = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.e2_object.set_last = True
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 655ab3aa..568f164e 100644
--- a/flatcamTools/ToolSolderPaste.py
+++ b/flatcamTools/ToolSolderPaste.py
@@ -61,7 +61,7 @@ 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.setCurrentIndex(1)
+ self.obj_combo.set_last = True
self.object_label = QtWidgets.QLabel("Gerber: ")
self.object_label.setToolTip(
@@ -383,7 +383,7 @@ 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.setCurrentIndex(1)
+ self.geo_obj_combo.set_last = True
self.geo_object_label = QtWidgets.QLabel('%s:' % _("Geo Result"))
self.geo_object_label.setToolTip(
@@ -416,7 +416,7 @@ 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.setCurrentIndex(1)
+ self.cnc_obj_combo.set_last = True
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 9d547ed5..c63ff5e2 100644
--- a/flatcamTools/ToolSub.py
+++ b/flatcamTools/ToolSub.py
@@ -8,7 +8,7 @@
from PyQt5 import QtWidgets, QtCore
from FlatCAMTool import FlatCAMTool
-from flatcamGUI.GUIElements import FCCheckBox, FCButton
+from flatcamGUI.GUIElements import FCCheckBox, FCButton, FCComboBox
from shapely.geometry import Polygon, MultiPolygon, MultiLineString, LineString
from shapely.ops import cascaded_union
@@ -66,7 +66,7 @@ class ToolSub(FlatCAMTool):
form_layout.addRow(self.gerber_title)
# Target Gerber Object
- self.target_gerber_combo = QtWidgets.QComboBox()
+ 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)
@@ -80,10 +80,10 @@ class ToolSub(FlatCAMTool):
form_layout.addRow(self.target_gerber_label, self.target_gerber_combo)
# Substractor Gerber Object
- self.sub_gerber_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.sub_gerber_combo.set_last = True
self.sub_gerber_label = QtWidgets.QLabel('%s:' % _("Subtractor"))
self.sub_gerber_label.setToolTip(
@@ -118,7 +118,7 @@ class ToolSub(FlatCAMTool):
form_geo_layout.addRow(self.geo_title)
# Target Geometry Object
- self.target_geo_combo = QtWidgets.QComboBox()
+ 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)
@@ -132,10 +132,10 @@ class ToolSub(FlatCAMTool):
form_geo_layout.addRow(self.target_geo_label, self.target_geo_combo)
# Substractor Geometry Object
- self.sub_geo_combo = QtWidgets.QComboBox()
+ 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.setCurrentIndex(1)
+ self.sub_geo_combo.set_last = True
self.sub_geo_label = QtWidgets.QLabel('%s:' % _("Subtractor"))
self.sub_geo_label.setToolTip(