From: Alan W. I. <ir...@be...> - 2011-08-10 21:20:36
|
On 2011-08-10 09:55+0100 Andrew Ross wrote: > I've now implemented driver support for arcs (including rotated arcs) in > the Qt driver too. I'm no Qt expert, but all looks to work fine. Your change generated a big improvement in the looks of the last page you get from examples/c/x27c -dev qtwidget Thanks for bringing qt back on par with the cairo device driver again. > There does seem to be a lot of duplicated code in the Qt driver for the > different flavours of device. From a maintenance point of view it would > be good to streamline this a bit. Since it is all in C++ this should be > perfectly do-able. Another little project for the list... To give what I remember of the history of that, it was nice compact code at one point, but it depended on dynamic_cast which was not working correctly in some cases (perhaps due to a bug in g++?). So to fix a specific issue with the external device, Hazen decided (revision 10109) to change to C-style casts for the extqt device which proliferated some dispatch functions. Then Alban followed with another patch (revision 10168) to make the equivalent change across the board (which proliferated lots more dispatch functions) because he no longer trusted dynamic_cast at all. So I doubt we would want to go back to dynamic_casts (unless whatever the issue was with dynamic_cast in the Linux build tools is now fixed). However, there are likely other ways to eliminate the duplicated code so I hope someone here is willing to look at that. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |