My Xojo app show off

It is pretty easy as long as you aren’t using OS specific functions or Plugins. Literally checking a box before hitting build.

If you need any help testing or packaging for Linux let me know. It’s my OS and I try and get support for the platform where I can. I also have a Windows laptop I use for testing my programs there (that’s about it).

There is still one issue with my app that I am not sure if I handled it correctly:
When a user types in a text area field and leaves that field without saving (clicking outside the field), that text will be gone.

I added these functions to avoid text lost:

  • When starting to type in a text field, a button will become red and showing the text “Click to save changes”.
  • To make the user aware of this, he also sees a warning window when leaving the text field, saying that it’s important to click the button (or use the key command COMMAND+S) to avoid text lost. This window can be discarded by clicking the checkbox “I understand”, after which he will not see that warning window anymore when clicking outside a text field).
  • If he still changes text in a text field and leaves it with saving first, another warning window will pop up, explaining that it’s important to save AND it shows the textEdit app with the text from that text field, including the text that would have been lost, so he can copy and past it back into the text field.

I used the LostFocus even on the text field before that would automatically save the text, but I remember getting into some other problems, not sure what it was right now.

Is this a a good way to make the user aware or are there better ways?

H iPaul, what do you mean by “Sourcing your project”? You mean it’s freeware?

It doesn’t necessarily have to be freeware although it can be. Sometimes you have the source code freely available but sell the compiled application.
Anyone who wants to compile it themselves can still using the source code though.
An app called Asperite does it that way.

A lot of software have an open source version or “community edition” that’s free with source code available but with quality of life features or advanced functionality removed and on a paid professional version.

Other software offers a free Linux version but doesn’t give support or fast updates for it. Usually this is approved so a passionate employee can maintain it.

I open sourced my first “big” application and let people pay what they want for it, so you can pay nothing or anything if you like it. Source code is also free to look at.

Do your text boxes reset when losing focus? Is that a functionality you implemented for another purpose? I don’t think I’ve seen that behavior on mine.
You could always save the last few entered strings in an array variable, that way you can always allow undo on the field a few times. Along with recovering lost strings that weren’t saved.

The changes will only be lost if the window is closed or another record is loaded or something similar. Simply leaving a textarea does not reset its content.

My approach to give users an “unsaved changes warning” is a property “mChanged” of type Boolean, which is false by default. In the textchanged event of Textareas I set this property to True.
Before closing the window or loading another record i check this property and display a dialog with info about unsaved changes and three buttons (Save, Cancel and Dismiss).

Yes, I am doing the same right now.
In my app, the text field will be empty because of selecting another row in a listbox.

Can’t you save automatically without user intervention?

I did that before using the save code in the FocusLost event of the text area field, but I had some problems with that. I don’t remember anymore what it was. I will give it another try. I believe someone also told me here on the forum that doing it this way is not always reliable.

That would mimic the typical FileMaker behaviour, saving without asking the user if he would like to save the changes. In my opinion not a good UX - I prefer to ask the user…

Yes, I feel also better that way. I hope it’s only a matter of training the user to save changes before switching to another record. I think I did implant enough fail saves for them not loosing any written texts. After all, in any other program, the user also needs to save regular before closing the program, and I hope the muscle memory to hit the COMMAND+S keys will help here.