summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Avoid endless recursion when inflating gzipRobert Loehning2020-07-291-3/+5
| | | | | | | Fixes: oss-fuzz-24146 Pick-to: 5.12 5.15 Change-Id: I52a974e6a0694fb4afb50d932b2e99917c3034b2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Return nullptr instead of 0Robert Loehning2020-07-241-1/+1
| | | | | | Pick-to: 5.12 5.15 Change-Id: I200214f90ce399034dabc61b00d20f7def8d923d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix support for pattern brushes in svg generatorEirik Aavitsland2020-07-211-1/+1
| | | | | | | | | A typo had left a stray semicolon in the id string. Fixes: QTBUG-84607 Pick-to: 5.15 Change-Id: I8bd3e68ec2184a238ea949d555f88abb14cff2dc Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Don't divide by zeroVolker Hilsheimer2020-07-171-0/+3
| | | | | | | | Fixes: oss-fuzz-23731 Pick-to: 5.15 5.12 Change-Id: Ib21a32a30f7a204d263e6710f17567d91c6aae79 Reviewed-by: Robert Loehning <robert.loehning@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix stack overflow in dtor of QSvgTinyDocumentRobert Loehning2020-07-151-1/+10
| | | | | | | | | | Add a maximum to how many unfinished elements will be parsed by QSvgHandler. Fixes: oss-fuzz-24000 Pick-to: 5.15 5.12 Change-Id: I4cea0500d2bc503d2c509d091300dd1117170299 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Port QtSvg from QStringRef to QStringViewKarsten Heimrich2020-07-023-176/+138
| | | | | | | Task-number: QTBUG-84319 Change-Id: I6358030d1d7e0e023453edea10da535707320ea4 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QXmlStreamStringRef usage hereLars Knoll2020-07-022-10/+10
| | | | | | | Simply using a QString is easier. Change-Id: I4088a2230a926fc125e3444da2a3763ce1317ce3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Update docs with cmake package informationNico Vertriest2020-06-251-0/+1
| | | | | | Task-number: QTBUG-85179 Change-Id: I109466030fe0beddc9706229659a2d775f4262d1 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Add ; to Q_UNUSEDLars Schmertmann2020-06-231-5/+5
| | | | | | | | | This is required to remove the ; from the macro with Qt 6. Task-number: QTBUG-82978 Change-Id: I24cc0f6735ddd8fb2444bc3bb4e7b202e8bbb43f Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
* Add error handling to color parsingAllan Sandfeld Jensen2020-06-231-19/+22
| | | | | | | | | | Also fixes undefined shift of negative values. Fixes oss-fuzz 23644 Pick-to: 5.15 5.12 Change-Id: I08c998ebf2217cb8dc50fcb805603e01e67ad64b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix stack overflow in QSvgHandler::resolveGradientsAllan Sandfeld Jensen2020-06-232-5/+7
| | | | | | | | | | Add a maximum to how deep it will nest. Fixes oss-fuzz 23643 Pick-to: 5.15 5.12 Change-Id: I6183c04f65a539a6c7df42bc7346a86ee58aca6c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix oom in QSvgTinyDocument::loadAllan Sandfeld Jensen2020-06-231-0/+6
| | | | | | | | | | | Avoid overflowing the size integer. Fixes ozz-fuzz 23606 Pick-to: 5.15 5.12 Change-Id: Iaae2c1e78e59737bba0e34791de4a3a92677f319 Reviewed-by: Robert Loehning <robert.loehning@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Use QRect::isEmpty instead of QRect::isNullAllan Sandfeld Jensen2020-06-221-5/+5
| | | | | | | | | | | Otherwise we can end up processing empty rects, and get divisions by zero. Fixes oss-fuzz issue 23633. Pick-to: 5.15 5.12 Change-Id: I0415462712792cb6a00eadd510b1688e859c419c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Handle empty rectsAllan Sandfeld Jensen2020-06-221-10/+15
| | | | | | | | | | | | Avoids a division by zero, also we don't appear to support auto sizes, so width and height are required attributes. Fixes oss-fuzz issue 23588. Pick-to: 5.15 5.12 Change-Id: Ib3474c2ed4409977f6ffcf73088956c6c59ce4ad Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Robert Loehning <robert.loehning@qt.io>
* Fix build after removal of QStyleOption::init in qtbaseVolker Hilsheimer2020-06-221-1/+1
| | | | | | | | | Use QStyleOption::initFrom instead. Align with qtbase 26a226630443a20bb2d3015431c019614e33a061. Change-Id: I244f4c51733dd97df37f3577debde4086721ab7b Reviewed-by: Liang Qi <liang.qi@qt.io>
* Use QList instead of QVectorJarek Kobus2020-06-087-32/+32
| | | | | | Task-number: QTBUG-84469 Change-Id: I8c3e80c77422abeb23fff747bf4ca479ff0d35b3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Use exported highlighter from QtWidgets rather than duplicating codeVolker Hilsheimer2020-06-021-59/+3
| | | | | Change-Id: Ib868993fd9a205c9b7d05df74fedbcdb953b4712 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move QSvgWidget and QGraphicsSvgItem into separate moduleVolker Hilsheimer2020-05-2914-46/+149
| | | | | | | | Long live QtSvgWidgets. This makes QtSvg independent of QtWidgets. Fixes: QTBUG-41884 Change-Id: I421d27d35b651ee8cdf1a5280d5594b82359ddab Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove QTextCodec dependency from QtSvgLars Knoll2020-05-151-4/+0
| | | | | | | QTextStream writes in UTF-8 by default now anyway. Change-Id: Idb94484b888bfe21231fe3f34b33eaab1d33ef78 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-03-213-5/+8
|\ | | | | | | Change-Id: I3b34cd3eea8dba0047a8eebe36f3caeef0195069
| * Merge remote-tracking branch 'origin/5.14' into 5.15v5.15.0-beta4v5.15.0-beta3Qt Forward Merge Bot2020-03-183-5/+8
| |\ | | | | | | | | | Change-Id: Ic4b8abc44f58b3d5d34cddf2743d0d172df4a374
| | * Strip the quotes around the font familyAndy Shaw2020-03-103-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to changes in how QFont handles a family it should be given the whole string without quotes so it can find the family name correctly. Additionally, this changes it to use setFamilies instead of setFamily to make this more future-proof. Fixes: QTBUG-81926 Change-Id: I659950cf244c1f7a1a5dae6e7b0e136cfe274d47 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* | | CMake: Regenerate some of projects to be up-to-dateAlexandru Croitor2020-03-064-3/+15
| | | | | | | | | | | | | | | Change-Id: I7d490ab372a169de653f6be9702123ddd647c04c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | CMake: Handle zlib dependency correctlyAlexandru Croitor2020-03-062-3/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately whenever a module or plugin uses zlib, the .pro file contains a copy-pasted conditional scope when to use system zlib and when to use the Qt bundled zlib. The pro2cmake script handles the linking part, but not the find_package part. We need to explicitly search for the correct package depending on whether system zlib feature is on or off, and also make sure not to search for the system one in case it already exists (can happen in static builds). Change-Id: I9c0d678815e4dc0f8e239c3b4667a375aeb757c1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.15' into devSimon Hausmann2020-03-053-12/+2
|\ \ \ | |/ / | | | | | | Change-Id: I4bbe7513984fe00c90e5fa897c9eebab61d1dc5e
| * | Remove overridden QSvgIOHandler::name()Shawn Rutledge2020-03-032-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | We will remove the virtual base class function in Qt 6. For now, name() returns format(). Change-Id: Iee5bd4194d23178b3d8b602950cc5c01d097d44b Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * | Use Qt::SplitBehavior in preference to QString::SplitBehaviorEdward Welbourne2020-03-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step closer to that goal. Change-Id: Ieabf1eeb03b682f06344d0373de036f8f4534042 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.15' into devSimon Hausmann2020-03-022-1/+18
|\ \ \ | |/ / | | | | | | | | | | | | | | | Conflicts: examples/svg/svg.pro Change-Id: I186ffe58bd314b505060b2ef5b090503d5a59618
| * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-02-292-1/+18
| |\ \ | | |/ | | | | | | Change-Id: Ib7854f4ed3622f8545af5fa323350787229de921
| | * Restrict nested use nodes processedAllan Sandfeld Jensen2020-02-262-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To avoid exponential blow up, limit the number of use nodes processed under a certain depth. This should still allow the common use of many shallow uses, but limit anything dangerous. Change-Id: I3af6dacb61c68350876fb03f056f02a287ea4e33 Fixes: QTBUG-82153 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Regenerate qtsvgwip/cmakeAlexandru Croitor2020-02-124-9/+18
| | | | | | | | | | | | | | | | | | Change-Id: I6f444b939e14263a5f9f4ac7fdfcd0f45ccaa453 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2020-02-1210-56/+108
|\ \ \ | | | | | | | | | | | | Change-Id: I35cfe1a52ec4a02dccc0895e3b4a40bd2ffe7295
| * | | Get rid of QMatrixJarek Kobus2020-02-062-33/+0
| |/ / | | | | | | | | | | | | | | | Task-number: QTBUG-81628 Change-Id: I31f5ffeff1e20f2c77a67325e58a0522d25cb1b7 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * | Add API to enable opt-in aspect ratio feature in QSvgRendererEirik Aavitsland2020-01-284-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QSvgRenderer] Introduced aspect ratio mode property, so that rendering may be set to preserve the view box aspect ratio. Task-number: QTBUG-81259 Change-Id: I9802788cdaf2c30974c1ffc34ad5b67cdc74ed57 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-281-7/+8
| |\ \ | | |/ | | | | | | Change-Id: I987599c388f414928aabf6a193a8250c27f4f60d
| | * Revert the keep-aspectratio feature for 5.14.1v5.14.15.14.1Eirik Aavitsland2020-01-161-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was introduced as non-optional behavior for 5.14.0, but caused many regressions. This patch reverts that, and instead prepares for introducing it as an opt-in feature in Qt 5.15. [ChangeLog][QSVGRenderer] In Qt 5.14.0, rendering would keep aspect ratio implied by the viewbox, independently of the specified target area. This caused many regressions with existing code, so is reverted now in 5.14.1. The feature will instead be available as an opt-in in Qt 5.15. Task-number: QTBUG-81259 Change-Id: I3efa2db864eb80ee00e8a067e56d9912bab36442 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
| * | Don't use deprecated QMatrix class anymoreJarek Kobus2020-01-178-30/+67
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-46653 Change-Id: I9944b62141d7054e3935000a819bebc5fd54df6c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * | Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2020-01-072-10/+10
| |\ \ | | |/ | | | | | | Change-Id: If6bf34ca3216ab9e0866d8c4eea7c4e92a7f3f4d
| | * Fix yet another viewbox scaling issue, for render to boundsEirik Aavitsland2020-01-032-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The recent introduction of keepAspectRation scaling led to wrong output (outside bounds) in the case of an explicitly specified target bounds rect, i.e. QSVGRenderer::render(QPainter *p, QRectF bounds). Fix by reverting to old code path in this case, i.e. allow the user to override the keepAspectRatio behavior by explicitly specifying target bounds. As a driveby, also fix the keepAspectRatio code path in case of a target rect having non-zero x/y coordinates. Now the fix above means that this will never happen in the code as it stands, but it may come in handy later. [ChangeLog][QSVGRenderer] From Qt 5.14.0, normal rendering will keep aspect ratio implied by the viewbox. The render() methods taking an explicit target bounds QRectF parameter can now be used to override that behavior. They will scale the output to the bounds while ignoring aspect ratio, as was the default rendering prior to 5.14.0. Fixes: QTBUG-80888 Change-Id: I399b05ca50d290b8e4b01bdc47b5b6f74c890c9a Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
| * | Fix endl usage to contain prefixes and bump version to 6.0.0Alexandru Croitor2019-12-061-26/+26
| | | | | | | | | | | | | | | | | | Change-Id: Ia10879666a87dc4db596b75cfbf654379e75041b (cherry picked from commit 5c298ef5bea0930b68263ba84194250dbb9d26a9) Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | Avoid initializing QFlags with 0 or nullptrFriedemann Kleint2019-11-252-5/+4
| |/ | | | | | | | | | | | | It is being deprecated. Change-Id: Ia8306d3874dc21d431fcb621e1f487f55b2bed8d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Re-fix scaling when rendering a specific element by idAlessandro Portale2019-11-141-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a modification of 14fa4591eb34a35cf3d485fd901e3f1e2caa7770 That patch corrected the handling of the view box when rendering an entire SVG document. However, contrary to intention stated in the comment of that patch, it turns out that the new viewbox handling code path can be taken also for the case of rendering only a single element by id. Instead, we want to keep the original behavior where the element's origin bounds are transformed to fit into the user requested target bounds, allowing non-proportional scaling. Since the render-single-element case is easily and uniqely identifiable by the sourceRect parameter being non-null, just add an explicit check for that to the code path branching. Done-with: Eirik Aavitsland <eirik.aavitsland@qt.io> Fixes: QTBUG-79933 Change-Id: I64a35bbb193db22c33670b48ea165a91df8e719e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * QSvgRenderer: Allow to remove a viewBoxAlessandro Portale2019-11-131-1/+1
| | | | | | | | | | | | | | | | | | | | m_implicitViewBox needs to be true if the explicit viewBox is null. That relationship between m_viewBox and m_implicitViewBox can be see in QSvgTinyDocument::viewBox(). Task-number: QTBUG-79933 Change-Id: I6ea5a849479b10117128bcaf1799e3770b145e77 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Fix rendering of SVG with translating viewBoxEirik Aavitsland2019-11-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a modification of14fa4591eb34a35cf3d485fd901e3f1e2caa7770. That change correctly implemented support for scaling and centering viewBox. However, the viewBox scaling and x-min/y-min translation was applied in the wrong order, so SVGs with a non-zero x-min/y-min viewBox would be rendered with an offset. The autotest reflected this error, and is also fixed here. (In user space, the black rectangle's upper left corner (0,0) is in the center of the viewBox and so should end up in the center of the produced image, independently of the scaling. All other tested SVG renderers place it there.) This change fixes all the reported regression cases from the above commit, while not re-breaking the original cases fixed by that commit. Fixes: QTBUG-79333 Fixes: QTBUG-78200 Task-number: QTBUG-70256 Change-Id: I0d3394e3caf6ec7edf16a10992c2fbfdac7398e5 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Regenerate projectsAlexandru Croitor2019-11-154-17/+61
| | | | | | | | | | | | Change-Id: Ie5198bc76688e40170a8b0a401435f97898bb818 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2019-10-154-4/+4
|\ \ | | | | | | | | | | | | | | | Removed dependencies.yaml. Change-Id: I4a0c5c1be5781ee521e9b54d720d27f386870324
| * \ Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2019-10-154-4/+4
| |\ \ | | |/ | | | | | | Change-Id: Ia593641e379c95100d29d3fac00afe024e6966c4
| | * Small performance improvements suggested by clang-tidyv5.14.0-beta2Albert Astals Cid2019-10-074-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add const & to function parameters * std::move an brush * Add const & to variables assigned from functions returning const & Change-Id: If412b78cc0198e24ce1c611fcd2026d0d723be80 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | | Merge remote-tracking branch 'origin/wip/qt6' into wip/cmakeAlexandru Croitor2019-08-157-25/+38
|\ \ \ | |/ / | | | | | | Change-Id: I886cfdcd8bd124a02c54f23b694799610f60d7bd
| * | Merge remote-tracking branch 'origin/dev' into wip/qt6Alexandru Croitor2019-08-115-14/+16
| |\ \ | | |/ | | | | | | Change-Id: I4a9a175cb431cb3d38146e98cf08d7042dcc8f2b