--nextPart25316959.dVOYnXtOrD Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline http://techbase.kde.org/Projects/KDEPrint/Meeting_2007_09_12 http://techbase.kde.org/Projects/KDEPrint/Going_Forward =46irst of all: the Printing kcm. This partly works and partly doesn't. =20 It should be noted that, providing it's basically in a usable state for=20 4.0, we can improve it for 4.1 etc. without a problem, because it's not=20 bound by BC guarantees. I'm not sure it shouldn't move to kdebase/workspace, and that would give=20 us more time to fix it (since kdebase/runtime freezes sooner - I'm=20 assuming runtime actually freezes on Oct 3rd). We decided in the meeting that we should go for a solution that relies=20 heavily on QPrinter/QPrintDialog at this stage. The two must-have features for 4.0 that Qt doesn't provide (yet) are=20 print preview and custom dialog options. [We didn't get to discuss too=20 many technical details in the meeting, unfortunately.] Print Preview: TT are working on a cross-platform solution for 4.4. In the meantime, we can print to a file and use Okular. Technical considerations: - we need to know when the printing is finished - we probably want to make use of Qt 4.4's print preview for KDE4.1, preferably without requiring any application changes (or even recompiles) UI considerations: - We don't need File->Print Preview to be possible, necessarily, if the option is available from the printing dialog The only way I can see of doing this is to subclass QPrinter with a doPreview(bool) method, which places an intermediate QPaintEngine between the QPrinter and its internal QPaintEngine that catches the end() call. If we don't mind having some API that will be redundant by 4.1, and possibly resulting inconsistent print previews between apps, we can have something like my earlier suggestion: [QK]Printer printer; KPrintPreview preview(&printer); doPrint(printer); preview.exec(); where KPrintPreview sets printer to output to a file in its constructor, and shows the preview in exec() [this way is easier to implement]. Extensible print dialog: We can either implement our own dialog or we can use QPrintDialog. The latter option is ONLY POSSIBLE IF WE REQUIRE Qt 4.3.2 OR LATER!!! TT are exporting the method qt_printdialog_add_extension_tab() in 4.3.2. This will be proper API in 4.4, but we can use this in the meantime from a KPrintDialog class. Note that this won't necessarily help us with the print preview issue, because the widget can only be added as a tab. Thomas Zander would like us to end up using QPrinter and QPrintDialog=20 exclusively from programs (NB: this does NOT affect the kcm). The only=20 thing we'd lose in the long run from not having our own KPrinter class=20 should be arbitrary page selection from with the printing dialog (it's=20 still possible from within the application - such as checkboxes on a=20 page thumbnail view: there's a "selection" option in the print dialog). =20 I think we would gain more than we lost by using QPrintDialog in the=20 long run, especially as TT seem to be quite aware of its current=20 shortcomings and are actively fixing it up for Qt4.4. This is my understanding of the situation. I have the remainder of this=20 week, limited time next week and an unknown amount of time the week=20 after to work on this. One last thing: before people start complaining about loss of=20 functionality, we have, so far, two coders who know next to nothing=20 about printing, one or two more with limited time and little knowledge=20 of the kde print codebase, a printing guru with little knowledge of the=20 kde print codebase and maintainer who has very little time to spare on=20 this. And a deadline in three weeks. Alex =2D-=20 KDE: http://www.kde.org Ubuntu/Kubuntu: http://www.ubuntu.org http://www.kubuntu.org --nextPart25316959.dVOYnXtOrD Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQBG6HZ4BRauKLutZ9ARApumAKDBxFb5O1IsO2bLyx7fRQPlLrl0gwCgg/Yl wwJ6EzdRM9b8OXXmZiujQDs= =NkU9 -----END PGP SIGNATURE----- --nextPart25316959.dVOYnXtOrD--