- fixed an issue with the tool table context menu in Paint Tool

- made some changes in the GUI in Paint Tool, NCC Tool and SolderPaste Tool
This commit is contained in:
Marius Stanciu 2019-10-05 22:58:54 +03:00 committed by Marius
parent 18c72e4286
commit 9506095ca2
5 changed files with 94 additions and 61 deletions

View File

@ -6636,46 +6636,17 @@ class App(QtCore.QObject):
if notebook_widget_name == 'tool_tab':
tool_widget = self.ui.tool_scroll_area.widget().objectName()
tool_add_popup = FCInputDialog(title="New Tool ...",
text='Enter a Tool Diameter:',
min=0.0000, max=99.9999, decimals=4)
tool_add_popup.setWindowIcon(QtGui.QIcon('share/letter_t_32.png'))
val, ok = tool_add_popup.get_value()
# and only if the tool is NCC Tool
if tool_widget == self.ncclear_tool.toolName:
if ok:
if float(val) == 0:
self.inform.emit('[WARNING_NOTCL] %s' %
_("Please enter a tool diameter with non-zero value, in Float format."))
return
self.ncclear_tool.on_tool_add(dia=float(val))
else:
self.inform.emit('[WARNING_NOTCL] %s...' %
_("Adding Tool cancelled"))
self.ncclear_tool.on_add_tool_by_key()
# and only if the tool is Paint Area Tool
elif tool_widget == self.paint_tool.toolName:
if ok:
if float(val) == 0:
self.inform.emit('[WARNING_NOTCL] %s' %
_("Please enter a tool diameter with non-zero value, in Float format."))
return
self.paint_tool.on_tool_add(dia=float(val))
else:
self.inform.emit('[WARNING_NOTCL] %s...' %
_("Adding Tool cancelled"))
self.paint_tool.on_add_tool_by_key()
# and only if the tool is Solder Paste Dispensing Tool
elif tool_widget == self.paste_tool.toolName:
if ok:
if float(val) == 0:
self.inform.emit('[WARNING_NOTCL] %s' %
_("Please enter a tool diameter with non-zero value, in Float format."))
return
self.paste_tool.on_tool_add(dia=float(val))
else:
self.inform.emit('[WARNING_NOTCL] %s...' %
_("Adding Tool cancelled"))
self.paste_tool.on_add_tool_by_key()
# It's meant to delete tools in tool tables via a 'Delete' shortcut key but only if certain conditions are met
# See description bellow.

View File

@ -14,6 +14,8 @@ CAD program, and create G-Code for Isolation routing.
- remade the Tool Calculators to use the QSpinBox in order to simplify the user interaction and remove possible errors
- remade: Tool Cutout, Tool 2Sided, Tool Image, Panelize Tool, NCC Tool, Paint Tool to use the QSpinBox GUI elements
- optimized the Transformation Tool both in GUI and in functionality and replaced the entries with QSpinBox
- fixed an issue with the tool table context menu in Paint Tool
- made some changes in the GUI in Paint Tool, NCC Tool and SolderPaste Tool
4.10.2019

View File

