- fixed bugs in Excellon Editor

- Excellon Editor:  made Add Pad tool to work until right click
This commit is contained in:
Marius Stanciu
2019-05-01 17:26:38 +03:00
committed by Marius
parent 747a0817f3
commit 52ab274b1c
4 changed files with 59 additions and 27 deletions

View File

@@ -1386,6 +1386,7 @@ class App(QtCore.QObject):
self.ui.popmenu_disable.triggered.connect(lambda: self.disable_plots(self.collection.get_selected())) self.ui.popmenu_disable.triggered.connect(lambda: self.disable_plots(self.collection.get_selected()))
self.ui.popmenu_new_geo.triggered.connect(self.new_geometry_object) self.ui.popmenu_new_geo.triggered.connect(self.new_geometry_object)
self.ui.popmenu_new_grb.triggered.connect(self.new_gerber_object)
self.ui.popmenu_new_exc.triggered.connect(self.new_excellon_object) self.ui.popmenu_new_exc.triggered.connect(self.new_excellon_object)
self.ui.popmenu_new_prj.triggered.connect(self.on_file_new) self.ui.popmenu_new_prj.triggered.connect(self.on_file_new)

View File

@@ -18,6 +18,8 @@ CAD program, and create G-Code for Isolation routing.
- fixed a crash when triggering 'Jump To' menu action (shortcut key 'J' worked ok) - fixed a crash when triggering 'Jump To' menu action (shortcut key 'J' worked ok)
- made some mods to what can be translated as some of the translations interfered with the correct functioning of FlatCAM - made some mods to what can be translated as some of the translations interfered with the correct functioning of FlatCAM
- updated the translations - updated the translations
- fixed bugs in Excellon Editor
- Excellon Editor: made Add Pad tool to work until right click
30.04.2019 30.04.2019

View File

