def showPopup(self): from sets import Set as set upgrades = list_upgradable() newUpgrades = set(upgrades) - set(self.lastUpgrades) self.lastUpgrades = upgrades if not len(upgrades) or not newUpgrades: return icon = KGlobal.iconLoader().loadIcon("package-manager", KIcon.Desktop, 48) message = i18n("There are <b>%1</b> updates available!").arg(len(upgrades)) self.popup = BalloonMessage(self, icon, message) pos = self.mapToGlobal(self.pos()) self.popup.setAnchor(pos) self.popup.show()
def updateTrayIcon(self): nofUpgrades = len(list_upgradable()) if not nofUpgrades: self.setPixmap(self.icon) return oldW = self.pixmap().size().width() oldH = self.pixmap().size().height() uStr = QString.number(nofUpgrades) f = KGlobalSettings.generalFont() f.setBold(True) pointSize = f.pointSizeFloat() fm = QFontMetrics(f) w = fm.width(uStr) if w > oldW: pointSize *= float(oldW) / float(w) f.setPointSizeFloat(pointSize) pix = QPixmap(oldW, oldH) pix.fill(Qt.white) p = QPainter(pix) p.setFont(f) p.setPen(Qt.blue) p.drawText(pix.rect(), Qt.AlignCenter, uStr) pix.setMask(pix.createHeuristicMask()) img = QImage(pix.convertToImage()) overlayImg = QImage(self.overlayIcon.copy()) KIconEffect.overlay(overlayImg, img) icon = QPixmap() icon.convertFromImage(overlayImg) self.setPixmap(icon) # for cannot destroy paint device error p = None