summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* QIcon: don't use a QList<QImage>Marc Mutz2015-06-221-2/+2
| | | | | | | | | | | QImage is larger than a void*, so holding them in a QList is needlessly inefficient. Use QVector instead. Change-Id: Ifcc9eca18a87e29327586506e3a3bb7874c8b3a7 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* QTextDocumentLayout: don't hold QPointers in QListMarc Mutz2015-06-221-1/+1
| | | | | | | | | | | QPointer is larger than a void*, so holding them in a QList is needlessly inefficient. Worse, the code could come to depend on the fragile property of (inefficient) QLists that references to elements therein never are invalidated. Change-Id: I104d11cc530c9c1579e82bf4e28e3353c00b34b4 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* qdoc: mark Location::StackEntry as movable and Location as complexMarc Mutz2015-06-221-0/+3
| | | | | | | | | Location is self-referential, so explicitly mark it as Q_COMPLEX_TYPE. Location::StackEntry is held in QVector, by way of QStack. Change-Id: I4d9001b55b86f0387ae41b93da17d06fb2857ee4 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* QtIcoHandler: don't hold images in QListMarc Mutz2015-06-221-7/+9
| | | | | | | | | | | | | QImage is larger than a void*, so holding them in a QList is needlessly inefficient. Worse, the code could come to depend on the fragile property of (inefficient) QLists that references to elements therein never are invalidated. Also added a reserve() call. Change-Id: I36388f2efbc6ca025f123c30bc7f1dd312bf4ab2 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* qdoc: don't hold Location in QLists, don't even copy itMarc Mutz2015-06-221-5/+2
| | | | | | | | | | | | Location is a self-referential type that is very expensive to copy. So don't. Instead, just remember the iterator, and use value()->location() (which returns a reference, so doesn't copy). Change-Id: I9a2b72b05b8051e793cf67179a0195f2f3551a10 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* QTextureGlyphCache: don't use a QList<QImage>Marc Mutz2015-06-221-8/+11
| | | | | | | | | | | | | | QImage is larger than a void*, so holding them in a QList is needlessly inefficient. In this case, the maximum size of the container is a small compile-time constant, so the best container to hold those QImages is a C array, even though it will default-construct all 12 QImages before even starting the loop, since the QImage constructor does not allocate memory. Change-Id: I83ca65aa1ca51c400ca696202d24cfaeab505a5b Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* qdoc: don't hold QQmlJS::AST::SourceLocation in QListsMarc Mutz2015-06-219-36/+39
| | | | | | | | | | | | QQmlJS::AST::SourceLocation wasn't marked as movable, and it is larger than void*, so QList<SourceLocation> is horribly inefficient. Fix by marking as movable primitive and holding in QVector instead. The same fix probably is required in QtDeclarative, too. Change-Id: I4e0d2cd32b7e03205d59cbc9900287f77045154a Reviewed-by: Martin Smith <martin.smith@digia.com>
* QGestureManager: fix expensive iteration over QHash::keys()Marc Mutz2015-06-211-3/+4
| | | | | | | | | | | | | ... with iteration over the hash itself. gesturesByType is a local variable, so there's no way functions called in the loop can modify it. This dividing operation would greatly benefit from a splice operation in QHash... Change-Id: Ifd241d2da9c6998c2ad0b08294fca84d5b188d0f Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QtTest: don't hold QBenchmarkResults in QListMarc Mutz2015-06-212-3/+5
| | | | | | | | | | | | | QBenchmarkResult is larger than a void*, so holding them in a QList is needlessly inefficient. Worse, the code could come to depend on the fragile property of (inefficient) QLists that references to elements therein never are invalidated. Also saves ~1.2KiB of text size on GCC 4.9 optimized C++11 AMD64 Linux builds. Change-Id: I0c99e591bb9b4405aa1bb78ec095dcaf9277993f Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QGestureManager: fix expensive iteration over QHash::keys()Marc Mutz2015-06-211-3/+3
| | | | | | | | | | ... with iteration over the hash itself. gesturesByType is a local variable, so there's no way functions called in the loop can modify it. Change-Id: I5971c404f4ae8473d4926b68eb7a9c60801f208d Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QMdiSubWindow: fix O(n+nlogn) loop to O(n)Marc Mutz2015-06-211-2/+2
| | | | | | | No further comment. Change-Id: I2056b97281b5775d59c0ef9b4a5cbf03943a7d6b Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* qdoc: fix one of the most expensive loops in QtMarc Mutz2015-06-211-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | QQmlJS::Engine::comments() returns a QList<QQmlJ::AST::SourceLocation> by value. The QList is horribly inefficient, but that will be topic of a separate patch. The loop in QmlMarkupVisitor did not store the result of comments() in a local variable, it called engine->comments() whenever it referenced it, which was _three_ times per loop iteration. Two of those references applied op[] to the rvalue engine->comments(), which, being mutable, detaches. _Twice_ per loop, with a QList that heap-allocates its elements!. And that was followed by a similar loop. Fix by using a local const copy of the list to iterate over. The loop termination condition also looks fishy (j is used to index into the comments, but is not checked against comments.size()), but apparently qdoc works fine with it so far, so don't try to fix. The copy of QQmlJS in QtDeclarative is not affected by this (qdoc-specific code). Change-Id: I133c35dc9293609dfb8ad633e2d82399223b508b Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QHttpNetworkHeaderPrivate: use QList<QByteArray>::join()Marc Mutz2015-06-201-10/+2
| | | | | | | ...instead of coding the loop by hand. Change-Id: Ieaa066de1ff8552b737cf27cf0d4236efb7296eb Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QAbstractItemView: convert some assignments into RVO'ed initializationsMarc Mutz2015-06-201-4/+2
| | | | | Change-Id: If4b612460166675e91906a49e03de8ad4c50739f Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Prospective fix to unbreak qtdeclarative testsSimon Hausmann2015-06-201-4/+4
| | | | | | | | | | | Since commit a6000e2b6679d91c9dab44e49b485de6816372bc tests run in the CI now disable D3D11 and are intended to fall back to warp. This causes additional output, which confuses tests in qtdeclarative that look closely at the output of processes. So let's make these debug messages instead of warnings. Change-Id: I91d2f88c66e2e7368c8cbbfb3aec7ad0c47b8bee Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Core: Consolidate QProcess error reportingKai Koehne2015-06-205-79/+78
| | | | | | | | | Introduce two methods to set set error and errorString, and optionally emit the error() signal. This also fixes two places where errorString hasn't been set previously. Change-Id: Ib7c27ff2daff898745e8e20ff8f11eaae568697f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Simplify QIODevice::readAll()Alex Trotsenko2015-06-201-22/+13
| | | | | | | | | | | | | | | | | The previous implementation performed reading in two steps: - flush the internal buffer - request the rest of the data by calling the read() function It would resize the result buffer separately at each step, even if its total size was known in advance. This is important for random-access devices, which may have big chunks of cached data. Also, possible failures during the second step would cause a loss of result data from the first stage. This patch eliminates the initial flush, which improves performance and prevents data loss. Change-Id: I3da4c24ee33dca6afc4ba519d078b86068de43b9 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QSettings: replace a QMap with a QListMarc Mutz2015-06-203-7/+13
| | | | | | | | | | | | | | | The QMap<QString, QString> was only used to create a sorted, unique list of keys. The associativeness was never used (the value was always the null QString). Better to use a QStringList instead and sort-unique the whole thing at the end. Saves ~1.6K in text size on Linux AMD64 GCC 4.9 release C++11 builds, and a tremendous amount of heap allocations. Change-Id: Idf749dd8924b3894e436aa1cee0304002b898975 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QCommandLineOption: prevent aggressive inliningMarc Mutz2015-06-201-0/+2
| | | | | | | | | | | | | There is a good chance that in every program, command line options that have only one name and those that have multiple names are used. Make better use of the icache by not inlining the Private ctors into the QCommandLineOption ones. Saves 400B in text size on Linux GCC 4.9 C++11 release builds. Change-Id: I6247d4a2330c5fff75d06f5a40223d972b267e85 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QFontSubset: mark local types movable and hold in QVector, not QListMarc Mutz2015-06-202-19/+24
| | | | | | | | Virtually all of these types are too large to fit into a QList. Change-Id: If55496ef3fb26d6531e9ef1bb1558887d9077a3b Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Remove quadratic behavior in QFontDatabase::writingSystems()Marc Mutz2015-06-191-8/+16
| | | | | | | | | | | | | | | | | Looping over QList::contains() constitutes O(N²) behavior, the more so as this QList is horribly inefficient since WritingSystem is not a Q_MOVABLE_TYPE. Since the range of possible unique values in the result is severly limited (by virtue of being enumerated values), use a bitmask to remember which WritingSystems were encountered, then, after releaseing the mutex again, use that bitmask to populate the QList. Change-Id: I1d12eb487513ec17faa6f38942f8b681819dc0e8 Reviewed-by: Adam Majer <adamm@zombino.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* windows: Disable D3D9/11 with ANGLE in VMsLaszlo Agocs2015-06-194-4/+26
| | | | | | | | | | | | | | | | By adding support for the driver description, we can detect if we are in VMware. In this case D3D9 and 11 get disabled, so only the software-based options are in use. This allows running autotests like tst_qopengl, tst_qopenglwidget, tst_qgl, etc. in the Qt CI system. There OpenGL 2.x is not available, so ANGLE is the only option. D3D11 is not an option, so it picks D3D9 by default. However, this results in mystic failures. The stable solution seems to be to use WARP. This can be achieved by setting disable_d3d9 in the built-in GPU blacklist. Change-Id: I937c4b3fa82fc1a2d524b4eb712732722df2070c Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Move-enable QPixmapCache::KeyMarc Mutz2015-06-192-0/+24
| | | | | | | | The default constructor already sets the d-pointer to nullptr, so the move constructor does not introduce a new state. Change-Id: Icd47952bdf76d2106992d6babea40d68f18d067e Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QSpdyProtocolHandler: don't create QLists of key and value just to iterate overMarc Mutz2015-06-191-12/+7
| | | | | | | | | | Just iterate over the QMultiMap directly. Also, now that we use iterators, the remove operation becomes amortized O(1) instead of O(logN). The loop could be even O(N) (clean, not amortized) if QMap had range-erase. Change-Id: I0cf3511adc3a558e551ddd91e47dabcab376001a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtNetwork: fix warnings when compiling with QT_NO_BEARERMANAGEMENTUlf Hermann2015-06-192-3/+2
| | | | | | | | Resolving d- and q-pointers in code branches where we don't use them is wasteful and leads to compile warnings. Change-Id: Ib5dadd247acfe48722121e0e95ffcac61e7a2e09 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QCommandLineOption: optimize ctorsMarc Mutz2015-06-191-31/+48
| | | | | | | | | | | ...by moving common code into the Private ctor, and catering for C++11 move semantics a bit. Saves ~1.5KiB in text size on Linux GCC 4.9 C++11 release builds. Change-Id: I52ed7e47f76b69500a871844c0920e27fe51a127 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCUPSSupport: clear the job-hold-until option if jobHoldToString() is emptyMarc Mutz2015-06-192-2/+15
| | | | | | | | This changes the behavior of the code such that the option, once set, can also be unset again. Change-Id: I739f77ae1f1336806aac548f6a797ed6b2770235 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Micro-optimize QSettingsPrivate::processChild() and its usersMarc Mutz2015-06-193-6/+6
| | | | | | | | | | | | | | ...by using QStringRef instead of QString, avoiding one memory allocation in the case of spec != AllKeys and key containing a '/'. Also calls one less non-inline function, since QStringRef::truncated() is inline. Change-Id: Id5eb203006a3857508c5d3f4b729cde1a5170d58 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPixmapCache: remove unused Q_TEST_QPIXMAPCACHE-only functionMarc Mutz2015-06-192-25/+0
| | | | | | | | Unused by tst_qpixmapcache.cpp and everything else, and uses an inefficient QList, so remove. Change-Id: Ia410ed19db9bb3db97460b21bc2fd9d53c95a73d Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Use Q_GLOBAL_STATIC for QThreadStorage<QGuiGLThreadContext *>Sérgio Martins2015-06-191-5/+5
| | | | | | | | | QThreadStorage isn't a trivial type. Change-Id: Iedc3c16320fd025a0ccf627eac43a85ebd02aa5e Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* qprinter: Remove superfluous iteration and memory allocationSérgio Martins2015-06-191-1/+1
| | | | | | | | | | Instead of iterating through a QList that was constructed after iterating through all of QSet's elements just iterate through QSet's elements. Change-Id: Ie502017976536b14ea9170af550a2d7156443391 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QStringRef: add truncate()Marc Mutz2015-06-192-1/+17
| | | | | | | | | | Missing part of QString API. [ChangeLog][QtCore][QStringRef] Added truncate(int). Change-Id: I49e218daf8f47fcd3dad131155e0abc8e2a133e5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QMap: add const equal_range() overloadMarc Mutz2015-06-192-0/+16
| | | | | | | | | | ... to prevent detaching. [ChangeLog][QtCore][QMap] Added const equal_range() overload. Change-Id: I4b39abb8ad41ba6eaa8f9a9a74ed74ed10337dd3 Reviewed-by: Sérgio Martins <sergio.martins@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QVector: add move(int,int) for QList compatMarc Mutz2015-06-182-0/+23
| | | | | Change-Id: I67948621313f2e7c69abe7ef95ee82ca64c6512a Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Don't build CUPS related code if QT_NO_CUPS is set.Ulf Hermann2015-06-189-18/+18
| | | | | | | | | Various related classes aren't built in this case, so the build fails if we try to build the plugin or the widget. Change-Id: Ia3f8651f172bc3c4c643fb2521601683b403eadc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
* QMenu/QToolBar: Add overloads of addAction() using Qt 5 signals and slots.Friedemann Kleint2015-06-184-0/+282
| | | | | | | | Add documentation dummies and templates, add tests verifying compilation. Change-Id: Ide336b28bc069cfd17848ce3a17fd428e36ed65b Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QIODevice::atEnd(): fix debug message outputAlex Trotsenko2015-06-181-3/+4
| | | | | | | | | | | For sequential devices, duplicated bytesAvailable() calls can produce different results. To avoid a wrong output, print exactly the same value as would be returned. Change-Id: I02615dd7375516f7b263eea56bfcf15e2889e6e3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QException: fix exception specificationMarc Mutz2015-06-172-5/+13
| | | | | | | | | | Some broken compilers (known broken: GCC 4.7; known good: GCC 4.9) don't understand that destructors are implicitly noexcept and complain about a weaker exception specification on ~QException than on ~std::exception. Change-Id: I433475fcf345d7da55e8da667cf9821ee09c0d8a Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QMetaObjectBuilder: replace an inefficient QList with QVectorMarc Mutz2015-06-171-1/+1
| | | | | | | | | | | | | ints are only half the size of void* on 64-bit, so QVector<int> uses only 50% of per-element memory, compared to a QList. Saves ~1800B of text size on GCC 4.9 optimized C++11 AMD64 Linux builds, even though it wasn't the last instance of QList<int> in QtCore, yet. Change-Id: Ibf04b26cff78c428e4253aaab7c280866906db58 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* QMetaObjectBuilder: replace inefficient QLists with QVectorMarc Mutz2015-06-171-6/+12
| | | | | | | | | | | | The QMeta*Private classes are larger than a void*, and weren't marked as movable, so QList<QMeta*Private> is horribly inefficient. Fix by holding them in QVector instead. Saves ~900B in text size on GCC 4.9 optimized C++11 AMD64 Linux builds, and tons of memory allocations. Change-Id: I313c965d7a0fea16f79e9fde04a972fc248e33aa Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* QPointer: add member-swapMarc Mutz2015-06-172-0/+10
| | | | | Change-Id: I5704badc86f98e549c586656ec8df3915632ce15 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* qDBusRealAddTimeout(): don't create a QList just to check it's emptyMarc Mutz2015-06-171-1/+1
| | | | | | | | | Instead of QHash::keys(value).isEmpty(), use QHash::key(value, 0) == 0 (0 is used a failure indicator three lines down, so it should not be a key in the hash table). Change-Id: I75cc4f7f7540dc5c51a7b8e3add09a0ec6a75e05 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* QButtonGroup: don't create a list just to find the minimum elementMarc Mutz2015-06-171-7/+6
| | | | | Change-Id: Ibd66ad81264abbe804db2bae48823966d5e4f449 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Don't define qAccessiblePlugins if we cannot use them.Ulf Hermann2015-06-161-2/+2
| | | | | | | In case of QT_NO_LIBRARY there are no plugins after all. Change-Id: Iad891d0cf0edf9e4418a4fe4ac49cf6497ceeb79 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* Unify QByteArray::MaxSize and MaxAllocSizeUlf Hermann2015-06-166-30/+82
| | | | | | | | | | | | | | | | | | | | | | | | We have established the maximum size qAllocMore can deal with in commit 880986be2357a1f80827d038d770dc2f80300201 and we should use it. The maximum size for byte arrays is reduced by one byte as with the previous code we could make qAllocMore produce ((1 << 31) - extra) by passing (1 << 30). That is not a problem for qAllocMore itself (as long as extra > 0) but it's hard to verify that no related code casts the total sum back to signed int, which would overflow to -1. To make the compiler inline access to the maximum size, a private enum MaxByteArraySize is provided, which can be used in internal code. This fixes the merge of commits 880986be2357a1f80827d038d770dc2f80300201 and c70658d301e274c3aaa1fb6cebe2a5e56db12779 Change-Id: Idb04856f7c2e53ef383063e7555d3083020ff2b7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use "Ex"-versions of WaitForSingle/MultipleObject(s) where possibleOliver Wolff2015-06-165-11/+10
| | | | | | | | | | | | | | Not only should using the "Ex"-versions be the rule and not the exception on Windows, but it's only the only way to share as much code as possible between Desktop Windows and WinRT (which is pushed by Microsoft a lot). The current rule of Desktop and WinCE vs WinRT does not make a lot of sense any longer, as WinCE is getting less and less important. By moving these #ifdefs in favor of WinRT, WinCe code might be removed easier in the future. Change-Id: I0ef94fb14fbf8add9c2dfa2a3fb8036d25fb697d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make sure the QDockAreaLayoutInfo item_list is detached when we are going to ↵Olivier Goffart2015-06-161-2/+2
| | | | | | | | | | | | | | | modify it This can lead to situations in which the gap item ends up in the saved state 'subinfo' is owned by the item, but the const-ness is not transferred to the pointer. So calling a non const function (unplug) that changes the subinfo changes it in the original list as well. This is a problem because that list might be shared with the saved state. Change-Id: I90a5faafea5958043db610a84c069494f2e48137 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Jocelyn Turcotte (Woboq GmbH) <jturcotte@woboq.com>
* Fix conditions for disabling dbus dynamic symbol lookupUlf Hermann2015-06-162-6/+6
| | | | | | | | We cannot do this if no library support is present. Incidentally that's the case when bootstrapping, but you can also set the flag manually. Change-Id: I51e167176d0839af5858122630ef623a1c69a106 Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
* Micro-optimize QKeySequencePrivate::decodeString()Marc Mutz2015-06-151-1/+1
| | | | | | | Use a QStringRef instead of a QString. Change-Id: I63bf9775606b071cd9614306375e1316dada9f61 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Add a synthesized-by-application value to mouse event sourceLaszlo Agocs2015-06-152-1/+8
| | | | | | | Task-number: QTBUG-46669 Change-Id: I5567a9fe7ed8a80cd08830250c02f7252fa79bf8 Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>