@@ -44,7 +44,7 @@ class FCDrillAdd(FCShapeTool):
except KeyError: except KeyError:
self.draw_app.app.inform.emit(_("[WARNING_NOTCL] To add a drill first select a tool")) self.draw_app.app.inform.emit(_("[WARNING_NOTCL] To add a drill first select a tool"))
self.draw_app.select_tool("select") self.draw_app.select_tool("drill_select")
return return
try: try:
@@ -103,6 +103,7 @@ class FCDrillAdd(FCShapeTool):
self.draw_app.current_storage = self.draw_app.storage_dict[self.selected_dia] self.draw_app.current_storage = self.draw_app.storage_dict[self.selected_dia]
self.geometry = DrawToolShape(self.util_shape(self.points)) self.geometry = DrawToolShape(self.util_shape(self.points))
self.draw_app.in_action = False
self.complete = True self.complete = True
self.draw_app.app.inform.emit(_("[success] Done. Drill added.")) self.draw_app.app.inform.emit(_("[success] Done. Drill added."))
@@ -319,7 +320,7 @@ class FCDrillArray(FCShapeTool):
self.geometry.append(DrawToolShape(geo)) self.geometry.append(DrawToolShape(geo))
self.complete = True self.complete = True
self.draw_app.app.inform.emit(_("[success] Done. Drill Array added.")) self.draw_app.app.inform.emit(_("[success] Done. Drill Array added."))
self.draw_app.in_action = True self.draw_app.in_action = False
self.draw_app.array_frame.hide() self.draw_app.array_frame.hide()
return return
@@ -428,7 +429,7 @@ class FCDrillResize(FCShapeTool):
self.complete = True self.complete = True
# MS: always return to the Select Tool # MS: always return to the Select Tool
self.draw_app.select_tool("select") self.draw_app.select_tool("drill_select")
class FCDrillMove(FCShapeTool): class FCDrillMove(FCShapeTool):
@@ -475,7 +476,7 @@ class FCDrillMove(FCShapeTool):
self.make() self.make()
# MS: always return to the Select Tool # MS: always return to the Select Tool
self.draw_app.select_tool("select") self.draw_app.select_tool("drill_select")
return return
def make(self): def make(self):
@@ -643,8 +644,11 @@ class FCDrillSelect(DrawTool):
sel_tools.add(storage) sel_tools.add(storage)
for storage in sel_tools: for storage in sel_tools:
self.exc_editor_app.tools_table_exc.selectRow(int(storage) - 1) for k, v in self.draw_app.tool2tooldia.items():
self.draw_app.last_tool_selected = int(storage) if v == storage:
self.exc_editor_app.tools_table_exc.selectRow(int(k) - 1)
self.draw_app.last_tool_selected = int(k)
break
self.exc_editor_app.tools_table_exc.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) self.exc_editor_app.tools_table_exc.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)
@@ -999,7 +1003,7 @@ class FlatCAMExcEditor(QtCore.QObject):
## Toolbar events and properties ## Toolbar events and properties
self.tools_exc = { self.tools_exc = {
"select": {"button": self.app.ui.select_drill_btn, "drill_select": {"button": self.app.ui.select_drill_btn,
"constructor": FCDrillSelect}, "constructor": FCDrillSelect},
"drill_add": {"button": self.app.ui.add_drill_btn, "drill_add": {"button": self.app.ui.add_drill_btn,
"constructor": FCDrillAdd}, "constructor": FCDrillAdd},
@@ -1016,6 +1020,8 @@ class FlatCAMExcEditor(QtCore.QObject):
### Data ### Data
self.active_tool = None self.active_tool = None
self.in_action = False
self.storage_dict = {} self.storage_dict = {}
self.current_storage = [] self.current_storage = []
@@ -1067,7 +1073,6 @@ class FlatCAMExcEditor(QtCore.QObject):
self.app.ui.exc_move_drill_menuitem.triggered.connect(self.exc_move_drills) self.app.ui.exc_move_drill_menuitem.triggered.connect(self.exc_move_drills)
# Init GUI # Init GUI
self.drill_array_size_entry.set_value(5) self.drill_array_size_entry.set_value(5)
self.drill_pitch_entry.set_value(2.54) self.drill_pitch_entry.set_value(2.54)
@@ -1844,7 +1849,7 @@ class FlatCAMExcEditor(QtCore.QObject):
# Set selection tolerance # Set selection tolerance
# DrawToolShape.tolerance = fc_excellon.drawing_tolerance * 10 # DrawToolShape.tolerance = fc_excellon.drawing_tolerance * 10
self.select_tool("select") self.select_tool("drill_select")
self.set_ui() self.set_ui()
@@ -2060,10 +2065,10 @@ class FlatCAMExcEditor(QtCore.QObject):
self.app.log.debug("on_tool_select('%s')" % tool) self.app.log.debug("on_tool_select('%s')" % tool)
if self.last_tool_selected is None and current_tool is not 'select': if self.last_tool_selected is None and current_tool is not 'drill_select':
# self.draw_app.select_tool('select') # self.draw_app.select_tool('drill_select')
self.complete = True self.complete = True
current_tool = 'select' current_tool = 'drill_select'
self.app.inform.emit(_("[WARNING_NOTCL] Cancelled. There is no Tool/Drill selected")) self.app.inform.emit(_("[WARNING_NOTCL] Cancelled. There is no Tool/Drill selected"))
# This is to make the group behave as radio group # This is to make the group behave as radio group
@@ -2082,7 +2087,7 @@ class FlatCAMExcEditor(QtCore.QObject):
for t in self.tools_exc: for t in self.tools_exc:
self.tools_exc[t]["button"].setChecked(False) self.tools_exc[t]["button"].setChecked(False)
self.select_tool('select') self.select_tool('drill_select')
self.active_tool = FCDrillSelect(self) self.active_tool = FCDrillSelect(self)
def on_row_selected(self, row, col): def on_row_selected(self, row, col):
@@ -2100,7 +2105,7 @@ class FlatCAMExcEditor(QtCore.QObject):
try: try:
selected_dia = self.tool2tooldia[self.tools_table_exc.currentRow() + 1] selected_dia = self.tool2tooldia[self.tools_table_exc.currentRow() + 1]
self.last_tool_selected = copy(self.tools_table_exc.currentRow()) + 1 self.last_tool_selected = int(self.tools_table_exc.currentRow()) + 1
for obj in self.storage_dict[selected_dia].get_objects(): for obj in self.storage_dict[selected_dia].get_objects():
self.selected.append(obj) self.selected.append(obj)
except Exception as e: except Exception as e:
@@ -2163,7 +2168,11 @@ class FlatCAMExcEditor(QtCore.QObject):
if key_modifier == modifier_to_use: if key_modifier == modifier_to_use:
self.select_tool(self.active_tool.name) self.select_tool(self.active_tool.name)
else: else:
self.select_tool("select") # return to Select tool but not for FCPad
if isinstance(self.active_tool, FCDrillAdd):
self.select_tool(self.active_tool.name)
else:
self.select_tool("drill_select")
return return
if isinstance(self.active_tool, FCDrillSelect): if isinstance(self.active_tool, FCDrillSelect):
@@ -2250,10 +2259,9 @@ class FlatCAMExcEditor(QtCore.QObject):
self.storage.insert(shape) # TODO: Check performance self.storage.insert(shape) # TODO: Check performance
def on_exc_click_release(self, event): def on_exc_click_release(self, event):
pos_canvas = self.canvas.vispy_canvas.translate_coords(event.pos)
self.modifiers = QtWidgets.QApplication.keyboardModifiers() self.modifiers = QtWidgets.QApplication.keyboardModifiers()
pos_canvas = self.canvas.vispy_canvas.translate_coords(event.pos)
if self.app.grid_status(): if self.app.grid_status():
pos = self.app.geo_editor.snap(pos_canvas[0], pos_canvas[1]) pos = self.app.geo_editor.snap(pos_canvas[0], pos_canvas[1])
else: else:
@@ -2263,12 +2271,29 @@ class FlatCAMExcEditor(QtCore.QObject):
# canvas menu # canvas menu
try: try:
if event.button == 2: # right click if event.button == 2: # right click
if self.app.panning_action is True: if self.app.ui.popMenu.mouse_is_panning is False:
self.app.panning_action = False try:
else: QtGui.QGuiApplication.restoreOverrideCursor()
self.app.cursor = QtGui.QCursor() except:
self.app.populate_cmenu_grids() pass
self.app.ui.popMenu.popup(self.app.cursor.pos()) if self.active_tool.complete is False and not isinstance(self.active_tool, FCDrillSelect):
self.active_tool.complete = True
self.in_action = False
self.delete_utility_geometry()
self.app.inform.emit(_("[success] Done."))
self.select_tool('drill_select')
else:
if isinstance(self.active_tool, FCDrillAdd):
self.active_tool.complete = True
self.in_action = False
self.delete_utility_geometry()
self.app.inform.emit(_("[success] Done."))
self.select_tool('drill_select')
self.app.cursor = QtGui.QCursor()
self.app.populate_cmenu_grids()
self.app.ui.popMenu.popup(self.app.cursor.pos())
except Exception as e: except Exception as e:
log.warning("Error: %s" % str(e)) log.warning("Error: %s" % str(e))
raise raise
@@ -2286,7 +2311,10 @@ class FlatCAMExcEditor(QtCore.QObject):
# msg = self.active_tool.click_release((self.pos[0], self.pos[1])) # msg = self.active_tool.click_release((self.pos[0], self.pos[1]))
# self.app.inform.emit(msg) # self.app.inform.emit(msg)
self.active_tool.click_release((self.pos[0], self.pos[1])) self.active_tool.click_release((self.pos[0], self.pos[1]))
self.replot()
# if there are selected objects then plot them
if self.selected:
self.replot()
except Exception as e: except Exception as e:
log.warning("Error: %s" % str(e)) log.warning("Error: %s" % str(e))
raise raise
@@ -2328,7 +2356,7 @@ class FlatCAMExcEditor(QtCore.QObject):
if self.tool2tooldia[key] == storage: if self.tool2tooldia[key] == storage:
item = self.tools_table_exc.item((key - 1), 1) item = self.tools_table_exc.item((key - 1), 1)
self.tools_table_exc.setCurrentItem(item) self.tools_table_exc.setCurrentItem(item)
self.last_tool_selected = key self.last_tool_selected = int(key)
self.tools_table_exc.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection) self.tools_table_exc.setSelectionMode(QtWidgets.QAbstractItemView.ExtendedSelection)

View File

@@ -1567,6 +1567,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.popMenu.addSeparator() self.popMenu.addSeparator()
self.cmenu_newmenu = self.popMenu.addMenu(QtGui.QIcon('share/file32.png'), _("New")) self.cmenu_newmenu = self.popMenu.addMenu(QtGui.QIcon('share/file32.png'), _("New"))
self.popmenu_new_geo = self.cmenu_newmenu.addAction(QtGui.QIcon('share/new_geo32_bis.png'), _("Geometry")) self.popmenu_new_geo = self.cmenu_newmenu.addAction(QtGui.QIcon('share/new_geo32_bis.png'), _("Geometry"))
self.popmenu_new_grb = self.cmenu_newmenu.addAction(QtGui.QIcon('share/flatcam_icon32.png'), "Gerber")
self.popmenu_new_exc = self.cmenu_newmenu.addAction(QtGui.QIcon('share/new_exc32.png'), _("Excellon")) self.popmenu_new_exc = self.cmenu_newmenu.addAction(QtGui.QIcon('share/new_exc32.png'), _("Excellon"))
self.cmenu_newmenu.addSeparator() self.cmenu_newmenu.addSeparator()
self.popmenu_new_prj = self.cmenu_newmenu.addAction(QtGui.QIcon('share/file16.png'), _("Project")) self.popmenu_new_prj = self.cmenu_newmenu.addAction(QtGui.QIcon('share/file16.png'), _("Project"))
@@ -2831,7 +2832,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
self.app.exc_editor.replot() self.app.exc_editor.replot()
# self.select_btn.setChecked(True) # self.select_btn.setChecked(True)
# self.on_tool_select('select') # self.on_tool_select('select')
self.app.exc_editor.select_tool('select') self.app.exc_editor.select_tool('drill_select')
return return
# Delete selected object if delete key event comes out of canvas # Delete selected object if delete key event comes out of canvas
@@ -2967,7 +2968,7 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
if key == QtCore.Qt.Key_T or key == 'T': if key == QtCore.Qt.Key_T or key == 'T':
self.app.exc_editor.launched_from_shortcuts = True self.app.exc_editor.launched_from_shortcuts = True
## Current application units in Upper Case ## Current application units in Upper Case
self.units = self.general_defaults_group.general_app_group.units_radio.get_value().upper() self.units = self.general_defaults_form.general_app_group.units_radio.get_value().upper()
tool_add_popup = FCInputDialog(title=_("New Tool ..."), tool_add_popup = FCInputDialog(title=_("New Tool ..."),
text=_('Enter a Tool Diameter:'), text=_('Enter a Tool Diameter:'),
min=0.0000, max=99.9999, decimals=4) min=0.0000, max=99.9999, decimals=4)