summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview
Commit message (Collapse)AuthorAgeFilesLines
* QGraphicsItem::hasFocus() performance regression.Bjørn Erik Nilsen2010-01-201-1/+8
| | | | | | | | Problem was that we always climbed the parent chain to look for a panel item (QGraphicsItem::isActive()) before checking the scene's focus item. Task-number: QTBUG-6749 Reviewed-by: alexis
* Improved performance of translating device coordinate graphics effects.Samuel Rødal2010-01-133-18/+52
| | | | | | | | Don't invalidate the cache if we're only translating and the effect rect is fully contained within the device rect of the painter. Task-number: QTBUG-6901 Reviewed-by: Bjørn Erik Nilsen
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt into 4.6Simon Hausmann2010-01-082-6/+12
|\ | | | | | | | | Conflicts: src/multimedia/audio/qaudioformat.cpp
| * Fix performance regression in _q_polishItems.Alexis Menard2010-01-072-6/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | QSet is a hash internally, using Iterator::begin while erasing elements inside the set might create holes and then the complexity increase. We now use the return value of erase (the next element) so the complexity is linear. For those who create/delete item in the polish event (BAD), _q_polishItem might be slower than the normal call. Task-number:QTBUG-6958 Reviewed-by:olivier
* | Fixes a crash when destroying and creating QApplication.Denis Dzyubenko2010-01-071-4/+6
| | | | | | | | | | | | | | | | Moved the gestureManager pointer to a QApplicationPrivate to make sure if QApplication object is destroyed, QGestureManager pointer is set to zero. Task-number: QTBUG-7029 Reviewed-by: Thiago
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-01-0751-51/+51
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: QIODevice: Fix readAll() Temporary hackiesh solution to prevent BOM in the xml data. Fixed qxmlstream autotest when using shadow builds. Attempt at readding the capital P headers for Phonon Remove special Phonon processing from syncqt. Use the lowercase/shortname.h headers for Phonon includes Fixes a crash when setting focus on a widget with a focus proxy. Update copyright year to 2010 doc: Clarified activeSubControls and subControls. Remove warning "statement with no effect" doc: Clarified that .lnk files are System files on Windows.
| * Update copyright year to 2010Jason McDonald2010-01-0651-51/+51
| | | | | | | | Reviewed-by: Trust Me
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-01-063-4/+15
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2: (42 commits) QBoxLayout::setGeometry would not respect the widget min/max width Revert "QStyleSheetStyle: Fixed some text croped when having padding with native border." Use QFile:rename when moving items in QFileystemModel. Revert "Add GLfloat[2][2] & GLfloat[3][3] uniform setters to QGLShaderProgram" Fix default filter selection when using HideNameFilterDetails option. Don't write out fo:word-spacing if its the default value. Improved initial startup time for a QGLWidget ontop of EGL/X11. Document the QGraphicsView::IndirectPainting flag Display broken symlinks in the filesystem model. Fix typo in autotest testcase name. Fixed a bug with distribution of spans. Make unit test more robust Compile with QT_NO_DOCKWIDGET Removed temporary QGLWidget created during QGLWidget/X11 initialization. Fix test: The bug is now fixed Fix auto-test failure on Windows QScript: Lookup the native setter from the prototype Implement QScript::QObjectDelegate::getOwnPropertyDescriptor fix compilation in GL2 paint engine for Windows Move QGLTextureGlyphCache into it's own file ...
| * Document the QGraphicsView::IndirectPainting flagOlivier Goffart2010-01-062-1/+11
| | | | | | | | | | | | And that the QGraphics{View,Scene}::drawItems function are now obsolete. Reviewed-by: Alexis
| * Merge branch 'QT-2261' into 4.6Jan-Arve Sæther2010-01-051-2/+2
| |\
| | * Fixed a bug with distribution of spans.Jan-Arve Sæther2010-01-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a span required more size than the rows/columns it spanned, the size of the span was not distributed to the rows it spanned. The result was that the size hints of the layout was not correct, causing the layout to be potentially smaller than the spanning item. Task: QT-2261 Reviewed-by: Alexis
| * | Fixes painting artifacts when using CacheBackground in a QGraphicsView.Yoann Lopes2009-12-301-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was that when the background cache was invalidated, it was entirely recreated but only the exposed area of the view was repainted in it, causing the cache to be partly empty in some cases. Now the background cache is always fully repainted when it is invalidated. Task-number: QTBUG-6935 Reviewed-by: ogoffart
* | | doc: Clarified that the scene owns its items and destroys them.Martin Smith2010-01-061-11/+17
|/ / | | | | | | Task-number: QTBUG-6637
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2009-12-181-3/+16
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Fixed QPixmap::load() to not modify referenced copies. Fixes bug when using AnchorUnderMouse for GraphicsView transformation. Make the layout{,AboutToBe}Changed signals in the QSortFilterProxyModel match its source. Make sure mappings are created for columns when indexes newly become parents. NEON configure detection and initial blend function implementations. Optimize QThreadStorage with QVector Add Q_OBJECT to QBalloonTip so it can be intreospected by styles.
| * | Fixes bug when using AnchorUnderMouse for GraphicsView transformation.Yoann Lopes2009-12-181-3/+16
| |/ | | | | | | | | | | | | | | | | | | | | We now automatically enable mouse tracking on the viewport of the GraphicsView when setting AnchorUnderMouse as transformationAnchor or resizeAnchor. Autotest included. Task-number: QTBUG-6835 Reviewed-by: bnilsen
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-multimedia-team into ↵Qt Continuous Integration System2009-12-181-1/+1
|\ \ | |/ |/| | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-multimedia-team: Check if the scene exists before attempting to set its focus item. The "audioinput" multimedia example locks up the audio input/output no audiodevices found using QAudioDeviceInfo::availableDevices on Ubuntu
| * Check if the scene exists before attempting to set its focus item.Michael Brasser2009-12-181-1/+1
| | | | | | | | | | | | | | Prevents crashing when an item involved in the scope chain is set to be visible but it isn't part of a scene. Reviewed-by: Alexis Menard
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public into ↵Qt Continuous Integration System2009-12-161-1/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/qt-s60-public: (31 commits) Fixed qstylesheetstyle benchmark for Symbian Fixed qdiriterator benchmark for Symbian Fixed events benchmark postEvent function Fix for QTBUG-4908 SVG transparency rendering problem. Long informative texts causes messagebox to grow outside of screen area qreal-ization qreal-ization qreal-ization QS60Style: Remove layouts with mirrored information Fixed qgraphicsview autotest build for winscw. Enabled input method update code for all platforms. (ODBC) Fixes segfault when error string is larger than 256 chars. Fixed QGraphicsView benchmark for Symbian. FEP indicator shown in status pane when it should not Skipped the most memory intensive tests in QByteArray benchmark. qreal-ization qreal-ization QS60Style: Theme graphics for QSlider in 3.1 QS60Style: Groove changes caused build break of S60 3.1 Slow spinbox on N95 when using keys Up/Down ...
| * \ Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6-s60axis2009-12-1612-33/+181
| |\ \ | | | | | | | | | | | | | | | | Conflicts: src/s60installs/bwins/QtGuiu.def
| * | | qreal-izationAleksandar Sasha Babic2009-12-151-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using math wrapper functions instead direct call. This gives us top-level control to what (single/double) precision we are effectively using. Task-number: QTBUG-4894 Reviewed-by: janarve Reviewed-by: Kim Motoyoshi Kalland
* | | | Merge commit 'origin/4.6' into 4.6Olivier Goffart2009-12-141-3/+21
|\ \ \ \ | | |/ / | |/| |
| * | | Merge commit oslo-staging-2/4.6 into upstream/4.6Olivier Goffart2009-12-1412-30/+160
| |\ \ \ | | |_|/ | |/| |
| * | | Fix crashes when deleting QWidgets and QGraphicsItems in touch event handlers.Bradley T. Hughes2009-12-111-3/+21
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use QWeakPointer to bail out early if a widget is deleted while we are delivering/propagating a TouchBegin event. In QGraphicsScene, we need to make sure that we clear the scene's active touch points for items that are removed from the scene. This allows us to detect when an item is removed during TouchBegin event delivery/propagation. Unlike QWidget, propagation continues since we use a hit-test instead of the item's hierarchy for propagation. Task-number: QTBUG-6654 Reviewed-by: bnilsen
* | | Fixed bug in graphics effects caching of graphics item hierarchies.Samuel Rødal2009-12-141-2/+9
| | | | | | | | | | | | | | | | | | | | | Make sure to invalidate the cache if the transform of a sub-item changes. Reviewed-by: Bjørn Erik Nilsen
* | | Added InvalidateReason to invalidateCache to optimize effectsSamuel Rødal2009-12-141-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | This lets us ignore the invalidateCache call when the transform of a graphics item with an effect changes, and the cached system is LogicalCoordinates and cached mode is not PadToEffectiveBoundingRect. Reviewed-by: Bjørn Erik Nilsen
* | | Optimize QGraphicsItemEffectSourcePrivate::pixmap() for QGraphicsPixmapItems.Samuel Rødal2009-12-141-7/+11
| |/ |/| | | | | | | | | | | Even for DeviceCoordinate mode we can return the raw pixmap if the graphics item size is untransformed. Reviewed-by: Bjørn Erik Nilsen
* | Fixes Graphicsitem transformation problems when grouping/ungrouping.Yoann Lopes2009-12-111-2/+44
| | | | | | | | | | | | | | | | | | | | | | New transformation properties added in 4.6, such as rotation or transformOriginPoint were not taken into account in addTogroup and removeFromGroup. Autotest and manual test included. Task-number: QTBUG-5071 Reviewed-by: bnilsen
* | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.6Jan-Arve Sæther2009-12-111-3/+8
|\ \
| * | Fixed qgraphicseffectsource autotest.Samuel Rødal2009-12-111-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prevent crashing when asking for a source pixmap in logical coordinates and PadToEffectiveBoundingRect mode. Also, change the expected values for the test that uses LogicalCoordinates and PadToEffectiveBoundingRect mode to reflect that the boundingRectFor() function applies padding in device coordinates (and in this case there is a scale by 2 when drawing the effect). Reviewed-by: Bjørn Erik Nilsen
* | | Add a simple check for a common wrong usage to avoid infinite recursionJan-Arve Sæther2009-12-112-10/+20
|/ / | | | | | | Reviewed-by: Alexis
* | Fix redraw bugs when using graphics effects in device coordinate mode.Samuel Rødal2009-12-105-9/+77
| | | | | | | | | | | | | | | | | | | | QGraphicsEffect::boundingRectFor() needs the source bounding rect in device coordinates. This patch fixes the documentation to reflect this, and fixes some internal usage of boundingRectFor() to ensure it always gets the device rect of the source. Task-number: QTBUG-5918 Reviewed-by: Bjørn Erik Nilsen
* | Doc: The ctor of of QGraphicsLayout might install the layout.Jan-Arve Sæther2009-12-101-0/+4
| | | | | | | | Task-number: QTBUG-6447
* | Fix a crash on the focus chain when removing items from the scene.Alexis Menard2009-12-094-9/+10
|/ | | | | | | | | | | | | | | The crash was because of the dangling pointer set on the tabFocusFirst attribute in QGraphicsScene. A child which was the tabFocusFirst was removed from the scene and fixFocusChainBeforeReparenting was setting the new tabFocusFirst pointer to the parent (since in that example it was the focusNext) but later on the parent was removed also from the scene (due to the recursion of removeItem if you call it with the parent : first children, then the parent itself) and fixFocusChainBeforeReparenting was not called again so if you delete the parent then the scene has the dangling pointer set. Task-number:QTBUG-6544 Reviewed-by:janarve
* Doc: Explicitly mention that QWidget/QGraphicsItem takes ownership of effects.Bjørn Erik Nilsen2009-12-081-0/+2
|
* Remove id property from QGraphicsObjectAlan Alpert2009-12-082-8/+0
| | | | | | | | | | It is not actually useful (exact same READ/WRITE as objectName) and is confusing when used in QML. Task-number: QTBUG-6580 Reviewed-by: andreas Reviewed-by: alexis Reviewed-by: ogoffart
* Fixed memory leaks when removing a QGraphicsEffect from a QGraphicsItem or ↵Yoann Lopes2009-12-072-17/+7
| | | | | | | | | | | | | | QWidget with setGraphicsEffect(0). The effect was not deleted in that case, problem solved for both QGraphicsItem and QWidget. Autotest included. Task-number: QTBUG-5917 Reviewed-by: bnilsen
* Merge commit 'origin/4.6' into 4.6Olivier Goffart2009-12-041-1/+1
|\
| * Merge commit 'c0b81480b2909b18ac15bdd124a562ae005c2f41' into origin-4.6Olivier Goffart2009-12-041-2/+2
| |\
| * | Fix for virtual keyboard poping up when it should not.Robert Griebl2009-12-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Pressing and releasing the finger/stylus on an editable text widget should only trigger the input method if the release position is still within the widget's boundaries. Reviewed-by: axis
* | | Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.6Jan-Arve Sæther2009-12-043-5/+4
|\ \ \
| * | | Fixes clipping bug in the embedded dialogs demo.Yoann Lopes2009-12-041-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem was that when using DeviceCoordinateCache for items in a scene, newly exposed areas were wrongly painted over the Pixmap in the cache, instead of blending into it. Autotest included. Task-number: QTBUG-657 Reviewed-by: Andreas Reviewed-by: bnilsen
| * | | Fix crash when QGraphicsItem destructor deletes other QGraphicsItemOlivier Goffart2009-12-041-2/+2
| | |/ | |/| | | | | | | | | | | | | Same fix as e7a10b00be3e4aa197900ecf424e6d44b07248ae Reviewed-by: Alexis
| * | Some doc fixesJan-Arve Sæther2009-12-031-2/+2
| |/ | | | | | | | | | | - Remove a lie. - When referring to the size of an anchor, refer to it consistently as 'spacing' instead of magnitude.
* | Merge branch 'fleury-ooo-sequential' into 4.6Jan-Arve Sæther2009-12-044-206/+438
|\ \ | |/ |/|
| * Made sure that we didn't reference dangling parallel anchors.Jan-Arve Sæther2009-12-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We cannot delete the parallel anchors before we do the actual vertex restoration, since the parallel anchors created by vertex simplification will always be connected to some of the AnchorVertexPair found in simplifiedVertices that we iterate over later. Thus, we must delete the parallel anchors created by vertex simplification after we have done the restoration of the vertices. (the parallel anchor will be properly dealt with (i.e. taken out of the graph as we do the restoration)), so not deleting it won't cause it to be revisited later if that is a worry. Reviewed-by: Eduardo M. Fleury
| * Rename the global limit to g_offset.Jan-Arve Sæther2009-12-031-13/+13
| | | | | | | | | | It is both a limit and an offset (the offset is dictated by the limit), but in the code is it interpreted as an offset.
| * Merge branch 'ooo-sequential' of ↵Jan-Arve Sæther2009-12-014-206/+438
| |\ | | | | | | | | | | | | | | | | | | git://gitorious.org/~fleury/qt/fleury-openbossa-clone into fleury-ooo-sequential Conflicts: tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
| | * QGAL: Remove deprecated assert clausesEduardo M. Fleury2009-11-271-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | These assert messages are no longer valid since some anchors can have their size not respected if they are in parallel with the layout and have size equal to "QWIDGETSIZE_MAX". Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
| | * QGAL: Refactor solvePreferred to support min/maxPrefSizeEduardo M. Fleury2009-11-271-24/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the addition of min and maxPrefSizeHints, the logic used in the preferred simplex had to be changed. The concept behind it is still the same, we minimize the deviation from each item's preferred size. Previously we would make an special effort to avoid items being shrunk, that's why the "shinker" simplex variables had larger multipliers in the objective function. Now we still have variables with large multipliers and others with small mutlipliers, but rather than differentiating between shrinker and/or grower variables, we classify them as "soft" or "hard". "Soft" variables, or slacks, are those that allow the anchor to change its value up to the minPref or maxPref boundaries, OTOH, "hard" slacks are those that allow the item to go all the way to its minimum or maximum sizes. Naturally, the "hard" slacks get large coeficients in the objective function while the "soft" ones get small ones. Now all the slack variables are restricted in size as to respect the boundaries of each interval: - Minimum to MinimumPreferred, - MinimumPreferred to Preferred, - Preferred to MaximumPreferred and - MaximumPreferred to Maximum With such limits, the SizeHint constraints became redundant in the calculation of preferred sizes so they are no longer used. Additionally, as an optimization, if a given interval is NULL (for instance, MinimumPreferred is equal to Preferred), then the associated slack variable would have its size restricted to zero, therefore it is not created at all. Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
| | * QGAL: Add AnchorData::minPrefSize and maxPrefSizeEduardo M. Fleury2009-11-273-46/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the addition of out-of-order sequential simplification, the calculation of preferred sizes became more complicated. In the past, when parallel anchors or the simplex solver had to decide between conflicting preferred sizes, they could assume that increasing the size of an anchor was better than decreasing it. That assumption comes from early discussions with Jan-Arve regarding the preferred size calculation algorithm. However, when ooo-sequential anchors exist, we can have a situation where increasing the size of an anchor can actually reduce the size of a simplified anchor inside it. To solve that, we need to expose some information regarding the internal anchors to the decision makers outside, ie. the simplex solver and parallel anchors. This information is now being provided in terms of two additional values present in each anchor, as follows: - minPrefSize: Always in the interval [minSize, prefSize]. Denotes the minimum size an anchor can assume as to avoid shrinking anchors below their preferred sizes. - maxPrefSize: Always in the interval [prefSize, maxSize]. Similar to the value above, but refering to the maximum size the anchor should assume. Some examples: 1) Standard anchor: 10 / 50 / 500 o----------------------------> Becomes: 10 / 50 / 50 / 500 / 500 o----------------------------> We'd rather grow than shrink, so we say that our preferred size is 50, but if we need to grow up to 500, that's OK. Note that we are still able to shrink all the way to 10, but it will hurt us more. 2) Two anchors: 100 / 200 / 500 10 / 20 / 40 o--------------------> <-------------------o Resulting sequential anchor: 60 / 160 / 180 / 480 / 490 o------------------------------------------> The resulting anchor have a preferred size of 180 but it can "easily" grow to 480 (only the first half grows). If it had to go all the way to 490 the second half would have to shrink below its preferred size. OTOH, if it had to shrink, it could go to 160 if the second half grew. However, shrinking even more, towards 60, would require the first half to shrink below its preferred size. With this information parallel and simplex are now able to choose the best solutions when solving conflicts. Signed-off-by: Eduardo M. Fleury <eduardo.fleury@openbossa.org> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>