Jelajahi Sumber

- 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)

Marius Stanciu 7 tahun lalu
induk
melakukan
41d7ef9e2c
3 mengubah file dengan 59 tambahan dan 16 penghapusan
  1. 23 0
      FlatCAMApp.py
  2. 34 16
      FlatCAMGUI.py
  3. 2 0
      README.md

+ 23 - 0
FlatCAMApp.py

@@ -983,6 +983,10 @@ class App(QtCore.QObject):
         self.ui.shell_btn.triggered.connect(self.on_toggle_shell)
         self.ui.shell_btn.triggered.connect(self.on_toggle_shell)
 
 
         # Context Menu
         # 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_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_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"))
         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.zoomfit.triggered.connect(self.on_zoom_fit)
         self.ui.clearplot.triggered.connect(self.clear_plots)
         self.ui.clearplot.triggered.connect(self.clear_plots)
         self.ui.replot.triggered.connect(self.plot_all)
         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)
         self.ui.popmenu_properties.triggered.connect(self.obj_properties)
 
 
         # Preferences Plot Area TAB
         # Preferences Plot Area TAB
@@ -1373,6 +1384,10 @@ class App(QtCore.QObject):
         :return: None
         :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):
         if isinstance(self.collection.get_active(), FlatCAMGeometry):
             edited_object = self.collection.get_active()
             edited_object = self.collection.get_active()
             # for now, if the Geometry is MultiGeo do not allow the editing
             # for now, if the Geometry is MultiGeo do not allow the editing
@@ -1415,6 +1430,11 @@ class App(QtCore.QObject):
 
 
         :return: None
         :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()
         edited_obj = self.collection.get_active()
         obj_type = ""
         obj_type = ""
 
 
@@ -4124,6 +4144,9 @@ class App(QtCore.QObject):
     def obj_properties(self):
     def obj_properties(self):
         self.properties_tool.run()
         self.properties_tool.run()
 
 
+    def obj_move(self):
+        self.move_tool.run()
+
     def on_fileopengerber(self):
     def on_fileopengerber(self):
         """
         """
         File menu callback for opening a Gerber.
         File menu callback for opening a Gerber.

+ 34 - 16
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_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')
         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.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.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.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.menuproject.addSeparator()
-        self.menuprojectproperties = self.menuproject.addAction('Properties')
+        self.menuprojectproperties = self.menuproject.addAction(QtGui.QIcon('share/properties32.png'), 'Properties')
 
 
         ###############
         ###############
         ### Toolbar ###
         ### Toolbar ###
@@ -625,11 +625,19 @@ class FlatCAMGUI(QtWidgets.QMainWindow):
             "which is the file storing the working default preferences.")
             "which is the file storing the working default preferences.")
         self.pref_tab_bottom_layout_2.addWidget(self.pref_save_button)
         self.pref_tab_bottom_layout_2.addWidget(self.pref_save_button)
 
 
-        ########################################
+
+        ##############################################################
         ### HERE WE BUILD THE CONTEXT MENU FOR RMB CLICK ON CANVAS ###
         ### HERE WE BUILD THE CONTEXT MENU FOR RMB CLICK ON CANVAS ###
-        ########################################
+        ##############################################################
         self.popMenu = QtWidgets.QMenu()
         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.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_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")
         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_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.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.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_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")
         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_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.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")
         self.popmenu_properties = self.popMenu.addAction(QtGui.QIcon('share/properties32.png'), "Properties")
 
 
 
 

+ 2 - 0
README.md

@@ -12,6 +12,8 @@ CAD program, and create G-Code for Isolation routing.
 26.01.2019
 26.01.2019
 
 
 - fixed grbl_11 postprocessor in linear_code() function
 - 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
 25.01.2019