summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/changes-4.5.3135
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp11
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp31
-rw-r--r--tests/auto/qmake/testdata/prompt/prompt.pro2
4 files changed, 79 insertions, 100 deletions
diff --git a/dist/changes-4.5.3 b/dist/changes-4.5.3
index d797b4cd14..1edacac0f1 100644
--- a/dist/changes-4.5.3
+++ b/dist/changes-4.5.3
@@ -17,34 +17,21 @@ Each of these identifiers can be entered in the task tracker to obtain more
information about a particular change.
****************************************************************************
-* General *
-****************************************************************************
-
-General Improvements
---------------------
-
-- Documentation and Examples
-
-Third party components
-----------------------
-
-
-****************************************************************************
* Library *
****************************************************************************
+- QColorDialog
+ * [256164] Fixed the setting of alpha values in QColorDialog.
+
- QDirIterator
* [258230] Fixed inconsistencies in value returned from
QDirIterator::next().
-- QColorDialog
- * [256164] Fixed the setting of alpha values in QColorDialog.
-
- QDoubleSpinBox
* [255019] Fixed a crash when using large value for decimals.
- QInputDialog
- * [255502] Fixed bug in getDouble()
+ * [255502] Fixed bug in getDouble().
- QNetworkAccessManager
* [256240] Proper handling of HTTP redirect in AlwaysCache mode.
@@ -52,6 +39,18 @@ Third party components
HTTP request.
* [256630] Fix usage of QProgressDialog together with QNetworkReply.
+- QPainter
+ * [254105] Fixed potential segmentation fault when setting empty clip
+ rectangle.
+ * [256549] Fixed inconsistent behavior between paint engines when
+ setting an IntersectClip after doing setClipping(false).
+ * [254407] Fixed rendering issue with outline drawing using
+ projective transforms.
+ * [258776] Fixed rounding bug in drawImage().
+
+- QPainterPath
+ * [251909] Fixed bug in QPainterPath::united() / simplified().
+
- QSslCertificate
* [256066] Fix loading of a PEM when the length was a multiple of 64.
@@ -62,15 +61,16 @@ Third party components
****************************************************************************
* Database Drivers *
****************************************************************************
-- [QT-353] (ODBC) Fixed issue of forward only datasets failing when not
- explicitly set so.
+
+- [QT-353] (ODBC) Fixed issue of forward only datasets failing when not
+ explicitly set so.
- [222678] Fixed QSqlTableModel: trying to delete the wrong row.
- (Interbase) Fixed crash when calling numRows on unknown query type.
- Fixed several database autotests.
- Fixed determination of end of odbc string on deficient driver.
- Fixed formatting of date strings in psql driver.
- Fixed mysql queries automatically getting prepared. Now have to explicitly
- prepare them if you want that functionality.
+ prepare them if you want that functionality.
- Fixed failure when QSqlTableModel has null fields to update.
- Fixed missing isnan/isinf on some platforms (needed for postgres driver)
- Fixed ::record for dialect 3 named tables in interbase/firebird.
@@ -83,92 +83,45 @@ Third party components
Qt for Linux/X11
----------------
-
- Fixed a bug where an empty KDEDIRS variable would bring /share into the icon
search path.
- [KDE 191759] Plasma spinning in endless loop.
-
-
-Qt for Windows
---------------
+- QClipboard can copy/paste on all screens in a multiscreen configuration.
+- Fixed a bug that prevented QClipboard to work after some time.
Qt for Mac OS X
---------------
-[252088] Drag and drop events will now consider the WA_TransparentForMouseEvents
- in Cocoa port.
-[255428] Fixed an an issue when Calling QWidget::raise() on hidden windows making
- them visible in Cocoa port.
-[256269] Window resize events triggered from QWidget::adjustSize() will now
- be sent as non-spontaneous event in the Cocoa port.
-[258822] Fixed a crash when inserting the same menu twice in a menubar in Cocoa port.
-
-- Fixed the wizard background images for Snow Leopard.
-
+- [252088] Drag and drop events will now consider the
+ WA_TransparentForMouseEvents in Cocoa port.
+- [255428] Fixed an issue when calling QWidget::raise() on hidden windows
+ making them visible in Cocoa port.
+- [256269] Window resize events triggered from QWidget::adjustSize() will now
+ be sent as a non-spontaneous event in the Cocoa port.
+- [258822] Fixed a crash when inserting the same menu twice in a menubar in
+ Cocoa port.
+- Fixed the wizard background images for Snow Leopard.
-Qt for Embedded Linux
----------------------
+Qt for Windows
+-----------------
+- [250188] Fixed size windows will show the maximize button if asked explicitely.
Qt for Windows CE
-----------------
-[260702] Fixed restoring of minimized Windows.
-
-****************************************************************************
-* Compiler Specific Changes *
-****************************************************************************
-
-
-****************************************************************************
-* Tools *
-****************************************************************************
-
-- Build System
-
-- Assistant
-
-
-- Designer
-
-
-- Linguist
- - Linguist GUI
-
- - lupdate
-
- - lrelease
-
-
-- rcc
-
-
-- moc
-
-
-- uic
-
-
-- uic3
-
-
-- qmake
-
-
-- configure
-
-
-- qtconfig
-
-
-- qt3to4
-
+- [260702] Fixed restoring of minimized Windows.
****************************************************************************
* Plugins *
****************************************************************************
-
-****************************************************************************
-* Important Behavior Changes *
-****************************************************************************
+- DirectFB
+ * Make autorepeat work for DirectFB keyboard driver.
+ * Fix a crash when resizing windows.
+ * Fix an off by one when flipping surfaces that could lead to artifacts.
+ * Make painting operations with QRegion clips go to DirectFB rather than
+ Raster (when possible).
+ * Make porter duff operations work for blits.
+ * Various optimizations.
+ * Handle more operations in hw.
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index c3934c7e37..d7a7bd2972 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -5140,14 +5140,8 @@ void QGraphicsItem::update(const QRectF &rect)
} while ((item = item->d_ptr->parent));
if (CacheMode(d_ptr->cacheMode) != NoCache) {
- QGraphicsItemCache *cache = d_ptr->extraItemCache();
- if (d_ptr->discardUpdateRequest(/* ignoreVisibleBit = */ false,
- /* ignoreClipping = */ false,
- /* ignoreDirtyBit = */ true)) {
- return;
- }
-
// Invalidate cache.
+ QGraphicsItemCache *cache = d_ptr->extraItemCache();
if (!cache->allExposed) {
if (rect.isNull()) {
cache->allExposed = true;
@@ -5161,6 +5155,9 @@ void QGraphicsItem::update(const QRectF &rect)
return;
}
+ if (d_ptr->discardUpdateRequest())
+ return;
+
if (d_ptr->scene)
d_ptr->scene->d_func()->markDirty(this, rect);
}
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 956faa1527..d08e74bd30 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -62,7 +62,6 @@
#include "../../shared/util.h"
-
//TESTED_CLASS=
//TESTED_FILES=
@@ -307,6 +306,7 @@ private slots:
void task240400_clickOnTextItem();
void task243707_addChildBeforeParent();
void task197802_childrenVisibility();
+ void QTBUG_4233_updateCachedWithSceneRect();
private:
QList<QGraphicsItem *> paintedItems;
@@ -8463,5 +8463,34 @@ void tst_QGraphicsItem::stackBefore()
QCOMPARE(scene.items(QPointF(2, 2), Qt::IntersectsItemBoundingRect, Qt::AscendingOrder), (QList<QGraphicsItem *>() << child2 << child4 << child3 << child1));
}
+void tst_QGraphicsItem::QTBUG_4233_updateCachedWithSceneRect()
+{
+ EventTester *tester = new EventTester;
+ tester->setCacheMode(QGraphicsItem::ItemCoordinateCache);
+
+ QGraphicsScene scene;
+ scene.addItem(tester);
+ scene.setSceneRect(-100, -100, 200, 200); // contains the tester item
+
+ QGraphicsView view(&scene);
+ view.show();
+ QTRY_COMPARE(QApplication::activeWindow(), (QWidget *)&view);
+
+ QCOMPARE(tester->repaints, 1);
+
+ scene.update(); // triggers "updateAll" optimization
+ qApp->processEvents();
+ qApp->processEvents(); // in 4.6 only one processEvents is necessary
+
+ QCOMPARE(tester->repaints, 1);
+
+ scene.update(); // triggers "updateAll" optimization
+ tester->update();
+ qApp->processEvents();
+ qApp->processEvents(); // in 4.6 only one processEvents is necessary
+
+ QCOMPARE(tester->repaints, 2);
+}
+
QTEST_MAIN(tst_QGraphicsItem)
#include "tst_qgraphicsitem.moc"
diff --git a/tests/auto/qmake/testdata/prompt/prompt.pro b/tests/auto/qmake/testdata/prompt/prompt.pro
index 02db4fe998..238022c755 100644
--- a/tests/auto/qmake/testdata/prompt/prompt.pro
+++ b/tests/auto/qmake/testdata/prompt/prompt.pro
@@ -1,2 +1,2 @@
-a = $$prompt(Prompteroo)
+# a = $$prompt(Prompteroo)