@ -225,6 +225,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
_("The tip diameter for V-Shape Tool"))
self.tipdia_entry = FCDoubleSpinner()
self.tipdia_entry.set_precision(self.decimals)
self.tipdia_entry.setSingleStep(0.1)
form.addRow(self.tipdialabel, self.tipdia_entry)
@ -235,6 +236,7 @@ class NonCopperClear(FlatCAMTool, Gerber):
"In degree."))
self.tipangle_entry = FCDoubleSpinner()
self.tipangle_entry.set_precision(self.decimals)
self.tipangle_entry.setSingleStep(5)
form.addRow(self.tipanglelabel, self.tipangle_entry)
@ -460,30 +462,39 @@ class NonCopperClear(FlatCAMTool, Gerber):
)
self.tools_box.addWidget(self.generate_ncc_button)
self.tools_box.addStretch()
# ############################ FINSIHED GUI ###################################
# #############################################################################
# #############################################################################
# ###################### Setup CONTEXT MENU ###################################
# #############################################################################
self.tools_table.setupContextMenu()
self.tools_table.addContextMenu(
"Add", lambda: self.on_tool_add(dia=None, muted=None), icon=QtGui.QIcon("share/plus16.png"))
"Add", self.on_add_tool_by_key, icon=QtGui.QIcon("share/plus16.png"))
self.tools_table.addContextMenu(
"Delete", lambda:
self.on_tool_delete(rows_to_delete=None, all=None), icon=QtGui.QIcon("share/delete32.png"))
# #############################################################################
# ########################## VARIABLES ########################################
# #############################################################################
self.units = ''
self.ncc_tools = {}
self.ncc_tools = dict()
self.tooluid = 0
# store here the default data for Geometry Data
self.default_data = {}
self.default_data = dict()
self.obj_name = ""
self.ncc_obj = None
self.sel_rect = []
self.sel_rect = list()
self.bound_obj_name = ""
self.bound_obj = None
self.ncc_dia_list = []
self.iso_dia_list = []
self.ncc_dia_list = list()
self.iso_dia_list = list()
self.has_offset = None
self.o_name = None
self.overlap = None
@ -497,13 +508,16 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.mm = None
self.mr = None
# store here solid_geometry when there are tool with isolation job
self.solid_geometry = []
self.solid_geometry = list()
self.select_method = None
self.tool_type_item_options = list()
self.tool_type_item_options = []
# #############################################################################
# ############################ SGINALS ########################################
# #############################################################################
self.addtool_btn.clicked.connect(self.on_tool_add)
self.addtool_entry.editingFinished.connect(self.on_tool_add)
self.deltool_btn.clicked.connect(self.on_tool_delete)
@ -522,6 +536,22 @@ class NonCopperClear(FlatCAMTool, Gerber):
self.object_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
self.object_combo.setCurrentIndex(0)
def on_add_tool_by_key(self):
tool_add_popup = FCInputDialog(title='%s...' % _("New Tool"),
text='%s:' % _('Enter a Tool Diameter'),
min=0.0000, max=99.9999, decimals=4)
tool_add_popup.setWindowIcon(QtGui.QIcon('share/letter_t_32.png'))
val, ok = tool_add_popup.get_value()
if ok:
if float(val) == 0:
self.app.inform.emit('[WARNING_NOTCL] %s' %
_("Please enter a tool diameter with non-zero value, in Float format."))
return
self.on_tool_add(dia=float(val))
else:
self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Adding Tool cancelled"))
def install(self, icon=None, separator=None, **kwargs):
FlatCAMTool.install(self, icon, separator, shortcut='ALT+N', **kwargs)

View File

