summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add manual test for the QtGui triangulatorLaszlo Agocs2017-01-244-0/+609
| | | | | | | | | | | | | | Have a widget-based application that uses qTriangulate for fills and QTriangulatingStroker (and optionally the dash stroke processor) for strokes. The resulting triangle (strip) set is visualized on a simple QPainter canvas, offering the ability to zoom in and examine how the triangulator behaves on a number of example shapes. It is also possible to step through and only have the first N set of triangles drawn. Change-Id: I3a27d86d4ea13a63dd4be0fe81dd4b5ed6e4fa75 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Add debug stream operator for QNetworkProxyQueryLars Schmertmann2017-01-242-4/+19
| | | | | | | Change-Id: Iae215827350e47a8ce31e5828d3ad1ed54564e84 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: André Klitzing <aklitzing@gmail.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Mirclient: update based on upstream development in lp:qtubuntuGerry Boland2017-01-2431-1067/+2182
| | | | | | | | | | | | | | | | | This is based on revision 360 of lp:qtubuntu. Main features/bugs fixed: - fix QQuickWidget-based app rendering - wire up Qt window types to Mir to enable desktop-based applications to function with a window manager - use QEGLPlatformContext and QEGLPBuffer instead of custom code - correctly populate and update list of QScreens - support for switching keyboard layouts - improve window resizing to fix visual glitching Change-Id: If816a858eb10b6356275d4b80c89a72562b3c29f Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Matti Paaso <matti.paaso@qt.io>
* Add conversion functions for QTimeZone and CFTimeZone/NSTimeZoneJake Petroules2017-01-237-7/+174
| | | | | Change-Id: I3a2e18d69577296bf612e13e40414bce1daa6a71 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix qmake -project in an empty folderJesus Fernandez2017-01-231-1/+1
| | | | | | | | Avoids iterating over the entire filesystem. Task-number: QTBUG-57569 Change-Id: If089842553978843de73559d1b1a567aa322a047 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Add support for OpenGL 3.2+ core profile contexts in QPainterJulian Thijssen2017-01-2310-112/+855
| | | | | | | | | | | | | | | | | | | | | | | This change allows painting via QPainter onto a QOpenGLWindow, QOpenGLWidget or QOpenGLFramebufferObject when an core profile context is in use. This is important on macOS in particular, where compatibility profiles are not available, and so the only way to use modern OpenGL is via a core profile context. Added core profile compatible shaders with moder GLSL keywords. The paint engine binds a VAO and two VBOs from now on, whenever VAOs are supported. Note that this changes behavior also for OpenGL 2.x context that have VAO support via extensions. The Lancelot test suite gains support for core profile contexts. This can be triggered via -coreglbuffer in place of -glbuffer when manually inspecting via 'lance', while tst_lancelot will automatically run core context-based tests whenever supported. Task-number: QTBUG-33535 Change-Id: I6323a7ea2aaa9e111651ebbffd3e40259c8e7a9c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix uninitialized memberJesus Fernandez2017-01-231-2/+1
| | | | | | | | | Non-static class member "domainIndex" was not initialized in the constructor nor in any functions that it calls. Change-Id: Ie72d997a1f0cf2f3499aac6f7714c7a9d3c7d525 Coverity-Id: 174997 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Increase the default stack size on INTEGRITYKimmo Ollila2017-01-231-0/+8
| | | | | | | | | | | | INTEGRITY doesn't support self-extending stack. The default stack size for a pthread on INTEGRITY is too small so we have to increase the default size. Change-Id: I0787d14938cf5e7e96c35df204212c8e83aa8893 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Nikola Velinov <nvelinov@ghs.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Rename ill-named RPi3 specs to match the restLaszlo Agocs2017-01-204-0/+0
| | | | | | | | | | | | Renaming these specs should cause less trouble than usual since most people are likely using the rasp-pi2 spec even for RPi3. [ChangeLog][Platform Specific Changes][Linux] The Raspberry Pi 3 device specs have been renamed from linux-rpi3-* to linux-rasp-pi3-* in order to follow the pattern of the RPi 1 and 2 specs. Change-Id: I7d1ed6a4665078af9a4cbbe4c38b5fac760d03f9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Add HTTP strict tranport security support to QNAMTimur Pocheptsov2017-01-2011-5/+1130
| | | | | | | | | | | | | | | | | | | | | | HTTP Strict Transport Security (HSTS) is a web security policy that allows a web server to declare that user agents should only interact with it using secure HTTPS connections. HSTS is described by RFC6797. This patch introduces a new API in Network Access Manager to enable this policy or disable it (default - STS is disabled). We also implement QHstsCache which caches known HTTS hosts, does host name lookup and domain name matching; QHstsHeaderParser to parse HSTS headers with HSTS policies. A new autotest added to test the caching, host name matching and headers parsing. [ChangeLog][QtNetwork] Added HTTP Strict Transport Security to QNAM Task-number: QTPM-238 Change-Id: Iabb5920344bf204a0d3036284f0d60675c29315c Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Make variant selection possible if base is missingSebastian Lösch2017-01-202-7/+4
| | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore][QFileSelector] Removed the requirement for an unused default base file in case you want to load only a variant. When the base file (e.g. /image.jpg) was missing, no selectors were considered and it was not possible to load variants of this file (e.g. /+android/image.jpg, /+android/+tablet/image.jpg) without specifying the directory as well. As a work around, one previously had to place a default file in the base location, which is undesirable in some cases because: 1. The extra file consumes unnecessary space. 2. It is impossible to encapsulate platform-specific implementation details by hiding files in a subdirectory. Task-number: QTBUG-51230 Change-Id: I4c7f9ec952bff6e5b7738d8cabe3c762c208a38e Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* QStringListModel: default data()s 'role' argumentMarc Mutz2017-01-191-1/+1
| | | | | | | | | ... the way it's done elsewhere, too. Change-Id: Icbb6802c2244469cda7db7eb9e088cf3b7729c89 Task-number: QTBUG-58160 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Long live QStaticByteArrayMatcher!Marc Mutz2017-01-194-4/+288
| | | | | | | | | | | | | | | | | | | | This is a version of QByteArrayMatcher that calculates the Boyer-Moore skip table at compile-time instead of at run-time, making this class more generally applicable than QByteArray- Matcher itself, at least for statically-known strings. The compile-time part requires C++14 constexpr support, but the class should compile and work even in C++98 mode, just with runtime initialization of the skip-table. While touching tst_qbytearraymatcher, clean up the static global QByteArrayMatchers there and add tests with needles longer than 255 characters for QByteArrayMatcher, too. [ChangeLog][QtCore] Added QStaticByteArrayMatcher. Change-Id: I0662f262ab19b79ae4096f3ab384d5b3ada72347 Reviewed-by: David Faure <david.faure@kdab.com>
* QHostAddress: make it implictly sharedGiuseppe D'Angelo2017-01-193-44/+30
| | | | | | | | | | | | | | | | | | | QHostAddress is one of the few classes in Qt which is pimpl'd but not implictly shared, making it suprisingly expensive to copy around, return by value and so on. Being pimpl'd it is also still lacking a move constructor, like most of such types in Qt. Remove a bit of the surprise factor and make it implictly shared. In practice this means making it eagerly parse host addresses from strings. Since it was entirely implemented out of line, replacing it with a implictly shared implementation is binary compatible. [ChangeLog][QtNetwork][QHostAddress] QHostAddress is now implicitly shared. Change-Id: Ia7ff94efcb74e7321b7607cd690c5c162f685605 Reviewed-by: Richard J. Moore <rich@kde.org>
* Windows: Support custom sizes entered via the print dialogAndy Shaw2017-01-191-3/+27
| | | | | | | | | | | When going via the advanced settings for a printer in the print dialog it is possible to specify a custom page size directly. This needs to be picked up via the POSTSCRIPT_IDENTIFY ExtEscape identifier to see if it is supported at all and then queried to see if a custom size is set. Change-Id: Id5e94c1b25be1c6e28d9e26d8001cd1c96d8f5d9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* When changing the printer used, try to preserve the original page settingsAndy Shaw2017-01-191-1/+10
| | | | | | | | Since not all elements of the original page settings can be kept, it needs to be set bit by bit in order to apply what it can. Change-Id: I82a2de91e3b8e344a61a290bb4486885fde62b4e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Doc: Fix issues in QStyleHints documentationLeena Miettinen2017-01-191-6/+18
| | | | | | | | | | | | The \c command is not supported within the \brief command. If used, QDoc omits the value and the command. Rewrite briefs to avoid using the \c command in them. Task-number: QTBUG-58212 Change-Id: Ia29eae8b17a5fd46bec39e113aabf22e010217a4 Reviewed-by: J-P Nurmi <jpnurmi@qt.io> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Add a user-controlled auto-redirect policyTimur Pocheptsov2017-01-198-12/+107
| | | | | | | | | | | | With this new policy, after emitting 'redirected', QNetworkReplyHttpImpl waits for client code to decide if QNAM should follow this redirect or not. The client can either allow this redirect by emitting 'redirectAllowed' or abort the reply. Task-number: QTPM-236 Change-Id: Ia04619f6bd1f0caa477833ae859b24033027b2e1 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Windows platform headers: Add isTabletMode()Friedemann Kleint2017-01-184-2/+56
| | | | | | | | | Add a bool function querying Windows 10 tablet mode. Task-number: QTBUG-56831 Change-Id: Ief728a7d80a11ba79f7859033ff4be6ef79bbd4e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* DRM/KMS config: add support for specifying the primary screenLaszlo Agocs2017-01-187-13/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not having a way to say that a given output should be registered as the primary screen (meaning it comes first in the QGuiApplication::screens() list, emits primaryScreenChanged() signal etc.) can be a problem for some systems. The order of the outputs array in the JSON configuration file is not relevant in this respect since screens are registered either in the original DRM connector order, or, when the virtual desktop layout is specified via virtualIndex, in the order specified by virtualIndex. The primary screen status is independent from this. Therefore, add a new, optional boolean property: primary. For example, the following forces the QScreen corresponding to the VGA output to be the primary screen on the Renesas R-Car H2 board, even though by default it is the HDMI one that happens to be reported first by the system. { "device": "/dev/dri/card0", "outputs": [ { "name": "HDMI1", "mode": "1280x720" }, { "name": "VGA1", "mode": "1280x720", "primary": true }, { "name": "LVDS1", "mode": "off" } ] } In addition, improve the quality of the logging output. [ChangeLog][Platform Specific Changes] Added support for specifying the primary screen in the JSON config file in QT_QPA_EGLFS_KMS_CONFIG when running on DRM/KMS with eglfs. Task-number: QTBUG-57980 Change-Id: Iba490800dee3b7162c68c4d40b0822f3f6d81b69 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* Remove OpenGL dependency from qTriangulateLaszlo Agocs2017-01-183-33/+30
| | | | | | | | | | | | | | | | | | | The original implementation is only suitable as long as the only client is the GL paint engine which will call the function with the GL context current. In other cases this cannot be ensured. For instance, doing triangulation on the gui thread in a Quick application using the threaded render loop will have to deal with not having a current context on that thread at all. Doing triangulation on worker threads has the same problem as well. In addition, in modern Qt versions a -no-opengl build does not imply no accelerated graphics API. Therefore, drop the ElementIndexUint check from qtriangulator.cpp and leave it up to the caller to tell if uint indices are supported or not. Change-Id: I7491d84981ee22d05c5fde08994dbb3a4e2432e9 Reviewed-by: Gunnar Sletta <gunnar@crimson.no>
* tst_qaccessibility.cpp: Fix warnings about assignment used as truth valueFriedemann Kleint2017-01-181-6/+6
| | | | | | | | | | | tst_qaccessibility.cpp: In member function 'void tst_QAccessibility::treeTest()': tst_qaccessibility.cpp:3005:75: warning: suggest parentheses around assignment used as truth value [-Wparentheses] tst_qaccessibility.cpp:3008:75: warning: suggest parentheses around assignment used as truth value [-Wparentheses] tst_qaccessibility.cpp: In member function 'void tst_QAccessibility::tableTest()': tst_qaccessibility.cpp:3133:75: warning: suggest parentheses around assignment used as truth value [-Wparentheses] Change-Id: I175af3215258c70da8284907f5ddfe95abf41029 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* Introduce QImage::reinterpretAsFormatAllan Sandfeld Jensen2017-01-183-0/+102
| | | | | | | | | | | | | QImage::reinterpretAsFormat can be used to change the format of an image without converting the data, to correct wrong formats or narrow the format to an opaque one if found to be opaque. [ChangeLog][QtGui][QImage] A new method reinterpretAsFormat is has been added to change the format of a QImage without converting the data. Change-Id: I5e15bc5a1c474a35d3921b06299008ab2effd945 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Fix --exceptions flag usage on INTEGRITYKimmo Ollila2017-01-181-0/+5
| | | | | | | | | When an executable is being linked and uses a library that has been built with exceptions enabled, the executable will need the exceptions flag in order to link in the exceptions handling code. Change-Id: I3acdb571afbbcaf860fb0ef0482f704f605a9bbe Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Add eglfs-viv support for INTEGRITYKimmo Ollila2017-01-183-1/+12
| | | | | | | Change-Id: I5ea23eeac930dcc628047e3322061d543bddb643 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Nikola Velinov <nvelinov@ghs.com>
* Remove support for WinRT 8.1 and Windows Phone 8.1Maurice Kalinowski2017-01-1846-938/+41
| | | | | | | | [ChangeLog][QtBase][General] Removed support for WinRT/Windows Phone 8.1. Task-number: QTBUG-57288 Change-Id: Ifd6d6780cbbdb710d99556ba3d2fb2e514d4f789 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Remove dead code in Xcode generatorJake Petroules2017-01-181-110/+5
| | | | | | | | | | These code paths have not needed to be exercised since Xcode < 3.2 was dropped from support, which is beyond ancient at this point. Incidentally, this removes use of a deprecated function. Change-Id: I3e5a45794c21b434b31a48da8a8b0ff22f2852fa Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Polish up the QOperatingSystemVersion API and documentationJake Petroules2017-01-182-66/+64
| | | | | | | | | | | | | operator== and operator!= have been disabled, as they are likely to be misused and are not particularly useful in practice. The same goes for the QVersionNumber conversion convenience functions. The constructor normalizes version component values so that invalid versions like [5, -1, 3] cannot be constructed and made to wreak havoc on assumed logic. Change-Id: Iabb6876bd5dc11522032837f78cf825b921a49b2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* macOS: Keep reference to NSScreen via index instead of pointerTor Arne Vestbø2017-01-173-20/+28
| | | | | | | | | | | | Manual revert of 73e68a9c0f8b6, which was flawed. macOS can, and will, dealloc and realloc NSScreen instances for a given screen index, for example when deallocing an NSWindow, which has the screen as an auxiliary resource. This is also documented for +[NSScreen screens], which states that "The array should not be cached". Task-number: QTBUG-58128 Change-Id: I926513a26cb7af52acd7fc5ee9380ef29ede65e6 Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
* QMacStyle: fix focus ring thickness on retina displaysGabriel de Dietrich2017-01-171-11/+29
| | | | | | | | | | | | | | | | | | NSSetFocusRingStyle() doesn't take the device pixel ratio into account for offscreen graphics contexts. As a result, the focus ring would appear too thin on retina displays. Therefore, we need to render the focus ring in a more manual way. The only added dependency is the focus ring's opacity value and thickness. This patch fixes CE_FocusFrame and the focus ring around regular QPushButtons. More work needs to be done for other widgets that currently rely on HITheme or NSControl–NSCell to draw their focus ring. Task-number: QTBUG-57843 Change-Id: I2c6f273698fdfd5ad7344a9688e96aef6da906f0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* HTTP/2 - fix SETTINGS frame validationTimur Pocheptsov2017-01-171-1/+1
| | | | | | | | | When testing peer's SETTINGS frames, namely MAX_CONCURRENT_STREAM identifier, we should test against upper limit _new_ values from these frames, not our own pre-set maxConcurrentStreams (it apparently was a typo). Change-Id: I2036e45b0f931914f75ca99142192e2f9385623e Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Add redirects policy to QNetworkAccessManagerTimur Pocheptsov2017-01-1710-32/+316
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes it possible to enable/disable redirects on QNAM level (before it was per-request only). This policy would be applied to all subsequent requests* created by QNAM. The policies we support at the moment: a. Manual - that's what we always had - it's up to a user to handle redirects. b. NoLessSafeRedirectsPolicy - we allow http->http, http->https and https->https redirects, but no protocol 'downgrade' (no https->http redirects). c. SameOriginPolicy - we check that protocol/host/port are the same. Updated tst_qnetworkreply. *We previously were enabling redirect for each request, by setting FollowRedirectsAttribute on QNetworkRequest object. For backward compatibility this attribute has a higher priority (if set) than QNAM's policy (and it will work as NoLessSafeRedirectsPolicy). [ChangeLog][QtNetwork] Added redirects policy to QNAM Task-number: QTPM-239 Task-number: QTPM-237 Change-Id: I493d1728254b71b61b5504937e8e01dca5953527 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* QListView: Remove unneeded check inside the if blockAlexander Volkov2017-01-171-3/+1
| | | | | | | info.wrap is already checked in the outer if condition. Change-Id: I3a40dbaae22f00c66acb6f483b7b4786c5580d94 Reviewed-by: David Faure <david.faure@kdab.com>
* Network (HTTPS): prevent recursion among ->close() methodsEdward Welbourne2017-01-171-21/+23
| | | | | | | | | | | | | | | | | | We observed a stack-trace in which, while handling an error, QHttpNetworkConnectionChannel::close()'s call to its socket->close() triggered (when the socket was a QSslSocket) a flush() which asked its backend to transmit() which tripped over the original error, which duly triggered endless recursion. Transiently clear the socket member, during its ->close(), to prevent this; do the same in abort(), to preserve its structural correspondence to close(). Restructure both so that any recursive call's setting of state is overwritten by the top-level call's, while this still uses the prior socket state (not the state after close() or abort() and any recursion) to determine final state. Task-number: QTBUG-56476 Change-Id: If69e97f7a77a729bf2338ed14214c65aa95f8b05 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix whitespace, formatting, and line length in QOperatingSystemVersionJake Petroules2017-01-172-54/+102
| | | | | Change-Id: Ie26571a8098e8215a6bc1e0e363763e5fc546bcd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Introduce QNetworkAccessManager::clearConnectionCache()Sebastian Lösch2017-01-166-7/+32
| | | | | | | | | Sometimes it is desirable to use a new connection but keep already entered user credentials for usability reasons. This is now possible by clearing the connection cache (but keeping the authentication cache). Change-Id: I2f5f64836ce19f81c8525701783a3da823dd468e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Add screen product informationPier Luigi Fiorini2017-01-164-0/+86
| | | | | | | | | | | | | | | | | | | | | Add new methods to QPlatformScreen that platform plugins can reimplement in order to provide more information such as vendor, model and serial number. Expose that information as QScreen properties. A use-case for this feature is a Wayland compositor that maps screens to Wayland outputs hence it needs to replicate the information. This information can also be added to the diagnostic output of qtdiag. [ChangeLog][QtGui][QScreen] Add manufacturer, model and serialNumber properties. Change-Id: Ia6945f41023340602ef9d618e0d833a0c1825ab3 Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* QGradient: add a setStops fast-path for conformant QGradientStopsMarc Mutz2017-01-141-0/+27
| | | | | | | | | | | | | | The setStops() docs state that the stops need to be sorted and the positions must be valid. But the implementation sorts the stops and filters out invalid ones, so we probably need to keep that behavior, which, however, causes memory allocations and, potentially, O(N²) behavior, because setColorAt() uses a form of Insertion Sort with linear scanning... Add a fast-path for the common case that users adhere to the docs and pass valid stops. Change-Id: I93099a57bc4f37d1240a9e9f763618fd5095bc64 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Fix build for INTEGRITYKimmo Ollila2017-01-133-3/+6
| | | | | Change-Id: I2c41295688e962eb263f2180bebfd1dd37613804 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* qglobal.cpp/QSysInfo::macVersion(): Silence deprecation warningJake Petroules2017-01-131-0/+3
| | | | | | | | | | clang/g++ still warn when encountering the implementation of a deprecated function. Follows up 21a247adb47a45a23c0e014bd42979ccbeb11488 Change-Id: I6ab1695acb520ef7ce7cb1896545d02607c3ce29 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
* Remove qtypetraits.h's contents altogetherGiuseppe D'Angelo2017-01-1213-82/+44
| | | | | | | | | | | | | | | | | So that QFlags can use an (un)signed int matching the underlying type as identified by the compiler and not by us. Requires fixing a few warnings about sign conversion due to QFlags misusages in qtbase that were either plain wrong, or were relying on the enum being backed by an (un)signed int when it wasn't. Keep qtypetraits.h in the source tree in order to prevent source breaks if some downstream #includes it (note however that it did not contain any public API). Change-Id: Ib3a92b98db7031e793a088fb2a3b306eff4d7a3c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add expandingListItems property to QListViewAlexander Volkov2017-01-124-4/+70
| | | | | | | | | | | | | | | | This property allows to change the default behavior in which list items occupy the entire width of the column. Setting it to false will reduce their widths to the minimum values, thus allowing to have intermediate free space. Then the user will be able to begin selections by mouse from this space. [ChangeLog][QtWidgets][QListView] Added expandingListItems property. Change-Id: I6bd1b147fd0335324310a165104c36f6b0d6ac9f Task-number: QTBUG-56606 Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* Use QString::asprintf(), QStringBuilder, and the multi-arg overload of ↵Alexander Volkov2017-01-1219-89/+79
| | | | | | | | | | | | | QString::arg() ... instead of sequential .arg(const QString &) callings. It saves memory allocations and prevents unexpected results if replacing strings contain place markers. Found with clazy's qstring-arg check. Change-Id: I3912275a6e11c6fb7559ff5623f2e8cde9b7f07a Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove two unused static methods of QDateTimePrivateEdward Welbourne2017-01-122-5/+0
| | | | | | | ... along with the two matching unused methods of QDateTime's test. Change-Id: Id11a4b1b0132587f0df451d49c0043e9425d87ad Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCocoaWindow: Fix 10.10 sheet API deprecation warningGabriel de Dietrich2017-01-121-3/+5
| | | | | | | | | | | | | | 'beginSheet:modalForWindow:modalDelegate:didEndSelector: contextInfo:' is deprecated: first deprecated in macOS 10.10 - Use -[NSWindow beginSheet:completionHandler:] instead [-Wdeprecated-declarations] Similarly, although it won't emit any warning, we replace the usage of -[NSApplication endSheet:] wit -[NSWindow endSheet:]. Change-Id: Iae71247f818b7183d09c6831fa4cb1b71a54a87a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Provide sensible defaults for QCoreApplication::applicationVersionJake Petroules2017-01-128-11/+196
| | | | | | | | | | | | | | | | [ChangeLog][QtCore] QCoreApplication::applicationVersion now defaults to an appropriate platform-specific value. On Windows, it defaults to the PRODUCTVERSION parameter of the VERSIONINFO resource for classic desktop apps, and the version attribute of the application package manifest for Univeral Windows Platform apps. On Apple Platforms (macOS, iOS, tvOS, watchOS), it defaults to the CFBundleVersion property of the information property list (Info.plist) file. On Android, it defaults to the android:versionName attribute of the AndroidManifest.xml manifest element. On other platforms, the default remains an empty string. Task-number: QTBUG-57715 Change-Id: I26f83dd00737e06f4321cf962aa5fab8398104ec Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Windows QPA/Open file dialog: Copy non-filesystem itemsFriedemann Kleint2017-01-111-6/+73
| | | | | | | | | | | | | | | | With the introduction of the new IFileDialog interfaces in Qt 5, the open file dialog no longer was able to open items on MTP mounted devices. The Win32 API GetOpenFileName() used in Qt 4 would hide this by creating a local copy of the file in the INetCache folder. Add code to emulate the behavior in QWindowsNativeOpenFileDialog::dialogResult(). Task-number: QTBUG-57070 Change-Id: I88cccfbf9697585225356cc864df67c86a912c91 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Windows QPA: Refactor conversion of IShellItemFriedemann Kleint2017-01-111-119/+229
| | | | | | | | | Introduce a light wrapper class around IShellItem which hides its idiosyncracies. Task-number: QTBUG-57070 Change-Id: I60a825ea7a826d67859ab82537d614ecc3367692 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* modeltest: use QCOMPARE where possibleDavid Faure2017-01-111-28/+28
| | | | | | | QVERIFY(a==b) is less useful than QCOMPARE(a, b) in case of an error. Change-Id: Ibd294e7a1e9b55a9780551869c8477f6e41355ac Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove unused QEmptyModelMarc Mutz2017-01-111-12/+0
| | | | | | | | | It's not exported and, while all-inline, is not used anywhere in Qt. Since it's in a private header, it follows that we can safely remove it. Change-Id: I4b5534e4cf8187232bdce0a9f7a4795ece1e3555 Reviewed-by: Lars Knoll <lars.knoll@qt.io>