summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* QWidget: Fix typo in Mac size propagationGabriel de Dietrich2018-04-041-1/+1
| | | | | | | This amends commit f8b6d104b981ef420756c0c20f62b8013d93ae15. Change-Id: I77a48e68ec7db791b843fe4dfeddc4c6fedf6380 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Fix typoed integrity conditionKari Oikarinen2018-04-031-1/+1
| | | | | | | | Amends 594fe5c4636cb783bb7840efff4171e772ae906a. Change-Id: I0fb5ab79d895cfd9698db9b4a4394481299a7e1a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Cocoa: Make QMacNativeWidget paint correctlyMorten Johan Sørvig2018-04-031-3/+5
| | | | | | | | | | | | | QWindows with transparent pixels (of which QMacNativeWidget is an example) must be composited, even if they are content views. This will display the NSWindow background instead of solid black for the areas where the Qt backingstore has transparent pixels. Change-Id: Ibee1327e11bc64975900b4c5d632dd5f103da4c8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QCoreTextFontEngine: Fix build with Xcode 9.3Gabriel de Dietrich2018-03-301-1/+1
| | | | | | | | | | | | | Apple LLVM version 9.1.0 (clang-902.0.39.1) Error message: .../qfontengine_coretext.mm:827:20: error: qualified reference to 'QFixed' is a constructor name rather than a type in this context return QFixed::QFixed(int(CTFontGetUnitsPerEm(ctfont))); Change-Id: Iebe26b3b087a16b10664208fc8851cbddb47f043 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* doc: Improve QByteArray::fromRawData snippetSamuel Gaist2018-03-291-3/+3
| | | | | | | | | The current snippet uses integer literals that will trigger the Wnarrowing warning with recent version of gcc. This patch replaces them with character literals to fix this warning. Change-Id: Iffad495f24cc9d4c1674a7fe3f6b45c46a625ff8 Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
* rcc: prune dead wildcard matching codeOswald Buddenhagen2018-03-291-32/+29
| | | | | | | | | | | | | | | | clearly, rcc was meant to support wildcard patterns in <file> entries. however, since its inception, this code was broken: the exists() check was done first, so the decomposition into path and wildcard would never happen. as actually supporting wildcards woulds just complicate matters, simply remove that dead code. on the way, re-arrange the code in a way that is advantageous for subsequent changes, and insert a case that catches non-regular file nodes (this would have previously run into the wildcard code). Change-Id: Iac1a168b844ef5b176f6cc45d6a779fde0bec6f7 Reviewed-by: hjk <hjk@qt.io>
* QSemaphore: attempt to fix again the 64-bit Linux semaphoreThiago Macieira2018-03-291-13/+20
| | | | | | | | | | | | | | | | | This time, the issue was that we could race a wait and a wake. A multi- token waiter would not notice that the number of tokens changed because it only performed a fetch-and-OR, then waited on the high part which did not change. That means the futex_wait() would succeed, when we wanted it to have failed. So we have to bring back a portion of what commit 081c001deb75fa38385d3ff8cbbdb4f788529133 removed: we need to keep both the token count and the waiter count in the high word. Task-number: QTBUG-67214 Change-Id: I04a43ee94975482f9e32fffd151e467a9e0030b3 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Windows: handle multiple transient children when closing windowsMauro Persano2018-03-291-11/+7
| | | | | | | | | | On Windows, we must update the transient children of a window that's about to be destroyed or its transient children will be destroyed as well. This is already being done in the case of a single transient child, but there are still problems when there are more than one. Change-Id: Ib0de6767bf43dca508ecdb87cbdfedb59e9146e8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Allow compilation with clang-cl disguised as clJürgen Hunold2018-03-281-1/+1
| | | | | | Task-number: QTBUG-63512 Change-Id: I7e0c4e144262a175c39508090c935c73186fac65 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QFutureWatcher: Refer to convenience method resultAt in documentationKari Oikarinen2018-03-281-1/+1
| | | | | | | | | The future does not actually have a result() member function that takes an int. The correct function is resultAt(). But that is also available directly in the QFutureWatcher, so refer to that instead of advising to get to the future. Change-Id: I53d267b4b48b1171bf611e11130b9dacabc059a4 Reviewed-by: Martin Smith <martin.smith@qt.io>
* Fix MSVC2017 compilation with enabled relaxed constexpr on 32-bit targetOlivier Goffart2018-03-281-4/+6
| | | | | | | | | | | | | | | | | | | | The problem is that qCountLeadingZeroBits is calling qPopulationCount which is only conditionally constexpr, so qCountLeadingZeroBits can only be marked constexpr if qPopulationCount is also. On MSVC2017 64bit this is not a problem because it uses builtins function in this case. (which is not constexpr, but it works because the compiler is not forced to diagnose the problem because of the "?:" operator. The error being fixed is: qalgorithms.h(847): error C3615: constexpr function 'qCountLeadingZeroBits' cannot result in a constant expression qalgorithms.h(858): note: failure was caused by call of undefined function or one not declared 'constexpr' qalgorithms.h(858): note: see usage of 'qPopulationCount' Task-number: QTBUG-67259 Change-Id: I65a3dfae12ca49394bec14ffefdd41a07fee1c32 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QMacStyle: Fix spinbox implicit heightGabriel de Dietrich2018-03-271-1/+1
| | | | | | | We don't need to accommodate for the fake frame anymore. Change-Id: I2d84441d4239e1ff68f640dffda1a0d1a97fa2b3 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QMacStyle: Fix text color for disabled default buttonsGabriel de Dietrich2018-03-271-4/+5
| | | | | Change-Id: I7c6ba0c3818a3e269e0350153cbde355bafd249a Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QMacStyle: Remove CT_ToolButton related dead codeGabriel de Dietrich2018-03-271-29/+0
| | | | | | | | | sizeFromContents() just adds 10 points to the tool button size and returns. Therefore, the HITheme code that used to be shared with CT_PushButton becomes effectively dead. Change-Id: Ib0519b0037ec3097a00e2c14067d851040853499 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QMacStyle: SE_PushButtonContents is HITheme-freeGabriel de Dietrich2018-03-272-131/+42
| | | | | | | | This also removes a few HITheme-related functions that are no longer needed. Change-Id: I356938d1e99f5fed106c945a94050fa35db58716 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QMacStyle: Do manual button sizing for CT_PushButtonGabriel de Dietrich2018-03-271-40/+37
| | | | | | | | | We guarantee the same sizes as previously with HITheme for most common cases. Exotic cases may break and will be fixed along the way. Change-Id: I3e3e6ea702c7489c1cbaa821a30916f63c440c1f Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* sqlite: Support using execBatch() with duplicated named placeholdersAndy Shaw2018-03-271-0/+25
| | | | | | | | | | | | | | | Also expands the tst_qsqlquery::batchExec() test to account for this case and generally test the functionality. In addition it is made to be more robust to avoid any discrepencies with the testing data. The test in general is also cleaned up to enable more of it being tested with the different database drivers where possible. An expected fail is added for MySQL due to the fact that it has a bug where null timestamp entries are being converted to the current datetime when adding it as a bind value. Change-Id: I0061bd1c69ae35b4858afc49420f13ce59cf48ae Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* macOS: Fix memory leak in systemCaCertificatesPablo Marcos Oltra2018-03-271-1/+1
| | | | | | | | | | | We were releasing only the memory of latest iteration since cfCerts was being rewritten in every iteration, invalidating the RAII. Hence, we need to define the variable within the loop to ensure the object is released for every iteration. Task-number: QTBUG-66937 Change-Id: Iaa9365168728337c6cdaac4aef686652903cf5a9 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix QPainter save/restore of clipping enabled stateEirik Aavitsland2018-03-261-0/+5
| | | | | | | | | | | | | Clipping enabled state would not always be correctly restored for the raster engine (other engines work fine). The raster engine's QClipData object is sometimes shared between painter state objects on the save/restore stack. QClipData has its own enabled flag, and this could then come out of sync. Fix by making sure we sync the enabled state on restore. Task-number: QTBUG-58789 Change-Id: I81e6254ebb93df6e153bbef58e32a885273e3224 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Animation: Fix case where QEasingCurve::valueForProgress returns nanSvenn-Arne Dragly2018-03-261-21/+54
| | | | | | | | | | | | | | | | Previously, we would divide by zero in BezierEase::findTForX if factorT3 was zero when solving the cubic equation. This change fixes the problem by adding solutions for the special cases where the cubic equation can be reduced to a quadratic or linear equation. This change also adds tests that cover cases where the equation becomes quadratic, linear or invalid. Task-number: QTBUG-67061 Change-Id: I2b59f7e0392eb807663c3c8927509fd8b226ebc7 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
* QNetworkInterface/Linux: fix support for P-t-P tunnelsThiago Macieira2018-03-261-1/+8
| | | | | | | | | | | | | | | | The kernel stores the local address in IFA_LOCAL and the peer's address in IFA_ADDRESS. My testing with loopback, Ethernet, WiFi, OpenVPN TAP and TUN and Openconnect shows IFA_LOCAL is always passed and always correct, so we could have used just that, but let's leave the use of IFA_ADDRESS because that's also what all libcs' getifaddrs() do. [ChangeLog][QtNetwork][QNetworkInterface] Fixed a regression in reporting the local address of a point-to-point tunnel network interface. Task-number: QTBUG-67226 Change-Id: I04a43ee94975482f9e32fffd151eb393d1775580 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Revert "Detect C standard and try using the most recent"Friedemann Kleint2018-03-262-1/+2
| | | | | | | | | | | | | | The change causes a crash when compiling the xkbcommon 3rdparty library and compile failures (qtimageformats on Android). This reverts commit a47cb146809e32f43449dcfe9932833c2f0ab987. Task-number: QTBUG-67326 Task-number: QTBUG-67327 Change-Id: I5ddc4eccad699e3eaec535fd6a63d11b0026b42e Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* fixup oversight in rvalue overloads of operator+=() and operator<<()Eric Lemanissier2018-03-262-4/+4
| | | | | | | ammends 4dee5446bee9c7417bf6f5dc44294a0b7238a9ba Change-Id: Ia0ca27644eb71815a93d6e76681b8a9e61a4e7ab Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Remove CMake code for CMake < 3.1Kevin Funk2018-03-243-79/+5
| | | | | | | | | This removes the following functions from Qt5CoreMacros: - qt5_use_modules(...) Task-number: QTBUG-63519 Change-Id: I59769060a3a93686bf319b558c0ede55755fdb70 Reviewed-by: David Faure <david.faure@kdab.com>
* QSqlResult: use QVector<int> instead QList<int> for indexes valueChristian Ehrlicher2018-03-233-8/+9
| | | | | | | | Minor tweak: QList<int> is taking 64bit per entry, QVector<int> only 32bit - this should reduce memory usage a little bit. Change-Id: I3e17269feb4840343f5cecfc71f8fccd70edc80f Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* DBus: merge calls to set_source_files_properties() in CMake functionsRolf Eike Beer2018-03-231-4/+2
| | | | | | | This can handle multiple files at once just fine. Change-Id: I9dcf7b0c72df432f02200ac7f3967f36a408f306 Reviewed-by: David Faure <david.faure@kdab.com>
* Fix win32-clang-msvc build due to -Werror,-Wunused-private-fieldSergio Martins2018-03-231-3/+14
| | | | | | Task-number: QTBUG-63512 Change-Id: Ie1507faffc11be09d9ce5e95c3b537dd65bb6978 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix: avoid realloc when adding primitives to painterpathEirik Aavitsland2018-03-231-7/+0
| | | | | | | | | | Calling reserve() for every primitive added would defeat QVector's over-allocation strategy to avoid reallocs. Task-number: QTBUG-66677 Change-Id: I7bdafdfa4d3ef60b00752c11e1b803abba773658 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* QTableWidget: fix spelling errorRichard Moe Gustavsen2018-03-231-1/+1
| | | | | Change-Id: Ifd6f116a214d13328ccf0d070ef4517a3b53bf25 Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* Document an odditity in WinRTs SSL backendMårten Nordheim2018-03-231-3/+3
| | | | | | | | | | | | | | | Internally we use "Tls11" and "Tls12" from Microsoft's API for TlsV1_1 and TlsV1_2 respectively. However, in their documentation these values are defined to also include the lower TLS versions when you use them. We should document this. For "SslV3" TLS V1.0 support will also be enabled. https://docs.microsoft.com/en-us/uwp/api/windows.networking.sockets.socketprotectionlevel Change-Id: I0b20fb745eba40afc37e8430008872fc8174a72d Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* winrt: Fetch connection parameters when connection is successfulOliver Wolff2018-03-231-0/+1
| | | | | | Change-Id: Iaf5f5d93cd07429626d5c500ac04e67daada8e6e Reviewed-by: Andre de la Rocha <andre.rocha@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* winrt: Remove partially read datagrams from queueOliver Wolff2018-03-231-6/+2
| | | | | | | | | | According to the documentation, datagrams that were not completely read are discarded. Change-Id: Id3a038d8aeeba05e8c8f92b70877f5f5297b89ca Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
* winrt: Add initial setting of options and additional state checksOliver Wolff2018-03-231-2/+92
| | | | | | | | | | | | The initial settings are done for other socket engines too. The state checks return a message when they fail. Socket engine auto tests rely on these messages to be shown. Change-Id: If7734b453a24ecee4c3a028395ecdbb12859c871 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
* winrt: Remove unneeded functionOliver Wolff2018-03-232-37/+0
| | | | | | Change-Id: I62f3abcabf1a0e5f909c603cbdcf407e36bd0402 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
* winrt: Rework socket handlingOliver Wolff2018-03-232-98/+119
| | | | | | | | | | | | | | | | | | | | | | | | Buffer handling is now completely moved to the worker. Instead of moving data around all the time, the worker is responsible for buffer handling. When reads happen, the data that is read is used directly from the worker and its buffer is updated. With the previous approach it was possible, that transfers never completed. It was possible, that new data was read between calls of bytesAvailable and read and the availability of that data was never communicated to the user. If a read that does not read all the data happens, we signal, that there is still data available, so that the user is notified about that fact. At the same time we avoid unnecessary readyRead calls by blocking them until a read happens. To make future debugging sessions easier, categorized logging (including verbose) was added to the socket engine. Task-number: QTBUG-65556 Change-Id: I12020ffcccf8eb3efec9c36dc5b0e6c0ebef7eb5 Reviewed-by: Andre de la Rocha <andre.rocha@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* Avoid of bounds memory reads when scaling and mirroring imagesAllan Sandfeld Jensen2018-03-222-0/+30
| | | | | | | | | The bounds check we had wasn't complete for mirroring cases. Task-number: QTBUG-65387 Change-Id: I5333912621c1223f83b4f1b95f2b16d12b520bd2 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QMacStyle: Don't highlight square buttons text when pressedGabriel de Dietrich2018-03-221-4/+6
| | | | | | | | | | Native square buttons keep their text black when pressed or on. Plus using the QStyleOptionButton variable over the QStyleOption one where appropriate. Change-Id: Idba8197e64d408e8a0987f1ef9243fde08e3e839 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QMacStyle: Refactor button sizingGabriel de Dietrich2018-03-222-44/+47
| | | | | | | | | | We prepare for a better world without HITheme. Sadly, we can't guarantee Cocoa will be good enough as a replacement. So, expect more hardcoded values and margins. Change-Id: I915906b5dbfbfbfc8c7f5c3224fc0ed98562bb9f Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QMacStyle: Make CE_PushButtonBevel square if large enoughGabriel de Dietrich2018-03-222-37/+94
| | | | | | | | | | | | Meaning, if larger than the size of a regular NSButton. No intermediate size square buttons anymore. We'll try to get the closest one later, once the sizing problem is solved. We also refactor the button creation code a bit. Change-Id: I965520469546aea596cd1abec2309b40d70399ce Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QMacStyle: No more HITheme for CC_ToolButtonGabriel de Dietrich2018-03-222-73/+38
| | | | | | | | As for CE_PushButtonBevel, sizing is still pending. These two seem to go together anyway. Change-Id: I631c3f32ba201b16adbfa264a2920bfb636fb86f Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QMacStyle: No more HITheme for CE_PushButtonBevelGabriel de Dietrich2018-03-222-112/+156
| | | | | | | | For rendering only. Sizing is still pending and, consequently, square buttons since these depend on the button's intrinsic size. Change-Id: Iacadc02a1a75970b221543b32ca724c92e118ce1 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QMacStyle: Make CocoaControl a full typeGabriel de Dietrich2018-03-222-50/+80
| | | | | | | And one small code clean-up. Change-Id: I57c71ce2e18c95529ee45ba4fdfc68e21209e384 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Add env variable to set QNX screen debugging informationPasi Petäjäjärvi2018-03-221-0/+41
| | | | | | | | | | | | | | Enables different QNX Screen graphics system information as overlay. Following are valid options for the env variable: * fps, posts, blits, updates, cpu_time, gpu_time, statistics More info: http://www.qnx.com/developers/docs/7.0.0/index.html#com.qnx.doc.screen/topic/group__screen__debugging_1Screen_Debug_Graph_Types.html Change-Id: I8cbee44de31bb2aaf3892a063769f4740027242b Reviewed-by: Adam Treat <adam.treat@qt.io> Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
* Support GLX_NV_robustness_video_memory_purge in XCB-GLXDavid Edmundson2018-03-222-8/+58
| | | | | | | | | | | | | Nvidia doesn't handle suspend very well in Linux and textures get corrupted. To handle this Nvidia has a bespoke extension to query when this has happened. This patch checks if graphics have been reset and invalidates the surface. Task-number: QTBUG-56610 Change-Id: I0b97d539ce6cc2b9cfe41c71bf6efd4f68496cd6 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* offscreen: Check that native interface is valid before using itAndy Shaw2018-03-212-2/+3
| | | | | | | | | If the offscreen platform plugin is used on Windows then it can end up crashing since there is no native interface. This prevents a crash from occurring when these functions are called. Change-Id: I526fc0703771fa5f85b26d182ad3b15ef1a3ada5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QFile::rename: fix the error message if renaming a file by copy failsThiago Macieira2018-03-211-1/+4
| | | | | | | | | | The QFile out variable cannot be open because if out.open() succeeded, we could never reach this line. Instead, we want to capture *why* either the source or the destination failed to open. Task-number: QTBUG-66445 Change-Id: I940917d6763842499b18fffd15142f231bf34a47 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
* Make QCOMPARE(-inf, -inf) and QCOMPARE(NaN, NaN) succeedThiago Macieira2018-03-211-1/+11
| | | | | | | | | | | | This will make two floating points containing NaN compare as equal, instead of the regular nan != nan IEEE behavior (which isn't very useful in a unit-test framework). Note that this does not apply to indirect comparisons, for example via QVariant. Change-Id: I39332e0a867442d58082fffd150851acfdd18c23 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Make sure we can build with -no-feature-itemmodelUlf Hermann2018-03-2120-83/+114
| | | | | | | Various pieces of code have to be disabled in this case. Change-Id: I83b133f17e9f024016a79c9103293627185449d2 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Detect C standard and try using the most recentAllan Sandfeld Jensen2018-03-212-2/+1
| | | | | | | Fixes the default C version used with gcc < 5 Change-Id: I948dece961caed8e6b181e1c6e6b9dc43c46583f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix crash when deleting a QSqlQueryModel after closing the databaseMarcel Krems2018-03-211-2/+4
| | | | | | Task-number: QTBUG-66553 Change-Id: Ib5c04ebe5ac2b7581613e0044804072eb0980b2e Reviewed-by: Andy Shaw <andy.shaw@qt.io>