summaryrefslogtreecommitdiffstats
path: root/src/gui
Commit message (Collapse)AuthorAgeFilesLines
* Port QtGui from QStringRef to QStringViewLars Knoll2020-06-1115-45/+45
| | | | | | Task-number: QTBUG-84319 Change-Id: I1761096fbcc9421a013cf73f831a2a2ba0c18006 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Clean up special functions for QTextFrame::iteratorVolker Hilsheimer2020-06-102-53/+8
| | | | | | | | | Member initialization syntax allows declaring now inline default constructor as default. Remove copy/move/assignment operators, which had already been disabled. Change-Id: Ie407e65aa39c72f5e6436a6beaf9323663f78cfc Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Restore default role names in QStandardItemModel::roleNames()Shawn Rutledge2020-06-101-0/+1
| | | | | | | | | | | | | | Amends 32b586864e3a4398da38c045f4ac0823c3dc3c57, which added an override of QStandardItemModel::roleNames(). It's good for it to have its own QHash so that roles can be added, and because QStandardItemModel::setItemRoleNames() remains un-deprecated; but before that change, they were the roles that QAbstractItemModel had initialized from QAbstractItemModelPrivate::defaultRoleNames(). In particular, we need "display" to map to Qt::DisplayRole by default; several tests in qtdeclarative depend on that. Change-Id: I58b2d6aa6b6c78b1d618335ddc4ecb834af57274 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Move the UNIX event dispatchers into QtGuiFriedemann Kleint2020-06-1010-0/+529
| | | | | | Task-number: QTBUG-83255 Change-Id: I7d32eb1ec01784c9ed6bf5fc4913ffc5b3a34a49 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Doc snippets: Use nullptr instead of 0 literalPaul Wicking2020-06-1011-11/+11
| | | | | | | | | Also mark constructors explicit, where applicable. Pick-to: 5.15 Fixes: QTBUG-84859 Change-Id: I145d366d854fd6b4373bcc23d0b880d6361d9014 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Pass QVariant by reference, address ### Qt 6 commentVolker Hilsheimer2020-06-092-2/+2
| | | | | Change-Id: I0a3fab84e699c73299e2c72a6739ecf4ed856177 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Move the Windows Event Dispatcher into QtGuiFriedemann Kleint2020-06-096-0/+311
| | | | | | Task-number: QTBUG-83255 Change-Id: Ida86f27d7f52b9be48fbea909979320866ff8dae Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Remove deprecated methods and address some ### Qt 6 comments in gui/textVolker Hilsheimer2020-06-095-86/+2
| | | | | Change-Id: If1ed58ecbb13df88bdb1d72caccfd01c14d42eac Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add deprecation warnings to QGuiApplication::fontChanged/paletteChangedVolker Hilsheimer2020-06-082-2/+8
| | | | | | | And silence those warnings in code that emits those signals. Change-Id: Ic9013648060c9b84b59c44bb5a8c77e48f82d24f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Merge QWindow::parent overloadsVolker Hilsheimer2020-06-082-13/+1
| | | | | Change-Id: Ibec0f41de16694c38cf24fcdd4eeba74df62a1dd Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Phase 2 of removing QDesktopWidgetVolker Hilsheimer2020-06-081-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | Remove QDestopWidget public header, simplify the implementation that maintains a Qt::Desktop type QWidget for each QScreen, and turn QWidget's initial target screen into a QScreen pointer. QApplication::desktop() now takes an optional QScreen pointer, and returns a QWidget pointer, so that applications and widgets can get access to the root widget for a specific screen without having to resort to private APIs. QDesktopWidgetPrivate implementations to look up a screen for an index, widget, or point are now all inline functions that thinly wrap QGuiApplication::screens/screenAt calls. We should consider adding those as convenience APIs to QScreen instead. Note that QWidget::screen is assumed to return a valid pointer; there is code that handles the case that it returns nullptr (but also code that trusts that it never is nullptr), so this needs to be defined, verified with tests, and asserted. We can then simplify the code further. Change-Id: Ifc89be65a0dce265b6729feaf54121c35137cb94 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Replace calls to deprecated QEvent accessor functionsShawn Rutledge2020-06-084-36/+36
| | | | | | | Many of these were generated by clazy using the new qevent-accessors check. Change-Id: Ie17af17f50fdc9f47d7859d267c14568cc350fd0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Prepare to harmonize pointer event accessor namesShawn Rutledge2020-06-082-115/+249
| | | | | | | | | | | | | | | | | | | | | | | ...by deprecating everything that doesn't conform to the naming scheme, and providing replacements. Continues what was started with QWheelEvent in 7d29807296cb7ccc7f3459e106d74f93a321c493. However QMouseEvent::pos() is left un-deprecated because it's so widely used. Also quit returning QPointF by const-ref from accessors. It's plenty small enough to return by value; we were never consistent about it anyway; and it's good to avoid some problems with returning a reference to a temporary in case the value is calculated in the accessor. [ChangeLog][QtGui][QPointerEvent] Mouse, touch and tablet events now have a standard set of QPointF accessors: position(), scenePosition() and globalPosition(). Existing accessors that return integer QPoints, and those with non-standard names, have been deprecated. You can use the clazy qevent-accessors check to update your code accordingly. Task-number: QTBUG-20885 Task-number: QTBUG-84775 Change-Id: I8e6f587da76d6d0bca6e965ce8ebc7e67b868011 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove deprecated text-related enumsEskil Abrahamsen Blomfeldt2020-06-087-90/+15
| | | | | | | | Fixes: QTBUG-82367 Change-Id: Iff2645759657f8e350754e90e791dbd583017671 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix deprecation warning, use char16_t instead of quint16/ushortVolker Hilsheimer2020-06-081-2/+2
| | | | | | Change-Id: I4021abb901260c3e27cefd81b3acd5ac198941c8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Make the QFontCache size configurableMartin Jansa2020-06-081-2/+4
| | | | | | | | | | It can be configured using the QFONTCACHE_MIN_COST define when configuring Qt. Change-Id: I41fb781099c4c0f03c378f10c8db4ea06ef4e9ff Task-number: QTBUG-83127 Reviewed-by: Risto Avila <risto.avila@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add the 'accessiblebridge' as a plugintype of gui moduleJeongBong Seo2020-06-083-3/+6
| | | | | | | | | This patch makes the 'accesiblebridge' plugin configurable. Change-Id: I99f01fcd434be25bbbe5460bbc8cc1d76aa744b9 Task-number: QTBUG-83126 Pick-to: 5.15 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
* ItemModels: remove deprecated functionsChristian Ehrlicher2020-06-072-10/+0
| | | | | Change-Id: Id3430493a62b11977f64e146f7668ca30935b959 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QAbstractItemModel: remove deprecated setRoleNames()Christian Ehrlicher2020-06-073-0/+11
| | | | | | | Remove setRoleNames() and all its now unneeded helper functions. Change-Id: I0a83751aace35700655d4cc7c79278325994cbdd Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove winrtOliver Wolff2020-06-0611-45/+15
| | | | | | | | | Macros and the await helper function from qfunctions_winrt(_p).h are needed in other Qt modules which use UWP APIs on desktop windows. Task-number: QTBUG-84434 Change-Id: Ice09c11436ad151c17bdccd2c7defadd08c13925 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove unused function pointers in QVariant::HandlerLars Knoll2020-06-061-6/+1
| | | | | | Task-number: QTBUG-84635 Change-Id: Icfbd1aae26b0453426d93e0af64d84d6403b8e3b Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix build without features.cborstreamwriterTasuku Suzuki2020-06-062-0/+4
| | | | | Change-Id: I970d21d7ac97a602a5f374f6c89cd4bfdcd847b8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove the deprecated QDirModelVolker Hilsheimer2020-06-041-2/+2
| | | | | | | | | QFileSystemModel is the documented replacement. It uses threads to populate the model, which QDirModel doesn't. Change-Id: I7818ecd8f849eb566ac176612f382e17a0471c47 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Set the dontPrint attribute correctly for the character being checkedAndy Shaw2020-06-041-1/+1
| | | | | | | | | This amends 36325f9d86249a4f17f7efbbc1122c462708d909 so that the dontPrint attribute is set before incrementing i Change-Id: I0be7386253d8607596489ce1025d2f3f8d468ab4 Pick-to: 5.15 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Use QByteArray instead of QStringJonas Karlsson2020-06-033-55/+73
| | | | | | | | | | Since the variable names in QShaderDescription are later compared to QByteArrays we can gain some performance from not having to convert them to QByteArrays later. Task-Id: QTBUG-83706 Change-Id: Iaf80d0966f45cbb09e7c1000b7854bc488e57bb3 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Enable the scenegraph to remove its QMatrix4x4_Accessor hackLaszlo Agocs2020-06-032-5/+29
| | | | | | | | | Expose flagBits via a public function marked as internal. Task-number: QTBUG-82670 Change-Id: Ia64d934d3dda3e718357cf4e3c32866a613a4722 Reviewed-by: Andy Nichols <andy.nichols@qt.io> Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Move QAbstractFileIconEngine into QtGuiTor Arne Vestbø2020-06-034-0/+228
| | | | | | Task-number: QTBUG-83255 Change-Id: Iab502c51600b96f315113b08fa473ed28a5457fc Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Do not multithread if already in a global threadpool threadAllan Sandfeld Jensen2020-06-035-15/+22
| | | | | | | | | | This can lead to a deadlock if we block all the worker threads, waiting for the worker threads to finish. Pick-to: 5.15 Fixes: QTBUG-84619 Change-Id: I92b7f96007897d86ece0c34223bab0df4ccbed9a Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Support winding fonts like Windows doesAllan Sandfeld Jensen2020-06-031-0/+4
| | | | | | | | | | Map Latin-1 characters to the Winding unicode entries for symbol fonts to render those fonts like Windows does. Pick-to: 5.15 Fixes: QTBUG-84409 Change-Id: I60b81d93412d970d25a98606545773db6c8ab723 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Add QT_QPA_SYSTEM_ICON_THEME to override icon theme nameShawn Rutledge2020-06-031-0/+3
| | | | | | | | | | | On a plain X11 desktop, it otherwise ends up empty. Pick-to: 5.15 Task-number: QTBUG-25351 Task-number: QTBUG-25718 Task-number: QTBUG-74252 Change-Id: I50a522a3e1761e422d5949d5338869ceb9e5e89d Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
* Doc: Fix qdoc warningsPaul Wicking2020-06-031-10/+10
| | | | | | | Use \li for list items. Change-Id: I5ab253e22077cd7132f28c8690aa2a9a4b8b489c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move QtAccessibilitySupport into QtGuiTor Arne Vestbø2020-06-024-5/+190
| | | | | | Task-number: QTBUG-83255 Change-Id: Ibc1b38e77c3c90030a832c41f4de65c6c38bc91d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QPainter: replace manual memory management [1/5]: dummyStateMarc Mutz2020-06-022-4/+5
| | | | | | | Use a unique_ptr to indicate ownership. Change-Id: I15e8c48fac1424d5605e869adcfba6965b16c218 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Do not fully initialize QIconLoader when setting the fallback themeAlbert Astals Cid2020-06-022-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need this because without this patch you get bugs both if you call QIcon::setFallbackThemeName before creating the QGuiApplication and if you call QIcon::setFallbackThemeName after creating QGuiApplication Why do you get a bug if you call QIconLoader::setFallbackThemeName before creating the QGuiApplication: * QIcon::setFallbackThemeName calls QIconLoader::instance * QIconLoader::instance calls QIconLoader::ensureInitialized * QIconLoader::ensureInitialized calls systemThemeName * systemThemeName asks the current QPlatformTheme for its QPlatformTheme::SystemIconThemeName * But since we're calling this before creating the QGuiApplication there is no current QPlatformTheme yet, so systemThemeName is set to empty, which is obviously not what we want Why do you get a bug if you call QIconLoader::setFallbackThemeName after creating the QGuiApplication: * QGuiApplicationPrivate::init calls QGuiApplicationPrivate::createPlatformIntegration * QGuiApplicationPrivate::createPlatformIntegration sets the current QPlatformTheme and at the end of the very same function uses QIcon::fromTheme * Since we haven't called QIconLoader::setFallbackThemeName yet there is at least one icon lookup that doesn't take the fallback theme we would like to have into account This patch makes it so calling QIconLoader::setFallbackThemeName before creating the QGuiApplication works. The only thing we want to do from QIcon::setFallbackThemeName is set the internal m_userFallbackTheme, it doesn't care about doing further initialization of QIconLoader, if it's done, great it's done, if it is not initialized yet, great it will be initialized later when someone actually tries to use the QIconloader. So it's OK for ensureInitialized() to return early if there is no platform theme yet, because it will be called again later. Pick-to: 5.12 Pick-to: 5.15 Fixes: QTBUG-74252 Change-Id: I65268fc3d3d0bd282d76c76cf75e495bcc9d1a30 Done-with: Albert Astals Cid <albert.astals.cid@kdab.com> Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* MetaObject: Store the QMetaType of the methodsFabian Kosmale2020-06-025-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | This does the analog of 46f407126ef3e94d59254012cdc34d6a4ad2faf2 for the methods we care about (signals, slots, Q_INVOKABLEs). In addition to the actual QMetaType, we store an array with offsets so that we later can do a mapping from methodIndex to metatype. The newly added QMetaMethod::{return,parameter}MetaType methods can then be used to retrieve the metatypes. This does however require that all involved types are complete. This is unfortunately not a feasible requirement. Thus, we only populate the metatype array on a best effort basis. For any incomplete type, we store QMetaType::Unknown. Then, when accessing the metatype, we fall back to the old string based code base if it's Unknown. Squashes "moc: support incomplete types" and "Fix compile failures after QMetaMethod change" Fixes: QTBUG-82932 Change-Id: I6b7a587cc364b7cad0c158d6de54e8a204289ad4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix a bogus assertLars Knoll2020-05-311-1/+1
| | | | | | | | | advances and glyphIndices can be nullptr's as long as numGlyphs is zero. Change-Id: I29c3764792c1a0ffaafd3393c82a26af65699ab3 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* bmp/ico decoder: fail early for unsupported bit depthsEirik Aavitsland2020-05-301-1/+5
| | | | | | | | | | All the normal bit depths are supported, so no point in trying to go through the decoding code path for others. Avoids wide bitshift warning for claimed depths > 32. Pick-to: 5.15 5.12 Change-Id: I61b72dbbf9558ca28db46f8168339f8174e56997 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
* CMake: Update src\gui\configure.json and the conversion scriptLaszlo Agocs2020-05-291-20/+13
| | | | | | | | | The ANGLE removal's manual configure.cmake changes are now replaced by updating the conversion script's special cases instead. Change-Id: I06317fe0202b25bd9f9524da14e1bb0ccbb30cc1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Regenerate src/guiAlexandru Croitor2020-05-292-71/+91
| | | | | | | | Remove the manual modifications, and let the script do its work and use the .pro file as the source of truth. Change-Id: I510d5487a326d72a9c19e8148ec1daac9a23394b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Move QPlatformBackingStoreOpenGLSupport handling out of platform pluginsTor Arne Vestbø2020-05-292-16/+37
| | | | | | | | Allows them to not depend on QtOpenGL just to provide the default backing store OpenGL support backend. Change-Id: I90d6d9247ce76848d9d03e2d512fb736c81488d3 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Update src/gui/CMakeLists.txtOliver Wolff2020-05-291-14/+5
| | | | | | | The result of running pro2cmake.py Change-Id: Iaaf959069db527c43c8bcdc2cf51e2813bf8d140 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix ExtendedRgb and Rgb encoding comparisonsAllan Sandfeld Jensen2020-05-281-0/+10
| | | | | | | | ExtendedRgb should be treated as Rgb as it can be an automatic upgrade. Pick-to: 5.15 Change-Id: I2942a1067ed5cacb2f60f303f467887cb44c36dd Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* rhi: Harmonize create-destroy API pattern with the rest of QtLaszlo Agocs2020-05-2813-490/+492
| | | | | | | | | | For historical reasons we use build and release instead of create and destroy. This becomes confusing now that more modules in Qt start taking QRhi into use. Migrate to the more familiar naming, so those who have used QWindow or QOpenGLContext before will find it natural. Change-Id: I05eb2243ce274c59b03a5f8bcbb2792a4f37120f Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* rhi: d3d11: Use qstrncpy to avoid MSVC warningLaszlo Agocs2020-05-281-4/+2
| | | | | | | | | | | | | Switch strncpy to qstrncpy, which internally uses strncpy_s with MSVC. This way we will not get the following warning: qrhid3d11.cpp(933): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Change-Id: Iaed86033b0fc182e68804f311ac382c93c72abda Reviewed-by: Christian Strømme <christian.stromme@qt.io>
* Move windowsuiautomation API support into QtGuiFriedemann Kleint2020-05-2716-0/+1841
| | | | | | Task-number: QTBUG-83255 Change-Id: Ibface71931b6384494842ba9744d76f738c5ca85 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move CoreText font engine/database to QtGuiTor Arne Vestbø2020-05-277-0/+2177
| | | | | | Task-number: QTBUG-83255 Change-Id: Id34ed1759fdebbb1d09e51009f0370736002167c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Move FreeType font engine/database to QtGuiTor Arne Vestbø2020-05-277-0/+2814
| | | | | | Task-number: QTBUG-83255 Change-Id: If6be7057d6bd25b34acd99e18658744161985ed0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Never include windows.h directly in Qt codeLars Knoll2020-05-271-1/+1
| | | | | | | Please use qt_windows.h instead, so we avoid having min/max defined. Change-Id: Ic1b29666c427bf24556da5494af45ee5953ae827 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Do a proper convert from [0-65535] to [0-255] on QColor integer readsAllan Sandfeld Jensen2020-05-271-29/+30
| | | | | | | | | We need to divide by 257 and round to undo our setter. Pick-to: 5.15 Fixes: QTBUG-84168 Change-Id: I55d2a8d1d05125d9560309cd77459cc94a92030f Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QTextMarkdownImporter: allow nesting text span formattingShawn Rutledge2020-05-271-0/+2
| | | | | | | | | | | | | | | The bold+italic combination indicated by ***triple stars*** requires this; but it enables combinations of italics, bold, strikeout, anchor text (and associated link formatting), image alternate text, and inline code formatting (monospace). A code span overrides the formatting from surrounding spans (which might be a bug to fix in another patch, if we compare to how md2html formats code nested in bold-italics for example), but the format stack restores state when any char format span ends. Task-number: QTBUG-81306 Pick-to: 5.15 Change-Id: I289556fa53de400eb50a4d159b9b344eafc517da Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>