Add emacs-like redo.
This commit is contained in:
parent
7565be85fb
commit
aebe16893c
|
@ -541,6 +541,15 @@ Loggable::undo ( void )
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Loggable::redo ( void )
|
||||||
|
{
|
||||||
|
if (! _fp)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_undo_offset = ftell( _fp );
|
||||||
|
}
|
||||||
|
|
||||||
/** write a snapshot of the current state of all loggable objects to
|
/** write a snapshot of the current state of all loggable objects to
|
||||||
* file handle /fp/ */
|
* file handle /fp/ */
|
||||||
bool
|
bool
|
||||||
|
|
|
@ -177,6 +177,7 @@ public:
|
||||||
static bool open ( const char *filename );
|
static bool open ( const char *filename );
|
||||||
static bool close ( void );
|
static bool close ( void );
|
||||||
static void undo ( void );
|
static void undo ( void );
|
||||||
|
static void redo ( void );
|
||||||
|
|
||||||
static void compact ( void );
|
static void compact ( void );
|
||||||
|
|
||||||
|
|
|
@ -134,6 +134,12 @@ Project::undo ( void )
|
||||||
Loggable::undo();
|
Loggable::undo();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Project::redo ( void )
|
||||||
|
{
|
||||||
|
Loggable::redo();
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Project::read_info ( int *version, nframes_t *sample_rate, char **creation_date, char **created_by )
|
Project::read_info ( int *version, nframes_t *sample_rate, char **creation_date, char **created_by )
|
||||||
{
|
{
|
||||||
|
|
|
@ -62,5 +62,6 @@ public:
|
||||||
static bool open ( void ) { return _is_open; }
|
static bool open ( void ) { return _is_open; }
|
||||||
static bool create ( const char *name, const char *template_name );
|
static bool create ( const char *name, const char *template_name );
|
||||||
static void undo ( void );
|
static void undo ( void );
|
||||||
|
static void redo ( void );
|
||||||
static const char *created_on ( void ) { return _created_on; }
|
static const char *created_on ( void ) { return _created_on; }
|
||||||
};
|
};
|
||||||
|
|
|
@ -456,7 +456,12 @@ free(path);}
|
||||||
MenuItem {} {
|
MenuItem {} {
|
||||||
label Undo
|
label Undo
|
||||||
callback {timeline->command_undo();}
|
callback {timeline->command_undo();}
|
||||||
xywh {5 5 40 25} shortcut 0x4007a divider
|
xywh {5 5 40 25} shortcut 0x4007a
|
||||||
|
}
|
||||||
|
MenuItem {} {
|
||||||
|
label Redo
|
||||||
|
callback {timeline->command_redo();}
|
||||||
|
xywh {5 5 40 25} shortcut 0x40079 divider
|
||||||
}
|
}
|
||||||
MenuItem {} {
|
MenuItem {} {
|
||||||
label {Select None}
|
label {Select None}
|
||||||
|
|
|
@ -2088,6 +2088,15 @@ Timeline::command_undo ( void )
|
||||||
track_lock.unlock();
|
track_lock.unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Timeline::command_redo ( void )
|
||||||
|
{
|
||||||
|
/* FIXME: sequence lock too? */
|
||||||
|
track_lock.wrlock();
|
||||||
|
Project::redo();
|
||||||
|
track_lock.unlock();
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Timeline::command_load ( const char *name, const char *display_name )
|
Timeline::command_load ( const char *name, const char *display_name )
|
||||||
{
|
{
|
||||||
|
|
|
@ -246,6 +246,7 @@ public:
|
||||||
void command_move_track_up ( Track *track );
|
void command_move_track_up ( Track *track );
|
||||||
void command_move_track_down ( Track *track );
|
void command_move_track_down ( Track *track );
|
||||||
void command_undo ( void );
|
void command_undo ( void );
|
||||||
|
void command_redo ( void );
|
||||||
|
|
||||||
int find_track ( const Track * track ) const;
|
int find_track ( const Track * track ) const;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue