def testWidgetIterator(self): treeWidget = QTreeWidget() treeWidget.setColumnCount(1) items = [] for i in range(10): items.append(QTreeWidgetItem(None, ['item: %d' % i])) treeWidget.insertTopLevelItems(0, items) index = 0 for it in QTreeWidgetItemIterator(treeWidget): self.assertEqual(it.value().text(0), 'item: %d' % index) index += 1
def testWidgetIterator(self): treeWidget = QTreeWidget() treeWidget.setColumnCount(1) items = [] for i in range(10): items.append(QTreeWidgetItem(None, ["item: %d" % i])) treeWidget.insertTopLevelItems(0, items) index = 0 for it in QTreeWidgetItemIterator(treeWidget): self.assertEqual(it.value().text(0), "item: %d" % index) index += 1
def testCase(self): treeWidget = QTreeWidget() treeWidget.setColumnCount(1) items = [] for i in range(10): items.append(QTreeWidgetItem(None, ["item: %i" % i])) treeWidget.insertTopLevelItems(0, items); _iter = QTreeWidgetItemIterator(treeWidget) index = 0 while(_iter.value()): item = _iter.value() self.assert_(item is items[index]) index += 1 _iter += 1
class WorldViewerDebug(QDialog): def __init__(self, worldviewer, parent=None): global client super(WorldViewerDebug, self).__init__(parent) self.setWindowTitle("World Viewer Debug") pos = QApplication.instance().desktop().availableGeometry() self.move(pos.width()/2, 0) self.worldviewer = worldviewer self.objects_tree = QTreeWidget() self.objects_tree.setColumnCount(2) self.objects_tree.setHeaderLabels(["ID", "Name", "Location", "Resource", "Last Modified", "Dist to Player"]) self.objects_tree.setSortingEnabled(True) layout = QVBoxLayout() for w in (self.objects_tree,): layout.addWidget(w) self.setLayout(layout) self.obj_update_timer = QTimer(self) self.connect(self.obj_update_timer, SIGNAL("timeout()"), self.update) self.obj_update_timer.start(CLIENT_UPDATE_FREQ) def sizeHint(self): desktop = QApplication.instance().desktop() geom = desktop.availableGeometry() return QSize(geom.width()/2, geom.height()) def show(self): '''This is overridden to not allow this to be shown when running in non-debug mode''' super(WorldViewerDebug, self).show() if not DEBUG: self.hide() def update(self): items = [] playerx, playery = 0, 0 for objid, obj in self.worldviewer.world_objects.items(): if "Object.ScriptedObject.Character" in obj['_types']: playerx = obj['loc']['x'] playery = obj['loc']['y'] break for objid, obj in self.worldviewer.world_objects.items(): name = obj['name'] try: locx = obj['loc']['x'] except KeyError: continue locy = obj['loc']['y'] locz = obj['loc']['z'] resource = obj['resource'] last_modified = datetime.datetime.fromtimestamp(int(str(obj['last_modified']['$date'])[:-3])) row = self.objects_tree.findItems(objid, Qt.MatchExactly, column=0) if row: # Update it if it exists already item = row[0] if not row: # If Item does not exist in the tree widget already, make a new one. item = QTreeWidgetItem(self.objects_tree) items.append(item) for i, param in enumerate((objid, name, (locx, locy, locz), resource, last_modified, "%04d" % euclidian(locx, locy, playerx, playery))): item.setText(i, str(param)) if items: self.objects_tree.insertTopLevelItems(0, items)
class WorldViewerDebug(QDialog): def __init__(self, worldviewer, parent=None): global client super(WorldViewerDebug, self).__init__(parent) self.setWindowTitle("World Viewer Debug") pos = QApplication.instance().desktop().availableGeometry() self.move(pos.width() / 2, 0) self.worldviewer = worldviewer self.objects_tree = QTreeWidget() self.objects_tree.setColumnCount(2) self.objects_tree.setHeaderLabels([ "ID", "Name", "Location", "Resource", "Last Modified", "Dist to Player" ]) self.objects_tree.setSortingEnabled(True) layout = QVBoxLayout() for w in (self.objects_tree, ): layout.addWidget(w) self.setLayout(layout) self.obj_update_timer = QTimer(self) self.connect(self.obj_update_timer, SIGNAL("timeout()"), self.update) self.obj_update_timer.start(CLIENT_UPDATE_FREQ) def sizeHint(self): desktop = QApplication.instance().desktop() geom = desktop.availableGeometry() return QSize(geom.width() / 2, geom.height()) def show(self): '''This is overridden to not allow this to be shown when running in non-debug mode''' super(WorldViewerDebug, self).show() if not DEBUG: self.hide() def update(self): items = [] playerx, playery = 0, 0 for objid, obj in self.worldviewer.world_objects.items(): if "Object.ScriptedObject.Character" in obj['_types']: playerx = obj['loc']['x'] playery = obj['loc']['y'] break for objid, obj in self.worldviewer.world_objects.items(): name = obj['name'] try: locx = obj['loc']['x'] except KeyError: continue locy = obj['loc']['y'] locz = obj['loc']['z'] resource = obj['resource'] last_modified = datetime.datetime.fromtimestamp( int(str(obj['last_modified']['$date'])[:-3])) row = self.objects_tree.findItems(objid, Qt.MatchExactly, column=0) if row: # Update it if it exists already item = row[0] if not row: # If Item does not exist in the tree widget already, make a new one. item = QTreeWidgetItem(self.objects_tree) items.append(item) for i, param in enumerate( (objid, name, (locx, locy, locz), resource, last_modified, "%04d" % euclidian(locx, locy, playerx, playery))): item.setText(i, str(param)) if items: self.objects_tree.insertTopLevelItems(0, items)