"""
from ..command import Command, Argument, Failure
-from ..playlist import FilePlaylist
from ..plugin import Builtin
-from ..plugin.playlist import current_playlist_callback
+from ..plugin.curve import current_curve_callback
class NotePlugin (Builtin):
def __init__(self):
super(NotePlugin, self).__init__(name='note')
self._commands = [
- AddNoteCommand(self), ClearNoteCommand(self), GetNoteCommand(self)]
+ SetNoteCommand(self), GetNoteCommand(self)]
-class AddNoteCommand (Command):
+class SetNoteCommand (Command):
"""Add a note to one of several Hooke objects.
"""
def __init__(self, plugin):
- super(AddNoteCommand, self).__init__(
- name='add note',
+ super(SetNoteCommand, self).__init__(
+ name='set note',
arguments=[
Argument(
name='target', type='object',
- callback=current_playlist_callback,
+ callback=current_curve_callback,
help="""
-Target object for the note. Defaults to the current playlist.
+Target object for the note. Defaults to the current curve.
""".strip()),
Argument(
name='note', type='string', optional=False,
help=self.__doc__, plugin=plugin)
def _run(self, hooke, inqueue, outqueue, params):
- params['target'].info['note'].append(params['note'])
+ params['target'].info['note'] = params['note']
-class ClearNoteCommand (Command):
- """Remove a note or notes from one of several Hooke objects.
- """
- def __init__(self, plugin):
- super(ClearNoteCommand, self).__init__(
- name='clear note',
- arguments=[
- Argument(
- name='target', type='object',
- callback=current_playlist_callback,
- help="""
-Target object for the note. Defaults to the current playlist.
-""".strip()),
- Argument(name='count', type='int', default=-1,
- help="""
-Number of notes to remove. Defaults to all notes.
-""".strip()),
- Argument(name='force', type='bool', default=False,
- help="""
-Run without prompting the user. Use if you save often or don't make
-typing mistakes ;).
-""".strip()),
- ],
- help=self.__doc__, plugin=plugin)
-
- def _run(self, hooke, inqueue, outqueue, params):
- num_notes = len(params['target'].info['note'])
- if params['count'] == -1:
- num_notes_removed = num_notes
- else:
- num_notes_removed = min(num_notes, params['count'])
- if params['force'] == False and num_notes_removed > 0:
- msg = 'Remove %d notes?' % num_notes_removed
- default = False
- outqueue.put(BooleanRequest(msg, default))
- result = inqueue.get()
- assert result.type == 'boolean'
- if result.value == False:
- return
- params['target'].info['note'] = \
- params['target'].info['note'][:-num_notes_removed]
class GetNoteCommand (Command):
"""Retrieve notes from one of several Hooke objects.
arguments=[
Argument(
name='target', type='object',
- callback=current_playlist_callback,
+ callback=current_curve_callback,
help="""
-Target object for the note. Defaults to the current playlist.
+Target object for the note. Defaults to the current curve.
""".strip()),
],
help=self.__doc__, plugin=plugin)