diff options
Diffstat (limited to 'src/corelib/global/qnamespace.h')
-rw-r--r-- | src/corelib/global/qnamespace.h | 319 |
1 files changed, 226 insertions, 93 deletions
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h index 1058acc3a7..2398c0a1a4 100644 --- a/src/corelib/global/qnamespace.h +++ b/src/corelib/global/qnamespace.h @@ -1,46 +1,16 @@ -/**************************************************************************** -** -** Copyright (C) 2020 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2020 The Qt Company Ltd. +// Copyright (C) 2020 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QNAMESPACE_H #define QNAMESPACE_H +#if 0 +#pragma qt_class(Qt) +#endif + #include <QtCore/qglobal.h> +#include <QtCore/qcompare.h> #include <QtCore/qtmetamacros.h> #if defined(__OBJC__) && !defined(__cplusplus) @@ -77,12 +47,17 @@ namespace Qt { transparent }; + enum class ColorScheme { + Unknown, + Light, + Dark, + }; + enum MouseButton { NoButton = 0x00000000, LeftButton = 0x00000001, RightButton = 0x00000002, - MidButton = 0x00000004, // ### Qt 6: remove me - MiddleButton = MidButton, + MiddleButton = 0x00000004, BackButton = 0x00000008, XButton1 = BackButton, ExtraButton1 = XButton1, @@ -208,6 +183,7 @@ namespace Qt { // size of a multi-variant string. TextLongestVariant = 0x80000 }; + Q_DECLARE_MIXED_ENUM_OPERATORS_SYMMETRIC(int, AlignmentFlag, TextFlag) enum TextElideMode { ElideLeft, @@ -215,6 +191,7 @@ namespace Qt { ElideMiddle, ElideNone }; + Q_DECLARE_MIXED_ENUM_OPERATORS_SYMMETRIC(int, TextElideMode, TextFlag) enum WhiteSpaceMode { WhiteSpaceNormal, @@ -236,7 +213,7 @@ namespace Qt { ToolTip = Popup | Sheet, SplashScreen = ToolTip | Dialog, Desktop = 0x00000010 | Window, - SubWindow = 0x00000012, + SubWindow = 0x00000012, // Note QTBUG-115729 before using ForeignWindow = 0x00000020 | Window, CoverWindow = 0x00000040 | Window, @@ -306,20 +283,15 @@ namespace Qt { WA_Disabled = 0, WA_UnderMouse = 1, WA_MouseTracking = 2, - WA_ContentsPropagated = 3, // ## deprecated + // Formerly, 3 was WA_ContentsPropagated. WA_OpaquePaintEvent = 4, -#if QT_DEPRECATED_SINCE(5, 14) - WA_NoBackground Q_DECL_ENUMERATOR_DEPRECATED = WA_OpaquePaintEvent, -#endif WA_StaticContents = 5, WA_LaidOut = 7, WA_PaintOnScreen = 8, WA_NoSystemBackground = 9, WA_UpdatesDisabled = 10, WA_Mapped = 11, -#if QT_DEPRECATED_SINCE(5, 14) - WA_MacNoClickThrough Q_DECL_ENUMERATOR_DEPRECATED = 12, -#endif + // Formerly, 12 was WA_MacNoClickThrough. WA_InputMethodEnabled = 14, WA_WState_Visible = 15, WA_WState_Hidden = 16, @@ -337,10 +309,7 @@ namespace Qt { WA_Moved = 43, WA_PendingUpdate = 44, WA_InvalidSize = 45, -#if QT_DEPRECATED_SINCE(5, 14) - WA_MacBrushedMetal Q_DECL_ENUMERATOR_DEPRECATED = 46, - WA_MacMetalStyle Q_DECL_ENUMERATOR_DEPRECATED = 46, -#endif + // Formerly 46 was WA_MacBrushedMetal and WA_MacMetalStyle. WA_CustomWhatsThis = 47, WA_LayoutOnEntireRect = 48, WA_OutsideWSRange = 49, @@ -361,14 +330,13 @@ namespace Qt { WA_WState_Reparented = 63, WA_WState_ConfigPending = 64, WA_WState_Polished = 66, - WA_WState_DND = 67, // ## deprecated + // Formerly, 67 was WA_WState_DND. WA_WState_OwnSizePolicy = 68, WA_WState_ExplicitShowHide = 69, - WA_ShowModal = 70, // ## deprecated + WA_ShowModal = 70, // ## deprecated since since 4.5.1 but still in use :-( WA_MouseNoMask = 71, - WA_GroupLeader = 72, // ## deprecated - WA_NoMousePropagation = 73, // ## for now, might go away. + WA_NoMousePropagation = 73, // for now, might go away. WA_Hover = 74, WA_InputMethodTransparent = 75, // Don't reset IM when user clicks on this (for virtual keyboards on embedded) WA_QuitOnClose = 76, @@ -377,7 +345,6 @@ namespace Qt { WA_AcceptDrops = 78, WA_DropSiteRegistered = 79, // internal - WA_ForceAcceptDrops = WA_DropSiteRegistered, // ## deprecated WA_WindowPropagation = 80, @@ -397,9 +364,7 @@ namespace Qt { WA_LayoutUsesWidgetRect = 92, WA_StyledBackground = 93, // internal -#if QT_DEPRECATED_SINCE(5, 14) - WA_MSWindowsUseDirect3D Q_DECL_ENUMERATOR_DEPRECATED = 94, -#endif + // Formerly, 94 was WA_MSWindowsUseDirect3D. WA_CanHostQMdiSubWindowTitleBar = 95, // Internal WA_MacAlwaysShowToolWindow = 96, // Mac only @@ -413,7 +378,7 @@ namespace Qt { WA_NativeWindow = 100, WA_DontCreateNativeAncestors = 101, - WA_MacVariableSize = 102, // Mac only + // Formerly WA_MacVariableSize = 102, // Mac only WA_DontShowOnScreen = 103, @@ -431,9 +396,7 @@ namespace Qt { WA_X11NetWmWindowTypeNotification = 114, WA_X11NetWmWindowTypeCombo = 115, WA_X11NetWmWindowTypeDND = 116, -#if QT_DEPRECATED_SINCE(5, 14) - WA_MacFrameworkScaled Q_DECL_ENUMERATOR_DEPRECATED = 117, -#endif + // Formerly, 117 was WA_MacFrameworkScaled. WA_SetWindowModality = 118, WA_WState_WindowOpacitySet = 119, // internal WA_TranslucentBackground = 120, @@ -443,7 +406,7 @@ namespace Qt { WA_TouchPadAcceptSingleTouchEvents = 123, WA_X11DoNotAcceptFocus = 126, - WA_MacNoShadow = 127, + // Formerly, 127 was WA_MacNoShadow WA_AlwaysStackOnTop = 128, @@ -460,7 +423,7 @@ namespace Qt { enum ApplicationAttribute { // AA_ImmediateWidgetCreation = 0, - // AA_MSWindowsUseDirect3DByDefault = 1, + AA_QtQuickUseDefaultSizePolicy = 1 QT_TECH_PREVIEW_API, AA_DontShowIconsInMenus = 2, AA_NativeWindows = 3, AA_DontCreateNativeWidgetSiblings = 4, @@ -469,18 +432,28 @@ namespace Qt { AA_MacDontSwapCtrlAndMeta = 7, AA_Use96Dpi = 8, AA_DisableNativeVirtualKeyboard = 9, - // AA_X11InitThreads = 10, + AA_DontUseNativeMenuWindows = 10, AA_SynthesizeTouchForUnhandledMouseEvents = 11, AA_SynthesizeMouseForUnhandledTouchEvents = 12, - AA_UseHighDpiPixmaps = 13, +#if QT_DEPRECATED_SINCE(6, 0) + AA_UseHighDpiPixmaps Q_DECL_ENUMERATOR_DEPRECATED_X( + "High-DPI pixmaps are always enabled. " \ + "This attribute no longer has any effect.") = 13, +#endif AA_ForceRasterWidgets = 14, AA_UseDesktopOpenGL = 15, AA_UseOpenGLES = 16, AA_UseSoftwareOpenGL = 17, AA_ShareOpenGLContexts = 18, AA_SetPalette = 19, - AA_EnableHighDpiScaling = 20, - AA_DisableHighDpiScaling = 21, +#if QT_DEPRECATED_SINCE(6, 0) + AA_EnableHighDpiScaling Q_DECL_ENUMERATOR_DEPRECATED_X( + "High-DPI scaling is always enabled. " \ + "This attribute no longer has any effect.") = 20, + AA_DisableHighDpiScaling Q_DECL_ENUMERATOR_DEPRECATED_X( + "High-DPI scaling is always enabled. " \ + "This attribute no longer has any effect.") = 21, +#endif AA_UseStyleSheetPropagationInWidgetStyles = 22, AA_DontUseNativeDialogs = 23, AA_SynthesizeMouseForUnhandledTabletEvents = 24, @@ -489,7 +462,7 @@ namespace Qt { AA_DisableShaderDiskCache = 27, AA_DontShowShortcutsInContextMenus = 28, AA_CompressTabletEvents = 29, - // AA_DisableWindowContextHelpButton = 30, + AA_DontUsePopupWindows = 30, AA_DisableSessionManager = 31, // Add new attributes before this line @@ -630,7 +603,11 @@ namespace Qt { Key_twosuperior = 0x0b2, Key_threesuperior = 0x0b3, Key_acute = 0x0b4, - Key_mu = 0x0b5, + Key_micro = 0x0b5, +#if QT_DEPRECATED_SINCE(6, 11) + Key_mu Q_DECL_ENUMERATOR_DEPRECATED_X("This key was misnamed, use Key_micro instead") + = Key_micro, +#endif Key_paragraph = 0x0b6, Key_periodcentered = 0x0b7, Key_cedilla = 0x0b8, @@ -1001,6 +978,7 @@ namespace Qt { Key_Suspend = 0x0100010c, Key_ContrastAdjust = 0x0100010d, + // We can remove these two for Qt 7: Key_LaunchG = 0x0100010e, Key_LaunchH = 0x0100010f, @@ -1098,6 +1076,8 @@ namespace Qt { ALT = Qt::AltModifier, MODIFIER_MASK = KeyboardModifierMask, }; + Q_DECLARE_FLAGS(Modifiers, Modifier) + Q_DECLARE_OPERATORS_FOR_FLAGS(Modifiers) enum ArrowType { NoArrow, @@ -1305,7 +1285,8 @@ namespace Qt { DirectConnection, QueuedConnection, BlockingQueuedConnection, - UniqueConnection = 0x80 + UniqueConnection = 0x80, + SingleShotConnection = 0x100, }; enum ShortcutContext { @@ -1378,9 +1359,6 @@ namespace Qt { enum InputMethodQuery { ImEnabled = 0x1, ImCursorRectangle = 0x2, -#if QT_DEPRECATED_SINCE(5, 14) - ImMicroFocus Q_DECL_ENUMERATOR_DEPRECATED = 0x2, -#endif ImFont = 0x4, ImCursorPosition = 0x8, ImSurroundingText = 0x10, @@ -1397,6 +1375,7 @@ namespace Qt { ImAnchorRectangle = 0x4000, ImInputItemClipRectangle = 0x8000, + ImReadOnly = 0x10000, ImPlatformData = 0x80000000, ImQueryInput = ImCursorRectangle | ImCursorPosition | ImSurroundingText | ImCurrentSelection | ImAnchorRectangle | ImAnchorPosition, @@ -1462,6 +1441,7 @@ namespace Qt { enum LayoutDirection { LeftToRight, RightToLeft, + // ### Qt 7: make auto the first one (with value 0) LayoutDirectionAuto }; @@ -1535,9 +1515,6 @@ namespace Qt { ItemIsUserCheckable = 16, ItemIsEnabled = 32, ItemIsAutoTristate = 64, -#if QT_DEPRECATED_SINCE(5, 6) - ItemIsTristate = ItemIsAutoTristate, -#endif ItemNeverHasChildren = 128, ItemIsUserTristate = 256 }; @@ -1550,11 +1527,9 @@ namespace Qt { MatchStartsWith = 2, MatchEndsWith = 3, MatchRegularExpression = 4, -#if QT_DEPRECATED_SINCE(5, 15) - MatchRegExp Q_DECL_ENUMERATOR_DEPRECATED_X("MatchRegExp is deprecated. Use MatchRegularExpression instead") = MatchRegularExpression, -#endif MatchWildcard = 5, MatchFixedString = 8, + MatchTypeMask = 0x0F, MatchCaseSensitive = 16, MatchWrap = 32, MatchRecursive = 64 @@ -1563,9 +1538,6 @@ namespace Qt { Q_DECLARE_OPERATORS_FOR_FLAGS(MatchFlags) typedef void * HANDLE; -#if QT_DEPRECATED_SINCE(5, 0) - typedef WindowFlags WFlags; -#endif enum WindowModality { NonModal, @@ -1614,16 +1586,15 @@ namespace Qt { TitleBarArea // For move }; -#if defined(Q_COMPILER_CONSTEXPR) enum class Initialization { Uninitialized }; - static constexpr Q_DECL_UNUSED Initialization Uninitialized = Initialization::Uninitialized; -#else - enum Initialization { - Uninitialized + inline constexpr Initialization Uninitialized = Initialization::Uninitialized; + + struct Disambiguated_t { + explicit Disambiguated_t() = default; }; -#endif + inline constexpr Disambiguated_t Disambiguated{}; enum CoordinateSystem { DeviceCoordinates, @@ -1705,6 +1676,10 @@ namespace Qt { VeryCoarseTimer }; + enum class TimerId { + Invalid = 0, + }; + enum ScrollPhase { NoScrollPhase = 0, ScrollBegin, @@ -1742,6 +1717,12 @@ namespace Qt { PassThrough }; + enum class PermissionStatus { + Undetermined, + Granted, + Denied, + }; + // QTBUG-48701 enum ReturnByValueConstant { ReturnByValue }; // ### Qt 7: Remove me @@ -1785,6 +1766,7 @@ namespace Qt { Q_ENUM_NS(DayOfWeek) Q_ENUM_NS(CursorShape) Q_ENUM_NS(GlobalColor) + Q_ENUM_NS(ColorScheme) Q_ENUM_NS(AspectRatioMode) Q_ENUM_NS(TransformationMode) Q_FLAG_NS(ImageConversionFlags) @@ -1800,6 +1782,9 @@ namespace Qt { Q_ENUM_NS(SortOrder) Q_ENUM_NS(CaseSensitivity) Q_FLAG_NS(MatchFlags) + Q_ENUM_NS(Modifier) + Q_FLAG_NS(Modifiers) + Q_ENUM_NS(KeyboardModifier) Q_FLAG_NS(KeyboardModifiers) Q_FLAG_NS(MouseButtons) Q_ENUM_NS(WindowType) @@ -1829,10 +1814,11 @@ namespace Qt { Q_ENUM_NS(TimerType) Q_ENUM_NS(ScrollPhase) Q_ENUM_NS(MouseEventSource) - Q_FLAG_NS(MouseEventFlag) + Q_FLAG_NS(MouseEventFlags) Q_ENUM_NS(ChecksumType) Q_ENUM_NS(HighDpiScaleFactorRoundingPolicy) Q_ENUM_NS(TabFocusBehavior) + Q_ENUM_NS(PermissionStatus) #endif // Q_DOC } @@ -1851,7 +1837,6 @@ public: Pbuffer = 0x06, // GL pbuffer FramebufferObject = 0x07, // GL framebuffer object CustomRaster = 0x08, - MacQuartz = 0x09, PaintBuffer = 0x0a, OpenGL = 0x0b }; @@ -1878,6 +1863,154 @@ public: static bool activateCallbacks(Callback, void **); }; +class QKeyCombination +{ + int combination; + +public: + constexpr Q_IMPLICIT QKeyCombination(Qt::Key key = Qt::Key_unknown) noexcept + : combination(int(key)) + {} + + constexpr explicit QKeyCombination(Qt::Modifiers modifiers, Qt::Key key = Qt::Key_unknown) noexcept + : combination(modifiers.toInt() | int(key)) + {} + + constexpr explicit QKeyCombination(Qt::KeyboardModifiers modifiers, Qt::Key key = Qt::Key_unknown) noexcept + : combination(modifiers.toInt() | int(key)) + {} + + constexpr Qt::KeyboardModifiers keyboardModifiers() const noexcept + { + return Qt::KeyboardModifiers(combination & Qt::KeyboardModifierMask); + } + + constexpr Qt::Key key() const noexcept + { + return Qt::Key(combination & ~int(Qt::KeyboardModifierMask)); + } + + static constexpr QKeyCombination fromCombined(int combined) + { + QKeyCombination result; + result.combination = combined; + return result; + } + + constexpr int toCombined() const noexcept + { + return combination; + } + +#if QT_DEPRECATED_SINCE(6, 0) + QT_DEPRECATED_VERSION_X(6, 0, "Use QKeyCombination instead of int") + constexpr Q_IMPLICIT operator int() const noexcept + { + return combination; + } +#endif + bool operator<(QKeyCombination) const = delete; +private: + friend constexpr bool comparesEqual(const QKeyCombination &lhs, + const QKeyCombination &rhs) noexcept + { + return lhs.combination == rhs.combination; + } + Q_DECLARE_EQUALITY_COMPARABLE_LITERAL_TYPE(QKeyCombination) +}; + +Q_DECLARE_TYPEINFO(QKeyCombination, Q_RELOCATABLE_TYPE); + +constexpr QKeyCombination operator|(Qt::Modifier modifier, Qt::Key key) noexcept +{ + return QKeyCombination(modifier, key); +} + +constexpr QKeyCombination operator|(Qt::Modifiers modifiers, Qt::Key key) noexcept +{ + return QKeyCombination(modifiers, key); +} + +constexpr QKeyCombination operator|(Qt::KeyboardModifier modifier, Qt::Key key) noexcept +{ + return QKeyCombination(modifier, key); +} + +constexpr QKeyCombination operator|(Qt::KeyboardModifiers modifiers, Qt::Key key) noexcept +{ + return QKeyCombination(modifiers, key); +} + +constexpr QKeyCombination operator|(Qt::Key key, Qt::Modifier modifier) noexcept +{ + return QKeyCombination(modifier, key); +} + +constexpr QKeyCombination operator|(Qt::Key key, Qt::Modifiers modifiers) noexcept +{ + return QKeyCombination(modifiers, key); +} + +constexpr QKeyCombination operator|(Qt::Key key, Qt::KeyboardModifier modifier) noexcept +{ + return QKeyCombination(modifier, key); +} + +constexpr QKeyCombination operator|(Qt::Key key, Qt::KeyboardModifiers modifiers) noexcept +{ + return QKeyCombination(modifiers, key); +} + +#if QT_DEPRECATED_SINCE(6, 0) +QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +constexpr QKeyCombination operator+(Qt::Modifier modifier, Qt::Key key) noexcept +{ + return QKeyCombination(modifier, key); +} + +QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +constexpr QKeyCombination operator+(Qt::Modifiers modifiers, Qt::Key key) noexcept +{ + return QKeyCombination(modifiers, key); +} + +QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +constexpr QKeyCombination operator+(Qt::KeyboardModifier modifier, Qt::Key key) noexcept +{ + return QKeyCombination(modifier, key); +} + +QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +constexpr QKeyCombination operator+(Qt::KeyboardModifiers modifiers, Qt::Key key) noexcept +{ + return QKeyCombination(modifiers, key); +} + +QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +constexpr QKeyCombination operator+(Qt::Key key, Qt::Modifier modifier) noexcept +{ + return QKeyCombination(modifier, key); +} + +QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +constexpr QKeyCombination operator+(Qt::Key key, Qt::Modifiers modifiers) noexcept +{ + return QKeyCombination(modifiers, key); +} + +QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +constexpr QKeyCombination operator+(Qt::Key key, Qt::KeyboardModifier modifier) noexcept +{ + return QKeyCombination(modifier, key); +} + +QT_DEPRECATED_VERSION_X(6, 0, "Use operator| instead") +constexpr QKeyCombination operator+(Qt::Key key, Qt::KeyboardModifiers modifiers) noexcept +{ + return QKeyCombination(modifiers, key); +} +#endif + QT_END_NAMESPACE #endif // QNAMESPACE_H |