13
0
Commit Graph

30 Commits

Author SHA1 Message Date
Hans Fugal
8e301e875a r199@gandalf: fugalh | 2006-07-26 17:22:38 -0600
Memento(Redo|Undo)Command has a noop for the undo or redo respectively, and
 we don't need both before and after state. This is primarily useful for
 drag start/finish callbacks, and really only makes sense where wrapped by
 (begin|commit)_reversible_command (a composite command).
 
 Also a few more "normal" MementoCommands.


git-svn-id: svn://localhost/ardour2/branches/undo@695 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-26 23:28:54 +00:00
Hans Fugal
55159005b9 r189@gandalf: fugalh | 2006-07-18 17:54:25 -0600
This is the first swath of changes, replacing add_undo with MementoCommand
 pattern, through most of the editor_mouse.cc file. However there were a few
 places that weren't symmetrical that I need to think about. The question is
 whether to tweak things so that they are symmetrical (add_undo paired with
 add_redo*), or to allow Commands to not be undoable or not be redoable. Your
 thoughts are welcome.


git-svn-id: svn://localhost/ardour2/branches/undo@685 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-18 23:54:31 +00:00
Hans Fugal
72168803ee r183@gandalf: fugalh | 2006-07-17 19:01:39 -0600
Use XMLNode instead of templating memento types.


git-svn-id: svn://localhost/ardour2/branches/undo@683 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-18 17:46:20 +00:00
Hans Fugal
0bd3b0b670 r168@gandalf: fugalh | 2006-07-11 16:29:22 -0600
I just had an epiphany. I tried so many ways to make saving function name and
 args work, it never occured to me that you could just as easily save undo
 information as a pair of mementos, even in the Command-based structure we
 agreed on.
 
 Since many (read: almost all) existing undo commands take this form:
 
     begin_reversible_command (_("change fade in length"));
     session->add_undo (arv->region.get_memento());
     arv->region.set_fade_in_length (fade_length);
     session->add_redo_no_execute (arv->region.get_memento());
     commit_reversible_command ();
 
 We are already doing the save a memento before and after work. All we need to
 do is instantiate an appropriate instance of MementoCommand. So the above
 becomes:
 
 
     begin_reversible_command (_("change fade in length"));
     MementoCommand<arv_region_t, arv_region_memento_t>  before, after;
     before = arv->region.get_memento();
     arv->region.set_fade_in_length (fade_length);
     after = arv->region.get_memento();
     session->add_command(arv->region, before, after);
     commit_reversible_command ();
 
 (With apologies for being too lazy to go look up what arv_region_t and
 arv_region_memento_t are)
 
 Note that the true command approach is still possible, and encouraged (both by
 dictate and design). 
 


git-svn-id: svn://localhost/ardour2/branches/undo@680 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-11 22:29:39 +00:00
Hans Fugal
ab1b29bcb2 r162@gandalf: fugalh | 2006-06-30 19:30:58 -0600
some macros for MementoCommand()


git-svn-id: svn://localhost/ardour2/branches/undo@666 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-06 18:25:58 +00:00
Hans Fugal
a5386f8d59 r155@gandalf: fugalh | 2006-06-30 11:21:45 -0600
MementoCommand - for the lazy at heart


git-svn-id: svn://localhost/ardour2/branches/undo@661 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-30 17:24:16 +00:00
Hans Fugal
21af0d4ae2 r154@gandalf: fugalh | 2006-06-30 11:16:27 -0600
fixed guard defines


git-svn-id: svn://localhost/ardour2/branches/undo@660 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-30 17:23:12 +00:00
Hans Fugal
6337a1894c r132@gandalf: fugalh | 2006-06-29 12:45:16 -0600
Coding for undo/redo starts in earnest. Paul and I decided to go with a
 standard gang of four Command pattern, with serialization. This overcomes the
 terrible difficulties we were having with static type checking and the sigc++
 approach.  I'm adding the requirement that each command support undo,
 simplifying undo/redo. NOTE that an important fallout here is that
 Command::operator()() is the opposite of the old UndoAction::operator()(), i.e.
 Command::operator()() is execute/redo, and Command::undo() is undo.
 
 This commit is a reworking of the infrastructure, and won't compile until
 creating Command subclasses for the various commands being performed. That is
 primarily where you find get_memento and/or calls to add_(undo|redo.*).


git-svn-id: svn://localhost/ardour2/branches/undo@655 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-29 18:49:03 +00:00
Hans Fugal
5b289d3006 r115@gandalf: fugalh | 2006-06-23 12:36:05 -0600
pass the object instead of an id


