Future of KPrinter

Alex Merry huntedhacker at tiscali.co.uk
Sat Sep 8 20:29:08 BST 2007


Thomas Zander suggested we kill off KPrinter in favour of QPrinter 
(http://lists.kde.org/?l=kde-core-devel&m=118918127627566&w=2).

Here's a list of the features provided by the KDE printing system that 
the Qt printing system doesn't provide:

* Customisable print dialogs - would require implementing our own 
KPrintDialog
* Straightforward printer options (try clicking "properties" for a 
printer in the print dialog of the Qt assistant program, and doing the 
same in kolourpaint), ie: integration with KDE print management system - 
would require implementing our own KPrintDialog
* Printing a list of pages (such as 1,4,6-8) or the current page - would 
required extending QPrinter and implementing our own KPrintDialog, or 
we could just tell people to get this info from KPrintDialog (it's only 
needed by the application, not by the printing system)
* Custom margins - would require extending QPrinter and implementing our 
own backends (which might use a Qt builtin backend)
* Pre-print filtering - would require extending QPrinter and 
implementing our own backends (which might use a Qt builtin backend)
* "Special" printers (like Send Fax via KFax) independent of eg: CUPS - 
would require extending QPrinter and implementing our own backends 
(which might use a Qt builtin backend when not printing to the special 
printers)
* Print preview - more complicated.  We could probably provide a 
KPrintPreview class that uses a QPrinter to print to a file and then 
display that:

QPrinter printer;
KPrintPreview preview(printer); // configures the printer as needed
// paint to the QPrinter as normal
preview.show();

Note that the printer kcm could be kept (without the option 
for "special" printers except via eg: CUPS) even if the whole of the 
kde printing API was scrapped.

Are custom margins really needed?


So, the choices are:

* scrap KPrint* and just use Qt's system, (but keeping the printers kcm)
* scrap KPrinter and use QPrinter, but provide KPrintDialog as an 
extensible printing dialog integrated with the KDE print management 
system (and it can also delegate to QPrintDialog on Windows), and maybe 
KPrintPreview as above - this is what Thomas suggested
* provide KPrinter, a subclass of QPrinter, and potentially implement 
our own backend(s), as well as KPrintDialog


Personally, I'm being more and more convinced by Thomas' suggestion 
(together with KPrintPreview).  If we get programs to get a page list 
from KPrintDialog rather than QPrinter, we should be able to implement 
everything except for pre-print filtering and special printers.  The 
latter we could possibly even do using QPrinter::setPrintProgram() [on 
X11 only], and the former seems quite specialist.


I'd like a decision to be made on this ASAP, please, so I can start 
working on something.

Alex

PS: Thomas said that he will talk to the printing trolls about the 
missing features, but we wouldn't get them until 4.4 and we may not get 
any of them, of course


-- 
KDE: http://www.kde.org
Ubuntu/Kubuntu: http://www.ubuntu.org http://www.kubuntu.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070908/3f9a7576/attachment.sig>


More information about the kde-core-devel mailing list