MapleXp 1.9 brings some improvements in the area called here the “restore environment” feature. The general idea is that when a user launches an application he wants it to look the same as it looked when used last time.
MapleXp can deliver this experience by saving the following:
- main window size and location
- recently used database
- characteristics of child windows, including their internal state (i.e. task window remembers which nodes were expanded and which task was selected)
You should also understand that the first two can be stored as application setting whereas information about child windows depends on an open database and as such must be kept in the respective database.
How it worked so far …
In MapleXp pre-1.9 you could control the “restore environment” feature by the means of the following settings:
The first two checks were independent, but to enable “other windows” you had to have “main window” and “last database” selected. The code to handle this was quite simple:
- restore main window, if requested
- open recently used database, if requested
- if the two previous was successful, restore child windows
What was wrong with that? The weakest point was that this algorithm ran only once at launch. It did not work for the following basic scenario:
- open a database
- open some windows
- close the database (<- here windows are closed automatically)
- reopen the database (<- nothing restored .. we are not at startup)
How it works now …
In MapleXp 1.9 control of the “restore environment” feature was split into two areas. See the following screenshots:
Controls located on the General tab have the same meaning as in previous versions. You can request to restore the main window and the recently used database independently.
Please note that the “restore database specific windows” option was moved to the Database tab to emphasize that it is no longer a startup option. Now the child windows can be restored any time a database if opened (including the launch if so requested). So:
- open a database
- open some windows
- close the database (<- here windows are closed automatically)
- reopen the database (<- child windows are restored to their previous state)
Hopefully you will like this improvement.