summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qrect.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QRectF: add qFuzzyCompare and qFuzzyIsNull overloadsIvan Solovev45 hours1-0/+16
| | | | | | | | | [ChangeLog][QtCore][QRectF] Added qFuzzyCompare and qFuzzyIsNull overloads for QRectF Task-number: QTBUG-120308 Change-Id: Ie2eee0a28b902bdfeb91be45a164be659aef1a20 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QRect(F): use comparison helper macrosIvan Solovev45 hours1-10/+18
| | | | | | | | | | | | | | Also explicitly add QRectF vs QRect comparison. Previously such comparison was implicitly converting QRect to QRectF, and doing the fuzzy comparison. The new operators are directly calling operator==(QPointF, QPoint), which also does the fuzzy comparison, so the old behavior is preserved. As a drive-by: move the operators into the private section. Task-number: QTBUG-120308 Change-Id: I9b96ed4266e6a6c02a52c8cfff6ec1b2d036a7ca Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-161-38/+2
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* QRect: add toRectF()Marc Mutz2022-03-191-3/+18
| | | | | | | | | | For symmetry with QRectF::toRect(). [ChangeLog][QtCore][QRect] Added toRectF(). Fixes: QTBUG-73160 Change-Id: If2bda64b8fe4bc113191dda927e9bb86ebcb4c69 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make explicit that we expect co-ordinates to be finiteEdward Welbourne2021-02-041-25/+26
| | | | | | | | | | | | | | | | | | | The various spatial-vector, line, point, region and margin types have all long taken for granted that their co-ordinates are finite and, in particular, not NaN. Make this expectation explicit in the documentation. Added assertions where (chiefly) noexcept and (where the assertion would be a simple qIsFinite() call) constexpr didn't preclude doing so. Also assert against zero divisors that would lead to non-finite results. Make minor clean-ups to docs in the process. QMarginsF had several methods whose declaration, definition and docs weren't consistent in their parameter names. Task-number: QTBUG-89010 Change-Id: I601a830959d13a73dcb17ce31a1202a1486c8f7f Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Make QRect(F) and QMargins comparison operators hidden friendsVolker Hilsheimer2020-10-261-8/+4
| | | | | | | | | | | | Hide them from ADL to reduce noise. QRect operators were already implemented as hidden friends, but a left-over declaration un-hid them again. Use the opportunity to simplify QMargins::operator!= by just inverting operator==. No need to spell things out, the compiler can do that for us. Change-Id: I55722223a2267cbeba5726dc912b48d6e017e580 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* QRectF/QPointF/QSizeF: document that operator== and != are fuzzyGiuseppe D'Angelo2020-10-231-3/+11
| | | | | | | | | | This has been the case for a _very_ long time, and I can't believe this hasn't been documented anywhere. Change-Id: Ib157edf14e87a6f546c155496f70a760ab218cca Pick-to: 5.15 5.12 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Make QPoint*, QSize*, and QRect* binary operators hidden friendsAllan Sandfeld Jensen2020-10-211-1/+1
| | | | | | | | | | | | Moves them to class scope, which will avoid them showing up as possibilities in error messages for missing operators. Also consolidates how they are compared, so QRectF and QSizeF act similar to QPointF. Change-Id: I1e12cb7e5a5c65e85c32281878da03c6136c17de Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix various qdoc warningsVolker Hilsheimer2020-09-221-2/+2
| | | | | | | Parameter types and names, missing enum values, and \since 6.0. Change-Id: I1b028fcf2ef0b57accb1ef7cebf17dab9f6d571e Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Define inverted QRects consistentlyAllan Sandfeld Jensen2020-09-211-84/+92
| | | | | | | | | | | | | | | | Changes the definition of invalid QRects to be more consistent. This simplifies the logic, and makes it possible for us to fix normalized() so dimensions don't change. The actual API is not changed except for inverted rects. Only one use-case for the old normalized() function existed, and has been reimplemented as QRect::span(). Fixes: QTBUG-22934 Change-Id: I29dad2952dc6c8e84a6d931898dc7e43d66780f3 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix "rectange" typos in qtbaseOliver Wolff2020-08-051-2/+2
| | | | | | Pick-to: 5.15 Change-Id: If064fae5eaaeb2e53e3dd05cb9dc1cdf49ad1f04 Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
* QRect(F): remove deprecated functionsChristian Ehrlicher2020-06-201-28/+0
| | | | | | | They were deprecated since Qt5.0 so it's time to go away. Change-Id: Ib0192f9048ff15c9d47fb1a23046ccfe0ee7d807 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.13' into devLiang Qi2019-07-051-2/+2
|\ | | | | | | | | | | | | | | Conflicts: .qmake.conf qmake/generators/makefile.cpp Change-Id: Ifb2633a69d0bf8cdf12d799c6259beefc279c49e
| * [docs] Fix issues in QRect/QMargin API docsMarc Mutz2019-07-031-2/+2
| | | | | | | | | | | | | | | | - Fix grammar in op-(QRect, QMargin) - Correct shunk for grown in op-(QRectF, QMarginsF) Change-Id: Ia0dbd933cc9f6ed5e0dad05a27794c1135c794ed Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | Replace Q_DECL_NOEXCEPT with noexcept in corelibAllan Sandfeld Jensen2019-04-031-13/+13
|/ | | | | | | In preparation of Qt6 move away from pre-C++11 macros. Change-Id: I44126693c20c18eca5620caab4f7e746218e0ce3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Move literal code block to a separate fileCristian Maureira-Fredes2018-10-151-8/+2
| | | | | | | | | | | We need to override this snippet for the documentation we generate for Qt for Python, and it is easier to have it on a separate file. Task-number: PYSIDE-801 Task-number: PYSIDE-691 Change-Id: Ideb5b6af25024279f167137d3b65660bb9c96a7e Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Fix typos in QRectF documentationPaul Wicking2018-08-271-4/+4
| | | | | | | | | Add missing 's'. Fixes: QTWEBSITE-823 Change-Id: I1acd3b7ae18982248bf3402fa5943ee95c1efdbe Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Unify wording in documentation to use 'top-left' instead 'upper-left'Christian Ehrlicher2017-10-141-2/+2
| | | | | | | | | | | | The Qt documentation is using 'upper-left' everywhere except at QRect(F) detailed description and Qt::CoordinateSystem enum description. Therefore fix it in those four places to be consistent. Task-number: QTBUG-59981 Change-Id: Ie652044d0207ea5a42888d9e1f1dc9a86b1e9410 Reviewed-by: Mats Honkamaa <mats.honkamaa@qt.io> Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* Doc: Fix minor typos in QRectFAaron Linville2017-02-231-3/+3
| | | | | | | | | | | | | Fix a couple incorrect references to the integer precision classes. Update snippet to use floating point precision classes. Task-number: QTBUG-51630 Change-Id: I9b08cfb68937a8e1179ee414d7981956ef7bc106 Reviewed-by: Martin Koller <kollix@aon.at> Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* QRect(F): add transposed()Marc Mutz2016-02-131-0/+28
| | | | | | | | | | | | | I didn't add a transpose(), because r = r.transposed() is perfectly capable of filling that role, and just as efficient. Existing API mistakes are no excuse to create more of them. [ChangeLog][QtCore][QRect/QRectF] Added transposed(). Change-Id: Ic38721e9028496fc9b50f4d4cef2e7a60532eed8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Updated license headersJani Heikkinen2016-01-151-14/+20
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Doc: Remove invalid uses of \relates commandTopi Reinio2015-08-191-4/+0
| | | | | | | A function cannot be both a member and a non-member of the same class. Change-Id: I07d1e04c09fea2ba1171b3692e716660044cd37a Reviewed-by: Martin Smith <martin.smith@digia.com>
* Split out some inline qdebug formatting helpers to qdebug_p.h.Friedemann Kleint2015-04-011-5/+10
| | | | | | | | | | | | | | | | | | Extract helpers to be able to format classes without type names and use those for formatting QEvents to reduce clutter. For example: QWidgetWindow/"MainWindowClassWindow" QMouseEvent(QEvent::Type(MouseMove), buttons=QFlags<Qt::MouseButtons>(LeftButton), localPos=QPointF(50,116), screenPos=QPointF(948,652)) QWidget/"qt_scrollarea_viewport" QMouseEvent(QEvent::Type(MouseMove), buttons=QFlags<Qt::MouseButtons>(LeftButton), localPos=QPointF(45,32), screenPos=QPointF(948,652)) becomes QWidgetWindow/"MainWindowClassWindow" QMouseEvent(MouseMove, LeftButton, localPos=50,116, screenPos=948,652) QWidget/"qt_scrollarea_viewport" QMouseEvent(MouseMove, LeftButton, localPos=45,32, screenPos=948,652) Change-Id: Ie5441d922962a05caed6b7079a74ea8a2b8a64fb Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* Remove unnecessary math.h and limits.h includesAllan Sandfeld Jensen2015-02-041-2/+0
| | | | | Change-Id: I28c898f869ed3f03b08ff55f2972a38667c755ad Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QRect: plaster API with Q_DECL_NOTHROWMarc Mutz2015-01-081-13/+13
| | | | | | | | | | | | | | | | | | This is mostly straight-forward, but some things are worth noting: 1. Yes, this is necessary. The noexcept operator looks for noexcept tagging, not at the contents of the function to determine whether to return true. The more conditionally-noexcept functions are used, the more important it becomes that low-level classes are correctly marked noexcept. In that, it is like constexpr. 2. In accordance with the rules governing noexcept specifications for the standard library itself, the get*()-family of functions are not marked as noexcept, since they have preconditions and thus a narrow contract. Narrow-contract functions should not be noexcept. All other functions have wide contracts (ie. no preconditions). Change-Id: I82e5d34a0293d73ddc98ee231e17e26463ab6686 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Doc: QRect::isEmpty's documentation didn't match the code.David Faure2014-09-051-1/+1
| | | | | | | | | The code says bool QRect::isValid() const { return x1 <= x2 && y1 <= y2; } so the documentation should say <= as well, rather than <. Change-Id: If52005879d2a758b5d1d64b552e6cd96341fae76 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Merge remote-tracking branch 'origin/stable' into devIikka Eklund2014-04-011-0/+2
|\ | | | | | | Change-Id: I2a6eb9dd7724931bc89f28bcc156e77c4e26d069
| * Mark QPoint, QPointF, QRect, QRectF as reentrant.Mitch Curtis2014-03-271-0/+2
| | | | | | | | | | | | | | Task-number: QTBUG-37667 Change-Id: I978a53e075efcfba8898c8e96bce8f19350dd6c4 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-03-241-2/+2
|\| | | | | | | | | | | | | Conflicts: src/gui/image/qjpeghandler.cpp Change-Id: I9db3acea7d5c82f5da679c8eaeb29431136665f0
| * Fix qdoc warnings in QMargins, QRect.Friedemann Kleint2014-03-211-2/+2
| | | | | | | | | | Change-Id: Iae2486e1f335679c288e05f45e2d283a7cf971c0 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* | QDebugStateSaver: call maybeSpace() in destructor.David Faure2014-03-131-4/+8
|/ | | | | | | | | | | tst_qdebug didn't test adding something else after the MyLine object, so I didn't realize that a space was missing there. All debug operators should end with maybeSpace(), but with the settings of the caller, so this requires restoring the settings before calling it. To make it convenient for all << operators, the destructor of QDebugStateSaver takes care of that. Change-Id: I18ab78d99d7ee3be951082b5b5d34718ee60e21d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QMarginsF - Add new QMarginsF classJohn Layt2014-02-211-0/+65
| | | | | | | | | | | | Add a new QMarginsF class to complement QMargins in the style of QSize/QSizeF and QRect/QRectF. [ChangeLog][QtCore] Added class QMarginsF to support handling margins with floating-point values. Change-Id: Iaaa95ec85f5d126d9d864fc4b607241a8c8a8f3a Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QRect - Add missing QMargins subtraction operatorJohn Layt2014-02-211-0/+9
| | | | | | | | [ChangeLog][QtCore][QRect] Added QMargins subtraction operator. Change-Id: I64d449e2bae81a34df2cd019cff3fb186f8aaaae Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* QRect - Move QMargins operatorsJohn Layt2014-02-211-0/+59
| | | | | | | | Move QMargins operators to QRect file, change include sequence. Change-Id: I0e2ad91859ae65eb67c6ece50f8e4037516b463e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Doc: Adding mark-up to boolean default values.Jerome Pasion2013-10-081-42/+42
| | | | | | | | | | | | | | | | | Default values should have mark-up to denote that they are code. This commit changes: -"property is true" to "property is \c true". -"Returns true" to "Returns \c true". -"property is false" to "property is \c false". -"returns true" to "returns \c true". -"returns false" to "returns \c false". src/3rdparty and non-documentation instances were ignored. Task-number: QTBUG-33360 Change-Id: Ie87eaa57af947caa1230602b61c5c46292a4cf4e Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Mention QRect's int min/max constraints in detailed description.Mitch Curtis2013-06-041-0/+6
| | | | | | | Task-number: QTBUG-25732 Change-Id: If330768c3075568f09593ed17f26389d3dec3335 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-181-1/+1
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change copyrights from Nokia to DigiaIikka Eklund2012-09-221-24/+24
| | | | | | | | Change copyrights and license headers from Nokia to Digia Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
* Doc: Add \inmodule QtCore to all QtCore class doc bodiesThiago Macieira2012-08-231-0/+2
| | | | | Change-Id: I19100755c97cc155c76a859e19940e9f9222d34e Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* Doc: Fix \sa usageMarius Storm-Olsen2012-05-111-7/+7
| | | | | | | | | Ensure comma between elements (757 missing), single space and curly- braces around title elements, etc. Change-Id: Id16c3fda7fc47a12a0682f8720214f4990609a97 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* mingw: fix a lot of annoying warningsKonstantin Ritt2012-04-201-10/+0
| | | | | | | | | like "QRect::intersected() redeclared without dllimport attribute after being referenced with dll linkage" (-fno-keep-inline-dllexport) Change-Id: Id24e5ee857579ee9f97a60de0ab88ce3db8385cf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* Doc: Prepare for building modular QtCore docs.Casper van Donderen2012-04-191-3/+3
| | | | | | | | | | | | This change fixes most qdoc errors in QtCore. There are about 900 left. The main thing this change does is moving documentation from qtcore from /doc/src to /src/corelib/doc. Other issues resolved are mis-use of qdoc commands. Change-Id: I002d01edfb13575e8bf27ce91596a577a92562d1 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com> Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
* Remove the usage of deprecated qdoc macros.Casper van Donderen2012-03-021-24/+24
| | | | | | | | | | | QDoc now has support for Doxygen style commands for italics, bold and list items. This change applies that change in QDoc to the actual documentation. Task-number: QTBUG-24578 Change-Id: I519bf9c29b14092e3ab6067612f42bf749eeedf5 Reviewed-by: Shane Kearns <shane.kearns@accenture.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove "All rights reserved" line from license headers.Jason McDonald2012-01-301-1/+1
| | | | | | | | | | As in the past, to avoid rewriting various autotests that contain line-number information, an extra blank line has been inserted at the end of the license text to ensure that this commit does not change the total number of lines in the license header. Change-Id: I311e001373776812699d6efc045b5f742890c689 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update contact information in license headers.Jason McDonald2012-01-231-1/+1
| | | | | | | Replace Nokia contact email address with Qt Project website. Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Doc: Removed documentation for deleted code.David Boddie2011-07-211-95/+0
| | | | | | | Change-Id: Icdbc05decac3dfe3fc18ce073c494e1fce4ea347 Reviewed-on: http://codereview.qt.nokia.com/1824 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: David Boddie
* Update licenseheader text in source files for qtbase Qt moduleJyri Tahtela2011-05-241-17/+17
| | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me