aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.12' into 5.13v5.13.0-beta2Qt Forward Merge Bot2019-04-068-38/+31
|\ | | | | | | Change-Id: I5b112e0e4021191c387da86bb5b0477fe0c4da30
| * Doc: Add the moduleheader informationVenugopal Shivashankar2019-04-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Although the doc project is named QtQuickControls, the repo is still called qtquickcontrols2 and the exported headers are installed under QT_INSTALL_PREFIX/include/QtQuickControls2. By default, Qdoc tries to look for the headers in a directory that matches the doc project name, which is not the right include directory in this case. Change-Id: I77889fe35c028a2fc903d49b571a564c57326c21 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * tst_dialogbuttonbox.qml: consolidate two similar testsMitch Curtis2019-03-291-24/+11
| | | | | | | | | | | | | | into one data-driven one. Change-Id: I7507765747dd984530e50df5cd08152b9d71cb66 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * tst_dialogbuttonbox.qml: use tryVerify() consistently to avoid flakinessMitch Curtis2019-03-291-8/+12
| | | | | | | | | | | | Change-Id: Ic18cca692b09f55818b9c99379aae4be72ba4159 Fixes: QTBUG-74711 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * Attempt to stabilize Tumbler::test_itemsCorrectlyPositionedMitch Curtis2019-03-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | I'm not sure if this will help (because I haven't been able to reproduce the flakiness, even in a CI VM), but the tumbler should really not still be spinning after we got the position of its items, so make sure it's stopped before doing any comparisons. Task-number: QTBUG-70597 Change-Id: I72555747b2ea4ef136cdaa13f7b0757be2624e73 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * Fix typo in ScrollBar's documentationMitch Curtis2019-03-281-1/+1
| | | | | | | | | | Change-Id: I3a26f24ad16f6330715ce62151895f28e4b856d3 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| * Default: fix highlighted ItemDelegate colorsMitch Curtis2019-03-273-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Make ItemDelegate respect highlightedText - Change ItemDelegate's highlightedText palette role from white to almost black (i.e inversion of "light" which is 0xFF090909), so that text shows up against a highlighted background. This also allows easily switching ComboBox to a dark style via palette customization. Fixes: QTBUG-72786 Fixes: QTBUG-74678 Change-Id: I5ad0d86de112f869edf0488d06bb308cdc900363 Reviewed-by: Massimo Callegari <massimocallegari@yahoo.it> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Mark BaseValidator::throwRecursionDepthError() as finalUlf Hermann2019-03-271-1/+1
| | | | | | | | | | | | Task-number: QTBUG-74512 Change-Id: I7b154d793c134a93aa3a48ade7d3ae785c44e7ea Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-273-6/+47
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I37f9f88a11946d5d67935c682273eb0aa8593f9b
| * DialogButtonBox: don't sort buttons based on their memory addressesMitch Curtis2019-03-222-2/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When two buttons' roles are equal, the code would fall back to comparing the buttons' memory addresses. This leads to random results, which are especially noticeable on Windows and with release builds. This patch fixes the issue by instead returning false if the roles are equal. This still satisfies the "comp(a,a)==false" requirement of strict weak ordering: https://en.cppreference.com/w/cpp/named_req/Compare The patch also changes the sorting algorithm used from std::sort() to std::stable_sort(). Although it doesn't appear to be necessary from the testing that I did, it is good to ensure that the order of equal elements is maintained. Fixes: QTBUG-70451 Change-Id: I47561604108b12bf8ec0c794a2372767f0b2e04e Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * QQuickComboBox: ensure we don't close popup on iOSRichard Moe Gustavsen2019-03-211-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On iOS (and Android), we give focus to a control on touch release (rather than on touch begin, which is normal on desktop). For a QQuickCombobox, this means that we will both handle focus and open the popup on touch release, and not focus on touch begin and open popup on touch release, like on desktop. Because of this, we need to be more careful about when we choose to close the popup as well, otherwise it will close down before it gets a chance to show on iOS. This patch will check why we lose focus on both the inner line edit and the combobox itself, and based on this, choose whether we should close the popup. Basically, if focus is just transferred between the popup button and the line edit, we choose to keep the popup open. Fixes: QTBUG-70161 Change-Id: Iec242c0b5570844868085480fdf96fc49d189b82 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Bump versionKari Oikarinen2019-03-211-1/+1
| | | | | | | | Change-Id: Icbbe5fba6bfa6b4bb14a174d2ffafb85f223e0bf
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-201-0/+6
|\| | | | | | | Change-Id: Id548fd29dd5cc357c4bd00c3c842006f2d62c758
| * Handle recursion depth errors in tst_sanity.cppUlf Hermann2019-03-181-0/+6
| | | | | | | | | | | | | | | | Implementations of QQmlJS::AST::Visitor are required to do so. Fixes: QTBUG-74512 Change-Id: I19d40d2d3a5d3588cad4caa7f0a48c13919077a0 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-166-11/+204
|\| | | | | | | Change-Id: If27c142786ad2457a80ce1ef65220834eda81e94
| * Fix DialogButtonBox content size calculationMitch Curtis2019-03-155-11/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some history: - f1f884d3 worked around an issue in DialogButtonBox. - c2fd8f7d fixed it by using contentWidth; i.e. the implicit width of the contentItem. It caused QTBUG-72372. - I tried to fix QTBUG-72372 with 6476de0b, but created (or exposed) QTBUG-73860. The problem in QTBUG-73860 can be seen with the following example: Dialog { id: dialog visible: true standardButtons: Dialog.Ok } The single 'Ok' button here will go outside of the dialog. The underlying issue can be seen by looking into DialogButtonBox.qml: implicitWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, (control.count === 1 ? contentWidth * 2 : contentWidth) + leftPadding + rightPadding) implicitHeight: Math.max(implicitBackgroundHeight + topInset + bottomInset, contentHeight + topPadding + bottomPadding) The implicit width of the box in this case is contentWidth * 2 (there is one button, so control.count === 1). This should result in the button taking half the width of the box and being aligned to the right: alignment: count === 1 ? Qt.AlignRight : undefined ... delegate: Button { width: control.count === 1 ? control.availableWidth / 2 : undefined } What actually happens is that the contentItem (ListView) is temporarily 0 until it gets its final size of 100. However, QQuickDialogButtonBox doesn't respond to this change in the ListView's contentWidth. This problem can be fixed by returning to c2fd8f7d's resizeContent() implementation, which uses contentWidth. Then, there is a second issue: Dialog { id: dialog visible: true standardButtons: Dialog.Ok width: 300 } The button here is also positioned outside of the box. The problem is that the contentWidth is based on implicitContentWidth: QQuickContainerPrivate::updateContentWidth() { // ... contentWidth = implicitContentWidth; // ... } implicitContentWidth is calculated by calling getContentWidth(): void QQuickControlPrivate::updateImplicitContentWidth() { // ... implicitContentWidth = getContentWidth(); // ... } In the case of horizontal alignment, QQuickDialogButtonBoxPrivate::getContentWidth() uses the implicit width of the largest button: for (int i = 0; i < count; ++i) { QQuickItem *item = q->itemAt(i); if (item) { totalWidth += item->implicitWidth(); maxWidth = qMax(maxWidth, item->implicitWidth()); } } // ... if ((alignment & Qt::AlignHorizontal_Mask) == 0) totalWidth = qMax(totalWidth, count * maxWidth + totalSpacing); The Default style button has an implicitWidth of 100. The DialogButtonBox in the example above is 300 pixels wide, so the button should be 150, and it is, thanks to its width binding. However, the DialogButtonBox uses contentWidth to size its contentItem (ListView), and the contentWidth is, as mentioned, 100: the implicit width of the button. So, the button ends up hanging over the side of the box, as it's larger than the box thinks it is. This problem is fixed by setting DialogButtonBox's contentWidth to the contentWidth of the contentItem (ListView). This makes DialogButtonBox use the explicit widths of the buttons rather than their implicit widths. Since the contentWidth is no longer implicit, we must also change any use of contentWidth in the implicitWidth binding to implicitContentWidth. While writing auto tests for this, they caught an issue where contentWidth wasn't updated, so now we call resizeContent() in QQuickContainer::setContentWidth(). Change-Id: I99ffda21b47aeb14d4382e453e87c4312f343a1c Fixes: QTBUG-72886 Fixes: QTBUG-73860 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * Merge remote-tracking branch 'origin/5.12.2' into 5.12Qt Forward Merge Bot2019-03-151-0/+60
| |\ | | | | | | | | | Change-Id: I9f41b1731d8307c3b8725dfffee97191d03a14a6
| | * Add changes file for Qt 5.12.2v5.12.2Antti Kokko2019-02-251-0/+60
| | | | | | | | | | | | | | | Change-Id: I024460c3dabc1240ed37f8bfd216b3bad81eebb5 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | Remove incorrect statement in SplitView's documentationMitch Curtis2019-03-151-2/+0
| | | | | | | | | | | | | | | | | | | | | State is saved into a byte array, not a string. Change-Id: Id5a62a281a43349d0fa5d6a8c69a25cba900f9c7 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | Doc: update qtquickcontrols2.differences.qdocMitch Curtis2019-03-141-3/+14
| | | | | | | | | | | | | | | | | | | | | Add SplitView and TableView. Change-Id: Ib049d12d6e922269ac80d2e9b10f37f5e274a567 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* | | Fix SplitView crash when using certain attached propertiesv5.13.0-beta1Mitch Curtis2019-03-112-14/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the attached property object was created on an item that SplitView doesn't manage, then its m_splitView member will be null, so check for that. Sometimes, an attached SplitView object will be created on an item that SplitView _does_ manage, but SplitView's own contentItem hasn't been created yet (see the comment in the QQuickSplitViewAttached constructor). In that case the SplitView will see the item added as a child of its contentItem eventually, and we just have to wait. While we are waiting, check access to our members in case they are null. Fixes: QTBUG-74276 Change-Id: I70b7f017e621e0d15c239b962f0407743eb70b15 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-095-28/+196
|\| | | | | | | | | | | Change-Id: I34009799fe4016339920a7f0884af4dbe6d71418
| * | Fix attached ToolTips using the timeout of the last shown tool tipMitch Curtis2019-03-082-1/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attached ToolTips share a single ToolTip item and set properties (such as delay) on it before showing it. Before 63899f3185, this wasn't a problem, but now QQuickToolTip has its own show() function that QQuickToolTipAttached calls. QQuickToolTipAttached passes -1 by default, which QQuickToolTip sees as the "default" and hence doesn't set a timeout at all. However, since that QQuickToolTip instance is shared, it still has a previous timeout value from the last time it was shown by a different QQuickToolTipAttached object. So, instead of QQuickToolTipAttached passing the timeout to QQuickToolTip::show(), make it set it on the QQuickToolTip instead. This ensures that it has the correct value if no timeout was specified for an attached tool tip. Task-number: QTBUG-74226 Change-Id: Iceed17bbb640a929fae3b9c975519df36cc2d210 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
| * | Add *.pro.user.* to .gitignoreMitch Curtis2019-03-061-0/+1
| | | | | | | | | | | | | | | | | | | | | To ignore files like foo.pro.user.4.8-pre1 Change-Id: I465b36eda8a3a57854c25802d003d86ca7356f86 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * | QQuickScrollView: respect the content size set on/by the flickableRichard Moe Gustavsen2019-03-052-27/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the flickable inside a scrollview has an explicit content size assigned, or if the flickable was created by the application, then don't fall back to calculate the content size. The reason is that it should not try to change the content size of a flickable that is controlled by the application (or by the flickable itself, in the case of ListView, ScrollView and TextArea). Sometimes e.g ListView will report a negative contentWidth, which is not considered illegal. From before we used to just check if the child flickable had a negative content size, and if so, take that as a evidence that the flickable was owned by the scrollview. But with this patch, we instead add two extra variables that keeps explicit track of whether or not we should read the content size from the flickable, regardless of the values it might return. With the two new variables, we also no longer need the "ownsFlickable" property, as we can instead use the new variables to check for the same. Fixes: QTBUG-72536 Fixes: QTBUG-74000 Fixes: QTBUG-72940 Change-Id: Iec87cc953557bf8c1bdb32a3c11b721c607fc19a Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | Update plugins.qmltypes for Qt 5.13Kai Koehne2019-03-0716-1845/+516
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-73484 Change-Id: I5c6019ec015a7d423dcc103d1acf23383c5b6239 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | | SplitView: fix revisions, imports and \since versionsMitch Curtis2019-03-0713-45/+47
| | | | | | | | | | | | | | | | | | | | | | | | Work was probably started before 5.12 but the patch ended up getting merged in time for 5.13. It seems that I forgot to update the versions. Change-Id: I19edf08158cca0967a7a536b3aee326e3b393d4c Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | | Explicitly set import namesKai Koehne2019-03-044-0/+8
| | | | | | | | | | | | | | | | | | | | | This makes sure the qmltypes target for qml_plugin's works. Change-Id: I4a7624aa2db2eb40b9b44f158e099c651b1249cb Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-03-0227-24/+786
|\| | | | | | | | | | | Change-Id: Ibd3a8a111ce70643199c64f41143f332a34826f8
| * | Fix tst_cursor::controls(containers) test failing after change in the ↵Friedemann Kleint2019-03-011-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows QPA The test failed in case the mouse cursor was within the view to be created. Move the cursor away to prevent that. Fixes: QTBUG-74130 Change-Id: I8d77fc9b4cc5380ddb06ba128bca7c1666357b50 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * | qtlite: Fix build the source code with -no-feature-shortcutMikhail Svetkin2019-02-284-7/+43
| | | | | | | | | | | | | | | Change-Id: I7247659b3c9f4634ff57bce1e55187def604e161 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * | QQuickMenu: allow enter/return to be used to activate itemsMitch Curtis2019-02-285-3/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this patch, only space was allowed. Windows 10 and macOS 10.14.2 both allow using enter to activate menu items. Change-Id: I64476347669ff73f233efd129563a18ba51618a5 Fixes: QTBUG-73354 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * | Remove the internal_module config to enable generation of cmake filesAndy Shaw2019-02-271-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After checking, it seems that this is not needed and was likely added by accident, so removing internal_module will enable the cmake file generation so QtQuickTemplates2 can be used in a project. Change-Id: I4a3287147c3c8afb715ba8e4d21b8af6fc1e48f6 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| * | Doc: state that negative scales for Popup are not supportedMitch Curtis2019-02-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This sentence was probably copied from Item's docs. Task-number: QTBUG-73687 Change-Id: If9f7554c78cbc47abc7c9fdabacc8025864b76e0 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| * | Doc: restructure and fill in Imagine customization sectionMitch Curtis2019-02-251-6/+23
| | | | | | | | | | | | | | | Change-Id: I1b34fe2df28c734395dc2a55340f2a7cb1629692 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| * | Add dialogs manual testMitch Curtis2019-02-227-0/+529
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As with the buttons manual test, there are a lot of possible combinations of dialogs, which makes automated testing very difficult. This test will allow us to see lots of different combinations all at once for a particular style. Change-Id: I42fa5a1e027c9f56bebf859078d3e54fe1902228 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
| * | Drawer: fix infinite positioning loopMitch Curtis2019-02-224-1/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the issue where Drawer would try to reposition itself forever, but does not address the fact that it is incorrectly positioned afterwards. Task-number: QTBUG-71290 Change-Id: Ibbd4baa84b66ab446ce3af2ef326f8c50e74216d Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
| * | Page: fix binding loopMitch Curtis2019-02-202-0/+13
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When Dialog (which derives from Page) has only its title set, there'd be a binding loop. A simplified version of the call stack: - QQuickPopup::componentComplete - QQuickPopupPrivate::prepareEnterTransition - QQuickItem::setVisible - QQuickPagePrivate::itemVisibilityChanged - QQuickDialog::implicitHeaderWidthChanged - QQmlBinding::expressionChanged <== Dialog.qml's implicitWidth binding - QQmlPropertyData::readProperty - QQuickDialog::implicitHeaderWidth - QQuickPage::implicitHeaderWidth - QQuickItem::implicitWidth <== QQuickPagePrivate::header, aka Label - QQuickTextPrivate::getImplicitWidth - QQuickTextPrivate::updateSize - QQuickTextPrivate::setupTextLayout - QQuickItem::setImplicitSize - QQuickItemPrivate::implicitWidthChanged - QQuickPagePrivate::itemImplicitWidthChanged - QQuickDialog::implicitHeaderWidthChanged - QQmlBinding::expressionChanged - QQmlAbstractBinding::printBindingLoopError Fix the issue by not emitting change signals if we're already in the process of doing so. Change-Id: I37d6fa35b1e70420e436c0e001f55035d7630542 Fixes: QTBUG-66494 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
| * Doc: Fix incorrect link to Number.toLocaleString()Topi Reinio2019-02-191-1/+2
| | | | | | | | | | | | | | Task-number: QTBUG-73849 Change-Id: I02b32f55fabc6274a071536234dd485bf4e9bd02 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
| * QQuickScrollView: only forward content size to flickable if set explicitRichard Moe Gustavsen2019-02-181-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | TableView monitors if the application sets an explicit contentWidth/Height, and skips calculating it when that is the case. So be more careful from ScrollView, and don't set it on the flickable if the application did not set it explicitly. By doing it this way, you can now set an explicit contentWidth/Height both in ScrollView and TableView, and it will be respected. Task-number: QTBUG-72536 Change-Id: Ib87fa6958881fccdc47f50133e996484392281b6 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Doc: minor language edit in titleNico Vertriest2019-03-012-2/+2
| | | | | | | | | | Change-Id: Ia84e572f6f16cc050991450a18f2e695e461280d Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* | qquickfusionstyle.cpp: Fix deprecation warningFriedemann Kleint2019-02-251-1/+1
| | | | | | | | | | | | | | qquickfusionstyle.cpp:85:31: warning: ‘const QBrush& QPalette::background() const’ is deprecated: Use QPalette::window() instead [-Wdeprecated-declarations] Change-Id: I5640132d28abf15f9e4dad474b27cc8f119b4d65 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | gifrecorder: fix process timing outMitch Curtis2019-02-251-1/+2
| | | | | | | | | | | | | | Give conversion a longer time to finish. Change-Id: Iacc403906f9094ffc688f8c98c401b88bc935961 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | gifrecorder: improve the codeMitch Curtis2019-02-251-22/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Rename startProcess() to waitForProcessToStart(), since that's what it does, and it makes it consistent with waitForProcessToFinish(). - Add ProcessWaitResult struct for error reporting and make both waitForProcessToStart() and waitForProcessToFinish() use it. This allows us to stop using QFAIL in helper functions, which will not abort the test. - Add some double quotes in debug output to help readability. - Add code comments to explain stuff that I've forgotten and had to look up. Change-Id: Ie54c0ee752d57acd3501b72025fc1eb482dfa238 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | gifrecorder: Use ffmpeg instead of the deprecated avconvVenugopal Shivashankar2019-02-251-7/+7
| | | | | | | | | | | | | | | | | | The libav-tools that provides the avconv tool is deprecated since Ubuntu 18.04 release. The ffmpeg pkg is the alternative suggested. Change-Id: I5d3d3b9409448402f67a7481827f0f1925cbb89f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* | Fix heap-use-after-free in tst_gifsMitch Curtis2019-02-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The return value of qPrintable should not be stored. The shortened ASAN output: ================================================================= ==23322==ERROR: AddressSanitizer: heap-use-after-free on address 0x6060002b4e58 at pc 0x7f8b035f7569 bp 0x7fff7ea38530 sp 0x7fff7ea38520 READ of size 1 at 0x6060002b4e58 thread T0 #0 0x7f8b035f7568 in QMetaObject::indexOfProperty(char const*) const /home/mitch/dev/qt5-dev/qtbase/src/corelib/kernel/qmetaobject.cpp:1015 #1 0x7f8b03687194 in QObject::property(char const*) const /home/mitch/dev/qt5-dev/qtbase/src/corelib/kernel/qobject.cpp:3891 #2 0x55a59f4cc085 in tst_Gifs::checkables() /home/mitch/dev/qt5-dev/qtquickcontrols2/tests/manual/gifs/tst_gifs.cpp:737 0x6060002b4e58 is located 24 bytes inside of 64-byte region [0x6060002b4e40,0x6060002b4e80) freed by thread T0 here: #0 0x7f8b0708c7b8 in __interceptor_free (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xde7b8) #1 0x7f8b02fcc0a2 in QArrayData::deallocate(QArrayData*, unsigned long, unsigned long) /home/mitch/dev/qt5-dev/qtbase/src/corelib/tools/qarraydata.cpp:167 #2 0x55a59f4cbf5c in QTypedArrayData<char>::deallocate(QArrayData*) /home/mitch/dev/qt5-dev-debug/qtbase/include/QtCore/../../../../qt5-dev/qtbase/src/corelib/tools/qarraydata.h:239 #3 0x55a59f4cbf5c in QByteArray::~QByteArray() /home/mitch/dev/qt5-dev-debug/qtbase/include/QtCore/../../../../qt5-dev/qtbase/src/corelib/tools/qbytearray.h:476 #4 0x55a59f4cbf5c in tst_Gifs::checkables() /home/mitch/dev/qt5-dev/qtquickcontrols2/tests/manual/gifs/tst_gifs.cpp:736 previously allocated by thread T0 here: #0 0x7f8b0708cf40 in realloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdef40) #1 0x7f8b02fcb451 in reallocateData /home/mitch/dev/qt5-dev/qtbase/src/corelib/tools/qarraydata.cpp:83 #2 0x7f8b02fcbf7f in QArrayData::reallocateUnaligned(QArrayData*, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>) /home/mitch/dev/qt5-dev/qtbase/src/corelib/tools/qarraydata.cpp:146 #3 0x7f8b02fd58fa in QTypedArrayData<char>::reallocateUnaligned(QTypedArrayData<char>*, unsigned long, QFlags<QArrayData::AllocationOption>) ../../include/QtCore/../../../../qt5-dev/qtbase/src/corelib/tools/qarraydata.h:233 #4 0x7f8b02fd58fa in QByteArray::reallocData(unsigned int, QFlags<QArrayData::AllocationOption>) /home/mitch/dev/qt5-dev/qtbase/src/corelib/tools/qbytearray.cpp:1914 #5 0x7f8b02fd63c1 in QByteArray::resize(int) /home/mitch/dev/qt5-dev/qtbase/src/corelib/tools/qbytearray.cpp:1875 #6 0x7f8b0373c3a0 in QUtf8::convertFromUnicode(QChar const*, int, QTextCodec::ConverterState*) /home/mitch/dev/qt5-dev/qtbase/src/corelib/codecs/qutfcodec.cpp:456 #7 0x7f8b0373c653 in QUtf8Codec::convertFromUnicode(QChar const*, int, QTextCodec::ConverterState*) const /home/mitch/dev/qt5-dev/qtbase/src/corelib/codecs/qutfcodec.cpp:983 #8 0x7f8b0374918b in QTextCodec::fromUnicode(QStringView) const /home/mitch/dev/qt5-dev/qtbase/src/corelib/codecs/qtextcodec.cpp:846 #9 0x7f8b0311c01a in qt_convert_to_local_8bit /home/mitch/dev/qt5-dev/qtbase/src/corelib/tools/qstring.cpp:5369 #10 0x7f8b031366cb in QString::toLocal8Bit_helper(QChar const*, int) /home/mitch/dev/qt5-dev/qtbase/src/corelib/tools/qstring.cpp:5359 #11 0x55a59f4cbd70 in QString::toLocal8Bit() && /home/mitch/dev/qt5-dev-debug/qtbase/include/QtCore/../../../../qt5-dev/qtbase/src/corelib/tools/qstring.h:556 #12 0x55a59f4cbd70 in tst_Gifs::checkables() /home/mitch/dev/qt5-dev/qtquickcontrols2/tests/manual/gifs/tst_gifs.cpp:736 Change-Id: I5a967607e7ebff5177261f32222b9f50ee65d35e Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-02-162-1/+16
|\| | | | | | | Change-Id: I0d52818c7b221a6434acc6c960090a13d3d9febe
| * QQuickTheme: make sure QQuickTheme instance gets destroyed before qAppKonstantin Ritt2019-02-141-0/+12
| | | | | | | | | | | | | | | | QFont data must not be held at the application destruction time to make the font database correctly dispose all acquired resources. Change-Id: Ifc4a28a89701cf5622e8289a688eb0d4344c81fd Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
| * Fusion: fix buttons colorsMitch Curtis2019-02-111-1/+4
| | | | | | | | | | | | | | | | | | Make Active and Disabled colors closer to Widgets' Fusion style. Task-number: QTBUG-70819 Change-Id: I61cf22eb4449b5443fa71349da8df2ff57ee9158 Reviewed-by: Nils Jeisecke <nils.jeisecke@saltation.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-02-0922-15/+799
|\| | | | | | | Change-Id: I8aded0949d38315d4d22fa511f83331d7caf3145