def setItemText(self, item, vval): if vval == None: item.setText(1, str("None")) elif vval.type() == typeId.DateTime: dateTime = vval.value() if dateTime: item.setText(1, str(dateTime)) elif vval.type() in [ typeId.Int16, typeId.UInt16, typeId.Int32, typeId.UInt32, typeId.Int64, typeId.UInt64 ]: item.setText(1, vval.toString() + " - " + vval.toHexString()) elif vval.type() in [typeId.Char, typeId.String, typeId.CArray]: val = vval.toString() item.setText(1, QString.fromUtf8(val)) elif vval.type() == typeId.Node: label = QLabel('<a href="' + QString.fromUtf8(vval.value().path()) + '" style="color: blue">' + QString.fromUtf8(vval.value().absolute()) + ' </a>') label.connect(label, SIGNAL("linkActivated(QString)"), self.gotolink) self.setItemWidget(item, 1, label) elif vval.type() == typeId.Path: item.setText(1, QString.fromUtf8(vval.value().path)) else: item.setText(1, str(vval.value()))
def fillBase(self, node): fsobj = node.fsobj() fsobjname = "" if fsobj != None: fsobjname = fsobj.name itemName = QTreeWidgetItem(self) itemName.setText(0, self.nameText) itemName.setText(1, QString.fromUtf8(node.name())) if isinstance(node, VLink): linkPath = QTreeWidgetItem(self) linkPath.setText(0, self.linkPath) label = QLabel('<a href="' + QString.fromUtf8(node.linkPath()) + '" style="color: blue">' + QString.fromUtf8(node.linkAbsolute()) + ' </a>') label.connect(label, SIGNAL("linkActivated(QString)"), self.gotolink) self.setItemWidget(linkPath, 1, label) itemName = QTreeWidgetItem(self) itemName.setText(0, self.nodeTypeText) typestr = "" if node.isFile(): typestr += self.fileText if node.hasChildren(): typestr += self.modAppliedText self.fillCompatModule(node) if node.hasChildren(): self.fillChildren(node) if node.isDir(): typestr += self.folderText if not node.hasChildren(): typestr += self.emptyText if node.isDeleted(): typestr += self.deletedText itemName.setText(1, typestr) itemModule = QTreeWidgetItem(self) itemModule.setText(0, self.generateText) itemModule.setText(1, str(fsobjname)) itemSize = QTreeWidgetItem(self) itemSize.setText(0, self.sizeText) itemSize.setText(1, str(node.size())) tags = node.tags() if len(tags): itemTags = QTreeWidgetItem(self) itemTags.setText(0, "tags") tags = node.tags() for tag in tags: itemTag = QTreeWidgetItem(itemTags) color = tag.color() itemTag.setBackground( 0, QBrush(QColor(color.r, color.g, color.b))) itemTag.setForeground(0, QBrush(QColor(255, 255, 255))) itemTag.setText(0, QString.fromUtf8(tag.name())) self.expandItem(itemTags)
def createLink(img_name, slot, tooltip=""): """ Create a QLabel link connected to a specific slot. @param img_name [str] this is the image name in resources @paral sloc [func(str)] the slot function @return a QLabel object """ link = QLabel('<a href="#"><img src="%s" /></a>' % img_name) #link.setPixmap(QPixmap(img_name)) link.setCursor(Qt.PointingHandCursor) link.setTextInteractionFlags( Qt.LinksAccessibleByMouse | Qt.LinksAccessibleByKeyboard) link.setToolTip(tooltip) link.setStyleSheet('padding-left: 2px; padding-right: 2px') link.connect(link, SIGNAL('linkActivated(const QString&)'), slot) return link
def setItemText(self, item, vval): if vval == None: item.setText(1, str("None")) elif vval.type() == typeId.VTime: vtime = vval.value() if vtime: item.setText(1, str(vtime.get_time())) elif vval.type() in [typeId.Int16, typeId.UInt16, typeId.Int32, typeId.UInt32, typeId.Int64, typeId.UInt64]: item.setText(1, vval.toString() + " - " + vval.toHexString()) elif vval.type() in [typeId.Char, typeId.String, typeId.CArray]: val = vval.toString() item.setText(1, QString.fromUtf8(val)) elif vval.type() == typeId.Node: label = QLabel('<a href="' + QString.fromUtf8(vval.value().path()) + '" style="color: blue">'+ QString.fromUtf8(vval.value().absolute()) + ' </a>') label.connect(label, SIGNAL("linkActivated(QString)"), self.gotolink) self.setItemWidget(item, 1, label) elif vval.type() == typeId.Path: item.setText(1, QString.fromUtf8(vval.value().path)) else: item.setText(1, str(vval.value()))