summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* QVarLengthArray: add rvalue overload of append/push_backMarc Mutz2017-02-252-0/+39
| | | | | | | | | | | | | | | | Improves performance when appending temporaries, esp. since the aliasing fix in the lvalue overload in 0f730ef made that overload correct, but a bit slower across reallocs. The unit tests already also pass rvalues, so the function is covered in the existing tests. [ChangeLog][QtCore][QVarLengthArray] Added rvalue overloads of append() and push_back(). Change-Id: If3a6970f03a160cba5b42d33d32d3d18948f6ce3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.8' into 5.9" into refs/staging/5.9Simon Hausmann2017-02-2442-1126/+320
|\
| * Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-02-2442-1126/+320
| |\ | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/moc.prf Change-Id: Ia71c8e3b3185f7c999bf226d0675051b10b8740b
| | * QDockWidget: Fix memory leak when dragging a tab outside of a floating tab ↵Olivier Goffart2017-02-241-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | window A QDockWidgetItem will be leaked if a QDockWidget is dragged out of a floating tab window, and then plugged back somewhere. The problem is that QMainWindowLayout::unplug was not returning the QDockWidgetItem* from the floating tab's layout. When that's the case, a new QDockWidgetItem is created in QDockWidgetPrivate::startDrag and will be put into the layout, leaking the old QDockWidgetItem. Change-Id: Ifb9c1c562cb74383ebff1df0f91ee225c5cdb296 Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
| | * Doc: Fix minor typos in QRectFAaron Linville2017-02-232-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a couple incorrect references to the integer precision classes. Update snippet to use floating point precision classes. Task-number: QTBUG-51630 Change-Id: I9b08cfb68937a8e1179ee414d7981956ef7bc106 Reviewed-by: Martin Koller <kollix@aon.at> Reviewed-by: Michael Brüning <michael.bruning@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| | * QUrl::fromUserInput(with cwd) fix handling of files with trailing spacesDavid Faure2017-02-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The call to trimmed() makes sense for URLs typed in a browser's location bar, but its use in every code path made it impossible to open a file with a trailing space in command-line tools that uses fromUserInput(cwd) to handle command-line arguments, as recommended. For instance kde-open5 "file.txt " would fail. Change-Id: Ie61182684521d91f077d3e76f95b7240965ab405 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QTextFormatCollection: replace copy ctor and op= with clear()David Faure2017-02-233-15/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | operator=, which was only used for clearing, wasn't clearing the hash. This led to a mismatch between the vector and the hash (given that the hash points into the vector). Spotted by interrupting kmail in gdb, and it was in this code iterating over a 2000 entries hash (the first vector entries not matching the hash, this code keep appending new entries for the same formats). This fixes QTBUG-8862 again, the initial fix having been accidentally reverted in 467b15a. Change-Id: Ia34b3d002a0199e1930431a4bbdb2ec981ed4ffc Task-number: QTBUG-8862 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| | * Do not delete someone else's QSystemLocale when constructing anotherEdward Welbourne2017-02-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QSystemLocale constructor remembers the most-recently-constructed instance - a dodgy enough proposition at the best of times - and shares it with much of the rest of QLocale. There is a global static instance, actually of a derived singleton class, to which it is usually set on program start-up. However, the constructor deleted the remembered instance before remembering any new instances; there was no way this could not lead to bad consequences. So let's not do that. Change-Id: Ie8f3d655c9d4f75f6ec00a5861d98d6020ecc633 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Android: Fix always hidden software keyboard from popping upJoni Poikelin2017-02-231-0/+3
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-58803 Change-Id: I256e59cee9d131f88b83367b26dbc11de87319af Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com>
| | * Android: Fix OpenGL shader compilation on updated emulatorEskil Abrahamsen Blomfeldt2017-02-231-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 0ae4b948515af904dba397448839056d9b7965af, we added a work-around specifically for the Android emulator, causing it to override the precision qualifiers in shader code, since the emulator would send the shader code directly to the host OpenGL driver and thus there was no guarantee that the qualifiers would be supported. Since then, the original issue with the emulator has been fixed, so now Qt applications are failing because of the work-around. [ChangeLog][Android] Removed old work-around which was causing OpenGL shader compilation to fail on updated Android emulators. Task-number: QTBUG-44697 Change-Id: I0da879b3a8fbe7cb2d0969cdf45664d0b3499891 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: BogDan Vatra <bogdan@kdab.com>
| | * dockwidgets: recalculate the press position if the window resizesSergio Martins2017-02-222-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | A window can resize while dragging, this happens on Windows when dragging across screens, to a screen with a bigger scale factor. When that occurs it might lead to the press pos being outside of the window. Change-Id: Ic61ec7088c8fa81395d43ce665952dbd2eecba39 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| | * Wrap RunLoopModeTracker into Objective-C namespacePavol Markovic2017-02-222-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | RunLoopModeTracker as one of Qt Cocoa classes was not wrapped in namespace which limited its use in Objective-C single symbol space. Change-Id: Ida2c62c6f543a3bf5107f28c78d27435bcb3470d Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| | * Move qJsonFromRawLibraryMetaData into qfactoryloader_p.hUlf Hermann2017-02-224-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is still not a great place for it, but this way we can Q_REQUIRE_CONFIG(library) in qlibrary_p.h and qfactoryloader_p.h is the only private header that doesn't require library support in plugin.pri. Change-Id: Ia6c1ac8799822eca1e0cbeca98d1c1b8de74beae Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| | * Fix multicastMembershipHelper to not assume addresses are IPv4Edward Welbourne2017-02-222-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make it iterate the addresses available looking for an IPv4 address, when that's what it needs, instead of just assuming the first entry in the list (when non-empty) is IPv4. Based on a suggestion by Dmitry Pankratov. Task-number: QTBUG-27641 Change-Id: I1920f68ade44a996ea5c2ed691a87ff3e686f35a Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QProcess::startDetached(): Support privilege elevation for non-.exe filesStephan Reiter2017-02-221-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pass classname 'exefile' to ShellExecuteEx() for UAC prompt. This allows running executable files that do not have a .exe extension. Task-number: QTBUG-59008 Change-Id: I88d669481e893db50edccd7b30259e5366477556 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| | * make more use of 'use' in library detectionOswald Buddenhagen2017-02-222-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | now that it works nicely, make use of it for the zlib deps, which are not transitive when the detected library is built statically. Change-Id: Iaed87a37b36f714f0b919244cd84809650102ba9 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * configure: generalize command line overrides of library parametersOswald Buddenhagen2017-02-222-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | the outdated ones remain for backwards compatibility; some remain unchanged. Task-number: QTBUG-30083 Change-Id: Ia596b854d26b00fcb4f48df0da7ad893650ac1c8 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * add configure -list-featuresOswald Buddenhagen2017-02-221-956/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | also actually deletes qfeatures.txt, which was already claimed by a668c6a6, but not actually done. Task-number: QTBUG-58411 Change-Id: I686760632fee7c10b01bd2e83f2481b01bc2b774 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * use regular configure mechanism for openssl library referencesOswald Buddenhagen2017-02-222-26/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | don't attempt to hand-craft a library export any more. instead, use the configure system's built-in mechanism, and refer to it via QMAKE_USE. this also allows us to rely on transitive dependencies in the autotest. as a side effect, this makes the openssl-linked feature imply the openssl one. Change-Id: I5dd209b63bc8fbbc62852f6ffc472d4452ea2e68 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * QTimeZone: do not access static functions through this->Marc Mutz2017-02-221-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | The this pointer cannot be null, so we can't do d->staticFunction while d is a null pointer. This was caught by Clang 3.8's ubsan. Change-Id: I3c0d39b88cca83d827a69ed1544a4412b18ac907 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Fix crash while dropping a tabbed group into a single floating QDockWidgetOlivier Goffart2017-02-212-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was caused by commit 0feeb6f6d2cfaa964763ca1fcab65672812b4eef which fixed QTBUG-58036. It reparented widget that used to be skiped. In particular, floating widgets are skiped. But seting the parent of a floating widget docks it. And so as a result it would not be skiped anymore. This has two side effect: This breaks the animation (as the widget is docked too early; and cause crash when QDockWidgetGroupWindow get reparented as this breaks invariant that these are always floating. So restore the skip from before commit 0feeb6f6d2cfaa964763ca1fcab65672812b4eef, and explicitly set the parent in all cases when the animation finishes. Change-Id: I0e3e29ad22d6ffe4d62242d48a18dadb916fc14f Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
| | * QLoggingRegistry: fix potential data raceMarc Mutz2017-02-202-7/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'rules' vector is made up of all the individual {env,config,...}Rules vectors under mutex protection whenever init() is called (only from the QCoreApplication ctor) or, at any time, by a call to QLoggingCategory:: setFilterRules(). Yet, the writes to the individual *Rules vectors were never protected by registryMutex, racing against the reads of the same vectors in the updateRules() function. Fix by protecting all access of all member variables with registryMutex. Add some strategic comments to make analysis easier for the next guy. Change-Id: If68d15a553ec7038693574a34f10a39f4cd480e8 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| | * QMacStyle::sizeFromContents: don't do anything in CT_Menu caseOleg Yadrov2017-02-171-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In this case we can safely return the same QSize which we accept since it is already contains the right size for the given menu and this size will be bounded to screen geometry before QMenu will be displayed anyway. We also get rid of one dependency on HITheme. Change-Id: I7502a96d180fc4a41ce3dfabe8a200b886016348 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
| | * QMimeDatabase: fix matching of filenames with different length when lowercaseDavid Faure2017-02-171-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | AİİA.pdf takes 8 QChars, but after lowercasing it takes 10, so the code cannot assume the length to be the same. Task-number: QTBUG-58822 Change-Id: Id6fbb99f6afd08ee420099cd66372732d7598d9e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QReadWriteLocker: Fix race in unlockOlivier Goffart2017-02-171-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An Acquire barrier in QReadWriteLocker::unlock was missing to synchronize with the testAndSetOrdered on d_ptr in the lock functions. The race is between the write of d->writerCount in tryLockForWrite, and the read in unlock. The acquire on d->mutex is not enough because it is not on the same object. While that race could be fixed by taking the newly-allocate()ed d's mutex before publishing it with testAndSet, there's another race, on 'recursive', between a newly-minted Private* with recursive == false in tryLockForWrite(), and the read of 'recursive' in unlock(). Task-number: QTBUG-58917 Change-Id: I10ba36573c0e57468d11e9b77d85045711feaea1 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * fix VNC platform plugin build on big-endian machinesShawn Rutledge2017-02-173-5/+10
| | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-58734 Change-Id: I3e44ee4be5003acaba2f1b8ed2658a3ff1bd700e Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
| | * Adapt to the C++ SIC introduced by P0012: noexcept overloadingEric Lemanissier2017-02-171-0/+84
| | | | | | | | | | | | | | | | | | | | | | | | see 5a1b4832a2 for more detail Task-number: QTBUG-58142 Change-Id: I51851ea9b4fe7b8eeadc452bc3dbb1ea00026d29 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| | * Respect XDG_CONFIG_HOME when getting ibus socket locationFlorian Bruhin2017-02-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-58687 Change-Id: I97ea8b7d7caf922227a92348fb914aead1ecd312 Reviewed-by: Tinu Weber Reviewed-by: Takao Fujiwara <takao.fujiwara1@gmail.com> Reviewed-by: Konstantin Tokarev <annulen@yandex.ru> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| | * Fix a race in QFreeListOlivier Goffart2017-02-171-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The _next variable need the acquire and release fence in next() to synchronize with the equivalent operations in release() (which already have the them) The ordering on the _v[block] is not enough as this does not synchronize the same object. Task-number: QTBUG-58917 Change-Id: I17cc39e6791433348b6227363dbea92bcf03700d Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QVarLengthArray: fix appending an already-contained itemMarc Mutz2017-02-171-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Like the lvalue QVector::append() overload, when we reallocate, we need to take a copy of the function's argument because the reference will get stale upon reallocation. Add a test. [ChangeLog][QtCore][QVarLengthArray] Fixed a bug involving appending an item already in the container to the container again. Change-Id: I06eeed6cb383dd5924e47a302bb3d1666d04c8e8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * macOS: use active window device pixel ratio for drag pixmapOleg Yadrov2017-02-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In QCocoaDrag::dragPixmap, it treats QDrag::source as a QWindow, but it is not - it's just a generic QObject* of some kind (which QQuickDrag sets to the originating QQuickItem, and the widgets stack sets to a QWidget). This failure means that dpr stayed at 1.0. Unfortunately it’s not possible to receive a pointer on QWindow directly from QQuickItem because QtWidgets and QtQuick do not share the sources, but we can use the same dpr as current focused window has because drag can only start from active window - press on a window which is not focused should activate it first. Task-number: QTBUG-57942 Change-Id: Id358c181d03d519188caaa83fb4226033b8ed1ea Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
| | * QDir::mkpath: don't try to mkdir in automount filesystemsThiago Macieira2017-02-161-33/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Automount filesystems like /home on many operating systems (QNX and OpenIndiana, at least) don't like if you try to mkdir in them, even if the file path already exists. OpenIndiana even gives you an ENOSYS error. So instead, let's try to mkdir our target, if we fail because of ENOENT, we try to create the parent, then try again. Task-number: QTBUG-58390 Change-Id: Ibe5b1b60c6ea47e19612fffd149cce81589b0acd Reviewed-by: James McDonnell <jmcdonnell@blackberry.com> Reviewed-by: David Faure <david.faure@kdab.com>
* | | HSTS policy - fix APITimur Pocheptsov2017-02-242-27/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | API-review follow-up: 1. make a ctor explicit 2. add swap member-function 3. make move-assignment inlined 4. make comparison operators non-members 5. make d_ptr QSharedDataPointer (and private implementation - QSharedData). Change-Id: I3257ca03cccd0f1254c9b95461752911359352a5 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | QApplication: Remove code duplicationGabriel de Dietrich2017-02-241-11/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | We always send mouse move events through the application event filters even if the widget has no mouse tracking enabled. This code portion is an almost verbatim copy of QCoreApplicationPrivate::sendThroughApplicationEventFilters(). The only difference is that previously the filter and the widget had to be in the same thread. Now, we compare the filter's thread to the application's. This is without consequence since widgets must live in the application thread. Change-Id: Ifee9c041e06d80ea0c2d2a947231e58ee4dfa24d Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | QImageReader: remove some unneeded relocationsMarc Mutz2017-02-241-12/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace an array of pairs of pointers with an array of pairs of arrays. Remove the unused end marker. Add a static_assert to verify that the size of the array matches the constant all loops use. Also extract the common part of the mime-type name and append it when building a QByteArray from it. This is free, as both the new QStringBuilder expression as well as the old construction from a const char * incur one memory allocation each. Replace one indexed loop with ranged-for. Results on optimized GCC 6.1.1 Linux AMD64 builds: text -96B data -160B relocs -16 Change-Id: Ic23eb06bacbf70afb6f60e2fb8a140bdd3880aca Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QtGui: kill some unneeded relocationsMarc Mutz2017-02-243-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | Turn arrays of pointers into arrays of arrays. Results on optimized GCC 6.1.1 Linux AMD64 builds: text -264B data -512B relocs -43 Change-Id: I0b64615913d50c286596e66675e89758ce1ec2ba Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Clean up QByteArrayLiteral definitionMarc Mutz2017-02-241-10/+0
| | | | | | | | | | | | | | | | Remove the dead QByteArray(data, size) fall-back. We've been requiring lambdas since Qt 5.7. Change-Id: I4d9023ab4583f2ee80a74a828fba0d95c2fdb0df Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QStyleSheetStyle: optimize away triple key lookupMarc Mutz2017-02-241-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | Instead of contains()/value()/remove(), all of which perform a new lookup, and a new application of qHash(), get an iterator using find(), deref it, then pass it to erase(). Also add some optimistic std::move(). Change-Id: I27a623dcd974de9c67d11d030e9b98d7598efc93 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | QSideBar: replace a QPair with a structMarc Mutz2017-02-242-6/+13
| | | | | | | | | | | | | | | | Instead of the incomprehensible "names" .first and .second, the code can now use .index and .path. Change-Id: I1449ba668f703b9a8b9391b0a0774072c8c6e8aa Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | QNAM - rename Redirect*s*Nnn to RedirectNnnTimur Pocheptsov2017-02-239-68/+68
| | | | | | | | | | | | | | As discussed in API code-review. Change-Id: Ib54cfd43d5bef8c7d99a7fb3b09a9d16dc1dc1dc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | QSizePolicy: plaster API with Q_DECL_NOTHROWMarc Mutz2017-02-232-24/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is mostly straight-forward, but some things are worth noting: 1. Yes, this is necessary. The noexcept operator looks for noexcept tagging, not at the contents of the function to determine whether to return true. The more conditionally-noexcept functions are used, the more important it becomes that low-level classes are correctly marked noexcept. In that, it is like constexpr. 2. In accordance with the rules governing noexcept specifications for the standard library itself, the set*Stretch() functions are not marked as noexcept, since they have preconditions and thus a narrow contract. Narrow-contract functions should not be noexcept. All other functions have wide contracts (ie. no preconditions). Change-Id: I853e0fc2d98cf3fcb16402a18ab136cccca24d89 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | QNativeSocketEngine - set query type in checkProxyTimur Pocheptsov2017-02-231-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The default query type for QNetworkProxyQuery is TcpSocket (that's what our QNetworkProxy::applicationProxy() requests). Unfortunately, this can result in http_proxy found and QTcpServer::listen() failing (probably, QUdpSocket is also affected). So now we extract applicationProxy's logic but modify it to provide the exact query type we need. Task-number: QTBUG-58706 Task-number: QTBUG-41053 Task-number: QTBUG-58374 Change-Id: I79ce0efb779bbaf08afd78c44cbe92d08730152b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | HSTS - API/naming fixesTimur Pocheptsov2017-02-236-42/+34
| | | | | | | | | | | | | | | | | | | | As recommended in API review: use 'is...STS...Enabled' and 'set...STS..Enabled(bool)' function names instead of stsEnabled and separate enable/disable functions. Replace QList with QVector in the public API. Change-Id: I1526124c830450058967ebc192d27575cc89292d Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Unexport QTimeZonePrivateMarc Mutz2017-02-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | It's only used in the autotests, and it private API, so downgrade from Q_CORE_EXPORT to Q_AUTOTEST_EXPORT. Fix a use of QTimeZonePrivate functions unprotected by QT_BUILD_INTERNAL in tst_qtimezone.cpp. Change-Id: I70eaea06f8fcf2983aeafb6894c3a5d2a4b272a7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | make TabletMove hover events conditional on QWidget::tabletTrackingShawn Rutledge2017-02-235-1/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the tabletTracking property in the same way that mouseTracking already existed: there is a WA_TabletTracking attribute, and a TabletTrackingChange event to notify when it changes. So for widget applications it's an opt-in feature. QtQuick applications don't yet make use of tablet events, but when they do in the future, we don't yet have a mechanism to turn the move events off; it remains to be seen whether that will be necessary. [ChangeLog][QtWidget] QWidget now has a tabletTracking property, analogous to mouseTracking, which will enable TabletMove events while the stylus is hovering, even if no button is pressed. This allows applications to show feedback based on the other tablet event properties such as rotation and tilt. Task-number: QTBUG-26116 Change-Id: Ie96e8acad882b167e967796cdd17f1ad747a2771 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | handle TabletMove events during stylus hoverShawn Rutledge2017-02-232-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main reason for this is to get feedback about the stylus orientation (angles and rotation) before the user presses it. For example an application might provide an image of the brush which rotates along with the stylus. As with mouse events, applications can distinguish hovering by the fact that no buttons are pressed. On the xcb platform we need to stop blocking the hover events, and in QWidgetWindow we need to send the event to the widget being hovered, while keeping the existing "grab" behavior: after pressing the stylus (or any button on the stylus or on the tablet), keep sending the events to the same widget until release. Task-number: QTBUG-26116 Change-Id: Iaed8b3b94961290dbb29b5fd2ea892fed7221685 Reviewed-by: Dmitry Kazakov <dimula73@gmail.com> Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | Revert "testlib: Add qWaitFor to wait for predicate"Friedemann Kleint2017-02-234-64/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 3b38392844dd9e145a4783445fd3c96e84bb94d1. The change caused test compile failures with MSVC2015 in qqmlsettings; a variable was not captured in the lambda expression. This appears to be a compiler bug of MSVC. Task-number: QTBUG-59096 Change-Id: I3bf5288eb005b2e1661819bb33bc54fb944d0150 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Enable FTS5, will be used by Assistant instead of cluceneJarek Kobus2017-02-231-1/+1
| | | | | | | | | | Change-Id: Ifd1d7128c6080650b5ad43f87410c7058d8c5a74 Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
* | QTimeZonePrivate: make clone() const, use covariant return typesMarc Mutz2017-02-237-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | There's nothing wrong with cloning a const QTimeZonePrivate, so make clone() const. Also, if you're cloning a QTzTimeZonePrivate, you already know that you get a QTzTimeZonePrivate back. C++ supports covariant return types for this reason, so use them. Change-Id: I60e19e89b1b7bad080c552f1baca314ab0a6295e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Simplify QTzTimeZonePrivate implementationMarc Mutz2017-02-232-17/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Don't init m_icu with 0. It's a QSharedDataPointer, which inits to nullptr anyway. - The copy ctor didn't do anything out of the ordinary, so = default it. It's also only used in the implementation of clone(), so make it private. Removes three #if QT_CONFIG blocks. We can't use ctor delegation here, because systemTimeZoneId() is a virtual function. Change-Id: I2cd06c3349686b6f21c897acb5c12185a36d5b9f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>