summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Deprecate QStringViewLiteralMarc Mutz2019-08-106-16/+28
| | | | | | | | | | | | | | | | | As a macro, we can't directly deprecate it, but need to make it call something deprecated. That is a new ctor with a new enum type added. The type might be useful for other such ventures, so put it into qglobal.h Remove the QT_NO_UNICODE_LITERAL protection, as it's always false these days, and QT_UNICODE_LITERAL is unconditionally #defined a 20 lines above. [ChangeLog][QtCore][QStringView] Deprecated the (undocumented) QStringViewLiteral macro. Just use u"" or QStringView(u"") instead. Change-Id: I9141320225037e1bc6b7f920bf01a9d0144fdac2 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Refactor memory allocation for arguments of QMetaCallEventsVolker Hilsheimer2019-08-105-89/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two cases: In a BlockingQueuedConnection, QMetaCallEvent doesn't allocate memory and instead passes already existing pointers through. A QSemaphore is used to serialize data access between threads. So the constructor taking a QSemaphore can be simplified to only accept an existing arg array. In a QueuedConnection, QMetaCallEvent needs to make deep copies of the arguments, and memory needs to be allocated based on the number of arguments. The previous code put the burden of memory allocation on the code generating the event, while the memory was free'd by ~QMetaCallEvent. Instead, make it QMetaCallEvent's responsibility to allocate and free the memory as needed, and adjust the code generating QMetaCallEvents. We can allocate the memory for types and pointers to arguments in a single block, starting with the space for the array of void*, followed by the space for the array of integers to avoid byte alignment issues. By pre-allocating the space that's needed by three arguments, we can avoid all mallocs for the majority of QMetaCallEvents. Until this change has propagated through qt5.git, we need to keep the old API that is still used by QtDeclarative around. Once QtDeclarative has migrated to the new API, it can be removed. Change-Id: Id7359ffc14897237ea9672dabae9ef199a821907 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Warn about conflicting DESTDIR/TARGET combination in debug_and_releaseJoerg Bornemann2019-08-098-0/+81
| | | | | | | | | | | If a project has DESTDIR and TARGET set to fixed values, then the target paths conflict when doing debug_and_release builds. With this change we're detecting this situation and yield a warning. Fixes: QTBUG-2736 Change-Id: Ib163db3463322792ab9fa5b997285ac9fc9819ab Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* tst_qmake: Pass /nologo to jom like we do for nmakeJoerg Bornemann2019-08-091-1/+3
| | | | | Change-Id: Id9b2ac4dd7d591d471d3e21e8d78d4915620a2c1 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Give some TLC to QAppleRefCountedMarc Mutz2019-08-091-2/+10
| | | | | | | | | | - add conditional noexcept to move special member functions - use qExchange() in the move ctor implementation (turns a copy into a move) - separate the default ctor from the ctor that acquires a resource, then - overload the latter for rvalue payloads Change-Id: I6816143a94fe6a74cf0d02569b83a752a8da3089 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QTextDocument: add manual test for table border logicNils Jeisecke2019-08-099-0/+616
| | | | | | | | | | | | | | | | | | | | | | | | This adds a manual test for the QTextTable border logic. Two HTML files are bundled as resources: table-border-test.html: Contains various test cases for the border logic. table-border-test-header.html: Contains a test case for printing a table with a repeated header. The test application allows: - editing - previewing - printing - opening the HTML in the system browser (via temp. file) It is possible to edit the HTML with "live preview" so new test cases can easily be implemented. Change-Id: Ic88488bc8b7dd74d5c03c3363f55840423462325 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Extract a large format string as a module constant valueSoroush Rabiei2019-08-081-14/+15
| | | | | | | | | The template for the "This is a generated file" notice made a clumsy intrusion in the code in which it appeared, so split it out as a constant of the module and access it by name where it's used. Change-Id: Ic4dfb8e873078c54410b191654d6c21d082c9016 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QMakeLocalFileName: remove mutable specifier from real_nameJoerg Bornemann2019-08-081-1/+2
| | | | | | | There is no need to have both QString member mutable. Change-Id: I592963b7c66e564b918d750fb47e903df0b0f9bc Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* doc: Fix text formatting in the CSS Properties tableShawn Rutledge2019-08-081-1/+1
| | | | | | | | Every property name was already monospace, except this one. Change-Id: I69f4e7cd67e6d4ab2a25b4f1d251ec5a2c925098 Reviewed-by: Nils Jeisecke <nils.jeisecke@saltation.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QTextDocument: allow css-styling of table cell bordersNils Jeisecke2019-08-084-60/+1269
| | | | | | | | | | | | | | | | | | | | This allows to set the width, style and color of each table cell's edge (left, right, top, bottom). Setting the table's border-collapse mode will disable explicit cell spacing. The basic CSS border collision rules are applied (wider border wins, vertical over horizontal). Setting the table's border width to a value >= 1 and enabling borderCollapse will now draw a simple and clean table grid (1px) with an outer border of the specified width and color. [ChangeLog][QtGui][QTextDocument] Added CSS style table cell border formatting with border-collapse mode. Change-Id: I324d82284802df4c88c13c5b902fec1f4768b67e Fixes: QTBUG-36152 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Minor QSet doc cleanupAlex Blasche2019-08-081-3/+0
| | | | | | | | | C++11 is a requirement since Qt 5.7. There is no point in highlighting the condition anymore. Change-Id: I0f7d6044db2528d3b5264c324cf71156ec833775 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QTextDocumentLayout: Refactor pagination logic for bordersNils Jeisecke2019-08-081-12/+40
| | | | | | | | | | | The new helper class BorderPaginator encapsulates the existing pagination logic for drawing correctly clipped borders on all pages a cell appears on. This will allow reuse of that logic for drawing CSS-style borders. Change-Id: I47ed4a8802513aef30d97f14591c7d4716bfdbb8 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QTextDocumentLayout: Fix regression in table column width calculationNils Jeisecke2019-08-071-0/+6
| | | | | | | | | | | | | 87748cc18e6a0d9e65933aa2462dc78ab8f9f22e introduces rounding of column widths to avoid table border render artifacts. For variable columns we must make sure that the maxWidth (= unwrapped content width) is not rounded down as this can cause erroneous wrapping of the content at rendering time. Fixes: QTBUG-43589 Change-Id: Iee155702a12374116a63050e5025df91f097a8e4 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Port users of QDBusAbstractInterface::(async)callWithArgumentList() to new ↵Marc Mutz2019-08-076-44/+27
| | | | | | | | | | | | | | variadic (async)Call() Except in the auto-generated files. Required to add a cast operator from QDBusObjectPath to QVariant, as the variadic call() uses QVariant(arg) instead of QVariant::fromValue(arg). [ChangeLog][QtDBus][QDBusObjectPath] Added explicit cast operator to QVariant. Change-Id: I3f3004f7b9300a6340d27488f5b97981cbab3c24 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QDateTimePrivate: inherit QSharedData and other cleanupsMarc Mutz2019-08-073-17/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't manage the ref-count yourself, as this requires the code to use the QAtomic copy ctor, which we want to remove going forward. Using QSharedData, we can let the compiler write the code for us. Since 'ref' this way moves to the first spot in the list of effective members, creating a 4B hole between itself and 'msecs', swap 'status' and 'msecs' to fill the hole: offset: 0 8 16 24 | | | | without v v v v adj.mnt: |*R*| | msecs | S | U | TZ.... before: | msecs | S | U |*R*| | TZ... after: |*R*| S | msecs | U | | TZ.... This keeps the padding out of the critical first word, which improves latency. That said, for accessing the members the old layout surely was optimal. This layout optimizes copies and pessimizes access to 'msecs' on 32-bit platforms without the Critical Word First optimization. Requires adjustments to tst_toolsupport and the qhooks version. Also default members using NSDMI, consequently drop the manual default ctor. Change-Id: I3c48e68694ad29b28a13aa47ea0f283fae52edd7 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Require opt-out for using QLinkedListMarc Mutz2019-08-072-1/+4
| | | | | | | | | | | | | | | Now that all QLinkedList uses are removed from Qt, make sure QT_NO_LINKED_LIST is set by default for Qt modules, so new modules don't need to explicitly specify it in their .qmake.conf. Modules can still opt out of the QLinkedList ban by adding DEFINES -= QT_NO_LINKED_LIST to their .qmake.conf. Change-Id: I34b7ab1c009795649bb7b4f1e7493556eafadd5a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QPoint/F: add transposed()Marc Mutz2019-08-076-4/+45
| | | | | | | | | | | | For symmetry with QSize and QRect and because there were some users in Qt. Port those users. [ChangeLog][QtCore][QPoint/QPointF] Added transposed(). Change-Id: If4f23dbcf7d67983a6b1885e0d1d538115b49e2b Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QVector/QList/QLinkedList/QVarLengthArray/QSet: add missing deduction guidesMarc Mutz2019-08-0715-0/+186
| | | | | | | | | | | Amends 2e1763d83a1dacfc5b747934fb77fa7cec7bfe47. The new range ctors need deduction guides, since the compiler can't deduce the value_type from a pair of iterators. Change-Id: I3ec1e5f91305b317c443b6a70246be416b55bad9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* CMake: Fix some failing cmake testsKyle Edwards2019-08-073-2/+8
| | | | | Change-Id: I74f2bf270726feba8367ea222a3c669110c99e08 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Unify and simplify the QHostInfo::lookupHost overloadsVolker Hilsheimer2019-08-072-127/+92
| | | | | | | | | | | | | | | | | | | | The three cases - with classic slot, with functor and context object, and with lambda - are all doing the same work, they just differ in how they signal the application code about the results. The detour through an explicitly posted QMetaCallEvent is needed if we have a functor or lambda; making sure that the temporary QHostInfoResult object lives in the right thread guarantees that the event is received in the correct thread, so we can directly call the functor (as long as the context object is still alive). Since we guarantee that the QHostInfoResult object lives in the thread of the receiver, we can simply emit the signal for old-style signal/slot connections; the regular signal/slot mechanism will do the work for us. Change-Id: I584df17df879af01c653e354490c4691dbedd3fa Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* rhi: Print the type of the resources in the leak checkLaszlo Agocs2019-08-071-2/+38
| | | | | | | | | | Also clarify what this check includes (backends are expected to register only QRhiResource instances that actually own native graphics objects - the ones that don't are not included in the leak checking) Change-Id: If0f43b302b148f043391fa7fd7bb77cfc8d93b79 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Simplify QDate::weekNumber() by looking at the right day of the weekEdward Welbourne2019-08-071-27/+14
| | | | | | | | | The Thursday in the same week has the same week-number and determines the right year to use for the week. So calculate its week-number and save a whole lot of complications. Change-Id: I9c28267e6083afdd04a15245e1609c64beb82b37 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Mark QDBusError::ErrorType a Q_ENUMThiago Macieira2019-08-051-0/+3
| | | | | | | | | Easier qDebugging. Fixes: QTBUG-77183 Change-Id: Ife213d861bb14c1787e1fffd15b63a1f8d64cc30 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QTest: add toString(QBitArray)Thiago Macieira2019-08-051-0/+11
| | | | | Change-Id: Ife213d861bb14c1787e1fffd15b70598cda8baf3 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Remove the unused includes for QSignalMapperSona Kurazyan2019-08-052-2/+0
| | | | | Change-Id: I13f19fadc7ad3fed8eb0a6718244cc8880e91be9 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Remove special handling of DLLDESTDIR on WindowsJoerg Bornemann2019-08-031-8/+2
| | | | | | | | | | In MakefileGenerator::initOutPaths() we ensure that directory variables end with a directory separator, except for DLLDESTDIR. There doesn't seem to be a valid reason for this exception. Remove it for the sake of simplifying the code base. Change-Id: I60eb01b410161e6e1d147d76f044f5140a7573bd Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Remove QMake's -createstub optionJoerg Bornemann2019-08-038-39/+0
| | | | | | | | | This undocumented option was introduced in 69c22301806b56d56cbe5f5076b889ba98e41a2b (old internal history, 2006) to prepare some unspecified change to configure that was never done. Change-Id: I60de731ac9bc6f6424c57574e59e9f6b4f6c5eb3 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Thou Shalt Not Specialize std Function TemplatesMarc Mutz2019-08-033-27/+4
| | | | | | | | | | | | | | | (or forward-declare std types) (with apologies to Mr Walter Brown) This applies the changes to our other smart pointers that a0c4b6f34546bdd22167a76a0540d37e9a37c0cf applied to QSharedPointer, with the same rationale: wg21.link/p0551. It also fixes a fwd declaration of std::function, including <functional> instead. Rationale: wg21.link/p684r0. Change-Id: If275af91f6eac15eb418b200ac7d08ba084a6130 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Add an easier way to change colorspacesAllan Sandfeld Jensen2019-08-024-22/+154
| | | | | | | | | | Adds setters for transfer-functions and primaries. This allows us to remove use of private QColorSpace API from the PNG handler. Change-Id: Ieeff81c813c253649500acd1e53f35247b872325 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* rhi: Add a note about size to newBuffer()Laszlo Agocs2019-08-022-4/+11
| | | | | | | Also make sure the gl backend is consistent with the other three. Change-Id: I2f6b783f5fa474c94ede460f5d7ac6fe8129a4f6 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: gl: Add support for bool members in uniform blocksLaszlo Agocs2019-08-021-0/+12
| | | | | | | | | Note that SPIRV-Cross does not translate 'bool' to GLSL versions that do not have uint. So in practice we will still need to use 'int' instead in shaders that also target old GL versions. Change-Id: I070f5414fe761796ab92937034b7182cdfb73a14 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* rhi: Move info prints to categorized loggingLaszlo Agocs2019-08-026-19/+53
| | | | | | | | | | | Following the Quick scenegraph (qt.scenegraph.*), we now have qt.rhi.general. Other categories may get added later. This does not change the printing of real errors, those will continue to use qWarning(). Change-Id: Id95416fc82ba8add9527212e431bcbd47d416f1a Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Improve our color space terminologyAllan Sandfeld Jensen2019-08-026-100/+104
| | | | | | | | | | | | | | | Replace our use of 'gamut' with 'primaries'. One is the axes of the color space, the other the volume of representable values. For the currently supported color spaces those are mostly equivalent, but when we later add support for scRgb, this would be misleading as it has the same primaries as sRGB but a much wider gamut, and we would like to use the same primaries/"gamut" id for it. Also few people would know what "the sRGB gamut" is, but "the sRGB primaries" is easily googable. Change-Id: I3348ccaae27a071ec77a4356331b9bbbf92e0d19 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix Makefile re-generation for debug_and_release buildsJoerg Bornemann2019-08-021-0/+12
| | | | | | | | | | | | | | | | Re-generation of the Makefile depends on a correctly set up QMAKE_INTERNAL_INCLUDED_FILES variable. In debug_and_release builds this variable is set up for Makefile.Debug and Makefile.Release, but not for the meta Makefile. However, that's where the Makefile re-generation target is located. We now collect the contents of QMAKE_INTERNAL_INCLUDED_FILES for Makefile.Debug/Release and use that for the meta Makefile. Fixes: QTBUG-13334 Change-Id: I6124a91447d5c54d51680e23570c4e97f44e6a73 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Clean up documentation of deprecated APIs from QApplicationSona Kurazyan2019-08-011-41/+2
| | | | | | | | | | Build docs for deprecated APIs conditionally, based on deprecation version. Remove the docs of methods deprecated since 5.0.0, these methods are not compiled anymore. Change-Id: If9302eecc8b3fff4a27c2e4a66ac102add7d66c5 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove usages of deprecated APIs of qtbase/widgetsSona Kurazyan2019-08-0121-108/+120
| | | | | | | | | | | | | | | | | | | | | | - Replace the usages of deprecated APIs by corresponding alternatives in the library code and documentation. - Build docs for deprecated APIs conditionally, based on deprecation version. Remove the docs of methods deprecated since 5.0.0, these methods are not compiled anymore. - Modify the tests to make them build when deprecated APIs disabled: * Make the the parts of the tests testing the deprecated APIs to be compiled conditionally, only when the corresponding methods are enabled. * If the test-case tests only the deprecated API, but not the corresponding replacement, add tests for the replacement Task-number: QTBUG-76491 Task-number: QTBUG-76540 Task-number: QTBUG-76541 Change-Id: I6aaf0a1369c479fb880369a38f2b8e1e86b46934 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Improve the keypadnavigation manual testSona Kurazyan2019-08-011-21/+16
| | | | | | | | - No need to use QSignalMapper here, replace its uses with lambdas. - Replace index 'for' loop with iterator loop, to simplify the code. Change-Id: Ide3d2db99a074c0233eb5c2fd7a9b217d804973f Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Un-deprecate QSignalMapperSona Kurazyan2019-08-012-10/+4
| | | | | | | | | | From the comments on QTBUG-73407 and the last comments on 29bcbeab90210da80234529905d17280374f9684, it seems like there are still use-cases when QSignalMapper is useful. Change-Id: I8402286cb8a395a4601cda8a4cdda51f19aef073 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Port users of get{Contents,Text}Margins() missed first time aroundMarc Mutz2019-08-014-20/+23
| | | | | | Done-with: Sona Kurazyan <sona.kurazyan@qt.io> Change-Id: I5b584cbe468429c53c2d661a0d7957d74e7ad691 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QTestLib: Speed up QCOMPARE for QStringFriedemann Kleint2019-08-014-0/+120
| | | | | | | | | | | | Add overloads for qCompare() for QStringView making use of the fast formatting helper introduced by 94aa350621e8a5c4ad3b438c10fc1c0a9ed3bc8a for int. Speeds up the bug report example by a factor of 3..4. Task-number: QTBUG-38890 Change-Id: Icc706618b2f1d23b37d354a04d4e1d1cc4b5aee3 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Conditionally disable parts of the tests testing the deprecated APIsSona Kurazyan2019-08-012-2/+4
| | | | | | | Somehow missed these during my first iteration. Change-Id: Iaef0ab84d9320a98f49ec071c93cd6f2907d92c3 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix QColorTransform memory leakAllan Sandfeld Jensen2019-08-011-0/+1
| | | | | | | Introduced recently when the smart-pointer was made manual. Change-Id: I29a041631e94a8e131dd29dae32975d68b386e00 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Remove the remaining usages of deprecated APIs of qtbaseSona Kurazyan2019-08-015-3/+14
| | | | | | | | | This change removes the leftovers form other cleanup commits. Task-number: QTBUG-76491 Change-Id: I61440f87c5a280f9666b78e19aac4d8ac603767e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* tst_QMenu: Eradicate Q_FOREACH loopsMarc Mutz2019-08-011-4/+3
| | | | | | | In two cases, we now detach. ¯\_(ツ)_/¯ This is test code. Change-Id: I244f5e20dd923281049f38b76366163c16b6498c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QResource: consistently cache resourceList()Marc Mutz2019-08-011-8/+10
| | | | | | | | | | | | | | | | | | Each call to reourceList() uses atomic operations to check whether resourceGLobalData has not expired, yet. Some functions already cached the value, but then went on to use the function directly afterwards. In some cases, this was due to the cached value being a pointer-to-const and the function later deciding to mutate the list. But all the code is safe from detaches, so this distinction need not be made. Standardize on caching, and using the cached value, except in functions which call it only once. Change-Id: I79780b990da539bf7beaa8104e13cb8187f84812 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.13' into dev"Qt Forward Merge Bot2019-08-017-9/+20
|\
| * Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-08-017-9/+20
|/| | | | | | | Change-Id: I4505ec6fe17a1aa2c8d1e6576234d06a34eb9f99
| * QAbstractItemView: refine documentation for SingleSelectionChristian Ehrlicher2019-07-311-1/+1
| | | | | | | | | | | | | | | | | | Since Qt5.1 it is possible to deselect the current selected item in SingleSelection mode when pressing the Ctrl key during the click but this was not mentioned in the docs. Change-Id: I86652308215bf218ea959f869334b6077e4634f9 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| * Fix erroneous missing-cmake-tests errorsSimon Hausmann2019-07-311-1/+1
| | | | | | | | | | | | | | | | | | After commit 9c7ebd191b9862c28e9c96a511ec2878b7a3591d, qmake would complain about missing cmake tests even for internal modules that have no application side C++ linkage that needs testing. Change-Id: I23b23c81dbe6be2b6da5672cbd7b8f8454ec2f66 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * Fix assert in QPainterPath after clear()Eirik Aavitsland2019-07-313-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The newly introduced clear() method left the path in an undefined state: d_ptr allocated, but no elements. The elements vector is otherwise never empty, since ensureData() inserts a dummy initial moveTo element. Fix by making sure that clear() leaves the path in the same state as ensureData() (i.e. "empty" but not "null"), except possibly more capacity allocated in the elements vector. Fixes: QTBUG-76534 Change-Id: I7ad8b312913f5eb6e22023f5d2fd873e54b1e23c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>