Changeset 561 for trunk/src/sql/models
- Timestamp:
- Feb 11, 2010, 11:19:06 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk
-
Property svn:mergeinfo
set to (toggle deleted branches)
/branches/vendor/nokia/qt/4.6.1 merged eligible /branches/vendor/nokia/qt/current merged eligible /branches/vendor/trolltech/qt/current 3-149
-
Property svn:mergeinfo
set to (toggle deleted branches)
-
trunk/src/sql/models/qsqlquerymodel.cpp
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtSql module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** … … 315 315 bool columnsChanged = (newRec != d->rec); 316 316 bool hasQuerySize = query.driver()->hasFeature(QSqlDriver::QuerySize); 317 bool hasNewData = (newRec != QSqlRecord()) || !query.lastError().isValid(); 317 318 318 319 if (d->colOffsets.size() != newRec.count() || columnsChanged) … … 329 330 d->query = query; 330 331 d->rec = newRec; 331 332 332 333 if (mustClearModel) 333 334 endRemoveRows(); 334 335 d->atEnd = false; 336 337 if (columnsChanged )335 336 d->atEnd = false; 337 338 if (columnsChanged && hasNewData) 338 339 reset(); 339 340 … … 418 419 { 419 420 Q_D(QSqlQueryModel); 420 if (orientation != Qt::Horizontal || section < 0 )421 if (orientation != Qt::Horizontal || section < 0 || columnCount() <= section) 421 422 return false; 422 423 -
trunk/src/sql/models/qsqlquerymodel.h
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtSql module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** -
trunk/src/sql/models/qsqlquerymodel_p.h
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtSql module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** -
trunk/src/sql/models/qsqlrelationaldelegate.cpp
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtSql module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** -
trunk/src/sql/models/qsqlrelationaldelegate.h
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtSql module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** -
trunk/src/sql/models/qsqlrelationaltablemodel.cpp
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtSql module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** … … 183 183 184 184 QSqlRecord record; 185 QString indexColumn; 186 QString displayColumn; 185 187 for (int i=0; i < model->rowCount(); ++i) { 186 188 record = model->record(i); 187 dictionary[record.field(rel.indexColumn()).value().toString()] = 188 record.field(rel.displayColumn()).value(); 189 190 indexColumn = rel.indexColumn(); 191 if (m_parent->database().driver()->isIdentifierEscaped(indexColumn, QSqlDriver::FieldName)) 192 indexColumn = m_parent->database().driver()->stripDelimiters(indexColumn, QSqlDriver::FieldName); 193 194 displayColumn = rel.displayColumn(); 195 if (m_parent->database().driver()->isIdentifierEscaped(displayColumn, QSqlDriver::FieldName)) 196 displayColumn = m_parent->database().driver()->stripDelimiters(displayColumn, QSqlDriver::FieldName); 197 198 dictionary[record.field(indexColumn).value().toString()] = 199 record.field(displayColumn).value(); 189 200 } 190 201 m_dictInitialized = true; … … 216 227 : QSqlTableModelPrivate() 217 228 {} 218 QString escapedRelationField(const QString &tableName, const QString &fieldName) const;229 QString relationField(const QString &tableName, const QString &fieldName) const; 219 230 220 231 int nameToIndex(const QString &name) const; … … 256 267 int QSqlRelationalTableModelPrivate::nameToIndex(const QString &name) const 257 268 { 258 return baseRec.indexOf(name); 269 QString fieldname = name; 270 if (db.driver()->isIdentifierEscaped(fieldname, QSqlDriver::FieldName)) 271 fieldname = db.driver()->stripDelimiters(fieldname, QSqlDriver::FieldName); 272 return baseRec.indexOf(fieldname); 259 273 } 260 274 … … 482 496 } 483 497 484 QString QSqlRelationalTableModelPrivate:: escapedRelationField(const QString &tableName,498 QString QSqlRelationalTableModelPrivate::relationField(const QString &tableName, 485 499 const QString &fieldName) const 486 500 { 487 QString esc;488 esc.reserve(tableName.size() + fieldName.size() + 1);489 esc.append(tableName).append(QLatin1Char('.')).append(fieldName);490 491 return db.driver()->escapeIdentifier(esc, QSqlDriver::FieldName);501 QString ret; 502 ret.reserve(tableName.size() + fieldName.size() + 1); 503 ret.append(tableName).append(QLatin1Char('.')).append(fieldName); 504 505 return ret; 492 506 } 493 507 … … 515 529 // Count how many times each field name occurs in the record 516 530 QHash<QString, int> fieldNames; 531 QStringList fieldList; 517 532 for (int i = 0; i < rec.count(); ++i) { 518 533 QSqlRelation relation = d->relations.value(i, nullRelation).rel; 519 534 QString name; 520 535 if (relation.isValid()) 536 { 521 537 // Count the display column name, not the original foreign key 522 538 name = relation.displayColumn(); 539 if (d->db.driver()->isIdentifierEscaped(name, QSqlDriver::FieldName)) 540 name = d->db.driver()->stripDelimiters(name, QSqlDriver::FieldName); 541 542 QSqlRecord rec = database().record(relation.tableName()); 543 for (int i = 0; i < rec.count(); ++i) { 544 if (name.compare(rec.fieldName(i), Qt::CaseInsensitive) == 0) { 545 name = rec.fieldName(i); 546 break; 547 } 548 } 549 } 523 550 else 524 551 name = rec.fieldName(i); 525 552 fieldNames.insert(name, fieldNames.value(name, 0) + 1); 553 fieldList.append(name); 526 554 } 527 555 … … 532 560 if (!fList.isEmpty()) 533 561 fList.append(QLatin1String(", ")); 534 fList.append(d-> escapedRelationField(relTableAlias,relation.displayColumn()));562 fList.append(d->relationField(relTableAlias,relation.displayColumn())); 535 563 536 564 // If there are duplicate field names they must be aliased 537 if (fieldNames.value(relation.displayColumn()) > 1) { 538 fList.append(QString::fromLatin1(" AS %1_%2").arg(relation.tableName()).arg(relation.displayColumn())); 565 if (fieldNames.value(fieldList[i]) > 1) { 566 QString relTableName = relation.tableName().section(QChar::fromLatin1('.'), -1, -1); 567 if (d->db.driver()->isIdentifierEscaped(relTableName, QSqlDriver::TableName)) 568 relTableName = d->db.driver()->stripDelimiters(relTableName, QSqlDriver::TableName); 569 QString displayColumn = relation.displayColumn(); 570 if (d->db.driver()->isIdentifierEscaped(displayColumn, QSqlDriver::FieldName)) 571 displayColumn = d->db.driver()->stripDelimiters(displayColumn, QSqlDriver::FieldName); 572 fList.append(QString::fromLatin1(" AS %1_%2_%3").arg(relTableName).arg(displayColumn).arg(fieldNames.value(fieldList[i]))); 573 fieldNames.insert(fieldList[i], fieldNames.value(fieldList[i])-1); 539 574 } 540 575 541 576 // this needs fixing!! the below if is borken. 542 if (!tables.contains(relation.tableName())) 543 tables.append(d->db.driver()->escapeIdentifier(relation.tableName(),QSqlDriver::TableName) 544 .append(QLatin1String(" ")) 545 .append(d->db.driver()->escapeIdentifier(relTableAlias, QSqlDriver::TableName))); 577 tables.append(relation.tableName().append(QLatin1Char(' ')).append(relTableAlias)); 546 578 if(!where.isEmpty()) 547 579 where.append(QLatin1String(" AND ")); 548 where.append(d-> escapedRelationField(tableName(), rec.fieldName(i)));580 where.append(d->relationField(tableName(), d->db.driver()->escapeIdentifier(rec.fieldName(i), QSqlDriver::FieldName))); 549 581 where.append(QLatin1String(" = ")); 550 where.append(d-> escapedRelationField(relTableAlias, relation.indexColumn()));582 where.append(d->relationField(relTableAlias, relation.indexColumn())); 551 583 } else { 552 584 if (!fList.isEmpty()) 553 585 fList.append(QLatin1String(", ")); 554 fList.append(d-> escapedRelationField(tableName(), rec.fieldName(i)));586 fList.append(d->relationField(tableName(), d->db.driver()->escapeIdentifier(rec.fieldName(i), QSqlDriver::FieldName))); 555 587 } 556 588 } … … 561 593 if(!tList.isEmpty()) 562 594 tList.prepend(QLatin1String(", ")); 563 tList.prepend( d->db.driver()->escapeIdentifier(tableName(),QSqlDriver::TableName));595 tList.prepend(tableName()); 564 596 query.append(QLatin1String("SELECT ")); 565 597 query.append(fList).append(QLatin1String(" FROM ")).append(tList); … … 691 723 692 724 QString s = QLatin1String("ORDER BY "); 693 s.append(d-> escapedRelationField(QLatin1String("relTblAl_") + QString::number(d->sortColumn),725 s.append(d->relationField(QLatin1String("relTblAl_") + QString::number(d->sortColumn), 694 726 rel.displayColumn())); 695 727 s += d->sortOrder == Qt::AscendingOrder ? QLatin1String(" ASC") : QLatin1String(" DESC"); -
trunk/src/sql/models/qsqlrelationaltablemodel.h
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtSql module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** -
trunk/src/sql/models/qsqltablemodel.cpp
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtSql module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** … … 99 99 int QSqlTableModelPrivate::nameToIndex(const QString &name) const 100 100 { 101 return rec.indexOf(name); 101 QString fieldname = name; 102 if (db.driver()->isIdentifierEscaped(fieldname, QSqlDriver::FieldName)) 103 fieldname = db.driver()->stripDelimiters(fieldname, QSqlDriver::FieldName); 104 return rec.indexOf(fieldname); 102 105 } 103 106 … … 203 206 } 204 207 for (i = 0; i < whereValues.count(); ++i) { 205 if (whereValues.isGenerated(i) )208 if (whereValues.isGenerated(i) && !whereValues.isNull(i)) 206 209 editQuery.addBindValue(whereValues.value(i)); 207 210 } … … 368 371 Q_D(QSqlTableModel); 369 372 clear(); 370 if(d->db.tables().contains(tableName.toUpper())) 371 d->tableName = tableName.toUpper(); 372 else 373 d->tableName = tableName; 373 d->tableName = tableName; 374 374 d->initRecordAndPrimaryIndex(); 375 375 d->initColOffsets(d->rec.count()); … … 407 407 setQuery(qu); 408 408 409 if (!qu.isActive() ) {409 if (!qu.isActive() || lastError().isValid()) { 410 410 // something went wrong - revert to non-select state 411 411 d->initRecordAndPrimaryIndex(); … … 539 539 if (isOk) 540 540 select(); 541 emit dataChanged(index, index); 541 542 break; } 542 543 case OnRowChange: … … 559 560 row.op = QSqlTableModelPrivate::Update; 560 561 row.rec = d->rec; 561 562 row.primaryValues = d->primaryValues(indexInQuery(index).row()); 562 563 } 563 564 row.rec.setValue(index.column(), value); … … 669 670 emit beforeDelete(row); 670 671 671 QSqlRecord rec =d->primaryValues(row);672 const QSqlRecord whereValues = d->strategy == OnManualSubmit ? d->cache[row].primaryValues : d->primaryValues(row); 672 673 bool prepStatement = d->db.driver()->hasFeature(QSqlDriver::PreparedQueries); 673 674 QString stmt = d->db.driver()->sqlStatement(QSqlDriver::DeleteStatement, … … 677 678 QString where = d->db.driver()->sqlStatement(QSqlDriver::WhereStatement, 678 679 d->tableName, 679 rec,680 whereValues, 680 681 prepStatement); 681 682 … … 687 688 stmt.append(QLatin1Char(' ')).append(where); 688 689 689 return d->exec(stmt, prepStatement, rec);690 return d->exec(stmt, prepStatement, whereValues); 690 691 } 691 692 … … 977 978 return s; 978 979 979 QString table = d->db.driver()->escapeIdentifier(d->tableName, QSqlDriver::TableName); 980 QString table = d->tableName; 981 //we can safely escape the field because it would have been obtained from the database 982 //and have the correct case 980 983 QString field = d->db.driver()->escapeIdentifier(f.name(), QSqlDriver::FieldName); 981 984 s.append(QLatin1String("ORDER BY ")).append(table).append(QLatin1Char('.')).append(field); … … 1097 1100 else { 1098 1101 d->cache[idx].op = QSqlTableModelPrivate::Delete; 1102 d->cache[idx].primaryValues = d->primaryValues(indexInQuery(createIndex(idx, 0)).row()); 1099 1103 emit headerDataChanged(Qt::Vertical, idx, idx); 1100 1104 } … … 1318 1322 mrow.primaryValues = d->primaryValues(indexInQuery(createIndex(row, 0)).row()); 1319 1323 } 1324 QString fieldName; 1320 1325 for (int i = 0; i < record.count(); ++i) { 1321 int idx = mrow.rec.indexOf(record.fieldName(i)); 1326 fieldName = record.fieldName(i); 1327 if (d->db.driver()->isIdentifierEscaped(fieldName, QSqlDriver::FieldName)) 1328 fieldName = d->db.driver()->stripDelimiters(fieldName, QSqlDriver::FieldName); 1329 int idx = mrow.rec.indexOf(fieldName); 1322 1330 if (idx == -1) 1323 1331 isOk = false; -
trunk/src/sql/models/qsqltablemodel.h
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtSql module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 ** -
trunk/src/sql/models/qsqltablemodel_p.h
r2 r561 2 2 ** 3 3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). 4 ** Contact: Qt Software Information (qt-info@nokia.com) 4 ** All rights reserved. 5 ** Contact: Nokia Corporation (qt-info@nokia.com) 5 6 ** 6 7 ** This file is part of the QtSql module of the Qt Toolkit. … … 21 22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. 22 23 ** 23 ** In addition, as a special exception, Nokia gives you certain 24 ** additional rights. These rights are described in the Nokia Qt LGPL 25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this 26 ** package. 24 ** In addition, as a special exception, Nokia gives you certain additional 25 ** rights. These rights are described in the Nokia Qt LGPL Exception 26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. 27 27 ** 28 28 ** GNU General Public License Usage … … 34 34 ** met: http://www.gnu.org/copyleft/gpl.html. 35 35 ** 36 ** If you are unsure which license is appropriate for your use, please37 ** contact the sales department at qt-sales@nokia.com.36 ** If you have questions regarding the use of this file, please contact 37 ** Nokia at qt-info@nokia.com. 38 38 ** $QT_END_LICENSE$ 39 39 **
Note:
See TracChangeset
for help on using the changeset viewer.