Difference between revisions of "User:Camillem/I47600 Summary"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Backward compatibility issues (to be further discussed))
Line 11: Line 11:
 
According to the ODF spec, sheets with the table:print attribute set to false should not be printed. Unfortunately, OOo currently sets this attribute to false for every sheet of a new file.
 
According to the ODF spec, sheets with the table:print attribute set to false should not be printed. Unfortunately, OOo currently sets this attribute to false for every sheet of a new file.
 
It has been decided to fix this in order to have a behaviour of the app which is more predictable and compliant to the specs.  
 
It has been decided to fix this in order to have a behaviour of the app which is more predictable and compliant to the specs.  
The problem is that if the application behaves correctly, the files created with a previous version of the app without any print range, won't print at all. This is the majority of the files.
+
The problem is that if the application behaves correctly, the files created with a previous version of the app without any print range, won't print at all. This is not acceptable as this impacts the majority of the files.
 +
The possible solution are to convert the files or to warn the user
 +
 
 +
==Converting the files==
 +
 
 +
The idea is to when change all the table:print attributes of a spreadsheet to "true" when they are all set to false. Theorically, that would remove the possibility to have a spreadsheet with all sheets excluded from printing, but such spreadsheets are impossible to create with the current behaviour.
 +
This conversion could be done at the opening of the file, without setting the "modified" state, so that the user doesn't get the feeling that his file has been modified without him doing anything (cf. nn's email 20091019 9h56).
 +
 
  
* Solution A : when all the sheets of a spreadsheet have their attribute table:print set to false, automagically set them to true. Pros: it will fix the problem seamlessly for most cases. Cons: it becomes impossible to have  a spreadsheet with all sheets excluded from printing (but who would do that, and anyway it's not possible to have one with the current behaviour)
 
 
** Solution A1: test the version of the last editor of the document. Pros: it allows the new application to have files with all sheets set to "don't print" Cons : more code complexity, slows the opening process.  
 
** Solution A1: test the version of the last editor of the document. Pros: it allows the new application to have files with all sheets set to "don't print" Cons : more code complexity, slows the opening process.  
 
** Solution A2: don't test it.Pros : no impact on perfomance and complexity of code. Cons : impossible to have  a spreadsheet with all sheets excluded from printing (but who would do that?)
 
** Solution A2: don't test it.Pros : no impact on perfomance and complexity of code. Cons : impossible to have  a spreadsheet with all sheets excluded from printing (but who would do that?)
Line 141: Line 147:
 
|bgcolor="green"|Full content of the 2 sheets  and content of the print range is printed ; print ranges adapt to the new content
 
|bgcolor="green"|Full content of the 2 sheets  and content of the print range is printed ; print ranges adapt to the new content
 
|}
 
|}
 
  
 
=Interface (to be further discussed)=
 
=Interface (to be further discussed)=

Revision as of 21:52, 25 January 2010

Points to address about Issue 47600

Detailed specification on Regina's page

new behaviour of the application (Consensus OK)

  • When you create a new file : table:print should be set to true (or not set) on every sheet.
  • When adding a print range on a sheet, other sheets should not be altered.

Backward compatibility issues (to be further discussed)

According to the ODF spec, sheets with the table:print attribute set to false should not be printed. Unfortunately, OOo currently sets this attribute to false for every sheet of a new file. It has been decided to fix this in order to have a behaviour of the app which is more predictable and compliant to the specs. The problem is that if the application behaves correctly, the files created with a previous version of the app without any print range, won't print at all. This is not acceptable as this impacts the majority of the files. The possible solution are to convert the files or to warn the user

Converting the files

The idea is to when change all the table:print attributes of a spreadsheet to "true" when they are all set to false. Theorically, that would remove the possibility to have a spreadsheet with all sheets excluded from printing, but such spreadsheets are impossible to create with the current behaviour. This conversion could be done at the opening of the file, without setting the "modified" state, so that the user doesn't get the feeling that his file has been modified without him doing anything (cf. nn's email 20091019 9h56).


    • Solution A1: test the version of the last editor of the document. Pros: it allows the new application to have files with all sheets set to "don't print" Cons : more code complexity, slows the opening process.
    • Solution A2: don't test it.Pros : no impact on perfomance and complexity of code. Cons : impossible to have a spreadsheet with all sheets excluded from printing (but who would do that?)
  • Solution B : Inform the user why it spreadsheet won't print. Pros: nothing is done automatically to the file. Every user will get the warning, which can be very disturbing and

Christoph's answer:

  • Don't touch existing documents when opened (One reason is that people would open a document and instantly get a "changed" notification without doing anything. From experience it is known that people can get really angry ;-))
  • The code changes for the print dialog can be re-used for numerous other print problems. They are not specific to any ODFversion.

