| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> |
| <HTML> |
| <head> |
| <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252"> |
| <TITLE></TITLE> |
| <META NAME="GENERATOR" CONTENT="StarOffice 6.0 (Win32)"> |
| <META NAME="AUTHOR" CONTENT="Lutz Höger"> |
| <META NAME="CREATED" CONTENT="20010921;13214600"> |
| <META NAME="CHANGEDBY" CONTENT="Oliver Specht"> |
| <META NAME="CHANGED" CONTENT="20010921;13422999"> |
| <STYLE> |
| <!-- |
| @page { size: 21cm 29.7cm; margin: 2cm } |
| P { margin-bottom: 0.21cm; font-family: "SunSerif-Regular" } |
| H1 { margin-bottom: 0.21cm; font-family: "SunSans-Heavy"; font-size: 16pt; font-weight: medium } |
| H2 { margin-bottom: 0.21cm; font-family: "SunSans-Heavy"; font-size: 14pt; font-style: normal; font-weight: medium } |
| --> |
| </STYLE> |
| </head> |
| <body> |
| <P ALIGN=CENTER STYLE="margin-top: 0.42cm; font-weight: medium; page-break-after: avoid"> |
| <FONT FACE="SunSans-Heavy"><FONT SIZE=5>Printing and The "document |
| modified" Status</FONT></FONT></P> |
| <P ALIGN=CENTER STYLE="margin-top: 0.42cm; font-style: normal; page-break-after: avoid"> |
| <FONT FACE="SunSans-Demi"><FONT SIZE=4>Specification Proposal<BR>Lutz |
| Höger, Matthias Breuer, 09/21/2001</FONT></FONT></P> |
| <H1>Problem</H1> |
| <P>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? ...)</P> |
| <H1>Background</H1> |
| <P>When a StarOffice application, like Writer, receives the “print” |
| command, it performs a couple of actions before it actually prints |
| the document:</P> |
| <UL> |
| <LI><P>Updating the document info (File – Properties) and set |
| the “last printed” date.</P> |
| <LI><P>Updating the fields in the document</P> |
| <LI><P>Possibly reformatting the whole document because the printer |
| driver used for printing is different from the printer driver the |
| document was created for originally.</P> |
| </UL> |
| <P>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.</P> |
| <P>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.</P> |
| <H1>Solution</H1> |
| <P>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. |
| </P> |
| <P>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”.</P> |
| <H2>There are some disadvantages to this solution:</H2> |
| <UL> |
| <LI><P>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<BR>(This would also be the case if the user |
| decides not to save the document when asked about this)</P> |
| <LI><P>The “last printed” document info field would not |
| contain the correct value<BR>(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))</P> |
| </UL> |
| <P>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.</P> |
| <H2>How does the user learn about the new feature? |
| </H2> |
| <P>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. |
| </P> |
| <P>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. |
| </P> |
| <H2>Further specification details</H2> |
| <UL> |
| <LI><P>Add an option to Tools – Options – General<BR>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.</P> |
| <LI><P>The option should be called: Printing sets “document |
| modified” status. It should be preceded by a separator line |
| labeled “Document status”<BR>In German: Drucken setzt |
| “Dokument geändert” Status (separator label: |
| Dokumentstatus)</P> |
| </UL> |
| <H1>Action Items</H1> |
| <TABLE WIDTH=803 BORDER=0 CELLPADDING=5 CELLSPACING=0> |
| <COL WIDTH=535> |
| <COL WIDTH=248> |
| <TR VALIGN=TOP> |
| <TD WIDTH=535> |
| <P>Propose specification</P> |
| </TD> |
| <TD WIDTH=248> |
| <P>Lutz Höger</P> |
| </TD> |
| </TR> |
| <TR VALIGN=TOP> |
| <TD WIDTH=535> |
| <P>Describe the feature and maybe the technical background</P> |
| </TD> |
| <TD WIDTH=248> |
| <P>Frank Peters</P> |
| </TD> |
| </TR> |
| <TR VALIGN=TOP> |
| <TD WIDTH=535> |
| <P>Optionally save and restore the document status when printing</P> |
| </TD> |
| <TD WIDTH=248> |
| <P>Mathias Bauer</P> |
| </TD> |
| </TR> |
| <TR VALIGN=TOP> |
| <TD WIDTH=535> |
| <P>Implement Tools – Options UI</P> |
| </TD> |
| <TD WIDTH=248> |
| <P>Oliver Specht</P> |
| </TD> |
| </TR> |
| <TR VALIGN=TOP> |
| <TD WIDTH=535> |
| <P>Implement trigger for Help Agent</P> |
| </TD> |
| <TD WIDTH=248> |
| <P>Oliver Specht</P> |
| </TD> |
| </TR> |
| <TR VALIGN=TOP> |
| <TD WIDTH=535> |
| <P>Write feature e-mail</P> |
| </TD> |
| <TD WIDTH=248> |
| <P>Oliver Specht</P> |
| </TD> |
| </TR> |
| <TR VALIGN=TOP> |
| <TD WIDTH=535> |
| <P>Translate UI and documentation</P> |
| </TD> |
| <TD WIDTH=248> |
| <P>Rafaella Braconi</P> |
| </TD> |
| </TR> |
| </TABLE> |
| <P><BR><BR> |
| </P> |
| </body> |
| </HTML> |