summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* make error() propagate from custom replace functionsOswald Buddenhagen2016-07-131-0/+66
| | | | | | | it didn't, which is rather unexpected. Change-Id: I8cdb7b1490a8c2207809812b93cc65fbe23a1b98 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* fix error() not propagating through if()Oswald Buddenhagen2016-07-131-0/+6
| | | | | | | | if() would simply "downgrade" a fatal error to a false condition, which is certainly not expected. Change-Id: Ie9c54f2bddf588856498bf795007b341b7c9363a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QCompleter::setModel(): Restore completion roleFriedemann Kleint2016-07-131-2/+17
| | | | | | | | | | When setting a QFileSystemModel as model, the completion role is set to QFileSystemModel::FileNameRole. This needs to be reset to the default Qt::EditRole when setting another model. Task-number: QTBUG-54642 Change-Id: Ie78d5d417e008ad05a2f995bdbc218b3ad1bc49c Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* QString::replace(): protect sought text and replacementEdward Welbourne2016-07-121-2/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When replacing each copy of one text with a copy of another, we do so in batches of 1024; if we get more than one batch, we need to keep a copy of the sought text and replacement if they're part of the string we're modifying, for use in later batches. Also do the replacements in full batches of 1024, not 1023 (which left the last entry in an array unused); marked some related tests as (un)likely; and move some repeated code out into a pair of little local functions to save duplcation. Those new functions can also serve replace_helper(); and it can shed a const_cast and some conditioning of free() by using them the same way replace() now does. (There was also one place it still used the raw after, rather than the replacement copy; which could have produced errors if memcpy were to exercise its right to assume no overlap in arrays. This error is what prompted me to notice all of the above.) Added tests. The last error proved untestable as my memcpy is in fact as fussy as memmove. The first two tests added were attempts to get a failure out of it. The third did get a failure, but also tripped over the problem in replace() itself. Added to an existing test function and renamed it to generally cover extra tests for replace. Change-Id: I9ba6928c84ece266dbbe52b91e333ea54ab6d95e Reviewed-by: Robin Burchell <robin.burchell@viroteck.net> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QPair: add test for pair of referencesMarc Mutz2016-07-111-0/+30
| | | | | | | | std::pair explicitly supports this (cf. std::tie), so check we do, too. Change-Id: Idc3c1739a4bc64a0da120dcf953def7e432f6f71 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QHashFunctions: test for hash equality of null and empty string typesMarc Mutz2016-07-111-0/+16
| | | | | | | | | | In Qt, null QStrings compare equal to empty ones, so add an explicit check that the corresponding hash values are identical, too. Ditto for QByteArray. Change-Id: I190fc95a765305928d9b6b0e4955433865b6b247 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QString: adapt chop() auto test as data-driven testAnton Kudryavtsev2016-07-111-18/+19
| | | | | | | | Thiago Macieira asked to do that. Change-Id: I9a07dad7ff2bfebc2f863e0e9f151aab66450bcf Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QString: add auto test for chop()Anton Kudryavtsev2016-07-071-0/+26
| | | | | Change-Id: I8fc65c65776a64cc92e8cba3993d17746be81ba1 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QComboBox: fix crash on setEditable(false) called from editTextChanged()Marc Mutz2016-07-061-0/+25
| | | | | | | | | | | | | | | | | | | | QLineEdit::setText() emits QLineEdit::textChanged(), which is connected to QComboBox::editTextChanged(). When a user slot connected to editTextChanged() sets QComboBox::editable to false, the line edit will be deleted in setEditable() and when control returns to QComboBoxPrivate::setCurrentIndex(), the formerly non-null 'lineEdit' has changed to nullptr, leading to a nullptr dereference when attempting to set the completionPrefix on lineEdit->completer(). Fix by re-checking 'lineEdit' after returning from the QLineEdit::setText() call. Add a test. Task-number: QTBUG-54191 Change-Id: I94154796cfde73fb490f8471c48b9d6f62825a92 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Q_(U)INT64_C is not a type, so don't use it as if it wasMarc Mutz2016-07-061-4/+4
| | | | | | | | | | These expressions only work because they contain no non-parenthesized commas and an int literal is last. Fix by wrapping only the integer literal in Q_(U)INT64_C. Change-Id: I6b8e508b6c7c022f4b3342f65c26aab89ce17702 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Testlib: generate_expected_output.py: Run in C localeFriedemann Kleint2016-07-051-0/+1
| | | | | | | | Otherwise, float numbers are formatted using a decimal comma in German, causing huge diffs and failures. Change-Id: Icd85a293d0564cac6be244eb0793611920d0c89c Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QUrl: Test that we do correctly accept valid schemesThiago Macieira2016-07-021-67/+95
| | | | | | | | ... and reject invalid ones. There was one error: we accepted schemes starting with pluses, dashes and dots. Change-Id: Ie585843cfb684bc3b6e3fffd145cfe12227ec4ad Reviewed-by: David Faure <david.faure@kdab.com>
* QTime: restore Qt3 compatibility in the QDataStream operatorsDavid Faure2016-07-021-1/+26
| | | | | | | | | | | | A Qt5 program writing a null QTime() using setVersion(QDataStream::Qt_3_3), and then a Qt3 program reading that, would lead to a weird QTime, with isNull=false, isValid=false, hour=1193, minute=2, second=47, ms=295. This commit restores interoperability, by writing out the expected value (0) for a null QTime rather than the -1 value used by Qt4 and Qt5. Change-Id: Icde468a8f6fc9434ef7018296725819b44d672af Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix tst_QNetworkReply::qtbug45581WrongReplyStatusCode() on WindowsFriedemann Kleint2016-06-301-1/+5
| | | | | | | | The file is read using CRLF line convention on Windows. Task-number: QTBUG-24226 Change-Id: Ie08fa603e29c80a42de4bfbfd1f4237f53c22b98 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* Finally fix crash in inplace-modified data-constructed imagesEirik Aavitsland2016-06-151-4/+70
| | | | | | | | | | | | | | Avoid all inplace modification of images using external data buffers. Since the QImage methods are documented to create a (modified) copy, there is afterwards no API requirement on the lifetime of the data buffer. This patch supersedes 509bc7e59c69937900cf258e64889a6e88edbcf0 Task-number: QTBUG-53721 Change-Id: I3ccc01619eb61d8630104449394e0b76df0af695 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* tst_QUdpSocket - remove insignificanceTimur Pocheptsov2016-06-142-5/+19
| | | | | | | | | | | | | | | | | | | | | | This is the second attempt to remove 'insignificant' from UDP socket test to: - make changes ending up in regressions more difficult (hopefully impossible) to merge - switch to BLACKLIST if needed - make flaky tests more visible. For now this 'back to significant' will be accompanied by extended BLACKLIST. New in BLACKLIST: * OS X - datagram size-related problems (fixed in 5.7) * OS X - multicastLeaveAfterClose - will probably stay BLACKLISTED, seems to be a Darwin's quirk, can be fixed in OS X >= 10.10. * windows ... tst_QUdpSocket::echo seems to fail randomly on OS X/linux and it looks like it fails at the same time on different machines, should be something server-related (a guess only). Change-Id: Ib344348ffab03fab1b9309b80449a04d8ce247c6 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix UNSIGNED values in QMYSQLJesus Fernandez2016-06-141-0/+39
| | | | | | | | | | | | | | The unsigned flag in columns was ignored when creating the list of bound values in a mysql table. So the result iteration with QSqlQuery::next stops after the first wrong truncated value. [ChangeLog][QtSql] Fixed QSqlQuery::prepare value truncation error when using UNSIGNED values in a MySQL database. Task-number: QTBUG-53969 Task-number: QTBUG-53237 Change-Id: I10d977993445f2794f1dd8c88b2e83517ef524f3 Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
* QSslSocket (OpenSSL) - handle abort/close on sslErrors emittedTimur Pocheptsov2016-06-141-0/+27
| | | | | | | | | | | | If a user's code, attached to sslErrors signal, calls abort/close or disconnectFromHost but our SSL socket was configured not to verify a peer, no need to continue handshake after calling checkSslErrors (and finally crashing on invalid 'ssl' pointer). Task-number: QTBUG-53906 Change-Id: I7f185511d278f9d6f16e7d6c5ba424707141459c Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* tst_QTcpSocket: Replace insignification on Windows by BLACKLIST.Friedemann Kleint2016-06-102-2/+13
| | | | | | | | | | Partially reverts f3939d943ed132eaf3daead797d961c3ffbc31a5. Task-number: QTBUG-52714 Task-number: QTBUG-49332 Task-number: QTBUG-49333 Change-Id: I1f1b3278134b1e6156c0cb7006d396154c776a46 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* Fix qplugin autotest on WindowsJoerg Bornemann2016-06-081-23/+12
| | | | | | | | | | | | | Since Qt 5.0.0 we never built the test plugins on Windows, because we checked for the existence of QtCore[d]4.dll, and the actual test does not complain if it cannot find any plugins. Use the right conditions to check for debug/release Qt builds on Windows. Use subdirs dependencies on every platform and then actually pass the right variable to SUBDIRS. Clean up the pro file while we're at it. Change-Id: I099f30afd445fbf43dc5677d256ffe55b27639b3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Revert "Insignifify qfileinfo on Windows, like QDir".Friedemann Kleint2016-06-081-2/+0
| | | | | | | | | This reverts commit 55655abfaf1fbe09af2eedfde413e862bc6c85e2. The crashes in release mode cannot be locally reproduced. Change-Id: I4e7b1defbeac5d5512b2fa82a367d2e04e3c37a4 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* Revert "Insignifify qdiriterator test"Friedemann Kleint2016-06-081-2/+0
| | | | | | | | | This reverts commit b373d183de4249c938935ff357c50c415b69f247. The crashes in release mode cannot be locally reproduced. Change-Id: I38ff5e9e045cff0e94e24ca07fb6e18e88b677c7 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* Re-enable tst_QDir on Windows.Friedemann Kleint2016-06-081-2/+0
| | | | | | | Partially revert f3939d943ed132eaf3daead797d961c3ffbc31a5. Change-Id: I67e4d8973bc18d9cd77750c6379221d34e9484b3 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* Add support for 8bit encodings not ASCII compatible in QXMLStreamWriter.Luca Bellonda2016-06-081-0/+39
| | | | | | | | | | | | | | | When using a 8 bit encoding to write a file, a test discovers if the encoding is really ASCII compatible by examining a letter and one of the XML reserved characters. EBCDIC, in the current base, was not well handled. [ChangeLog][QtCore][QXmlStreamWriter] Fixed a bug that prevented the generation of valid XML files when using encoding with 8 bit per character but not ASCII compatible. QXMLStreamWriter generated XML markup using always ASCII in this case. Change-Id: I9c86a122dd91b2290d50c358638442f99777d4ae Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QDebug: fix streaming of QCharsMarc Mutz2016-06-081-3/+3
| | | | | | | | | | | | | | | | | | | | Commit 9ef3ff30 introduced a new function, putUcs4(), to output QChar, char16_t, char32_t as a, possibly escaped, character literal, but got the order of stream modifiers wrong. Instead of applying the field width to the 'ucs' streaming, it applied it to the prefix '\u'. The same problem exists for the pad char, leading to the result '00\ue4' for a QChar containing ä (LATIN SMALL LETTER A WITH DIAERESIS) Fix by reordering the elements streamed so that the prefixes come last. Added a test. Change-Id: I6eaa0586501b9e780aaa3bb5dcec0e5c2f86a219 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_QFileSystemModel: Remove Win32LongFileName().Friedemann Kleint2016-06-081-18/+0
| | | | | | | | | Modern SSD drives no longer have short file names enabled, causing the test to fail. Task-number: QTBUG-29403 Change-Id: I2e9866d8f8a6ed3df9d2dc6630b8cfa47ade0728 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Rewrite test tst_QDir::cdBelowRoot() to be data-driven.Friedemann Kleint2016-06-081-28/+35
| | | | | | | | Limit the macro #ifdefery and allow for more test cases. Task-number: QTBUG-53712 Change-Id: I2c185efc7c3b8fcd0217d2021bd98ab6044b5aee Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Enable testStyleOptionInit for all styles and fix affected styles.Hannah von Reth2016-06-061-6/+3
| | | | | Change-Id: I7cb759445342ecb58d5187ddd4a22e41fdea084a Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Fix race condition in tst_QDBusConnection::pendingCallWhenDisconnectedThiago Macieira2016-06-061-9/+30
| | | | | | | | | | | | | | | | | | The test sent a message and hoped that the "delete server" would cause the server object in the QDBusConnectionManager thread be deleted before it could receive and process the message. That's racy, because on some CI machines, it did and then sent back an error reply indicating the object sought was not found. Instead, let's use a child process that we can kill to make it exit at the right time. I've chosen to use dbus-daemon itself, because that lets us test the actual conditions that triggered the original bug: the daemon getting killed during a desktop session shutdown on Linux. Change-Id: I87e17314d8b24ae983b1fffd1454483aea87c921 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* Diaglib: Extend class information for QWidget dumps.Friedemann Kleint2016-06-041-2/+44
| | | | | | | Output the class hierarchy until a base class within QtWidgets is found. Change-Id: I0ecee22e2ead1dea8b39cce8ca2f0739290aac22 Reviewed-by: Alexandru Croitor <alexandru.croitor@theqtcompany.com>
* tst_QTemporaryFile: Run in temporary directory.Friedemann Kleint2016-06-041-4/+4
| | | | | | | | | The test leaks a file (named qt_...xxx) in QDir::tempPath(). Moreover, when tests fail, it can happen that more files are leaked and subsequent runs do not recover since the check for non-existence of those files fails. Change-Id: Iaea6d09ee7c271903a1b9c63e263c19f9e90bba9 Reviewed-by: David Faure <david.faure@kdab.com>
* Remove tst_QWidget::immediateRepaintAfterShow().Friedemann Kleint2016-06-041-20/+0
| | | | | | | | | | | | | | | | | | | | | | | | It tested whether a paint event was received when calling QWidget::repaint() right after QWidget::show() without waiting for the window to be exposed. This caused a QEvent::UpdateRequest to be sent, which ended up in QWidgetBackingStore::sync() which returns after checking QWidgetBackingStore::discardSyncRequest(), since Qt::WA_Mapped is not set on the non-exposed widget. The test passed on Windows since it contains one call to QCoreApplication::processEvents() which causes the the initial WM_PAINT message to be processed in QWindowsWindow::handleWmPaint() which calls QWindowSystemInterface::flushWindowSystemEvents() and causes Qt::WA_Mapped to be set. This seems counter to the intention of the test. Remove the test since it won't pass anymore in Qt 5 unless Qt::WA_Mapped is set. Task-number: QTBUG-26424 Task-number: QTBUG-38327 Task-number: QTBUG-39842 Change-Id: Iede026d52825dcf1f2e9014a316d26d260309214 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Blacklist modalDialogClosingOneOfTwoModal on OS XMorten Johan Sørvig2016-06-041-0/+2
| | | | | | | | | Passes locally (on 10.10), but seems to have become unstable on the CI system. Task-number: QTBUG-53790 Change-Id: I0432fca4121b97bcdd6cec529fc4e148dfb8c1ab Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.6.1' into 5.6Liang Qi2016-06-021-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | This merge also blacklists a flaky tst_QGL::clipTest test on OpenSUSE 13.1. Conflicts: src/network/socket/qnativesocketengine_winrt.cpp tests/auto/opengl/qgl/BLACKLIST Task-number: QTBUG-53133 Change-Id: I14b431aa5a189b7dd1d3e2dfff767d15df20fde3
* | Blacklist tst_QOpenGLWidget::stackWidgetOpaqueChildIsVisible test.Alexandru Croitor2016-06-011-0/+2
| | | | | | | | | | | | | | It fails randomly on Windows, possibly due to timing issues. Change-Id: I0ef74f203455eb4ea8aeee4c8fc9bf1fbf6fb8ff Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Don't alter input string in QTextLayout with ShowLineAndParagraphSeparatorsEskil Abrahamsen Blomfeldt2016-06-011-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When ShowLineAndParagraphSeparators was set, we would replace the separator character in the user's string in some cases, since we never detached from the input string and just const_cast the pointer to the shared buffer. [ChangeLog][QtGui][Text] Fixed bug where a QTextLayout with ShowLineAndParagraphSeparators would modify the layout's input string. Task-number: QTBUG-42033 Change-Id: I92f9100b750f16e52b38b718245c13e5c4a0ebb9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Fix bugs causing Thin font weights to be ignored or mishandled.Jake Petroules2016-06-011-2/+0
| | | | | | | | | | | | Task-number: QTBUG-53196 Change-Id: If12b3cab3d8de5e0e452fca844b0a484c29e9e86 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | tst_QPlainTextEdit/tst_QTextEdit: Do not output unprintable characters.Friedemann Kleint2016-05-312-12/+26
| | | | | | | | | | | | | | | | | | | | | | The test selectWordsFromStringsContainingSeparators() duplicated in boths tests caused tab and Nbsp characters to be output to the log, which upsets editors. Use an array of ushort instead of a wasteful QStringList and output the hex codes for the unprintable characters. Change-Id: I08724268f376b4c0da492b4109570e44f7d4a3fb Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Fix opaque texture-based widgets not being always shown.Alexandru Croitor2016-05-301-0/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Whenever a regular QWidget contains a child render-to-texture widget (like a QOpenGLWidget) that is opaque (attribute Qt::WA_OpaquePaintEvent is set) and completely covers the parent geometry, the child widget would not be shown. This happens because QWidgetBackingStore::doSync contains a check to see if an opaque child completely covers its parent, in which case it does not draw the parent, and only draws the child. This is an issue if the widget is actually a texture-based one, because for it to be seen on screen, the parent widget has to be redrawn with a proper blending mask, so that the rtt widget gets properly composed into the place where the mask is. The fix consists in keeping the parent widget being marked dirty, in case it has an opaque texture-based child that completely covers it. This will force a redraw of the parent widget with a proper blending mask. Change-Id: If1feec04b86bff2c49158b8d72f175cec252dea1 Task-number: QTBUG-52123 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Fix crash when connecting a non-PMF with Qt::UniqueConnection...Thiago Macieira2016-05-301-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | ...if a PMF connection had already happened. Since UniqueConnection isn't implemented for non-PMFs (functors and lambdas aren't comparable, even if static member functions or non-member functions are), we pass a null pointer for comparison argument. The disconnect() code already protected against a null pointer there, but not the connect code path with Qt::UniqueConnection Change-Id: I87e17314d8b24ae983b1fffd145324beced0494d Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Dario Freddi <dario.freddi@ispirata.com>
* | Force the use of the C++11 alignof keyword instead of an extensionThiago Macieira2016-05-291-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the compiler supports C++11 alignof, let's use it. No point in perpetuating the use of __alignof__ or __alignof. There's a fallback implementation in qglobal.h that works even without compiler extensions. We can't drop it just yet (alignas is not a required C++11 feature), but at this point I doubt that fallback is used anywhere anymore. The tst_compiler test was wrong to use alignof(variable). That's not permitted by the standard nor would it work with our fallback implementation. MSVC 2015 enforces this, but ICC, GCC and Clang don't. Change-Id: Ifea6e497f11a461db432ffff1448abfa86672c63 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | tst_QNetworkReply: Un-blacklist recently fixed test.Edward Welbourne2016-05-251-4/+1
| | | | | | | | | | | | | | | | | | | | A recent fix now makes authenticationCacheAfterCancel(http+socksauth) work again, so un-blacklist it. Added a helpful comment while I was at it. Change-Id: I2d7eae8d80c12957d22659a82e5072301735c41f Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* | Fix parsing of tzfile(5) POSIX rule zone names with bracket quotesThiago Macieira2016-05-241-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | POSIX.1-2001 allows quoting a zone name so that it can contain other characters besides letters, by enclosing it in angle brackets ('<' and '>'). This hadn't been used until recently (tzdata2016b), when the Asia/Barnaul rule started using a zone name "+07" (the name variable contained the value "<+07>-7"). Thanks to Paul Eggert for reporting and investigating the root cause. Task-number: QTBUG-53071 Change-Id: Id5480807d25e49e78b79ffff1449bc410776cb66 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Avoid missing paints when resizing GV with QOpenGLWidget viewportLaszlo Agocs2016-05-241-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is nothing guaranteeing there will be a paint request after resizeViewportFramebuffer() is called. However we must not be left with a framebuffer with uninitialized content. So trigger an update. Include also a half-hearted autotest. QOpenGLWidget (or QGLWidget) viewports have not been autotested at all. Try to verify that it is functional at least, even if we cannot check the actual output. Change-Id: I34d78fe32e94c39dad919216b5a4f4bb2aea3cc2 Task-number: QTBUG-52419 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* | QMenu auto-test: Add test for two-level tearable menusGabriel de Dietrich2016-05-191-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has been fixed in 5.6.1 but we can afford the extra test to guard against regressions. The setup for this test is two menus, one parent of the other. The submenu is tearable. We open the parent menu, open its submenu and then move the mouse cursor straight over the submenu's tear-off area. The submenu should stay open even after a short delay. Change-Id: Ia8ad326d78dde31b6dd91b0ebacf0db1898715d4 Task-number: QTBUG-53068 Reviewed-by: Błażej Szczygieł <spaz16@wp.pl> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* | QtWidgets: Reduce paint events when resizing native widgetBłażej Szczygieł2016-05-191-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch reduces paint events by removing code which sets native widgets dirty in QWidgetWindow::handleExposeEvent. Native widgets are also marked dirty in QWidgetPrivate::drawWidget, so it is enough for proper painting. This restores Qt4 behavior when one resize means one repaint for native widgets. Without this patch the native widget is marked as dirty on every expose event, so one repaint is from syncBackingStore and second (or more) is from marking the widget dirty explicitly. This patch improves performance of native widgets and it also reduces locks when paint event is v-synced, e.g. on OpenGL swap buffers or on any other technology like VDPAU, VA-API, etc. Added autotest for checking number of paint events for native widgets. Task-number: QTBUG-50796 Change-Id: I4e1649069e2e73d15b038fd1834d0551915252ee Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Merge remote-tracking branch 'origin/5.6.1' into 5.6Liang Qi2016-05-193-1/+49
|\| | | | | | | | | | | | | Conflicts: src/network/socket/qnativesocketengine_winrt.cpp Change-Id: I8edb72f8ba958d80c3d7993b3feaaae782ca8d9c
| * ICO image format: fix regression in writing when size >= 256Eirik Aavitsland2016-05-133-1/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit c6c9304, the earlier size limit of 128 was raised to the format's defined maximum of 256. But the required special storage of this size in the image structures was not implemented. Hence, attempting to store such big icons would result in invalid image files. Fix the size storing details, and add some autotests of ico format writing since that was practically uncovered. Task-number: QTBUG-53259 Change-Id: I00e17a04e90c32dcf1124ba5adaf53728fb74dc7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | QMenuBar: nested parenting fixFelix Bourbonnais2016-05-181-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | QMenuBar now receives a parent changed event for each of its parent, grand-parent, ... This fixes a crash caused by an invalid QWidget pointer and makes sure the keyboard shortcuts events are relayed to the menu bar in all parenting/re-parenting cases by installing an event filter on each parent Task-number: QTBUG-53205 Change-Id: I419e6cbc52e28a67fb08a848a7161b4cb8ae4ae5 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io> Reviewed-by: Błażej Szczygieł <spaz16@wp.pl>
* | Moc: fix crash when a file ends with \\\rOlivier Goffart2016-05-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | make the 'cleaned' more robust by making sure we do not read past the buffer in some cases. We must also use resize and not reserve on the outpt buffer because reseve is meant as a hint and we are not supposed to write past the size of the QByteArray even if it is reserved. [ChangeLog][moc] Fixed crash on file ending with \\\r Task-number: QTBUG-53441 Change-Id: I901e6c0ffc7f8877de3d07fd08cf26495461d294 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com> Reviewed-by: Robert Loehning <robert.loehning@qt.io>