Ejemplo n.º 1
0
    def command(self, size, command, args):
        def deep_fold():
            walker = self.walker
            node = walker.focus_node()

            if node.expanded:
                # we should fold the current node
                node.fold()
            else:
                # let's visit the parent
                pos = walker.focus_pos()

                if len(pos) > 1:
                    walker.set_focus(pos[:-1])
                else:
                    # TODO: tell the user?
                    pass

        commands = {
                'activate': self.walker.focus_node().toggle_exp,
                'expand': self.walker.focus_node().expand,
                'fold': deep_fold,
                'add': self.walker.focus_node().add_to_playlist,
                'yank': self.walker.focus_node().save_to_buffer,
            }

        if command in commands:
            if self.walker.focus_node():
                commands[command]()

            return True
        else:
            return ScrollableList.command(self, size, command, args)
Ejemplo n.º 2
0
    def command(self, size, command, args):
        def toggle_walk():
            self.walker.toggle_select()
            self.move_focus(size, 1)

        commands = {
            "delete": self.walker.delete_entry,
            "mark": toggle_walk,
            "reset_mark": self.walker.clear_select,
            "activate": self.walker.goto,
            "move_up": self.walker.move_up,
            "move_down": self.walker.move_down,
            "paste": self.walker.insert_buffer,
            "yank": self.walker.yank_entry,
        }

        if command in commands:
            commands[command]()
            return True
        else:
            return ScrollableList.command(self, size, command, args)