summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows
Commit message (Collapse)AuthorAgeFilesLines
* Windows: Fix crash when loading color fonts from dataEskil Abrahamsen Blomfeldt2016-09-273-5/+35
| | | | | | | | | | | | | | | | | | | | | When color fonts are loaded from data, the font returned will be a DirectWrite engine even the hinting preference does not require it. This would cause a crash as we unconditionally cast the pointer to QWindowsFontEngine*. Using GDI and the unique family name hack to load the font from data works fine, but we need to make sure we reference count the font resource in this case, so we have to implement the setUniqueFamilyName() logic in the DirectWrite engine as well for this specific case. [ChangeLog][Windows] Fixed crash when loading color fonts from data. Task-number: QTBUG-55595 Change-Id: I05443e8a396105da68ac4872b48339130b86c7f6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-09-051-4/+9
|\ | | | | | | | | | | | | Conflicts: tests/auto/testlib/selftests/generate_expected_output.py Change-Id: If856162abf9a24ae2c9946d336a7d1da03520fa7
| * Windows QPA: Fix leaks in native file dialogsFriedemann Kleint2016-08-301-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | Release the IShellItem instances according to the documentation of IFile[Open]Dialog. Task-number: QTBUG-55509 Task-number: QTBUG-55459 Change-Id: Ib79622cde21982b1bda0be7d0483c6e652a1d5fe Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-221-1/+1
|\| | | | | | | Change-Id: I4f4ab05b2de67cd4b1d29b294b96a8c9ffb964b2
| * DirectWrite: Fix calculating bounding box of glyphsEskil Abrahamsen Blomfeldt2016-08-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't support vertical text layouts in Qt, so the vertical advance should always be 0 (like it is in other engines). Since we were setting this, we would calculate the bounding box of strings in the DirectWrite engine as if the layouts were diagonal, adding up both the horizontal and vertical advances. [ChangeLog][QtGui][Windows] Fixed height of text bounding box when using no or vertical hinting preference, or when the device pixel ratio is different from 1. Task-number: QTBUG-51024 Change-Id: I329917eb8da71fdfdffe9651ca8f0f48d26b6a60 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-182-5/+16
|\| | | | | | | | | | | | | Conflicts: src/plugins/platforms/xcb/qxcbintegration.cpp Change-Id: I2d71d06a55f730df19ace0dd3304238584a0497f
| * Support stretch when using DirectWrite font engineEskil Abrahamsen Blomfeldt2016-08-171-3/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The DirectWrite font we get when converting the GDI font does not respect the stretch we have set, as this is an attribute of the text layout in DirectWrite and not the font description. To compensate for this, we scale advances and glyphs in the engine if the stretch is different from 100%. [ChangeLog][QtGui][Windows] Fixed stretch when combined with either no or vertical hinting preference or a device pixel ratio different from 1. Task-number: QTBUG-54494 Change-Id: Icc06d1457191782d1a281c99da2da3081a82c542 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * QWindowsServices::openUrl(): Don't convert URLs with fragments/queries to ↵Friedemann Kleint2016-08-161-2/+3
| | | | | | | | | | | | | | | | | | | | local files Pass the URL instead. Task-number: QTBUG-55300 Change-Id: I4ce9171db5c1a9e07b17911729b165c115329664 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Windows: Fix Adobe/Mozilla format color fonts after Windows updateEskil Abrahamsen Blomfeldt2016-08-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the Anniversary update of Windows 10 (update 1607), color fonts using the Adobe/Mozilla format with embedded SVGs are detected as color fonts by DirectWrite, but they do not contain any colored layers. The result of this was that we would no longer draw these fonts using the pen color, but we would also not support the colored glyphs in the fonts. In order to still support using these fonts as regular monochromatic fonts, we check if there is actually a palette in the font file before registering it as a color font. [ChangeLog][QtGui][Windows] Fixed rendering Adobe/Mozilla format color fonts with other colors than black after Windows 10 Anniversary update. Task-number: QTBUG-55097 Change-Id: I8d74787e49530d1167b9f2533ffdf7ab814c3358 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* | Windows QPA: Introduce command line options for DirectWriteFriedemann Kleint2016-08-053-12/+28
| | | | | | | | | | | | | | | | | | | | Add option "nodirectwrite" to turn off DirectWrite fonts and "nocolorfonts" to turn off DirectWrite for colored fonts. Task-number: QTBUG-55096 Task-number: QTBUG-55097 Change-Id: If12133fbd20dc7657b3616eff833a8e8c116e070 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-052-0/+17
|\| | | | | | | | | | | | | Conflicts: tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp Change-Id: I6f3878b204464313aa2f9d988d3b35121d4d9867
| * Windows QPA: Handle key event sequences of surrogatesFriedemann Kleint2016-08-032-0/+17
| | | | | | | | | | | | | | | | | | | | | | Emoji characters as input by the virtual keyboard are received as a sequence of surrogates. Store state internally when a high surrogate is received and send off the sequence when the matching low surrogate is received via input method. Task-number: QTBUG-50617 Change-Id: I91e763ec3e0747d6852f7c5c2057a67b0c24e0f5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | Windows QPA: Add missing parameter to qWarning()Friedemann Kleint2016-08-031-1/+1
| | | | | | | | | | | | | | | | | | | | The warning printed when wrapping foreign windows is missing a parameter. Amends change f2ef587906062706e576e376e4c6481ab192f50d. Task-number: QTBUG-41186 Change-Id: Iefbd174c1acc42e87fd1a764d96452b1745aa4c0 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-011-5/+5
|\| | | | | | | | | | | | | | | Conflicts: src/widgets/itemviews/qabstractitemview.cpp src/widgets/itemviews/qabstractitemview_p.h Change-Id: I54589b1365103cb1749186af92aab03a49c94b64
| * Windows QPA: Pass ExcludeUserInputEvents to QWSI::flushWindowSystemEvents()Friedemann Kleint2016-07-271-5/+5
| | | | | | | | | | | | | | | | | | User Input events flushed out by those calls have been observed to cause crashes. Task-number: QTBUG-39842 Change-Id: I950b80f2863def5b28e9fe46ef2b73aa6db2592f Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | QWindow::fromWinId(): Return 0 when foreign window cannot be wrappedFriedemann Kleint2016-07-281-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Change window creation code in QWindow to not assert should platform window creation fail for foreign windows. Prototypically add check to the Windows QPA plugin. [ChangeLog][Windows][Important Behavioral Changes] QWindow::fromWinId() may return 0 when passing invalid window handles. Task-number: QTBUG-41186 Change-Id: I936112607ec6e0838d36ac2a72aa88b869df5c23 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Edward Welbourne2016-07-261-2/+7
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qtemporarydir.cpp One side encapsulated a repeated piece of #if-ery in a local define; the other added to the #if-ery. Made its addition to the other's. src/corelib/kernel/qeventdispatcher_unix_p.h One side moved some members into a struct; this collided with a #undef check that neither side now has. Discarded the #undef part. src/gui/opengl/qopengltexturehelper_p.h 5.7 deleted a bunch of methods; not clear why merge got confused. src/tools/moc/moc.cpp One added a name to the copyright header; another changed its URL. Change-Id: I9e9032b819f030d67f1915445acf2793e98713fa
| * QWindowsTheme::themeHint(): Handle special value of SPI_GETWHEELSCROLLLINESFriedemann Kleint2016-07-261-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | When the mouse wheel step is set to "Scroll one screen", querying SPI_GETWHEELSCROLLLINES returns the special value unsigned(-1). Return the default instead of converting it to int in that case since Qt does not implement it. Task-number: QTBUG-52384 Change-Id: I793e5c09103fe0c7c4a378aba97e9f63ae1c2f35 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Edward Welbourne2016-07-155-17/+51
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/library/qmakeevaluator.cpp One side changed the iterator to use ranged-for, the other changed its body; they only conflicted because the latter had to add braces around the body, intruding on the for-line. Trivial resolution. Change-Id: Ib487bc3bd6e3c5225db15f94b9a8f6caaa33456b
| * Windows QPA: Add warning to setHasBorderInFullScreen()Friedemann Kleint2016-07-151-3/+4
| | | | | | | | | | | | | | | | | | | | | | Emit a warning when the function is called before show() as it does not have any effect in that case. Amends change 69839e55c13000ee9bf8d8e9d74b70096a92ae51. Task-number: QTBUG-41309 Change-Id: I7c2bb21735d8e41d525c5e00213b0e278ae5c774 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * QWindowsTheme: Fix the available file icon sizesFriedemann Kleint2016-07-153-12/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, QWindowsTheme had a hardcoded list of of available file icon sizes. As the sizes depend on the Windows display scale factor, this can lead to undesired scaling of icons. Maintain an array of the standard sizes against which the sizes are matched; refresh in display change. Task-number: QTBUG-54561 Change-Id: If36de2f30c8a230cc7bd8eeb4dfc9f201aeda5e4 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
| * QWindowsTabletSupport: fix new[]/delete mismatchMarc Mutz2016-07-111-2/+2
| | | | | | | | | | | | | | | | | | | | QScopedPointer deletes with delete, but a pointer returned from new[] needs to be deleted with delete[]. Fix by using QVarLengthArray instead of QScopedPointer(new TCHAR[]). Change-Id: I2f1f252379a9ac1ee919901b5efcec9cec31261e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | QWindowsOpenGLTester: fall back to built-in blacklist if buglist file cannot ↵Tim Blechmann2016-07-121-4/+5
| | | | | | | | | | | | | | | | | | | | | | be resolved if the environment variable is set, but the buglist file cannot be found, we should fall back to the built-in buglist instead of not using any. Change-Id: I370a1f21238efd155b46f0e7071734f5d3c6c343 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Use QStringLiteral more judiciouslyAnton Kudryavtsev2016-07-085-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace it with QL1S in QStringBuilder expressions and in overloaded functions. Replace patterns 'QString::number() + QStringLiteral' and 'QStringLiteral + QString::number()' with QString::asprintf. Saves some text size. Change-Id: Ib39b2332264dfc3df04e77f2c101b47a1030cef4 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Windows QPA: Accept foreign windows when checking for wheel receiversFriedemann Kleint2016-07-071-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | After change 14efcaa3921687129d4dca9b7d5794668a329cd6, foreign windows no longer have a corresponding QWindowsWindow. This should not block wheel events when checking for blocking modal windows. Amends change 14efcaa3921687129d4dca9b7d5794668a329cd6. Task-number: QTBUG-54430 Change-Id: I1ac87445844946bafc214024e27da08c4f884d79 Reviewed-by: Tim Blechmann <tim@klingt.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Edward Welbourne2016-07-042-2/+7
|\| | | | | | | Change-Id: Ibd81cd1df4a0650d93fcb556a57be90be2e1f569
| * Fix URL to ANGLEFriedemann Kleint2016-06-301-1/+1
| | | | | | | | | | | | | | | | | | Point to the README.md of the project; the old URL http://code.google.com/p/angleproject is now redirected to the bugtracker. Change-Id: I293fc150d5b6c08f16effe8921010050faa264b5 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| * Windows QPA: Improve warning about SetProcessDpiAwareness() failureFriedemann Kleint2016-06-301-1/+6
| | | | | | | | | | | | | | | | | | Silence warning in case DPI awareness was set externally unless debug is enabled. Task-number: QTBUG-54416 Change-Id: Id48769e3d4be3047f582e331633905c640930f21 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Fix ICC warning about comparing pointers of different typesThiago Macieira2016-06-192-9/+9
| | | | | | | | | | | | | | error #3781: comparing a pointer to void and a pointer to a function is nonstandard Change-Id: Ib57b52598e2f452985e9fffd1458fd651d3985d2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-065-32/+61
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf config.tests/unix/nis/nis.cpp mkspecs/unsupported/freebsd-g++/qplatformdefs.h src/corelib/tools/qdatetime.cpp src/corelib/tools/qsimd.cpp src/corelib/tools/qsimd_p.h src/network/access/access.pri src/network/access/qnetworkreplynsurlconnectionimpl.mm src/network/access/qnetworkreplynsurlconnectionimpl_p.h src/plugins/platforms/cocoa/qnsview.mm src/plugins/printsupport/windows/qwindowsprintdevice.cpp tests/auto/corelib/kernel/qobject/tst_qobject.cpp tests/auto/network/access/qnetworkreply/BLACKLIST tests/auto/widgets/widgets/qopenglwidget/BLACKLIST Change-Id: I4b32055bbf922392ef0264fd403405416fffee57
| * Fix bugs causing Thin font weights to be ignored or mishandled.Jake Petroules2016-06-011-4/+2
| | | | | | | | | | | | Task-number: QTBUG-53196 Change-Id: If12b3cab3d8de5e0e452fca844b0a484c29e9e86 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * QWindowsTheme: Suppress error dialogs when calling SHGetFileInfo().Friedemann Kleint2016-05-241-1/+10
| | | | | | | | | | | | | | | | | | | | | | Set the error mode flag SEM_NOOPENFILEERRORBOX when calling Win32 API SHGetFileInfo() to prevent it from prompting to insert media as does QStorageInfoPrivate::mountedVolumes(). Task-number: QTBUG-32457 Task-number: QTBUG-48823 Change-Id: I01a2f99b5a75b39dd729509ca319f634e3dcd695 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
| * windows: Fall back to D3D9 when 11 failsLaszlo Agocs2016-05-232-24/+45
| | | | | | | | | | | | | | | | | | | | It is assumed that this happens automatically but that is not always the case. Do not become stuck with a non-functional D3D11-backed EGL environment. Instead, try again as if QT_ANGLE_PLATFORM=d3d9 was requested. Task-number: QTBUG-52056 Change-Id: I12ac6ca5f1d06f9504d05120d8e1053e97edfab3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Windows QPA: Improve workaround for non-Areo theme GL rendering.Friedemann Kleint2016-05-191-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | Reportedly, clearing the clip region is sufficient to fix the issue. InvalidateRect() should be avoided when handling WM_PAINT as it may cause events. Task-number: QTBUG-7865 Change-Id: Id9a7c280fcc2c8242bb34c34e73e53c3146e7a6e Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Windows QPA: Format window title correctly when creating a window.Friedemann Kleint2016-05-233-2/+11
| | | | | | | | | | | | | | | | | | Add convenience QWindowsWindow::formatWindowTitle() and use that in QWindowsIntegration::createPlatformWindow(). Task-number: QTBUG-53394 Change-Id: I76ebade97c5af71ffa3d11075511b94a54a3dbf8 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-194-4/+21
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp src/network/access/qnetworkaccessmanager.cpp src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.cpp src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmcursor.h src/widgets/widgets/qlineedit_p.cpp src/widgets/widgets/qlineedit_p.h src/winmain/winmain.pro tests/auto/corelib/io/qstorageinfo/tst_qstorageinfo.cpp tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp tests/auto/dbus/qdbusconnection/tst_qdbusconnection.h tests/auto/testlib/selftests/expected_cmptest.teamcity tests/auto/testlib/selftests/expected_cmptest.txt tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp tools/configure/configureapp.cpp Change-Id: Ib9997b0d0f91946e4081d36c0c6b696c5c983b2a
| * ANGLE: fall back to warp mode in case of standard VGA driverOliver Wolff2016-05-121-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The combination of vendor and device ID being 0000 indicates, that the standard VGA driver is used, and happens when using Qt in a: - Windows 7 machine without proper GPU drivers - Windows 7 machine with disabled GPU - HyperV vm The default driver does neither support D3D9 nor D3D11 properly so that we have to fall back to warp mode for ANGLE. Change-Id: Ia766e32d680c910a50ec3d6b5002892cdb90fdbb Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
| * Add FreeType libraries for Windows -system-freetype buildsJames McDonnell2016-05-091-0/+1
| | | | | | | | | | | | | | | | | | Add a "CONFIG += qpa/basicunixfontdatase" to the -system-freetype block so that the FreeType libraries are included in LIBS. Task-number: QTBUG-35767 Change-Id: I81e18e72e068d5ac240cba79bab880e50a033860 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
| * Fix threading issue in creating static opengl contextMäättä Antti2016-05-091-2/+4
| | | | | | | | | | | | | | | | Add mutex lock for static opengl context creation. Task-number: QTBUG-53202 Change-Id: Iba22339776ec8885efd82b13ae56f6781a426f4b Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
| * Windows Accessibility: Use QWindowsAccessibility::windowHelper().Friedemann Kleint2016-05-091-11/+4
| | | | | | | | | | | | | | | | | | Amends changes ee516381873857e833b53b175fd3c40e4c45a5fd, d7a3b6145999d015997e26e12a7345f774b053f3. Task-number: QTBUG-52943 Change-Id: Icdf9d99c327bdd38dfb084e6cf77b14cd5ce073b Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
| * Windows Accessibility: Recurse up to find a window.Friedemann Kleint2016-05-061-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not all classes inheriting QAccessibleInterface implement QAccessibleInterface::window(), so, go up the hierarchy to find one that does. The window is required to be able to determine the correct scale factor for the screen when High DPI scaling is active. Fixes multimonitor issues for QtWidgets. Amends change d7a3b6145999d015997e26e12a7345f774b053f3. Task-number: QTBUG-52943 Change-Id: I81733765faee4d296bd6ea046bc2cecb018eb28d Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* | compile fix for static qt with dynamic openglTim Blechmann2016-05-061-1/+1
| | | | | | | | | | | | Change-Id: If78f6afeeeda5ea46a2ed17c6938fa25be9802fe Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-293-9/+18
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: mkspecs/features/qml_module.prf mkspecs/features/qt_common.prf src/gui/text/qzip.cpp src/plugins/platforms/cocoa/qnsview.mm src/plugins/platforms/windows/array.h src/testlib/qtestcase.cpp src/widgets/dialogs/qfilesystemmodel.h Change-Id: Ie41c5868415b81f7693c80e045497035504bb210
| * Silence MSVC warnings when using certain std algorithmsMarc Mutz2016-04-263-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The MSVC STL warns when passing naked pointers as non-bounded iterators to algorithms such as std::equal and std::copy, in an attempt to inform users that the range specified by that iterator has an implicit minimum size that the caller of the algorithm must ensure is met: warning C4996: 'std::_Equal1': Function call with parameters that may be unsafe - \ this call relies on the caller to check that the passed values are correct. To \ disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to \ use Visual C++ 'Checked Iterators' When building Qt, as well as when building user projects with qmake (cf. 0a76b6bc7f98900ea884cd10ccca1a332e5bdba5), we globally disable this warning (with -D_SCL_SECURE_NO_WARNINGS), but since we started using STL algorithms in public headers (e.g. in qvector.h), users get this warning in their own projects now, unless they, too, define said macro. But such a requirement is against the Qt policy to have headers that are warning-free as much as possible. The suggested way of fixing this warning is to wrap the naked pointer in a stdext::unchecked_array_iterator before passing it to the algorithm, cf. examples in https://msdn.microsoft.com/en-us/library/ttcz0bys%28v=vs.120%29.aspx or, together with the capacity-made-explicit, in a stdext::checked_array_iterator. To avoid ifdefs for platforms that don't have these extensions (which, incidentally, for the unchecked case, includes MSVC 2012), wrap the calls in macros. The end game here is to drop -D_SCL_SECURE_NO_WARNINGS, at least for public headers, even though this commit also adds the wrapper to implementation and private header files. An alternative to the wrapper would have been the version of std::equal that takes four iterators. However, that is a C++14 library feature, while this version of Qt still needs to compile with a C++98 compiler, and, more importantly, there isn't, and never will be, a corresponding 4-iterator version of std::copy. Task-number: QTBUG-47948 Done-with: Stephen Kelly <steveire@gmail.com> Change-Id: I1bbab257fb5f1c5042939c382a412b596112ff26 Reviewed-by: Stephen Kelly <ske@ableton.com>
| * Windows QPA/High DPI: Scale accessibility coordinates.Friedemann Kleint2016-04-262-4/+9
| | | | | | | | | | | | | | | | | | Use High DPI when interfacing with the Accessibility API. Task-number: QTBUG-52943 Task-number: QTBUG-50991 Change-Id: Ica4489222dca5d58864172470e634f709deb69f8 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-271-3/+2
|\| | | | | | | | | | | | | | | Conflicts: src/corelib/io/qprocess_win.cpp src/widgets/itemviews/qheaderview.cpp Change-Id: I0a59ade9cd6e91f770fdf298a7d72a41e79fd761
| * Windows QPA/GL: Avoid crash in GL driver.Friedemann Kleint2016-04-221-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | QWindowsStaticOpenGLContext::doCreate(): Invoke QWindowsOpenGLTester::supportedRenderers() only when needed; specifically, do not unnecessarily call it when GLES/SW renderer is specified. Amends change b4c8e1517455becb138876c08b3bdd880a80770d. Task-number: QTBUG-49541 Task-number: QTBUG-52693 Change-Id: I58d1c584d194f8e7fee35ee16b77575f86d3c22e Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-252-8/+4
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/unix/compile.test configure src/android/jar/src/org/qtproject/qt5/android/QtMessageDialogHelper.java src/corelib/global/qglobal.cpp src/widgets/kernel/qapplication.cpp src/widgets/styles/qwindowsvistastyle.cpp tests/auto/corelib/kernel/qobject/tst_qobject.cpp Change-Id: I067083f34e5290aa5f7565e40c30a069cc37b83a
| * QWindowsTheme::standardPixmap(): Do not create pixmaps with DPR.Friedemann Kleint2016-04-201-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | The given size is mostly ignored and the resulting pixmaps typically end up in a QIcon, which will clobber the DPR anyways when returning a pixmap for a given size. Moreover, returning a message box icon with a DPR > 1 when high DPI scaling is active and Qt::AA_UseHighDpiPixmaps is not set causes the pixmap to become too small due to some scaling error. Task-number: QTBUG-52622 Change-Id: I8aaaa97667d6c168040e19b7edad9dfb7517f70f Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
| * Windows QPA: Fix top level flags for Qt::SplashScreen.Friedemann Kleint2016-04-161-0/+2
| | | | | | | | | | | | | | | | | | Set Qt::FramelessWindowHint so that the translucency logic triggers correctly (raster windows). Fixes the splash screen of Qt Linguist to be transparent. Change-Id: I3d50129b7f15bee0eff6ce3318c7f0fec055dc45 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>