On Monday 23 Apr 2012 13:20:08 morten.sor...@nokia.com wrote: > On Apr 22, 2012, at 10:43 PM, ext John Layt wrote:
> > OSX: > > > > src/plugins/platforms/cocoa - QMacPrintEngine > > - QCoreGraphicsPaintEngine > > - QCocoaPrinterSupport > > > > src/plugins/printsupport/cocoa - QCocoaPrinterSupportPlugin > > Windows: > > > > src/plugins/platforms/windows - none > > src/plugins/printsupport/cocoa - QWindowsPrinterSupportPlugin > > - QWindowsPrinterSupport > > > > src/printsupport/kernel - QWin32PrintEngine > > Can anyone explain why we have these differences, or any objections why we > > shouldn't move them around to be consistent: > QMacPrintEngine and QCoreGraphicsPaintEngine are class names from Qt 4. For > Qt 5 we adopted the "QCocoa" prefix - hence the mismatch. I would like to > keep "QCoreGraphicsPaintEngine", which describes exactly what it is (I > guess the same can be said for "QPdfPrintEngine"). QMacPrintEngine can be > renamed to QCocoaPrintEngine. Thanks, but perhaps I wasn't quite clear enough, I'm wondering why the Mac and Windows printersupport plugins are structured differently and why the files/classes themselves are in different locations and plugins. For Mac I was more interested in why the classes are in plugins/platforms/cocoa instead of plugins/printsupport/cocoa or printsupport/kernel like for Windows. Ideally, the platform plugins should know nothing about QtPrintSupport which we plan to deprecate later. All the QtPrintSupport specific classes should be in the separate printsupport plugin and so more easily switched when the new print module eventually appears. I've looked at it a bit more and it seems to be related to QCocoaNativeInterface which has a couple of private Q_INVOKABLE methods related to creating the QCocoaPrinterSupport object, but I'm not sure why these need to be there when they could be in the QCocoaPrinterSupportPlugin? For Mac I propose moving QCocoaPrinterSupport into plugins/printsupport/cocoa and moving the private methods from QCocoaNativeInterface to QCocoaPrinterSupportPlugin. I'll do a patch. A harder question is where QMacPrintEngine should be, should it go to plugins/printsupport/cocoa, or to printsupport/kernel like the current Windows and Cups implementations? The QMacPrintDialog could have the same question, does it belong in plugins/printsupport/cocoa, or to printsupport/dialogs? I'm inclined to have all the platform specific code in the plugin if possible, and change Windows and Cups to match. Cheers! John. _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development