diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2011-12-06 19:30:48 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2011-12-06 19:30:48 (GMT) |
commit | 8a390046adddb8df3ddcf3a421f6f547e6cfe7aa (patch) | |
tree | 8b8879cea103c26956067adf2e66dfaf7edeea0c | |
parent | e1a6e877e5d3acfb29b291e946e836fbe3e25cb9 (diff) | |
parent | 3b6324bf11f31d09424297c5e789e5ce4f0afbb7 (diff) | |
download | Qt-8a390046adddb8df3ddcf3a421f6f547e6cfe7aa.zip Qt-8a390046adddb8df3ddcf3a421f6f547e6cfe7aa.tar.gz Qt-8a390046adddb8df3ddcf3a421f6f547e6cfe7aa.tar.bz2 |
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-symbian-staging into master-integration
* 'master' of scm.dev.nokia.troll.no:qt/qt-symbian-staging:
Symbian: allow apps to disable GL multisampling
QSqlRelationalTableModel doesn't follow relations on the first column
symbian - don't export qsymbianbearer.qtplugin twice
-rw-r--r-- | src/opengl/qgl_symbian.cpp | 5 | ||||
-rw-r--r-- | src/s60installs/s60installs.pro | 6 | ||||
-rw-r--r-- | src/sql/models/qsqlrelationaltablemodel.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp | 55 |
4 files changed, 63 insertions, 5 deletions
diff --git a/src/opengl/qgl_symbian.cpp b/src/opengl/qgl_symbian.cpp index 94c63fc..0148304 100644 --- a/src/opengl/qgl_symbian.cpp +++ b/src/opengl/qgl_symbian.cpp @@ -181,7 +181,10 @@ bool QGLContext::chooseContext(const QGLContext* shareContext) // almost same as d->ownsEglContext = true; d->eglContext->setApi(QEgl::OpenGL); - if (!QSymbianGraphicsSystemEx::hasBCM2727()) { + // Allow apps to override ability to use multisampling by setting an environment variable. Eg: + // qputenv("QT_SYMBIAN_DISABLE_GL_MULTISAMPLE", "1"); + // Added to allow camera app to start with limited memory. + if (!QSymbianGraphicsSystemEx::hasBCM2727() && !qgetenv("QT_SYMBIAN_DISABLE_GL_MULTISAMPLE").toInt()) { // Most likely we have hw support for multisampling // so let's enable it. d->glFormat.setSampleBuffers(1); diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index 08c4829..d5281f4 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -34,9 +34,6 @@ symbian: { pluginLocations = $${EPOCROOT}epoc32/release/$(PLATFORM)/$(TARGET) bearerPluginLocation = $${EPOCROOT}epoc32/release/$(PLATFORM)/$(TARGET) bearerStubZ = $${EPOCROOT}$${HW_ZDIR}$${QT_PLUGINS_BASE_DIR}/bearer/qsymbianbearer$${QT_LIBINFIX}.qtplugin - BLD_INF_RULES.prj_exports += \ - "$$S60_INSTALLS_SOURCE_DIR/qsymbianbearer.qtplugin /$${HW_ZDIR}$${QT_PLUGINS_BASE_DIR}/bearer/qsymbianbearer$${QT_LIBINFIX}.qtplugin" \ - "$$S60_INSTALLS_SOURCE_DIR/qsymbianbearer.qtplugin /epoc32/winscw/c$${QT_PLUGINS_BASE_DIR}/bearer/qsymbianbearer$${QT_LIBINFIX}.qtplugin" } else { pluginLocations = $$QT_BUILD_TREE/plugins/s60 bearerPluginLocation = $$QT_BUILD_TREE/plugins/bearer @@ -54,6 +51,9 @@ symbian: { "ENDIF" \ " \"$$bearerStubZ\" - \"c:$$replace(QT_PLUGINS_BASE_DIR,/,\\)\\bearer\\qsymbianbearer$${QT_LIBINFIX}.qtplugin\"" qtlibraries.pkg_postrules += qts60plugindeployment + BLD_INF_RULES.prj_exports += \ + "$$S60_INSTALLS_SOURCE_DIR/qsymbianbearer.qtplugin /$${HW_ZDIR}$${QT_PLUGINS_BASE_DIR}/bearer/qsymbianbearer$${QT_LIBINFIX}.qtplugin" \ + "$$S60_INSTALLS_SOURCE_DIR/qsymbianbearer.qtplugin /epoc32/winscw/c$${QT_PLUGINS_BASE_DIR}/bearer/qsymbianbearer$${QT_LIBINFIX}.qtplugin" } else { # No need to deploy plugins for older platform versions when building on Symbian3 or later bearer_plugin.files = $$QT_BUILD_TREE/plugins/bearer/qsymbianbearer$${QT_LIBINFIX}.dll diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp index 0edfaf4..c5764a7 100644 --- a/src/sql/models/qsqlrelationaltablemodel.cpp +++ b/src/sql/models/qsqlrelationaltablemodel.cpp @@ -430,7 +430,7 @@ QVariant QSqlRelationalTableModel::data(const QModelIndex &index, int role) cons { Q_D(const QSqlRelationalTableModel); - if (role == Qt::DisplayRole && index.column() > 0 && index.column() < d->relations.count() && + if (role == Qt::DisplayRole && index.column() >= 0 && index.column() < d->relations.count() && d->relations.value(index.column()).isValid()) { QRelation &relation = d->relations[index.column()]; if (!relation.isDictionaryInitialized()) diff --git a/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp index 5f1a621..5ecf514 100644 --- a/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp +++ b/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp @@ -93,6 +93,7 @@ private slots: void whiteSpaceInIdentifiers(); void psqlSchemaTest(); void selectAfterUpdate(); + void relationOnFirstColumn(); private: void dropTestTables( QSqlDatabase db ); @@ -1490,5 +1491,59 @@ void tst_QSqlRelationalTableModel::selectAfterUpdate() QCOMPARE(model.data(model.index(0,2)), QVariant("mrs")); } +/** + This test case verifies bug fix for QTBUG-20038. + */ +void tst_QSqlRelationalTableModel::relationOnFirstColumn() +{ + QFETCH_GLOBAL(QString, dbName); + QSqlDatabase db = QSqlDatabase::database(dbName); + CHECK_DATABASE(db); + + QString testTable1 = qTableName("QTBUG_20038_test1", __FILE__); + QString testTable2 = qTableName("QTBUG_20038_test2", __FILE__); + tst_Databases::safeDropTables(db, QStringList() << testTable1 << testTable2); + + //prepare test1 table + QSqlQuery q(db); + QVERIFY_SQL(q, exec("CREATE TABLE " + testTable1 + " (val1 INTEGER, id1 INTEGER PRIMARY KEY);")); + QVERIFY_SQL(q, exec("DELETE FROM " + testTable1 + ";")); + QVERIFY_SQL(q, exec("INSERT INTO " + testTable1 + " (id1, val1) VALUES(1, 10);")); + QVERIFY_SQL(q, exec("INSERT INTO " + testTable1 + " (id1, val1) VALUES(2, 20);")); + QVERIFY_SQL(q, exec("INSERT INTO " + testTable1 + " (id1, val1) VALUES(3, 30);")); + + //prepare test2 table + QVERIFY_SQL(q, exec("CREATE TABLE " + testTable2 + " (id INTEGER PRIMARY KEY, name TEXT);")); + QVERIFY_SQL(q, exec("DELETE FROM " + testTable2 + ";")); + QVERIFY_SQL(q, exec("INSERT INTO " + testTable2 + " (id, name) VALUES (10, 'Hervanta');")); + QVERIFY_SQL(q, exec("INSERT INTO " + testTable2 + " (id, name) VALUES (20, 'Keskusta');")); + QVERIFY_SQL(q, exec("INSERT INTO " + testTable2 + " (id, name) VALUES (30, 'Annala');")); + QVERIFY_SQL(q, exec("INSERT INTO " + testTable2 + " (id, name) VALUES (40, 'Tammela');")); + QVERIFY_SQL(q, exec("INSERT INTO " + testTable2 + " (id, name) VALUES (50, 'Amuri');")); + + //set test model + QSqlRelationalTableModel model(NULL, db); + model.setTable(testTable1); + model.setRelation(0, QSqlRelation(testTable2, "id", "name")); + QVERIFY_SQL(model, select()); + + //verify the data + QCOMPARE(model.data(model.index(0, 0)), QVariant("Hervanta")); + QCOMPARE(model.data(model.index(1, 0)), QVariant("Keskusta")); + QCOMPARE(model.data(model.index(2, 0)), QVariant("Annala")); + + //modify the model data + QVERIFY_SQL(model, setData(model.index(0, 0), 40)); + QVERIFY_SQL(model, setData(model.index(1, 0), 50)); + QVERIFY_SQL(model, setData(model.index(2, 0), 30)); + + //verify the data after modificaiton + QCOMPARE(model.data(model.index(0, 0)), QVariant("Tammela")); + QCOMPARE(model.data(model.index(1, 0)), QVariant("Amuri")); + QCOMPARE(model.data(model.index(2, 0)), QVariant("Annala")); + + tst_Databases::safeDropTables(db, QStringList() << testTable1 << testTable2); +} + QTEST_MAIN(tst_QSqlRelationalTableModel) #include "tst_qsqlrelationaltablemodel.moc" |