summaryrefslogtreecommitdiffstats
path: root/src/widgets
Commit message (Collapse)AuthorAgeFilesLines
* Use the local file APIs to save/load files on WASMMikolaj Boc2022-08-121-8/+2
| | | | | | | | | | | | QFileDialog::saveFileContent, QFileDialog::getOpenFileContent are now using local file APIs to access files on any browser that passes a feature check. The feature is thoroughly tested using sinon and a new mock library. Task-number: QTBUG-99611 Change-Id: I3dd27a9d21eb143c71ea7db0563f70ac7db3a3ac Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Doc: Remove repetition of word in textPaul Wicking2022-08-101-3/+3
| | | | | | | | | | | While dropping the extra "does", rewrite as "doesn't" as common contractions are preferable in particular in negations. Reflow the remainder of the paragraph. Fixes: QTBUG-105517 Pick-to: 6.4 6.3 6.2 5.15 Change-Id: I1ad2d5ca753cb1d3a38cf96bdd6e52d2af80151b Reviewed-by: Andreas Eliasson <andreas.eliasson@qt.io>
* Documentation: Fix "Using Model Indexes" in Model View Programming guide to workFriedemann Kleint2022-08-092-29/+40
| | | | | | | | | | | | | The code introduced by 54d5ca0c2766e915c960fa437cee6c20a324c1a7 did not work since the variables parentIndex/numRows were local to the lambda and the outer code would not wait. Move the widgets population into the lambda to fix this. Modernize the remaining code a bit. Pick-to: 6.4 6.3 6.2 Change-Id: I2a09878987df9edb9ff04f0ac4ad82af1a8b52c8 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* QCommonStyle: use logging categoriesTimur Pocheptsov2022-08-091-4/+8
| | | | | | | | | Use qCWarning instead of qWarning, to give users more control over debug output if needed. Fixes: QTBUG-105332 Change-Id: I830dd160f75eb9885d80b80336bfb27da676e4bc Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Doc: Drop parentheses around \since commandPaul Wicking2022-08-091-2/+2
| | | | | | | | | | | The closing parenthesis ends up in the output. As the fix to QDoc is rather involved, clean up the docs to fix the symptom. Pick-to: 6.2 6.3 6.4 Fixes: QTBUG-105339 Change-Id: I35a1e7615125781d950649213c08e5760b0235e7 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
* QGraphicsScene::render: fix int/qsizetype mismatchThiago Macieira2022-08-081-3/+3
| | | | | | | | | | | Also suppresses the warning that we may be trying to allocate -1 items in call to new[]. Task-number: QTBUG-105388 Task-number: QTBUG-105471 Pick-to: 6.2 6.3 6.4 Change-Id: Ie4bb662dcb274440ab8bfffd17096d3606354647 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Declare logging category exported in tst_QDockWidgetAxel Spoerl2022-08-051-1/+1
| | | | | | | | | | | | The logging category lcQpaDockWidgets was explicitly declared in tst_QDockWidget. That failed to complile on static builds. This patch replaces the explicit declaration with Q_DECLARE_EXPORTED_LOGGING_CATEGORY(lcQpaDockWidgets, Q_WIDGETS_EXPORT) Pick-to: 6.4 6.3 6.2 Change-Id: I1cad0e672313be84297eeddf992f6cafe9a35977 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix a date-time with invalid QTime to use a valid oneEdward Welbourne2022-08-041-1/+1
| | | | | | | | | Using QTime(), which is null and invalid, as the time field of a QDateTime is supported, but is ill-advised. Use the start of the day instead. Change-Id: If30db046218926f7634bbcfcf35cd000d7f6535f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix initialization of QDateEdit and QTimeEditEdward Welbourne2022-08-041-2/+2
| | | | | | | | | | | | Since 6.3 these use Qt::UTC as time-spec but I neglected to take that into account in QDateTimeEditPrivate::init()'s construction of a QDateTime from the QDate or QTime. This amends commit c00ee2f31013e99c79b820a0db57003c110a5510. Fixes: QTBUG-105322 Pick-to: 6.3 6.4 Change-Id: I11dec9808a54cf7da401b1734a9a2812f5fd2e63 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix handling of invalid input to Q(Date|Time)Edit constructorsEdward Welbourne2022-08-041-2/+2
| | | | | | | | | | | Change to match how QDateTimeEdit()'s overloads taking a QDate or QTime work, substituting a default value in place of an invalid one. This fixes one surprising anomaly in a recently-extended test, so that it now only fails the way I expected. Task-number: QTBUG-105322 Change-Id: Ied4da6160b7efe70990f956798fb826b5b36d8bb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add license headers to cmake filesLucie Gérard2022-08-0312-30/+35
| | | | | | | | | | | | CMakeLists.txt and .cmake files of significant size (more than 2 lines according to our check in tst_license.pl) now have the copyright and license header. Existing copyright statements remain intact Task-number: QTBUG-88621 Change-Id: I3b98cdc55ead806ec81ce09af9271f9b95af97fa Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Evaluate TranslucentBackground when (re)creating the windowLaszlo Agocs2022-08-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem is reported in combination with the new 6.4 way of handling texture-based widgets, but this looks like something that has always been missing: Setting WA_TranslucentBackground changes the QWidgetWindow's format, and this is done upon calling setAttribute(). That's good for most cases, but the changes to the QWindow's format are lost when the window is destroyed and then the widget gets another window later. This is not that common, but can happen. For example, if a top-level widget is parented under something else, and then later it is parented to null again, so that it is toplevel once again, background transparency can be lost because nothing re-evaluates the WA_TranslucentBackground flag after the initial setAttribute(), and so the widget's second QWidgetWindow is not set up accordingly (because this new QWindow may not have alpha specified in the QSurfaceFormat which may or may not be a problem, depending on the platform / windowing system) The simple solution is to evaluate the attribute not just when setting it, but also when a new QWidgetWindow is created for the widget. Fixes: QTBUG-104952 Pick-to: 6.4 Change-Id: I92746caea5561544f90395d5473ac28d43143924 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove qvariant_p.hThiago Macieira2022-07-271-1/+0
| | | | | Change-Id: I3859764fed084846bcb0fffd1704480153e34973 Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>
* Add nullptr guard in QStyleSheetStyle::drawPrimitive(PE_PanelLineEdit)Axel Spoerl2022-07-271-5/+8
| | | | | | | | | | | | | | | | | Drawing PE_PanelLineEdit in QStyleSheetStyle with the default argument widget = nullptr causes a segfault. drawPrimitive tries to fall back to a container widget's render rule and therefore calls containerWidget() - which crashes when called with nullptr. Container widget fallback is pointless when drawPrimitive() is called with widget == nullptr. This patch skips it in that case. Fixes: QTBUG-104917 Pick-to: 6.4 6.3 6.2 Change-Id: I09e57dccfebb81a308944c233846d5b9ef58819e Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Deliver non-client area mouse events to WASM windowsMikolaj Boc2022-07-271-2/+2
| | | | | | | | | | QWasmCompositor now delivers non-client area mouse events to windows as it should, which fixes a lot of issues with window manipulation. One of such issues is re-docking of dock widgets. Fixes: QTBUG-105092 Change-Id: I9de45b7e1b1a80b64387031eb0cc0b31a4be2571 Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* Sync and assert StandardPixmap enums in QPlatformTheme and QStyleAxel Spoerl2022-07-222-0/+5
| | | | | | | | | | | | | | | | Add missing enum values in QPlatformTheme::standardPixmap to sync with QStyle::standardPixmap changes from: 785d2b9d0728bbbc0d2a92b7d4186a3114d54128 aa5a595a98f1af4a514485268a18e6cb9cfec783 Add enum values NStandardPixmap at the bottom of both enums as well as an assertion in QStyle constructor that these values are identical. Add omitvalue for NStandardPixmap in QStyle (QPlatformTheme enum is not documented). Pick-to: 6.4 Change-Id: I9ee528d032c445bed5aeace716893b2af8367de2 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QAction: add QT_DEPRECATED_VERSION_6_0 to deprecated methodsIvan Solovev2022-07-211-1/+9
| | | | | | | | | And fix all the new warnings. Task-number: QTBUG-104857 Pick-to: 6.4 6.3 6.2 Change-Id: I2a5791f495575d71d2344429aca3363f9922e31b Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QShortcut::parentWidget(): Add QT_DEPRECATED_VERSION_X_6_0Ivan Solovev2022-07-211-1/+1
| | | | | | | | | | | | | And fix the usage that raised a deprecation warning. As a drive-by: fix the deprecation declaration of QShortcut::id() to use QT_DEPRECATED_VERSION_6_0 instead of pure Q_DECL_DEPRECATED. Task-number: QTBUG-104857 Pick-to: 6.4 6.3 6.2 Change-Id: I5710127864909ce9352c7428e6aabbc89981b8f2 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Add -Wshorten-64-to-32 to headerscleanTor Arne Vestbø2022-07-211-3/+3
| | | | | | | | Fix existing warnings by casting to the appropriate type. Change-Id: Ic44d2a71e1a2e508199dbb46bea7a19e183ec42c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QCommandLinkButton: Let the style set the text colorsVolker Hilsheimer2022-07-191-3/+3
| | | | | | | | | | | | Make the hack less hacky by letting the style polish the widget (it does already for the font) to set a dynamic property that the button can test. Use the available palette entires ButtonText and BrightText to set the dark blue and bright blue colors, rather than hardcoding them in the widget code. Pick-to: 6.4 Change-Id: Idfb3b7d18e456a9d14af4962cf723e12ff1c3370 Reviewed-by: Doris Verria <doris.verria@qt.io>
* Fusion: better support dark themes in the dialVolker Hilsheimer2022-07-171-2/+6
| | | | | | | | | | A UI in dark mode will have a dark background. Pick a light color to draw the notches. Since in the mac style, the dark mode's 'dark' color is lighter than the 'light' color, pick whichever is lighter. Pick-to: 6.4 Change-Id: I333ea95b80d7a19504000877337b28839b4a8b9f Reviewed-by: Doris Verria <doris.verria@qt.io>
* Styles: fix typos in the docLaszlo Papp2022-07-151-4/+4
| | | | | Change-Id: I4b4ee0be40f7cef8bae41d763eaf4c1822e91c43 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* CustomStyle doc: fix code indentationLaszlo Papp2022-07-141-1/+1
| | | | | Change-Id: I8ef0ff5a499f796ebf76447caab27ff6b2556570 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QSystemTrayIcon: remove unused deprecated call to QAction::associatedWidgets()Ivan Solovev2022-07-131-1/+0
| | | | | | | | | | This call was added in bcaff2b06fc46fce8a3ae6d613c025c8d097229c but does not seem to be necessary. So just remove it. Task-number: QTBUG-104857 Pick-to: 6.4 6.3 6.2 Change-Id: I2068bd10c6de211dd31f09ff978e8b8ba9cb70db Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Fix wrong debug output upon creation of floating dockwidget tabsAxel Spoerl2022-07-131-1/+1
| | | | | | | | | | | When a floating dock is created, a qCDebug message is logged to indicate the hovered dock widget. By mistake, the target pointer to the floating tab is dumped, which is nullptr at that moment. This patch corrects the debugging output. Pick-to: 6.4 6.3 6.2 Change-Id: I317f057ef4b2d8fe508be687152bcede61c22f46 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Do not use QExposedEvent::region() in internal codeIvan Solovev2022-07-131-5/+2
| | | | | | | Task-number: QTBUG-104857 Pick-to: 6.4 6.3 6.2 Change-Id: I5ee41802ecc4d6291aaaa1f0efddd20027c1c1e4 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Improve widget painting under dpr>1 by enabling smooth pixmap scalingEirik Aavitsland2022-07-127-20/+25
| | | | | | | | | | | | | | | | | Smooth scaling of icons etc. give far better visual results, particularly with fractional dpr scaling. So enable this generally in QStylePainter, and make more of the relevant widgets use QStylePainter instead of QPainter directly. Differences can be seen in the widgets examples, e.g. textedit, gallery, stylesheet (Pagefold), mdi. Pick-to: 6.4 6.3 6.2 Task-number: QTBUG-96223 Fixes: QTBUG-101058 Change-Id: I3c34a455d097e5f6a6a09d3b020528b4fbda4d85 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QKeySequenceEdit: Add a finishing key combinations propertyLaszlo Papp2022-07-093-1/+47
| | | | | | | | | | | | | | | | | | | | | Different shortcut editors seem to have different preferences. By default, QWidget seems to utilise Tab, Backtab, Return and Enter for navigation purposes. However, some shortcut editors would like to be able to record these keys as part of combinations to use in the application. Therefore, leave it with the application developers to decide what key combinations they would like to use for finishing the key sequence edit. This should provide enough flexibility for application developers to customize their shortcut editor behavior. [ChangeLog][QtWidgets][QKeySequenceEdit] Added a property to allow defining the finishing key combinations. Fixes: QTBUG-103844 Fixes: QTBUG-103843 Change-Id: Id84644086ca7a4f11618d510e59698a43735b99b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QFontDialog: Check if native dialog is in use before usingTor Arne Vestbø2022-07-081-8/+16
| | | | | | | | | | | | | A call to platformFontDialogHelper() will lazily create the helper, and is not enough to distinguish whether the helper is actually in use. The explicit nativeDialogInUse flag also takes properties like DontUseNativeDialog into account, which may be set after the dialog is first constructed. Fixes: QTBUG-104696 Pick-to: 6.2 6.3 6.4 Change-Id: Ia00a39bba4aaae8c99ae0cdd6543c2e451f72ea6 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QWidget: use WA_InputMethodEnabled when ImEnabled is not implementedRichard Moe Gustavsen2022-07-085-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | In Qt 6.3, a check for WA_InputMethodEnabled was removed in QWidget, to support IM queries also for read-only widgets (7c6e4af48). This caused a regression on iOS, which made the input panel open for widgets that didn't support IM at all. A patch was merged that solved the regression (3b12305575), but it didn't take the widget attribute into account. Since not doing so has the potential to cause regressions, this patch will modify the affected code once more, so that we instead fall back to test WA_InputMethodEnabled when ImEnabled is not implemented. This will match closely to the way ImEnabled was implemented in Qt 6.2. Since we, with this change, now require that either ImEnabled or WA_InputMethodEnabled is set, our own input widgets will fail to support IM text selection when they're read-only, since they actually don't implement ImEnabled. This patch will therefore also make sure that we do so. Task-number: QTBUG-104527 Pick-to: 6.4 6.3 Change-Id: I70ad910aec38d0a74f4dd7d3115d3c45c16d2b3b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Make it possible to check the accepted state of touch events in testsShawn Rutledge2022-07-082-5/+7
| | | | | | | | | | | | | | | | | | | | | | | QTouchEventSequence simulates a QPA touch event, potentially containing multiple points. (Despite the name, it only calls qt_handleTouchEvent() once, so it cannot really send a sequence of events; however, one event can contain multiple touchpoints.) Delivery is synchronous, and we keep return values through the QWindowSystemInterface::handleTouchEvent() template functions; so the remaining step is to return a bool from qt_handleTouchEvent(), so that we can return a bool from commit(). This allows tests to see the same perspective as a platform plugin can: check whether the event was accepted or not, after delivery is complete. Some tests in Qt Quick need to start doing that, to enforce correct behavior in QQuickDeliveryAgent. [ChangeLog][QtTestLib] QTouchEventSequence::commit() now returns a bool so that tests can check whether the event was accepted during delivery. Pick-to: 6.4 Task-number: QTBUG-104656 Change-Id: I9cf87909a3f847dedbdeca257013e309ac19cf0d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QListview: PageDown/Up infinite loopTang Haixiang2022-07-051-3/+9
| | | | | | | | | | | When item.height > viewport.height, the next item is not found correctly, resulting in an infinite loop. In this case, move directly to the next item. Pick-to: 6.4 6.3 6.2 Change-Id: I67a40a079ca9dd9189bf84ae550758c685b83d75 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QDockWidget warning log for an unexpected situationThorbjørn Lund Martsum2022-07-051-1/+4
| | | | | | | | | | It didn't enter the original patch because it would prevent it to be backported to 6.2 and 5.15. Pick-to: 6.3 6.4 Change-Id: I9af30b86b98d5d101b0784cf45781cf46d216c6d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* qgraphicsitem_cast: replace 0 with nullptrMarc Mutz2022-07-021-2/+2
| | | | | | | | | While headerscheck doesn't detect this (generic code), this might trigger warnings in user code. Pick-to: 6.4 6.3 6.2 5.15 Change-Id: I6183323d0a1c73b021699d4c4afa2d1fcf71aad2 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Harden drag and drop handling in widget windowLaszlo Agocs2022-07-011-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | User code in an event handler can do arbitrary things, including operations that lead to destroying the QWidgetWindow. An example is what the autotest does: reparenting the top-level widget to under another top-level upon the drop. Internally this leads to destroying the drop target's QWidgetWindow as the widget is now a child, not a top-level. In fact some of the existing drag and drop handling code seems to be prepared to handle the case of having the drag target widget destroyed in the user's event handler during a drag-move. But none of it is prepared for having the QWidgetWindow destroyed upon returning from forwardEvent(). The associated bug report has the same root cause, it is just popping up now via the new 6.4 behavior: adding a QOpenGLWidget to a widget hierarchy upon a drop leads to getting a new QWidgetWindow (if the window only had regular raster widgets before). To solve this, avoid touching members on 'this' after the forwardEvent(). It looks like the handlers for mouse events follow this pattern already, no member data is touched after forwarding events (not sure if that is intentional or just incidental but it is the safe solution, even if this is not feasible everywhere, but ideally input events should take this into account). Fixes: QTBUG-104596 Pick-to: 6.4 6.3 6.2 Change-Id: I96c704cadcd799fc5619b776e939dfdf313a27dd Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QLayout: add className() to a warning messageAhmad Samir2022-07-011-10/+11
| | | | | | | | | | | | | | | | Since objectName() isn't always set, the className() makes it slightly easier to find and fix the issue. Also unify some wording "produce a warning", which is generic enough to fit: print warning in terminal print warning in logviewer (if you're unlucky and have to use Windows?) print warning in system journal (if you're unlucky have to use binary systemd journal logs) Pick-to: 6.4 Change-Id: I7522d65666cb5829c33c45039b8646dd535e21ea Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* IM: Don't let all widgets support IM by defaultRichard Moe Gustavsen2022-07-011-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A new property Qt::ImEnabled was added in Qt 5.3. Since the already existing widgets with IM support (3rd party included) didn't implement this property, QWidget got the fall back logic that if a widget was queried for Qt::ImEnabled, and the returned QVariant was invalid (the widget didn't implement it), we would, for backwards compatibility with Qt 4, return "true" (meaning that the widget supports IM). But a side effect from this fallback logic, is that now any widget that doesn't implement ImEnabled (or input methods at all) report that they support IM. This will confuse platforms like iOS, which uses ImEnabled to decide if the input panel should show, and if text selection tools should be enabled. The result is therefore that if you click on a QPushButton, the input panel will open. This patch will implement a more careful strategy to check if a widget implements IM, if ImEnabled is missing. Rather than saying that all widgets that don't implement ImEnabled supports IM, we now require that the widget also returns a valid QVariant for Qt::ImSurroundingText. We assume then, that a widget that doesn't do so will anyway not be in need of input method support from the platform. Fixes: QTBUG-104527 Pick-to: 6.4 6.3 6.2 Change-Id: Ib391fd1daae92c4325e9ccb59730fbdd7c9328fc Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix QDockWidget move between screens with different dprThorbjørn Lund Martsum2022-06-292-1/+30
| | | | | | | | | | | | | | | | | | | When partly moved back and forth between screens with different dprs (device pixel ratios) unexpected jumps and size changes could occur. (See the linked issue for details) This patch maps global coordinates to native ones and vice versa (in QDockWidgetPrivate::mouseMoveEvent()), so that the calculated position is the right coordinate on the right screen. Pick-to: 6.4 6.3 6.2 5.15 Fixes: QTBUG-104205 Change-Id: I0e59792a946e0444fed2e2b857f2f8b140afc9b7 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Don't trigger qBound assert in QExpandingLineEditVolker Hilsheimer2022-06-291-1/+1
| | | | | | | | | | | Ignore the original width if it's larger than maximum. Fixes: QTBUG-104383 Fixes: QTBUG-104565 Pick-to: 6.4 6.3 6.2 Change-Id: Id86d4f5bd1d50304d95c4711f1989f4dae416b69 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QKeySequenceEdit: Finish editing when losing focusLaszlo Papp2022-06-282-0/+11
| | | | | | | | | | Do not wait for the timer to time out. When losing the focus, finish editing immediately since we cannot really edit it further without focus. Pick-to: 6.4 Change-Id: If42926ef9b06fbea7592a294f48ea5e99ef57ef8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QStyledItemDelegate: Fix the event filter docLaszlo Papp2022-06-281-2/+3
| | | | | | | | | | | | The class actually also avoids filtering the tab and backtab keys for the mentioned classes: QTextEdit and QPlainTextEdit. So, the documentation needs to be extended to cover the hidden gems. Pick-to: 6.4 6.3 6.2 Change-Id: Id993b055a105c6cfe5ee57be3863ce8bff448396 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QKeySequenceEdit: add a maximumSquenceLength propertyLaszlo Papp2022-06-273-8/+60
| | | | | | | | | | | | | | | At the very least, it would be important to have a single combination key sequence. This is commonly seen in keyboard shortcut editors where QKeySequenceEdit is very much applicable. [ChangeLog][QtWidgets][QKeySequenceEdit] Added a maximumSquenceLength property. Done-with: Marc Mutz <marc.mutz@qt.io> Change-Id: Id7fa5a8593eb150fa67d7e89308492c0a200ac36 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Support markdown in QTextEditMimeData; fix pasting trailing newlinesShawn Rutledge2022-06-241-5/+18
| | | | | | | | | | | | | | | | | | | - Since 4edcea762d9ce334c4c1a78234c90c118b81da87 the dropsite example shows markdown if available; and now it shows that when we do DnD of a selection from the richtext example, text/markdown is available. - If we artificially make html unavailable, copying and pasting between widget-based rich text editors uses markdown. In case markdown writer output contains unnecessary backticks due to monospace fonts getting used, the workaround from 1ad456c908467212bc30223a69eb7524b64b86e1 is applied. Pick-to: 6.4 Task-number: QTBUG-76105 Task-number: QTBUG-103484 Change-Id: Ie6ca4dbb450dbc36b3d09fd0df1ae5909aaebca7 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Add qthelp dependency to gui and widgetsLuca Di Sera2022-06-221-1/+1
| | | | | | | | | | | | | | | | The documentation for both gui and widgets defines members of the "helpsystem" group, which definition is given in qthelp. Due to recent changes in QDoc that automatically link a class page to its owning group, it is now required for those project to be dependent on qthelp, so that it is possible to retrieve the necessary linking information for the group definition. Hence, such a dependency was added. Change-Id: Id9399e76bbe10fb9ae0c05d637006b5cdc0b742b Reviewed-by: Topi Reiniö <topi.reinio@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Replace a few more QString::fromLatin1() with _s literalsShawn Rutledge2022-06-221-2/+2
| | | | | | | | | Wasn't done in 7d79b94db7debdd1896d1912e3052d5950b05df5 Pick-to: 6.4 Task-number: QTBUG-98434 Change-Id: Id9c26f6b58e2c96a1c5f72154b735b136c57debc Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Add ExpandCollapse UI Automation pattern to combo boxesAndré de la Rocha2022-06-222-0/+12
| | | | | | | | | | | Also add support to expandable/expanded states to QAccessibleComboBox in widgets. QtDeclarative will still require updates so that QML combo boxes report the expanded/collapsed state and react to UIA actions. Task-number: QTBUG-103591 Pick-to: 6.4 6.3 Change-Id: Iff8ba5e3143778ce17998dbe7f5f76cae658dc19 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add QStringDecoder::decoderForHtml()Lars Knoll2022-06-211-5/+4
| | | | | | | | | | | | | | Now that QStringConverter can handle non UTF encodings through ICU, add a way to get a decoder for arbitrary HTML code. Opposed to QStringConverter::encodingForHtml(), this method will try to create a valid string decoder also for non unicode codecs. Pick-to: 6.4 Change-Id: I343584da1b114396c744f482d9b433c9cedcc511 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QGraphicsScene: respect that items can override selection changesVolker Hilsheimer2022-06-201-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | QGraphicsItems may override itemChange to prevent certain attribute changes. Overriding ItemSelectedChange this way is explicitly documented to be allowed. However QGraphicsScene::clearSelection did not test whether items were in fact deselected after the call to setSelection, and always cleared the stored set of selected items. Fix this by checking the actual selected state of the item as we iterate over them, and store those items that are still selected in a set that becomes the new selectedItems set (which will be empty if no item overrides, which is the default). Add a test that also checks that clearing the selection emits the selectionChanged signal correctly (and does not if all selected items block being deselected). Fixes: QTBUG-85474 Pick-to: 6.4 6.3 6.2 Change-Id: I665afc132876e02e6e1061b7be37f4f6e4be418f Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* QAbstractItemDelegate: Remove a duplicate doc entryLaszlo Papp2022-06-201-2/+2
| | | | | | Pick-to: 6.4 6.3 6.2 Change-Id: I02887e6bf5892b4697af2aabcd1f1335e15b4f06 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Make the new setCurrentId the writer for the respective propertyVolker Hilsheimer2022-06-201-1/+1
| | | | | | | | | Amends 2140edaaab0bf61f354db521efca773568becc56. Pick-to: 6.4 Change-Id: Idc1ace4229b8706d9b44f1727105cc9aaab1a86d Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>