summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* QStringRef: make nothrow move-assign- and -constructibleMarc Mutz2015-07-221-9/+13
| | | | | | | | | | | | The move special members were inhibited by the presence of a non-trivial copy constructor/assignment operator and destructor. Restore them. While we're at it, move all the special member functions we should not have defined into an #if QT_VERSION block. Change-Id: I873a99bfefe03e0fb02676e3431fd51f8c8f0adc Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QRegExp: remove pointless QRegExpCharClass copy special member functionsMarc Mutz2015-07-221-14/+0
| | | | | | | | | They do exactly what the compiler-generated ones would do, but their presence inhibits the move special member function from being synthesized. Change-Id: Ib2046dbcee3c21ac3b5087f41d19e2a4a3e0a54f Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QXmlStreamAttribute: make nothrow move assignable and -constructibleMarc Mutz2015-07-221-0/+22
| | | | | | | | | | | | | | | Unfortunately, we cannot rely on Q_DECL_EQ_DEFAULT, so I needed to code the special member functions by hand. The 'reserved' field is pretty useless, since the existing ctors didn't initialize it, but just in case someone finds a way how to store information in there, deal with the field in the usual way: set to nullptr in the move ctor and swap in the move assignment operator. Change-Id: I15a5f61807cb67deb6e979d4f3e5a260384b20ab Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QItemSelectionRange: make nothrow move-assignable and -constructibleMarc Mutz2015-07-221-0/+11
| | | | | | | | | The move special members were inhibited by the presence of a user-defined copy ctor, which we cannot remove since the class is exported. Change-Id: I7118588b808387f2733d93216c8c3b117666bb9e Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QItemSelectionRange: use ctor-init-listMarc Mutz2015-07-221-8/+3
| | | | | | | | Avoids default-constructing two QPersistentModelIndex instances just to copy-assign to them. Change-Id: I0f3e04e3d202f58905f74df44d37dba27911a927 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* QItemSelectionRange: add nothrow member-swapMarc Mutz2015-07-222-0/+14
| | | | | | Change-Id: Ie550f4a66b3c623b0ec630c18f38bcd96f6bbc99 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Clarified the documentation for QTextDocument::find.Kavindra Palaraja2015-07-221-4/+12
| | | | | | | | | | | | QTextDocument::find has a behavior that is different from the typical QRegExp/QRegularExpression behavior where finding a given expression is always constrained by the paragraph (block), regardless of newline characters in the expression. Task-number: QTBUG-21785 Change-Id: Ia6a061c6feb5a19e6b8caa3d8009da5ca31ec422 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QTestLib: Add macros QTRY_VERIFY2_WITH_TIMEOUT(), QTRY_VERIFY2().Friedemann Kleint2015-07-227-71/+221
| | | | | | | | | | | | | | Add QTRY_VERIFY2_WITH_TIMEOUT() similar to QTRY_VERIFY_WITH_TIMEOUT() except that QTRY_VERIFY2() is used below the loop and QTRY_VERIFY2() based on it. Add tests to cmptest. [ChangeLog][QtTest] Added macros QTRY_VERIFY2_WITH_TIMEOUT(), QTRY_VERIFY2() making it possible to output a message after the timeout has expired. Change-Id: I587e24f3aeb73542dbf3ccb936a16f2e0806555f Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Optimize moc: Preallocate space for list of arguments on the stack.Milian Wolff2015-07-221-1/+1
| | | | | | | This removes the temporary QList allocations. Change-Id: I1f255e94730202f719e0a97b9ab4a83e28b805c1 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QTestLib/Windows: Try to obtain a stack trace on crash.Friedemann Kleint2015-07-221-2/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a helper class for resolving debug symbols by dynamically loading dbghelp.dll and try to obtain a symbol at the exception location and a stack trace by using CaptureStackBackTrace(). The output looks like: A crash occurred in d:\dev\projects\crashingtest_5d\debug\tst_crashingtesttest.exe. Exception address: 0x0000000052E2853A Exception code : 0xc0000005 Nearby symbol : QString::length Stack: # 1: windowsFaultHandler() - 0x00007FFE080CACD0 ... # 8: QString::length() - 0x0000000052E28530 [ChangeLog][QtTest] A stack trace will be output on standard error if a test crashes. Task-number: QTBUG-47370 Change-Id: I7217e02ec7dc0c96132fe84d1a175d0bed9c5aaf Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* winrt: Fix build when INADDR_XXX macros are not definedAndrew Knight2015-07-221-0/+10
| | | | | | | | These macros are not defined unless a desktop or standalone SDK is installed. Change-Id: I4c600ddca5944cc5fde310e4fbe0866a7250d36b Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* Fix creation of QPlatformTheme on UNIX platforms.Friedemann Kleint2015-07-221-3/+2
| | | | | | | | | | | | | | | | | | On Ubuntu 14.04.1 LTS, a file /etc/profile.d/appmenu-qt5.sh appeared, exporting QT_QPA_PLATFORMTHEME=appmenu-qt5 (application menu theme plugin). This caused QGenericUnixTheme::createUnixTheme() to return an instance of QGenericUnixTheme by theme name instead of the appropriate QKdeTheme, QGnomeTheme. Fix this by always appending the generic theme name to the list of available themes and returning it only if the name matches. Qt 5 applications will now appear correctly themed on Ubuntu, including theme icons. Change-Id: I68fcd80a620b74e2af73e938253dba9933816336 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* Port examples/widgets/dialogs to new connection syntax.Friedemann Kleint2015-07-2210-68/+50
| | | | | | Change-Id: Ife8a24b43db400909099765b43f016b4be4bd6ef Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* QSharedPointer: make copy assignment from compatible shared pointer use ↵Marc Mutz2015-07-211-14/+2
| | | | | | | | | | | copy-swap ... like all other assignment operators. Removes the last user of internalCopy(). Removed. Change-Id: I15f2cb3b7b26988dd3bc2f4475bc316480476993 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Windows: Include DirectWrite support by default if availableEskil Abrahamsen Blomfeldt2015-07-213-6/+55
| | | | | | | | | | | | | | | This will automatically add DirectWrite support if the required headers are found. The note about platform support from the help screen has also been removed, since Windows XP is not officially supported. Applications that need to run on XP can still build with -no-directwrite. Also changed the configure test to be a proper compile test, since cross-compiled builds for Windows CE may break otherwise. Change-Id: I7fc7bfb25f2f86ced8a4d4c78a69527de0273707 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fixing Wec2013 qmake support for VS2013 SDKs.Björn Breitmeyer2015-07-211-6/+9
| | | | | | | | | | | SDKs generated from VS2013 use a different folder for build settings than those generated from VS2012. Check both folders, before rejecting a potential SDK. Change-Id: I5bee5cc3771352adaab07d39ebbc350618f6c573 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Wec2013 initial port.Bjoern Breitmeyer2015-07-212-2/+21
| | | | | Change-Id: Ib1dfdc5687e54daefd84982653967fe5eff8aab5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Qt Test: Fix QCOMPARE message for signed and unsigned char.Vincas Dargis2015-07-212-0/+4
| | | | | | | | | | | QCOMPARE did not print "Actual" and "Expected" values for quint8 and qint8 variables when they where not equal. QTest::toString<T>() lacked specializations for signed and unsigned char types, that are actually distinct types from char. Change-Id: Iae789885c474c56441da45065992d7ccf1bc9f5c Task-number: QTBUG-45238 Reviewed-by: Jason McDonald <macadder1@gmail.com>
* Polish the widgets/mainwindows/mdi example.Friedemann Kleint2015-07-203-149/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | - Introduce Qt 5 signals & slot syntax and remove the QSignalMapper used to map the triggered() signals of the per-MDI-child actions of the window menu to the activation slot by a functor to demonstrate the flexibility of the new connection syntax (the functor can in turn be replaced by a lambda expression once we have C++ 11). - Merge MainWindow::createMenus()/createQToolBars() into MainWindow::createActions(), removing the need to store the actions as member variables. Use QMenu::addAction() for brevity. - Use QIcon::fromTheme() to obtain system icons and use resource icons as fallback. - Rewrite settings code to use QWidget::saveGeometry(), Widget::restoreGeometry() since saving size and position does not work well with multiple screens. Query the available size when determining the initial size instead of using hard-coded values for High-DPI screens. - Fix minor issues in code, use multi-argument version of QString::arg(), QDir::toNativeSeparators() to present file paths to the user and static method invocation. Change-Id: I3d5078ddbe3cb4eba65e188430ba3580cecb2c79 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Update/fix the qmake support for yaccThiago Macieira2015-07-201-6/+6
| | | | | | | | | yacc.prf was mostly working, so this commit simply makes it slightly better by using the -p and -b options that POSIX requires and avoid having a common intermediate file. Change-Id: Ib306f8f647014b399b87ffff13f1e8e74ad4db1d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Makes sure that yacc works with the MSYS bison on Windows.Thiago Macieira2015-07-206-6/+6
| | | | | | | | | | Most people's yacc are actually a symlink to bison. On Windows, where symlinks don't usually exist, we can use bison -y. This was tested with MSYS Bison. Change-Id: I913745d48af30f9ef7b846b6438500261dd6022d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QProcess: make setWorkingDirectory stop launch if the dir doesn't existThiago Macieira2015-07-202-8/+31
| | | | | | | | | | [ChangeLog][QtCore][QProcess] Fixed a bug that caused QProcess to launch a child process on Unix even if the directory specified with setWorkingDirectory did not exist. Task-number: QTBUG-47271 Change-Id: Ib306f8f647014b399b87ffff13f195158b0e52f5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Selectively update library paths when creating QCoreApplicationUlf Hermann2015-07-203-19/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We force a recreation of the library paths with added information on construction of QCoreApplication. This way we can find plugins in the application directory which only becomes known when QCoreApplication is created. When the user changes the library path we create a new list of the manually modified library paths and recalculate it from the delta of original vs. modified paths when QCoreApplication is created. The upsides of this approach vs. keeping an explicit delta are: * We don't need to introduce a separate data structure to hold the added/removed status for delta items or the information that the whole list got replaced. * The lists never get larger than the the real library paths. An explicit delta would have to record all modifications. * I don't think the delta replay algorithm we would have to do anyway could be made much more compact than the one this change introduces. Of course, if the user actually changes anything, the list is duplicated. Considering that this is a rarely used function and that we would have to save some extra information anyway, I think we can live with this. Task-number: QTBUG-38598 Change-Id: I3bfbbd1be62dd5804dcc7ac808b053428a4e3149 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* ssl: add openssl-based QSslKeyPrivate::encrypt / decryptJeremy Lainé2015-07-205-10/+87
| | | | | | | | | | This adds an OpenSSL-based implementation of the QSslKeyPrivate encrypt and decrypt method. This puts both the OpenSSL-based and non-OpenSSL backends (WinRT for now) on par. Change-Id: I18a75ee5f1c223601e51ebf0933f4430e7c5c29b Reviewed-by: Andrew Knight <andrew.knight@intopalo.com> Reviewed-by: Richard J. Moore <rich@kde.org>
* Polish the examples/widgets/dockwidgets example.Friedemann Kleint2015-07-202-68/+41
| | | | | | | | | | | | | | - Introduce Qt 5 signals & slot syntax. - Use QIcon::fromTheme() to obtain system icons and use resource icons as fallback. - Fix minor issues in code, use multi-argument version of QString::arg(), QDir::toNativeSeparators() to present file paths to the user, static method invocations. - Use QMimeDatabase for file dialog. Change-Id: Ib7f947aaaa0c8034f0853b1c740ebf195821dae0 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Port examples/widgets/mainwindows/menus to new connection syntax.Friedemann Kleint2015-07-201-22/+22
| | | | | Change-Id: Ia7fa905cdda131d7c4a2c8a57557ea694eef3541 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* printsupport: Pass large type by const-refSérgio Martins2015-07-201-2/+2
| | | | | | | sizeof() is 144 bytes on x86_64 Change-Id: I11fbb3c37353aafa209cea388cfc505f9645a1bb Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QDirModel: remove pointless user-defined QDirNode destructorMarc Mutz2015-07-201-1/+0
| | | | | | | | | | The clearing of 'children' is already performed by the 'children' destructor, and the presence of the user-defined QDirNode destructor inhibits the move special member functions for QDirNode. Change-Id: Ie8025e7a2c4b1a8c0b691deda0e49b517f8a6ed5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Add name to the cloexec feature testThiago Macieira2015-07-201-1/+1
| | | | | | | | | Also solves a warning printed: configure: 4200: shift: can't shift that many Change-Id: Ib306f8f647014b399b87ffff13f295e2cdb7f8d7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* QVectorND: mark as primitive, not just movableMarc Mutz2015-07-203-3/+3
| | | | | | | | | | | | | Every bit combination is a valid object, so the correct type classification is primitive, not just movable. This is BC, because it just changes whether the default ctor and dtor are run or not, and these types don't care. Change-Id: Ifbfa83128778744f15a086a65c8be1ce01a58820 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* qqnxinputcontext: Add support for EnterKeyTypeKai Uwe Broulik2015-07-194-2/+33
| | | | | Change-Id: I03b9d70b9bb05cd28fdcbb076764a2e1d9e3e0e3 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Mark QDBus{ObjectPath,Signature,Variant} shared-come-qt6Marc Mutz2015-07-191-12/+19
| | | | | | | The compiler-generated move operations are ok. Change-Id: Ida994b52e3ee6ce75afd50133e61488b94464eee Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* platformsupport/dbustray: mark some types as movableMarc Mutz2015-07-191-0/+2
| | | | | | | At least on is already held in QVector. Change-Id: Ifa29d924315a9d397bd591ae548f199dcefa03a4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* platformsupport/dbusmenu: fix uses of inefficient QListsMarc Mutz2015-07-191-5/+10
| | | | | | | | | | | | | These types are larger than a void*, so holding them in QLists 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. Fix by marking them movable, and holding in a QVector instead. Change-Id: I74b2ce327d6aee60e2cc3463ce09453a4305bba7 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QVector: add an rvalue overload of push_back/appendMarc Mutz2015-07-195-2/+69
| | | | | | | | | | This is low-hanging fruit, for two reasons: 1. The implementation is dead-simple (unlike, say, in QList). 2. It's completely transparent to the QVector user (unlike, say, emplace_back, which can only be used inside an ifdef). Change-Id: Iaf750100cf61ced77aa452f0e4e3c4ec36b29639 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QVector: in append(), if we take a copy, then move, not copy from the copyMarc Mutz2015-07-191-3/+3
| | | | | | | Replaces one copy ctor / assignment with a move ctor / assignment. Change-Id: I56768db9904283a9be7c87f624a557a64557bc8f Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QIconLoader: don't make QIconDirInfo::type a bit-fieldMarc Mutz2015-07-191-1/+1
| | | | | | | | | | | | | It doesn't save any space, is not required for ABI compat (because it's private API), generates more code to extract the field, and triggers a bug in older GCCs when synthesizing a move constructor for this type: src/gui/image/qiconloader_p.h:64:8: error: invalid conversion from 'unsigned char:4' to 'QIconDirInfo::Type' [-fpermissive] src/corelib/tools/qvector.h:641:13: note: synthesized method 'QIconDirInfo& QIconDirInfo::operator=(QIconDirInfo&&)' first required here Change-Id: I61e886566b67c7a18a318a3d026dc762600f8ab4 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QtGui: Pass types with copy-ctor or dtor by const-refSérgio Martins2015-07-198-13/+13
| | | | | | | | | ... except if the function is a ctor, callers pass rvalues, and the type has a fast move ctor. In that case, keep passing by-value and qMove() into place. Change-Id: I2c0be7d4436327834ddee0531c51c5af352ac74c Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QZip*: return FileInfo by valueMarc Mutz2015-07-191-11/+10
| | | | | | | | | Makes for much more readable callers, and, d/t NRVO, isn't less efficient than the old code, either. Transparently enables moves when QVector should get them, at some point, too. Change-Id: I77327cf665272b80277deaaa6dd2ee9c00806464 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QZip*: don't hold QZipReader::FileInfo in QListMarc Mutz2015-07-193-9/+9
| | | | | | | | | | | FileInfo 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: I772177c5ac544a5fecce2368f628148308ef260f Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Clean up QZipReader::FileInfoMarc Mutz2015-07-192-39/+7
| | | | | | | | | | | | | - don't define special member functions if the compiler-generated ones are just fine (inhibits move semantics) - implement all remaining methods inline - unexport - remove unused (and, to add insult to injury, never init'ed) d-pointer. This is private API. No need for a d-pointer, much less an unused one. Change-Id: I6979cb5103a361c0313c252d3bf7073a3c47addd Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* QArrayDataPointer: make move semantics consistent with other containersMarc Mutz2015-07-191-5/+6
| | | | | | | | | | | | | That is: - nothrow default constructor - nothrow move constructor - nothrow move assignment operator - nothrow swap - as a generic container, destroy lhs contents immediately on move-assignment. Change-Id: I6ec2b9451d3a0ddb63a97ea84504bc7f87d8d34d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QSet/QQueue/QStack: use compiler-generated special member functionsMarc Mutz2015-07-194-13/+8
| | | | | | | | They do the right thing (except move special member functions on MSVC, but that's MSVC's problem). Change-Id: I699e1be83c0568821f8c6b84394a2713bb22e8e7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QSharedPointer: add move construction, assignment from compatible shared ↵Marc Mutz2015-07-191-0/+17
| | | | | | | pointers Change-Id: I772c568055c9bed6eb627ad35dba300925fc0fde Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QDBusVariant: add ctor taking QVariant&&Marc Mutz2015-07-191-0/+3
| | | | | Change-Id: Ia25c4bd6294955b0e8ea5ecc0c62719423542e84 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Containers: destroy previous state on move-assignment immediatelyMarc Mutz2015-07-195-5/+6
| | | | | | | | | | | | | | | | [ChangeLog][QtCore] All generic containers (with the exception of QVarLengthArray, but including QSharedPointer) destroy the previous state as part of a move-assignment now. Previously, they would dump it into the right-hand-side object. Note that this is only true for the generic containers. Other implicitly-shared types, as well as the non-generic containers QString, QByteArray, etc. still just swap the contents with the right-hand-side object when move-assigned into, and, for performance reasons, this will not change in the forseeable future. Change-Id: I1f1c684e85400b77bd2e7fba65bde2dce6c1bdde Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QSharedPointer: mark some internal API nothrowMarc Mutz2015-07-191-4/+4
| | | | | Change-Id: I871c86406b2c25df9a7834a997caf8a792d353a0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QList: mark const variants of begin()/end() noexceptMarc Mutz2015-07-191-45/+45
| | | | | | | | | Plus some other trivial functions. Drive-by change: 0 -> Q_NULLPTR (public header) Change-Id: Ic3fca2950e4c5143eb90bd119da113fe64e48032 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QDBusConnection: declare as shared-come-Qt6Marc Mutz2015-07-191-1/+7
| | | | | | | Requires adding member-swap and (at least in my copy) move operations. Change-Id: I1b638a81e4a41f467e69e352806524039e7b9f27 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add missing ↵Marc Mutz2015-07-191-0/+1
| | | | | | | Q_DECLARE_OPERATORS_FOR_FLAGS(QDBusConnection::ConnectionCapabilities) Change-Id: I659ccc00129d20bbae08b277a291d81c6ede80be Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>