summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | Respect QWindow::screen() when computing QPlatformWindow::initialGeometry()Tor Arne Vestbø2017-02-131-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling setScreen() on a QWindow doesn't move the window to that screen unless the new screen is a separate virtual desktop, as the window geometry is what determines the position of the window within each virtual desktop. But when mapping a QWindow that doesn't have a position explicitly set by the user, we try to resolve a reasonable position for it. In that case we should take the QWindow screen into account, as setting it to a non-primary screen is a good indication that the user wants the window to end up on that screen. If that's the case, it should override the logic of using the transient parent or the cursor position to choose which screen to place the window on. Change-Id: I591d872a93913173b20eb3da19aa63118fcf6b12 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Don't create platform window for QWindows when calling setVisible(false)Tor Arne Vestbø2017-02-132-2/+16
| | | | | | | | | | | | | | We can defer the creation until the window is shown. Change-Id: I3d5b45ae59ee0925996cf12cd46dd574c8c6ef95 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | qimage_conversions.cpp: keep shared copies of gray and alpha color tablesMarc Mutz2017-02-131-19/+20
| | | | | | | | | | | | | | | | | | | | Since QVector is implicitly shared, don't re-generate the same two color tables all over again, but create them once and keep them around in a Q_GLOBAL_STATIC. Change-Id: I9a8d32021d8cc327264f2818a23beaae67fe3ee8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | qmake/nmake: Prevent overlong lines in link and lib response filesJoerg Bornemann2017-02-132-7/+35
| | | | | | | | | | | | | | | | | | | | | | Linking with too many object files could lead to "LNK1170: line in command file contains 131071 or more characters". Do not write all .obj files into one line but respect a limit of 1000 characters. If the limit is reached the object files are separated by newlines instead of spaces. Task-number: QTBUG-58710 Change-Id: Ibae1f737d6b614a9624b4e00cdd21d3722d341e3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | QCollatorSortKey: add some std::moveMarc Mutz2017-02-135-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All implementations of QCollator::sortKey() can benefit from moving their CollatorKeyType into the QCollatorSortKeyPrivate on construction. So make the QCollatorSortKeyPrivate ctor a perfect forwarder for its m_key member, and add std::move() calls where they were missing (in all but one case, lvalues were passed). Make the ctor explicit, as it should have been from the beginning. Change-Id: I2a1cdda5fd23990ace019b963df895c621a1fa85 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | QThreadPool: replace a QSet with a QListMarc Mutz2017-02-132-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QThreadPool maintains three containers of QThreadPoolThread*: - allThreads, a QSet - waitingThreads, a QQueue - expiredThreads, also a QQueue None of the operations on allThreads make use of QSets fast lookup. The only functions called on it are isEmpty(), count(), insert(), and swap(). Since therefore QSet adds nothing but overhead, causes indeterminism (e.g. when deleting threads in Private::reset()) and code bloat, use the same container for allThreads that underlies QQueue: QList. Port insert() to append(). Add an assert to verify that we're not running into an ABA problem here (but this should never fire, since we're never deleting threads except in Private::reset(), where we do remove them from allThreads), just in case. Saves ~0.5KiB in text size on optimized Linux AMD64 GCC 7.0 builds. Change-Id: I53a4d5ef2c204420f7c8852f1e72ab3d6ea43d08 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | macOS: Make QMacNativeWidget example more usableTor Arne Vestbø2017-02-121-3/+2
| | | | | | | | | | Change-Id: I3948c998dfbc2982a79d597c7ea3bc226df9c125 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | macOS: Don't try to cast foreign windows to QNSViewTor Arne Vestbø2017-02-112-3/+4
| | | | | | | | | | Change-Id: I08a4d76310a689c3c855d4c8306f9d7aa5cecadc Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | macOS: Handle window state changes directly in QCocoaWindowTor Arne Vestbø2017-02-116-31/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | Now that notification callbacks are delivered directly to QCocoaWindow, it doesn't make sense to then send them to QPA via QNSView. By skipping the QNSView roundtrip we also enable window state notifications for foreign windows. As an optimization we no longer flush all window system events, but use the new synchronous API to deliver the window state change event. Change-Id: I529b625fbe22e664c34a51bcd4448d1bf0392e6b Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | evdevtouch: Add missing we mean it noteLaszlo Agocs2017-02-101-0/+11
| | | | | | | | | | Change-Id: If703a4d8542cb98fd1966f8ca959938709731452 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | egl: Expose direct function pointers on INTEGRITYLaszlo Agocs2017-02-102-11/+355
| | | | | | | | | | | | Change-Id: I4f7df9abcd580297a40fd9dd16a26f5f93e1c4c7 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Andy Nichols <andy.nichols@qt.io>
* | Blacklist tst_QSemaphore::tryAcquireWithTimeout(0.2s) on WindowsMarc Mutz2017-02-101-0/+2
| | | | | | | | | | | | | | | | | | This test was determined to be flaky on the CI, depite attempts to stabilize it (b750a3786f42395f0cddd8ed8f92a2bcfda1b270). Task-number: QTBUG-58745 Change-Id: I933199cd537002699906147d172bb797f1dc90c1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Fix compilation on iOSEskil Abrahamsen Blomfeldt2017-02-101-0/+2
| | | | | | | | | | | | | | | | | | The function is only used from inside the #ifndef ES2 blocks, causing it to fail compilation with a default configuration on iOS (where warnings are errors). Change-Id: I4f76c6371bd9125c7d1c919685df4a870eeb62f0 Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
* | moc: error out when the Q_PLUGIN_METADATA file can't be openedOlivier Goffart2017-02-102-1/+22
| | | | | | | | | | | | Task-number: QTBUG-56045 Change-Id: Ib058791036a2728dcd6215009a4ff206278bed14 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Don't include qfloat.h in the QtCore master includeThiago Macieira2017-02-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | We have observed that MSVC 2013 gets lost with the overloads that this header adds, causing compilation bugs. This is believed to be a compiler bug, but it's not something we can work around. Task-number: QTBUG-58555 Change-Id: I536c32a88bff44dab37afffd14a1bad1d31dc16d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Glen Mabey <Glen.Mabey@swri.org>
* | Add QDataStream streaming operator for QFlagsThiago Macieira2017-02-092-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | We're already using it, for example in qpaintengine_pic.cpp:502: d->s << p << ti.text() << fnt << ti.renderFlags() << [...] ^ [ChangeLog][QtCore][QFlags] Added operator<< and operator>> for streaming QFlags into and out of QDataStreams. Change-Id: I33dc971f005a4848bb8ffffd1478e79d6102d1bc Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | Blacklist Intel HD Graphics IronLake (Arrandale) on WindowsAndy Nichols2017-02-091-1/+13
| | | | | | | | | | | | | | | | | | | | More poor quality Intel OpenGL drivers causing issues when using OpenGL in Qt. Change-Id: I76ad023a1f1e92d57dc0b081c665a3b066206068 Task-number: QTBUG-53888 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | windowflags test: Don't assume window states can not be compoundTor Arne Vestbø2017-02-093-88/+43
| | | | | | | | | | | | | | | | | | The controls need to reflect the facts that e.g. maximized and fullscreen can both be set at the same time, the same way a window can be minimized and fullscreen. Change-Id: I7f3e354a5efaefb9f51e6b1f24fa35980fe35899 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | windowflags test: Don't hide windows unconditionally when applying new stateTor Arne Vestbø2017-02-091-5/+5
| | | | | | | | | | | | | | | | Makes operations like minimizing a window happen "behind the scenes" because the window is hidden during the state change. Change-Id: I01a00661e57f2dcfa6aef78ee0cfa36fbed1bb03 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Prevent Qt::ForeignWindow from propagating into QWidget for non-toplevelsTor Arne Vestbø2017-02-091-0/+2
| | | | | | | | | | | | | | | | | | | | | | Qt::ForeignWindow implies Qt::Window, which QtWidgets interprets as a top level window, but this is not the case on a QtGui level. A foreign window can be a child window as well, so we have to make sure the QWindow state is not propagated to QWidget, which would result in the QWidget becoming top level. Change-Id: Ie0c2d769ce92e6988a4d62da46f5fc2da74bdf08 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | QWindow: don't destroy foreign windowsTor Arne Vestbø2017-02-092-21/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Calling QWindow::destroy() is documented to "release the native platform resources associated with this window.", but in the case of foreign windows we do not control the native platform resource, so we shouldn't destroy the platform window until the QWindow is destroyed. This also allows code paths to defer to the platform window to answer questions like winId() instead of having to duplicate the ID on the QWindow side in _q_foreignWinId. Change-Id: Ie00ee570bdddde958d97d49edcba2bc1bf519a99 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Add QPlatformWindow::isForeignWindow()Tor Arne Vestbø2017-02-0912-31/+37
| | | | | | | | | | | | | | | | Simplifies code at call sites and allows for refactoring how to decide if a window is foreign or not at a later point. Change-Id: Icc51a83bac187f4975535366b53b4990832b6c82 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | QRegularExpression example: Handle empty patternsFriedemann Kleint2017-02-092-41/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, when clearing the pattern by clicking the clear button, the result match list would display a list of empty matches since apparently an empty pattern matches as many times as the subject is long. This is confusing when using the tool. Restructure RegularExpressionDialog::refresh() so that it bails out if the pattern is empty or invalid. Change-Id: I8119a75db50cead3f64394016e3390a9bf7d0bf7 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.8' into 5.9" into refs/staging/5.9Jani Heikkinen2017-02-09129-2027/+3242
|\ \
| * | Merge remote-tracking branch 'origin/5.8' into 5.9Liang Qi2017-02-08129-2027/+3242
| |\| | | | | | | | | | | | | | | | | | | | | | Conflicts: configure.json mkspecs/win32-icc/qmake.conf Change-Id: Ibf40546b024d644c7d9ed490bee15b82597f4d3f
| | * Remove outdated check for Apple Clang 2.x and 3.xThiago Macieira2017-02-082-17/+1
| | | | | | | | | | | | | | | | | | | | | The minimum version of Xcode that we support is 5.1 (based on Clang 3.4) Change-Id: I536c32a88bff44dab37afffd14a11f709fb25169 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| | * Remove unused qt_application_thread_id variableThiago Macieira2017-02-081-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Seems to be a write-only variable and QThread::currentThreadId has no side-effects. Change-Id: Ifaee7464122d402991b6fffd14a0c8666968dfe4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * Update the mkspec for win32-icc to use the MSVC config filesThiago Macieira2017-02-081-50/+6
| | | | | | | | | | | | | | | Change-Id: Ib57b52598e2f452985e9fffd1458a6b534111c23 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
| | * QStringMatcher: fix setCaseSensitivity() on a non-QString-backed matcherMarc Mutz2017-02-072-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a non-QString-backed mode (via the (QChar*, int) ctor) was added for Qt 4.5, the author forgot to adjust the setCaseSensitivity() function. It still uses q_pattern instead of (p.uc, p.len) as the pattern for which to create the skip-table. Since there is no setPattern() overload for this mode, the correctness of the matcher is not harmed by this, but its performance degrades to that of a linear scan: the skip-table, being filled from an empty pattern, will be all-zeros, sending bm_find() into the 'possible match' case at every character. Since matching is still correct, but slow, it's not possible to write a test for this. I did, however, leave my attempts in the auto-test, for when we add QStringView overloads of setPattern() which will then be able to expose the bug. Change-Id: I7b803e8624b0352a0a974900affbbfc0c260d93b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| | * QCollator/ICU: fix a rather hair-raising performance bug in compare(QChar*, ↵Marc Mutz2017-02-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | int, QChar*, int) The intention when using an overload that takes (const QChar*, int) instead of a QString is probably to avoid creating a QString in the first place. If the implementation stabbs the user in the back by internally creating a QString just so it can call QString::compare() on it, then that is rather unacceptable. QCollator is already a friend of QString, so, absent QStringView, resolve to calling compare_helper(). Change-Id: Ia7de1a095e3e310bd1b9957ed67291cc9cc95b32 Reviewed-by: David Faure <david.faure@kdab.com>
| | * Fix regression preventing VoiceOver following the keyboard focusFrederik Gladhorn2017-02-071-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In fafdb171e0c317ee8f871dc7b504d3713d5860eb a potential nullptr deref was fixed, but it changed the hierarchy of accessible objects. The new hierarchy would prefer to send a parent object that represents the application, but macOS needs the window to be in the hierarchy for VoiceOver to behave as expected. Tweak it so that we give the window as parent again, not the app. Change-Id: I5f7f59b07d0966c8bcf96968e4ed65eba9e05be6 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| | * Protect against nullptr deref in QAccessibleEvent::uniqueIdFrederik Gladhorn2017-02-071-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This looks like an underlying issue in the model/view implementation which relies on accessible interfaces that are not representing a qobject. We know it's not perfect and needs fixing, but for now at least don't crash. [ChangeLog][macOS][Accessibility] A common crash in accessibility on macOS was fixed. See QTBUG-39008 Task-number: QTBUG-39008 Task-number: QTBUG-54776 Task-number: QTBUG-56043 Task-number: QTBUG-57146 Change-Id: I16b161914d4bc3cbc0beee37d468243bf7788d1e Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
| | * Use categorized logging in qaccessible.cppFrederik Gladhorn2017-02-071-1/+4
| | | | | | | | | | | | | | | Change-Id: I244a1ef8bae2cc0392dae4ef8f3fbb47630e1d56 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * Doc: link issue and qdoc error on parameterNico Vertriest2017-02-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | - No such parameter 'image' in QImage::toCGImage() - Can't link to 'toNSImage() Change-Id: Ida559fb1211d1e196d9a9a50d97566124e82eb2f Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| | * Fix result handling in QDialog::doneSamuel Gaist2017-02-072-1/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The setData method of an item view would get an incorrect value of a QDialog's result. This patch changes the order of functions called to fix that. [ChangeLog][QtWidgets][QDialog] Fixed a bug where accessing the result of QDialog's result could yield an incorrect value in some situation like using it as a delegate for item views. Task-number: QTBUG-6018 Task-number: QTBUG-12156 Task-number: QTBUG-14430 Change-Id: I6ee4b6e8cacf6a806631c05c6c5dbcff925df65e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
| | * Android: Fix data race in QAndroidEventDispatcherStopperVyacheslav Koscheev2017-02-072-6/+4
| | | | | | | | | | | | | | | Change-Id: If5f8406d7af2d91e267a0ba380e73287feabac9f Reviewed-by: BogDan Vatra <bogdan@kdab.com>
| | * Doc: Ignore QML/JavaScript parsing errorsTopi Reinio2017-02-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDoc reports warnings for every QML code snippet that's not a complete QML type declaration - ignore these warnings because in majority of the cases, they're not indicative of any actual problems in the code. Change-Id: I53d13e2ae683ca8c5473f68eda17c61199de1ff8 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
| | * Unbreak ubsan developer-buildMarc Mutz2017-02-073-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clang 3.8's undefined-behavior sanitizer checks that the declared type of the object is a base class of the dynamic type of the object on each access to a member of a class type. It therefore requires the typeinfo for these types, which for polymorphic types is emitted in the TU where the vtable is emitted, too. QDBusConnectionPrivate is a polymorphic non-exported class, so this failed at link-time. Ditto for the other case. Fix by autotest-exporting the classes. Also, where applicable, de-inline the dtors, so the vtable (and typeinfo) are pinned to one TU, and the ctor, just because it's the correct thing to do. Change-Id: I991f81f88d2a48e85d94d9f3ac61473c0b7056d3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * adjust configure to native build optimizationsOswald Buddenhagen2017-02-063-2/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | don't fail to set up cross_compile early enough. otherwise, we'd populate the cache for target builds with data for the host. amends 6b8666c7 and 5060740f. conversely, pass on extra flags to configure tests when not cross building. amends d8be8110 (and 2c5eb3e6). Task-number: QTBUG-58556 Change-Id: I531d71e06204a0b17ae6dabf017a52e0f2efd9a7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| | * add a bunch of complementary options to -afterOswald Buddenhagen2017-02-066-36/+50
| | | | | | | | | | | | | | | | | | | | | | | | in particular, -before (just for symmetry, as it's the default), -early (the actual objective), and -late (for symmetry again). Change-Id: I274303582a348b052c3e5106ff360ab4fd7d4ee2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| | * make more use of configure QMAKE_*= arguments in native buildsOswald Buddenhagen2017-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | don't ignore the variable assignments for host tools when we're not actually cross-building. (sort of) amends 5060740f. Task-number: QTBUG-58511 Change-Id: Ideda25fb18a4e0b2d54179b08b6301b94a48e51c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
| | * QDBusTrayIcon: try use runtime or cache for iconsMarco Trevisan (Treviño)2017-02-061-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's better to save icons in $XDG_RUNTIME_DIR or $XDG_CACHE_HOME paths than in $TMPDIR as these places are readable from the desktop environment when an app is ran confined in a sandbox (as in snap packages) Change-Id: I1a3e4c5714f8ea51034d18fb87cead87ed21d6be Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
| | * QInputDialog: prevent crash in static get*() functions when parent gets deletedMarc Mutz2017-02-064-66/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As explained in https://blogs.kde.org/2009/03/26/how-crash-almost-every-qtkde-application-and-how-fix-it-0 creating dialogs on the stack is a bad idea if the application or the dialog's parent window can be closed by means other than user interaction (such as a timer or an IPC call). Since we cannot know whether Qt is used to build such an application, we must assume it is, create the dialog on the heap, and monitor its lifetime with a QPointer. Instead of using manual resource management, add a minimal implementation of QAutoPointer, and use that in all static get*() functions. Task-number: QTBUG-54693 Change-Id: I6157dca18608e02be1ea2c2defbc31641defc9d1 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: David Faure <david.faure@kdab.com>
| | * QGtk3Menu: fix compilation with Clang 3.8Marc Mutz2017-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Clang complained about a missing override: qgtk3menu.h:58:14: error: 'tag' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override] Change-Id: I681cdeb93d35848ae39c1af289973b436e8ea60e Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
| | * Reset QFileDevicePrivate::cachedSize on file closeAleksey Lysenko2017-02-062-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a QFile object is reused, the atEnd() method may return incorrect values. The reason for this is that QFileDevicePrivate::cachedSize is not cleared. Setting cachedSize = 0 in the close() method fixes this issue. Task-number: QTBUG-57698 Change-Id: I828a2cf844e98d581098f2c781fa47d2cd3275ce Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * QDateTimeParser: de-duplicate vtableMarc Mutz2017-02-052-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QDateTimeEdit (QtWidgets) inherits its Private class from QDateTimeParser. By making the destructor (usually the first non-inline, non-pure, virtual function, and therefore the trigger for most compilers to emit the vtable and type_info structures for the class in that TU) out-of-line, vtables and, more importantly, type_info structures for the class are pinned to a single TU. This prevents false negative dynamic_cast and catch evaluation. Since the class is already exported, users of these classes are unaffected by the change, and since it's private API, we don't need to avoid adding code to the out-of-line destructor until Qt 6. Task-number: QTBUG-45582 Change-Id: Id57289a7eff13564dddeca0af1c45a6180c36c48 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Use a precise timer in tst_QTimer::remainingTimeThiago Macieira2017-02-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | At 200 ms, the error on first firing could be 10 ms. Task-number: QTBUG-58519 Change-Id: Ifaee7464122d402991b6fffd14a02a4ce782f11f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * Doc: update QtConcurrent snippets to use QRegularExpressionSamuel Gaist2017-02-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Update the QtConcurrent code snippets to use the new QRegularExpression class in place of the deprecated QRegExp. Change-Id: I1366f902fc46bbeccc4013dd8adcf5fbfda13aed Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
| | * Use nullptr in qDBusRegisterMetaTypeAlexander Volkov2017-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | ... to make user code buildable with gcc [-Werror=zero-as-null-pointer-constant]. Change-Id: Ifef52e406c1f7d5a260612ec27922d1805aea6e2 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * Fix data corruption when reading byte arrays from QSettingsThierry Bastian2017-02-034-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On macOS, the code that read the plist is using QByteArray::fromRawCFData. When we return the data directly we need to detach the QByteArray so that it does not point CFData's data that will get deallocated just after the call. Task-number: QTBUG-58531 Change-Id: If829a304b986c99c8fc2aeeb992f2d539a4eef3a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>