summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-03-10 18:00:21 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-03-10 18:00:21 (GMT)
commita747e171d316b25ba10dc36f6d54d1cbecad5c32 (patch)
treeeb2cb8b2c5d8c2cc58e9a4924efa1f81bfa87a17 /tests
parentb80466364fe6c6ca030b884f2d8df94bdfa477b9 (diff)
parent0d8964f78582a144ee5e96f40fcb6240d2e58a46 (diff)
downloadQt-a747e171d316b25ba10dc36f6d54d1cbecad5c32.zip
Qt-a747e171d316b25ba10dc36f6d54d1cbecad5c32.tar.gz
Qt-a747e171d316b25ba10dc36f6d54d1cbecad5c32.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (26 commits) Compile QtScript: Improve performance of type resolution when calling slots Improve performance of QScriptValueIterator Add default argument values for QScriptValuePrivate property functions Move method implementation to private class Add benchmarks for QScriptValueIterator Fixed the QML browser built into the QML viewer Make configure.exe fail for declarative if no script support Add QWidget::update() test. Add license headers Import static contents tests from old manualtests Fix Build Failure for Maemo 5 Debug Build Add ability to read last mod.time for zip entry. Avoid asserting when index passed to QZipReader::entryInfoAt is out of boundaries Add isValid() method to QZipReader::FileInfo. Add `QIODevice* device() const` public method to QZip classes. Rebuild configure.exe (again enable QtDeclarative module by default) Update src/3rdparty/javascriptcore and adapt src/script to the changes Use index-based approach for iterating over JS array properties QFSFileEngine reduce number of system calls ...
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qscriptclass/tst_qscriptclass.cpp1
-rw-r--r--tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp24
-rw-r--r--tests/auto/qscriptvalue/tst_qscriptvalue.cpp8
-rw-r--r--tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp22
-rw-r--r--tests/auto/qzip/tst_qzip.cpp11
-rw-r--r--tests/benchmarks/script/qscriptvalueiterator/qscriptvalueiterator.pro7
-rw-r--r--tests/benchmarks/script/qscriptvalueiterator/tst_qscriptvalueiterator.cpp293
-rw-r--r--tests/manual/repaint/mainwindow/main.cpp69
-rw-r--r--tests/manual/repaint/mainwindow/mainwindow.pro15
-rw-r--r--tests/manual/repaint/scrollarea/main.cpp65
-rw-r--r--tests/manual/repaint/scrollarea/scrollarea.pro15
-rw-r--r--tests/manual/repaint/shared/shared.h131
-rw-r--r--tests/manual/repaint/splitter/main.cpp58
-rw-r--r--tests/manual/repaint/splitter/splitter.pro15
-rw-r--r--tests/manual/repaint/tableview/main.cpp77
-rw-r--r--tests/manual/repaint/tableview/tableview.pro8
-rw-r--r--tests/manual/repaint/task141091/main.cpp63
-rw-r--r--tests/manual/repaint/task141091/task141091.pro12
-rw-r--r--tests/manual/repaint/toplevel/main.cpp52
-rw-r--r--tests/manual/repaint/toplevel/toplevel.pro16
-rw-r--r--tests/manual/repaint/widget/main.cpp135
-rw-r--r--tests/manual/repaint/widget/widget.pro15
22 files changed, 1105 insertions, 7 deletions
diff --git a/tests/auto/qscriptclass/tst_qscriptclass.cpp b/tests/auto/qscriptclass/tst_qscriptclass.cpp
index 41c674c..aca33ce 100644
--- a/tests/auto/qscriptclass/tst_qscriptclass.cpp
+++ b/tests/auto/qscriptclass/tst_qscriptclass.cpp
@@ -688,6 +688,7 @@ void tst_QScriptClass::getAndSetProperty()
QCOMPARE(obj1.propertyFlags(foo2), foo2Pflags);
QVERIFY(cls.lastQueryPropertyObject().strictlyEquals(obj1));
QVERIFY(cls.lastQueryPropertyName() == foo2);
+ QEXPECT_FAIL("", "classObject.getOwnPropertyDescriptor() reads the property value", Continue);
QVERIFY(!cls.lastPropertyObject().isValid());
QVERIFY(cls.lastPropertyFlagsObject().strictlyEquals(obj1));
QVERIFY(cls.lastPropertyFlagsName() == foo2);
diff --git a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
index ac9ca46..a0f10dd 100644
--- a/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
+++ b/tests/auto/qscriptengineagent/tst_qscriptengineagent.cpp
@@ -1245,6 +1245,7 @@ void tst_QScriptEngineAgent::positionChange_1()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, lineNumber);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 8);
// 5 + 6
@@ -1279,6 +1280,7 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QVERIFY(spy->at(1).scriptId != spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, lineNumber);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 18);
}
@@ -1297,6 +1299,7 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 11);
}
@@ -1327,12 +1330,14 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 31);
// void(i)
QCOMPARE(spy->at(2).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(2).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(2).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(2).columnNumber, 31);
}
@@ -1351,18 +1356,21 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 12);
// ++i
QCOMPARE(spy->at(2).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(2).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(2).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(2).columnNumber, 28);
// ++i
QCOMPARE(spy->at(3).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(3).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(3).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(3).columnNumber, 28);
}
@@ -1381,24 +1389,28 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 12);
// ++i
QCOMPARE(spy->at(2).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(2).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(2).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(2).columnNumber, 17);
// do
QCOMPARE(spy->at(3).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(3).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(3).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(3).columnNumber, 12);
// ++i
QCOMPARE(spy->at(4).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(4).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(4).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(4).columnNumber, 17);
}
@@ -1429,6 +1441,7 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 15);
}
@@ -1447,12 +1460,14 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 32);
// continue
QCOMPARE(spy->at(2).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(2).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(2).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(2).columnNumber, 32);
}
@@ -1495,6 +1510,7 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 31);
}
@@ -1513,12 +1529,14 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 38);
// break
QCOMPARE(spy->at(2).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(2).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(2).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(2).columnNumber, 45);
}
@@ -1543,18 +1561,21 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(0).type, ScriptEngineEvent::PositionChange);
QVERIFY(spy->at(0).scriptId != -1);
QCOMPARE(spy->at(0).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(0).columnNumber, 7);
// i = e
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 29);
// i = 2
QCOMPARE(spy->at(2).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(2).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(2).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(2).columnNumber, 48);
}
@@ -1567,12 +1588,14 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(0).type, ScriptEngineEvent::PositionChange);
QVERIFY(spy->at(0).scriptId != -1);
QCOMPARE(spy->at(0).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(0).columnNumber, 7);
// i = 3
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 46);
}
@@ -1594,6 +1617,7 @@ void tst_QScriptEngineAgent::positionChange_2()
QCOMPARE(spy->at(1).type, ScriptEngineEvent::PositionChange);
QCOMPARE(spy->at(1).scriptId, spy->at(0).scriptId);
QCOMPARE(spy->at(1).lineNumber, 1);
+ QEXPECT_FAIL("", "With JSC-based back-end, column number is always reported as 1", Continue);
QCOMPARE(spy->at(1).columnNumber, 20);
}
delete spy;
diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp
index f83cf58..5b79340 100644
--- a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp
+++ b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp
@@ -2047,7 +2047,9 @@ void tst_QScriptValue::getSetProperty()
}
// should still be deletable from C++
object.setProperty("undeletableProperty", QScriptValue());
+ QEXPECT_FAIL("", "With JSC-based back-end, undeletable properties can't be deleted from C++", Continue);
QVERIFY(!object.property("undeletableProperty").isValid());
+ QEXPECT_FAIL("", "With JSC-based back-end, undeletable properties can't be deleted from C++", Continue);
QCOMPARE(object.propertyFlags("undeletableProperty"), 0);
// SkipInEnumeration
@@ -2082,11 +2084,11 @@ void tst_QScriptValue::getSetProperty()
object.setProperty("flagProperty", str, QScriptValue::ReadOnly);
QCOMPARE(object.propertyFlags("flagProperty"), QScriptValue::ReadOnly);
- object.setProperty("flagProperty", str, object.propertyFlags("flagProperty") | QScriptValue::Undeletable);
- QCOMPARE(object.propertyFlags("flagProperty"), QScriptValue::ReadOnly | QScriptValue::Undeletable);
+ object.setProperty("flagProperty", str, object.propertyFlags("flagProperty") | QScriptValue::SkipInEnumeration);
+ QCOMPARE(object.propertyFlags("flagProperty"), QScriptValue::ReadOnly | QScriptValue::SkipInEnumeration);
object.setProperty("flagProperty", str, QScriptValue::KeepExistingFlags);
- QCOMPARE(object.propertyFlags("flagProperty"), QScriptValue::ReadOnly | QScriptValue::Undeletable);
+ QCOMPARE(object.propertyFlags("flagProperty"), QScriptValue::ReadOnly | QScriptValue::SkipInEnumeration);
object.setProperty("flagProperty", str, QScriptValue::UserRange);
QCOMPARE(object.propertyFlags("flagProperty"), QScriptValue::UserRange);
diff --git a/tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp b/tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp
index 5ca7a3d..55773f0 100644
--- a/tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp
+++ b/tests/auto/qscriptvalueiterator/tst_qscriptvalueiterator.cpp
@@ -255,8 +255,14 @@ void tst_QScriptValueIterator::iterateArray()
QVERIFY(it.value().strictlyEquals(array.property(propertyNames.at(i))));
QCOMPARE(it.value().toString(), propertyValues.at(i));
}
- QCOMPARE(it.hasNext(), false);
+ QVERIFY(it.hasNext());
+ it.next();
+ QCOMPARE(it.name(), QString::fromLatin1("length"));
+ QVERIFY(it.value().isNumber());
+ QCOMPARE(it.value().toInt32(), length);
+ QCOMPARE(it.flags(), QScriptValue::SkipInEnumeration | QScriptValue::Undeletable);
+ it.previous();
QCOMPARE(it.hasPrevious(), length > 0);
for (int i = length - 1; i >= 0; --i) {
it.previous();
@@ -301,7 +307,9 @@ void tst_QScriptValueIterator::iterateArray()
QVERIFY(it.value().strictlyEquals(array.property(propertyNames.at(i))));
QCOMPARE(it.value().toString(), propertyValues.at(i));
}
- QCOMPARE(it.hasNext(), false);
+ QCOMPARE(it.hasNext(), true);
+ it.next();
+ QCOMPARE(it.name(), QString::fromLatin1("length"));
}
}
@@ -420,9 +428,15 @@ void tst_QScriptValueIterator::iterateString()
QCOMPARE(it.flags(), obj.propertyFlags(indexStr));
QCOMPARE(it.value().strictlyEquals(obj.property(indexStr)), true);
}
- QCOMPARE(it.hasNext(), false);
+ QVERIFY(it.hasNext());
+ it.next();
+ QCOMPARE(it.name(), QString::fromLatin1("length"));
+ QVERIFY(it.value().isNumber());
+ QCOMPARE(it.value().toInt32(), length);
+ QCOMPARE(it.flags(), QScriptValue::ReadOnly | QScriptValue::SkipInEnumeration | QScriptValue::Undeletable);
- QVERIFY(it.hasPrevious());
+ it.previous();
+ QCOMPARE(it.hasPrevious(), length > 0);
for (int i = length - 1; i >= 0; --i) {
it.previous();
QString indexStr = QScriptValue(&engine, i).toString();
diff --git a/tests/auto/qzip/tst_qzip.cpp b/tests/auto/qzip/tst_qzip.cpp
index d7fc2f7..cb3acf5 100644
--- a/tests/auto/qzip/tst_qzip.cpp
+++ b/tests/auto/qzip/tst_qzip.cpp
@@ -77,6 +77,7 @@ void tst_QZip::basicUnpack()
QCOMPARE(files.count(), 2);
QZipReader::FileInfo fi = files.at(0);
+ QVERIFY(fi.isValid());
QCOMPARE(fi.filePath, QString("test/"));
QCOMPARE(uint(fi.isDir), (uint) 1);
QCOMPARE(uint(fi.isFile), (uint) 0);
@@ -85,7 +86,10 @@ void tst_QZip::basicUnpack()
QCOMPARE(fi.permissions,QFile::Permissions( QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner
| QFile::ReadUser | QFile::WriteUser | QFile::ExeUser ));
+ QCOMPARE(fi.lastModified, QDateTime::fromString("2005.11.11 13:08:02", "yyyy.MM.dd HH:mm:ss"));
+
fi = files.at(1);
+ QVERIFY(fi.isValid());
QCOMPARE(fi.filePath, QString("test/test.txt"));
QCOMPARE(uint(fi.isDir), (uint) 0);
QCOMPARE(uint(fi.isFile), (uint) 1);
@@ -94,7 +98,12 @@ void tst_QZip::basicUnpack()
QVERIFY(fi.permissions == QFile::Permissions( QFile::ReadOwner | QFile::WriteOwner
| QFile::ReadUser | QFile::WriteUser ));
+ QCOMPARE(fi.lastModified, QDateTime::fromString("2005.11.11 13:08:02", "yyyy.MM.dd HH:mm:ss"));
+
QCOMPARE(zip.fileData("test/test.txt"), QByteArray("content\n"));
+
+ fi = files.at(-1);
+ QVERIFY(!fi.isValid());
}
void tst_QZip::symlinks()
@@ -104,6 +113,7 @@ void tst_QZip::symlinks()
QCOMPARE(files.count(), 2);
QZipReader::FileInfo fi = files.at(0);
+ QVERIFY(fi.isValid());
QCOMPARE(fi.filePath, QString("symlink"));
QVERIFY(!fi.isDir);
QVERIFY(!fi.isFile);
@@ -112,6 +122,7 @@ void tst_QZip::symlinks()
QCOMPARE(zip.fileData("symlink"), QByteArray("destination"));
fi = files.at(1);
+ QVERIFY(fi.isValid());
QCOMPARE(fi.filePath, QString("destination"));
QVERIFY(!fi.isDir);
QVERIFY(fi.isFile);
diff --git a/tests/benchmarks/script/qscriptvalueiterator/qscriptvalueiterator.pro b/tests/benchmarks/script/qscriptvalueiterator/qscriptvalueiterator.pro
new file mode 100644
index 0000000..ecd48f0
--- /dev/null
+++ b/tests/benchmarks/script/qscriptvalueiterator/qscriptvalueiterator.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_qscriptvalueiterator
+
+SOURCES += tst_qscriptvalueiterator.cpp
+
+QT = core script
diff --git a/tests/benchmarks/script/qscriptvalueiterator/tst_qscriptvalueiterator.cpp b/tests/benchmarks/script/qscriptvalueiterator/tst_qscriptvalueiterator.cpp
new file mode 100644
index 0000000..7d06744
--- /dev/null
+++ b/tests/benchmarks/script/qscriptvalueiterator/tst_qscriptvalueiterator.cpp
@@ -0,0 +1,293 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <qtest.h>
+#include <QtScript>
+
+//TESTED_FILES=
+
+class tst_QScriptValueIterator : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_QScriptValueIterator();
+ virtual ~tst_QScriptValueIterator();
+
+ void dataHelper();
+
+private slots:
+ void init();
+ void cleanup();
+
+ void hasNextAndNext();
+
+ void constructAndNext_data();
+ void constructAndNext();
+
+ void name_data();
+ void name();
+ void scriptName_data();
+ void scriptName();
+
+ void value_data();
+ void value();
+ void setValue_data();
+ void setValue();
+
+ void flags();
+
+ void iterateArrayAndConvertNameToIndex();
+ void iterateArrayAndDoubleElements();
+ void iterateArrayAndRemoveAllElements();
+};
+
+tst_QScriptValueIterator::tst_QScriptValueIterator()
+{
+}
+
+tst_QScriptValueIterator::~tst_QScriptValueIterator()
+{
+}
+
+void tst_QScriptValueIterator::init()
+{
+}
+
+void tst_QScriptValueIterator::cleanup()
+{
+}
+
+void tst_QScriptValueIterator::dataHelper()
+{
+ QTest::addColumn<QString>("code");
+ QTest::newRow("{ foo: 123 }") << QString::fromLatin1("({ foo: 123 })");
+ QTest::newRow("Math") << QString::fromLatin1("Math");
+ QTest::newRow("Array.prototype") << QString::fromLatin1("Array.prototype");
+ QTest::newRow("Global Object") << QString::fromLatin1("this");
+ QTest::newRow("['foo']") << QString::fromLatin1("['foo']");
+ QTest::newRow("array with 1000 elements")
+ << QString::fromLatin1("(function() {"
+ " var a = new Array;"
+ " for (i = 0; i < 1000; ++i)"
+ " a[i] = i;"
+ " return a;"
+ "})()");
+}
+
+void tst_QScriptValueIterator::hasNextAndNext()
+{
+ QScriptEngine engine;
+ QScriptValue object = engine.newObject();
+ for (int i = 0; i < 2000; ++i)
+ object.setProperty(i, i);
+ QScriptValueIterator it(object);
+ QBENCHMARK {
+ for (int i = 0; i < 1000; ++i) {
+ it.toFront();
+ while (it.hasNext())
+ it.next();
+ }
+ }
+}
+
+void tst_QScriptValueIterator::constructAndNext_data()
+{
+ dataHelper();
+}
+
+void tst_QScriptValueIterator::constructAndNext()
+{
+ QFETCH(QString, code);
+ QScriptEngine engine;
+ QScriptValue object = engine.evaluate(code);
+ Q_ASSERT(object.isObject());
+
+ QBENCHMARK {
+ for (int i = 0; i < 100; ++i) {
+ QScriptValueIterator it(object);
+ it.next();
+ }
+ }
+}
+
+void tst_QScriptValueIterator::name_data()
+{
+ dataHelper();
+}
+
+void tst_QScriptValueIterator::name()
+{
+ QFETCH(QString, code);
+ QScriptEngine engine;
+ QScriptValue object = engine.evaluate(code);
+ Q_ASSERT(object.isObject());
+
+ QScriptValueIterator it(object);
+ it.next();
+ QBENCHMARK {
+ for (int i = 0; i < 200000; ++i)
+ it.name();
+ }
+}
+
+void tst_QScriptValueIterator::scriptName_data()
+{
+ dataHelper();
+}
+
+void tst_QScriptValueIterator::scriptName()
+{
+ QFETCH(QString, code);
+ QScriptEngine engine;
+ QScriptValue object = engine.evaluate(code);
+ Q_ASSERT(object.isObject());
+
+ QScriptValueIterator it(object);
+ it.next();
+ QBENCHMARK {
+ for (int i = 0; i < 50000; ++i)
+ it.scriptName();
+ }
+}
+
+void tst_QScriptValueIterator::value_data()
+{
+ dataHelper();
+}
+
+void tst_QScriptValueIterator::value()
+{
+ QFETCH(QString, code);
+ QScriptEngine engine;
+ QScriptValue object = engine.evaluate(code);
+ Q_ASSERT(object.isObject());
+
+ QScriptValueIterator it(object);
+ it.next();
+ QBENCHMARK {
+ for (int i = 0; i < 50000; ++i)
+ it.value();
+ }
+}
+
+void tst_QScriptValueIterator::setValue_data()
+{
+ dataHelper();
+}
+
+void tst_QScriptValueIterator::setValue()
+{
+ QFETCH(QString, code);
+ QScriptEngine engine;
+ QScriptValue object = engine.evaluate(code);
+ Q_ASSERT(object.isObject());
+
+ QScriptValueIterator it(object);
+ it.next();
+ QScriptValue newValue(&engine, 456);
+ QBENCHMARK {
+ for (int i = 0; i < 50000; ++i)
+ it.setValue(newValue);
+ }
+}
+
+void tst_QScriptValueIterator::flags()
+{
+ QScriptEngine engine;
+ QScriptValue object = engine.newObject();
+ QScriptValue::PropertyFlags flags = flags;
+ object.setProperty("foo", 123, QScriptValue::SkipInEnumeration | QScriptValue::ReadOnly | QScriptValue::Undeletable);
+ QScriptValueIterator it(object);
+ it.next();
+ QBENCHMARK {
+ for (int i = 0; i < 50000; ++i)
+ it.flags();
+ }
+}
+
+void tst_QScriptValueIterator::iterateArrayAndConvertNameToIndex()
+{
+ QScriptEngine engine;
+ QScriptValue array = engine.newArray();
+ for (int i = 0; i < 20000; ++i)
+ array.setProperty(i, i);
+ QBENCHMARK {
+ QScriptValueIterator it(array);
+ while (it.hasNext()) {
+ it.next();
+ it.scriptName().toArrayIndex();
+ }
+ }
+}
+
+void tst_QScriptValueIterator::iterateArrayAndDoubleElements()
+{
+ QScriptEngine engine;
+ QScriptValue array = engine.newArray();
+ for (int i = 0; i < 20000; ++i)
+ array.setProperty(i, i);
+ QBENCHMARK {
+ QScriptValueIterator it(array);
+ while (it.hasNext()) {
+ it.next();
+ it.setValue(QScriptValue(&engine, it.value().toNumber() * 2));
+ }
+ }
+}
+
+void tst_QScriptValueIterator::iterateArrayAndRemoveAllElements()
+{
+ QScriptEngine engine;
+ QScriptValue array = engine.newArray();
+ for (int i = 0; i < 20000; ++i)
+ array.setProperty(i, i);
+ QBENCHMARK {
+ QScriptValueIterator it(array);
+ while (it.hasNext()) {
+ it.next();
+ it.remove();
+ }
+ }
+}
+
+QTEST_MAIN(tst_QScriptValueIterator)
+#include "tst_qscriptvalueiterator.moc"
diff --git a/tests/manual/repaint/mainwindow/main.cpp b/tests/manual/repaint/mainwindow/main.cpp
new file mode 100644
index 0000000..f642400
--- /dev/null
+++ b/tests/manual/repaint/mainwindow/main.cpp
@@ -0,0 +1,69 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the FOO module of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL$
+ ** No Commercial Usage
+ ** This file contains pre-release code and may not be distributed.
+ ** You may use this file in accordance with the terms and conditions
+ ** contained in the Technology Preview License Agreement accompanying
+ ** this package.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain additional
+ ** rights. These rights are described in the Nokia Qt LGPL Exception
+ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+ **
+ ** If you have questions regarding the use of this file, please contact
+ ** Nokia at qt-info@nokia.com.
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+#include <QtGui>
+#include "../shared/shared.h"
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ QMainWindow mainWindow;
+
+ mainWindow.setCentralWidget(new StaticWidget());
+ mainWindow.setStatusBar(new QStatusBar());
+
+ QDockWidget *dockWidget = new QDockWidget();
+ dockWidget->setWidget(new StaticWidget());
+ mainWindow.addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
+
+ QToolBar *toolBar = new QToolBar();
+
+ toolBar->addWidget(new StaticWidget())->setVisible(true);;
+
+ toolBar->addWidget(new QSpinBox())->setVisible(true);;
+ mainWindow.addToolBar(toolBar);
+
+ mainWindow.resize(600, 400);
+ mainWindow.show();
+
+ return app.exec();
+}
diff --git a/tests/manual/repaint/mainwindow/mainwindow.pro b/tests/manual/repaint/mainwindow/mainwindow.pro
new file mode 100644
index 0000000..c269d57
--- /dev/null
+++ b/tests/manual/repaint/mainwindow/mainwindow.pro
@@ -0,0 +1,15 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Wed Nov 8 15:46:28 2006
+######################################################################
+
+TEMPLATE = app
+TARGET = mainwindow
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+HEADERS += ../shared/shared.h
+SOURCES += main.cpp
+CONFIG += qt warn_on debug create_prl link_prl
+OBJECTS_DIR = .obj/debug-shared
+MOC_DIR = .moc/debug-shared
diff --git a/tests/manual/repaint/scrollarea/main.cpp b/tests/manual/repaint/scrollarea/main.cpp
new file mode 100644
index 0000000..dd5cd43
--- /dev/null
+++ b/tests/manual/repaint/scrollarea/main.cpp
@@ -0,0 +1,65 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the FOO module of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL$
+ ** No Commercial Usage
+ ** This file contains pre-release code and may not be distributed.
+ ** You may use this file in accordance with the terms and conditions
+ ** contained in the Technology Preview License Agreement accompanying
+ ** this package.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain additional
+ ** rights. These rights are described in the Nokia Qt LGPL Exception
+ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+ **
+ ** If you have questions regarding the use of this file, please contact
+ ** Nokia at qt-info@nokia.com.
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+#include <QtGui>
+#include "../shared/shared.h"
+
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ QScrollArea scrollView;
+
+ QWidget * staticWidget = new StaticWidget();
+ staticWidget->resize(400, 200);
+ scrollView.setWidget(staticWidget);
+
+ scrollView.setAttribute(Qt::WA_StaticContents);
+
+ scrollView.resize(600, 400);
+ scrollView.show();
+
+
+ return app.exec();
+}
+
+
diff --git a/tests/manual/repaint/scrollarea/scrollarea.pro b/tests/manual/repaint/scrollarea/scrollarea.pro
new file mode 100644
index 0000000..e1a40ad
--- /dev/null
+++ b/tests/manual/repaint/scrollarea/scrollarea.pro
@@ -0,0 +1,15 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Wed Nov 8 15:28:57 2006
+######################################################################
+
+TEMPLATE = app
+TARGET = scrollarea
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+HEADERS += ../shared/shared.h
+SOURCES += main.cpp
+CONFIG += qt warn_on debug create_prl link_prl
+OBJECTS_DIR = .obj/debug-shared
+MOC_DIR = .moc/debug-shared
diff --git a/tests/manual/repaint/shared/shared.h b/tests/manual/repaint/shared/shared.h
new file mode 100644
index 0000000..6524d48
--- /dev/null
+++ b/tests/manual/repaint/shared/shared.h
@@ -0,0 +1,131 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the FOO module of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL$
+ ** No Commercial Usage
+ ** This file contains pre-release code and may not be distributed.
+ ** You may use this file in accordance with the terms and conditions
+ ** contained in the Technology Preview License Agreement accompanying
+ ** this package.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain additional
+ ** rights. These rights are described in the Nokia Qt LGPL Exception
+ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+ **
+ ** If you have questions regarding the use of this file, please contact
+ ** Nokia at qt-info@nokia.com.
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+
+#include <QtGui>
+class StaticWidget : public QWidget
+{
+Q_OBJECT
+public:
+ int hue;
+ bool pressed;
+ StaticWidget(QWidget *parent = 0)
+ :QWidget(parent)
+ {
+ setAttribute(Qt::WA_StaticContents);
+ setAttribute(Qt::WA_OpaquePaintEvent);
+ hue = 200;
+ pressed = false;
+ }
+
+ // Update 4 rects in a checkerboard pattern, using either
+ // a QRegion or separate rects (see the useRegion switch)
+ void updatePattern(QPoint pos)
+ {
+ const int rectSize = 10;
+ QRect rect(pos.x() - rectSize, pos.y() - rectSize, rectSize *2, rectSize * 2);
+
+ QVector<QRect> updateRects;
+ updateRects.append(rect.translated(rectSize * 2, rectSize * 2));
+ updateRects.append(rect.translated(rectSize * 2, -rectSize * 2));
+ updateRects.append(rect.translated(-rectSize * 2, rectSize * 2));
+ updateRects.append(rect.translated(-rectSize * 2, -rectSize * 2));
+
+
+ bool useRegion = false;
+ if (useRegion) {
+ QRegion region;
+ region.setRects(updateRects.data(), 4);
+ update(region);
+ } else {
+ foreach (QRect rect, updateRects)
+ update(rect);
+ }
+ }
+
+
+ void resizeEvent(QResizeEvent *)
+ {
+ // qDebug() << "static widget resize from" << e->oldSize() << "to" << e->size();
+ }
+
+ void mousePressEvent(QMouseEvent *event)
+ {
+// qDebug() << "mousePress at" << event->pos();
+ pressed = true;
+ updatePattern(event->pos());
+ }
+
+ void mouseReleaseEvent(QMouseEvent *)
+ {
+ pressed = false;
+ }
+
+ void mouseMoveEvent(QMouseEvent *event)
+ {
+ if (pressed)
+ updatePattern(event->pos());
+ }
+
+ void paintEvent(QPaintEvent *e)
+ {
+ QPainter p(this);
+ static int color = 200;
+ color = (color + 41) % 205 + 50;
+// color = ((color + 45) %150) + 100;
+ qDebug() << "static widget repaint" << e->rect();
+ if (pressed)
+ p.fillRect(e->rect(), QColor::fromHsv(100, 255, color));
+ else
+ p.fillRect(e->rect(), QColor::fromHsv(hue, 255, color));
+ p.setPen(QPen(QColor(Qt::white)));
+
+ for (int y = e->rect().top(); y <= e->rect().bottom() + 1; ++y) {
+ if (y % 20 == 0)
+ p.drawLine(e->rect().left(), y, e->rect().right(), y);
+ }
+
+ for (int x = e->rect().left(); x <= e->rect().right() +1 ; ++x) {
+ if (x % 20 == 0)
+ p.drawLine(x, e->rect().top(), x, e->rect().bottom());
+ }
+ }
+};
diff --git a/tests/manual/repaint/splitter/main.cpp b/tests/manual/repaint/splitter/main.cpp
new file mode 100644
index 0000000..77400e0
--- /dev/null
+++ b/tests/manual/repaint/splitter/main.cpp
@@ -0,0 +1,58 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the FOO module of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL$
+ ** No Commercial Usage
+ ** This file contains pre-release code and may not be distributed.
+ ** You may use this file in accordance with the terms and conditions
+ ** contained in the Technology Preview License Agreement accompanying
+ ** this package.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain additional
+ ** rights. These rights are described in the Nokia Qt LGPL Exception
+ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+ **
+ ** If you have questions regarding the use of this file, please contact
+ ** Nokia at qt-info@nokia.com.
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+#include <QtGui>
+#include "../shared/shared.h"
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ QSplitter splitter;
+
+ splitter.addWidget(new StaticWidget());
+ splitter.addWidget(new StaticWidget());
+
+ splitter.resize(600, 400);
+ splitter.show();
+
+ return app.exec();
+}
diff --git a/tests/manual/repaint/splitter/splitter.pro b/tests/manual/repaint/splitter/splitter.pro
new file mode 100644
index 0000000..0afc063
--- /dev/null
+++ b/tests/manual/repaint/splitter/splitter.pro
@@ -0,0 +1,15 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Wed Nov 8 15:39:53 2006
+######################################################################
+
+TEMPLATE = app
+TARGET = splitter
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+HEADERS += ../shared/shared.h
+SOURCES += main.cpp
+CONFIG += qt warn_on debug create_prl link_prl
+OBJECTS_DIR = .obj/debug-shared
+MOC_DIR = .moc/debug-shared
diff --git a/tests/manual/repaint/tableview/main.cpp b/tests/manual/repaint/tableview/main.cpp
new file mode 100644
index 0000000..38457bd
--- /dev/null
+++ b/tests/manual/repaint/tableview/main.cpp
@@ -0,0 +1,77 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the FOO module of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL$
+ ** No Commercial Usage
+ ** This file contains pre-release code and may not be distributed.
+ ** You may use this file in accordance with the terms and conditions
+ ** contained in the Technology Preview License Agreement accompanying
+ ** this package.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain additional
+ ** rights. These rights are described in the Nokia Qt LGPL Exception
+ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+ **
+ ** If you have questions regarding the use of this file, please contact
+ ** Nokia at qt-info@nokia.com.
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+#include <QtGui>
+#include "../shared/shared.h"
+
+class CellWidget : public QWidget
+{
+public:
+ CellWidget (QWidget *parent = 0) : QWidget(parent) { }
+ void paintEvent(QPaintEvent * event)
+ {
+ static int value = 200;
+ value = (value + 41) % 205 + 50;
+ QPainter p(this);
+ p.fillRect(event->rect(), QColor::fromHsv(100, 255, value));
+ }
+};
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+ QTableWidget tableWidget;
+// tableWidget.setAttribute(Qt::WA_StaticContents);
+ tableWidget.viewport()->setAttribute(Qt::WA_StaticContents);
+ tableWidget.setRowCount(15);
+ tableWidget.setColumnCount(4);
+ for (int row = 0; row < 15; ++row)
+ for (int col = 0; col < 4; ++col)
+// tableWidget.setCellWidget(row, col, new StaticWidget());
+ tableWidget.setCellWidget(row, col, new CellWidget());
+ tableWidget.resize(400, 600);
+ tableWidget.show();
+
+
+ return app.exec();
+}
+
+
diff --git a/tests/manual/repaint/tableview/tableview.pro b/tests/manual/repaint/tableview/tableview.pro
new file mode 100644
index 0000000..4fccf4a
--- /dev/null
+++ b/tests/manual/repaint/tableview/tableview.pro
@@ -0,0 +1,8 @@
+HEADERS +=../shared/shared.h
+TEMPLATE = app
+TARGET =
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+SOURCES += main.cpp
diff --git a/tests/manual/repaint/task141091/main.cpp b/tests/manual/repaint/task141091/main.cpp
new file mode 100644
index 0000000..f7e23e1
--- /dev/null
+++ b/tests/manual/repaint/task141091/main.cpp
@@ -0,0 +1,63 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the FOO module of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL$
+ ** No Commercial Usage
+ ** This file contains pre-release code and may not be distributed.
+ ** You may use this file in accordance with the terms and conditions
+ ** contained in the Technology Preview License Agreement accompanying
+ ** this package.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain additional
+ ** rights. These rights are described in the Nokia Qt LGPL Exception
+ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+ **
+ ** If you have questions regarding the use of this file, please contact
+ ** Nokia at qt-info@nokia.com.
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+#include <QtGui>
+#include <QDebug>
+
+class MyWidget : public QWidget
+{
+public:
+ MyWidget() : QWidget() {
+
+
+ setAttribute(Qt::WA_OpaquePaintEvent);
+ setAttribute(Qt::WA_StaticContents); }
+protected:
+ void paintEvent(QPaintEvent *e) { qDebug() << e->rect(); }
+};
+
+int main(int argc, char **argv)
+{
+ QApplication a(argc, argv);
+ MyWidget w;
+ w.show();
+ return a.exec();
+} \ No newline at end of file
diff --git a/tests/manual/repaint/task141091/task141091.pro b/tests/manual/repaint/task141091/task141091.pro
new file mode 100644
index 0000000..db89bd3
--- /dev/null
+++ b/tests/manual/repaint/task141091/task141091.pro
@@ -0,0 +1,12 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Tue Mar 6 13:44:00 2007
+######################################################################
+
+TEMPLATE = app
+TARGET =
+DEPENDPATH += .
+INCLUDEPATH += .
+CONFIG+=console
+
+# Input
+SOURCES += main.cpp
diff --git a/tests/manual/repaint/toplevel/main.cpp b/tests/manual/repaint/toplevel/main.cpp
new file mode 100644
index 0000000..34566db
--- /dev/null
+++ b/tests/manual/repaint/toplevel/main.cpp
@@ -0,0 +1,52 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the FOO module of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL$
+ ** No Commercial Usage
+ ** This file contains pre-release code and may not be distributed.
+ ** You may use this file in accordance with the terms and conditions
+ ** contained in the Technology Preview License Agreement accompanying
+ ** this package.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain additional
+ ** rights. These rights are described in the Nokia Qt LGPL Exception
+ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+ **
+ ** If you have questions regarding the use of this file, please contact
+ ** Nokia at qt-info@nokia.com.
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+#include <QtGui>
+#include "../shared/shared.h"
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+ StaticWidget widget;
+ widget.show();
+ return app.exec();
+}
+
diff --git a/tests/manual/repaint/toplevel/toplevel.pro b/tests/manual/repaint/toplevel/toplevel.pro
new file mode 100644
index 0000000..568ea8e
--- /dev/null
+++ b/tests/manual/repaint/toplevel/toplevel.pro
@@ -0,0 +1,16 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Tue Nov 7 10:15:42 2006
+######################################################################
+
+TEMPLATE = app
+TARGET = toplevel
+DEPENDPATH += .
+INCLUDEPATH += .
+CONFIG += console
+
+# Input
+HEADERS += ../shared/shared.h
+SOURCES += main.cpp
+CONFIG += qt warn_on debug create_prl link_prl
+OBJECTS_DIR = .obj/debug-shared
+MOC_DIR = .moc/debug-shared
diff --git a/tests/manual/repaint/widget/main.cpp b/tests/manual/repaint/widget/main.cpp
new file mode 100644
index 0000000..fd805df
--- /dev/null
+++ b/tests/manual/repaint/widget/main.cpp
@@ -0,0 +1,135 @@
+/****************************************************************************
+ **
+ ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ ** All rights reserved.
+ ** Contact: Nokia Corporation (qt-info@nokia.com)
+ **
+ ** This file is part of the FOO module of the Qt Toolkit.
+ **
+ ** $QT_BEGIN_LICENSE:LGPL$
+ ** No Commercial Usage
+ ** This file contains pre-release code and may not be distributed.
+ ** You may use this file in accordance with the terms and conditions
+ ** contained in the Technology Preview License Agreement accompanying
+ ** this package.
+ **
+ ** GNU Lesser General Public License Usage
+ ** Alternatively, this file may be used under the terms of the GNU Lesser
+ ** General Public License version 2.1 as published by the Free Software
+ ** Foundation and appearing in the file LICENSE.LGPL included in the
+ ** packaging of this file. Please review the following information to
+ ** ensure the GNU Lesser General Public License version 2.1 requirements
+ ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ **
+ ** In addition, as a special exception, Nokia gives you certain additional
+ ** rights. These rights are described in the Nokia Qt LGPL Exception
+ ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+ **
+ ** If you have questions regarding the use of this file, please contact
+ ** Nokia at qt-info@nokia.com.
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ **
+ ** $QT_END_LICENSE$
+ **
+ ****************************************************************************/
+
+#include <QtGui>
+#include "../shared/shared.h"
+
+class Child : public StaticWidget
+{
+Q_OBJECT
+public:
+ Child(QWidget *parent)
+ :StaticWidget(parent)
+ {
+ hue = 0;
+ }
+};
+
+QWidget *c;
+
+class TopLevel : public StaticWidget
+{
+Q_OBJECT
+public:
+ TopLevel()
+ {
+ resizeButton = new QPushButton("resize", this);
+ connect(resizeButton, SIGNAL(clicked()), SLOT(buttonResizeClicked()));
+
+ movebutton = new QPushButton("move", this);
+ connect(movebutton, SIGNAL(clicked()), SLOT(buttonMoveClicked()));
+ movebutton->move(70, 0);
+
+ moveResizebutton = new QPushButton("move + resize", this);
+ connect(moveResizebutton, SIGNAL(clicked()), SLOT(buttonMoveResizeClicked()));
+ moveResizebutton->move(150, 0);
+
+ scrollbutton = new QPushButton("scroll", this);
+ connect(scrollbutton, SIGNAL(clicked()), SLOT(buttonScrollClicked()));
+ scrollbutton->move(280, 0);
+ }
+
+public slots:
+ void buttonResizeClicked()
+ {
+ c->resize(c->size() + QSize(15, 15));
+ qDebug() << "child new size" << c->size();
+ }
+
+ void buttonMoveClicked()
+ {
+ c->move(c->pos() + QPoint(15, 15));
+ qDebug() << "child moved" << c->pos();
+ }
+
+ void buttonMoveResizeClicked()
+ {
+ QRect g = c->geometry();
+ g.adjust(15,15,30,30);
+ c->setGeometry(g);
+ qDebug() << "child moved" << c->pos() << "rezied" << c->size();
+ }
+
+
+ void buttonScrollClicked()
+ {
+ c->scroll(10, 10);
+ }
+
+protected:
+ QPushButton * resizeButton;
+ QPushButton * movebutton;
+ QPushButton * moveResizebutton;
+ QPushButton * scrollbutton;
+};
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ TopLevel bc;
+ bc.resize(500, 500);
+
+ c = new Child(&bc);
+ c->move(100, 100);
+ c->resize(100, 100);
+
+ QWidget *gc = new StaticWidget(c);
+ gc->move(20, 20);
+ gc->resize(50,50);
+
+
+ bc.show();
+ return app.exec();
+}
+
+#include "main.moc"
+
diff --git a/tests/manual/repaint/widget/widget.pro b/tests/manual/repaint/widget/widget.pro
new file mode 100644
index 0000000..c9d8f87
--- /dev/null
+++ b/tests/manual/repaint/widget/widget.pro
@@ -0,0 +1,15 @@
+######################################################################
+# Automatically generated by qmake (2.01a) Tue Nov 7 11:16:05 2006
+######################################################################
+
+TEMPLATE = app
+TARGET = widget
+DEPENDPATH += .
+INCLUDEPATH += .
+
+# Input
+HEADERS += ../shared/shared.h
+SOURCES += main.cpp
+CONFIG += qt warn_on debug create_prl link_prl
+OBJECTS_DIR = .obj/debug-shared
+MOC_DIR = .moc/debug-shared