diff --git a/FlatCAMApp.py b/FlatCAMApp.py
index 2fe40a21..5564f600 100644
--- a/FlatCAMApp.py
+++ b/FlatCAMApp.py
@@ -426,7 +426,7 @@ class App(QtCore.QObject):
"tools_film_type": self.tools_defaults_form.tools_film_group.film_type_radio,
"tools_film_boundary": self.tools_defaults_form.tools_film_group.film_boundary_entry,
- "tools_film_adjust": self.tools_defaults_form.tools_film_group.film_adjust_entry,
+ "tools_film_scale": self.tools_defaults_form.tools_film_group.film_scale_entry,
"tools_panelize_spacing_columns": self.tools_defaults_form.tools_panelize_group.pspacing_columns,
"tools_panelize_spacing_rows": self.tools_defaults_form.tools_panelize_group.pspacing_rows,
@@ -607,7 +607,7 @@ class App(QtCore.QObject):
"tools_film_type": 'neg',
"tools_film_boundary": 1,
- "tools_film_adjust": 0,
+ "tools_film_scale": 0,
"tools_panelize_spacing_columns": 0,
"tools_panelize_spacing_rows": 0,
@@ -749,7 +749,7 @@ class App(QtCore.QObject):
"tools_film_type": self.tools_options_form.tools_film_group.film_type_radio,
"tools_film_boundary": self.tools_options_form.tools_film_group.film_boundary_entry,
- "tools_film_adjust": self.tools_options_form.tools_film_group.film_adjust_entry,
+ "tools_film_scale": self.tools_options_form.tools_film_group.film_scale_entry,
"tools_panelize_spacing_columns": self.tools_options_form.tools_panelize_group.pspacing_columns,
"tools_panelize_spacing_rows": self.tools_options_form.tools_panelize_group.pspacing_rows,
@@ -867,7 +867,7 @@ class App(QtCore.QObject):
"tools_film_type": 'neg',
"tools_film_boundary": 1,
- "tools_film_adjust": 0,
+ "tools_film_scale": 0,
"tools_panelize_spacing_columns": 0,
"tools_panelize_spacing_rows": 0,
@@ -1564,11 +1564,15 @@ class App(QtCore.QObject):
self.inform.emit("[WARNING_NOTCL]Editing a MultiGeo Geometry is not possible for the moment.")
return
+ # store the Geometry Editor Toolbar visibility before entering in the Editor
+ self.geo_editor.toolbar_old_state = True if self.ui.geo_edit_toolbar.isVisible() else False
self.geo_editor.edit_fcgeometry(edited_object)
# set call source to the Editor we go into
self.call_source = 'geo_editor'
elif isinstance(edited_object, FlatCAMExcellon):
+ # store the Excellon Editor Toolbar visibility before entering in the Editor
+ self.exc_editor.toolbar_old_state = True if self.ui.exc_edit_toolbar.isVisible() else False
self.exc_editor.edit_fcexcellon(edited_object)
# set call source to the Editor we go into
diff --git a/FlatCAMEditor.py b/FlatCAMEditor.py
index 6e61be4a..a472da6b 100644
--- a/FlatCAMEditor.py
+++ b/FlatCAMEditor.py
@@ -1970,6 +1970,9 @@ class FlatCAMGeoEditor(QtCore.QObject):
self.move_timer = QtCore.QTimer()
self.move_timer.setSingleShot(True)
+ # this var will store the state of the toolbar before starting the editor
+ self.toolbar_old_state = False
+
self.key = None # Currently pressed key
self.geo_key_modifiers = None
self.x = None # Current mouse cursor pos
@@ -2083,24 +2086,29 @@ class FlatCAMGeoEditor(QtCore.QObject):
if settings.contains("theme"):
theme = settings.value('theme', type=str)
if theme == 'standard':
- self.app.ui.geo_edit_toolbar.setVisible(False)
+ # self.app.ui.geo_edit_toolbar.setVisible(False)
self.app.ui.snap_max_dist_entry.setEnabled(False)
self.app.ui.corner_snap_btn.setEnabled(False)
self.app.ui.snap_magnet.setVisible(False)
self.app.ui.corner_snap_btn.setVisible(False)
elif theme == 'compact':
- self.app.ui.snap_max_dist_entry.setEnabled(False)
+ # self.app.ui.geo_edit_toolbar.setVisible(True)
+ self.app.ui.snap_max_dist_entry.setEnabled(False)
self.app.ui.corner_snap_btn.setEnabled(False)
else:
- self.app.ui.geo_edit_toolbar.setVisible(False)
+ # self.app.ui.geo_edit_toolbar.setVisible(False)
self.app.ui.snap_magnet.setVisible(False)
self.app.ui.corner_snap_btn.setVisible(False)
self.app.ui.snap_max_dist_entry.setEnabled(False)
self.app.ui.corner_snap_btn.setEnabled(False)
+ # set the Editor Toolbar visibility to what was before entering in the Editor
+ self.app.ui.geo_edit_toolbar.setVisible(False) if self.toolbar_old_state is False \
+ else self.app.ui.geo_edit_toolbar.setVisible(True)
+
# Disable visuals
self.shapes.enabled = False
self.tool_shape.enabled = False
@@ -3695,6 +3703,9 @@ class FlatCAMExcEditor(QtCore.QObject):
# this will flag if the Editor "tools" are launched from key shortcuts (True) or from menu toolbar (False)
self.launched_from_shortcuts = False
+ # this var will store the state of the toolbar before starting the editor
+ self.toolbar_old_state = False
+
self.app.ui.delete_drill_btn.triggered.connect(self.on_delete_btn)
self.name_entry.returnPressed.connect(self.on_name_activate)
self.addtool_btn.clicked.connect(self.on_tool_add)
@@ -4216,27 +4227,31 @@ class FlatCAMExcEditor(QtCore.QObject):
if settings.contains("theme"):
theme = settings.value('theme', type=str)
if theme == 'standard':
- self.app.ui.exc_edit_toolbar.setVisible(False)
+ # self.app.ui.exc_edit_toolbar.setVisible(False)
self.app.ui.snap_max_dist_entry.setEnabled(False)
self.app.ui.corner_snap_btn.setEnabled(False)
self.app.ui.snap_magnet.setVisible(False)
self.app.ui.corner_snap_btn.setVisible(False)
elif theme == 'compact':
- self.app.ui.exc_edit_toolbar.setVisible(True)
+ # self.app.ui.exc_edit_toolbar.setVisible(True)
self.app.ui.snap_max_dist_entry.setEnabled(False)
self.app.ui.corner_snap_btn.setEnabled(False)
self.app.ui.snap_magnet.setVisible(True)
self.app.ui.corner_snap_btn.setVisible(True)
else:
- self.app.ui.exc_edit_toolbar.setVisible(False)
+ # self.app.ui.exc_edit_toolbar.setVisible(False)
self.app.ui.snap_max_dist_entry.setEnabled(False)
self.app.ui.corner_snap_btn.setEnabled(False)
self.app.ui.snap_magnet.setVisible(False)
self.app.ui.corner_snap_btn.setVisible(False)
+ # set the Editor Toolbar visibility to what was before entering in the Editor
+ self.app.ui.exc_edit_toolbar.setVisible(False) if self.toolbar_old_state is False \
+ else self.app.ui.exc_edit_toolbar.setVisible(True)
+
# Disable visuals
self.shapes.enabled = False
self.tool_shape.enabled = False
diff --git a/FlatCAMGUI.py b/FlatCAMGUI.py
index cb1b6071..d9540230 100644
--- a/FlatCAMGUI.py
+++ b/FlatCAMGUI.py
@@ -394,7 +394,11 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.splitter = QtWidgets.QSplitter()
self.setCentralWidget(self.splitter)
- self.notebook = QtWidgets.QTabWidget()
+ # self.notebook = QtWidgets.QTabWidget()
+ self.notebook = FCDetachableTab(protect=True)
+ self.notebook.setTabsClosable(False)
+ self.notebook.useOldIndex(True)
+
self.splitter.addWidget(self.notebook)
self.splitter_left = QtWidgets.QSplitter(Qt.Vertical)
@@ -585,7 +589,8 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.right_lay.setContentsMargins(0, 0, 0, 0)
self.right_widget.setLayout(self.right_lay)
# self.plot_tab_area = FCTab()
- self.plot_tab_area = FCDetachableTab()
+ self.plot_tab_area = FCDetachableTab(protect=False, protect_by_name=['Plot Area'])
+ self.plot_tab_area.useOldIndex(True)
self.right_lay.addWidget(self.plot_tab_area)
self.plot_tab_area.setTabsClosable(True)
@@ -2840,7 +2845,7 @@ class ToolsNCCPrefGroupUI(OptionsGroupUI):
self.setTitle(str("NCC Tool Options"))
## Clear non-copper regions
- self.clearcopper_label = QtWidgets.QLabel("Clear non-copper:")
+ self.clearcopper_label = QtWidgets.QLabel("Parameters:")
self.clearcopper_label.setToolTip(
"Create a Geometry object with\n"
"toolpaths to cut all non-copper regions."
@@ -2941,7 +2946,7 @@ class ToolsCutoutPrefGroupUI(OptionsGroupUI):
self.setTitle(str("Cutout Tool Options"))
## Board cuttout
- self.board_cutout_label = QtWidgets.QLabel("Board cutout:")
+ self.board_cutout_label = QtWidgets.QLabel("Parameters:")
self.board_cutout_label.setToolTip(
"Create toolpaths to cut around\n"
"the PCB and separate it from\n"
@@ -3024,7 +3029,7 @@ class Tools2sidedPrefGroupUI(OptionsGroupUI):
self.setTitle(str("2Sided Tool Options"))
## Board cuttout
- self.dblsided_label = QtWidgets.QLabel("Double Sided:")
+ self.dblsided_label = QtWidgets.QLabel("Parameters:")
self.dblsided_label.setToolTip(
"A tool to help in creating a double sided\n"
"PCB using alignment holes."
@@ -3083,7 +3088,7 @@ class ToolsPaintPrefGroupUI(OptionsGroupUI):
# ------------------------------
## Paint area
# ------------------------------
- self.paint_label = QtWidgets.QLabel('Paint Area:')
+ self.paint_label = QtWidgets.QLabel('Parameters:')
self.paint_label.setToolTip(
"Creates tool paths to cover the\n"
"whole area of a polygon (remove\n"
@@ -3186,7 +3191,7 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI):
self.setTitle(str("Film Tool Options"))
## Board cuttout
- self.film_label = QtWidgets.QLabel("Film parameters:")
+ self.film_label = QtWidgets.QLabel("Parameters:")
self.film_label.setToolTip(
"Create a PCB film from a Gerber or Geometry\n"
"FlatCAM object.\n"
@@ -3225,14 +3230,15 @@ class ToolsFilmPrefGroupUI(OptionsGroupUI):
grid0.addWidget(self.film_boundary_label, 1, 0)
grid0.addWidget(self.film_boundary_entry, 1, 1)
- self.film_adjust_entry = FCEntry()
- self.film_adjust_label = QtWidgets.QLabel("Adjust:")
- self.film_adjust_label.setToolTip(
- "Adjust the line thickness of each feature in the SVG file.\n"
- "In pixels."
+ self.film_scale_entry = FCEntry()
+ self.film_scale_label = QtWidgets.QLabel("Scale Stroke:")
+ self.film_scale_label.setToolTip(
+ "Scale the line stroke thickness of each feature in the SVG file.\n"
+ "It means that the line that envelope each SVG feature will be thicker or thinner,\n"
+ "therefore the fine features may be more affected by this parameter."
)
- grid0.addWidget(self.film_adjust_label, 2, 0)
- grid0.addWidget(self.film_adjust_entry, 2, 1)
+ grid0.addWidget(self.film_scale_label, 2, 0)
+ grid0.addWidget(self.film_scale_entry, 2, 1)
self.layout.addStretch()
@@ -3245,7 +3251,7 @@ class ToolsPanelizePrefGroupUI(OptionsGroupUI):
self.setTitle(str("Panelize Tool Options"))
## Board cuttout
- self.panelize_label = QtWidgets.QLabel("Board cutout:")
+ self.panelize_label = QtWidgets.QLabel("Parameters:")
self.panelize_label.setToolTip(
"Create an object that contains an array of (x, y) elements,\n"
"each element is a copy of the source object spaced\n"
diff --git a/GUIElements.py b/GUIElements.py
index 837c0a05..d2242559 100644
--- a/GUIElements.py
+++ b/GUIElements.py
@@ -554,7 +554,7 @@ class FCTab(QtWidgets.QTabWidget):
class FCDetachableTab(QtWidgets.QTabWidget):
# From here: https://stackoverflow.com/questions/47267195/in-pyqt4-is-it-possible-to-detach-tabs-from-a-qtabwidget
- def __init__(self, parent=None):
+ def __init__(self, protect=None, protect_by_name=None, parent=None):
super().__init__()
@@ -569,12 +569,26 @@ class FCDetachableTab(QtWidgets.QTabWidget):
# does not have a parent
self.detachedTabs = {}
+ # a way to make sure that tabs can't be closed after they attach to the parent tab
+ self.protect_tab = True if protect is not None and protect is True else False
+
+ 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
+ # used by the property self.useOldIndex(param)
+ self.use_old_index = None
+ self.old_index = None
+
self.setTabsClosable(True)
self.tabCloseRequested.connect(self.closeTab)
+ def useOldIndex(self, param):
+ if param:
+ self.use_old_index = True
+ else:
+ self.use_old_index = False
def deleteTab(self, currentIndex):
widget = self.widget(currentIndex)
@@ -610,7 +624,6 @@ class FCDetachableTab(QtWidgets.QTabWidget):
self.insertTab(toIndex, widget, icon, text)
self.setCurrentIndex(toIndex)
-
##
# Detach the tab by removing it's contents and placing them in
# a DetachedTab window
@@ -620,6 +633,8 @@ class FCDetachableTab(QtWidgets.QTabWidget):
@pyqtSlot(int, QtCore.QPoint)
def detachTab(self, index, point):
+ self.old_index = index
+
# Get the tab content
name = self.tabText(index)
icon = self.tabIcon(index)
@@ -663,6 +678,9 @@ class FCDetachableTab(QtWidgets.QTabWidget):
# Remove the reference
del self.detachedTabs[name]
+ # helps in restoring the tab to the same index that it was before was detached
+ insert_index = self.old_index if self.use_old_index is True else insertAt
+
# Create an image from the given icon (for comparison)
if not icon.isNull():
try:
@@ -686,21 +704,30 @@ class FCDetachableTab(QtWidgets.QTabWidget):
# Determine if the given image and the main window icon are the same.
# If they are, then do not add the icon to the tab
if tabIconImage == windowIconImage:
- if insertAt == None:
+ if insert_index is None:
index = self.addTab(contentWidget, name)
else:
- index = self.insertTab(insertAt, contentWidget, name)
+ index = self.insertTab(insert_index, contentWidget, name)
else:
- if insertAt == None:
+ if insert_index is None:
index = self.addTab(contentWidget, icon, name)
else:
- index = self.insertTab(insertAt, contentWidget, icon, name)
+ index = self.insertTab(insert_index, contentWidget, icon, name)
+ # on reattaching the tab if protect is true then the closure button is not added
+ if self.protect_tab is True:
+ self.protectTab(index)
+
+ # on reattaching the tab disable the closure button for the tabs with the name in the self.protect_by_name list
+ if self.protect_by_name is not None:
+ for tab_name in self.protect_by_name:
+ for index in range(self.count()):
+ if str(tab_name) == str(self.tabText(index)):
+ self.protectTab(index)
# Make this tab the current tab
- if index > -1:
- self.setCurrentIndex(index)
-
+ if index > -1:
+ self.setCurrentIndex(insert_index) if self.use_old_index else self.setCurrentIndex(index)
##
# Remove the tab with the given name, even if it is detached
@@ -986,8 +1013,6 @@ class FCDetachableTab(QtWidgets.QTabWidget):
self.dragDropedPos = event.pos()
QtWidgets.QTabBar.dropEvent(self, event)
-
-
# Determine if the detached tab drop event occurred on an existing tab,
# then send the event to the DetachableTabWidget
def detachedTabDrop(self, name, dropPos):
diff --git a/README.md b/README.md
index 52734604..4a78cd3c 100644
--- a/README.md
+++ b/README.md
@@ -9,11 +9,15 @@ CAD program, and create G-Code for Isolation routing.
=================================================
-24.02.2019
+4.02.2019
- modified the Toolchange_Probe_general postprocessor file to remove any Z moves before the actual toolchange event
- created a prototype postprocessor file for usage with tool probing in MACH3
- added the default values for Tool Film and Tool Panelize to the Edit -> Preferences
+- added a new parameter in the Tool Film which control the thickness of the stroke width in the resulting SVG. It's a scale parameter.
+- whatever was the visibility of the corresponding toolbar when we enter in the Editor, it will be set after exit from the Editor (either Geometry Editor or Excellon Editor).
+- added ability to be detached for the tabs in the Notebook section (Project, Selected and Tool)
+- added ability for all detachable tabs to be restored to the same position from where they were detached.
3.3.2019
diff --git a/flatcamTools/ToolCutOut.py b/flatcamTools/ToolCutOut.py
index e7789d1d..6176808d 100644
--- a/flatcamTools/ToolCutOut.py
+++ b/flatcamTools/ToolCutOut.py
@@ -48,6 +48,8 @@ class ToolCutOut(FlatCAMTool):
self.obj_combo = QtWidgets.QComboBox()
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.object_label = QtWidgets.QLabel("Object:")
self.object_label.setToolTip(
"Object to be cutout. "
@@ -201,7 +203,6 @@ class ToolCutOut(FlatCAMTool):
def set_tool_ui(self):
self.reset_fields()
- self.obj_combo.setCurrentIndex(1)
self.dia.set_value(float(self.app.defaults["tools_cutouttooldia"]))
self.margin.set_value(float(self.app.defaults["tools_cutoutmargin"]))
diff --git a/flatcamTools/ToolDblSided.py b/flatcamTools/ToolDblSided.py
index fb024797..3223616e 100644
--- a/flatcamTools/ToolDblSided.py
+++ b/flatcamTools/ToolDblSided.py
@@ -29,6 +29,7 @@ class DblSidedTool(FlatCAMTool):
self.gerber_object_combo = QtWidgets.QComboBox()
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.botlay_label = QtWidgets.QLabel("GERBER:")
self.botlay_label.setToolTip(
@@ -52,6 +53,7 @@ class DblSidedTool(FlatCAMTool):
self.exc_object_combo = QtWidgets.QComboBox()
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.excobj_label = QtWidgets.QLabel("EXCELLON:")
self.excobj_label.setToolTip(
@@ -262,9 +264,6 @@ class DblSidedTool(FlatCAMTool):
def set_tool_ui(self):
self.reset_fields()
- self.gerber_object_combo.setCurrentIndex(1)
- self.exc_object_combo.setCurrentIndex(1)
-
self.point_entry.set_value("")
self.alignment_holes.set_value("")
diff --git a/flatcamTools/ToolFilm.py b/flatcamTools/ToolFilm.py
index 43e2cf42..759a1580 100644
--- a/flatcamTools/ToolFilm.py
+++ b/flatcamTools/ToolFilm.py
@@ -43,6 +43,8 @@ class Film(FlatCAMTool):
self.tf_object_combo = QtWidgets.QComboBox()
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_label = QtWidgets.QLabel("Film Object:")
self.tf_object_label.setToolTip(
"Object for which to create the film."
@@ -74,6 +76,7 @@ class Film(FlatCAMTool):
self.tf_box_combo = QtWidgets.QComboBox()
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_label = QtWidgets.QLabel("Box Object:")
self.tf_box_combo_label.setToolTip(
@@ -113,6 +116,15 @@ class Film(FlatCAMTool):
)
tf_form_layout.addRow(self.boundary_label, self.boundary_entry)
+ self.film_scale_entry = FCEntry()
+ self.film_scale_label = QtWidgets.QLabel("Scale Stroke:")
+ self.film_scale_label.setToolTip(
+ "Scale the line stroke thickness of each feature in the SVG file.\n"
+ "It means that the line that envelope each SVG feature will be thicker or thinner,\n"
+ "therefore the fine features may be more affected by this parameter."
+ )
+ tf_form_layout.addRow(self.film_scale_label, self.film_scale_entry)
+
# Buttons
hlay = QtWidgets.QHBoxLayout()
self.layout.addLayout(hlay)
@@ -157,19 +169,22 @@ class Film(FlatCAMTool):
def set_tool_ui(self):
self.reset_fields()
- self.tf_object_combo.setCurrentIndex(1)
- self.tf_box_combo.setCurrentIndex(1)
f_type = self.app.defaults["tools_film_type"] if self.app.defaults["tools_film_type"] else 'neg'
self.film_type.set_value(str(f_type))
+
b_entry = self.app.defaults[ "tools_film_boundary"] if self.app.defaults[ "tools_film_boundary"] else 0.0
self.boundary_entry.set_value(float(b_entry))
+ scale_stroke_width = self.app.defaults["tools_film_scale"] if self.app.defaults["tools_film_scale"] else 0.0
+ self.film_scale_entry.set_value(int(scale_stroke_width))
+
def on_film_creation(self):
try:
name = self.tf_object_combo.currentText()
except:
self.app.inform.emit("[ERROR_NOTCL] No FlatCAM object selected. Load an object for Film and retry.")
return
+
try:
boxname = self.tf_box_combo.currentText()
except:
@@ -187,6 +202,13 @@ class Film(FlatCAMTool):
"use a number.")
return
+ try:
+ scale_stroke_width = int(self.film_scale_entry.get_value())
+ except ValueError:
+ self.app.inform.emit("[ERROR_NOTCL]Wrong value format entered, "
+ "use a number.")
+ return
+
if border is None:
border = 0
@@ -207,7 +229,7 @@ class Film(FlatCAMTool):
self.app.inform.emit("[WARNING_NOTCL]Export SVG positive cancelled.")
return
else:
- self.app.export_svg_black(name, boxname, filename)
+ self.app.export_svg_black(name, boxname, filename, scale_factor=scale_stroke_width)
else:
try:
filename, _ = QtWidgets.QFileDialog.getSaveFileName(
@@ -223,7 +245,7 @@ class Film(FlatCAMTool):
self.app.inform.emit("[WARNING_NOTCL]Export SVG negative cancelled.")
return
else:
- self.app.export_svg_negative(name, boxname, filename, border)
+ self.app.export_svg_negative(name, boxname, filename, border, scale_factor=scale_stroke_width)
def reset_fields(self):
self.tf_object_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex()))
diff --git a/flatcamTools/ToolNonCopperClear.py b/flatcamTools/ToolNonCopperClear.py
index 42cb245f..7bc9f2d7 100644
--- a/flatcamTools/ToolNonCopperClear.py
+++ b/flatcamTools/ToolNonCopperClear.py
@@ -34,6 +34,8 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.object_combo = QtWidgets.QComboBox()
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_label = QtWidgets.QLabel("Gerber:")
self.object_label.setToolTip(
"Gerber object to be cleared of excess copper. "
@@ -246,8 +248,6 @@ class NonCopperClear(FlatCAMTool, Gerber):
def set_tool_ui(self):
self.tools_frame.show()
- self.object_combo.setCurrentIndex(1)
-
self.ncc_overlap_entry.set_value(self.app.defaults["tools_nccoverlap"])
self.ncc_margin_entry.set_value(self.app.defaults["tools_nccmargin"])
self.ncc_method_radio.set_value(self.app.defaults["tools_nccmethod"])
diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py
index 88facf6c..0604d9ac 100644
--- a/flatcamTools/ToolPaint.py
+++ b/flatcamTools/ToolPaint.py
@@ -32,6 +32,8 @@ class ToolPaint(FlatCAMTool, Gerber):
self.object_combo = QtWidgets.QComboBox()
self.object_combo.setModel(self.app.collection)
self.object_combo.setRootModelIndex(self.app.collection.index(2, 0, QtCore.QModelIndex()))
+ self.object_combo.setCurrentIndex(1)
+
self.object_label = QtWidgets.QLabel("Geometry:")
self.object_label.setToolTip(
"Geometry object to be painted. "
@@ -323,7 +325,6 @@ class ToolPaint(FlatCAMTool, Gerber):
def set_tool_ui(self):
self.tools_frame.show()
self.reset_fields()
- self.object_combo.setCurrentIndex(1)
## Init the GUI interface
self.paintmargin_entry.set_value(self.default_data["paintmargin"])
diff --git a/flatcamTools/ToolPanelize.py b/flatcamTools/ToolPanelize.py
index dcb8046f..11549d08 100644
--- a/flatcamTools/ToolPanelize.py
+++ b/flatcamTools/ToolPanelize.py
@@ -43,6 +43,8 @@ class Panelize(FlatCAMTool):
self.object_combo = QtWidgets.QComboBox()
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_label = QtWidgets.QLabel("Object:")
self.object_label.setToolTip(
"Object to be panelized. This means that it will\n"
@@ -74,6 +76,8 @@ class Panelize(FlatCAMTool):
self.box_combo = QtWidgets.QComboBox()
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_label = QtWidgets.QLabel("Box Object:")
self.box_combo_label.setToolTip(
"The actual object that is used a container for the\n "
@@ -187,8 +191,6 @@ class Panelize(FlatCAMTool):
def set_tool_ui(self):
self.reset_fields()
- self.object_combo.setCurrentIndex(1)
- self.box_combo.setCurrentIndex(1)
sp_c = self.app.defaults["tools_panelize_spacing_columns"] if \
self.app.defaults["tools_panelize_spacing_columns"] else 0.0