@ -351,6 +351,8 @@ class ToolPaint(FlatCAMTool, Gerber):
self.tools_box.addWidget(self.generate_paint_button)
self.tools_box.addStretch()
# #################################### FINSIHED GUI #####################################
# #######################################################################################
self.obj_name = ""
self.paint_obj = None
@ -412,7 +414,9 @@ class ToolPaint(FlatCAMTool, Gerber):
self.tool_type_item_options = ["C1", "C2", "C3", "C4", "B", "V"]
# ## Signals
# #############################################################################
# ################################# Signals ###################################
# #############################################################################
self.addtool_btn.clicked.connect(self.on_tool_add)
self.addtool_entry.editingFinished.connect(self.on_tool_add)
# self.copytool_btn.clicked.connect(lambda: self.on_tool_copy())
@ -426,6 +430,16 @@ class ToolPaint(FlatCAMTool, Gerber):
self.box_combo_type.currentIndexChanged.connect(self.on_combo_box_type)
self.type_obj_combo.currentIndexChanged.connect(self.on_type_obj_index_changed)
# #############################################################################
# ###################### Setup CONTEXT MENU ###################################
# #############################################################################
self.tools_table.setupContextMenu()
self.tools_table.addContextMenu(
"Add", self.on_add_tool_by_key, icon=QtGui.QIcon("share/plus16.png"))
self.tools_table.addContextMenu(
"Delete", lambda:
self.on_tool_delete(rows_to_delete=None, all=None), icon=QtGui.QIcon("share/delete32.png"))
def on_type_obj_index_changed(self, index):
obj_type = self.type_obj_combo.currentIndex()
self.obj_combo.setRootModelIndex(self.app.collection.index(obj_type, 0, QtCore.QModelIndex()))
@ -434,6 +448,22 @@ class ToolPaint(FlatCAMTool, Gerber):
def install(self, icon=None, separator=None, **kwargs):
FlatCAMTool.install(self, icon, separator, shortcut='ALT+P', **kwargs)
def on_add_tool_by_key(self):
tool_add_popup = FCInputDialog(title='%s...' % _("New Tool"),
text='%s:' % _('Enter a Tool Diameter'),
min=0.0000, max=99.9999, decimals=4)
tool_add_popup.setWindowIcon(QtGui.QIcon('share/letter_t_32.png'))
val, ok = tool_add_popup.get_value()
if ok:
if float(val) == 0:
self.app.inform.emit('[WARNING_NOTCL] %s' %
_("Please enter a tool diameter with non-zero value, in Float format."))
return
self.on_tool_add(dia=float(val))
else:
self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Adding Tool cancelled"))
def run(self, toggle=True):
self.app.report_usage("ToolPaint()")
@ -488,15 +518,6 @@ class ToolPaint(FlatCAMTool, Gerber):
# disable rest-machining for single polygon painting
self.rest_cb.set_value(False)
self.rest_cb.setDisabled(True)
# delete all tools except first row / tool for single polygon painting
# list_to_del = list(range(1, self.tools_table.rowCount()))
# if list_to_del:
# self.on_tool_delete(rows_to_delete=list_to_del)
# # disable addTool and delTool
# self.addtool_entry.setDisabled(True)
# self.addtool_btn.setDisabled(True)
# self.deltool_btn.setDisabled(True)
# self.tools_table.setContextMenuPolicy(Qt.NoContextMenu)
if self.selectmethod_combo.get_value() == 'area':
# disable rest-machining for single polygon painting
self.rest_cb.set_value(False)
@ -546,13 +567,6 @@ class ToolPaint(FlatCAMTool, Gerber):
self.decimals = 2
self.addtool_entry.set_value(1)
self.tools_table.setupContextMenu()
self.tools_table.addContextMenu(
"Add", lambda: self.on_tool_add(dia=None, muted=None), icon=QtGui.QIcon("share/plus16.png"))
self.tools_table.addContextMenu(
"Delete", lambda:
self.on_tool_delete(rows_to_delete=None, all=None), icon=QtGui.QIcon("share/delete32.png"))
# set the working variables to a known state
self.paint_tools.clear()
self.tooluid = 0

View File

@ -8,7 +8,7 @@
from FlatCAMTool import FlatCAMTool
from FlatCAMCommon import LoudDict
from flatcamGUI.GUIElements import FCComboBox, FCEntry, FCEntry2, FCTable
from flatcamGUI.GUIElements import FCComboBox, FCEntry, FCEntry2, FCTable, FCInputDialog
from FlatCAMApp import log
from camlib import distance
from FlatCAMObj import FlatCAMCNCjob
@ -460,6 +460,22 @@ class SolderPaste(FlatCAMTool):
def install(self, icon=None, separator=None, **kwargs):
FlatCAMTool.install(self, icon, separator, shortcut='ALT+K', **kwargs)
def on_add_tool_by_key(self):
tool_add_popup = FCInputDialog(title='%s...' % _("New Tool"),
text='%s:' % _('Enter a Tool Diameter'),
min=0.0000, max=99.9999, decimals=4)
tool_add_popup.setWindowIcon(QtGui.QIcon('share/letter_t_32.png'))
val, ok = tool_add_popup.get_value()
if ok:
if float(val) == 0:
self.app.inform.emit('[WARNING_NOTCL] %s' %
_("Please enter a tool diameter with non-zero value, in Float format."))
return
self.on_tool_add(dia=float(val))
else:
self.app.inform.emit('[WARNING_NOTCL] %s...' % _("Adding Tool cancelled"))
def set_tool_ui(self):
self.form_fields.update({
"tools_solderpaste_new": self.addtool_entry,