QT_NO_KEYWORDS prevents Qt from defining the foreach, signals, slots and emit macros.
Avoid overlap between Qt macros and boost - for example #undef hackiness in #6421.
The drawback is that all uses of the macros have to be replace by Q_xxx, but at least this is easy to review.