QPlatformDialogHelper: change ButtonRole flags to ensure 32-bit size
authorShawn Rutledge <shawn.rutledge@digia.com>
Fri, 14 Feb 2014 16:45:41 +0000 (17:45 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Mon, 17 Feb 2014 10:24:40 +0000 (11:24 +0100)
commit70f4bf1a487aa56e9667b92f420926e353ba7862
treec21425b059adcc209545fb5e10954bb34c2a6ad9
parent00b96399e6d3bcd7a1081721cafeb15da3ab9781
QPlatformDialogHelper: change ButtonRole flags to ensure 32-bit size

0x80000000 is too big for a signed 32-bit int, so the compiler ends
up choosing a 64-bit number.  Then it will not be the same size as
the parallel enum QDialogButtonBox::ButtonRole, which does not have
these extra flags.  By making EOL be the same as InvalidRole and
changing Reverse to 0x40000000, we don't need to use 0x80000000 at
all, so again the compiler can choose a 32-bit representation
for both if appropriate.  EOL is used as a terminator in the
static const int buttonRoleLayouts table and therefore as a terminator
in arrays returned from QPlatformDialogHelper::buttonLayout().
It's internal API so it's OK to change in a minor release, but
QtQuick.Dialogs is also looking for the EOL now, so we should avoid
changing it again if possible.  This is mainly for efficiency and
for avoiding surprise data type conversions when casting from one
enum to the other.

Change-Id: Ia7b7ce43c8f929d09dd999769e9b7114f695e9a4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
src/gui/kernel/qplatformdialoghelper.cpp
src/gui/kernel/qplatformdialoghelper.h
src/widgets/widgets/qdialogbuttonbox.cpp