summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* xcb: Add experimental legacy support for native X11 paintingLouai Al-Khanji2017-04-2124-8/+8503
| | | | | | | | | | This commit revives the old native QPixmap and QPaintEngine implementations that were present in Qt4. The backing store supports regular raster windows in this commit. Support for render-to-texture widgets and OpenGL compositing will be added in a follow-up commit. Change-Id: I80a9c4f0c42a6f68f571dfee930d95000d5dd950 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QOffscreenSurface: add a constructor taking a parent objectGiuseppe D'Angelo2017-04-212-4/+19
| | | | | | | | Just like all QObject subclasses. Use a delegating constructor call to share the code from the existing constructor. Change-Id: Ia3c893ccc4c94883e61337f8952d80b665c17fbf Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Fix CSS line-height property multiplier value handlingJoni Poikelin2017-04-212-2/+13
| | | | | | | | | | | | | | | CSS style such as "line-height: 1.5;" should be used as a multiplier, but Qt uses it as percentage which makes line spacing way too small. To workaround this, convert it to percent and use as QTextBlockFormat::ProportionalHeight instead. [ChangeLog][QtGui][Important Behvior Changes] Changed CSS line-height property with multiplier to follow CSS spec Task-number: QTBUG-56848 Task-number: QTCREATORBUG-17683 Change-Id: Icc98f7c0d4d07542a220702c287f23fa450ef875 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* QStringView: mark as primitive typeMarc Mutz2017-04-211-1/+1
| | | | | | | | | | | | Every bit pattern of a QStringView is a Partially-Formed Object, and QStringViews are trivially copyable. That's what Q_PRIMITIVE_TYPE means, even if the docs are still talking about valid instead of partially-formed objects. Change-Id: I79d4f79fbab0ec2608620e88b6593e26686af304 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QStyleHints: Make showShortcutsInContextMenus a Q_PROPERTYFriedemann Kleint2017-04-201-0/+1
| | | | | | | | | | | | | Fixing qdoc warnings: qtbase/src/gui/kernel/qstylehints.cpp:367: warning: Cannot find 'QStyleHints::showShortcutsInContextMenus' specified with '\property' in any header file qtbase/src/gui/kernel/qstylehints.cpp:378: warning: No documentation for 'QStyleHints::showShortcutsInContextMenus()' Amends change c2c3452ba5b4c32d0c2d5df9193bf89986623ab5. Task-number: QTBUG-49435 Change-Id: I2db52f013c0fc46c80a1200667c19d63a2c9c0c4 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Use new Q_STDLIB_UNICODE_STRINGS and Q_COMPILER_UNICODE_STRINGSMarc Mutz2017-04-202-2/+2
| | | | | | | | | ... instead of the combination with Q_OS_WIN we used so far. This patch adapts ocurrences that are new in 5.10. Change-Id: If392df481713e56c776c2326e0e02324a3a80c89 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use list-initialization moreMarc Mutz2017-04-205-10/+5
| | | | | | | Fixes a few ugly code pieces I added over the years. Change-Id: I5c06b73e858add04ea184120c6df71720baf9be3 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QDateTime: replace home-grown version of qToStringViewIgnoringNull with the ↵Marc Mutz2017-04-201-10/+3
| | | | | | | real thing Change-Id: Ie71ed4f5c9a2bd0b14818f0f3cff4f88c2100546 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QStringView: fix position of Q_REQUIRED_RESULT macrosMarc Mutz2017-04-201-32/+32
| | | | | | | | ... to be compatible with the C++17 [[nodiscard]]. Change-Id: I60fb9b9077e8c59a03a212c73d4e6c814cc0357d Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QUuid: add fromString(QStringView/QLatin1String)Marc Mutz2017-04-203-63/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As for the formatting code, de-duplicate the parsing code by only parsing char*s, converting QChars to Latin-1 first in a small buffer. The QUuid(const char*) ctor performed no length checking, relying instead on the checks performed within _q_uuidFromHex(), which includes an implicit check for premature end (because NUL is not a valid token for the parser). The (QString) and (QByteArray) ctors did perform length checking. To the extent possible, this is removed, since it is handled by _q_uuidFromHex(). Failure cases need not be optimized. Only the QLatin1String overload needs to do some checking, because views in general are not NUL-terminated. The QStringView overload can just append a NUL when it converts to Latin-1. The only check I added to _q_uuidFromHex() is that for src == nullptr. It would otherwise be duplicated in several callers. While touching the internal functions, port to passing and returning by value. Saves 1.6KiB in text size on optimized GCC 6.1 Linux AMD64 builds, even though we added new API. Port some users to the new functions. Expand fromString() test. [ChangeLog][QtCore][QUuid] Added fromString(QStringView/QLatin1String). Change-Id: I519339419129550c86e0ea80514865cd6a768f5d Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-04-20128-817/+1080
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.h src/corelib/tools/qdatetime.h src/corelib/tools/qstring.h src/corelib/tools/qversionnumber.h src/plugins/platforms/android/qandroidplatformintegration.cpp tests/auto/corelib/tools/qhashfunctions/tst_qhashfunctions.cpp Change-Id: Iefd92a435e687a76cd593099e40d9a9620a1454d
| * Split Q_COMPILER_UNICODE_STRINGS: add Q_STDLIB_UNICODE_STRINGSMarc Mutz2017-04-203-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit bf2160e72cd8840a8e604438cbdc807483ac980a, we can rely on charNN_t support in all compilers except MSVC 2013, and since that commit, we use (in 5.10, not 5.9, yet) !defined(Q_OS_WIN) || defined(Q_COMPILER_UNICODE_STRINGS) when we only need charNN_t, the type, as opposed to its library support (u16string, char_traits<char16_t>, ...). This patch splits the Q_C_UNICODE_STRINGS macro into two, adding Q_STDLIB_UNICODE_STRINGS for when we need std::uNNstring, leaving Q_C_UNICODE_STRINGS for when we need just charNN_t support. In QDebug, when constructing a QChar out of a char16_t, cast to ushort first, since QChar(char16_t) was only officially introduced in Qt 5.10. [ChangeLog][Potentially Source-Incompatible Changes] The internal Q_COMPILER_UNICODE_STRINGS macro is now defined if the compiler supports charNN_t, even if the standard library does not. To check for availability of std::uNNstring, use the new Q_STDLIB_UNICODE_STRINGS macro. Change-Id: I8f210fd7f1799fe21faf54506475a759b1f76a59 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Move Q_REQUIRED_RESULT to its correct positionThiago Macieira2017-04-2028-288/+281
| | | | | | | | | | | | | | | | | | | | | | That's before the return type or static, inline, constexpr or such keywords (if any). Perl Script: s/^(\s+)(.*) Q_REQUIRED_RESULT(;)?(\s*\/\/.*)?$/\1Q_REQUIRED_RESULT \2\3\4/ Change-Id: I7814054a102a407d876ffffd14b6a16182f159e2 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * Don't disable Q_REQUIRED_RESULT with Clang and ICCThiago Macieira2017-04-202-2/+2
| | | | | | | | | | | | | | They're not affected by the GCC bug noted in the comment. Change-Id: I7814054a102a407d876ffffd14b69e8a8e2527f1 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * Disable precompiled headers for small modulesThiago Macieira2017-04-209-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Creating a precompiled header exclusively for a one- or two-file module is wasteful. The time that it takes to build the precompiled source is on the same order as a regular compilation, so enabling precompiled headers for those modules just makes the build slower. Also make it possible to override the precompiled header by just setting PRECOMPILED_HEADER to empty. Change-Id: I0e1a09998253489388abfffd14b5f221288c4826 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| * qgrayraster: use a cast to void to mark a variable as unusedGiuseppe D'Angelo2017-04-201-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not use a self-assignment, as that may trigger compiler warnings. Casting to void is also what Q_UNUSED is doing these days, but we can't use it here because qgrayraster.c does not include qglobal.h. Remove a 15-years old comment related to the self assignment. Found by clazy. Change-Id: I8cc92b7a1b0b5fb13824959740243e17606ec753 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Revert "Initialize QLoggingRegistry rules on first use, not qApp construction"Tor Arne Vestbø2017-04-193-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 47cc9e23a313d67a4a3107242f205d2473842021. We use QCoreApplication::applicationDirPath in the logging initialization to find a possible qtlogging.ini file. Because QCoreApplication::applicationDirPath requires a QCoreApplication instance this leads to a qWarning, which in turn leads to a recursive call to the logging initialization, and in turn to a recursive mutex deadlock. Task-number: QTCREATORBUG-18031 Change-Id: Ic75e1e8c062eb647991725378489bf87c9648cca Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Fix UB in QWidgetEffectSourcePrivate::detachOlivier Goffart2017-04-191-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete the QGraphicsEffect from the QWidget destructor instead of from the QWidgetPrivate destructor. The destructor of QGraphicsEffect still access methods of the QWidget, but the QObjectPrivate being destroyed from ~QObject, the pointer is no longer a QWidget. Fix warning with UB sanitizer in tst_QWidget::setGraphicsEffect qwidget_p.h:900:23: runtime error: member call on address 0x000001d822c0 which does not point to an object of type 'QWidget' 0x000001d822c0: note: object is of type 'QObject' 00 00 00 00 b0 46 5f 40 e5 7f 00 00 00 23 d8 01 00 00 00 00 f0 e6 00 44 e5 7f 00 00 00 00 74 47 ^~~~~~~~~~~~~~~~~~~~~~~ vptr for 'QObject' #0 0x7fe54767db76 in QWidgetEffectSourcePrivate::detach() #1 0x7fe548f29815 in QGraphicsEffect::~QGraphicsEffect() #2 0x7fe548f2a1b7 in QGraphicsBlurEffect::~QGraphicsBlurEffect() #3 0x7fe548f2a208 in QGraphicsBlurEffect::~QGraphicsBlurEffect() #4 0x7fe5475cd463 in QWidgetPrivate::~QWidgetPrivate() #5 0x7fe5475ce62c in QWidgetPrivate::~QWidgetPrivate() #6 0x7fe5400d0dda in QObject::~QObject() #7 0x7fe54763d411 in QWidget::~QWidget() #8 0x7fe54763d7f4 in QWidget::~QWidget() #9 0x4cc309 in QScopedPointerDeleter<QWidget>::cleanup(QWidget*) #10 0x4cc309 in QScopedPointer<QWidget, QScopedPointerDeleter<QWidget> >::reset(QWidget*) #11 0x4cc309 in tst_QWidget::setGraphicsEffect() Change-Id: I19c049e979cfce2adda908af8336cb4adac8f6c4 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Fix UB in QLayout::childEventOlivier Goffart2017-04-191-22/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can't just static_cast a child to QLayout, because the child might not be a QLayout, and even if it was, we might be called from the QObject destructor so we would not be a layout anymore. Instead we can just qobject_cast the deleted object to a QLayout and remove it from the layout with removeItem. This would not take in account the case where we would be called because the QLayout gets destroyed, so we handle this case from ~QLayout by removing ourself from the parent. Note that the comment in ~QLayout was wrong, as the layout gets destroyed explicitly from ~QWidget, not from ~QObject. Change-Id: I49c6f17a76f207b9d750b6e5d987469498b96b31 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * macOS: Initialize window geometry early on, instead of when creating NSWindowTor Arne Vestbø2017-04-191-2/+4
| | | | | | | | | | | | | | | | | | We don't need to defer to NSWindow creation before determining the initial window geometry, and we don't need to redetermine each time we re-create an NSWindow for a QCocoaWindow. Change-Id: Ie13380830b44e96670ff16513f29deef5f5ae313 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
| * Doc: Fix link errorsNico Vertriest2017-04-192-3/+3
| | | | | | | | | | | | | | | | qimage.cpp:2127: warning: Can't link to 'isDetached()' qmatrix4x4.cpp:1933: warning: Can't link to 'operator()()' Change-Id: I93a2ead9650faf139040173f8d3b24cfa1e730ae Reviewed-by: Martin Smith <martin.smith@qt.io>
| * winrt: Fix keyboard modifier statesOliver Wolff2017-04-191-11/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CoreWindow::GetAsyncKeyState returns flags and not enums so checking equality does not give the needed result. As seen in qwindowskeymapper.cpp key events that only contain a modifier key should not have the key itself as a modifier when calling handleExtendedKeyEvent. With the current approach the modifier states are the same as on desktop Windows. Task-number: QTBUG-58750 Change-Id: Ie0f3e1d3e8294e1a6b41c9223a7a5153306579f6 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| * winrt: Fix QKeyEvent::isAutoRepeatOliver Wolff2017-04-191-6/+10
| | | | | | | | | | | | | | | | | | | | CorePhysicalKeyStatus::KeyStatus does not give the information we are after so we have to keep track of "auto repeat" state of the keys ourself. Task-number: QTBUG-59232 Change-Id: I22aa185780e5fa1f7f3c23c2deb2a0dde0c4a582 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| * Fix PNGs saved from QImage transform of 8-bit imagesAllan Sandfeld Jensen2017-04-192-2/+2
| | | | | | | | | | | | | | | | | | | | | | Fixes two separate errors. QImage::transform was incorrectly adding colors to the color-table of the returned image when the converted image would not be indexed, and qpnghandler was looking at non-empty color- table instead of color format. Task-number: QTBUG-43708 Change-Id: Ife14b6428ca65ac7d3a0b36a89a73e56d64586b4 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * QLineEdit: Make the clear button always the leftmost buttonElvis Angelaccio2017-04-191-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QLineEditIconButton currently draws a fully transparent pixmap in its paintEvent() function, when the line edit is empty. This does not work when there is another trailing QAction that is visible even when the line edit has no text, as reported in QTBUG-59957. To fix this issue, make sure the clear button is always the leftmost button. Task-number: QTBUG-59957 Change-Id: I8a4f96aae07856aa0e1053ebb338ba9bdf052a16 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * QNetworkReplyHttpImpl - check 'isOpen' twiceTimur Pocheptsov2017-04-191-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | A signal emitted after the first 'isOpen' check on QNetworkReply can trigger a slot that aborts/closes our reply. So before we can append any data to reply's buffer, we have to re-check that we're still open. Task-number: QTBUG-59909 Change-Id: I781d5a4fd5fc30d485af63f45cf36c254378af64 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| * Fix build for -no-feature-cssparserStephan Binner2017-04-191-0/+2
| | | | | | | | | | Change-Id: I78b66e8a98458736c69c4955390a98f8889968ea Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * Fix warning for -no-feature-graphicseffectStephan Binner2017-04-191-0/+1
| | | | | | | | | | Change-Id: I0be9e4293dfcef3c144f4e998ea071336c4d56d3 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * Fix warning for -no-feature-gesturesStephan Binner2017-04-191-2/+2
| | | | | | | | | | Change-Id: Iaadc4e27ee2a75a8c053de4438ef74daaa48ee64 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * Fix warnings for -no-feature-texthtmlparserStephan Binner2017-04-192-0/+3
| | | | | | | | | | Change-Id: Ie757e4ecb9ced14bd809f56d2d3d09274fc3bc39 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * Doc: Hide QPA classesFriedemann Kleint2017-04-192-6/+3
| | | | | | | | | | | | | | Mark QPlatformGraphicsBuffer and QSystemTrayIcon as internal. Change-Id: I39e5b4f635fca21ab0544cd840a113514b6b1e99 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Add debug output for QScrollPrepareEvent and QScrollEventFriedemann Kleint2017-04-191-0/+14
| | | | | | | | | | Change-Id: If283cecbefdf20c80ce00f689003f6a0ed9fe42b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Initialize QLoggingRegistry rules on first use, not qApp constructionTor Arne Vestbø2017-04-183-4/+2
| | | | | | | | | | | | | | | | | | Allows categorized logging before QCoreApplication has been created, which otherwise would silently fail to output anything because the category would never be enabled, despite QT_LOGGING_RULES being set. Change-Id: Ia733105c5b6f28e22af511ced5271e45782da12b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * QGraphicsBlurEffect: Fix for high DPI scalingFriedemann Kleint2017-04-181-1/+5
| | | | | | | | | | | | | | | | | | Preserve the device pixel ratio in the various helper functions and when drawing. Task-number: QTBUG-60026 Change-Id: Ieac9360b00044b6aedd0d3e1ad6e3b16d436f20f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Doc: add missing doc for parametersNico Vertriest2017-04-182-5/+5
| | | | | | | | | | | | | | | | | | qhstspolicy.cpp:105: warning: Undocumented parameter 'flags' in QHstsPolicy::QHstsPolicy() qhstspolicy.cpp:105: warning: No such parameter 'includeSubDomains' in QHstsPolicy::QHstsPolicy() qnetworkaccessmanager.cpp:732: warning: Undocumented parameter 'knownHosts' in QNetworkAccessManager::addStrictTransportSecurityHosts() Change-Id: I24217d328df12febab30e19e2abd351e87007959 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
| * QGraphicsDropShadowEffect: Fix for high DPI scalingFriedemann Kleint2017-04-181-0/+2
| | | | | | | | | | | | | | | | Preserve the device pixel ratio. Task-number: QTBUG-60026 Change-Id: Ie818c582fe2c7b11ceb347b39cfbf7ea49361021 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Doc: Remove broken link to QWindowSystemInterface::registerTouchDevice()Leena Miettinen2017-04-182-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | Mention that it is a private function. Also mention using QTest::createTouchDevice() for adding simulated touch screens to autotests. Task-number: QTBUG-26647 Change-Id: I08c12225768e76b1b9e3fc0fda00af86d44ca766 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Bo Thorsen <bo@vikingsoft.eu> Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
| * QGraphicsColorizeEffect: Fix for high DPI scalingFriedemann Kleint2017-04-181-0/+1
| | | | | | | | | | | | | | | | Preserve the device pixel ratio. Task-number: QTBUG-60026 Change-Id: I91a1bda6ce4defd064ec7edfcea40ff192a9068f Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Doc: add missing specs about parametersNico Vertriest2017-04-182-1/+7
| | | | | | | | | | | | | | | | | | qopengltexture.cpp:3476: warning: Undocumented parameter 'layerCount' in QOpenGLTexture::setCompressedData() and QOpenGLTexture::setData() qimage.cpp:2127: warning: Undocumented parameter 'format' in QImage::reinterpretAsFormat() Change-Id: I17feb2256a29f3bb722d2de3a83b390abff85a35 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| * Doc: rephrase parameter description to avoid qdoc error messageNico Vertriest2017-04-181-4/+4
| | | | | | | | | | Change-Id: I79d446289b4450d2fcce097cf46d2cf7b6d969da Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| * Add debug operators for font database structs for easier debuggingTor Arne Vestbø2017-04-183-0/+46
| | | | | | | | | | Change-Id: Ice1b27ff93de2d369dc6b66c72a64eb05da5639c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-04-1810-32/+72
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.cpp Change-Id: I375fa4afa662fa411a15f212ebd5f2f0dffdba7f
| | * Fix undefined behavior in QSharedPointer::create()5.8Ihor Dutchak2017-04-171-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initialize a deleter for a new object, created by QSharedPointer::create(), only after the object is actually constructed. [ChangeLog][QtCore][QSharedPointer] Fixed undefined behavior when creating an object with QSharedPointer::create() and its conscructor throws an exception. Task-number: QTBUG-49824 Change-Id: I07f77a78ff468d9b45b8ef133278e8cdd96a0647 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| | * QMatrix4x4: fix aliasing problem in operator*=Marc Mutz2017-04-141-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When multiplying a QMatrix4x4 by itself, we were clobbering the very matrix we read from. Employ read-caching to avoid this aliasing problem. [ChangeLog][QtGui][QMatrix4x4] operator*=() now calculates the correct result even if the RHS and LHS are the same object. Change-Id: I8534d56cfdd62c336577125127f05173fcec2873 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
| | * Doc: updated QSyntaxHighlighter documentation and use QRegularExpressionSamuel Gaist2017-04-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The documentation of QSyntaxHighlighter still uses the deprecated QRegExp class. This patch updates the code samples as well as cleanup some typos. Change-Id: I87b525fddb560b7c5bb38f96d9aaceadb594f76c Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
| | * QLocale: do not test for Q_OS_MAC before including qglobal.hGiuseppe D'Angelo2017-04-121-2/+2
| | | | | | | | | | | | | | | | | | | | | Found by clazy. Change-Id: I66b6698c309720891db83626e18c5e1baca19091 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QFontconfigDatabase: properly parse desktop environment variableMarco Trevisan (Treviño)2017-04-121-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | $XDG_CURRENT_DESKTOP is defined as a colon-separated list of desktop strings, thus we can't check for equality, but split it and check if it contains the desktop environments we care about. Change-Id: Ia9ab0f28654a3e1a68b918794a079f3974f85642 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
| | * QtWidgets: Don't open submenus when mouse is moving between actionsBłażej Szczygieł2017-04-122-5/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | Don't set the current action during closing submenu when mouse moved more than one action in the menu to the top or to the bottom. Task-number: QTBUG-53215 Change-Id: I2383363bc48f644df046198662dfa4d080fe3f1d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Improve QStringBuilder docsMarc Mutz2017-04-121-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Mention you can build QByteArrays, too - Nicer list of types that can be used, separate for QByteArray and QString Change-Id: Ia91445f0cb4872bab12a55f4812c283e9c38dba4 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| | * Restore compatibility with Qt 5.7.0 and 5.6.1Thiago Macieira2017-04-122-13/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QSysInfo::productType() returned "osx" for all versions of macOS, even 10.12. Change 3e2bde35786 was incorrect. [ChangeLog][Important Behavior Changes] QSysInfo::productType() and QFileSelector behavior on macOS was restored to match what Qt used to return in version 5.7.0 and earlier. The behavior found in Qt 5.6.2, 5.7.1 and 5.8.0 is removed. [ChangeLog][Future Compatibility Notice] The identifiers that QSysInfo::productType() and QFileSelector will use to identify macOS systems will change in Qt 6.0 to match the Apple naming guidelines which will be current then. Task-number: QTBUG-59849 Change-Id: Ib0e40a7a3ebc44329f23fffd14b2b39392210c4f Reviewed-by: Jake Petroules <jake.petroules@qt.io>