summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove QRegExp from the bootstrap libraryLars Knoll2020-05-066-28/+8
| | | | | | | All it's uses have been replaces with QRegularExpression. Change-Id: I5bcdfdd8a39dad6d1288f18f1b24d2eea9e028d2 Reviewed-by: Simon Hausmann <hausmann@gmail.com>
* Remove a bunch of deprecated members from src/gui/painting classesVolker Hilsheimer2020-05-068-448/+1
| | | | | | | | Also remove dead code that isn't compiled anymore in Qt 6 builds. Change-Id: I7a7ae35e61fb2ad9cc21180fb7224357ade1505f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QComboBox: Remove deprecated auto-completion propertiesVolker Hilsheimer2020-05-064-165/+26
| | | | | | | | | | | | The replacement is to set, and configure, a QCompleter directly via setCompleter. With the removal of the separate properties in QComboBox, the configuration of the completer is not maintained if the line edit is replaced. A QCompleter is created and set implicitly when the line edit is set, unless the line edit came with a completer. This is what the auto test verifies as well. Change-Id: I9a4c73db5e39a2558aad346c0904be6deb4f1cd2 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* CMake: Document versionless commandsKai Koehne2020-05-0611-88/+603
| | | | | | Pick-to: 5.15 Change-Id: I249c10bf3338b08477ce04f7c2d5098390a6f9a0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QGridLayoutEngine: remove now-unused enumMarc Mutz2020-05-061-7/+0
| | | | | | | This enum has since been replaced by Qt::Orientation by way of QHVContainer. Change-Id: I177409652c5de0c5f7b6117f94e26a05c3d609d4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QSettings: prepare for QChar::unicode() return type changeMarc Mutz2020-05-061-1/+1
| | | | | | | | | | | The return type will change from ushort to char16_t, and while for the vast majority of the users, this will be a non-breaking change, this code here would fail. Fix by using an auto variable, as it should have been from the onset. Change-Id: I8e3a0f3b38d83434665ee50aa8946b0edbcf133a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QChar: fix missing warning for construction from char/ucharMarc Mutz2020-05-051-2/+2
| | | | | | | | | | | | Commit eea219732ed79fde65c1074832fb80fdf62d4c30 added the explicit keyword to the QT_ASCII_CAST_WARN constructors of QChar, essentially disabling the intended warning for the char/uchar case, because the compiler would just pick another of the QChar ctors. Fix by removing the explicit keyword again. Change-Id: I65466426cfa471d44c3537fc47620ec8f0fcffcd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Don't move focus away from previous proxy in QWidget::setFocusProxyVolker Hilsheimer2020-05-052-14/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | This amends 23b998fa454ca021aa595f66d2e1964da4a119a4, and the commits 3e7463411e549100eee7abe2a8fae16fd965f8f6 and 947883141d9d8b3079a8a21981ad8a5ce3c4798e. This change restores the pre-5.13.1 behavior of setFocusProxy to not move focus away from a previously set focus proxy. With the previous changes, focus would move away from a proxy when a new proxy is set, if the old proxy had focus. While there are arguments in favor of this behavior, it is a change of behavior that shouldn't be introduced to 20+ years old functionality in order to fix the real bugs addressed by the initial commits. Instead, move focus only to the new proxy when the focus widget was the widget that gets a focus proxy. [ChangeLog][QtWidgets][QWidget] setFocusProxy no longer moves focus away from a previously set focus proxy, restoring pre-Qt 5.13.1 behavior. Change-Id: Icf2ad7cba5b860014aeef91cb274c442a2ab9d42 Fixes: QTBUG-83720 Pick-to: 5.15 Reviewed-by: David Faure <david.faure@kdab.com>
* uic/Python: import all the classes for QtCore and QtGuiCristian Maureira-Fredes2020-05-052-10/+4
| | | | | | | | | | | We already had this approach for QtWidgets, so to avoid adding the specific cases every time, we import all the classes from QtCore and QtGui. Change-Id: I38dd2eec3bbdfb83f156a48f35a2f4fda44528c7 Pick-to: 5.15 Fixes: PYSIDE-1287 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Emit QScreen::(availableG|g)eometryChanged() on logical DPI changeFriedemann Kleint2020-05-053-11/+25
| | | | | | | | | | | | | | | | When a change in logical DPI occurs due to the user changing the scaling factor, the screen size in device independent pixels may change due to High DPI choosing a different scale factor. Factor out the commonly used code into QScreenPrivate methods and use them from QGuiApplicationPrivate::processScreenLogicalDotsPerInchChange(). Pick-to: 5.15 Task-number: QTBUG-76902 Task-number: QTBUG-79248 Change-Id: I241a0f52d8236a65084d501fb4d8f9faeea89c0f Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Remove use of std::not1 completelyThiago Macieira2020-05-051-11/+5
| | | | | | | | | | | libc++ that comes with XCode does not have the feature macros, resulting in warnings printed. Just invert the condition in the functor itself. lalr.cpp:316:84: warning: 'not1<Nullable>' is deprecated [-Wdeprecated-declarations] Pick-To: 5.15 Change-Id: I99ab0f318b1c43b89888fffd160bf8d79bc4b47e Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Fix Clang 10 warning about misleading indentationThiago Macieira2020-05-051-2/+2
| | | | | | | | qcombobox.cpp:3282:13: error: misleading indentation; statement is not part of the previous 'if' [-Werror,-Wmisleading-indentation] Pick-To: 5.15 Change-Id: I99ab0f318b1c43b89888fffd160b5a7310c0a0d0 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Remove Perforce commands from setupSuite.shThiago Macieira2020-05-051-3/+1
| | | | | | | | | | | | | | | This file mustn't have changed at all, aside from the copyright headers, since we switched to Git in October 2008. Quick check shows the data from W3C is still online: https://dev.w3.org/cvsweb/2001/XML-Test-Suite/ I didn't check that the CVS server is actually running because none of my machines even has the cvs command anymore... Pick-To: 5.15 Change-Id: I4e559af2a9a1455ab770fffd15f4e740114a2433 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* tst_QProcess: create a more reliable crashingThiago Macieira2020-05-051-6/+25
| | | | | | | | | | | | | Turns out that crashing on purpose is more difficult than it seems. It should be easy, given how often we do it accidentally... Let the null pointer dereferencing be the fall back. Some compilers are too smart for their own good and remove the fault. Instead, let's rely on raise(SIGABRT) on Unix and on the UD2 instruction on Windows. Pick-To: 5.15 Change-Id: Ibdc95e9af7bd456a94ecfffd1603f1c9b73b167d Reviewed-by: Simon Hausmann <hausmann@gmail.com>
* Fix Clang 10 warning about LLONG_MAX being inexact in doubleThiago Macieira2020-05-051-2/+3
| | | | | | | | | | | validator.cpp:707:19: error: implicit conversion from 'long long' to 'double' changes value from 9223372036854775807 to 9223372036854775808 [-Werror,- Wimplicit-int-float-conversion] Task-number: QTBUG-83666 Pick-To: 5.15 Change-Id: I99ab0f318b1c43b89888fffd160b4a95a258423b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
* Fix Mesa warning that MESA_EGL_NO_X11_HEADERS is deprecatedThiago Macieira2020-05-051-0/+3
| | | | | | | | | The warning isn't printed when EGL_NO_X11 (the new macro) is defined. Fixes: QTBUG-80042 Pick-To: 5.15 Change-Id: I99ab0f318b1c43b89888fffd160b5d99f94c8c9b Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* tst_QResourceEngine: fix the order of arguments to QCOMPAREThiago Macieira2020-05-051-2/+2
| | | | | | | | Expected and actual were inverted. Pick-To: 5.15 Change-Id: Idc3fae4d0f614c389d27fffd15e9fa6a0a8f25e6 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.15' into dev"Qt Forward Merge Bot2020-05-059-22/+110
|\
| * Merge remote-tracking branch 'origin/5.15' into devQt Forward Merge Bot2020-05-059-22/+110
| |\ | | | | | | | | | Change-Id: I003c0d6271c6444748bf30b4331eca3fb2410f44
| | * Doc: Enable snippet compilationPaul Wicking2020-05-051-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable compilation of snippets in network, widgets, and testlib. Task-number: QTBUG-74787 Task-number: QTBUG-81497 Done-with: Nico Vertriest <nico.vertriest@qt.io> Done-with: Kai Koehne <kai.koehne@qt.io> Change-Id: Ifdc7c06698bdee5fd423a145320f6cc0db63622b Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
| | * Compile fixes for clang10Lars Knoll2020-05-058-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | Fix some warnings that are flagged as errors on clang10. Change-Id: I906634c8b2bd94db42d74a7f3d10efb086e373cc Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit bc726ed5d96161b70a22b9a11e0943acca219cfc)
| | * Android: fix mimeTypes handling for file dialogAssam Boudjelthia2020-05-052-6/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since Android native file manager supports mimeTypes, I use QMimeDatabase to get the correct mime type for the nameFilter used with the file dialog. [ChangeLog][Android] Support setting mimetypes and and namefilters for Android native file dialog. Task-number: QTBUG-83089 Change-Id: I46545576dc9b51aa872bb37dbf4fe12b2533bdd9 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
| | * Doc: Fix compilation of testlib snippets if sql, widgets are missingKai Koehne2020-05-051-0/+3
| | | | | | | | | | | | | | | Change-Id: Ibcc872408ba829085809737004d9d3186bd20bab Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| | * Allow switching of QT_NO_CREATE_VERSIONLESS_TARGETSKai Koehne2020-05-053-8/+32
| | | | | | | | | | | | | | | | | | Fixes: QTBUG-83774 Change-Id: Ib3f2507a917046426b94a779e205012ce52cbfe9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| | * Improve QTranslator documentation code snippetKai Koehne2020-05-052-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use :/i18n/, because this is the place where translations are stored by default if using qmake's CONFIG += lrelease embed_translations. Also revert change of app.exec() done in 16da0b2cf8b6b. First of all, both QGuiApplication and QApplication feature overloads of exec(), so using QCoreApplication::exec() might miss functionality. Anyhow, while it's true that all of them are static member functions, the vast majority of our examples and templates call them with class member access syntax, so let's try to be consistent. Finally, the example since a while uses QCoreApplication::translate, not tr(), so let's not mention it in the description. Change-Id: Ic6e5d91cf04d3f0d1a4296c5c09e790773e6fc62 Reviewed-by: Miłosz Kosobucki <milosz@kosobucki.pl> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
| | * Don't compile pcre2 if we will use the system libraryThiago Macieira2020-05-041-1/+1
| | | | | | | | | | | | | | | | | | Change-Id: I99ab0f318b1c43b89888fffd160b4923a06c4585 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | | Explicitly prevent out-of-bounds access to tabPositions arrayVolker Hilsheimer2020-05-052-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use DockCount enum value for the size of the array, and explicitly handle when toDockPos returns DockCount (which it might). Change-Id: Id52399607fb1ae74a24a050de7a8481264c03e47 Fixes: QTBUG-83983 Coverity-Id: 218539 Pick-to: 5.15 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | Fix bug in QTextLayout::min/maxWidth for WrapAtWordBoundaryOrAnywhereJan Arve Sæther2020-05-052-20/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In that specific wrapping mode, it will first try a normal word wrap. If it doesn't fit within the specified line width it will discard the result of that and try WrapAnywhere by calling layout_helper() recursively. The problem was that at the point it called itself again it had already adjusted eng->maxWidth: eng->maxWidth += line.textWidth; This was not restored, but carried on to the recursive call to layout_helper(), so the end result was that the maximumWidth would accumulate text widths from parts of the same line twice. Due to the same recursive behavior the minimumWidth also had a problem: It always returned the width of the widest word because it took the qMax() of the minimum widths of the two passes, (WordWrap and then WrapAnywhere) effectively making the minimum width always be the width of the widest word (even though it could wrap at finer granularity). Pick-to: 5.15 Task-number: QTBUG-77337 Change-Id: Ie7e9c17b157506352c2da38cc7f4a8dfa1283966 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* | | Remove spurous initializer for QByteArrayEdward Welbourne2020-05-051-1/+1
| | | | | | | | | | | | | | | Change-Id: Ie0d1a068394283c724ab4f4aa0b5fc8ce06b1b08 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | QUrlIdna: simplify a loop using QStringView::mid()Marc Mutz2020-05-051-6/+4
| | | | | | | | | | | | | | | | | | Change-Id: I0f33a29b3104ceac4c5dfb9db2bfdcd896bb95d1 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | QMimeDatabase: remove unused QSet includeMarc Mutz2020-05-051-1/+0
| | | | | | | | | | | | | | | Change-Id: Id69ef8f09baf276cc0de8d8b9534cd370608531b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | | Port two more local QSets to QDuplicateTrackersMarc Mutz2020-05-052-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | Apart from a more fitting, minimal, API, QDuplicateTracker also transparently uses C++17 pmr::monotonic_buffer_resource to avoid, or at least reduce, memory allocations. Change-Id: Ia9e837ebba88aeb1916da041fc8460a0692a03e4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | QDuplicateTracker: add rvalue overloadMarc Mutz2020-05-051-0/+12
| | | | | | | | | | | | | | | | | | | | | We have at least one user that only ever passes rvalues. Change-Id: I3f190b8d074e40a23c52e791635c9a1c45ba00ab Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | QChar: make std::hash'ableMarc Mutz2020-05-052-0/+22
| | | | | | | | | | | | | | | Change-Id: I2164df19cd17ab96a39020de66a3fe9fec838a36 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* | | QStandardItemModel: port a local QSet to QDuplicateTrackerMarc Mutz2020-05-051-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Apart from a more fitting, minimal, API, QDuplicateTracker also transparently uses C++17 pmr::monotonic_buffer_resource to avoid, or at least reduce, memory allocations. Change-Id: I59242287debfd1e41c663aa2b88d0d3ea44f43fb Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | | Port qmake over to user QRegularExpressionLars Knoll2020-05-0514-98/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | Use the DotMatchesEverythingOption for all places where we interpret .pro files, to increase compatibility with QRegExp. Change-Id: I347d6b17858069f3c9cedcedd04df58358d83f27 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | | Compile QRegularExpression into qmakeLars Knoll2020-05-0510-13/+266
| | | | | | | | | | | | | | | | | | | | | | | | This is required to be able to port qmake over to use QRegularExpression instead of QRegExp. Change-Id: I0ad2c19bf3c0a28e52c1e12b4d3daa0300a75ed2 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | | Build qmake with QT_USE_STRINGBUILDERLars Knoll2020-05-0514-36/+80
|/ / | | | | | | | | | | | | | | Should improve performance and is going to be required in the future anyway. Change-Id: I89d7c50441d2491da1ab0a4d564dcc91f52ade85 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* | uic: Generate string-based connections for custom slotsFriedemann Kleint2020-05-054-12/+438
| | | | | | | | | | | | | | | | | | | | | | Qt Designer let's you add custom slots and signals to the main form; they should use string-based connection syntax since the class is not known in setupUI(). Amends da3cb1deb6c752f8e4c05434e3451432e5d787ba. Task-number: QTBUG-76375 Change-Id: I5a3a5630f77c812d48db1cdb7a8658a4d2718228 Reviewed-by: Liang Qi <liang.qi@qt.io>
* | Fix solaris buildKai Koehne2020-05-051-0/+1
| | | | | | | | | | | | | | | | | | Fixes enabling of fPIC that got removed as a side-effect of commit 39fc377bf. Fixes: QTBUG-83949 Change-Id: I2bed7edb5b1f97192cbcf9e12dd927a17803d864 Pick-to: 5.15 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | QGridLayoutEngine: port to QHVContainerMarc Mutz2020-05-052-82/+84
| | | | | | | | | | | | Change-Id: Iadb069ecdf67d72fa1b3be9198e90eeda8e98d54 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | Long live QHVContainer!Marc Mutz2020-05-053-30/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various places in Qt use arrays indexed by some function of Qt::Orientation input. None document their dependence on the numerical values of the Qt::Orientation enum, some waste space, none is type-safe. QHVContainer is a private container of two values, one for Qt::Horizontal and one for Qt::Vertical. Its salient API is the indexing operator, taking Qt::Orientation, thus making the class type-safe. Use it to port QGridLayoutItem and QAbstractScrollAreaPrivate. Change-Id: I0d9f17431a5eb141bfb0763c83155710bb82a537 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | Fix crash in QEglFSKmsGbmCursor::setPos() when cursor is disabledShawn Rutledge2020-05-051-1/+1
| | | | | | | | | | | | | | | | | | | | This happens when there are two screens (configured in the json file), QT_QPA_EGLFS_HIDECURSOR is set, and the mouse moves to the secondary screen: m_bo is null. Pick-to: 5.15 Change-Id: I5cef9835e7c9a6a39264bf9a028bf1feeabc6995 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* | Purge from Q(Date|Time)+ most things marked to go at Qt 6Edward Welbourne2020-05-055-686/+4
| | | | | | | | | | | | Change-Id: Ib3f48c74132b47649dc7b4cbacf2cefed5a57687 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Support special casing in configure.cmakeMårten Nordheim2020-05-052-13/+44
| | | | | | | | | | Change-Id: Ib899a5446a81e2604ba3642b9ad37aedc18ca650 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Re-order the sub-dirs to catch real culprits before things they breakEdward Welbourne2020-05-053-64/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A failure in testlib is apt to imply misleading failures elsewhere, so catch those first. Likewise, broken tools or corelib break everything. Put the rest of the list in alphabetic order. Restructure auto.pro to use conditional SUBDIRS += (in the right order) instead of setting SUBDIRS to a full list and then doing conditional SUBDIRS -= for most entries. This more closely matches the way the generated cmake config does things, although it still doesn't regenerate cleanly. Change-Id: Idc15326c3534eb4fdce55394269f2dfbc17fcd99 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | QGraphicsGridLayout: simplify a loop over Qt::Orientation valuesMarc Mutz2020-05-051-3/+1
| | | | | | | | | | | | | | | | Instead of selecting a Qt::Orientation value based on the integer loop variable, just loop over the possible Qt::Orientation values directly. Change-Id: I25b6f0d49c9b5a7e16e974dcc37668f801e65224 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | Add virtual QWindow::closeEvent handlerVolker Hilsheimer2020-05-052-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default implementation does nothing; the processing of accepted close events remains in the QWidget::event handler, so that subclasses don't have to call the super class in order to free window system resources and emit lastWindowClosed signals. QWidgetWindow::event is reimplemented to handle QEvent::Close as well, calling QWidgetPrivate::close_helper, which then delivers a separate QCloseEvent to the widget. The order of execution for widgets is after this change: 1) QWidgetWindow::event 2) QWidgetWindow::handleCloseEvent (calls QWidget::event/closeEvent) 3) QWindow::event 4) QWindow::closeEvent <- does nothing, not overridden 5) default cleanup handling in QWindow::event and for Qt Quick after the corresponding change in qtdeclarative: 1) QQuickWindow::event 2) QWindow::event 3) QQuickWindow::closeEvent <- emits closed 4) default cleanup handling in QWindow::event [ChangeLog][QtGui][QWindow] closeEvent has been added as a virtual function. Task-number: QTBUG-31019 Change-Id: I201f5ee9c6a73b949986648e3bd288d2c7898f28 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | QPlatformTheme: Use operator| instead of operator+ to define a shortcutGiuseppe D'Angelo2020-05-051-1/+1
| | | | | | | | | | | | | | Follow the surrounding code. Change-Id: I2d4789162ea91328dfa00ac9b4c2fc6a8e6ed261 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | QCoreApplication: force the process locale codec to UTF-8Thiago Macieira2020-05-053-7/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As discussed in the mailing list and in the Qt Contributor Summit 2019. Tested on Linux, macOS and FreeBSD, showing these fallbacks: OS environment setlocale() call FreeBSD empty "C.UTF-8" FreeBSD LC_ALL=C "C.UTF-8" Linux empty "C.UTF-8" Linux LC_ALL=C "C.UTF-8" Linux LANG=en_US "en_US.UTF-8" Linux LANG=de_DE@euro "de_DE.UTF-8" Linux LANG=en_GB.iso885915 "en_GB.UTF-8" Linux LANG=hy_AM.armscii8 "hy_AM.UTF-8" Linux LANG=ja_JP.sjis "ja_JP.UTF-8" Linux LANG=ru_RU.koi8r "ru_RU.UTF-8" macOS empty "UTF-8" macOS LC_ALL=C "UTF-8" Versions tested: FreeBSD 12.1, Linux w/ glibc 2.30, macOS 10.14.2. See * https://wiki.qt.io/Qt_Contributor_Summit_2019_-_QtCore * https://lists.qt-project.org/pipermail/development/2019-October/037791.html Change-Id: Ia2aa807ffa8a4c798425fffd15d97ddb4f35b0ae Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>