FactoryPMI Designer ease of use enhancements

There are a few user interface changes which I think would make a big improvement to the ease of use of the FactoryPMI Designer:

  1. When you click on an object in a window, if you do not click and release at exactly the same point, the click event doesn’t happen. I’ve been caught out by this when I move my mouse across to click on an object and it doesn’t receive the focus - I obviously moved my mouse by one or two pixels while the button was down. Is it possible to allow a certain amount of movement and still consider it a click event?

  2. To access the context menu for an object, you have to first left-click it, then right-click it (this applies to objects in the Project Browser and SQLTags also). It would be much nicer if when you right-clicked an object, it received the focus and displayed its context menu immediately.

  3. When you click on an object in another window, the first click only moves the focus to the window - you have to click the object again to give it the focus. It would be nice if this happened with just one click.

These are all very good suggestions. The user interaction portion of the FactoryPMI Designer is going to receive a major overhaul in the coming months with the introduction of native 2d vector drawing tools, so expect these improvements to be made at that time.

Just to add a couple more “ease of use” suggestions…

  1. Would it be possible to add a way to stop the preview mode in the designer in cases where the programmer makes a mistake (such as an endless loop)? I made a dumb mistake yesterday and lost my work because I could only get out by killing FPMI with Task Manager.

  2. It would be nice to have a few additional features in the editor window: commenting (right click and everything that is highlighted would be commented out), group indent and dedent, and search and replace. I get around this somewhat by using the SPE IDE to set up the basic code, and when it’s pretty cllose to what I want, I copy it over to FPMI. But by just having a few new basic editting features, I wouldn’t have to do it as much.

Thanks!

Well, I found the bulk indent/dedent/comment in the Oct 2nd change log, so ignore my comment above. You guys are always a few steps ahead.

Detecting and endless loop in a free-form python script would be a really hard static analysis problem. Detecting it as it occurred would similarly be tricky - computers have a hard time differentiating between an ‘endless’ loop and any other loop. Its pretty hard to determine if a loop will or won’t stop itself at some point.

Yeah, I don’t think the application could know, but what if the user could make that determination, and just unconditionally end preview mode? For instance, when I work with SPE, I can just issue another ctrl-R and it kills the script. That’s kind of what I meant. My problem was that the “stop” preview just wasn’t responding.

Of course, I should be saving often and looking out for loops anyway. :slight_smile:

Yeah, that sounds like a good idea, but there are some technical issues that make it hard (read: I don’t know if its even possible). Your python IDE can happilly run your script in another thread, and kill it when you hit CTRL-R. In FactoryPMI, your script is dealing with the GUI, and as such, must run in the (single) GUI thread. So, when you enter an infinite loop, you are blocking the Stop Preview button or some sort of CTRL-R from being processed.

Don’t write bad loops :slight_smile: