Re: [jokosher-devel] Some thoughts on Undo
- From: Laszlo Pandy <laszlok2 gmail com>
- To: Ben Thorp <mrben jedimoose org>
- Cc: jokosher-devel-list gnome org
- Subject: Re: [jokosher-devel] Some thoughts on Undo
- Date: Tue, 05 Jun 2007 18:27:49 -0400
Ben Thorp wrote:
I've been mulling around the whole "Undo" thing in my head for the last
couple of weeks, trying to make sense of something useful I noticed in
GNOME. Sadly, I've failed, but I thought I would share it anyway.
One of the nice bits about GNOME/Nautilus (I think, anyway, although I'm
not sure what a usability guru would say) is the fact that you have the
back and forward arrows, that take you back and forward in history, but
you also have the buttons for each level of the filesystem you are in -
eg if you are in /home/mrben/.jokosher/projects/ then you can click on a
button to go to /home/mrben directly.
This seemed to me an interesting paradigm in the whole "multiple
threads" debate over unlimited undo, and I wondered if there was an
obvious way to incorporate this into Jokosher. Sadly, I couldn't think
of anything obvious :( The only real thought I had was maybe a set of
buttons representing all of the applied actions, and then allowing the
user to "toggle" some of the actions on and off, but I don't know how
that would work in practice. (ie, if you applied an effect to one track
15 operations ago, you could toggle that effect change to off without
affecting the 15 operations since.....)
No you can't. You would have to undo all 15 actions. But if you think
about it this is what nautilus is doing when you click on one of the
folders in the folders bar.
If you can't think of "anything obvious", then take a look at how the
gimp does it. After opening an image go to Dialogues => Undo History and
you will get a nice dialog with a list of all the actions. Clicking on
the item at the top will undo all changes. Clicking at the bottom will
redo all changes.
As I recall the reason this wasn't implemented was that we didn't have a
way to provide a name for each individual action. We would need a string
for every function which is decorated by UndoSystem.UndoCommand and a
way to translate everyone of those strings.
We would need a way to deal with the AtomicUndoAction (which are new in
0.9). These are a collection of function calls that the user perceives
as a single action. An example would be adding multiple instruments, or
a trim (which is really two splits and two deletes). I think we would
want to show each AtomicUndoAction as only one action or else it ruins
the illusion of being atomic. But that would mean that we need to not
just have strings for every function, but also every combination of undo
actions that will be put together in an AtomicUndoAction. This may
become a lot of work to translate all these strings, but it would
definitely help the usability to see what changed.
The problem of having too many strings and adding this functionality to
the undo system is not insurmountable, it just depends on how much
people want this feature.
Laszlo
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]