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)
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)
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)