Version: unspecified (using Devel) OS: Linux QFlags<type> is a typedef for a uint, so, QFlags<type>& is a uint*. smokedata.cpp for qtcore has a type for unsigned int&: { "unsigned int&", 0, Smoke::t_voidp|Smoke::tf_ref } but all the QFlags<type>& are set to Smoke::t_uint : { "QFlags<QTextCodec::ConversionFlag>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QAbstractSpinBox::StepEnabledFlag>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QPaintEngine::DirtyFlag>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QPaintEngine::PaintEngineFeature>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QStyle::StateFlag>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QStyle::SubControl>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QStyleOptionButton::ButtonFeature>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QStyleOptionFrameV2::FrameFeature>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QStyleOptionTab::CornerWidget>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QStyleOptionToolBar::ToolBarFeature>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QStyleOptionToolButton::ToolButtonFeature>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<QStyleOptionViewItemV2::ViewItemFeature>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<Qt::AlignmentFlag>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<Qt::DropAction>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<Qt::KeyboardModifier>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<Qt::MouseButton>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<Qt::TouchPointState>&", 0, Smoke::t_uint|Smoke::tf_ref } { "QFlags<Qt::WindowType>&", 0, Smoke::t_uint|Smoke::tf_ref } Those be set to Smoke::t_voidp. In particular, the QFlags<QStyle*Option> ones break the usage of the QStyle*Option classes. Reproducible: Always
There's also a problem with the munged method name used for this. If the argument is identified as 'unsigned int&', it gets a '$' in the signature. But if it is identified as a 'QFlags<Type>&', it gets a '#'. See QStyleOption::setState in QtGui for an example.
Ah, seems like this problem only occurs with fields. QStyleOption::state is actually a field with type QFlags<something>. The code for that is completely broken, as it seems. Thanks for the report, I'll hopefully fix this over the weekend.
SVN commit 1173496 by arnorehn: Improve logic for QFlags. BUG:249567 M +2 -1 helpers.cpp M +1 -1 writeSmokeDataFile.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1173496
SVN commit 1173497 by arnorehn: Improve logic for QFlags. BUG:249567 M +2 -1 helpers.cpp M +1 -1 writeSmokeDataFile.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1173497