Exemplo n.º 1
0
    def updateStatusBar(self):
        Globals.setWaitCursor()
        try:
            self.basket.update()
        finally:
            Globals.setNormalCursor()

        if not self.basket.packages:
            text = i18n("Currently your basket is empty.")

        elif self.state == install_state or self.state == upgrade_state:
            text = i18n("Currently there are <b>%1</b> selected package(s) of total <b>%2</b> of size ").arg(len(self.basket.packages)).arg(Globals.humanReadableSize(self.basket.packagesSize))

            if self.basket.extraPackages:
                text += i18n("with <b>%3</b> extra dependencies of total <b>%4</b> of size ").arg(len(self.basket.extraPackages)).arg(Globals.humanReadableSize(self.basket.extraPackagesSize))

            text += i18n("in your basket.")

        elif self.state == remove_state:
            text = i18n("Currently there are <b>%1</b> selected package(s) of total <b>%2</b> of size ").arg(len(self.basket.packages)).arg(Globals.humanReadableSize(self.basket.packagesSize))

            if self.basket.extraPackages:
                text += i18n("with <b>%3</b> reverse dependencies of total <b>%4</b> of size ").arg(len(self.basket.extraPackages)).arg(Globals.humanReadableSize(self.basket.extraPackagesSize))

            text += i18n("in your basket.")

        self.parent.updateStatusBarText(text)
Exemplo n.º 2
0
    def createList(self, packages, part = None, selected = [], disabled = []):
        head =  '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        '''

        if not part:
            part = self.part

        self.selected = selected
        self.disabled = disabled

        Globals.setWaitCursor()
        try:
            part.view().setContentsPos(0, 0)
            part.begin()
            part.write(head)
            part.write("<style type=\"text/css\">%s</style>" % self.css)
            part.write("<script language=\"JavaScript\">%s</script>" % self.javascript)
            part.write("</head><body>")

            if set(packages) - set(selected):
                part.write('''<font size="-2"><a href="#selectall">'''+i18n("Select all packages in this category")+'''</a></font>''')
            else:
                part.write('''<font size="-2"><a href="#selectall">'''+i18n("Reverse package selections")+'''</a></font>''')

            part.write(self.createListForPackages(packages))
            part.end()

        finally:
            Globals.setNormalCursor()
Exemplo n.º 3
0
    def removeState(self, reset=True):
        Globals.setWaitCursor()

        try:
            if reset:
                self.resetState()
            self.parent.showInstalledAction.setChecked(True)
            self.processEvents()

            try:
                packages = self.command.listPackages()
            except PisiIface.RepoError:
                Globals.setNormalCursor()
                self.repoNotReady()
                return

            self.state = remove_state
            self.createComponentList(packages)
            self.operateAction.setText(i18n("Remove Package(s)"))
            self.operateAction.setIconSet(loadIconSet("no"))
            self.basket.setState(self.state)
            self.setLastSelected()
            self.updateStatusBar()

        finally:
            Globals.setNormalCursor()
Exemplo n.º 4
0
 def searchPackage(self):
     Globals.setWaitCursor()
     query = unicode(self.searchLine.text())
     terms = query.split()
     if query:
         if self.state == remove_state:
             result = PisiIface.search_in_installed(terms)
         elif self.state == install_state:
             result = PisiIface.search_in_repos(terms)
         elif self.state == upgrade_state:
             result = PisiIface.search_in_upgradables(terms)
         self.createSearchResults(result)
     else:
         self.refreshState(reset=False)
     Globals.setNormalCursor()
Exemplo n.º 5
0
 def refreshComponentList(self, item):
     Globals.setWaitCursor()
     try:
         # fetch packages including metadata from cache
         packagesWithMeta = [PisiIface.get_package(package, self.state == remove_state) for package in self.componentDict[item].packages]
         if self.state == remove_state:
             self.specialList.createList(packagesWithMeta, selected = self.basket.packages, disabled = unremovable_packages)
         else:
             self.specialList.createList(packagesWithMeta, selected = self.basket.packages)
             self.lastSelectedComponent = self.componentDict[item].name
     # initialization and search state listview items are not components
     except KeyError:
         pass
     finally:
         Globals.setNormalCursor()
Exemplo n.º 6
0
    def installState(self, reset=True):

        # set mouse to waiting icon
        Globals.setWaitCursor()
        self.iface.setSource(self.iface.REPO)

        try:
            # uncheck buttons, clear search line, empty cache
            if reset:
                self.resetState()

            # check the "Show New Packages" button
            self.parent.showNewAction.setChecked(True)
            self.processEvents()

            try:
                packages = self.iface.getPackageList()
            except PisiIface.RepoError:
                Globals.setNormalCursor()
                self.repoNotReady()
                return

            self.state = install_state

            # prepare groups' listview on the left side
            self.createGroupList(packages)

            self.operateAction.setText(i18n("Install Package(s)"))
            self.operateAction.setIconSet(loadIconSet("ok"))
            self.basket.setState(self.state)

            # set last selected group and so, trigger SpecialList to create right side (packages)
            # (selects first group if it is the first time)
            self.setLastSelected()

            self.updateStatusBar()

        finally:
            Globals.setNormalCursor()
Exemplo n.º 7
0
    def upgradeState(self):
        Globals.setWaitCursor()
        self.iface.setSource(self.iface.REPO)

        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 = self.iface.getUpdates()
            except PisiIface.RepoError:
                Globals.setNormalCursor()
                self.repoNotReady()
                return

            self.createGroupList(upgradables, True)
            self.operateAction.setText(i18n("Upgrade Package(s)"))
            self.operateAction.setIconSet(loadIconSet("reload"))
            self.lastSelectedGroup = i18n("All")
            self.setLastSelected()

            self.basket.setState(self.state)
            self.updateStatusBar()

        finally:
            Globals.setNormalCursor()
Exemplo n.º 8
0
 def updateTotals(self):
     Globals.setWaitCursor()
     try:
         self.createExtraPackagesList()
     finally:
         Globals.setNormalCursor()