summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Doc: Document QWaylandExtensionClient as internalPaul Wicking2025-11-071-0/+5
| | | | | | Task-number: QTBUG-140629 Change-Id: I358e07ac2a92128c8c99afdd300e737cc14e9f8d Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Remove global MSVC warning suppression for C4996Pavel Dubsky2025-11-071-3/+0
| | | | | | | | | | The pragma disabling warning C4996 ("function may be unsafe") is no longer needed, as the file no longer uses deprecated CRT or Win32 APIs that trigger it. Removing the suppression ensures any future use of unsafe APIs will surface properly during compilation. Change-Id: I3ad9f9b9e25057221ad4a2c7c42c85d8c1942306 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Http2: Better handle :status issuesMårten Nordheim2025-11-071-4/+10
| | | | | | | | | | | | | The :status pseudo-header is required, and must be a 3-digit integer. If it's missing or malformed, we must fail the request. Additionally, HTTP/2 doesn't carry a reason phrase, so stop trying to extract one. Pick-to: 6.10 6.8 Change-Id: Ib98580dbf56766c41f08ec03ed75ea6a4728bc0e Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mate Barany <mate.barany@qt.io> Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io>
* WindowsVistaStyle: change WinFontIconEngine to take a QStringChristian Ehrlicher2025-11-063-5/+4
| | | | | | | | | | WinFontIconEngine is using QPainter::drawText() which takes a QString. To avoid the conversion from QChar to QString on every paint, store the glyph as QString directly and modify the ctor accordingly. Pick-to: 6.10 Change-Id: Ide1d03f3859d96c567ab734aceb0baee857f30f4 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Windows11Style: don't crop checkbox with no text - fix rect adjustmentChristian Ehrlicher2025-11-061-1/+1
| | | | | | | | | | | QRect::moveLeft() is moving to absolute values, not relative. This amends 17571b6db4eafbda4dec454f486b1f11b1bf95ec Pick-to: 6.10 Task-number: QTBUG-135628 Change-Id: I2f7a2d226fd7dbd7a911d13c61bbbe50f9040734 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add Windows-specific QUniqueHandle type for HDCPavel Dubsky2025-11-063-0/+83
| | | | | | Change-Id: I83f6e8b39b446405487672cbcdd5c1ebaf2569c0 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* macOS: Disable window-modal native message boxes on TahoeTor Arne Vestbø2025-11-061-0/+5
| | | | | | | | | | | | | | | | | | | | | The combination of a window-modal NSAlert, and the message-box being shown via exec() instead of open(), which results in us spinning a nested [NSApp run], causes the dialog buttons to stop responding to mouse events (while keyboard navigation works fine). As this problem isn't seen for any other dialogs shown as sheets, and the NSAlert still generally responds to mouse events (such as text selection), this problem seems limited to NSAlert, so we disable the native message box in this specific case. [ChangeLog][macOS] Window-modal message boxes are no longer backed by native NSAlerts on Tahoe, due to a bug that prevents the alert from responding to mouse events for its buttons. Fixes: QTBUG-141689 Pick-to: 6.10 6.8 6.5 Change-Id: I6fb24b84ce3d6fb14cfbce4a38079b67626239a8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Http: Set error to 'TimeoutError' for a transfer timeoutMårten Nordheim2025-11-062-3/+12
| | | | | | | | | | | | | | | | | | When transferTimeout was added for QNAM it was implemented in terms of calling abort(), which is fine, it does what it needs to do. But it sets OperationCanceledError, which is correct but misleading since it's the same as for a user-initiated abort. [ChangeLog][QtNetwork][QNetworkAccessManager] The error set when a request times out due to QNetworkRequest::setTransferTimeout() has been changed to QNetworkReply::TimeoutError, to disambiguate from the previously used QNetworkReply::OperationCanceledError. Pick-to: 6.10 Fixes: QTBUG-96165 Change-Id: Ibb2f28637f034190fb125630f96aa004c3634fef Reviewed-by: Mate Barany <mate.barany@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Add support for stateful deleters in QUniqueHandlePavel Dubsky2025-11-061-10/+93
| | | | | | | | | | | | | | | This change updates QUniqueHandle to follow the std::unique_ptr model, introducing a Deleter type that can be stateful. The deleter is stored using CompactStorage, allowing stateless deleters to incur no additional cost through empty base optimization. This enables handle traits to define custom deleters that carry any required context when releasing resources (for example, ReleaseDC needing both an HDC and an HWND). Change-Id: I961744569b776ad7e22780bfe81a04d6051a6194 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Add missing property docsPaul Wicking2025-11-065-0/+152
| | | | | | Task-number: QTBUG-140629 Change-Id: I8e032655d6a211c042d86baa8bab27cc0b34cb9f Reviewed-by: David Boddie <david.boddie@qt.io>
* qpa/wayland: fix handling textinput's focus objectInho Lee2025-11-061-4/+6
| | | | | | | | | | | Amends c57da9bb0a2d475b72024997657e250d171dcbaa (which is a5ed02659fc78a8f85bac314baf007bfaf30c6f3 in qtwayland) setFocusObject should disable the current surface. Fixes: QTBUG-141475 Pick-to: 6.10 Change-Id: Id5ff55829cad9b8c6c914331d86a1ac4f8fe55ae Reviewed-by: Liang Qi <liang.qi@qt.io>
* Tweak recognition of abbreviations to cope with some odditiesEdward Welbourne2025-11-061-1/+22
| | | | | | | | | Most zone abbreviations are all-uppercase, as was assumed, but there are a few locales that have a single lower-case letter in one zone's abbreviation(s). Change-Id: Ia2799477b15e2a66a23fde55bddff11c40c0e1a2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make QTZP::findLongNamePrefix() cope with zones unknown to CLDREdward Welbourne2025-11-061-30/+11
| | | | | | | | | | | | | | | | | | | | | | | | The backend may know about zones for which our most recent CLDR update lacked data, for example because one has been added to the IANA database recently, as has happened for America/Coyhaique in release 2025b. Because findLongNamePrefix() was working with a local sui generis type to hold details by which to look up an IANA ID in the CLDR tables, if it found a zone that matched for the locale's region format, it had to find the index of that zone in the tables to fill in the sui generis type's field, even though that was only used to look up the IANA ID later. That lookup failed if the IANA ID wasn't in the CLDR tables. So switch to using a NamePrefixMatch to hold details in the final region format search, so that we can simply store the ID rather than an index that might not exist. Add the new zone that triggered this to test data and fix alphabetic order in its list while I'm about it. Amends commit 2edd9286cf386675be76032424248e60216f6331 (6.10). Pick-to: 6.10 Change-Id: I7c4850f8d368460852c7d19801ee80cf25ccf7e8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Correct return-type for operator=() on timezone backend typesEdward Welbourne2025-11-061-8/+8
| | | | | | | | | | | | | They're all deleted anyway, but should return reference to their assigned type - not bool. Amends commit 8c0dcf14d8eaf8df7afe0b51e6957dc9131ebdfc (6.9). Pick-to: 6.10 Change-Id: If38878f81b84ac8a495f8abc3e860427b8096057 Reviewed-by: Mate Barany <mate.barany@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Fix QUtcTimeZonePrivate::displayName()'s handling of :00 checksEdward Welbourne2025-11-061-3/+7
| | | | | | | | | | | Its kludge to prefer a full-length offset over a localized shorter one that's equivalent was only considering the case of trimming :00 once from the full-length one, without considering the case of trimming the same from the alternative. Compare the result of trimming all :00 from both when deciding whether they're effectively equivalent. Change-Id: I090c7a5a8c50e1aa4419bdca936e9d65bda030f6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QUtcTimeZonePrivate: use OffsetName rather than ShortName in fallbackEdward Welbourne2025-11-061-1/+1
| | | | | | | | | | | | | | | | | | | | | When we don't find the given offset in the utcDataTable[], we fall back on usign isoOffsetFormat(). We've previously been using ShortName, which drops all :00 fields from the name. However, utcDataTable[] gives whole-hour offsets with their minutes field, despite it being :00. Thus a 15-or-16 hour offset was skipping its minutes field (as the utcDataTable[] has no entry for them) but all smaller offsets included their zero minutes field. Make the handling of these outliers more compatible with utcDataTable[] by switching to OffsetName, which still omits the :00 seconds field, for whole-minute offsets, while including the :00 minutes field for whole-hour offsets. [ChangeLog][QtCore][QTimeZone] Fixed-offset zones with non-standard offsets are now named more compatibly with those with standard offsets. This should only be visible for whole-hour extreme offsets (over 14 hours, not used by any real zone since the 1800s). Change-Id: I06eda4f3cb88fb00106aee7ed5b7f499106b51b0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* rhi: add support for depth clamping in QRhiGraphicsPipelineAurélien Brooke2025-11-0610-3/+61
| | | | | | | | | | | Depth clamping can be useful for techniques such as shadow mapping or rendering skyboxes where geometry may extend beyond the near plane. [ChangeLog][RHI] Added support for depth clamping in QRhiGraphicsPipeline. Change-Id: I6bedc9f8ce22363ac559a7caaf157071bd00fa76 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* SBOM: use consistent github tags for pcre2Kai Köhne2025-11-061-1/+1
| | | | | | Pick-to: 6.8 6.10 Change-Id: I1fde5c3c8f1921cf4382ac2df8b3395aaf98019d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Windows11Style: adjust painting of selected marker in QListViewChristian Ehrlicher2025-11-051-24/+52
| | | | | | | | | | The marker for the currently selected item is drawn inside the rounded rect, not before. Therefore the geometry for a listview item has to be adjusted a little bit. Pick-to: 6.10 Change-Id: Ie09560dd611a81738b242210667852299ca13a47 Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* Windows11Style: implement SP_LineEditClearButtonChristian Ehrlicher2025-11-052-0/+10
| | | | | | | Use the 'Clear' icon from the asset font for SP_LineEditClearButton. Change-Id: Ic378e99630333a180dadcafdb1b8f2ecf14f4094 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Windows11Style: don't clip the groupbox checkmarkChristian Ehrlicher2025-11-051-0/+13
| | | | | | | | | The checkmark drawn in the QGroupBox is clipped on the top. Therefore move the subControlRect for SC_GroupBoxCheckBox 1 pixel down. Pick-to: 6.10 6.8 Change-Id: Id5ce68c4310711dae875d7629aed331ecc279028 Reviewed-by: Wladimir Leuschner <wladimir.leuschner@qt.io>
* Testlib: clean up misleading signature in invokeTestTim Blechmann2025-11-061-10/+3
| | | | | | | | | invokeTest always returned `true`. so the error handling code is misleading and had no effect. Changing the signature to return `void`, fixing the doc string and removing the unused error handling code. Change-Id: I63f7740e37233a68838df122848da6b64f4843db Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Core: Provide non-broken implementation of QVariant{Ref|Pointer}Ulf Hermann2025-11-052-1/+283
| | | | | | | | | | We need to store the pointed-to value so that it stays stable even if the original is iterated further. Task-number: QTBUG-140181 Pick-to: 6.10 6.8 Change-Id: I59891210577e58f7360019d436b3985b4f9a4cd1 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* a11y QFontDialog: Consistently set lists as buddiesMichael Weghorn2025-11-051-1/+1
| | | | | | | | | | | | | | | As is done for the "Font" and "Font style" labels, also set the corresponding list as the buddy of the "Size" label and not the line edit. This ensures consistent behavior and that the label gets announced by screen readers when using the Tab key to navigate through the dialog and the "Size" list view receives focus. Fixes: QTBUG-141703 Change-Id: Idb228a665e2f73c13516a8b4c1ebb63ba6d28b25 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* a11y: Let QAccessibleTable subclass QAccessibleWidgetV2Michael Weghorn2025-11-052-3/+5
| | | | | | | | | | | | | | | | | | Since QAccessibleTable and subclasses are a11y implementations for item views and those are widgets, subclass QAccessibleWidgetV2 instead of only the more generic QAccessibleObject (which is itself a QAccessibleWidgetV2 base class). This e.g. ensures that all accessibility properties set on the QWidget (like a manually set accessible name or description) or the QAccessible::Labelled relation to a QLabel for which the widget was set as the buddy are set correctly. Task-number: QTBUG-141703 Change-Id: I7f5f1e6d3f84c97e541517baada637d533fa3e00 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Refactor QRangeModel implementation classes to prepare for adapter APIVolker Hilsheimer2025-11-052-25/+49
| | | | | | | | | Make various aliases and helpers public or available for an adapter API. Add a getter for the implementation type, and predicates to help identify whether a range is a list, table, or tree. Change-Id: I6e699873876e3d3b39f38c4b6a522334c4c25f90 Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* QRM: don't go through vtable for functions marked as finalVolker Hilsheimer2025-11-051-4/+4
| | | | | | | | | | | | row/columnCount are both final, so there's no need to go through the vtable of QRangeModel when calling them from within the implementation type. Amends b85a29b57cdb68b614cf6104aebb777cfc5206b0, but no need to cherry- pick back into 6.10. Change-Id: I150844218d9037d30182d7084b2547c3f60bb34d Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
* Windows: Add default SysMenu Buttons in case of no CustomizeWindowHintWladimir Leuschner2025-11-051-10/+13
| | | | | | | | | | | | | In case of no specified Qt::CustomizeWindowHint add the WindowStyles for Minimize/Maximize/Close buttons to the toplevel window. Also transfer the old maximized/minimized state in applyWindowFlags to the new WindowStyles. Fixes: QTBUG-132522 Pick-to: 6.10 Change-Id: Iea9413673be239c0feab7dfcdc5ef5c8209512c5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* macOS: NFC normalize selected file in QNSOpenSavePanelDelegateTor Arne Vestbø2025-11-051-1/+1
| | | | | | | | | | | | | | | | | | Apple systems with HFS+ were traditionally storing file names in NFD normalized form, while Qt prefers to operate in NFC, as that is more likely to match what the user types with the keyboard. Nowadays APFS is truly normalization preserving, in that it stores the filename in whatever normalization the filename was written as, but this still means we might encounter filenames in NFD form, so we keep normalizing file paths to ensure Qt and user code can do file name comparisons without needing to deal with potentially different normalizations. Pick-to: 6.10 6.8 6.5 Task-number: QTBUG-122624 Change-Id: Iaed71c8194b44c82b21a0bb3ff34fdd81c8325bd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Add styled SVG versions of PNG diagramsDavid Boddie2025-11-054-12/+134
| | | | | Change-Id: I6ef2f7f8f88f6019cfba98d7d45c5cc1b7d0cc82 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* a11y: Report editable/readonly state for QAbstractSpinBoxMichael Weghorn2025-11-052-0/+11
| | | | | | | | | | | | | | | | | | | | Depending on whether a QAbstractSpinBox is readonly, either report QAccessible::State::readOnly or QAccessible::State::editable. Reporting the editable state also prevents the Orca screen reader on Linux from announcing an obsolete cached value when the spin box value changes, as Orca doesn't cache and reuse the text if the object is editable. [1] Extend the existing spinbox a11y test accordingly. [1] https://gitlab.gnome.org/GNOME/orca/-/blob/be3ca7e458291e73c2551b8b575a684462b9ead2/src/orca/generator.py#L1087-1096 Fixes: QTBUG-141245 Pick-to: 6.10 Change-Id: I85011e157df98a4b8735ed5b3c60adbe34a9d950 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* WindowsIconEngine: Correct icon for go-previous, go-next & process-stopWang Zichong2025-11-061-3/+3
| | | | | | | | | | | | | | | | | | | | | go-previous and go-next icons are usually for "Back" and "Forward" navigation button. Currently these two are using an icon that looks like for media players instead of navigation. This patch change these icon to use the "Forward" and "Back" icon from Windows' symbol font to align to the same icon used by explorer.exe Additionally, this patch adds a process-stop icon that used by Windows' Task Manager. References: https://learn.microsoft.com/en-us/windows/apps/design/style/segoe-fluent-icons-font https://learn.microsoft.com/en-us/windows/apps/design/style/segoe-ui-symbol-font Pick-to: 6.10 Change-Id: Ic253da51cc28f564d201c47500968f2827a50d72 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add QDateTime and QTimeZone support to VxWorksKarim Pinter2025-11-054-7/+8
| | | | | | | | | | | | | VxWorks has ICU and through that the QDateTIme and QTimeZone can be supported. The change modifies the CMakeFile so the qtimezoneprovate_icu.cpp is built on VxWorks. Also changes the necessary ifdefs. Adds TZ=UTC env var to COIN. Fixes: QTBUG-131115 Pick-to: 6.8 6.10 Change-Id: Ib2ffacdb93117e203a0192741e0dc4b62388eada Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Add missing \internal markers to QCalendar backendsEdward Welbourne2025-11-055-0/+5
| | | | | | | | | | | | | | These should have been present since QCalendar's addition in 5.14, but were accidentally omitted (with two exceptions). Amends (all 5.14): * commit 3e771a8b09cd5e46c4aff0e8bd28b946dd4e3fa5 * commit e71bf9d5c7b14fb3e3b7f970440060c5fd9f9059 * commit aa8393c94fea01a4806b204fd3aa343a4e90666b Pick-to: 6.10 6.8 6.5 Change-Id: I759a1439a8fbbd72104547e9eccf37e7b5e31b07 Reviewed-by: David Boddie <david.boddie@qt.io>
* QString: use QStringAlgorithms<QString>::replace_helperAhmad Samir2025-11-051-78/+7
| | | | | | | This de-duplicates the code. Change-Id: Ia40131ccd0d45e32794ea059c8fe9e310df98812 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QString: replace(): use qsizetype instead of size_t for match indicesAhmad Samir2025-11-051-7/+7
| | | | | | | To ease using QStringAlgorithms mehtods in the next commit. Change-Id: Ia523c0dcc818dac6c1a1e9eecab71134a227e04c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* wasn: a11y - No longer connect tabindex to visibilityEven Oscar Andersen2025-11-051-8/+1
| | | | | | | | We want to have the option to set tabindex for individual items later, and it should not be necessary. Change-Id: If5cf81356e49476152ee084a86b585acfa0d5676 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* rhi: call glInvalidateFramebuffer with correct FBOMorten Sørvig2025-11-052-0/+3
| | | | | | | | | | | | | | Calling invalidateFramebuffer with the default framebuffer causes an error/warning on WebGL: WebGL: INVALID_ENUM: invalidateFramebuffer: invalid attachment Record which FBO to invalidate and bind that when calling glInvalidateFramebuffer. Task-number: QTBUG-140891 Change-Id: Icd4acc5f265e99289d4a3039413ea0dfef929270 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* a11y: Make QColorLuminancePicker keyboard accessibleMichael Weghorn2025-11-051-0/+17
| | | | | | | | | | | Make QColorLuminancePicker (used in QColorDialog) keyboard accessible: Allow it to receive focus and adjust the value by 1 when the Up/Down key is pressed. Fixes: QTBUG-141666 Change-Id: I5a46e80dca25219f5d98c210a8a1f045ed202bf0 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* a11y: Make QColorPicker keyboard accessibleMichael Weghorn2025-11-051-0/+23
| | | | | | | | | | | | | Make QColorPicker (used in QColorDialog) keyboard accessible: Allow it to receive focus and move the position indicating the currently selected color by one pixel in the corresponding direction when one of the arrow keys is pressed. Task-number: QTBUG-141666 Change-Id: Iab724f6c576327ddec8d5f1c06f58509b5e0f4c8 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QColorPicker: Remember position, not hue and satMichael Weghorn2025-11-051-29/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of remembering the hue and saturation value and calculating those when setting a new position by using the mouse, instead do the opposite: Remember the position and calculate the hue and saturation values on demand. The motivation is that translating a position to a hue/sat value and then translating that back to a position doesn't necessarily restore the exact original position, but may result in a position that slightly differs (e.g. shifted by a pixel, because multiple pixel positions can represent the same hue/saturation values). While that's not a big deal when it results in the position getting set to one that's a pixel away from the exact position that was clicked using the mouse, it would become a problem with an upcoming commit that allows to move the position using the keyboard: Pressing/Holding an arrow key should result in the position moving in the expected direction, but that wouldn't be the case with the previous logic. (In a first attempt without this commit in place, it would result in the position moving more or less diagonally towards the top-left for the Left and Up keys, upwards for the Right arrow key and left for the Down key.) In the ctor, call base class method QWidget::adjustSize to ensure that the widget has its final (fixed) size, which allows creating the pixmap there. However, still adjust QColorPicker::resizeEvent to calculate the new position based on the hue/saturation values that can be calculated using the current position and previous widget size. (In a quick test using GammaRay [1] to manually change the widget size, this results in the position getting updated as expected, i.e. the cross is then shown at the new position of the currently selected color.) Make sure to keep the hue and saturation values within the valid range in QColorPicker::huePt and QColorPicker::satPt. Previously, QColorPicker::setCol(int, int) would take care of it, but QColorPicker::setCol(const QPoint &) no longer calls this method now, but now the former calls the latter. Therefore, move some logic from the former to the latter so it still gets run in both cases. Keep previous logic to not emit the QColorPicker::newCol signal when the QColorPicker::setCol(int, int) setter gets called as the QColorDialog implementation relies on that. [1] https://github.com/KDAB/GammaRay Task-number: QTBUG-141666 Change-Id: I72d9cfd8920e4b608baa07c5728ee358eee55823 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QColorPicker: Move signal emission to QColorPicker::setColMichael Weghorn2025-11-051-2/+1
| | | | | | | | | | | | | | Instead of emitting the signal in both callers of the QColorPicker::setCol variant taking a QPoint, emit the signal from that method. This also prepares for further uses of the method in an upcoming commit without having to take care of manually emitting the signal in those as well. Task-number: QTBUG-141666 Change-Id: I2a373ebdb983e458d8393effc13bc4abf582fb25 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QNetworkInfo[glib]: use better glib signal for netlinkSamuli Piippo2025-11-051-1/+2
| | | | | | | | | | | | Amend f43d8ad3dff9aa37530d160ed1de49f765e21a6c and switch to using `notify::network-available` which avoids unneccessary signals that `network-changed` can produce. The original netlink issue got fixed in Glib 2.86. Pick-to: 6.10 Change-Id: I04b19815f03ce7444e4bdf67e2f3a06406520925 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Ilya Fedin <fedin-ilja2010@ya.ru>
* XCB: Remove the native X11 painting engineThiago Macieira2025-11-0521-8372/+6
| | | | | | | | | | | | | | | | | | | | | This is a reversal of commit 07942adb77f60738a6043665673d51fc7991233b, which brought the older Qt 4 engine back into Qt 5. This code is unmaintained and has only had minor bug-fixes applied to it since it was brought back. It doesn't remove the querying of the XRender extension that the commit above added, because it's required by the Cursor support. [ChangeLog][Important Changes] The experimental X11 Native Rendering engine has been removed. Use of this engine required enabling it at compile time with a CMake option and enabling at runtime with an environment variable. See https://lists.qt-project.org/pipermail/development/2025-October/046674.html Change-Id: If8757da6a23ece83f216fffd6a27aec1f26716eb Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QThread: optimize currentThreadId() for WindowsThiago Macieira2025-11-041-20/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | We don't need to read the TIB's pointer from the TIB to access the TIB. We are already accessing the TIB. Drive-by fix the incorrect comment about an internal compiler error with intrisics for MinGW. It's not an ICE: it just doesn't have those MSVC- specific intrinsics in the first place. Confirmed by debugging tst_QThread::currentThreadId() (or any application, for that matter): Thread 1 hit Breakpoint 2.2, QThread::currentThreadId () at C:/Qt/qt6/qtbase/src/corelib/thread/qthread.h:164 164 Qt::HANDLE tid; // typedef to void* (gdb) fin Run till exit from #0 QThread::currentThreadId () at C:/Qt/qt6/qtbase/src/corelib/thread/qthread.h:164 0x00007fff3d4edc64 in QAdoptedThread::QAdoptedThread (this=0x70c090, data=0x70f1c0) at C:/Qt/qt6/qtbase/src/corelib/thread/qthread.cpp:105 105 Qt::HANDLE id = QThread::currentThreadId(); Value returned is $5 = (void *) 0x73f8 (gdb) p (void *)GetCurrentThreadId() $6 = (void *) 0x73f8 Pick-to: 6.10 6.8 Change-Id: I11c4401a495df9a43b7efffd270732847e431ae1 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QImageTextureGlyphCache: don't try to paint on empty imageChristian Ehrlicher2025-11-051-0/+2
| | | | | | | | | | | | When a QGraphicsView has a very small scale factor, textureMapForGlyph() might return an empty QImage. Using a QPainter on such an image will result in warnings (e.g. when running tst_qgraphicsview matrix). Therefore add a check for this and bail out early. Pick-to 6.10 6.8 Change-Id: I3c2e1458db3ae2fd3309d79856c2e49b8e63a1c7 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Windows11Style: ItemView only draw background for alternate itemsChristian Ehrlicher2025-11-051-6/+9
| | | | | | | | | | | PE_PanelItemViewRow must only draw the background for rows with alternate background due to historical reaons. Pick-to: 6.10 Task-number: QTBUG-135418 Change-Id: I072dc867c6af8c87b96698a3696d8efd3bac43b1 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QLineEditIconButton: avoid creating a QPixmap from QIconChristian Ehrlicher2025-11-051-4/+3
| | | | | | | | | | | | | paintEvent() created a temporary QPixmap from QIcon which is was painted on a rect() which might be different from the pixmap size. QPainter::drawPixmap() then stretches the icon which makes the whole thing blurry. Fix it by using QIcon::paint() instead. Pick-to: 6.10 6.8 Change-Id: Ie441b1a31e5a3c3d34d3418b4d2db5d2857ff6ac Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QTabBar: Speedup insertTab() on hidden QTabBarChristian Ehrlicher2025-11-051-1/+1
| | | | | | | | | | | | | When a QTabBar is hidden there is no need to re-calculate the layout and the hovered index as this is done in the showEvent. This amends 02164b292f002b051f34a88871145415fad94f32 Pick-to: 6.10 6.8 Fixes: QTBUG-141187 Change-Id: I03d621e7cd429c928325c64c803bcaa08d9a7a77 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QCommonStyle: avoid conversion to/from QImageChristian Ehrlicher2025-11-051-6/+6
| | | | | | | | | | | In generatedIconPixmap() a QPixmap was converted to a QImage just to paint something on it. After this it was converted back to a QPixmap. Draw directly on the QPixmap instead to avoid the conversions. Pick-to: 6.10 6.8 Change-Id: I89c7792819edc34d005fd102e0a96739a0c403e6 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>