Преглед изворни кода

Added KeySensitiveListView for objects in project. Delete key deletes selected objects.

jpcaram пре 11 година
родитељ
комит
8c082365d7
4 измењених фајлова са 18 додато и 9 уклоњено
  1. 1 1
      FlatCAMDraw.py
  2. 15 3
      ObjectCollection.py
  3. 2 3
      camlib.py
  4. 0 2
      setup_ubuntu.sh

+ 1 - 1
FlatCAMDraw.py

@@ -481,7 +481,7 @@ class FCMove(FCShapeTool):
         dx = self.destination[0] - self.origin[0]
         dy = self.destination[1] - self.origin[1]
         self.geometry = [DrawToolShape(affinity.translate(geom.geo, xoff=dx, yoff=dy))
-                                       for geom in self.draw_app.get_selected()]
+                         for geom in self.draw_app.get_selected()]
 
         # Delete old
         self.draw_app.delete_selected()

+ 15 - 3
ObjectCollection.py

@@ -4,6 +4,15 @@ import inspect  # TODO: Remove
 import FlatCAMApp
 from PyQt4 import Qt, QtGui, QtCore
 
+
+class KeySensitiveListView(QtGui.QListView):
+    keyPressed = QtCore.pyqtSignal(int)
+
+    def keyPressEvent(self, event):
+        super(KeySensitiveListView, self).keyPressEvent(event)
+        self.keyPressed.emit(event.key())
+
+
 class ObjectCollection(QtCore.QAbstractListModel):
     """
     Object storage and management.
@@ -35,7 +44,8 @@ class ObjectCollection(QtCore.QAbstractListModel):
         self.checked_indexes = []
 
         ### View
-        self.view = QtGui.QListView()
+        #self.view = QtGui.QListView()
+        self.view = KeySensitiveListView()
         self.view.setSelectionMode(Qt.QAbstractItemView.ExtendedSelection)
         self.view.setModel(self)
 
@@ -44,9 +54,11 @@ class ObjectCollection(QtCore.QAbstractListModel):
         ## GUI Events
         self.view.selectionModel().selectionChanged.connect(self.on_list_selection_change)
         self.view.activated.connect(self.on_item_activated)
+        self.view.keyPressed.connect(self.on_key)
 
-    def on_key(self, event):
-        print event
+    def on_key(self, key):
+        if key == QtCore.Qt.Key_Delete:
+            self.delete_active()
 
     def on_mouse_down(self, event):
         print "Mouse button pressed on list"

+ 2 - 3
camlib.py

@@ -436,7 +436,6 @@ class Geometry(object):
         self.solid_geometry = [cascaded_union(self.solid_geometry)]
 
 
-
 class ApertureMacro:
     """
     Syntax of aperture macros.
@@ -547,7 +546,7 @@ class ApertureMacro:
             if match:
                 ## Replace all variables
                 for v in self.locvars:
-                    part = re.sub(r'\$'+str(v)+r'(?![0-9a-zA-Z])', str(self.locvars[v]), part)
+                    part = re.sub(r'\$' + str(v) + r'(?![0-9a-zA-Z])', str(self.locvars[v]), part)
 
                 # Make all others 0
                 part = re.sub(r'\$[0-9a-zA-Z](?![0-9a-zA-Z])', "0", part)
@@ -585,7 +584,7 @@ class ApertureMacro:
         :return: Zero-padded list.
         :rtype: list
         """
-        x = [0.0]*n
+        x = [0.0] * n
         na = len(mods)
         x[0:na] = mods
         return x

+ 0 - 2
setup_ubuntu.sh

@@ -2,8 +2,6 @@
 apt-get install libpng-dev
 apt-get install libfreetype6 libfreetype6-dev
 apt-get install python-dev
-#apt-get install python-gi
-#apt-get install libgtk-3-devel
 apt-get install python-qt4
 apt-get install python-numpy python-scipy python-matplotlib
 apt-get install libgeos-dev