git-svn-id: svn://localhost/ardour2/branches/undo@654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-29 18:45:41 +00:00
Hans Fugal
7ff370e798 Merging from trunk
git-svn-id: svn://localhost/ardour2/branches/undo@638 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-22 23:40:55 +00:00
Hans Fugal
fd742b30fa r111@gandalf: fugalh | 2006-06-22 17:38:14 -0600
progress on UndoCommand constructors


git-svn-id: svn://localhost/ardour2/branches/undo@637 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-22 23:38:19 +00:00
Hans Fugal
4078b9ec64 r80@gandalf: fugalh | 2006-06-22 16:37:01 -0600
reworked templatization of UndoCommand


git-svn-id: svn://localhost/ardour2/branches/undo@636 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-22 22:37:08 +00:00
Hans Fugal
7c9361b865 r59@gandalf: fugalh | 2006-06-15 12:16:20 -0600
renamed UndoCommand to UndoTransaction, and created new UndoCommand class and
 its templated subclass SlotCommand. Those two are still in considerable flux.


git-svn-id: svn://localhost/ardour2/branches/undo@606 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-15 18:21:31 +00:00
Hans Fugal
eb3f77df57 pulling trunk
git-svn-id: svn://localhost/ardour2/branches/undo@586 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-14 18:37:57 +00:00
Hans Fugal
3038d8ce4a r42@gandalf: fugalh | 2006-06-07 17:08:39 -0600
Memento skeleton. RFC
 Compiles, but obviously somewhat unimplemented.


git-svn-id: svn://localhost/ardour2/branches/undo@572 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-06-07 23:08:56 +00:00
Taybin Rutkin
49ab3aa0b3 All included libraries now link dynamically instead of statically.
Moved items from gtk2_ardour/utils to pbd3/convert.
Various cleanups.


git-svn-id: svn://localhost/trunk/ardour2@475 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-25 20:23:50 +00:00
bb7b3ec1a6 add missing file, remove unnecessary qualifier
git-svn-id: svn://localhost/trunk/ardour2@472 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-25 11:10:52 +00:00
c2e1917f44 add missing file
git-svn-id: svn://localhost/trunk/ardour2@471 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-25 10:41:50 +00:00
028e1ebc4a a) completely refactor abstract UI code
b) single-thread Tranzport implementation
c) implement BasicUI to share functionality across multiple
     controllers
d) various minor fixes here and there


git-svn-id: svn://localhost/trunk/ardour2@468 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-04-24 22:45:19 +00:00
Jesse Chappell
82640875a9 fixed missing include need for compile on gcc 3.3.x
git-svn-id: svn://localhost/trunk/ardour2@334 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-02-16 03:25:23 +00:00
ae14f6c7eb new stacktrace function in libpbd3; variable size GUI request thread queues
git-svn-id: svn://localhost/trunk/ardour2@330 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-02-15 15:55:48 +00:00
Jesse Chappell
cfbc1cc8e5 fixed memory leak in xmltree
git-svn-id: svn://localhost/trunk/ardour2@307 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-02-01 00:19:44 +00:00
Taybin Rutkin
6817b59169 Moved strip_whitespace_edges() to pbd/whitespace.h
Gtkmm2ext::Prompter::get_result() calls strip_whitespace_edges(), so you don't have to.
Removed unused/unecessary/forgotten headers from libpbd.


git-svn-id: svn://localhost/trunk/ardour2@270 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-13 19:48:55 +00:00
Jesse Chappell
bd21c474e5 committed RWlock fixes to libardour. added hw monitoring fixes from nick_m. minor alsa midi fix and update rate settings.
git-svn-id: svn://localhost/trunk/ardour2@244 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-06 04:59:17 +00:00
Karsten Wiese
24e9a93968 change foo(string bar) to foo(const char * bar) for foo()s only being called with C-string args.
git-svn-id: svn://localhost/trunk/ardour2@202 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-12-22 13:01:39 +00:00
Jesse Chappell
944ff941bc added mathfix.h from ardour1
git-svn-id: svn://localhost/trunk/ardour2@147 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-11-29 07:04:42 +00:00
4c50965622 fix compose mess, and a number of 64 bit printf specs
git-svn-id: svn://localhost/trunk/ardour2@51 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-10-06 19:10:57 +00:00
5a52d8fee4 changes from colin for route_params, nick for location_ui and route_ui, and me for ardour_ui.cc
git-svn-id: svn://localhost/trunk/ardour2@50 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-10-06 18:24:23 +00:00
Taybin Rutkin
f9546e5c76 Synced fastlog.h with ardour1 updates.
git-svn-id: svn://localhost/trunk/ardour2@16 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-08-11 19:45:29 +00:00
Taybin Rutkin
d09f6b3016 Initial revision
git-svn-id: svn://localhost/trunk/ardour2@4 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-05-13 20:47:18 +00:00