diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-03-10 18:00:21 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-03-10 18:00:21 (GMT) |
commit | a747e171d316b25ba10dc36f6d54d1cbecad5c32 (patch) | |
tree | eb2cb8b2c5d8c2cc58e9a4924efa1f81bfa87a17 /tests | |
parent | b80466364fe6c6ca030b884f2d8df94bdfa477b9 (diff) | |
parent | 0d8964f78582a144ee5e96f40fcb6240d2e58a46 (diff) | |
download | Qt-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')
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 |