示例#1
0
    def cancel_sensitive_cb(self):
        comp = self.componentbook.get_visible_component()

        if not comp:
            return 0

        pkgs = comp.get_current_packages()

        if not pkgs:
            return 0

        return red_pendingops.can_perform_action_multiple(
            pkgs, red_pendingops.NO_ACTION)
示例#2
0
    def remove_sensitive_cb(self):
        comp = self.componentbook.get_visible_component()

        if not comp:
            return 0

        pkgs = comp.get_current_packages()

        if not pkgs:
            return 0

        return red_pendingops.can_perform_action_multiple(
            pkgs, red_pendingops.TO_BE_REMOVED)
示例#3
0
    def remove_sensitive_cb(self):
        comp = self.componentbook.get_visible_component()

        if not comp:
            return 0

        pkgs = comp.get_current_packages()

        if not pkgs:
            return 0
        
        return red_pendingops.can_perform_action_multiple(
            pkgs, red_pendingops.TO_BE_REMOVED)
示例#4
0
    def cancel_sensitive_cb(self):
        comp = self.componentbook.get_visible_component()

        if not comp:
            return 0

        pkgs = comp.get_current_packages()

        if not pkgs:
            return 0
        
        return red_pendingops.can_perform_action_multiple(
            pkgs, red_pendingops.NO_ACTION)
示例#5
0
    def do_popup(self, ev_button, ev_time, ev_x, ev_y):
        menu = gtk.Menu()
        menu.attach_to_widget(self, None)

        pkgs = self.get_selected_packages()

        if (ev_x, ev_y) != (-1, -1):
            path_info = self.get_path_at_pos(ev_x, ev_y)
            if path_info is None:
                return

            path, column, cell_x, cell_y = self.get_path_at_pos(ev_x, ev_y)
            model = self.get_model()
            clicked_pkg = model.get_list_item(path[0])

            if not clicked_pkg in pkgs:
                pkgs = [clicked_pkg]
                self.set_cursor(path, column)

        def set_package_action(pkgs, action):
            for pkg in pkgs:
                if red_pendingops.can_perform_action_single(pkg, action):
                    red_pendingops.set_action(pkg, action)

        # Install
        item = gtk.ImageMenuItem(_("Mark for _Installation"))
        image = red_pixbuf.get_widget("to-be-installed")
        item.set_image(image)
        if not red_pendingops.can_perform_action_multiple(pkgs,
                                                          red_pendingops.TO_BE_INSTALLED):
            item.set_sensitive(0)
        item.show_all()
        menu.append(item)

        item.connect("activate",
                     lambda x:set_package_action(pkgs, red_pendingops.TO_BE_INSTALLED))

        # Remove
        item = gtk.ImageMenuItem(_("Mark for _Removal"))
        image = red_pixbuf.get_widget("to-be-removed")
        item.set_image(image)
        if not red_pendingops.can_perform_action_multiple(pkgs,
                                                          red_pendingops.TO_BE_REMOVED):
            item.set_sensitive(0)
        item.show_all()
        menu.append(item)

        item.connect("activate",
                     lambda x:set_package_action(pkgs, red_pendingops.TO_BE_REMOVED))

        # Cancel
        item = gtk.ImageMenuItem(_("_Cancel"))
        image = gtk.Image()
        image.set_from_stock(gtk.STOCK_CANCEL, gtk.ICON_SIZE_MENU)
        item.set_image(image)
        item.show_all()
        if not red_pendingops.can_perform_action_multiple(pkgs,
                                                          red_pendingops.NO_ACTION):
            item.set_sensitive(0)
        menu.append(item)

        item.connect("activate",
                     lambda x:set_package_action(pkgs, red_pendingops.NO_ACTION))

        item = gtk.SeparatorMenuItem()
        item.show_all()
        menu.append(item)

        # Info
        item = gtk.ImageMenuItem(_("I_nformation"))
        image = red_pixbuf.get_widget("info")
        item.set_image(image)
        item.show_all()
        if len(pkgs) != 1:
            item.set_sensitive(0)
        menu.append(item)

        parent = self.get_toplevel()
        if not parent.flags() & gtk.TOPLEVEL:
            parent_window = None

        item.connect("activate",
                     lambda x:red_packagebook.show_package_info(pkgs[0],
                                                                parent=parent))


        menu.popup(None, None, None, ev_button, ev_time)