summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* configure: better suppression magic for old qdevice.priOswald Buddenhagen2017-01-191-4/+3
| | | | | | | | instead of forcing an early load and discarding its contents again before they could cause harm, trick qmake into not loading it at all. Change-Id: I672ca9de362b1f23bf5cfea007053570c8534fc6 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* fix up static linking of plugins somewhatOswald Buddenhagen2017-01-191-21/+18
| | | | | | | | | | | | | | move the code before the linking of qt modules - dependency resolution would re-order them anyway (or static linking would fail). on the way, fix up the coding style and rename some variables. the code to de-duplicate/normalize QTPLUGIN is pulled ahead, which means that the automatic plugin importing wouldn't make a mess of it any more. but this is mostly legacy anyway. Change-Id: Id135470d027f5d84b7f30531425a65efa230f278 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* fix detection of statically built system-libpngOswald Buddenhagen2017-01-191-2/+2
| | | | | | | | | | it has a dependency on zlib, which needs to be explicitly linked when linking statically. Task-number: QTBUG-56163 Change-Id: I4564844e8a35686db48c429b259e78558d312819 Reviewed-by: Tim Blechmann <tim@klingt.org> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* fix parallel builds with -qt-freetype -system-libpngOswald Buddenhagen2017-01-191-0/+1
| | | | | | | | | | freetype has no dependency on gui, so it needs to pull in gui's configuration manually, as that's where the system libpng is found. Task-number: QTBUG-58038 Change-Id: I881495f7d2a8f7c1a45d7d4c9e7698ff1d30f2a9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Joni Poikelin <joni.poikelin@qt.io>
* add depend_includepath to the qmake manualOswald Buddenhagen2017-01-191-0/+2
| | | | | | | Task-number: QTBUG-1834 Started-by: Kavindra Palaraja <kavindra.d+qt@gmail.com> Change-Id: I3f906f3141f48072bd29e08d99193a2dcd847926 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* put some empty lines between configure runs into config.logOswald Buddenhagen2017-01-191-0/+2
| | | | | Change-Id: I6c3e3b139752bb9d1b60c590bb1ea72ae2e4fbdf Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* log configure command line to config.logOswald Buddenhagen2017-01-191-4/+12
| | | | | | | | | that makes the log file mostly self-contained. for code re-use, the qtSystemQuote() function was factored out. Change-Id: Ie3469518ba384131b69f5f15c577240e2674d507 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* inline "committing" of configure command line built-insOswald Buddenhagen2017-01-192-20/+6
| | | | | | | | | the options may need to take effect before the regular test processing commences (which is actually going to be the case in the next commit). the indirection via the callback only obfuscated the code anyway. Change-Id: I5307b0be15cf4cc2c2db391ce5b5a93f81076b5c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Windows QPA: Call InvalidateRect() in WM_PAINT/GL Software renderingFriedemann Kleint2017-01-191-1/+11
| | | | | | | | | | Bring back the call to InvalidateRect() removed by change 6086c81e4d999d88ce4d412 since it seems that GL Software rendering requires it (also for single buffer mode). Task-number: QTBUG-58178 Change-Id: I197a1b3c3906c4afa43943db30dbc07dfb656cc7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QDBusTrayIcon: always save the temp icon in UnityMarco Trevisan (Treviño)2017-01-191-0/+6
| | | | | | | | | | We enforce the check of saving the icon when the indicator process name isn't available (as we might be running in a confined world), but we're running in Unity. Change-Id: I80d3be1a8c6eba8c391364260746e78cf89a5b98 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Cocoa: fix regression preventing windows from showing upOleg Yadrov2017-01-191-1/+1
| | | | | | | | | | | | | The regression was introduced by 593ab638609 which fixed another bug related to window modality. To determine whether the window needs to be (made key and ordered front) or just (ordered front), instead of calling currentModalSession() which might change internal state of event dispatcher we just check if cocoaModalSessionStack is empty or not. Task-number: QTBUG-57991 Task-number: QTBUG-56166 Change-Id: I6c4f92860d8c93decd44e572af1690ed7be6f1f0 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* docs: Mention that QWidget::ensurePolished() also affects childrenSergio Martins2017-01-191-2/+2
| | | | | | Change-Id: I083d1c503039010024c89db59003fb6fca050c26 Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Martin Smith <martin.smith@qt.io>
* Make sure we call glClearDepth(double) on desktop GLGunnar Sletta2017-01-191-2/+3
| | | | | | | Task-number: QTBUG-56798 Change-Id: I028510c0f75df5c7d2dce539c32ea503009467db Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Bruno de Oliveira Abinader <brunoabinader@gmail.com>
* Make shortcuts work for platform menu barsDmitry Shachnev2017-01-193-13/+33
| | | | | | | | | | | | | | | | | | | | | When a platform menu bar is used, the QMenuBar is hidden, so shortcuts for QActions attached only to it do not work. Extend the macOS-specific code to treat such menubars as visible to other platforms, to make the shortcuts work. The exception is made for internal QMenuBar shortcuts, which are forwarded to the platform menu. A follow-up change will add support for this to QDBusPlatformMenu. The updateGeometries() method is called for platform menu bars too to make sure the internal shortcuts are registered even if the global menu is in use. Add two cases to the tst_QMenuBar::activatedCount() test to test both native and non-native menu bars when possible (it now passes with native menu bars too). Change-Id: I2d7128512719ac199cd3f8f7ba28333d04d84ed4 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* dbusmenu: Map showPopup method to ItemActivationRequested signalDmitry Shachnev2017-01-193-7/+18
| | | | | | | | This way the Qt accelerator shortcuts (i.e. Alt+F for the File menu) will cause the matching menu to be opened on the server side. Change-Id: I02a5b3c20c6eae130d0f133b33c9e247cff38d44 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2017-01-181-0/+7
|\ | | | | | | Change-Id: Ifc825f500a2ddc417b43440f36b4192fad0585da
| * add docs for QPlatformTheme::WheelScrollLines, MouseDoubleClickDistance5.7Shawn Rutledge2016-12-131-0/+7
| | | | | | | | | | | | | | | | | | These theme hints were added in fac71528 and 4a2e297b respectively. Change-Id: Ic39f32dae4d0843b1b2398beb27081ad07d75772 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io> (cherry picked from commit 847a152474550e0952d31f15069fb346565938df) Reviewed-by: Simo Fält <simo.falt@qt.io>
* | QSslDiffieHellmanParameters: simplify defaultParameters() constructionMikkel Krautz2017-01-182-9/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit simplifies defaultParameters() to simply construct an empty QSslDiffieHellmanParameters and assigning the DER-form of the DH parameters to QSslDiffieHellmanParametersPrivate's derData field. This creates a valid QSslDiffieHellmanParameters instance, but skips any potentially expensive verification steps. The previous implementation of defaultParameters() would use the public fromEncoded() method to construct an instance of the default parameters. This triggers a verification of the passed-in data, which can be expensive. To ensure our defaultParameters() QSslDiffieHellmanParameters instance does pass verification, this commit adds an autotest to verify that. Fixes QTBUG-57815. Change-Id: I6b1d9dbbfde526b232c319195ddbad42326be27c Task-number: QTBUG-57815 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | Update .gitignoreGiuseppe D'Angelo2017-01-181-0/+6
| | | | | | | | | | Change-Id: If4de9b2f2b469f45b2d579d0401bde44d3477d3c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Windows QPA: Fix QScreen::grabWindow(0) for non-primary screensFriedemann Kleint2017-01-181-6/+22
| | | | | | | | | | | | | | | | | | | | | | | | Previously, the code grabbed the client rectangle of GetDesktopWindow(), which is always the primary screen. Fix by using the geometry of the QPlatformScreen. In addition, subtract x, y from the effective size when sizes < 0 were passed in as does XCB. Task-number: QTBUG-58110 Change-Id: I6ed439d2e1da8affd0a1475717d5570017fb1f2b Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | qt_targets.prf: Bump copyright yearFriedemann Kleint2017-01-181-1/+1
| | | | | | | | | | Change-Id: I371fbc28abd6b0e3497e94b7d974fef5d20c7acc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Fix build without feature.cssparserTasuku Suzuki2017-01-181-2/+4
| | | | | | | | | | Change-Id: Ib751a3d1ad37aae68d6a05aab493833fbcc0b53d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fix access incorrect index in QListView with batch layoutAleksei Ilin2017-01-172-1/+15
| | | | | | | | | | | | | | | | | | | | | | The size of flowPositions is larger by one than the number of rows in the model so the last correct row number is flowPositions.count()-2, not flowPositions.count()-1. Change-Id: Idf8bbd155151d553947d5d299dd01ffaff0c95fa Task-number: QTBUG-47694 Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru> Reviewed-by: David Faure <david.faure@kdab.com>
* | qt_targets.prf: Don't unconditionally set product and descriptionFriedemann Kleint2017-01-171-2/+2
| | | | | | | | | | | | | | | | | | Check on QMAKE_TARGET_PRODUCT/QMAKE_TARGET_DESCRIPTION before assigning values. This enables providing other values by for example the Qt tool applications. Change-Id: I62270ca38b7a9110185f6163b280409dbaf395f6 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | QKeySequenceEdit: If the next key is Key_unknown then it should be ignoredAndy Shaw2017-01-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | When triggering a combination of keys which is causing a dead key then it will send Key_unknown which is not a valid key to be used in a shortcut so it should just skip past it as if it were a modifier key. Task-number: QTBUG-57932 Change-Id: I16e004b84f3aa854f8f8f2bbdf86beb6d764de48 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Fix build without feature.imageformatpluginTasuku Suzuki2017-01-171-0/+3
| | | | | | | | | | Change-Id: I28c146bfa1795794ad27d27c458970c5127cca67 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fix unneeded recompiles of glslang_tab.cppJoerg Bornemann2017-01-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To work around qmake deficiencies src/angle/src/compiler/translator.pro contains a no-op extra compiler that "creates" glslang_tab.cpp and adds a dependency to glslang_tab.h. However, both files are created in one bison call, and for some reason the .cpp file is created before the .h file. Then the dependency glslang_tab.cpp -> glslang_tab.h results in recompiling glslang_tab.cpp on every incremental build. Ensure that glslang_tab.cpp is newer than glslang_tab.h. Change-Id: I6f59e213c84af85c59c02d90ac220bd347faddd1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | Fix build without feature.animationTasuku Suzuki2017-01-161-4/+6
| | | | | | | | | | Change-Id: Ia1b9ae3a35cbc73d0bbf27db234d0cd120d0b601 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fully qualify enum arguments in input device manager signalsLaszlo Agocs2017-01-161-1/+1
| | | | | | | | | | | | | | | | Otherwise queued connections may complain about DeviceType not being registered. Change-Id: I1f93f8b34e78919e72ea99000c42da7024b6bdf3 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | Merge "Merge remote-tracking branch 'origin/5.8.0' into 5.8" into ↵Liang Qi2017-01-1511-19/+564
|\ \ | | | | | | | | | refs/staging/5.8
| * \ Merge remote-tracking branch 'origin/5.8.0' into 5.8Liang Qi2017-01-1411-19/+564
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/painting/qcoregraphics.mm Change-Id: I4d49535cd75f2cdf0151c1dbff312cce5e159760
| | * | winrt: Fix Qt5PrintSupport(d).lib generationMaurice Kalinowski2017-01-131-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With QT_NO_PRINTER set via the feature system there is no symbol exported at all in a packaging build. This implies that no .lib is generated. When an application has QT+=printsupport the build will fail due to a missing file. For android and ios it only worked as there is no separation and linker works against the .so file Task-number: QTBUG-56321 Change-Id: I389adaca61669b302b6c431effed2ef6d1c499a3 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| | * | Fix unnecessary regeneration of mocables in VS projectsJoerg Bornemann2017-01-132-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change dcd2f829 introduced fake files with the extension .cbt for custom build tools that generate code from C++ source inputs. The moc_predefs.h header file falls into this category, because it is generated from dummy.cpp. It turns out that these fake files have to exist. Otherwise the custom build step is executed on every build. That means re-moccing all mocables on every build. Fix this by actually creating the fake .cbt files with some explanatory comment in them. Task-number: QTBUG-57695 Change-Id: I251294334425d9914677787d8ba6da1169b4cca5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit 5fc2337d740963d019a1e31960a4d12dfec36ea9) Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| | * | Fall back to platform theme in QPlatformSystemTrayIcon::createMenu()Tor Arne Vestbø2017-01-061-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 824f08046 introduced QPlatformSystemTrayIcon::createMenu() as a way for platforms to provide a system tray menu independently of the menu created by QPlatformTheme::createPlatformMenu(), which would on some platforms be null. Commit 063997f44ffc then made menu creation lazy, which meant that the logic in QSystemTrayIconPrivate::addPlatformMenu() to create the menu turned from "create menu via QPSTI::createMenu() if QPT::createPlatformMenu() returned null", to "create menu via QPSTI::createMenu() if menu was not created yet". The latter logic relied on each platform having implementations of QPlatformSystemTrayIcon::createMenu() which they didn't, resulting in missing menus for system trays on e.g. macOS. With the new lazy logic, the reasonable approach is for the default implementation of createMenu() to use createPlatformMenu(), which will ensure system tray menus on platforms that implement createPlatformMenu(), while still allowing platforms that don't to override createMenu() for special-casing system tray menus. Task-number: QTBUG-57365 Change-Id: Id393e802ac0435200fc885a7f4436b744962f27f Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
| | * | Fix regression in handling Chinese system default fontAllan Sandfeld Jensen2017-01-062-4/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Register font's english name as alias when populating font families. This was incorrectly undone when support for subfamilies was added. Task-number: QTBUG-57856 Change-Id: Ib71f905bb00db86d44fa0921ec56c8c76c332e06 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| | * | Doc: Properly mention valgrind & callgrindKai Koehne2017-01-052-8/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Julian Seward is the author mentioned in valgrind_p.h. Also call the whole thing valgrind, since callgrind is part of valgrind. Change-Id: Iaf5958c520b919c1acf93ce368b0839bd06ccd46 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
| | * | QMacCGContext: Take paint device pixel ratio into accountGabriel de Dietrich2017-01-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This seems to have been omitted in c52bb0309071bed9e040c79d87f764bac6a396b8. Change-Id: If8cde889af75934c85d9b21bd22095b7e5a4bf32 Task-number: QTBUG-57894 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| | * | Work around MSVC ABI stupidity in exporting inline members of base classThiago Macieira2017-01-032-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In this case, the issue was ICC, when compiling QtQml: qv4sequenceobject.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl QList<class QItemSelectionRange>::replace(int,class QItemSelectionRange const &)" (__imp_?replace@?$QList@VQItemSelectionRange@@@@QEAAXHAEBVQItemSelectionRange@@@Z) referenced in function "public: static bool __cdecl QV4::QQmlSequence<class QItemSelection>::deleteIndexedProperty(struct QV4::Managed *,unsigned int)" (?deleteIndexedProperty@?$QQmlSequence@VQItemSelection@@@QV4@@SA_NPEAUManaged@2@I@Z) This applies the same fix as qvector.h has had for ages due to QPolygon. Change-Id: I15b62e0f9cec482fbb40fffd1490d791db5056bc Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * | Silence bogus whitespace "errors" from the DBus XML parserRobert Griebl2017-01-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Any amount of whitespace between elements is now reported as an error starting with 5.8. This is (a) wrong and (b) very confusing for users. Change-Id: I2530b2138f95912e5be07e94b7d7fdab49dedbb1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * | Add changes file for 5.8.0Jani Heikkinen2017-01-021-0/+497
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Ie1185b165fc706f3fcc87014d4eefd1e2c6fb771 Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Done-with: Thiago Maciiera <thiago.macieira@intel.com> Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | | Add Q_CC_CLANG to the documentation pageKavindra Palaraja2017-01-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-42247 Change-Id: I3f707df4d25cac12fabac863b4f6bb50bfac5e26 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | | QtCore: fix GCC 7 warningsMarc Mutz2017-01-152-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 7 warns about implicit fall-throughs now. Fix by adding Q_FALLTHROUGH. Change-Id: I482ab4c6adc469b11e1fd163516ff486b3b55ef7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | | QHostAddress: add missing docsMarc Mutz2017-01-152-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qHash(QHostAddress) was added in Qt 5.0 (at least the version with uint seed = 0). op==(QHostAddress::SpecialAddress, QHostAddress) was there since QHostAddress was added before public history. Since QHostAddress does not have a \since, the I did not supply one for op==, either. Since the equality operator did not have unit-tests, added one. Change-Id: I954a0df02464338f08a12ca58d4cc0ceb013e67a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | | Fix build without feature.tableteventTasuku Suzuki2017-01-152-2/+4
|/ / / | | | | | | | | | | | | Change-Id: I13950e184453318671e4cac6dac844e76771f430 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | QSystemTrayIcon: initialize all membersMarc Mutz2017-01-141-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'showArrow' member was not init'ed. Initialize it to true, which is the default value of the QBalloonTip::showBalloon() function's argument of the same purpose. Reported as new by Coverity, but dating back all the way to cc3875c2e463be5cf126a18637295a0c56358eda, so affects all current branches. Coverity-Id: 171482 Change-Id: Ica519ecda3a4ae413f606faab8c22f7072f412a8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | QGradientCache: fix a new/delete mismatchMarc Mutz2017-01-142-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit f839f536 fixed a data race in the gradient cache by reference-counting the CacheInfo objects stored in the cache. To this end, QSpanData gained a ref-counted pointer to the CacheInfo whose members it references to keep the object alive for as long as the QSpanData object needs it. However, since CacheInfo is only later defined in qpaintengine_raster.cpp, the counted pointer's payload was chosen as CacheInfo's base class, QSharedData. As it turns out, e.g. in the QPainter test, the data race was real and so QSpanData ends up being the entity that destroys (at least some) CacheInfos, either in its destructor, or in the setup() method. Since QSharedData's destructor is not virtual, and QExplicitlySharedDataPointer<QSharedData> knows nothing of the CacheInfo-ness of its payload, we end up calling the destructor of the base class, and not the CacheInfo one. Fix by using QSharedPointer instead, which stores the correct deleter internally. Ideally, QSpanData would contain a QSharedPointer<const void>, but QSharedPointer's implementation is deficient in that respect and does not compile when instantiated with void, and we can't use std::shared_ptr, yet, so introduce an arbitrary base class, Pinnable, to be used instead. Change-Id: I5573c599d5464278d3a8e4248d887ef9ffcd7b70 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | | Plug memleaks in tst_QStackedLayoutMarc Mutz2017-01-141-1/+1
| | | | | | | | | | | | | | | | | | | | | QLayout::replaceWidget() doesn't delete the affected item, but returns it. Change-Id: Ibda96e4bf2432ad13ed2908c7d37547f46e29a37 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | QtNetwork: fix GCC 7 warningsMarc Mutz2017-01-142-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 7 warns about implicit fall-throughs now. Fix by adding the missing Q_FALLTHROUGH(), and, in one case, by moving the existing suppressant into the correct position. Change-Id: I7383f47e690b6334ef69c9df745c2205247ca7d0 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | | Adapt to the C++ SIC introduced by P0021: noexcept overloadingThiago Macieira2017-01-145-0/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | C++17 adopts P0021R1[1], which makes noexcept be part of the function pointer's type and thus be overloadable. It contains some provisions for allowing a noexcept function pointer to cast implicitly to a non- noexcept function pointer, but that fails in the presence of templates and additional overloads that could match the type in question. Fortunately, the paper proposed a test macro, so we can change our sources now and be compatible with both C++14 and C++17 rules. This first failed with Clang 4.0 trunk. This source incompatibility is not our fault, it's the language's doing. [1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0012r1.html Task-number: QTBUG-58054 Change-Id: I2bc52f3c7a574209b213fffd14988cf0b875be63 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* | | Fix typo in QT_REQUIRE_CONFIG error messagePaul Olav Tvete2017-01-131-1/+1
| | | | | | | | | | | | | | | | | | Change-Id: Iecfd398935f9c10aa456bd3452d34b31bc7eb4c9 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>