Printing and The "document modified" Status
Specification Proposal
Lutz
Höger, Matthias Breuer, 09/21/2001
Problem
When a document gets opened, printed and closed, StarOffice asks whether the changes should be saved. Many users don't understand this and depending on the current work situation sometimes even feel uncertain about which decision they should make (Have I changed anything erroneously? Didn't I save my latest changes? ...)
Background
When a StarOffice application, like Writer, receives the print command, it performs a couple of actions before it actually prints the document:
Updating the document info (File Properties) and set the last printed date.
Updating the fields in the document
Possibly reformatting the whole document because the printer driver used for printing is different from the printer driver the document was created for originally.
As it takes quite some engineering effort to find out whether or not these preparations actually change the document, the modified flag is set by default, as soon as an application starts the print preparations.
Of course it would be a better solution, if the applications knew whether changes were triggered by printing or by other actions. This would also give us the chance to change the warning message that's displayed when an unsaved, modified document gets closed. But the engineering cost to distinguish between the source of the changes is very high (first incomplete estimate: 1 week planning, at least 2 weeks of implementation, additional time for testing), and we don't feel like solving this problem is worth the cost.
Solution
As an alternative,more simple approach, we should offer an option that suppresses the modification of the document modified flag by the print process. This option would not be active by default, but if a user feels confused by the current behavior, he can choose to activate it.
Behind the scenes, the status of the document modified flag would be saved as soon as the printing process gets triggered and it would be reset to the saved value after printing has finished. Of course the changes mentioned above would still be made, it would be just the status of the document that's locked against changes. If the document has been modified before it was printed, the status after printing would be modified. If it has just been opened with no automatic changes (like triggered by macros or updated links), it would show the status unmodified after printing. If the user subsequently changes the document, the status would change accordingly, i.e. Switch to modified.
There are some disadvantages to this solution:
If the user doesn't save the document after printing, the changes will be lost, so the printed document is newer than the saved document
(This would also be the case if the user decides not to save the document when asked about this)The last printed document info field would not contain the correct value
(same as above; today the field also doesn't get updated if a document is printed from the system shell (like from the context menu in Windows Explorer))
I consider these disadvantages to be a moderate price that the user pays for his convenience. And anyway, we would not make this setting the default, so the user himself would be responsible for changing this behavior.
How does the user learn about the new feature?
As described in the background section, we do not want to distinguish between general changes and changes triggered by the printing process. So we can't modify the warning message box that asks the user if his changes should be saved, because we don't know which changes caused this box to appear.
An alternative way to inform the user is to display the Help Agent together with the message box. The Help Agent leads the user to a description of this feature in our help system.
Further specification details
Add an option to Tools Options General
This is maybe not the most natural option page for this setting, but due to other dialogs being already full, this is the best compromise for this setting.The option should be called: Printing sets document modified status. It should be preceded by a separator line labeled Document status
In German: Drucken setzt Dokument geändert Status (separator label: Dokumentstatus)
Action Items
Propose specification |
Lutz Höger |
Describe the feature and maybe the technical background |
Frank Peters |
Optionally save and restore the document status when printing |
Mathias Bauer |
Implement Tools Options UI |
Oliver Specht |
Implement trigger for Help Agent |
Oliver Specht |
Write feature e-mail |
Oliver Specht |
Translate UI and documentation |
Rafaella Braconi |