summaryrefslogtreecommitdiffstats
path: root/src/widgets
Commit message (Collapse)AuthorAgeFilesLines
...
* | Doc: Fixed broken links introduced by "OS X" doc change.Jerome Pasion2014-09-112-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | -qtdoc repo uses "OS X" instead of "Mac OS X" and this caused broken links. -more comprehensive change still needs to be done but the new name is used in the page to maintain consistency. At least within the page or class. Change-Id: I8a5650046fc0413cbb18359b743ecd30fd62e417 Task-number: QTBUG-40759 Reviewed-by: Martin Smith <martin.smith@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Update QOpenGLWidget paintDevice devicePixelRatio when recreating fboDyami Caliri2014-09-101-0/+1
| | | | | | | | | | | | | | | | The QOpenGLWidget's paintDevice needs to update devicePixelRatio when changing screens. Change-Id: Iec6e7157f22ff99e04f81347cbbf70f3fc3ff424 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Expose screen change event to widgets so that they can check the dprLaszlo Agocs2014-09-103-4/+28
| | | | | | | | | | | | | | | | | | | | Unlike ordinary widgets, the ones that have OpenGL framebuffers must know about screen changes because the device pixel ratio may be different on the new screen. Add an internal event, ScreenChangeInternal, as the counterpart to WindowChangeInternal. Change-Id: I5e55999838e4c0284e7d9832299f7cc6b541ee3f Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | Add an option to share between TLWsLaszlo Agocs2014-09-101-6/+19
| | | | | | | | | | | | Task-number: QTBUG-41191 Change-Id: I510d1631926ed0d9e371703d22229aed92432aa6 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Fix garbled resize with QOpenGLWidget when using multi-sampling.Dyami Caliri2014-09-101-0/+1
| | | | | | | | | | | | | | | | If you configure QOpenGLWidget to use sampling, the 'resolvedFbo' isn't updated during resizing. This leads to garbled views. Change-Id: I9f9265520134bcf12436778773507df936c5fbb6 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | Windows styles: Avoid theme.rect recalculationMaks Naumov2014-09-082-2/+0
| | | | | | | | | | | | | | | | | | In both cases theme.rect calculated right after the "sub & SC_ScrollBarSlider" test. Change-Id: I9fa0c4e1327e68b4184674a13e7a4bf362f8deff Reviewed-by: Adam Majer <adamm@zombino.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Improve QOpenGLWidget docs regarding fb preservationLaszlo Agocs2014-09-081-1/+17
| | | | | | | | | | | | | | | | QOpenGLWindow already has some notes regarding this. It must be mentioned in QOpenGLWidget too. Change-Id: I0af90c9410a1c44cb9dd9ce58aa0371a58c57f65 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | Fix a conversion of coordinates of a TouchBegin eventAlexander Volkov2014-09-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | To convert coordinates to a parent's coordinate system one should translate them by an offset of a child widget relative to it's parent widget. QRect::moveCenter() doesn't translate, it sets the coordinates of the touch point's center to this offset. Change-Id: I9d823784803bd1448c0d665944090674d3ff518b Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Bump version of QWidget geometry serialization to 2.0Friedemann Kleint2014-09-051-6/+6
| | | | | | | | | | | | | | | | | | | | It was decided not to port the handling of the saved screen size to Qt 4.8, so, bump the major version to ensure Qt 4.8 bails out. Task-number: QTBUG-38858 Change-Id: Ia870519553172cd383830d9a722b0fada180ee1b Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* | GraphicsView: Fix resolvePalette() for QGraphicsItem's childrenMaks Naumov2014-09-052-3/+3
| | | | | | | | | | | | | | Use a proper function for that. Change-Id: I166ce44b8987d522cb01bae57009b2b862851b92 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* | Windows styles: Scale hardcoded-values according to DPI.Friedemann Kleint2014-09-056-72/+85
| | | | | | | | | | | | | | | | | | Factor out functions to return the fixed values and scale those. Task-number: QTBUG-38993 Task-number: QTBUG-38858 Change-Id: I59c70a206eae76bf08bc2aeb5cda5a740cd3d6dc Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* | Windows styles: Add device pixel scaling for system metrics.Friedemann Kleint2014-09-055-297/+291
| | | | | | | | | | | | | | | | | | | | | | | | Metrics obtained from the system must be scaled down when device pixel ration scaling is in effect. Factor out functions to return the device pixel values which might still be used for drawing. Task-number: QTBUG-38993 Task-number: QTBUG-38858 Change-Id: I6b90629e4979436bbb46f8c1fa1ee2253ada7ece Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* | QCommonStyle: replace a QPolygon with a QPoint[] (IV)Marc Mutz2014-09-041-10/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | No need to allocate dynamic memory for a fixed-size point array when QPainter has a (QPoint*,int) overload. This one is a bit more complicated, as the QPolygon was returned from a helper function, so I wrapped the array in a minimal std::array-like StaticPolygonF. Together, these four QPolygon -> QPoint[] changes result in ca. 4.5K text size reduction for libQtWidgets. Change-Id: I082f199d5edb7a7782173fe3748220f373edac8a Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | QCommonStyle: replace a QPolygon with a QPoint[] (III)Marc Mutz2014-09-041-20/+23
| | | | | | | | | | | | | | | | No need to allocate dynamic memory for a fixed-size point array when QPainter has a (QPoint*,int) overload. Change-Id: Ie1eecd376a52b73572998ba253a032deaa0daaf9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | QCommonStyle: replace a QPolygon with a QPoint[] (II)Marc Mutz2014-09-041-6/+7
| | | | | | | | | | | | | | | | No need to allocate dynamic memory for a fixed-size point array when QPainter has a (QPoint*,int) overload. Change-Id: Ifdf8224ddffe06ef7848562023e372e2c32b9ad6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | QCommonStyle: replace a QPolygon with a QPoint[] (I)Marc Mutz2014-09-041-10/+12
| | | | | | | | | | | | | | | | No need to allocate dynamic memory for a fixed-size point array when QPainter has a (QPoint*,int) overload. Change-Id: I50c69103bba47e9f6de4f5616e8f40fee522ddc2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Improve accelerator stripping in accessible widgetsFrederik Gladhorn2014-09-043-7/+14
| | | | | | | | | | | | | | | | | | | | | | When we strip the & we should also report the hotkey. In addition only strip labels when they are buddys and try not to remove ampersands from all kinds of random text. This fixes https://bugs.kde.org/show_bug.cgi?id=338282 Change-Id: I401281cd9ff43b23a3923ad9909ca9c469b59506 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Accessibility: Improve line boundary helper functionsFrederik Gladhorn2014-09-041-6/+0
| | | | | | | | | | | | | | | | | | These functions are supposed to make it easy for third parties (and QLineEdit) to implement the textAt/Before/AfterOffset functions. Before the functions were ignoring newlines completely and thus only somewhat useful. Change-Id: I7136b9502a7fa6f8ad9ad7236761a34c1a7fd4da Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | QMdiSubWindow: Keep event filter on system menu over its lifetime.Friedemann Kleint2014-09-041-2/+1
| | | | | | | | | | | | | | | | | | | | | | QMdiSubWindow::eventFilter() is supposed to close the sub window on a double click on the menu icon. However, it did not receive the double click event since it removed itself when the menu was hidden, which happened before the double click was delivered. Task-number: QTBUG-25179 Change-Id: I5e7fb02dda26ceab12e8b7554fc604066a0a3136 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Speed up the removal of items from a QGraphicsSceneDimitar Asenov2014-09-031-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using a linear index, all items in a scene are stored in a QList. While adding new items is a constant operation, removal requires a traversal through the entire list. This is especially problematic when the scene contains millions of items and many of them are removed, which requires a linear search for each item, resulting in a very slow operation. Moreover, this behavior is actually inconsistent with the current documentation which states for the linear index: "Adding, moving and removing items, however, is done in constant time." With this change, the list is sorted once an item needs to be removed. The item to be removed is then found using binary search. To reduce the overhead of sorting the list is not sorted from scratch. First the newly inserted items are sorted and then the two parts of the list are merged. [ChangeLog][QtWidgets][QGraphicsScene] Speed up the removal of items when using the linear index. Change-Id: I28708622605d7fb0fac656df1f9b2f2fa3136759 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* | Revert "Speed up the removal of items from a QGraphicsScene"Dimitar Asenov2014-09-032-39/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit bf2ec0183cb62034f2a4e700b7ab741371fcb106. That patch changed the way the linear index works in QGraphicsScene in order to speed up item removal. That patch occasionally rebuilt the index by recursively exploring all items in the scene, starting with the top level. Further testing revealved that in some circumstances, rebuilding the index in this way can be slow, thereby significantly slowing down the index compared to the unpatched version. The original patch only exists in the qt 5.4 branch and has not been released. Change-Id: I081dbcdcc86196ef382466c3e800a33eab9a5b79 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* | Widgets: remove pointless assignmentsMaks Naumov2014-09-033-8/+4
| | | | | | | | | | | | | | | | | | Assignment of a value was two times successively for same variable while the variable itself is not used between these assignments. Change-Id: I3c457e3af0505d32a64f6c8576b458cd15a951e5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | QSwipeGestureRecognizer: Use qAbs() to check distances.Friedemann Kleint2014-09-031-1/+1
| | | | | | | | | | | | Task-number: QTBUG-15768 Change-Id: Idc6c6687430365a015fb2c15f4e4dcae6a687f9f Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Fix drawing of QLineEdit's actions when Qt::AA_UseHighDpiPixmaps is set.Friedemann Kleint2014-09-021-1/+1
| | | | | | | | | | | | | | Task-number: QTBUG-40525 Change-Id: Iff3c1e16d9c44e1d36b8f83ca96b48bff05ab1f0 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* | Windows XP, Vista styles: Share dynamically resolved theme functions.Friedemann Kleint2014-09-024-202/+191
| | | | | | | | | | | | | | | | | | | | Extract a struct containing the function pointers and derive QWindowsXPStylePrivate from it, so that both styles can use them. Remove duplicated variables. Task-number: QTBUG-38858 Change-Id: I7c2c665b5930c56ffdf33c5185720f71517d146c Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* | Fix radioButton height for Windows styleMaks Naumov2014-09-021-1/+1
| | | | | | | | | | | | Change-Id: I755ed32f7458fec0fcbc5243d25fb1f6ecf46492 Task-number: QTBUG-32420 Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* | Fix no-opengl buildLaszlo Agocs2014-09-014-0/+21
| | | | | | | | | | | | Change-Id: I577bd5d10e52571c95c9e646327264cf95ac6eb1 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Add Q_ENUMS to QStyle's enumerations.Friedemann Kleint2014-08-291-0/+3
| | | | | | | | | | | | | | | | | | This makes it significantly easier to obtain debug output for style functionality. Task-number: QTBUG-38858 Change-Id: I19edc834a55fa369b6830abeb4697ae5e5ded995 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | QListView: Catch stack overflow on mutual scrollbar calculation.Christoph Schleifenbaum2014-08-291-2/+32
| | | | | | | | | | | | Task-number: QTBUG-39902 Change-Id: Ie850371098070e8ce485d5cb122aa89c18d97359 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | QLineEdit: Disable standard key 'cut' when there is no selection.Friedemann Kleint2014-08-281-1/+1
| | | | | | | | | | | | Task-number: QTBUG-40477 Change-Id: I0741a1a769c9e7e0d19e8aec231acc29461d44ea Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | Adapt the Vista-style wizard for device pixel ratio scaling.Friedemann Kleint2014-08-282-28/+57
| | | | | | | | | | | | | | Task-number: QTBUG-38993 Task-number: QTBUG-388583 Change-Id: I1e3f1b5c82b9751e7f2aa6aed3d89d4388ecf1ce Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* | QWidget::save/restoreGeometry(): Check screen size.Friedemann Kleint2014-08-281-4/+27
| | | | | | | | | | | | | | | | | | | | | | Bump minor version of the saved geometry and append the screen width in version 1.1. Use that to check and bail out should large differences occur due to scaling or different levels of DPI awareness. Task-number: QTBUG-38858 Change-Id: Iad8ae0705297118b4237c9a41469cb97d7eab549 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
* | Close popup widgets when wheel events are receivedFriedemann Kleint2014-08-261-0/+9
| | | | | | | | | | | | Task-number: QTBUG-40656 Change-Id: I134b07705744c23af9718dee486ab5e9ad4352cf Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Send QWindow::focusObjectChanged when clearing widget focusTor Arne Vestbø2014-08-261-0/+5
| | | | | | | | | | | | | | | | | | | | We do this for QWidget::setFocus(), but were missing a call on clearing the focus widget. Since QWidgetWindow::focusObject() will fall back to returning itself if there is no focus widget, we need to pass the result of window->focusObject() to the change signal instead of 0. Change-Id: I52a5519a19bb20e74b4a7c2a1abc9d47e2ea1315 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Clean up QAccessibleTabBarFrederik Gladhorn2014-08-261-9/+24
| | | | | | | | | | Change-Id: Ic0949e4d76a7332ef1a42c93a06a0e4515c1192d Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Remove QAccessibleToolButton::textFrederik Gladhorn2014-08-262-25/+0
| | | | | | | | | | | | | | | | | | This function actually is worse than just calling QAccessibleButton::text which it already does. It would mess up the shortcut handling in addition to that. Change-Id: I56cb95a44624da4c5fccb43e6835f6012a083337 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Remove unused variableFrederik Gladhorn2014-08-261-1/+0
| | | | | | | | | | Change-Id: I0414d7bab89371f330d5b0cfa88758e3f1668f32 Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
* | QDataWidgetMapper: micro-optimize clearMapping()Marc Mutz2014-08-261-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QList<WidgetMapper>::takeLast() is a needlessly expensive operation (involves copying a QPersistentModelIndex and a QPointer). Instead of looping over takeLast() until empty, reverse-iterate over the list and call removeEventFilter(), then clear the whole list. We reverse-iterate to preserve existing behavior. Also, since the original code popped the WidgetMapper instance before calling removeEventFilter(), we move the whole list into a local copy before iterating. There's little chance that a removeEventFilter() call will cause reentrancy into QDataWidgetMapper, but better safe than sorry. This and the previous change together save 448 bytes of text size in libQt5Widgets. Change-Id: I1bfe907751659f31e618aa05bbb7b840f0aa61f4 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | QDataWidgetMapper: micro-optimize handling of the widget mapMarc Mutz2014-08-261-17/+17
| | | | | | | | | | | | | | Don't use index-based iteration, but use iterators. Change-Id: I57c9582aed644fc58ced1a1af940dcd20d11d970 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | fix a camel case include guard macroTasuku Suzuki2014-08-261-3/+3
| | | | | | | | | | Change-Id: I502ecf6c862f101e426536e11f5c466ed3419946 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Support QOpenGLWidget and QQuickWidget on AndroidLaszlo Agocs2014-08-251-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It gets somewhat complicated due to the fact that a RasterGLSurface window (i.e. any widget window since 5.3) may behave either like an OpenGLSurface or a RasterSurface, and the expected behavior may change on each backingstore sync. This does not fit designs where the platform window implementation is separated and there is different behavior for raster and GL windows. Therefore QAndroidPlatformOpenGLWindow is now made capable of behaving like the raster one, based on a flag communicated from the widget stack via QWindowPrivate (since the plugin knows nothing about widgets). This means that widget windows that do not have renderToTexture children (QOpenGLWidget, QQuickWidget) will go through the raster path, while the ones that have will behave like an OpenGL window with the actual rendering happening in QPlatformBackingStore::composeAndFlush(). The surface type is RasterGLSurface in both cases nonetheless. Task-number: QTBUG-37907 Change-Id: I6f9261fc0fd993afcda7f30d379c5410069033d3 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | OS X: Fix pan gestures.Morten Johan Sørvig2014-08-251-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The QPanGesture recognizer requires single-point touch events. The touch implementation in Qt 4 would test Qt::WA_TouchPadAcceptSingleTouchEvents and forward single touch events if set. Making this work in Qt 5 is a little bit more involved since the platform plugins don't know about widgets. Change the Cocoa touch implementation to send single-point touch events to QWidgetWindow windows only. Make QApplication forward single-point touch events only if the target widget has the Qt::WA_TouchPadAcceptSingleTouchEvents attribute set. Task-number: QTBUG-35893 Change-Id: I68712a5e3efb4ece7a81ca42f49c412e525eeb3a Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
* | Accessibility: QSpinBox should not have any childrenFrederik Gladhorn2014-08-199-14/+188
| | | | | | | | | | | | | | | | | | | | On both iOS and Android it is very confusing to be able to move the focus to both, the line edit and the outer frame that is the spin box. For Linux this fixes an issue that orca would not read the value correctly after pressing the up/down buttons. Task-number: QTBUG-39861 Task-number: QTBUG-39442 Change-Id: I73c50c91e9021324c52d168d537afd0ea719a48f Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* | Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4Giuseppe D'Angelo2014-08-195-12/+29
|\ \
| * | Merge remote-tracking branch 'origin/5.3' into 5.4Frederik Gladhorn2014-08-125-12/+29
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Manually included changes from 3a347a4e70e5a10ee92dd2578316c926a399e894 in src/opengl/qgl.cpp. Conflicts: src/opengl/qgl_qpa.cpp src/plugins/platforms/android/androidjnimain.cpp Change-Id: Ic26b58ee587d4884c9d0fba45c5a94b5a45ee929
| | * Fix build due to missing include when using a minimal config.Sérgio Martins2014-08-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QStyle is used, so include it explicitly instead of relying on indirect inclusions. Build was broken when using a bunch of QT_NO_ defines, not sure which one triggers the failure though. Change-Id: Ib07218521648448576f1b55d2d91d1711c048f09 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * Fix build with QT_NO_DRAGANDDROPSérgio Martins2014-08-111-9/+9
| | | | | | | | | | | | | | | | | | | | | viewportSizeHint() should be defined outside the QT_NO_DRAGANDDROP ifndef Change-Id: I7c23c820ea58b3614eb030dc5b0f290ad891ccb1 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * Font Database: Add support for private, system UI font familiesGabriel de Dietrich2014-08-112-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We introduce QPlatformFontDatabase::isPrivateFontFamily() to allow testing for private, system UI font families. Both QFontComboBox and QFontDialog need to filter out those private font families which, by definition, should be hidden from the end user. (The textedit example had to be updated to fix the issue where the default font would be private. In 5.4, we will be adding an equivalent, public API in QFontDatabase, and a better solution for the textedit example and QTexEdit in general). In particular, on OS X and iOS, private fonts are used for the system UI font. Those have their font family name prefixed by a dot. QCoreTextFontDatabase knows about this, and makes sure those are tested positive as private font families. In order to have a cleaner layer separation, we moved the QPA theme font resolution from the platform theme classes into QCoreTextFontDatabase for both Cocoa and iOS QPA plugins. In both cases, we use CoreText's CTFontCreateUIFontForLanguage(), that nicely maps to the HITheme API we were using so far on Mac. That means one HITheme dependency less. We also cache the font descriptors we get for these font for each time QCTFD::populateFamilies() gets called. (While not common, this currently happens in auto-tests, like tst_QFontDatabase, and could happen in actual applications -- specially when adding and removing application fonts.) Change-Id: Ic6f0b60f9f597afee1a43596a669742dc546b97f Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
| | * QFileDialog docs: remove misleading sentence about static functionsShawn Rutledge2014-08-061-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Native dialogs are used whenever possible, not just when the dialog is instantiated via the static function. Task-number: QTBUG-36657 Change-Id: Ibad67114e67f8e2f9956037f8469542c72bfd8ea Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | | Fix composition for windows with alphaLaszlo Agocs2014-08-132-6/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While we will cover the entire surface with our textured quads, the clear is still necessary in order to make top-levels with TranslucentBackground render correctly: We don't want to blend transparent areas with undefined content that is in the surface's framebuffer. Blending is problematic for alpha values. We now prevent the blended alpha from being written out. This ensures that in examples like qquickviewcomparison, where the backingstore image contains an alpha of 0.5 while the QQuickWidget texture 1.0, the result is still an alpha value of 1.0 in the final image. Writing out an alpha of 0.5 would break on systems where windows get an alpha buffer by default. hellogl2 can now take a --transparent parameter which makes the QOpenGLWidget being cleared to transparent in order to verify it works in combination with Qt::WA_TranslucentBackground. The swapped red and blue problem is also corrected. RGBA8888 does not need swizzling. The only format that needs this is RGB32. Task-number: QTBUG-40716 Change-Id: I54a9fd3a91a1b59575b38cdb908835315514e40f Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>