summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Blitter Paint Engine: Check more specifically for solid fill brushLouai Al-Khanji2016-03-211-1/+1
| | | | | | | | | The previous state did not account for Qt::NoBrush. This caused a bug where a draw call with Qt::NoPen and Qt::NoBrush incorrectly causes a solid black fill instead of being a no-op. Change-Id: If3b90d6cb99043d68976aca143cac64ad5d8ea9e Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Rework toggling the state of read notifier on buffered socketAlex Trotsenko2016-03-211-15/+7
| | | | | | | | | | | | | | | | | | | | Read notifications on a buffered socket are enabled all the time while the socket is connected unless the buffer size limit is reached. To enable the read notifier again, the user needs to read the data or enlarge the buffer with a setReadBufferSize() call. According to that scenario, it's very likely that the socket will toggle the state of notifier twice (on->off->on) in one notification cycle. Also, use of the readyRead() signal with a queued connection leads to the same problem. This patch prevents this unnecessary toggling by: - unconditionally setting the notifier's state in setReadBufferSize(); - deferring the notification disabling in canReadNotification() to the next notification cycle. Change-Id: I29df32f12c9c80a325373af86963e924817f2167 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* qsslsocket/qsslcontext - add ALPN (OpenSSL only)Timur Pocheptsov2016-03-216-10/+110
| | | | | | | | | Application-Layer Protocol Negotiation (ALPN) - is a reworked revision of Next Protocol Negotiation (NPN) we have in our OpenSSL code. Can be used as a part of HTTP2 negotiation during TLS handshake. Change-Id: I484ec528c81d4887a64749095ec292dfaec18330 Reviewed-by: Richard J. Moore <rich@kde.org>
* Add QAbstractTextDocumentLayout::imageAt(), formatAt()Alberto Mardegan2016-03-183-3/+86
| | | | | | | | | | | | | | | The new imageAt() method pairs with the existing anchorAt() method, and allows retrieving the source link of the image under the cursor. We also expose the common logic between these two methods as an additional formatAt() method. [ChangeLog][QtGui][QAbstractTextDocumentLayout] Added imageAt() and formatAt() methods, which respectively can be used to retrieve the source link of the image under the cursor, or the QTextFormat of the text under the cursor. Change-Id: If09815dde91de6616edcb19c72c462dbf7abd8ef Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QAbstractSocketPrivate: remove unused declarationAlex Trotsenko2016-03-181-1/+0
| | | | | Change-Id: I995eba8b4c993ac602d8b005f9cf5b35da5c2eb5 Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
* Forward declare the Objective C types for the documentation.Olivier Goffart2016-03-185-10/+10
| | | | | | | Required for clang doc parsing. Change-Id: Ia00717377e9524efae1266d1a01b2ef0e064b11e Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* Blacklist tst_qfont::exactMatch in openSUSE 42.1Tony Sarajärvi2016-03-171-0/+2
| | | | | | | | | It is already blacklisted in openSUSE 13.1 and is a known bug somewhere. Task-number: QTBUG-46054 Change-Id: Ie2fb23bcede1871d3b9fa15644112fb2ab975c2b Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* QString: Reorder inline functions.Friedemann Kleint2016-03-171-17/+17
| | | | | | | | | | | | | | | Ensure the compiler knows the definition of QString::compare(QStringRef, Qt::CaseSensitivity) from where it is referenced. Fixes MinGW errors: qstring.h:1597:12: error: 'int QString::compare(const QStringRef&, Qt::CaseSensitivity) const' redeclared without dllimport attribute after being referenced with dll linkage [-Werror] inline int QString::compare(const QStringRef &s, Qt::CaseSensitivity cs) const Q_DECL_NOTHROW Amends change 8005fa3524916a56a555f44d4418eb1cd12db645. Change-Id: I3bb31a79305d338c0abdfdcb365e281443b4546e Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QTextCursor: Use RasterOp_NotDestination composition mode for drawing the cursorDmitry Shachnev2016-03-161-0/+4
| | | | | | | | | | | | | | | | | This has several advantages over the current “fill the rectangle with the default text color” approach: - When the background color for some block of text is black, the cursor will be white and visible. - It is possible to set the cursor width to width of a character (for example for monospace edits), and the characters will be visible when the cursor is displayed. Change-Id: I2e6303166d5d63c8dd11ec4fcf3d734cdf440e7e Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* Add begin-end virtuals to the internal glyph cacheLaszlo Agocs2016-03-162-0/+4
| | | | | | | | | | | | | Just having a single fillTexture() is not sufficient for efficient operation with modern, low-level graphics APIs. Having a begin-end pair of functions that are invoked before the stream of calls to fillTexture allow glyph caches to build command lists and defer command submission until it is known that all pending glyphs have been processed. Change-Id: Ifac645f83e9cfb6f246be9c8e79e5aa3bde5758d Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Remove old commentsJędrzej Nowacki2016-03-161-6/+4
| | | | | | | | Revisions under 7 of moc output are not supported, so there is no point in having comments about them. Change-Id: I31ab1d50750f1c1ddc4b804c333eb3ca96d0b93e Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Autotest tst_qfont can split font familiesTony Sarajärvi2016-03-161-5/+5
| | | | | | | | | | openSUSE 42.1 returns 2 font families comma separated when querying monospace font families. Without splitting we compared the family against the whole list. Task-number: QTBUG-51336 Change-Id: Icd757e173aa8ffab713b83cf9e38b78aab00c07e Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* diaglib: Add more output to DebugProxyStyle.Friedemann Kleint2016-03-162-5/+38
| | | | | | | | | - Add output for QStyleOptionViewItem. - Also wrap styleHint(). Task-number: QTBUG-48916 Change-Id: If28bd89b7d175b7a83ee0c8e2538906796fd8426 Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* QStringRef: add missing relational operators against QLatin1String/QStringMarc Mutz2016-03-162-21/+31
| | | | | | | | | | | | | | | | Equality and inequality were already provided. Missing were the less/greater than (or equal) operators. Added. Moved existing functions around and more similar to the new ones, to make the whole code section a bit more manageable. [ChangeLog][QtCore][QStringRef] Added missing operator{<,>,<=,>=} comparing against QLatin1String and QString. Change-Id: Idb3c4fa9b38421637987226f3cc1b77f5d4a6309 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* gui: Pass large types by const-refSérgio Martins2016-03-157-13/+13
| | | | | | | | | | | | | | | | | sizeof: Operator : 144 QTransform : 88 QGlyphLayout : 48 QTextFrame::Iterator: 32 QRectF : 32 QCss::Value : 24 (Linux/x86_64) Change-Id: I4965bf0959683c0bc8909428fca86d66851af92c Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QIODevice: allow zero-copy in read()Alex Trotsenko2016-03-151-2/+13
| | | | | | | | | Try to prevent the data from being copied, if we have a chunk with the same size in the read buffer. Task-number: QTBUG-19169 Change-Id: I2a9a5c88855988888b56d0ca69ec4e50b8e6ef98 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* Remove the c++default testLars Knoll2016-03-155-50/+1
| | | | | | | | | This test was the old way of checking whether to enable c++11 functionality. That is now anyway required, so there is no need for this test anymore. Change-Id: I083e85a4698cac6bd9b573525c7b977f63e14113 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Remove support for the obsolete -no-zlib configure argLars Knoll2016-03-155-96/+29
| | | | | | | | | Simplify the handling in the pro files as well. system-zlib is the only option deciding whether we use our bundled copy or the system lib. Change-Id: Id28c1c64c5944e86f0e9cd3533268f43e98522a1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QAbstractSocket: do not try to disable write notifications twiceAlex Trotsenko2016-03-151-6/+6
| | | | | | | | | | | | | When canWriteNotication() is called and the socket successfully writes a chunk of data, then condition for disabling the notifications will be checked both in writeToSocket() and canWriteNotification(). Moving the code which handles notifications' state from canWriteNotification() to another branch in writeToSocket() eliminates a duplication and forces writeToSocket() to handle disabling the notifications in all cases. Change-Id: I6c14db552afe77b0cf1c9f5c511bafa127a45fe5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
* Remove openvg tests from configureLars Knoll2016-03-156-229/+0
| | | | | | | | | | We're not currently supporting OpenVG anywhere, so remove those tests. If we need them in the future, it's easy to get them back. Change-Id: I06c0f9f3b3ecaa10a51de84c3059d4eee3a29fad Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
* Add test for API symmetry of QString/Ref, QLatin1String, QCharMarc Mutz2016-03-154-0/+204
| | | | | | | | | | At the moment, only checks the relational operators, where it already found some which do not compile. In order to simplify the test, the missing operators are supplied by the test harness until they are fixed in the library. Change-Id: Ief5daefa68f15de5f8e559c9378ed83b715b69ee Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Add environment variable QT_DISTANCEFIELDAram So2016-03-112-19/+93
| | | | | | | | | | DistanceField technique was not intended for rendering very large glyph. In some case need the qEnvironmentVariable. Change-Id: Ied11ed00f0c67bae3c92155e17721d8d2f224cca Task-number: QTBUG-51714 Reviewed-by: Aram So <aram.so@lge.com> Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
* QSql tests: Remove Windows CE and clean up code.Friedemann Kleint2016-03-109-108/+4
| | | | | | | | | | | Use the newly introduced QSysInfo::machineHostName() to determine the host name in the shared header, removing the need to link against the winsocket library. All Windows-specific .pro sections can then be removed. Task-number: QTBUG-51673 Change-Id: Iba990b886b16addd210639871065abde6de96516 Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
* QFactoryLoader: Add namefilter for Windows.Friedemann Kleint2016-03-101-1/+5
| | | | | | | | | | | | | No longer try to load all files in the directory as a plugin which can cause problems when for example installers move files around. [ChangeLog][QtCore][QFactoryLoader][Windows] QFactoryLoader now filters potential plugins by the ".dll" suffix. Task-number: QTBUG-31476 Change-Id: Ia19d6211c72765aaba0a5d06e6d3b501e8a40fff Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* qmake: Remove Windows CE support.Joerg Bornemann2016-03-1026-1176/+30
| | | | | | | The platform has been removed in Qt 5.7. Change-Id: Ie768b5ffbe60270c27b4a670dcf580ea361cb361 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Winmain: Remove Windows CE.Friedemann Kleint2016-03-102-61/+2
| | | | | | | | Remove #ifdef sections for Q_OS_WINCE and wince .pro file clauses in library. Task-number: QTBUG-51673 Change-Id: I473f215066db819a273f293940dcce9fe03152c3 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* QAbstractSocket: remove unnecessary checksAlex Trotsenko2016-03-091-3/+2
| | | | | | | | | There is no need to check the 'enabled' states before calling set{Read|Write}NotificationEnabled() functions, because the socket event notifiers are fully optimized for this case. Change-Id: I0cd4fbc2298c9b9523420a60a46a65e0b305fa12 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Add missing "We mean it." warning to qnetworkfile_p.h.Friedemann Kleint2016-03-081-0/+11
| | | | | | | | | QtNetwork: WARNING: qtbase/src/network/access/qnetworkfile_p.h does not have the "We mean it." warning Task-number: QTBUG-45925 Change-Id: I9cd9237450101c4c862746e774fa37d69083c213 Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* QNetworkFile: Fix compile error with MinGW/gcc 5.1.Friedemann Kleint2016-03-081-0/+1
| | | | | | | | | | access\qnetworkfile.cpp: In member function 'void QNetworkFile::open()': access\qnetworkfile.cpp:69:93: error: invalid use of incomplete type 'class QDateTime' headerRead(QNetworkRequest::LastModifiedHeader, QVariant::fromValue(fi.lastModified())); Task-number: QTBUG-45925 Change-Id: I61ff67f9691fe7b6966353e29eeb03d37590d78d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* Async open file support in QNetworkAccessManagerJesus Fernandez2016-03-0710-91/+319
| | | | | | | | | | | | | This change adds support for BackgroundRequestAttribute to local file request. It is useful when opening files located in network drives where the file open operation could take several seconds to complete. When this attribute is activated the QNetworkAccessManager::get call returns the reply immediately and the user has to wait until QNetworkReply::finished signal is emitted or QNetworkReply::isFinished function returns true. Task-number: QTBUG-45925 Change-Id: Ie2019dd94fe04253d1ef6874811d7e749a5aad93 Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* Rename test to comply with coding conventions.Fredrik de Vibe2016-03-071-2/+2
| | | | | | | | | Test was inappropriately named according to https://wiki.qt.io/Writing_Unit_Tests#Naming_of_test_functions_is_important Task-number: QTBUG-51288 Change-Id: I1c97cee80b5fbf41182b9472ba683862a576b83c Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* Remove iOS/OS X duplicationMike Krus2016-03-054-12/+4
| | | | | | | Move common configuration to mac Change-Id: Ic4a6ad896ac6fd46a0914a267ba87adecc6b37e4 Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
* Check if socketEngine is set before accessing it.Fredrik de Vibe2016-03-042-1/+23
| | | | | | | | | | | | | | | | QTcpServer::addPendingConnection() is protected, so it is possible to add pending connections from a class derived from QTcpServer. This derived class can get a QTcpSocket from somewhere else, in which case d->socketEngine will not be set (or used). Given that it is possible to add pending connections in this scenario, it would make sense to be able to retrieve them as well. [ChangeLog][QtNetwork][QTcpServer] Permit using a QTcpServer with externally created QTcpSocket. Task-number: QTBUG-51288 Change-Id: I830c10f1a881e2bca4e4ad716d8be865e1c27a9f Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Use local result metric instead of global result metric.Milian Wolff2016-03-031-1/+1
| | | | | | | | This is required for a follow-up commit which adds support for reporting multiple results in a single benchmark interation. Change-Id: I8dd7f37ce046cc0f9556be5d0df76f84b82ec1a7 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Optimize QMetaObject::activate.Milian Wolff2016-03-031-19/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code is restructured to only loop over the non-empty connection lists. This can be checked early while the mutex is locked already, thus removing mutex lock/unlock calls that were done previously just to realize the allsignals list is empty and can be skipped. Additionally, at the very end of the loop over the last signal connection list, the mutex was acquired even though it doesn't need to be as we will quit the loop anyways. This patch leverages these facts to remove the mutex locks which alone has a considerable impact on the corresponding signal/slot benchmark. The instruction count goes down by ca. 13%, while cycle count and runtime drop by about 29%. Before: ********* Start testing of QObjectBenchmark ********* Config: Using QtTest library 5.7.0, Qt 5.7.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 5.3.0) PASS : QObjectBenchmark::initTestCase() PASS : QObjectBenchmark::signal_slot_benchmark(simple function) RESULT : QObjectBenchmark::signal_slot_benchmark():"simple function": 0.00000362 msecs per iteration (total: 362, iterations: 100000000) 14.05652884 CPU cycles per iteration (total: 1,405,652,884, iterations: 100000000) 21.00585673 instructions per iteration (total: 2,100,585,673, iterations: 100000000) PASS : QObjectBenchmark::signal_slot_benchmark(single signal/slot) RESULT : QObjectBenchmark::signal_slot_benchmark():"single signal/slot": 0.00004709 msecs per iteration (total: 4,709, iterations: 100000000) 183.75943370 CPU cycles per iteration (total: 18,375,943,371, iterations: 100000000) 362.08604759 instructions per iteration (total: 36,208,604,760, iterations: 100000000) PASS : QObjectBenchmark::signal_slot_benchmark(multi signal/slot) RESULT : QObjectBenchmark::signal_slot_benchmark():"multi signal/slot": 0.00004965 msecs per iteration (total: 4,965, iterations: 100000000) 183.54556242 CPU cycles per iteration (total: 18,354,556,243, iterations: 100000000) 362.07734835 instructions per iteration (total: 36,207,734,835, iterations: 100000000) PASS : QObjectBenchmark::signal_slot_benchmark(unconnected signal) RESULT : QObjectBenchmark::signal_slot_benchmark():"unconnected signal": 0.00000752 msecs per iteration (total: 752, iterations: 100000000) 30.08781366 CPU cycles per iteration (total: 3,008,781,367, iterations: 100000000) 92.01520465 instructions per iteration (total: 9,201,520,466, iterations: 100000000) PASS : QObjectBenchmark::signal_slot_benchmark(single signal/ptr) RESULT : QObjectBenchmark::signal_slot_benchmark():"single signal/ptr": 0.00005620 msecs per iteration (total: 5,620, iterations: 100000000) 219.24739264 CPU cycles per iteration (total: 21,924,739,265, iterations: 100000000) 327.08675555 instructions per iteration (total: 32,708,675,556, iterations: 100000000) PASS : QObjectBenchmark::signal_slot_benchmark(functor) RESULT : QObjectBenchmark::signal_slot_benchmark():"functor": 0.00005852 msecs per iteration (total: 5,852, iterations: 100000000) 218.45401359 CPU cycles per iteration (total: 21,845,401,360, iterations: 100000000) 328.08472410 instructions per iteration (total: 32,808,472,410, iterations: 100000000) PASS : QObjectBenchmark::cleanupTestCase() Totals: 8 passed, 0 failed, 0 skipped, 0 blacklisted, 44469ms ********* Finished testing of QObjectBenchmark ********* After: ********* Start testing of QObjectBenchmark ********* Config: Using QtTest library 5.7.0, Qt 5.7.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 5.3.0) PASS : QObjectBenchmark::initTestCase() PASS : QObjectBenchmark::signal_slot_benchmark(simple function) RESULT : QObjectBenchmark::signal_slot_benchmark():"simple function": 0.00000361 msecs per iteration (total: 361, iterations: 100000000) 14.01854817 CPU cycles per iteration (total: 1,401,854,818, iterations: 100000000) 21.00532932 instructions per iteration (total: 2,100,532,933, iterations: 100000000) PASS : QObjectBenchmark::signal_slot_benchmark(single signal/slot) RESULT : QObjectBenchmark::signal_slot_benchmark():"single signal/slot": 0.00003398 msecs per iteration (total: 3,398, iterations: 100000000) 132.52735104 CPU cycles per iteration (total: 13,252,735,104, iterations: 100000000) 314.04965106 instructions per iteration (total: 31,404,965,107, iterations: 100000000) PASS : QObjectBenchmark::signal_slot_benchmark(multi signal/slot) RESULT : QObjectBenchmark::signal_slot_benchmark():"multi signal/slot": 0.00003448 msecs per iteration (total: 3,448, iterations: 100000000) 133.63623046 CPU cycles per iteration (total: 13,363,623,046, iterations: 100000000) 314.04952237 instructions per iteration (total: 31,404,952,238, iterations: 100000000) PASS : QObjectBenchmark::signal_slot_benchmark(unconnected signal) RESULT : QObjectBenchmark::signal_slot_benchmark():"unconnected signal": 0.00000747 msecs per iteration (total: 747, iterations: 100000000) 29.02349389 CPU cycles per iteration (total: 2,902,349,390, iterations: 100000000) 92.01088221 instructions per iteration (total: 9,201,088,222, iterations: 100000000) PASS : QObjectBenchmark::signal_slot_benchmark(single signal/ptr) RESULT : QObjectBenchmark::signal_slot_benchmark():"single signal/ptr": 0.00004350 msecs per iteration (total: 4,350, iterations: 100000000) 167.83581885 CPU cycles per iteration (total: 16,783,581,885, iterations: 100000000) 279.06426656 instructions per iteration (total: 27,906,426,657, iterations: 100000000) PASS : QObjectBenchmark::signal_slot_benchmark(functor) RESULT : QObjectBenchmark::signal_slot_benchmark():"functor": 0.00004337 msecs per iteration (total: 4,337, iterations: 100000000) 170.45074743 CPU cycles per iteration (total: 17,045,074,743, iterations: 100000000) 280.06267229 instructions per iteration (total: 28,006,267,229, iterations: 100000000) PASS : QObjectBenchmark::cleanupTestCase() Totals: 8 passed, 0 failed, 0 skipped, 0 blacklisted, 33228ms ********* Finished testing of QObjectBenchmark ********* Change-Id: I6f79fd68ae7a07d9b439ca047bf1f53c83751d45 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Enable support for ref-cycles perf counter in QtTestLib.Milian Wolff2016-03-033-4/+13
| | | | | | | | | | | | The ref-cycles counter corresponds to the monotonic timestamp counter that can be read using the RDTSC assembler instruction. Using it instead of the default cycles counter is useful as it removes the effect of dynamic frequency scaling on the measurement. [ChangeLog][QtTest] The ref-cycles perf counter can now be used. Change-Id: Id7d56576db362706c20f9a399e5acea35ee799f2 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QtOpenGL/plugins/platformsupport: use new QRegion::begin()/end() instead of ↵Marc Mutz2016-03-0221-91/+61
| | | | | | | | | | rect() Saves e.g. ~900b and ~2900b in text size in QtOpenGL and XcbQpa libs, resp., on optimized GCC 5.3 Linux AMD64 builds. Change-Id: Id904689164ca32df41118a23747c70048d8e6604 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* QtWidgets: use new QRegion::begin()/end() instead of rect()Marc Mutz2016-03-0210-54/+33
| | | | | | | Saves ~600b in text size on optimized GCC 5.3 Linux AMD64 builds. Change-Id: Ib542a128982fc53638780945014d903f2cbee9c3 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Fix QTextEdit/QQuickTextEdit undo bug - Part #2Dan Cape2016-03-022-6/+20
| | | | | | | | | | | | | | | | | | | | | | If a user selected the text "foo" and typed "bar", upon pressing undo, the text would change to "b". This is incorrect and does not match the functionality of QLineEdit or the default behaviours of Windows/OSX/Ubuntu. This was fixed by a change made to always merge two sequential inserts if they are not part of the same block. Previously the selection delete and the "b" were part of one edit block and "ar" was part of another. With this change, the selection delete and "bar" are part of the same edit block. Unit test changes are part of a separate review (Part #1) since they required changes in qtdeclarative. [ChangeLog][QtGui][Important Behavior Changes] Fixed QTextEdit to match undo functionality of QLineEdit to group two sequential inserts into one undo action. Task-number: QTBUG-38825 Change-Id: I76bf30e331e3526277c3e0ade58cf95b611fc117 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* QAbstractSocket::flush(): remove manual polymorphismAlex Trotsenko2016-03-015-20/+21
| | | | | | | | ... by making a function in the private class virtual. Change-Id: I45c25c6c59511a8e8821ca96b0cf28cbf1b2f267 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
* Report correct font underline position on OS XEskil Abrahamsen Blomfeldt2016-03-012-0/+8
| | | | | | | | | | | | Text was sometimes drawn without a proper gap between the baseline and underline. [ChangeLog][Text][OS X] Fixed underline position. Change-Id: I9b28d1ac39e18e8d98de92b354a1d635100853a9 Task-number: QTBUG-33708 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Use correct underline thickness on OS XEskil Abrahamsen Blomfeldt2016-03-012-0/+10
| | | | | | | | | | While the calculated underline thickness would be approximately correct for many fonts and sizes, it was sometimes incorrect, e.g. for 18 pt Helvetica. Found while investigating QTBUG-33708. Change-Id: Ic1d8f2d809c02235d8f15f0414536e04c2a7b844 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Use correct decoration for fallback font enginesEskil Abrahamsen Blomfeldt2016-03-011-2/+6
| | | | | | | | | | | The font engine itself specifies the line thickness, underline position etc. so we need to pass in the correct one, not the multi engine (which will just return whatever engine #0 prefers.) Change-Id: I2b2b92e7881df8a8310aedbc6efa304c3210c095 Task-number: QTBUG-33708 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/devLiang Qi2016-03-0194-307/+885
|\
| * Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-03-0194-307/+885
| |\ | | | | | | | | | Change-Id: Ic7aaa06f4a14b1aed61faa1a6e7f527ee0eeb96b
| | * SSSE3 optimized store of 24-bit formatsAllan Sandfeld Jensen2016-02-294-14/+93
| | | | | | | | | | | | | | | | | | | | | | | | Using shuffle and align storing our quint24 format can be done much faster. This in particular improves conversions to RGB888. Change-Id: I179748706a33a43fd6f60f5c40287317418c8867 Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
| | * Remove lib/fonts symlinking from configureLaszlo Agocs2016-02-291-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | The fonts directory is removed in 5.7. Avoid creating a broken symlink. Change-Id: I95d1970737f54810006c084436411fc95743f72d Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| | * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-02-2937-170/+456
| | |\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: tests/auto/corelib/io/qprocess/tst_qprocess.cpp Change-Id: Ib6955eb874b516b185b45d6c38cec646fbaa95f4
| | | * Track target widget when wheel events are receivedGabriel de Dietrich2016-02-299-24/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This issue is reproducible on OS X when using a Magic Mouse or a combination of Magic Trackpad and regular mouse. In these cases it's possible to start a scrolling gesture on one widget and move the mouse cursor over another widget. Although we send the wheel event phase information, we never made any use of it. This means that a widget would start scrolling even though it never received a ScrollBegin event. In this patch, we make sure the scrolling cycle is respected and that once a widget starts scrolling, it'll be recieving all the wheel events until a ScrollEnd event reaches the application. For those input devices not supporting a proper phase cycle, we introduce a new (undocumented) phase value, NoScrollPhase. If the wheel event phase is NoScrollPhase, then we ignore the current scroll widget and proceed as usual. This value is the default for wheel events. It's up to the platform plugin to set the proper phase value according to the data received from the OS. Finally, we fix a few of QWheelEvent constructors to properly initialize the phase and source properties. Task-number: QTBUG-50199 Change-Id: I3773729a9c757e2d2fcc5100dcd79f0ed26cb808 Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
| | | * Update QMAKE_LIB in win32-g++ mkspecBoris Pek2016-02-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `ar' tool from latest binutils shows warning: ar error: `u' modifier ignored since `D' is the default (see `U') Warning message includes word "error" so QtCreator processes it as error in UI. `ar' command-line option `u' might be dropped safely because it is unnecessary. Option `c' is added to suppress extra `ar' warnings. Other build systems are also affected. For example, automake: https://bugzilla.redhat.com/1155273 Change-Id: Ia378b720503d93b0c0c12ae7a5f38f4d7c32eee5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>