So, the time has come to say goodbye to the good'ol non-unicode Windows systems.
Qt has for a very long time had the QT_WA/QT_WA_INLINE(uni, ansi) macros to provide support for both Windows ANSI systems and their Unicode equivalents, and thus supported running Qt applications on old Windows systems without the MSLU (Microsoft Layer for Unicode) installed. It was in our plans to ditch the ANSI code for Qt 4.6, and take the chance to clean up our code, making it more maintainable for the future. With the upcoming Windows 7 I’m sure we’ll still have our share of special-casing the various Windows versions, so it’s time to ditch the old platforms which Microsoft themselves haven’t supported since 2003 (mainstream support ended in 2003, while extended support ended on 11th of July 2006, 3 years ago).
Right after the launch of our contribution model, Milan Burda contacted me and asked if there were any projects open which he could help out with. Within a few days he had whipped up a series of patches, totaling a 15K line diff, which successfully removed the old ANSI code from Qt. And now, after some reviewing, splitting, reorganizing and squashing, and auto-testing of the rebased version of his commits, these patches have finally made it into Qt’s mainline.
Unfortunately, in the reorganization process I failed to maintain the authorship on some of the splits; but rest assure that the whole series, with the exception of commit cfadf08a, is all his! Great work Milan, thanks!
PS: Should we have, despite the review and auto-test process, and introduced any regressions, please add “[ANSI regression]” to your bug report subject, and I’ll keep a keen eye on those when they come in. As Qt mainline is not a supported release, please use the web form to send these requests.