Overview for relationes between old and new version

Regina 12:20, 22 October 2009 (UTC)

Starting with a new document in default setting

Action Old version on old documents New version on old document without converting New version on new documents and old, converted documents Old version on new documents
Printing without any changes All sheets are printed. No sheet is printed. 1 All sheets are printed. All sheets are printed
Setting a print range Only the print range is printed, no other sheet is printed 2 Only the print range is printed, no other sheets are printed The print range is printed and all other sheets are printed The print range is printed and all other sheets are printed
Inserting a new sheet All sheets are printed Only the new sheet is printed All sheets are printed The new sheet is not printed, all other sheets are printed 3
Inserting a print range and a new sheet Only the print range is printed, no other sheet is printed 2 The print range is printed, the new sheet is printed, other sheets are not printed The print range is printed and all other sheets are printed The print range is printed, all old sheets are printed, the new sheet is not printed 4

1 Such severe change with default setting must not be. Therefore old sheets, which have no print range and no 'entire sheet' setting, have to be converted on import. The question is, whether this should be done quietly.

2 This behavior is unexpected for the user. Here the new version has an important improvement.

3 Should the export filter change back the converting?

4 Users who have solved problem 2 will be able to set the necessary "entire sheet" print setting.

Starting with a new document in default setting and added a print range in the start application

Action Old version on old documents New version on old document without converting New version on new documents (old documents are not converted) Old version on new documents
Printing without any changes Only the print range is printed Only the print range is printed The print range is printed and all other sheets are printed. The print range is printed and all other sheets are printed.
Adding a print range Only the print ranges are printed. Only the print ranges are printed. The print ranges are printed and all other sheets are printed. The print ranges are printed and all other sheets are printed.
Inserting a new sheet Only the print range is printed, the new sheet is not printed.5 The print range and the new sheet are printed, other sheets are not printed. The print range and all other sheets are printed. The new sheet is not printed, the print range and all other sheets are printed.5
Removing the print range All sheets are printed The sheet with the removed print range is printed, all other sheets are not printed. 6 All sheets are printed The sheet with the removed print range is not printed, all others are printed.7

5 It is no worsening.

6 This can be handled, when converting is not only applied on import but also in this situation.

7 I see no solution to get the old behavior automatically, because the action is done in the old version. But at least users who use the dialog to remove print ranges should know the setting "entire sheet" which is needed here.

Forward compatibility issues

How documents created with the future version of the application will be handled by previous versions. It's a key point as in large organisation, it's not always possible to upgrade to the latest version.

Action before printing 3 sheets, no print range defined 3 sheets, 1 print range defined
Nothing Full content of the 3 sheets is printed Full content of the 2 sheets, and content of the print range is printed
Insert a new sheet and add content Full content of the 3 sheets is printed, but not the one of the new sheet Full content of the 2 sheets, and content of the print range is printed,but not the one on the new sheet. Bad but that's the current behaviour
Delete a sheet Full content of the 2 remaining sheets is printed The content of the 2 remaining sheets is printed (full or limited to print range)
Add a print range Full content of the 2 sheets, and content of the print range is printed. Good, but it's different from the current behaviour Full content of the sheet, and content of the two print ranges is printed
Remove a print range Full content of the 2 other sheets is printed. Not disturbing, even if it's different from the current behaviour If you remove the print range explicitely defined, nothing from this sheet gets printed
Add /remove content to one sheet Full content of the 3 sheets is printed, print ranges adapt to the new content Full content of the 2 sheets and content of the print range is printed ; print ranges adapt to the new content

Interface (to be further discussed)

Sub menu in Format > Print Ranges menu

Currently

   Format > Print Range > Define
                          Add
                          Remove
                          -------
                          Edit

Proposal discussed

   Format > Print Ranges >         Add print range
                                   Define print range (tbd : remove it to unclutter the menu / keep it, as it's often used cf. Feedback data)
                                   Edit print ranges...
                                   [x]Default print range (tbd : Undo Print Range or Remove or Delete or Print entire sheet)
                                   ------------
                                   [x]Exclude sheet from printing (tb confirmed : looks like there is a kind of concensus )

If it is agreed to exclude the repeat column/row options from the Edit print ranges dialogue (see below), the menu will have to be updated accordingly.

Edit print ranges dialogue

  1. Remove the "none" option
  2. Put the repeat row/columns options in a different dialogue : cf. Regina's proposal


Contextual menu in Page Break preview mode

Currently

   Context Menu >  Define Print Range
                   Add Print Range
                   (Undo Print Range)

Steps to implement the behaviour (to be further discussed)

Personal tools