summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* QStringList: add contains(QLatin1String) overloadAnton Kudryavtsev2017-03-202-6/+35
| | | | | | | | | ... to avoid the expensive conversion from QString to QL1S. [ChangeLog][QtCore][QStringList] Added contains(QLatin1String) overload. Change-Id: Ie75839ce9e46e03fe5155a02c7dcf00277b95c8d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QFactoryLoader: use QStringLiteral more judiciouslyAnton Kudryavtsev2017-03-191-2/+2
| | | | | | | | Replace it with QL1S in overloaded functions. Saves some text size. Change-Id: Ie1436a787fb3052157880234ca180fefce5a8412 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Split fetchTransformedBilinear and fetchTransformedBilinear64Allan Sandfeld Jensen2017-03-191-356/+289
| | | | | | | Split out basic fetching to share it between the two. Change-Id: I6c27a7cea3a5c10b511232edc68bd32490514a27 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Basic Vulkan enablersLaszlo Agocs2017-03-1749-18/+9015
| | | | | | | | | | | | | | | | | | | | | | | | | | For Android, Windows and xcb. Verified on Win10 with NVIDIA, Win10 with AMD, Android with Tegra K1, Android aarch64 with Tegra X1, and Linux aarch64 with Tegra X1 (Jetson TX1, L4T). Introduce QPA-based Vulkan library loader, core function resolver, and instance creation support. In addition to creating a new VkInstance, adopting an existing one from an external engine is supported as well. The WSI specifics are hidden in the platform plugins. Vulkan-capable windows use the new surface type VulkanSurface and are associated with a QVulkanInstance. On Windows VULKAN_SDK is picked up automatically so finding vulkan.h needs no additional manual steps once the LunarG SDK is installed. [ChangeLog][QtGui] Added support for rendering to QWindow via the Vulkan graphics API. Task-number: QTBUG-55981 Change-Id: I50fa92d313fa440e0cc73939c6d7510ca317fbc9 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* QPixmap: move mask functions into QPlatformPixmapLouai Al-Khanji2017-03-173-69/+81
| | | | | | | | These used to be in QPixmapData in Qt4, allowing platforms to override mask handling. Useful when native 32-bit ARGB might not be available. Change-Id: I1fcb77222ee4bc4705a8b4c614c9d5c3938c47ba Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QChar: add (char16_t) and (wchar_t) ctorsMarc Mutz2017-03-172-0/+25
| | | | | | | | | | | ... for better std C++ integration. [ChangeLog][QtCore][QChar] Added constructors from char16_t and, on Windows, wchar_t. Change-Id: I2d18ea3a37e869b8ea9f4036d7200d9d13c7d929 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix postgres notification subscription on LISTEN failureLorenz Haas2017-03-161-0/+1
| | | | | | | | | | | Register a notification only if the LISTEN call was successful. This behaves now like the UNLISTEN case: the notification is only unregistered if the call was successful. Change-Id: I2b18ec3a619fea5bed0a319013ad9df4b9e15456 Reviewed-by: Matt Newell <newellm@blur.com> Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* Make Q_ASSERT() usable in constexpr functionsMarc Mutz2017-03-162-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need Q_ASSERT in (C++11) constexpr functions, and the only way to inject them in C++11 is to use the comma operator. E.g. in QLatin1String: constexpr QLatin1Char at(int i) const { return assert(1 >= 0), assert(i < size()), m_data[i]; } The main problem with our existing Q_ASSERT is that while it is a ternary expression in active mode, it was a statement in passive mode. This is easily fixed by dropping the do-while loop and leaving just its parenthesized exit condition. Add a cast to void, too, ensuring that Q_ASSERT has type void in both passive and active modes. But even in C++14 constexpr functions, which accept several statements, Q_ASSERT needs to have a path through its conditionals that is constexpr, but neither qt_assert(_x) nor qt_noop() are constexpr. Nor can they be in C++11 (no void returns in C++11 constexpr functions). I fixed this by replacing qt_noop() with static_cast<void>(0). The void cast is required so both 2nd and 3rd arguments to the ternary are void (mixing void and non-void branches in the ternary is only allowed if the void leg is a throw-expression[1]). As a drive-by, adjust to style guide, remove overparenthesization and reverse the conditional in the ternary. Apply it to QLatin1String where we had the problem that constexpr functions had a narrow constract. [1] should probably be extended to any [[noreturn]] void function, e.g. std::terminate(). [ChangeLog][QtCore][QtGlobal] Q_ASSERT() and Q_ASSERT_X() now always expand to expressions of type void that are usable in constexpr contexts. This makes them usable in both C++11 and C++14 constexpr functions. Change-Id: I09c396bc0034ac344cfaadc6f8cbeb1b7b0cbabc Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Make QWindow's windowState a QFlags of the WindowStateOlivier Goffart2017-03-1633-332/+355
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reflects QWidget API, and restores some behavior from Qt4. Some WM can have several state at the same time. On Plasma for example, when a window is both maximized and minimized, the "maximized" checkbox is checked from the taskbar entry. The API of QPlatformWindow was changed to take a QFlag and the platform plugins were adapted. - On XCB: Always send the full state to the WM. And read the full state. - On Windows: The code was originally written with '&' in Qt4, and was changed to == when porting. Some adaptation had to be made so the states would be preserved. - On macOS: Only a single state can be set and is reported back for now, with the possibly to expand this in the future. - Other platforms: Just do as before with the effective state. Task-number: QTBUG-57882 Task-number: QTBUG-52616 Task-number: QTBUG-52555 Change-Id: I7a1f7cac64236bbd4c591f796374315639233dad Reviewed-by: Gunnar Sletta <gunnar@crimson.no> Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* Stop using sqlite3_enable_shared_cache: deprecated on macOSThiago Macieira2017-03-161-2/+1
| | | | | | | | | | | qsql_sqlite.cpp:643:5: warning: 'sqlite3_enable_shared_cache' is deprecated: first deprecated in macOS 10.7 [-Wdeprecated-declarations] https://www.sqlite.org/c3ref/enable_shared_cache.html says to use the flag to sqlite3_open_v2() Change-Id: Ib499cebaa4c4489b90b9fffd149d3d5bf9434ae5 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* Add support for recursive filtering in QSFPMFilipe Azevedo2017-03-142-98/+253
| | | | | | | | You can now use the recursiveFiltering property to recurse into children to find potential matching children to filter in. Change-Id: I411a2fb29489fd56b9c881b3e6b8d1860cce630c Reviewed-by: Stephen Kelly <steveire@gmail.com>
* Deprecate QSignalMapperOlivier Goffart2017-03-146-137/+34
| | | | | | | | | | Does not make much sense now that we can connect to lambda functions [ChangeLog][QtCore][QSignalMapper] QSignalMapper is now marked as deprecated. Change-Id: I89135f23fdf16b42142a125eb7c9a86084c90bfc Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
* Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-03-14146-1084/+2023
|\ | | | | | | | | | | | | Conflicts: src/widgets/widgets/qpushbutton.cpp Change-Id: I615de00e6e64540c50f658d4d8ab3e002d701a81
| * Reintroduce a directed QMetaType::typeName arrayThiago Macieira2017-03-091-10/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit fb376e0fcc8d2d0a1731a588bfc6497d05e090e6 removed an array that facilitated returning the names of built-in types, to avoid the jump tables from the switch statement. This commit brings it back but makes the array a compile-time constant string offset table. The array is created by way of a set of C++11 constexpr functions, so we require that compiler feature. I've tested that MSVC 2015 does support it as well as the ICC 17 when masquerading as MSVC 2015, so I've enabled for that too. The only compiler left out is MSVC 2013. If we didn't need to support MSVC 2015, this could have been written more simply with C++14 relaxed constexpr. This also adds unit tests to confirm that QMetaType::typeName() does return null when we said it would. We're testing QMetaType::User-1 (which we'll likely never use) and QMetaType::LastWidgetsType-1 to select something inside the range of the built-in types. Task-number: QTBUG-58851 Change-Id: I4139d5f93dcb4b429ae9fffd14a33982891e2ac1 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Build fix for -no-feature-sliderPaul Olav Tvete2017-03-092-0/+6
| | | | | | | | | | Change-Id: Ibd7d0c2182c6a11f6d595b6d1015ee7de2d35866 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * QMacStyle: update QTabBar styleOleg Yadrov2017-03-085-207/+310
| | | | | | | | | | | | Task-number: QTBUG-58266 Change-Id: I135e4dae44e2e97d73b7c7c97d8e682bcf459d75 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
| * moc: Add support for C++17 nested namespaces (N4230)Olivier Goffart2017-03-081-1/+21
| | | | | | | | | | | | | | [ChangeLog][moc] Added Support for C++17 nested namespaces Change-Id: Ib83fc5bf48f66546fa97b49710582fbf9c984503 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * moc: Fix parsing of digit separatorOlivier Goffart2017-03-081-8/+8
| | | | | | | | | | | | | | | | | | [ChangeLog][moc] Fixed parsing errors in presence of C++14 digit separators. Task-number: QTBUG-59351 Change-Id: Iea38ea7388853d84b819c2beb78a59371f57bf7d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * Add feature.abstractsliderStephan Binner2017-03-089-16/+41
| | | | | | | | | | Change-Id: Ib5d0186162fc3b750e6440c74b1181787093ef97 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
| * Doc: QSizePolicy: Fix documentation warningsTopi Reinio2017-03-081-1/+1
| | | | | | | | | | | | | | | | | | warning: Can't link to 'controlType()' warning: Can't link to 'horizontalPolicy()' warning: Can't link to 'verticalPolicy()' Change-Id: I6b31acebf183defee7b4ab36976034ed4a3fc98a Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Document QT_DEPRECATED_WARNINGSKai Koehne2017-03-081-0/+13
| | | | | | | | | | | | | | Task-number: QTBUG-58468 Change-Id: I0f822c2dd14878d70b74ddd2db89b11ba54f687b Reviewed-by: Jake Petroules <jake.petroules@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| * Avoid QRgba64 arrays in the generic text-rendering routinesAllan Sandfeld Jensen2017-03-081-8/+8
| | | | | | | | | | | | | | | | Like in other functions, allocate arrays of quint64 instead of QRgba64 to avoid the cost of initializing large arrays on every small scanline. Change-Id: Ie132b3157003a18a444ca5c4f94ae668d17327fd Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
| * QHstsPolicy: Replace bool with QFlagsTimur Pocheptsov2017-03-083-6/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As pointed out in the previous code-review: Replace a bool ctor parameter with QFlags<enum> to conform to Qt API Design Principles (Boolean Parameter Trap). Since the bool with its many unwanted implicit conversions is gone from the ctor parameter list now, drop the explicit keyword again. It was requested because of the boolean parameter in the first place. Change-Id: Ibaf287a6a3e38c22f033fd5d9e024c54f30a1fd4 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Windows QPA: Better recover from removed screens when fullscreenJocelyn Turcotte2017-03-081-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWindowsWindow::handleResized would call isFullScreen_sys which checks if the window's screen geometry matches the one of the window. When switching back from fullscreen, Windows will have set the geometry to fill the next window, but we don't switch QScreen until later in that function, inside handleGeometryChange. This would result in our window to take the whole screen geometry, but the FullScreen state wouldn't be transferred to the new screen. Fix the issue by using screenForGeometry and check if we are fullscreen on any screen. Also make sure that we check the validity of m_savedFrameGeometry when restoring after a screen remove, since we would previously restore to an area not covered by any screen anymore. Change-Id: I43bc02738007918e9a26c1d27a699c51d3365034 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * QWidgetWindow::event(): Call base implementation for QEvent::WindowStateChangeFriedemann Kleint2017-03-081-0/+1
| | | | | | | | | | | | | | | | | | | | The base implementation takes care of updating visibility and emitting signals. Task-number: QTBUG-59313 Change-Id: I270b37c894420902488d89dc0c79f4c12b8d9a29 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * QStyleSheetStyle: introduce class Tampered<QPalette|QFont>Marc Mutz2017-03-082-30/+34
| | | | | | | | | | | | | | | | ... as a replacement for two QPairs and move some common QFont/QPalette functionality into it. Change-Id: Iaab92130dd54eaa7900ac2048014a80cbd04bfb6 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * Doc: Replace std::bind() with lambdas in Qt ConcurrentSze Howe Koh2017-03-076-72/+17
| | | | | | | | | | | | | | Lambda functions provide all the benefits of std::bind() plus more Change-Id: Iec30b20bb35ac0fae560435b323f80af2f2e5fce Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| * QtXml: add some missing Q_DECLARE_TYPEINFOGiuseppe D'Angelo2017-03-072-0/+8
| | | | | | | | | | Change-Id: I4b58aad1c337fe5fdfb70eb517a66b15a34dffc4 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Add feature.pushbuttonStephan Binner2017-03-0616-13/+106
| | | | | | | | | | Change-Id: I654d91635e60b177df16f6dfe00acc940132f66a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Add feature.checkboxStephan Binner2017-03-069-7/+52
| | | | | | | | | | | | Change-Id: Ib387390b796c3cab6de4ce94e0d217280a300df8 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Add feature.dialogbuttonboxStephan Binner2017-03-0614-11/+75
| | | | | | | | | | | | Change-Id: I8c136024c3bf431529033a806be646d867919daa Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Build fix for -no-feature-formlayoutPaul Olav Tvete2017-03-061-1/+1
| | | | | | | | | | | | Change-Id: I10a1c4b742bb446f7baa219d4118a03d9f60495c Reviewed-by: Stephan Binner <stephan.binner@basyskom.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Remove unused src/tools/moc/mwerks_mac.* filesOlivier Goffart2017-03-062-281/+0
| | | | | | | | | | | | | | | | | | These files are unused. They still contains Qt3 code (QCString for example) Task-number: QTBUG-59302 Change-Id: I661f08db4092311df1d6c7d54b9780d86adab8aa Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| * QStaticByteArrayMatcher: enforce alignmentThiago Macieira2017-03-061-0/+1
| | | | | | | | | | | | | | | | | | The data is 256 bytes, so might as well align it on a 16-byte boundary to facilitate copying (if that happens). We should consider similar for QByteArrayMatcher in 6.0. Change-Id: I74966ed02f674a7295f8fffd14a8c64526d734bb Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * Make new QtCore code conform to the coding styleThiago Macieira2017-03-061-1/+2
| | | | | | | | | | | | Change-Id: I74966ed02f674a7295f8fffd14a8c6389da538c1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| * QLineEditPrivate: introduce SideWidgetLocation classMarc Mutz2017-03-062-16/+22
| | | | | | | | | | | | | | | | | | | | | | | | ... as a replacement for QPair<enum, int>, and move some repsonsibilities into it. This avoids the repeated use of the magic number -1 to indicate invalid locations and does away with the confusing .first and .second, replacing them instead with proper names, .position and .index. Change-Id: If904c5333cecf8ce3d5160ca4be9264a13a2b72a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Make uic handle -no-feature-shortcutPaul Olav Tvete2017-03-061-0/+2
| | | | | | | | | | Change-Id: I0f8c9fdc8b0fe573443cfc126f21e473544ddcba Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Add feature.label and feature.formlayoutStephan Binner2017-03-0318-24/+125
| | | | | | | | | | | | Change-Id: Ic8dc0aee7f3fc0d8218ba709352b1378078c6070 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * xcb: stringify enums for tablet qt.qpa.input.events qCDebugShawn Rutledge2017-03-031-4/+18
| | | | | | | | | | | | | | | | It's a bit easier to read, not having to look up TabletDevice and PointerType enum values manually. Change-Id: I53353be4dcea3e2cb875f04250502ffe802fc971 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
| * Remove library feature condition from the imageformatpluginKimmo Ollila2017-03-031-1/+0
| | | | | | | | | | Change-Id: I951ec5fa6d5788accdc82327326d39aac540bd7b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
| * Add feature.radiobuttonStephan Binner2017-03-037-5/+36
| | | | | | | | | | Change-Id: Ie11f178ce22e2fafdfdf1760288e90563569e0cb Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Revert "Add expandingListItems property to QListView"Marc Mutz2017-03-033-46/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a4c25c020554527aa9ff9b533afabffef46be131. The API is too limited in scope, and a good name is hard to find, as evidenced in the API review discussion preceding Qt 5.9 beta. This API will hopefully return as something like setItemAlignment(). [ChangeLog][QtWidgets][QListView] EDIT: REMOVE: Added expandingListItems property. Conflicts: tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp Change-Id: I397acd8a7a6c716e2d3c96eee45a276eb6d4f9dd Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru>
| * Make "finger touch" not be a tabletAlbert Astals Cid2017-03-031-0/+2
| | | | | | | | | | | | | | Otherwise QTouchDevices::devices() doesn't return the touchscreen on my Thinkpad Yoga 460 Change-Id: Ibb829df95f92152a77c512e4325522825901074e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * Fix build with -no-openglPaul Olav Tvete2017-03-035-8/+17
| | | | | | | | | | | | Change-Id: I6fb61944ef88e328a94ea6b7ab42db271828a602 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
| * Build fix for -no-feature-shortcutPaul Olav Tvete2017-03-0310-10/+28
| | | | | | | | | | Change-Id: I99144b114b3c2eacb56b522b3059aa53a6bbd969 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * Gui: Replace LGPL21 with LGPL license headerKai Koehne2017-03-033-42/+60
| | | | | | | | | | | | | | Also use canonical contact url. Change-Id: Ic0bf112998707844eb0c2853d7516b76f4d5afa8 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
| * Testlib: Replace LGPL21 with LGPL license headerKai Koehne2017-03-032-28/+40
| | | | | | | | | | | | | | Also use canonical contact url. Change-Id: I7ffe7a8afa28fe8b66e00bc5e51595edeac042a9 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
| * BSD plugins: Replace LGPL21 with LGPL license headerKai Koehne2017-03-037-96/+138
| | | | | | | | | | | | | | Also use canonical contact url. Change-Id: I27cee9135228dabcf1ece5dcf15db18a2aa536f9 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
| * GTK3 plugin: Replace LGPL21 with LGPL license headerKai Koehne2017-03-032-29/+41
| | | | | | | | | | | | | | Also use canonical contact url. Change-Id: I6e925378ef4e82bdc739d23186d2dd6f23370d7a Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
| * Replace outdated BSD license textKai Koehne2017-03-033-3/+33
| | | | | | | | | | | | | | | | For examples and documentation, use new BSD license text that includes the commercial licenses. Change-Id: I1cd74bd8e9c8f2746d8702df00780ee100cbebac Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>