From 7228b4032e5850794be32623b01f328cbf2b5135 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Wed, 15 Jan 2020 18:48:29 +0000 Subject: [PATCH] use std::bitset<> for QCoreApplication::attribs member Signed-off-by: Ivailo Monev --- src/core/kernel/qcoreapplication.cpp | 9 +++------ src/core/kernel/qcoreapplication_p.h | 5 ++--- src/gui/kernel/qwidget.cpp | 6 +++--- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/core/kernel/qcoreapplication.cpp b/src/core/kernel/qcoreapplication.cpp index d5bd3b1c2..f8e1fffea 100644 --- a/src/core/kernel/qcoreapplication.cpp +++ b/src/core/kernel/qcoreapplication.cpp @@ -178,7 +178,7 @@ void qt_set_current_thread_to_main_thread() QCoreApplication *QCoreApplication::self = 0; QAbstractEventDispatcher *QCoreApplicationPrivate::eventDispatcher = 0; -uint QCoreApplicationPrivate::attribs; +std::bitset QCoreApplicationPrivate::attribs; #ifdef Q_OS_UNIX Qt::HANDLE qt_application_thread_id = 0; @@ -521,10 +521,7 @@ QCoreApplication::~QCoreApplication() */ void QCoreApplication::setAttribute(Qt::ApplicationAttribute attribute, bool on) { - if (on) - QCoreApplicationPrivate::attribs |= 1 << attribute; - else - QCoreApplicationPrivate::attribs &= ~(1 << attribute); + QCoreApplicationPrivate::attribs.set(attribute, on); } /*! @@ -535,7 +532,7 @@ void QCoreApplication::setAttribute(Qt::ApplicationAttribute attribute, bool on) */ bool QCoreApplication::testAttribute(Qt::ApplicationAttribute attribute) { - return QCoreApplicationPrivate::testAttribute(attribute); + return QCoreApplicationPrivate::attribs.test(attribute); } diff --git a/src/core/kernel/qcoreapplication_p.h b/src/core/kernel/qcoreapplication_p.h index 3f194a38b..64c53a39e 100644 --- a/src/core/kernel/qcoreapplication_p.h +++ b/src/core/kernel/qcoreapplication_p.h @@ -50,6 +50,7 @@ #include "QtCore/qsettings.h" #include "qobject_p.h" +#include QT_BEGIN_NAMESPACE @@ -108,9 +109,7 @@ public: static bool is_app_running; static bool is_app_closing; - static uint attribs; - static inline bool testAttribute(uint flag) - { return attribs & (1 << flag); } + static std::bitset attribs; #ifndef QT_NO_SETTINGS static QSettings *staticConf(); #endif diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp index 34ac2c89d..1dd18a24b 100644 --- a/src/gui/kernel/qwidget.cpp +++ b/src/gui/kernel/qwidget.cpp @@ -1021,7 +1021,7 @@ void QWidgetPrivate::init(QWidget *parentWidget, Qt::WindowFlags f) if (++QWidgetPrivate::instanceCounter > QWidgetPrivate::maxInstances) QWidgetPrivate::maxInstances = QWidgetPrivate::instanceCounter; - if (QApplicationPrivate::testAttribute(Qt::AA_ImmediateWidgetCreation)) + if (QApplication::testAttribute(Qt::AA_ImmediateWidgetCreation)) q->create(); @@ -1105,7 +1105,7 @@ void QWidget::create(WId window, bool initializeWindow, bool destroyOldWindow) if (paintOnScreenEnv == 1) setAttribute(Qt::WA_PaintOnScreen); - if (QApplicationPrivate::testAttribute(Qt::AA_NativeWindows)) + if (QApplication::testAttribute(Qt::AA_NativeWindows)) setAttribute(Qt::WA_NativeWindow); #ifdef ALIEN_DEBUG @@ -8805,7 +8805,7 @@ void QWidget::setParent(QWidget *parent, Qt::WindowFlags f) oldBs->moveStaticWidgets(this); } - if (QApplicationPrivate::testAttribute(Qt::AA_ImmediateWidgetCreation) + if (QApplication::testAttribute(Qt::AA_ImmediateWidgetCreation) && !testAttribute(Qt::WA_WState_Created)) create(); -- 2.11.0