• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

Undo function

arno

Administrator
Staff member
FSDevConf team
Resource contributor
Messages
34,552
Country
netherlands
Hi all,

I am working on an undo-redo function for ModelConverterX, so that it will be possible to undo changes. A first prototype of it is working already, but I need to test it a bit more before I can put it into the development release.

To help me while developing this functionality, I have made a little form that shows all the changes made (see attached screenshot). Would such a form also be useful for you as user or not? The undo-redo functionality will get two buttons and the usual keyboard shortcuts.

Let me know what your thoughts are.
 

Attachments

  • Image2011-08-21 1021.56.021.jpg
    Image2011-08-21 1021.56.021.jpg
    22.1 KB · Views: 463
Hello Arno,...

I know your testing the function and all,...

Not sure that rotating an object should be part of the undo process,... if the object of course,... moved along the x, y or z axis,... then definately. To be honest,... I'm not sure texture naming should be also,... since it can just be overwritten etc...

I guess a redo or undo function,... not sure exactly where it would come in handy except moving along the axis,... and possibly when placing effects,... or maybe a redo from scratch (from the beginning with a object), more like a revert function.

though if anyone else can come up with a reason,... I'm all for it :D
 
Hi Doug,

At the moment the undo would work for any change (big or small) to the object. I think it is mainly useful if you have made a change that does not work out that good. For example running the DrawCall Minimizer to find out the result is not good. Until now all you could do was import again, but that would loose all changes made before. So an undo function would help in that case.

The redo function is nothing more than to undo an undo (like in most programs).
 
I would say that an undo/redo function is an essential part of any application where the user can make changes :)
 
Arno,...

Have you set a limit of undo's or redo's? I was just wondering since memory concerns may come about.
 
Hi Doug,

No, at the moment I have no set a limit on them. Even for quite complex objects it seems the memory usage is not too bad. I think I will release it like this and if people experience problems I can always limit it. I will add an option to completely disable the undo though.
 
Hello Jon,...

Our messages must of crossed,...

I agree with you on the undo/redo function is an essential part of a application,... (I use Photoshop's alot). I have noticed that a undo/redo function within some applications,... restarts, presay, if you save what you have accepted, and then if a user changes his mind the only option then is, hopefully he/she didn't resave over the original, is the revert option.

At present I know that MCX, doesn't save parameters, like templates for certain situations,... I think this would help much like the undo/redo as well, especially if used like a undo/redo function.

I'm not against the undo option at all...
 
Hi,

I forgot to add. The undo function as I am implementing it now stores the changes per object. As soon as you load another object it will start with a clean sheet again. I did this to keep the memory hit low.
 
I like the idea of the little form. It could be incorporated like in Photoshop or even better like in Gmax.
 
Hi Patrick,

I like the idea of the little form. It could be incorporated like in Photoshop or even better like in Gmax.

But then I guess you want the little form to be used as a way to navigate through the changes or not? Like you can undo to the previous state by selecting it or something like that.

At the moment I made the forum as a debugging tool and it only shows the changes. Not much interaction is done with it.
 
Hum I see what you mean.

Since the undo is a call to a function would it be possible to look at the little form's index (of selection) and call the undo function index times (or list.count-list.index depending on the orientation)? This is assuming you have a listbox control on the little form.
 
The only caution I would make is the logical one of how to deal with an undo in the middle of the stack. Does that undo all the items nearer the top? Also if you have such an undo where does the redo start.

We had this (have) issue in ADE where it is important to ensure that undoing an action in the middle does not fatally damage things done after it.
 
Hi,

I have just added the undo functionality to the development release. So from tomorrow it will be available. For more details check out this blog post:

http://msmvps.com/blogs/arnogerretsen/archive/2011/08/21/oops-a-mistake-undo-please.aspx

I have now released it without the form we are discussing in this thread, since at the moment it adds no value to the user. I will see if in the future I can give it some function.

ModelConverterX does not store the delta, but the entire object for each undo step. That is because with certain actions, like minimize the drawcalls, it is hard to define a delta that can be reversed. So that means I can not only undo one step in the middle. I will do some more thinking about how to make the GUI form a useful addition.
 
Sounds to me then that a linear one step undo/redo is the most likely. However perhaps there is some benefit in allowing the user to go back a number of steps. Sometimes with coding I find it easier to clear the decks when things do not go right and use my source control to go back a few hours in one step rather than working back through a list of changes.
 
Back
Top