From 41d7ef9e2c5fcb16b38d2c87ff19789b9270b943 Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Sat, 26 Jan 2019 00:12:40 +0200 Subject: [PATCH] - added icons to the Project Tab context menu - added new entries to the Canvas context menu (Copy, Delete, Edit/Save, Move, New Excellon, New Geometry, New Project) --- FlatCAMApp.py | 23 +++++++++++++++++++++++ FlatCAMGUI.py | 50 ++++++++++++++++++++++++++++++++++---------------- README.md | 2 ++ 3 files changed, 59 insertions(+), 16 deletions(-) diff --git a/FlatCAMApp.py b/FlatCAMApp.py index afce8b52..4879282c 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -983,6 +983,10 @@ class App(QtCore.QObject): self.ui.shell_btn.triggered.connect(self.on_toggle_shell) # Context Menu + self.ui.popmenu_new_geo.triggered.connect(lambda: self.new_object('geometry', 'new_g', lambda x, y: None)) + self.ui.popmenu_new_exc.triggered.connect(self.new_excellon_object) + self.ui.popmenu_new_prj.triggered.connect(self.on_file_new) + self.ui.gridmenu_1.triggered.connect(lambda: self.ui.grid_gap_x_entry.setText("0.05")) self.ui.gridmenu_2.triggered.connect(lambda: self.ui.grid_gap_x_entry.setText("0.1")) self.ui.gridmenu_3.triggered.connect(lambda: self.ui.grid_gap_x_entry.setText("0.2")) @@ -999,6 +1003,13 @@ class App(QtCore.QObject): self.ui.zoomfit.triggered.connect(self.on_zoom_fit) self.ui.clearplot.triggered.connect(self.clear_plots) self.ui.replot.triggered.connect(self.plot_all) + + self.ui.popmenu_copy.triggered.connect(self.on_copy_object) + self.ui.popmenu_delete.triggered.connect(self.on_delete) + self.ui.popmenu_edit.triggered.connect(self.object2editor) + self.ui.popmenu_save.triggered.connect(self.editor2object) + self.ui.popmenu_move.triggered.connect(self.obj_move) + self.ui.popmenu_properties.triggered.connect(self.obj_properties) # Preferences Plot Area TAB @@ -1373,6 +1384,10 @@ class App(QtCore.QObject): :return: None """ + # adjust the visibility of some of the canvas context menu + self.ui.popmenu_edit.setVisible(False) + self.ui.popmenu_save.setVisible(True) + if isinstance(self.collection.get_active(), FlatCAMGeometry): edited_object = self.collection.get_active() # for now, if the Geometry is MultiGeo do not allow the editing @@ -1415,6 +1430,11 @@ class App(QtCore.QObject): :return: None """ + + # adjust the visibility of some of the canvas context menu + self.ui.popmenu_edit.setVisible(True) + self.ui.popmenu_save.setVisible(False) + edited_obj = self.collection.get_active() obj_type = "" @@ -4124,6 +4144,9 @@ class App(QtCore.QObject): def obj_properties(self): self.properties_tool.run() + def obj_move(self): + self.move_tool.run() + def on_fileopengerber(self): """ File menu callback for opening a Gerber. diff --git a/FlatCAMGUI.py b/FlatCAMGUI.py index b0e801ea..427d1852 100644 --- a/FlatCAMGUI.py +++ b/FlatCAMGUI.py @@ -313,21 +313,21 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.menuhelp_shortcut_list = self.menuhelp.addAction(QtGui.QIcon('share/shortcuts24.png'), 'Shortcuts List') self.menuhelp_videohelp = self.menuhelp.addAction(QtGui.QIcon('share/videohelp24.png'), 'See on YouTube') - #################### - ### Context menu ### - #################### + ################################ + ### Project Tab Context menu ### + ################################ self.menuproject = QtWidgets.QMenu() - self.menuprojectenable = self.menuproject.addAction('Enable') - self.menuprojectdisable = self.menuproject.addAction('Disable') + self.menuprojectenable = self.menuproject.addAction(QtGui.QIcon('share/replot32.png'), 'Enable') + self.menuprojectdisable = self.menuproject.addAction(QtGui.QIcon('share/clear_plot32.png'), 'Disable') self.menuproject.addSeparator() - self.menuprojectgeneratecnc = self.menuproject.addAction('Generate CNC') + self.menuprojectgeneratecnc = self.menuproject.addAction(QtGui.QIcon('share/cnc32.png'), 'Generate CNC') self.menuproject.addSeparator() - self.menuprojectcopy = self.menuproject.addAction('Copy') - self.menuprojectedit = self.menuproject.addAction('Edit') - self.menuprojectdelete = self.menuproject.addAction('Delete') + self.menuprojectcopy = self.menuproject.addAction(QtGui.QIcon('share/copy32.png'), 'Copy') + self.menuprojectedit = self.menuproject.addAction(QtGui.QIcon('share/edit_ok32.png'), 'Edit') + self.menuprojectdelete = self.menuproject.addAction(QtGui.QIcon('share/delete32.png'), 'Delete') self.menuproject.addSeparator() - self.menuprojectproperties = self.menuproject.addAction('Properties') + self.menuprojectproperties = self.menuproject.addAction(QtGui.QIcon('share/properties32.png'), 'Properties') ############### ### Toolbar ### @@ -625,11 +625,19 @@ class FlatCAMGUI(QtWidgets.QMainWindow): "which is the file storing the working default preferences.") self.pref_tab_bottom_layout_2.addWidget(self.pref_save_button) - ######################################## + + ############################################################## ### HERE WE BUILD THE CONTEXT MENU FOR RMB CLICK ON CANVAS ### - ######################################## + ############################################################## self.popMenu = QtWidgets.QMenu() + 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'), "Geo Obj") + self.popmenu_new_exc = self.cmenu_newmenu.addAction(QtGui.QIcon('share/new_exc32.png'), "Exc. Obj") + self.cmenu_newmenu.addSeparator() + self.popmenu_new_prj = self.cmenu_newmenu.addAction(QtGui.QIcon('share/file16.png'), "Project") + self.popMenu.addSeparator() + self.cmenu_gridmenu = self.popMenu.addMenu(QtGui.QIcon('share/grid32_menu.png'), "Grids") self.gridmenu_1 = self.cmenu_gridmenu.addAction(QtGui.QIcon('share/grid32_menu.png'), "0.05") self.gridmenu_2 = self.cmenu_gridmenu.addAction(QtGui.QIcon('share/grid32_menu.png'), "0.10") @@ -637,6 +645,12 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.gridmenu_4 = self.cmenu_gridmenu.addAction(QtGui.QIcon('share/grid32_menu.png'), "0.50") self.gridmenu_5 = self.cmenu_gridmenu.addAction(QtGui.QIcon('share/grid32_menu.png'), "1.00") + self.cmenu_viewmenu = self.popMenu.addMenu(QtGui.QIcon('share/view64.png'), "View") + self.zoomfit = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/zoom_fit32.png'), "Zoom Fit") + self.clearplot = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/clear_plot32.png'), "Clear Plot") + self.replot = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/replot32.png'), "Replot") + self.popMenu.addSeparator() + self.g_editor_cmenu = self.popMenu.addMenu(QtGui.QIcon('share/draw32.png'), "Geo Editor") self.draw_line = self.g_editor_cmenu.addAction(QtGui.QIcon('share/path32.png'), "Line") self.draw_rect = self.g_editor_cmenu.addAction(QtGui.QIcon('share/rectangle32.png'), "Rectangle") @@ -647,11 +661,15 @@ class FlatCAMGUI(QtWidgets.QMainWindow): self.drill_array = self.e_editor_cmenu.addAction(QtGui.QIcon('share/addarray32.png'), "Add Drill Array") self.drill_copy = self.e_editor_cmenu.addAction(QtGui.QIcon('share/copy32.png'), "Copy Drill(s)") - self.cmenu_viewmenu = self.popMenu.addMenu(QtGui.QIcon('share/view64.png'), "View") - self.zoomfit = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/zoom_fit32.png'), "Zoom Fit") - self.clearplot = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/clear_plot32.png'), "Clear Plot") - self.replot = self.cmenu_viewmenu.addAction(QtGui.QIcon('share/replot32.png'), "Replot") + self.popMenu.addSeparator() + self.popmenu_copy = self.popMenu.addAction(QtGui.QIcon('share/copy32.png'), "Copy") + self.popmenu_delete = self.popMenu.addAction(QtGui.QIcon('share/delete32.png'), "Delete") + self.popmenu_edit = self.popMenu.addAction(QtGui.QIcon('share/edit32.png'), "Edit") + self.popmenu_save = self.popMenu.addAction(QtGui.QIcon('share/floppy32.png'), "Save && Close Edit") + self.popmenu_save.setVisible(False) + self.popMenu.addSeparator() + self.popmenu_move = self.popMenu.addAction(QtGui.QIcon('share/move32.png'), "Move") self.popmenu_properties = self.popMenu.addAction(QtGui.QIcon('share/properties32.png'), "Properties") diff --git a/README.md b/README.md index c8f40fff..e82e9f2c 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ CAD program, and create G-Code for Isolation routing. 26.01.2019 - fixed grbl_11 postprocessor in linear_code() function +- added icons to the Project Tab context menu +- added new entries to the Canvas context menu (Copy, Delete, Edit/Save, Move, New Excellon, New Geometry, New Project) 25.01.2019