support spacebar for user selection; make user names readonly
authorsmbaker <smbaker@fc8clean.lan>
Tue, 13 Sep 2011 23:22:28 +0000 (16:22 -0700)
committersmbaker <smbaker@fc8clean.lan>
Tue, 13 Sep 2011 23:22:28 +0000 (16:22 -0700)
sface/screens/userscreen.py

index 92089d1..dd01804 100644 (file)
@@ -31,7 +31,16 @@ class UserView(QTableView):
         self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
         self.setToolTip("Double click on a row to change its status.")
 
+    def keyPressEvent(self, event):
+        if (event.key() == Qt.Key_Space):
+            self.toggleSelection()
+        else:
+            QTableView.keyPressEvent(self, event)
+
     def mouseDoubleClickEvent(self, event):
+        self.toggleSelection()
+
+    def toggleSelection(self):
         index = self.currentIndex()
         model = index.model()
         status_index = model.index(index.row(), MEMBERSHIP_STATUS_COLUMN, index.parent())
@@ -98,14 +107,18 @@ class UserModel(QStandardItemModel):
         rootItem = self.invisibleRootItem()
 
         for person in slice_persons:
-            rootItem.appendRow([QStandardItem(QString(person["name"])),
-                               #QStandardItem(QString(person["role"])),
-                               QStandardItem(QString(person["member"])),
-                               QStandardItem(QString(person["member"]))])
+            rootItem.appendRow([self.readOnlyItem(person["name"]),
+                                self.readOnlyItem(person["member"]),
+                                self.readOnlyItem(person["member"])])
 
         headers = QStringList() << "User Name" << "Status" << "ServerStatus"
         self.setHorizontalHeaderLabels(headers)
 
+    def readOnlyItem(self, x):
+        item = QStandardItem(QString(x))
+        item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
+        return item
+
     def updateRecord(self, slicerec):
         change = False