def showPopup(self): from sets import Set as set upgrades = PisiIface.get_upgradable_packages() newUpgrades = set(upgrades) - set(self.lastUpgrades) self.lastUpgrades = upgrades if not len(upgrades) or not newUpgrades: return icon = getIconPath("package-manager") message = i18n("There are <b>%1</b> updates available!").arg(len(upgrades)) header = i18n("Updates Available!") self.notifier.show(icon, header, message, self.getPos())
def updateTrayIcon(self): nofUpgrades = len(PisiIface.get_upgradable_packages()) 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
def upgradeState(self): Globals.setWaitCursor() try: # TODO: # If package-manager is opened while tray is updating-repo; progress dialog is # shown. And when it ends, pm switches to upgradeState but without checking # operation buttons. If pm is not opened while this is done, no change state happens # in pm, and when it is opened it will be seen in which state it was left. # # Later this background update may be done with a widget like kmail's small progress # and any operation button will be disabled when tray is caught while updating. For # now we show progress dialog and change pm state and button states manually. self.parent.showUpgradeAction.setChecked(True) self.parent.showNewAction.setChecked(False) self.parent.showInstalledAction.setChecked(False) ## try: upgradables = PisiIface.get_upgradable_packages() except PisiIface.RepoError: Globals.setNormalCursor() self.repoNotReady() return self.createComponentList(upgradables, True) self.operateAction.setText(i18n("Upgrade Package(s)")) self.operateAction.setIconSet(loadIconSet("reload")) self.lastSelectedComponent = i18n("All") self.setLastSelected() self.basket.setState(self.state) self.updateStatusBar() finally: Globals.setNormalCursor()