From a4e8b396bf6e4b4531b4bcf7b7901cfcd0002219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 24 Aug 2010 11:07:28 +0200 Subject: Adding placeholder for internal QFileSystemEntry class Reviewed-by: Thomas Zander --- src/corelib/io/io.pri | 6 ++-- src/corelib/io/qfilesystementry.cpp | 41 ++++++++++++++++++++++++ src/corelib/io/qfilesystementry_p.h | 64 +++++++++++++++++++++++++++++++++++++ 3 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 src/corelib/io/qfilesystementry.cpp create mode 100644 src/corelib/io/qfilesystementry_p.h diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index 3d964c6..bb38f42 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -29,7 +29,8 @@ HEADERS += \ io/qfsfileengine_p.h \ io/qfsfileengine_iterator_p.h \ io/qfilesystemwatcher.h \ - io/qfilesystemwatcher_p.h + io/qfilesystemwatcher_p.h \ + io/qfilesystementry_p.h SOURCES += \ io/qabstractfileengine.cpp \ @@ -52,7 +53,8 @@ SOURCES += \ io/qsettings.cpp \ io/qfsfileengine.cpp \ io/qfsfileengine_iterator.cpp \ - io/qfilesystemwatcher.cpp + io/qfilesystemwatcher.cpp \ + io/qfilesystementry.cpp win32 { SOURCES += io/qsettings_win.cpp diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp new file mode 100644 index 0000000..36ec012 --- /dev/null +++ b/src/corelib/io/qfilesystementry.cpp @@ -0,0 +1,41 @@ +/**************************************************************************** +** +** 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 QtCore 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$ +** +****************************************************************************/ + diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h new file mode 100644 index 0000000..2054f62 --- /dev/null +++ b/src/corelib/io/qfilesystementry_p.h @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** 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 QtCore 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$ +** +****************************************************************************/ + +#ifndef QFILESYSTEMENTRY_P_H_INCLUDED +#define QFILESYSTEMENTRY_P_H_INCLUDED + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +QT_BEGIN_NAMESPACE + +class QFileSystemEntry +{ +}; + +QT_END_NAMESPACE + +#endif // include guard -- cgit v0.12 From 68f5623c6efcc76163fc3c5f8154aecf90c618f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 24 Aug 2010 11:18:35 +0200 Subject: Adding internal classes QFileSystem{Engine,MetaData} Empty for now. Reviewed-by: Thomas Zander --- src/corelib/io/io.pri | 4 ++- src/corelib/io/qfilesystemengine_p.h | 64 ++++++++++++++++++++++++++++++++++ src/corelib/io/qfilesystemmetadata_p.h | 64 ++++++++++++++++++++++++++++++++++ 3 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 src/corelib/io/qfilesystemengine_p.h create mode 100644 src/corelib/io/qfilesystemmetadata_p.h diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index bb38f42..0334534 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -30,7 +30,9 @@ HEADERS += \ io/qfsfileengine_iterator_p.h \ io/qfilesystemwatcher.h \ io/qfilesystemwatcher_p.h \ - io/qfilesystementry_p.h + io/qfilesystementry_p.h \ + io/qfilesystemengine_p.h \ + io/qfilesystemmetadata_p.h SOURCES += \ io/qabstractfileengine.cpp \ diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h new file mode 100644 index 0000000..817f925 --- /dev/null +++ b/src/corelib/io/qfilesystemengine_p.h @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** 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 QtCore 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$ +** +****************************************************************************/ + +#ifndef QFILESYSTEMENGINE_P_H_INCLUDED +#define QFILESYSTEMENGINE_P_H_INCLUDED + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +QT_BEGIN_NAMESPACE + +class QFileSystemEngine +{ +}; + +QT_END_NAMESPACE + +#endif // include guard diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h new file mode 100644 index 0000000..c051bc5 --- /dev/null +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** 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 QtCore 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$ +** +****************************************************************************/ + +#ifndef QFILESYSTEMMETADATA_P_H_INCLUDED +#define QFILESYSTEMMETADATA_P_H_INCLUDED + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +QT_BEGIN_NAMESPACE + +class QFileSystemMetaData +{ +}; + +QT_END_NAMESPACE + +#endif // include guard -- cgit v0.12 From b5905172d3c68f9b64334d9a2796bdf1df65e607 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Tue, 24 Aug 2010 12:23:44 +0200 Subject: Add constructors and basic getters to QFilesystemEntry Reviewed-by: Prasanth Ullattil --- src/corelib/io/qfilesystementry.cpp | 67 +++++++++++++++++++++++++++++++++++++ src/corelib/io/qfilesystementry_p.h | 24 +++++++++++++ 2 files changed, 91 insertions(+) diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index 36ec012..1cc82ef 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -39,3 +39,70 @@ ** ****************************************************************************/ +#include "qfilesystementry_p.h" +#include "qdir.h" + +QFileSystemEntry::QFileSystemEntry(const QString &filePath) + : m_filePath(filePath), + m_lastSeparator(-2) +{ +} + +QFileSystemEntry::QFileSystemEntry(const QByteArray &nativeFilePath) + : m_nativeFilePath(nativeFilePath), + m_lastSeparator(-2) +{ +} + +QFileSystemEntry::QFileSystemEntry(const QByteArray &nativeFilePath, const QString &filePath) + : m_filePath(filePath), + m_nativeFilePath(nativeFilePath), + m_lastSeparator(-2) +{ +} + +QString QFileSystemEntry::filePath() const +{ + resolveFilePath(); + return m_filePath; +} + +QByteArray QFileSystemEntry::nativeFileName() const +{ + resolveNativeFilePath(); + return m_nativeFilePath; +} + +void QFileSystemEntry::resolveFilePath() const +{ + if (m_filePath.isEmpty() && !m_nativeFilePath.isEmpty()) { + m_filePath = QDir::fromNativeSeparators(QString::fromLocal8Bit(m_nativeFilePath)); + } +} + +void QFileSystemEntry::resolveNativeFilePath() const +{ + if (!m_filePath.isEmpty() && m_nativeFilePath.isEmpty()) { + m_nativeFilePath = m_filePath.toLocal8Bit(); + } +} + +QString QFileSystemEntry::fileName() const +{ + findLastSeparator(); + return m_filePath.mid(m_lastSeparator + 1); +} + +void QFileSystemEntry::findLastSeparator() const +{ + resolveFilePath(); + if (m_lastSeparator == -2) { + m_lastSeparator = -1; + for (int i = m_filePath.size() - 1; i >= 0; --i) { + if (m_filePath[i].unicode() == '/') { + m_lastSeparator = i; + break; + } + } + } +} diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h index 2054f62..3e67174 100644 --- a/src/corelib/io/qfilesystementry_p.h +++ b/src/corelib/io/qfilesystementry_p.h @@ -53,10 +53,34 @@ // We mean it. // +#include +#include + QT_BEGIN_NAMESPACE class QFileSystemEntry { + QFileSystemEntry(const QString &filePath); + QFileSystemEntry(const QByteArray &nativeFilePath); + QFileSystemEntry(const QByteArray &nativeFilePath, const QString &filePath); + + QString filePath() const; + QString fileName() const; + QByteArray nativeFileName() const; + +private: + // creates the QString version out of the bytearray version + void resolveFilePath() const; + // creates the bytearray version out of the QString version + void resolveNativeFilePath() const; + void findLastSeparator() const; + + mutable QString m_filePath; // always has slashes as separator + mutable QByteArray m_nativeFilePath; // native encoding and separators + + mutable int m_lastSeparator : 16; + + int dummy : 16; }; QT_END_NAMESPACE -- cgit v0.12 From a5c215ac09e9ede853024fc69a0b74a7af820ea4 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Tue, 24 Aug 2010 13:54:05 +0200 Subject: Add some more methods to the QFileSystemEntry --- src/corelib/io/qfilesystementry.cpp | 87 ++++++++++++++++++++++++++++++++++--- src/corelib/io/qfilesystementry_p.h | 15 +++++-- 2 files changed, 94 insertions(+), 8 deletions(-) diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index 1cc82ef..3e8b8b2 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -44,20 +44,26 @@ QFileSystemEntry::QFileSystemEntry(const QString &filePath) : m_filePath(filePath), - m_lastSeparator(-2) + m_lastSeparator(-2), + m_firstDotInFileName(-2), + m_lastDotInFileName(0) { } QFileSystemEntry::QFileSystemEntry(const QByteArray &nativeFilePath) : m_nativeFilePath(nativeFilePath), - m_lastSeparator(-2) + m_lastSeparator(-2), + m_firstDotInFileName(-2), + m_lastDotInFileName(0) { } QFileSystemEntry::QFileSystemEntry(const QByteArray &nativeFilePath, const QString &filePath) : m_filePath(filePath), m_nativeFilePath(nativeFilePath), - m_lastSeparator(-2) + m_lastSeparator(-2), + m_firstDotInFileName(-2), + m_lastDotInFileName(0) { } @@ -83,7 +89,7 @@ void QFileSystemEntry::resolveFilePath() const void QFileSystemEntry::resolveNativeFilePath() const { if (!m_filePath.isEmpty() && m_nativeFilePath.isEmpty()) { - m_nativeFilePath = m_filePath.toLocal8Bit(); + m_nativeFilePath = QDir::toNativeSeparators(m_filePath).toLocal8Bit(); } } @@ -93,10 +99,37 @@ QString QFileSystemEntry::fileName() const return m_filePath.mid(m_lastSeparator + 1); } -void QFileSystemEntry::findLastSeparator() const +QString QFileSystemEntry::suffix() const +{ + findFileNameSeparators(); + + if (m_lastDotInFileName == -1) + return QString(); + + return m_filePath.mid(m_lastSeparator + m_lastDotInFileName + 1); +} + +QString QFileSystemEntry::completeSuffix() const +{ + findFileNameSeparators(); + if (m_firstDotInFileName == -1) + return QString(); + + return m_filePath.mid(m_lastSeparator + m_firstDotInFileName + 1); +} + +bool QFileSystemEntry::isAbsolute() const { resolveFilePath(); + return !m_filePath.isEmpty() && (m_filePath[0].unicode() == '/' /*|| hasScheme()*/); +} + +// private methods + +void QFileSystemEntry::findLastSeparator() const +{ if (m_lastSeparator == -2) { + resolveFilePath(); m_lastSeparator = -1; for (int i = m_filePath.size() - 1; i >= 0; --i) { if (m_filePath[i].unicode() == '/') { @@ -106,3 +139,47 @@ void QFileSystemEntry::findLastSeparator() const } } } + +void QFileSystemEntry::findFileNameSeparators() const +{ + if (m_firstDotInFileName == -2) { + resolveFilePath(); + int firstDotInFileName = -1; + int lastDotInFileName = -1; + int lastSeparator = m_lastSeparator; + + int stop; + if (lastSeparator < 0) { + lastSeparator = -1; + stop = 0; + } else { + stop = lastSeparator; + } + + int i = m_filePath.size() - 1; + for (; i >= stop; --i) { + if (m_filePath[i].unicode() == '.') { + firstDotInFileName = lastDotInFileName = i; + break; + } else if (m_filePath[i].unicode() == '/') { + lastSeparator = i; + break; + } + } + + if (lastSeparator != i) { + for (--i; i >= stop; --i) { + if (m_filePath[i].unicode() == '.') + firstDotInFileName = i; + else if (m_filePath[i].unicode() == '/') { + lastSeparator = i; + break; + } + } + } + + m_lastSeparator = lastSeparator; + m_firstDotInFileName = firstDotInFileName == -1 ? -1 : firstDotInFileName - lastSeparator; + m_lastDotInFileName = lastDotInFileName == -1 ? -1 : lastDotInFileName - firstDotInFileName - lastSeparator; + } +} diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h index 3e67174..1812b9f 100644 --- a/src/corelib/io/qfilesystementry_p.h +++ b/src/corelib/io/qfilesystementry_p.h @@ -67,20 +67,29 @@ class QFileSystemEntry QString filePath() const; QString fileName() const; QByteArray nativeFileName() const; + QString suffix() const; + QString completeSuffix() const; + bool isAbsolute() const; + bool isRelative() const { + return !isAbsolute(); + } private: // creates the QString version out of the bytearray version void resolveFilePath() const; // creates the bytearray version out of the QString version void resolveNativeFilePath() const; + // resolves the separator void findLastSeparator() const; + /// resolves the dots and the separator + void findFileNameSeparators() const; mutable QString m_filePath; // always has slashes as separator mutable QByteArray m_nativeFilePath; // native encoding and separators - mutable int m_lastSeparator : 16; - - int dummy : 16; + mutable int m_lastSeparator : 16; // index in m_filePath of last separator + mutable int m_firstDotInFileName : 11; // index after m_filePath for first dot (.) + mutable int m_lastDotInFileName : 5; // index after m_firstDotInFileName for last dot (.) }; QT_END_NAMESPACE -- cgit v0.12 From e6ad5637e5a482e81461166170d8327f896bcbc6 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Tue, 24 Aug 2010 14:47:41 +0200 Subject: Move QFileInfoPrivate methods to QFileInfoPrivate::Data (1st Round) Reviewed-by: Joao --- src/corelib/io/qfileinfo.cpp | 154 ++++++++++++++++++++++--------------------- src/corelib/io/qfileinfo_p.h | 25 ++++--- 2 files changed, 90 insertions(+), 89 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 61f7180..4671d8c 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -64,46 +64,45 @@ QFileInfoPrivate::~QFileInfoPrivate() data = 0; } -void QFileInfoPrivate::initFileEngine(const QString &file) +void QFileInfoPrivate::Data::initFileEngine(const QString &file) { - detach(); - delete data->fileEngine; - data->fileEngine = 0; - data->clear(); - data->fileEngine = QAbstractFileEngine::create(file); - data->fileName = file; + delete fileEngine; + fileEngine = 0; + clear(); + fileEngine = QAbstractFileEngine::create(file); + fileName = file; } -void QFileInfoPrivate::detach() +void QFileInfoPrivate::Data::detach(QFileInfoPrivate::Data *&data) { qAtomicDetach(data); } -QString QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName name) const +QString QFileInfoPrivate::Data::getFileName(QAbstractFileEngine::FileName name) const { - if (data->cache_enabled && !data->fileNames[(int)name].isNull()) - return data->fileNames[(int)name]; - QString ret = data->fileEngine->fileName(name); + if (cache_enabled && !fileNames[(int)name].isNull()) + return fileNames[(int)name]; + QString ret = fileEngine->fileName(name); if (ret.isNull()) ret = QLatin1String(""); - if (data->cache_enabled) - data->fileNames[(int)name] = ret; + if (cache_enabled) + fileNames[(int)name] = ret; return ret; } -QString QFileInfoPrivate::getFileOwner(QAbstractFileEngine::FileOwner own) const +QString QFileInfoPrivate::Data::getFileOwner(QAbstractFileEngine::FileOwner own) const { - if (data->cache_enabled && !data->fileOwners[(int)own].isNull()) - return data->fileOwners[(int)own]; - QString ret = data->fileEngine->owner(own); + if (cache_enabled && !fileOwners[(int)own].isNull()) + return fileOwners[(int)own]; + QString ret = fileEngine->owner(own); if (ret.isNull()) ret = QLatin1String(""); - if (data->cache_enabled) - data->fileOwners[(int)own] = ret; + if (cache_enabled) + fileOwners[(int)own] = ret; return ret; } -uint QFileInfoPrivate::getFileFlags(QAbstractFileEngine::FileFlags request) const +uint QFileInfoPrivate::Data::getFileFlags(QAbstractFileEngine::FileFlags request) const { // We split the testing into tests for for LinkType, BundleType, PermsMask // and the rest. @@ -118,7 +117,7 @@ uint QFileInfoPrivate::getFileFlags(QAbstractFileEngine::FileFlags request) cons uint cachedFlags = 0; if (request & (QAbstractFileEngine::FlagsMask | QAbstractFileEngine::TypesMask)) { - if (!data->getCachedFlag(CachedFileFlags)) { + if (!getCachedFlag(CachedFileFlags)) { req |= QAbstractFileEngine::FlagsMask; req |= QAbstractFileEngine::TypesMask; req &= (~QAbstractFileEngine::LinkType); @@ -128,14 +127,14 @@ uint QFileInfoPrivate::getFileFlags(QAbstractFileEngine::FileFlags request) cons } if (request & QAbstractFileEngine::LinkType) { - if (!data->getCachedFlag(CachedLinkTypeFlag)) { + if (!getCachedFlag(CachedLinkTypeFlag)) { req |= QAbstractFileEngine::LinkType; cachedFlags |= CachedLinkTypeFlag; } } if (request & QAbstractFileEngine::BundleType) { - if (!data->getCachedFlag(CachedBundleTypeFlag)) { + if (!getCachedFlag(CachedBundleTypeFlag)) { req |= QAbstractFileEngine::BundleType; cachedFlags |= CachedBundleTypeFlag; } @@ -143,30 +142,30 @@ uint QFileInfoPrivate::getFileFlags(QAbstractFileEngine::FileFlags request) cons } if (request & QAbstractFileEngine::PermsMask) { - if (!data->getCachedFlag(CachedPerms)) { + if (!getCachedFlag(CachedPerms)) { req |= QAbstractFileEngine::PermsMask; cachedFlags |= CachedPerms; } } if (req) { - if (data->cache_enabled) + if (cache_enabled) req &= (~QAbstractFileEngine::Refresh); else req |= QAbstractFileEngine::Refresh; - QAbstractFileEngine::FileFlags flags = data->fileEngine->fileFlags(req); - data->fileFlags |= uint(flags); - data->setCachedFlag(cachedFlags); + QAbstractFileEngine::FileFlags flags = fileEngine->fileFlags(req); + fileFlags |= uint(flags); + setCachedFlag(cachedFlags); } - return data->fileFlags & request; + return fileFlags & request; } -QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request) const +QDateTime &QFileInfoPrivate::Data::getFileTime(QAbstractFileEngine::FileTime request) const { - if (!data->cache_enabled) - data->clearFlags(); + if (!cache_enabled) + clearFlags(); uint cf; if (request == QAbstractFileEngine::CreationTime) cf = CachedCTime; @@ -174,11 +173,11 @@ QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request) cf = CachedMTime; else cf = CachedATime; - if (!data->getCachedFlag(cf)) { - data->fileTimes[request] = data->fileEngine->fileTime(request); - data->setCachedFlag(cf); + if (!getCachedFlag(cf)) { + fileTimes[request] = fileEngine->fileTime(request); + setCachedFlag(cf); } - return data->fileTimes[request]; + return fileTimes[request]; } //************* QFileInfo @@ -287,7 +286,8 @@ QFileInfo::QFileInfo() : d_ptr(new QFileInfoPrivate()) */ QFileInfo::QFileInfo(const QString &file) : d_ptr(new QFileInfoPrivate()) { - d_ptr->initFileEngine(file); + QFileInfoPrivate::Data::detach(d_ptr->data); + d_ptr->data->initFileEngine(file); } /*! @@ -301,7 +301,8 @@ QFileInfo::QFileInfo(const QString &file) : d_ptr(new QFileInfoPrivate()) */ QFileInfo::QFileInfo(const QFile &file) : d_ptr(new QFileInfoPrivate()) { - d_ptr->initFileEngine(file.fileName()); + QFileInfoPrivate::Data::detach(d_ptr->data); + d_ptr->data->initFileEngine(file.fileName()); } /*! @@ -318,7 +319,8 @@ QFileInfo::QFileInfo(const QFile &file) : d_ptr(new QFileInfoPrivate()) */ QFileInfo::QFileInfo(const QDir &dir, const QString &file) : d_ptr(new QFileInfoPrivate()) { - d_ptr->initFileEngine(dir.filePath(file)); + QFileInfoPrivate::Data::detach(d_ptr->data); + d_ptr->data->initFileEngine(dir.filePath(file)); } /*! @@ -490,7 +492,7 @@ QString QFileInfo::absoluteFilePath() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::AbsoluteName); + return d->data->getFileName(QAbstractFileEngine::AbsoluteName); } /*! @@ -507,7 +509,7 @@ QString QFileInfo::canonicalFilePath() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::CanonicalName); + return d->data->getFileName(QAbstractFileEngine::CanonicalName); } @@ -538,7 +540,7 @@ QString QFileInfo::absolutePath() const qWarning("QFileInfo::absolutePath: Constructed with empty filename"); return QLatin1String(""); } - return d->getFileName(QAbstractFileEngine::AbsolutePathName); + return d->data->getFileName(QAbstractFileEngine::AbsolutePathName); } /*! @@ -554,7 +556,7 @@ QString QFileInfo::canonicalPath() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::CanonicalPathName); + return d->data->getFileName(QAbstractFileEngine::CanonicalPathName); } /*! @@ -571,7 +573,7 @@ QString QFileInfo::path() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::PathName); + return d->data->getFileName(QAbstractFileEngine::PathName); } /*! @@ -610,8 +612,9 @@ bool QFileInfo::makeAbsolute() Q_D(QFileInfo); if (!d->data->fileEngine || !d->data->fileEngine->isRelativePath()) return false; - QString absFileName = d->getFileName(QAbstractFileEngine::AbsoluteName); - d->initFileEngine(absFileName); + QString absFileName = d->data->getFileName(QAbstractFileEngine::AbsoluteName); + QFileInfoPrivate::Data::detach(d_ptr->data); + d->data->initFileEngine(absFileName); return true; } @@ -626,7 +629,7 @@ bool QFileInfo::exists() const Q_D(const QFileInfo); if (!d->data->fileEngine) return false; - return d->getFileFlags(QAbstractFileEngine::ExistsFlag); + return d->data->getFileFlags(QAbstractFileEngine::ExistsFlag); } /*! @@ -639,7 +642,8 @@ bool QFileInfo::exists() const void QFileInfo::refresh() { Q_D(QFileInfo); - d->reset(); + QFileInfoPrivate::Data::detach(d->data); + d->data->clear(); } /*! @@ -653,7 +657,7 @@ QString QFileInfo::filePath() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::DefaultName); + return d->data->getFileName(QAbstractFileEngine::DefaultName); } /*! @@ -672,7 +676,7 @@ QString QFileInfo::fileName() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::BaseName); + return d->data->getFileName(QAbstractFileEngine::BaseName); } /*! @@ -692,7 +696,7 @@ QString QFileInfo::bundleName() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::BundleName); + return d->data->getFileName(QAbstractFileEngine::BundleName); } /*! @@ -716,7 +720,7 @@ QString QFileInfo::baseName() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::BaseName).section(QLatin1Char('.'), 0, 0); + return d->data->getFileName(QAbstractFileEngine::BaseName).section(QLatin1Char('.'), 0, 0); } /*! @@ -735,7 +739,7 @@ QString QFileInfo::completeBaseName() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - QString name = d->getFileName(QAbstractFileEngine::BaseName); + QString name = d->data->getFileName(QAbstractFileEngine::BaseName); int index = name.lastIndexOf(QLatin1Char('.')); return (index == -1) ? name : name.left(index); } @@ -756,7 +760,7 @@ QString QFileInfo::completeSuffix() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - QString fileName = d->getFileName(QAbstractFileEngine::BaseName); + QString fileName = d->data->getFileName(QAbstractFileEngine::BaseName); int firstDot = fileName.indexOf(QLatin1Char('.')); if (firstDot == -1) return QLatin1String(""); @@ -783,7 +787,7 @@ QString QFileInfo::suffix() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - QString fileName = d->getFileName(QAbstractFileEngine::BaseName); + QString fileName = d->data->getFileName(QAbstractFileEngine::BaseName); int lastDot = fileName.lastIndexOf(QLatin1Char('.')); if (lastDot == -1) return QLatin1String(""); @@ -848,7 +852,7 @@ bool QFileInfo::isReadable() const Q_D(const QFileInfo); if (!d->data->fileEngine) return false; - return d->getFileFlags(QAbstractFileEngine::ReadUserPerm); + return d->data->getFileFlags(QAbstractFileEngine::ReadUserPerm); } /*! @@ -861,7 +865,7 @@ bool QFileInfo::isWritable() const Q_D(const QFileInfo); if (!d->data->fileEngine) return false; - return d->getFileFlags(QAbstractFileEngine::WriteUserPerm); + return d->data->getFileFlags(QAbstractFileEngine::WriteUserPerm); } /*! @@ -874,7 +878,7 @@ bool QFileInfo::isExecutable() const Q_D(const QFileInfo); if (!d->data->fileEngine) return false; - return d->getFileFlags(QAbstractFileEngine::ExeUserPerm); + return d->data->getFileFlags(QAbstractFileEngine::ExeUserPerm); } /*! @@ -888,7 +892,7 @@ bool QFileInfo::isHidden() const Q_D(const QFileInfo); if (!d->data->fileEngine) return false; - return d->getFileFlags(QAbstractFileEngine::HiddenFlag); + return d->data->getFileFlags(QAbstractFileEngine::HiddenFlag); } /*! @@ -903,7 +907,7 @@ bool QFileInfo::isFile() const Q_D(const QFileInfo); if (!d->data->fileEngine) return false; - return d->getFileFlags(QAbstractFileEngine::FileType); + return d->data->getFileFlags(QAbstractFileEngine::FileType); } /*! @@ -917,7 +921,7 @@ bool QFileInfo::isDir() const Q_D(const QFileInfo); if (!d->data->fileEngine) return false; - return d->getFileFlags(QAbstractFileEngine::DirectoryType); + return d->data->getFileFlags(QAbstractFileEngine::DirectoryType); } @@ -933,7 +937,7 @@ bool QFileInfo::isBundle() const Q_D(const QFileInfo); if (!d->data->fileEngine) return false; - return d->getFileFlags(QAbstractFileEngine::BundleType); + return d->data->getFileFlags(QAbstractFileEngine::BundleType); } /*! @@ -958,7 +962,7 @@ bool QFileInfo::isSymLink() const Q_D(const QFileInfo); if (!d->data->fileEngine) return false; - return d->getFileFlags(QAbstractFileEngine::LinkType); + return d->data->getFileFlags(QAbstractFileEngine::LinkType); } /*! @@ -971,7 +975,7 @@ bool QFileInfo::isRoot() const Q_D(const QFileInfo); if (!d->data->fileEngine) return true; - return d->getFileFlags(QAbstractFileEngine::RootFlag); + return d->data->getFileFlags(QAbstractFileEngine::RootFlag); } /*! @@ -999,7 +1003,7 @@ QString QFileInfo::readLink() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::LinkName); + return d->data->getFileName(QAbstractFileEngine::LinkName); } /*! @@ -1017,7 +1021,7 @@ QString QFileInfo::owner() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileOwner(QAbstractFileEngine::OwnerUser); + return d->data->getFileOwner(QAbstractFileEngine::OwnerUser); } /*! @@ -1051,7 +1055,7 @@ QString QFileInfo::group() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QLatin1String(""); - return d->getFileOwner(QAbstractFileEngine::OwnerGroup); + return d->data->getFileOwner(QAbstractFileEngine::OwnerGroup); } /*! @@ -1088,7 +1092,7 @@ bool QFileInfo::permission(QFile::Permissions permissions) const Q_D(const QFileInfo); if (!d->data->fileEngine) return false; - return d->getFileFlags(QAbstractFileEngine::FileFlags((int)permissions)) == (uint)permissions; + return d->data->getFileFlags(QAbstractFileEngine::FileFlags((int)permissions)) == (uint)permissions; } /*! @@ -1100,7 +1104,7 @@ QFile::Permissions QFileInfo::permissions() const Q_D(const QFileInfo); if (!d->data->fileEngine) return 0; - return QFile::Permissions(d->getFileFlags(QAbstractFileEngine::PermsMask) & QAbstractFileEngine::PermsMask); + return QFile::Permissions(d->data->getFileFlags(QAbstractFileEngine::PermsMask) & QAbstractFileEngine::PermsMask); } @@ -1140,7 +1144,7 @@ QDateTime QFileInfo::created() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QDateTime(); - return d->getFileTime(QAbstractFileEngine::CreationTime); + return d->data->getFileTime(QAbstractFileEngine::CreationTime); } /*! @@ -1153,7 +1157,7 @@ QDateTime QFileInfo::lastModified() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QDateTime(); - return d->getFileTime(QAbstractFileEngine::ModificationTime); + return d->data->getFileTime(QAbstractFileEngine::ModificationTime); } /*! @@ -1169,7 +1173,7 @@ QDateTime QFileInfo::lastRead() const Q_D(const QFileInfo); if (!d->data->fileEngine) return QDateTime(); - return d->getFileTime(QAbstractFileEngine::AccessTime); + return d->data->getFileTime(QAbstractFileEngine::AccessTime); } /*! \internal @@ -1178,7 +1182,7 @@ QDateTime QFileInfo::lastRead() const void QFileInfo::detach() { Q_D(QFileInfo); - d->detach(); + QFileInfoPrivate::Data::detach(d->data); } /*! @@ -1207,7 +1211,7 @@ bool QFileInfo::caching() const void QFileInfo::setCaching(bool enable) { Q_D(QFileInfo); - detach(); + QFileInfoPrivate::Data::detach(d->data); d->data->cache_enabled = enable; } diff --git a/src/corelib/io/qfileinfo_p.h b/src/corelib/io/qfileinfo_p.h index 306ffe1..a1f5419 100644 --- a/src/corelib/io/qfileinfo_p.h +++ b/src/corelib/io/qfileinfo_p.h @@ -66,13 +66,6 @@ public: QFileInfoPrivate(const QFileInfo *copy=0); ~QFileInfoPrivate(); - void initFileEngine(const QString &); - - uint getFileFlags(QAbstractFileEngine::FileFlags) const; - QDateTime &getFileTime(QAbstractFileEngine::FileTime) const; - QString getFileName(QAbstractFileEngine::FileName) const; - QString getFileOwner(QAbstractFileEngine::FileOwner own) const; - enum { CachedFileFlags=0x01, CachedLinkTypeFlag=0x02, CachedBundleTypeFlag=0x04, CachedMTime=0x10, CachedCTime=0x20, CachedATime=0x40, CachedSize =0x08, CachedPerms=0x80 }; @@ -87,7 +80,7 @@ public: cachedFlags(0), cache_enabled(copy.cache_enabled), fileFlags(0), fileSize(0) {} inline ~Data() { delete fileEngine; } - inline void clearFlags() { + inline void clearFlags() const { fileFlags = 0; cachedFlags = 0; if (fileEngine) @@ -100,6 +93,15 @@ public: fileOwners[1].clear(); fileOwners[0].clear(); } + void initFileEngine(const QString &); + + uint getFileFlags(QAbstractFileEngine::FileFlags) const; + QDateTime &getFileTime(QAbstractFileEngine::FileTime) const; + QString getFileName(QAbstractFileEngine::FileName) const; + QString getFileOwner(QAbstractFileEngine::FileOwner own) const; + + static void detach(QFileInfoPrivate::Data *&data); + mutable QAtomicInt ref; QAbstractFileEngine *fileEngine; @@ -114,14 +116,9 @@ public: mutable QDateTime fileTimes[3]; inline bool getCachedFlag(uint c) const { return cache_enabled ? (cachedFlags & c) : 0; } - inline void setCachedFlag(uint c) + inline void setCachedFlag(uint c) const { if (cache_enabled) cachedFlags |= c; } } *data; - inline void reset() { - detach(); - data->clear(); - } - void detach(); }; QT_END_NAMESPACE -- cgit v0.12 From 46237ec0e73ce11bb55086a4917c2138ba529c58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 24 Aug 2010 14:32:43 +0200 Subject: Refactoring QDirPrivate::Data There was an unnecessary split of QDir's private data between QDirPrivate and QDirPrivate::Data. As a stepping stone towards merging the two, this moves everything into QDirPrivate::Data. Reviewed-by: Thomas Zander --- src/corelib/io/qdir.cpp | 182 ++++++++++++++++++++++++++---------------------- 1 file changed, 98 insertions(+), 84 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index ed51c5d..5d56529 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -89,46 +89,73 @@ public: QDirPrivate(const QDir *copy = 0); ~QDirPrivate(); - void updateFileLists() const; - void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *) const; - -#ifdef QT3_SUPPORT - QChar filterSepChar; - bool matchAllDirs; -#endif - static inline QChar getFilterSepChar(const QString &nameFilter) - { - QChar sep(QLatin1Char(';')); - int i = nameFilter.indexOf(sep, 0); - if (i == -1 && nameFilter.indexOf(QLatin1Char(' '), 0) != -1) - sep = QChar(QLatin1Char(' ')); - return sep; - } - static inline QStringList splitFilters(const QString &nameFilter, QChar sep = 0) { - if (sep == 0) - sep = getFilterSepChar(nameFilter); - QStringList ret = nameFilter.split(sep); - for (int i = 0; i < ret.count(); ++i) - ret[i] = ret[i].trimmed(); - return ret; - } - struct Data { inline Data() - : ref(1), fileEngine(0), listsDirty(1) + : ref(1), +#ifdef QT3_SUPPORT + filterSepChar(0), matchAllDirs(false), +#endif + fileEngine(0), listsDirty(1) {} inline Data(const Data ©) : ref(1), path(copy.path), nameFilters(copy.nameFilters), sort(copy.sort), - filters(copy.filters), fileEngine(0), listsDirty(1) + filters(copy.filters), +#ifdef QT3_SUPPORT + filterSepChar(copy.filterSepChar), matchAllDirs(copy.matchAllDirs), +#endif + fileEngine(0), listsDirty(1) {} inline ~Data() { delete fileEngine; } + void updateFileLists() const; + static void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *); + + static inline QChar getFilterSepChar(const QString &nameFilter) + { + QChar sep(QLatin1Char(';')); + int i = nameFilter.indexOf(sep, 0); + if (i == -1 && nameFilter.indexOf(QLatin1Char(' '), 0) != -1) + sep = QChar(QLatin1Char(' ')); + return sep; + } + + static inline QStringList splitFilters(const QString &nameFilter, QChar sep = 0) + { + if (sep == 0) + sep = getFilterSepChar(nameFilter); + QStringList ret = nameFilter.split(sep); + for (int i = 0; i < ret.count(); ++i) + ret[i] = ret[i].trimmed(); + return ret; + } + + static void detach(QDirPrivate::Data *&data, bool createFileEngine = true); + + inline void setPath(QString p) + { + if ((p.endsWith(QLatin1Char('/')) || p.endsWith(QLatin1Char('\\'))) + && p.length() > 1) { +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + if (!(p.length() == 3 && p.at(1) == QLatin1Char(':'))) +#endif + p.truncate(p.length() - 1); + } + + delete fileEngine; + fileEngine = QAbstractFileEngine::create(p); + + // set the path to be the qt friendly version so then we can operate on it using just / + path = fileEngine->fileName(QAbstractFileEngine::DefaultName); + clear(); + } + inline void clear() { listsDirty = 1; files.clear(); fileInfos.clear(); } + mutable QAtomicInt ref; QString path; @@ -136,42 +163,20 @@ public: QDir::SortFlags sort; QDir::Filters filters; +#ifdef QT3_SUPPORT + QChar filterSepChar; + bool matchAllDirs; +#endif mutable QAbstractFileEngine *fileEngine; mutable uint listsDirty : 1; mutable QStringList files; mutable QFileInfoList fileInfos; } *data; - inline void setPath(const QString &p) - { - detach(false); - QString path = p; - if ((path.endsWith(QLatin1Char('/')) || path.endsWith(QLatin1Char('\\'))) - && path.length() > 1) { -#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) - if (!(path.length() == 3 && path.at(1) == QLatin1Char(':'))) -#endif - path.truncate(path.length() - 1); - } - - delete data->fileEngine; - data->fileEngine = QAbstractFileEngine::create(path); - // set the path to be the qt friendly version so then we can operate on it using just / - data->path = data->fileEngine->fileName(QAbstractFileEngine::DefaultName); - data->clear(); - } - inline void reset() { - detach(); - data->clear(); - } - void detach(bool createFileEngine = true); }; QDirPrivate::QDirPrivate(const QDir *copy) -#ifdef QT3_SUPPORT - : filterSepChar(0), matchAllDirs(false) -#endif { if (copy) { copy->d_func()->data->ref.ref(); @@ -268,8 +273,8 @@ bool QDirSortItemComparator::operator()(const QDirSortItem &n1, const QDirSortIt return r < 0; } -inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l, - QStringList *names, QFileInfoList *infos) const +inline void QDirPrivate::Data::sortFileList(QDir::SortFlags sort, QFileInfoList &l, + QStringList *names, QFileInfoList *infos) { // names and infos are always empty lists or 0 here int n = l.size(); @@ -299,21 +304,21 @@ inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l, } } -inline void QDirPrivate::updateFileLists() const +inline void QDirPrivate::Data::updateFileLists() const { - if (data->listsDirty) { + if (listsDirty) { QFileInfoList l; - QDirIterator it(data->path, data->nameFilters, data->filters); + QDirIterator it(path, nameFilters, filters); while (it.hasNext()) { it.next(); l.append(it.fileInfo()); } - sortFileList(data->sort, l, &data->files, &data->fileInfos); - data->listsDirty = 0; + sortFileList(sort, l, &files, &fileInfos); + listsDirty = 0; } } -void QDirPrivate::detach(bool createFileEngine) +void QDirPrivate::Data::detach(QDirPrivate::Data *&data, bool createFileEngine) { qAtomicDetach(data); if (createFileEngine) { @@ -507,7 +512,8 @@ void QDirPrivate::detach(bool createFileEngine) QDir::QDir(const QString &path) : d_ptr(new QDirPrivate) { Q_D(QDir); - d->setPath(path.isEmpty() ? QString::fromLatin1(".") : path); + QDirPrivate::Data::detach(d->data, false); + d->data->setPath(path.isEmpty() ? QString::fromLatin1(".") : path); d->data->nameFilters = QStringList(QString::fromLatin1("*")); d->data->filters = AllEntries; d->data->sort = SortFlags(Name | IgnoreCase); @@ -535,7 +541,8 @@ QDir::QDir(const QString &path, const QString &nameFilter, SortFlags sort, Filters filters) : d_ptr(new QDirPrivate) { Q_D(QDir); - d->setPath(path.isEmpty() ? QString::fromLatin1(".") : path); + QDirPrivate::Data::detach(d->data, false); + d->data->setPath(path.isEmpty() ? QString::fromLatin1(".") : path); d->data->nameFilters = QDir::nameFiltersFromString(nameFilter); bool empty = d->data->nameFilters.isEmpty(); if (!empty) { @@ -590,7 +597,8 @@ QDir::~QDir() void QDir::setPath(const QString &path) { Q_D(QDir); - d->setPath(path); + QDirPrivate::Data::detach(d->data, false); + d->data->setPath(path); } /*! @@ -954,7 +962,8 @@ void QDir::setNameFilters(const QStringList &nameFilters) { Q_D(QDir); - d->reset(); + QDirPrivate::Data::detach(d->data); + d->data->clear(); d->data->nameFilters = nameFilters; } @@ -1143,7 +1152,8 @@ void QDir::setFilter(Filters filters) { Q_D(QDir); - d->reset(); + QDirPrivate::Data::detach(d->data); + d->data->clear(); d->data->filters = filters; } @@ -1201,7 +1211,8 @@ void QDir::setSorting(SortFlags sort) { Q_D(QDir); - d->reset(); + QDirPrivate::Data::detach(d->data); + d->data->clear(); d->data->sort = sort; } @@ -1216,7 +1227,7 @@ uint QDir::count() const { Q_D(const QDir); - d->updateFileLists(); + d->data->updateFileLists(); return d->data->files.count(); } @@ -1231,7 +1242,7 @@ QString QDir::operator[](int pos) const { Q_D(const QDir); - d->updateFileLists(); + d->data->updateFileLists(); return d->data->files[pos]; } @@ -1309,14 +1320,14 @@ QStringList QDir::entryList(const QStringList &nameFilters, Filters filters, if (filters == NoFilter) filters = d->data->filters; #ifdef QT3_SUPPORT - if (d->matchAllDirs) + if (d->data->matchAllDirs) filters |= AllDirs; #endif if (sort == NoSort) sort = d->data->sort; if (filters == d->data->filters && sort == d->data->sort && nameFilters == d->data->nameFilters) { - d->updateFileLists(); + d->data->updateFileLists(); return d->data->files; } @@ -1327,7 +1338,7 @@ QStringList QDir::entryList(const QStringList &nameFilters, Filters filters, l.append(it.fileInfo()); } QStringList ret; - d->sortFileList(sort, l, &ret, 0); + d->data->sortFileList(sort, l, &ret, 0); return ret; } @@ -1355,14 +1366,14 @@ QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filter if (filters == NoFilter) filters = d->data->filters; #ifdef QT3_SUPPORT - if (d->matchAllDirs) + if (d->data->matchAllDirs) filters |= AllDirs; #endif if (sort == NoSort) sort = d->data->sort; if (filters == d->data->filters && sort == d->data->sort && nameFilters == d->data->nameFilters) { - d->updateFileLists(); + d->data->updateFileLists(); return d->data->fileInfos; } @@ -1373,7 +1384,7 @@ QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filter l.append(it.fileInfo()); } QFileInfoList ret; - d->sortFileList(sort, l, 0, &ret); + d->data->sortFileList(sort, l, 0, &ret); return ret; } @@ -1595,7 +1606,7 @@ bool QDir::makeAbsolute() // ### What do the return values signify? QString absolutePath = d->data->fileEngine->fileName(QAbstractFileEngine::AbsoluteName); if (QDir::isRelativePath(absolutePath)) return false; - d->detach(); + QDirPrivate::Data::detach(d->data); d->data->path = absolutePath; d->data->fileEngine->setFileName(absolutePath); if (!(d->data->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType)) @@ -1661,7 +1672,8 @@ QDir &QDir::operator=(const QString &path) { Q_D(QDir); - d->setPath(path); + QDirPrivate::Data::detach(d->data, false); + d->data->setPath(path); return *this; } @@ -2153,7 +2165,8 @@ void QDir::refresh() const { Q_D(const QDir); - const_cast(d)->reset(); + QDirPrivate::Data::detach(const_cast(d)->data); + d->data->clear(); } /*! @@ -2165,7 +2178,7 @@ void QDir::refresh() const */ QStringList QDir::nameFiltersFromString(const QString &nameFilter) { - return QDirPrivate::splitFilters(nameFilter); + return QDirPrivate::Data::splitFilters(nameFilter); } /*! @@ -2230,7 +2243,7 @@ QStringList QDir::nameFiltersFromString(const QString &nameFilter) bool QDir::matchAllDirs() const { Q_D(const QDir); - return d->matchAllDirs; + return d->data->matchAllDirs; } @@ -2243,8 +2256,9 @@ void QDir::setMatchAllDirs(bool on) { Q_D(QDir); - d->reset(); - d->matchAllDirs = on; + QDirPrivate::Data::detach(d->data); + d->data->clear(); + d->data->matchAllDirs = on; } /*! @@ -2254,7 +2268,7 @@ QString QDir::nameFilter() const { Q_D(const QDir); - return nameFilters().join(QString(d->filterSepChar)); + return nameFilters().join(QString(d->data->filterSepChar)); } /*! @@ -2281,8 +2295,8 @@ void QDir::setNameFilter(const QString &nameFilter) { Q_D(QDir); - d->filterSepChar = QDirPrivate::getFilterSepChar(nameFilter); - setNameFilters(QDirPrivate::splitFilters(nameFilter, d->filterSepChar)); + d->data->filterSepChar = QDirPrivate::Data::getFilterSepChar(nameFilter); + setNameFilters(QDirPrivate::Data::splitFilters(nameFilter, d->data->filterSepChar)); } /*! -- cgit v0.12 From dba66b94d255c7cd0d3c9d2717f250194e4edac9 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 25 Aug 2010 10:30:39 +0200 Subject: Add unit test for qfilesystementry Reviewed-by: Joao --- src/corelib/io/qfilesystementry.cpp | 11 +- src/corelib/io/qfilesystementry_p.h | 3 +- tests/auto/corelib.pro | 1 + tests/auto/qfilesystementry/qfilesystementry.pro | 7 + .../auto/qfilesystementry/tst_qfilesystementry.cpp | 154 +++++++++++++++++++++ 5 files changed, 172 insertions(+), 4 deletions(-) create mode 100644 tests/auto/qfilesystementry/qfilesystementry.pro create mode 100644 tests/auto/qfilesystementry/tst_qfilesystementry.cpp diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index 3e8b8b2..d3b3225 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -73,7 +73,7 @@ QString QFileSystemEntry::filePath() const return m_filePath; } -QByteArray QFileSystemEntry::nativeFileName() const +QByteArray QFileSystemEntry::nativeFilePath() const { resolveNativeFilePath(); return m_nativeFilePath; @@ -106,7 +106,7 @@ QString QFileSystemEntry::suffix() const if (m_lastDotInFileName == -1) return QString(); - return m_filePath.mid(m_lastSeparator + m_lastDotInFileName + 1); + return m_filePath.mid(m_lastSeparator + m_firstDotInFileName + m_lastDotInFileName + 1); } QString QFileSystemEntry::completeSuffix() const @@ -180,6 +180,11 @@ void QFileSystemEntry::findFileNameSeparators() const m_lastSeparator = lastSeparator; m_firstDotInFileName = firstDotInFileName == -1 ? -1 : firstDotInFileName - lastSeparator; - m_lastDotInFileName = lastDotInFileName == -1 ? -1 : lastDotInFileName - firstDotInFileName - lastSeparator; + if (lastDotInFileName == -1) + m_lastDotInFileName = -1; + else if (firstDotInFileName == lastDotInFileName) + m_lastDotInFileName = 0; + else + m_lastDotInFileName = firstDotInFileName - lastSeparator; } } diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h index 1812b9f..68af24d 100644 --- a/src/corelib/io/qfilesystementry_p.h +++ b/src/corelib/io/qfilesystementry_p.h @@ -60,13 +60,14 @@ QT_BEGIN_NAMESPACE class QFileSystemEntry { +public: QFileSystemEntry(const QString &filePath); QFileSystemEntry(const QByteArray &nativeFilePath); QFileSystemEntry(const QByteArray &nativeFilePath, const QString &filePath); QString filePath() const; QString fileName() const; - QByteArray nativeFileName() const; + QByteArray nativeFilePath() const; QString suffix() const; QString completeSuffix() const; bool isAbsolute() const; diff --git a/tests/auto/corelib.pro b/tests/auto/corelib.pro index d1d0940..5ac0c81 100644 --- a/tests/auto/corelib.pro +++ b/tests/auto/corelib.pro @@ -101,6 +101,7 @@ SUBDIRS=\ qwritelocker \ selftests \ utf8 \ + qfilesystementry \ symbian:SUBDIRS -= \ qtconcurrentfilter \ diff --git a/tests/auto/qfilesystementry/qfilesystementry.pro b/tests/auto/qfilesystementry/qfilesystementry.pro new file mode 100644 index 0000000..9f75388 --- /dev/null +++ b/tests/auto/qfilesystementry/qfilesystementry.pro @@ -0,0 +1,7 @@ +load(qttest_p4) + +SOURCES += tst_qfilesystementry.cpp \ + ../../../src/corelib/io/qfilesystementry.cpp +HEADERS += ../../../src/corelib/io/qfilesystementry_p.h +QT = core + diff --git a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp new file mode 100644 index 0000000..081beb6 --- /dev/null +++ b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp @@ -0,0 +1,154 @@ +/**************************************************************************** +** +** 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 + +#include + +#if defined(Q_FS_FAT) || defined(Q_OS_OS2EMX) || defined(Q_OS_SYMBIAN) +# define WIN_STUFF +#endif + +//TESTED_CLASS= +//TESTED_FILES= + +class tst_QFileSystemEntry : public QObject +{ + Q_OBJECT + +private slots: + void getSetCheck_data(); + void getSetCheck(); +}; + +void tst_QFileSystemEntry::getSetCheck_data() +{ + QTest::addColumn("nativeFilePath"); + QTest::addColumn("filepath"); + QTest::addColumn("filename"); + QTest::addColumn("suffix"); + QTest::addColumn("completeSuffix"); + QTest::addColumn("absolute"); + + QTest::newRow("simple") +#if defined(WIN_STUFF) + << QByteArray("A:\\home\\qt\\in\\a\\dir.tar.gz") + << "A:/home/qt/in/a/dir.tar.gz" +#else + << QByteArray("/home/qt/in/a/dir.tar.gz") + << "/home/qt/in/a/dir.tar.gz" +#endif + << "dir.tar.gz" << "gz" << "tar.gz" << true; + + QTest::newRow("relative") +#if defined(WIN_STUFF) + << QByteArray("\\in\\a\\dir.tar.gz") + << "/in/a/dir.tar.gz" +#else + << QByteArray("in/a/dir.tar.gz") + << "in/a/dir.tar.gz" +#endif + << "dir.tar.gz" << "gz" << "tar.gz" << false; + + QTest::newRow("noSuffix") +#if defined(WIN_STUFF) + << QByteArray("myDir\\myfile") +#else + << QByteArray("myDir/myfile") +#endif + << "myDir/myfile" << "myfile" << "" << "" << false; + + QTest::newRow("noLongSuffix") +#if defined(WIN_STUFF) + << QByteArray("myDir\\myfile.txt") +#else + << QByteArray("myDir/myfile.txt") +#endif + << "myDir/myfile.txt" << "myfile.txt" << "txt" << "txt" << false; + + QTest::newRow("endingSlash") +#if defined(WIN_STUFF) + << QByteArray("myDir\\myfile.bla\\") +#else + << QByteArray("myDir/myfile.bla/") +#endif + << "myDir/myfile.bla/" << "" << "" << "" << false; + +#if defined(WIN_STUFF) + QTest::newRow("absolutePath") + << QByteArray("A:dir\\without\\leading\\backslash.bat") + << "A:dir/without/leading/backslash.bat" << "backslash.bat" << "bat" << "bat" << true; +#else + QTest::newRow("relativePath") + << QByteArray("A:dir/without/leading/backslash.bat") + << "A:dir/without/leading/backslash.bat" << "backslash.bat" << "bat" << "bat" << false; +#endif +} + +void tst_QFileSystemEntry::getSetCheck() +{ + QFETCH(QByteArray, nativeFilePath); + QFETCH(QString, filepath); + QFETCH(QString, filename); + QFETCH(QString, suffix); + QFETCH(QString, completeSuffix); + QFETCH(bool, absolute); + + QFileSystemEntry entry1(filepath); + QCOMPARE(entry1.filePath(), filepath); + QCOMPARE(entry1.nativeFilePath(), nativeFilePath); + QCOMPARE(entry1.fileName(), filename); + QCOMPARE(entry1.suffix(), suffix); + QCOMPARE(entry1.completeSuffix(), completeSuffix); + QCOMPARE(entry1.isAbsolute(), absolute); + QCOMPARE(entry1.isRelative(), !absolute); + + QFileSystemEntry entry2(nativeFilePath); + QCOMPARE(entry2.suffix(), suffix); + QCOMPARE(entry2.completeSuffix(), completeSuffix); + QCOMPARE(entry2.isAbsolute(), absolute); + QCOMPARE(entry2.isRelative(), !absolute); + QCOMPARE(entry2.filePath(), filepath); + QCOMPARE(entry2.nativeFilePath(), nativeFilePath); + QCOMPARE(entry2.fileName(), filename); +} + +QTEST_MAIN(tst_QFileSystemEntry) +#include -- cgit v0.12 From 931d47db10ca8b8ebf564c4b6537e31370b7f53c Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 25 Aug 2010 13:19:32 +0200 Subject: Fix the unit test on Windows --- src/corelib/io/qfilesystementry.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index d3b3225..2d6740e 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -121,7 +121,14 @@ QString QFileSystemEntry::completeSuffix() const bool QFileSystemEntry::isAbsolute() const { resolveFilePath(); - return !m_filePath.isEmpty() && (m_filePath[0].unicode() == '/' /*|| hasScheme()*/); + return (!m_filePath.isEmpty() && (m_filePath[0].unicode() == '/') +#if defined(Q_FS_FAT) || defined(Q_OS_OS2EMX) || defined(Q_OS_SYMBIAN) + || (m_filePath.length() >= 2 + && ((m_filePath[0].isLetter() && m_filePath[1] == QLatin1Char(':')) + || (m_filePath.at(0) == QLatin1Char('/') && m_filePath.at(1) == QLatin1Char('/')))) +#endif + ); + } // private methods -- cgit v0.12 From f9b040556368001b367731e7ea65227956952e25 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 25 Aug 2010 13:43:10 +0200 Subject: Fix QFileSystemEntry autotests for Windows Reviewed-by: Thomas Zander --- src/corelib/io/qfilesystementry.cpp | 2 +- tests/auto/qfilesystementry/tst_qfilesystementry.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index 2d6740e..bed5435 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -122,7 +122,7 @@ bool QFileSystemEntry::isAbsolute() const { resolveFilePath(); return (!m_filePath.isEmpty() && (m_filePath[0].unicode() == '/') -#if defined(Q_FS_FAT) || defined(Q_OS_OS2EMX) || defined(Q_OS_SYMBIAN) +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) || (m_filePath.length() >= 2 && ((m_filePath[0].isLetter() && m_filePath[1] == QLatin1Char(':')) || (m_filePath.at(0) == QLatin1Char('/') && m_filePath.at(1) == QLatin1Char('/')))) diff --git a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp index 081beb6..58b7c6f 100644 --- a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp +++ b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp @@ -42,7 +42,7 @@ #include -#if defined(Q_FS_FAT) || defined(Q_OS_OS2EMX) || defined(Q_OS_SYMBIAN) +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) # define WIN_STUFF #endif @@ -79,8 +79,8 @@ void tst_QFileSystemEntry::getSetCheck_data() QTest::newRow("relative") #if defined(WIN_STUFF) - << QByteArray("\\in\\a\\dir.tar.gz") - << "/in/a/dir.tar.gz" + << QByteArray("in\\a\\dir.tar.gz") + << "in/a/dir.tar.gz" #else << QByteArray("in/a/dir.tar.gz") << "in/a/dir.tar.gz" -- cgit v0.12 From c31cd0ecb46f1005d212a528ab74e16f2d138331 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 25 Aug 2010 14:35:10 +0200 Subject: Refactor QFileInfoPrivate::Data (Round 2) The QFileInfoPrivate::Data member class is removed now. All the methods moved to QFileInfoPrivate. QFileInfoPrivate becomes a QSharedData type. Reviewed-by: Joao --- src/corelib/io/qfileinfo.cpp | 223 ++++++++++++++------------------- src/corelib/io/qfileinfo.h | 16 ++- src/corelib/io/qfileinfo_p.h | 100 ++++++++------- tests/auto/qfileinfo/tst_qfileinfo.cpp | 17 +-- 4 files changed, 170 insertions(+), 186 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 4671d8c..fe557d0 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -47,24 +47,7 @@ QT_BEGIN_NAMESPACE -QFileInfoPrivate::QFileInfoPrivate(const QFileInfo *copy) -{ - if (copy) { - copy->d_func()->data->ref.ref(); - data = copy->d_func()->data; - } else { - data = new QFileInfoPrivate::Data; - } -} - -QFileInfoPrivate::~QFileInfoPrivate() -{ - if (!data->ref.deref()) - delete data; - data = 0; -} - -void QFileInfoPrivate::Data::initFileEngine(const QString &file) +void QFileInfoPrivate::initFileEngine(const QString &file) { delete fileEngine; fileEngine = 0; @@ -73,12 +56,7 @@ void QFileInfoPrivate::Data::initFileEngine(const QString &file) fileName = file; } -void QFileInfoPrivate::Data::detach(QFileInfoPrivate::Data *&data) -{ - qAtomicDetach(data); -} - -QString QFileInfoPrivate::Data::getFileName(QAbstractFileEngine::FileName name) const +QString QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName name) const { if (cache_enabled && !fileNames[(int)name].isNull()) return fileNames[(int)name]; @@ -90,7 +68,7 @@ QString QFileInfoPrivate::Data::getFileName(QAbstractFileEngine::FileName name) return ret; } -QString QFileInfoPrivate::Data::getFileOwner(QAbstractFileEngine::FileOwner own) const +QString QFileInfoPrivate::getFileOwner(QAbstractFileEngine::FileOwner own) const { if (cache_enabled && !fileOwners[(int)own].isNull()) return fileOwners[(int)own]; @@ -102,7 +80,7 @@ QString QFileInfoPrivate::Data::getFileOwner(QAbstractFileEngine::FileOwner own) return ret; } -uint QFileInfoPrivate::Data::getFileFlags(QAbstractFileEngine::FileFlags request) const +uint QFileInfoPrivate::getFileFlags(QAbstractFileEngine::FileFlags request) const { // We split the testing into tests for for LinkType, BundleType, PermsMask // and the rest. @@ -162,7 +140,7 @@ uint QFileInfoPrivate::Data::getFileFlags(QAbstractFileEngine::FileFlags request return fileFlags & request; } -QDateTime &QFileInfoPrivate::Data::getFileTime(QAbstractFileEngine::FileTime request) const +QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request) const { if (!cache_enabled) clearFlags(); @@ -284,10 +262,8 @@ QFileInfo::QFileInfo() : d_ptr(new QFileInfoPrivate()) \sa setFile(), isRelative(), QDir::setCurrent(), QDir::isRelativePath() */ -QFileInfo::QFileInfo(const QString &file) : d_ptr(new QFileInfoPrivate()) +QFileInfo::QFileInfo(const QString &file) : d_ptr(new QFileInfoPrivate(file)) { - QFileInfoPrivate::Data::detach(d_ptr->data); - d_ptr->data->initFileEngine(file); } /*! @@ -299,10 +275,8 @@ QFileInfo::QFileInfo(const QString &file) : d_ptr(new QFileInfoPrivate()) \sa isRelative() */ -QFileInfo::QFileInfo(const QFile &file) : d_ptr(new QFileInfoPrivate()) +QFileInfo::QFileInfo(const QFile &file) : d_ptr(new QFileInfoPrivate(file.fileName())) { - QFileInfoPrivate::Data::detach(d_ptr->data); - d_ptr->data->initFileEngine(file.fileName()); } /*! @@ -317,16 +291,16 @@ QFileInfo::QFileInfo(const QFile &file) : d_ptr(new QFileInfoPrivate()) \sa isRelative() */ -QFileInfo::QFileInfo(const QDir &dir, const QString &file) : d_ptr(new QFileInfoPrivate()) +QFileInfo::QFileInfo(const QDir &dir, const QString &file) + : d_ptr(new QFileInfoPrivate(dir.filePath(file))) { - QFileInfoPrivate::Data::detach(d_ptr->data); - d_ptr->data->initFileEngine(dir.filePath(file)); } /*! Constructs a new QFileInfo that is a copy of the given \a fileinfo. */ -QFileInfo::QFileInfo(const QFileInfo &fileinfo) : d_ptr(new QFileInfoPrivate(&fileinfo)) +QFileInfo::QFileInfo(const QFileInfo &fileinfo) + : d_ptr(fileinfo.d_ptr) { } @@ -361,17 +335,17 @@ bool QFileInfo::operator==(const QFileInfo &fileinfo) const Q_D(const QFileInfo); // ### Qt 5: understand long and short file names on Windows // ### (GetFullPathName()). - if (fileinfo.d_func()->data == d->data) + if (fileinfo.d_ptr == d_ptr) return true; - if (!d->data->fileEngine || !fileinfo.d_func()->data->fileEngine) + if (!d->fileEngine || !fileinfo.d_ptr->fileEngine) return false; - if (d->data->fileEngine->caseSensitive() != fileinfo.d_func()->data->fileEngine->caseSensitive()) + if (d->fileEngine->caseSensitive() != fileinfo.d_ptr->fileEngine->caseSensitive()) return false; if (fileinfo.size() == size()) { //if the size isn't the same... QString file1 = canonicalFilePath(), file2 = fileinfo.canonicalFilePath(); if (file1.length() == file2.length()) { - if (!fileinfo.d_func()->data->fileEngine->caseSensitive()) { + if (!fileinfo.d_ptr->fileEngine->caseSensitive()) { for (int i = 0; i < file1.length(); i++) { if (file1.at(i).toLower() != file2.at(i).toLower()) return false; @@ -409,8 +383,7 @@ bool QFileInfo::operator==(const QFileInfo &fileinfo) */ QFileInfo &QFileInfo::operator=(const QFileInfo &fileinfo) { - Q_D(QFileInfo); - qAtomicAssign(d->data, fileinfo.d_func()->data); + d_ptr = fileinfo.d_ptr; return *this; } @@ -490,9 +463,9 @@ void QFileInfo::setFile(const QDir &dir, const QString &file) QString QFileInfo::absoluteFilePath() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileName(QAbstractFileEngine::AbsoluteName); + return d->getFileName(QAbstractFileEngine::AbsoluteName); } /*! @@ -507,9 +480,9 @@ QString QFileInfo::absoluteFilePath() const QString QFileInfo::canonicalFilePath() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileName(QAbstractFileEngine::CanonicalName); + return d->getFileName(QAbstractFileEngine::CanonicalName); } @@ -534,13 +507,13 @@ QString QFileInfo::absolutePath() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) { + if (!d->fileEngine) { return QLatin1String(""); - } else if (d->data->fileName.isEmpty()) { + } else if (d->fileName.isEmpty()) { qWarning("QFileInfo::absolutePath: Constructed with empty filename"); return QLatin1String(""); } - return d->data->getFileName(QAbstractFileEngine::AbsolutePathName); + return d->getFileName(QAbstractFileEngine::AbsolutePathName); } /*! @@ -554,9 +527,9 @@ QString QFileInfo::absolutePath() const QString QFileInfo::canonicalPath() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileName(QAbstractFileEngine::CanonicalPathName); + return d->getFileName(QAbstractFileEngine::CanonicalPathName); } /*! @@ -571,9 +544,9 @@ QString QFileInfo::canonicalPath() const QString QFileInfo::path() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileName(QAbstractFileEngine::PathName); + return d->getFileName(QAbstractFileEngine::PathName); } /*! @@ -595,9 +568,9 @@ QString QFileInfo::path() const bool QFileInfo::isRelative() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return true; - return d->data->fileEngine->isRelativePath(); + return d->fileEngine->isRelativePath(); } /*! @@ -609,12 +582,11 @@ bool QFileInfo::isRelative() const */ bool QFileInfo::makeAbsolute() { - Q_D(QFileInfo); - if (!d->data->fileEngine || !d->data->fileEngine->isRelativePath()) + if (!d_ptr.constData()->fileEngine || !d_ptr.constData()->fileEngine->isRelativePath()) return false; - QString absFileName = d->data->getFileName(QAbstractFileEngine::AbsoluteName); - QFileInfoPrivate::Data::detach(d_ptr->data); - d->data->initFileEngine(absFileName); + QString absFileName = d_ptr.constData()->getFileName(QAbstractFileEngine::AbsoluteName); + // QSharedDataPointer::operator->() will detach. + d_ptr->initFileEngine(absFileName); return true; } @@ -627,9 +599,9 @@ bool QFileInfo::makeAbsolute() bool QFileInfo::exists() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->getFileFlags(QAbstractFileEngine::ExistsFlag); + return d->getFileFlags(QAbstractFileEngine::ExistsFlag); } /*! @@ -642,8 +614,7 @@ bool QFileInfo::exists() const void QFileInfo::refresh() { Q_D(QFileInfo); - QFileInfoPrivate::Data::detach(d->data); - d->data->clear(); + d->clear(); } /*! @@ -655,9 +626,9 @@ void QFileInfo::refresh() QString QFileInfo::filePath() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileName(QAbstractFileEngine::DefaultName); + return d->getFileName(QAbstractFileEngine::DefaultName); } /*! @@ -674,9 +645,9 @@ QString QFileInfo::filePath() const QString QFileInfo::fileName() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileName(QAbstractFileEngine::BaseName); + return d->getFileName(QAbstractFileEngine::BaseName); } /*! @@ -694,9 +665,9 @@ QString QFileInfo::fileName() const QString QFileInfo::bundleName() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileName(QAbstractFileEngine::BundleName); + return d->getFileName(QAbstractFileEngine::BundleName); } /*! @@ -718,9 +689,9 @@ QString QFileInfo::bundleName() const QString QFileInfo::baseName() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileName(QAbstractFileEngine::BaseName).section(QLatin1Char('.'), 0, 0); + return d->getFileName(QAbstractFileEngine::BaseName).section(QLatin1Char('.'), 0, 0); } /*! @@ -737,9 +708,9 @@ QString QFileInfo::baseName() const QString QFileInfo::completeBaseName() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - QString name = d->data->getFileName(QAbstractFileEngine::BaseName); + QString name = d->getFileName(QAbstractFileEngine::BaseName); int index = name.lastIndexOf(QLatin1Char('.')); return (index == -1) ? name : name.left(index); } @@ -758,9 +729,9 @@ QString QFileInfo::completeBaseName() const QString QFileInfo::completeSuffix() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - QString fileName = d->data->getFileName(QAbstractFileEngine::BaseName); + QString fileName = d->getFileName(QAbstractFileEngine::BaseName); int firstDot = fileName.indexOf(QLatin1Char('.')); if (firstDot == -1) return QLatin1String(""); @@ -785,9 +756,9 @@ QString QFileInfo::completeSuffix() const QString QFileInfo::suffix() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - QString fileName = d->data->getFileName(QAbstractFileEngine::BaseName); + QString fileName = d->getFileName(QAbstractFileEngine::BaseName); int lastDot = fileName.lastIndexOf(QLatin1Char('.')); if (lastDot == -1) return QLatin1String(""); @@ -850,9 +821,9 @@ QDir QFileInfo::dir(bool absPath) const bool QFileInfo::isReadable() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->getFileFlags(QAbstractFileEngine::ReadUserPerm); + return d->getFileFlags(QAbstractFileEngine::ReadUserPerm); } /*! @@ -863,9 +834,9 @@ bool QFileInfo::isReadable() const bool QFileInfo::isWritable() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->getFileFlags(QAbstractFileEngine::WriteUserPerm); + return d->getFileFlags(QAbstractFileEngine::WriteUserPerm); } /*! @@ -876,9 +847,9 @@ bool QFileInfo::isWritable() const bool QFileInfo::isExecutable() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->getFileFlags(QAbstractFileEngine::ExeUserPerm); + return d->getFileFlags(QAbstractFileEngine::ExeUserPerm); } /*! @@ -890,9 +861,9 @@ bool QFileInfo::isExecutable() const bool QFileInfo::isHidden() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->getFileFlags(QAbstractFileEngine::HiddenFlag); + return d->getFileFlags(QAbstractFileEngine::HiddenFlag); } /*! @@ -905,9 +876,9 @@ bool QFileInfo::isHidden() const bool QFileInfo::isFile() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->getFileFlags(QAbstractFileEngine::FileType); + return d->getFileFlags(QAbstractFileEngine::FileType); } /*! @@ -919,9 +890,9 @@ bool QFileInfo::isFile() const bool QFileInfo::isDir() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->getFileFlags(QAbstractFileEngine::DirectoryType); + return d->getFileFlags(QAbstractFileEngine::DirectoryType); } @@ -935,9 +906,9 @@ bool QFileInfo::isDir() const bool QFileInfo::isBundle() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->getFileFlags(QAbstractFileEngine::BundleType); + return d->getFileFlags(QAbstractFileEngine::BundleType); } /*! @@ -960,9 +931,9 @@ bool QFileInfo::isBundle() const bool QFileInfo::isSymLink() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->getFileFlags(QAbstractFileEngine::LinkType); + return d->getFileFlags(QAbstractFileEngine::LinkType); } /*! @@ -973,9 +944,9 @@ bool QFileInfo::isSymLink() const bool QFileInfo::isRoot() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return true; - return d->data->getFileFlags(QAbstractFileEngine::RootFlag); + return d->getFileFlags(QAbstractFileEngine::RootFlag); } /*! @@ -1001,9 +972,9 @@ bool QFileInfo::isRoot() const QString QFileInfo::readLink() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileName(QAbstractFileEngine::LinkName); + return d->getFileName(QAbstractFileEngine::LinkName); } /*! @@ -1019,9 +990,9 @@ QString QFileInfo::readLink() const QString QFileInfo::owner() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileOwner(QAbstractFileEngine::OwnerUser); + return d->getFileOwner(QAbstractFileEngine::OwnerUser); } /*! @@ -1035,9 +1006,9 @@ QString QFileInfo::owner() const uint QFileInfo::ownerId() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return 0; - return d->data->fileEngine->ownerId(QAbstractFileEngine::OwnerUser); + return d->fileEngine->ownerId(QAbstractFileEngine::OwnerUser); } /*! @@ -1053,9 +1024,9 @@ uint QFileInfo::ownerId() const QString QFileInfo::group() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return d->data->getFileOwner(QAbstractFileEngine::OwnerGroup); + return d->getFileOwner(QAbstractFileEngine::OwnerGroup); } /*! @@ -1069,9 +1040,9 @@ QString QFileInfo::group() const uint QFileInfo::groupId() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return 0; - return d->data->fileEngine->ownerId(QAbstractFileEngine::OwnerGroup); + return d->fileEngine->ownerId(QAbstractFileEngine::OwnerGroup); } /*! @@ -1090,9 +1061,9 @@ uint QFileInfo::groupId() const bool QFileInfo::permission(QFile::Permissions permissions) const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->getFileFlags(QAbstractFileEngine::FileFlags((int)permissions)) == (uint)permissions; + return d->getFileFlags(QAbstractFileEngine::FileFlags((int)permissions)) == (uint)permissions; } /*! @@ -1102,9 +1073,9 @@ bool QFileInfo::permission(QFile::Permissions permissions) const QFile::Permissions QFileInfo::permissions() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return 0; - return QFile::Permissions(d->data->getFileFlags(QAbstractFileEngine::PermsMask) & QAbstractFileEngine::PermsMask); + return QFile::Permissions(d->getFileFlags(QAbstractFileEngine::PermsMask) & QAbstractFileEngine::PermsMask); } @@ -1117,13 +1088,13 @@ QFile::Permissions QFileInfo::permissions() const qint64 QFileInfo::size() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return 0; - if (!d->data->getCachedFlag(QFileInfoPrivate::CachedSize)) { - d->data->setCachedFlag(QFileInfoPrivate::CachedSize); - d->data->fileSize = d->data->fileEngine->size(); + if (!d->getCachedFlag(QFileInfoPrivate::CachedSize)) { + d->setCachedFlag(QFileInfoPrivate::CachedSize); + d->fileSize = d->fileEngine->size(); } - return d->data->fileSize; + return d->fileSize; } /*! @@ -1142,9 +1113,9 @@ qint64 QFileInfo::size() const QDateTime QFileInfo::created() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QDateTime(); - return d->data->getFileTime(QAbstractFileEngine::CreationTime); + return d->getFileTime(QAbstractFileEngine::CreationTime); } /*! @@ -1155,9 +1126,9 @@ QDateTime QFileInfo::created() const QDateTime QFileInfo::lastModified() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QDateTime(); - return d->data->getFileTime(QAbstractFileEngine::ModificationTime); + return d->getFileTime(QAbstractFileEngine::ModificationTime); } /*! @@ -1171,9 +1142,9 @@ QDateTime QFileInfo::lastModified() const QDateTime QFileInfo::lastRead() const { Q_D(const QFileInfo); - if (!d->data->fileEngine) + if (!d->fileEngine) return QDateTime(); - return d->data->getFileTime(QAbstractFileEngine::AccessTime); + return d->getFileTime(QAbstractFileEngine::AccessTime); } /*! \internal @@ -1181,8 +1152,7 @@ QDateTime QFileInfo::lastRead() const */ void QFileInfo::detach() { - Q_D(QFileInfo); - QFileInfoPrivate::Data::detach(d->data); + d_ptr.detach(); } /*! @@ -1193,7 +1163,7 @@ void QFileInfo::detach() bool QFileInfo::caching() const { Q_D(const QFileInfo); - return d->data->cache_enabled; + return d->cache_enabled; } /*! @@ -1211,8 +1181,7 @@ bool QFileInfo::caching() const void QFileInfo::setCaching(bool enable) { Q_D(QFileInfo); - QFileInfoPrivate::Data::detach(d->data); - d->data->cache_enabled = enable; + d->cache_enabled = enable; } /*! diff --git a/src/corelib/io/qfileinfo.h b/src/corelib/io/qfileinfo.h index 7e82aed..f0128b1 100644 --- a/src/corelib/io/qfileinfo.h +++ b/src/corelib/io/qfileinfo.h @@ -44,7 +44,7 @@ #include #include -#include +#include QT_BEGIN_HEADER @@ -166,10 +166,20 @@ public: #endif protected: - QScopedPointer d_ptr; + QSharedDataPointer d_ptr; private: - Q_DECLARE_PRIVATE(QFileInfo) + inline QFileInfoPrivate* d_func() + { + detach(); + return const_cast(d_ptr.constData()); + } + + inline const QFileInfoPrivate* d_func() const + { + return d_ptr.constData(); + } }; + Q_DECLARE_TYPEINFO(QFileInfo, Q_MOVABLE_TYPE); #ifdef QT3_SUPPORT diff --git a/src/corelib/io/qfileinfo_p.h b/src/corelib/io/qfileinfo_p.h index a1f5419..138116e 100644 --- a/src/corelib/io/qfileinfo_p.h +++ b/src/corelib/io/qfileinfo_p.h @@ -57,68 +57,72 @@ #include "qabstractfileengine.h" #include "qdatetime.h" #include "qatomic.h" +#include "qshareddata.h" QT_BEGIN_NAMESPACE -class QFileInfoPrivate +class QFileInfoPrivate : public QSharedData { public: - QFileInfoPrivate(const QFileInfo *copy=0); - ~QFileInfoPrivate(); enum { CachedFileFlags=0x01, CachedLinkTypeFlag=0x02, CachedBundleTypeFlag=0x04, CachedMTime=0x10, CachedCTime=0x20, CachedATime=0x40, CachedSize =0x08, CachedPerms=0x80 }; - struct Data { - inline Data() - : ref(1), fileEngine(0), - cachedFlags(0), cache_enabled(1), fileFlags(0), fileSize(0) - {} - inline Data(const Data ©) - : ref(1), fileEngine(QAbstractFileEngine::create(copy.fileName)), - fileName(copy.fileName), - cachedFlags(0), cache_enabled(copy.cache_enabled), fileFlags(0), fileSize(0) - {} - inline ~Data() { delete fileEngine; } - inline void clearFlags() const { - fileFlags = 0; - cachedFlags = 0; - if (fileEngine) - (void)fileEngine->fileFlags(QAbstractFileEngine::Refresh); - } - inline void clear() { - clearFlags(); - for (int i = QAbstractFileEngine::NFileNames - 1 ; i >= 0 ; --i) - fileNames[i].clear(); - fileOwners[1].clear(); - fileOwners[0].clear(); - } - void initFileEngine(const QString &); - uint getFileFlags(QAbstractFileEngine::FileFlags) const; - QDateTime &getFileTime(QAbstractFileEngine::FileTime) const; - QString getFileName(QAbstractFileEngine::FileName) const; - QString getFileOwner(QAbstractFileEngine::FileOwner own) const; + inline QFileInfoPrivate() + : QSharedData(), fileEngine(0), + cachedFlags(0), cache_enabled(1), fileFlags(0), fileSize(0) + {} + inline QFileInfoPrivate(const QFileInfoPrivate ©) + : QSharedData(copy), fileEngine(QAbstractFileEngine::create(copy.fileName)), + fileName(copy.fileName), + cachedFlags(0), cache_enabled(copy.cache_enabled), fileFlags(0), fileSize(0) + {} + inline QFileInfoPrivate(const QString &file) + : QSharedData(), fileEngine(0), + cachedFlags(0), cache_enabled(1), fileFlags(0), fileSize(0) + { + initFileEngine(file); + } + inline ~QFileInfoPrivate() + { + delete fileEngine; + } + void initFileEngine(const QString &); - static void detach(QFileInfoPrivate::Data *&data); + inline void clearFlags() const { + fileFlags = 0; + cachedFlags = 0; + if (fileEngine) + (void)fileEngine->fileFlags(QAbstractFileEngine::Refresh); + } + inline void clear() { + clearFlags(); + for (int i = QAbstractFileEngine::NFileNames - 1 ; i >= 0 ; --i) + fileNames[i].clear(); + fileOwners[1].clear(); + fileOwners[0].clear(); + } - mutable QAtomicInt ref; + uint getFileFlags(QAbstractFileEngine::FileFlags) const; + QDateTime &getFileTime(QAbstractFileEngine::FileTime) const; + QString getFileName(QAbstractFileEngine::FileName) const; + QString getFileOwner(QAbstractFileEngine::FileOwner own) const; - QAbstractFileEngine *fileEngine; - mutable QString fileName; - mutable QString fileNames[QAbstractFileEngine::NFileNames]; - mutable QString fileOwners[2]; + QAbstractFileEngine *fileEngine; + mutable QString fileName; + mutable QString fileNames[QAbstractFileEngine::NFileNames]; + mutable QString fileOwners[2]; - mutable uint cachedFlags : 31; - mutable uint cache_enabled : 1; - mutable uint fileFlags; - mutable qint64 fileSize; - mutable QDateTime fileTimes[3]; - inline bool getCachedFlag(uint c) const - { return cache_enabled ? (cachedFlags & c) : 0; } - inline void setCachedFlag(uint c) const - { if (cache_enabled) cachedFlags |= c; } - } *data; + mutable uint cachedFlags : 31; + mutable uint cache_enabled : 1; + mutable uint fileFlags; + mutable qint64 fileSize; + mutable QDateTime fileTimes[3]; + inline bool getCachedFlag(uint c) const + { return cache_enabled ? (cachedFlags & c) : 0; } + inline void setCachedFlag(uint c) const + { if (cache_enabled) cachedFlags |= c; } }; QT_END_NAMESPACE diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index a074f4b..32aa671 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -247,13 +247,13 @@ void tst_QFileInfo::copy() QFileInfo info2(info); QFileInfoPrivate *privateInfo = getPrivate(info); QFileInfoPrivate *privateInfo2 = getPrivate(info2); - QCOMPARE(privateInfo->data, privateInfo2->data); + QCOMPARE(privateInfo, privateInfo2); //operator = QFileInfo info3 = info; QFileInfoPrivate *privateInfo3 = getPrivate(info3); - QCOMPARE(privateInfo->data, privateInfo3->data); - QCOMPARE(privateInfo2->data, privateInfo3->data); + QCOMPARE(privateInfo, privateInfo3); + QCOMPARE(privateInfo2, privateInfo3); //refreshing info3 will detach it QFile file(info.absoluteFilePath()); @@ -275,9 +275,10 @@ void tst_QFileInfo::copy() QTest::qWait(5000); #endif info3.refresh(); - QVERIFY(privateInfo->data != privateInfo3->data); - QVERIFY(privateInfo2->data != privateInfo3->data); - QCOMPARE(privateInfo->data, privateInfo2->data); + privateInfo3 = getPrivate(info3); + QVERIFY(privateInfo != privateInfo3); + QVERIFY(privateInfo2 != privateInfo3); + QCOMPARE(privateInfo, privateInfo2); } void tst_QFileInfo::isFile_data() @@ -1241,8 +1242,8 @@ void tst_QFileInfo::isLocalFs() QFileInfo info(path); QFileInfoPrivate *privateInfo = getPrivate(info); - QVERIFY(privateInfo->data->fileEngine); - QCOMPARE(bool(privateInfo->data->fileEngine->fileFlags(QAbstractFileEngine::LocalDiskFlag) + QVERIFY(privateInfo->fileEngine); + QCOMPARE(bool(privateInfo->fileEngine->fileFlags(QAbstractFileEngine::LocalDiskFlag) & QAbstractFileEngine::LocalDiskFlag), isLocalFs); } -- cgit v0.12 From c4181bf7422a6b6c58d87b449a7066ae9e65e87a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 25 Aug 2010 13:38:32 +0200 Subject: Removed QDirPrivate layer of indirection Merged QDirPrivate with QDirPrivate::Data, as QDirPrivate served no purpose by itself, only adding an additional layer of indirection to the potentially shared private data, and an unnecessary allocation. Now, QDir holds a QSharedDataPointer to its private data. Private data will be shared among copied instances with COW semantics. Still, this sharing is very limited as plenty of regular use cases will cause the shared data to detach, such as refreshing the file lists. As the use QSharedDataPointer breaks usage of the Q_DECLARE_PRIVATE macro, we manually define the d_func'tions. Non-const d_func detaches on shared data. A detach function was added to the public interface to support this. (On a side note, QFileInfo already exposes a similar detach function). As much as possible, detach is handled implicitly inside the Q_D macro, through the d_func() non-const overload. On the other hand, implicit creation of file engines through detach was made explicit with a call to a new initFileEngine function. Reviewed-by: Thomas Zander --- src/corelib/io/qdir.cpp | 427 +++++++++++++++++++++++------------------------- src/corelib/io/qdir.h | 18 +- 2 files changed, 216 insertions(+), 229 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 5d56529..3e64de9 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -82,117 +82,105 @@ static QString driveSpec(const QString &path) //************* QDirPrivate class QDirPrivate + : public QSharedData { - friend struct QScopedPointerDeleter; - public: - QDirPrivate(const QDir *copy = 0); - ~QDirPrivate(); - - struct Data { - inline Data() - : ref(1), + QDirPrivate() + : QSharedData() #ifdef QT3_SUPPORT - filterSepChar(0), matchAllDirs(false), + , filterSepChar(0) + , matchAllDirs(false) #endif - fileEngine(0), listsDirty(1) - {} - inline Data(const Data ©) - : ref(1), path(copy.path), nameFilters(copy.nameFilters), sort(copy.sort), - filters(copy.filters), + , fileEngine(0) + , listsDirty(1) + { + } + + QDirPrivate(const QDirPrivate ©) + : QSharedData(copy) + , path(copy.path) + , nameFilters(copy.nameFilters) + , sort(copy.sort) + , filters(copy.filters) #ifdef QT3_SUPPORT - filterSepChar(copy.filterSepChar), matchAllDirs(copy.matchAllDirs), + , filterSepChar(copy.filterSepChar) + , matchAllDirs(copy.matchAllDirs) #endif - fileEngine(0), listsDirty(1) - {} - inline ~Data() - { delete fileEngine; } - - void updateFileLists() const; - static void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *); - - static inline QChar getFilterSepChar(const QString &nameFilter) - { - QChar sep(QLatin1Char(';')); - int i = nameFilter.indexOf(sep, 0); - if (i == -1 && nameFilter.indexOf(QLatin1Char(' '), 0) != -1) - sep = QChar(QLatin1Char(' ')); - return sep; - } + , fileEngine(0) + , listsDirty(1) + { + } - static inline QStringList splitFilters(const QString &nameFilter, QChar sep = 0) - { - if (sep == 0) - sep = getFilterSepChar(nameFilter); - QStringList ret = nameFilter.split(sep); - for (int i = 0; i < ret.count(); ++i) - ret[i] = ret[i].trimmed(); - return ret; - } + ~QDirPrivate() + { + delete fileEngine; + } - static void detach(QDirPrivate::Data *&data, bool createFileEngine = true); + void initFileEngine(); + void updateFileLists() const; - inline void setPath(QString p) - { - if ((p.endsWith(QLatin1Char('/')) || p.endsWith(QLatin1Char('\\'))) - && p.length() > 1) { -#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) - if (!(p.length() == 3 && p.at(1) == QLatin1Char(':'))) -#endif - p.truncate(p.length() - 1); - } + static void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *); - delete fileEngine; - fileEngine = QAbstractFileEngine::create(p); + static inline QChar getFilterSepChar(const QString &nameFilter) + { + QChar sep(QLatin1Char(';')); + int i = nameFilter.indexOf(sep, 0); + if (i == -1 && nameFilter.indexOf(QLatin1Char(' '), 0) != -1) + sep = QChar(QLatin1Char(' ')); + return sep; + } - // set the path to be the qt friendly version so then we can operate on it using just / - path = fileEngine->fileName(QAbstractFileEngine::DefaultName); - clear(); - } + static inline QStringList splitFilters(const QString &nameFilter, QChar sep = 0) + { + if (sep == 0) + sep = getFilterSepChar(nameFilter); + QStringList ret = nameFilter.split(sep); + for (int i = 0; i < ret.count(); ++i) + ret[i] = ret[i].trimmed(); + return ret; + } - inline void clear() { - listsDirty = 1; - files.clear(); - fileInfos.clear(); + inline void setPath(QString p) + { + if ((p.endsWith(QLatin1Char('/')) || p.endsWith(QLatin1Char('\\'))) + && p.length() > 1) { +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + if (!(p.length() == 3 && p.at(1) == QLatin1Char(':'))) +#endif + p.truncate(p.length() - 1); } - mutable QAtomicInt ref; + delete fileEngine; + fileEngine = QAbstractFileEngine::create(p); + + // set the path to be the qt friendly version so then we can operate on it using just / + path = fileEngine->fileName(QAbstractFileEngine::DefaultName); + clear(); + } - QString path; - QStringList nameFilters; - QDir::SortFlags sort; - QDir::Filters filters; + inline void clear() { + listsDirty = 1; + files.clear(); + fileInfos.clear(); + } + + QString path; + QStringList nameFilters; + QDir::SortFlags sort; + QDir::Filters filters; #ifdef QT3_SUPPORT - QChar filterSepChar; - bool matchAllDirs; + QChar filterSepChar; + bool matchAllDirs; #endif - mutable QAbstractFileEngine *fileEngine; - mutable uint listsDirty : 1; - mutable QStringList files; - mutable QFileInfoList fileInfos; - } *data; + QAbstractFileEngine *fileEngine; + mutable uint listsDirty : 1; + mutable QStringList files; + mutable QFileInfoList fileInfos; }; -QDirPrivate::QDirPrivate(const QDir *copy) -{ - if (copy) { - copy->d_func()->data->ref.ref(); - data = copy->d_func()->data; - } else { - data = new QDirPrivate::Data; - } -} - -QDirPrivate::~QDirPrivate() -{ - if (!data->ref.deref()) - delete data; - data = 0; -} - /* For sorting */ struct QDirSortItem { @@ -273,7 +261,7 @@ bool QDirSortItemComparator::operator()(const QDirSortItem &n1, const QDirSortIt return r < 0; } -inline void QDirPrivate::Data::sortFileList(QDir::SortFlags sort, QFileInfoList &l, +inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l, QStringList *names, QFileInfoList *infos) { // names and infos are always empty lists or 0 here @@ -304,7 +292,7 @@ inline void QDirPrivate::Data::sortFileList(QDir::SortFlags sort, QFileInfoList } } -inline void QDirPrivate::Data::updateFileLists() const +inline void QDirPrivate::updateFileLists() const { if (listsDirty) { QFileInfoList l; @@ -318,14 +306,11 @@ inline void QDirPrivate::Data::updateFileLists() const } } -void QDirPrivate::Data::detach(QDirPrivate::Data *&data, bool createFileEngine) +void QDirPrivate::initFileEngine() { - qAtomicDetach(data); - if (createFileEngine) { - QAbstractFileEngine *newFileEngine = QAbstractFileEngine::create(data->path); - delete data->fileEngine; - data->fileEngine = newFileEngine; - } + QAbstractFileEngine *newFileEngine = QAbstractFileEngine::create(path); + delete fileEngine; + fileEngine = newFileEngine; } /*! @@ -512,11 +497,10 @@ void QDirPrivate::Data::detach(QDirPrivate::Data *&data, bool createFileEngine) QDir::QDir(const QString &path) : d_ptr(new QDirPrivate) { Q_D(QDir); - QDirPrivate::Data::detach(d->data, false); - d->data->setPath(path.isEmpty() ? QString::fromLatin1(".") : path); - d->data->nameFilters = QStringList(QString::fromLatin1("*")); - d->data->filters = AllEntries; - d->data->sort = SortFlags(Name | IgnoreCase); + d->setPath(path.isEmpty() ? QString::fromLatin1(".") : path); + d->nameFilters = QStringList(QString::fromLatin1("*")); + d->filters = AllEntries; + d->sort = SortFlags(Name | IgnoreCase); } /*! @@ -541,23 +525,22 @@ QDir::QDir(const QString &path, const QString &nameFilter, SortFlags sort, Filters filters) : d_ptr(new QDirPrivate) { Q_D(QDir); - QDirPrivate::Data::detach(d->data, false); - d->data->setPath(path.isEmpty() ? QString::fromLatin1(".") : path); - d->data->nameFilters = QDir::nameFiltersFromString(nameFilter); - bool empty = d->data->nameFilters.isEmpty(); + d->setPath(path.isEmpty() ? QString::fromLatin1(".") : path); + d->nameFilters = QDir::nameFiltersFromString(nameFilter); + bool empty = d->nameFilters.isEmpty(); if (!empty) { empty = true; - for (int i = 0; i < d->data->nameFilters.size(); ++i) { - if (!d->data->nameFilters.at(i).isEmpty()) { + for (int i = 0; i < d->nameFilters.size(); ++i) { + if (!d->nameFilters.at(i).isEmpty()) { empty = false; break; } } } if (empty) - d->data->nameFilters = QStringList(QString::fromLatin1("*")); - d->data->sort = sort; - d->data->filters = filters; + d->nameFilters = QStringList(QString::fromLatin1("*")); + d->sort = sort; + d->filters = filters; } /*! @@ -566,7 +549,8 @@ QDir::QDir(const QString &path, const QString &nameFilter, \sa operator=() */ -QDir::QDir(const QDir &dir) : d_ptr(new QDirPrivate(&dir)) +QDir::QDir(const QDir &dir) + : d_ptr(dir.d_ptr) { } @@ -578,6 +562,11 @@ QDir::~QDir() { } +void QDir::detach() +{ + d_ptr.detach(); +} + /*! Sets the path of the directory to \a path. The path is cleaned of redundant ".", ".." and of multiple separators. No check is made @@ -596,9 +585,7 @@ QDir::~QDir() */ void QDir::setPath(const QString &path) { - Q_D(QDir); - QDirPrivate::Data::detach(d->data, false); - d->data->setPath(path); + d_ptr->setPath(path); } /*! @@ -614,7 +601,7 @@ void QDir::setPath(const QString &path) QString QDir::path() const { Q_D(const QDir); - return d->data->path; + return d->path; } /*! @@ -628,7 +615,7 @@ QString QDir::path() const QString QDir::absolutePath() const { Q_D(const QDir); - QString ret = d->data->path; + QString ret = d->path; if (QDir::isRelativePath(ret)) ret = absoluteFilePath(QString::fromLatin1("")); return cleanPath(ret); @@ -654,9 +641,9 @@ QString QDir::canonicalPath() const { Q_D(const QDir); - if (!d->data->fileEngine) + if (!d->fileEngine) return QLatin1String(""); - return cleanPath(d->data->fileEngine->fileName(QAbstractFileEngine::CanonicalName)); + return cleanPath(d->fileEngine->fileName(QAbstractFileEngine::CanonicalName)); } /*! @@ -673,10 +660,10 @@ QString QDir::canonicalPath() const QString QDir::dirName() const { Q_D(const QDir); - int pos = d->data->path.lastIndexOf(QLatin1Char('/')); + int pos = d->path.lastIndexOf(QLatin1Char('/')); if (pos == -1) - return d->data->path; - return d->data->path.mid(pos + 1); + return d->path; + return d->path.mid(pos + 1); } /*! @@ -694,7 +681,7 @@ QString QDir::filePath(const QString &fileName) const if (isAbsolutePath(fileName)) return QString(fileName); - QString ret = d->data->path; + QString ret = d->path; if (!fileName.isEmpty()) { if (!ret.isEmpty() && ret[(int)ret.length()-1] != QLatin1Char('/') && fileName[0] != QLatin1Char('/')) ret += QLatin1Char('/'); @@ -716,18 +703,18 @@ QString QDir::absoluteFilePath(const QString &fileName) const Q_D(const QDir); if (isAbsolutePath(fileName)) return fileName; - if (!d->data->fileEngine) + if (!d->fileEngine) return fileName; QString ret; #ifndef QT_NO_FSFILEENGINE - if (isRelativePath(d->data->path)) //get pwd + if (isRelativePath(d->path)) //get pwd ret = QFSFileEngine::currentPath(fileName); #endif - if (!d->data->path.isEmpty() && d->data->path != QLatin1String(".")) { + if (!d->path.isEmpty() && d->path != QLatin1String(".")) { if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/'))) ret += QLatin1Char('/'); - ret += d->data->path; + ret += d->path; } if (!fileName.isEmpty()) { if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/'))) @@ -875,11 +862,12 @@ QString QDir::fromNativeSeparators(const QString &pathName) */ bool QDir::cd(const QString &dirName) { - Q_D(QDir); + // Don't detach just yet. + const QDirPrivate * const d = d_ptr.constData(); if (dirName.isEmpty() || dirName == QLatin1String(".")) return true; - QString newPath = d->data->path; + QString newPath = d->path; if (isAbsolutePath(dirName)) { newPath = cleanPath(dirName); } else { @@ -892,7 +880,7 @@ bool QDir::cd(const QString &dirName) newPath += dirName; if (dirName.indexOf(QLatin1Char('/')) >= 0 - || d->data->path == QLatin1String(".") + || d->path == QLatin1String(".") || dirName == QLatin1String("..")) { newPath = cleanPath(newPath); /* @@ -939,8 +927,7 @@ bool QDir::cdUp() QStringList QDir::nameFilters() const { Q_D(const QDir); - - return d->data->nameFilters; + return d->nameFilters; } /*! @@ -961,10 +948,10 @@ QStringList QDir::nameFilters() const void QDir::setNameFilters(const QStringList &nameFilters) { Q_D(QDir); + d->initFileEngine(); + d->clear(); - QDirPrivate::Data::detach(d->data); - d->data->clear(); - d->data->nameFilters = nameFilters; + d->nameFilters = nameFilters; } /*! @@ -1068,8 +1055,7 @@ QStringList QDir::searchPaths(const QString &prefix) QDir::Filters QDir::filter() const { Q_D(const QDir); - - return d->data->filters; + return d->filters; } /*! @@ -1151,10 +1137,10 @@ QDir::Filters QDir::filter() const void QDir::setFilter(Filters filters) { Q_D(QDir); + d->initFileEngine(); + d->clear(); - QDirPrivate::Data::detach(d->data); - d->data->clear(); - d->data->filters = filters; + d->filters = filters; } /*! @@ -1165,8 +1151,7 @@ void QDir::setFilter(Filters filters) QDir::SortFlags QDir::sorting() const { Q_D(const QDir); - - return d->data->sort; + return d->sort; } /*! @@ -1210,10 +1195,10 @@ QDir::SortFlags QDir::sorting() const void QDir::setSorting(SortFlags sort) { Q_D(QDir); + d->initFileEngine(); + d->clear(); - QDirPrivate::Data::detach(d->data); - d->data->clear(); - d->data->sort = sort; + d->sort = sort; } /*! @@ -1226,9 +1211,8 @@ void QDir::setSorting(SortFlags sort) uint QDir::count() const { Q_D(const QDir); - - d->data->updateFileLists(); - return d->data->files.count(); + d->updateFileLists(); + return d->files.count(); } /*! @@ -1241,9 +1225,8 @@ uint QDir::count() const QString QDir::operator[](int pos) const { Q_D(const QDir); - - d->data->updateFileLists(); - return d->data->files[pos]; + d->updateFileLists(); + return d->files[pos]; } /*! @@ -1268,8 +1251,7 @@ QString QDir::operator[](int pos) const QStringList QDir::entryList(Filters filters, SortFlags sort) const { Q_D(const QDir); - - return entryList(d->data->nameFilters, filters, sort); + return entryList(d->nameFilters, filters, sort); } @@ -1292,8 +1274,7 @@ QStringList QDir::entryList(Filters filters, SortFlags sort) const QFileInfoList QDir::entryInfoList(Filters filters, SortFlags sort) const { Q_D(const QDir); - - return entryInfoList(d->data->nameFilters, filters, sort); + return entryInfoList(d->nameFilters, filters, sort); } /*! @@ -1318,27 +1299,27 @@ QStringList QDir::entryList(const QStringList &nameFilters, Filters filters, Q_D(const QDir); if (filters == NoFilter) - filters = d->data->filters; + filters = d->filters; #ifdef QT3_SUPPORT - if (d->data->matchAllDirs) + if (d->matchAllDirs) filters |= AllDirs; #endif if (sort == NoSort) - sort = d->data->sort; + sort = d->sort; - if (filters == d->data->filters && sort == d->data->sort && nameFilters == d->data->nameFilters) { - d->data->updateFileLists(); - return d->data->files; + if (filters == d->filters && sort == d->sort && nameFilters == d->nameFilters) { + d->updateFileLists(); + return d->files; } QFileInfoList l; - QDirIterator it(d->data->path, nameFilters, filters); + QDirIterator it(d->path, nameFilters, filters); while (it.hasNext()) { it.next(); l.append(it.fileInfo()); } QStringList ret; - d->data->sortFileList(sort, l, &ret, 0); + d->sortFileList(sort, l, &ret, 0); return ret; } @@ -1364,27 +1345,27 @@ QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filter Q_D(const QDir); if (filters == NoFilter) - filters = d->data->filters; + filters = d->filters; #ifdef QT3_SUPPORT - if (d->data->matchAllDirs) + if (d->matchAllDirs) filters |= AllDirs; #endif if (sort == NoSort) - sort = d->data->sort; + sort = d->sort; - if (filters == d->data->filters && sort == d->data->sort && nameFilters == d->data->nameFilters) { - d->data->updateFileLists(); - return d->data->fileInfos; + if (filters == d->filters && sort == d->sort && nameFilters == d->nameFilters) { + d->updateFileLists(); + return d->fileInfos; } QFileInfoList l; - QDirIterator it(d->data->path, nameFilters, filters); + QDirIterator it(d->path, nameFilters, filters); while (it.hasNext()) { it.next(); l.append(it.fileInfo()); } QFileInfoList ret; - d->data->sortFileList(sort, l, 0, &ret); + d->sortFileList(sort, l, 0, &ret); return ret; } @@ -1403,11 +1384,11 @@ bool QDir::mkdir(const QString &dirName) const qWarning("QDir::mkdir: Empty or null file name(s)"); return false; } - if (!d->data->fileEngine) + if (!d->fileEngine) return false; QString fn = filePath(dirName); - return d->data->fileEngine->mkdir(fn, false); + return d->fileEngine->mkdir(fn, false); } /*! @@ -1427,11 +1408,11 @@ bool QDir::rmdir(const QString &dirName) const qWarning("QDir::rmdir: Empty or null file name(s)"); return false; } - if (!d->data->fileEngine) + if (!d->fileEngine) return false; QString fn = filePath(dirName); - return d->data->fileEngine->rmdir(fn, false); + return d->fileEngine->rmdir(fn, false); } /*! @@ -1452,11 +1433,11 @@ bool QDir::mkpath(const QString &dirPath) const qWarning("QDir::mkpath: Empty or null file name(s)"); return false; } - if (!d->data->fileEngine) + if (!d->fileEngine) return false; QString fn = filePath(dirPath); - return d->data->fileEngine->mkdir(fn, true); + return d->fileEngine->mkdir(fn, true); } /*! @@ -1478,11 +1459,11 @@ bool QDir::rmpath(const QString &dirPath) const qWarning("QDir::rmpath: Empty or null file name(s)"); return false; } - if (!d->data->fileEngine) + if (!d->fileEngine) return false; QString fn = filePath(dirPath); - return d->data->fileEngine->rmdir(fn, true); + return d->fileEngine->rmdir(fn, true); } /*! @@ -1498,10 +1479,10 @@ bool QDir::isReadable() const { Q_D(const QDir); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; const QAbstractFileEngine::FileFlags info = - d->data->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType + d->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType | QAbstractFileEngine::PermsMask); if (!(info & QAbstractFileEngine::DirectoryType)) return false; @@ -1523,10 +1504,10 @@ bool QDir::exists() const { Q_D(const QDir); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; const QAbstractFileEngine::FileFlags info = - d->data->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType + d->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType | QAbstractFileEngine::ExistsFlag | QAbstractFileEngine::Refresh); if (!(info & QAbstractFileEngine::DirectoryType)) @@ -1550,9 +1531,9 @@ bool QDir::isRoot() const { Q_D(const QDir); - if (!d->data->fileEngine) + if (!d->fileEngine) return true; - return d->data->fileEngine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::RootFlag; + return d->fileEngine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::RootFlag; } /*! @@ -1584,9 +1565,9 @@ bool QDir::isRelative() const { Q_D(const QDir); - if (!d->data->fileEngine) + if (!d->fileEngine) return false; - return d->data->fileEngine->isRelativePath(); + return d->fileEngine->isRelativePath(); } @@ -1599,17 +1580,19 @@ bool QDir::isRelative() const */ bool QDir::makeAbsolute() // ### What do the return values signify? { - Q_D(QDir); - - if (!d->data->fileEngine) + if (!d_ptr.constData()->fileEngine) return false; - QString absolutePath = d->data->fileEngine->fileName(QAbstractFileEngine::AbsoluteName); + QString absolutePath = d_ptr.constData()->fileEngine->fileName(QAbstractFileEngine::AbsoluteName); if (QDir::isRelativePath(absolutePath)) return false; - QDirPrivate::Data::detach(d->data); - d->data->path = absolutePath; - d->data->fileEngine->setFileName(absolutePath); - if (!(d->data->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType)) + + Q_D(QDir); + + d->path = absolutePath; + d->initFileEngine(); + d->clear(); + + if (!(d->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType)) return false; return true; } @@ -1628,16 +1611,16 @@ bool QDir::operator==(const QDir &dir) const const QDirPrivate *d = d_func(); const QDirPrivate *other = dir.d_func(); - if (d->data == other->data) + if (d == other) return true; - Q_ASSERT(d->data->fileEngine && other->data->fileEngine); - if (d->data->fileEngine->caseSensitive() != other->data->fileEngine->caseSensitive()) + Q_ASSERT(d->fileEngine && other->fileEngine); + if (d->fileEngine->caseSensitive() != other->fileEngine->caseSensitive()) return false; - if (d->data->filters == other->data->filters - && d->data->sort == other->data->sort - && d->data->nameFilters == other->data->nameFilters) { + if (d->filters == other->filters + && d->sort == other->sort + && d->nameFilters == other->nameFilters) { QString dir1 = absolutePath(), dir2 = dir.absolutePath(); - if (!other->data->fileEngine->caseSensitive()) + if (!other->fileEngine->caseSensitive()) return (dir1.toLower() == dir2.toLower()); return (dir1 == dir2); @@ -1655,8 +1638,7 @@ QDir &QDir::operator=(const QDir &dir) if (this == &dir) return *this; - Q_D(QDir); - qAtomicAssign(d->data, dir.d_func()->data); + d_ptr = dir.d_ptr; return *this; } @@ -1670,10 +1652,7 @@ QDir &QDir::operator=(const QDir &dir) */ QDir &QDir::operator=(const QString &path) { - Q_D(QDir); - - QDirPrivate::Data::detach(d->data, false); - d->data->setPath(path); + d_ptr->setPath(path); return *this; } @@ -1717,13 +1696,12 @@ bool QDir::remove(const QString &fileName) */ bool QDir::rename(const QString &oldName, const QString &newName) { - Q_D(QDir); - if (oldName.isEmpty() || newName.isEmpty()) { qWarning("QDir::rename: Empty or null file name(s)"); return false; } - if (!d->data->fileEngine) + + if (!d_ptr.constData()->fileEngine) return false; QFile file(filePath(oldName)); @@ -2163,10 +2141,9 @@ bool QDir::isRelativePath(const QString &path) */ void QDir::refresh() const { - Q_D(const QDir); - - QDirPrivate::Data::detach(const_cast(d)->data); - d->data->clear(); + QDirPrivate *d = const_cast(this)->d_func(); + d->initFileEngine(); + d->clear(); } /*! @@ -2178,7 +2155,7 @@ void QDir::refresh() const */ QStringList QDir::nameFiltersFromString(const QString &nameFilter) { - return QDirPrivate::Data::splitFilters(nameFilter); + return QDirPrivate::splitFilters(nameFilter); } /*! @@ -2243,7 +2220,7 @@ QStringList QDir::nameFiltersFromString(const QString &nameFilter) bool QDir::matchAllDirs() const { Q_D(const QDir); - return d->data->matchAllDirs; + return d->matchAllDirs; } @@ -2255,10 +2232,10 @@ bool QDir::matchAllDirs() const void QDir::setMatchAllDirs(bool on) { Q_D(QDir); + d->initFileEngine(); + d->clear(); - QDirPrivate::Data::detach(d->data); - d->data->clear(); - d->data->matchAllDirs = on; + d->matchAllDirs = on; } /*! @@ -2267,8 +2244,7 @@ void QDir::setMatchAllDirs(bool on) QString QDir::nameFilter() const { Q_D(const QDir); - - return nameFilters().join(QString(d->data->filterSepChar)); + return nameFilters().join(QString(d->filterSepChar)); } /*! @@ -2294,9 +2270,8 @@ QString QDir::nameFilter() const void QDir::setNameFilter(const QString &nameFilter) { Q_D(QDir); - - d->data->filterSepChar = QDirPrivate::Data::getFilterSepChar(nameFilter); - setNameFilters(QDirPrivate::Data::splitFilters(nameFilter, d->data->filterSepChar)); + d->filterSepChar = QDirPrivate::getFilterSepChar(nameFilter); + setNameFilters(QDirPrivate::splitFilters(nameFilter, d->filterSepChar)); } /*! diff --git a/src/corelib/io/qdir.h b/src/corelib/io/qdir.h index 28da271..abfe387 100644 --- a/src/corelib/io/qdir.h +++ b/src/corelib/io/qdir.h @@ -45,7 +45,7 @@ #include #include #include -#include +#include QT_BEGIN_HEADER @@ -58,9 +58,19 @@ class QDirPrivate; class Q_CORE_EXPORT QDir { protected: - QScopedPointer d_ptr; + QSharedDataPointer d_ptr; private: - Q_DECLARE_PRIVATE(QDir) + inline QDirPrivate* d_func() + { + detach(); + return const_cast(d_ptr.constData()); + } + + inline const QDirPrivate* d_func() const + { + return d_ptr.constData(); + } + public: enum Filter { Dirs = 0x001, Files = 0x002, @@ -130,6 +140,8 @@ public: QDir &operator=(const QDir &); QDir &operator=(const QString &path); + void detach(); + void setPath(const QString &path); QString path() const; QString absolutePath() const; -- cgit v0.12 From 84373eb1c5f78874cf44b6e63cbffd4d49820f1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 25 Aug 2010 14:18:03 +0200 Subject: QDirPrivate refactoring Moved common initialization code from QDir ctor to QDirPrivate. Reviewed-by: Thomas Zander --- src/corelib/io/qdir.cpp | 49 ++++++++++++++++++++++++------------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 3e64de9..02f0e06 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -85,8 +85,14 @@ class QDirPrivate : public QSharedData { public: - QDirPrivate() + QDirPrivate(const QString &path, + const QStringList &nameFilters_ = QStringList(), + QDir::SortFlags sort_ = QDir::SortFlags(QDir::Name | QDir::IgnoreCase), + QDir::Filters filters_ = QDir::AllEntries) : QSharedData() + , nameFilters(nameFilters_) + , sort(sort_) + , filters(filters_) #ifdef QT3_SUPPORT , filterSepChar(0) , matchAllDirs(false) @@ -94,6 +100,20 @@ public: , fileEngine(0) , listsDirty(1) { + setPath(path.isEmpty() ? QString::fromLatin1(".") : path); + + bool empty = nameFilters.isEmpty(); + if (!empty) { + empty = true; + for (int i = 0; i < nameFilters.size(); ++i) { + if (!nameFilters.at(i).isEmpty()) { + empty = false; + break; + } + } + } + if (empty) + nameFilters = QStringList(QString::fromLatin1("*")); } QDirPrivate(const QDirPrivate ©) @@ -494,13 +514,8 @@ void QDirPrivate::initFileEngine() \sa currentPath() */ -QDir::QDir(const QString &path) : d_ptr(new QDirPrivate) +QDir::QDir(const QString &path) : d_ptr(new QDirPrivate(path)) { - Q_D(QDir); - d->setPath(path.isEmpty() ? QString::fromLatin1(".") : path); - d->nameFilters = QStringList(QString::fromLatin1("*")); - d->filters = AllEntries; - d->sort = SortFlags(Name | IgnoreCase); } /*! @@ -522,25 +537,9 @@ QDir::QDir(const QString &path) : d_ptr(new QDirPrivate) \sa exists(), setPath(), setNameFilter(), setFilter(), setSorting() */ QDir::QDir(const QString &path, const QString &nameFilter, - SortFlags sort, Filters filters) : d_ptr(new QDirPrivate) + SortFlags sort, Filters filters) + : d_ptr(new QDirPrivate(path, QDir::nameFiltersFromString(nameFilter), sort, filters)) { - Q_D(QDir); - d->setPath(path.isEmpty() ? QString::fromLatin1(".") : path); - d->nameFilters = QDir::nameFiltersFromString(nameFilter); - bool empty = d->nameFilters.isEmpty(); - if (!empty) { - empty = true; - for (int i = 0; i < d->nameFilters.size(); ++i) { - if (!d->nameFilters.at(i).isEmpty()) { - empty = false; - break; - } - } - } - if (empty) - d->nameFilters = QStringList(QString::fromLatin1("*")); - d->sort = sort; - d->filters = filters; } /*! -- cgit v0.12 From 72b00f0b6285aed47009067be4d92869d128856e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 25 Aug 2010 15:16:51 +0200 Subject: QDirPrivate refactoring Some renaming to make intent clearer and improve consistency: listsDirty => listsInitialized (logic inverted) updateFileLists => initFileLists clear => clearFileLists Also note that initializing file lists shouldn't trigger detach, because no previous version of the cached data has been seen. Reviewed-by: Thomas Zander --- src/corelib/io/qdir.cpp | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 02f0e06..a88b284 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -98,7 +98,7 @@ public: , matchAllDirs(false) #endif , fileEngine(0) - , listsDirty(1) + , fileListsInitialized(false) { setPath(path.isEmpty() ? QString::fromLatin1(".") : path); @@ -127,7 +127,7 @@ public: , matchAllDirs(copy.matchAllDirs) #endif , fileEngine(0) - , listsDirty(1) + , fileListsInitialized(false) { } @@ -137,7 +137,7 @@ public: } void initFileEngine(); - void updateFileLists() const; + void initFileLists() const; static void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *); @@ -175,11 +175,11 @@ public: // set the path to be the qt friendly version so then we can operate on it using just / path = fileEngine->fileName(QAbstractFileEngine::DefaultName); - clear(); + clearFileLists(); } - inline void clear() { - listsDirty = 1; + inline void clearFileLists() { + fileListsInitialized = false; files.clear(); fileInfos.clear(); } @@ -196,7 +196,7 @@ public: QAbstractFileEngine *fileEngine; - mutable uint listsDirty : 1; + mutable bool fileListsInitialized; mutable QStringList files; mutable QFileInfoList fileInfos; }; @@ -312,9 +312,9 @@ inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l, } } -inline void QDirPrivate::updateFileLists() const +inline void QDirPrivate::initFileLists() const { - if (listsDirty) { + if (!fileListsInitialized) { QFileInfoList l; QDirIterator it(path, nameFilters, filters); while (it.hasNext()) { @@ -322,7 +322,7 @@ inline void QDirPrivate::updateFileLists() const l.append(it.fileInfo()); } sortFileList(sort, l, &files, &fileInfos); - listsDirty = 0; + fileListsInitialized = true; } } @@ -948,7 +948,7 @@ void QDir::setNameFilters(const QStringList &nameFilters) { Q_D(QDir); d->initFileEngine(); - d->clear(); + d->clearFileLists(); d->nameFilters = nameFilters; } @@ -1137,7 +1137,7 @@ void QDir::setFilter(Filters filters) { Q_D(QDir); d->initFileEngine(); - d->clear(); + d->clearFileLists(); d->filters = filters; } @@ -1195,7 +1195,7 @@ void QDir::setSorting(SortFlags sort) { Q_D(QDir); d->initFileEngine(); - d->clear(); + d->clearFileLists(); d->sort = sort; } @@ -1210,7 +1210,7 @@ void QDir::setSorting(SortFlags sort) uint QDir::count() const { Q_D(const QDir); - d->updateFileLists(); + d->initFileLists(); return d->files.count(); } @@ -1224,7 +1224,7 @@ uint QDir::count() const QString QDir::operator[](int pos) const { Q_D(const QDir); - d->updateFileLists(); + d->initFileLists(); return d->files[pos]; } @@ -1307,7 +1307,7 @@ QStringList QDir::entryList(const QStringList &nameFilters, Filters filters, sort = d->sort; if (filters == d->filters && sort == d->sort && nameFilters == d->nameFilters) { - d->updateFileLists(); + d->initFileLists(); return d->files; } @@ -1353,7 +1353,7 @@ QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filter sort = d->sort; if (filters == d->filters && sort == d->sort && nameFilters == d->nameFilters) { - d->updateFileLists(); + d->initFileLists(); return d->fileInfos; } @@ -1589,7 +1589,7 @@ bool QDir::makeAbsolute() // ### What do the return values signify? d->path = absolutePath; d->initFileEngine(); - d->clear(); + d->clearFileLists(); if (!(d->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType)) return false; @@ -2142,7 +2142,7 @@ void QDir::refresh() const { QDirPrivate *d = const_cast(this)->d_func(); d->initFileEngine(); - d->clear(); + d->clearFileLists(); } /*! @@ -2232,7 +2232,7 @@ void QDir::setMatchAllDirs(bool on) { Q_D(QDir); d->initFileEngine(); - d->clear(); + d->clearFileLists(); d->matchAllDirs = on; } -- cgit v0.12 From 1218e1ecfee17aec798d73e469fea292b93f2246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 25 Aug 2010 15:25:22 +0200 Subject: QDirPrivate refactoring While refactoring, a bug was introduced where shared data would be updated before detaching in setNameFilter. Further refactoring turned this into a double-detach, instead. Now the issue is fixed by adding the appropriate initFileEngine and nameFilters assignment, instead of calling setNameFilters to finish the job. Reviewed-by: Thomas Zander --- src/corelib/io/qdir.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index a88b284..64eea23 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -2269,8 +2269,10 @@ QString QDir::nameFilter() const void QDir::setNameFilter(const QString &nameFilter) { Q_D(QDir); + d->initFileEngine(); + d->filterSepChar = QDirPrivate::getFilterSepChar(nameFilter); - setNameFilters(QDirPrivate::splitFilters(nameFilter, d->filterSepChar)); + d->nameFilters = QDirPrivate::splitFilters(nameFilter, d->filterSepChar); } /*! -- cgit v0.12 From 852be4c69f8dd4a890d78f9ea7210ecc9e44254a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 26 Aug 2010 11:40:52 +0200 Subject: Begin defining the interface for file engines NG New file engine API is meant to be a thin layer of abstraction over native file system APIs. Stateless and static for the time being. Platform-specific implementations will follow. Reviewed-by: Thomas Zander Reviewed-by: Prasanth Ullattil --- src/corelib/io/qfilesystemengine_p.h | 27 +++++++++++++++++++++++++++ src/corelib/io/qfilesystemmetadata_p.h | 6 ++++++ 2 files changed, 33 insertions(+) diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 817f925..c1bb3b4 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -53,10 +53,37 @@ // We mean it. // +#include "qfile.h" +#include "qfilesystementry_p.h" +#include "qfilesystemmetadata_p.h" + QT_BEGIN_NAMESPACE class QFileSystemEngine { +public: + static bool isCaseSensitive(); + + static QFileSystemEntry getLinkTarget(const QFileSystemEntry &link); + static QFileSystemEntry canonicalName(const QFileSystemEntry &entry); + static QFileSystemEntry absoluteName(const QFileSystemEntry &entry); + + static QString bundleName(const QFileSystemEntry &entry); + + static bool fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, + QFileSystemMetaData::FileFlags what); + + static bool createDirectory(const QFileSystemEntry &entry, bool createParents); + static bool removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents); + + static bool createLink(const QFileSystemEntry &source, const QFileSystemEntry &target); + + static bool copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target); + static bool renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target); + static bool removeFile(const QFileSystemEntry &entry); + + static bool setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, + QFileSystemMetaData *data = 0); }; QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index c051bc5..9664177 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -53,10 +53,16 @@ // We mean it. // +#include + QT_BEGIN_NAMESPACE class QFileSystemMetaData { +public: + enum FileFlag { + }; + Q_DECLARE_FLAGS(FileFlags, FileFlag); }; QT_END_NAMESPACE -- cgit v0.12 From 9367d50311640c1765a05b744de2ac796311fac7 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Thu, 26 Aug 2010 13:56:53 +0200 Subject: Add empty implementations of each of the filesystemengines --- src/corelib/io/io.pri | 4 + src/corelib/io/qfilesystemengine_mac.cpp | 119 ++++++++++++++++++++++++++++++ src/corelib/io/qfilesystemengine_unix.cpp | 119 ++++++++++++++++++++++++++++++ src/corelib/io/qfilesystemengine_win.cpp | 119 ++++++++++++++++++++++++++++++ 4 files changed, 361 insertions(+) create mode 100644 src/corelib/io/qfilesystemengine_mac.cpp create mode 100644 src/corelib/io/qfilesystemengine_unix.cpp create mode 100644 src/corelib/io/qfilesystemengine_win.cpp diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index 0334534..d3fddaf 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -68,6 +68,7 @@ win32 { HEADERS += io/qfilesystemwatcher_win_p.h HEADERS += io/qwindowspipewriter_p.h SOURCES += io/qwindowspipewriter.cpp + SOURCES += io/qfilesystemengine_win.cpp } else:unix { SOURCES += io/qfsfileengine_unix.cpp SOURCES += io/qfsfileengine_iterator_unix.cpp @@ -76,6 +77,9 @@ win32 { macx-*: { HEADERS += io/qfilesystemwatcher_fsevents_p.h SOURCES += io/qsettings_mac.cpp io/qfilesystemwatcher_fsevents.cpp + SOURCES += io/qfilesystemengine_mac.cpp + } else { + SOURCES += io/qfilesystemengine_unix.cpp } linux-*:!symbian { diff --git a/src/corelib/io/qfilesystemengine_mac.cpp b/src/corelib/io/qfilesystemengine_mac.cpp new file mode 100644 index 0000000..ac71f0e --- /dev/null +++ b/src/corelib/io/qfilesystemengine_mac.cpp @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** 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 QtCore 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 "qfilesystemengine_p.h" + +bool QFileSystemEngine::isCaseSensitive() +{ + return true; +} + +//static +QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link) +{ + return link; // TODO implement +} + +//static +QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) +{ + return entry; // TODO implement; +} + +//static +QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) +{ + return entry; // TODO implement; +} + +//static +QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) +{ + return QString(); // TODO implement; +} + +//static +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::FileFlags what) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool createParents) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data) +{ + return false; // TODO implement; +} diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp new file mode 100644 index 0000000..ac71f0e --- /dev/null +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** 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 QtCore 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 "qfilesystemengine_p.h" + +bool QFileSystemEngine::isCaseSensitive() +{ + return true; +} + +//static +QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link) +{ + return link; // TODO implement +} + +//static +QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) +{ + return entry; // TODO implement; +} + +//static +QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) +{ + return entry; // TODO implement; +} + +//static +QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) +{ + return QString(); // TODO implement; +} + +//static +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::FileFlags what) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool createParents) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data) +{ + return false; // TODO implement; +} diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp new file mode 100644 index 0000000..ac71f0e --- /dev/null +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** 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 QtCore 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 "qfilesystemengine_p.h" + +bool QFileSystemEngine::isCaseSensitive() +{ + return true; +} + +//static +QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link) +{ + return link; // TODO implement +} + +//static +QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) +{ + return entry; // TODO implement; +} + +//static +QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) +{ + return entry; // TODO implement; +} + +//static +QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) +{ + return QString(); // TODO implement; +} + +//static +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::FileFlags what) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool createParents) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data) +{ + return false; // TODO implement; +} -- cgit v0.12 From 710258ee0ab068bb713edc8d952293cf810a206d Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Fri, 27 Aug 2010 10:34:01 +0200 Subject: Move absoluteName to new fileSystemEngine for unix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move the code for determining the absolute path on unix from the qfsfileengine_unix.cpp to the new qfilesystemengine_unix.cpp which is a static, stateless class. Made sure that the old qfsfileengine_unix.cpp keeps on working by calling into the new one. Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemengine_unix.cpp | 30 +++++++++++++++++++++++++++++- src/corelib/io/qfsfileengine_unix.cpp | 19 +++++-------------- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index ac71f0e..bcd75fc 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "qfilesystemengine_p.h" +#include "qfsfileengine.h" bool QFileSystemEngine::isCaseSensitive() { @@ -61,7 +62,34 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) //static QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) { - return entry; // TODO implement; + if (entry.isAbsolute()) + return entry; + + QByteArray orig = entry.nativeFilePath(); + QByteArray result; + if (orig.isEmpty() || !orig.startsWith('/')) { + QFileSystemEntry cur(QFSFileEngine::currentPath()); + result = cur.nativeFilePath(); + } + if (!orig.isEmpty() && !(orig.length() == 1 && orig[0] == '.')) { + if (!result.isEmpty() && !result.endsWith('/')) + result.append('/'); + result.append(orig); + } + + if (result.length() == 1 && result[0] == '/') + return QFileSystemEntry(result); + const bool isDir = result.endsWith('/'); + + /* as long as QDir::cleanPath() operates on a QString we have to convert to a string here. + * ideally we never convert to a string since that loses information. Please fix after + * we get a QByteArray version of QDir::cleanPath() + */ + QFileSystemEntry resultingEntry(result); + QString stringVersion = QDir::cleanPath(resultingEntry.filePath()); + if (isDir) + stringVersion.append(QLatin1Char('/')); + return QFileSystemEntry(stringVersion); } //static diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 774932a..5fecb5d 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -43,6 +43,8 @@ #include "qabstractfileengine.h" #include "private/qfsfileengine_p.h" #include "private/qcore_unix_p.h" +#include "qfilesystementry_p.h" +#include "qfilesystemengine_p.h" #ifndef QT_NO_FSFILEENGINE @@ -1046,20 +1048,9 @@ QString QFSFileEngine::fileName(FileName file) const return QLatin1String("/"); return d->filePath.left(slash); } else if (file == AbsoluteName || file == AbsolutePathName) { - QString ret; - if (d->filePath.isEmpty() || !d->filePath.startsWith(QLatin1Char('/'))) - ret = QDir::currentPath(); - if (!d->filePath.isEmpty() && d->filePath != QLatin1String(".")) { - if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/'))) - ret += QLatin1Char('/'); - ret += d->filePath; - } - if (ret == QLatin1String("/")) - return ret; - bool isDir = ret.endsWith(QLatin1Char('/')); - ret = QDir::cleanPath(ret); - if (isDir) - ret += QLatin1Char('/'); + QFileSystemEntry entry(d->filePath); + entry = QFileSystemEngine::absoluteName(entry); + QString ret = entry.filePath(); if (file == AbsolutePathName) { int slash = ret.lastIndexOf(QLatin1Char('/')); if (slash == -1) -- cgit v0.12 From 1b201e0857d8232eeb1c25942c4fad9360cc11c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 26 Aug 2010 13:47:33 +0200 Subject: QDir::operator= simplification With the recent changes to QDirPrivate and how d_ptr is now a QSharedDataPointer, we no longer need to worry about self-assignment, as that is already handled by the d_ptr. Simplifying code here. Reviewed-by: Prasanth Ullattil --- src/corelib/io/qdir.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 64eea23..3587243 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -1634,9 +1634,6 @@ bool QDir::operator==(const QDir &dir) const */ QDir &QDir::operator=(const QDir &dir) { - if (this == &dir) - return *this; - d_ptr = dir.d_ptr; return *this; } -- cgit v0.12 From fdec31a2e57c7da48be741c14bedaaff4b95e7af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 26 Aug 2010 13:49:31 +0200 Subject: QDir::makeAbsolute could self-destruct on failure makeAbsolute would return false if the newly constructed file engine reported it wasn't referencing a directory. At this point, the private data has already been updated, rendering the instance unusable. Instead, we now create a separate QDir instance and reset our private data only on success. Similarly to what's done in QDir::cd. Reviewed-by: Prasanth Ullattil --- src/corelib/io/qdir.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 3587243..1da4f82 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -1585,14 +1585,11 @@ bool QDir::makeAbsolute() // ### What do the return values signify? if (QDir::isRelativePath(absolutePath)) return false; - Q_D(QDir); - - d->path = absolutePath; - d->initFileEngine(); - d->clearFileLists(); - - if (!(d->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType)) + QDir dir(absolutePath); + if (!(dir.d_ptr.constData()->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType)) return false; + + *this = dir; return true; } -- cgit v0.12 From eeae8a7479cdb0b716b28ad502abed69dbf339b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 26 Aug 2010 14:03:36 +0200 Subject: Simplify QDir::cd Copy constructing a QDir instance from this and then detaching it in setPath doesn't get us anything so we might as well do it all in one go. Reviewed-by: Prasanth Ullattil --- src/corelib/io/qdir.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 1da4f82..9ebfce5 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -896,8 +896,7 @@ bool QDir::cd(const QString &dirName) } } - QDir dir(*this); - dir.setPath(newPath); + QDir dir(newPath); if (!dir.exists()) return false; -- cgit v0.12 From e2eeb1b2410d32b629c675b63dd84c9dcb976546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 10:01:42 +0200 Subject: Adding QFileSystemEntry and QFileSystemEngine to build system Since we're refactoring code out of QFSFileEngine the new internal classes have to be compiled in together with the old engines. For the time being, we'll assume Mac uses the unix version of the engine. We'll fork those only if and as needed. --- qmake/Makefile.unix | 8 ++++++++ qmake/Makefile.win32 | 10 ++++++++++ qmake/Makefile.win32-g++ | 8 ++++++++ qmake/Makefile.win32-g++-sh | 8 ++++++++ qmake/qmake.pri | 5 +++-- src/corelib/io/io.pri | 4 +--- src/tools/bootstrap/bootstrap.pro | 7 +++++-- tools/configure/configure.pro | 8 ++++++-- tools/qtestlib/wince/cetest/bootstrapped.pri | 2 ++ 9 files changed, 51 insertions(+), 9 deletions(-) diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index 8d56fc8..8c1ac6d 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -16,6 +16,7 @@ OBJS=project.o property.o main.o makefile.o unixmake2.o unixmake.o \ #qt code QOBJS=qtextcodec.o qutfcodec.o qstring.o qtextstream.o qiodevice.o qmalloc.o qglobal.o \ qbytearray.o qbytearraymatcher.o qdatastream.o qbuffer.o qlist.o qfile.o \ + qfilesystementry.o qfilesystemengine_unix.o \ qfsfileengine_unix.o qfsfileengine_iterator_unix.o qfsfileengine.o \ qfsfileengine_iterator.o qregexp.o qvector.o qbitarray.o qdir.o qdiriterator.o quuid.o qhash.o \ qfileinfo.o qdatetime.o qstringlist.o qabstractfileengine.o qtemporaryfile.o \ @@ -44,6 +45,7 @@ DEPEND_SRC=project.cpp property.cpp meta.cpp main.cpp generators/makefile.cpp ge $(SOURCE_PATH)/src/corelib/global/qglobal.cpp $(SOURCE_PATH)/src/corelib/tools/qregexp.cpp \ $(SOURCE_PATH)/src/corelib/tools/qbytearray.cpp $(SOURCE_PATH)/src/corelib/tools/qbytearraymatcher.cpp \ $(SOURCE_PATH)/src/corelib/io/qdatastream.cpp $(SOURCE_PATH)/src/corelib/io/qbuffer.cpp \ + $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_unix.cpp $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp $(SOURCE_PATH)/src/corelib/tools/qlist.cpp \ @@ -160,6 +162,12 @@ qlist.o: $(SOURCE_PATH)/src/corelib/tools/qlist.cpp qfile.o: $(SOURCE_PATH)/src/corelib/io/qfile.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfile.cpp +qfilesystementry.o: $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp + +qfilesystemengine_unix.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp + qfsfileengine.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index b58757c..b76348b 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -88,6 +88,8 @@ QTOBJS= \ qbitarray.obj \ qbuffer.obj \ qcryptographichash.obj \ + qfilesystementry.obj \ + qfilesystemengine_win.obj \ qfsfileengine.obj \ qfsfileengine_iterator.obj \ qbytearray.obj \ @@ -141,6 +143,8 @@ clean:: -del qbuffer.obj -del qcryptographichash.obj -del qlinkedlist.obj + -del qfilesystementry.obj + -del qfilesystemengine_win.obj -del qfsfileengine.obj -del qfsfileengine_iterator.obj -del qbytearray.obj @@ -310,6 +314,12 @@ qfile.obj: $(SOURCE_PATH)\src\corelib\io\qfile.cpp qtemporaryfile.obj: $(SOURCE_PATH)\src\corelib\io\qtemporaryfile.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qtemporaryfile.cpp +qfilesystementry.obj: $(SOURCE_PATH)\src\corelib\io\qfilesystementry.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfilesystementry.cpp + +qfilesystemengine_win.obj: $(SOURCE_PATH)\src\corelib\io\qfilesystemengine_win.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfilesystemengine_win.cpp + qfsfileengine_win.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine_win.cpp diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++ index e52b8c6..c692731 100644 --- a/qmake/Makefile.win32-g++ +++ b/qmake/Makefile.win32-g++ @@ -61,6 +61,8 @@ QTOBJS= \ qtemporaryfile.o \ qfileinfo.o \ qabstractfileengine.o \ + qfilesystementry.o \ + qfilesystemengine_win.o \ qfsfileengine.o \ qfsfileengine_iterator.o \ qfsfileengine_win.o \ @@ -192,6 +194,12 @@ qtemporaryfile.o: $(SOURCE_PATH)/src/corelib/io/qtemporaryfile.cpp qabstractfileengine.o: $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp +qfilesystementry.o: $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp + +qfilesystemengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp + qfsfileengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp diff --git a/qmake/Makefile.win32-g++-sh b/qmake/Makefile.win32-g++-sh index e4e2e6a..cc256e9 100644 --- a/qmake/Makefile.win32-g++-sh +++ b/qmake/Makefile.win32-g++-sh @@ -61,6 +61,8 @@ QTOBJS= \ qtemporaryfile.o \ qfileinfo.o \ qabstractfileengine.o \ + qfilesystementry.o \ + qfilesystemengine_win.o \ qfsfileengine.o \ qfsfileengine_iterator.o \ qfsfileengine_win.o \ @@ -191,6 +193,12 @@ qtemporaryfile.o: $(SOURCE_PATH)/src/corelib/io/qtemporaryfile.cpp qabstractfileengine.o: $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp +qfilesystementry.o: $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp + +qfilesystemengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp + qfsfileengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp diff --git a/qmake/qmake.pri b/qmake/qmake.pri index a7e0ab1..4d78c8b 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -57,6 +57,7 @@ bootstrap { #Qt code qfile.cpp \ qabstractfileengine.cpp \ qfileinfo.cpp \ + qfilesystementry.cpp \ qfsfileengine.cpp \ qfsfileengine_iterator.cpp \ qglobal.cpp \ @@ -125,14 +126,14 @@ bootstrap { #Qt code qxmlutils.h unix { - SOURCES += qfsfileengine_unix.cpp qfsfileengine_iterator_unix.cpp + SOURCES += qfilesystemengine_unix.cpp qfsfileengine_unix.cpp qfsfileengine_iterator_unix.cpp mac { SOURCES += qcore_mac.cpp qsettings_mac.cpp QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 #enables weak linking for 10.4 (exported) LIBS += -framework ApplicationServices } } else:win32 { - SOURCES += qfsfileengine_win.cpp qfsfileengine_iterator_win.cpp qsettings_win.cpp + SOURCES += qfilesystemengine_win.cpp qfsfileengine_win.cpp qfsfileengine_iterator_win.cpp qsettings_win.cpp win32-msvc*:LIBS += ole32.lib advapi32.lib win32-g++*:LIBS += -lole32 -luuid } diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index d3fddaf..3bde2de 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -70,6 +70,7 @@ win32 { SOURCES += io/qwindowspipewriter.cpp SOURCES += io/qfilesystemengine_win.cpp } else:unix { + SOURCES += io/qfilesystemengine_unix.cpp SOURCES += io/qfsfileengine_unix.cpp SOURCES += io/qfsfileengine_iterator_unix.cpp symbian:SOURCES += io/qprocess_symbian.cpp @@ -77,9 +78,6 @@ win32 { macx-*: { HEADERS += io/qfilesystemwatcher_fsevents_p.h SOURCES += io/qsettings_mac.cpp io/qfilesystemwatcher_fsevents.cpp - SOURCES += io/qfilesystemengine_mac.cpp - } else { - SOURCES += io/qfilesystemengine_unix.cpp } linux-*:!symbian { diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro index a74c9c1..bec1329 100644 --- a/src/tools/bootstrap/bootstrap.pro +++ b/src/tools/bootstrap/bootstrap.pro @@ -57,6 +57,7 @@ SOURCES += \ ../../corelib/io/qdiriterator.cpp \ ../../corelib/io/qfile.cpp \ ../../corelib/io/qfileinfo.cpp \ + ../../corelib/io/qfilesystementry.cpp \ ../../corelib/io/qfsfileengine.cpp \ ../../corelib/io/qfsfileengine_iterator.cpp \ ../../corelib/io/qiodevice.cpp \ @@ -83,10 +84,12 @@ SOURCES += \ ../../xml/dom/qdom.cpp \ ../../xml/sax/qxml.cpp -unix:SOURCES += ../../corelib/io/qfsfileengine_unix.cpp \ +unix:SOURCES += ../../corelib/io/qfilesystemengine_unix.cpp \ + ../../corelib/io/qfsfileengine_unix.cpp \ ../../corelib/io/qfsfileengine_iterator_unix.cpp -win32:SOURCES += ../../corelib/io/qfsfileengine_win.cpp \ +win32:SOURCES += ../../corelib/io/qfilesystemengine_win.cpp \ + ../../corelib/io/qfsfileengine_win.cpp \ ../../corelib/io/qfsfileengine_iterator_win.cpp macx: { diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro index 73f3317..9e52f81 100644 --- a/tools/configure/configure.pro +++ b/tools/configure/configure.pro @@ -48,6 +48,9 @@ HEADERS = configureapp.h environment.h tools.h\ $$QT_SOURCE_TREE/src/corelib/io/qdiriterator.h \ $$QT_SOURCE_TREE/src/corelib/io/qfile.h \ $$QT_SOURCE_TREE/src/corelib/io/qfileinfo.h \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystementry_p.h \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine_p.h \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystemmetadata_p.h \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine.h \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_iterator_p.h \ $$QT_SOURCE_TREE/src/corelib/io/qiodevice.h \ @@ -86,7 +89,10 @@ SOURCES = main.cpp configureapp.cpp environment.cpp tools.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfile.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfileinfo.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qabstractfileengine.cpp \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystementry.cpp \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine.cpp \ + $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_iterator.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_iterator_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qiodevice.cpp \ @@ -114,8 +120,6 @@ SOURCES = main.cpp configureapp.cpp environment.cpp tools.cpp \ $$QT_SOURCE_TREE/tools/shared/symbian/epocroot.cpp \ $$QT_SOURCE_TREE/tools/shared/windows/registry.cpp -win32:SOURCES += $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_win.cpp - DEFINES += COMMERCIAL_VERSION INCLUDEPATH += $$QT_SOURCE_TREE/src/corelib/arch/generic \ diff --git a/tools/qtestlib/wince/cetest/bootstrapped.pri b/tools/qtestlib/wince/cetest/bootstrapped.pri index b9c4b2b..0af5c94 100644 --- a/tools/qtestlib/wince/cetest/bootstrapped.pri +++ b/tools/qtestlib/wince/cetest/bootstrapped.pri @@ -4,6 +4,8 @@ SOURCES += \ $$QT_SOURCE_TREE/src/corelib/tools/qstringlist.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfile.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qdir.cpp \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystementry.cpp \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qabstractfileengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_win.cpp \ -- cgit v0.12 From b56fad9c12615ac135a36a468c020906f383a0d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 10:36:30 +0200 Subject: Added missing QT_BEGIN/END_NAMESPACE to implementation files in new QFileSystem* API. --- src/corelib/io/qfilesystemengine_mac.cpp | 4 ++++ src/corelib/io/qfilesystemengine_unix.cpp | 4 ++++ src/corelib/io/qfilesystemengine_win.cpp | 4 ++++ src/corelib/io/qfilesystementry.cpp | 7 ++++++- 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_mac.cpp b/src/corelib/io/qfilesystemengine_mac.cpp index ac71f0e..942415c 100644 --- a/src/corelib/io/qfilesystemengine_mac.cpp +++ b/src/corelib/io/qfilesystemengine_mac.cpp @@ -41,6 +41,8 @@ #include "qfilesystemengine_p.h" +QT_BEGIN_NAMESPACE + bool QFileSystemEngine::isCaseSensitive() { return true; @@ -117,3 +119,5 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per { return false; // TODO implement; } + +QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index bcd75fc..2274e69 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -42,6 +42,8 @@ #include "qfilesystemengine_p.h" #include "qfsfileengine.h" +QT_BEGIN_NAMESPACE + bool QFileSystemEngine::isCaseSensitive() { return true; @@ -145,3 +147,5 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per { return false; // TODO implement; } + +QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index ac71f0e..942415c 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -41,6 +41,8 @@ #include "qfilesystemengine_p.h" +QT_BEGIN_NAMESPACE + bool QFileSystemEngine::isCaseSensitive() { return true; @@ -117,3 +119,5 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per { return false; // TODO implement; } + +QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index bed5435..5858ab3 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -40,7 +40,10 @@ ****************************************************************************/ #include "qfilesystementry_p.h" -#include "qdir.h" + +#include + +QT_BEGIN_NAMESPACE QFileSystemEntry::QFileSystemEntry(const QString &filePath) : m_filePath(filePath), @@ -195,3 +198,5 @@ void QFileSystemEntry::findFileNameSeparators() const m_lastDotInFileName = firstDotInFileName - lastSeparator; } } + +QT_END_NAMESPACE -- cgit v0.12 From 5dfcf2c6778e6852b3d1a2f9c6cc4c9e7c8a5d3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 11:36:05 +0200 Subject: Small changes to QFileSystemEntry * Added default constructor. * Made single-argument constructors explicit * Converted bit-field data to "proper" variables - the bit-fields may have been premature optimization and it may even turn out to not relevant to keep this cache. Reviewed-by: Thomas Zander --- src/corelib/io/qfilesystementry.cpp | 7 +++++++ src/corelib/io/qfilesystementry_p.h | 11 ++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index 5858ab3..04ad388 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -45,6 +45,13 @@ QT_BEGIN_NAMESPACE +QFileSystemEntry::QFileSystemEntry() + : m_lastSeparator(0), + m_firstDotInFileName(0), + m_lastDotInFileName(0) +{ +} + QFileSystemEntry::QFileSystemEntry(const QString &filePath) : m_filePath(filePath), m_lastSeparator(-2), diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h index 68af24d..ae2071a 100644 --- a/src/corelib/io/qfilesystementry_p.h +++ b/src/corelib/io/qfilesystementry_p.h @@ -61,8 +61,9 @@ QT_BEGIN_NAMESPACE class QFileSystemEntry { public: - QFileSystemEntry(const QString &filePath); - QFileSystemEntry(const QByteArray &nativeFilePath); + QFileSystemEntry(); + explicit QFileSystemEntry(const QString &filePath); + explicit QFileSystemEntry(const QByteArray &nativeFilePath); QFileSystemEntry(const QByteArray &nativeFilePath, const QString &filePath); QString filePath() const; @@ -88,9 +89,9 @@ private: mutable QString m_filePath; // always has slashes as separator mutable QByteArray m_nativeFilePath; // native encoding and separators - mutable int m_lastSeparator : 16; // index in m_filePath of last separator - mutable int m_firstDotInFileName : 11; // index after m_filePath for first dot (.) - mutable int m_lastDotInFileName : 5; // index after m_firstDotInFileName for last dot (.) + mutable qint16 m_lastSeparator; // index in m_filePath of last separator + mutable qint16 m_firstDotInFileName; // index after m_filePath for first dot (.) + mutable qint16 m_lastDotInFileName; // index after m_firstDotInFileName for last dot (.) }; QT_END_NAMESPACE -- cgit v0.12 From 1d52b8a0643dca077de432d841df5f49f472352a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 12:02:39 +0200 Subject: Removed native file path handling from QFSFileEngine Moved it into QFileSystemEntry, instead. For the time being, QFileSystemEntry may look like an unnecessary extra layer of indirection. For the time being, this allows us to do some code cleanup and de-duplication. It is also a stepping stone to becoming completely independent of the current file engine abstraction. Changes to QFileSystemEntry: - native file path on Windows is now a QString, instead of a QByteArray. Accordingly, constructors taking a QByteArray were removed for these platforms. - Encoding/decoding of file names uses QFile::encode/decodeName API, instead of assuming local 8 bit. On Windows, UTF-16 is used for native, as was being done in QFSFileEngine. - new functions isRoot(), isDriveRoot() [Windows/Symbian], and path() - convenience functions clear() and isEmpty() added to facilitate porting. Changes to QFSFileEngine (Windows): - removed QFSFileEnginePrivate::sizeFdFh(): the function was broken and never used, so might as well not get compiled in. - repeated pattern for use of FindFirstFile/FindClose hidden away in a static inline function. - repeated and inconsistent conversions from QString to native file paths reduced through the use of QFileSystemEntry. Done-with: Prasanth Ullattil Done-with: Thomas Zander --- src/corelib/io/qfilesystementry.cpp | 107 ++++++++++++- src/corelib/io/qfilesystementry_p.h | 23 +++ src/corelib/io/qfsfileengine.cpp | 23 ++- src/corelib/io/qfsfileengine_p.h | 7 +- src/corelib/io/qfsfileengine_unix.cpp | 158 ++++++++----------- src/corelib/io/qfsfileengine_win.cpp | 283 +++++++++++----------------------- src/corelib/io/qtemporaryfile.cpp | 19 +-- 7 files changed, 302 insertions(+), 318 deletions(-) diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index 04ad388..a32e22f 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -42,9 +42,38 @@ #include "qfilesystementry_p.h" #include +#include +#include +#ifdef Q_OS_WIN +#include +#endif QT_BEGIN_NAMESPACE +#ifdef Q_OS_WIN +static bool isUncRoot(const QString &server) +{ + QString localPath = QDir::toNativeSeparators(server); + if (!localPath.startsWith(QLatin1String("\\\\"))) + return false; + + int idx = localPath.indexOf(QLatin1Char('\\'), 2); + if (idx == -1 || idx + 1 == localPath.length()) + return true; + + localPath = localPath.right(localPath.length() - idx - 1).trimmed(); + return localPath.isEmpty(); +} + +static inline QString fixIfRelativeUncPath(const QString &path) +{ + QString currentPath = QDir::currentPath(); + if (currentPath.startsWith(QLatin1String("//"))) + return currentPath % QChar(QLatin1Char('/')) % path; + return path; +} +#endif + QFileSystemEntry::QFileSystemEntry() : m_lastSeparator(0), m_firstDotInFileName(0), @@ -60,6 +89,7 @@ QFileSystemEntry::QFileSystemEntry(const QString &filePath) { } +#ifndef Q_OS_WIN QFileSystemEntry::QFileSystemEntry(const QByteArray &nativeFilePath) : m_nativeFilePath(nativeFilePath), m_lastSeparator(-2), @@ -76,6 +106,7 @@ QFileSystemEntry::QFileSystemEntry(const QByteArray &nativeFilePath, const QStri m_lastDotInFileName(0) { } +#endif QString QFileSystemEntry::filePath() const { @@ -83,7 +114,11 @@ QString QFileSystemEntry::filePath() const return m_filePath; } +#ifndef Q_OS_WIN QByteArray QFileSystemEntry::nativeFilePath() const +#else +QString QFileSystemEntry::nativeFilePath() const +#endif { resolveNativeFilePath(); return m_nativeFilePath; @@ -92,23 +127,59 @@ QByteArray QFileSystemEntry::nativeFilePath() const void QFileSystemEntry::resolveFilePath() const { if (m_filePath.isEmpty() && !m_nativeFilePath.isEmpty()) { - m_filePath = QDir::fromNativeSeparators(QString::fromLocal8Bit(m_nativeFilePath)); +#ifdef Q_OS_WIN + m_filePath = QDir::fromNativeSeparators(m_nativeFilePath); +#else + m_filePath = QDir::fromNativeSeparators(QFile::decodeName(m_nativeFilePath)); +#endif } } void QFileSystemEntry::resolveNativeFilePath() const { if (!m_filePath.isEmpty() && m_nativeFilePath.isEmpty()) { - m_nativeFilePath = QDir::toNativeSeparators(m_filePath).toLocal8Bit(); +#ifdef Q_OS_WIN + QString filePath = m_filePath; + if (isRelative()) + filePath = fixIfRelativeUncPath(m_filePath); + m_nativeFilePath = QFSFileEnginePrivate::longFileName(QDir::toNativeSeparators(filePath)); +#else + m_nativeFilePath = QFile::encodeName(QDir::toNativeSeparators(m_filePath)); +#endif } } QString QFileSystemEntry::fileName() const { findLastSeparator(); +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + if (m_lastSeparator == -1) { + if (m_filePath.length() >= 2 && m_filePath.at(1) == QLatin1Char(':')) + return m_filePath.mid(2); + } +#endif return m_filePath.mid(m_lastSeparator + 1); } +QString QFileSystemEntry::path() const +{ + findLastSeparator(); + if (m_lastSeparator == -1) { +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + if (m_filePath.length() >= 2 && m_filePath.at(1) == QLatin1Char(':')) + return m_filePath.left(2); +#endif + return QString(QLatin1Char('.')); + } + if (m_lastSeparator == 0) + return QString(QLatin1Char('/')); +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + if (m_lastSeparator == 2 && m_filePath.at(1) == QLatin1Char(':')) + return m_filePath.left(m_lastSeparator + 1); +#endif + return m_filePath.left(m_lastSeparator); +} + QString QFileSystemEntry::suffix() const { findFileNameSeparators(); @@ -141,6 +212,38 @@ bool QFileSystemEntry::isAbsolute() const } +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) +bool QFileSystemEntry::isDriveRoot() const +{ + resolveFilePath(); + return (m_filePath.length() == 3 + && m_filePath.at(0).isLetter() && m_filePath.at(1) == QLatin1Char(':') + && m_filePath.at(2) == QLatin1Char('/')); +} +#endif + +bool QFileSystemEntry::isRoot() const +{ + resolveFilePath(); + if (m_filePath == QLatin1String("/") +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + || isDriveRoot() +#if defined(Q_OS_WIN) + || isUncRoot(m_filePath) +#endif +#endif + ) + return true; + + return false; +} + +bool QFileSystemEntry::isEmpty() const +{ + resolveNativeFilePath(); + return m_nativeFilePath.isEmpty(); +} + // private methods void QFileSystemEntry::findLastSeparator() const diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h index ae2071a..3e49f2c 100644 --- a/src/corelib/io/qfilesystementry_p.h +++ b/src/corelib/io/qfilesystementry_p.h @@ -63,12 +63,19 @@ class QFileSystemEntry public: QFileSystemEntry(); explicit QFileSystemEntry(const QString &filePath); +#ifndef Q_OS_WIN explicit QFileSystemEntry(const QByteArray &nativeFilePath); QFileSystemEntry(const QByteArray &nativeFilePath, const QString &filePath); +#endif QString filePath() const; QString fileName() const; + QString path() const; +#ifndef Q_OS_WIN QByteArray nativeFilePath() const; +#else + QString nativeFilePath() const; +#endif QString suffix() const; QString completeSuffix() const; bool isAbsolute() const; @@ -76,6 +83,17 @@ public: return !isAbsolute(); } +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + bool isDriveRoot() const; +#endif + bool isRoot() const; + + bool isEmpty() const; + void clear() + { + *this = QFileSystemEntry(); + } + private: // creates the QString version out of the bytearray version void resolveFilePath() const; @@ -87,7 +105,12 @@ private: void findFileNameSeparators() const; mutable QString m_filePath; // always has slashes as separator + +#ifdef Q_OS_WIN + mutable QString m_nativeFilePath; // native encoding and separators +#else mutable QByteArray m_nativeFilePath; // native encoding and separators +#endif mutable qint16 m_lastSeparator; // index in m_filePath of last separator mutable qint16 m_firstDotInFileName; // index after m_filePath for first dot (.) diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 511a1a6..75f82a6 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -239,11 +239,11 @@ QString QFSFileEnginePrivate::canonicalized(const QString &path) /*! Constructs a QFSFileEngine for the file name \a file. */ -QFSFileEngine::QFSFileEngine(const QString &file) : QAbstractFileEngine(*new QFSFileEnginePrivate) +QFSFileEngine::QFSFileEngine(const QString &file) + : QAbstractFileEngine(*new QFSFileEnginePrivate) { Q_D(QFSFileEngine); - d->filePath = QDir::fromNativeSeparators(file); - d->nativeInitFileName(); + d->fileEntry = QFileSystemEntry(QDir::fromNativeSeparators(file)); } /*! @@ -292,8 +292,7 @@ void QFSFileEngine::setFileName(const QString &file) { Q_D(QFSFileEngine); d->init(); - d->filePath = QDir::fromNativeSeparators(file); - d->nativeInitFileName(); + d->fileEntry = QFileSystemEntry(QDir::fromNativeSeparators(file)); } /*! @@ -302,7 +301,7 @@ void QFSFileEngine::setFileName(const QString &file) bool QFSFileEngine::open(QIODevice::OpenMode openMode) { Q_D(QFSFileEngine); - if (d->filePath.isEmpty()) { + if (d->fileEntry.isEmpty()) { qWarning("QFSFileEngine::open: No file name specified"); setError(QFile::OpenError, QLatin1String("No file name specified")); return false; @@ -344,8 +343,7 @@ bool QFSFileEngine::open(QIODevice::OpenMode openMode, FILE *fh) d->openMode = openMode; d->lastFlushFailed = false; d->closeFileHandle = false; - d->nativeFilePath.clear(); - d->filePath.clear(); + d->fileEntry.clear(); d->tried_stat = 0; d->fd = -1; @@ -401,8 +399,7 @@ bool QFSFileEngine::open(QIODevice::OpenMode openMode, int fd) d->openMode = openMode; d->lastFlushFailed = false; d->closeFileHandle = false; - d->nativeFilePath.clear(); - d->filePath.clear(); + d->fileEntry.clear(); d->fh = 0; d->fd = -1; d->tried_stat = 0; @@ -549,6 +546,7 @@ qint64 QFSFileEngine::size() const /*! \internal */ +#ifndef Q_OS_WIN qint64 QFSFileEnginePrivate::sizeFdFh() const { Q_Q(const QFSFileEngine); @@ -556,13 +554,13 @@ qint64 QFSFileEnginePrivate::sizeFdFh() const QT_STATBUF st; int ret = 0; const_cast(q)->flush(); - if (fh && nativeFilePath.isEmpty()) { + if (fh && fileEntry.isEmpty()) { // Buffered stdlib mode. // ### This should really be an ftell ret = QT_FSTAT(QT_FILENO(fh), &st); } else if (fd == -1) { // Stateless stat. - ret = QT_STAT(nativeFilePath.constData(), &st); + ret = QT_STAT(fileEntry.nativeFilePath().constData(), &st); } else { // Unbuffered stdio mode. ret = QT_FSTAT(fd, &st); @@ -571,6 +569,7 @@ qint64 QFSFileEnginePrivate::sizeFdFh() const return 0; return st.st_size; } +#endif /*! \reimp diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index e9e55f3..74cbca3 100644 --- a/src/corelib/io/qfsfileengine_p.h +++ b/src/corelib/io/qfsfileengine_p.h @@ -56,6 +56,7 @@ #include "qplatformdefs.h" #include "QtCore/qfsfileengine.h" #include "private/qabstractfileengine_p.h" +#include "private/qfilesystementry_p.h" #include #ifndef QT_NO_FSFILEENGINE @@ -76,11 +77,9 @@ public: #endif static QString canonicalized(const QString &path); - QString filePath; - QByteArray nativeFilePath; + QFileSystemEntry fileEntry; QIODevice::OpenMode openMode; - void nativeInitFileName(); bool nativeOpen(QIODevice::OpenMode openMode); bool openFh(QIODevice::OpenMode flags, FILE *fh); bool openFd(QIODevice::OpenMode flags, int fd); @@ -89,7 +88,9 @@ public: bool nativeFlush(); bool flushFh(); qint64 nativeSize() const; +#ifndef Q_OS_WIN qint64 sizeFdFh() const; +#endif qint64 nativePos() const; qint64 posFdFh() const; bool nativeSeek(qint64); diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 5fecb5d..3daf7f6 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -200,14 +200,6 @@ static inline bool setCloseOnExec(int fd) /*! \internal */ -void QFSFileEnginePrivate::nativeInitFileName() -{ - nativeFilePath = QFile::encodeName(filePath); -} - -/*! - \internal -*/ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) { Q_Q(QFSFileEngine); @@ -217,7 +209,7 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) // Try to open the file in unbuffered mode. do { - fd = QT_OPEN(nativeFilePath.constData(), flags, 0666); + fd = QT_OPEN(fileEntry.nativeFilePath().constData(), flags, 0666); } while (fd == -1 && errno == EINTR); // On failure, return and report the error. @@ -256,11 +248,11 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) fh = 0; } else { - QByteArray fopenMode = openModeToFopenMode(openMode, nativeFilePath.constData()); + QByteArray fopenMode = openModeToFopenMode(openMode, fileEntry.nativeFilePath().constData()); // Try to open the file in buffered mode. do { - fh = QT_FOPEN(nativeFilePath.constData(), fopenMode.constData()); + fh = QT_FOPEN(fileEntry.nativeFilePath().constData(), fopenMode.constData()); } while (!fh && errno == EINTR); // On failure, return and report the error. @@ -435,7 +427,7 @@ bool QFSFileEnginePrivate::nativeIsSequential() const bool QFSFileEngine::remove() { Q_D(QFSFileEngine); - bool ret = unlink(d->nativeFilePath.constData()) == 0; + bool ret = unlink(d->fileEntry.nativeFilePath().constData()) == 0; if (!ret) setError(QFile::RemoveError, qt_error_string(errno)); return ret; @@ -447,7 +439,7 @@ bool QFSFileEngine::copy(const QString &newName) Q_D(QFSFileEngine); RFs rfs = qt_s60GetRFs(); CFileMan* fm = NULL; - QString oldNative(QDir::toNativeSeparators(d->filePath)); + QString oldNative(QDir::toNativeSeparators(d->fileEntry.filePath())); TPtrC oldPtr(qt_QString2TPtrC(oldNative)); QFileInfo fi(newName); QString absoluteNewName = fi.absoluteFilePath(); @@ -478,7 +470,7 @@ bool QFSFileEngine::copy(const QString &newName) bool QFSFileEngine::rename(const QString &newName) { Q_D(QFSFileEngine); - bool ret = ::rename(d->nativeFilePath.constData(), QFile::encodeName(newName).constData()) == 0; + bool ret = ::rename(d->fileEntry.nativeFilePath().constData(), QFile::encodeName(newName).constData()) == 0; if (!ret) setError(QFile::RenameError, qt_error_string(errno)); return ret; @@ -487,7 +479,7 @@ bool QFSFileEngine::rename(const QString &newName) bool QFSFileEngine::link(const QString &newName) { Q_D(QFSFileEngine); - bool ret = ::symlink(d->nativeFilePath.constData(), QFile::encodeName(newName).constData()) == 0; + bool ret = ::symlink(d->fileEntry.nativeFilePath().constData(), QFile::encodeName(newName).constData()) == 0; if (!ret) setError(QFile::RenameError, qt_error_string(errno)); return ret; @@ -691,7 +683,7 @@ bool QFSFileEnginePrivate::doStat() const tried_stat = true; could_stat = false; - if (fh && nativeFilePath.isEmpty()) { + if (fh && fileEntry.isEmpty()) { // ### actually covers two cases: d->fh and when the file is not open could_stat = (QT_FSTAT(QT_FILENO(fh), &st) == 0); } else if (fd == -1) { @@ -701,12 +693,12 @@ bool QFSFileEnginePrivate::doStat() const // When the filename is not a link, lstat will return the same info as stat, but this also removes // any need for a further call to lstat to check if the file is a link. need_lstat = false; - could_stat = (QT_LSTAT(nativeFilePath.constData(), &st) == 0); + could_stat = (QT_LSTAT(fileEntry.nativeFilePath().constData(), &st) == 0); is_link = could_stat ? S_ISLNK(st.st_mode) : false; // if it turns out this was a link, we can call stat too. if (is_link) #endif - could_stat = (QT_STAT(nativeFilePath.constData(), &st) == 0); + could_stat = (QT_STAT(fileEntry.nativeFilePath().constData(), &st) == 0); } else { could_stat = (QT_FSTAT(fd, &st) == 0); } @@ -720,7 +712,7 @@ bool QFSFileEnginePrivate::isSymlink() const need_lstat = false; QT_STATBUF st; // don't clobber our main one - is_link = (QT_LSTAT(nativeFilePath.constData(), &st) == 0) ? S_ISLNK(st.st_mode) : false; + is_link = (QT_LSTAT(fileEntry.nativeFilePath().constData(), &st) == 0) ? S_ISLNK(st.st_mode) : false; } return is_link; } @@ -789,15 +781,15 @@ QAbstractFileEngine::FileFlags QFSFileEnginePrivate::getPermissions(QAbstractFil // calculate user permissions if (type & QAbstractFileEngine::ReadUserPerm) { - if (QT_ACCESS(nativeFilePath.constData(), R_OK) == 0) + if (QT_ACCESS(fileEntry.nativeFilePath().constData(), R_OK) == 0) ret |= QAbstractFileEngine::ReadUserPerm; } if (type & QAbstractFileEngine::WriteUserPerm) { - if (QT_ACCESS(nativeFilePath.constData(), W_OK) == 0) + if (QT_ACCESS(fileEntry.nativeFilePath().constData(), W_OK) == 0) ret |= QAbstractFileEngine::WriteUserPerm; } if (type & QAbstractFileEngine::ExeUserPerm) { - if (QT_ACCESS(nativeFilePath.constData(), X_OK) == 0) + if (QT_ACCESS(fileEntry.nativeFilePath().constData(), X_OK) == 0) ret |= QAbstractFileEngine::ExeUserPerm; } @@ -830,7 +822,7 @@ QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(FileFlags type) const bool foundAlias = false; { FSRef fref; - if (FSPathMakeRef((const UInt8 *)QFile::encodeName(QDir::cleanPath(d->filePath)).data(), + if (FSPathMakeRef((const UInt8 *)QFile::encodeName(QDir::cleanPath(d->fileEntry.filePath())).data(), &fref, NULL) == noErr) { Boolean isAlias, isFolder; if (FSIsAliasFile(&fref, &isAlias, &isFolder) == noErr && isAlias) { @@ -850,7 +842,7 @@ QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(FileFlags type) const ret |= DirectoryType; #if !defined(QWS) && defined(Q_OS_MAC) if ((ret & DirectoryType) && (type & BundleType)) { - QCFType url = CFURLCreateWithFileSystemPath(0, QCFString(d->filePath), + QCFType url = CFURLCreateWithFileSystemPath(0, QCFString(d->fileEntry.filePath()), kCFURLPOSIXPathStyle, true); UInt32 type, creator; if (CFBundleGetPackageInfoInDirectory(url, &type, &creator)) @@ -862,35 +854,29 @@ QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(FileFlags type) const if (type & FlagsMask) { if (exists) ret |= ExistsFlag; -#if defined(Q_OS_SYMBIAN) - if (d->filePath == QLatin1String("/") - || (d->filePath.length() == 3 && d->filePath.at(0).isLetter() - && d->filePath.at(1) == QLatin1Char(':') && d->filePath.at(2) == QLatin1Char('/'))) { + if (d->fileEntry.isRoot()) { ret |= RootFlag; } else { +#if defined(Q_OS_SYMBIAN) // In Symbian, all symlinks have hidden attribute for some reason; // lets make them visible for better compatibility with other platforms. // If somebody actually wants a hidden link, then they are out of luck. - if (!d->isSymlink() && _q_isSymbianHidden(d->filePath, ret & DirectoryType)) + if (!d->isSymlink() && _q_isSymbianHidden(d->fileEntry.filePath(), ret & DirectoryType)) ret |= HiddenFlag; - } #else - if (d->filePath == QLatin1String("/")) { - ret |= RootFlag; - } else { QString baseName = fileName(BaseName); if ((baseName.size() > 0 && baseName.at(0) == QLatin1Char('.')) # if !defined(QWS) && defined(Q_OS_MAC) - || _q_isMacHidden(d->filePath) + || _q_isMacHidden(d->fileEntry.filePath()) # if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - || d->st.st_flags & UF_HIDDEN + || d->st.st_flags & UF_HIDDEN # endif // MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 # endif ) { ret |= HiddenFlag; } - } #endif + } } return ret; } @@ -901,50 +887,50 @@ QString QFSFileEngine::fileName(FileName file) const Q_D(const QFSFileEngine); const QLatin1Char slashChar('/'); if(file == BaseName) { - int slash = d->filePath.lastIndexOf(slashChar); + int slash = d->fileEntry.filePath().lastIndexOf(slashChar); if(slash == -1) { - int colon = d->filePath.lastIndexOf(QLatin1Char(':')); + int colon = d->fileEntry.filePath().lastIndexOf(QLatin1Char(':')); if(colon != -1) - return d->filePath.mid(colon + 1); - return d->filePath; + return d->fileEntry.filePath().mid(colon + 1); + return d->fileEntry.filePath(); } - return d->filePath.mid(slash + 1); + return d->fileEntry.filePath().mid(slash + 1); } else if(file == PathName) { - if(!d->filePath.size()) - return d->filePath; + if(!d->fileEntry.filePath().size()) + return d->fileEntry.filePath(); - int slash = d->filePath.lastIndexOf(slashChar); + int slash = d->fileEntry.filePath().lastIndexOf(slashChar); if(slash == -1) { - if(d->filePath.length() >= 2 && d->filePath.at(1) == QLatin1Char(':')) - return d->filePath.left(2); + if(d->fileEntry.filePath().length() >= 2 && d->fileEntry.filePath().at(1) == QLatin1Char(':')) + return d->fileEntry.filePath().left(2); return QLatin1String("."); } else { if(!slash) return QLatin1String("/"); - if(slash == 2 && d->filePath.length() >= 2 && d->filePath.at(1) == QLatin1Char(':')) + if(slash == 2 && d->fileEntry.filePath().length() >= 2 && d->fileEntry.filePath().at(1) == QLatin1Char(':')) slash++; - return d->filePath.left(slash); + return d->fileEntry.filePath().left(slash); } } else if(file == AbsoluteName || file == AbsolutePathName) { QString ret; - if (!isRelativePathSymbian(d->filePath)) { - if (d->filePath.size() > 2 && d->filePath.at(1) == QLatin1Char(':') - && d->filePath.at(2) != slashChar){ + if (!isRelativePathSymbian(d->fileEntry.filePath())) { + if (d->fileEntry.filePath().size() > 2 && d->fileEntry.filePath().at(1) == QLatin1Char(':') + && d->fileEntry.filePath().at(2) != slashChar){ // It's a drive-relative path, so C:a.txt -> C:/currentpath/a.txt, // or if it's different drive than current, Z:a.txt -> Z:/a.txt QString currentPath = QDir::currentPath(); - if (0 == currentPath.left(1).compare(d->filePath.left(1), Qt::CaseInsensitive)) - ret = currentPath + slashChar + d->filePath.mid(2); + if (0 == currentPath.left(1).compare(d->fileEntry.filePath().left(1), Qt::CaseInsensitive)) + ret = currentPath + slashChar + d->fileEntry.filePath().mid(2); else - ret = d->filePath.left(2) + slashChar + d->filePath.mid(2); - } else if (d->filePath.startsWith(slashChar)) { + ret = d->fileEntry.filePath().left(2) + slashChar + d->fileEntry.filePath().mid(2); + } else if (d->fileEntry.filePath().startsWith(slashChar)) { // It's a absolute path to the current drive, so /a.txt -> C:/a.txt - ret = QDir::currentPath().left(2) + d->filePath; + ret = QDir::currentPath().left(2) + d->fileEntry.filePath(); } else { - ret = d->filePath; + ret = d->fileEntry.filePath(); } } else { - ret = QDir::currentPath() + slashChar + d->filePath; + ret = QDir::currentPath() + slashChar + d->fileEntry.filePath(); } // The path should be absolute at this point. @@ -993,14 +979,14 @@ QString QFSFileEngine::fileName(FileName file) const } else if(file == LinkName) { if (d->isSymlink()) { char s[PATH_MAX+1]; - int len = readlink(d->nativeFilePath.constData(), s, PATH_MAX); + int len = readlink(d->fileEntry.nativeFilePath().constData(), s, PATH_MAX); if (len > 0) { s[len] = '\0'; QString ret = QFile::decodeName(QByteArray(s)); if (isRelativePathSymbian(ret)) { - if (!isRelativePathSymbian(d->filePath)) { - ret.prepend(d->filePath.left(d->filePath.lastIndexOf(slashChar)) + if (!isRelativePathSymbian(d->fileEntry.filePath())) { + ret.prepend(d->fileEntry.filePath().left(d->fileEntry.filePath().lastIndexOf(slashChar)) + slashChar); } else { ret.prepend(QDir::currentPath() + slashChar); @@ -1016,7 +1002,7 @@ QString QFSFileEngine::fileName(FileName file) const } else if(file == BundleName) { return QString(); } - return d->filePath; + return d->fileEntry.filePath(); } #else @@ -1026,7 +1012,7 @@ QString QFSFileEngine::fileName(FileName file) const Q_D(const QFSFileEngine); if (file == BundleName) { #if !defined(QWS) && defined(Q_OS_MAC) - QCFType url = CFURLCreateWithFileSystemPath(0, QCFString(d->filePath), + QCFType url = CFURLCreateWithFileSystemPath(0, QCFString(d->fileEntry.filePath()), kCFURLPOSIXPathStyle, true); if (QCFType dict = CFBundleCopyInfoDictionaryForURL(url)) { if (CFTypeRef name = (CFTypeRef)CFDictionaryGetValue(dict, kCFBundleNameKey)) { @@ -1037,29 +1023,15 @@ QString QFSFileEngine::fileName(FileName file) const #endif return QString(); } else if (file == BaseName) { - int slash = d->filePath.lastIndexOf(QLatin1Char('/')); - if (slash != -1) - return d->filePath.mid(slash + 1); + return d->fileEntry.fileName(); } else if (file == PathName) { - int slash = d->filePath.lastIndexOf(QLatin1Char('/')); - if (slash == -1) - return QLatin1String("."); - else if (!slash) - return QLatin1String("/"); - return d->filePath.left(slash); + return d->fileEntry.path(); } else if (file == AbsoluteName || file == AbsolutePathName) { - QFileSystemEntry entry(d->filePath); - entry = QFileSystemEngine::absoluteName(entry); - QString ret = entry.filePath(); + QFileSystemEntry entry = QFileSystemEngine::absoluteName(d->fileEntry); if (file == AbsolutePathName) { - int slash = ret.lastIndexOf(QLatin1Char('/')); - if (slash == -1) - return QDir::currentPath(); - else if (!slash) - return QLatin1String("/"); - return ret.left(slash); + return entry.path(); } - return ret; + return entry.filePath(); } else if (file == CanonicalName || file == CanonicalPathName) { if (!(fileFlags(ExistsFlag) & ExistsFlag)) return QString(); @@ -1085,7 +1057,7 @@ QString QFSFileEngine::fileName(FileName file) const while (1) { s = (char *) ::realloc(s, size); Q_CHECK_PTR(s); - len = ::readlink(d->nativeFilePath.constData(), s, size); + len = ::readlink(d->fileEntry.nativeFilePath().constData(), s, size); if (len < 0) { ::free(s); break; @@ -1097,12 +1069,12 @@ QString QFSFileEngine::fileName(FileName file) const } #else char s[PATH_MAX+1]; - int len = readlink(d->nativeFilePath.constData(), s, PATH_MAX); + int len = readlink(d->fileEntry.nativeFilePath().constData(), s, PATH_MAX); #endif if (len > 0) { QString ret; if (d->doStat() && S_ISDIR(d->st.st_mode) && s[0] != '/') { - QDir parent(d->filePath); + QDir parent(d->fileEntry.filePath()); parent.cdUp(); ret = parent.path(); if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/'))) @@ -1115,8 +1087,8 @@ QString QFSFileEngine::fileName(FileName file) const #endif if (!ret.startsWith(QLatin1Char('/'))) { - if (d->filePath.startsWith(QLatin1Char('/'))) { - ret.prepend(d->filePath.left(d->filePath.lastIndexOf(QLatin1Char('/'))) + if (d->fileEntry.filePath().startsWith(QLatin1Char('/'))) { + ret.prepend(d->fileEntry.filePath().left(d->fileEntry.filePath().lastIndexOf(QLatin1Char('/'))) + QLatin1Char('/')); } else { ret.prepend(QDir::currentPath() + QLatin1Char('/')); @@ -1131,7 +1103,7 @@ QString QFSFileEngine::fileName(FileName file) const #if !defined(QWS) && defined(Q_OS_MAC) { FSRef fref; - if (FSPathMakeRef((const UInt8 *)QFile::encodeName(QDir::cleanPath(d->filePath)).data(), &fref, 0) == noErr) { + if (FSPathMakeRef((const UInt8 *)QFile::encodeName(QDir::cleanPath(d->fileEntry.filePath())).data(), &fref, 0) == noErr) { Boolean isAlias, isFolder; if (FSResolveAliasFile(&fref, true, &isFolder, &isAlias) == noErr && isAlias) { AliasHandle alias; @@ -1146,7 +1118,7 @@ QString QFSFileEngine::fileName(FileName file) const #endif return QString(); } - return d->filePath; + return d->fileEntry.filePath(); } #endif // Q_OS_SYMBIAN @@ -1154,9 +1126,9 @@ bool QFSFileEngine::isRelativePath() const { Q_D(const QFSFileEngine); #if defined(Q_OS_SYMBIAN) - return isRelativePathSymbian(d->filePath); + return isRelativePathSymbian(d->fileEntry.filePath()); #else - return d->filePath.length() ? d->filePath[0] != QLatin1Char('/') : true; + return d->fileEntry.filePath().length() ? d->fileEntry.filePath()[0] != QLatin1Char('/') : true; #endif } @@ -1253,7 +1225,7 @@ bool QFSFileEngine::setPermissions(uint perms) if (d->fd != -1) ret = fchmod(d->fd, mode) == 0; else - ret = ::chmod(d->nativeFilePath.constData(), mode) == 0; + ret = ::chmod(d->fileEntry.nativeFilePath().constData(), mode) == 0; if (!ret) setError(QFile::PermissionsError, qt_error_string(errno)); return ret; @@ -1268,7 +1240,7 @@ bool QFSFileEngine::setSize(qint64 size) else if (d->fh) ret = QT_FTRUNCATE(QT_FILENO(d->fh), size) == 0; else - ret = QT_TRUNCATE(d->nativeFilePath.constData(), size) == 0; + ret = QT_TRUNCATE(d->fileEntry.nativeFilePath().constData(), size) == 0; if (!ret) setError(QFile::ResizeError, qt_error_string(errno)); return ret; diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 84120b4..6f81652 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -128,7 +128,7 @@ typedef struct _REPARSE_DATA_BUFFER { QT_BEGIN_NAMESPACE -static QString readLink(const QString &link); +static QString readLink(const QFileSystemEntry &link); Q_CORE_EXPORT int qt_ntfs_permission_lookup = 0; @@ -279,20 +279,6 @@ bool QFSFileEnginePrivate::uncListSharesOnServer(const QString &server, QStringL return false; } -static bool isUncRoot(const QString &server) -{ - QString localPath = QDir::toNativeSeparators(server); - if (!localPath.startsWith(QLatin1String("\\\\"))) - return false; - - int idx = localPath.indexOf(QLatin1Char('\\'), 2); - if (idx == -1 || idx + 1 == localPath.length()) - return true; - - localPath = localPath.right(localPath.length() - idx - 1).trimmed(); - return localPath.isEmpty(); -} - #if !defined(Q_OS_WINCE) static inline bool isUncPath(const QString &path) { @@ -302,25 +288,6 @@ static inline bool isUncPath(const QString &path) } #endif -static inline bool isRelativePath(const QString &path) -{ - // drive, e.g. "a:", or UNC root, e.q. "//" - return !(path.startsWith(QLatin1Char('/')) - || (path.length() >= 2 - && ((path.at(0).isLetter() && path.at(1) == QLatin1Char(':')) - || (path.at(0) == QLatin1Char('/') && path.at(1) == QLatin1Char('/'))))); -} - -static QString fixIfRelativeUncPath(const QString &path) -{ - if (isRelativePath(path)) { - QString currentPath = QDir::currentPath() + QLatin1Char('/'); - if (currentPath.startsWith(QLatin1String("//"))) - return QString(path).prepend(currentPath); - } - return path; -} - // can be //server or //server/share static bool uncShareExists(const QString &server) { @@ -333,13 +300,6 @@ static bool uncShareExists(const QString &server) return false; } -static inline bool isDriveRoot(const QString &path) -{ - return (path.length() == 3 - && path.at(0).isLetter() && path.at(1) == QLatin1Char(':') - && path.at(2) == QLatin1Char('/')); -} - static QString nativeAbsoluteFilePath(const QString &path) { QString absPath; @@ -390,13 +350,22 @@ QString QFSFileEnginePrivate::longFileName(const QString &path) #endif } -/* - \internal -*/ -void QFSFileEnginePrivate::nativeInitFileName() +static inline bool getFindData(QString path, WIN32_FIND_DATA &findData) { - QString path = longFileName(QDir::toNativeSeparators(fixIfRelativeUncPath(filePath))); - nativeFilePath = QByteArray((const char *)path.utf16(), path.size() * 2 + 1); + // path should not end with a trailing slash + while (path.endsWith(QLatin1Char('\\'))) + path.chop(1); + + // can't handle drives + if (!path.endsWith(QLatin1Char(':'))) { + HANDLE hFind = ::FindFirstFile((wchar_t*)path.utf16(), &findData); + if (hFind != INVALID_HANDLE_VALUE) { + ::FindClose(hFind); + return true; + } + } + + return false; } /* @@ -421,7 +390,7 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) DWORD creationDisp = (openMode & QIODevice::WriteOnly) ? OPEN_ALWAYS : OPEN_EXISTING; // Create the file handle. - fileHandle = CreateFile((const wchar_t*)nativeFilePath.constData(), + fileHandle = CreateFile((const wchar_t*)fileEntry.nativeFilePath().utf16(), accessRights, shareMode, &securityAtts, @@ -538,31 +507,18 @@ qint64 QFSFileEnginePrivate::nativeSize() const // Not-open mode, where the file name is known: We'll check the // file system directly. - if (openMode == QIODevice::NotOpen && !nativeFilePath.isEmpty()) { + if (openMode == QIODevice::NotOpen && !fileEntry.isEmpty()) { WIN32_FILE_ATTRIBUTE_DATA attribData; - bool ok = ::GetFileAttributesEx((const wchar_t*)nativeFilePath.constData(), + bool ok = ::GetFileAttributesEx((const wchar_t*)fileEntry.nativeFilePath().utf16(), GetFileExInfoStandard, &attribData); if (!ok) { int errorCode = GetLastError(); if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { - QByteArray path = nativeFilePath; - // path for the FindFirstFile should not end with a trailing slash - while (!path.isEmpty() && reinterpret_cast( - path.constData() + path.length())[-1] == '\\') - path.chop(2); - - // FindFirstFile can not handle drives - if (!path.isEmpty() && reinterpret_cast( - path.constData() + path.length())[-1] != ':') { - WIN32_FIND_DATA findData; - HANDLE hFind = ::FindFirstFile((const wchar_t*)path.constData(), - &findData); - if (hFind != INVALID_HANDLE_VALUE) { - ::FindClose(hFind); - ok = true; - attribData.nFileSizeHigh = findData.nFileSizeHigh; - attribData.nFileSizeLow = findData.nFileSizeLow; - } + WIN32_FIND_DATA findData; + if (getFindData(fileEntry.nativeFilePath(), findData)) { + ok = true; + attribData.nFileSizeHigh = findData.nFileSizeHigh; + attribData.nFileSizeLow = findData.nFileSizeLow; } } } @@ -831,7 +787,7 @@ bool QFSFileEnginePrivate::nativeIsSequential() const bool QFSFileEngine::remove() { Q_D(QFSFileEngine); - bool ret = ::DeleteFile((wchar_t*)QFSFileEnginePrivate::longFileName(d->filePath).utf16()) != 0; + bool ret = ::DeleteFile((wchar_t*)d->fileEntry.nativeFilePath().utf16()) != 0; if (!ret) setError(QFile::RemoveError, qt_error_string()); return ret; @@ -840,8 +796,10 @@ bool QFSFileEngine::remove() bool QFSFileEngine::copy(const QString ©Name) { Q_D(QFSFileEngine); - bool ret = ::CopyFile((wchar_t*)QFSFileEnginePrivate::longFileName(d->filePath).utf16(), - (wchar_t*)QFSFileEnginePrivate::longFileName(copyName).utf16(), true) != 0; + + QFileSystemEntry target(copyName); + bool ret = ::CopyFile((wchar_t*)d->fileEntry.nativeFilePath().utf16(), + (wchar_t*)target.nativeFilePath().utf16(), true) != 0; if (!ret) setError(QFile::CopyError, qt_error_string()); return ret; @@ -850,8 +808,9 @@ bool QFSFileEngine::copy(const QString ©Name) bool QFSFileEngine::rename(const QString &newName) { Q_D(QFSFileEngine); - bool ret = ::MoveFile((wchar_t*)QFSFileEnginePrivate::longFileName(d->filePath).utf16(), - (wchar_t*)QFSFileEnginePrivate::longFileName(newName).utf16()) != 0; + QFileSystemEntry target(newName); + bool ret = ::MoveFile((wchar_t*)d->fileEntry.nativeFilePath().utf16(), + (wchar_t*)target.nativeFilePath().utf16()) != 0; if (!ret) setError(QFile::RenameError, qt_error_string()); return ret; @@ -896,20 +855,9 @@ static bool isDirPath(const QString &dirPath, bool *existed) if (fileAttrib == INVALID_FILE_ATTRIBUTES) { int errorCode = GetLastError(); if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { - // path for the FindFirstFile should not end with a trailing slash - while (path.endsWith(QLatin1Char('\\'))) - path.chop(1); - - // FindFirstFile can not handle drives - if (!path.endsWith(QLatin1Char(':'))) { - WIN32_FIND_DATA findData; - HANDLE hFind = ::FindFirstFile((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16(), - &findData); - if (hFind != INVALID_HANDLE_VALUE) { - ::FindClose(hFind); - fileAttrib = findData.dwFileAttributes; - } - } + WIN32_FIND_DATA findData; + if (getFindData(QFSFileEnginePrivate::longFileName(path), findData)) + fileAttrib = findData.dwFileAttributes; } } @@ -1164,19 +1112,17 @@ bool QFSFileEnginePrivate::doStat() const tried_stat = true; could_stat = false; - if (filePath.isEmpty()) + if (fileEntry.isEmpty()) return could_stat; - QString fname; - if(filePath.endsWith(QLatin1String(".lnk"))) { - fname = readLink(filePath); + QFileSystemEntry fname; + if(fileEntry.filePath().endsWith(QLatin1String(".lnk"))) { + fname = QFileSystemEntry(readLink(fileEntry)); if(fname.isEmpty()) return could_stat; } else - fname = filePath; - - fname = fixIfRelativeUncPath(fname); + fname = fileEntry; UINT oldmode = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX); @@ -1191,48 +1137,37 @@ bool QFSFileEnginePrivate::doStat() const } } #else - DWORD tmpAttributes = GetFileAttributes((wchar_t*)QFSFileEnginePrivate::longFileName(fname).utf16()); + DWORD tmpAttributes = GetFileAttributes((wchar_t*)fname.nativeFilePath().utf16()); if (tmpAttributes != -1) { fileAttrib = tmpAttributes; could_stat = true; } #endif } else { - fileAttrib = GetFileAttributes((wchar_t*)QFSFileEnginePrivate::longFileName(fname).utf16()); + fileAttrib = GetFileAttributes((wchar_t*)fname.nativeFilePath().utf16()); if (fileAttrib == INVALID_FILE_ATTRIBUTES) { int errorCode = GetLastError(); if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { - QString path = QDir::toNativeSeparators(fname); - // path for the FindFirstFile should not end with a trailing slash - while (path.endsWith(QLatin1Char('\\'))) - path.chop(1); - - // FindFirstFile can not handle drives - if (!path.endsWith(QLatin1Char(':'))) { - WIN32_FIND_DATA findData; - HANDLE hFind = ::FindFirstFile((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16(), - &findData); - if (hFind != INVALID_HANDLE_VALUE) { - ::FindClose(hFind); - fileAttrib = findData.dwFileAttributes; - } + WIN32_FIND_DATA findData; + if (getFindData(fname.nativeFilePath(), findData)) { + fileAttrib = findData.dwFileAttributes; } } } could_stat = fileAttrib != INVALID_FILE_ATTRIBUTES; if (!could_stat) { #if !defined(Q_OS_WINCE) - if (isDriveRoot(fname)) { + if (fname.isDriveRoot()) { // a valid drive ?? DWORD drivesBitmask = ::GetLogicalDrives(); - int drivebit = 1 << (fname.at(0).toUpper().unicode() - QLatin1Char('A').unicode()); + int drivebit = 1 << (fname.filePath().at(0).toUpper().unicode() - QLatin1Char('A').unicode()); if (drivesBitmask & drivebit) { fileAttrib = FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_SYSTEM; could_stat = true; } } else { #endif - QString path = QDir::toNativeSeparators(fname); + const QString &path = fname.nativeFilePath(); bool is_dir = false; if (path.startsWith(QLatin1String("\\\\"))) { // UNC - stat doesn't work for all cases (Windows bug) @@ -1274,11 +1209,11 @@ bool QFSFileEnginePrivate::doStat() const } -static QString readSymLink(const QString &link) +static QString readSymLink(const QFileSystemEntry &link) { QString result; #if !defined(Q_OS_WINCE) - HANDLE handle = CreateFile((wchar_t*)QFSFileEnginePrivate::longFileName(link).utf16(), + HANDLE handle = CreateFile((wchar_t*)link.nativeFilePath().utf16(), FILE_READ_EA, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, @@ -1328,7 +1263,7 @@ static QString readSymLink(const QString &link) return result; } -static QString readLink(const QString &link) +static QString readLink(const QFileSystemEntry &link) { #if !defined(Q_OS_WINCE) #if !defined(QT_NO_LIBRARY) && !defined(Q_CC_MWERKS) @@ -1352,7 +1287,7 @@ static QString readLink(const QString &link) IPersistFile *ppf; hres = psl->QueryInterface(IID_IPersistFile, (LPVOID *)&ppf); if (SUCCEEDED(hres)) { - hres = ppf->Load((LPOLESTR)link.utf16(), STGM_READ); + hres = ppf->Load((LPOLESTR)link.nativeFilePath().utf16(), STGM_READ); //The original path of the link is retrieved. If the file/folder //was moved, the return value still have the old path. if (SUCCEEDED(hres)) { @@ -1374,7 +1309,7 @@ static QString readLink(const QString &link) #else wchar_t target[MAX_PATH]; QString result; - if (SHGetShortcutTarget((wchar_t*)QFileInfo(link).absoluteFilePath().replace(QLatin1Char('/'),QLatin1Char('\\')).utf16(), target, MAX_PATH)) { + if (SHGetShortcutTarget((wchar_t*)QFileInfo(link.filePath()).absoluteFilePath().replace(QLatin1Char('/'),QLatin1Char('\\')).utf16(), target, MAX_PATH)) { result = QString::fromWCharArray(target); if (result.startsWith(QLatin1Char('"'))) result.remove(0,1); @@ -1458,7 +1393,7 @@ QAbstractFileEngine::FileFlags QFSFileEnginePrivate::getPermissions(QAbstractFil if(ptrGetNamedSecurityInfoW && ptrBuildTrusteeWithSidW && ptrGetEffectiveRightsFromAclW) { enum { ReadMask = 0x00000001, WriteMask = 0x00000002, ExecMask = 0x00000020 }; - QString fname = filePath.endsWith(QLatin1String(".lnk")) ? readLink(filePath) : filePath; + QString fname = fileEntry.filePath().endsWith(QLatin1String(".lnk")) ? readLink(fileEntry) : fileEntry.filePath(); PSID pOwner = 0; PSID pGroup = 0; PACL pDacl; @@ -1528,7 +1463,7 @@ QAbstractFileEngine::FileFlags QFSFileEnginePrivate::getPermissions(QAbstractFil | QAbstractFileEngine::WriteOtherPerm; } - QString fname = filePath.endsWith(QLatin1String(".lnk")) ? readLink(filePath) : filePath; + QString fname = fileEntry.filePath().endsWith(QLatin1String(".lnk")) ? readLink(fileEntry) : fileEntry.filePath(); QString ext = fname.right(4).toLower(); if ((fileAttrib & FILE_ATTRIBUTE_DIRECTORY) || ext == QLatin1String(".exe") || ext == QLatin1String(".com") || ext == QLatin1String(".bat") || @@ -1561,16 +1496,8 @@ bool QFSFileEnginePrivate::isSymlink() const is_link = false; if (fileAttrib & FILE_ATTRIBUTE_REPARSE_POINT) { - QString path = QDir::toNativeSeparators(filePath); - // path for the FindFirstFile should not end with a trailing slash - while (path.endsWith(QLatin1Char('\\'))) - path.chop(1); - WIN32_FIND_DATA findData; - HANDLE hFind = ::FindFirstFile((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16(), - &findData); - if (hFind != INVALID_HANDLE_VALUE) { - ::FindClose(hFind); + if (getFindData(fileEntry.nativeFilePath(), findData)) { if ((findData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK || findData.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT)) { is_link = true; @@ -1606,9 +1533,9 @@ QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(QAbstractFileEngine::Fil } } if (type & TypesMask) { - if (d->filePath.endsWith(QLatin1String(".lnk"))) { + if (d->fileEntry.filePath().endsWith(QLatin1String(".lnk"))) { ret |= LinkType; - QString l = readLink(d->filePath); + QString l = readLink(d->fileEntry); if (!l.isEmpty()) { bool existed = false; if (isDirPath(l, &existed) && existed) @@ -1630,7 +1557,7 @@ QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(QAbstractFileEngine::Fil ret |= LocalDiskFlag; if (d->doStat()) { ret |= ExistsFlag; - if (d->filePath == QLatin1String("/") || isDriveRoot(d->filePath) || isUncRoot(d->filePath)) + if (d->fileEntry.isRoot()) ret |= RootFlag; else if (d->fileAttrib & FILE_ATTRIBUTE_HIDDEN) ret |= HiddenFlag; @@ -1643,50 +1570,26 @@ QString QFSFileEngine::fileName(FileName file) const { Q_D(const QFSFileEngine); if (file == BaseName) { - int slash = d->filePath.lastIndexOf(QLatin1Char('/')); - if (slash == -1) { - int colon = d->filePath.lastIndexOf(QLatin1Char(':')); - if (colon != -1) - return d->filePath.mid(colon + 1); - return d->filePath; - } - return d->filePath.mid(slash + 1); + return d->fileEntry.fileName(); } else if (file == PathName) { - if (!d->filePath.size()) - return d->filePath; - - int slash = d->filePath.lastIndexOf(QLatin1Char('/')); - if (slash == -1) { - if (d->filePath.length() >= 2 && d->filePath.at(1) == QLatin1Char(':')) - return d->filePath.left(2); - return QString(QLatin1Char('.')); - } else { - if (!slash) - return QString(QLatin1Char('/')); - if (slash == 2 && d->filePath.length() >= 2 && d->filePath.at(1) == QLatin1Char(':')) - slash++; - return d->filePath.left(slash); - } + return d->fileEntry.path(); } else if (file == AbsoluteName || file == AbsolutePathName) { QString ret; if (!isRelativePath()) { #if !defined(Q_OS_WINCE) - if (d->filePath.startsWith(QLatin1Char('/')) || // It's a absolute path to the current drive, so \a.txt -> Z:\a.txt - d->filePath.size() == 2 || // It's a drive letter that needs to get a working dir appended - (d->filePath.size() > 2 && d->filePath.at(2) != QLatin1Char('/')) || // It's a drive-relative path, so Z:a.txt -> Z:\currentpath\a.txt - d->filePath.contains(QLatin1String("/../")) || d->filePath.contains(QLatin1String("/./")) || - d->filePath.endsWith(QLatin1String("/..")) || d->filePath.endsWith(QLatin1String("/."))) + if (d->fileEntry.filePath().startsWith(QLatin1Char('/')) || // It's a absolute path to the current drive, so \a.txt -> Z:\a.txt + d->fileEntry.filePath().size() == 2 || // It's a drive letter that needs to get a working dir appended + (d->fileEntry.filePath().size() > 2 && d->fileEntry.filePath().at(2) != QLatin1Char('/')) || // It's a drive-relative path, so Z:a.txt -> Z:\currentpath\a.txt + d->fileEntry.filePath().contains(QLatin1String("/../")) || d->fileEntry.filePath().contains(QLatin1String("/./")) || + d->fileEntry.filePath().endsWith(QLatin1String("/..")) || d->fileEntry.filePath().endsWith(QLatin1String("/."))) { - ret = QDir::fromNativeSeparators(nativeAbsoluteFilePath(d->filePath)); - } else { - ret = d->filePath; + ret = QDir::fromNativeSeparators(nativeAbsoluteFilePath(d->fileEntry.filePath())); } -#else - ret = d->filePath; #endif + ret = d->fileEntry.filePath(); } else { - ret = QDir::cleanPath(QDir::currentPath() + QLatin1Char('/') + d->filePath); + ret = QDir::cleanPath(QDir::currentPath() + QLatin1Char('/') + d->fileEntry.filePath()); } // The path should be absolute at this point. @@ -1728,25 +1631,22 @@ QString QFSFileEngine::fileName(FileName file) const return ret; } else if (file == LinkName) { QString ret; - if (d->filePath.endsWith(QLatin1String(".lnk"))) - ret = readLink(d->filePath); + if (d->fileEntry.filePath().endsWith(QLatin1String(".lnk"))) + ret = readLink(d->fileEntry); else if (d->doStat() && d->isSymlink()) - ret = readSymLink(d->filePath); + ret = readSymLink(d->fileEntry); return QDir::fromNativeSeparators(ret); } else if (file == BundleName) { return QString(); } - return d->filePath; + return d->fileEntry.filePath(); } bool QFSFileEngine::isRelativePath() const { Q_D(const QFSFileEngine); // drive, e.g. "a:", or UNC root, e.q. "//" - return !(d->filePath.startsWith(QLatin1Char('/')) - || (d->filePath.length() >= 2 - && ((d->filePath.at(0).isLetter() && d->filePath.at(1) == QLatin1Char(':')) - || (d->filePath.at(0) == QLatin1Char('/') && d->filePath.at(1) == QLatin1Char('/'))))); + return d->fileEntry.isRelative(); } uint QFSFileEngine::ownerId(FileOwner /*own*/) const @@ -1765,7 +1665,7 @@ QString QFSFileEngine::owner(FileOwner own) const if (ptrGetNamedSecurityInfoW && ptrLookupAccountSidW) { PSID pOwner = 0; PSECURITY_DESCRIPTOR pSD; - if (ptrGetNamedSecurityInfoW((wchar_t*)d->filePath.utf16(), SE_FILE_OBJECT, + if (ptrGetNamedSecurityInfoW((wchar_t*)d->fileEntry.nativeFilePath().utf16(), SE_FILE_OBJECT, own == OwnerGroup ? GROUP_SECURITY_INFORMATION : OWNER_SECURITY_INFORMATION, own == OwnerUser ? &pOwner : 0, own == OwnerGroup ? &pOwner : 0, 0, 0, &pSD) == ERROR_SUCCESS) { @@ -1817,7 +1717,7 @@ bool QFSFileEngine::setPermissions(uint perms) if (mode == 0) // not supported return false; - ret = ::_wchmod((wchar_t*)QFSFileEnginePrivate::longFileName(d->filePath).utf16(), mode) == 0; + ret = ::_wchmod((wchar_t*)d->fileEntry.nativeFilePath().utf16(), mode) == 0; if (!ret) setError(QFile::PermissionsError, qt_error_string(errno)); return ret; @@ -1847,9 +1747,9 @@ bool QFSFileEngine::setSize(qint64 size) return false; } - if (!d->nativeFilePath.isEmpty()) { + if (!d->fileEntry.isEmpty()) { // resize file on disk - QFile file(d->filePath); + QFile file(d->fileEntry.filePath()); if (file.open(QFile::ReadWrite)) { bool ret = file.resize(size); if (!ret) @@ -1915,27 +1815,16 @@ QDateTime QFSFileEngine::fileTime(FileTime time) const #endif } else { WIN32_FILE_ATTRIBUTE_DATA attribData; - bool ok = ::GetFileAttributesEx((wchar_t*)QFSFileEnginePrivate::longFileName(d->filePath).utf16(), GetFileExInfoStandard, &attribData); + bool ok = ::GetFileAttributesEx((wchar_t*)QFSFileEnginePrivate::longFileName(d->fileEntry.filePath()).utf16(), GetFileExInfoStandard, &attribData); if (!ok) { int errorCode = GetLastError(); if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { - QString path = QDir::toNativeSeparators(d->filePath); - // path for the FindFirstFile should not end with a trailing slash - while (path.endsWith(QLatin1Char('\\'))) - path.chop(1); - - // FindFirstFile can not handle drives - if (!path.endsWith(QLatin1Char(':'))) { - WIN32_FIND_DATA findData; - HANDLE hFind = ::FindFirstFile((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16(), - &findData); - if (hFind != INVALID_HANDLE_VALUE) { - ::FindClose(hFind); - ok = true; - attribData.ftCreationTime = findData.ftCreationTime; - attribData.ftLastWriteTime = findData.ftLastWriteTime; - attribData.ftLastAccessTime = findData.ftLastAccessTime; - } + WIN32_FIND_DATA findData; + if (getFindData(d->fileEntry.nativeFilePath(), findData)) { + ok = true; + attribData.ftCreationTime = findData.ftCreationTime; + attribData.ftLastWriteTime = findData.ftLastWriteTime; + attribData.ftLastAccessTime = findData.ftLastAccessTime; } } } @@ -1977,7 +1866,7 @@ uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, #ifdef Q_USE_DEPRECATED_MAP_API nativeClose(); // handle automatically closed by kernel with mapHandle (below). - handle = ::CreateFileForMapping((const wchar_t*)nativeFilePath.constData(), + handle = ::CreateFileForMapping((const wchar_t*)fileEntry.nativeFilePath().utf16(), GENERIC_READ | (openMode & QIODevice::WriteOnly ? GENERIC_WRITE : 0), 0, NULL, diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp index c34c4a4..a0d3176 100644 --- a/src/corelib/io/qtemporaryfile.cpp +++ b/src/corelib/io/qtemporaryfile.cpp @@ -295,7 +295,7 @@ public: : QFSFileEngine(), filePathIsTemplate(fileIsTemplate) { Q_D(QFSFileEngine); - d->filePath = file; + d->fileEntry = QFileSystemEntry(file); if (!filePathIsTemplate) QFSFileEngine::setFileName(file); @@ -346,7 +346,7 @@ void QTemporaryFileEngine::setFileTemplate(const QString &fileTemplate) { Q_D(QFSFileEngine); if (filePathIsTemplate) - d->filePath = fileTemplate; + d->fileEntry = QFileSystemEntry(fileTemplate); } bool QTemporaryFileEngine::open(QIODevice::OpenMode openMode) @@ -359,7 +359,7 @@ bool QTemporaryFileEngine::open(QIODevice::OpenMode openMode) if (!filePathIsTemplate) return QFSFileEngine::open(openMode); - QString qfilename = d->filePath; + QString qfilename = d->fileEntry.filePath(); if(!qfilename.contains(QLatin1String("XXXXXX"))) qfilename += QLatin1String(".XXXXXX"); @@ -377,9 +377,8 @@ bool QTemporaryFileEngine::open(QIODevice::OpenMode openMode) d->closeFileHandle = true; // Restore the file names (open() resets them). - d->filePath = QString::fromLocal8Bit(filename); //changed now! + d->fileEntry = QFileSystemEntry(QByteArray(filename)); //changed now! filePathIsTemplate = false; - d->nativeInitFileName(); delete [] filename; return true; } @@ -395,9 +394,8 @@ bool QTemporaryFileEngine::open(QIODevice::OpenMode openMode) return false; } - QString template_ = d->filePath; - d->filePath = QString::fromLocal8Bit(filename); - d->nativeInitFileName(); + QString template_ = d->fileEntry.filePath(); + d->fileEntry = QFileSystemEntry(QString::fromLocal8Bit(filename)); delete [] filename; if (QFSFileEngine::open(openMode)) { @@ -405,8 +403,7 @@ bool QTemporaryFileEngine::open(QIODevice::OpenMode openMode) return true; } - d->filePath = template_; - d->nativeFilePath.clear(); + d->fileEntry = QFileSystemEntry(template_); return false; #endif } @@ -418,7 +415,7 @@ bool QTemporaryFileEngine::remove() // we must explicitly call QFSFileEngine::close() before we remove it. QFSFileEngine::close(); if (QFSFileEngine::remove()) { - d->filePath.clear(); + d->fileEntry.clear(); return true; } return false; -- cgit v0.12 From 3fed8517dc34b77707a42eb1f43a4e7199f105c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 13:57:31 +0200 Subject: QFileSystemEngine::isCaseSensitive for Symbian and Windows --- src/corelib/io/qfilesystemengine_unix.cpp | 4 ++++ src/corelib/io/qfilesystemengine_win.cpp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 2274e69..68cc154 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -46,7 +46,11 @@ QT_BEGIN_NAMESPACE bool QFileSystemEngine::isCaseSensitive() { +#if defined(Q_OS_SYMBIAN) + return false; +#else return true; +#endif } //static diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 942415c..40df120 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -45,7 +45,7 @@ QT_BEGIN_NAMESPACE bool QFileSystemEngine::isCaseSensitive() { - return true; + return false; } //static -- cgit v0.12 From 1bdc1dfda903426e7a0bd844c48e67ff9e6b6a94 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Mon, 30 Aug 2010 17:41:37 +0200 Subject: Fix the tst_QFileInfo::absolutePath() autotests on Windows Reviewed-by: Joao --- src/corelib/io/qfsfileengine_win.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 6f81652..9f33af5 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -1585,9 +1585,11 @@ QString QFSFileEngine::fileName(FileName file) const d->fileEntry.filePath().endsWith(QLatin1String("/..")) || d->fileEntry.filePath().endsWith(QLatin1String("/."))) { ret = QDir::fromNativeSeparators(nativeAbsoluteFilePath(d->fileEntry.filePath())); - } + } else #endif - ret = d->fileEntry.filePath(); + { + ret = d->fileEntry.filePath(); + } } else { ret = QDir::cleanPath(QDir::currentPath() + QLatin1Char('/') + d->fileEntry.filePath()); } -- cgit v0.12 From 900eb656849d4fa3ff119305c08b631c76fae75e Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Mon, 30 Aug 2010 17:28:02 +0200 Subject: Move canonicalPath() to the new qfilesystemengine_unix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: João Abecasis --- qmake/Makefile.unix | 6 +- qmake/Makefile.win32 | 5 ++ qmake/Makefile.win32-g++ | 4 + qmake/qmake.pri | 1 + src/corelib/io/io.pri | 3 +- src/corelib/io/qfilesystemengine.cpp | 113 +++++++++++++++++++++++++++ src/corelib/io/qfilesystemengine_p.h | 2 + src/corelib/io/qfilesystemengine_unix.cpp | 21 ++++- src/corelib/io/qfsfileengine.cpp | 57 +------------- src/corelib/io/qfsfileengine_unix.cpp | 19 ++--- src/tools/bootstrap/bootstrap.pro | 1 + tools/configure/configure.pro | 1 + tools/qtestlib/wince/cetest/bootstrapped.pri | 1 + 13 files changed, 162 insertions(+), 72 deletions(-) create mode 100644 src/corelib/io/qfilesystemengine.cpp diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index 8c1ac6d..4eba3f5 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -16,7 +16,7 @@ OBJS=project.o property.o main.o makefile.o unixmake2.o unixmake.o \ #qt code QOBJS=qtextcodec.o qutfcodec.o qstring.o qtextstream.o qiodevice.o qmalloc.o qglobal.o \ qbytearray.o qbytearraymatcher.o qdatastream.o qbuffer.o qlist.o qfile.o \ - qfilesystementry.o qfilesystemengine_unix.o \ + qfilesystementry.o qfilesystemengine_unix.o qfilesystemengine.o \ qfsfileengine_unix.o qfsfileengine_iterator_unix.o qfsfileengine.o \ qfsfileengine_iterator.o qregexp.o qvector.o qbitarray.o qdir.o qdiriterator.o quuid.o qhash.o \ qfileinfo.o qdatetime.o qstringlist.o qabstractfileengine.o qtemporaryfile.o \ @@ -46,6 +46,7 @@ DEPEND_SRC=project.cpp property.cpp meta.cpp main.cpp generators/makefile.cpp ge $(SOURCE_PATH)/src/corelib/tools/qbytearray.cpp $(SOURCE_PATH)/src/corelib/tools/qbytearraymatcher.cpp \ $(SOURCE_PATH)/src/corelib/io/qdatastream.cpp $(SOURCE_PATH)/src/corelib/io/qbuffer.cpp \ $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp \ + $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_unix.cpp $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp $(SOURCE_PATH)/src/corelib/tools/qlist.cpp \ @@ -165,6 +166,9 @@ qfile.o: $(SOURCE_PATH)/src/corelib/io/qfile.cpp qfilesystementry.o: $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp +qfilesystemengine.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp + qfilesystemengine_unix.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index b76348b..ec64fa9 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -89,6 +89,7 @@ QTOBJS= \ qbuffer.obj \ qcryptographichash.obj \ qfilesystementry.obj \ + qfilesystemengine.obj \ qfilesystemengine_win.obj \ qfsfileengine.obj \ qfsfileengine_iterator.obj \ @@ -144,6 +145,7 @@ clean:: -del qcryptographichash.obj -del qlinkedlist.obj -del qfilesystementry.obj + -del qfilesystemengine.obj -del qfilesystemengine_win.obj -del qfsfileengine.obj -del qfsfileengine_iterator.obj @@ -317,6 +319,9 @@ qtemporaryfile.obj: $(SOURCE_PATH)\src\corelib\io\qtemporaryfile.cpp qfilesystementry.obj: $(SOURCE_PATH)\src\corelib\io\qfilesystementry.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfilesystementry.cpp +qfilesystemengine.obj: $(SOURCE_PATH)\src\corelib\io\qfilesystemengine.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfilesystemengine.cpp + qfilesystemengine_win.obj: $(SOURCE_PATH)\src\corelib\io\qfilesystemengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfilesystemengine_win.cpp diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++ index c692731..f2f8386 100644 --- a/qmake/Makefile.win32-g++ +++ b/qmake/Makefile.win32-g++ @@ -62,6 +62,7 @@ QTOBJS= \ qfileinfo.o \ qabstractfileengine.o \ qfilesystementry.o \ + qfilesystemengine.o \ qfilesystemengine_win.o \ qfsfileengine.o \ qfsfileengine_iterator.o \ @@ -197,6 +198,9 @@ qabstractfileengine.o: $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp qfilesystementry.o: $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp +qfilesystemengine.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp + qfilesystemengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp diff --git a/qmake/qmake.pri b/qmake/qmake.pri index 4d78c8b..be6a909 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -58,6 +58,7 @@ bootstrap { #Qt code qabstractfileengine.cpp \ qfileinfo.cpp \ qfilesystementry.cpp \ + qfilesystemengine.cpp \ qfsfileengine.cpp \ qfsfileengine_iterator.cpp \ qglobal.cpp \ diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index 3bde2de..7a34275 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -56,7 +56,8 @@ SOURCES += \ io/qfsfileengine.cpp \ io/qfsfileengine_iterator.cpp \ io/qfilesystemwatcher.cpp \ - io/qfilesystementry.cpp + io/qfilesystementry.cpp \ + io/qfilesystemengine.cpp win32 { SOURCES += io/qsettings_win.cpp diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp new file mode 100644 index 0000000..04e53ce --- /dev/null +++ b/src/corelib/io/qfilesystemengine.cpp @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** 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 QtCore 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 "qfilesystemengine_p.h" +#include +#include + +/*! + \internal + + Returns the canonicalized form of \a path (i.e., with all symlinks + resolved, and all redundant path elements removed. +*/ +QString QFileSystemEngine::slowCanonicalized(const QString &path) +{ + if (path.isEmpty()) + return path; + + QFileInfo fi; + const QChar slash(QLatin1Char('/')); + QString tmpPath = path; + int separatorPos = 0; + QSet nonSymlinks; + QSet known; + + known.insert(path); + do { +#ifdef Q_OS_WIN + if (separatorPos == 0) { + if (tmpPath.size() >= 2 && tmpPath.at(0) == slash && tmpPath.at(1) == slash) { + // UNC, skip past the first two elements + separatorPos = tmpPath.indexOf(slash, 2); + } else if (tmpPath.size() >= 3 && tmpPath.at(1) == QLatin1Char(':') && tmpPath.at(2) == slash) { + // volume root, skip since it can not be a symlink + separatorPos = 2; + } + } + if (separatorPos != -1) +#endif + separatorPos = tmpPath.indexOf(slash, separatorPos + 1); + QString prefix = separatorPos == -1 ? tmpPath : tmpPath.left(separatorPos); + if ( +#ifdef Q_OS_SYMBIAN + // Symbian doesn't support directory symlinks, so do not check for link unless we + // are handling the last path element. This not only slightly improves performance, + // but also saves us from lot of unnecessary platform security check failures + // when dealing with files under *:/private directories. + separatorPos == -1 && +#endif + !nonSymlinks.contains(prefix)) { + fi.setFile(prefix); + if (fi.isSymLink()) { + QString target = fi.symLinkTarget(); + if(QFileInfo(target).isRelative()) + target = fi.absolutePath() + slash + target; + if (separatorPos != -1) { + if (fi.isDir() && !target.endsWith(slash)) + target.append(slash); + target.append(tmpPath.mid(separatorPos)); + } + tmpPath = QDir::cleanPath(target); + separatorPos = 0; + + if (known.contains(tmpPath)) + return QString(); + known.insert(tmpPath); + } else { + nonSymlinks.insert(prefix); + } + } + } while (separatorPos != -1); + + return QDir::cleanPath(tmpPath); +} + diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index c1bb3b4..61ca085 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -84,6 +84,8 @@ public: static bool setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data = 0); + + static QString slowCanonicalized(const QString &path); }; QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 68cc154..283c787 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -42,6 +42,9 @@ #include "qfilesystemengine_p.h" #include "qfsfileengine.h" +#include // for realpath() +#include + QT_BEGIN_NAMESPACE bool QFileSystemEngine::isCaseSensitive() @@ -62,7 +65,23 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link) //static QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) { - return entry; // TODO implement; + if (entry.isEmpty() || entry.isRoot()) + return entry; + +#ifdef __UCLIBC__ + return QFileSystemEntry::slowCanonicalName(entry); +#else + + char *ret = realpath(entry.nativeFilePath().constData(), (char*)0); + if (ret) { + QString canonicalPath = QDir::cleanPath(QString::fromLocal8Bit(ret)); + free(ret); + return QFileSystemEntry(canonicalPath); + } else if (errno == ENOENT) { // file doesn't exist + return QFileSystemEntry(); + } + return entry; +#endif } //static diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 75f82a6..665d23e 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -41,6 +41,7 @@ #include "qfsfileengine_p.h" #include "qfsfileengine_iterator_p.h" +#include "qfilesystemengine_p.h" #include "qdatetime.h" #include "qdiriterator.h" #include "qset.h" @@ -179,61 +180,7 @@ QString QFSFileEnginePrivate::canonicalized(const QString &path) #endif #endif - QFileInfo fi; - const QChar slash(QLatin1Char('/')); - QString tmpPath = path; - int separatorPos = 0; - QSet nonSymlinks; - QSet known; - - known.insert(path); - do { -#ifdef Q_OS_WIN - if (separatorPos == 0) { - if (tmpPath.size() >= 2 && tmpPath.at(0) == slash && tmpPath.at(1) == slash) { - // UNC, skip past the first two elements - separatorPos = tmpPath.indexOf(slash, 2); - } else if (tmpPath.size() >= 3 && tmpPath.at(1) == QLatin1Char(':') && tmpPath.at(2) == slash) { - // volume root, skip since it can not be a symlink - separatorPos = 2; - } - } - if (separatorPos != -1) -#endif - separatorPos = tmpPath.indexOf(slash, separatorPos + 1); - QString prefix = separatorPos == -1 ? tmpPath : tmpPath.left(separatorPos); - if ( -#ifdef Q_OS_SYMBIAN - // Symbian doesn't support directory symlinks, so do not check for link unless we - // are handling the last path element. This not only slightly improves performance, - // but also saves us from lot of unnecessary platform security check failures - // when dealing with files under *:/private directories. - separatorPos == -1 && -#endif - !nonSymlinks.contains(prefix)) { - fi.setFile(prefix); - if (fi.isSymLink()) { - QString target = fi.symLinkTarget(); - if(QFileInfo(target).isRelative()) - target = fi.absolutePath() + slash + target; - if (separatorPos != -1) { - if (fi.isDir() && !target.endsWith(slash)) - target.append(slash); - target.append(tmpPath.mid(separatorPos)); - } - tmpPath = QDir::cleanPath(target); - separatorPos = 0; - - if (known.contains(tmpPath)) - return QString(); - known.insert(tmpPath); - } else { - nonSymlinks.insert(prefix); - } - } - } while (separatorPos != -1); - - return QDir::cleanPath(tmpPath); + return QFileSystemEngine::slowCanonicalized(path); } /*! diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 3daf7f6..29491f5 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -1027,25 +1027,16 @@ QString QFSFileEngine::fileName(FileName file) const } else if (file == PathName) { return d->fileEntry.path(); } else if (file == AbsoluteName || file == AbsolutePathName) { - QFileSystemEntry entry = QFileSystemEngine::absoluteName(d->fileEntry); + QFileSystemEntry entry(QFileSystemEngine::absoluteName(d->fileEntry)); if (file == AbsolutePathName) { return entry.path(); } return entry.filePath(); } else if (file == CanonicalName || file == CanonicalPathName) { - if (!(fileFlags(ExistsFlag) & ExistsFlag)) - return QString(); - - QString ret = QFSFileEnginePrivate::canonicalized(fileName(AbsoluteName)); - if (file == CanonicalPathName && !ret.isEmpty()) { - int slash = ret.lastIndexOf(QLatin1Char('/')); - if (slash == -1) - ret = QDir::currentPath(); - else if (slash == 0) - ret = QLatin1String("/"); - ret = ret.left(slash); - } - return ret; + QFileSystemEntry entry(QFileSystemEngine::canonicalName(d->fileEntry)); + if (file == CanonicalPathName) + return entry.path(); + return entry.filePath(); } else if (file == LinkName) { if (d->isSymlink()) { #if defined(__GLIBC__) && !defined(PATH_MAX) diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro index bec1329..9adba9c 100644 --- a/src/tools/bootstrap/bootstrap.pro +++ b/src/tools/bootstrap/bootstrap.pro @@ -58,6 +58,7 @@ SOURCES += \ ../../corelib/io/qfile.cpp \ ../../corelib/io/qfileinfo.cpp \ ../../corelib/io/qfilesystementry.cpp \ + ../../corelib/io/qfilesystemengine.cpp \ ../../corelib/io/qfsfileengine.cpp \ ../../corelib/io/qfsfileengine_iterator.cpp \ ../../corelib/io/qiodevice.cpp \ diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro index 9e52f81..854a0e4 100644 --- a/tools/configure/configure.pro +++ b/tools/configure/configure.pro @@ -90,6 +90,7 @@ SOURCES = main.cpp configureapp.cpp environment.cpp tools.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfileinfo.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qabstractfileengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystementry.cpp \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_win.cpp \ diff --git a/tools/qtestlib/wince/cetest/bootstrapped.pri b/tools/qtestlib/wince/cetest/bootstrapped.pri index 0af5c94..f33dde8 100644 --- a/tools/qtestlib/wince/cetest/bootstrapped.pri +++ b/tools/qtestlib/wince/cetest/bootstrapped.pri @@ -5,6 +5,7 @@ SOURCES += \ $$QT_SOURCE_TREE/src/corelib/io/qfile.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qdir.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystementry.cpp \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qabstractfileengine.cpp \ -- cgit v0.12 From c2df86d23477573ef664a20b47b19a42e4a2e6c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 15:02:29 +0200 Subject: Removed QFileInfoPrivate::initFileEngine As it served no real purpose. Instead, the relevant bits were inlined in the constructor that used it and makeAbsolute was adapted to use operator=. Reviewed-by: Thomas Zander --- src/corelib/io/qfileinfo.cpp | 12 ++---------- src/corelib/io/qfileinfo_p.h | 5 ++--- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index fe557d0..ccfc9c2 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -47,15 +47,6 @@ QT_BEGIN_NAMESPACE -void QFileInfoPrivate::initFileEngine(const QString &file) -{ - delete fileEngine; - fileEngine = 0; - clear(); - fileEngine = QAbstractFileEngine::create(file); - fileName = file; -} - QString QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName name) const { if (cache_enabled && !fileNames[(int)name].isNull()) @@ -586,7 +577,8 @@ bool QFileInfo::makeAbsolute() return false; QString absFileName = d_ptr.constData()->getFileName(QAbstractFileEngine::AbsoluteName); // QSharedDataPointer::operator->() will detach. - d_ptr->initFileEngine(absFileName); + + *this = QFileInfo(absFileName); return true; } diff --git a/src/corelib/io/qfileinfo_p.h b/src/corelib/io/qfileinfo_p.h index 138116e..f23ae53 100644 --- a/src/corelib/io/qfileinfo_p.h +++ b/src/corelib/io/qfileinfo_p.h @@ -79,16 +79,15 @@ public: cachedFlags(0), cache_enabled(copy.cache_enabled), fileFlags(0), fileSize(0) {} inline QFileInfoPrivate(const QString &file) - : QSharedData(), fileEngine(0), + : QSharedData(), fileEngine(QAbstractFileEngine::create(file)), + fileName(file), cachedFlags(0), cache_enabled(1), fileFlags(0), fileSize(0) { - initFileEngine(file); } inline ~QFileInfoPrivate() { delete fileEngine; } - void initFileEngine(const QString &); inline void clearFlags() const { fileFlags = 0; -- cgit v0.12 From 7a8cdcac068898697f9f0f75c410ea673d6f0d60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 16:59:20 +0200 Subject: Adding minimal QFileSystemIterator API Only stubs, for now, but it's a start. Reviewed-by: Thomas Zander --- qmake/Makefile.unix | 7 ++- qmake/Makefile.win32 | 5 ++ qmake/Makefile.win32-g++ | 4 ++ qmake/Makefile.win32-g++-sh | 4 ++ qmake/qmake.pri | 4 +- src/corelib/io/io.pri | 5 +- src/corelib/io/qfilesystemiterator_p.h | 78 ++++++++++++++++++++++++++++ src/corelib/io/qfilesystemiterator_unix.cpp | 61 ++++++++++++++++++++++ src/corelib/io/qfilesystemiterator_win.cpp | 61 ++++++++++++++++++++++ src/tools/bootstrap/bootstrap.pro | 2 + tools/configure/configure.pro | 2 + tools/qtestlib/wince/cetest/bootstrapped.pri | 1 + 12 files changed, 229 insertions(+), 5 deletions(-) create mode 100644 src/corelib/io/qfilesystemiterator_p.h create mode 100644 src/corelib/io/qfilesystemiterator_unix.cpp create mode 100644 src/corelib/io/qfilesystemiterator_win.cpp diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index 4eba3f5..e8e96fd 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -16,7 +16,7 @@ OBJS=project.o property.o main.o makefile.o unixmake2.o unixmake.o \ #qt code QOBJS=qtextcodec.o qutfcodec.o qstring.o qtextstream.o qiodevice.o qmalloc.o qglobal.o \ qbytearray.o qbytearraymatcher.o qdatastream.o qbuffer.o qlist.o qfile.o \ - qfilesystementry.o qfilesystemengine_unix.o qfilesystemengine.o \ + qfilesystementry.o qfilesystemengine_unix.o qfilesystemengine.o qfilesystemiterator_unix.o \ qfsfileengine_unix.o qfsfileengine_iterator_unix.o qfsfileengine.o \ qfsfileengine_iterator.o qregexp.o qvector.o qbitarray.o qdir.o qdiriterator.o quuid.o qhash.o \ qfileinfo.o qdatetime.o qstringlist.o qabstractfileengine.o qtemporaryfile.o \ @@ -46,7 +46,7 @@ DEPEND_SRC=project.cpp property.cpp meta.cpp main.cpp generators/makefile.cpp ge $(SOURCE_PATH)/src/corelib/tools/qbytearray.cpp $(SOURCE_PATH)/src/corelib/tools/qbytearraymatcher.cpp \ $(SOURCE_PATH)/src/corelib/io/qdatastream.cpp $(SOURCE_PATH)/src/corelib/io/qbuffer.cpp \ $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp \ - $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp \ + $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_unix.cpp $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp $(SOURCE_PATH)/src/corelib/tools/qlist.cpp \ @@ -172,6 +172,9 @@ qfilesystemengine.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp qfilesystemengine_unix.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp +qfilesystemiterator_unix.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp + qfsfileengine.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index ec64fa9..fa17b9d 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -91,6 +91,7 @@ QTOBJS= \ qfilesystementry.obj \ qfilesystemengine.obj \ qfilesystemengine_win.obj \ + qfilesystemiterator_win.obj \ qfsfileengine.obj \ qfsfileengine_iterator.obj \ qbytearray.obj \ @@ -147,6 +148,7 @@ clean:: -del qfilesystementry.obj -del qfilesystemengine.obj -del qfilesystemengine_win.obj + -del qfilesystemiterator_win.obj -del qfsfileengine.obj -del qfsfileengine_iterator.obj -del qbytearray.obj @@ -325,6 +327,9 @@ qfilesystemengine.obj: $(SOURCE_PATH)\src\corelib\io\qfilesystemengine.cpp qfilesystemengine_win.obj: $(SOURCE_PATH)\src\corelib\io\qfilesystemengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfilesystemengine_win.cpp +qfilesystemiterator_win.obj: $(SOURCE_PATH)\src\corelib\io\qfilesystemiterator_win.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfilesystemiterator_win.cpp + qfsfileengine_win.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine_win.cpp diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++ index f2f8386..57ea3d5 100644 --- a/qmake/Makefile.win32-g++ +++ b/qmake/Makefile.win32-g++ @@ -64,6 +64,7 @@ QTOBJS= \ qfilesystementry.o \ qfilesystemengine.o \ qfilesystemengine_win.o \ + qfilesystemiterator_win.o \ qfsfileengine.o \ qfsfileengine_iterator.o \ qfsfileengine_win.o \ @@ -204,6 +205,9 @@ qfilesystemengine.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp qfilesystemengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp +qfilesystemiterator_win.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win.cpp + qfsfileengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp diff --git a/qmake/Makefile.win32-g++-sh b/qmake/Makefile.win32-g++-sh index cc256e9..33deb01 100644 --- a/qmake/Makefile.win32-g++-sh +++ b/qmake/Makefile.win32-g++-sh @@ -63,6 +63,7 @@ QTOBJS= \ qabstractfileengine.o \ qfilesystementry.o \ qfilesystemengine_win.o \ + qfilesystemiterator_win.o \ qfsfileengine.o \ qfsfileengine_iterator.o \ qfsfileengine_win.o \ @@ -199,6 +200,9 @@ qfilesystementry.o: $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp qfilesystemengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp +qfilesystemiterator_win.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win.cpp + qfsfileengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp diff --git a/qmake/qmake.pri b/qmake/qmake.pri index be6a909..7226b12 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -127,14 +127,14 @@ bootstrap { #Qt code qxmlutils.h unix { - SOURCES += qfilesystemengine_unix.cpp qfsfileengine_unix.cpp qfsfileengine_iterator_unix.cpp + SOURCES += qfilesystemengine_unix.cpp qfilesystemiterator_unix.cpp qfsfileengine_unix.cpp qfsfileengine_iterator_unix.cpp mac { SOURCES += qcore_mac.cpp qsettings_mac.cpp QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 #enables weak linking for 10.4 (exported) LIBS += -framework ApplicationServices } } else:win32 { - SOURCES += qfilesystemengine_win.cpp qfsfileengine_win.cpp qfsfileengine_iterator_win.cpp qsettings_win.cpp + SOURCES += qfilesystemengine_win.cpp qfsfileengine_win.cpp qfilesystemiterator_win.cpp qfsfileengine_iterator_win.cpp qsettings_win.cpp win32-msvc*:LIBS += ole32.lib advapi32.lib win32-g++*:LIBS += -lole32 -luuid } diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index 7a34275..5d10216 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -32,7 +32,8 @@ HEADERS += \ io/qfilesystemwatcher_p.h \ io/qfilesystementry_p.h \ io/qfilesystemengine_p.h \ - io/qfilesystemmetadata_p.h + io/qfilesystemmetadata_p.h \ + io/qfilesystemiterator_p.h SOURCES += \ io/qabstractfileengine.cpp \ @@ -70,8 +71,10 @@ win32 { HEADERS += io/qwindowspipewriter_p.h SOURCES += io/qwindowspipewriter.cpp SOURCES += io/qfilesystemengine_win.cpp + SOURCES += io/qfilesystemiterator_win.cpp } else:unix { SOURCES += io/qfilesystemengine_unix.cpp + SOURCES += io/qfilesystemiterator_unix.cpp SOURCES += io/qfsfileengine_unix.cpp SOURCES += io/qfsfileengine_iterator_unix.cpp symbian:SOURCES += io/qprocess_symbian.cpp diff --git a/src/corelib/io/qfilesystemiterator_p.h b/src/corelib/io/qfilesystemiterator_p.h new file mode 100644 index 0000000..436ff7e --- /dev/null +++ b/src/corelib/io/qfilesystemiterator_p.h @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** 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 QtCore 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$ +** +****************************************************************************/ + +#ifndef QFILESYSTEMITERATOR_P_H_INCLUDED +#define QFILESYSTEMITERATOR_P_H_INCLUDED + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include + +#include +#include + +QT_BEGIN_NAMESPACE + +class QFileSystemIterator +{ +public: + QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, const QStringList &nameFilters); + + bool advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData); + +private: + Q_DISABLE_COPY(QFileSystemIterator) +}; + +QT_END_NAMESPACE + +#endif // include guard diff --git a/src/corelib/io/qfilesystemiterator_unix.cpp b/src/corelib/io/qfilesystemiterator_unix.cpp new file mode 100644 index 0000000..3ee344b --- /dev/null +++ b/src/corelib/io/qfilesystemiterator_unix.cpp @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** 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 QtCore 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 "qfilesystemiterator_p.h" + +QT_BEGIN_NAMESPACE + +QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, + const QStringList &nameFilters) +{ + Q_UNUSED(entry) + Q_UNUSED(filters) + Q_UNUSED(nameFilters) +} + +bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData) +{ + Q_UNUSED(fileEntry) + Q_UNUSED(metaData) + return false; +} + +QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp new file mode 100644 index 0000000..3ee344b --- /dev/null +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** 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 QtCore 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 "qfilesystemiterator_p.h" + +QT_BEGIN_NAMESPACE + +QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, + const QStringList &nameFilters) +{ + Q_UNUSED(entry) + Q_UNUSED(filters) + Q_UNUSED(nameFilters) +} + +bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData) +{ + Q_UNUSED(fileEntry) + Q_UNUSED(metaData) + return false; +} + +QT_END_NAMESPACE diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro index 9adba9c..6d2f760 100644 --- a/src/tools/bootstrap/bootstrap.pro +++ b/src/tools/bootstrap/bootstrap.pro @@ -86,10 +86,12 @@ SOURCES += \ ../../xml/sax/qxml.cpp unix:SOURCES += ../../corelib/io/qfilesystemengine_unix.cpp \ + ../../corelib/io/qfilesystemiterator_unix.cpp \ ../../corelib/io/qfsfileengine_unix.cpp \ ../../corelib/io/qfsfileengine_iterator_unix.cpp win32:SOURCES += ../../corelib/io/qfilesystemengine_win.cpp \ + ../../corelib/io/qfilesystemiterator_win.cpp \ ../../corelib/io/qfsfileengine_win.cpp \ ../../corelib/io/qfsfileengine_iterator_win.cpp diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro index 854a0e4..fe1b028 100644 --- a/tools/configure/configure.pro +++ b/tools/configure/configure.pro @@ -51,6 +51,7 @@ HEADERS = configureapp.h environment.h tools.h\ $$QT_SOURCE_TREE/src/corelib/io/qfilesystementry_p.h \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine_p.h \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystemmetadata_p.h \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystemiterator_p.h \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine.h \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_iterator_p.h \ $$QT_SOURCE_TREE/src/corelib/io/qiodevice.h \ @@ -92,6 +93,7 @@ SOURCES = main.cpp configureapp.cpp environment.cpp tools.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystementry.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine_win.cpp \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystemiterator_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_iterator.cpp \ diff --git a/tools/qtestlib/wince/cetest/bootstrapped.pri b/tools/qtestlib/wince/cetest/bootstrapped.pri index f33dde8..76245b0 100644 --- a/tools/qtestlib/wince/cetest/bootstrapped.pri +++ b/tools/qtestlib/wince/cetest/bootstrapped.pri @@ -7,6 +7,7 @@ SOURCES += \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystementry.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfilesystemengine_win.cpp \ + $$QT_SOURCE_TREE/src/corelib/io/qfilesystemiterator_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qabstractfileengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_win.cpp \ -- cgit v0.12 From e074824409dae5d2e242c3a6904329826a708c46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 17:40:11 +0200 Subject: QFileInfo: Prepare for engine-less implementation The absence of a file engine was being interpreted as a synonym for a default constructed instance (or failed engine creation with QT_NO_FSFILEENGINE). By having an explicit flag, we open the door for bypassing file engine creation. Reviewed-by: Thomas Zander --- src/corelib/io/qfileinfo.cpp | 73 ++++++++++++++++++++++---------------------- src/corelib/io/qfileinfo_p.h | 32 +++++++++++++------ 2 files changed, 59 insertions(+), 46 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index ccfc9c2..248b83d 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -328,7 +328,7 @@ bool QFileInfo::operator==(const QFileInfo &fileinfo) const // ### (GetFullPathName()). if (fileinfo.d_ptr == d_ptr) return true; - if (!d->fileEngine || !fileinfo.d_ptr->fileEngine) + if (d->isDefaultConstructed || fileinfo.d_ptr->isDefaultConstructed) return false; if (d->fileEngine->caseSensitive() != fileinfo.d_ptr->fileEngine->caseSensitive()) return false; @@ -454,7 +454,7 @@ void QFileInfo::setFile(const QDir &dir, const QString &file) QString QFileInfo::absoluteFilePath() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileName(QAbstractFileEngine::AbsoluteName); } @@ -471,7 +471,7 @@ QString QFileInfo::absoluteFilePath() const QString QFileInfo::canonicalFilePath() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileName(QAbstractFileEngine::CanonicalName); } @@ -498,7 +498,7 @@ QString QFileInfo::absolutePath() const { Q_D(const QFileInfo); - if (!d->fileEngine) { + if (d->isDefaultConstructed) { return QLatin1String(""); } else if (d->fileName.isEmpty()) { qWarning("QFileInfo::absolutePath: Constructed with empty filename"); @@ -518,7 +518,7 @@ QString QFileInfo::absolutePath() const QString QFileInfo::canonicalPath() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileName(QAbstractFileEngine::CanonicalPathName); } @@ -535,7 +535,7 @@ QString QFileInfo::canonicalPath() const QString QFileInfo::path() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileName(QAbstractFileEngine::PathName); } @@ -559,7 +559,7 @@ QString QFileInfo::path() const bool QFileInfo::isRelative() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return true; return d->fileEngine->isRelativePath(); } @@ -573,7 +573,8 @@ bool QFileInfo::isRelative() const */ bool QFileInfo::makeAbsolute() { - if (!d_ptr.constData()->fileEngine || !d_ptr.constData()->fileEngine->isRelativePath()) + if (d_ptr.constData()->isDefaultConstructed + || !d_ptr.constData()->fileEngine->isRelativePath()) return false; QString absFileName = d_ptr.constData()->getFileName(QAbstractFileEngine::AbsoluteName); // QSharedDataPointer::operator->() will detach. @@ -591,7 +592,7 @@ bool QFileInfo::makeAbsolute() bool QFileInfo::exists() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return false; return d->getFileFlags(QAbstractFileEngine::ExistsFlag); } @@ -618,7 +619,7 @@ void QFileInfo::refresh() QString QFileInfo::filePath() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileName(QAbstractFileEngine::DefaultName); } @@ -637,7 +638,7 @@ QString QFileInfo::filePath() const QString QFileInfo::fileName() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileName(QAbstractFileEngine::BaseName); } @@ -657,7 +658,7 @@ QString QFileInfo::fileName() const QString QFileInfo::bundleName() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileName(QAbstractFileEngine::BundleName); } @@ -681,7 +682,7 @@ QString QFileInfo::bundleName() const QString QFileInfo::baseName() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileName(QAbstractFileEngine::BaseName).section(QLatin1Char('.'), 0, 0); } @@ -700,7 +701,7 @@ QString QFileInfo::baseName() const QString QFileInfo::completeBaseName() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); QString name = d->getFileName(QAbstractFileEngine::BaseName); int index = name.lastIndexOf(QLatin1Char('.')); @@ -721,7 +722,7 @@ QString QFileInfo::completeBaseName() const QString QFileInfo::completeSuffix() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); QString fileName = d->getFileName(QAbstractFileEngine::BaseName); int firstDot = fileName.indexOf(QLatin1Char('.')); @@ -748,7 +749,7 @@ QString QFileInfo::completeSuffix() const QString QFileInfo::suffix() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); QString fileName = d->getFileName(QAbstractFileEngine::BaseName); int lastDot = fileName.lastIndexOf(QLatin1Char('.')); @@ -813,7 +814,7 @@ QDir QFileInfo::dir(bool absPath) const bool QFileInfo::isReadable() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return false; return d->getFileFlags(QAbstractFileEngine::ReadUserPerm); } @@ -826,7 +827,7 @@ bool QFileInfo::isReadable() const bool QFileInfo::isWritable() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return false; return d->getFileFlags(QAbstractFileEngine::WriteUserPerm); } @@ -839,7 +840,7 @@ bool QFileInfo::isWritable() const bool QFileInfo::isExecutable() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return false; return d->getFileFlags(QAbstractFileEngine::ExeUserPerm); } @@ -853,7 +854,7 @@ bool QFileInfo::isExecutable() const bool QFileInfo::isHidden() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return false; return d->getFileFlags(QAbstractFileEngine::HiddenFlag); } @@ -868,7 +869,7 @@ bool QFileInfo::isHidden() const bool QFileInfo::isFile() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return false; return d->getFileFlags(QAbstractFileEngine::FileType); } @@ -882,7 +883,7 @@ bool QFileInfo::isFile() const bool QFileInfo::isDir() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return false; return d->getFileFlags(QAbstractFileEngine::DirectoryType); } @@ -898,7 +899,7 @@ bool QFileInfo::isDir() const bool QFileInfo::isBundle() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return false; return d->getFileFlags(QAbstractFileEngine::BundleType); } @@ -923,7 +924,7 @@ bool QFileInfo::isBundle() const bool QFileInfo::isSymLink() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return false; return d->getFileFlags(QAbstractFileEngine::LinkType); } @@ -936,7 +937,7 @@ bool QFileInfo::isSymLink() const bool QFileInfo::isRoot() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return true; return d->getFileFlags(QAbstractFileEngine::RootFlag); } @@ -964,7 +965,7 @@ bool QFileInfo::isRoot() const QString QFileInfo::readLink() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileName(QAbstractFileEngine::LinkName); } @@ -982,7 +983,7 @@ QString QFileInfo::readLink() const QString QFileInfo::owner() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileOwner(QAbstractFileEngine::OwnerUser); } @@ -998,7 +999,7 @@ QString QFileInfo::owner() const uint QFileInfo::ownerId() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return 0; return d->fileEngine->ownerId(QAbstractFileEngine::OwnerUser); } @@ -1016,7 +1017,7 @@ uint QFileInfo::ownerId() const QString QFileInfo::group() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QLatin1String(""); return d->getFileOwner(QAbstractFileEngine::OwnerGroup); } @@ -1032,7 +1033,7 @@ QString QFileInfo::group() const uint QFileInfo::groupId() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return 0; return d->fileEngine->ownerId(QAbstractFileEngine::OwnerGroup); } @@ -1053,7 +1054,7 @@ uint QFileInfo::groupId() const bool QFileInfo::permission(QFile::Permissions permissions) const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return false; return d->getFileFlags(QAbstractFileEngine::FileFlags((int)permissions)) == (uint)permissions; } @@ -1065,7 +1066,7 @@ bool QFileInfo::permission(QFile::Permissions permissions) const QFile::Permissions QFileInfo::permissions() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return 0; return QFile::Permissions(d->getFileFlags(QAbstractFileEngine::PermsMask) & QAbstractFileEngine::PermsMask); } @@ -1080,7 +1081,7 @@ QFile::Permissions QFileInfo::permissions() const qint64 QFileInfo::size() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return 0; if (!d->getCachedFlag(QFileInfoPrivate::CachedSize)) { d->setCachedFlag(QFileInfoPrivate::CachedSize); @@ -1105,7 +1106,7 @@ qint64 QFileInfo::size() const QDateTime QFileInfo::created() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QDateTime(); return d->getFileTime(QAbstractFileEngine::CreationTime); } @@ -1118,7 +1119,7 @@ QDateTime QFileInfo::created() const QDateTime QFileInfo::lastModified() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QDateTime(); return d->getFileTime(QAbstractFileEngine::ModificationTime); } @@ -1134,7 +1135,7 @@ QDateTime QFileInfo::lastModified() const QDateTime QFileInfo::lastRead() const { Q_D(const QFileInfo); - if (!d->fileEngine) + if (d->isDefaultConstructed) return QDateTime(); return d->getFileTime(QAbstractFileEngine::AccessTime); } diff --git a/src/corelib/io/qfileinfo_p.h b/src/corelib/io/qfileinfo_p.h index f23ae53..b9b1092 100644 --- a/src/corelib/io/qfileinfo_p.h +++ b/src/corelib/io/qfileinfo_p.h @@ -71,23 +71,33 @@ public: inline QFileInfoPrivate() : QSharedData(), fileEngine(0), - cachedFlags(0), cache_enabled(1), fileFlags(0), fileSize(0) + cachedFlags(0), + isDefaultConstructed(true), + cache_enabled(true), fileFlags(0), fileSize(0) {} inline QFileInfoPrivate(const QFileInfoPrivate ©) : QSharedData(copy), fileEngine(QAbstractFileEngine::create(copy.fileName)), fileName(copy.fileName), - cachedFlags(0), cache_enabled(copy.cache_enabled), fileFlags(0), fileSize(0) + cachedFlags(0), +#ifndef QT_NO_FSFILEENGINE + isDefaultConstructed(false), +#else + isDefaultConstructed(!fileEngine), +#endif + cache_enabled(copy.cache_enabled), fileFlags(0), fileSize(0) {} inline QFileInfoPrivate(const QString &file) : QSharedData(), fileEngine(QAbstractFileEngine::create(file)), fileName(file), - cachedFlags(0), cache_enabled(1), fileFlags(0), fileSize(0) + cachedFlags(0), +#ifndef QT_NO_FSFILEENGINE + isDefaultConstructed(false), +#else + isDefaultConstructed(!fileEngine), +#endif + cache_enabled(true), fileFlags(0), fileSize(0) { } - inline ~QFileInfoPrivate() - { - delete fileEngine; - } inline void clearFlags() const { fileFlags = 0; @@ -108,13 +118,15 @@ public: QString getFileName(QAbstractFileEngine::FileName) const; QString getFileOwner(QAbstractFileEngine::FileOwner own) const; - QAbstractFileEngine *fileEngine; + QScopedPointer const fileEngine; + mutable QString fileName; mutable QString fileNames[QAbstractFileEngine::NFileNames]; mutable QString fileOwners[2]; - mutable uint cachedFlags : 31; - mutable uint cache_enabled : 1; + mutable uint cachedFlags : 30; + bool const isDefaultConstructed : 1; // QFileInfo is a default constructed instance + bool cache_enabled : 1; mutable uint fileFlags; mutable qint64 fileSize; mutable QDateTime fileTimes[3]; -- cgit v0.12 From 50db9fb1bf4944d4b8e3077e0a9d30afb4495c0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 18:47:13 +0200 Subject: Reverting QDir::detach introduced earlier From the client API it is a broken concept, because it could leave the user with an uninitialized file engine. Fixing to initialize the file engine, would mean it is useless for internal use where file engines are initialized separately. In the end, removing both the QDir::detach introduced earlier and throwing away the private d_func'tions altogether is a binary-compatible change that should allow us to push this change in a patch release (fingers crossed!) Reviewed-by: Thiago Macieira --- src/corelib/io/qdir.cpp | 71 +++++++++++++++++++++++-------------------------- src/corelib/io/qdir.h | 13 --------- 2 files changed, 33 insertions(+), 51 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 9ebfce5..b355f62 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -561,11 +561,6 @@ QDir::~QDir() { } -void QDir::detach() -{ - d_ptr.detach(); -} - /*! Sets the path of the directory to \a path. The path is cleaned of redundant ".", ".." and of multiple separators. No check is made @@ -599,7 +594,7 @@ void QDir::setPath(const QString &path) */ QString QDir::path() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); return d->path; } @@ -613,7 +608,7 @@ QString QDir::path() const */ QString QDir::absolutePath() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); QString ret = d->path; if (QDir::isRelativePath(ret)) ret = absoluteFilePath(QString::fromLatin1("")); @@ -638,7 +633,7 @@ QString QDir::absolutePath() const */ QString QDir::canonicalPath() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (!d->fileEngine) return QLatin1String(""); @@ -658,7 +653,7 @@ QString QDir::canonicalPath() const */ QString QDir::dirName() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); int pos = d->path.lastIndexOf(QLatin1Char('/')); if (pos == -1) return d->path; @@ -676,7 +671,7 @@ QString QDir::dirName() const */ QString QDir::filePath(const QString &fileName) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (isAbsolutePath(fileName)) return QString(fileName); @@ -699,7 +694,7 @@ QString QDir::filePath(const QString &fileName) const */ QString QDir::absoluteFilePath(const QString &fileName) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (isAbsolutePath(fileName)) return fileName; if (!d->fileEngine) @@ -924,7 +919,7 @@ bool QDir::cdUp() */ QStringList QDir::nameFilters() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); return d->nameFilters; } @@ -945,7 +940,7 @@ QStringList QDir::nameFilters() const */ void QDir::setNameFilters(const QStringList &nameFilters) { - Q_D(QDir); + QDirPrivate* d = d_ptr.data(); d->initFileEngine(); d->clearFileLists(); @@ -1052,7 +1047,7 @@ QStringList QDir::searchPaths(const QString &prefix) */ QDir::Filters QDir::filter() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); return d->filters; } @@ -1134,7 +1129,7 @@ QDir::Filters QDir::filter() const */ void QDir::setFilter(Filters filters) { - Q_D(QDir); + QDirPrivate* d = d_ptr.data(); d->initFileEngine(); d->clearFileLists(); @@ -1148,7 +1143,7 @@ void QDir::setFilter(Filters filters) */ QDir::SortFlags QDir::sorting() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); return d->sort; } @@ -1192,7 +1187,7 @@ QDir::SortFlags QDir::sorting() const */ void QDir::setSorting(SortFlags sort) { - Q_D(QDir); + QDirPrivate* d = d_ptr.data(); d->initFileEngine(); d->clearFileLists(); @@ -1208,7 +1203,7 @@ void QDir::setSorting(SortFlags sort) */ uint QDir::count() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); d->initFileLists(); return d->files.count(); } @@ -1222,7 +1217,7 @@ uint QDir::count() const */ QString QDir::operator[](int pos) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); d->initFileLists(); return d->files[pos]; } @@ -1248,7 +1243,7 @@ QString QDir::operator[](int pos) const */ QStringList QDir::entryList(Filters filters, SortFlags sort) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); return entryList(d->nameFilters, filters, sort); } @@ -1271,7 +1266,7 @@ QStringList QDir::entryList(Filters filters, SortFlags sort) const */ QFileInfoList QDir::entryInfoList(Filters filters, SortFlags sort) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); return entryInfoList(d->nameFilters, filters, sort); } @@ -1294,7 +1289,7 @@ QFileInfoList QDir::entryInfoList(Filters filters, SortFlags sort) const QStringList QDir::entryList(const QStringList &nameFilters, Filters filters, SortFlags sort) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (filters == NoFilter) filters = d->filters; @@ -1340,7 +1335,7 @@ QStringList QDir::entryList(const QStringList &nameFilters, Filters filters, QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filters, SortFlags sort) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (filters == NoFilter) filters = d->filters; @@ -1376,7 +1371,7 @@ QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filter */ bool QDir::mkdir(const QString &dirName) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (dirName.isEmpty()) { qWarning("QDir::mkdir: Empty or null file name(s)"); @@ -1400,7 +1395,7 @@ bool QDir::mkdir(const QString &dirName) const */ bool QDir::rmdir(const QString &dirName) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (dirName.isEmpty()) { qWarning("QDir::rmdir: Empty or null file name(s)"); @@ -1425,7 +1420,7 @@ bool QDir::rmdir(const QString &dirName) const */ bool QDir::mkpath(const QString &dirPath) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (dirPath.isEmpty()) { qWarning("QDir::mkpath: Empty or null file name(s)"); @@ -1451,7 +1446,7 @@ bool QDir::mkpath(const QString &dirPath) const */ bool QDir::rmpath(const QString &dirPath) const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (dirPath.isEmpty()) { qWarning("QDir::rmpath: Empty or null file name(s)"); @@ -1475,7 +1470,7 @@ bool QDir::rmpath(const QString &dirPath) const */ bool QDir::isReadable() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (!d->fileEngine) return false; @@ -1500,7 +1495,7 @@ bool QDir::isReadable() const */ bool QDir::exists() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (!d->fileEngine) return false; @@ -1527,7 +1522,7 @@ bool QDir::exists() const */ bool QDir::isRoot() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (!d->fileEngine) return true; @@ -1561,7 +1556,7 @@ bool QDir::isRoot() const */ bool QDir::isRelative() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); if (!d->fileEngine) return false; @@ -1603,8 +1598,8 @@ bool QDir::makeAbsolute() // ### What do the return values signify? */ bool QDir::operator==(const QDir &dir) const { - const QDirPrivate *d = d_func(); - const QDirPrivate *other = dir.d_func(); + const QDirPrivate *d = d_ptr.constData(); + const QDirPrivate *other = dir.d_ptr.constData(); if (d == other) return true; @@ -2133,7 +2128,7 @@ bool QDir::isRelativePath(const QString &path) */ void QDir::refresh() const { - QDirPrivate *d = const_cast(this)->d_func(); + QDirPrivate *d = const_cast(this)->d_ptr.data(); d->initFileEngine(); d->clearFileLists(); } @@ -2211,7 +2206,7 @@ QStringList QDir::nameFiltersFromString(const QString &nameFilter) */ bool QDir::matchAllDirs() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); return d->matchAllDirs; } @@ -2223,7 +2218,7 @@ bool QDir::matchAllDirs() const */ void QDir::setMatchAllDirs(bool on) { - Q_D(QDir); + QDirPrivate* d = d_ptr.data(); d->initFileEngine(); d->clearFileLists(); @@ -2235,7 +2230,7 @@ void QDir::setMatchAllDirs(bool on) */ QString QDir::nameFilter() const { - Q_D(const QDir); + const QDirPrivate* d = d_ptr.constData(); return nameFilters().join(QString(d->filterSepChar)); } @@ -2261,7 +2256,7 @@ QString QDir::nameFilter() const */ void QDir::setNameFilter(const QString &nameFilter) { - Q_D(QDir); + QDirPrivate* d = d_ptr.data(); d->initFileEngine(); d->filterSepChar = QDirPrivate::getFilterSepChar(nameFilter); diff --git a/src/corelib/io/qdir.h b/src/corelib/io/qdir.h index abfe387..7e5fbac 100644 --- a/src/corelib/io/qdir.h +++ b/src/corelib/io/qdir.h @@ -59,17 +59,6 @@ class Q_CORE_EXPORT QDir { protected: QSharedDataPointer d_ptr; -private: - inline QDirPrivate* d_func() - { - detach(); - return const_cast(d_ptr.constData()); - } - - inline const QDirPrivate* d_func() const - { - return d_ptr.constData(); - } public: enum Filter { Dirs = 0x001, @@ -140,8 +129,6 @@ public: QDir &operator=(const QDir &); QDir &operator=(const QString &path); - void detach(); - void setPath(const QString &path); QString path() const; QString absolutePath() const; -- cgit v0.12 From 7a9f84eb0563355aab76c0b56db44382c516cf35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 19:02:26 +0200 Subject: Another bug-o introduced in fixing QDirPrivate refactoring Must clear file lists when changing the name filters. --- src/corelib/io/qdir.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index b355f62..70b00a0 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -2258,6 +2258,7 @@ void QDir::setNameFilter(const QString &nameFilter) { QDirPrivate* d = d_ptr.data(); d->initFileEngine(); + d->clearFileLists(); d->filterSepChar = QDirPrivate::getFilterSepChar(nameFilter); d->nameFilters = QDirPrivate::splitFilters(nameFilter, d->filterSepChar); -- cgit v0.12 From c14c0a61bbd8466b00f5600707bc0aedbbf260af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 31 Aug 2010 09:56:27 +0200 Subject: QDir and QFileInfo shouldn't lose properties when detaching For QFileInfo, the caching state was being lost on the different setFile overloads. QDir::cd and ::makeAbsolute were losing filters and sorting flags. QDir issues were introduced with these patches: "Simplify QDir::cd" "QDir::makeAbsolute could self-destruct on failure" Reviewed-by: Prasanth Ullattil --- src/corelib/io/qdir.cpp | 41 ++++++++------ src/corelib/io/qfileinfo.cpp | 8 +-- tests/auto/qdir/tst_qdir.cpp | 99 ++++++++++++++++++++++++++++++++++ tests/auto/qfileinfo/tst_qfileinfo.cpp | 48 +++++++++++++++++ 4 files changed, 176 insertions(+), 20 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 70b00a0..7d5c070 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -136,6 +136,19 @@ public: delete fileEngine; } + bool exists() const + { + if (!fileEngine) + return false; + const QAbstractFileEngine::FileFlags info = + fileEngine->fileFlags(QAbstractFileEngine::DirectoryType + | QAbstractFileEngine::ExistsFlag + | QAbstractFileEngine::Refresh); + if (!(info & QAbstractFileEngine::DirectoryType)) + return false; + return info & QAbstractFileEngine::ExistsFlag; + } + void initFileEngine(); void initFileLists() const; @@ -891,11 +904,13 @@ bool QDir::cd(const QString &dirName) } } - QDir dir(newPath); - if (!dir.exists()) + QScopedPointer dir(new QDirPrivate(*d_ptr.constData())); + dir->setPath(newPath); + + if (!dir->exists()) return false; - *this = dir; + d_ptr = dir.take(); return true; } @@ -1495,17 +1510,7 @@ bool QDir::isReadable() const */ bool QDir::exists() const { - const QDirPrivate* d = d_ptr.constData(); - - if (!d->fileEngine) - return false; - const QAbstractFileEngine::FileFlags info = - d->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType - | QAbstractFileEngine::ExistsFlag - | QAbstractFileEngine::Refresh); - if (!(info & QAbstractFileEngine::DirectoryType)) - return false; - return info & QAbstractFileEngine::ExistsFlag; + return d_ptr->exists(); } /*! @@ -1579,11 +1584,13 @@ bool QDir::makeAbsolute() // ### What do the return values signify? if (QDir::isRelativePath(absolutePath)) return false; - QDir dir(absolutePath); - if (!(dir.d_ptr.constData()->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType)) + QScopedPointer dir(new QDirPrivate(*d_ptr.constData())); + dir->setPath(absolutePath); + + if (!(dir->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType)) return false; - *this = dir; + d_ptr = dir.take(); return true; } diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 248b83d..7eca212 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -395,7 +395,9 @@ QFileInfo &QFileInfo::operator=(const QFileInfo &fileinfo) */ void QFileInfo::setFile(const QString &file) { + bool caching = d_ptr.constData()->cache_enabled; *this = QFileInfo(file); + d_ptr->cache_enabled = caching; } /*! @@ -411,7 +413,7 @@ void QFileInfo::setFile(const QString &file) */ void QFileInfo::setFile(const QFile &file) { - *this = QFileInfo(file.fileName()); + setFile(file.fileName()); } /*! @@ -427,7 +429,7 @@ void QFileInfo::setFile(const QFile &file) */ void QFileInfo::setFile(const QDir &dir, const QString &file) { - *this = QFileInfo(dir.filePath(file)); + setFile(dir.filePath(file)); } /*! @@ -579,7 +581,7 @@ bool QFileInfo::makeAbsolute() QString absFileName = d_ptr.constData()->getFileName(QAbstractFileEngine::AbsoluteName); // QSharedDataPointer::operator->() will detach. - *this = QFileInfo(absFileName); + setFile(absFileName); return true; } diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 661a4c7..9678868 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -173,6 +173,8 @@ private slots: void updateFileLists(); + void detachingOperations(); + #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) void isRoot_data(); void isRoot(); @@ -1561,6 +1563,103 @@ void tst_QDir::updateFileLists() QCOMPARE(dir.entryList(), QStringList() << "sub-dir1" << "sub-dir2" << "file1.txt"); } +void tst_QDir::detachingOperations() +{ + QString const defaultPath("."); + QStringList const defaultNameFilters = QStringList("*"); + QDir::SortFlags const defaultSorting = QDir::Name | QDir::IgnoreCase; + QDir::Filters const defaultFilter = QDir::AllEntries; + + QString const path1(".."); + QString const path2("./foo"); + QStringList const nameFilters = QStringList(QString("*.txt")); + QDir::SortFlags const sorting = QDir::Name | QDir::DirsLast | QDir::Reversed; + QDir::Filters const filter = QDir::Writable; + + QDir dir1; + + QCOMPARE(dir1.path(), defaultPath); + QCOMPARE(dir1.filter(), defaultFilter); + QCOMPARE(dir1.nameFilters(), defaultNameFilters); + QCOMPARE(dir1.sorting(), defaultSorting); + + dir1.setPath(path1); + QCOMPARE(dir1.path(), path1); + QCOMPARE(dir1.filter(), defaultFilter); + QCOMPARE(dir1.nameFilters(), defaultNameFilters); + QCOMPARE(dir1.sorting(), defaultSorting); + + dir1.setFilter(filter); + QCOMPARE(dir1.path(), path1); + QCOMPARE(dir1.filter(), filter); + QCOMPARE(dir1.nameFilters(), defaultNameFilters); + QCOMPARE(dir1.sorting(), defaultSorting); + + dir1.setNameFilters(nameFilters); + QCOMPARE(dir1.path(), path1); + QCOMPARE(dir1.filter(), filter); + QCOMPARE(dir1.nameFilters(), nameFilters); + QCOMPARE(dir1.sorting(), defaultSorting); + + dir1.setSorting(sorting); + QCOMPARE(dir1.path(), path1); + QCOMPARE(dir1.filter(), filter); + QCOMPARE(dir1.nameFilters(), nameFilters); + QCOMPARE(dir1.sorting(), sorting); + + dir1.setPath(path2); + QCOMPARE(dir1.path(), path2); + QCOMPARE(dir1.filter(), filter); + QCOMPARE(dir1.nameFilters(), nameFilters); + QCOMPARE(dir1.sorting(), sorting); + + { + QDir dir2(dir1); + QCOMPARE(dir2.path(), path2); + QCOMPARE(dir2.filter(), filter); + QCOMPARE(dir2.nameFilters(), nameFilters); + QCOMPARE(dir2.sorting(), sorting); + } + + { + QDir dir2; + QCOMPARE(dir2.path(), defaultPath); + QCOMPARE(dir2.filter(), defaultFilter); + QCOMPARE(dir2.nameFilters(), defaultNameFilters); + QCOMPARE(dir2.sorting(), defaultSorting); + + dir2 = dir1; + QCOMPARE(dir2.path(), path2); + QCOMPARE(dir2.filter(), filter); + QCOMPARE(dir2.nameFilters(), nameFilters); + QCOMPARE(dir2.sorting(), sorting); + + dir2 = path1; + QCOMPARE(dir2.path(), path1); + QCOMPARE(dir2.filter(), filter); + QCOMPARE(dir2.nameFilters(), nameFilters); + QCOMPARE(dir2.sorting(), sorting); + } + + dir1.refresh(); + QCOMPARE(dir1.path(), path2); + QCOMPARE(dir1.filter(), filter); + QCOMPARE(dir1.nameFilters(), nameFilters); + QCOMPARE(dir1.sorting(), sorting); + + QString const currentPath = QDir::currentPath(); + QVERIFY(dir1.cd(currentPath)); + QCOMPARE(dir1.path(), currentPath); + QCOMPARE(dir1.filter(), filter); + QCOMPARE(dir1.nameFilters(), nameFilters); + QCOMPARE(dir1.sorting(), sorting); + + QVERIFY(dir1.cdUp()); + QCOMPARE(dir1.filter(), filter); + QCOMPARE(dir1.nameFilters(), nameFilters); + QCOMPARE(dir1.sorting(), sorting); +} + #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) void tst_QDir::isRoot_data() { diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 32aa671..7659a75 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -181,6 +181,8 @@ private slots: void equalOperator() const; void equalOperatorWithDifferentSlashes() const; void notEqualOperator() const; + + void detachingOperations(); }; tst_QFileInfo::tst_QFileInfo() @@ -1545,5 +1547,51 @@ void tst_QFileInfo::notEqualOperator() const QVERIFY(QFileInfo() != QFileInfo()); } +void tst_QFileInfo::detachingOperations() +{ + QFileInfo info1; + QVERIFY(info1.caching()); + info1.setCaching(false); + + { + QFileInfo info2 = info1; + + QVERIFY(!info1.caching()); + QVERIFY(!info2.caching()); + + info2.setCaching(true); + QVERIFY(info2.caching()); + + info1.setFile("foo"); + QVERIFY(!info1.caching()); + } + + { + QFile file("foo"); + info1.setFile(file); + QVERIFY(!info1.caching()); + } + + info1.setFile(QDir(), "foo"); + QVERIFY(!info1.caching()); + + { + QFileInfo info3; + QVERIFY(info3.caching()); + + info3 = info1; + QVERIFY(!info3.caching()); + } + + info1.refresh(); + QVERIFY(!info1.caching()); + + QVERIFY(info1.makeAbsolute()); + QVERIFY(!info1.caching()); + + info1.detach(); + QVERIFY(!info1.caching()); +} + QTEST_MAIN(tst_QFileInfo) #include "tst_qfileinfo.moc" -- cgit v0.12 From 5e1196c2c98b5331c0ccdbfa2aea26b35fb4a3c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 31 Aug 2010 13:17:15 +0200 Subject: QDir: Removed checks for existance of fileEngine Directly or indirectly, all instances of QDir call QDirPrivate::setPath, which allocates a file engine and dereferences it. Any failures there should already lead to a crash or a bad_alloc exception being thrown in case of failure. Given that, QDir may be (and was) broken when compiling Qt with QT_NO_FSFILEENGINE, if no custom file engine and handler are provided. This being the case, it's pointless to check fileEngine for null all over the place. This simplifies the code and should allow for easier transition to file-engine-less implementation. Reviewed-by: Thomas Zander --- src/corelib/io/qdir.cpp | 57 +++++++------------------------------------------ 1 file changed, 8 insertions(+), 49 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 7d5c070..8c99226 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -97,7 +97,6 @@ public: , filterSepChar(0) , matchAllDirs(false) #endif - , fileEngine(0) , fileListsInitialized(false) { setPath(path.isEmpty() ? QString::fromLatin1(".") : path); @@ -126,20 +125,12 @@ public: , filterSepChar(copy.filterSepChar) , matchAllDirs(copy.matchAllDirs) #endif - , fileEngine(0) , fileListsInitialized(false) { } - ~QDirPrivate() - { - delete fileEngine; - } - bool exists() const { - if (!fileEngine) - return false; const QAbstractFileEngine::FileFlags info = fileEngine->fileFlags(QAbstractFileEngine::DirectoryType | QAbstractFileEngine::ExistsFlag @@ -183,8 +174,8 @@ public: p.truncate(p.length() - 1); } - delete fileEngine; - fileEngine = QAbstractFileEngine::create(p); + path = p; + initFileEngine(); // set the path to be the qt friendly version so then we can operate on it using just / path = fileEngine->fileName(QAbstractFileEngine::DefaultName); @@ -207,7 +198,7 @@ public: bool matchAllDirs; #endif - QAbstractFileEngine *fileEngine; + QScopedPointer fileEngine; mutable bool fileListsInitialized; mutable QStringList files; @@ -339,11 +330,9 @@ inline void QDirPrivate::initFileLists() const } } -void QDirPrivate::initFileEngine() +inline void QDirPrivate::initFileEngine() { - QAbstractFileEngine *newFileEngine = QAbstractFileEngine::create(path); - delete fileEngine; - fileEngine = newFileEngine; + fileEngine.reset(QAbstractFileEngine::create(path)); } /*! @@ -646,11 +635,7 @@ QString QDir::absolutePath() const */ QString QDir::canonicalPath() const { - const QDirPrivate* d = d_ptr.constData(); - - if (!d->fileEngine) - return QLatin1String(""); - return cleanPath(d->fileEngine->fileName(QAbstractFileEngine::CanonicalName)); + return cleanPath(d_ptr->fileEngine->fileName(QAbstractFileEngine::CanonicalName)); } /*! @@ -710,8 +695,6 @@ QString QDir::absoluteFilePath(const QString &fileName) const const QDirPrivate* d = d_ptr.constData(); if (isAbsolutePath(fileName)) return fileName; - if (!d->fileEngine) - return fileName; QString ret; #ifndef QT_NO_FSFILEENGINE @@ -1392,8 +1375,6 @@ bool QDir::mkdir(const QString &dirName) const qWarning("QDir::mkdir: Empty or null file name(s)"); return false; } - if (!d->fileEngine) - return false; QString fn = filePath(dirName); return d->fileEngine->mkdir(fn, false); @@ -1416,8 +1397,6 @@ bool QDir::rmdir(const QString &dirName) const qWarning("QDir::rmdir: Empty or null file name(s)"); return false; } - if (!d->fileEngine) - return false; QString fn = filePath(dirName); return d->fileEngine->rmdir(fn, false); @@ -1441,8 +1420,6 @@ bool QDir::mkpath(const QString &dirPath) const qWarning("QDir::mkpath: Empty or null file name(s)"); return false; } - if (!d->fileEngine) - return false; QString fn = filePath(dirPath); return d->fileEngine->mkdir(fn, true); @@ -1467,8 +1444,6 @@ bool QDir::rmpath(const QString &dirPath) const qWarning("QDir::rmpath: Empty or null file name(s)"); return false; } - if (!d->fileEngine) - return false; QString fn = filePath(dirPath); return d->fileEngine->rmdir(fn, true); @@ -1487,8 +1462,6 @@ bool QDir::isReadable() const { const QDirPrivate* d = d_ptr.constData(); - if (!d->fileEngine) - return false; const QAbstractFileEngine::FileFlags info = d->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType | QAbstractFileEngine::PermsMask); @@ -1527,11 +1500,7 @@ bool QDir::exists() const */ bool QDir::isRoot() const { - const QDirPrivate* d = d_ptr.constData(); - - if (!d->fileEngine) - return true; - return d->fileEngine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::RootFlag; + return d_ptr->fileEngine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::RootFlag; } /*! @@ -1561,11 +1530,7 @@ bool QDir::isRoot() const */ bool QDir::isRelative() const { - const QDirPrivate* d = d_ptr.constData(); - - if (!d->fileEngine) - return false; - return d->fileEngine->isRelativePath(); + return d_ptr->fileEngine->isRelativePath(); } @@ -1578,8 +1543,6 @@ bool QDir::isRelative() const */ bool QDir::makeAbsolute() // ### What do the return values signify? { - if (!d_ptr.constData()->fileEngine) - return false; QString absolutePath = d_ptr.constData()->fileEngine->fileName(QAbstractFileEngine::AbsoluteName); if (QDir::isRelativePath(absolutePath)) return false; @@ -1610,7 +1573,6 @@ bool QDir::operator==(const QDir &dir) const if (d == other) return true; - Q_ASSERT(d->fileEngine && other->fileEngine); if (d->fileEngine->caseSensitive() != other->fileEngine->caseSensitive()) return false; if (d->filters == other->filters @@ -1695,9 +1657,6 @@ bool QDir::rename(const QString &oldName, const QString &newName) return false; } - if (!d_ptr.constData()->fileEngine) - return false; - QFile file(filePath(oldName)); if (!file.exists()) return false; -- cgit v0.12 From d3b152ba1e3cd38dd675c801474105d518bacb44 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 1 Sep 2010 13:33:12 +0200 Subject: Finish canonicalized for all platforms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QFSFileEnginePrivate::canonicalized is now removed and spread out over the qfsfileengine_unix.cpp and qfsfileengine.cpp Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemengine_unix.cpp | 27 +++++++++++++++-- src/corelib/io/qfilesystemengine_win.cpp | 2 +- src/corelib/io/qfsfileengine.cpp | 50 ------------------------------- src/corelib/io/qfsfileengine_p.h | 1 - src/corelib/io/qfsfileengine_unix.cpp | 17 +++-------- src/corelib/io/qfsfileengine_win.cpp | 15 ++++------ 6 files changed, 35 insertions(+), 77 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 283c787..62fb1b3 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -45,6 +45,10 @@ #include // for realpath() #include +#if defined(Q_OS_MAC) +# include +#endif + QT_BEGIN_NAMESPACE bool QFileSystemEngine::isCaseSensitive() @@ -71,8 +75,27 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) #ifdef __UCLIBC__ return QFileSystemEntry::slowCanonicalName(entry); #else - - char *ret = realpath(entry.nativeFilePath().constData(), (char*)0); + char *ret = 0; +# if defined(Q_OS_MAC) + // Mac OS X 10.5.x doesn't support the realpath(X,0) extension we use here. + if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_6) { + ret = realpath(entry.nativeFilePath().constData(), (char*)0); + } else { + // on 10.5 we can use FSRef to resolve the file path. + QString path = QDir::cleanPath(entry.filePath()); + FSRef fsref; + if (FSPathMakeRef((const UInt8 *)path.toUtf8().data(), &fsref, 0) == noErr) { + CFURLRef urlref = CFURLCreateFromFSRef(NULL, &fsref); + CFStringRef canonicalPath = CFURLCopyFileSystemPath(urlref, kCFURLPOSIXPathStyle); + QString ret = QCFString::toQString(canonicalPath); + CFRelease(canonicalPath); + CFRelease(urlref); + return QFileSystemEntry(ret); + } + } +# else + ret = realpath(entry.nativeFilePath().constData(), (char*)0); +# endif if (ret) { QString canonicalPath = QDir::cleanPath(QString::fromLocal8Bit(ret)); free(ret); diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 40df120..aa6d2b1 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -57,7 +57,7 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link) //static QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) { - return entry; // TODO implement; + return QFileSystemEntry(slowCanonicalized(entry.filePath())); } //static diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 665d23e..5d7b354 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -134,56 +134,6 @@ void QFSFileEnginePrivate::init() } /*! - \internal - - Returns the canonicalized form of \a path (i.e., with all symlinks - resolved, and all redundant path elements removed. -*/ -QString QFSFileEnginePrivate::canonicalized(const QString &path) -{ - if (path.isEmpty()) - return path; - - // FIXME let's see if this stuff works, then we might be able to remove some of the other code. -#if defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN) - if (path.size() == 1 && path.at(0) == QLatin1Char('/')) - return path; -#endif -#if defined(Q_OS_LINUX) || defined(Q_OS_SYMBIAN) || defined(Q_OS_MAC) - // ... but Linux with uClibc does not have it -#if !defined(__UCLIBC__) - char *ret = 0; -#if defined(Q_OS_MAC) - // Mac OS X 10.5.x doesn't support the realpath(X,0) extension we use here. - if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_6) { - ret = realpath(path.toLocal8Bit().constData(), (char*)0); - } else { - // on 10.5 we can use FSRef to resolve the file path. - FSRef fsref; - if (FSPathMakeRef((const UInt8 *)QDir::cleanPath(path).toUtf8().data(), &fsref, 0) == noErr) { - CFURLRef urlref = CFURLCreateFromFSRef(NULL, &fsref); - CFStringRef canonicalPath = CFURLCopyFileSystemPath(urlref, kCFURLPOSIXPathStyle); - QString ret = QCFString::toQString(canonicalPath); - CFRelease(canonicalPath); - CFRelease(urlref); - return ret; - } - } -#else - ret = realpath(path.toLocal8Bit().constData(), (char*)0); -#endif - if (ret) { - QString canonicalPath = QDir::cleanPath(QString::fromLocal8Bit(ret)); - free(ret); - return canonicalPath; - } -#endif -#endif - - return QFileSystemEngine::slowCanonicalized(path); -} - -/*! Constructs a QFSFileEngine for the file name \a file. */ QFSFileEngine::QFSFileEngine(const QString &file) diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index 74cbca3..9eaf6fd 100644 --- a/src/corelib/io/qfsfileengine_p.h +++ b/src/corelib/io/qfsfileengine_p.h @@ -75,7 +75,6 @@ public: #ifdef Q_WS_WIN static QString longFileName(const QString &path); #endif - static QString canonicalized(const QString &path); QFileSystemEntry fileEntry; QIODevice::OpenMode openMode; diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 29491f5..0b73a7b 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -963,19 +963,10 @@ QString QFSFileEngine::fileName(FileName file) const } return ret; } else if(file == CanonicalName || file == CanonicalPathName) { - if (!(fileFlags(ExistsFlag) & ExistsFlag)) - return QString(); - - QString ret = QFSFileEnginePrivate::canonicalized(fileName(AbsoluteName)); - if (file == CanonicalPathName && !ret.isEmpty()) { - int slash = ret.lastIndexOf(slashChar); - if (slash == -1) - ret = QDir::fromNativeSeparators(QDir::currentPath()); - else if (slash == 0) - ret = QLatin1String("/"); - ret = ret.left(slash); - } - return ret; + QFileSystemEntry entry(QFileSystemEngine::canonicalName(d->fileEntry)); + if (file == CanonicalPathName) + return entry.path(); + return entry.filePath(); } else if(file == LinkName) { if (d->isSymlink()) { char s[PATH_MAX+1]; diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 9f33af5..bc88776 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -43,6 +43,7 @@ #include "qplatformdefs.h" #include "qabstractfileengine.h" #include "private/qfsfileengine_p.h" +#include "qfilesystemengine_p.h" #include #include "qfile.h" @@ -1620,17 +1621,11 @@ QString QFSFileEngine::fileName(FileName file) const } else if (file == CanonicalName || file == CanonicalPathName) { if (!(fileFlags(ExistsFlag) & ExistsFlag)) return QString(); + QFileSystemEngine entry(QFileSystemEngine::slowCanonicalized(fileName(AbsoluteName))); - QString ret = QFSFileEnginePrivate::canonicalized(fileName(AbsoluteName)); - if (!ret.isEmpty() && file == CanonicalPathName) { - int slash = ret.lastIndexOf(QLatin1Char('/')); - if (slash == -1) - ret = QDir::currentPath(); - else if (slash == 0) - ret = QString(QLatin1Char('/')); - ret = ret.left(slash); - } - return ret; + if (file == CanonicalPathName) + return entry.path(); + return entry.filePath(); } else if (file == LinkName) { QString ret; if (d->fileEntry.filePath().endsWith(QLatin1String(".lnk"))) -- cgit v0.12 From 88ae6dc40e6f725a3dc15056a0b9e8f00d727c09 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 1 Sep 2010 12:53:04 +0200 Subject: Breaking changes to QFileSystemEntry's constructors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since we are using a QString for the native file path on windows, the constructors we had on other platforms didn't make sense: we can't have two constructors taking a single QString parameter, and it would be error prone to have the two argument constructor (taking two QString parameters, on Windows) change the meaning of the first argument. This patch introduces a typedef for the NativePath type being used; the constructor taking the native path now requires a dummy parameter that makes the intent expliciti; and the order of the arguments on the constructor taking both native and Qt paths had the order switched. Done-with: João Abecasis --- src/corelib/io/qfilesystemengine_unix.cpp | 4 +-- src/corelib/io/qfilesystementry.cpp | 12 +++------ src/corelib/io/qfilesystementry_p.h | 30 ++++++++++------------ src/corelib/io/qtemporaryfile.cpp | 2 +- .../auto/qfilesystementry/tst_qfilesystementry.cpp | 2 +- 5 files changed, 21 insertions(+), 29 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 62fb1b3..b7fe8e0 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -126,14 +126,14 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) } if (result.length() == 1 && result[0] == '/') - return QFileSystemEntry(result); + return QFileSystemEntry(result, QFileSystemEntry::FromNativePath()); const bool isDir = result.endsWith('/'); /* as long as QDir::cleanPath() operates on a QString we have to convert to a string here. * ideally we never convert to a string since that loses information. Please fix after * we get a QByteArray version of QDir::cleanPath() */ - QFileSystemEntry resultingEntry(result); + QFileSystemEntry resultingEntry(result, QFileSystemEntry::FromNativePath()); QString stringVersion = QDir::cleanPath(resultingEntry.filePath()); if (isDir) stringVersion.append(QLatin1Char('/')); diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index a32e22f..c3ada48 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -89,8 +89,7 @@ QFileSystemEntry::QFileSystemEntry(const QString &filePath) { } -#ifndef Q_OS_WIN -QFileSystemEntry::QFileSystemEntry(const QByteArray &nativeFilePath) +QFileSystemEntry::QFileSystemEntry(const NativePath &nativeFilePath, FromNativePath /* dummy */) : m_nativeFilePath(nativeFilePath), m_lastSeparator(-2), m_firstDotInFileName(-2), @@ -98,7 +97,7 @@ QFileSystemEntry::QFileSystemEntry(const QByteArray &nativeFilePath) { } -QFileSystemEntry::QFileSystemEntry(const QByteArray &nativeFilePath, const QString &filePath) +QFileSystemEntry::QFileSystemEntry(const QString &filePath, const NativePath &nativeFilePath) : m_filePath(filePath), m_nativeFilePath(nativeFilePath), m_lastSeparator(-2), @@ -106,7 +105,6 @@ QFileSystemEntry::QFileSystemEntry(const QByteArray &nativeFilePath, const QStri m_lastDotInFileName(0) { } -#endif QString QFileSystemEntry::filePath() const { @@ -114,11 +112,7 @@ QString QFileSystemEntry::filePath() const return m_filePath; } -#ifndef Q_OS_WIN -QByteArray QFileSystemEntry::nativeFilePath() const -#else -QString QFileSystemEntry::nativeFilePath() const -#endif +QFileSystemEntry::NativePath QFileSystemEntry::nativeFilePath() const { resolveNativeFilePath(); return m_nativeFilePath; diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h index 3e49f2c..3786bb3 100644 --- a/src/corelib/io/qfilesystementry_p.h +++ b/src/corelib/io/qfilesystementry_p.h @@ -61,21 +61,24 @@ QT_BEGIN_NAMESPACE class QFileSystemEntry { public: - QFileSystemEntry(); - explicit QFileSystemEntry(const QString &filePath); + #ifndef Q_OS_WIN - explicit QFileSystemEntry(const QByteArray &nativeFilePath); - QFileSystemEntry(const QByteArray &nativeFilePath, const QString &filePath); + typedef QByteArray NativePath; +#else + typedef QString NativePath; #endif + struct FromNativePath{}; + + QFileSystemEntry(); + explicit QFileSystemEntry(const QString &filePath); + + QFileSystemEntry(const NativePath &nativeFilePath, FromNativePath dummy); + QFileSystemEntry(const QString &filePath, const NativePath &nativeFilePath); QString filePath() const; QString fileName() const; QString path() const; -#ifndef Q_OS_WIN - QByteArray nativeFilePath() const; -#else - QString nativeFilePath() const; -#endif + NativePath nativeFilePath() const; QString suffix() const; QString completeSuffix() const; bool isAbsolute() const; @@ -101,16 +104,11 @@ private: void resolveNativeFilePath() const; // resolves the separator void findLastSeparator() const; - /// resolves the dots and the separator + // resolves the dots and the separator void findFileNameSeparators() const; mutable QString m_filePath; // always has slashes as separator - -#ifdef Q_OS_WIN - mutable QString m_nativeFilePath; // native encoding and separators -#else - mutable QByteArray m_nativeFilePath; // native encoding and separators -#endif + mutable NativePath m_nativeFilePath; // native encoding and separators mutable qint16 m_lastSeparator; // index in m_filePath of last separator mutable qint16 m_firstDotInFileName; // index after m_filePath for first dot (.) diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp index a0d3176..479ea20 100644 --- a/src/corelib/io/qtemporaryfile.cpp +++ b/src/corelib/io/qtemporaryfile.cpp @@ -377,7 +377,7 @@ bool QTemporaryFileEngine::open(QIODevice::OpenMode openMode) d->closeFileHandle = true; // Restore the file names (open() resets them). - d->fileEntry = QFileSystemEntry(QByteArray(filename)); //changed now! + d->fileEntry = QFileSystemEntry(QByteArray(filename), QFileSystemEntry::FromNativePath()); //changed now! filePathIsTemplate = false; delete [] filename; return true; diff --git a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp index 58b7c6f..35389b4 100644 --- a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp +++ b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp @@ -140,7 +140,7 @@ void tst_QFileSystemEntry::getSetCheck() QCOMPARE(entry1.isAbsolute(), absolute); QCOMPARE(entry1.isRelative(), !absolute); - QFileSystemEntry entry2(nativeFilePath); + QFileSystemEntry entry2(nativeFilePath, QFileSystemEntry::FromNativePath()); QCOMPARE(entry2.suffix(), suffix); QCOMPARE(entry2.completeSuffix(), completeSuffix); QCOMPARE(entry2.isAbsolute(), absolute); -- cgit v0.12 From a543c044234f2854a53f9a659e9004f4aa536bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 30 Aug 2010 13:58:26 +0200 Subject: Expanding the stub QFileSystemMetaData Renamed FileFlags to MetaDataFlags. Added barebones structure and enum values to be shared across different implementations, with placeholders for platform-specific #includes and data members. Reviewed-by: Thomas Zander --- src/corelib/io/qfilesystemengine_mac.cpp | 2 +- src/corelib/io/qfilesystemengine_p.h | 2 +- src/corelib/io/qfilesystemengine_unix.cpp | 2 +- src/corelib/io/qfilesystemengine_win.cpp | 2 +- src/corelib/io/qfilesystemmetadata_p.h | 75 +++++++++++++++++++++++++++++-- 5 files changed, 75 insertions(+), 8 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_mac.cpp b/src/corelib/io/qfilesystemengine_mac.cpp index 942415c..c915a2c 100644 --- a/src/corelib/io/qfilesystemengine_mac.cpp +++ b/src/corelib/io/qfilesystemengine_mac.cpp @@ -73,7 +73,7 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) } //static -bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::FileFlags what) +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) { return false; // TODO implement; } diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 61ca085..982b782 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -71,7 +71,7 @@ public: static QString bundleName(const QFileSystemEntry &entry); static bool fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, - QFileSystemMetaData::FileFlags what); + QFileSystemMetaData::MetaDataFlags what); static bool createDirectory(const QFileSystemEntry &entry, bool createParents); static bool removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents); diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index b7fe8e0..d4759c8 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -147,7 +147,7 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) } //static -bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::FileFlags what) +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) { return false; // TODO implement; } diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index aa6d2b1..dd6467a 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -73,7 +73,7 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) } //static -bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::FileFlags what) +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) { return false; // TODO implement; } diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 9664177..40bad9e 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -55,14 +55,81 @@ #include +// Platform-specific includes +#if defined(Q_OS_WIN) +#else +#endif + QT_BEGIN_NAMESPACE -class QFileSystemMetaData +class QFileSystemEngine; + +struct QFileSystemMetaData { -public: - enum FileFlag { + QFileSystemMetaData() + : cachedFlags(0) + { + } + + enum MetaDataFlag { + // Permissions, overlaps with QFile::Permissions + OtherReadPermission = 0x00000004, OtherWritePermission = 0x00000002, OtherExecutePermission = 0x00000001, + GroupReadPermission = 0x00000040, GroupWritePermission = 0x00000020, GroupExecutePermission = 0x00000010, + UserReadPermission = 0x00000400, UserWritePermission = 0x00000200, UserExecutePermission = 0x00000100, + OwnerReadPermission = 0x00004000, OwnerWritePermission = 0x00002000, OwnerExecutePermission = 0x00001000, + + OtherPermissions = 0x0000000F, + GroupPermissions = 0x000000F0, + UserPermissions = 0x00000F00, + OwnerPermissions = 0x0000F000, + + Permissions = 0x0000FFFF, + + // Type + LinkType = 0x00010000, + FileType = 0x00020000, + DirectoryType = 0x00040000, + BundleType = 0x00080000, + + Type = 0x000F0000, + + // Attributes + HiddenAttribute = 0x00100000, + LocalDiskAttribute = 0x00200000, + ExistsAttribute = 0x00400000, + SizeAttribute = 0x00800000, // Note: overlaps with QAbstractFileEngine::RootFlag + + Attributes = 0x00F00000, + + // Times + CreationTime = 0x01000000, // Note: overlaps with QAbstractFileEngine::Refresh + ModificationTime = 0x02000000, + AccessTime = 0x04000000, + + Times = 0x07000000 }; - Q_DECLARE_FLAGS(FileFlags, FileFlag); + Q_DECLARE_FLAGS(MetaDataFlags, MetaDataFlag) + + bool hasFlags(MetaDataFlags flags) const + { + return ((cachedFlags & flags) == flags); + } + + void clear() + { + cachedFlags = 0; + } + +private: + friend class QFileSystemEngine; + + MetaDataFlags cachedFlags; + + // Platform-specific data goes here: +#if defined(Q_OS_WIN) +#else +#endif + }; QT_END_NAMESPACE -- cgit v0.12 From 9e31072524f496493c9b9b799c4f9520f77cf7c5 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 1 Sep 2010 14:59:43 +0200 Subject: Make QFileSystemEngine::slowCanonicalized private --- src/corelib/io/qfilesystemengine_p.h | 1 + src/corelib/io/qfsfileengine_win.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 982b782..f50701e 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -85,6 +85,7 @@ public: static bool setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data = 0); +private: static QString slowCanonicalized(const QString &path); }; diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index bc88776..7262129 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -1621,7 +1621,7 @@ QString QFSFileEngine::fileName(FileName file) const } else if (file == CanonicalName || file == CanonicalPathName) { if (!(fileFlags(ExistsFlag) & ExistsFlag)) return QString(); - QFileSystemEngine entry(QFileSystemEngine::slowCanonicalized(fileName(AbsoluteName))); + QFileSystemEntry entry(QFileSystemEngine::canonicalName(d->fileEntry)); if (file == CanonicalPathName) return entry.path(); -- cgit v0.12 From 111886749d2cc6a94de382e454916446052dd355 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 1 Sep 2010 14:59:59 +0200 Subject: QFileSystemIterator: added destructor and placeholder for data Reviewed-by: Prasanth Ullattil --- src/corelib/io/qfilesystemiterator_p.h | 7 +++++++ src/corelib/io/qfilesystemiterator_unix.cpp | 4 ++++ src/corelib/io/qfilesystemiterator_win.cpp | 4 ++++ 3 files changed, 15 insertions(+) diff --git a/src/corelib/io/qfilesystemiterator_p.h b/src/corelib/io/qfilesystemiterator_p.h index 436ff7e..21ad70a 100644 --- a/src/corelib/io/qfilesystemiterator_p.h +++ b/src/corelib/io/qfilesystemiterator_p.h @@ -66,10 +66,17 @@ class QFileSystemIterator { public: QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, const QStringList &nameFilters); + ~QFileSystemIterator(); bool advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData); private: + + // Platform-specific data +#if defined(Q_OS_WIN) +#else +#endif + Q_DISABLE_COPY(QFileSystemIterator) }; diff --git a/src/corelib/io/qfilesystemiterator_unix.cpp b/src/corelib/io/qfilesystemiterator_unix.cpp index 3ee344b..1a6bf87 100644 --- a/src/corelib/io/qfilesystemiterator_unix.cpp +++ b/src/corelib/io/qfilesystemiterator_unix.cpp @@ -51,6 +51,10 @@ QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Fi Q_UNUSED(nameFilters) } +QFileSystemIterator::~QFileSystemIterator() +{ +} + bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData) { Q_UNUSED(fileEntry) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 3ee344b..1a6bf87 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -51,6 +51,10 @@ QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Fi Q_UNUSED(nameFilters) } +QFileSystemIterator::~QFileSystemIterator() +{ +} + bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData) { Q_UNUSED(fileEntry) -- cgit v0.12 From f6e118d7ec781a97e8648145d4dfdb40516b13b4 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 1 Sep 2010 16:21:14 +0200 Subject: Fix tst_QFileSystemEntry auto tests on windows While resolving the native path, Windows implementation saves it as long absolute path. The tests are updated for this. This patch also splits the windows & unix code paths. Reviewed-by: Joao --- .../auto/qfilesystementry/tst_qfilesystementry.cpp | 112 +++++++++++++++------ 1 file changed, 83 insertions(+), 29 deletions(-) diff --git a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp index 35389b4..f4def8d 100644 --- a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp +++ b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp @@ -58,68 +58,121 @@ private slots: void getSetCheck(); }; +#if defined(WIN_STUFF) void tst_QFileSystemEntry::getSetCheck_data() { - QTest::addColumn("nativeFilePath"); + QTest::addColumn("nativeFilePath"); + QTest::addColumn("internalnativeFilePath"); QTest::addColumn("filepath"); QTest::addColumn("filename"); QTest::addColumn("suffix"); QTest::addColumn("completeSuffix"); QTest::addColumn("absolute"); + QString absPrefix = QLatin1String("\\\\?\\"); + QString relPrefix = absPrefix + + QDir::toNativeSeparators(QDir::currentPath()) + + QLatin1String("\\"); + QTest::newRow("simple") -#if defined(WIN_STUFF) - << QByteArray("A:\\home\\qt\\in\\a\\dir.tar.gz") - << "A:/home/qt/in/a/dir.tar.gz" + << QString("A:\\home\\qt\\in\\a\\dir.tar.gz") + << absPrefix + QString("A:\\home\\qt\\in\\a\\dir.tar.gz") + << "A:/home/qt/in/a/dir.tar.gz" + << "dir.tar.gz" << "gz" << "tar.gz" << true; + + QTest::newRow("relative") + << QString("in\\a\\dir.tar.gz") + << relPrefix + QString("in\\a\\dir.tar.gz") + << "in/a/dir.tar.gz" + << "dir.tar.gz" << "gz" << "tar.gz" << false; + + QTest::newRow("noSuffix") + << QString("myDir\\myfile") + << relPrefix + QString("myDir\\myfile") + << "myDir/myfile" << "myfile" << "" << "" << false; + + QTest::newRow("noLongSuffix") + << QString("myDir\\myfile.txt") + << relPrefix + QString("myDir\\myfile.txt") + << "myDir/myfile.txt" << "myfile.txt" << "txt" << "txt" << false; + + QTest::newRow("endingSlash") + << QString("myDir\\myfile.bla\\") + << relPrefix + QString("myDir\\myfile.bla\\") + << "myDir/myfile.bla/" << "" << "" << "" << false; + + QTest::newRow("absolutePath") + << QString("A:dir\\without\\leading\\backslash.bat") + << absPrefix + QString("A:\\dir\\without\\leading\\backslash.bat") + << "A:dir/without/leading/backslash.bat" << "backslash.bat" << "bat" << "bat" << true; +} + +void tst_QFileSystemEntry::getSetCheck() +{ + QFETCH(QString, nativeFilePath); + QFETCH(QString, internalnativeFilePath); + QFETCH(QString, filepath); + QFETCH(QString, filename); + QFETCH(QString, suffix); + QFETCH(QString, completeSuffix); + QFETCH(bool, absolute); + + QFileSystemEntry entry1(filepath); + QCOMPARE(entry1.filePath(), filepath); + QCOMPARE(entry1.nativeFilePath().toLower(), internalnativeFilePath.toLower()); + QCOMPARE(entry1.fileName(), filename); + QCOMPARE(entry1.suffix(), suffix); + QCOMPARE(entry1.completeSuffix(), completeSuffix); + QCOMPARE(entry1.isAbsolute(), absolute); + QCOMPARE(entry1.isRelative(), !absolute); + + QFileSystemEntry entry2(nativeFilePath, QFileSystemEntry::FromNativePath()); + QCOMPARE(entry2.suffix(), suffix); + QCOMPARE(entry2.completeSuffix(), completeSuffix); + QCOMPARE(entry2.isAbsolute(), absolute); + QCOMPARE(entry2.isRelative(), !absolute); + QCOMPARE(entry2.filePath(), filepath); + // This is entry was created using the native file path, + // so it should use that without any changes. + QCOMPARE(entry2.nativeFilePath(), nativeFilePath); + QCOMPARE(entry2.fileName(), filename); +} + #else + +void tst_QFileSystemEntry::getSetCheck_data() +{ + QTest::addColumn("nativeFilePath"); + QTest::addColumn("filepath"); + QTest::addColumn("filename"); + QTest::addColumn("suffix"); + QTest::addColumn("completeSuffix"); + QTest::addColumn("absolute"); + + QTest::newRow("simple") << QByteArray("/home/qt/in/a/dir.tar.gz") << "/home/qt/in/a/dir.tar.gz" -#endif << "dir.tar.gz" << "gz" << "tar.gz" << true; - QTest::newRow("relative") -#if defined(WIN_STUFF) - << QByteArray("in\\a\\dir.tar.gz") - << "in/a/dir.tar.gz" -#else << QByteArray("in/a/dir.tar.gz") << "in/a/dir.tar.gz" -#endif << "dir.tar.gz" << "gz" << "tar.gz" << false; QTest::newRow("noSuffix") -#if defined(WIN_STUFF) - << QByteArray("myDir\\myfile") -#else << QByteArray("myDir/myfile") -#endif << "myDir/myfile" << "myfile" << "" << "" << false; QTest::newRow("noLongSuffix") -#if defined(WIN_STUFF) - << QByteArray("myDir\\myfile.txt") -#else << QByteArray("myDir/myfile.txt") -#endif << "myDir/myfile.txt" << "myfile.txt" << "txt" << "txt" << false; QTest::newRow("endingSlash") -#if defined(WIN_STUFF) - << QByteArray("myDir\\myfile.bla\\") -#else << QByteArray("myDir/myfile.bla/") -#endif << "myDir/myfile.bla/" << "" << "" << "" << false; -#if defined(WIN_STUFF) - QTest::newRow("absolutePath") - << QByteArray("A:dir\\without\\leading\\backslash.bat") - << "A:dir/without/leading/backslash.bat" << "backslash.bat" << "bat" << "bat" << true; -#else QTest::newRow("relativePath") << QByteArray("A:dir/without/leading/backslash.bat") << "A:dir/without/leading/backslash.bat" << "backslash.bat" << "bat" << "bat" << false; -#endif } void tst_QFileSystemEntry::getSetCheck() @@ -149,6 +202,7 @@ void tst_QFileSystemEntry::getSetCheck() QCOMPARE(entry2.nativeFilePath(), nativeFilePath); QCOMPARE(entry2.fileName(), filename); } +#endif QTEST_MAIN(tst_QFileSystemEntry) #include -- cgit v0.12 From 34d8b4f0fa7f039504b62f2bbf84668f5345b643 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 1 Sep 2010 16:25:43 +0200 Subject: Updated comment in tst_QFileSystemEntry autotest --- tests/auto/qfilesystementry/tst_qfilesystementry.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp index f4def8d..5194c02 100644 --- a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp +++ b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp @@ -132,8 +132,8 @@ void tst_QFileSystemEntry::getSetCheck() QCOMPARE(entry2.isAbsolute(), absolute); QCOMPARE(entry2.isRelative(), !absolute); QCOMPARE(entry2.filePath(), filepath); - // This is entry was created using the native file path, - // so it should use that without any changes. + // Since this entry was created using the native path, + // the object shouldnot change nativeFilePath. QCOMPARE(entry2.nativeFilePath(), nativeFilePath); QCOMPARE(entry2.fileName(), filename); } -- cgit v0.12 From c7784c70b865792a5f09fc83e9a50cc327864a22 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Fri, 3 Sep 2010 09:35:45 +0200 Subject: Implement bundleName() in QFileSystemEngine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move the code from the qfsfileengine_unix.cpp to the new place and make the old place just call the new one. Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemengine_unix.cpp | 12 +++++++++++- src/corelib/io/qfilesystemengine_win.cpp | 2 +- src/corelib/io/qfsfileengine_unix.cpp | 12 +----------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index d4759c8..4b1932d 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -143,7 +143,17 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) //static QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) { - return QString(); // TODO implement; +#if !defined(QWS) && defined(Q_OS_MAC) + QCFType url = CFURLCreateWithFileSystemPath(0, QCFString(entry.filePath()), + kCFURLPOSIXPathStyle, true); + if (QCFType dict = CFBundleCopyInfoDictionaryForURL(url)) { + if (CFTypeRef name = (CFTypeRef)CFDictionaryGetValue(dict, kCFBundleNameKey)) { + if (CFGetTypeID(name) == CFStringGetTypeID()) + return QCFString::toQString((CFStringRef)name); + } + } +#endif + return QString(); } //static diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index dd6467a..ef47fe5 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -69,7 +69,7 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) //static QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) { - return QString(); // TODO implement; + return QString(); } //static diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 0b73a7b..9ca195b 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -1002,17 +1002,7 @@ QString QFSFileEngine::fileName(FileName file) const { Q_D(const QFSFileEngine); if (file == BundleName) { -#if !defined(QWS) && defined(Q_OS_MAC) - QCFType url = CFURLCreateWithFileSystemPath(0, QCFString(d->fileEntry.filePath()), - kCFURLPOSIXPathStyle, true); - if (QCFType dict = CFBundleCopyInfoDictionaryForURL(url)) { - if (CFTypeRef name = (CFTypeRef)CFDictionaryGetValue(dict, kCFBundleNameKey)) { - if (CFGetTypeID(name) == CFStringGetTypeID()) - return QCFString::toQString((CFStringRef)name); - } - } -#endif - return QString(); + return QFileSystemEngine::bundleName(d->fileEntry); } else if (file == BaseName) { return d->fileEntry.fileName(); } else if (file == PathName) { -- cgit v0.12 From e6747da757b4daba1fc17db9902a9c39b426455f Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Fri, 3 Sep 2010 09:37:14 +0200 Subject: Move mkdir code to createDirectory for unix' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit migrate the QFSFileEngine::mkdir code to QFileSystemEngine::createDirectory and make the former call the latter. Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemengine_unix.cpp | 33 ++++++++++++++++++++++++++++++- src/corelib/io/qfsfileengine_unix.cpp | 32 +----------------------------- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 4b1932d..469abfe 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "qfilesystemengine_p.h" +#include "qplatformdefs.h" #include "qfsfileengine.h" #include // for realpath() @@ -165,7 +166,37 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM //static bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool createParents) { - return false; // TODO implement; + QString dirName = entry.filePath(); + if (createParents) { + dirName = QDir::cleanPath(dirName); +#if defined(Q_OS_SYMBIAN) + dirName = QDir::toNativeSeparators(dirName); +#endif + for (int oldslash = -1, slash=0; slash != -1; oldslash = slash) { + slash = dirName.indexOf(QDir::separator(), oldslash+1); + if (slash == -1) { + if (oldslash == dirName.length()) + break; + slash = dirName.length(); + } + if (slash) { + QByteArray chunk = QFile::encodeName(dirName.left(slash)); + QT_STATBUF st; + if (QT_STAT(chunk, &st) != -1) { + if ((st.st_mode & S_IFMT) != S_IFDIR) + return false; + } else if (QT_MKDIR(chunk, 0777) != 0) { + return false; + } + } + } + return true; + } +#if defined(Q_OS_DARWIN) // Mac X doesn't support trailing /'s + if (dirName.endsWith(QLatin1Char('/'))) + dirName.chop(1); +#endif + return (QT_MKDIR(QFile::encodeName(dirName), 0777) == 0); } //static diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 9ca195b..c20d6ae 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -492,37 +492,7 @@ qint64 QFSFileEnginePrivate::nativeSize() const bool QFSFileEngine::mkdir(const QString &name, bool createParentDirectories) const { - QString dirName = name; - if (createParentDirectories) { - dirName = QDir::cleanPath(dirName); -#if defined(Q_OS_SYMBIAN) - dirName = QDir::toNativeSeparators(dirName); -#endif - for(int oldslash = -1, slash=0; slash != -1; oldslash = slash) { - slash = dirName.indexOf(QDir::separator(), oldslash+1); - if (slash == -1) { - if (oldslash == dirName.length()) - break; - slash = dirName.length(); - } - if (slash) { - QByteArray chunk = QFile::encodeName(dirName.left(slash)); - QT_STATBUF st; - if (QT_STAT(chunk, &st) != -1) { - if ((st.st_mode & S_IFMT) != S_IFDIR) - return false; - } else if (QT_MKDIR(chunk, 0777) != 0) { - return false; - } - } - } - return true; - } -#if defined(Q_OS_DARWIN) // Mac X doesn't support trailing /'s - if (dirName.endsWith(QLatin1Char('/'))) - dirName.chop(1); -#endif - return (QT_MKDIR(QFile::encodeName(dirName), 0777) == 0); + return QFileSystemEngine::createDirectory(QFileSystemEntry(name), createParentDirectories); } bool QFSFileEngine::rmdir(const QString &name, bool recurseParentDirectories) const -- cgit v0.12 From 5b76ea63f5dba0a6b427d9d4dbcb7be6d7afeeec Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Fri, 3 Sep 2010 09:37:43 +0200 Subject: Move rmdir code to createDirectory for unix' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit migrate the QFSFileEngine::rmdir code to QFileSystemEngine::removeDirectory and make the former call the latter. Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemengine_unix.cpp | 22 +++++++++++++++++++++- src/corelib/io/qfsfileengine_unix.cpp | 23 +---------------------- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 469abfe..7c72782 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -202,7 +202,27 @@ bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool crea //static bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents) { - return false; // TODO implement; + if (removeEmptyParents) { + QString dirName = QDir::cleanPath(entry.filePath()); +#if defined(Q_OS_SYMBIAN) + dirName = QDir::toNativeSeparators(dirName); +#endif + for (int oldslash = 0, slash=dirName.length(); slash > 0; oldslash = slash) { + QByteArray chunk = QFile::encodeName(dirName.left(slash)); + QT_STATBUF st; + if (QT_STAT(chunk, &st) != -1) { + if ((st.st_mode & S_IFMT) != S_IFDIR) + return false; + if (::rmdir(chunk) != 0) + return oldslash != 0; + } else { + return false; + } + slash = dirName.lastIndexOf(QDir::separator(), oldslash-1); + } + return true; + } + return rmdir(QFile::encodeName(entry.filePath())) == 0; } //static diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index c20d6ae..50b18fc 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -497,28 +497,7 @@ bool QFSFileEngine::mkdir(const QString &name, bool createParentDirectories) con bool QFSFileEngine::rmdir(const QString &name, bool recurseParentDirectories) const { - QString dirName = name; - if (recurseParentDirectories) { - dirName = QDir::cleanPath(dirName); -#if defined(Q_OS_SYMBIAN) - dirName = QDir::toNativeSeparators(dirName); -#endif - for(int oldslash = 0, slash=dirName.length(); slash > 0; oldslash = slash) { - QByteArray chunk = QFile::encodeName(dirName.left(slash)); - QT_STATBUF st; - if (QT_STAT(chunk, &st) != -1) { - if ((st.st_mode & S_IFMT) != S_IFDIR) - return false; - if (::rmdir(chunk) != 0) - return oldslash != 0; - } else { - return false; - } - slash = dirName.lastIndexOf(QDir::separator(), oldslash-1); - } - return true; - } - return ::rmdir(QFile::encodeName(dirName)) == 0; + return QFileSystemEngine::removeDirectory(QFileSystemEntry(name), recurseParentDirectories); } bool QFSFileEngine::caseSensitive() const -- cgit v0.12 From 33634cd85233b75d8c24ef8ed67ff054d709b6e9 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 3 Sep 2010 19:04:12 +0100 Subject: Port over QFileSystemIterator for Symbian OS Also added the QDirIterator::IteratorFlags iteratorFlags as a parameter for QFileSystemIterator, as it impacts what kind of filtering we can do via the OS. i.e. filename filtering isn't compatible with recursive iteration. Reviewed-By: joao --- src/corelib/io/qfilesystemiterator_p.h | 15 ++- src/corelib/io/qfilesystemiterator_symbian.cpp | 134 +++++++++++++++++++++++++ src/corelib/io/qfilesystemiterator_unix.cpp | 3 +- src/corelib/io/qfilesystemiterator_win.cpp | 3 +- 4 files changed, 152 insertions(+), 3 deletions(-) create mode 100644 src/corelib/io/qfilesystemiterator_symbian.cpp diff --git a/src/corelib/io/qfilesystemiterator_p.h b/src/corelib/io/qfilesystemiterator_p.h index 21ad70a..ed1ef5e 100644 --- a/src/corelib/io/qfilesystemiterator_p.h +++ b/src/corelib/io/qfilesystemiterator_p.h @@ -55,17 +55,25 @@ #include #include +#include #include #include #include +// Platform-specific headers +#if defined(Q_OS_WIN) +#elif defined (Q_OS_SYMBIAN) +#include +#else +#endif + QT_BEGIN_NAMESPACE class QFileSystemIterator { public: - QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, const QStringList &nameFilters); + QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, const QStringList &nameFilters, QDirIterator::IteratorFlags flags); ~QFileSystemIterator(); bool advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData); @@ -74,6 +82,11 @@ private: // Platform-specific data #if defined(Q_OS_WIN) +#elif defined (Q_OS_SYMBIAN) + RDir dirHandle; + TEntryArray entries; + TInt lastError; + TInt entryIndex; #else #endif diff --git a/src/corelib/io/qfilesystemiterator_symbian.cpp b/src/corelib/io/qfilesystemiterator_symbian.cpp new file mode 100644 index 0000000..9093599 --- /dev/null +++ b/src/corelib/io/qfilesystemiterator_symbian.cpp @@ -0,0 +1,134 @@ +/**************************************************************************** +** +** 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 QtCore 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 "qfilesystemiterator_p.h" +#include "qfilesystemengine_p.h" +#include "qcore_symbian_p.h" + +QT_BEGIN_NAMESPACE + +QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &path, QDir::Filters filters, + const QStringList &nameFilters, QDirIterator::IteratorFlags iteratorFlags) + : lastError(KErrNone), entryIndex(-1) +{ + RFs& fs = qt_s60GetRFs(); + + TFileName symbianPath; + QString abspath = QFileSystemEngine::absoluteName(path).nativeFilePath(); + + if (!abspath.endsWith(QLatin1Char('\\'))) + abspath.append(QLatin1Char('\\')); + + int pathLen = abspath.length(); + if (pathLen > symbianPath.MaxLength()) { + lastError = KErrBadName; + return; + } + symbianPath.Copy(qt_QString2TPtrC(abspath)); + + //set up server side filtering to reduce IPCs + //RDir won't accept all valid name filters e.g. "*. bar" + if (nameFilters.count() == 1 && !(filters & QDir::AllDirs) && iteratorFlags + == QDirIterator::NoIteratorFlags && pathLen + nameFilters[0].length() + <= symbianPath.MaxLength()) { + //server side supports one mask - skip this for recursive mode or if only files should be filtered + symbianPath.Append(qt_QString2TPtrC(nameFilters[0])); + } + + TUint symbianMask = 0; + if ((filters & QDir::Dirs) || (filters & QDir::AllDirs) || (iteratorFlags + & QDirIterator::Subdirectories)) + symbianMask |= KEntryAttDir; //include directories + if (filters & QDir::Hidden) + symbianMask |= KEntryAttHidden; + if (filters & QDir::System) + symbianMask |= KEntryAttSystem; + if (((filters & QDir::Files) == 0) && symbianMask == KEntryAttDir) + symbianMask |= KEntryAttMatchExclusive; //exclude non-directories + else if (symbianMask == 0) { + if ((filters & QDir::PermissionMask) == QDir::Writable) + symbianMask = KEntryAttMatchExclude | KEntryAttReadOnly; + else if ((filters & QDir::PermissionMask) == QDir::Readable) + symbianMask = KEntryAttMatchExclusive | KEntryAttReadOnly; + } + + lastError = dirHandle.Open(fs, symbianPath, symbianMask); +} + +QFileSystemIterator::~QFileSystemIterator() +{ + dirHandle.Close(); +} + +static void createFileSystemMetaDataHelper(const TEntry &entry, QFileSystemMetaData &metaData) +{ + //placeholder + //TODO: adapt from QFileInfoPrivate::fromTEntry(entries[entryIndex], path()); + //or add this functionality to QFileSystemMetaData +} + +bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData) +{ + //1st time, lastError is result of dirHandle.Open(), entries.Count() is 0 and entryIndex is -1 so initial read is triggered + //subsequent times, read is triggered each time we reach the end of the entry list + //final time, lastError is KErrEof so we don't need to read anymore. + ++entryIndex; + if (lastError == KErrNone && entryIndex >= entries.Count()) { + lastError = dirHandle.Read(entries); + entryIndex = 0; + } + + //each call to advance() gets the next entry from the entry list. + //from the final (or only) read call, KErrEof is returned together with a full buffer so we still need to go through the list + if ((lastError == KErrNone || lastError == KErrEof) && entryIndex < entries.Count()) { + Q_ASSERT(entryIndex >= 0); + const TEntry &entry(entries[entryIndex]); + fileEntry = QFileSystemEntry(qt_TDesC2QString(entry.iName), QFileSystemEntry::FromNativePath()); + createFileSystemMetaDataHelper(entry, metaData); + return true; + } + + //TODO: error reporting, to allow user to distinguish empty directory from error condition. + + return false; +} + +QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemiterator_unix.cpp b/src/corelib/io/qfilesystemiterator_unix.cpp index 1a6bf87..3c73496 100644 --- a/src/corelib/io/qfilesystemiterator_unix.cpp +++ b/src/corelib/io/qfilesystemiterator_unix.cpp @@ -44,11 +44,12 @@ QT_BEGIN_NAMESPACE QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, - const QStringList &nameFilters) + const QStringList &nameFilters, QDirIterator::IteratorFlags flags) { Q_UNUSED(entry) Q_UNUSED(filters) Q_UNUSED(nameFilters) + Q_UNUSED(flags) } QFileSystemIterator::~QFileSystemIterator() diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 1a6bf87..3c73496 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -44,11 +44,12 @@ QT_BEGIN_NAMESPACE QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, - const QStringList &nameFilters) + const QStringList &nameFilters, QDirIterator::IteratorFlags flags) { Q_UNUSED(entry) Q_UNUSED(filters) Q_UNUSED(nameFilters) + Q_UNUSED(flags) } QFileSystemIterator::~QFileSystemIterator() -- cgit v0.12 From 00bcd42c9ec6cb723fdccb08bb969eef0e5f1f0f Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 3 Sep 2010 19:17:46 +0100 Subject: Implementation of QFileSystemEngine for Symbian OS Code comes from QFile, QDir and QFileInfo in the native IO branch Reviewed-By: joao --- src/corelib/io/qfilesystemengine_symbian.cpp | 213 +++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 src/corelib/io/qfilesystemengine_symbian.cpp diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp new file mode 100644 index 0000000..2798bdf --- /dev/null +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -0,0 +1,213 @@ +/**************************************************************************** +** +** 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 QtCore 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 "qfilesystemengine_p.h" +#include "qfsfileengine.h" +#include "qcore_symbian_p.h" + +#include + +QT_BEGIN_NAMESPACE + +bool QFileSystemEngine::isCaseSensitive() +{ + return false; +} + +//static +QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link) +{ + return link; // TODO implement +} + +//static +QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) +{ + if (entry.isEmpty() || entry.isRoot()) + return entry; + + QFileSystemEntry result = absoluteName(entry); + RFs& fs(qt_s60GetRFs()); + TUint e; + //Att is faster than Entry for determining if a file exists, due to smaller IPC + TInt r = fs.Att(qt_QString2TPtrC(result.nativeFilePath()), e); + + if (r == KErrNone) { + return result; + } else { // file doesn't exist + return QFileSystemEntry(); + } +} + +//static +QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) +{ + if (entry.isAbsolute()) + return entry; + + QString orig = entry.filePath(); + QString result; + if (orig.isEmpty() || !orig.startsWith('/')) { + QFileSystemEntry cur(QFSFileEngine::currentPath()); + result = cur.filePath(); + } + if (!orig.isEmpty() && !(orig.length() == 1 && orig[0] == '.')) { + if (!result.isEmpty() && !result.endsWith('/')) + result.append('/'); + result.append(orig); + } + + if (result.length() == 1 && result[0] == '/') + return QFileSystemEntry(result); + const bool isDir = result.endsWith('/'); + + result = QDir::cleanPath(result); + if (isDir) + result.append(QLatin1Char('/')); + return QFileSystemEntry(result); +} + +//static +QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) +{ + return QString(); // TODO implement; +} + +//static +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) +{ + return false; // TODO implement; +} + +//static +bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool createParents) +{ + QString abspath = absoluteName(entry).nativeFilePath(); + if (!abspath.endsWith(QLatin1Char('\\'))) + abspath.append(QLatin1Char('\\')); + TInt r; + if (createParents) + r = qt_s60GetRFs().MkDirAll(qt_QString2TPtrC(abspath)); + else + r = qt_s60GetRFs().MkDir(qt_QString2TPtrC(abspath)); + return (r == KErrNone || r == KErrAlreadyExists); +} + +//static +bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents) +{ + QString abspath = absoluteName(entry).nativeFilePath(); + if (!abspath.endsWith(QLatin1Char('\\'))) + abspath.append(QLatin1Char('\\')); + TPtrC dir(qt_QString2TPtrC(abspath)); + RFs& fs = qt_s60GetRFs(); + bool ok = false; + //behaviour of FS file engine: + //returns true if the directory could be removed + //success/failure of removing parent directories does not matter + while (KErrNone == fs.RmDir(dir)) { + ok = true; + if (!removeEmptyParents) + break; + //RFs::RmDir treats "c:\foo\bar" and "c:\foo\" the same, so it is sufficient to remove the last \ to the end + dir.Set(dir.Left(dir.LocateReverse(TChar('\\')))); + } + return ok; +} + +//static +bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + Q_UNUSED(source) + Q_UNUSED(target) + return false; +} + +//static +bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + //TODO: review - should this be a singleton? + CFileMan *fm = 0; + TRAPD(err, fm = CFileMan::NewL(qt_s60GetRFs())); + if(err == KErrNone) { + err = fm->Copy(qt_QString2TPtrC(source.nativeFilePath()), qt_QString2TPtrC(target.nativeFilePath()), 0); + delete fm; + return true; + } + //TODO: error reporting d->setSymbianError(err, QFile::CopyError); + return false; +} + +//static +bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +{ + QString sourcepath = absoluteName(source).nativeFilePath(); + QString targetpath = absoluteName(target).nativeFilePath(); + RFs& fs(qt_s60GetRFs()); + TInt err = fs.Rename(qt_QString2TPtrC(sourcepath), qt_QString2TPtrC(targetpath)); + return err == KErrNone; // TODO error reporting; +} + +//static +bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) +{ + QString targetpath = absoluteName(entry).nativeFilePath(); + RFs& fs(qt_s60GetRFs()); + TInt err = fs.Delete(qt_QString2TPtrC(targetpath)); + return false; // TODO error reporting; +} + +//static +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data) +{ + QString targetpath = absoluteName(entry).nativeFilePath(); + TUint setmask = 0; + TUint clearmask = 0; + RFs& fs(qt_s60GetRFs()); + if (permissions & (QFile::ReadOwner | QFile::ReadUser | QFile::ReadGroup | QFile::ReadOther)) + clearmask = KEntryAttReadOnly; + else + setmask = KEntryAttReadOnly; + TInt err = fs.SetAtt(qt_QString2TPtrC(targetpath), setmask, clearmask); + return err != KErrNone; // TODO error reporting, metadata update; +} + +QT_END_NAMESPACE -- cgit v0.12 From c4606e7fc8eeb52cd8966d317a77e4a69b0f2359 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 3 Sep 2010 11:31:43 +0200 Subject: QFileSystemEngine/Mac: keep it empty until needed Added qfilesystemengine_mac to the build system, but hollowed it out. This way, it is ready for immediate use without having unnecessary stubs that can be found in the _unix version already. --- qmake/Makefile.unix | 4 ++ qmake/qmake.pri | 1 + src/corelib/io/io.pri | 1 + src/corelib/io/qfilesystemengine_mac.cpp | 77 +------------------------------- src/tools/bootstrap/bootstrap.pro | 1 + 5 files changed, 8 insertions(+), 76 deletions(-) diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index e8e96fd..d248831 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -46,6 +46,7 @@ DEPEND_SRC=project.cpp property.cpp meta.cpp main.cpp generators/makefile.cpp ge $(SOURCE_PATH)/src/corelib/tools/qbytearray.cpp $(SOURCE_PATH)/src/corelib/tools/qbytearraymatcher.cpp \ $(SOURCE_PATH)/src/corelib/io/qdatastream.cpp $(SOURCE_PATH)/src/corelib/io/qbuffer.cpp \ $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp \ + $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_mac.cpp \ $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_unix.cpp $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator.cpp \ @@ -172,6 +173,9 @@ qfilesystemengine.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp qfilesystemengine_unix.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_unix.cpp +qfilesystemengine_mac.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_mac.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_mac.cpp + qfilesystemiterator_unix.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp diff --git a/qmake/qmake.pri b/qmake/qmake.pri index 7226b12..ae31eca 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -129,6 +129,7 @@ bootstrap { #Qt code unix { SOURCES += qfilesystemengine_unix.cpp qfilesystemiterator_unix.cpp qfsfileengine_unix.cpp qfsfileengine_iterator_unix.cpp mac { + SOURCES += qfilesystemengine_mac.cpp SOURCES += qcore_mac.cpp qsettings_mac.cpp QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 #enables weak linking for 10.4 (exported) LIBS += -framework ApplicationServices diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index 5d10216..7c3712e 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -81,6 +81,7 @@ win32 { else:SOURCES += io/qprocess_unix.cpp macx-*: { HEADERS += io/qfilesystemwatcher_fsevents_p.h + SOURCES += io/qfilesystemengine_mac.cpp SOURCES += io/qsettings_mac.cpp io/qfilesystemwatcher_fsevents.cpp } diff --git a/src/corelib/io/qfilesystemengine_mac.cpp b/src/corelib/io/qfilesystemengine_mac.cpp index c915a2c..30d7fa5 100644 --- a/src/corelib/io/qfilesystemengine_mac.cpp +++ b/src/corelib/io/qfilesystemengine_mac.cpp @@ -43,81 +43,6 @@ QT_BEGIN_NAMESPACE -bool QFileSystemEngine::isCaseSensitive() -{ - return true; -} - -//static -QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link) -{ - return link; // TODO implement -} - -//static -QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) -{ - return entry; // TODO implement; -} - -//static -QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) -{ - return entry; // TODO implement; -} - -//static -QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) -{ - return QString(); // TODO implement; -} - -//static -bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) -{ - return false; // TODO implement; -} - -//static -bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool createParents) -{ - return false; // TODO implement; -} - -//static -bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents) -{ - return false; // TODO implement; -} - -//static -bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target) -{ - return false; // TODO implement; -} - -//static -bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target) -{ - return false; // TODO implement; -} - -//static -bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target) -{ - return false; // TODO implement; -} - -//static -bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) -{ - return false; // TODO implement; -} - -//static -bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data) -{ - return false; // TODO implement; -} +// Mac-specific implementations only! QT_END_NAMESPACE diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro index 6d2f760..016fdc0 100644 --- a/src/tools/bootstrap/bootstrap.pro +++ b/src/tools/bootstrap/bootstrap.pro @@ -97,6 +97,7 @@ win32:SOURCES += ../../corelib/io/qfilesystemengine_win.cpp \ macx: { QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 #enables weak linking for 10.4 (exported) + SOURCES += ../../corelib/io/qfilesystemengine_mac.cpp SOURCES += ../../corelib/kernel/qcore_mac.cpp LIBS += -framework CoreServices } -- cgit v0.12 From 81b302d06c93b77127a2bd6ee527aeefadffbf64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 3 Sep 2010 13:43:33 +0200 Subject: QFileSystemMetaData: filling up Changes to QFileSystemMetaData resulting from implementing QFileSystemEngine::fillMetaData on Unix -- commit to follow. * Added missing operators for MetaDataFlags * Tentatively sharing entryFlags and size across platforms; times and owner IDs are candidates * Flags definition simplified and made stricter; unused bits are no longer set in masks, either * New AliasType for Mac; AliasType and BundleType on other platforms are 0 so they can be optimized out * New SequentialType for files that are not regular files * LocalDiskAttribute (LocalDiskFlag in QAbstractFileEngine) was only used to flag the use of a native file engine, so it's useless here * New flags for querying owner IDs * New method: missingFlags, to help with incremental queries * Added accessors for known data * New method to fill metaData from struct stat --- src/corelib/io/qfilesystemengine_unix.cpp | 51 ++++++++++- src/corelib/io/qfilesystemmetadata_p.h | 136 +++++++++++++++++++++++++++--- 2 files changed, 172 insertions(+), 15 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 7c72782..3011aa0 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -39,6 +39,7 @@ ** ****************************************************************************/ +#include "qplatformdefs.h" #include "qfilesystemengine_p.h" #include "qplatformdefs.h" #include "qfsfileengine.h" @@ -47,11 +48,59 @@ #include #if defined(Q_OS_MAC) -# include +# include #endif QT_BEGIN_NAMESPACE +void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer) +{ + // Permissions + if (statBuffer.st_mode & S_IRUSR) + entryFlags |= QFileSystemMetaData::OwnerReadPermission; + if (statBuffer.st_mode & S_IWUSR) + entryFlags |= QFileSystemMetaData::OwnerWritePermission; + if (statBuffer.st_mode & S_IXUSR) + entryFlags |= QFileSystemMetaData::OwnerExecutePermission; + + if (statBuffer.st_mode & S_IRGRP) + entryFlags |= QFileSystemMetaData::GroupReadPermission; + if (statBuffer.st_mode & S_IWGRP) + entryFlags |= QFileSystemMetaData::GroupWritePermission; + if (statBuffer.st_mode & S_IXGRP) + entryFlags |= QFileSystemMetaData::GroupExecutePermission; + + if (statBuffer.st_mode & S_IROTH) + entryFlags |= QFileSystemMetaData::OtherReadPermission; + if (statBuffer.st_mode & S_IWOTH) + entryFlags |= QFileSystemMetaData::OtherWritePermission; + if (statBuffer.st_mode & S_IXOTH) + entryFlags |= QFileSystemMetaData::OtherExecutePermission; + + // Type + if ((statBuffer.st_mode & S_IFMT) == S_IFREG) + entryFlags |= QFileSystemMetaData::FileType; + else if ((statBuffer.st_mode & S_IFMT) == S_IFDIR) + entryFlags |= QFileSystemMetaData::DirectoryType; + else + entryFlags |= QFileSystemMetaData::SequentialType; + + // Attributes + entryFlags |= QFileSystemMetaData::ExistsAttribute; + size_ = statBuffer.st_size; +#if !defined(QWS) && defined(Q_OS_MAC) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 + if (statBuffer.st_flags & UF_HIDDEN) { + entryFlags |= QFileSystemMetaData::HiddenAttribute; + knownFlagsMask |= QFileSystemMetaData::HiddenAttribute; + } +#endif + + // Times + creationTime_ = statBuffer.st_ctime ? statBuffer.st_ctime : statBuffer.st_mtime; + modificationTime_ = statBuffer.st_mtime; + accessTime_ = statBuffer.st_atime; +} + bool QFileSystemEngine::isCaseSensitive() { #if defined(Q_OS_SYMBIAN) diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 40bad9e..5914eb3 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -53,7 +53,10 @@ // We mean it. // +#include "qplatformdefs.h" #include +#include +#include // Platform-specific includes #if defined(Q_OS_WIN) @@ -67,7 +70,7 @@ class QFileSystemEngine; struct QFileSystemMetaData { QFileSystemMetaData() - : cachedFlags(0) + : knownFlagsMask(0) { } @@ -78,60 +81,165 @@ struct QFileSystemMetaData UserReadPermission = 0x00000400, UserWritePermission = 0x00000200, UserExecutePermission = 0x00000100, OwnerReadPermission = 0x00004000, OwnerWritePermission = 0x00002000, OwnerExecutePermission = 0x00001000, - OtherPermissions = 0x0000000F, - GroupPermissions = 0x000000F0, - UserPermissions = 0x00000F00, - OwnerPermissions = 0x0000F000, + OtherPermissions = OtherReadPermission | OtherWritePermission | OtherExecutePermission, + GroupPermissions = GroupReadPermission | GroupWritePermission | GroupExecutePermission, + UserPermissions = UserReadPermission | UserWritePermission | UserExecutePermission, + OwnerPermissions = OwnerReadPermission | OwnerWritePermission | OwnerExecutePermission, - Permissions = 0x0000FFFF, + Permissions = OtherPermissions | GroupPermissions | UserPermissions | OwnerPermissions, // Type LinkType = 0x00010000, FileType = 0x00020000, DirectoryType = 0x00040000, +#if !defined(QWS) && defined(Q_OS_MAC) BundleType = 0x00080000, + AliasType = 0x08000000, +#else + BundleType = 0x0, + AliasType = 0x0, +#endif + SequentialType = 0x00800000, // Note: overlaps with QAbstractFileEngine::RootFlag - Type = 0x000F0000, + Type = LinkType | FileType | DirectoryType | BundleType | SequentialType | AliasType, // Attributes HiddenAttribute = 0x00100000, - LocalDiskAttribute = 0x00200000, + SizeAttribute = 0x00200000, // Note: overlaps with QAbstractFileEngine::LocalDiskFlag ExistsAttribute = 0x00400000, - SizeAttribute = 0x00800000, // Note: overlaps with QAbstractFileEngine::RootFlag - Attributes = 0x00F00000, + Attributes = HiddenAttribute | SizeAttribute | ExistsAttribute, // Times CreationTime = 0x01000000, // Note: overlaps with QAbstractFileEngine::Refresh ModificationTime = 0x02000000, AccessTime = 0x04000000, - Times = 0x07000000 + Times = CreationTime | ModificationTime | AccessTime, + + // Owner IDs + UserId = 0x10000000, + GroupId = 0x20000000, + + OwnerIds = UserId | GroupId, + + PosixStatFlags = QFileSystemMetaData::OtherPermissions + | QFileSystemMetaData::GroupPermissions + | QFileSystemMetaData::OwnerPermissions + | QFileSystemMetaData::FileType + | QFileSystemMetaData::DirectoryType + | QFileSystemMetaData::SequentialType +#if !defined(QWS) && defined(Q_OS_MAC) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 + // Mac OS >= 10.5: st_flags & UF_HIDDEN + | QFileSystemMetaData::HiddenAttribute +#endif + | QFileSystemMetaData::SizeAttribute + | QFileSystemMetaData::Times + | QFileSystemMetaData::OwnerIds, + + AllMetaDataFlags = 0xFFFFFFFF + }; Q_DECLARE_FLAGS(MetaDataFlags, MetaDataFlag) bool hasFlags(MetaDataFlags flags) const { - return ((cachedFlags & flags) == flags); + return ((knownFlagsMask & flags) == flags); + } + + MetaDataFlags missingFlags(MetaDataFlags flags) + { + return flags & ~knownFlagsMask; } void clear() { - cachedFlags = 0; + knownFlagsMask = 0; + } + + void clearFlags(MetaDataFlags flags = AllMetaDataFlags) + { + knownFlagsMask &= ~flags; + } + + bool exists() const { return (entryFlags & ExistsAttribute); } + + bool isLink() const { return (entryFlags & LinkType); } + bool isFile() const { return (entryFlags & FileType); } + bool isDirectory() const { return (entryFlags & DirectoryType); } +#if !defined(QWS) && defined(Q_OS_MAC) + bool isBundle() const { return (entryFlags & BundleType); } + bool isAlias() const { return (entryFlags & AliasType); } +#else + bool isBundle() const { return false; } + bool isAlias() const { return false; } +#endif + bool isSequential() const { return (entryFlags & SequentialType); } + bool isHidden() const { return (entryFlags & HiddenAttribute); } + + qint64 size() const { return size_; } + + QFile::Permissions permissions() const { return QFile::Permissions(Permissions & entryFlags); } + +#if defined(Q_OS_UNIX) + QDateTime creationTime() const { return QDateTime::fromTime_t(creationTime_); } + QDateTime modificationTime() const { return QDateTime::fromTime_t(modificationTime_); } + QDateTime accessTime() const { return QDateTime::fromTime_t(accessTime_); } + + QDateTime fileTime(QAbstractFileEngine::FileTime time) const + { + switch (time) + { + case QAbstractFileEngine::ModificationTime: + return modificationTime(); + + case QAbstractFileEngine::AccessTime: + return accessTime(); + + case QAbstractFileEngine::CreationTime: + return creationTime(); + } + + return QDateTime(); + } + + uint userId() const { return userId_; } + uint groupId() const { return groupId_; } + + uint ownerId(QAbstractFileEngine::FileOwner owner) const + { + if (owner == QAbstractFileEngine::OwnerUser) + return userId(); + else + return groupId(); } + void fillFromStatBuf(const QT_STATBUF &statBuffer); +#endif + private: friend class QFileSystemEngine; - MetaDataFlags cachedFlags; + MetaDataFlags knownFlagsMask; + MetaDataFlags entryFlags; + + qint64 size_; // Platform-specific data goes here: #if defined(Q_OS_WIN) #else + time_t creationTime_; + time_t modificationTime_; + time_t accessTime_; + + uint userId_; + uint groupId_; #endif }; +Q_DECLARE_OPERATORS_FOR_FLAGS(QFileSystemMetaData::MetaDataFlags) + QT_END_NAMESPACE #endif // include guard -- cgit v0.12 From 4fd2aced96d9095254d89f9da9c911bd88f15245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 3 Sep 2010 20:17:35 +0200 Subject: QFileSystemEngine::fillMetaData for Unix platforms This shuffles a lot of code out of QFSFileEngine. fillMetaData, however is almost a reimplementation of the logic. Goals for this function are to maximize data gathered and minimize file system queries. Symbian had an optimization to lstat first and only stat again on links, having noticed a lot of lstat were being done that weren't really necessary. That optimization was also made in the new fillMetaData function and extended to all platforms, whenever the LinkType attribute is requested (QFSFileEngine will now typically request this in reply to a fileFlags request). We now try to cache all meta data we get from the file system, while still requesting "refreshes" as often as we did before. Client code going straight to QFileSystemEngine API can choose it's behaviour by clearing and querying specific flags in the QFileSystemMetaData instance. Reviewed-by: Prasanth Ullattil --- src/corelib/io/qfilesystemengine_p.h | 3 + src/corelib/io/qfilesystemengine_unix.cpp | 209 ++++++++++++++++++++- src/corelib/io/qfsfileengine.cpp | 33 +--- src/corelib/io/qfsfileengine_p.h | 14 +- src/corelib/io/qfsfileengine_unix.cpp | 300 +++++++++--------------------- 5 files changed, 324 insertions(+), 235 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index f50701e..182ccd6 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -72,6 +72,9 @@ public: static bool fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what); +#if defined(Q_OS_UNIX) + static bool fillMetaData(int fd, QFileSystemMetaData &data); // what = PosixStatFlags +#endif static bool createDirectory(const QFileSystemEntry &entry, bool createParents); static bool removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents); diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 3011aa0..6b3c157 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -47,12 +47,64 @@ #include // for realpath() #include +#if defined(Q_OS_SYMBIAN) +# include +# include +# include +# include +#endif + #if defined(Q_OS_MAC) # include #endif QT_BEGIN_NAMESPACE +#if defined(Q_OS_SYMBIAN) +static bool _q_isSymbianHidden(const QFileSystemEntry &entry, bool isDir) +{ + RFs rfs = qt_s60GetRFs(); + + QFileSystemEntry absoluteEntry = QFileSystemEngine::absoluteName(entry); + QString absolutePath = absoluteEntry.filePath(); + + if (isDir && !absolutePath.endsWith(QLatin1Char('/'))) + absolutePath.append(QLatin1Char('/')); + + TPtrC ptr(qt_QString2TPtrC(absolutePath)); + TUint attributes; + TInt err = rfs.Att(ptr, attributes); + return (err == KErrNone && (attributes & KEntryAttHidden)); +} +#endif + +#if !defined(QWS) && defined(Q_OS_MAC) +static inline bool _q_isMacHidden(const char *nativePath) +{ + OSErr err; + + FSRef fsRef; + err = FSPathMakeRefWithOptions(reinterpret_cast(nativePath), + kFSPathMakeRefDoNotFollowLeafSymlink, &fsRef, 0); + if (err != noErr) + return false; + + FSCatalogInfo catInfo; + err = FSGetCatalogInfo(&fsRef, kFSCatInfoFinderInfo, &catInfo, NULL, NULL, NULL); + if (err != noErr) + return false; + + FileInfo * const fileInfo = reinterpret_cast(&catInfo.finderInfo); + return (fileInfo->finderFlags & kIsInvisible); +} +#else +static inline bool _q_isMacHidden(const char *nativePath) +{ + // no-op + return false; +} +#endif + void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer) { // Permissions @@ -207,9 +259,162 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) } //static -bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) +bool QFileSystemEngine::fillMetaData(int fd, QFileSystemMetaData &data) { - return false; // TODO implement; + data.entryFlags &= ~QFileSystemMetaData::PosixStatFlags; + data.knownFlagsMask |= QFileSystemMetaData::PosixStatFlags; + + QT_STATBUF statBuffer; + if (QT_FSTAT(fd, &statBuffer) == 0) { + data.fillFromStatBuf(statBuffer); + return true; + } + + return false; +} + +//static +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, + QFileSystemMetaData::MetaDataFlags what) +{ +#if !defined(QWS) && defined(Q_OS_MAC) + if (what & QFileSystemMetaData::BundleType) { + if (!data.hasFlags(QFileSystemMetaData::DirectoryType)) + what |= QFileSystemMetaData::DirectoryType; + } +#endif + +#if defined(Q_OS_SYMBIAN) + if (what & QFileSystemMetaData::HiddenAttribute) { + if (!data.hasFlags(QFileSystemMetaData::LinkType | QFileSystemMetaData::DirectoryType)) + what |= QFileSystemMetaData::LinkType | QFileSystemMetaData::DirectoryType; + } +#endif + + if (what & QFileSystemMetaData::PosixStatFlags) + what |= QFileSystemMetaData::PosixStatFlags; + + if (what & QFileSystemMetaData::ExistsAttribute) { + // FIXME: Would other queries being performed provide this bit? + what |= QFileSystemMetaData::PosixStatFlags; + } + + data.entryFlags &= ~what; + + const char * nativeFilePath; + int nativeFilePathLength; + { + const QByteArray &path = entry.nativeFilePath(); + nativeFilePath = path.constData(); + nativeFilePathLength = path.size(); + } + + bool entryExists = true; // innocent until proven otherwise + + QT_STATBUF statBuffer; + bool statBufferValid = false; + if (what & QFileSystemMetaData::LinkType) { + if (QT_LSTAT(nativeFilePath, &statBuffer) == 0) { + if (S_ISLNK(statBuffer.st_mode)) { + data.entryFlags |= QFileSystemMetaData::LinkType; + } else { + statBufferValid = true; + data.entryFlags &= ~QFileSystemMetaData::PosixStatFlags; + } + } else { + entryExists = false; + } + + data.knownFlagsMask |= QFileSystemMetaData::LinkType; + } + + if (statBufferValid || (what & QFileSystemMetaData::PosixStatFlags)) { + if (entryExists && !statBufferValid) + statBufferValid = (QT_STAT(nativeFilePath, &statBuffer) == 0); + + if (statBufferValid) + data.fillFromStatBuf(statBuffer); + else + entryExists = false; + + // reset the mask + data.knownFlagsMask |= QFileSystemMetaData::PosixStatFlags + | QFileSystemMetaData::ExistsAttribute; + } + +#if !defined(QWS) && defined(Q_OS_MAC) + if (what & QFileSystemMetaData::AliasType) + { + if (entryExists) { + FSRef fref; + if (FSPathMakeRef((const UInt8 *)nativeFilePath, &fref, NULL) == noErr) { + Boolean isAlias, isFolder; + if (FSIsAliasFile(&fref, &isAlias, &isFolder) == noErr) { + if (isAlias) + data.entryFlags |= QFileSystemMetaData::AliasType; + } + } + } + data.knownFlagsMask |= QFileSystemMetaData::AliasType; + } +#endif + + if (what & QFileSystemMetaData::UserPermissions) { + // calculate user permissions + + if (entryExists) { + if (what & QFileSystemMetaData::UserReadPermission) { + if (QT_ACCESS(nativeFilePath, R_OK) == 0) + data.entryFlags |= QFileSystemMetaData::UserReadPermission; + } + if (what & QFileSystemMetaData::UserWritePermission) { + if (QT_ACCESS(nativeFilePath, W_OK) == 0) + data.entryFlags |= QFileSystemMetaData::UserWritePermission; + } + if (what & QFileSystemMetaData::UserExecutePermission) { + if (QT_ACCESS(nativeFilePath, X_OK) == 0) + data.entryFlags |= QFileSystemMetaData::UserExecutePermission; + } + } + data.knownFlagsMask |= (what & QFileSystemMetaData::UserPermissions); + } + + if (what & QFileSystemMetaData::HiddenAttribute + && !data.isHidden()) { +#if defined(Q_OS_SYMBIAN) + // In Symbian, all symlinks have hidden attribute for some reason; + // lets make them visible for better compatibility with other platforms. + // If somebody actually wants a hidden link, then they are out of luck. + if (entryExists && !data.isLink() && _q_isSymbianHidden(entry, data.isDirectory())) + data.entryFlags |= QFileSystemMetaData::HiddenAttribute; +#else + QString fileName = entry.fileName(); + if ((fileName.size() > 0 && fileName.at(0) == QLatin1Char('.')) + || (entryExists && _q_isMacHidden(nativeFilePath))) + data.entryFlags |= QFileSystemMetaData::HiddenAttribute; +#endif + data.knownFlagsMask |= QFileSystemMetaData::HiddenAttribute; + } + +#if !defined(QWS) && defined(Q_OS_MAC) + if (what & QFileSystemMetaData::BundleType) { + if (entryExists && data.isDirectory()) { + QCFType path = CFStringCreateWithBytes(0, + (const UInt8*)nativeFilePath, nativeFilePathLength, + kCFStringEncodingUTF8, false); + QCFType url = CFURLCreateWithFileSystemPath(0, path, + kCFURLPOSIXPathStyle, true); + + UInt32 type, creator; + if (CFBundleGetPackageInfoInDirectory(url, &type, &creator)) + data.entryFlags |= QFileSystemMetaData::BundleType; + } + + data.knownFlagsMask |= QFileSystemMetaData::BundleType; + } +#endif + + return data.hasFlags(what); } //static diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 5d7b354..1b0a28c 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -447,24 +447,13 @@ qint64 QFSFileEngine::size() const qint64 QFSFileEnginePrivate::sizeFdFh() const { Q_Q(const QFSFileEngine); - // ### Fix this function, it should not stat unless the file is closed. - QT_STATBUF st; - int ret = 0; const_cast(q)->flush(); - if (fh && fileEntry.isEmpty()) { - // Buffered stdlib mode. - // ### This should really be an ftell - ret = QT_FSTAT(QT_FILENO(fh), &st); - } else if (fd == -1) { - // Stateless stat. - ret = QT_STAT(fileEntry.nativeFilePath().constData(), &st); - } else { - // Unbuffered stdio mode. - ret = QT_FSTAT(fd, &st); - } - if (ret == -1) + + tried_stat = 0; + metaData.clearFlags(QFileSystemMetaData::SizeAttribute); + if (!doStat(QFileSystemMetaData::SizeAttribute)) return 0; - return st.st_size; + return metaData.size(); } #endif @@ -773,18 +762,14 @@ bool QFSFileEngine::isSequential() const /*! \internal */ +#ifdef Q_OS_UNIX bool QFSFileEnginePrivate::isSequentialFdFh() const { - if (!tried_stat) - doStat(); - if (could_stat) { -#ifdef Q_OS_UNIX - return (st.st_mode & S_IFMT) != S_IFREG; - // ### WINDOWS! -#endif - } + if (doStat(QFileSystemMetaData::SequentialType)) + return metaData.isSequential(); return true; } +#endif /*! \reimp diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index 9eaf6fd..6e5f30e 100644 --- a/src/corelib/io/qfsfileengine_p.h +++ b/src/corelib/io/qfsfileengine_p.h @@ -56,7 +56,8 @@ #include "qplatformdefs.h" #include "QtCore/qfsfileengine.h" #include "private/qabstractfileengine_p.h" -#include "private/qfilesystementry_p.h" +#include +#include #include #ifndef QT_NO_FSFILEENGINE @@ -102,11 +103,17 @@ public: qint64 writeFdFh(const char *data, qint64 len); int nativeHandle() const; bool nativeIsSequential() const; +#ifndef Q_OS_WIN bool isSequentialFdFh() const; +#endif uchar *map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags); bool unmap(uchar *ptr); +#if defined(Q_OS_UNIX) + mutable QFileSystemMetaData metaData; +#endif + FILE *fh; #ifdef Q_WS_WIN HANDLE fileHandle; @@ -120,7 +127,6 @@ public: mutable DWORD fileAttrib; #else QHash > maps; - mutable QT_STATBUF st; #endif int fd; @@ -142,7 +148,11 @@ public: mutable uint is_link : 1; #endif +#if defined(Q_OS_WIN) bool doStat() const; +#else + bool doStat(QFileSystemMetaData::MetaDataFlags flags = QFileSystemMetaData::PosixStatFlags) const; +#endif bool isSymlink() const; #if defined(Q_OS_WIN32) diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 50b18fc..71a604a 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -69,7 +69,6 @@ QT_BEGIN_NAMESPACE - #if defined(Q_OS_SYMBIAN) /*! \internal @@ -124,16 +123,17 @@ void QFSFileEnginePrivate::setSymbianError(int symbianError, QFile::FileError de Returns the stdlib open string corresponding to a QIODevice::OpenMode. */ -static inline QByteArray openModeToFopenMode(QIODevice::OpenMode flags, const QByteArray &fileName) +static inline QByteArray openModeToFopenMode(QIODevice::OpenMode flags, const QFileSystemEntry &fileEntry, + QFileSystemMetaData &metaData) { QByteArray mode; if ((flags & QIODevice::ReadOnly) && !(flags & QIODevice::Truncate)) { mode = "rb"; if (flags & QIODevice::WriteOnly) { - QT_STATBUF statBuf; - if (!fileName.isEmpty() - && QT_STAT(fileName, &statBuf) == 0 - && (statBuf.st_mode & S_IFMT) == S_IFREG) { + metaData.clearFlags(QFileSystemMetaData::FileType); + if (!fileEntry.isEmpty() + && QFileSystemEngine::fillMetaData(fileEntry, metaData, QFileSystemMetaData::FileType) + && metaData.isFile()) { mode += '+'; } else { mode = "wb+"; @@ -222,13 +222,11 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) if (!(openMode & QIODevice::WriteOnly)) { // we don't need this check if we tried to open for writing because then // we had received EISDIR anyway. - QT_STATBUF statBuf; - if (QT_FSTAT(fd, &statBuf) != -1) { - if ((statBuf.st_mode & S_IFMT) == S_IFDIR) { - q->setError(QFile::OpenError, QLatin1String("file to open is a directory")); - QT_CLOSE(fd); - return false; - } + if (QFileSystemEngine::fillMetaData(fd, metaData) + && metaData.isDirectory()) { + q->setError(QFile::OpenError, QLatin1String("file to open is a directory")); + QT_CLOSE(fd); + return false; } } @@ -248,7 +246,7 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) fh = 0; } else { - QByteArray fopenMode = openModeToFopenMode(openMode, fileEntry.nativeFilePath().constData()); + QByteArray fopenMode = openModeToFopenMode(openMode, fileEntry, metaData); // Try to open the file in buffered mode. do { @@ -265,13 +263,11 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) if (!(openMode & QIODevice::WriteOnly)) { // we don't need this check if we tried to open for writing because then // we had received EISDIR anyway. - QT_STATBUF statBuf; - if (QT_FSTAT(fileno(fh), &statBuf) != -1) { - if ((statBuf.st_mode & S_IFMT) == S_IFDIR) { - q->setError(QFile::OpenError, QLatin1String("file to open is a directory")); - fclose(fh); - return false; - } + if (QFileSystemEngine::fillMetaData(QT_FILENO(fh), metaData) + && metaData.isDirectory()) { + q->setError(QFile::OpenError, QLatin1String("file to open is a directory")); + fclose(fh); + return false; } } @@ -626,123 +622,30 @@ QFileInfoList QFSFileEngine::drives() return ret; } -bool QFSFileEnginePrivate::doStat() const +bool QFSFileEnginePrivate::doStat(QFileSystemMetaData::MetaDataFlags flags) const { - if (!tried_stat) { - tried_stat = true; - could_stat = false; - - if (fh && fileEntry.isEmpty()) { - // ### actually covers two cases: d->fh and when the file is not open - could_stat = (QT_FSTAT(QT_FILENO(fh), &st) == 0); - } else if (fd == -1) { - // ### actually covers two cases: d->fh and when the file is not open -#if defined(Q_OS_SYMBIAN) - // Optimisation for Symbian where fileFlags() calls both doStat() and isSymlink(), but rarely on real links. - // When the filename is not a link, lstat will return the same info as stat, but this also removes - // any need for a further call to lstat to check if the file is a link. - need_lstat = false; - could_stat = (QT_LSTAT(fileEntry.nativeFilePath().constData(), &st) == 0); - is_link = could_stat ? S_ISLNK(st.st_mode) : false; - // if it turns out this was a link, we can call stat too. - if (is_link) -#endif - could_stat = (QT_STAT(fileEntry.nativeFilePath().constData(), &st) == 0); - } else { - could_stat = (QT_FSTAT(fd, &st) == 0); - } - } - return could_stat; -} + if (!tried_stat || !metaData.hasFlags(flags)) { + tried_stat = 1; -bool QFSFileEnginePrivate::isSymlink() const -{ - if (need_lstat) { - need_lstat = false; + int localFd = fd; + if (fh && fileEntry.isEmpty()) + localFd = QT_FILENO(fh); + if (localFd != -1) + QFileSystemEngine::fillMetaData(localFd, metaData); - QT_STATBUF st; // don't clobber our main one - is_link = (QT_LSTAT(fileEntry.nativeFilePath().constData(), &st) == 0) ? S_ISLNK(st.st_mode) : false; + if (metaData.missingFlags(flags) && !fileEntry.isEmpty()) + QFileSystemEngine::fillMetaData(fileEntry, metaData, metaData.missingFlags(flags)); } - return is_link; -} -#if defined(Q_OS_SYMBIAN) -static bool _q_isSymbianHidden(const QString &path, bool isDir) -{ - RFs rfs = qt_s60GetRFs(); - QFileInfo fi(path); - QString absPath = fi.absoluteFilePath(); - if (isDir && !absPath.endsWith(QLatin1Char('/'))) - absPath.append(QLatin1Char('/')); - QString native(QDir::toNativeSeparators(absPath)); - TPtrC ptr(qt_QString2TPtrC(native)); - TUint attributes; - TInt err = rfs.Att(ptr, attributes); - return (err == KErrNone && (attributes & KEntryAttHidden)); + return metaData.exists(); } -#endif -#if !defined(QWS) && defined(Q_OS_MAC) -static bool _q_isMacHidden(const QString &path) -{ - OSErr err = noErr; - - FSRef fsRef; - - err = FSPathMakeRefWithOptions(reinterpret_cast(QFile::encodeName(QDir::cleanPath(path)).constData()), - kFSPathMakeRefDoNotFollowLeafSymlink, &fsRef, 0); - if (err != noErr) - return false; - - FSCatalogInfo catInfo; - err = FSGetCatalogInfo(&fsRef, kFSCatInfoFinderInfo, &catInfo, NULL, NULL, NULL); - if (err != noErr) - return false; - - FileInfo * const fileInfo = reinterpret_cast(&catInfo.finderInfo); - bool result = (fileInfo->finderFlags & kIsInvisible); - return result; -} -#endif - -QAbstractFileEngine::FileFlags QFSFileEnginePrivate::getPermissions(QAbstractFileEngine::FileFlags type) const +bool QFSFileEnginePrivate::isSymlink() const { - QAbstractFileEngine::FileFlags ret = 0; + if (!metaData.hasFlags(QFileSystemMetaData::LinkType)) + QFileSystemEngine::fillMetaData(fileEntry, metaData, QFileSystemMetaData::LinkType); - if (st.st_mode & S_IRUSR) - ret |= QAbstractFileEngine::ReadOwnerPerm; - if (st.st_mode & S_IWUSR) - ret |= QAbstractFileEngine::WriteOwnerPerm; - if (st.st_mode & S_IXUSR) - ret |= QAbstractFileEngine::ExeOwnerPerm; - if (st.st_mode & S_IRGRP) - ret |= QAbstractFileEngine::ReadGroupPerm; - if (st.st_mode & S_IWGRP) - ret |= QAbstractFileEngine::WriteGroupPerm; - if (st.st_mode & S_IXGRP) - ret |= QAbstractFileEngine::ExeGroupPerm; - if (st.st_mode & S_IROTH) - ret |= QAbstractFileEngine::ReadOtherPerm; - if (st.st_mode & S_IWOTH) - ret |= QAbstractFileEngine::WriteOtherPerm; - if (st.st_mode & S_IXOTH) - ret |= QAbstractFileEngine::ExeOtherPerm; - - // calculate user permissions - if (type & QAbstractFileEngine::ReadUserPerm) { - if (QT_ACCESS(fileEntry.nativeFilePath().constData(), R_OK) == 0) - ret |= QAbstractFileEngine::ReadUserPerm; - } - if (type & QAbstractFileEngine::WriteUserPerm) { - if (QT_ACCESS(fileEntry.nativeFilePath().constData(), W_OK) == 0) - ret |= QAbstractFileEngine::WriteUserPerm; - } - if (type & QAbstractFileEngine::ExeUserPerm) { - if (QT_ACCESS(fileEntry.nativeFilePath().constData(), X_OK) == 0) - ret |= QAbstractFileEngine::ExeUserPerm; - } - - return ret; + return metaData.isLink(); } /*! @@ -751,82 +654,71 @@ QAbstractFileEngine::FileFlags QFSFileEnginePrivate::getPermissions(QAbstractFil QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(FileFlags type) const { Q_D(const QFSFileEngine); - // Force a stat, so that we're guaranteed to get up-to-date results - if (type & Refresh) { - d->tried_stat = 0; - d->need_lstat = 1; - } + + if (type & Refresh) + d->metaData.clear(); QAbstractFileEngine::FileFlags ret = 0; + if (type & FlagsMask) ret |= LocalDiskFlag; - bool exists = d->doStat(); - if (!exists && !d->isSymlink()) + + bool exists; + { + QFileSystemMetaData::MetaDataFlags queryFlags = 0; + + queryFlags |= QFileSystemMetaData::MetaDataFlags(uint(type)) + & QFileSystemMetaData::Permissions; + + if (type & TypesMask) + queryFlags |= QFileSystemMetaData::AliasType + | QFileSystemMetaData::LinkType + | QFileSystemMetaData::FileType + | QFileSystemMetaData::DirectoryType + | QFileSystemMetaData::BundleType; + + if (type & FlagsMask) + queryFlags |= QFileSystemMetaData::HiddenAttribute + | QFileSystemMetaData::ExistsAttribute; + + queryFlags |= QFileSystemMetaData::LinkType; + + exists = d->doStat(queryFlags); + } + + if (!exists && !d->metaData.isLink()) return ret; if (exists && (type & PermsMask)) - ret |= d->getPermissions(type); + ret |= FileFlags(uint(d->metaData.permissions())); + if (type & TypesMask) { -#if !defined(QWS) && defined(Q_OS_MAC) - bool foundAlias = false; - { - FSRef fref; - if (FSPathMakeRef((const UInt8 *)QFile::encodeName(QDir::cleanPath(d->fileEntry.filePath())).data(), - &fref, NULL) == noErr) { - Boolean isAlias, isFolder; - if (FSIsAliasFile(&fref, &isAlias, &isFolder) == noErr && isAlias) { - foundAlias = true; - ret |= LinkType; - } - } - } - if (!foundAlias) -#endif - { - if ((type & LinkType) && d->isSymlink()) + if (d->metaData.isAlias()) { + ret |= LinkType; + } else { + if ((type & LinkType) && d->metaData.isLink()) ret |= LinkType; - if (exists && (d->st.st_mode & S_IFMT) == S_IFREG) - ret |= FileType; - else if (exists && (d->st.st_mode & S_IFMT) == S_IFDIR) - ret |= DirectoryType; -#if !defined(QWS) && defined(Q_OS_MAC) - if ((ret & DirectoryType) && (type & BundleType)) { - QCFType url = CFURLCreateWithFileSystemPath(0, QCFString(d->fileEntry.filePath()), - kCFURLPOSIXPathStyle, true); - UInt32 type, creator; - if (CFBundleGetPackageInfoInDirectory(url, &type, &creator)) - ret |= BundleType; + if (exists) { + if (d->metaData.isFile()) { + ret |= FileType; + } else if (d->metaData.isDirectory()) { + ret |= DirectoryType; + if ((type & BundleType) && d->metaData.isBundle()) + ret |= BundleType; + } } -#endif } } + if (type & FlagsMask) { if (exists) ret |= ExistsFlag; - if (d->fileEntry.isRoot()) { + if (d->fileEntry.isRoot()) ret |= RootFlag; - } else { -#if defined(Q_OS_SYMBIAN) - // In Symbian, all symlinks have hidden attribute for some reason; - // lets make them visible for better compatibility with other platforms. - // If somebody actually wants a hidden link, then they are out of luck. - if (!d->isSymlink() && _q_isSymbianHidden(d->fileEntry.filePath(), ret & DirectoryType)) - ret |= HiddenFlag; -#else - QString baseName = fileName(BaseName); - if ((baseName.size() > 0 && baseName.at(0) == QLatin1Char('.')) -# if !defined(QWS) && defined(Q_OS_MAC) - || _q_isMacHidden(d->fileEntry.filePath()) -# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - || d->st.st_flags & UF_HIDDEN -# endif // MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 -# endif - ) { - ret |= HiddenFlag; - } -#endif - } + else if (d->metaData.isHidden()) + ret |= HiddenFlag; } + return ret; } @@ -994,7 +886,8 @@ QString QFSFileEngine::fileName(FileName file) const #endif if (len > 0) { QString ret; - if (d->doStat() && S_ISDIR(d->st.st_mode) && s[0] != '/') { + if (d->doStat(QFileSystemMetaData::DirectoryType) + && d->metaData.isDirectory() && s[0] != '/') { QDir parent(d->fileEntry.filePath()); parent.cdUp(); ret = parent.path(); @@ -1057,12 +950,10 @@ uint QFSFileEngine::ownerId(FileOwner own) const { Q_D(const QFSFileEngine); static const uint nobodyID = (uint) -2; - if (d->doStat()) { - if (own == OwnerUser) - return d->st.st_uid; - else - return d->st.st_gid; - } + + if (d->doStat(QFileSystemMetaData::OwnerIds)) + return d->metaData.ownerId(own); + return nobodyID; } @@ -1170,16 +1061,11 @@ bool QFSFileEngine::setSize(qint64 size) QDateTime QFSFileEngine::fileTime(FileTime time) const { Q_D(const QFSFileEngine); - QDateTime ret; - if (d->doStat()) { - if (time == CreationTime) - ret.setTime_t(d->st.st_ctime ? d->st.st_ctime : d->st.st_mtime); - else if (time == ModificationTime) - ret.setTime_t(d->st.st_mtime); - else if (time == AccessTime) - ret.setTime_t(d->st.st_atime); - } - return ret; + + if (d->doStat(QFileSystemMetaData::Times)) + return d->metaData.fileTime(time); + + return QDateTime(); } uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags) @@ -1199,8 +1085,8 @@ uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, QFile::MemoryMapFla // If we know the mapping will extend beyond EOF, fail early to avoid // undefined behavior. Otherwise, let mmap have its say. - if (doStat() - && (QT_OFF_T(size) > st.st_size - QT_OFF_T(offset))) + if (doStat(QFileSystemMetaData::SizeAttribute) + && (QT_OFF_T(size) > metaData.size() - QT_OFF_T(offset))) qWarning("QFSFileEngine::map: Mapping a file beyond its size is not portable"); int access = 0; -- cgit v0.12 From a59924437dadf4ea3b972a528f449ebb2b760d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 3 Sep 2010 10:32:20 +0200 Subject: QAbstractFileEngine: Exposing custom file engine handlers So we can invoke custom handlers from QFileSystemEngine. --- src/corelib/io/qabstractfileengine.cpp | 35 ++++++++++++++++++++++++---------- src/corelib/io/qabstractfileengine_p.h | 2 ++ 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/corelib/io/qabstractfileengine.cpp b/src/corelib/io/qabstractfileengine.cpp index 37a093c..e055e7b 100644 --- a/src/corelib/io/qabstractfileengine.cpp +++ b/src/corelib/io/qabstractfileengine.cpp @@ -149,6 +149,29 @@ QAbstractFileEngineHandler::~QAbstractFileEngineHandler() } } +/* + \ìnternal + + Handles calls to custom file engine handlers. +*/ +QAbstractFileEngine *qt_custom_file_engine_handler_create(const QString &path) +{ + QAbstractFileEngine *engine = 0; + + if (qt_file_engine_handlers_in_use) { + QReadLocker locker(fileEngineHandlerMutex()); + + // check for registered handlers that can load the file + QAbstractFileEngineHandlerList *handlers = fileEngineHandlers(); + for (int i = 0; i < handlers->size(); i++) { + if ((engine = handlers->at(i)->create(path))) + break; + } + } + + return engine; +} + /*! \fn QAbstractFileEngine *QAbstractFileEngineHandler::create(const QString &fileName) const @@ -177,16 +200,8 @@ QAbstractFileEngineHandler::~QAbstractFileEngineHandler() */ QAbstractFileEngine *QAbstractFileEngine::create(const QString &fileName) { - if (qt_file_engine_handlers_in_use) { - QReadLocker locker(fileEngineHandlerMutex()); - - // check for registered handlers that can load the file - QAbstractFileEngineHandlerList *handlers = fileEngineHandlers(); - for (int i = 0; i < handlers->size(); i++) { - if (QAbstractFileEngine *ret = handlers->at(i)->create(fileName)) - return ret; - } - } + if (QAbstractFileEngine *engine = qt_custom_file_engine_handler_create(filePath)) + return engine; #ifdef QT_BUILD_CORE_LIB for (int prefixSeparator = 0; prefixSeparator < fileName.size(); ++prefixSeparator) { diff --git a/src/corelib/io/qabstractfileengine_p.h b/src/corelib/io/qabstractfileengine_p.h index e1eba30..075ec81 100644 --- a/src/corelib/io/qabstractfileengine_p.h +++ b/src/corelib/io/qabstractfileengine_p.h @@ -74,6 +74,8 @@ public: Q_DECLARE_PUBLIC(QAbstractFileEngine) }; +QAbstractFileEngine *qt_custom_file_engine_handler_create(const QString &path); + QT_END_NAMESPACE #endif // QABSTRACTFILEENGINE_P_H -- cgit v0.12 From 367514db5f041de7cd5d36fa0a260dcadcc54a50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 3 Sep 2010 19:33:52 +0200 Subject: Split QAbstractFileEngine::create The new, ugly-named resolveEntryAndCreateLegacyEngine will never instantiate QFSFileEngine and uses the QFileSystemEngine API to check if files exist, when necessary. This way, we reduce allocations of QFSFileEngine when resolving paths. Clients of the QAbstractFileEngine API will be able to opt-out of using QFSFileEngine altogether. Reviewed-by: Thomas Zander --- src/corelib/io/qabstractfileengine.cpp | 54 +++++---------------- src/corelib/io/qfilesystemengine.cpp | 87 ++++++++++++++++++++++++++++++++++ src/corelib/io/qfilesystemengine_p.h | 2 + 3 files changed, 102 insertions(+), 41 deletions(-) diff --git a/src/corelib/io/qabstractfileengine.cpp b/src/corelib/io/qabstractfileengine.cpp index e055e7b..67109aa 100644 --- a/src/corelib/io/qabstractfileengine.cpp +++ b/src/corelib/io/qabstractfileengine.cpp @@ -52,6 +52,10 @@ #include "qdiriterator.h" #include "qstringbuilder.h" +#include +#include +#include + QT_BEGIN_NAMESPACE /*! @@ -200,49 +204,17 @@ QAbstractFileEngine *qt_custom_file_engine_handler_create(const QString &path) */ QAbstractFileEngine *QAbstractFileEngine::create(const QString &fileName) { - if (QAbstractFileEngine *engine = qt_custom_file_engine_handler_create(filePath)) - return engine; - -#ifdef QT_BUILD_CORE_LIB - for (int prefixSeparator = 0; prefixSeparator < fileName.size(); ++prefixSeparator) { - QChar const ch = fileName[prefixSeparator]; - if (ch == QLatin1Char('/')) - break; - - if (ch == QLatin1Char(':')) { - if (prefixSeparator == 0) - return new QResourceFileEngine(fileName); - - if (prefixSeparator == 1) - break; - - const QStringList &paths = QDir::searchPaths(fileName.left(prefixSeparator)); - for (int i = 0; i < paths.count(); i++) { - QAbstractFileEngine *engine = create(paths.at(i) % QLatin1Char('/') % fileName.mid(prefixSeparator + 1)); - if (engine && (engine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::ExistsFlag)) { - return engine; - } - delete engine; - } - - break; - } - - // There's no need to fully validate the prefix here. Consulting the - // unicode tables could be expensive and validation is already - // performed in QDir::setSearchPaths. - // - // if (!ch.isLetterOrNumber()) - // break; - } + QFileSystemEntry entry(fileName); + QFileSystemMetaData metaData; + QAbstractFileEngine *engine = QFileSystemEngine::resolveEntryAndCreateLegacyEngine(entry, metaData); + +#ifndef QT_NO_FSFILEENGINE + if (!engine) + // fall back to regular file engine + return new QFSFileEngine(entry.filePath()); #endif -#ifdef QT_NO_FSFILEENGINE - return 0; -#else - // fall back to regular file engine - return new QFSFileEngine(fileName); -#endif + return engine; } /*! diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index 04e53ce..a6c226e 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -42,6 +42,12 @@ #include "qfilesystemengine_p.h" #include #include +#include +#ifdef QT_BUILD_CORE_LIB +#include +#endif + +QT_BEGIN_NAMESPACE /*! \internal @@ -111,3 +117,84 @@ QString QFileSystemEngine::slowCanonicalized(const QString &path) return QDir::cleanPath(tmpPath); } +static bool _q_resolveEntryAndCreateLegacyEngine_recursive(QFileSystemEntry &entry, QFileSystemMetaData &data, + QAbstractFileEngine *&engine) +{ + QString const &filePath = entry.filePath(); + if ((engine = qt_custom_file_engine_handler_create(filePath))) + return true; + +#if defined(QT_BUILD_CORE_LIB) + for (int prefixSeparator = 0; prefixSeparator < filePath.size(); ++prefixSeparator) { + QChar const ch = filePath[prefixSeparator]; + if (ch == QLatin1Char('/')) + break; + + if (ch == QLatin1Char(':')) { + if (prefixSeparator == 0) { + engine = new QResourceFileEngine(filePath); + return true; + } + + if (prefixSeparator == 1) + break; + + const QStringList &paths = QDir::searchPaths(filePath.left(prefixSeparator)); + for (int i = 0; i < paths.count(); i++) { + entry = QFileSystemEntry(paths.at(i) % QLatin1Char('/') % filePath.mid(prefixSeparator + 1)); + // Recurse! + if (_q_resolveEntryAndCreateLegacyEngine_recursive(entry, data, engine)) { + // FIXME: This will over-stat if we recurse + if (engine) { + if (engine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::ExistsFlag) + return true; + delete engine; + engine = 0; + } else if (QFileSystemEngine::fillMetaData(entry, data, QFileSystemMetaData::ExistsAttribute) + && data.exists()) { + return true; + } + } + } + + // entry may have been clobbered at this point. + return false; + } + + // There's no need to fully validate the prefix here. Consulting the + // unicode tables could be expensive and validation is already + // performed in QDir::setSearchPaths. + // + // if (!ch.isLetterOrNumber()) + // break; + } +#endif // defined(QT_BUILD_CORE_LIB) + + return true; +} + +/*! + \internal + + Resolves the \a entry (see QDir::searchPaths) and returns an engine for + it, but never a QFSFileEngine. + + \returns a file engine that can be used to access the entry. Returns 0 if + QFileSystemEngine API should be used to query and interact with the file + system object. +*/ +QAbstractFileEngine *QFileSystemEngine::resolveEntryAndCreateLegacyEngine( + QFileSystemEntry &entry, QFileSystemMetaData &data) { + QFileSystemEntry copy = entry; + QAbstractFileEngine *engine = 0; + + if (_q_resolveEntryAndCreateLegacyEngine_recursive(copy, data, engine)) + // Reset entry to resolved copy. + entry = copy; + else + data.clear(); + + return engine; +} + +QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 182ccd6..990a5ff 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -88,6 +88,8 @@ public: static bool setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data = 0); + static QAbstractFileEngine *resolveEntryAndCreateLegacyEngine(QFileSystemEntry &entry, + QFileSystemMetaData &data); private: static QString slowCanonicalized(const QString &path); }; -- cgit v0.12 From d1e1f1e83142f18d75c323b44a094d4df6762a3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 6 Sep 2010 10:42:02 +0200 Subject: Fix over-stating in QAbstractFileEngine::create With recursive entry resolution, we might end up querying the engine for an entry once per recursion level. There was also the possibility that stale data would remain in the meta data instance. When resolving an entry, we now check for its existence at the leaf level and handle clean-up right away. Reviewed-by: Thomas Zander --- src/corelib/io/qfilesystemengine.cpp | 48 ++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index a6c226e..8f5b98a 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -117,12 +117,38 @@ QString QFileSystemEngine::slowCanonicalized(const QString &path) return QDir::cleanPath(tmpPath); } +static inline bool _q_checkEntry(QFileSystemEntry &entry, QFileSystemMetaData &data, bool resolvingEntry) +{ + if (resolvingEntry) { + if (!QFileSystemEngine::fillMetaData(entry, data, QFileSystemMetaData::ExistsAttribute) + || !data.exists()) { + data.clear(); + return false; + } + } + + return true; +} + +static inline bool _q_checkEntry(QAbstractFileEngine *&engine, bool resolvingEntry) +{ + if (resolvingEntry) { + if (!engine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::ExistsFlag) { + delete engine; + engine = 0; + return false; + } + } + + return true; +} + static bool _q_resolveEntryAndCreateLegacyEngine_recursive(QFileSystemEntry &entry, QFileSystemMetaData &data, - QAbstractFileEngine *&engine) + QAbstractFileEngine *&engine, bool resolvingEntry = false) { QString const &filePath = entry.filePath(); if ((engine = qt_custom_file_engine_handler_create(filePath))) - return true; + return _q_checkEntry(engine, resolvingEntry); #if defined(QT_BUILD_CORE_LIB) for (int prefixSeparator = 0; prefixSeparator < filePath.size(); ++prefixSeparator) { @@ -133,7 +159,7 @@ static bool _q_resolveEntryAndCreateLegacyEngine_recursive(QFileSystemEntry &ent if (ch == QLatin1Char(':')) { if (prefixSeparator == 0) { engine = new QResourceFileEngine(filePath); - return true; + return _q_checkEntry(engine, resolvingEntry); } if (prefixSeparator == 1) @@ -143,18 +169,8 @@ static bool _q_resolveEntryAndCreateLegacyEngine_recursive(QFileSystemEntry &ent for (int i = 0; i < paths.count(); i++) { entry = QFileSystemEntry(paths.at(i) % QLatin1Char('/') % filePath.mid(prefixSeparator + 1)); // Recurse! - if (_q_resolveEntryAndCreateLegacyEngine_recursive(entry, data, engine)) { - // FIXME: This will over-stat if we recurse - if (engine) { - if (engine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::ExistsFlag) - return true; - delete engine; - engine = 0; - } else if (QFileSystemEngine::fillMetaData(entry, data, QFileSystemMetaData::ExistsAttribute) - && data.exists()) { - return true; - } - } + if (_q_resolveEntryAndCreateLegacyEngine_recursive(entry, data, engine, true)) + return true; } // entry may have been clobbered at this point. @@ -170,7 +186,7 @@ static bool _q_resolveEntryAndCreateLegacyEngine_recursive(QFileSystemEntry &ent } #endif // defined(QT_BUILD_CORE_LIB) - return true; + return _q_checkEntry(entry, data, resolvingEntry); } /*! -- cgit v0.12 From 8f6f2adc2a8eee620bfe342f211035948a3fedc8 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Fri, 3 Sep 2010 15:27:58 +0200 Subject: Move resolving a symlink to the qfilesystemengine_unix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemengine_p.h | 2 +- src/corelib/io/qfilesystemengine_unix.cpp | 74 ++++++++++++++++++++++++++++++- src/corelib/io/qfilesystemengine_win.cpp | 2 +- src/corelib/io/qfsfileengine_unix.cpp | 70 +---------------------------- 4 files changed, 76 insertions(+), 72 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 990a5ff..94fb4e5 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -64,7 +64,7 @@ class QFileSystemEngine public: static bool isCaseSensitive(); - static QFileSystemEntry getLinkTarget(const QFileSystemEntry &link); + static QFileSystemEntry getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data); static QFileSystemEntry canonicalName(const QFileSystemEntry &entry); static QFileSystemEntry absoluteName(const QFileSystemEntry &entry); diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 6b3c157..755298d 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -163,9 +163,79 @@ bool QFileSystemEngine::isCaseSensitive() } //static -QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link) +QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data) { - return link; // TODO implement +#if defined(__GLIBC__) && !defined(PATH_MAX) +#define PATH_CHUNK_SIZE 256 + char *s = 0; + int len = -1; + int size = PATH_CHUNK_SIZE; + + while (1) { + s = (char *) ::realloc(s, size); + Q_CHECK_PTR(s); + len = ::readlink(link.nativeFilePath().constData(), s, size); + if (len < 0) { + ::free(s); + break; + } + if (len < size) { + break; + } + size *= 2; + } +#else + char s[PATH_MAX+1]; + int len = readlink(link.nativeFilePath().constData(), s, PATH_MAX); +#endif + if (len > 0) { + QString ret; + if (!data.hasFlags(QFileSystemMetaData::DirectoryType)) + fillMetaData(link, data, QFileSystemMetaData::DirectoryType); + if (data.isDirectory() && s[0] != '/') { + QDir parent(link.filePath()); + parent.cdUp(); + ret = parent.path(); + if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/'))) + ret += QLatin1Char('/'); + } + s[len] = '\0'; + ret += QFile::decodeName(QByteArray(s)); +#if defined(__GLIBC__) && !defined(PATH_MAX) + ::free(s); +#endif + + if (!ret.startsWith(QLatin1Char('/'))) { + if (link.filePath().startsWith(QLatin1Char('/'))) { + ret.prepend(link.filePath().left(link.filePath().lastIndexOf(QLatin1Char('/'))) + + QLatin1Char('/')); + } else { + ret.prepend(QDir::currentPath() + QLatin1Char('/')); + } + } + ret = QDir::cleanPath(ret); + if (ret.size() > 1 && ret.endsWith(QLatin1Char('/'))) + ret.chop(1); + return QFileSystemEntry(ret); + } +#if !defined(QWS) && defined(Q_OS_MAC) + { + FSRef fref; + if (FSPathMakeRef((const UInt8 *)QFile::encodeName(QDir::cleanPath(link.filePath())).data(), &fref, 0) == noErr) { + // TODO get the meta data info from the QFileSystemMetaData object + Boolean isAlias, isFolder; + if (FSResolveAliasFile(&fref, true, &isFolder, &isAlias) == noErr && isAlias) { + AliasHandle alias; + if (FSNewAlias(0, &fref, &alias) == noErr && alias) { + QCFString cfstr; + if (FSCopyAliasInfo(alias, 0, 0, &cfstr, 0, 0) == noErr) + return QFileSystemEntry(QCFString::toQString(cfstr)); + } + } + } + } +#endif + return QFileSystemEntry(); } //static diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index ef47fe5..8572506 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -49,7 +49,7 @@ bool QFileSystemEngine::isCaseSensitive() } //static -QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link) +QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data) { return link; // TODO implement } diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 71a604a..c7df5ed 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -861,75 +861,9 @@ QString QFSFileEngine::fileName(FileName file) const return entry.filePath(); } else if (file == LinkName) { if (d->isSymlink()) { -#if defined(__GLIBC__) && !defined(PATH_MAX) -#define PATH_CHUNK_SIZE 256 - char *s = 0; - int len = -1; - int size = PATH_CHUNK_SIZE; - - while (1) { - s = (char *) ::realloc(s, size); - Q_CHECK_PTR(s); - len = ::readlink(d->fileEntry.nativeFilePath().constData(), s, size); - if (len < 0) { - ::free(s); - break; - } - if (len < size) { - break; - } - size *= 2; - } -#else - char s[PATH_MAX+1]; - int len = readlink(d->fileEntry.nativeFilePath().constData(), s, PATH_MAX); -#endif - if (len > 0) { - QString ret; - if (d->doStat(QFileSystemMetaData::DirectoryType) - && d->metaData.isDirectory() && s[0] != '/') { - QDir parent(d->fileEntry.filePath()); - parent.cdUp(); - ret = parent.path(); - if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/'))) - ret += QLatin1Char('/'); - } - s[len] = '\0'; - ret += QFile::decodeName(QByteArray(s)); -#if defined(__GLIBC__) && !defined(PATH_MAX) - ::free(s); -#endif - - if (!ret.startsWith(QLatin1Char('/'))) { - if (d->fileEntry.filePath().startsWith(QLatin1Char('/'))) { - ret.prepend(d->fileEntry.filePath().left(d->fileEntry.filePath().lastIndexOf(QLatin1Char('/'))) - + QLatin1Char('/')); - } else { - ret.prepend(QDir::currentPath() + QLatin1Char('/')); - } - } - ret = QDir::cleanPath(ret); - if (ret.size() > 1 && ret.endsWith(QLatin1Char('/'))) - ret.chop(1); - return ret; - } + QFileSystemEntry entry = QFileSystemEngine::getLinkTarget(d->fileEntry, d->metaData); + return entry.filePath(); } -#if !defined(QWS) && defined(Q_OS_MAC) - { - FSRef fref; - if (FSPathMakeRef((const UInt8 *)QFile::encodeName(QDir::cleanPath(d->fileEntry.filePath())).data(), &fref, 0) == noErr) { - Boolean isAlias, isFolder; - if (FSResolveAliasFile(&fref, true, &isFolder, &isAlias) == noErr && isAlias) { - AliasHandle alias; - if (FSNewAlias(0, &fref, &alias) == noErr && alias) { - QCFString cfstr; - if (FSCopyAliasInfo(alias, 0, 0, &cfstr, 0, 0) == noErr) - return QCFString::toQString(cfstr); - } - } - } - } -#endif return QString(); } return d->fileEntry.filePath(); -- cgit v0.12 From 309f0d3d1f4bcc42249e738bae544750fe8cdb6a Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 7 Sep 2010 11:11:29 +0100 Subject: Helper functions for converting Symbian OS TTime convert to/from QDateTime convert to/from time_t These functions are required for dealing with timestamps in native files, however they are generally useful for Qt/Symbian port as well. Reviewed-By: joao --- src/corelib/tools/qdatetime.cpp | 35 +++++++++++++++++++++++++++++++++++ src/corelib/tools/qdatetime_p.h | 6 ++++++ 2 files changed, 41 insertions(+) diff --git a/src/corelib/tools/qdatetime.cpp b/src/corelib/tools/qdatetime.cpp index ab7530d..f21aa2e 100644 --- a/src/corelib/tools/qdatetime.cpp +++ b/src/corelib/tools/qdatetime.cpp @@ -5837,6 +5837,41 @@ bool operator==(const QDateTimeParser::SectionNode &s1, const QDateTimeParser::S return (s1.type == s2.type) && (s1.pos == s2.pos) && (s1.count == s2.count); } +#ifdef Q_OS_SYMBIAN +const static TTime UnixEpochOffset(I64LIT(0xdcddb30f2f8000)); +const static TInt64 MinimumMillisecondTime(KMinTInt64 / 1000); +const static TInt64 MaximumMillisecondTime(KMaxTInt64 / 1000); +QDateTime qt_symbian_TTime_To_QDateTime(const TTime& time) +{ + TTimeIntervalMicroSeconds absolute = time.MicroSecondsFrom(UnixEpochOffset); + + return QDateTime::fromMSecsSinceEpoch(absolute.Int64() / 1000); +} + +TTime qt_symbian_QDateTime_To_TTime(const QDateTime& datetime) +{ + qint64 absolute = datetime.toMSecsSinceEpoch(); + if(absolute > MaximumMillisecondTime) + return TTime(KMaxTInt64); + if(absolute < MinimumMillisecondTime) + return TTime(KMinTInt64); + return TTime(absolute * 1000); +} + +time_t qt_symbian_TTime_To_time_t(const TTime& time) +{ + TTimeIntervalSeconds interval; + TInt err = time.SecondsFrom(UnixEpochOffset, interval); + if (err || interval.Int() < 0) + return (time_t) 0; + return (time_t) interval.Int(); +} + +TTime qt_symbian_time_t_To_TTime(time_t time) +{ + return UnixEpochOffset + TTimeIntervalSeconds(time); +} +#endif //Q_OS_SYMBIAN #endif // QT_BOOTSTRAPPED diff --git a/src/corelib/tools/qdatetime_p.h b/src/corelib/tools/qdatetime_p.h index f10785e..8355ef7 100644 --- a/src/corelib/tools/qdatetime_p.h +++ b/src/corelib/tools/qdatetime_p.h @@ -275,6 +275,12 @@ Q_CORE_EXPORT bool operator==(const QDateTimeParser::SectionNode &s1, const QDat Q_DECLARE_OPERATORS_FOR_FLAGS(QDateTimeParser::Sections) Q_DECLARE_OPERATORS_FOR_FLAGS(QDateTimeParser::FieldInfo) +#ifdef Q_OS_SYMBIAN +QDateTime qt_symbian_TTime_To_QDateTime(const TTime& time); +TTime qt_symbian_QDateTime_To_TTime(const QDateTime& datetime); +time_t qt_symbian_TTime_To_time_t(const TTime& time); +TTime qt_symbian_time_t_To_TTime(time_t time); +#endif //Q_OS_SYMBIAN #endif // QT_BOOTSTRAPPED -- cgit v0.12 From a6611da5a67f2689586fd9367405dec2429f9cde Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 7 Sep 2010 11:50:51 +0100 Subject: Symbian OS implementation for QFileSystemMetaData There are three possible sources for metadata: RFs::Entry() - for files or directories in the filesystem (except roots) RFs::Volume() - for mounted drives (used for root directory) ::fstat() - for Open C file handles adopted via QFile::open(int, OpenMode) As a result of the ::fstat requirement, the code dealing with stat buffers is moved from qfilesystemengine_unix.cpp to the common qfilesystemengine.cpp Reviewed-By: joao --- src/corelib/io/qfilesystemengine.cpp | 72 +++++++++++++++++++++++++++ src/corelib/io/qfilesystemengine_symbian.cpp | 74 ++++++++++++++++++++++++++-- src/corelib/io/qfilesystemengine_unix.cpp | 63 ----------------------- src/corelib/io/qfilesystemmetadata_p.h | 46 ++++++++++++++++- 4 files changed, 187 insertions(+), 68 deletions(-) diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index 8f5b98a..0563a15 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -213,4 +213,76 @@ QAbstractFileEngine *QFileSystemEngine::resolveEntryAndCreateLegacyEngine( return engine; } +//these unix functions are in this file, because they are shared by symbian port +//for open C file handles. +#ifdef Q_OS_UNIX +//static +bool QFileSystemEngine::fillMetaData(int fd, QFileSystemMetaData &data) +{ + data.entryFlags &= ~QFileSystemMetaData::PosixStatFlags; + data.knownFlagsMask |= QFileSystemMetaData::PosixStatFlags; + + QT_STATBUF statBuffer; + if (QT_FSTAT(fd, &statBuffer) == 0) { + data.fillFromStatBuf(statBuffer); + return true; + } + + return false; +} + +void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer) +{ + // Permissions + if (statBuffer.st_mode & S_IRUSR) + entryFlags |= QFileSystemMetaData::OwnerReadPermission; + if (statBuffer.st_mode & S_IWUSR) + entryFlags |= QFileSystemMetaData::OwnerWritePermission; + if (statBuffer.st_mode & S_IXUSR) + entryFlags |= QFileSystemMetaData::OwnerExecutePermission; + + if (statBuffer.st_mode & S_IRGRP) + entryFlags |= QFileSystemMetaData::GroupReadPermission; + if (statBuffer.st_mode & S_IWGRP) + entryFlags |= QFileSystemMetaData::GroupWritePermission; + if (statBuffer.st_mode & S_IXGRP) + entryFlags |= QFileSystemMetaData::GroupExecutePermission; + + if (statBuffer.st_mode & S_IROTH) + entryFlags |= QFileSystemMetaData::OtherReadPermission; + if (statBuffer.st_mode & S_IWOTH) + entryFlags |= QFileSystemMetaData::OtherWritePermission; + if (statBuffer.st_mode & S_IXOTH) + entryFlags |= QFileSystemMetaData::OtherExecutePermission; + + // Type + if ((statBuffer.st_mode & S_IFMT) == S_IFREG) + entryFlags |= QFileSystemMetaData::FileType; + else if ((statBuffer.st_mode & S_IFMT) == S_IFDIR) + entryFlags |= QFileSystemMetaData::DirectoryType; + else + entryFlags |= QFileSystemMetaData::SequentialType; + + // Attributes + entryFlags |= QFileSystemMetaData::ExistsAttribute; + size_ = statBuffer.st_size; +#if !defined(QWS) && defined(Q_OS_MAC) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 + if (statBuffer.st_flags & UF_HIDDEN) { + entryFlags |= QFileSystemMetaData::HiddenAttribute; + knownFlagsMask |= QFileSystemMetaData::HiddenAttribute; + } +#endif + + // Times +#ifdef Q_OS_SYMBIAN + modificationTime_ = qt_symbian_time_t_To_TTime(statBuffer.st_mtime); +#else + creationTime_ = statBuffer.st_ctime ? statBuffer.st_ctime : statBuffer.st_mtime; + modificationTime_ = statBuffer.st_mtime; + accessTime_ = statBuffer.st_atime; +#endif +} + +#endif + QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 2798bdf..19f149a 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -108,13 +108,76 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) //static QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) { - return QString(); // TODO implement; + Q_UNUSED(entry); + return QString(); +} + +void QFileSystemMetaData::fillFromTEntry(const TEntry& entry) +{ + //Symbian doesn't have unix type file permissions + entryFlags |= QFileSystemMetaData::Permissions; + if(entry.IsReadOnly()) { + entryFlags &= ~(QFileSystemMetaData::WritePermissions); + } + //set the type + if(entry.IsDir()) + entryFlags |= QFileSystemMetaData::DirectoryType; + else + entryFlags |= QFileSystemMetaData::FileType; + + //set the attributes + entryFlags |= QFileSystemMetaData::ExistsAttribute; + if(entry.IsHidden()) + entryFlags |= QFileSystemMetaData::HiddenAttribute; + +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + size_ = entry.FileSize(); +#else + size_ = (TUint)(entry.iSize); +#endif + + modificationTime_ = entry.iModified; +} + +void QFileSystemMetaData::fillFromVolumeInfo(const TVolumeInfo& info) +{ + entryFlags |= QFileSystemMetaData::ExistsAttribute; + entryFlags |= QFileSystemMetaData::Permissions; + if(info.iDrive.iDriveAtt & KDriveAttRom) { + entryFlags &= ~(QFileSystemMetaData::WritePermissions); + } + entryFlags |= QFileSystemMetaData::DirectoryType; + size_ = info.iSize; + modificationTime_ = qt_symbian_time_t_To_TTime(0); } //static bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) { - return false; // TODO implement; + if (what & QFileSystemMetaData::SymbianTEntryFlags) { + RFs& fs(qt_s60GetRFs()); + TInt err; + data.entryFlags &= ~(QFileSystemMetaData::SymbianTEntryFlags); + if (entry.isRoot()) { + //Root directories don't have an entry, and Entry() returns KErrBadName. + //Therefore get information about the volume instead. + TInt drive; + err = RFs::CharToDrive(TChar(entry.nativeFilePath().at(0).unicode()), drive); + if (!err) { + TVolumeInfo info; + err = fs.Volume(info, drive); + if (!err) + data.fillFromVolumeInfo(info); + } + } else { + TEntry ent; + err = fs.Entry(qt_QString2TPtrC(absoluteName(entry).nativeFilePath()), ent); + if (!err) + data.fillFromTEntry(ent); + } + data.knownFlagsMask |= QFileSystemMetaData::SymbianTEntryFlags; + } + return data.hasFlags(what); } //static @@ -207,7 +270,12 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per else setmask = KEntryAttReadOnly; TInt err = fs.SetAtt(qt_QString2TPtrC(targetpath), setmask, clearmask); - return err != KErrNone; // TODO error reporting, metadata update; + if (data && !err) { + data->entryFlags &= ~QFileSystemMetaData::Permissions; + data->entryFlags |= QFileSystemMetaData::MetaDataFlag(uint(permissions)); + data->knownFlagsMask |= QFileSystemMetaData::Permissions; + } + return err != KErrNone; // TODO error reporting } QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 755298d..f26a8c0 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -105,54 +105,6 @@ static inline bool _q_isMacHidden(const char *nativePath) } #endif -void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer) -{ - // Permissions - if (statBuffer.st_mode & S_IRUSR) - entryFlags |= QFileSystemMetaData::OwnerReadPermission; - if (statBuffer.st_mode & S_IWUSR) - entryFlags |= QFileSystemMetaData::OwnerWritePermission; - if (statBuffer.st_mode & S_IXUSR) - entryFlags |= QFileSystemMetaData::OwnerExecutePermission; - - if (statBuffer.st_mode & S_IRGRP) - entryFlags |= QFileSystemMetaData::GroupReadPermission; - if (statBuffer.st_mode & S_IWGRP) - entryFlags |= QFileSystemMetaData::GroupWritePermission; - if (statBuffer.st_mode & S_IXGRP) - entryFlags |= QFileSystemMetaData::GroupExecutePermission; - - if (statBuffer.st_mode & S_IROTH) - entryFlags |= QFileSystemMetaData::OtherReadPermission; - if (statBuffer.st_mode & S_IWOTH) - entryFlags |= QFileSystemMetaData::OtherWritePermission; - if (statBuffer.st_mode & S_IXOTH) - entryFlags |= QFileSystemMetaData::OtherExecutePermission; - - // Type - if ((statBuffer.st_mode & S_IFMT) == S_IFREG) - entryFlags |= QFileSystemMetaData::FileType; - else if ((statBuffer.st_mode & S_IFMT) == S_IFDIR) - entryFlags |= QFileSystemMetaData::DirectoryType; - else - entryFlags |= QFileSystemMetaData::SequentialType; - - // Attributes - entryFlags |= QFileSystemMetaData::ExistsAttribute; - size_ = statBuffer.st_size; -#if !defined(QWS) && defined(Q_OS_MAC) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - if (statBuffer.st_flags & UF_HIDDEN) { - entryFlags |= QFileSystemMetaData::HiddenAttribute; - knownFlagsMask |= QFileSystemMetaData::HiddenAttribute; - } -#endif - - // Times - creationTime_ = statBuffer.st_ctime ? statBuffer.st_ctime : statBuffer.st_mtime; - modificationTime_ = statBuffer.st_mtime; - accessTime_ = statBuffer.st_atime; -} - bool QFileSystemEngine::isCaseSensitive() { #if defined(Q_OS_SYMBIAN) @@ -329,21 +281,6 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) } //static -bool QFileSystemEngine::fillMetaData(int fd, QFileSystemMetaData &data) -{ - data.entryFlags &= ~QFileSystemMetaData::PosixStatFlags; - data.knownFlagsMask |= QFileSystemMetaData::PosixStatFlags; - - QT_STATBUF statBuffer; - if (QT_FSTAT(fd, &statBuffer) == 0) { - data.fillFromStatBuf(statBuffer); - return true; - } - - return false; -} - -//static bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) { diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 5914eb3..f140319 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -60,6 +60,9 @@ // Platform-specific includes #if defined(Q_OS_WIN) +#elif defined(Q_OS_SYMBIAN) +#include +#include "qdatetime_p.h" #else #endif @@ -86,10 +89,18 @@ struct QFileSystemMetaData UserPermissions = UserReadPermission | UserWritePermission | UserExecutePermission, OwnerPermissions = OwnerReadPermission | OwnerWritePermission | OwnerExecutePermission, + ReadPermissions = OtherReadPermission | GroupReadPermission | UserReadPermission | OwnerReadPermission, + WritePermissions = OtherWritePermission | GroupWritePermission | UserWritePermission | OwnerWritePermission, + ExecutePermissions = OtherExecutePermission | GroupExecutePermission | UserExecutePermission | OwnerExecutePermission, + Permissions = OtherPermissions | GroupPermissions | UserPermissions | OwnerPermissions, // Type +#ifdef Q_OS_SYMBIAN + LinkType = 0, +#else LinkType = 0x00010000, +#endif FileType = 0x00020000, DirectoryType = 0x00040000, #if !defined(QWS) && defined(Q_OS_MAC) @@ -137,6 +148,13 @@ struct QFileSystemMetaData | QFileSystemMetaData::Times | QFileSystemMetaData::OwnerIds, + SymbianTEntryFlags = QFileSystemMetaData::Permissions + | QFileSystemMetaData::FileType + | QFileSystemMetaData::DirectoryType + | QFileSystemMetaData::SequentialType + | QFileSystemMetaData::Attributes + | QFileSystemMetaData::Times, + AllMetaDataFlags = 0xFFFFFFFF }; @@ -181,7 +199,7 @@ struct QFileSystemMetaData QFile::Permissions permissions() const { return QFile::Permissions(Permissions & entryFlags); } -#if defined(Q_OS_UNIX) +#if defined(Q_OS_UNIX) && !defined (Q_OS_SYMBIAN) QDateTime creationTime() const { return QDateTime::fromTime_t(creationTime_); } QDateTime modificationTime() const { return QDateTime::fromTime_t(modificationTime_); } QDateTime accessTime() const { return QDateTime::fromTime_t(accessTime_); } @@ -213,9 +231,31 @@ struct QFileSystemMetaData else return groupId(); } - +#endif +#ifdef Q_OS_UNIX void fillFromStatBuf(const QT_STATBUF &statBuffer); #endif +#ifdef Q_OS_SYMBIAN + QDateTime creationTime() const { return modificationTime(); } + QDateTime modificationTime() const { return qt_symbian_TTime_To_QDateTime(modificationTime_); } + QDateTime accessTime() const { return modificationTime(); } + + QDateTime fileTime(QAbstractFileEngine::FileTime time) const + { + Q_UNUSED(time); + return modificationTime(); + } + uint userId() const { return (uint) -2; } + uint groupId() const { return (uint) -2; } + uint ownerId(QAbstractFileEngine::FileOwner owner) const + { + Q_UNUSED(owner); + return (uint) -2; + } + + void fillFromTEntry(const TEntry& entry); + void fillFromVolumeInfo(const TVolumeInfo& info); +#endif private: friend class QFileSystemEngine; @@ -227,6 +267,8 @@ private: // Platform-specific data goes here: #if defined(Q_OS_WIN) +#elif defined(Q_OS_SYMBIAN) + TTime modificationTime_; #else time_t creationTime_; time_t modificationTime_; -- cgit v0.12 From bbbe13b676d297f0f5bfb754cdfe5ff1848c67b7 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 7 Sep 2010 16:47:02 +0100 Subject: Add missing function parameter to implementation To fix compile error due to header changes upstream Reviewed-By: Trust Me --- src/corelib/io/qfilesystemengine_symbian.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 19f149a..45c3c10 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -53,7 +53,7 @@ bool QFileSystemEngine::isCaseSensitive() } //static -QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link) +QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data) { return link; // TODO implement } -- cgit v0.12 From 0b662bd90347d152bf7371f1554e7bd2175704d8 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 8 Sep 2010 14:02:19 +0100 Subject: Implement QFileSystemEngine::absoluteName for symbian OS Updated this function so that it passes the QFileInfo autotests. Now deals with raw drives "x:" Drive relative paths "x:foo.txt" Absolute paths missing a drive letter "/sys" Dirty absolute paths "c:/bar/../foo" Reviewed-By: joao --- src/corelib/io/qfilesystemengine_symbian.cpp | 31 +++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 45c3c10..3638196 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -80,23 +80,40 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) //static QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) { - if (entry.isAbsolute()) + QString orig = entry.filePath(); + const bool needsDrive = (!orig.isEmpty() && orig.at(0).unicode() == '/'); + const bool isDriveLetter = (orig.size() == 2 && orig.at(1).unicode() == ':'); + const bool isDriveRelative = (orig.size() > 2 && orig.at(1).unicode() == ':' && orig.at(2).unicode() != '/'); + const bool isDirty = (orig.contains(QLatin1String("/../")) || orig.contains(QLatin1String("/./")) || + orig.endsWith(QLatin1String("/..")) || orig.endsWith(QLatin1String("/."))); + const bool isAbsolute = entry.isAbsolute(); + if (isAbsolute && + !(needsDrive || isDriveLetter || isDriveRelative || isDirty)) return entry; - QString orig = entry.filePath(); QString result; - if (orig.isEmpty() || !orig.startsWith('/')) { + if (needsDrive || isDriveLetter || isDriveRelative || !isAbsolute || orig.isEmpty()) { QFileSystemEntry cur(QFSFileEngine::currentPath()); - result = cur.filePath(); + if(needsDrive) + result = cur.filePath().left(2); + else if(isDriveRelative && cur.filePath().at(0) != orig.at(0)) + result = orig.left(2); // for BC, see tst_QFileInfo::absolutePath(:my.dll) + else + result = cur.filePath(); + if(isDriveLetter) { + result[0] = orig.at(0); //copy drive letter + orig.clear(); + } + if(isDriveRelative) { + orig = orig.mid(2); //discard the drive specifier from orig + } } - if (!orig.isEmpty() && !(orig.length() == 1 && orig[0] == '.')) { + if (!orig.isEmpty() && !(orig.length() == 1 && orig.at(0).unicode() == '.')) { if (!result.isEmpty() && !result.endsWith('/')) result.append('/'); result.append(orig); } - if (result.length() == 1 && result[0] == '/') - return QFileSystemEntry(result); const bool isDir = result.endsWith('/'); result = QDir::cleanPath(result); -- cgit v0.12 From f906303e7aa9a7b68f469d81e6bdac8499120338 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 8 Sep 2010 14:08:13 +0100 Subject: Disable tst_qfileinfo symlink tests on symbian Reviewed-By: joao --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 7659a75..9ec0572 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -72,6 +72,7 @@ #if defined(Q_OS_SYMBIAN) # define SRCDIR "" +# define NO_SYMLINKS #endif //TESTED_CLASS= @@ -1081,6 +1082,7 @@ void tst_QFileInfo::fileTimes_oldFile() void tst_QFileInfo::isSymLink_data() { +#ifndef NO_SYMLINKS QFile::remove("link.lnk"); QFile::remove("brokenlink.lnk"); QFile::remove("dummyfile"); @@ -1100,10 +1102,12 @@ void tst_QFileInfo::isSymLink_data() QTest::newRow("existent file") << SRCDIR "tst_qfileinfo.cpp" << false << ""; QTest::newRow("link") << "link.lnk" << true << QFileInfo(SRCDIR "tst_qfileinfo.cpp").absoluteFilePath(); QTest::newRow("broken link") << "brokenlink.lnk" << true << QFileInfo("dummyfile").absoluteFilePath(); +#endif } void tst_QFileInfo::isSymLink() { +#ifndef NO_SYMLINKS QFETCH(QString, path); QFETCH(bool, isSymLink); QFETCH(QString, linkTarget); @@ -1111,6 +1115,9 @@ void tst_QFileInfo::isSymLink() QFileInfo fi(path); QCOMPARE(fi.isSymLink(), isSymLink); QCOMPARE(fi.symLinkTarget(), linkTarget); +#else + QSKIP("no symbolic link support on this platform", SkipAll); +#endif } void tst_QFileInfo::isHidden_data() -- cgit v0.12 From e4de050cc8e819a2751f94ac0429a0d7fe64e64a Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 8 Sep 2010 15:15:45 +0100 Subject: Enable symbian IO code in the build This patch contains several changes that needed to be done atomically. The native file path im QFileSystemEntry is changed from 8 bit to 16 bit character set. QFsFileEngine has some new symbian specific code (as the unix code does not compile with the above change), and forwards more calls to the new QFileSystemEngine. Unix implementations of link, rename and remove are moved to the unix version of this class, so less ifdef'ing is needed. Finally, io.pri now selects the _symbian.cpp source files instead of the _unix.cpp equivalents when building for symbian. --- src/corelib/io/io.pri | 15 +- src/corelib/io/qfilesystemengine_unix.cpp | 8 +- src/corelib/io/qfilesystementry.cpp | 7 +- src/corelib/io/qfilesystementry_p.h | 6 +- src/corelib/io/qfsfileengine.cpp | 6 + src/corelib/io/qfsfileengine_p.h | 28 +++ src/corelib/io/qfsfileengine_unix.cpp | 343 +++++++++++++++++------------- 7 files changed, 250 insertions(+), 163 deletions(-) diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index 7c3712e..4a20dfa 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -73,12 +73,17 @@ win32 { SOURCES += io/qfilesystemengine_win.cpp SOURCES += io/qfilesystemiterator_win.cpp } else:unix { - SOURCES += io/qfilesystemengine_unix.cpp - SOURCES += io/qfilesystemiterator_unix.cpp - SOURCES += io/qfsfileengine_unix.cpp SOURCES += io/qfsfileengine_iterator_unix.cpp - symbian:SOURCES += io/qprocess_symbian.cpp - else:SOURCES += io/qprocess_unix.cpp + SOURCES += io/qfsfileengine_unix.cpp + symbian { + SOURCES += io/qfilesystemengine_symbian.cpp + SOURCES += io/qprocess_symbian.cpp + SOURCES += io/qfilesystemiterator_symbian.cpp + } else { + SOURCES += io/qfilesystemengine_unix.cpp + SOURCES += io/qprocess_unix.cpp + SOURCES += io/qfilesystemiterator_unix.cpp + } macx-*: { HEADERS += io/qfilesystemwatcher_fsevents_p.h SOURCES += io/qfilesystemengine_mac.cpp diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index f26a8c0..8d77963 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -45,6 +45,8 @@ #include "qfsfileengine.h" #include // for realpath() +#include +#include #include #if defined(Q_OS_SYMBIAN) @@ -489,7 +491,7 @@ bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool remo //static bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target) { - return false; // TODO implement; + return (::symlink(source.nativeFilePath().constData(), target.nativeFilePath().constData()) == 0); } //static @@ -501,13 +503,13 @@ bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSyst //static bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target) { - return false; // TODO implement; + return (::rename(source.nativeFilePath().constData(), target.nativeFilePath().constData()) == 0); } //static bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) { - return false; // TODO implement; + return (unlink(entry.nativeFilePath().constData()) == 0); } //static diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index c3ada48..f5009b4 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -121,7 +121,7 @@ QFileSystemEntry::NativePath QFileSystemEntry::nativeFilePath() const void QFileSystemEntry::resolveFilePath() const { if (m_filePath.isEmpty() && !m_nativeFilePath.isEmpty()) { -#ifdef Q_OS_WIN +#ifdef QFILESYSTEMENTRY_NATIVE_PATH_IS_UTF16 m_filePath = QDir::fromNativeSeparators(m_nativeFilePath); #else m_filePath = QDir::fromNativeSeparators(QFile::decodeName(m_nativeFilePath)); @@ -137,6 +137,8 @@ void QFileSystemEntry::resolveNativeFilePath() const if (isRelative()) filePath = fixIfRelativeUncPath(m_filePath); m_nativeFilePath = QFSFileEnginePrivate::longFileName(QDir::toNativeSeparators(filePath)); +#elif defined(QFILESYSTEMENTRY_NATIVE_PATH_IS_UTF16) + m_nativeFilePath = QDir::toNativeSeparators(m_filePath); #else m_nativeFilePath = QFile::encodeName(QDir::toNativeSeparators(m_filePath)); #endif @@ -199,11 +201,10 @@ bool QFileSystemEntry::isAbsolute() const return (!m_filePath.isEmpty() && (m_filePath[0].unicode() == '/') #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) || (m_filePath.length() >= 2 - && ((m_filePath[0].isLetter() && m_filePath[1] == QLatin1Char(':')) + && ((m_filePath[0].isLetter() && m_filePath[1].unicode() == ':') || (m_filePath.at(0) == QLatin1Char('/') && m_filePath.at(1) == QLatin1Char('/')))) #endif ); - } #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h index 3786bb3..6b2cedd 100644 --- a/src/corelib/io/qfilesystementry_p.h +++ b/src/corelib/io/qfilesystementry_p.h @@ -56,13 +56,17 @@ #include #include +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) +#define QFILESYSTEMENTRY_NATIVE_PATH_IS_UTF16 +#endif + QT_BEGIN_NAMESPACE class QFileSystemEntry { public: -#ifndef Q_OS_WIN +#ifndef QFILESYSTEMENTRY_NATIVE_PATH_IS_UTF16 typedef QByteArray NativePath; #else typedef QString NativePath; diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 1b0a28c..089f1a1 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -364,6 +364,12 @@ bool QFSFileEnginePrivate::closeFdFh() if (closeFileHandle) { int ret; do { +#ifdef Q_OS_SYMBIAN + if (symbianFile.SubSessionHandle()) { + symbianFile.Close(); + ret = 0; + } else +#endif if (fh) { // Close buffered file. ret = fclose(fh) != 0 ? -1 : 0; diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index 6e5f30e..a3733d8 100644 --- a/src/corelib/io/qfsfileengine_p.h +++ b/src/corelib/io/qfsfileengine_p.h @@ -60,6 +60,10 @@ #include #include +#ifdef Q_OS_SYMBIAN +#include +#endif + #ifndef QT_NO_FSFILEENGINE QT_BEGIN_NAMESPACE @@ -115,6 +119,30 @@ public: #endif FILE *fh; +#ifdef Q_OS_SYMBIAN +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + RFile64 symbianFile; + TInt64 symbianFilePos; +#else + RFile symbianFile; + + /** + * The cursor position in the underlying file. This differs + * from devicePos because the latter is updated on calls to + * writeData, even if no data was physically transferred to + * the file, but instead stored in the write buffer. + * + * iFilePos is updated on calls to RFile::Read and + * RFile::Write. It is also updated on calls to seek() but + * RFile::Seek is not called when that happens because + * Symbian supports positioned reads and writes, saving a file + * server call, and because Symbian does not support seeking + * past the end of a file. + */ + TInt symbianFilePos; +#endif +#endif + #ifdef Q_WS_WIN HANDLE fileHandle; HANDLE mapHandle; diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index c7df5ed..048aa1b 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -197,6 +197,90 @@ static inline bool setCloseOnExec(int fd) return fd != -1 && fcntl(fd, F_SETFD, FD_CLOEXEC) != -1; } +#ifdef Q_OS_SYMBIAN +/*! + \internal +*/ +bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) +{ + Q_Q(QFSFileEngine); + + fh = 0; + fd = -1; + + QString fn(QFileSystemEngine::absoluteName(fileEntry).nativeFilePath()); + RFs& fs = qt_s60GetRFs(); + + TUint symbianMode = 0; + + if(openMode & QIODevice::ReadOnly) + symbianMode |= EFileRead; + if(openMode & QIODevice::WriteOnly) + symbianMode |= EFileWrite; + if(openMode & QIODevice::Text) + symbianMode |= EFileStreamText; + + // pre Symbian 9.4, file I/O is always unbuffered, and the enum values don't exist + if(QSysInfo::symbianVersion() >= QSysInfo::SV_9_4) { + if (openMode & QFile::Unbuffered) { + if (openMode & QIODevice::WriteOnly) + symbianMode |= 0x00001000; //EFileWriteDirectIO; + if (openMode & QIODevice::ReadOnly) + symbianMode |= 0x00004000; //EFileReadDirectIO; + } else { + if (openMode & QIODevice::WriteOnly) + symbianMode |= 0x00000800; //EFileWriteBuffered; + // use implementation defaults for read buffering + } + } + + // Until Qt supports file sharing, we can't support EFileShareReadersOrWriters safely, + // but Qt does this on other platforms and autotests rely on it. + // The reason is that Unix locks are only advisory - the application needs to test the + // lock after opening the file. Symbian and Windows locks are mandatory - opening a + // locked file will fail. + symbianMode |= EFileShareReadersOrWriters; + + TInt r; + //note QIODevice::Truncate only has meaning for read/write access + //write-only files are always truncated unless append is specified + //reference openModeToOpenFlags in qfsfileengine_unix.cpp + if ((openMode & QIODevice::Truncate) || (!(openMode & QIODevice::ReadOnly) && !(openMode & QIODevice::Append))) { + r = symbianFile.Replace(fs, qt_QString2TPtrC(fn), symbianMode); + } else { + r = symbianFile.Open(fs, qt_QString2TPtrC(fn), symbianMode); + if (r == KErrNotFound && (openMode & QIODevice::WriteOnly)) { + r = symbianFile.Create(fs, qt_QString2TPtrC(fn), symbianMode); + } + } + + if (r == KErrNone) { +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + TInt64 size; +#else + TInt size; +#endif + r = symbianFile.Size(size); + if (r==KErrNone) { + if (openMode & QIODevice::Append) + symbianFilePos = size; + else + symbianFilePos = 0; + //TODO: port this (QFileSystemMetaData in open?) + //cachedSize = size; + } + } + + if (r != KErrNone) { + setSymbianError(r, QFile::OpenError, QLatin1String("open error")); + symbianFile.Close(); + return false; + } + + closeFileHandle = true; + return true; +} +#else /*! \internal */ @@ -293,6 +377,7 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) closeFileHandle = true; return true; } +#endif /*! \internal @@ -423,61 +508,64 @@ bool QFSFileEnginePrivate::nativeIsSequential() const bool QFSFileEngine::remove() { Q_D(QFSFileEngine); - bool ret = unlink(d->fileEntry.nativeFilePath().constData()) == 0; - if (!ret) + bool ret = QFileSystemEngine::removeFile(d->fileEntry); + if (!ret) { +#ifdef Q_OS_SYMBIAN + //TODO: error reporting + d->setSymbianError(KErrGeneral, QFile::RemoveError, QLatin1String("remove error")); +#else setError(QFile::RemoveError, qt_error_string(errno)); +#endif + } return ret; } bool QFSFileEngine::copy(const QString &newName) { -#if defined(Q_OS_SYMBIAN) Q_D(QFSFileEngine); - RFs rfs = qt_s60GetRFs(); - CFileMan* fm = NULL; - QString oldNative(QDir::toNativeSeparators(d->fileEntry.filePath())); - TPtrC oldPtr(qt_QString2TPtrC(oldNative)); - QFileInfo fi(newName); - QString absoluteNewName = fi.absoluteFilePath(); - QString newNative(QDir::toNativeSeparators(absoluteNewName)); - TPtrC newPtr(qt_QString2TPtrC(newNative)); - TRAPD (err, - fm = CFileMan::NewL(rfs); - RFile rfile; - err = rfile.Open(rfs, oldPtr, EFileShareReadersOrWriters); - if (err == KErrNone) { - err = fm->Copy(rfile, newPtr); - rfile.Close(); - } - ) // End TRAP - delete fm; - if (err == KErrNone) - return true; - d->setSymbianError(err, QFile::CopyError, QLatin1String("copy error")); - return false; + bool ret = QFileSystemEngine::copyFile(d->fileEntry, QFileSystemEntry(newName)); + if (!ret) { +#ifdef Q_OS_SYMBIAN + //TODO: error reporting + d->setSymbianError(KErrGeneral, QFile::CopyError, QLatin1String("copy error")); #else - Q_UNUSED(newName); - // ### Add copy code for Unix here - setError(QFile::UnspecifiedError, QLatin1String("Not implemented!")); - return false; + // ### Add copy code for Unix to the filesystem engine + setError(QFile::UnspecifiedError, QLatin1String("Not implemented!")); + //setError(QFile::CopyError, qt_error_string(errno)); #endif + } + return ret; } bool QFSFileEngine::rename(const QString &newName) { Q_D(QFSFileEngine); - bool ret = ::rename(d->fileEntry.nativeFilePath().constData(), QFile::encodeName(newName).constData()) == 0; - if (!ret) + bool ret = QFileSystemEngine::renameFile(d->fileEntry, QFileSystemEntry(newName)); + + if (!ret) { +#ifdef Q_OS_SYMBIAN + //TODO: error reporting + d->setSymbianError(KErrGeneral, QFile::RenameError, QLatin1String("rename error")); +#else setError(QFile::RenameError, qt_error_string(errno)); +#endif + } + return ret; } bool QFSFileEngine::link(const QString &newName) { Q_D(QFSFileEngine); - bool ret = ::symlink(d->fileEntry.nativeFilePath().constData(), QFile::encodeName(newName).constData()) == 0; - if (!ret) + bool ret = QFileSystemEngine::createLink(d->fileEntry, QFileSystemEntry(newName)); + if (!ret) { +#ifdef Q_OS_SYMBIAN + //TODO: error reporting + d->setSymbianError(KErrNotSupported, QFile::RenameError, QLatin1String("not supported")); +#else setError(QFile::RenameError, qt_error_string(errno)); +#endif + } return ret; } @@ -722,123 +810,6 @@ QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(FileFlags type) const return ret; } -#if defined(Q_OS_SYMBIAN) -QString QFSFileEngine::fileName(FileName file) const -{ - Q_D(const QFSFileEngine); - const QLatin1Char slashChar('/'); - if(file == BaseName) { - int slash = d->fileEntry.filePath().lastIndexOf(slashChar); - if(slash == -1) { - int colon = d->fileEntry.filePath().lastIndexOf(QLatin1Char(':')); - if(colon != -1) - return d->fileEntry.filePath().mid(colon + 1); - return d->fileEntry.filePath(); - } - return d->fileEntry.filePath().mid(slash + 1); - } else if(file == PathName) { - if(!d->fileEntry.filePath().size()) - return d->fileEntry.filePath(); - - int slash = d->fileEntry.filePath().lastIndexOf(slashChar); - if(slash == -1) { - if(d->fileEntry.filePath().length() >= 2 && d->fileEntry.filePath().at(1) == QLatin1Char(':')) - return d->fileEntry.filePath().left(2); - return QLatin1String("."); - } else { - if(!slash) - return QLatin1String("/"); - if(slash == 2 && d->fileEntry.filePath().length() >= 2 && d->fileEntry.filePath().at(1) == QLatin1Char(':')) - slash++; - return d->fileEntry.filePath().left(slash); - } - } else if(file == AbsoluteName || file == AbsolutePathName) { - QString ret; - if (!isRelativePathSymbian(d->fileEntry.filePath())) { - if (d->fileEntry.filePath().size() > 2 && d->fileEntry.filePath().at(1) == QLatin1Char(':') - && d->fileEntry.filePath().at(2) != slashChar){ - // It's a drive-relative path, so C:a.txt -> C:/currentpath/a.txt, - // or if it's different drive than current, Z:a.txt -> Z:/a.txt - QString currentPath = QDir::currentPath(); - if (0 == currentPath.left(1).compare(d->fileEntry.filePath().left(1), Qt::CaseInsensitive)) - ret = currentPath + slashChar + d->fileEntry.filePath().mid(2); - else - ret = d->fileEntry.filePath().left(2) + slashChar + d->fileEntry.filePath().mid(2); - } else if (d->fileEntry.filePath().startsWith(slashChar)) { - // It's a absolute path to the current drive, so /a.txt -> C:/a.txt - ret = QDir::currentPath().left(2) + d->fileEntry.filePath(); - } else { - ret = d->fileEntry.filePath(); - } - } else { - ret = QDir::currentPath() + slashChar + d->fileEntry.filePath(); - } - - // The path should be absolute at this point. - // From the docs : - // Absolute paths begin with the directory separator "/" - // (optionally preceded by a drive specification under Windows). - if (ret.at(0) != slashChar) { - Q_ASSERT(ret.length() >= 2); - Q_ASSERT(ret.at(0).isLetter()); - Q_ASSERT(ret.at(1) == QLatin1Char(':')); - - // Force uppercase drive letters. - ret[0] = ret.at(0).toUpper(); - } - - // Clean up the path - bool isDir = ret.endsWith(slashChar); - ret = QDir::cleanPath(ret); - if (isDir && !ret.endsWith(slashChar)) - ret += slashChar; - - if (file == AbsolutePathName) { - int slash = ret.lastIndexOf(slashChar); - if (slash < 0) - return ret; - else if (ret.at(0) != slashChar && slash == 2) - return ret.left(3); // include the slash - else - return ret.left(slash > 0 ? slash : 1); - } - return ret; - } else if(file == CanonicalName || file == CanonicalPathName) { - QFileSystemEntry entry(QFileSystemEngine::canonicalName(d->fileEntry)); - if (file == CanonicalPathName) - return entry.path(); - return entry.filePath(); - } else if(file == LinkName) { - if (d->isSymlink()) { - char s[PATH_MAX+1]; - int len = readlink(d->fileEntry.nativeFilePath().constData(), s, PATH_MAX); - if (len > 0) { - s[len] = '\0'; - QString ret = QFile::decodeName(QByteArray(s)); - - if (isRelativePathSymbian(ret)) { - if (!isRelativePathSymbian(d->fileEntry.filePath())) { - ret.prepend(d->fileEntry.filePath().left(d->fileEntry.filePath().lastIndexOf(slashChar)) - + slashChar); - } else { - ret.prepend(QDir::currentPath() + slashChar); - } - } - ret = QDir::cleanPath(ret); - if (ret.size() > 1 && ret.endsWith(slashChar)) - ret.chop(1); - return ret; - } - } - return QString(); - } else if(file == BundleName) { - return QString(); - } - return d->fileEntry.filePath(); -} - -#else - QString QFSFileEngine::fileName(FileName file) const { Q_D(const QFSFileEngine); @@ -868,7 +839,6 @@ QString QFSFileEngine::fileName(FileName file) const } return d->fileEntry.filePath(); } -#endif // Q_OS_SYMBIAN bool QFSFileEngine::isRelativePath() const { @@ -939,6 +909,51 @@ QString QFSFileEngine::owner(FileOwner own) const return QString(); } +#ifdef Q_OS_SYMBIAN +bool QFSFileEngine::setPermissions(uint perms) +{ + Q_D(QFSFileEngine); + //TODO: connect up error reporting properly + if (!QFileSystemEngine::setPermissions(d->fileEntry, QFile::Permissions(perms), 0)) { + setError(QFile::PermissionsError, QString()); + return false; + } + return true; +} + +bool QFSFileEngine::setSize(qint64 size) +{ + Q_D(QFSFileEngine); + bool ret = false; + TInt err = KErrNone; + if (d->symbianFile.SubSessionHandle()) { + TInt err = d->symbianFile.SetSize(size); + ret = (err == KErrNone); + } + if (d->fd != -1) + ret = QT_FTRUNCATE(d->fd, size) == 0; + else if (d->fh) + ret = QT_FTRUNCATE(QT_FILENO(d->fh), size) == 0; + else { + RFile tmp; + QString symbianFilename(d->fileEntry.nativeFilePath()); + err = tmp.Open(qt_s60GetRFs(), qt_QString2TPtrC(symbianFilename), EFileWrite); + if (err == KErrNone) + { + err = tmp.SetSize(size); + tmp.Close(); + } + ret = (err == KErrNone); + } + if (!ret) { + if (err) + d->setSymbianError(err, QFile::ResizeError, QString()); + else + setError(QFile::ResizeError, qt_error_string(errno)); + } + return ret; +} +#else bool QFSFileEngine::setPermissions(uint perms) { Q_D(QFSFileEngine); @@ -991,6 +1006,7 @@ bool QFSFileEngine::setSize(qint64 size) setError(QFile::ResizeError, qt_error_string(errno)); return ret; } +#endif QDateTime QFSFileEngine::fileTime(FileTime time) const { @@ -1002,6 +1018,30 @@ QDateTime QFSFileEngine::fileTime(FileTime time) const return QDateTime(); } +#ifdef Q_OS_SYMBIAN +uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags) +{ + //Q_Q(QFSFileEngine); + Q_UNUSED(flags) + Q_UNUSED(offset) + Q_UNUSED(size) + return 0; + //TODO: use RFileMap when available in symbian^4 +} + +bool QFSFileEnginePrivate::unmap(uchar *ptr) +{ + //TODO: RFileMap as the value in maps, unmap it here when API is available... + //Q_Q(QFSFileEngine); + //if (!maps.contains(ptr)) { + // q->setError(QFile::PermissionsError, qt_error_string(EACCES)); + // return false; + //} + Q_UNUSED(ptr) + + return false; +} +#else uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags) { Q_Q(QFSFileEngine); @@ -1092,6 +1132,7 @@ bool QFSFileEnginePrivate::unmap(uchar *ptr) maps.remove(ptr); return true; } +#endif QT_END_NAMESPACE -- cgit v0.12 From 97e8a289380202da7041e40574d58b08a91e0fd0 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 8 Sep 2010 20:20:12 +0100 Subject: Fixes for tst_qfileinfo Use case insensitive comparison on symbian/windows for the absFilePath test. - it expected "c:\\home\\andy\\tmp.txt" to resolve to "C:/home/andy/tmp.txt" - but there is no reason for the drive letter to be changed to uppercase - however it's not wrong either since the FS is case insensitive. Enable isWritable test on symbian - it was skipped for no good reason Reviewed-By: joao --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 9ec0572..08cb68d 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -514,7 +514,11 @@ void tst_QFileInfo::absFilePath() QFETCH(QString, expected); QFileInfo fi(file); +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + QVERIFY(QString::compare(fi.absoluteFilePath(), expected, Qt::CaseInsensitive) == 0); +#else QCOMPARE(fi.absoluteFilePath(), expected); +#endif } void tst_QFileInfo::canonicalPath() @@ -1432,10 +1436,6 @@ void tst_QFileInfo::brokenShortcut() void tst_QFileInfo::isWritable() { -#ifdef Q_OS_SYMBIAN - QSKIP("Currently skipped on Symbian OS, but surely there is a writeable file somewhere???", SkipAll); -#endif - QFile tempfile("tempfile.txt"); tempfile.open(QIODevice::WriteOnly); tempfile.write("This file is generated by the QFileInfo autotest."); @@ -1453,7 +1453,7 @@ void tst_QFileInfo::isWritable() QVERIFY(fi.exists()); QVERIFY(!fi.isWritable()); #endif -#ifdef Q_OS_UNIX +#if defined (Q_OS_UNIX) && !defined (Q_OS_SYMBIAN) if (::getuid() == 0) QVERIFY(QFileInfo("/etc/passwd").isWritable()); else -- cgit v0.12 From 927469d518afa64d8ec8dc54e6169fa43b54cd96 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 8 Sep 2010 20:24:45 +0100 Subject: Fixes for isRoot() on symbian Because "/" is considered to be a root directory, root paths must be converted to absolute paths before volume info can be retrieved. Also special handling in absoluteName is needed to avoid creating "c://" Reviewed-By: joao --- src/corelib/io/qfilesystemengine_symbian.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 3638196..1205274 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -115,9 +115,10 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) } const bool isDir = result.endsWith('/'); + const bool isRoot = entry.isRoot(); result = QDir::cleanPath(result); - if (isDir) + if (isDir && !isRoot) result.append(QLatin1Char('/')); return QFileSystemEntry(result); } @@ -175,11 +176,12 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM RFs& fs(qt_s60GetRFs()); TInt err; data.entryFlags &= ~(QFileSystemMetaData::SymbianTEntryFlags); - if (entry.isRoot()) { + QFileSystemEntry absentry(absoluteName(entry)); + if (absentry.isRoot()) { //Root directories don't have an entry, and Entry() returns KErrBadName. //Therefore get information about the volume instead. TInt drive; - err = RFs::CharToDrive(TChar(entry.nativeFilePath().at(0).unicode()), drive); + err = RFs::CharToDrive(TChar(absentry.nativeFilePath().at(0).unicode()), drive); if (!err) { TVolumeInfo info; err = fs.Volume(info, drive); @@ -188,7 +190,7 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM } } else { TEntry ent; - err = fs.Entry(qt_QString2TPtrC(absoluteName(entry).nativeFilePath()), ent); + err = fs.Entry(qt_QString2TPtrC(absentry.nativeFilePath()), ent); if (!err) data.fillFromTEntry(ent); } -- cgit v0.12 From d95b3bf38b9c25a38ade7c92fd434e42346729bd Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 8 Sep 2010 20:28:17 +0100 Subject: Implement basic symbian native file IO to QFsFileEngine Enough functionality to be able to read/write files for the tst_qfileinfo autotest to pass. Reviewed-By: joao --- src/corelib/io/qfsfileengine.cpp | 6 ++- src/corelib/io/qfsfileengine_unix.cpp | 95 +++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 089f1a1..9c8df39 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -352,7 +352,11 @@ bool QFSFileEngine::close() bool QFSFileEnginePrivate::closeFdFh() { Q_Q(QFSFileEngine); - if (fd == -1 && !fh) + if (fd == -1 && !fh +#ifdef Q_OS_SYMBIAN + && !symbianFile.SubSessionHandle() +#endif + ) return false; // Flush the file if it's buffered, and if the last flush didn't fail. diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 048aa1b..e4c6f09 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -393,6 +393,10 @@ bool QFSFileEnginePrivate::nativeClose() */ bool QFSFileEnginePrivate::nativeFlush() { +#ifdef Q_OS_SYMBIAN + if (symbianFile.SubSessionHandle()) + return (KErrNone == symbianFile.Flush()); +#endif return fh ? flushFh() : fd != -1; } @@ -403,6 +407,23 @@ qint64 QFSFileEnginePrivate::nativeRead(char *data, qint64 len) { Q_Q(QFSFileEngine); +#ifdef Q_OS_SYMBIAN + if (symbianFile.SubSessionHandle()) { + if(len > KMaxTInt) { + //this check is more likely to catch a corrupt length, since it isn't possible to allocate 2GB buffers (yet..) + q->setError(QFile::ReadError, QLatin1String("Maximum 2GB in single read on this platform")); + return -1; + } + TPtr8 ptr(reinterpret_cast(data), static_cast(len)); + TInt r = symbianFile.Read(ptr); + if (r != KErrNone) + { + setSymbianError(r, QFile::ReadError, QLatin1String("read error")); + return -1; + } + return qint64(ptr.Length()); + } +#endif if (fh && nativeIsSequential()) { size_t readBytes = 0; int oldFlags = fcntl(QT_FILENO(fh), F_GETFL); @@ -470,6 +491,24 @@ qint64 QFSFileEnginePrivate::nativeReadLine(char *data, qint64 maxlen) */ qint64 QFSFileEnginePrivate::nativeWrite(const char *data, qint64 len) { + Q_Q(QFSFileEngine); +#ifdef Q_OS_SYMBIAN + if (symbianFile.SubSessionHandle()) { + if(len > KMaxTInt) { + //this check is more likely to catch a corrupt length, since it isn't possible to allocate 2GB buffers (yet..) + q->setError(QFile::WriteError, QLatin1String("Maximum 2GB in single write on this platform")); + return -1; + } + const TPtrC8 ptr(reinterpret_cast(data), static_cast(len)); + TInt r = symbianFile.Write(ptr); + if (r != KErrNone) + { + setSymbianError(r, QFile::WriteError, QLatin1String("write error")); + return -1; + } + return len; + } +#endif return writeFdFh(data, len); } @@ -478,6 +517,22 @@ qint64 QFSFileEnginePrivate::nativeWrite(const char *data, qint64 len) */ qint64 QFSFileEnginePrivate::nativePos() const { +#ifdef Q_OS_SYMBIAN + if (symbianFile.SubSessionHandle()) { +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + qint64 pos; +#else + TInt pos; +#endif + TInt err = symbianFile.Seek(ESeekCurrent, pos); + if(err != KErrNone) { + //TODO: error reporting + //setSymbianError(err, QFile::PositionError, QLatin1String("seek failed")); + return -1; + } + return pos; + } +#endif return posFdFh(); } @@ -486,6 +541,27 @@ qint64 QFSFileEnginePrivate::nativePos() const */ bool QFSFileEnginePrivate::nativeSeek(qint64 pos) { +#ifdef Q_OS_SYMBIAN + Q_Q(QFSFileEngine); + if (symbianFile.SubSessionHandle()) { +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + TInt r = symbianFile.Seek(ESeekStart, pos); +#else + if(pos > KMaxTInt) { + q->setError(QFile::PositionError, QLatin1String("Maximum 2GB file position on this platform")); + return false; + } + TInt pos32(pos); + TInt r = symbianFile.Seek(ESeekStart, pos32); +#endif + if (r != KErrNone) + { + setSymbianError(r, QFile::PositionError, QLatin1String("seek failed")); + return false; + } + return true; + } +#endif return seekFdFh(pos); } @@ -502,6 +578,10 @@ int QFSFileEnginePrivate::nativeHandle() const */ bool QFSFileEnginePrivate::nativeIsSequential() const { +#ifdef Q_OS_SYMBIAN + if (symbianFile.SubSessionHandle()) + return false; +#endif return isSequentialFdFh(); } @@ -571,6 +651,21 @@ bool QFSFileEngine::link(const QString &newName) qint64 QFSFileEnginePrivate::nativeSize() const { +#ifdef Q_OS_SYMBIAN + if (symbianFile.SubSessionHandle()) { +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + qint64 size; +#else + TInt size; +#endif + TInt err = symbianFile.Size(size); + if(err != KErrNone) { + //TODO: error reporting + return 0; + } + return size; + } +#endif return sizeFdFh(); } -- cgit v0.12 From 311f346e49f6d033121840f8740710666c920640 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 9 Sep 2010 11:11:02 +0100 Subject: Update Symbian DEF files To allow file-engines-refactor branch to build. Reviewed-By: Trust Me --- src/s60installs/bwins/QtCoreu.def | 54 +++++++++++++++++++++++++++++++++---- src/s60installs/bwins/QtGuiu.def | 57 ++++++++++++++++++++++++++++++++++++--- src/s60installs/eabi/QtCoreu.def | 46 ++++++++++++++++++++++++++++--- src/s60installs/eabi/QtGuiu.def | 56 +++++++++++++++++++++++++++++++++++--- 4 files changed, 197 insertions(+), 16 deletions(-) diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def index 1a79f63..052ec9a 100644 --- a/src/s60installs/bwins/QtCoreu.def +++ b/src/s60installs/bwins/QtCoreu.def @@ -59,7 +59,7 @@ EXPORTS ??0QChildEvent@@QAE@W4Type@QEvent@@PAVQObject@@@Z @ 58 NONAME ; QChildEvent::QChildEvent(enum QEvent::Type, class QObject *) ??0QCoreApplication@@IAE@AAVQCoreApplicationPrivate@@@Z @ 59 NONAME ; QCoreApplication::QCoreApplication(class QCoreApplicationPrivate &) ??0QCoreApplication@@QAE@AAHPAPAD@Z @ 60 NONAME ; QCoreApplication::QCoreApplication(int &, char * *) - ??0QCoreApplicationPrivate@@QAE@AAHPAPAD@Z @ 61 NONAME ; QCoreApplicationPrivate::QCoreApplicationPrivate(int &, char * *) + ??0QCoreApplicationPrivate@@QAE@AAHPAPAD@Z @ 61 NONAME ABSENT ; QCoreApplicationPrivate::QCoreApplicationPrivate(int &, char * *) ??0QCryptographicHash@@QAE@W4Algorithm@0@@Z @ 62 NONAME ; QCryptographicHash::QCryptographicHash(enum QCryptographicHash::Algorithm) ??0QDataStream@@QAE@ABVQByteArray@@@Z @ 63 NONAME ; QDataStream::QDataStream(class QByteArray const &) ??0QDataStream@@QAE@PAVQByteArray@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 64 NONAME ; QDataStream::QDataStream(class QByteArray *, class QFlags) @@ -1440,8 +1440,8 @@ EXPORTS ?d_func@QBuffer@@ABEPBVQBufferPrivate@@XZ @ 1439 NONAME ; class QBufferPrivate const * QBuffer::d_func(void) const ?d_func@QCoreApplication@@AAEPAVQCoreApplicationPrivate@@XZ @ 1440 NONAME ; class QCoreApplicationPrivate * QCoreApplication::d_func(void) ?d_func@QCoreApplication@@ABEPBVQCoreApplicationPrivate@@XZ @ 1441 NONAME ; class QCoreApplicationPrivate const * QCoreApplication::d_func(void) const - ?d_func@QDir@@AAEPAVQDirPrivate@@XZ @ 1442 NONAME ; class QDirPrivate * QDir::d_func(void) - ?d_func@QDir@@ABEPBVQDirPrivate@@XZ @ 1443 NONAME ; class QDirPrivate const * QDir::d_func(void) const + ?d_func@QDir@@AAEPAVQDirPrivate@@XZ @ 1442 NONAME ABSENT ; class QDirPrivate * QDir::d_func(void) + ?d_func@QDir@@ABEPBVQDirPrivate@@XZ @ 1443 NONAME ABSENT ; class QDirPrivate const * QDir::d_func(void) const ?d_func@QEventDispatcherSymbian@@AAEPAVQAbstractEventDispatcherPrivate@@XZ @ 1444 NONAME ; class QAbstractEventDispatcherPrivate * QEventDispatcherSymbian::d_func(void) ?d_func@QEventDispatcherSymbian@@ABEPBVQAbstractEventDispatcherPrivate@@XZ @ 1445 NONAME ; class QAbstractEventDispatcherPrivate const * QEventDispatcherSymbian::d_func(void) const ?d_func@QEventLoop@@AAEPAVQEventLoopPrivate@@XZ @ 1446 NONAME ; class QEventLoopPrivate * QEventLoop::d_func(void) @@ -3123,7 +3123,7 @@ EXPORTS ?reset@QMetaProperty@@QBE_NPAVQObject@@@Z @ 3122 NONAME ; bool QMetaProperty::reset(class QObject *) const ?reset@QTextStream@@QAEXXZ @ 3123 NONAME ; void QTextStream::reset(void) ?resetCurrentSender@QObjectPrivate@@SAXPAVQObject@@PAUSender@1@1@Z @ 3124 NONAME ; void QObjectPrivate::resetCurrentSender(class QObject *, struct QObjectPrivate::Sender *, struct QObjectPrivate::Sender *) - ?resetDeleteWatch@QObjectPrivate@@SAXPAV1@PAHH@Z @ 3125 NONAME ; void QObjectPrivate::resetDeleteWatch(class QObjectPrivate *, int *, int) + ?resetDeleteWatch@QObjectPrivate@@SAXPAV1@PAHH@Z @ 3125 NONAME ABSENT ; void QObjectPrivate::resetDeleteWatch(class QObjectPrivate *, int *, int) ?resetStatus@QDataStream@@QAEXXZ @ 3126 NONAME ; void QDataStream::resetStatus(void) ?resetStatus@QTextStream@@QAEXXZ @ 3127 NONAME ; void QTextStream::resetStatus(void) ?resize@QBitArray@@QAEXH@Z @ 3128 NONAME ; void QBitArray::resize(int) @@ -3296,7 +3296,7 @@ EXPORTS ?setDefault@QLocale@@SAXABV1@@Z @ 3295 NONAME ; void QLocale::setDefault(class QLocale const &) ?setDefaultFormat@QSettings@@SAXW4Format@1@@Z @ 3296 NONAME ; void QSettings::setDefaultFormat(enum QSettings::Format) ?setDefaultState@QHistoryState@@QAEXPAVQAbstractState@@@Z @ 3297 NONAME ; void QHistoryState::setDefaultState(class QAbstractState *) - ?setDeleteWatch@QObjectPrivate@@SAPAHPAV1@PAH@Z @ 3298 NONAME ; int * QObjectPrivate::setDeleteWatch(class QObjectPrivate *, int *) + ?setDeleteWatch@QObjectPrivate@@SAPAHPAV1@PAH@Z @ 3298 NONAME ABSENT ; int * QObjectPrivate::setDeleteWatch(class QObjectPrivate *, int *) ?setDevice@QDataStream@@QAEXPAVQIODevice@@@Z @ 3299 NONAME ; void QDataStream::setDevice(class QIODevice *) ?setDevice@QTextStream@@QAEXPAVQIODevice@@@Z @ 3300 NONAME ; void QTextStream::setDevice(class QIODevice *) ?setDevice@QXmlStreamReader@@QAEXPAVQIODevice@@@Z @ 3301 NONAME ; void QXmlStreamReader::setDevice(class QIODevice *) @@ -4482,4 +4482,48 @@ EXPORTS ?textDirection@QLocale@@QBE?AW4LayoutDirection@Qt@@XZ @ 4481 NONAME ; enum Qt::LayoutDirection QLocale::textDirection(void) const ?msecsSinceReference@QElapsedTimer@@QBE_JXZ @ 4482 NONAME ; long long QElapsedTimer::msecsSinceReference(void) const ?selectThread@QEventDispatcherSymbian@@AAEAAVQSelectThread@@XZ @ 4483 NONAME ; class QSelectThread & QEventDispatcherSymbian::selectThread(void) + ??0QCoreApplication@@QAE@AAHPAPADH@Z @ 4484 NONAME ; QCoreApplication::QCoreApplication(int &, char * *, int) + ??0QCoreApplicationPrivate@@QAE@AAHPAPADI@Z @ 4485 NONAME ; QCoreApplicationPrivate::QCoreApplicationPrivate(int &, char * *, unsigned int) + ?connect@QObject@@SA_NPBV1@ABVQMetaMethod@@01W4ConnectionType@Qt@@@Z @ 4486 NONAME ; bool QObject::connect(class QObject const *, class QMetaMethod const &, class QObject const *, class QMetaMethod const &, enum Qt::ConnectionType) + ?contains@QString@@QBE?AVQBool@@ABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4487 NONAME ; class QBool QString::contains(class QStringRef const &, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@ABV1@W4CaseSensitivity@Qt@@@Z @ 4488 NONAME ; class QBool QStringRef::contains(class QStringRef const &, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@ABVQString@@W4CaseSensitivity@Qt@@@Z @ 4489 NONAME ; class QBool QStringRef::contains(class QString const &, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@VQChar@@W4CaseSensitivity@Qt@@@Z @ 4490 NONAME ; class QBool QStringRef::contains(class QChar, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@VQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 4491 NONAME ; class QBool QStringRef::contains(class QLatin1String, enum Qt::CaseSensitivity) const + ?count@QString@@QBEHABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4492 NONAME ; int QString::count(class QStringRef const &, enum Qt::CaseSensitivity) const + ?count@QStringRef@@QBEHABV1@W4CaseSensitivity@Qt@@@Z @ 4493 NONAME ; int QStringRef::count(class QStringRef const &, enum Qt::CaseSensitivity) const + ?count@QStringRef@@QBEHABVQString@@W4CaseSensitivity@Qt@@@Z @ 4494 NONAME ; int QStringRef::count(class QString const &, enum Qt::CaseSensitivity) const + ?count@QStringRef@@QBEHVQChar@@W4CaseSensitivity@Qt@@@Z @ 4495 NONAME ; int QStringRef::count(class QChar, enum Qt::CaseSensitivity) const + ?disconnect@QObject@@SA_NPBV1@ABVQMetaMethod@@01@Z @ 4496 NONAME ; bool QObject::disconnect(class QObject const *, class QMetaMethod const &, class QObject const *, class QMetaMethod const &) + ?endsWith@QString@@QBE_NABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4497 NONAME ; bool QString::endsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NABV1@W4CaseSensitivity@Qt@@@Z @ 4498 NONAME ; bool QStringRef::endsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NABVQString@@W4CaseSensitivity@Qt@@@Z @ 4499 NONAME ; bool QStringRef::endsWith(class QString const &, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NVQChar@@W4CaseSensitivity@Qt@@@Z @ 4500 NONAME ; bool QStringRef::endsWith(class QChar, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 4501 NONAME ; bool QStringRef::endsWith(class QLatin1String, enum Qt::CaseSensitivity) const + ?indexOf@QString@@QBEHABVQStringRef@@HW4CaseSensitivity@Qt@@@Z @ 4502 NONAME ; int QString::indexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHABV1@HW4CaseSensitivity@Qt@@@Z @ 4503 NONAME ; int QStringRef::indexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHABVQString@@HW4CaseSensitivity@Qt@@@Z @ 4504 NONAME ; int QStringRef::indexOf(class QString const &, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHVQChar@@HW4CaseSensitivity@Qt@@@Z @ 4505 NONAME ; int QStringRef::indexOf(class QChar, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHVQLatin1String@@HW4CaseSensitivity@Qt@@@Z @ 4506 NONAME ; int QStringRef::indexOf(class QLatin1String, int, enum Qt::CaseSensitivity) const + ?isLocalFile@QUrl@@QBE_NXZ @ 4507 NONAME ; bool QUrl::isLocalFile(void) const + ?lastIndexOf@QString@@QBEHABVQStringRef@@HW4CaseSensitivity@Qt@@@Z @ 4508 NONAME ; int QString::lastIndexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHABV1@HW4CaseSensitivity@Qt@@@Z @ 4509 NONAME ; int QStringRef::lastIndexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHABVQString@@HW4CaseSensitivity@Qt@@@Z @ 4510 NONAME ; int QStringRef::lastIndexOf(class QString const &, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHVQChar@@HW4CaseSensitivity@Qt@@@Z @ 4511 NONAME ; int QStringRef::lastIndexOf(class QChar, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHVQLatin1String@@HW4CaseSensitivity@Qt@@@Z @ 4512 NONAME ; int QStringRef::lastIndexOf(class QLatin1String, int, enum Qt::CaseSensitivity) const + ?lockInline@QMutex@@QAEXXZ @ 4513 NONAME ; void QMutex::lockInline(void) + ?lockInternal@QMutex@@AAEXXZ @ 4514 NONAME ; void QMutex::lockInternal(void) + ?nativeKey@QSharedMemory@@QBE?AVQString@@XZ @ 4515 NONAME ; class QString QSharedMemory::nativeKey(void) const + ?senderSignalIndex@QObject@@IBEHXZ @ 4516 NONAME ; int QObject::senderSignalIndex(void) const + ?setNativeKey@QSharedMemory@@QAEXABVQString@@@Z @ 4517 NONAME ; void QSharedMemory::setNativeKey(class QString const &) + ?startsWith@QString@@QBE_NABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4518 NONAME ; bool QString::startsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NABV1@W4CaseSensitivity@Qt@@@Z @ 4519 NONAME ; bool QStringRef::startsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NABVQString@@W4CaseSensitivity@Qt@@@Z @ 4520 NONAME ; bool QStringRef::startsWith(class QString const &, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NVQChar@@W4CaseSensitivity@Qt@@@Z @ 4521 NONAME ; bool QStringRef::startsWith(class QChar, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 4522 NONAME ; bool QStringRef::startsWith(class QLatin1String, enum Qt::CaseSensitivity) const + ?tryLockInline@QMutex@@QAE_NXZ @ 4523 NONAME ; bool QMutex::tryLockInline(void) + ?unlockInline@QMutex@@QAEXXZ @ 4524 NONAME ; void QMutex::unlockInline(void) + ?unlockInternal@QMutex@@AAEXXZ @ 4525 NONAME ; void QMutex::unlockInternal(void) + ?waitForDone@QThreadPool@@QAE_NH@Z @ 4526 NONAME ; bool QThreadPool::waitForDone(int) + ?app_compile_version@QCoreApplicationPrivate@@2HA @ 4527 NONAME ; int QCoreApplicationPrivate::app_compile_version diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index 90c0878..b2ac45e 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -35,7 +35,7 @@ EXPORTS ??0QApplication@@QAE@AAHPAPADW4Type@0@H@Z @ 34 NONAME ; QApplication::QApplication(int &, char * *, enum QApplication::Type, int) ??0QApplication@@QAE@AAHPAPAD_NH@Z @ 35 NONAME ; QApplication::QApplication(int &, char * *, bool, int) ??0QApplication@@QAE@P6APAVCApaApplication@@XZAAHPAPADH@Z @ 36 NONAME ; QApplication::QApplication(class CApaApplication * (*)(void), int &, char * *, int) - ??0QApplicationPrivate@@QAE@AAHPAPADW4Type@QApplication@@@Z @ 37 NONAME ; QApplicationPrivate::QApplicationPrivate(int &, char * *, enum QApplication::Type) + ??0QApplicationPrivate@@QAE@AAHPAPADW4Type@QApplication@@@Z @ 37 NONAME ABSENT ; QApplicationPrivate::QApplicationPrivate(int &, char * *, enum QApplication::Type) ??0QBitmap@@QAE@ABVQPixmap@@@Z @ 38 NONAME ; QBitmap::QBitmap(class QPixmap const &) ??0QBitmap@@QAE@ABVQSize@@@Z @ 39 NONAME ; QBitmap::QBitmap(class QSize const &) ??0QBitmap@@QAE@ABVQString@@PBD@Z @ 40 NONAME ; QBitmap::QBitmap(class QString const &, char const *) @@ -4148,7 +4148,7 @@ EXPORTS ?ensureSceneTransformRecursive@QGraphicsItemPrivate@@QAEXPAPAVQGraphicsItem@@@Z @ 4147 NONAME ; void QGraphicsItemPrivate::ensureSceneTransformRecursive(class QGraphicsItem * *) ?ensureSequentialSiblingIndex@QGraphicsItemPrivate@@QAEXXZ @ 4148 NONAME ; void QGraphicsItemPrivate::ensureSequentialSiblingIndex(void) ?ensureSortedChildren@QGraphicsItemPrivate@@QAEXXZ @ 4149 NONAME ; void QGraphicsItemPrivate::ensureSortedChildren(void) - ?ensureSpace@QTextEngine@@QBEXH@Z @ 4150 NONAME ; void QTextEngine::ensureSpace(int) const + ?ensureSpace@QTextEngine@@QBEXH@Z @ 4150 NONAME ABSENT ; void QTextEngine::ensureSpace(int) const ?ensureVisible@QGraphicsItem@@QAEXABVQRectF@@HH@Z @ 4151 NONAME ; void QGraphicsItem::ensureVisible(class QRectF const &, int, int) ?ensureVisible@QGraphicsItem@@QAEXMMMMHH@Z @ 4152 NONAME ; void QGraphicsItem::ensureVisible(float, float, float, float, int, int) ?ensureVisible@QGraphicsView@@QAEXABVQRectF@@HH@Z @ 4153 NONAME ; void QGraphicsView::ensureVisible(class QRectF const &, int, int) @@ -12511,7 +12511,7 @@ EXPORTS ?staticMetaObject@QFileSystemModel@@2UQMetaObject@@B @ 12510 NONAME ; struct QMetaObject const QFileSystemModel::staticMetaObject ?staticMetaObject@QKeyEventTransition@@2UQMetaObject@@B @ 12511 NONAME ; struct QMetaObject const QKeyEventTransition::staticMetaObject ?staticMetaObject@QLayout@@2UQMetaObject@@B @ 12512 NONAME ; struct QMetaObject const QLayout::staticMetaObject - ?app_compile_version@QApplicationPrivate@@2HA @ 12513 NONAME ; int QApplicationPrivate::app_compile_version + ?app_compile_version@QApplicationPrivate@@2HA @ 12513 NONAME ABSENT ; int QApplicationPrivate::app_compile_version ?spacerItemFactoryMethod@QLayoutPrivate@@2P6APAVQSpacerItem@@PBVQLayout@@HHW4Policy@QSizePolicy@@1@ZA @ 12514 NONAME ; class QSpacerItem * (*QLayoutPrivate::spacerItemFactoryMethod)(class QLayout const *, int, int, enum QSizePolicy::Policy, enum QSizePolicy::Policy) ?allWidgets@QWidgetPrivate@@2PAV?$QSet@PAVQWidget@@@@A @ 12515 NONAME ; class QSet * QWidgetPrivate::allWidgets ?effectiveFocusWidget@QWidgetPrivate@@QAEPAVQWidget@@XZ @ 12516 NONAME ; class QWidget * QWidgetPrivate::effectiveFocusWidget(void) @@ -12522,7 +12522,7 @@ EXPORTS ?addCacheData@QVectorPath@@QBEPAUCacheEntry@1@PAVQPaintEngineEx@@PAXP6AX01@Z@Z @ 12521 NONAME ; struct QVectorPath::CacheEntry * QVectorPath::addCacheData(class QPaintEngineEx *, void *, void (*)(class QPaintEngineEx *, void *)) const ?discardUpdateRequest@QGraphicsItemPrivate@@QBE_N_N00@Z @ 12522 NONAME ; bool QGraphicsItemPrivate::discardUpdateRequest(bool, bool, bool) const ?makeCacheable@QVectorPath@@QBEXXZ @ 12523 NONAME ; void QVectorPath::makeCacheable(void) const - ??0Tab@QTextOption@@QAE@ABU01@@Z @ 12524 NONAME ; QTextOption::Tab::Tab(struct QTextOption::Tab const &) + ??0Tab@QTextOption@@QAE@ABU01@@Z @ 12524 NONAME ABSENT ; QTextOption::Tab::Tab(struct QTextOption::Tab const &) ?effectiveBoundingRect@QGraphicsItemPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12525 NONAME ; class QRectF QGraphicsItemPrivate::effectiveBoundingRect(class QRectF const &) const ?glyphCache@QFontEngine@@QBEPAVQFontEngineGlyphCache@@PAXW4Type@2@ABVQTransform@@@Z @ 12526 NONAME ; class QFontEngineGlyphCache * QFontEngine::glyphCache(void *, enum QFontEngineGlyphCache::Type, class QTransform const &) const ?qt_blurImage@@YAXAAVQImage@@M_NH@Z @ 12527 NONAME ; void qt_blurImage(class QImage &, float, bool, int) @@ -12886,4 +12886,53 @@ EXPORTS ?zScaleChanged@QGraphicsScale@@IAEXXZ @ 12885 NONAME ; void QGraphicsScale::zScaleChanged(void) ?xScaleChanged@QGraphicsScale@@IAEXXZ @ 12886 NONAME ; void QGraphicsScale::xScaleChanged(void) ?yScaleChanged@QGraphicsScale@@IAEXXZ @ 12887 NONAME ; void QGraphicsScale::yScaleChanged(void) + ??0QApplicationPrivate@@QAE@AAHPAPADW4Type@QApplication@@H@Z @ 12888 NONAME ; QApplicationPrivate::QApplicationPrivate(int &, char * *, enum QApplication::Type, int) + ??0QGlyphs@@QAE@ABV0@@Z @ 12889 NONAME ; QGlyphs::QGlyphs(class QGlyphs const &) + ??0QGlyphs@@QAE@XZ @ 12890 NONAME ; QGlyphs::QGlyphs(void) + ??1QGlyphs@@QAE@XZ @ 12891 NONAME ; QGlyphs::~QGlyphs(void) + ??4QGlyphs@@QAEAAV0@ABV0@@Z @ 12892 NONAME ; class QGlyphs & QGlyphs::operator=(class QGlyphs const &) + ??8QGlyphs@@QBE_NABV0@@Z @ 12893 NONAME ; bool QGlyphs::operator==(class QGlyphs const &) const + ??9QGlyphs@@QBE_NABV0@@Z @ 12894 NONAME ; bool QGlyphs::operator!=(class QGlyphs const &) const + ??HQGlyphs@@ABE?AV0@ABV0@@Z @ 12895 NONAME ; class QGlyphs QGlyphs::operator+(class QGlyphs const &) const + ??MQItemSelectionRange@@QBE_NABV0@@Z @ 12896 NONAME ; bool QItemSelectionRange::operator<(class QItemSelectionRange const &) const + ??YQGlyphs@@AAEAAV0@ABV0@@Z @ 12897 NONAME ; class QGlyphs & QGlyphs::operator+=(class QGlyphs const &) + ?_q_aboutToQuit@QApplicationPrivate@@QAEXXZ @ 12898 NONAME ; void QApplicationPrivate::_q_aboutToQuit(void) + ?buddy@QAbstractProxyModel@@UBE?AVQModelIndex@@ABV2@@Z @ 12899 NONAME ; class QModelIndex QAbstractProxyModel::buddy(class QModelIndex const &) const + ?canFetchMore@QAbstractProxyModel@@UBE_NABVQModelIndex@@@Z @ 12900 NONAME ; bool QAbstractProxyModel::canFetchMore(class QModelIndex const &) const + ?clear@QGlyphs@@QAEXXZ @ 12901 NONAME ; void QGlyphs::clear(void) + ?clipBoundingRect@QPainter@@QBE?AVQRectF@@XZ @ 12902 NONAME ; class QRectF QPainter::clipBoundingRect(void) const + ?createExplicitFont@QFontEngine@@UBE?AVQFont@@XZ @ 12903 NONAME ; class QFont QFontEngine::createExplicitFont(void) const + ?createExplicitFontWithName@QFontEngine@@IBE?AVQFont@@ABVQString@@@Z @ 12904 NONAME ; class QFont QFontEngine::createExplicitFontWithName(class QString const &) const + ?detach@QGlyphs@@AAEXXZ @ 12905 NONAME ; void QGlyphs::detach(void) + ?drawGlyphs@QPainter@@QAEXABVQPointF@@ABVQGlyphs@@@Z @ 12906 NONAME ; void QPainter::drawGlyphs(class QPointF const &, class QGlyphs const &) + ?ensureSpace@QTextEngine@@QBE_NH@Z @ 12907 NONAME ; bool QTextEngine::ensureSpace(int) const + ?fetchMore@QAbstractProxyModel@@UAEXABVQModelIndex@@@Z @ 12908 NONAME ; void QAbstractProxyModel::fetchMore(class QModelIndex const &) + ?fill@QImage@@QAEXABVQColor@@@Z @ 12909 NONAME ; void QImage::fill(class QColor const &) + ?fill@QImage@@QAEXW4GlobalColor@Qt@@@Z @ 12910 NONAME ; void QImage::fill(enum Qt::GlobalColor) + ?fillInPendingGlyphs@QTextureGlyphCache@@QAEXXZ @ 12911 NONAME ; void QTextureGlyphCache::fillInPendingGlyphs(void) + ?font@QGlyphs@@QBE?AVQFont@@XZ @ 12912 NONAME ; class QFont QGlyphs::font(void) const + ?get@QFontPrivate@@SAPAV1@ABVQFont@@@Z @ 12913 NONAME ; class QFontPrivate * QFontPrivate::get(class QFont const &) + ?glyphIndexes@QGlyphs@@QBE?AV?$QVector@I@@XZ @ 12914 NONAME ; class QVector QGlyphs::glyphIndexes(void) const + ?glyphs@QTextFragment@@QBE?AV?$QList@VQGlyphs@@@@XZ @ 12915 NONAME ; class QList QTextFragment::glyphs(void) const + ?glyphs@QTextLayout@@QBE?AV?$QList@VQGlyphs@@@@XZ @ 12916 NONAME ; class QList QTextLayout::glyphs(void) const + ?glyphs@QTextLine@@ABE?AV?$QList@VQGlyphs@@@@HH@Z @ 12917 NONAME ; class QList QTextLine::glyphs(int, int) const + ?hasChildren@QAbstractProxyModel@@UBE_NABVQModelIndex@@@Z @ 12918 NONAME ; bool QAbstractProxyModel::hasChildren(class QModelIndex const &) const + ?hasHeightForWidth@QWidgetPrivate@@UBE_NXZ @ 12919 NONAME ; bool QWidgetPrivate::hasHeightForWidth(void) const + ?heightForWidth@QTabWidget@@UBEHH@Z @ 12920 NONAME ; int QTabWidget::heightForWidth(int) const + ?inFontUcs4@QFontMetrics@@QBE_NI@Z @ 12921 NONAME ; bool QFontMetrics::inFontUcs4(unsigned int) const + ?inFontUcs4@QFontMetricsF@@QBE_NI@Z @ 12922 NONAME ; bool QFontMetricsF::inFontUcs4(unsigned int) const + ?mimeData@QAbstractProxyModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 12923 NONAME ; class QMimeData * QAbstractProxyModel::mimeData(class QList const &) const + ?mimeTypes@QAbstractProxyModel@@UBE?AVQStringList@@XZ @ 12924 NONAME ; class QStringList QAbstractProxyModel::mimeTypes(void) const + ?minimumSizeHint@QCheckBox@@UBE?AVQSize@@XZ @ 12925 NONAME ; class QSize QCheckBox::minimumSizeHint(void) const + ?minimumSizeHint@QRadioButton@@UBE?AVQSize@@XZ @ 12926 NONAME ; class QSize QRadioButton::minimumSizeHint(void) const + ?positions@QGlyphs@@QBE?AV?$QVector@VQPointF@@@@XZ @ 12927 NONAME ; class QVector QGlyphs::positions(void) const + ?removeItem@QGraphicsGridLayout@@QAEXPAVQGraphicsLayoutItem@@@Z @ 12928 NONAME ; void QGraphicsGridLayout::removeItem(class QGraphicsLayoutItem *) + ?resizeCache@QTextureGlyphCache@@QAEXHH@Z @ 12929 NONAME ; void QTextureGlyphCache::resizeCache(int, int) + ?setFont@QGlyphs@@QAEXABVQFont@@@Z @ 12930 NONAME ; void QGlyphs::setFont(class QFont const &) + ?setGlyphIndexes@QGlyphs@@QAEXABV?$QVector@I@@@Z @ 12931 NONAME ; void QGlyphs::setGlyphIndexes(class QVector const &) + ?setItemData@QAbstractProxyModel@@UAE_NABVQModelIndex@@ABV?$QMap@HVQVariant@@@@@Z @ 12932 NONAME ; bool QAbstractProxyModel::setItemData(class QModelIndex const &, class QMap const &) + ?setPositions@QGlyphs@@QAEXABV?$QVector@VQPointF@@@@@Z @ 12933 NONAME ; void QGlyphs::setPositions(class QVector const &) + ?sort@QAbstractProxyModel@@UAEXHW4SortOrder@Qt@@@Z @ 12934 NONAME ; void QAbstractProxyModel::sort(int, enum Qt::SortOrder) + ?span@QAbstractProxyModel@@UBE?AVQSize@@ABVQModelIndex@@@Z @ 12935 NONAME ; class QSize QAbstractProxyModel::span(class QModelIndex const &) const + ?supportedDropActions@QAbstractProxyModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 12936 NONAME ; class QFlags QAbstractProxyModel::supportedDropActions(void) const diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index 46c4885..b1b3b65 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -620,8 +620,8 @@ EXPORTS _ZN14QObjectPrivate11clearGuardsEP7QObject @ 619 NONAME _ZN14QObjectPrivate13addConnectionEiPNS_10ConnectionE @ 620 NONAME _ZN14QObjectPrivate14deleteChildrenEv @ 621 NONAME - _ZN14QObjectPrivate14setDeleteWatchEPS_Pi @ 622 NONAME - _ZN14QObjectPrivate16resetDeleteWatchEPS_Pii @ 623 NONAME + _ZN14QObjectPrivate14setDeleteWatchEPS_Pi @ 622 NONAME ABSENT + _ZN14QObjectPrivate16resetDeleteWatchEPS_Pii @ 623 NONAME ABSENT _ZN14QObjectPrivate16setCurrentSenderEP7QObjectPNS_6SenderE @ 624 NONAME ABSENT _ZN14QObjectPrivate16setParent_helperEP7QObject @ 625 NONAME _ZN14QObjectPrivate18resetCurrentSenderEP7QObjectPNS_6SenderES3_ @ 626 NONAME ABSENT @@ -1274,8 +1274,8 @@ EXPORTS _ZN23QCoreApplicationPrivate34sendThroughApplicationEventFiltersEP7QObjectP6QEvent @ 1273 NONAME _ZN23QCoreApplicationPrivate35appendApplicationPathToLibraryPathsEv @ 1274 NONAME _ZN23QCoreApplicationPrivate7attribsE @ 1275 NONAME DATA 4 - _ZN23QCoreApplicationPrivateC1ERiPPc @ 1276 NONAME - _ZN23QCoreApplicationPrivateC2ERiPPc @ 1277 NONAME + _ZN23QCoreApplicationPrivateC1ERiPPc @ 1276 NONAME ABSENT + _ZN23QCoreApplicationPrivateC2ERiPPc @ 1277 NONAME ABSENT _ZN23QCoreApplicationPrivateD0Ev @ 1278 NONAME _ZN23QCoreApplicationPrivateD1Ev @ 1279 NONAME _ZN23QCoreApplicationPrivateD2Ev @ 1280 NONAME @@ -3711,4 +3711,42 @@ EXPORTS _ZN16QIODevicePrivate4peekEx @ 3710 NONAME _ZN8QProcess18setNativeArgumentsERK7QString @ 3711 NONAME _ZNK8QProcess15nativeArgumentsEv @ 3712 NONAME + _ZN11QThreadPool11waitForDoneEi @ 3713 NONAME + _ZN13QSharedMemory12setNativeKeyERK7QString @ 3714 NONAME + _ZN16QCoreApplicationC1ERiPPci @ 3715 NONAME + _ZN16QCoreApplicationC2ERiPPci @ 3716 NONAME + _ZN23QCoreApplicationPrivate19app_compile_versionE @ 3717 NONAME DATA 4 + _ZN23QCoreApplicationPrivateC1ERiPPcj @ 3718 NONAME + _ZN23QCoreApplicationPrivateC2ERiPPcj @ 3719 NONAME + _ZN6QMutex12lockInternalEv @ 3720 NONAME + _ZN6QMutex14unlockInternalEv @ 3721 NONAME + _ZN7QObject10disconnectEPKS_RK11QMetaMethodS1_S4_ @ 3722 NONAME + _ZN7QObject7connectEPKS_RK11QMetaMethodS1_S4_N2Qt14ConnectionTypeE @ 3723 NONAME + _ZNK10QStringRef10startsWithE13QLatin1StringN2Qt15CaseSensitivityE @ 3724 NONAME + _ZNK10QStringRef10startsWithE5QCharN2Qt15CaseSensitivityE @ 3725 NONAME + _ZNK10QStringRef10startsWithERK7QStringN2Qt15CaseSensitivityE @ 3726 NONAME + _ZNK10QStringRef10startsWithERKS_N2Qt15CaseSensitivityE @ 3727 NONAME + _ZNK10QStringRef11lastIndexOfE13QLatin1StringiN2Qt15CaseSensitivityE @ 3728 NONAME + _ZNK10QStringRef11lastIndexOfE5QChariN2Qt15CaseSensitivityE @ 3729 NONAME + _ZNK10QStringRef11lastIndexOfERK7QStringiN2Qt15CaseSensitivityE @ 3730 NONAME + _ZNK10QStringRef11lastIndexOfERKS_iN2Qt15CaseSensitivityE @ 3731 NONAME + _ZNK10QStringRef5countE5QCharN2Qt15CaseSensitivityE @ 3732 NONAME + _ZNK10QStringRef5countERK7QStringN2Qt15CaseSensitivityE @ 3733 NONAME + _ZNK10QStringRef5countERKS_N2Qt15CaseSensitivityE @ 3734 NONAME + _ZNK10QStringRef7indexOfE13QLatin1StringiN2Qt15CaseSensitivityE @ 3735 NONAME + _ZNK10QStringRef7indexOfE5QChariN2Qt15CaseSensitivityE @ 3736 NONAME + _ZNK10QStringRef7indexOfERK7QStringiN2Qt15CaseSensitivityE @ 3737 NONAME + _ZNK10QStringRef7indexOfERKS_iN2Qt15CaseSensitivityE @ 3738 NONAME + _ZNK10QStringRef8endsWithE13QLatin1StringN2Qt15CaseSensitivityE @ 3739 NONAME + _ZNK10QStringRef8endsWithE5QCharN2Qt15CaseSensitivityE @ 3740 NONAME + _ZNK10QStringRef8endsWithERK7QStringN2Qt15CaseSensitivityE @ 3741 NONAME + _ZNK10QStringRef8endsWithERKS_N2Qt15CaseSensitivityE @ 3742 NONAME + _ZNK13QSharedMemory9nativeKeyEv @ 3743 NONAME + _ZNK4QUrl11isLocalFileEv @ 3744 NONAME + _ZNK7QObject17senderSignalIndexEv @ 3745 NONAME + _ZNK7QString10startsWithERK10QStringRefN2Qt15CaseSensitivityE @ 3746 NONAME + _ZNK7QString11lastIndexOfERK10QStringRefiN2Qt15CaseSensitivityE @ 3747 NONAME + _ZNK7QString5countERK10QStringRefN2Qt15CaseSensitivityE @ 3748 NONAME + _ZNK7QString7indexOfERK10QStringRefiN2Qt15CaseSensitivityE @ 3749 NONAME + _ZNK7QString8endsWithERK10QStringRefN2Qt15CaseSensitivityE @ 3750 NONAME diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index d8e86bf..6f26918 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -4324,7 +4324,7 @@ EXPORTS _ZN19QApplicationPrivate18dispatchEnterLeaveEP7QWidgetS1_ @ 4323 NONAME _ZN19QApplicationPrivate18resolveS60ScanCodeEij @ 4324 NONAME _ZN19QApplicationPrivate18wheel_scroll_linesE @ 4325 NONAME DATA 4 - _ZN19QApplicationPrivate19app_compile_versionE @ 4326 NONAME DATA 4 + _ZN19QApplicationPrivate19app_compile_versionE @ 4326 NONAME DATA 4 ABSENT _ZN19QApplicationPrivate19hidden_focus_widgetE @ 4327 NONAME DATA 4 _ZN19QApplicationPrivate19keyboard_input_timeE @ 4328 NONAME DATA 4 _ZN19QApplicationPrivate20emitLastWindowClosedEv @ 4329 NONAME @@ -4356,8 +4356,8 @@ EXPORTS _ZN19QApplicationPrivate9constructEv @ 4355 NONAME _ZN19QApplicationPrivate9fade_menuE @ 4356 NONAME DATA 1 _ZN19QApplicationPrivate9openPopupEP7QWidget @ 4357 NONAME - _ZN19QApplicationPrivateC1ERiPPcN12QApplication4TypeE @ 4358 NONAME - _ZN19QApplicationPrivateC2ERiPPcN12QApplication4TypeE @ 4359 NONAME + _ZN19QApplicationPrivateC1ERiPPcN12QApplication4TypeE @ 4358 NONAME ABSENT + _ZN19QApplicationPrivateC2ERiPPcN12QApplication4TypeE @ 4359 NONAME ABSENT _ZN19QApplicationPrivateD0Ev @ 4360 NONAME _ZN19QApplicationPrivateD1Ev @ 4361 NONAME _ZN19QApplicationPrivateD2Ev @ 4362 NONAME @@ -12091,4 +12091,54 @@ EXPORTS _ZN14QGraphicsScale13xScaleChangedEv @ 12090 NONAME _ZN14QGraphicsScale13yScaleChangedEv @ 12091 NONAME _ZN14QGraphicsScale13zScaleChangedEv @ 12092 NONAME + _ZN18QTextureGlyphCache19fillInPendingGlyphsEv @ 12093 NONAME + _ZN19QAbstractProxyModel11setItemDataERK11QModelIndexRK4QMapIi8QVariantE @ 12094 NONAME + _ZN19QAbstractProxyModel4sortEiN2Qt9SortOrderE @ 12095 NONAME + _ZN19QAbstractProxyModel9fetchMoreERK11QModelIndex @ 12096 NONAME + _ZN19QApplicationPrivate14_q_aboutToQuitEv @ 12097 NONAME + _ZN19QApplicationPrivateC1ERiPPcN12QApplication4TypeEi @ 12098 NONAME + _ZN19QApplicationPrivateC2ERiPPcN12QApplication4TypeEi @ 12099 NONAME + _ZN19QGraphicsGridLayout10removeItemEP19QGraphicsLayoutItem @ 12100 NONAME + _ZN6QImage4fillEN2Qt11GlobalColorE @ 12101 NONAME + _ZN6QImage4fillERK6QColor @ 12102 NONAME + _ZN7QGlyphs12setPositionsERK7QVectorI7QPointFE @ 12103 NONAME + _ZN7QGlyphs15setGlyphIndexesERK7QVectorIjE @ 12104 NONAME + _ZN7QGlyphs5clearEv @ 12105 NONAME + _ZN7QGlyphs6detachEv @ 12106 NONAME + _ZN7QGlyphs7setFontERK5QFont @ 12107 NONAME + _ZN7QGlyphsC1ERKS_ @ 12108 NONAME + _ZN7QGlyphsC1Ev @ 12109 NONAME + _ZN7QGlyphsC2ERKS_ @ 12110 NONAME + _ZN7QGlyphsC2Ev @ 12111 NONAME + _ZN7QGlyphsD1Ev @ 12112 NONAME + _ZN7QGlyphsD2Ev @ 12113 NONAME + _ZN7QGlyphsaSERKS_ @ 12114 NONAME + _ZN7QGlyphspLERKS_ @ 12115 NONAME + _ZN8QPainter10drawGlyphsERK7QPointFRK7QGlyphs @ 12116 NONAME + _ZNK10QTabWidget14heightForWidthEi @ 12117 NONAME + _ZNK11QFontEngine18createExplicitFontEv @ 12118 NONAME + _ZNK11QFontEngine26createExplicitFontWithNameERK7QString @ 12119 NONAME + _ZNK11QTextLayout6glyphsEv @ 12120 NONAME + _ZNK12QFontMetrics10inFontUcs4Ej @ 12121 NONAME + _ZNK12QRadioButton15minimumSizeHintEv @ 12122 NONAME + _ZNK13QFontMetricsF10inFontUcs4Ej @ 12123 NONAME + _ZNK13QTextFragment6glyphsEv @ 12124 NONAME + _ZNK14QWidgetPrivate17hasHeightForWidthEv @ 12125 NONAME + _ZNK16QFileSystemModel5rmdirERK11QModelIndex @ 12126 NONAME + _ZNK19QAbstractProxyModel11hasChildrenERK11QModelIndex @ 12127 NONAME + _ZNK19QAbstractProxyModel12canFetchMoreERK11QModelIndex @ 12128 NONAME + _ZNK19QAbstractProxyModel20supportedDropActionsEv @ 12129 NONAME + _ZNK19QAbstractProxyModel4spanERK11QModelIndex @ 12130 NONAME + _ZNK19QAbstractProxyModel5buddyERK11QModelIndex @ 12131 NONAME + _ZNK19QAbstractProxyModel8mimeDataERK5QListI11QModelIndexE @ 12132 NONAME + _ZNK19QAbstractProxyModel9mimeTypesEv @ 12133 NONAME + _ZNK7QGlyphs12glyphIndexesEv @ 12134 NONAME + _ZNK7QGlyphs4fontEv @ 12135 NONAME + _ZNK7QGlyphs9positionsEv @ 12136 NONAME + _ZNK7QGlyphseqERKS_ @ 12137 NONAME + _ZNK7QGlyphsneERKS_ @ 12138 NONAME + _ZNK7QGlyphsplERKS_ @ 12139 NONAME + _ZNK8QPainter16clipBoundingRectEv @ 12140 NONAME + _ZNK9QCheckBox15minimumSizeHintEv @ 12141 NONAME + _ZNK9QTextLine6glyphsEii @ 12142 NONAME -- cgit v0.12 From 050fa9f6cc1145f5a835420b9974a6b0e261b062 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Tue, 7 Sep 2010 16:51:55 +0200 Subject: Add baseName and completeBaseName getters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Using the definition of the concepts from QFileInfo, allow us to use the already calculated indexes to fetch the baseName and the completeBaseName on a QFileSystemEntry. Reviewed-by: João Abecasis --- src/corelib/io/qfilesystementry.cpp | 26 +++++++++++--- src/corelib/io/qfilesystementry_p.h | 2 ++ .../auto/qfilesystementry/tst_qfilesystementry.cpp | 40 +++++++++++++++------- 3 files changed, 52 insertions(+), 16 deletions(-) diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index f5009b4..6f04c21 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -149,10 +149,8 @@ QString QFileSystemEntry::fileName() const { findLastSeparator(); #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) - if (m_lastSeparator == -1) { - if (m_filePath.length() >= 2 && m_filePath.at(1) == QLatin1Char(':')) - return m_filePath.mid(2); - } + if (m_lastSeparator == -1 && m_filePath.length() >= 2 && m_filePath.at(1) == QLatin1Char(':')) + return m_filePath.mid(2); #endif return m_filePath.mid(m_lastSeparator + 1); } @@ -176,6 +174,26 @@ QString QFileSystemEntry::path() const return m_filePath.left(m_lastSeparator); } +QString QFileSystemEntry::baseName() const +{ + findFileNameSeparators(); +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + if (m_lastSeparator == -1 && m_filePath.length() >= 2 && m_filePath.at(1) == QLatin1Char(':')) + return m_filePath.mid(2); +#endif + return m_filePath.mid(m_lastSeparator + 1, m_firstDotInFileName == -1 ?-1 : m_firstDotInFileName - 1); +} + +QString QFileSystemEntry::completeBaseName() const +{ + findFileNameSeparators(); +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + if (m_lastSeparator == -1 && m_filePath.length() >= 2 && m_filePath.at(1) == QLatin1Char(':')) + return m_filePath.mid(2); +#endif + return m_filePath.mid(m_lastSeparator + 1, m_firstDotInFileName == -1 ?-1 : m_firstDotInFileName + m_lastDotInFileName - 1); +} + QString QFileSystemEntry::suffix() const { findFileNameSeparators(); diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h index 6b2cedd..5a41782 100644 --- a/src/corelib/io/qfilesystementry_p.h +++ b/src/corelib/io/qfilesystementry_p.h @@ -83,6 +83,8 @@ public: QString fileName() const; QString path() const; NativePath nativeFilePath() const; + QString baseName() const; + QString completeBaseName() const; QString suffix() const; QString completeSuffix() const; bool isAbsolute() const; diff --git a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp index 5194c02..0fa63b5 100644 --- a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp +++ b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp @@ -65,6 +65,8 @@ void tst_QFileSystemEntry::getSetCheck_data() QTest::addColumn("internalnativeFilePath"); QTest::addColumn("filepath"); QTest::addColumn("filename"); + QTest::addColumn("baseName"); + QTest::addColumn("completeBasename"); QTest::addColumn("suffix"); QTest::addColumn("completeSuffix"); QTest::addColumn("absolute"); @@ -78,33 +80,33 @@ void tst_QFileSystemEntry::getSetCheck_data() << QString("A:\\home\\qt\\in\\a\\dir.tar.gz") << absPrefix + QString("A:\\home\\qt\\in\\a\\dir.tar.gz") << "A:/home/qt/in/a/dir.tar.gz" - << "dir.tar.gz" << "gz" << "tar.gz" << true; + << "dir.tar.gz" << "dir" << "dir.tar" << "gz" << "tar.gz" << true; QTest::newRow("relative") << QString("in\\a\\dir.tar.gz") << relPrefix + QString("in\\a\\dir.tar.gz") << "in/a/dir.tar.gz" - << "dir.tar.gz" << "gz" << "tar.gz" << false; + << "dir.tar.gz" << "dir" << "dir.tar" << "gz" << "tar.gz" << false; QTest::newRow("noSuffix") << QString("myDir\\myfile") << relPrefix + QString("myDir\\myfile") - << "myDir/myfile" << "myfile" << "" << "" << false; + << "myDir/myfile" << "myfile" << "myfile" << "myfile" << "" << "" << false; QTest::newRow("noLongSuffix") << QString("myDir\\myfile.txt") << relPrefix + QString("myDir\\myfile.txt") - << "myDir/myfile.txt" << "myfile.txt" << "txt" << "txt" << false; + << "myDir/myfile.txt" << "myfile.txt" << "myfile" << "myfile" << "txt" << "txt" << false; QTest::newRow("endingSlash") << QString("myDir\\myfile.bla\\") << relPrefix + QString("myDir\\myfile.bla\\") - << "myDir/myfile.bla/" << "" << "" << "" << false; + << "myDir/myfile.bla/" << "" << "" << "" << "" << "" << false; QTest::newRow("absolutePath") << QString("A:dir\\without\\leading\\backslash.bat") << absPrefix + QString("A:\\dir\\without\\leading\\backslash.bat") - << "A:dir/without/leading/backslash.bat" << "backslash.bat" << "bat" << "bat" << true; + << "A:dir/without/leading/backslash.bat" << "backslash.bat" << << "backslash" << "backslash" << "bat" << "bat" << true; } void tst_QFileSystemEntry::getSetCheck() @@ -113,6 +115,8 @@ void tst_QFileSystemEntry::getSetCheck() QFETCH(QString, internalnativeFilePath); QFETCH(QString, filepath); QFETCH(QString, filename); + QFETCH(QString, basename); + QFETCH(QString, completeBasename); QFETCH(QString, suffix); QFETCH(QString, completeSuffix); QFETCH(bool, absolute); @@ -125,6 +129,8 @@ void tst_QFileSystemEntry::getSetCheck() QCOMPARE(entry1.completeSuffix(), completeSuffix); QCOMPARE(entry1.isAbsolute(), absolute); QCOMPARE(entry1.isRelative(), !absolute); + QCOMPARE(entry1.baseName(), basename); + QCOMPARE(entry1.completeBaseName(), completeBasename); QFileSystemEntry entry2(nativeFilePath, QFileSystemEntry::FromNativePath()); QCOMPARE(entry2.suffix(), suffix); @@ -136,6 +142,8 @@ void tst_QFileSystemEntry::getSetCheck() // the object shouldnot change nativeFilePath. QCOMPARE(entry2.nativeFilePath(), nativeFilePath); QCOMPARE(entry2.fileName(), filename); + QCOMPARE(entry2.baseName(), basename); + QCOMPARE(entry2.completeBaseName(), completeBasename); } #else @@ -145,6 +153,8 @@ void tst_QFileSystemEntry::getSetCheck_data() QTest::addColumn("nativeFilePath"); QTest::addColumn("filepath"); QTest::addColumn("filename"); + QTest::addColumn("basename"); + QTest::addColumn("completeBasename"); QTest::addColumn("suffix"); QTest::addColumn("completeSuffix"); QTest::addColumn("absolute"); @@ -152,27 +162,27 @@ void tst_QFileSystemEntry::getSetCheck_data() QTest::newRow("simple") << QByteArray("/home/qt/in/a/dir.tar.gz") << "/home/qt/in/a/dir.tar.gz" - << "dir.tar.gz" << "gz" << "tar.gz" << true; + << "dir.tar.gz" << "dir" << "dir.tar" << "gz" << "tar.gz" << true; QTest::newRow("relative") << QByteArray("in/a/dir.tar.gz") << "in/a/dir.tar.gz" - << "dir.tar.gz" << "gz" << "tar.gz" << false; + << "dir.tar.gz" << "dir" << "dir.tar" << "gz" << "tar.gz" << false; QTest::newRow("noSuffix") << QByteArray("myDir/myfile") - << "myDir/myfile" << "myfile" << "" << "" << false; + << "myDir/myfile" << "myfile" << "myfile" << "myfile" << "" << "" << false; QTest::newRow("noLongSuffix") << QByteArray("myDir/myfile.txt") - << "myDir/myfile.txt" << "myfile.txt" << "txt" << "txt" << false; + << "myDir/myfile.txt" << "myfile.txt" << "myfile" << "myfile" << "txt" << "txt" << false; QTest::newRow("endingSlash") << QByteArray("myDir/myfile.bla/") - << "myDir/myfile.bla/" << "" << "" << "" << false; + << "myDir/myfile.bla/" << "" << "" << "" << "" << "" << false; QTest::newRow("relativePath") << QByteArray("A:dir/without/leading/backslash.bat") - << "A:dir/without/leading/backslash.bat" << "backslash.bat" << "bat" << "bat" << false; + << "A:dir/without/leading/backslash.bat" << "backslash.bat" << "backslash" << "backslash" << "bat" << "bat" << false; } void tst_QFileSystemEntry::getSetCheck() @@ -180,6 +190,8 @@ void tst_QFileSystemEntry::getSetCheck() QFETCH(QByteArray, nativeFilePath); QFETCH(QString, filepath); QFETCH(QString, filename); + QFETCH(QString, basename); + QFETCH(QString, completeBasename); QFETCH(QString, suffix); QFETCH(QString, completeSuffix); QFETCH(bool, absolute); @@ -192,6 +204,8 @@ void tst_QFileSystemEntry::getSetCheck() QCOMPARE(entry1.completeSuffix(), completeSuffix); QCOMPARE(entry1.isAbsolute(), absolute); QCOMPARE(entry1.isRelative(), !absolute); + QCOMPARE(entry1.baseName(), basename); + QCOMPARE(entry1.completeBaseName(), completeBasename); QFileSystemEntry entry2(nativeFilePath, QFileSystemEntry::FromNativePath()); QCOMPARE(entry2.suffix(), suffix); @@ -201,6 +215,8 @@ void tst_QFileSystemEntry::getSetCheck() QCOMPARE(entry2.filePath(), filepath); QCOMPARE(entry2.nativeFilePath(), nativeFilePath); QCOMPARE(entry2.fileName(), filename); + QCOMPARE(entry2.baseName(), basename); + QCOMPARE(entry2.completeBaseName(), completeBasename); } #endif -- cgit v0.12 From e34c6ac1146d7bb97da88805764d9fa90763b6b5 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Tue, 7 Sep 2010 17:36:04 +0200 Subject: Various fixes in suffix and other entry methods. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added lots of unit tests (inspired from qfileinfo) and found plenty of bugs that I fixed. Reviewed-by: João Abecasis --- src/corelib/io/qfilesystementry.cpp | 25 ++-- .../auto/qfilesystementry/tst_qfilesystementry.cpp | 132 +++++++++++++++++++++ 2 files changed, 150 insertions(+), 7 deletions(-) diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index 6f04c21..733a226 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -181,7 +181,13 @@ QString QFileSystemEntry::baseName() const if (m_lastSeparator == -1 && m_filePath.length() >= 2 && m_filePath.at(1) == QLatin1Char(':')) return m_filePath.mid(2); #endif - return m_filePath.mid(m_lastSeparator + 1, m_firstDotInFileName == -1 ?-1 : m_firstDotInFileName - 1); + int length = -1; + if (m_firstDotInFileName >= 0) { + length = m_firstDotInFileName; + if (m_lastSeparator != -1) // avoid off by one + length--; + } + return m_filePath.mid(m_lastSeparator + 1, length); } QString QFileSystemEntry::completeBaseName() const @@ -191,7 +197,13 @@ QString QFileSystemEntry::completeBaseName() const if (m_lastSeparator == -1 && m_filePath.length() >= 2 && m_filePath.at(1) == QLatin1Char(':')) return m_filePath.mid(2); #endif - return m_filePath.mid(m_lastSeparator + 1, m_firstDotInFileName == -1 ?-1 : m_firstDotInFileName + m_lastDotInFileName - 1); + int length = -1; + if (m_firstDotInFileName >= 0) { + length = m_firstDotInFileName + m_lastDotInFileName; + if (m_lastSeparator != -1) // avoid off by one + length--; + } + return m_filePath.mid(m_lastSeparator + 1, length); } QString QFileSystemEntry::suffix() const @@ -201,7 +213,7 @@ QString QFileSystemEntry::suffix() const if (m_lastDotInFileName == -1) return QString(); - return m_filePath.mid(m_lastSeparator + m_firstDotInFileName + m_lastDotInFileName + 1); + return m_filePath.mid(qMax((qint16)0, m_lastSeparator) + m_firstDotInFileName + m_lastDotInFileName + 1); } QString QFileSystemEntry::completeSuffix() const @@ -210,7 +222,7 @@ QString QFileSystemEntry::completeSuffix() const if (m_firstDotInFileName == -1) return QString(); - return m_filePath.mid(m_lastSeparator + m_firstDotInFileName + 1); + return m_filePath.mid(qMax((qint16)0, m_lastSeparator) + m_firstDotInFileName + 1); } bool QFileSystemEntry::isAbsolute() const @@ -310,15 +322,14 @@ void QFileSystemEntry::findFileNameSeparators() const } } } - m_lastSeparator = lastSeparator; - m_firstDotInFileName = firstDotInFileName == -1 ? -1 : firstDotInFileName - lastSeparator; + m_firstDotInFileName = firstDotInFileName == -1 ? -1 : firstDotInFileName - qMax(0, lastSeparator); if (lastDotInFileName == -1) m_lastDotInFileName = -1; else if (firstDotInFileName == lastDotInFileName) m_lastDotInFileName = 0; else - m_lastDotInFileName = firstDotInFileName - lastSeparator; + m_lastDotInFileName = lastDotInFileName - firstDotInFileName; } } diff --git a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp index 0fa63b5..267fa8c 100644 --- a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp +++ b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp @@ -56,6 +56,14 @@ class tst_QFileSystemEntry : public QObject private slots: void getSetCheck_data(); void getSetCheck(); + void suffix_data(); + void suffix(); + void completeSuffix_data(); + void completeSuffix(); + void baseName_data(); + void baseName(); + void completeBaseName_data(); + void completeBaseName(); }; #if defined(WIN_STUFF) @@ -220,5 +228,129 @@ void tst_QFileSystemEntry::getSetCheck() } #endif +void tst_QFileSystemEntry::suffix_data() +{ + QTest::addColumn("file"); + QTest::addColumn("expected"); + + QTest::newRow("noextension0") << "file" << ""; + QTest::newRow("noextension1") << "/path/to/file" << ""; + QTest::newRow("data0") << "file.tar" << "tar"; + QTest::newRow("data1") << "file.tar.gz" << "gz"; + QTest::newRow("data2") << "/path/file/file.tar.gz" << "gz"; + QTest::newRow("data3") << "/path/file.tar" << "tar"; + QTest::newRow("hidden1") << ".ext1" << "ext1"; + QTest::newRow("hidden1") << ".ext" << "ext"; + QTest::newRow("hidden1") << ".ex" << "ex"; + QTest::newRow("hidden1") << ".e" << "e"; + QTest::newRow("hidden2") << ".ext1.ext2" << "ext2"; + QTest::newRow("hidden2") << ".ext.ext2" << "ext2"; + QTest::newRow("hidden2") << ".ex.ext2" << "ext2"; + QTest::newRow("hidden2") << ".e.ext2" << "ext2"; + QTest::newRow("hidden2") << "..ext2" << "ext2"; + QTest::newRow("dots") << "/path/file.with.dots/file..ext2" << "ext2"; + QTest::newRow("dots2") << "/path/file.with.dots/.file..ext2" << "ext2"; +} + +void tst_QFileSystemEntry::suffix() +{ + QFETCH(QString, file); + QFETCH(QString, expected); + + QFileSystemEntry fe(file); + QCOMPARE(fe.suffix(), expected); + + QFileSystemEntry fi2(file); + // first resolve the last slash + (void) fi2.path(); + QCOMPARE(fi2.suffix(), expected); +} + +void tst_QFileSystemEntry::completeSuffix_data() +{ + QTest::addColumn("file"); + QTest::addColumn("expected"); + + QTest::newRow("noextension0") << "file" << ""; + QTest::newRow("noextension1") << "/path/to/file" << ""; + QTest::newRow("data0") << "file.tar" << "tar"; + QTest::newRow("data1") << "file.tar.gz" << "tar.gz"; + QTest::newRow("data2") << "/path/file/file.tar.gz" << "tar.gz"; + QTest::newRow("data3") << "/path/file.tar" << "tar"; + QTest::newRow("dots") << "/path/file.with.dots/file..ext2" << ".ext2"; + QTest::newRow("dots2") << "/path/file.with.dots/.file..ext2" << "file..ext2"; +} + +void tst_QFileSystemEntry::completeSuffix() +{ + QFETCH(QString, file); + QFETCH(QString, expected); + + QFileSystemEntry fi(file); + QCOMPARE(fi.completeSuffix(), expected); + + QFileSystemEntry fi2(file); + // first resolve the last slash + (void) fi2.path(); + QCOMPARE(fi2.completeSuffix(), expected); +} + +void tst_QFileSystemEntry::baseName_data() +{ + QTest::addColumn("file"); + QTest::addColumn("expected"); + + QTest::newRow("data0") << "file.tar" << "file"; + QTest::newRow("data1") << "file.tar.gz" << "file"; + QTest::newRow("data2") << "/path/file/file.tar.gz" << "file"; + QTest::newRow("data3") << "/path/file.tar" << "file"; + QTest::newRow("data4") << "/path/file" << "file"; + QTest::newRow("dots") << "/path/file.with.dots/file..ext2" << "file"; + QTest::newRow("dots2") << "/path/file.with.dots/.file..ext2" << ""; +} + +void tst_QFileSystemEntry::baseName() +{ + QFETCH(QString, file); + QFETCH(QString, expected); + + QFileSystemEntry fi(file); + QCOMPARE(fi.baseName(), expected); + + QFileSystemEntry fi2(file); + // first resolve the last slash + (void) fi2.path(); + QCOMPARE(fi2.baseName(), expected); +} + +void tst_QFileSystemEntry::completeBaseName_data() +{ + QTest::addColumn("file"); + QTest::addColumn("expected"); + + QTest::newRow("data0") << "file.tar" << "file"; + QTest::newRow("data1") << "file.tar.gz" << "file.tar"; + QTest::newRow("data2") << "/path/file/file.tar.gz" << "file.tar"; + QTest::newRow("data3") << "/path/file.tar" << "file"; + QTest::newRow("data4") << "/path/file" << "file"; + QTest::newRow("dots") << "/path/file.with.dots/file..ext2" << "file."; + QTest::newRow("dots2") << "/path/file.with.dots/.file..ext2" << ".file."; +} + +void tst_QFileSystemEntry::completeBaseName() +{ + QFETCH(QString, file); + QFETCH(QString, expected); + + QFileSystemEntry fi(file); + QCOMPARE(fi.completeBaseName(), expected); + + QFileSystemEntry fi2(file); + // first resolve the last slash + (void) fi2.path(); + QCOMPARE(fi2.completeBaseName(), expected); +} + + QTEST_MAIN(tst_QFileSystemEntry) #include -- cgit v0.12 From 881b7547c2be0dc2b7e223175b8c43e4bda78991 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 8 Sep 2010 14:38:06 +0200 Subject: Make QFileInfo use the new filesystemengine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The creation of a QAbstractFileEngine derived class will now be avoided if the file we are watching is on the native file system and from then on all access will be through the direct API Notice that for QFileInfo::path, isRelative, filePath, fileName, baseName, completeBaseName, completeSuffix and suffix we now use the QFileSystemEntry instead of asking the engine. This means that some buggy or just weird user provided engines no longer get used and as such we might not be bug compatible. Reviewed-by: João Abecasis --- src/corelib/io/qfileinfo.cpp | 213 ++++++++++++++++++++++++++------- src/corelib/io/qfileinfo_p.h | 19 ++- src/corelib/io/qfilesystemmetadata_p.h | 6 + tests/auto/qfileinfo/tst_qfileinfo.cpp | 7 +- 4 files changed, 195 insertions(+), 50 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 7eca212..232a32e 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -51,7 +51,47 @@ QString QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName name) const { if (cache_enabled && !fileNames[(int)name].isNull()) return fileNames[(int)name]; - QString ret = fileEngine->fileName(name); + + QString ret; + if (fileEngine == 0) { // local file; use the QFileSystemEngine directly + switch (name) { + case QAbstractFileEngine::CanonicalName: + case QAbstractFileEngine::CanonicalPathName: { + QFileSystemEntry entry = QFileSystemEngine::canonicalName(fileEntry); + if (cache_enabled) { // be smart and store both + fileNames[QAbstractFileEngine::CanonicalName] = entry.filePath(); + fileNames[QAbstractFileEngine::CanonicalPathName] = entry.path(); + } + if (name == QAbstractFileEngine::CanonicalName) + ret = entry.filePath(); + else + ret = entry.path(); + break; + } + case QAbstractFileEngine::LinkName: + ret = QFileSystemEngine::getLinkTarget(fileEntry, metaData).filePath(); + break; + case QAbstractFileEngine::BundleName: + ret = QFileSystemEngine::bundleName(fileEntry); + break; + case QAbstractFileEngine::AbsoluteName: + case QAbstractFileEngine::AbsolutePathName: { + QFileSystemEntry entry = QFileSystemEngine::absoluteName(fileEntry); + if (cache_enabled) { // be smart and store both + fileNames[QAbstractFileEngine::AbsoluteName] = entry.filePath(); + fileNames[QAbstractFileEngine::AbsolutePathName] = entry.path(); + } + if (name == QAbstractFileEngine::AbsoluteName) + ret = entry.filePath(); + else + ret = entry.path(); + break; + } + default: break; + } + } else { + ret = fileEngine->fileName(name); + } if (ret.isNull()) ret = QLatin1String(""); if (cache_enabled) @@ -61,6 +101,7 @@ QString QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName name) const QString QFileInfoPrivate::getFileOwner(QAbstractFileEngine::FileOwner own) const { + Q_ASSERT(fileEngine); // should never be called when using the native FS if (cache_enabled && !fileOwners[(int)own].isNull()) return fileOwners[(int)own]; QString ret = fileEngine->owner(own); @@ -73,6 +114,7 @@ QString QFileInfoPrivate::getFileOwner(QAbstractFileEngine::FileOwner own) const uint QFileInfoPrivate::getFileFlags(QAbstractFileEngine::FileFlags request) const { + Q_ASSERT(fileEngine); // should never be called when using the native FS // We split the testing into tests for for LinkType, BundleType, PermsMask // and the rest. // Tests for file permissions on Windows can be slow, expecially on network @@ -133,6 +175,7 @@ uint QFileInfoPrivate::getFileFlags(QAbstractFileEngine::FileFlags request) cons QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request) const { + Q_ASSERT(fileEngine); // should never be called when using the native FS if (!cache_enabled) clearFlags(); uint cf; @@ -330,23 +373,23 @@ bool QFileInfo::operator==(const QFileInfo &fileinfo) const return true; if (d->isDefaultConstructed || fileinfo.d_ptr->isDefaultConstructed) return false; - if (d->fileEngine->caseSensitive() != fileinfo.d_ptr->fileEngine->caseSensitive()) - return false; - if (fileinfo.size() == size()) { //if the size isn't the same... - QString file1 = canonicalFilePath(), - file2 = fileinfo.canonicalFilePath(); - if (file1.length() == file2.length()) { - if (!fileinfo.d_ptr->fileEngine->caseSensitive()) { - for (int i = 0; i < file1.length(); i++) { - if (file1.at(i).toLower() != file2.at(i).toLower()) - return false; - } - return true; - } - return (file1 == file2); - } + Qt::CaseSensitivity sensitive; + if (d->fileEngine == 0 || fileinfo.d_ptr->fileEngine == 0) { + if (d->fileEngine != fileinfo.d_ptr->fileEngine) // one is native, the other is a custom file-engine + return false; + + sensitive = QFileSystemEngine::isCaseSensitive() ? Qt::CaseSensitive : Qt::CaseInsensitive; + // if both are native just compare the canonicalFilePath of both. + } else { + if (d->fileEngine->caseSensitive() != fileinfo.d_ptr->fileEngine->caseSensitive()) + return false; + sensitive = d->fileEngine->caseSensitive() ? Qt::CaseSensitive : Qt::CaseInsensitive; } - return false; + + if (fileinfo.size() != size()) //if the size isn't the same... + return false; + + return canonicalFilePath().compare(fileinfo.canonicalFilePath(), sensitive) == 0; } /*! @@ -502,7 +545,7 @@ QString QFileInfo::absolutePath() const if (d->isDefaultConstructed) { return QLatin1String(""); - } else if (d->fileName.isEmpty()) { + } else if (d->fileEntry.isEmpty()) { qWarning("QFileInfo::absolutePath: Constructed with empty filename"); return QLatin1String(""); } @@ -539,7 +582,7 @@ QString QFileInfo::path() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::PathName); + return d->fileEntry.path(); } /*! @@ -563,7 +606,7 @@ bool QFileInfo::isRelative() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return true; - return d->fileEngine->isRelativePath(); + return d->fileEntry.isRelative(); } /*! @@ -576,12 +619,10 @@ bool QFileInfo::isRelative() const bool QFileInfo::makeAbsolute() { if (d_ptr.constData()->isDefaultConstructed - || !d_ptr.constData()->fileEngine->isRelativePath()) + || !d_ptr.constData()->fileEntry.isRelative()) return false; - QString absFileName = d_ptr.constData()->getFileName(QAbstractFileEngine::AbsoluteName); - // QSharedDataPointer::operator->() will detach. - setFile(absFileName); + setFile(absoluteFilePath()); return true; } @@ -596,6 +637,11 @@ bool QFileInfo::exists() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return false; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::ExistsAttribute)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::ExistsAttribute); + return d->metaData.exists(); + } return d->getFileFlags(QAbstractFileEngine::ExistsFlag); } @@ -623,7 +669,7 @@ QString QFileInfo::filePath() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::DefaultName); + return d->fileEntry.filePath(); } /*! @@ -642,7 +688,7 @@ QString QFileInfo::fileName() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::BaseName); + return d->fileEntry.fileName(); } /*! @@ -686,7 +732,7 @@ QString QFileInfo::baseName() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); - return d->getFileName(QAbstractFileEngine::BaseName).section(QLatin1Char('.'), 0, 0); + return d->fileEntry.baseName(); } /*! @@ -705,9 +751,7 @@ QString QFileInfo::completeBaseName() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); - QString name = d->getFileName(QAbstractFileEngine::BaseName); - int index = name.lastIndexOf(QLatin1Char('.')); - return (index == -1) ? name : name.left(index); + return d->fileEntry.completeBaseName(); } /*! @@ -726,11 +770,7 @@ QString QFileInfo::completeSuffix() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); - QString fileName = d->getFileName(QAbstractFileEngine::BaseName); - int firstDot = fileName.indexOf(QLatin1Char('.')); - if (firstDot == -1) - return QLatin1String(""); - return fileName.mid(firstDot + 1); + return d->fileEntry.completeSuffix(); } /*! @@ -753,11 +793,7 @@ QString QFileInfo::suffix() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); - QString fileName = d->getFileName(QAbstractFileEngine::BaseName); - int lastDot = fileName.lastIndexOf(QLatin1Char('.')); - if (lastDot == -1) - return QLatin1String(""); - return fileName.mid(lastDot + 1); + return d->fileEntry.suffix(); } @@ -781,8 +817,9 @@ QString QFileInfo::suffix() const */ QDir QFileInfo::dir() const { + Q_D(const QFileInfo); // ### Qt5: Maybe rename this to parentDirectory(), considering what it actually do? - return QDir(path()); + return QDir(d->fileEntry.path()); } /*! @@ -818,6 +855,11 @@ bool QFileInfo::isReadable() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return false; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::UserReadPermission)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::UserReadPermission); + return (d->metaData.permissions() & QFile::ReadUser) != 0; + } return d->getFileFlags(QAbstractFileEngine::ReadUserPerm); } @@ -831,6 +873,11 @@ bool QFileInfo::isWritable() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return false; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::UserWritePermission)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::UserWritePermission); + return (d->metaData.permissions() & QFile::WriteUser) != 0; + } return d->getFileFlags(QAbstractFileEngine::WriteUserPerm); } @@ -844,6 +891,11 @@ bool QFileInfo::isExecutable() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return false; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::UserExecutePermission)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::UserExecutePermission); + return (d->metaData.permissions() & QFile::ExeUser) != 0; + } return d->getFileFlags(QAbstractFileEngine::ExeUserPerm); } @@ -858,6 +910,11 @@ bool QFileInfo::isHidden() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return false; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::HiddenAttribute)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::HiddenAttribute); + return d->metaData.isHidden(); + } return d->getFileFlags(QAbstractFileEngine::HiddenFlag); } @@ -873,6 +930,11 @@ bool QFileInfo::isFile() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return false; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::FileType)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::FileType); + return d->metaData.isFile(); + } return d->getFileFlags(QAbstractFileEngine::FileType); } @@ -887,6 +949,11 @@ bool QFileInfo::isDir() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return false; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::DirectoryType)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::DirectoryType); + return d->metaData.isDirectory(); + } return d->getFileFlags(QAbstractFileEngine::DirectoryType); } @@ -903,6 +970,11 @@ bool QFileInfo::isBundle() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return false; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::BundleType)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::BundleType); + return d->metaData.isBundle(); + } return d->getFileFlags(QAbstractFileEngine::BundleType); } @@ -928,6 +1000,11 @@ bool QFileInfo::isSymLink() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return false; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::LinkType)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::LinkType); + return d->metaData.isLink(); + } return d->getFileFlags(QAbstractFileEngine::LinkType); } @@ -941,6 +1018,8 @@ bool QFileInfo::isRoot() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return true; + if (d->fileEngine == 0) + return d->fileEntry.isRoot(); return d->getFileFlags(QAbstractFileEngine::RootFlag); } @@ -987,6 +1066,11 @@ QString QFileInfo::owner() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::UserName)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::UserName); + return d->metaData.user(); + } return d->getFileOwner(QAbstractFileEngine::OwnerUser); } @@ -1003,6 +1087,11 @@ uint QFileInfo::ownerId() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return 0; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::UserId)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::UserId); + return d->metaData.userId(); + } return d->fileEngine->ownerId(QAbstractFileEngine::OwnerUser); } @@ -1021,6 +1110,11 @@ QString QFileInfo::group() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::GroupName)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::GroupName); + return d->metaData.group(); + } return d->getFileOwner(QAbstractFileEngine::OwnerGroup); } @@ -1037,6 +1131,11 @@ uint QFileInfo::groupId() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return 0; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::GroupId)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::GroupId); + return d->metaData.groupId(); + } return d->fileEngine->ownerId(QAbstractFileEngine::OwnerGroup); } @@ -1058,6 +1157,13 @@ bool QFileInfo::permission(QFile::Permissions permissions) const Q_D(const QFileInfo); if (d->isDefaultConstructed) return false; + if (d->fileEngine == 0) { + // the QFileSystemMetaData::MetaDataFlag and QFile::Permissions overlap, so just static cast. + QFileSystemMetaData::MetaDataFlag permissionFlags = static_cast((int)permissions); + if (!d->cache_enabled || !d->metaData.hasFlags(permissionFlags)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, permissionFlags); + return (d->metaData.permissions() & permissions) == permissions; + } return d->getFileFlags(QAbstractFileEngine::FileFlags((int)permissions)) == (uint)permissions; } @@ -1070,6 +1176,11 @@ QFile::Permissions QFileInfo::permissions() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return 0; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::Permissions)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::Permissions); + return d->metaData.permissions(); + } return QFile::Permissions(d->getFileFlags(QAbstractFileEngine::PermsMask) & QAbstractFileEngine::PermsMask); } @@ -1085,6 +1196,11 @@ qint64 QFileInfo::size() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return 0; + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::SizeAttribute)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::SizeAttribute); + return d->metaData.size(); + } if (!d->getCachedFlag(QFileInfoPrivate::CachedSize)) { d->setCachedFlag(QFileInfoPrivate::CachedSize); d->fileSize = d->fileEngine->size(); @@ -1110,6 +1226,11 @@ QDateTime QFileInfo::created() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QDateTime(); + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::CreationTime)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::CreationTime); + return d->metaData.creationTime(); + } return d->getFileTime(QAbstractFileEngine::CreationTime); } @@ -1123,6 +1244,11 @@ QDateTime QFileInfo::lastModified() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QDateTime(); + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::ModificationTime)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::ModificationTime); + return d->metaData.modificationTime(); + } return d->getFileTime(QAbstractFileEngine::ModificationTime); } @@ -1139,6 +1265,11 @@ QDateTime QFileInfo::lastRead() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QDateTime(); + if (d->fileEngine == 0) { + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::AccessTime)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::AccessTime); + return d->metaData.accessTime(); + } return d->getFileTime(QAbstractFileEngine::AccessTime); } diff --git a/src/corelib/io/qfileinfo_p.h b/src/corelib/io/qfileinfo_p.h index b9b1092..a97d4d3 100644 --- a/src/corelib/io/qfileinfo_p.h +++ b/src/corelib/io/qfileinfo_p.h @@ -58,13 +58,14 @@ #include "qdatetime.h" #include "qatomic.h" #include "qshareddata.h" +#include "qfilesystementry_p.h" +#include "qfilesystemengine_p.h" QT_BEGIN_NAMESPACE class QFileInfoPrivate : public QSharedData { public: - enum { CachedFileFlags=0x01, CachedLinkTypeFlag=0x02, CachedBundleTypeFlag=0x04, CachedMTime=0x10, CachedCTime=0x20, CachedATime=0x40, CachedSize =0x08, CachedPerms=0x80 }; @@ -76,8 +77,10 @@ public: cache_enabled(true), fileFlags(0), fileSize(0) {} inline QFileInfoPrivate(const QFileInfoPrivate ©) - : QSharedData(copy), fileEngine(QAbstractFileEngine::create(copy.fileName)), - fileName(copy.fileName), + : QSharedData(copy), + fileEntry(copy.fileEntry), + metaData(copy.metaData), + fileEngine(QFileSystemEngine::resolveEntryAndCreateLegacyEngine(fileEntry, metaData)), cachedFlags(0), #ifndef QT_NO_FSFILEENGINE isDefaultConstructed(false), @@ -87,8 +90,8 @@ public: cache_enabled(copy.cache_enabled), fileFlags(0), fileSize(0) {} inline QFileInfoPrivate(const QString &file) - : QSharedData(), fileEngine(QAbstractFileEngine::create(file)), - fileName(file), + : fileEntry(file), + fileEngine(QFileSystemEngine::resolveEntryAndCreateLegacyEngine(fileEntry, metaData)), cachedFlags(0), #ifndef QT_NO_FSFILEENGINE isDefaultConstructed(false), @@ -106,6 +109,7 @@ public: (void)fileEngine->fileFlags(QAbstractFileEngine::Refresh); } inline void clear() { + metaData.clear(); clearFlags(); for (int i = QAbstractFileEngine::NFileNames - 1 ; i >= 0 ; --i) fileNames[i].clear(); @@ -118,9 +122,11 @@ public: QString getFileName(QAbstractFileEngine::FileName) const; QString getFileOwner(QAbstractFileEngine::FileOwner own) const; + QFileSystemEntry fileEntry; + mutable QFileSystemMetaData metaData; + QScopedPointer const fileEngine; - mutable QString fileName; mutable QString fileNames[QAbstractFileEngine::NFileNames]; mutable QString fileOwners[2]; @@ -134,6 +140,7 @@ public: { return cache_enabled ? (cachedFlags & c) : 0; } inline void setCachedFlag(uint c) const { if (cache_enabled) cachedFlags |= c; } + }; QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index f140319..a506fa4 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -134,6 +134,9 @@ struct QFileSystemMetaData OwnerIds = UserId | GroupId, + UserName = 0x40000000, + GroupName = 0x80000000, + PosixStatFlags = QFileSystemMetaData::OtherPermissions | QFileSystemMetaData::GroupPermissions | QFileSystemMetaData::OwnerPermissions @@ -224,6 +227,9 @@ struct QFileSystemMetaData uint userId() const { return userId_; } uint groupId() const { return groupId_; } + QString user() const { return QString(); /* TODO */ } + QString group() const { return QString(); /* TODO */ } + uint ownerId(QAbstractFileEngine::FileOwner owner) const { if (owner == QAbstractFileEngine::OwnerUser) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 08cb68d..cced207 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -1255,9 +1255,10 @@ void tst_QFileInfo::isLocalFs() QFileInfo info(path); QFileInfoPrivate *privateInfo = getPrivate(info); - QVERIFY(privateInfo->fileEngine); - QCOMPARE(bool(privateInfo->fileEngine->fileFlags(QAbstractFileEngine::LocalDiskFlag) - & QAbstractFileEngine::LocalDiskFlag), isLocalFs); + QCOMPARE((privateInfo->fileEngine == 0), isLocalFs); + if (privateInfo->fileEngine) + QCOMPARE(bool(privateInfo->fileEngine->fileFlags(QAbstractFileEngine::LocalDiskFlag) + & QAbstractFileEngine::LocalDiskFlag), isLocalFs); } void tst_QFileInfo::refresh() -- cgit v0.12 From 2e0ccea933efa503607f455450ce5d7374ecc395 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Thu, 9 Sep 2010 12:18:36 +0200 Subject: Fix warning of unused variable on non-symbian --- src/corelib/io/qfsfileengine_unix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index e4c6f09..c6e7300 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -491,8 +491,8 @@ qint64 QFSFileEnginePrivate::nativeReadLine(char *data, qint64 maxlen) */ qint64 QFSFileEnginePrivate::nativeWrite(const char *data, qint64 len) { - Q_Q(QFSFileEngine); #ifdef Q_OS_SYMBIAN + Q_Q(QFSFileEngine); if (symbianFile.SubSessionHandle()) { if(len > KMaxTInt) { //this check is more likely to catch a corrupt length, since it isn't possible to allocate 2GB buffers (yet..) -- cgit v0.12 From 99cc67240494e06297df3876163b40f79b861c36 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Thu, 9 Sep 2010 13:25:06 +0200 Subject: Make compile on symbian / armcc --- src/corelib/io/qfilesystemengine_symbian.cpp | 2 +- src/corelib/io/qfilesystemiterator_symbian.cpp | 2 +- src/corelib/io/qfilesystemmetadata_p.h | 4 +++- tests/auto/qfilesystementry/tst_qfilesystementry.cpp | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 1205274..759aafd 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -41,7 +41,7 @@ #include "qfilesystemengine_p.h" #include "qfsfileengine.h" -#include "qcore_symbian_p.h" +#include #include diff --git a/src/corelib/io/qfilesystemiterator_symbian.cpp b/src/corelib/io/qfilesystemiterator_symbian.cpp index 9093599..106eda9 100644 --- a/src/corelib/io/qfilesystemiterator_symbian.cpp +++ b/src/corelib/io/qfilesystemiterator_symbian.cpp @@ -41,7 +41,7 @@ #include "qfilesystemiterator_p.h" #include "qfilesystemengine_p.h" -#include "qcore_symbian_p.h" +#include QT_BEGIN_NAMESPACE diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index a506fa4..1164d42 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -62,7 +62,7 @@ #if defined(Q_OS_WIN) #elif defined(Q_OS_SYMBIAN) #include -#include "qdatetime_p.h" +#include #else #endif @@ -253,6 +253,8 @@ struct QFileSystemMetaData } uint userId() const { return (uint) -2; } uint groupId() const { return (uint) -2; } + QString user() const { return QString(); } + QString group() const { return QString(); } uint ownerId(QAbstractFileEngine::FileOwner owner) const { Q_UNUSED(owner); diff --git a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp index 267fa8c..e00a214 100644 --- a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp +++ b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp @@ -114,7 +114,7 @@ void tst_QFileSystemEntry::getSetCheck_data() QTest::newRow("absolutePath") << QString("A:dir\\without\\leading\\backslash.bat") << absPrefix + QString("A:\\dir\\without\\leading\\backslash.bat") - << "A:dir/without/leading/backslash.bat" << "backslash.bat" << << "backslash" << "backslash" << "bat" << "bat" << true; + << "A:dir/without/leading/backslash.bat" << "backslash.bat" << "backslash" << "backslash" << "bat" << "bat" << true; } void tst_QFileSystemEntry::getSetCheck() -- cgit v0.12 From 5baa2d0da807ec5b4635c891ec27125769bade2d Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 9 Sep 2010 11:28:11 +0100 Subject: Fix tst_qdiriterator for symbian Since 21e0423a, the directory structure for iteration is created by the test on initialisation. Furthermore the directory structure no longer exists in git, causing a build error at the deployment stage. Also, defined Q_NO_SYMLINKS to disable test cases related to symlinks Reviewed-By: joao --- tests/auto/qdiriterator/qdiriterator.pro | 5 ----- tests/auto/qdiriterator/tst_qdiriterator.cpp | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/tests/auto/qdiriterator/qdiriterator.pro b/tests/auto/qdiriterator/qdiriterator.pro index d60b52d..0a154d6 100644 --- a/tests/auto/qdiriterator/qdiriterator.pro +++ b/tests/auto/qdiriterator/qdiriterator.pro @@ -3,10 +3,5 @@ SOURCES += tst_qdiriterator.cpp RESOURCES += qdiriterator.qrc QT = core -wince*|symbian: { - addFiles.sources = entrylist recursiveDirs foo - addFiles.path = . - DEPLOYMENT += addFiles wince*mips*|wincewm50smart-msvc200*: DEFINES += WINCE_BROKEN_ITERATE=1 -} diff --git a/tests/auto/qdiriterator/tst_qdiriterator.cpp b/tests/auto/qdiriterator/tst_qdiriterator.cpp index 1a873b8..f78ce34 100644 --- a/tests/auto/qdiriterator/tst_qdiriterator.cpp +++ b/tests/auto/qdiriterator/tst_qdiriterator.cpp @@ -53,7 +53,7 @@ #endif #if defined(Q_OS_SYMBIAN) -// Open C in Symbian doesn't support symbolic links to directories +#define Q_NO_SYMLINKS #define Q_NO_SYMLINKS_TO_DIRS #endif -- cgit v0.12 From 113a56eb0c88cdee3209dcf16af8bc51ccef080d Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 9 Sep 2010 14:54:47 +0100 Subject: backward compatibility fix for QFileInfo::isRoot() In the old system, QFileInfo("p:/").isRoot() would return false because the file engine first checks exists(). Assuming P: is not mounted that would return false. This change makes QFileInfo::isRoot() check the drive exists. Reviewed-By: joao --- src/corelib/io/qfileinfo.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 232a32e..5d632d3 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -1018,8 +1018,20 @@ bool QFileInfo::isRoot() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return true; - if (d->fileEngine == 0) - return d->fileEntry.isRoot(); + if (d->fileEngine == 0) { + if (d->fileEntry.isRoot()) { +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + //the path is a drive root, but the drive may not exist + //for backward compatibility, return true only if the drive exists + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::ExistsAttribute)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::ExistsAttribute); + return d->metaData.exists(); +#else + return true; +#endif + } + return false; + } return d->getFileFlags(QAbstractFileEngine::RootFlag); } -- cgit v0.12 From 87c150517b36ac89f17f2455494dc63fccdb5727 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 9 Sep 2010 16:13:21 +0100 Subject: Create QFileSystemEntry objects with / as directory separator It simplifies the code for users of QFileSystemEntry to assume that filePath() returns / seperated paths, and nativeFilePath returns paths using the native dir separator (e.g. \) Reviewed-By: joao --- src/corelib/io/qfileinfo_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qfileinfo_p.h b/src/corelib/io/qfileinfo_p.h index a97d4d3..6db84c4 100644 --- a/src/corelib/io/qfileinfo_p.h +++ b/src/corelib/io/qfileinfo_p.h @@ -90,7 +90,7 @@ public: cache_enabled(copy.cache_enabled), fileFlags(0), fileSize(0) {} inline QFileInfoPrivate(const QString &file) - : fileEntry(file), + : fileEntry(QDir::fromNativeSeparators(file)), fileEngine(QFileSystemEngine::resolveEntryAndCreateLegacyEngine(fileEntry, metaData)), cachedFlags(0), #ifndef QT_NO_FSFILEENGINE -- cgit v0.12 From e2f34f6b77c8ddb39a6983648818a25236ddeebb Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 9 Sep 2010 16:15:57 +0100 Subject: Set size and modification time to 0 if file does not exist Since we report the size and modification time as known in the knownFlags() for non existant files, they need to be set to something. In particular, size is used in QFileInfo comparisons. Reviewed-By: joao --- src/corelib/io/qfilesystemengine_symbian.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 759aafd..e725147 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -194,6 +194,10 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM if (!err) data.fillFromTEntry(ent); } + if (err) { + data.size_ = 0; + data.modificationTime_ = TTime(0); + } data.knownFlagsMask |= QFileSystemMetaData::SymbianTEntryFlags; } return data.hasFlags(what); -- cgit v0.12 From 30dcb614f31d64f052312b65bdd7720974b809d4 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 9 Sep 2010 17:05:33 +0100 Subject: Set file metadata variables to known values when stat fails For unix port, set file times and size to 0, and owner/group id to -2 (nobody) for files that don't exist. Also implemented saving owner and group ids in fillFromStatBuf, which was missing. Reviewed-by: joao --- src/corelib/io/qfilesystemengine.cpp | 2 ++ src/corelib/io/qfilesystemengine_unix.cpp | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index 0563a15..56072d4 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -280,6 +280,8 @@ void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer) creationTime_ = statBuffer.st_ctime ? statBuffer.st_ctime : statBuffer.st_mtime; modificationTime_ = statBuffer.st_mtime; accessTime_ = statBuffer.st_atime; + userId_ = statBuffer.st_uid; + groupId_ = statBuffer.st_gid; #endif } diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 8d77963..65cb42f 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -343,8 +343,15 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM if (statBufferValid) data.fillFromStatBuf(statBuffer); - else + else { entryExists = false; + data.creationTime_ = 0; + data.modificationTime_ = 0; + data.accessTime_ = 0; + data.size_ = 0; + data.userId_ = (uint) -2; + data.groupId_ = (uint) -2; + } // reset the mask data.knownFlagsMask |= QFileSystemMetaData::PosixStatFlags -- cgit v0.12 From 1a3d4eaf52669eff4e48d2f8a2d62c41347bf8d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 10 Sep 2010 09:15:27 +0200 Subject: Fixing QDir/tree traverseDirectory benchmark Was missing counter initialization at the start of QBENCHMARK loop. --- tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp index ad5ae98..cbe931d 100644 --- a/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp +++ b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp @@ -154,6 +154,7 @@ private slots: QDir::AllEntries | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); + count = 0; while (iterator.hasNext()) { iterator.next(); ++count; -- cgit v0.12 From 5f0e9b7666c689a8b7ea23eefa5a7a68b0a0ed78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 10 Sep 2010 09:46:56 +0200 Subject: Minor clean up on QDirIterator Removing unnecessary garbage, inlining a destructor. --- src/corelib/io/qdiriterator.cpp | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index fd4b9c1..3544d87 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -102,21 +102,17 @@ QT_BEGIN_NAMESPACE class QDirIteratorPrivateIteratorStack : public QStack { public: - ~QDirIteratorPrivateIteratorStack(); + ~QDirIteratorPrivateIteratorStack() + { + qDeleteAll(*this); + } }; -QDirIteratorPrivateIteratorStack::~QDirIteratorPrivateIteratorStack() -{ - qDeleteAll(*this); -} - - class QDirIteratorPrivate { public: QDirIteratorPrivate(const QString &path, const QStringList &nameFilters, QDir::Filters filters, QDirIterator::IteratorFlags flags); - ~QDirIteratorPrivate(); void advance(); @@ -141,8 +137,6 @@ public: // Loop protection QSet visitedLinks; - - QDirIterator *q; }; /*! @@ -173,13 +167,6 @@ QDirIteratorPrivate::QDirIteratorPrivate(const QString &path, const QStringList /*! \internal */ -QDirIteratorPrivate::~QDirIteratorPrivate() -{ -} - -/*! - \internal -*/ void QDirIteratorPrivate::pushDirectory(const QFileInfo &fileInfo) { QString path = fileInfo.filePath(); @@ -375,7 +362,6 @@ bool QDirIteratorPrivate::matchesFilters(const QString &fileName, const QFileInf QDirIterator::QDirIterator(const QDir &dir, IteratorFlags flags) : d(new QDirIteratorPrivate(dir.path(), dir.nameFilters(), dir.filter(), flags)) { - d->q = this; } /*! @@ -397,7 +383,6 @@ QDirIterator::QDirIterator(const QDir &dir, IteratorFlags flags) QDirIterator::QDirIterator(const QString &path, QDir::Filters filters, IteratorFlags flags) : d(new QDirIteratorPrivate(path, QStringList(), filters, flags)) { - d->q = this; } /*! @@ -415,7 +400,6 @@ QDirIterator::QDirIterator(const QString &path, QDir::Filters filters, IteratorF QDirIterator::QDirIterator(const QString &path, IteratorFlags flags) : d(new QDirIteratorPrivate(path, QStringList(), QDir::NoFilter, flags)) { - d->q = this; } /*! @@ -438,7 +422,6 @@ QDirIterator::QDirIterator(const QString &path, const QStringList &nameFilters, QDir::Filters filters, IteratorFlags flags) : d(new QDirIteratorPrivate(path, nameFilters, filters, flags)) { - d->q = this; } /*! -- cgit v0.12 From 4506d57fc0320234efcd4ab39e2fe9c2810b4d3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 10 Sep 2010 10:21:18 +0200 Subject: QFileinfo: fix isSymLink on Mac On Mac OS X, we also flag Alias Records as symbolic links. Since we now make the distinction in the engine, we need to query for it explicitly. Added a new type LegacyLinkType to QFileSystemMetaData to document this old behavior. --- src/corelib/io/qfileinfo.cpp | 6 +++--- src/corelib/io/qfilesystemmetadata_p.h | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 5d632d3..68f1f55 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -1001,9 +1001,9 @@ bool QFileInfo::isSymLink() const if (d->isDefaultConstructed) return false; if (d->fileEngine == 0) { - if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::LinkType)) - QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::LinkType); - return d->metaData.isLink(); + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::LegacyLinkType)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::LegacyLinkType); + return d->metaData.isLegacyLink(); } return d->getFileFlags(QAbstractFileEngine::LinkType); } diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 1164d42..9df762c 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -112,6 +112,8 @@ struct QFileSystemMetaData #endif SequentialType = 0x00800000, // Note: overlaps with QAbstractFileEngine::RootFlag + LegacyLinkType = LinkType | AliasType, + Type = LinkType | FileType | DirectoryType | BundleType | SequentialType | AliasType, // Attributes @@ -195,6 +197,7 @@ struct QFileSystemMetaData bool isBundle() const { return false; } bool isAlias() const { return false; } #endif + bool isLegacyLink() const { return (entryFlags & LegacyLinkType); } bool isSequential() const { return (entryFlags & SequentialType); } bool isHidden() const { return (entryFlags & HiddenAttribute); } -- cgit v0.12 From 529aa7d39f8eab70a954f02ac1ac5a6bac9889bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 10 Sep 2010 14:17:12 +0200 Subject: Fix QFileInfo::isHidden on Mac Having HiddenAttribute as part of PosixStatFlags, meant that we would assume we knew about it whenever we stat'ed, which wasn't the intent. As that is just one of the queries we do on Mac OS to determine if a file is considered hidden. Instead, we explicitly ask for a stat anytime the attribute is queried for. The proper fix will be to perform the cheap operations (e.g., file name begins with '.') first and only stat if we still haven't got an answer. --- src/corelib/io/qfilesystemengine_unix.cpp | 7 +++++++ src/corelib/io/qfilesystemmetadata_p.h | 4 ---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 65cb42f..eb6b9f1 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -300,6 +300,13 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM } #endif +#if !defined(QWS) && defined(Q_OS_MAC) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 + if (what & QFileSystemMetaData::HiddenAttribute) { + // Mac OS >= 10.5: st_flags & UF_HIDDEN + what |= QFileSystemMetaData::PosixStatFlags; + } +#endif + if (what & QFileSystemMetaData::PosixStatFlags) what |= QFileSystemMetaData::PosixStatFlags; diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 9df762c..c34cc1e 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -145,10 +145,6 @@ struct QFileSystemMetaData | QFileSystemMetaData::FileType | QFileSystemMetaData::DirectoryType | QFileSystemMetaData::SequentialType -#if !defined(QWS) && defined(Q_OS_MAC) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 - // Mac OS >= 10.5: st_flags & UF_HIDDEN - | QFileSystemMetaData::HiddenAttribute -#endif | QFileSystemMetaData::SizeAttribute | QFileSystemMetaData::Times | QFileSystemMetaData::OwnerIds, -- cgit v0.12 From 69b8cf630e9cc83cd678814bf88495c7fbb438f4 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 10 Sep 2010 13:42:53 +0100 Subject: Move OS specific inlines outside of class declaration This makes it easier to read, as common functions with different implementations depending on the OS are only declared once in the class. Reviewed-By: joao --- src/corelib/io/qfilesystemmetadata_p.h | 140 +++++++++++++++++++-------------- 1 file changed, 79 insertions(+), 61 deletions(-) diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index c34cc1e..f7bc863 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -70,8 +70,9 @@ QT_BEGIN_NAMESPACE class QFileSystemEngine; -struct QFileSystemMetaData +class QFileSystemMetaData { +public: QFileSystemMetaData() : knownFlagsMask(0) { @@ -186,13 +187,8 @@ struct QFileSystemMetaData bool isLink() const { return (entryFlags & LinkType); } bool isFile() const { return (entryFlags & FileType); } bool isDirectory() const { return (entryFlags & DirectoryType); } -#if !defined(QWS) && defined(Q_OS_MAC) - bool isBundle() const { return (entryFlags & BundleType); } - bool isAlias() const { return (entryFlags & AliasType); } -#else - bool isBundle() const { return false; } - bool isAlias() const { return false; } -#endif + bool isBundle() const; + bool isAlias() const; bool isLegacyLink() const { return (entryFlags & LegacyLinkType); } bool isSequential() const { return (entryFlags & SequentialType); } bool isHidden() const { return (entryFlags & HiddenAttribute); } @@ -201,65 +197,21 @@ struct QFileSystemMetaData QFile::Permissions permissions() const { return QFile::Permissions(Permissions & entryFlags); } -#if defined(Q_OS_UNIX) && !defined (Q_OS_SYMBIAN) - QDateTime creationTime() const { return QDateTime::fromTime_t(creationTime_); } - QDateTime modificationTime() const { return QDateTime::fromTime_t(modificationTime_); } - QDateTime accessTime() const { return QDateTime::fromTime_t(accessTime_); } - - QDateTime fileTime(QAbstractFileEngine::FileTime time) const - { - switch (time) - { - case QAbstractFileEngine::ModificationTime: - return modificationTime(); - - case QAbstractFileEngine::AccessTime: - return accessTime(); - - case QAbstractFileEngine::CreationTime: - return creationTime(); - } - - return QDateTime(); - } - - uint userId() const { return userId_; } - uint groupId() const { return groupId_; } + QDateTime creationTime() const; + QDateTime modificationTime() const; + QDateTime accessTime() const; - QString user() const { return QString(); /* TODO */ } - QString group() const { return QString(); /* TODO */ } + QDateTime fileTime(QAbstractFileEngine::FileTime time) const; + uint userId() const; + uint groupId() const; + QString user() const; + QString group() const; + uint ownerId(QAbstractFileEngine::FileOwner owner) const; - uint ownerId(QAbstractFileEngine::FileOwner owner) const - { - if (owner == QAbstractFileEngine::OwnerUser) - return userId(); - else - return groupId(); - } -#endif #ifdef Q_OS_UNIX void fillFromStatBuf(const QT_STATBUF &statBuffer); #endif #ifdef Q_OS_SYMBIAN - QDateTime creationTime() const { return modificationTime(); } - QDateTime modificationTime() const { return qt_symbian_TTime_To_QDateTime(modificationTime_); } - QDateTime accessTime() const { return modificationTime(); } - - QDateTime fileTime(QAbstractFileEngine::FileTime time) const - { - Q_UNUSED(time); - return modificationTime(); - } - uint userId() const { return (uint) -2; } - uint groupId() const { return (uint) -2; } - QString user() const { return QString(); } - QString group() const { return QString(); } - uint ownerId(QAbstractFileEngine::FileOwner owner) const - { - Q_UNUSED(owner); - return (uint) -2; - } - void fillFromTEntry(const TEntry& entry); void fillFromVolumeInfo(const TVolumeInfo& info); #endif @@ -289,6 +241,72 @@ private: Q_DECLARE_OPERATORS_FOR_FLAGS(QFileSystemMetaData::MetaDataFlags) +#if !defined(QWS) && defined(Q_OS_MAC) +inline bool QFileSystemMetaData::isBundle() const { return (entryFlags & BundleType); } +inline bool QFileSystemMetaData::isAlias() const { return (entryFlags & AliasType); } +#else +inline bool QFileSystemMetaData::isBundle() const { return false; } +inline bool QFileSystemMetaData::isAlias() const { return false; } +#endif + +#if defined(Q_OS_UNIX) && !defined (Q_OS_SYMBIAN) +inline QDateTime QFileSystemMetaData::creationTime() const { return QDateTime::fromTime_t(creationTime_); } +inline QDateTime QFileSystemMetaData::modificationTime() const { return QDateTime::fromTime_t(modificationTime_); } +inline QDateTime QFileSystemMetaData::accessTime() const { return QDateTime::fromTime_t(accessTime_); } + +inline QDateTime QFileSystemMetaData::fileTime(QAbstractFileEngine::FileTime time) const +{ + switch (time) + { + case QAbstractFileEngine::ModificationTime: + return modificationTime(); + + case QAbstractFileEngine::AccessTime: + return accessTime(); + + case QAbstractFileEngine::CreationTime: + return creationTime(); + } + + return QDateTime(); +} + +inline uint QFileSystemMetaData::userId() const { return userId_; } +inline uint QFileSystemMetaData::groupId() const { return groupId_; } + +inline QString QFileSystemMetaData::user() const { return QString(); /* TODO */ } +inline QString QFileSystemMetaData::group() const { return QString(); /* TODO */ } + +inline uint QFileSystemMetaData::ownerId(QAbstractFileEngine::FileOwner owner) const +{ + if (owner == QAbstractFileEngine::OwnerUser) + return userId(); + else + return groupId(); +} +#endif + +#ifdef Q_OS_SYMBIAN +inline QDateTime QFileSystemMetaData::creationTime() const { return modificationTime(); } +inline QDateTime QFileSystemMetaData::modificationTime() const { return qt_symbian_TTime_To_QDateTime(modificationTime_); } +inline QDateTime QFileSystemMetaData::accessTime() const { return modificationTime(); } + +inline QDateTime QFileSystemMetaData::fileTime(QAbstractFileEngine::FileTime time) const +{ + Q_UNUSED(time); + return modificationTime(); +} +inline uint QFileSystemMetaData::userId() const { return (uint) -2; } +inline uint QFileSystemMetaData::groupId() const { return (uint) -2; } +inline QString QFileSystemMetaData::user() const { return QString(); } +inline QString QFileSystemMetaData::group() const { return QString(); } +inline uint QFileSystemMetaData::ownerId(QAbstractFileEngine::FileOwner owner) const +{ + Q_UNUSED(owner); + return (uint) -2; +} +#endif + QT_END_NAMESPACE #endif // include guard -- cgit v0.12 From cc23ac99d68af5c9bf537e5451b7ee7c7698e954 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Fri, 10 Sep 2010 15:15:43 +0200 Subject: Move resolving of user/group name to the engine. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: João Abecasis --- src/corelib/io/qfileinfo.cpp | 25 +++++++++++++------------ src/corelib/io/qfilesystemengine.cpp | 16 ++++++++++++++++ src/corelib/io/qfilesystemengine_p.h | 4 ++++ src/corelib/io/qfilesystemengine_symbian.cpp | 12 ++++++++++++ src/corelib/io/qfilesystemengine_unix.cpp | 12 ++++++++++++ src/corelib/io/qfilesystemengine_win.cpp | 12 ++++++++++++ src/corelib/io/qfilesystemmetadata_p.h | 13 +------------ 7 files changed, 70 insertions(+), 24 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 68f1f55..d49ee74 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -101,10 +101,21 @@ QString QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName name) const QString QFileInfoPrivate::getFileOwner(QAbstractFileEngine::FileOwner own) const { - Q_ASSERT(fileEngine); // should never be called when using the native FS if (cache_enabled && !fileOwners[(int)own].isNull()) return fileOwners[(int)own]; - QString ret = fileEngine->owner(own); + QString ret; + if (fileEngine == 0) { + switch (own) { + case QAbstractFileEngine::OwnerUser: + ret = QFileSystemEngine::resolveUserName(fileEntry, metaData); + break; + case QAbstractFileEngine::OwnerGroup: + ret = QFileSystemEngine::resolveGroupName(fileEntry, metaData); + break; + } + } else { + ret = fileEngine->owner(own); + } if (ret.isNull()) ret = QLatin1String(""); if (cache_enabled) @@ -1078,11 +1089,6 @@ QString QFileInfo::owner() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); - if (d->fileEngine == 0) { - if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::UserName)) - QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::UserName); - return d->metaData.user(); - } return d->getFileOwner(QAbstractFileEngine::OwnerUser); } @@ -1122,11 +1128,6 @@ QString QFileInfo::group() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return QLatin1String(""); - if (d->fileEngine == 0) { - if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::GroupName)) - QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::GroupName); - return d->metaData.group(); - } return d->getFileOwner(QAbstractFileEngine::OwnerGroup); } diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index 56072d4..cbc4c42 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -287,4 +287,20 @@ void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer) #endif +//static +QString QFileSystemEngine::resolveUserName(const QFileSystemEntry &entry, QFileSystemMetaData &metaData) +{ + if (!metaData.hasFlags(QFileSystemMetaData::UserId)) + QFileSystemEngine::fillMetaData(entry, metaData, QFileSystemMetaData::UserId); + return resolveGroupName(metaData.userId()); +} + +//static +QString QFileSystemEngine::resolveGroupName(const QFileSystemEntry &entry, QFileSystemMetaData &metaData) +{ + if (!metaData.hasFlags(QFileSystemMetaData::GroupId)) + QFileSystemEngine::fillMetaData(entry, metaData, QFileSystemMetaData::GroupId); + return resolveGroupName(metaData.groupId()); +} + QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 94fb4e5..94a8175 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -67,6 +67,10 @@ public: static QFileSystemEntry getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data); static QFileSystemEntry canonicalName(const QFileSystemEntry &entry); static QFileSystemEntry absoluteName(const QFileSystemEntry &entry); + static QString resolveUserName(const QFileSystemEntry &entry, QFileSystemMetaData &data); + static QString resolveUserName(uint userId); + static QString resolveGroupName(const QFileSystemEntry &entry, QFileSystemMetaData &data); + static QString resolveGroupName(uint groupId); static QString bundleName(const QFileSystemEntry &entry); diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index e725147..1ed4ee8 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -124,6 +124,18 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) } //static +QString QFileSystemEngine::resolveUserName(uint userId) +{ + return QString(); // TODO +} + +//static +QString QFileSystemEngine::resolveGroupName(uint groupId) +{ + return QString(); // TODO +} + +//static QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) { Q_UNUSED(entry); diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index eb6b9f1..fdb881f 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -267,6 +267,18 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) } //static +QString QFileSystemEngine::resolveUserName(uint userId) +{ + return QString(); // TODO +} + +//static +QString QFileSystemEngine::resolveGroupName(uint groupId) +{ + return QString(); // TODO +} + +//static QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) { #if !defined(QWS) && defined(Q_OS_MAC) diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 8572506..28d5db4 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -67,6 +67,18 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) } //static +QString QFileSystemEngine::resolveUserName(uint userId) +{ + return QString(); // TODO +} + +//static +QString QFileSystemEngine::resolveGroupName(uint groupId) +{ + return QString(); // TODO +} + +//static QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) { return QString(); diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index f7bc863..ec25a0b 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -137,9 +137,6 @@ public: OwnerIds = UserId | GroupId, - UserName = 0x40000000, - GroupName = 0x80000000, - PosixStatFlags = QFileSystemMetaData::OtherPermissions | QFileSystemMetaData::GroupPermissions | QFileSystemMetaData::OwnerPermissions @@ -204,8 +201,6 @@ public: QDateTime fileTime(QAbstractFileEngine::FileTime time) const; uint userId() const; uint groupId() const; - QString user() const; - QString group() const; uint ownerId(QAbstractFileEngine::FileOwner owner) const; #ifdef Q_OS_UNIX @@ -256,8 +251,7 @@ inline QDateTime QFileSystemMetaData::accessTime() const { return QDa inline QDateTime QFileSystemMetaData::fileTime(QAbstractFileEngine::FileTime time) const { - switch (time) - { + switch (time) { case QAbstractFileEngine::ModificationTime: return modificationTime(); @@ -274,9 +268,6 @@ inline QDateTime QFileSystemMetaData::fileTime(QAbstractFileEngine::FileTime tim inline uint QFileSystemMetaData::userId() const { return userId_; } inline uint QFileSystemMetaData::groupId() const { return groupId_; } -inline QString QFileSystemMetaData::user() const { return QString(); /* TODO */ } -inline QString QFileSystemMetaData::group() const { return QString(); /* TODO */ } - inline uint QFileSystemMetaData::ownerId(QAbstractFileEngine::FileOwner owner) const { if (owner == QAbstractFileEngine::OwnerUser) @@ -298,8 +289,6 @@ inline QDateTime QFileSystemMetaData::fileTime(QAbstractFileEngine::FileTime tim } inline uint QFileSystemMetaData::userId() const { return (uint) -2; } inline uint QFileSystemMetaData::groupId() const { return (uint) -2; } -inline QString QFileSystemMetaData::user() const { return QString(); } -inline QString QFileSystemMetaData::group() const { return QString(); } inline uint QFileSystemMetaData::ownerId(QAbstractFileEngine::FileOwner owner) const { Q_UNUSED(owner); -- cgit v0.12 From 8f40161a7932e901a9f6fe59b5b3d2666c5482c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 10 Sep 2010 17:25:14 +0200 Subject: QDirIterator: Use new native iterators when possible Native iterators interface allows propagation of meta data gathered during directory traversal. Reviewed-by: Shane Kearns --- src/corelib/io/qdiriterator.cpp | 99 +++++++++++++++++++++++++++++++---------- src/corelib/io/qfileinfo.cpp | 7 +++ src/corelib/io/qfileinfo.h | 4 ++ src/corelib/io/qfileinfo_p.h | 14 +++++- 4 files changed, 100 insertions(+), 24 deletions(-) diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index 3544d87..2e67bfd 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -97,9 +97,17 @@ #include #include +#include +#include +#include +#include +#include +#include + QT_BEGIN_NAMESPACE -class QDirIteratorPrivateIteratorStack : public QStack +template +class QDirIteratorPrivateIteratorStack : public QStack { public: ~QDirIteratorPrivateIteratorStack() @@ -116,6 +124,7 @@ public: void advance(); + bool entryMatches(const QString & fileName, const QFileInfo &fileInfo); void pushDirectory(const QFileInfo &fileInfo); void checkAndPushDirectory(const QFileInfo &); bool matchesFilters(const QString &fileName, const QFileInfo &fi) const; @@ -131,7 +140,9 @@ public: QVector nameRegExps; #endif - QDirIteratorPrivateIteratorStack fileEngineIterators; + QDirIteratorPrivateIteratorStack fileEngineIterators; + QDirIteratorPrivateIteratorStack nativeIterators; + QFileInfo currentFileInfo; QFileInfo nextFileInfo; @@ -144,8 +155,7 @@ public: */ QDirIteratorPrivate::QDirIteratorPrivate(const QString &path, const QStringList &nameFilters, QDir::Filters filters, QDirIterator::IteratorFlags flags) - : engine(QAbstractFileEngine::create(path)) - , path(path) + : path(path) , nameFilters(nameFilters.contains(QLatin1String("*")) ? QStringList() : nameFilters) , filters(QDir::NoFilter == filters ? QDir::AllEntries : filters) , iteratorFlags(flags) @@ -159,8 +169,19 @@ QDirIteratorPrivate::QDirIteratorPrivate(const QString &path, const QStringList QRegExp::Wildcard)); #endif +#ifdef Q_OS_UNIX + QFileSystemEntry fileEntry(path); + QFileSystemMetaData metaData; + + engine.reset(QFileSystemEngine::resolveEntryAndCreateLegacyEngine(fileEntry, metaData)); + QFileInfo fileInfo(new QFileInfoPrivate(fileEntry, metaData)); +#else + engine.reset(QAbstractFileEngine::create(path)); + QFileInfo fileInfo(path); +#endif + // Populate fields for hasNext() and next() - pushDirectory(QFileInfo(path)); + pushDirectory(fileInfo); advance(); } @@ -188,34 +209,63 @@ void QDirIteratorPrivate::pushDirectory(const QFileInfo &fileInfo) } else { // No iterator; no entry list. } + } else { + QFileSystemIterator *it = new QFileSystemIterator(fileInfo.d_ptr->fileEntry, + filters, nameFilters, iteratorFlags); + nativeIterators << it; } } -/*! - \internal -*/ -void QDirIteratorPrivate::advance() +inline bool QDirIteratorPrivate::entryMatches(const QString & fileName, const QFileInfo &fileInfo) { - while (!fileEngineIterators.isEmpty()) { + checkAndPushDirectory(fileInfo); - // Find the next valid iterator that matches the filters. - while (fileEngineIterators.top()->hasNext()) { - QAbstractFileEngineIterator *it = fileEngineIterators.top(); - it->next(); + if (matchesFilters(fileName, fileInfo)) { + currentFileInfo = nextFileInfo; + nextFileInfo = fileInfo; - const QFileInfo info = it->currentFileInfo(); - checkAndPushDirectory(it->currentFileInfo()); + //We found a matching entry. + return true; + } - if (matchesFilters(it->currentFileName(), info)) { - currentFileInfo = nextFileInfo; - nextFileInfo = info; + return false; +} - //We found a matching entry. - return; +/*! + \internal +*/ +void QDirIteratorPrivate::advance() +{ + if (engine) { + while (!fileEngineIterators.isEmpty()) { + // Find the next valid iterator that matches the filters. + QAbstractFileEngineIterator *it; + while (it = fileEngineIterators.top(), it->hasNext()) { + it->next(); + if (entryMatches(it->currentFileName(), it->currentFileInfo())) + return; } + + fileEngineIterators.pop(); + delete it; } + } else { + QFileSystemEntry nextEntry; + QFileSystemMetaData nextMetaData; + + while (!nativeIterators.isEmpty()) { + // Find the next valid iterator that matches the filters. + QFileSystemIterator *it; + while (it = nativeIterators.top(), it->advance(nextEntry, nextMetaData)) { + QFileInfo info(new QFileInfoPrivate(nextEntry, nextMetaData)); + + if (entryMatches(nextEntry.fileName(), info)) + return; + } - delete fileEngineIterators.pop(); + nativeIterators.pop(); + delete it; + } } currentFileInfo = nextFileInfo; @@ -455,7 +505,10 @@ QString QDirIterator::next() */ bool QDirIterator::hasNext() const { - return !d->fileEngineIterators.isEmpty(); + if (d->engine) + return !d->fileEngineIterators.isEmpty(); + else + return !d->nativeIterators.isEmpty(); } /*! diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index d49ee74..83df26d 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -291,6 +291,13 @@ QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request) */ /*! + \internal +*/ +QFileInfo::QFileInfo(QFileInfoPrivate *p) : d_ptr(p) +{ +} + +/*! Constructs an empty QFileInfo object. Note that an empty QFileInfo object contain no file reference. diff --git a/src/corelib/io/qfileinfo.h b/src/corelib/io/qfileinfo.h index f0128b1..273a5f7 100644 --- a/src/corelib/io/qfileinfo.h +++ b/src/corelib/io/qfileinfo.h @@ -53,11 +53,15 @@ QT_BEGIN_NAMESPACE QT_MODULE(Core) class QDir; +class QDirIteratorPrivate; class QDateTime; class QFileInfoPrivate; class Q_CORE_EXPORT QFileInfo { + friend class QDirIteratorPrivate; + explicit QFileInfo(QFileInfoPrivate *d); + public: QFileInfo(); QFileInfo(const QString &file); diff --git a/src/corelib/io/qfileinfo_p.h b/src/corelib/io/qfileinfo_p.h index 6db84c4..869a7a6 100644 --- a/src/corelib/io/qfileinfo_p.h +++ b/src/corelib/io/qfileinfo_p.h @@ -58,9 +58,11 @@ #include "qdatetime.h" #include "qatomic.h" #include "qshareddata.h" -#include "qfilesystementry_p.h" #include "qfilesystemengine_p.h" +#include +#include + QT_BEGIN_NAMESPACE class QFileInfoPrivate : public QSharedData @@ -102,6 +104,16 @@ public: { } + inline QFileInfoPrivate(const QFileSystemEntry &file, const QFileSystemMetaData &data) + : QSharedData(), + fileEntry(file), + metaData(data), + cachedFlags(0), + isDefaultConstructed(false), + cache_enabled(true), fileFlags(0), fileSize(0) + { + } + inline void clearFlags() const { fileFlags = 0; cachedFlags = 0; -- cgit v0.12 From ce74c076062c84f183f72947730db7b0e2d5ab54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 10 Sep 2010 17:43:23 +0200 Subject: Refactored QFSFileEngineIterator/Unix into new internal native iterators. QFSFileEngineIterator will use that internally, currently only on non-windows platforms. This implementation can be reused on Windows once the native iterators are in place there as well. Reviewed-by: Shane Kearns --- qmake/Makefile.unix | 7 +- qmake/qmake.pri | 2 +- src/corelib/io/io.pri | 1 - src/corelib/io/qfileinfo.h | 2 +- src/corelib/io/qfilesystemengine.cpp | 59 +++++++++++ src/corelib/io/qfilesystemiterator_p.h | 13 ++- src/corelib/io/qfilesystemiterator_unix.cpp | 53 +++++++++- src/corelib/io/qfilesystemmetadata_p.h | 1 + src/corelib/io/qfsfileengine_iterator.cpp | 45 ++++++++ src/corelib/io/qfsfileengine_iterator_p.h | 9 ++ src/corelib/io/qfsfileengine_iterator_unix.cpp | 140 ------------------------- src/tools/bootstrap/bootstrap.pro | 3 +- 12 files changed, 181 insertions(+), 154 deletions(-) delete mode 100644 src/corelib/io/qfsfileengine_iterator_unix.cpp diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index d248831..5ea023f 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -17,7 +17,7 @@ OBJS=project.o property.o main.o makefile.o unixmake2.o unixmake.o \ QOBJS=qtextcodec.o qutfcodec.o qstring.o qtextstream.o qiodevice.o qmalloc.o qglobal.o \ qbytearray.o qbytearraymatcher.o qdatastream.o qbuffer.o qlist.o qfile.o \ qfilesystementry.o qfilesystemengine_unix.o qfilesystemengine.o qfilesystemiterator_unix.o \ - qfsfileengine_unix.o qfsfileengine_iterator_unix.o qfsfileengine.o \ + qfsfileengine_unix.o qfsfileengine.o \ qfsfileengine_iterator.o qregexp.o qvector.o qbitarray.o qdir.o qdiriterator.o quuid.o qhash.o \ qfileinfo.o qdatetime.o qstringlist.o qabstractfileengine.o qtemporaryfile.o \ qmap.o qmetatype.o qsettings.o qlibraryinfo.o qvariant.o qvsnprintf.o \ @@ -49,7 +49,7 @@ DEPEND_SRC=project.cpp property.cpp meta.cpp main.cpp generators/makefile.cpp ge $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_mac.cpp \ $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_unix.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp \ - $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_unix.cpp $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator.cpp \ + $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator.cpp \ $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp $(SOURCE_PATH)/src/corelib/tools/qlist.cpp \ $(SOURCE_PATH)/src/corelib/tools/qvector.cpp $(SOURCE_PATH)/src/corelib/tools/qbitarray.cpp \ $(SOURCE_PATH)/src/corelib/io/qdiriterator.cpp \ @@ -188,9 +188,6 @@ qfsfileengine_iterator.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator.c qfsfileengine_unix.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_unix.cpp -qfsfileengine_iterator_unix.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_unix.cpp - $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_unix.cpp - qabstractfileengine.o: $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp diff --git a/qmake/qmake.pri b/qmake/qmake.pri index ae31eca..cd81c82 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -127,7 +127,7 @@ bootstrap { #Qt code qxmlutils.h unix { - SOURCES += qfilesystemengine_unix.cpp qfilesystemiterator_unix.cpp qfsfileengine_unix.cpp qfsfileengine_iterator_unix.cpp + SOURCES += qfilesystemengine_unix.cpp qfilesystemiterator_unix.cpp qfsfileengine_unix.cpp mac { SOURCES += qfilesystemengine_mac.cpp SOURCES += qcore_mac.cpp qsettings_mac.cpp diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index 4a20dfa..4a2f042 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -73,7 +73,6 @@ win32 { SOURCES += io/qfilesystemengine_win.cpp SOURCES += io/qfilesystemiterator_win.cpp } else:unix { - SOURCES += io/qfsfileengine_iterator_unix.cpp SOURCES += io/qfsfileengine_unix.cpp symbian { SOURCES += io/qfilesystemengine_symbian.cpp diff --git a/src/corelib/io/qfileinfo.h b/src/corelib/io/qfileinfo.h index 273a5f7..92bea5e 100644 --- a/src/corelib/io/qfileinfo.h +++ b/src/corelib/io/qfileinfo.h @@ -60,9 +60,9 @@ class QFileInfoPrivate; class Q_CORE_EXPORT QFileInfo { friend class QDirIteratorPrivate; +public: explicit QFileInfo(QFileInfoPrivate *d); -public: QFileInfo(); QFileInfo(const QString &file); QFileInfo(const QFile &file); diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index cbc4c42..4791dfc 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -285,6 +285,65 @@ void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer) #endif } +void QFileSystemMetaData::fillFromDirEnt(const QT_DIRENT &entry) +{ + // ### This will clear all entry flags and knownFlagsMask + switch (entry.d_type) + { + case DT_DIR: + knownFlagsMask = QFileSystemMetaData::LinkType + | QFileSystemMetaData::FileType + | QFileSystemMetaData::DirectoryType + | QFileSystemMetaData::SequentialType + | QFileSystemMetaData::ExistsAttribute; + + entryFlags = QFileSystemMetaData::DirectoryType + | QFileSystemMetaData::ExistsAttribute; + + break; + + case DT_BLK: + case DT_CHR: + case DT_FIFO: + case DT_SOCK: + // ### System attribute + knownFlagsMask = QFileSystemMetaData::LinkType + | QFileSystemMetaData::FileType + | QFileSystemMetaData::DirectoryType + | QFileSystemMetaData::BundleType + | QFileSystemMetaData::AliasType + | QFileSystemMetaData::SequentialType + | QFileSystemMetaData::ExistsAttribute; + + entryFlags = QFileSystemMetaData::SequentialType + | QFileSystemMetaData::ExistsAttribute; + + break; + + case DT_LNK: + knownFlagsMask = QFileSystemMetaData::LinkType; + entryFlags = QFileSystemMetaData::LinkType; + break; + + case DT_REG: + knownFlagsMask = QFileSystemMetaData::LinkType + | QFileSystemMetaData::FileType + | QFileSystemMetaData::DirectoryType + | QFileSystemMetaData::BundleType + | QFileSystemMetaData::SequentialType + | QFileSystemMetaData::ExistsAttribute; + + entryFlags = QFileSystemMetaData::FileType + | QFileSystemMetaData::ExistsAttribute; + + break; + + case DT_UNKNOWN: + default: + clear(); + } +} + #endif //static diff --git a/src/corelib/io/qfilesystemiterator_p.h b/src/corelib/io/qfilesystemiterator_p.h index ed1ef5e..d3b195d 100644 --- a/src/corelib/io/qfilesystemiterator_p.h +++ b/src/corelib/io/qfilesystemiterator_p.h @@ -66,6 +66,7 @@ #elif defined (Q_OS_SYMBIAN) #include #else +#include #endif QT_BEGIN_NAMESPACE @@ -73,12 +74,15 @@ QT_BEGIN_NAMESPACE class QFileSystemIterator { public: - QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, const QStringList &nameFilters, QDirIterator::IteratorFlags flags); + QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, + const QStringList &nameFilters, QDirIterator::IteratorFlags flags + = QDirIterator::FollowSymlinks | QDirIterator::Subdirectories); ~QFileSystemIterator(); bool advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData); private: + QFileSystemEntry::NativePath nativePath; // Platform-specific data #if defined(Q_OS_WIN) @@ -88,6 +92,13 @@ private: TInt lastError; TInt entryIndex; #else + QT_DIR *dir; + QT_DIRENT *dirEntry; +#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) + // for readdir_r + QScopedPointer mt_file; +#endif + int lastError; #endif Q_DISABLE_COPY(QFileSystemIterator) diff --git a/src/corelib/io/qfilesystemiterator_unix.cpp b/src/corelib/io/qfilesystemiterator_unix.cpp index 3c73496..00ccd41 100644 --- a/src/corelib/io/qfilesystemiterator_unix.cpp +++ b/src/corelib/io/qfilesystemiterator_unix.cpp @@ -39,27 +39,74 @@ ** ****************************************************************************/ +#include "qplatformdefs.h" #include "qfilesystemiterator_p.h" +#include +#include + QT_BEGIN_NAMESPACE QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, const QStringList &nameFilters, QDirIterator::IteratorFlags flags) + : nativePath(entry.nativeFilePath()) + , dir(0) + , dirEntry(0) + , lastError(0) { - Q_UNUSED(entry) Q_UNUSED(filters) Q_UNUSED(nameFilters) Q_UNUSED(flags) + + if ((dir = QT_OPENDIR(nativePath.constData())) == 0) { + lastError = errno; + } else { + + if (!nativePath.endsWith('/')) + nativePath.append('/'); + +#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) + // ### Race condition; we should use fpathconf and dirfd(). + size_t maxPathName = ::pathconf(nativePath.constData(), _PC_NAME_MAX); + if (maxPathName == size_t(-1)) + maxPathName = FILENAME_MAX; + maxPathName += sizeof(QT_DIRENT) + 1; + + QT_DIRENT *p = reinterpret_cast(::malloc(maxPathName)); + Q_CHECK_PTR(p); + + mt_file.reset(p); +#endif + } } QFileSystemIterator::~QFileSystemIterator() { + if (dir) + QT_CLOSEDIR(dir); } bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData) { - Q_UNUSED(fileEntry) - Q_UNUSED(metaData) + if (!dir) + return false; + +#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) + lastError = QT_READDIR_R(dir, mt_file.data(), &dirEntry); + if (lastError) + return false; +#else + // ### add local lock to prevent breaking reentrancy + dirEntry = QT_READDIR(dir); +#endif // _POSIX_THREAD_SAFE_FUNCTIONS + + if (dirEntry) { + fileEntry = QFileSystemEntry(nativePath + QByteArray(dirEntry->d_name), QFileSystemEntry::FromNativePath()); + metaData.fillFromDirEnt(*dirEntry); + return true; + } + + lastError = errno; return false; } diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index ec25a0b..e45c5dc 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -205,6 +205,7 @@ public: #ifdef Q_OS_UNIX void fillFromStatBuf(const QT_STATBUF &statBuffer); + void fillFromDirEnt(const QT_DIRENT &statBuffer); #endif #ifdef Q_OS_SYMBIAN void fillFromTEntry(const TEntry& entry); diff --git a/src/corelib/io/qfsfileengine_iterator.cpp b/src/corelib/io/qfsfileengine_iterator.cpp index 7e7d70a..4617f49 100644 --- a/src/corelib/io/qfsfileengine_iterator.cpp +++ b/src/corelib/io/qfsfileengine_iterator.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "qfsfileengine_iterator_p.h" +#include "qfileinfo_p.h" #include "qvariant.h" #ifndef QT_NO_FSFILEENGINE @@ -48,15 +49,35 @@ QT_BEGIN_NAMESPACE QFSFileEngineIterator::QFSFileEngineIterator(QDir::Filters filters, const QStringList &filterNames) : QAbstractFileEngineIterator(filters, filterNames) +#ifdef Q_OS_UNIX + , done(false) +#endif { +#ifndef Q_OS_UNIX newPlatformSpecifics(); +#endif } QFSFileEngineIterator::~QFSFileEngineIterator() { +#ifndef Q_OS_UNIX deletePlatformSpecifics(); +#endif } +#ifdef Q_OS_UNIX +bool QFSFileEngineIterator::hasNext() const +{ + if (!done && !nativeIterator) { + nativeIterator.reset(new QFileSystemIterator(QFileSystemEntry(path()), + filters(), nameFilters())); + advance(); + } + + return !done; +} +#endif + QString QFSFileEngineIterator::next() { if (!hasNext()) @@ -66,14 +87,38 @@ QString QFSFileEngineIterator::next() return currentFilePath(); } +#ifdef Q_OS_UNIX +void QFSFileEngineIterator::advance() const +{ + currentInfo = nextInfo; + + QFileSystemEntry entry; + QFileSystemMetaData data; + if (nativeIterator->advance(entry, data)) { + nextInfo = QFileInfo(new QFileInfoPrivate(entry, data)); + } else { + done = true; + nativeIterator.reset(); + } +} +#endif + QString QFSFileEngineIterator::currentFileName() const { +#ifdef Q_OS_UNIX + return currentInfo.fileName(); +#else return currentEntry; +#endif } QFileInfo QFSFileEngineIterator::currentFileInfo() const { +#ifdef Q_OS_UNIX + return currentInfo; +#else return QAbstractFileEngineIterator::currentFileInfo(); +#endif } QT_END_NAMESPACE diff --git a/src/corelib/io/qfsfileengine_iterator_p.h b/src/corelib/io/qfsfileengine_iterator_p.h index be670e0..7940fbd 100644 --- a/src/corelib/io/qfsfileengine_iterator_p.h +++ b/src/corelib/io/qfsfileengine_iterator_p.h @@ -54,6 +54,7 @@ // #include "qabstractfileengine.h" +#include "qfilesystemiterator_p.h" #include "qdir.h" #ifndef QT_NO_FSFILEENGINE @@ -76,6 +77,13 @@ public: QFileInfo currentFileInfo() const; private: +#ifdef Q_OS_UNIX + void advance() const; + mutable QScopedPointer nativeIterator; + mutable QFileInfo currentInfo; + mutable QFileInfo nextInfo; + mutable bool done; +#else QFSFileEngineIteratorPlatformSpecificData *platform; friend class QFSFileEngineIteratorPlatformSpecificData; void newPlatformSpecifics(); @@ -83,6 +91,7 @@ private: void advance(); QString currentEntry; +#endif }; QT_END_NAMESPACE diff --git a/src/corelib/io/qfsfileengine_iterator_unix.cpp b/src/corelib/io/qfsfileengine_iterator_unix.cpp deleted file mode 100644 index bfdb03e..0000000 --- a/src/corelib/io/qfsfileengine_iterator_unix.cpp +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** -** -** 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 QtCore 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 "qplatformdefs.h" -#include "qfsfileengine_iterator_p.h" - -#include - -#ifndef QT_NO_FSFILEENGINE - -QT_BEGIN_NAMESPACE - -class QFSFileEngineIteratorPlatformSpecificData -{ -public: - inline QFSFileEngineIteratorPlatformSpecificData() - : dir(0), dirEntry(0), done(false) -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN) - , mt_file(0) -#endif - {} - - QT_DIR *dir; - QT_DIRENT *dirEntry; - bool done; - -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN) - // for readdir_r - QT_DIRENT *mt_file; -#endif -}; - -void QFSFileEngineIterator::advance() -{ - currentEntry = platform->dirEntry ? QFile::decodeName(QByteArray(platform->dirEntry->d_name)) : QString(); - - if (!platform->dir) - return; - -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN) - if (QT_READDIR_R(platform->dir, platform->mt_file, &platform->dirEntry) != 0) - platform->done = true; -#else - // ### add local lock to prevent breaking reentrancy - platform->dirEntry = QT_READDIR(platform->dir); -#endif // _POSIX_THREAD_SAFE_FUNCTIONS - if (!platform->dirEntry) { - QT_CLOSEDIR(platform->dir); - platform->dir = 0; - platform->done = true; -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN) - delete [] platform->mt_file; - platform->mt_file = 0; -#endif - } -} - -void QFSFileEngineIterator::newPlatformSpecifics() -{ - platform = new QFSFileEngineIteratorPlatformSpecificData; -} - -void QFSFileEngineIterator::deletePlatformSpecifics() -{ - if (platform->dir) { - QT_CLOSEDIR(platform->dir); -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN) - delete [] platform->mt_file; - platform->mt_file = 0; -#endif - } - delete platform; - platform = 0; -} - -bool QFSFileEngineIterator::hasNext() const -{ - if (!platform->done && !platform->dir) { - QFSFileEngineIterator *that = const_cast(this); - if ((that->platform->dir = QT_OPENDIR(QFile::encodeName(path()).data())) == 0) { - that->platform->done = true; - } else { - // ### Race condition; we should use fpathconf and dirfd(). - long maxPathName = ::pathconf(QFile::encodeName(path()).data(), _PC_NAME_MAX); - if ((int) maxPathName == -1) - maxPathName = FILENAME_MAX; - maxPathName += sizeof(QT_DIRENT) + 1; -#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_CYGWIN) && !defined(Q_OS_SYMBIAN) - if (that->platform->mt_file) - delete [] that->platform->mt_file; - that->platform->mt_file = (QT_DIRENT *)new char[maxPathName]; -#endif - - that->advance(); - } - } - return !platform->done; -} - -QT_END_NAMESPACE - -#endif // QT_NO_FSFILEENGINE diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro index 016fdc0..81b785a 100644 --- a/src/tools/bootstrap/bootstrap.pro +++ b/src/tools/bootstrap/bootstrap.pro @@ -87,8 +87,7 @@ SOURCES += \ unix:SOURCES += ../../corelib/io/qfilesystemengine_unix.cpp \ ../../corelib/io/qfilesystemiterator_unix.cpp \ - ../../corelib/io/qfsfileengine_unix.cpp \ - ../../corelib/io/qfsfileengine_iterator_unix.cpp + ../../corelib/io/qfsfileengine_unix.cpp win32:SOURCES += ../../corelib/io/qfilesystemengine_win.cpp \ ../../corelib/io/qfilesystemiterator_win.cpp \ -- cgit v0.12 From a12e4996b8316badd7784b204ea8f22b7986f032 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 13 Sep 2010 12:04:57 +0100 Subject: Fix Symbian's root path Change the root path to return the root of the system drive, e.g. "c:/" instead of the PhoneMemoryRootPath() "c:/data/". The PhoneMemoryRootPath() matched Qt's concept of the home path, and will continue to be returned for that function. Reviewed-By: Thomas Zander --- src/corelib/io/qfsfileengine_unix.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index c6e7300..a6cf7fc 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -744,7 +744,7 @@ QString QFSFileEngine::currentPath(const QString &) QString QFSFileEngine::homePath() { #if defined(Q_OS_SYMBIAN) - QString home = rootPath(); + QString home = QDir::cleanPath(QDir::fromNativeSeparators(qt_TDesC2QString(PathInfo::PhoneMemoryRootPath()))); #else QString home = QFile::decodeName(qgetenv("HOME")); if (home.isNull()) @@ -756,8 +756,10 @@ QString QFSFileEngine::homePath() QString QFSFileEngine::rootPath() { #if defined(Q_OS_SYMBIAN) - TFileName symbianPath = PathInfo::PhoneMemoryRootPath(); - return QDir::cleanPath(QDir::fromNativeSeparators(qt_TDesC2QString(symbianPath))); + TChar drive; + TInt err = RFs::DriveToChar(RFs::GetSystemDrive(), drive); //RFs::GetSystemDriveChar not supported on S60 3.1 + Q_ASSERT(err == KErrNone); //RFs::GetSystemDrive() shall always return a convertible drive number on a valid OS configuration + return QString(QChar(drive)).append(QLatin1String(":/")); #else return QLatin1String("/"); #endif -- cgit v0.12 From 7f5417353bd71a63e962851ba598f1e2631f4a25 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 13 Sep 2010 14:57:08 +0100 Subject: Fix setPermissions in symbian In error, it was checking the read permissions to set the read-only file attribute, when it should have been checking the write permissions. read-only = !writable. Reviewed-By: Thomas Zander --- src/corelib/io/qfilesystemengine_symbian.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 1ed4ee8..6bad860 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -290,7 +290,7 @@ bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) QString targetpath = absoluteName(entry).nativeFilePath(); RFs& fs(qt_s60GetRFs()); TInt err = fs.Delete(qt_QString2TPtrC(targetpath)); - return false; // TODO error reporting; + return err == KErrNone; // TODO error reporting; } //static @@ -300,8 +300,8 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per TUint setmask = 0; TUint clearmask = 0; RFs& fs(qt_s60GetRFs()); - if (permissions & (QFile::ReadOwner | QFile::ReadUser | QFile::ReadGroup | QFile::ReadOther)) - clearmask = KEntryAttReadOnly; + if (permissions & (QFile::WriteOwner | QFile::WriteUser | QFile::WriteGroup | QFile::WriteOther)) + clearmask = KEntryAttReadOnly; //if anyone can write, it's not read-only else setmask = KEntryAttReadOnly; TInt err = fs.SetAtt(qt_QString2TPtrC(targetpath), setmask, clearmask); @@ -310,7 +310,7 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per data->entryFlags |= QFileSystemMetaData::MetaDataFlag(uint(permissions)); data->knownFlagsMask |= QFileSystemMetaData::Permissions; } - return err != KErrNone; // TODO error reporting + return err == KErrNone; // TODO error reporting } QT_END_NAMESPACE -- cgit v0.12 From 9bdc685da9d1e1aac165711197e3b7b887e19da3 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 13 Sep 2010 15:34:27 +0100 Subject: Integrate symbian file system iterator Store the relative path in nativeFilePath and prepend it to results, this behaviour was previously provided by the base class. Some refactoring to avoid needing to allocate a TFileName on the stack, and to set the known metadata flags inside the fillFromXXX functions. Reviewed-By: Thomas Zander Reviewed-By: mread --- src/corelib/io/qfilesystemengine_symbian.cpp | 6 +++-- src/corelib/io/qfilesystemiterator_symbian.cpp | 33 +++++++++++--------------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 6bad860..c339dc4 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -144,6 +144,8 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) void QFileSystemMetaData::fillFromTEntry(const TEntry& entry) { + entryFlags &= ~(QFileSystemMetaData::SymbianTEntryFlags); + knownFlagsMask |= QFileSystemMetaData::SymbianTEntryFlags; //Symbian doesn't have unix type file permissions entryFlags |= QFileSystemMetaData::Permissions; if(entry.IsReadOnly()) { @@ -171,6 +173,8 @@ void QFileSystemMetaData::fillFromTEntry(const TEntry& entry) void QFileSystemMetaData::fillFromVolumeInfo(const TVolumeInfo& info) { + entryFlags &= ~(QFileSystemMetaData::SymbianTEntryFlags); + knownFlagsMask |= QFileSystemMetaData::SymbianTEntryFlags; entryFlags |= QFileSystemMetaData::ExistsAttribute; entryFlags |= QFileSystemMetaData::Permissions; if(info.iDrive.iDriveAtt & KDriveAttRom) { @@ -187,7 +191,6 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM if (what & QFileSystemMetaData::SymbianTEntryFlags) { RFs& fs(qt_s60GetRFs()); TInt err; - data.entryFlags &= ~(QFileSystemMetaData::SymbianTEntryFlags); QFileSystemEntry absentry(absoluteName(entry)); if (absentry.isRoot()) { //Root directories don't have an entry, and Entry() returns KErrBadName. @@ -210,7 +213,6 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM data.size_ = 0; data.modificationTime_ = TTime(0); } - data.knownFlagsMask |= QFileSystemMetaData::SymbianTEntryFlags; } return data.hasFlags(what); } diff --git a/src/corelib/io/qfilesystemiterator_symbian.cpp b/src/corelib/io/qfilesystemiterator_symbian.cpp index 106eda9..e316526 100644 --- a/src/corelib/io/qfilesystemiterator_symbian.cpp +++ b/src/corelib/io/qfilesystemiterator_symbian.cpp @@ -51,26 +51,28 @@ QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &path, QDir::Fil { RFs& fs = qt_s60GetRFs(); - TFileName symbianPath; - QString abspath = QFileSystemEngine::absoluteName(path).nativeFilePath(); + nativePath = path.nativeFilePath(); + if (!nativePath.endsWith(QLatin1Char('\\'))) + nativePath.append(QLatin1Char('\\')); - if (!abspath.endsWith(QLatin1Char('\\'))) - abspath.append(QLatin1Char('\\')); + QString absPath = QFileSystemEngine::absoluteName(path).nativeFilePath(); - int pathLen = abspath.length(); - if (pathLen > symbianPath.MaxLength()) { + if (!absPath.endsWith(QLatin1Char('\\'))) + absPath.append(QLatin1Char('\\')); + + int pathLen = absPath.length(); + if (pathLen > KMaxFileName) { lastError = KErrBadName; return; } - symbianPath.Copy(qt_QString2TPtrC(abspath)); //set up server side filtering to reduce IPCs //RDir won't accept all valid name filters e.g. "*. bar" if (nameFilters.count() == 1 && !(filters & QDir::AllDirs) && iteratorFlags == QDirIterator::NoIteratorFlags && pathLen + nameFilters[0].length() - <= symbianPath.MaxLength()) { + <= KMaxFileName) { //server side supports one mask - skip this for recursive mode or if only files should be filtered - symbianPath.Append(qt_QString2TPtrC(nameFilters[0])); + absPath.append(nameFilters[0]); } TUint symbianMask = 0; @@ -90,7 +92,7 @@ QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &path, QDir::Fil symbianMask = KEntryAttMatchExclusive | KEntryAttReadOnly; } - lastError = dirHandle.Open(fs, symbianPath, symbianMask); + lastError = dirHandle.Open(fs, qt_QString2TPtrC(absPath), symbianMask); } QFileSystemIterator::~QFileSystemIterator() @@ -98,13 +100,6 @@ QFileSystemIterator::~QFileSystemIterator() dirHandle.Close(); } -static void createFileSystemMetaDataHelper(const TEntry &entry, QFileSystemMetaData &metaData) -{ - //placeholder - //TODO: adapt from QFileInfoPrivate::fromTEntry(entries[entryIndex], path()); - //or add this functionality to QFileSystemMetaData -} - bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData) { //1st time, lastError is result of dirHandle.Open(), entries.Count() is 0 and entryIndex is -1 so initial read is triggered @@ -121,8 +116,8 @@ bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaDa if ((lastError == KErrNone || lastError == KErrEof) && entryIndex < entries.Count()) { Q_ASSERT(entryIndex >= 0); const TEntry &entry(entries[entryIndex]); - fileEntry = QFileSystemEntry(qt_TDesC2QString(entry.iName), QFileSystemEntry::FromNativePath()); - createFileSystemMetaDataHelper(entry, metaData); + fileEntry = QFileSystemEntry(nativePath + qt_TDesC2QString(entry.iName), QFileSystemEntry::FromNativePath()); + metaData.fillFromTEntry(entry); return true; } -- cgit v0.12 From 71d1d710d5e25be4b74af10a8dfcc3c53bd42ef1 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 13 Sep 2010 16:27:32 +0100 Subject: Fixes for canonicalPath and exists on symbian QDir::cleanPath does not do what we need for some types of path, for example c:/../. However, changing the cleanPath() function isn't easy because so many places rely on the current behaviour. RFs::Att() doesn't work for root directories, so instead to check whether a file exists, we now use the normal fillMetaData() function. Also fixed some compiler warnings in the file. Reviewed-By: mread --- src/corelib/io/qfilesystemengine_symbian.cpp | 61 +++++++++++++++++++--------- 1 file changed, 42 insertions(+), 19 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index c339dc4..dc7fcbf 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -52,6 +52,36 @@ bool QFileSystemEngine::isCaseSensitive() return false; } +//TODO: resolve this with QDir::cleanPath, without breaking the behaviour of that +//function which is documented only by autotest +//input: a dirty absolute path, e.g. c:/../../foo/./ +//output: a clean absolute path, e.g. c:/foo/ +static QString symbianCleanAbsolutePath(const QString& path) +{ + bool isDir = path.endsWith(QLatin1Char('/')); + //using SkipEmptyParts flag to eliminate duplicated slashes + QStringList components = path.split(QLatin1Char('/'), QString::SkipEmptyParts); + int cdups = 0; + for(int i=components.count() - 1; i>=0; --i) { + if(components.at(i) == QLatin1String("..")) { + components.removeAt(i); + cdups++; + } + else if(components.at(i) == QLatin1String(".")) { + components.removeAt(i); + } + else if(cdups && i > 0) { + --cdups; + components.removeAt(i); + } + } + QString result = components.join(QLatin1String("/")); + if ((isDir&& !result.endsWith(QLatin1Char('/'))) + || (result.length() == 2 && result.at(1).unicode() == ':')) + result.append(QLatin1Char('/')); + return result; +} + //static QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data) { @@ -65,15 +95,12 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) return entry; QFileSystemEntry result = absoluteName(entry); - RFs& fs(qt_s60GetRFs()); - TUint e; - //Att is faster than Entry for determining if a file exists, due to smaller IPC - TInt r = fs.Att(qt_QString2TPtrC(result.nativeFilePath()), e); - - if (r == KErrNone) { - return result; - } else { // file doesn't exist + QFileSystemMetaData meta; + if (!fillMetaData(result, meta, QFileSystemMetaData::ExistsAttribute) || !meta.exists()) { + // file doesn't exist return QFileSystemEntry(); + } else { + return result; } } @@ -109,30 +136,26 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) } } if (!orig.isEmpty() && !(orig.length() == 1 && orig.at(0).unicode() == '.')) { - if (!result.isEmpty() && !result.endsWith('/')) - result.append('/'); + if (!result.isEmpty() && !result.endsWith(QLatin1Char('/'))) + result.append(QLatin1Char('/')); result.append(orig); } - const bool isDir = result.endsWith('/'); - const bool isRoot = entry.isRoot(); - - result = QDir::cleanPath(result); - if (isDir && !isRoot) - result.append(QLatin1Char('/')); - return QFileSystemEntry(result); + return symbianCleanAbsolutePath(result); } //static QString QFileSystemEngine::resolveUserName(uint userId) { - return QString(); // TODO + Q_UNUSED(userId) + return QString(); // no users or groups on symbian } //static QString QFileSystemEngine::resolveGroupName(uint groupId) { - return QString(); // TODO + Q_UNUSED(groupId) + return QString(); // no users or groups on symbian } //static -- cgit v0.12 From c76b30f79c08499c2d9d4329c72639f80ff872b2 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Thu, 9 Sep 2010 15:49:26 +0200 Subject: QFileSystemEngine: Fix stupid bug-o in engine creation Reviewed-by: Joao --- src/corelib/io/qfilesystemengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index 4791dfc..9bfd382 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -133,7 +133,7 @@ static inline bool _q_checkEntry(QFileSystemEntry &entry, QFileSystemMetaData &d static inline bool _q_checkEntry(QAbstractFileEngine *&engine, bool resolvingEntry) { if (resolvingEntry) { - if (!engine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::ExistsFlag) { + if (!(engine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::ExistsFlag)) { delete engine; engine = 0; return false; -- cgit v0.12 From 59ad6b33ac73b5981c9b3a9ba87374d33fb17228 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Sat, 11 Sep 2010 00:13:12 +0200 Subject: Make QFSFileEngine & QFileInfo use the new filesystemengine on Windows QFSFileEngine now uses the QFileSystemEngine static functions to implement most of the file system related quries. All the Win32 specific code is now moved from the QFSFileEngine to QFileSystemEngine. This implements all the fillMetaData and filename query functions. These new functions behave exactly like their previous implementations in QFSFileEngine. Following optimizations are done with this. * GetFileAttributesEx() instead of GetFileAttibutes(). * GetFileInformationByHandle() instead of POSIX functions. Reviewed-by: Joao --- src/corelib/io/qfilesystemengine_p.h | 23 +- src/corelib/io/qfilesystemengine_win.cpp | 1074 ++++++++++++++++++++++++- src/corelib/io/qfilesystemmetadata_p.h | 55 +- src/corelib/io/qfsfileengine_iterator_win.cpp | 3 +- src/corelib/io/qfsfileengine_p.h | 10 +- src/corelib/io/qfsfileengine_win.cpp | 1048 ++---------------------- 6 files changed, 1211 insertions(+), 1002 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 94a8175..1068e76 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -75,10 +75,24 @@ public: static QString bundleName(const QFileSystemEntry &entry); static bool fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, - QFileSystemMetaData::MetaDataFlags what); + QFileSystemMetaData::MetaDataFlags what); #if defined(Q_OS_UNIX) static bool fillMetaData(int fd, QFileSystemMetaData &data); // what = PosixStatFlags #endif +#if defined(Q_OS_WIN) + + static bool uncListSharesOnServer(const QString &server, QStringList *list); //Used also by QFSFileEngineIterator::hasNext() + static bool fillMetaData(int fd, QFileSystemMetaData &data, + QFileSystemMetaData::MetaDataFlags what); + static bool fillMetaData(HANDLE fHandle, QFileSystemMetaData &data, + QFileSystemMetaData::MetaDataFlags what); + static bool fillPermissions(const QFileSystemEntry &entry, QFileSystemMetaData &data, + QFileSystemMetaData::MetaDataFlags what); + static QString homePath(); + static QString rootPath(); + static QString owner(const QFileSystemEntry &entry, QAbstractFileEngine::FileOwner own); + static QString nativeAbsoluteFilePath(const QString &path); +#endif static bool createDirectory(const QFileSystemEntry &entry, bool createParents); static bool removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents); @@ -90,12 +104,15 @@ public: static bool removeFile(const QFileSystemEntry &entry); static bool setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, - QFileSystemMetaData *data = 0); + QFileSystemMetaData *data = 0); static QAbstractFileEngine *resolveEntryAndCreateLegacyEngine(QFileSystemEntry &entry, - QFileSystemMetaData &data); + QFileSystemMetaData &data); private: static QString slowCanonicalized(const QString &path); +#if defined(Q_OS_WIN) + static void clearWinStatData(QFileSystemMetaData &data); +#endif }; QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 28d5db4..550b522 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -41,29 +41,531 @@ #include "qfilesystemengine_p.h" +#define _POSIX_ +#include "qplatformdefs.h" +#include "qabstractfileengine.h" +#include "private/qfsfileengine_p.h" +#include "qfilesystemengine_p.h" +#include + +#include "qfile.h" +#include "qdir.h" +#include "private/qmutexpool_p.h" +#include "qvarlengtharray.h" +#include "qdatetime.h" +#include "qt_windows.h" + +#if !defined(Q_OS_WINCE) +# include +# include +# include +#else +# include +#endif +#include +#include +#include +#include +#include +#include +#define SECURITY_WIN32 +#include + +#ifndef _INTPTR_T_DEFINED +#ifdef _WIN64 +typedef __int64 intptr_t; +#else +#ifdef _W64 +typedef _W64 int intptr_t; +#else +typedef INT_PTR intptr_t; +#endif +#endif +#define _INTPTR_T_DEFINED +#endif + +#ifndef INVALID_FILE_ATTRIBUTES +# define INVALID_FILE_ATTRIBUTES (DWORD (-1)) +#endif + +#if !defined(Q_OS_WINCE) +# if !defined(REPARSE_DATA_BUFFER_HEADER_SIZE) +typedef struct _REPARSE_DATA_BUFFER { + ULONG ReparseTag; + USHORT ReparseDataLength; + USHORT Reserved; + union { + struct { + USHORT SubstituteNameOffset; + USHORT SubstituteNameLength; + USHORT PrintNameOffset; + USHORT PrintNameLength; + ULONG Flags; + WCHAR PathBuffer[1]; + } SymbolicLinkReparseBuffer; + struct { + USHORT SubstituteNameOffset; + USHORT SubstituteNameLength; + USHORT PrintNameOffset; + USHORT PrintNameLength; + WCHAR PathBuffer[1]; + } MountPointReparseBuffer; + struct { + UCHAR DataBuffer[1]; + } GenericReparseBuffer; + }; +} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER; +# define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer) +# endif // !defined(REPARSE_DATA_BUFFER_HEADER_SIZE) + +# ifndef MAXIMUM_REPARSE_DATA_BUFFER_SIZE +# define MAXIMUM_REPARSE_DATA_BUFFER_SIZE 16384 +# endif +# ifndef IO_REPARSE_TAG_SYMLINK +# define IO_REPARSE_TAG_SYMLINK (0xA000000CL) +# endif +# ifndef FSCTL_GET_REPARSE_POINT +# define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) +# endif +#endif // !defined(Q_OS_WINCE) + QT_BEGIN_NAMESPACE +Q_CORE_EXPORT int qt_ntfs_permission_lookup = 0; + +#if defined(Q_OS_WINCE) +static QString qfsPrivateCurrentDir = QLatin1String(""); +// As none of the functions we try to resolve do exist on Windows CE +// we use QT_NO_LIBRARY to shorten everything up a little bit. +#define QT_NO_LIBRARY 1 +#endif + +#if !defined(QT_NO_LIBRARY) +QT_BEGIN_INCLUDE_NAMESPACE +typedef DWORD (WINAPI *PtrGetNamedSecurityInfoW)(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); +static PtrGetNamedSecurityInfoW ptrGetNamedSecurityInfoW = 0; +typedef BOOL (WINAPI *PtrLookupAccountSidW)(LPCWSTR, PSID, LPWSTR, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE); +static PtrLookupAccountSidW ptrLookupAccountSidW = 0; +typedef VOID (WINAPI *PtrBuildTrusteeWithSidW)(PTRUSTEE_W, PSID); +static PtrBuildTrusteeWithSidW ptrBuildTrusteeWithSidW = 0; +typedef DWORD (WINAPI *PtrGetEffectiveRightsFromAclW)(PACL, PTRUSTEE_W, OUT PACCESS_MASK); +static PtrGetEffectiveRightsFromAclW ptrGetEffectiveRightsFromAclW = 0; +static TRUSTEE_W currentUserTrusteeW; +static TRUSTEE_W worldTrusteeW; + +typedef BOOL (WINAPI *PtrGetUserProfileDirectoryW)(HANDLE, LPWSTR, LPDWORD); +static PtrGetUserProfileDirectoryW ptrGetUserProfileDirectoryW = 0; +typedef BOOL (WINAPI *PtrGetVolumePathNamesForVolumeNameW)(LPCWSTR,LPWSTR,DWORD,PDWORD); +static PtrGetVolumePathNamesForVolumeNameW ptrGetVolumePathNamesForVolumeNameW = 0; +QT_END_INCLUDE_NAMESPACE + + +static void resolveLibs() +{ + static bool triedResolve = false; + if (!triedResolve) { + // need to resolve the security info functions + + // protect initialization +#ifndef QT_NO_THREAD + QMutexLocker locker(QMutexPool::globalInstanceGet(&triedResolve)); + // check triedResolve again, since another thread may have already + // done the initialization + if (triedResolve) { + // another thread did initialize the security function pointers, + // so we shouldn't do it again. + return; + } +#endif + + triedResolve = true; +#if !defined(Q_OS_WINCE) + HINSTANCE advapiHnd = LoadLibrary(L"advapi32"); + if (advapiHnd) { + ptrGetNamedSecurityInfoW = (PtrGetNamedSecurityInfoW)GetProcAddress(advapiHnd, "GetNamedSecurityInfoW"); + ptrLookupAccountSidW = (PtrLookupAccountSidW)GetProcAddress(advapiHnd, "LookupAccountSidW"); + ptrBuildTrusteeWithSidW = (PtrBuildTrusteeWithSidW)GetProcAddress(advapiHnd, "BuildTrusteeWithSidW"); + ptrGetEffectiveRightsFromAclW = (PtrGetEffectiveRightsFromAclW)GetProcAddress(advapiHnd, "GetEffectiveRightsFromAclW"); + } + if (ptrBuildTrusteeWithSidW) { + // Create TRUSTEE for current user + HANDLE hnd = ::GetCurrentProcess(); + HANDLE token = 0; + if (::OpenProcessToken(hnd, TOKEN_QUERY, &token)) { + TOKEN_USER tu; + DWORD retsize; + if (::GetTokenInformation(token, TokenUser, &tu, sizeof(tu), &retsize)) + ptrBuildTrusteeWithSidW(¤tUserTrusteeW, tu.User.Sid); + ::CloseHandle(token); + } + + typedef BOOL (WINAPI *PtrAllocateAndInitializeSid)(PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID*); + PtrAllocateAndInitializeSid ptrAllocateAndInitializeSid = (PtrAllocateAndInitializeSid)GetProcAddress(advapiHnd, "AllocateAndInitializeSid"); + typedef PVOID (WINAPI *PtrFreeSid)(PSID); + PtrFreeSid ptrFreeSid = (PtrFreeSid)GetProcAddress(advapiHnd, "FreeSid"); + if (ptrAllocateAndInitializeSid && ptrFreeSid) { + // Create TRUSTEE for Everyone (World) + SID_IDENTIFIER_AUTHORITY worldAuth = { SECURITY_WORLD_SID_AUTHORITY }; + PSID pWorld = 0; + if (ptrAllocateAndInitializeSid(&worldAuth, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, &pWorld)) + ptrBuildTrusteeWithSidW(&worldTrusteeW, pWorld); + ptrFreeSid(pWorld); + } + } + HINSTANCE userenvHnd = LoadLibrary(L"userenv"); + if (userenvHnd) + ptrGetUserProfileDirectoryW = (PtrGetUserProfileDirectoryW)GetProcAddress(userenvHnd, "GetUserProfileDirectoryW"); + HINSTANCE kernel32 = LoadLibrary(L"kernel32"); + if(kernel32) + ptrGetVolumePathNamesForVolumeNameW = (PtrGetVolumePathNamesForVolumeNameW)GetProcAddress(kernel32, "GetVolumePathNamesForVolumeNameW"); +#endif + } +} +#endif // QT_NO_LIBRARY + +typedef DWORD (WINAPI *PtrNetShareEnum)(LPWSTR, DWORD, LPBYTE*, DWORD, LPDWORD, LPDWORD, LPDWORD); +static PtrNetShareEnum ptrNetShareEnum = 0; +typedef DWORD (WINAPI *PtrNetApiBufferFree)(LPVOID); +static PtrNetApiBufferFree ptrNetApiBufferFree = 0; +typedef struct _SHARE_INFO_1 { + LPWSTR shi1_netname; + DWORD shi1_type; + LPWSTR shi1_remark; +} SHARE_INFO_1; + + +static bool resolveUNCLibs() +{ + static bool triedResolve = false; + if (!triedResolve) { +#ifndef QT_NO_THREAD + QMutexLocker locker(QMutexPool::globalInstanceGet(&triedResolve)); + if (triedResolve) { + return ptrNetShareEnum && ptrNetApiBufferFree; + } +#endif + triedResolve = true; +#if !defined(Q_OS_WINCE) + HINSTANCE hLib = LoadLibrary(L"netapi32"); + if (hLib) { + ptrNetShareEnum = (PtrNetShareEnum)GetProcAddress(hLib, "NetShareEnum"); + if (ptrNetShareEnum) + ptrNetApiBufferFree = (PtrNetApiBufferFree)GetProcAddress(hLib, "NetApiBufferFree"); + } +#endif + } + return ptrNetShareEnum && ptrNetApiBufferFree; +} + +static QString readSymLink(const QFileSystemEntry &link) +{ + QString result; +#if !defined(Q_OS_WINCE) + HANDLE handle = CreateFile((wchar_t*)link.nativeFilePath().utf16(), + FILE_READ_EA, + FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, + 0, + OPEN_EXISTING, + FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT, + 0); + if (handle != INVALID_HANDLE_VALUE) { + DWORD bufsize = MAXIMUM_REPARSE_DATA_BUFFER_SIZE; + REPARSE_DATA_BUFFER *rdb = (REPARSE_DATA_BUFFER*)qMalloc(bufsize); + DWORD retsize = 0; + if (::DeviceIoControl(handle, FSCTL_GET_REPARSE_POINT, 0, 0, rdb, bufsize, &retsize, 0)) { + if (rdb->ReparseTag == IO_REPARSE_TAG_MOUNT_POINT) { + int length = rdb->MountPointReparseBuffer.SubstituteNameLength / sizeof(wchar_t); + int offset = rdb->MountPointReparseBuffer.SubstituteNameOffset / sizeof(wchar_t); + const wchar_t* PathBuffer = &rdb->MountPointReparseBuffer.PathBuffer[offset]; + result = QString::fromWCharArray(PathBuffer, length); + } else if (rdb->ReparseTag == IO_REPARSE_TAG_SYMLINK) { + int length = rdb->SymbolicLinkReparseBuffer.SubstituteNameLength / sizeof(wchar_t); + int offset = rdb->SymbolicLinkReparseBuffer.SubstituteNameOffset / sizeof(wchar_t); + const wchar_t* PathBuffer = &rdb->SymbolicLinkReparseBuffer.PathBuffer[offset]; + result = QString::fromWCharArray(PathBuffer, length); + } + // cut-off "//?/" and "/??/" + if (result.size() > 4 && result.at(0) == QLatin1Char('\\') && result.at(2) == QLatin1Char('?') && result.at(3) == QLatin1Char('\\')) + result = result.mid(4); + } + qFree(rdb); + CloseHandle(handle); + +#if !defined(QT_NO_LIBRARY) + resolveLibs(); + if (ptrGetVolumePathNamesForVolumeNameW) { + QRegExp matchVolName(QLatin1String("^Volume\\{([a-z]|[0-9]|-)+\\}\\\\"), Qt::CaseInsensitive); + if(matchVolName.indexIn(result) == 0) { + DWORD len; + wchar_t buffer[MAX_PATH]; + QString volumeName = result.mid(0, matchVolName.matchedLength()).prepend(QLatin1String("\\\\?\\")); + if(ptrGetVolumePathNamesForVolumeNameW((wchar_t*)volumeName.utf16(), buffer, MAX_PATH, &len) != 0) + result.replace(0,matchVolName.matchedLength(), QString::fromWCharArray(buffer)); + } + } +#endif + } +#else + Q_UNUSED(link); +#endif // Q_OS_WINCE + return result; +} + +static QString readLink(const QFileSystemEntry &link) +{ +#if !defined(Q_OS_WINCE) +#if !defined(QT_NO_LIBRARY) && !defined(Q_CC_MWERKS) + QString ret; + + bool neededCoInit = false; + IShellLink *psl; // pointer to IShellLink i/f + WIN32_FIND_DATA wfd; + wchar_t szGotPath[MAX_PATH]; + + // Get pointer to the IShellLink interface. + HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *)&psl); + + if (hres == CO_E_NOTINITIALIZED) { // COM was not initialized + neededCoInit = true; + CoInitialize(NULL); + hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, + IID_IShellLink, (LPVOID *)&psl); + } + if (SUCCEEDED(hres)) { // Get pointer to the IPersistFile interface. + IPersistFile *ppf; + hres = psl->QueryInterface(IID_IPersistFile, (LPVOID *)&ppf); + if (SUCCEEDED(hres)) { + hres = ppf->Load((LPOLESTR)link.nativeFilePath().utf16(), STGM_READ); + //The original path of the link is retrieved. If the file/folder + //was moved, the return value still have the old path. + if (SUCCEEDED(hres)) { + if (psl->GetPath(szGotPath, MAX_PATH, &wfd, SLGP_UNCPRIORITY) == NOERROR) + ret = QString::fromWCharArray(szGotPath); + } + ppf->Release(); + } + psl->Release(); + } + if (neededCoInit) + CoUninitialize(); + + return ret; +#else + Q_UNUSED(link); + return QString(); +#endif // QT_NO_LIBRARY +#else + wchar_t target[MAX_PATH]; + QString result; + if (SHGetShortcutTarget((wchar_t*)QFileInfo(link.filePath()).absoluteFilePath().replace(QLatin1Char('/'),QLatin1Char('\\')).utf16(), target, MAX_PATH)) { + result = QString::fromWCharArray(target); + if (result.startsWith(QLatin1Char('"'))) + result.remove(0,1); + if (result.endsWith(QLatin1Char('"'))) + result.remove(result.size()-1,1); + } + return result; +#endif // Q_OS_WINCE +} + +static bool uncShareExists(const QString &server) +{ + // This code asumes the UNC path is always like \\?\UNC\server... + QStringList parts = server.split(QLatin1Char('\\'), QString::SkipEmptyParts); + if (parts.count() >= 3) { + QStringList shares; + if (QFileSystemEngine::uncListSharesOnServer(QLatin1String("\\\\") + parts.at(2), &shares)) + return parts.count() >= 4 ? shares.contains(parts.at(3), Qt::CaseInsensitive) : true; + } + return false; +} + +static inline bool getFindData(QString path, WIN32_FIND_DATA &findData) +{ + // path should not end with a trailing slash + while (path.endsWith(QLatin1Char('\\'))) + path.chop(1); + + // can't handle drives + if (!path.endsWith(QLatin1Char(':'))) { + HANDLE hFind = ::FindFirstFile((wchar_t*)path.utf16(), &findData); + if (hFind != INVALID_HANDLE_VALUE) { + ::FindClose(hFind); + return true; + } + } + + return false; +} + +bool QFileSystemEngine::uncListSharesOnServer(const QString &server, QStringList *list) +{ + if (resolveUNCLibs()) { + SHARE_INFO_1 *BufPtr, *p; + DWORD res; + DWORD er = 0, tr = 0, resume = 0, i; + do { + res = ptrNetShareEnum((wchar_t*)server.utf16(), 1, (LPBYTE *)&BufPtr, DWORD(-1), &er, &tr, &resume); + if (res == ERROR_SUCCESS || res == ERROR_MORE_DATA) { + p = BufPtr; + for (i = 1; i <= er; ++i) { + if (list && p->shi1_type == 0) + list->append(QString::fromWCharArray(p->shi1_netname)); + p++; + } + } + ptrNetApiBufferFree(BufPtr); + } while (res == ERROR_MORE_DATA); + return res == ERROR_SUCCESS; + } + return false; +} + +void QFileSystemMetaData::fillFromFileAttribute(DWORD fileAttribute,bool isDriveRoot) +{ + fileAttribute_ = fileAttribute; + // Ignore the hidden attribute for drives. + if (!isDriveRoot && (fileAttribute_ & FILE_ATTRIBUTE_HIDDEN)) + entryFlags |= HiddenAttribute; + entryFlags |= ((fileAttribute & FILE_ATTRIBUTE_DIRECTORY) ? DirectoryType: FileType); + entryFlags |= ExistsAttribute; + knownFlagsMask |= FileType | DirectoryType | HiddenAttribute | ExistsAttribute; +} + +void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType, bool isDriveRoot) +{ + fillFromFileAttribute(findData.dwFileAttributes, isDriveRoot); + creationTime_ = findData.ftCreationTime; + lastAccessTime_ = findData.ftLastAccessTime; + lastWriteTime_ = findData.ftLastWriteTime; + size_ = findData.nFileSizeHigh; + size_ <<= 32; + size_ += findData.nFileSizeLow; + knownFlagsMask |= Times | SizeAttribute; + if (setLinkType) { + knownFlagsMask |= LinkType; + entryFlags &= ~LinkType; + if ((fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) + && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK + || findData.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT)) { + entryFlags |= LinkType; + } + + } +} + +void QFileSystemMetaData::fillFromFindInfo(BY_HANDLE_FILE_INFORMATION &fileInfo) +{ + fillFromFileAttribute(fileInfo.dwFileAttributes); + creationTime_ = fileInfo.ftCreationTime; + lastAccessTime_ = fileInfo.ftLastAccessTime; + lastWriteTime_ = fileInfo.ftLastWriteTime; + size_ = fileInfo.nFileSizeHigh; + size_ <<= 32; + size_ += fileInfo.nFileSizeLow; + knownFlagsMask |= Times | SizeAttribute; +} + +void QFileSystemEngine::clearWinStatData(QFileSystemMetaData &data) +{ + data.size_ = -1; + data.fileAttribute_ = 0; +} + bool QFileSystemEngine::isCaseSensitive() { return false; } //static -QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data) +QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, + QFileSystemMetaData &data) { - return link; // TODO implement + if (data.missingFlags(QFileSystemMetaData::LinkType)) + QFileSystemEngine::fillMetaData(link, data, QFileSystemMetaData::LinkType); + + QString ret; + if (data.isLnkFile()) + ret = readLink(link); + else if (data.isLink()) + ret = readSymLink(link); + return QFileSystemEntry(QDir::fromNativeSeparators(ret)); } //static QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) { - return QFileSystemEntry(slowCanonicalized(entry.filePath())); + // The caller has to verify whether the file exists or not. + return QFileSystemEntry(slowCanonicalized(absoluteName(entry).filePath())); +} + +//static +QString QFileSystemEngine::nativeAbsoluteFilePath(const QString &path) +{ + // can be //server or //server/share + QString absPath; +#if !defined(Q_OS_WINCE) + QVarLengthArray buf(qMax(MAX_PATH, path.size() + 1)); + wchar_t *fileName = 0; + DWORD retLen = GetFullPathName((wchar_t*)path.utf16(), buf.size(), buf.data(), &fileName); + if (retLen > (DWORD)buf.size()) { + buf.resize(retLen); + retLen = GetFullPathName((wchar_t*)path.utf16(), buf.size(), buf.data(), &fileName); + } + if (retLen != 0) + absPath = QString::fromWCharArray(buf.data(), retLen); +#else + if (path.startsWith(QLatin1Char('/')) || path.startsWith(QLatin1Char('\\'))) + absPath = QDir::toNativeSeparators(path); + else + absPath = QDir::toNativeSeparators(QDir::cleanPath(qfsPrivateCurrentDir + QLatin1Char('/') + path)); +#endif + // This is really ugly, but GetFullPathName strips off whitespace at the end. + // If you for instance write ". " in the lineedit of QFileDialog, + // (which is an invalid filename) this function will strip the space off and viola, + // the file is later reported as existing. Therefore, we re-add the whitespace that + // was at the end of path in order to keep the filename invalid. + if (!path.isEmpty() && path.at(path.size() - 1) == QLatin1Char(' ')) + absPath.append(QLatin1Char(' ')); + return absPath; } //static QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) { - return entry; // TODO implement; + QString ret; + + if (!entry.isRelative()) { +#if !defined(Q_OS_WINCE) + if (entry.filePath().startsWith(QLatin1Char('/')) || // It's a absolute path to the current drive, so \a.txt -> Z:\a.txt + entry.filePath().size() == 2 || // It's a drive letter that needs to get a working dir appended + (entry.filePath().size() > 2 && entry.filePath().at(2) != QLatin1Char('/')) || // It's a drive-relative path, so Z:a.txt -> Z:\currentpath\a.txt + entry.filePath().contains(QLatin1String("/../")) || entry.filePath().contains(QLatin1String("/./")) || + entry.filePath().endsWith(QLatin1String("/..")) || entry.filePath().endsWith(QLatin1String("/."))) + { + ret = QDir::fromNativeSeparators(nativeAbsoluteFilePath(entry.filePath())); + } else +#endif + { + ret = entry.filePath(); + } + } else { + ret = QDir::cleanPath(QDir::currentPath() + QLatin1Char('/') + entry.filePath()); + } + + // The path should be absolute at this point. + // From the docs : + // Absolute paths begin with the directory separator "/" + // (optionally preceded by a drive specification under Windows). + if (ret.at(0) != QLatin1Char('/')) { + Q_ASSERT(ret.length() >= 2); + Q_ASSERT(ret.at(0).isLetter()); + Q_ASSERT(ret.at(1) == QLatin1Char(':')); + + // Force uppercase drive letters. + ret[0] = ret.at(0).toUpper(); + } + return QFileSystemEntry(ret); } //static @@ -81,25 +583,506 @@ QString QFileSystemEngine::resolveGroupName(uint groupId) //static QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) { + Q_UNUSED(entry); return QString(); } //static -bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) +QString QFileSystemEngine::owner(const QFileSystemEntry &entry, QAbstractFileEngine::FileOwner own) { - return false; // TODO implement; + QString name; +#if !defined(QT_NO_LIBRARY) + extern int qt_ntfs_permission_lookup; + if((qt_ntfs_permission_lookup > 0) && (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based)) { + resolveLibs(); + if (ptrGetNamedSecurityInfoW && ptrLookupAccountSidW) { + PSID pOwner = 0; + PSECURITY_DESCRIPTOR pSD; + if (ptrGetNamedSecurityInfoW((wchar_t*)entry.nativeFilePath().utf16(), SE_FILE_OBJECT, + own == QAbstractFileEngine::OwnerGroup ? GROUP_SECURITY_INFORMATION : OWNER_SECURITY_INFORMATION, + own == QAbstractFileEngine::OwnerUser ? &pOwner : 0, own == QAbstractFileEngine::OwnerGroup ? &pOwner : 0, + 0, 0, &pSD) == ERROR_SUCCESS) { + DWORD lowner = 64; + DWORD ldomain = 64; + QVarLengthArray owner(lowner); + QVarLengthArray domain(ldomain); + SID_NAME_USE use = SidTypeUnknown; + // First call, to determine size of the strings (with '\0'). + if (!ptrLookupAccountSidW(NULL, pOwner, (LPWSTR)owner.data(), &lowner, + (LPWSTR)domain.data(), &ldomain, (SID_NAME_USE*)&use)) { + if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { + if (lowner > (DWORD)owner.size()) + owner.resize(lowner); + if (ldomain > (DWORD)domain.size()) + domain.resize(ldomain); + // Second call, try on resized buf-s + if (!ptrLookupAccountSidW(NULL, pOwner, (LPWSTR)owner.data(), &lowner, + (LPWSTR)domain.data(), &ldomain, (SID_NAME_USE*)&use)) { + lowner = 0; + } + } else { + lowner = 0; + } + } + if (lowner != 0) + name = QString::fromWCharArray(owner.data()); + LocalFree(pSD); + } + } + } +#else + Q_UNUSED(own); +#endif + return name; +} + +//static +bool QFileSystemEngine::fillPermissions(const QFileSystemEntry &entry, QFileSystemMetaData &data, + QFileSystemMetaData::MetaDataFlags what) +{ + QAbstractFileEngine::FileFlags ret = 0; + +#if !defined(QT_NO_LIBRARY) + if((qt_ntfs_permission_lookup > 0) && (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based)) { + resolveLibs(); + if(ptrGetNamedSecurityInfoW && ptrBuildTrusteeWithSidW && ptrGetEffectiveRightsFromAclW) { + enum { ReadMask = 0x00000001, WriteMask = 0x00000002, ExecMask = 0x00000020 }; + + QString fname = entry.filePath(); + PSID pOwner = 0; + PSID pGroup = 0; + PACL pDacl; + PSECURITY_DESCRIPTOR pSD; + DWORD res = ptrGetNamedSecurityInfoW((wchar_t*)fname.utf16(), SE_FILE_OBJECT, + OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION, + &pOwner, &pGroup, &pDacl, 0, &pSD); + if(res == ERROR_SUCCESS) { + ACCESS_MASK access_mask; + TRUSTEE_W trustee; + if (what & QFileSystemMetaData::UserPermissions) { // user + data.knownFlagsMask |= QFileSystemMetaData::UserPermissions; + if(ptrGetEffectiveRightsFromAclW(pDacl, ¤tUserTrusteeW, &access_mask) != ERROR_SUCCESS) + access_mask = (ACCESS_MASK)-1; + if(access_mask & ReadMask) + data.entryFlags |= QFileSystemMetaData::UserReadPermission; + if(access_mask & WriteMask) + data.entryFlags|= QFileSystemMetaData::UserWritePermission; + if(access_mask & ExecMask) + data.entryFlags|= QFileSystemMetaData::UserExecutePermission; + } + if (what & QFileSystemMetaData::OwnerPermissions) { // owner + data.knownFlagsMask |= QFileSystemMetaData::OwnerPermissions; + ptrBuildTrusteeWithSidW(&trustee, pOwner); + if(ptrGetEffectiveRightsFromAclW(pDacl, &trustee, &access_mask) != ERROR_SUCCESS) + access_mask = (ACCESS_MASK)-1; + if(access_mask & ReadMask) + data.entryFlags |= QFileSystemMetaData::OwnerReadPermission; + if(access_mask & WriteMask) + data.entryFlags |= QFileSystemMetaData::OwnerWritePermission; + if(access_mask & ExecMask) + data.entryFlags |= QFileSystemMetaData::OwnerExecutePermission; + } + if (what & QFileSystemMetaData::GroupPermissions) { // group + data.knownFlagsMask |= QFileSystemMetaData::GroupPermissions; + ptrBuildTrusteeWithSidW(&trustee, pGroup); + if(ptrGetEffectiveRightsFromAclW(pDacl, &trustee, &access_mask) != ERROR_SUCCESS) + access_mask = (ACCESS_MASK)-1; + if(access_mask & ReadMask) + data.entryFlags |= QFileSystemMetaData::GroupReadPermission; + if(access_mask & WriteMask) + data.entryFlags |= QFileSystemMetaData::GroupWritePermission; + if(access_mask & ExecMask) + data.entryFlags |= QFileSystemMetaData::GroupExecutePermission; + } + if (what & QFileSystemMetaData::OtherPermissions) { // other (world) + data.knownFlagsMask |= QFileSystemMetaData::OtherPermissions; + if(ptrGetEffectiveRightsFromAclW(pDacl, &worldTrusteeW, &access_mask) != ERROR_SUCCESS) + access_mask = (ACCESS_MASK)-1; // ### + if(access_mask & ReadMask) + data.entryFlags |= QFileSystemMetaData::OtherReadPermission; + if(access_mask & WriteMask) + data.entryFlags |= QFileSystemMetaData::OtherWritePermission; + if(access_mask & ExecMask) + data.entryFlags |= QFileSystemMetaData::OwnerExecutePermission; + } + LocalFree(pSD); + } + } + } else +#endif + { + //### what to do with permissions if we don't use NTFS + // for now just add all permissions and what about exe missions ?? + // also qt_ntfs_permission_lookup is now not set by default ... should it ? + data.entryFlags |= QFileSystemMetaData::OwnerReadPermission + | QFileSystemMetaData::GroupReadPermission + | QFileSystemMetaData::OtherReadPermission; + + if (!(data.fileAttribute_ & FILE_ATTRIBUTE_READONLY)) { + data.entryFlags |= QFileSystemMetaData::OwnerWritePermission + | QFileSystemMetaData::GroupWritePermission + | QFileSystemMetaData::OtherWritePermission; + } + + QString fname = entry.filePath(); + QString ext = fname.right(4).toLower(); + if (data.isDirectory() || + ext == QLatin1String(".exe") || ext == QLatin1String(".com") || ext == QLatin1String(".bat") || + ext == QLatin1String(".pif") || ext == QLatin1String(".cmd")) { + data.entryFlags |= QFileSystemMetaData::OwnerExecutePermission | QFileSystemMetaData::GroupExecutePermission + | QFileSystemMetaData::OtherExecutePermission | QFileSystemMetaData::UserExecutePermission; + } + data.knownFlagsMask |= QFileSystemMetaData::OwnerPermissions | QFileSystemMetaData::GroupPermissions + | QFileSystemMetaData::OtherPermissions | QFileSystemMetaData::UserExecutePermission; + // calculate user permissions + if (what & QFileSystemMetaData::UserReadPermission) { + if (::_waccess((wchar_t*)entry.nativeFilePath().utf16(), R_OK) == 0) + data.entryFlags |= QFileSystemMetaData::UserReadPermission; + data.knownFlagsMask |= QFileSystemMetaData::UserReadPermission; + } + if (what & QFileSystemMetaData::UserWritePermission) { + if (::_waccess((wchar_t*)entry.nativeFilePath().utf16(), W_OK) == 0) + data.entryFlags |= QFileSystemMetaData::UserWritePermission; + data.knownFlagsMask |= QFileSystemMetaData::UserReadPermission; + } + } + + return data.hasFlags(what); +} + +static bool tryDriveUNCFallback(const QFileSystemEntry &fname, QFileSystemMetaData &data) +{ + bool entryExists = false; + DWORD fileAttrib = 0; +#if !defined(Q_OS_WINCE) + if (fname.isDriveRoot()) { + // a valid drive ?? + DWORD drivesBitmask = ::GetLogicalDrives(); + int drivebit = 1 << (fname.filePath().at(0).toUpper().unicode() - QLatin1Char('A').unicode()); + if (drivesBitmask & drivebit) { + fileAttrib = FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_SYSTEM; + entryExists = true; + } + } else { +#endif + const QString &path = fname.nativeFilePath(); + bool is_dir = false; + if (path.startsWith(QLatin1String("\\\\?\\UNC"))) { + // UNC - stat doesn't work for all cases (Windows bug) + int s = path.indexOf(path.at(0),7); + if (s > 0) { + // "\\?\UNC\server\..." + s = path.indexOf(path.at(0),s+1); + if (s > 0) { + // "\\?\UNC\server\share\..." + if (s == path.size() - 1) { + // "\\?\UNC\server\share\" + is_dir = true; + } else { + // "\\?\UNC\server\share\notfound" + } + } else { + // "\\?\UNC\server\share" + is_dir = true; + } + } else { + // "\\?\UNC\server" + is_dir = true; + } + } + if (is_dir && uncShareExists(path)) { + // looks like a UNC dir, is a dir. + fileAttrib = FILE_ATTRIBUTE_DIRECTORY; + entryExists = true; + } +#if !defined(Q_OS_WINCE) + } +#endif + if (entryExists) + data.fillFromFileAttribute(fileAttrib); + return entryExists; +} + +static bool tryFindFallback(const QFileSystemEntry &fname, QFileSystemMetaData &data) +{ + bool filledData = false; + // This assumes the last call to a Windows API failed. + int errorCode = GetLastError(); + if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { + WIN32_FIND_DATA findData; + if (getFindData(fname.nativeFilePath(), findData) + && findData.dwFileAttributes != INVALID_FILE_ATTRIBUTES) { + data.fillFromFindData(findData, true, fname.isDriveRoot()); + filledData = true; + } + } + return filledData; +} + +#if !defined(Q_OS_WINCE) +//static +bool QFileSystemEngine::fillMetaData(int fd, QFileSystemMetaData &data, + QFileSystemMetaData::MetaDataFlags what) +{ + HANDLE fHandle = (HANDLE)_get_osfhandle(fd); + if (fHandle != INVALID_HANDLE_VALUE) { + return fillMetaData(fHandle, data, what); + } + return false; +} +#endif + +//static +bool QFileSystemEngine::fillMetaData(HANDLE fHandle, QFileSystemMetaData &data, + QFileSystemMetaData::MetaDataFlags what) +{ + data.entryFlags &= ~what; + clearWinStatData(data); + BY_HANDLE_FILE_INFORMATION fileInfo; + UINT oldmode = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX); + if (GetFileInformationByHandle(fHandle , &fileInfo)) { + data.fillFromFindInfo(fileInfo); + } + SetErrorMode(oldmode); + return data.hasFlags(what); +} + +//static +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, + QFileSystemMetaData::MetaDataFlags what) +{ + what |= QFileSystemMetaData::WinLnkType | QFileSystemMetaData::WinStatFlags; + data.entryFlags &= ~what; + + QFileSystemEntry fname; + data.knownFlagsMask |= QFileSystemMetaData::WinLnkType; + if(entry.filePath().endsWith(QLatin1String(".lnk"))) { + data.entryFlags |= QFileSystemMetaData::WinLnkType; + fname = QFileSystemEntry(readLink(entry)); + } else { + fname = entry; + } + + if (fname.isEmpty()) { + data.knownFlagsMask |= what; + clearWinStatData(data); + return false; + } + + if (what & QFileSystemMetaData::WinStatFlags) { + UINT oldmode = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX); + clearWinStatData(data); + WIN32_FIND_DATA findData; + // The memory structure for WIN32_FIND_DATA is same as WIN32_FILE_ATTRIBUTE_DATA + // for all members used by fillFindData(). + bool ok = ::GetFileAttributesEx((wchar_t*)fname.nativeFilePath().utf16(), GetFileExInfoStandard, + reinterpret_cast(&findData)); + if (ok) { + data.fillFromFindData(findData, false, fname.isDriveRoot()); + } else { + if (!tryFindFallback(fname, data)) + tryDriveUNCFallback(fname, data); + } + SetErrorMode(oldmode); + } + + if (what & QFileSystemMetaData::Permissions) + fillPermissions(fname, data, what); + if ((what & QFileSystemMetaData::LinkType) + && data.missingFlags(QFileSystemMetaData::LinkType)) { + data.knownFlagsMask |= QFileSystemMetaData::LinkType; + if (data.fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) { + WIN32_FIND_DATA findData; + if (getFindData(fname.nativeFilePath(), findData)) + data.fillFromFindData(findData, true); + } + } + data.knownFlagsMask |= what; + return data.hasFlags(what); +} + +static inline bool mkDir(const QString &path) +{ +#if defined(Q_OS_WINCE) + // Unfortunately CreateDirectory returns true for paths longer than + // 256, but does not create a directory. It starts to fail, when + // path length > MAX_PATH, which is 260 usually on CE. + // This only happens on a Windows Mobile device. Windows CE seems + // not to be affected by this. + static int platformId = 0; + if (platformId == 0) { + wchar_t platformString[64]; + if (SystemParametersInfo(SPI_GETPLATFORMTYPE, sizeof(platformString)/sizeof(*platformString),platformString,0)) { + if (0 == wcscmp(platformString, L"PocketPC") || 0 == wcscmp(platformString, L"Smartphone")) + platformId = 1; + else + platformId = 2; + } + } + if (platformId == 1 && QFSFileEnginePrivate::longFileName(path).size() > 256) + return false; +#endif + return ::CreateDirectory((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16(), 0); +} + +static inline bool rmDir(const QString &path) +{ + return ::RemoveDirectory((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16()); +} + +static bool isDirPath(const QString &dirPath, bool *existed) +{ + QString path = dirPath; + if (path.length() == 2 && path.at(1) == QLatin1Char(':')) + path += QLatin1Char('\\'); + + DWORD fileAttrib = ::GetFileAttributes((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16()); + if (fileAttrib == INVALID_FILE_ATTRIBUTES) { + int errorCode = GetLastError(); + if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { + WIN32_FIND_DATA findData; + if (getFindData(QFSFileEnginePrivate::longFileName(path), findData)) + fileAttrib = findData.dwFileAttributes; + } + } + + if (existed) + *existed = fileAttrib != INVALID_FILE_ATTRIBUTES; + + if (fileAttrib == INVALID_FILE_ATTRIBUTES) + return false; + + return fileAttrib & FILE_ATTRIBUTE_DIRECTORY; } //static bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool createParents) { - return false; // TODO implement; + QString dirName = entry.filePath(); + if (createParents) { + dirName = QDir::toNativeSeparators(QDir::cleanPath(dirName)); + // We spefically search for / so \ would break it.. + int oldslash = -1; + if (dirName.startsWith(QLatin1String("\\\\"))) { + // Don't try to create the root path of a UNC path; + // CreateDirectory() will just return ERROR_INVALID_NAME. + for (int i = 0; i < dirName.size(); ++i) { + if (dirName.at(i) != QDir::separator()) { + oldslash = i; + break; + } + } + if (oldslash != -1) + oldslash = dirName.indexOf(QDir::separator(), oldslash); + } + for (int slash=0; slash != -1; oldslash = slash) { + slash = dirName.indexOf(QDir::separator(), oldslash+1); + if (slash == -1) { + if (oldslash == dirName.length()) + break; + slash = dirName.length(); + } + if (slash) { + QString chunk = dirName.left(slash); + bool existed = false; + if (!isDirPath(chunk, &existed)) { + if (!existed) { + if (!mkDir(chunk)) + return false; + } else { + return false; + } + } + } + } + return true; + } + return mkDir(entry.filePath()); } //static bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents) { - return false; // TODO implement; + QString dirName = entry.filePath(); + if (removeEmptyParents) { + dirName = QDir::toNativeSeparators(QDir::cleanPath(dirName)); + for (int oldslash = 0, slash=dirName.length(); slash > 0; oldslash = slash) { + QString chunk = dirName.left(slash); + if (chunk.length() == 2 && chunk.at(0).isLetter() && chunk.at(1) == QLatin1Char(':')) + break; + if (!isDirPath(chunk, 0)) + return false; + if (!rmDir(chunk)) + return oldslash != 0; + slash = dirName.lastIndexOf(QDir::separator(), oldslash-1); + } + return true; + } + return rmDir(entry.filePath()); +} + +//static +QString QFileSystemEngine::rootPath() +{ +#if defined(Q_OS_WINCE) + QString ret = QLatin1String("/"); +#elif defined(Q_FS_FAT) + QString ret = QString::fromLatin1(qgetenv("SystemDrive").constData()); + if (ret.isEmpty()) + ret = QLatin1String("c:"); + ret.append(QLatin1Char('/')); +#elif defined(Q_OS_OS2EMX) + char dir[4]; + _abspath(dir, QLatin1String("/"), _MAX_PATH); + QString ret(dir); +#endif + return ret; +} + +//static +QString QFileSystemEngine::homePath() +{ + QString ret; +#if !defined(QT_NO_LIBRARY) + resolveLibs(); + if (ptrGetUserProfileDirectoryW) { + HANDLE hnd = ::GetCurrentProcess(); + HANDLE token = 0; + BOOL ok = ::OpenProcessToken(hnd, TOKEN_QUERY, &token); + if (ok) { + DWORD dwBufferSize = 0; + // First call, to determine size of the strings (with '\0'). + ok = ptrGetUserProfileDirectoryW(token, NULL, &dwBufferSize); + if (!ok && dwBufferSize != 0) { // We got the required buffer size + wchar_t *userDirectory = new wchar_t[dwBufferSize]; + // Second call, now we can fill the allocated buffer. + ok = ptrGetUserProfileDirectoryW(token, userDirectory, &dwBufferSize); + if (ok) + ret = QString::fromWCharArray(userDirectory); + delete [] userDirectory; + } + ::CloseHandle(token); + } + } +#endif + if (ret.isEmpty() || !QFile::exists(ret)) { + ret = QString::fromLocal8Bit(qgetenv("USERPROFILE").constData()); + if (ret.isEmpty() || !QFile::exists(ret)) { + ret = QString::fromLocal8Bit(qgetenv("HOMEDRIVE").constData()) + + QString::fromLocal8Bit(qgetenv("HOMEPATH").constData()); + if (ret.isEmpty() || !QFile::exists(ret)) { + ret = QString::fromLocal8Bit(qgetenv("HOME").constData()); + if (ret.isEmpty() || !QFile::exists(ret)) { +#if defined(Q_OS_WINCE) + ret = QLatin1String("\\My Documents"); + if (!QFile::exists(ret)) +#endif + ret = rootPath(); + } + } + } + } + return QDir::fromNativeSeparators(ret); } //static @@ -111,25 +1094,90 @@ bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSy //static bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target) { - return false; // TODO implement; + bool ret = ::CopyFile((wchar_t*)source.nativeFilePath().utf16(), + (wchar_t*)target.nativeFilePath().utf16(), true) != 0; + return ret; } //static bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target) { - return false; // TODO implement; + bool ret = ::MoveFile((wchar_t*)source.nativeFilePath().utf16(), + (wchar_t*)target.nativeFilePath().utf16()) != 0; + return ret; } //static bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) { - return false; // TODO implement; + bool ret = ::DeleteFile((wchar_t*)entry.nativeFilePath().utf16()) != 0; + return ret; } //static -bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data) +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, + QFileSystemMetaData *data) { - return false; // TODO implement; + Q_UNUSED(data); + int mode = 0; + + if (permissions & QFile::ReadOwner || permissions & QFile::ReadUser + || permissions & QFile::ReadGroup || permissions & QFile::ReadOther) + mode |= _S_IREAD; + if (permissions & QFile::WriteOwner || permissions & QFile::WriteUser + || permissions & QFile::WriteGroup || permissions & QFile::WriteOther) + mode |= _S_IWRITE; + + if (mode == 0) // not supported + return false; + + return ::_wchmod((wchar_t*)entry.nativeFilePath().utf16(), mode) == 0; +} + +static inline QDateTime fileTimeToQDateTime(const FILETIME *time) +{ + QDateTime ret; + +#if defined(Q_OS_WINCE) + SYSTEMTIME systime; + FILETIME ftime; + systime.wYear = 1970; + systime.wMonth = 1; + systime.wDay = 1; + systime.wHour = 0; + systime.wMinute = 0; + systime.wSecond = 0; + systime.wMilliseconds = 0; + systime.wDayOfWeek = 4; + SystemTimeToFileTime(&systime, &ftime); + unsigned __int64 acttime = (unsigned __int64)time->dwHighDateTime << 32 | time->dwLowDateTime; + FileTimeToSystemTime(time, &systime); + unsigned __int64 time1970 = (unsigned __int64)ftime.dwHighDateTime << 32 | ftime.dwLowDateTime; + unsigned __int64 difftime = acttime - time1970; + difftime /= 10000000; + ret.setTime_t((unsigned int)difftime); +#else + SYSTEMTIME sTime, lTime; + FileTimeToSystemTime(time, &sTime); + SystemTimeToTzSpecificLocalTime(0, &sTime, &lTime); + ret.setDate(QDate(lTime.wYear, lTime.wMonth, lTime.wDay)); + ret.setTime(QTime(lTime.wHour, lTime.wMinute, lTime.wSecond, lTime.wMilliseconds)); +#endif + + return ret; +} + +QDateTime QFileSystemMetaData::creationTime() const +{ + return fileTimeToQDateTime(&creationTime_); +} +QDateTime QFileSystemMetaData::modificationTime() const +{ + return fileTimeToQDateTime(&lastWriteTime_); +} +QDateTime QFileSystemMetaData::accessTime() const +{ + return fileTimeToQDateTime(&lastAccessTime_); } QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index e45c5dc..29ef987 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -111,9 +111,14 @@ public: BundleType = 0x0, AliasType = 0x0, #endif +#if defined(Q_OS_WIN) + WinLnkType = 0x08000000, // Note: Uses the same position for AliasType on Mac +#else + WinLnkType = 0x0, +#endif SequentialType = 0x00800000, // Note: overlaps with QAbstractFileEngine::RootFlag - LegacyLinkType = LinkType | AliasType, + LegacyLinkType = LinkType | AliasType | WinLnkType, Type = LinkType | FileType | DirectoryType | BundleType | SequentialType | AliasType, @@ -153,6 +158,14 @@ public: | QFileSystemMetaData::SequentialType | QFileSystemMetaData::Attributes | QFileSystemMetaData::Times, +#if defined(Q_OS_WIN) + WinStatFlags = QFileSystemMetaData::FileType + | QFileSystemMetaData::DirectoryType + | QFileSystemMetaData::HiddenAttribute + | QFileSystemMetaData::ExistsAttribute + | QFileSystemMetaData::SizeAttribute + | QFileSystemMetaData::Times, +#endif AllMetaDataFlags = 0xFFFFFFFF @@ -181,7 +194,7 @@ public: bool exists() const { return (entryFlags & ExistsAttribute); } - bool isLink() const { return (entryFlags & LinkType); } + bool isLink() const { return (entryFlags & LinkType); } bool isFile() const { return (entryFlags & FileType); } bool isDirectory() const { return (entryFlags & DirectoryType); } bool isBundle() const; @@ -189,6 +202,11 @@ public: bool isLegacyLink() const { return (entryFlags & LegacyLinkType); } bool isSequential() const { return (entryFlags & SequentialType); } bool isHidden() const { return (entryFlags & HiddenAttribute); } +#if defined(Q_OS_WIN) + bool isLnkFile() const { return (entryFlags & WinLnkType); } +#else + bool isLnkFile() const { return false; } +#endif qint64 size() const { return size_; } @@ -212,6 +230,11 @@ public: void fillFromVolumeInfo(const TVolumeInfo& info); #endif +#if defined(Q_OS_WIN) + inline void fillFromFileAttribute(DWORD fileAttribute, bool isDriveRoot = false); + inline void fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType = false, bool isDriveRoot = false); + inline void fillFromFindInfo(BY_HANDLE_FILE_INFORMATION &fileInfo); +#endif private: friend class QFileSystemEngine; @@ -222,6 +245,10 @@ private: // Platform-specific data goes here: #if defined(Q_OS_WIN) + DWORD fileAttribute_; + FILETIME creationTime_; + FILETIME lastAccessTime_; + FILETIME lastWriteTime_; #elif defined(Q_OS_SYMBIAN) TTime modificationTime_; #else @@ -245,11 +272,7 @@ inline bool QFileSystemMetaData::isBundle() const { return fal inline bool QFileSystemMetaData::isAlias() const { return false; } #endif -#if defined(Q_OS_UNIX) && !defined (Q_OS_SYMBIAN) -inline QDateTime QFileSystemMetaData::creationTime() const { return QDateTime::fromTime_t(creationTime_); } -inline QDateTime QFileSystemMetaData::modificationTime() const { return QDateTime::fromTime_t(modificationTime_); } -inline QDateTime QFileSystemMetaData::accessTime() const { return QDateTime::fromTime_t(accessTime_); } - +#if (defined(Q_OS_UNIX) && !defined (Q_OS_SYMBIAN)) || defined (Q_OS_WIN) inline QDateTime QFileSystemMetaData::fileTime(QAbstractFileEngine::FileTime time) const { switch (time) { @@ -265,6 +288,12 @@ inline QDateTime QFileSystemMetaData::fileTime(QAbstractFileEngine::FileTime tim return QDateTime(); } +#endif + +#if defined(Q_OS_UNIX) && !defined (Q_OS_SYMBIAN) +inline QDateTime QFileSystemMetaData::creationTime() const { return QDateTime::fromTime_t(creationTime_); } +inline QDateTime QFileSystemMetaData::modificationTime() const { return QDateTime::fromTime_t(modificationTime_); } +inline QDateTime QFileSystemMetaData::accessTime() const { return QDateTime::fromTime_t(accessTime_); } inline uint QFileSystemMetaData::userId() const { return userId_; } inline uint QFileSystemMetaData::groupId() const { return groupId_; } @@ -297,6 +326,18 @@ inline uint QFileSystemMetaData::ownerId(QAbstractFileEngine::FileOwner owner) c } #endif +#if defined(Q_OS_WIN) +inline uint QFileSystemMetaData::userId() const { return (uint) -2; } +inline uint QFileSystemMetaData::groupId() const { return (uint) -2; } +inline uint QFileSystemMetaData::ownerId(QAbstractFileEngine::FileOwner owner) const +{ + if (owner == QAbstractFileEngine::OwnerUser) + return userId(); + else + return groupId(); +} +#endif + QT_END_NAMESPACE #endif // include guard diff --git a/src/corelib/io/qfsfileengine_iterator_win.cpp b/src/corelib/io/qfsfileengine_iterator_win.cpp index 7181025..d4e6f5a 100644 --- a/src/corelib/io/qfsfileengine_iterator_win.cpp +++ b/src/corelib/io/qfsfileengine_iterator_win.cpp @@ -41,6 +41,7 @@ #include "qfsfileengine_iterator_p.h" #include "qfsfileengine_p.h" +#include "qfilesystemengine_p.h" #include "qplatformdefs.h" #include @@ -135,7 +136,7 @@ bool QFSFileEngineIterator::hasNext() const // UNC QStringList parts = QDir::toNativeSeparators(path).split(QLatin1Char('\\'), QString::SkipEmptyParts); - if (parts.count() == 1 && QFSFileEnginePrivate::uncListSharesOnServer(QLatin1String("\\\\") + parts.at(0), + if (parts.count() == 1 && QFileSystemEngine::uncListSharesOnServer(QLatin1String("\\\\") + parts.at(0), &platform->uncShares)) { if (platform->uncShares.isEmpty()) { platform->done = true; diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index a3733d8..14a8938 100644 --- a/src/corelib/io/qfsfileengine_p.h +++ b/src/corelib/io/qfsfileengine_p.h @@ -114,9 +114,7 @@ public: uchar *map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags); bool unmap(uchar *ptr); -#if defined(Q_OS_UNIX) mutable QFileSystemMetaData metaData; -#endif FILE *fh; #ifdef Q_OS_SYMBIAN @@ -177,7 +175,7 @@ public: #endif #if defined(Q_OS_WIN) - bool doStat() const; + bool doStat(QFileSystemMetaData::MetaDataFlags flags) const; #else bool doStat(QFileSystemMetaData::MetaDataFlags flags = QFileSystemMetaData::PosixStatFlags) const; #endif @@ -187,12 +185,6 @@ public: int sysOpen(const QString &, int flags); #endif -#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) - static void resolveLibs(); - static bool resolveUNCLibs(); - static bool uncListSharesOnServer(const QString &server, QStringList *list); -#endif - #ifdef Q_OS_SYMBIAN void setSymbianError(int symbianError, QFile::FileError defaultError, QString defaultString); #endif diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 7262129..976207a 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -69,69 +69,9 @@ #define SECURITY_WIN32 #include -#ifndef _INTPTR_T_DEFINED -#ifdef _WIN64 -typedef __int64 intptr_t; -#else -#ifdef _W64 -typedef _W64 int intptr_t; -#else -typedef INT_PTR intptr_t; -#endif -#endif -#define _INTPTR_T_DEFINED -#endif - -#ifndef INVALID_FILE_ATTRIBUTES -# define INVALID_FILE_ATTRIBUTES (DWORD (-1)) -#endif - -#if !defined(Q_OS_WINCE) -# if !defined(REPARSE_DATA_BUFFER_HEADER_SIZE) -typedef struct _REPARSE_DATA_BUFFER { - ULONG ReparseTag; - USHORT ReparseDataLength; - USHORT Reserved; - union { - struct { - USHORT SubstituteNameOffset; - USHORT SubstituteNameLength; - USHORT PrintNameOffset; - USHORT PrintNameLength; - ULONG Flags; - WCHAR PathBuffer[1]; - } SymbolicLinkReparseBuffer; - struct { - USHORT SubstituteNameOffset; - USHORT SubstituteNameLength; - USHORT PrintNameOffset; - USHORT PrintNameLength; - WCHAR PathBuffer[1]; - } MountPointReparseBuffer; - struct { - UCHAR DataBuffer[1]; - } GenericReparseBuffer; - }; -} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER; -# define REPARSE_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer) -# endif // !defined(REPARSE_DATA_BUFFER_HEADER_SIZE) - -# ifndef MAXIMUM_REPARSE_DATA_BUFFER_SIZE -# define MAXIMUM_REPARSE_DATA_BUFFER_SIZE 16384 -# endif -# ifndef IO_REPARSE_TAG_SYMLINK -# define IO_REPARSE_TAG_SYMLINK (0xA000000CL) -# endif -# ifndef FSCTL_GET_REPARSE_POINT -# define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) -# endif -#endif // !defined(Q_OS_WINCE) - QT_BEGIN_NAMESPACE -static QString readLink(const QFileSystemEntry &link); -Q_CORE_EXPORT int qt_ntfs_permission_lookup = 0; #if defined(Q_OS_WINCE) static QString qfsPrivateCurrentDir = QLatin1String(""); @@ -140,146 +80,6 @@ static QString qfsPrivateCurrentDir = QLatin1String(""); #define QT_NO_LIBRARY 1 #endif -#if !defined(QT_NO_LIBRARY) -QT_BEGIN_INCLUDE_NAMESPACE -typedef DWORD (WINAPI *PtrGetNamedSecurityInfoW)(LPWSTR, SE_OBJECT_TYPE, SECURITY_INFORMATION, PSID*, PSID*, PACL*, PACL*, PSECURITY_DESCRIPTOR*); -static PtrGetNamedSecurityInfoW ptrGetNamedSecurityInfoW = 0; -typedef BOOL (WINAPI *PtrLookupAccountSidW)(LPCWSTR, PSID, LPWSTR, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE); -static PtrLookupAccountSidW ptrLookupAccountSidW = 0; -typedef VOID (WINAPI *PtrBuildTrusteeWithSidW)(PTRUSTEE_W, PSID); -static PtrBuildTrusteeWithSidW ptrBuildTrusteeWithSidW = 0; -typedef DWORD (WINAPI *PtrGetEffectiveRightsFromAclW)(PACL, PTRUSTEE_W, OUT PACCESS_MASK); -static PtrGetEffectiveRightsFromAclW ptrGetEffectiveRightsFromAclW = 0; -static TRUSTEE_W currentUserTrusteeW; -static TRUSTEE_W worldTrusteeW; - -typedef BOOL (WINAPI *PtrGetUserProfileDirectoryW)(HANDLE, LPWSTR, LPDWORD); -static PtrGetUserProfileDirectoryW ptrGetUserProfileDirectoryW = 0; -typedef BOOL (WINAPI *PtrGetVolumePathNamesForVolumeNameW)(LPCWSTR,LPWSTR,DWORD,PDWORD); -static PtrGetVolumePathNamesForVolumeNameW ptrGetVolumePathNamesForVolumeNameW = 0; -QT_END_INCLUDE_NAMESPACE - - -void QFSFileEnginePrivate::resolveLibs() -{ - static bool triedResolve = false; - if (!triedResolve) { - // need to resolve the security info functions - - // protect initialization -#ifndef QT_NO_THREAD - QMutexLocker locker(QMutexPool::globalInstanceGet(&triedResolve)); - // check triedResolve again, since another thread may have already - // done the initialization - if (triedResolve) { - // another thread did initialize the security function pointers, - // so we shouldn't do it again. - return; - } -#endif - - triedResolve = true; -#if !defined(Q_OS_WINCE) - HINSTANCE advapiHnd = LoadLibrary(L"advapi32"); - if (advapiHnd) { - ptrGetNamedSecurityInfoW = (PtrGetNamedSecurityInfoW)GetProcAddress(advapiHnd, "GetNamedSecurityInfoW"); - ptrLookupAccountSidW = (PtrLookupAccountSidW)GetProcAddress(advapiHnd, "LookupAccountSidW"); - ptrBuildTrusteeWithSidW = (PtrBuildTrusteeWithSidW)GetProcAddress(advapiHnd, "BuildTrusteeWithSidW"); - ptrGetEffectiveRightsFromAclW = (PtrGetEffectiveRightsFromAclW)GetProcAddress(advapiHnd, "GetEffectiveRightsFromAclW"); - } - if (ptrBuildTrusteeWithSidW) { - // Create TRUSTEE for current user - HANDLE hnd = ::GetCurrentProcess(); - HANDLE token = 0; - if (::OpenProcessToken(hnd, TOKEN_QUERY, &token)) { - TOKEN_USER tu; - DWORD retsize; - if (::GetTokenInformation(token, TokenUser, &tu, sizeof(tu), &retsize)) - ptrBuildTrusteeWithSidW(¤tUserTrusteeW, tu.User.Sid); - ::CloseHandle(token); - } - - typedef BOOL (WINAPI *PtrAllocateAndInitializeSid)(PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID*); - PtrAllocateAndInitializeSid ptrAllocateAndInitializeSid = (PtrAllocateAndInitializeSid)GetProcAddress(advapiHnd, "AllocateAndInitializeSid"); - typedef PVOID (WINAPI *PtrFreeSid)(PSID); - PtrFreeSid ptrFreeSid = (PtrFreeSid)GetProcAddress(advapiHnd, "FreeSid"); - if (ptrAllocateAndInitializeSid && ptrFreeSid) { - // Create TRUSTEE for Everyone (World) - SID_IDENTIFIER_AUTHORITY worldAuth = { SECURITY_WORLD_SID_AUTHORITY }; - PSID pWorld = 0; - if (ptrAllocateAndInitializeSid(&worldAuth, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, &pWorld)) - ptrBuildTrusteeWithSidW(&worldTrusteeW, pWorld); - ptrFreeSid(pWorld); - } - } - HINSTANCE userenvHnd = LoadLibrary(L"userenv"); - if (userenvHnd) - ptrGetUserProfileDirectoryW = (PtrGetUserProfileDirectoryW)GetProcAddress(userenvHnd, "GetUserProfileDirectoryW"); - HINSTANCE kernel32 = LoadLibrary(L"kernel32"); - if(kernel32) - ptrGetVolumePathNamesForVolumeNameW = (PtrGetVolumePathNamesForVolumeNameW)GetProcAddress(kernel32, "GetVolumePathNamesForVolumeNameW"); -#endif - } -} -#endif // QT_NO_LIBRARY - -typedef DWORD (WINAPI *PtrNetShareEnum)(LPWSTR, DWORD, LPBYTE*, DWORD, LPDWORD, LPDWORD, LPDWORD); -static PtrNetShareEnum ptrNetShareEnum = 0; -typedef DWORD (WINAPI *PtrNetApiBufferFree)(LPVOID); -static PtrNetApiBufferFree ptrNetApiBufferFree = 0; -typedef struct _SHARE_INFO_1 { - LPWSTR shi1_netname; - DWORD shi1_type; - LPWSTR shi1_remark; -} SHARE_INFO_1; - - -bool QFSFileEnginePrivate::resolveUNCLibs() -{ - static bool triedResolve = false; - if (!triedResolve) { -#ifndef QT_NO_THREAD - QMutexLocker locker(QMutexPool::globalInstanceGet(&triedResolve)); - if (triedResolve) { - return ptrNetShareEnum && ptrNetApiBufferFree; - } -#endif - triedResolve = true; -#if !defined(Q_OS_WINCE) - HINSTANCE hLib = LoadLibrary(L"netapi32"); - if (hLib) { - ptrNetShareEnum = (PtrNetShareEnum)GetProcAddress(hLib, "NetShareEnum"); - if (ptrNetShareEnum) - ptrNetApiBufferFree = (PtrNetApiBufferFree)GetProcAddress(hLib, "NetApiBufferFree"); - } -#endif - } - return ptrNetShareEnum && ptrNetApiBufferFree; -} - -bool QFSFileEnginePrivate::uncListSharesOnServer(const QString &server, QStringList *list) -{ - if (resolveUNCLibs()) { - SHARE_INFO_1 *BufPtr, *p; - DWORD res; - DWORD er = 0, tr = 0, resume = 0, i; - do { - res = ptrNetShareEnum((wchar_t*)server.utf16(), 1, (LPBYTE *)&BufPtr, DWORD(-1), &er, &tr, &resume); - if (res == ERROR_SUCCESS || res == ERROR_MORE_DATA) { - p = BufPtr; - for (i = 1; i <= er; ++i) { - if (list && p->shi1_type == 0) - list->append(QString::fromWCharArray(p->shi1_netname)); - p++; - } - } - ptrNetApiBufferFree(BufPtr); - } while (res == ERROR_MORE_DATA); - return res == ERROR_SUCCESS; - } - return false; -} - #if !defined(Q_OS_WINCE) static inline bool isUncPath(const QString &path) { @@ -289,47 +89,6 @@ static inline bool isUncPath(const QString &path) } #endif -// can be //server or //server/share -static bool uncShareExists(const QString &server) -{ - QStringList parts = server.split(QLatin1Char('\\'), QString::SkipEmptyParts); - if (parts.count()) { - QStringList shares; - if (QFSFileEnginePrivate::uncListSharesOnServer(QLatin1String("\\\\") + parts.at(0), &shares)) - return parts.count() >= 2 ? shares.contains(parts.at(1), Qt::CaseInsensitive) : true; - } - return false; -} - -static QString nativeAbsoluteFilePath(const QString &path) -{ - QString absPath; -#if !defined(Q_OS_WINCE) - QVarLengthArray buf(qMax(MAX_PATH, path.size() + 1)); - wchar_t *fileName = 0; - DWORD retLen = GetFullPathName((wchar_t*)path.utf16(), buf.size(), buf.data(), &fileName); - if (retLen > (DWORD)buf.size()) { - buf.resize(retLen); - retLen = GetFullPathName((wchar_t*)path.utf16(), buf.size(), buf.data(), &fileName); - } - if (retLen != 0) - absPath = QString::fromWCharArray(buf.data(), retLen); -#else - if (path.startsWith(QLatin1Char('/')) || path.startsWith(QLatin1Char('\\'))) - absPath = QDir::toNativeSeparators(path); - else - absPath = QDir::toNativeSeparators(QDir::cleanPath(qfsPrivateCurrentDir + QLatin1Char('/') + path)); -#endif - // This is really ugly, but GetFullPathName strips off whitespace at the end. - // If you for instance write ". " in the lineedit of QFileDialog, - // (which is an invalid filename) this function will strip the space off and viola, - // the file is later reported as existing. Therefore, we re-add the whitespace that - // was at the end of path in order to keep the filename invalid. - if (!path.isEmpty() && path.at(path.size() - 1) == QLatin1Char(' ')) - absPath.append(QLatin1Char(' ')); - return absPath; -} - /*! \internal */ @@ -338,7 +97,7 @@ QString QFSFileEnginePrivate::longFileName(const QString &path) if (path.startsWith(QLatin1String("\\\\.\\"))) return path; - QString absPath = nativeAbsoluteFilePath(path); + QString absPath = QFileSystemEngine::nativeAbsoluteFilePath(path); #if !defined(Q_OS_WINCE) QString prefix = QLatin1String("\\\\?\\"); if (isUncPath(absPath)) { @@ -389,7 +148,6 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) // WriteOnly can create files, ReadOnly cannot. DWORD creationDisp = (openMode & QIODevice::WriteOnly) ? OPEN_ALWAYS : OPEN_EXISTING; - // Create the file handle. fileHandle = CreateFile((const wchar_t*)fileEntry.nativeFilePath().utf16(), accessRights, @@ -481,17 +239,9 @@ qint64 QFSFileEnginePrivate::nativeSize() const // ### Don't flush; for buffered files, we should get away with ftell. thatQ->flush(); -#if !defined(Q_OS_WINCE) - // stdlib/stdio mode. - if (fh || fd != -1) { - qint64 fileSize = _filelengthi64(fh ? QT_FILENO(fh) : fd); - if (fileSize == -1) { - fileSize = 0; - thatQ->setError(QFile::UnspecifiedError, qt_error_string(errno)); - } - return fileSize; - } -#else // Q_OS_WINCE + // Always retrive the current information + metaData.clearFlags(QFileSystemMetaData::SizeAttribute); +#if defined(Q_OS_WINCE) // Buffered stdlib mode. if (fh) { QT_OFF_T oldPos = QT_FTELL(fh); @@ -504,57 +254,23 @@ qint64 QFSFileEnginePrivate::nativeSize() const } return fileSize; } -#endif - - // Not-open mode, where the file name is known: We'll check the - // file system directly. - if (openMode == QIODevice::NotOpen && !fileEntry.isEmpty()) { - WIN32_FILE_ATTRIBUTE_DATA attribData; - bool ok = ::GetFileAttributesEx((const wchar_t*)fileEntry.nativeFilePath().utf16(), - GetFileExInfoStandard, &attribData); - if (!ok) { - int errorCode = GetLastError(); - if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { - WIN32_FIND_DATA findData; - if (getFindData(fileEntry.nativeFilePath(), findData)) { - ok = true; - attribData.nFileSizeHigh = findData.nFileSizeHigh; - attribData.nFileSizeLow = findData.nFileSizeLow; - } - } - } - if (ok) { - qint64 size = attribData.nFileSizeHigh; - size <<= 32; - size += attribData.nFileSizeLow; - return size; - } - thatQ->setError(QFile::UnspecifiedError, qt_error_string()); - return 0; - } - -#if defined(Q_OS_WINCE) - // Unbuffed stdio mode if (fd != -1) { thatQ->setError(QFile::UnspecifiedError, QLatin1String("Not implemented!")); return 0; } #endif + bool filled = false; + if (fileHandle != INVALID_HANDLE_VALUE && openMode != QIODevice::NotOpen ) + filled = QFileSystemEngine::fillMetaData(fileHandle, metaData, + QFileSystemMetaData::SizeAttribute); + else + filled = doStat(QFileSystemMetaData::SizeAttribute); - // Windows native mode. - if (fileHandle == INVALID_HANDLE_VALUE) - return 0; - - BY_HANDLE_FILE_INFORMATION fileInfo; - if (!GetFileInformationByHandle(fileHandle, &fileInfo)) { - thatQ->setError(QFile::UnspecifiedError, qt_error_string()); + if (!filled || metaData.size() == -1) { + thatQ->setError(QFile::UnspecifiedError, qt_error_string(errno)); return 0; } - - qint64 size = fileInfo.nFileSizeHigh; - size <<= 32; - size += fileInfo.nFileSizeLow; - return size; + return metaData.size(); } /* @@ -788,7 +504,7 @@ bool QFSFileEnginePrivate::nativeIsSequential() const bool QFSFileEngine::remove() { Q_D(QFSFileEngine); - bool ret = ::DeleteFile((wchar_t*)d->fileEntry.nativeFilePath().utf16()) != 0; + bool ret = QFileSystemEngine::removeFile(d->fileEntry); if (!ret) setError(QFile::RemoveError, qt_error_string()); return ret; @@ -797,10 +513,7 @@ bool QFSFileEngine::remove() bool QFSFileEngine::copy(const QString ©Name) { Q_D(QFSFileEngine); - - QFileSystemEntry target(copyName); - bool ret = ::CopyFile((wchar_t*)d->fileEntry.nativeFilePath().utf16(), - (wchar_t*)target.nativeFilePath().utf16(), true) != 0; + bool ret = QFileSystemEngine::copyFile(d->fileEntry, QFileSystemEntry(copyName)); if (!ret) setError(QFile::CopyError, qt_error_string()); return ret; @@ -809,130 +522,20 @@ bool QFSFileEngine::copy(const QString ©Name) bool QFSFileEngine::rename(const QString &newName) { Q_D(QFSFileEngine); - QFileSystemEntry target(newName); - bool ret = ::MoveFile((wchar_t*)d->fileEntry.nativeFilePath().utf16(), - (wchar_t*)target.nativeFilePath().utf16()) != 0; + bool ret = QFileSystemEngine::renameFile(d->fileEntry, QFileSystemEntry(newName)); if (!ret) setError(QFile::RenameError, qt_error_string()); return ret; } -static inline bool mkDir(const QString &path) -{ -#if defined(Q_OS_WINCE) - // Unfortunately CreateDirectory returns true for paths longer than - // 256, but does not create a directory. It starts to fail, when - // path length > MAX_PATH, which is 260 usually on CE. - // This only happens on a Windows Mobile device. Windows CE seems - // not to be affected by this. - static int platformId = 0; - if (platformId == 0) { - wchar_t platformString[64]; - if (SystemParametersInfo(SPI_GETPLATFORMTYPE, sizeof(platformString)/sizeof(*platformString),platformString,0)) { - if (0 == wcscmp(platformString, L"PocketPC") || 0 == wcscmp(platformString, L"Smartphone")) - platformId = 1; - else - platformId = 2; - } - } - if (platformId == 1 && QFSFileEnginePrivate::longFileName(path).size() > 256) - return false; -#endif - return ::CreateDirectory((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16(), 0); -} - -static inline bool rmDir(const QString &path) -{ - return ::RemoveDirectory((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16()); -} - -static bool isDirPath(const QString &dirPath, bool *existed) -{ - QString path = dirPath; - if (path.length() == 2 && path.at(1) == QLatin1Char(':')) - path += QLatin1Char('\\'); - - DWORD fileAttrib = ::GetFileAttributes((wchar_t*)QFSFileEnginePrivate::longFileName(path).utf16()); - if (fileAttrib == INVALID_FILE_ATTRIBUTES) { - int errorCode = GetLastError(); - if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { - WIN32_FIND_DATA findData; - if (getFindData(QFSFileEnginePrivate::longFileName(path), findData)) - fileAttrib = findData.dwFileAttributes; - } - } - - if (existed) - *existed = fileAttrib != INVALID_FILE_ATTRIBUTES; - - if (fileAttrib == INVALID_FILE_ATTRIBUTES) - return false; - - return fileAttrib & FILE_ATTRIBUTE_DIRECTORY; -} - bool QFSFileEngine::mkdir(const QString &name, bool createParentDirectories) const { - QString dirName = name; - if (createParentDirectories) { - dirName = QDir::toNativeSeparators(QDir::cleanPath(dirName)); - // We spefically search for / so \ would break it.. - int oldslash = -1; - if (dirName.startsWith(QLatin1String("\\\\"))) { - // Don't try to create the root path of a UNC path; - // CreateDirectory() will just return ERROR_INVALID_NAME. - for (int i = 0; i < dirName.size(); ++i) { - if (dirName.at(i) != QDir::separator()) { - oldslash = i; - break; - } - } - if (oldslash != -1) - oldslash = dirName.indexOf(QDir::separator(), oldslash); - } - for (int slash=0; slash != -1; oldslash = slash) { - slash = dirName.indexOf(QDir::separator(), oldslash+1); - if (slash == -1) { - if (oldslash == dirName.length()) - break; - slash = dirName.length(); - } - if (slash) { - QString chunk = dirName.left(slash); - bool existed = false; - if (!isDirPath(chunk, &existed)) { - if (!existed) { - if (!mkDir(chunk)) - return false; - } else { - return false; - } - } - } - } - return true; - } - return mkDir(name); + return QFileSystemEngine::createDirectory(QFileSystemEntry(name), createParentDirectories); } bool QFSFileEngine::rmdir(const QString &name, bool recurseParentDirectories) const { - QString dirName = name; - if (recurseParentDirectories) { - dirName = QDir::toNativeSeparators(QDir::cleanPath(dirName)); - for (int oldslash = 0, slash=dirName.length(); slash > 0; oldslash = slash) { - QString chunk = dirName.left(slash); - if (chunk.length() == 2 && chunk.at(0).isLetter() && chunk.at(1) == QLatin1Char(':')) - break; - if (!isDirPath(chunk, 0)) - return false; - if (!rmDir(chunk)) - return oldslash != 0; - slash = dirName.lastIndexOf(QDir::separator(), oldslash-1); - } - return true; - } - return rmDir(name); + return QFileSystemEngine::removeDirectory(QFileSystemEntry(name), recurseParentDirectories); } bool QFSFileEngine::caseSensitive() const @@ -997,64 +600,12 @@ QString QFSFileEngine::currentPath(const QString &fileName) QString QFSFileEngine::homePath() { - QString ret; -#if !defined(QT_NO_LIBRARY) - QFSFileEnginePrivate::resolveLibs(); - if (ptrGetUserProfileDirectoryW) { - HANDLE hnd = ::GetCurrentProcess(); - HANDLE token = 0; - BOOL ok = ::OpenProcessToken(hnd, TOKEN_QUERY, &token); - if (ok) { - DWORD dwBufferSize = 0; - // First call, to determine size of the strings (with '\0'). - ok = ptrGetUserProfileDirectoryW(token, NULL, &dwBufferSize); - if (!ok && dwBufferSize != 0) { // We got the required buffer size - wchar_t *userDirectory = new wchar_t[dwBufferSize]; - // Second call, now we can fill the allocated buffer. - ok = ptrGetUserProfileDirectoryW(token, userDirectory, &dwBufferSize); - if (ok) - ret = QString::fromWCharArray(userDirectory); - - delete [] userDirectory; - } - ::CloseHandle(token); - } - } -#endif - if (ret.isEmpty() || !QFile::exists(ret)) { - ret = QString::fromLocal8Bit(qgetenv("USERPROFILE").constData()); - if (ret.isEmpty() || !QFile::exists(ret)) { - ret = QString::fromLocal8Bit(qgetenv("HOMEDRIVE").constData()) + QString::fromLocal8Bit(qgetenv("HOMEPATH").constData()); - if (ret.isEmpty() || !QFile::exists(ret)) { - ret = QString::fromLocal8Bit(qgetenv("HOME").constData()); - if (ret.isEmpty() || !QFile::exists(ret)) { -#if defined(Q_OS_WINCE) - ret = QLatin1String("\\My Documents"); - if (!QFile::exists(ret)) -#endif - ret = rootPath(); - } - } - } - } - return QDir::fromNativeSeparators(ret); + return QFileSystemEngine::homePath(); } QString QFSFileEngine::rootPath() { -#if defined(Q_OS_WINCE) - QString ret = QLatin1String("/"); -#elif defined(Q_FS_FAT) - QString ret = QString::fromLatin1(qgetenv("SystemDrive").constData()); - if (ret.isEmpty()) - ret = QLatin1String("c:"); - ret.append(QLatin1Char('/')); -#elif defined(Q_OS_OS2EMX) - char dir[4]; - _abspath(dir, QLatin1String("/"), _MAX_PATH); - QString ret(dir); -#endif - return ret; + return QFileSystemEngine::rootPath(); } QString QFSFileEngine::tempPath() @@ -1107,219 +658,25 @@ QFileInfoList QFSFileEngine::drives() #endif } -bool QFSFileEnginePrivate::doStat() const +bool QFSFileEnginePrivate::doStat(QFileSystemMetaData::MetaDataFlags flags) const { - if (!tried_stat) { + if (!tried_stat || !metaData.hasFlags(flags)) { tried_stat = true; - could_stat = false; - - if (fileEntry.isEmpty()) - return could_stat; - - QFileSystemEntry fname; - if(fileEntry.filePath().endsWith(QLatin1String(".lnk"))) { - fname = QFileSystemEntry(readLink(fileEntry)); - if(fname.isEmpty()) - return could_stat; - } - else - fname = fileEntry; - - UINT oldmode = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX); - if (fd != -1) { #if !defined(Q_OS_WINCE) - HANDLE fh = (HANDLE)_get_osfhandle(fd); - if (fh != INVALID_HANDLE_VALUE) { - BY_HANDLE_FILE_INFORMATION fileInfo; - if (GetFileInformationByHandle(fh, &fileInfo)) { - could_stat = true; - fileAttrib = fileInfo.dwFileAttributes; - } - } -#else - DWORD tmpAttributes = GetFileAttributes((wchar_t*)fname.nativeFilePath().utf16()); - if (tmpAttributes != -1) { - fileAttrib = tmpAttributes; - could_stat = true; - } -#endif - } else { - fileAttrib = GetFileAttributes((wchar_t*)fname.nativeFilePath().utf16()); - if (fileAttrib == INVALID_FILE_ATTRIBUTES) { - int errorCode = GetLastError(); - if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { - WIN32_FIND_DATA findData; - if (getFindData(fname.nativeFilePath(), findData)) { - fileAttrib = findData.dwFileAttributes; - } - } - } - could_stat = fileAttrib != INVALID_FILE_ATTRIBUTES; - if (!could_stat) { -#if !defined(Q_OS_WINCE) - if (fname.isDriveRoot()) { - // a valid drive ?? - DWORD drivesBitmask = ::GetLogicalDrives(); - int drivebit = 1 << (fname.filePath().at(0).toUpper().unicode() - QLatin1Char('A').unicode()); - if (drivesBitmask & drivebit) { - fileAttrib = FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_SYSTEM; - could_stat = true; - } - } else { -#endif - const QString &path = fname.nativeFilePath(); - bool is_dir = false; - if (path.startsWith(QLatin1String("\\\\"))) { - // UNC - stat doesn't work for all cases (Windows bug) - int s = path.indexOf(path.at(0),2); - if (s > 0) { - // "\\server\..." - s = path.indexOf(path.at(0),s+1); - if (s > 0) { - // "\\server\share\..." - if (s == path.size() - 1) { - // "\\server\share\" - is_dir = true; - } else { - // "\\server\share\notfound" - } - } else { - // "\\server\share" - is_dir = true; - } - } else { - // "\\server" - is_dir = true; - } - } - if (is_dir && uncShareExists(path)) { - // looks like a UNC dir, is a dir. - fileAttrib = FILE_ATTRIBUTE_DIRECTORY; - could_stat = true; - } -#if !defined(Q_OS_WINCE) - } + int localFd = fd; + if (fh && fileEntry.isEmpty()) + localFd = QT_FILENO(fh); + if (localFd != -1) + QFileSystemEngine::fillMetaData(localFd, metaData, flags); #endif - } - } - - SetErrorMode(oldmode); + if (metaData.missingFlags(flags) && !fileEntry.isEmpty()) + QFileSystemEngine::fillMetaData(fileEntry, metaData, metaData.missingFlags(flags)); } - return could_stat; -} - -static QString readSymLink(const QFileSystemEntry &link) -{ - QString result; -#if !defined(Q_OS_WINCE) - HANDLE handle = CreateFile((wchar_t*)link.nativeFilePath().utf16(), - FILE_READ_EA, - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - 0, - OPEN_EXISTING, - FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT, - 0); - if (handle != INVALID_HANDLE_VALUE) { - DWORD bufsize = MAXIMUM_REPARSE_DATA_BUFFER_SIZE; - REPARSE_DATA_BUFFER *rdb = (REPARSE_DATA_BUFFER*)qMalloc(bufsize); - DWORD retsize = 0; - if (::DeviceIoControl(handle, FSCTL_GET_REPARSE_POINT, 0, 0, rdb, bufsize, &retsize, 0)) { - if (rdb->ReparseTag == IO_REPARSE_TAG_MOUNT_POINT) { - int length = rdb->MountPointReparseBuffer.SubstituteNameLength / sizeof(wchar_t); - int offset = rdb->MountPointReparseBuffer.SubstituteNameOffset / sizeof(wchar_t); - const wchar_t* PathBuffer = &rdb->MountPointReparseBuffer.PathBuffer[offset]; - result = QString::fromWCharArray(PathBuffer, length); - } else if (rdb->ReparseTag == IO_REPARSE_TAG_SYMLINK) { - int length = rdb->SymbolicLinkReparseBuffer.SubstituteNameLength / sizeof(wchar_t); - int offset = rdb->SymbolicLinkReparseBuffer.SubstituteNameOffset / sizeof(wchar_t); - const wchar_t* PathBuffer = &rdb->SymbolicLinkReparseBuffer.PathBuffer[offset]; - result = QString::fromWCharArray(PathBuffer, length); - } - // cut-off "//?/" and "/??/" - if (result.size() > 4 && result.at(0) == QLatin1Char('\\') && result.at(2) == QLatin1Char('?') && result.at(3) == QLatin1Char('\\')) - result = result.mid(4); - } - qFree(rdb); - CloseHandle(handle); - -#if !defined(QT_NO_LIBRARY) - QFSFileEnginePrivate::resolveLibs(); - if (ptrGetVolumePathNamesForVolumeNameW) { - QRegExp matchVolName(QLatin1String("^Volume\\{([a-z]|[0-9]|-)+\\}\\\\"), Qt::CaseInsensitive); - if(matchVolName.indexIn(result) == 0) { - DWORD len; - wchar_t buffer[MAX_PATH]; - QString volumeName = result.mid(0, matchVolName.matchedLength()).prepend(QLatin1String("\\\\?\\")); - if(ptrGetVolumePathNamesForVolumeNameW((wchar_t*)volumeName.utf16(), buffer, MAX_PATH, &len) != 0) - result.replace(0,matchVolName.matchedLength(), QString::fromWCharArray(buffer)); - } - } -#endif - } -#else - Q_UNUSED(link); -#endif // Q_OS_WINCE - return result; + return metaData.exists(); } -static QString readLink(const QFileSystemEntry &link) -{ -#if !defined(Q_OS_WINCE) -#if !defined(QT_NO_LIBRARY) && !defined(Q_CC_MWERKS) - QString ret; - - bool neededCoInit = false; - IShellLink *psl; // pointer to IShellLink i/f - WIN32_FIND_DATA wfd; - wchar_t szGotPath[MAX_PATH]; - - // Get pointer to the IShellLink interface. - HRESULT hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *)&psl); - - if (hres == CO_E_NOTINITIALIZED) { // COM was not initialized - neededCoInit = true; - CoInitialize(NULL); - hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, - IID_IShellLink, (LPVOID *)&psl); - } - if (SUCCEEDED(hres)) { // Get pointer to the IPersistFile interface. - IPersistFile *ppf; - hres = psl->QueryInterface(IID_IPersistFile, (LPVOID *)&ppf); - if (SUCCEEDED(hres)) { - hres = ppf->Load((LPOLESTR)link.nativeFilePath().utf16(), STGM_READ); - //The original path of the link is retrieved. If the file/folder - //was moved, the return value still have the old path. - if (SUCCEEDED(hres)) { - if (psl->GetPath(szGotPath, MAX_PATH, &wfd, SLGP_UNCPRIORITY) == NOERROR) - ret = QString::fromWCharArray(szGotPath); - } - ppf->Release(); - } - psl->Release(); - } - if (neededCoInit) - CoUninitialize(); - - return ret; -#else - Q_UNUSED(link); - return QString(); -#endif // QT_NO_LIBRARY -#else - wchar_t target[MAX_PATH]; - QString result; - if (SHGetShortcutTarget((wchar_t*)QFileInfo(link.filePath()).absoluteFilePath().replace(QLatin1Char('/'),QLatin1Char('\\')).utf16(), target, MAX_PATH)) { - result = QString::fromWCharArray(target); - if (result.startsWith(QLatin1Char('"'))) - result.remove(0,1); - if (result.endsWith(QLatin1Char('"'))) - result.remove(result.size()-1,1); - } - return result; -#endif // Q_OS_WINCE -} bool QFSFileEngine::link(const QString &newName) { @@ -1384,183 +741,63 @@ bool QFSFileEngine::link(const QString &newName) #endif // Q_OS_WINCE } -QAbstractFileEngine::FileFlags QFSFileEnginePrivate::getPermissions(QAbstractFileEngine::FileFlags type) const +/*! + \reimp +*/ +QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(QAbstractFileEngine::FileFlags type) const { + Q_D(const QFSFileEngine); + + if (type & Refresh) + d->metaData.clear(); + QAbstractFileEngine::FileFlags ret = 0; -#if !defined(QT_NO_LIBRARY) - if((qt_ntfs_permission_lookup > 0) && (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based)) { - resolveLibs(); - if(ptrGetNamedSecurityInfoW && ptrBuildTrusteeWithSidW && ptrGetEffectiveRightsFromAclW) { - enum { ReadMask = 0x00000001, WriteMask = 0x00000002, ExecMask = 0x00000020 }; - - QString fname = fileEntry.filePath().endsWith(QLatin1String(".lnk")) ? readLink(fileEntry) : fileEntry.filePath(); - PSID pOwner = 0; - PSID pGroup = 0; - PACL pDacl; - PSECURITY_DESCRIPTOR pSD; - DWORD res = ptrGetNamedSecurityInfoW((wchar_t*)fname.utf16(), SE_FILE_OBJECT, - OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION, - &pOwner, &pGroup, &pDacl, 0, &pSD); - if(res == ERROR_SUCCESS) { - ACCESS_MASK access_mask; - TRUSTEE_W trustee; - if (type & 0x0700) { // user - if(ptrGetEffectiveRightsFromAclW(pDacl, ¤tUserTrusteeW, &access_mask) != ERROR_SUCCESS) - access_mask = (ACCESS_MASK)-1; - if(access_mask & ReadMask) - ret |= QAbstractFileEngine::ReadUserPerm; - if(access_mask & WriteMask) - ret |= QAbstractFileEngine::WriteUserPerm; - if(access_mask & ExecMask) - ret |= QAbstractFileEngine::ExeUserPerm; - } - if (type & 0x7000) { // owner - ptrBuildTrusteeWithSidW(&trustee, pOwner); - if(ptrGetEffectiveRightsFromAclW(pDacl, &trustee, &access_mask) != ERROR_SUCCESS) - access_mask = (ACCESS_MASK)-1; - if(access_mask & ReadMask) - ret |= QAbstractFileEngine::ReadOwnerPerm; - if(access_mask & WriteMask) - ret |= QAbstractFileEngine::WriteOwnerPerm; - if(access_mask & ExecMask) - ret |= QAbstractFileEngine::ExeOwnerPerm; - } - if (type & 0x0070) { // group - ptrBuildTrusteeWithSidW(&trustee, pGroup); - if(ptrGetEffectiveRightsFromAclW(pDacl, &trustee, &access_mask) != ERROR_SUCCESS) - access_mask = (ACCESS_MASK)-1; - if(access_mask & ReadMask) - ret |= QAbstractFileEngine::ReadGroupPerm; - if(access_mask & WriteMask) - ret |= QAbstractFileEngine::WriteGroupPerm; - if(access_mask & ExecMask) - ret |= QAbstractFileEngine::ExeGroupPerm; - } - if (type & 0x0007) { // other (world) - if(ptrGetEffectiveRightsFromAclW(pDacl, &worldTrusteeW, &access_mask) != ERROR_SUCCESS) - access_mask = (ACCESS_MASK)-1; // ### - if(access_mask & ReadMask) - ret |= QAbstractFileEngine::ReadOtherPerm; - if(access_mask & WriteMask) - ret |= QAbstractFileEngine::WriteOtherPerm; - if(access_mask & ExecMask) - ret |= QAbstractFileEngine::ExeOtherPerm; - } - LocalFree(pSD); - } - } - } else -#endif + if (type & FlagsMask) + ret |= LocalDiskFlag; + + bool exists; { - //### what to do with permissions if we don't use NTFS - // for now just add all permissions and what about exe missions ?? - // also qt_ntfs_permission_lookup is now not set by default ... should it ? - ret |= QAbstractFileEngine::ReadOwnerPerm | QAbstractFileEngine::ReadGroupPerm - | QAbstractFileEngine::ReadOtherPerm; - - if (!(fileAttrib & FILE_ATTRIBUTE_READONLY)) { - ret |= QAbstractFileEngine::WriteOwnerPerm | QAbstractFileEngine::WriteGroupPerm - | QAbstractFileEngine::WriteOtherPerm; - } + QFileSystemMetaData::MetaDataFlags queryFlags = 0; - QString fname = fileEntry.filePath().endsWith(QLatin1String(".lnk")) ? readLink(fileEntry) : fileEntry.filePath(); - QString ext = fname.right(4).toLower(); - if ((fileAttrib & FILE_ATTRIBUTE_DIRECTORY) || - ext == QLatin1String(".exe") || ext == QLatin1String(".com") || ext == QLatin1String(".bat") || - ext == QLatin1String(".pif") || ext == QLatin1String(".cmd")) { - ret |= QAbstractFileEngine::ExeOwnerPerm | QAbstractFileEngine::ExeGroupPerm - | QAbstractFileEngine::ExeOtherPerm | QAbstractFileEngine::ExeUserPerm; - } + queryFlags |= QFileSystemMetaData::MetaDataFlags(uint(type)) + & QFileSystemMetaData::Permissions; - // calculate user permissions - if (type & QAbstractFileEngine::ReadUserPerm) { - if (::_waccess((wchar_t*)longFileName(fname).utf16(), R_OK) == 0) - ret |= QAbstractFileEngine::ReadUserPerm; - } - if (type & QAbstractFileEngine::WriteUserPerm) { - if (::_waccess((wchar_t*)longFileName(fname).utf16(), W_OK) == 0) - ret |= QAbstractFileEngine::WriteUserPerm; - } - } - return ret; -} + // AliasType and BundleType are 0x0 + if (type & TypesMask) + queryFlags |= QFileSystemMetaData::AliasType + | QFileSystemMetaData::LinkType + | QFileSystemMetaData::FileType + | QFileSystemMetaData::DirectoryType + | QFileSystemMetaData::BundleType; -/*! - \internal -*/ -bool QFSFileEnginePrivate::isSymlink() const -{ -#if !defined(Q_OS_WINCE) - if (need_lstat) { - need_lstat = false; - is_link = false; - - if (fileAttrib & FILE_ATTRIBUTE_REPARSE_POINT) { - WIN32_FIND_DATA findData; - if (getFindData(fileEntry.nativeFilePath(), findData)) { - if ((findData.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) - && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK || findData.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT)) { - is_link = true; - } - } - } - } - return is_link; -#else - return false; -#endif // Q_OS_WINCE -} + if (type & FlagsMask) + queryFlags |= QFileSystemMetaData::HiddenAttribute + | QFileSystemMetaData::ExistsAttribute; -/*! - \reimp -*/ -QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(QAbstractFileEngine::FileFlags type) const -{ - Q_D(const QFSFileEngine); - QAbstractFileEngine::FileFlags ret = 0; - // Force a stat, so that we're guaranteed to get up-to-date results - if (type & Refresh) { - d->tried_stat = 0; -#if !defined(Q_OS_WINCE) - d->need_lstat = 1; -#endif - } + queryFlags |= QFileSystemMetaData::LinkType; - if (type & PermsMask) { - if (d->doStat()) { - ret |= ExistsFlag; - ret |= d->getPermissions(type); - } + exists = d->doStat(queryFlags); } + + if (exists && (type & PermsMask)) + ret |= FileFlags(uint(d->metaData.permissions())); + if (type & TypesMask) { - if (d->fileEntry.filePath().endsWith(QLatin1String(".lnk"))) { + if ((type & LinkType) && d->metaData.isLegacyLink()) ret |= LinkType; - QString l = readLink(d->fileEntry); - if (!l.isEmpty()) { - bool existed = false; - if (isDirPath(l, &existed) && existed) - ret |= DirectoryType; - else if (existed) - ret |= FileType; - } - } else if (d->doStat()) { - if ((type & LinkType) && d->isSymlink()) - ret |= LinkType; - if (d->fileAttrib & FILE_ATTRIBUTE_DIRECTORY) { - ret |= DirectoryType; - } else { - ret |= FileType; - } + if (d->metaData.isDirectory()) { + ret |= DirectoryType; + } else { + ret |= FileType; } } if (type & FlagsMask) { - ret |= LocalDiskFlag; - if (d->doStat()) { + if (d->metaData.exists()) { ret |= ExistsFlag; if (d->fileEntry.isRoot()) ret |= RootFlag; - else if (d->fileAttrib & FILE_ATTRIBUTE_HIDDEN) + else if (d->metaData.isHidden()) ret |= HiddenFlag; } } @@ -1585,7 +822,7 @@ QString QFSFileEngine::fileName(FileName file) const d->fileEntry.filePath().contains(QLatin1String("/../")) || d->fileEntry.filePath().contains(QLatin1String("/./")) || d->fileEntry.filePath().endsWith(QLatin1String("/..")) || d->fileEntry.filePath().endsWith(QLatin1String("/."))) { - ret = QDir::fromNativeSeparators(nativeAbsoluteFilePath(d->fileEntry.filePath())); + ret = QDir::fromNativeSeparators(QFileSystemEngine::nativeAbsoluteFilePath(d->fileEntry.filePath())); } else #endif { @@ -1621,18 +858,13 @@ QString QFSFileEngine::fileName(FileName file) const } else if (file == CanonicalName || file == CanonicalPathName) { if (!(fileFlags(ExistsFlag) & ExistsFlag)) return QString(); - QFileSystemEntry entry(QFileSystemEngine::canonicalName(d->fileEntry)); + QFileSystemEntry entry(QFileSystemEngine::canonicalName(QFileSystemEntry(fileName(AbsoluteName)))); if (file == CanonicalPathName) return entry.path(); return entry.filePath(); } else if (file == LinkName) { - QString ret; - if (d->fileEntry.filePath().endsWith(QLatin1String(".lnk"))) - ret = readLink(d->fileEntry); - else if (d->doStat() && d->isSymlink()) - ret = readSymLink(d->fileEntry); - return QDir::fromNativeSeparators(ret); + QFileSystemEngine::getLinkTarget(d->fileEntry, d->metaData).filePath(); } else if (file == BundleName) { return QString(); } @@ -1654,67 +886,14 @@ uint QFSFileEngine::ownerId(FileOwner /*own*/) const QString QFSFileEngine::owner(FileOwner own) const { - QString name; -#if !defined(QT_NO_LIBRARY) Q_D(const QFSFileEngine); - if((qt_ntfs_permission_lookup > 0) && (QSysInfo::WindowsVersion & QSysInfo::WV_NT_based)) { - QFSFileEnginePrivate::resolveLibs(); - if (ptrGetNamedSecurityInfoW && ptrLookupAccountSidW) { - PSID pOwner = 0; - PSECURITY_DESCRIPTOR pSD; - if (ptrGetNamedSecurityInfoW((wchar_t*)d->fileEntry.nativeFilePath().utf16(), SE_FILE_OBJECT, - own == OwnerGroup ? GROUP_SECURITY_INFORMATION : OWNER_SECURITY_INFORMATION, - own == OwnerUser ? &pOwner : 0, own == OwnerGroup ? &pOwner : 0, - 0, 0, &pSD) == ERROR_SUCCESS) { - DWORD lowner = 64; - DWORD ldomain = 64; - QVarLengthArray owner(lowner); - QVarLengthArray domain(ldomain); - SID_NAME_USE use = SidTypeUnknown; - // First call, to determine size of the strings (with '\0'). - if (!ptrLookupAccountSidW(NULL, pOwner, (LPWSTR)owner.data(), &lowner, - (LPWSTR)domain.data(), &ldomain, (SID_NAME_USE*)&use)) { - if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) { - if (lowner > (DWORD)owner.size()) - owner.resize(lowner); - if (ldomain > (DWORD)domain.size()) - domain.resize(ldomain); - // Second call, try on resized buf-s - if (!ptrLookupAccountSidW(NULL, pOwner, (LPWSTR)owner.data(), &lowner, - (LPWSTR)domain.data(), &ldomain, (SID_NAME_USE*)&use)) { - lowner = 0; - } - } else { - lowner = 0; - } - } - if (lowner != 0) - name = QString::fromWCharArray(owner.data()); - LocalFree(pSD); - } - } - } -#else - Q_UNUSED(own); -#endif - return name; + return QFileSystemEngine::owner(d->fileEntry, own); } bool QFSFileEngine::setPermissions(uint perms) { Q_D(QFSFileEngine); - bool ret = false; - int mode = 0; - - if (perms & QFile::ReadOwner || perms & QFile::ReadUser || perms & QFile::ReadGroup || perms & QFile::ReadOther) - mode |= _S_IREAD; - if (perms & QFile::WriteOwner || perms & QFile::WriteUser || perms & QFile::WriteGroup || perms & QFile::WriteOther) - mode |= _S_IWRITE; - - if (mode == 0) // not supported - return false; - - ret = ::_wchmod((wchar_t*)d->fileEntry.nativeFilePath().utf16(), mode) == 0; + bool ret = QFileSystemEngine::setPermissions(d->fileEntry, QFile::Permissions(perms)); if (!ret) setError(QFile::PermissionsError, qt_error_string(errno)); return ret; @@ -1758,83 +937,14 @@ bool QFSFileEngine::setSize(qint64 size) } -static inline QDateTime fileTimeToQDateTime(const FILETIME *time) -{ - QDateTime ret; - -#if defined(Q_OS_WINCE) - SYSTEMTIME systime; - FILETIME ftime; - systime.wYear = 1970; - systime.wMonth = 1; - systime.wDay = 1; - systime.wHour = 0; - systime.wMinute = 0; - systime.wSecond = 0; - systime.wMilliseconds = 0; - systime.wDayOfWeek = 4; - SystemTimeToFileTime(&systime, &ftime); - unsigned __int64 acttime = (unsigned __int64)time->dwHighDateTime << 32 | time->dwLowDateTime; - FileTimeToSystemTime(time, &systime); - unsigned __int64 time1970 = (unsigned __int64)ftime.dwHighDateTime << 32 | ftime.dwLowDateTime; - unsigned __int64 difftime = acttime - time1970; - difftime /= 10000000; - ret.setTime_t((unsigned int)difftime); -#else - SYSTEMTIME sTime, lTime; - FileTimeToSystemTime(time, &sTime); - SystemTimeToTzSpecificLocalTime(0, &sTime, &lTime); - ret.setDate(QDate(lTime.wYear, lTime.wMonth, lTime.wDay)); - ret.setTime(QTime(lTime.wHour, lTime.wMinute, lTime.wSecond, lTime.wMilliseconds)); -#endif - - return ret; -} - QDateTime QFSFileEngine::fileTime(FileTime time) const { Q_D(const QFSFileEngine); - QDateTime ret; - if (d->fd != -1) { -#if !defined(Q_OS_WINCE) - HANDLE fh = (HANDLE)_get_osfhandle(d->fd); - if (fh != INVALID_HANDLE_VALUE) { - FILETIME creationTime, lastAccessTime, lastWriteTime; - if (GetFileTime(fh, &creationTime, &lastAccessTime, &lastWriteTime)) { - if(time == CreationTime) - ret = fileTimeToQDateTime(&creationTime); - else if(time == ModificationTime) - ret = fileTimeToQDateTime(&lastWriteTime); - else if(time == AccessTime) - ret = fileTimeToQDateTime(&lastAccessTime); - } - } -#endif - } else { - WIN32_FILE_ATTRIBUTE_DATA attribData; - bool ok = ::GetFileAttributesEx((wchar_t*)QFSFileEnginePrivate::longFileName(d->fileEntry.filePath()).utf16(), GetFileExInfoStandard, &attribData); - if (!ok) { - int errorCode = GetLastError(); - if (errorCode == ERROR_ACCESS_DENIED || errorCode == ERROR_SHARING_VIOLATION) { - WIN32_FIND_DATA findData; - if (getFindData(d->fileEntry.nativeFilePath(), findData)) { - ok = true; - attribData.ftCreationTime = findData.ftCreationTime; - attribData.ftLastWriteTime = findData.ftLastWriteTime; - attribData.ftLastAccessTime = findData.ftLastAccessTime; - } - } - } - if (ok) { - if(time == CreationTime) - ret = fileTimeToQDateTime(&attribData.ftCreationTime); - else if(time == ModificationTime) - ret = fileTimeToQDateTime(&attribData.ftLastWriteTime); - else if(time == AccessTime) - ret = fileTimeToQDateTime(&attribData.ftLastAccessTime); - } - } - return ret; + + if (d->doStat(QFileSystemMetaData::Times)) + return d->metaData.fileTime(time); + + return QDateTime(); } uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, -- cgit v0.12 From 15dbe69d9a174a85aed297b2e93d0d9fb79d12e8 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Tue, 14 Sep 2010 11:22:22 +0200 Subject: Fix the tst_QFileInfo::canonicalFilePath() on windows. This was trying to load a wrong Win32 function to test the symbolic links on windows. Some Win32 APIs have to be resolved against either a Wider Character version('W') or an ANSI version('A'), the function names without these character appended are usually '#define's in the header files. Reviewed-by: Zeno Albisser --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index cced207..e4aa0d3 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -608,7 +608,7 @@ void tst_QFileInfo::canonicalFilePath() #ifdef Q_OS_WIN typedef BOOL (WINAPI *PtrCreateSymbolicLink)(LPTSTR, LPTSTR, DWORD); PtrCreateSymbolicLink ptrCreateSymbolicLink = - (PtrCreateSymbolicLink)QLibrary::resolve(QLatin1String("kernel32"), "CreateSymbolicLink"); + (PtrCreateSymbolicLink)QLibrary::resolve(QLatin1String("kernel32"), "CreateSymbolicLinkW"); if (!ptrCreateSymbolicLink || ptrCreateSymbolicLink((wchar_t*)QString("res").utf16(), (wchar_t*)QString("resources").utf16(), 1) == 0) { @@ -621,7 +621,7 @@ void tst_QFileInfo::canonicalFilePath() QCOMPARE(QFileInfo("file1").canonicalFilePath(), currentPath + "/resources/file1"); QCOMPARE(QDir::setCurrent(currentPath), true); - QFile::remove("res"); + QDir::current().rmdir("res"); #endif } -- cgit v0.12 From f2dbebdab183dfe5d18ab7a8fbd85983401dfa3c Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Tue, 14 Sep 2010 16:23:27 +0200 Subject: Make compile for symbian Reviewed-by: Shane Kearns --- src/corelib/io/qfilesystemengine_symbian.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index dc7fcbf..ca559da 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -141,7 +141,7 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) result.append(orig); } - return symbianCleanAbsolutePath(result); + return QFileSystemEntry(symbianCleanAbsolutePath(result)); } //static -- cgit v0.12 From 0299d30d5aa35d532df6bc018afc52df263651a0 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Tue, 14 Sep 2010 13:01:29 +0200 Subject: Test QDirIterator using UNC paths on Windows. Adding the test tst_QDirIterator::uncPaths(). Currently this traverses the shares & folders in test-server for all entries except '.' & '..' Reviewed-by: Denis --- tests/auto/qdiriterator/tst_qdiriterator.cpp | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/auto/qdiriterator/tst_qdiriterator.cpp b/tests/auto/qdiriterator/tst_qdiriterator.cpp index f78ce34..d93e91e 100644 --- a/tests/auto/qdiriterator/tst_qdiriterator.cpp +++ b/tests/auto/qdiriterator/tst_qdiriterator.cpp @@ -57,6 +57,10 @@ #define Q_NO_SYMLINKS_TO_DIRS #endif +#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) +#include "../network-settings.h" +#endif + Q_DECLARE_METATYPE(QDirIterator::IteratorFlags) Q_DECLARE_METATYPE(QDir::Filters) @@ -118,6 +122,10 @@ private slots: void longPath(); void task185502_dirorder(); void relativePaths(); +#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) + void uncPaths_data(); + void uncPaths(); +#endif }; tst_QDirIterator::tst_QDirIterator() @@ -532,6 +540,28 @@ void tst_QDirIterator::relativePaths() } } +#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) +void tst_QDirIterator::uncPaths_data() +{ + QTest::addColumn("dirName"); + QTest::newRow("uncserver") + < Date: Mon, 13 Sep 2010 16:50:27 +0100 Subject: Pass QFileSystemMetaData reference into QFileSystemEngine::canonicalName On symbian, this allows us to use the cached ExistsAttribute On symbian and unix, this allows us to update the caller's knowledge of ExistsAttribute (potentially saving a stat later) Reviewed-By: joao --- src/corelib/io/qfileinfo.cpp | 2 +- src/corelib/io/qfilesystemengine_p.h | 2 +- src/corelib/io/qfilesystemengine_symbian.cpp | 7 ++++--- src/corelib/io/qfilesystemengine_unix.cpp | 6 +++++- src/corelib/io/qfilesystemengine_win.cpp | 2 +- src/corelib/io/qfsfileengine_unix.cpp | 2 +- src/corelib/io/qfsfileengine_win.cpp | 2 +- 7 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 83df26d..4f5a4ab 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -57,7 +57,7 @@ QString QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName name) const switch (name) { case QAbstractFileEngine::CanonicalName: case QAbstractFileEngine::CanonicalPathName: { - QFileSystemEntry entry = QFileSystemEngine::canonicalName(fileEntry); + QFileSystemEntry entry = QFileSystemEngine::canonicalName(fileEntry, metaData); if (cache_enabled) { // be smart and store both fileNames[QAbstractFileEngine::CanonicalName] = entry.filePath(); fileNames[QAbstractFileEngine::CanonicalPathName] = entry.path(); diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 1068e76..b3bbd65 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -65,7 +65,7 @@ public: static bool isCaseSensitive(); static QFileSystemEntry getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data); - static QFileSystemEntry canonicalName(const QFileSystemEntry &entry); + static QFileSystemEntry canonicalName(const QFileSystemEntry &entry, QFileSystemMetaData &data); static QFileSystemEntry absoluteName(const QFileSystemEntry &entry); static QString resolveUserName(const QFileSystemEntry &entry, QFileSystemMetaData &data); static QString resolveUserName(uint userId); diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index ca559da..9b81571 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -89,14 +89,15 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, } //static -QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) +QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry, QFileSystemMetaData &data) { if (entry.isEmpty() || entry.isRoot()) return entry; QFileSystemEntry result = absoluteName(entry); - QFileSystemMetaData meta; - if (!fillMetaData(result, meta, QFileSystemMetaData::ExistsAttribute) || !meta.exists()) { + if (!data.hasFlags(QFileSystemMetaData::ExistsAttribute)) + fillMetaData(result, data, QFileSystemMetaData::ExistsAttribute); + if (!data.exists()) { // file doesn't exist return QFileSystemEntry(); } else { diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index fdb881f..6d8b3ff 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -193,7 +193,7 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, } //static -QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) +QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry, , QFileSystemMetaData &data) { if (entry.isEmpty() || entry.isRoot()) return entry; @@ -223,10 +223,14 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) ret = realpath(entry.nativeFilePath().constData(), (char*)0); # endif if (ret) { + data.knownFlagsMask |= QFileSystemMetaData::ExistsAttribute; + data.entryFlags |= QFileSystemMetaData::ExistsAttribute; QString canonicalPath = QDir::cleanPath(QString::fromLocal8Bit(ret)); free(ret); return QFileSystemEntry(canonicalPath); } else if (errno == ENOENT) { // file doesn't exist + data.knownFlagsMask |= QFileSystemMetaData::ExistsAttribute; + data.entryFlags &= ~(QFileSystemMetaData::ExistsAttribute); return QFileSystemEntry(); } return entry; diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 550b522..2e9f94b 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -493,7 +493,7 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, } //static -QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry) +QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry, QFileSystemMetaData &data) { // The caller has to verify whether the file exists or not. return QFileSystemEntry(slowCanonicalized(absoluteName(entry).filePath())); diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index a6cf7fc..418506c 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -923,7 +923,7 @@ QString QFSFileEngine::fileName(FileName file) const } return entry.filePath(); } else if (file == CanonicalName || file == CanonicalPathName) { - QFileSystemEntry entry(QFileSystemEngine::canonicalName(d->fileEntry)); + QFileSystemEntry entry(QFileSystemEngine::canonicalName(d->fileEntry, d->metaData)); if (file == CanonicalPathName) return entry.path(); return entry.filePath(); diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 976207a..2bf377a 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -858,7 +858,7 @@ QString QFSFileEngine::fileName(FileName file) const } else if (file == CanonicalName || file == CanonicalPathName) { if (!(fileFlags(ExistsFlag) & ExistsFlag)) return QString(); - QFileSystemEntry entry(QFileSystemEngine::canonicalName(QFileSystemEntry(fileName(AbsoluteName)))); + QFileSystemEntry entry(QFileSystemEngine::canonicalName(QFileSystemEntry(fileName(AbsoluteName)), d->metaData)); if (file == CanonicalPathName) return entry.path(); -- cgit v0.12 From 3f5d522e7abe15abc97ef1aa27a33311d74f8312 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 13 Sep 2010 19:35:46 +0100 Subject: Fix for QFile::remove autotest After removing a file, invalidate the cached metadata to force any calls that require metadata to fetch it from the file system. Reviewed-By: joao --- src/corelib/io/qfsfileengine_unix.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 418506c..1d1baf9 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -589,6 +589,7 @@ bool QFSFileEngine::remove() { Q_D(QFSFileEngine); bool ret = QFileSystemEngine::removeFile(d->fileEntry); + d->metaData.clear(); if (!ret) { #ifdef Q_OS_SYMBIAN //TODO: error reporting -- cgit v0.12 From 108eb5b7d21e24e48f214ea8f171fa97c0087167 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 13 Sep 2010 19:39:20 +0100 Subject: Fixed QFile::setSize on symbian Reviewed-By: joao --- src/corelib/io/qfsfileengine_unix.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 1d1baf9..2e9d10c 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -520,9 +520,9 @@ qint64 QFSFileEnginePrivate::nativePos() const #ifdef Q_OS_SYMBIAN if (symbianFile.SubSessionHandle()) { #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - qint64 pos; + qint64 pos = 0; #else - TInt pos; + TInt pos = 0; #endif TInt err = symbianFile.Seek(ESeekCurrent, pos); if(err != KErrNone) { @@ -1028,7 +1028,7 @@ bool QFSFileEngine::setSize(qint64 size) TInt err = d->symbianFile.SetSize(size); ret = (err == KErrNone); } - if (d->fd != -1) + else if (d->fd != -1) ret = QT_FTRUNCATE(d->fd, size) == 0; else if (d->fh) ret = QT_FTRUNCATE(QT_FILENO(d->fh), size) == 0; -- cgit v0.12 From 3289a268d58181b22f7fe90669a7215bc2edc75a Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 14 Sep 2010 18:01:50 +0100 Subject: Don't compute canonical paths when not needed This optimisation saves 20% on symbian recursive iteration, and should help on other OS when the FollowSymlinks flag is not specified for directory iteration. Reviewed-By: joao --- src/corelib/io/qdiriterator.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index 2e67bfd..582fb85 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -299,7 +299,8 @@ void QDirIteratorPrivate::checkAndPushDirectory(const QFileInfo &fileInfo) return; // Stop link loops - if (visitedLinks.contains(fileInfo.canonicalFilePath())) + if (!visitedLinks.isEmpty() && + visitedLinks.contains(fileInfo.canonicalFilePath())) return; pushDirectory(fileInfo); -- cgit v0.12 From ff5946f056c52d7851106ef9ba93e40129349d8d Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 15 Sep 2010 11:42:51 +0100 Subject: Disable symlink and memory mapped files tests on symbian Reviewed-By: joao --- tests/auto/qdir/tst_qdir.cpp | 4 +++- tests/auto/qfile/tst_qfile.cpp | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 9678868..0ea67c9 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -69,7 +69,7 @@ #endif #if defined(Q_OS_SYMBIAN) -// Open C in Symbian doesn't support symbolic links to directories +#define Q_NO_SYMLINKS #define Q_NO_SYMLINKS_TO_DIRS #endif @@ -597,6 +597,7 @@ void tst_QDir::entryList() expected.removeAll(".."); #endif +#ifndef Q_NO_SYMLINKS #if defined(Q_OS_WIN) // ### Sadly, this is a platform difference right now. QFile::link(SRCDIR "entryList/file", SRCDIR "entrylist/linktofile.lnk"); @@ -651,6 +652,7 @@ void tst_QDir::entryList() QFile::link("directory", SRCDIR "entrylist/linktodirectory.lnk"); QFile::link("nothing", SRCDIR "entrylist/brokenlink.lnk"); #endif +#endif //Q_NO_SYMLINKS #ifdef Q_WS_MAC if (qstrcmp(QTest::currentDataTag(), "unprintablenames") == 0) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index ee799f3..925bdec 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -1285,6 +1285,9 @@ static QString getWorkingDirectoryForLink(const QString &linkFileName) void tst_QFile::link() { +#if defined(Q_OS_SYMBIAN) + QSKIP("Symbian does not support links", SkipAll); +#endif QFile::remove("myLink.lnk"); QFileInfo info1("tst_qfile.cpp"); QVERIFY(QFile::link("tst_qfile.cpp", "myLink.lnk")); @@ -1324,6 +1327,9 @@ void tst_QFile::linkToDir() void tst_QFile::absolutePathLinkToRelativePath() { +#if defined(Q_OS_SYMBIAN) + QSKIP("Symbian does not support links", SkipAll); +#endif QFile::remove("myDir/test.txt"); QFile::remove("myDir/myLink.lnk"); QDir dir; @@ -1346,6 +1352,9 @@ void tst_QFile::absolutePathLinkToRelativePath() void tst_QFile::readBrokenLink() { +#if defined(Q_OS_SYMBIAN) + QSKIP("Symbian does not support links", SkipAll); +#endif QFile::remove("myLink2.lnk"); QFileInfo info1("file12"); #if defined(Q_OS_SYMBIAN) @@ -2753,6 +2762,10 @@ void tst_QFile::map() QFETCH(int, size); QFETCH(QFile::FileError, error); +#ifdef Q_OS_SYMBIAN + QSKIP("memory mapped files not supported on this platform", SkipAll); +#endif + QString fileName = QDir::currentPath() + '/' + "qfile_map_testfile"; #ifdef Q_WS_WINCE @@ -2874,6 +2887,10 @@ void tst_QFile::mapResource() QFETCH(int, size); QFETCH(QFile::FileError, error); +#ifdef Q_OS_SYMBIAN + QSKIP("memory mapped files not supported on this platform", SkipAll); +#endif + QFile file(fileName); uchar *memory = file.map(offset, size); QCOMPARE(file.error(), error); @@ -2898,6 +2915,11 @@ void tst_QFile::mapOpenMode() { QFETCH(int, openMode); static const qint64 fileSize = 4096; + +#ifdef Q_OS_SYMBIAN + QSKIP("memory mapped files not supported on this platform", SkipAll); +#endif + QByteArray pattern(fileSize, 'A'); QString fileName = QDir::currentPath() + '/' + "qfile_map_testfile"; -- cgit v0.12 From 55648bc7a197367e8bacb2334339025ffbb83647 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 15 Sep 2010 11:46:10 +0100 Subject: tst_qdir fixes 1. change the test case names in relativeFilePath_data so they are all unique. 2. enable the canonical path tests related to rootPath on all OS, which were previously added only for symbian/windows. Reviewed-By: joao --- tests/auto/qdir/tst_qdir.cpp | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 0ea67c9..554b685 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -815,11 +815,11 @@ void tst_QDir::canonicalPath_data() #endif QTest::newRow("nonexistant") << "testd" << QString(); + QTest::newRow("rootPath") << QDir::rootPath() << QDir::rootPath(); + QTest::newRow("rootPath + ./") << QDir::rootPath().append("./") << QDir::rootPath(); + QTest::newRow("rootPath + ../.. ") << QDir::rootPath().append("../..") << QDir::rootPath(); #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) - QTest::newRow("drive:/") << QDir::rootPath() << QDir::rootPath(); QTest::newRow("drive:\\") << QDir::toNativeSeparators(QDir::rootPath()) << QDir::rootPath(); - QTest::newRow("drive:/./") << QDir::rootPath().append("./") << QDir::rootPath(); - QTest::newRow("drive:/../.. ") << QDir::rootPath().append("../..") << QDir::rootPath(); QTest::newRow("drive:\\.\\") << QDir::toNativeSeparators(QDir::rootPath().append("./")) << QDir::rootPath(); QTest::newRow("drive:\\..\\..") << QDir::toNativeSeparators(QDir::rootPath().append("../..")) << QDir::rootPath(); QTest::newRow("drive:") << QDir().canonicalPath().left(2) << QDir().canonicalPath(); @@ -1106,24 +1106,24 @@ void tst_QDir::relativeFilePath_data() QTest::newRow("14") << "C:/foo/bar" << "/ding/dong" << "../../ding/dong"; QTest::newRow("15") << "C:/foo/bar" << "D:/ding/dong" << "D:/ding/dong"; QTest::newRow("16") << "C:" << "C:/ding/dong" << "ding/dong"; - QTest::newRow("16") << "C:/" << "C:/ding/dong" << "ding/dong"; - QTest::newRow("17") << "C:" << "C:" << ""; - QTest::newRow("18") << "C:/" << "C:" << ""; - QTest::newRow("19") << "C:" << "C:/" << ""; - QTest::newRow("20") << "C:/" << "C:/" << ""; - QTest::newRow("17") << "C:" << "C:file.txt" << "file.txt"; - QTest::newRow("18") << "C:/" << "C:file.txt" << "file.txt"; - QTest::newRow("19") << "C:" << "C:/file.txt" << "file.txt"; - QTest::newRow("20") << "C:/" << "C:/file.txt" << "file.txt"; - QTest::newRow("21") << "C:" << "D:" << "D:"; - QTest::newRow("22") << "C:" << "D:/" << "D:/"; - QTest::newRow("23") << "C:/" << "D:" << "D:"; - QTest::newRow("24") << "C:/" << "D:/" << "D:/"; + QTest::newRow("17") << "C:/" << "C:/ding/dong" << "ding/dong"; + QTest::newRow("18") << "C:" << "C:" << ""; + QTest::newRow("19") << "C:/" << "C:" << ""; + QTest::newRow("20") << "C:" << "C:/" << ""; + QTest::newRow("21") << "C:/" << "C:/" << ""; + QTest::newRow("22") << "C:" << "C:file.txt" << "file.txt"; + QTest::newRow("23") << "C:/" << "C:file.txt" << "file.txt"; + QTest::newRow("24") << "C:" << "C:/file.txt" << "file.txt"; + QTest::newRow("25") << "C:/" << "C:/file.txt" << "file.txt"; + QTest::newRow("26") << "C:" << "D:" << "D:"; + QTest::newRow("27") << "C:" << "D:/" << "D:/"; + QTest::newRow("28") << "C:/" << "D:" << "D:"; + QTest::newRow("29") << "C:/" << "D:/" << "D:/"; # if !defined(Q_OS_SYMBIAN) - QTest::newRow("25") << "C:/foo/bar" << "//anotherHost/foo/bar" << "//anotherHost/foo/bar"; - QTest::newRow("26") << "//anotherHost/foo" << "//anotherHost/foo/bar" << "bar"; - QTest::newRow("27") << "//anotherHost/foo" << "bar" << "bar"; - QTest::newRow("28") << "//anotherHost/foo" << "C:/foo/bar" << "C:/foo/bar"; + QTest::newRow("30") << "C:/foo/bar" << "//anotherHost/foo/bar" << "//anotherHost/foo/bar"; + QTest::newRow("31") << "//anotherHost/foo" << "//anotherHost/foo/bar" << "bar"; + QTest::newRow("32") << "//anotherHost/foo" << "bar" << "bar"; + QTest::newRow("33") << "//anotherHost/foo" << "C:/foo/bar" << "C:/foo/bar"; # endif #endif } -- cgit v0.12 From 864c19e036017c32db9bf55edb38b992d2a5f962 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 15 Sep 2010 11:54:36 +0100 Subject: Change handle related tests in tst_qfile for symbian Getting a posix file handle from a natively opened QFile isn't supported so that part of the test is skipped. Reviewed-By: joao --- tests/auto/qfile/tst_qfile.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 925bdec..2524e6e 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -2503,10 +2503,11 @@ void tst_QFile::standarderror() void tst_QFile::handle() { -#ifndef Q_OS_WINCE + int fd; +#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN) QFile file(SRCDIR "tst_qfile.cpp"); QVERIFY(file.open(QIODevice::ReadOnly)); - int fd = int(file.handle()); + fd = int(file.handle()); QVERIFY(fd > 2); QCOMPARE(int(file.handle()), fd); char c = '\0'; @@ -2533,6 +2534,7 @@ void tst_QFile::handle() QCOMPARE(c, '*'); #endif + //test round trip of adopted stdio file handle QFile file2; FILE *fp = fopen(SRCDIR "tst_qfile.cpp", "r"); file2.open(fp, QIODevice::ReadOnly); @@ -2540,6 +2542,7 @@ void tst_QFile::handle() QCOMPARE(int(file2.handle()), int(fileno(fp))); fclose(fp); + //test round trip of adopted posix file handle #ifdef Q_OS_UNIX QFile file3; fd = QT_OPEN(SRCDIR "tst_qfile.cpp", QT_OPEN_RDONLY); @@ -2551,6 +2554,9 @@ void tst_QFile::handle() void tst_QFile::nativeHandleLeaks() { +#ifdef Q_OS_SYMBIAN + QSKIP("test assumptions invalid for symbian", SkipAll); +#else int fd1, fd2; #ifdef Q_OS_WIN @@ -2592,6 +2598,7 @@ void tst_QFile::nativeHandleLeaks() #ifdef Q_OS_WIN QCOMPARE( handle2, handle1 ); #endif +#endif } void tst_QFile::readEof_data() -- cgit v0.12 From 925194abd863057618f39dd1289e574dc2a34208 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 15 Sep 2010 13:38:12 +0200 Subject: Wrong size for directories on windows. We have to ignore the size returned by GetFileAttributeEx() for directories. Also dont use the size_ to check for error when stating for file size. Reviewed-by: Joao --- src/corelib/io/qfilesystemengine_win.cpp | 22 +++++++++++++++------- src/corelib/io/qfsfileengine_win.cpp | 3 +-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 2e9f94b..8526cf2 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -438,9 +438,13 @@ void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, bool setLi creationTime_ = findData.ftCreationTime; lastAccessTime_ = findData.ftLastAccessTime; lastWriteTime_ = findData.ftLastWriteTime; - size_ = findData.nFileSizeHigh; - size_ <<= 32; - size_ += findData.nFileSizeLow; + if (fileAttribute_ & FILE_ATTRIBUTE_DIRECTORY) { + size_ = 0; + } else { + size_ = findData.nFileSizeHigh; + size_ <<= 32; + size_ += findData.nFileSizeLow; + } knownFlagsMask |= Times | SizeAttribute; if (setLinkType) { knownFlagsMask |= LinkType; @@ -460,15 +464,19 @@ void QFileSystemMetaData::fillFromFindInfo(BY_HANDLE_FILE_INFORMATION &fileInfo) creationTime_ = fileInfo.ftCreationTime; lastAccessTime_ = fileInfo.ftLastAccessTime; lastWriteTime_ = fileInfo.ftLastWriteTime; - size_ = fileInfo.nFileSizeHigh; - size_ <<= 32; - size_ += fileInfo.nFileSizeLow; + if (fileAttribute_ & FILE_ATTRIBUTE_DIRECTORY) { + size_ = 0; + } else { + size_ = fileInfo.nFileSizeHigh; + size_ <<= 32; + size_ += fileInfo.nFileSizeLow; + } knownFlagsMask |= Times | SizeAttribute; } void QFileSystemEngine::clearWinStatData(QFileSystemMetaData &data) { - data.size_ = -1; + data.size_ = 0; data.fileAttribute_ = 0; } diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 2bf377a..dde499a 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -266,9 +266,8 @@ qint64 QFSFileEnginePrivate::nativeSize() const else filled = doStat(QFileSystemMetaData::SizeAttribute); - if (!filled || metaData.size() == -1) { + if (!filled) { thatQ->setError(QFile::UnspecifiedError, qt_error_string(errno)); - return 0; } return metaData.size(); } -- cgit v0.12 From fd4463c07f577d9df212388062028f9119e19add Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 15 Sep 2010 14:59:38 +0200 Subject: Fix tst_QFileSystemEntry::getSetCheck() on windows. Updated the name of the data field. Reviewed-by: Joao --- tests/auto/qfilesystementry/tst_qfilesystementry.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp index e00a214..49afab6 100644 --- a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp +++ b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp @@ -123,7 +123,7 @@ void tst_QFileSystemEntry::getSetCheck() QFETCH(QString, internalnativeFilePath); QFETCH(QString, filepath); QFETCH(QString, filename); - QFETCH(QString, basename); + QFETCH(QString, baseName); QFETCH(QString, completeBasename); QFETCH(QString, suffix); QFETCH(QString, completeSuffix); @@ -137,7 +137,7 @@ void tst_QFileSystemEntry::getSetCheck() QCOMPARE(entry1.completeSuffix(), completeSuffix); QCOMPARE(entry1.isAbsolute(), absolute); QCOMPARE(entry1.isRelative(), !absolute); - QCOMPARE(entry1.baseName(), basename); + QCOMPARE(entry1.baseName(), baseName); QCOMPARE(entry1.completeBaseName(), completeBasename); QFileSystemEntry entry2(nativeFilePath, QFileSystemEntry::FromNativePath()); @@ -150,7 +150,7 @@ void tst_QFileSystemEntry::getSetCheck() // the object shouldnot change nativeFilePath. QCOMPARE(entry2.nativeFilePath(), nativeFilePath); QCOMPARE(entry2.fileName(), filename); - QCOMPARE(entry2.baseName(), basename); + QCOMPARE(entry2.baseName(), baseName); QCOMPARE(entry2.completeBaseName(), completeBasename); } -- cgit v0.12 From 6bc165d0fbbc4704d87e59cc0795dc2769228dc3 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 15 Sep 2010 17:10:21 +0200 Subject: Implement QFileSystemIterator for windows. The search is implemented using FindFirstFileEx(). Following optimizations are done * Using large Fetch buffer on Windows 7 * Querying only the long file name * Querying for directories only, depending on QDir::Filters Reviewed-by: Joao --- qmake/Makefile.win32 | 5 - qmake/Makefile.win32-g++ | 4 - qmake/Makefile.win32-g++-sh | 4 - qmake/qmake.pri | 2 +- src/corelib/io/io.pri | 1 - src/corelib/io/qfilesystemiterator_p.h | 6 + src/corelib/io/qfilesystemiterator_win.cpp | 84 ++++++++++++- src/corelib/io/qfsfileengine_iterator.cpp | 20 ---- src/corelib/io/qfsfileengine_iterator_p.h | 10 -- src/corelib/io/qfsfileengine_iterator_win.cpp | 162 -------------------------- src/tools/bootstrap/bootstrap.pro | 1 - tools/configure/configure.pro | 1 - tools/qtestlib/wince/cetest/bootstrapped.pri | 1 - 13 files changed, 87 insertions(+), 214 deletions(-) delete mode 100644 src/corelib/io/qfsfileengine_iterator_win.cpp diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index fa17b9d..906d284 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -104,7 +104,6 @@ QTOBJS= \ qtemporaryfile.obj \ qabstractfileengine.obj \ qfsfileengine_win.obj \ - qfsfileengine_iterator_win.obj \ qfileinfo.obj \ qglobal.obj \ qhash.obj \ @@ -161,7 +160,6 @@ clean:: -del qtemporaryfile.obj -del qabstractfileengine.obj -del qfsfileengine_win.obj - -del qfsfileengine_iterator_win.obj -del qfileinfo.obj -del qglobal.obj -del qhash.obj @@ -333,9 +331,6 @@ qfilesystemiterator_win.obj: $(SOURCE_PATH)\src\corelib\io\qfilesystemiterator_w qfsfileengine_win.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine_win.cpp -qfsfileengine_iterator_win.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator_win.cpp - $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine_iterator_win.cpp - qfsfileengine.obj: $(SOURCE_PATH)\src\corelib\io\qfsfileengine.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)\src\corelib\io\qfsfileengine.cpp diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++ index 57ea3d5..2bab255 100644 --- a/qmake/Makefile.win32-g++ +++ b/qmake/Makefile.win32-g++ @@ -68,7 +68,6 @@ QTOBJS= \ qfsfileengine.o \ qfsfileengine_iterator.o \ qfsfileengine_win.o \ - qfsfileengine_iterator_win.o \ qglobal.o \ qhash.o \ qiodevice.o \ @@ -211,9 +210,6 @@ qfilesystemiterator_win.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win qfsfileengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp -qfsfileengine_iterator_win.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_win.cpp - $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_win.cpp - qfsfileengine.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp diff --git a/qmake/Makefile.win32-g++-sh b/qmake/Makefile.win32-g++-sh index 33deb01..db78933 100644 --- a/qmake/Makefile.win32-g++-sh +++ b/qmake/Makefile.win32-g++-sh @@ -67,7 +67,6 @@ QTOBJS= \ qfsfileengine.o \ qfsfileengine_iterator.o \ qfsfileengine_win.o \ - qfsfileengine_iterator_win.o \ qglobal.o \ qhash.o \ qiodevice.o \ @@ -206,9 +205,6 @@ qfilesystemiterator_win.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemiterator_win qfsfileengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_win.cpp -qfsfileengine_iterator_win.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_win.cpp - $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine_iterator_win.cpp - qfsfileengine.o: $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfsfileengine.cpp diff --git a/qmake/qmake.pri b/qmake/qmake.pri index cd81c82..1d35183 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -135,7 +135,7 @@ bootstrap { #Qt code LIBS += -framework ApplicationServices } } else:win32 { - SOURCES += qfilesystemengine_win.cpp qfsfileengine_win.cpp qfilesystemiterator_win.cpp qfsfileengine_iterator_win.cpp qsettings_win.cpp + SOURCES += qfilesystemengine_win.cpp qfsfileengine_win.cpp qfilesystemiterator_win.cpp qsettings_win.cpp win32-msvc*:LIBS += ole32.lib advapi32.lib win32-g++*:LIBS += -lole32 -luuid } diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index 4a2f042..9d209ea 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -65,7 +65,6 @@ win32 { SOURCES += io/qprocess_win.cpp SOURCES += io/qfsfileengine_win.cpp - SOURCES += io/qfsfileengine_iterator_win.cpp SOURCES += io/qfilesystemwatcher_win.cpp HEADERS += io/qfilesystemwatcher_win_p.h HEADERS += io/qwindowspipewriter_p.h diff --git a/src/corelib/io/qfilesystemiterator_p.h b/src/corelib/io/qfilesystemiterator_p.h index d3b195d..66f4b1e 100644 --- a/src/corelib/io/qfilesystemiterator_p.h +++ b/src/corelib/io/qfilesystemiterator_p.h @@ -86,6 +86,12 @@ private: // Platform-specific data #if defined(Q_OS_WIN) + QFileSystemEntry::NativePath dirPath; + HANDLE findFileHandle; + QStringList uncShares; + bool uncFallback; + int uncShareIndex; + bool onlyDirs; #elif defined (Q_OS_SYMBIAN) RDir dirHandle; TEntryArray entries; diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 3c73496..373a50a 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -40,26 +40,102 @@ ****************************************************************************/ #include "qfilesystemiterator_p.h" +#include "qfilesystemengine_p.h" +#include "qplatformdefs.h" QT_BEGIN_NAMESPACE +bool done = true; + QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters, const QStringList &nameFilters, QDirIterator::IteratorFlags flags) + : nativePath(entry.nativeFilePath()) + , dirPath(entry.filePath()) + , findFileHandle(INVALID_HANDLE_VALUE) + , uncFallback(false) + , uncShareIndex(0) + , onlyDirs(false) { - Q_UNUSED(entry) - Q_UNUSED(filters) Q_UNUSED(nameFilters) Q_UNUSED(flags) + if (nativePath.endsWith(QLatin1String(".lnk"))) { + QFileSystemMetaData metaData; + QFileSystemEntry link = QFileSystemEngine::getLinkTarget(entry, metaData); + nativePath = link.nativeFilePath(); + } + if (!nativePath.endsWith(QLatin1Char('\\'))) + nativePath.append(QLatin1Char('\\')); + nativePath.append(QLatin1Char('*')); + if (!dirPath.endsWith(QLatin1Char('//'))) + dirPath.append(QLatin1Char('//')); + if ((filters & (QDir::Dirs|QDir::Drives)) && (!(filters & (QDir::Files)))) + onlyDirs = true; } QFileSystemIterator::~QFileSystemIterator() { + if (findFileHandle != INVALID_HANDLE_VALUE) + FindClose(findFileHandle); } bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData) { - Q_UNUSED(fileEntry) - Q_UNUSED(metaData) + bool haveData = false; + WIN32_FIND_DATA findData; + + if (findFileHandle == INVALID_HANDLE_VALUE && !uncFallback) { + haveData = true; + DWORD dwAdditionalFlags = 0; + if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) + dwAdditionalFlags = 2; // FIND_FIRST_EX_LARGE_FETCH + int searchOps = 0; // FindExSearchNameMatch + if (onlyDirs) + searchOps = 1 ; // FindExSearchLimitToDirectories +#if !defined(Q_OS_WINCE) + int infoLevel = 1 ; // FindExInfoBasic; +#else + int infoLevel = 0; // FindExInfoStandard; +#endif + findFileHandle = FindFirstFileEx((const wchar_t *)nativePath.utf16(), FINDEX_INFO_LEVELS(infoLevel), &findData, + FINDEX_SEARCH_OPS(searchOps), 0, dwAdditionalFlags); + if (findFileHandle == INVALID_HANDLE_VALUE) { + if (nativePath.startsWith(QLatin1String("\\\\?\\UNC\\"))) { + QStringList parts = nativePath.split(QLatin1Char('\\'), QString::SkipEmptyParts); + if (parts.count() == 4 && QFileSystemEngine::uncListSharesOnServer( + QLatin1String("\\\\") + parts.at(2), &uncShares)) { + if (uncShares.isEmpty()) + return false; // No shares found in the server + else + uncFallback = true; + } + } + } + } + if (findFileHandle == INVALID_HANDLE_VALUE && !uncFallback) + return false; + // Retrieve the new file information. + if (!haveData) { + if (uncFallback) { + if (++uncShareIndex >= uncShares.count()) + return false; + } else { + if (!FindNextFile(findFileHandle, &findData)) + return false; + } + } + // Create the new file system entry & meta data. + if (uncFallback) { + fileEntry = QFileSystemEntry(dirPath + uncShares.at(uncShareIndex)); + metaData.fillFromFileAttribute(FILE_ATTRIBUTE_DIRECTORY); + return true; + } else { + QString fileName = QString::fromWCharArray(findData.cFileName); + fileEntry = QFileSystemEntry(dirPath + fileName); + if (!fileName.endsWith(QLatin1String(".lnk"))) { + metaData.fillFromFindData(findData, true); + } + return true; + } return false; } diff --git a/src/corelib/io/qfsfileengine_iterator.cpp b/src/corelib/io/qfsfileengine_iterator.cpp index 4617f49..f6f08c7 100644 --- a/src/corelib/io/qfsfileengine_iterator.cpp +++ b/src/corelib/io/qfsfileengine_iterator.cpp @@ -49,23 +49,14 @@ QT_BEGIN_NAMESPACE QFSFileEngineIterator::QFSFileEngineIterator(QDir::Filters filters, const QStringList &filterNames) : QAbstractFileEngineIterator(filters, filterNames) -#ifdef Q_OS_UNIX , done(false) -#endif { -#ifndef Q_OS_UNIX - newPlatformSpecifics(); -#endif } QFSFileEngineIterator::~QFSFileEngineIterator() { -#ifndef Q_OS_UNIX - deletePlatformSpecifics(); -#endif } -#ifdef Q_OS_UNIX bool QFSFileEngineIterator::hasNext() const { if (!done && !nativeIterator) { @@ -76,7 +67,6 @@ bool QFSFileEngineIterator::hasNext() const return !done; } -#endif QString QFSFileEngineIterator::next() { @@ -87,7 +77,6 @@ QString QFSFileEngineIterator::next() return currentFilePath(); } -#ifdef Q_OS_UNIX void QFSFileEngineIterator::advance() const { currentInfo = nextInfo; @@ -101,24 +90,15 @@ void QFSFileEngineIterator::advance() const nativeIterator.reset(); } } -#endif QString QFSFileEngineIterator::currentFileName() const { -#ifdef Q_OS_UNIX return currentInfo.fileName(); -#else - return currentEntry; -#endif } QFileInfo QFSFileEngineIterator::currentFileInfo() const { -#ifdef Q_OS_UNIX return currentInfo; -#else - return QAbstractFileEngineIterator::currentFileInfo(); -#endif } QT_END_NAMESPACE diff --git a/src/corelib/io/qfsfileengine_iterator_p.h b/src/corelib/io/qfsfileengine_iterator_p.h index 7940fbd..ac9598d 100644 --- a/src/corelib/io/qfsfileengine_iterator_p.h +++ b/src/corelib/io/qfsfileengine_iterator_p.h @@ -77,21 +77,11 @@ public: QFileInfo currentFileInfo() const; private: -#ifdef Q_OS_UNIX void advance() const; mutable QScopedPointer nativeIterator; mutable QFileInfo currentInfo; mutable QFileInfo nextInfo; mutable bool done; -#else - QFSFileEngineIteratorPlatformSpecificData *platform; - friend class QFSFileEngineIteratorPlatformSpecificData; - void newPlatformSpecifics(); - void deletePlatformSpecifics(); - void advance(); - - QString currentEntry; -#endif }; QT_END_NAMESPACE diff --git a/src/corelib/io/qfsfileengine_iterator_win.cpp b/src/corelib/io/qfsfileengine_iterator_win.cpp deleted file mode 100644 index d4e6f5a..0000000 --- a/src/corelib/io/qfsfileengine_iterator_win.cpp +++ /dev/null @@ -1,162 +0,0 @@ -/**************************************************************************** -** -** 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 QtCore 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 "qfsfileengine_iterator_p.h" -#include "qfsfileengine_p.h" -#include "qfilesystemengine_p.h" -#include "qplatformdefs.h" - -#include - -QT_BEGIN_NAMESPACE - -class QFSFileEngineIteratorPlatformSpecificData -{ -public: - inline QFSFileEngineIteratorPlatformSpecificData() - : uncShareIndex(-1), findFileHandle(INVALID_HANDLE_VALUE), - done(false), uncFallback(false) - {} - - QFSFileEngineIterator *it; - - QStringList uncShares; - int uncShareIndex; - - HANDLE findFileHandle; - WIN32_FIND_DATA findData; - bool done; - bool uncFallback; - - void saveCurrentFileName(); -}; - -void QFSFileEngineIteratorPlatformSpecificData::saveCurrentFileName() -{ - if (uncFallback) { - // Windows share / UNC path - it->currentEntry = uncShares.at(uncShareIndex - 1); - } else { - // Local directory - it->currentEntry = QString::fromWCharArray(findData.cFileName); - } -} - -void QFSFileEngineIterator::advance() -{ - platform->saveCurrentFileName(); - - if (platform->done) - return; - - if (platform->uncFallback) { - ++platform->uncShareIndex; - } else if (platform->findFileHandle != INVALID_HANDLE_VALUE) { - if (!FindNextFile(platform->findFileHandle, &platform->findData)) { - platform->done = true; - FindClose(platform->findFileHandle); - } - } -} - -void QFSFileEngineIterator::newPlatformSpecifics() -{ - platform = new QFSFileEngineIteratorPlatformSpecificData; - platform->it = this; -} - -void QFSFileEngineIterator::deletePlatformSpecifics() -{ - delete platform; - platform = 0; -} - -bool QFSFileEngineIterator::hasNext() const -{ - if (platform->done) - return false; - - if (platform->uncFallback) - return platform->uncShareIndex > 0 && platform->uncShareIndex <= platform->uncShares.size(); - - if (platform->findFileHandle == INVALID_HANDLE_VALUE) { - QString path = this->path(); - // Local directory - if (path.endsWith(QLatin1String(".lnk"))) - path = QFileInfo(path).readLink(); - - if (!path.endsWith(QLatin1Char('/'))) - path.append(QLatin1Char('/')); - path.append(QLatin1String("*.*")); - - QString fileName = QFSFileEnginePrivate::longFileName(path); - platform->findFileHandle = FindFirstFile((const wchar_t *)fileName.utf16(), &platform->findData); - - if (platform->findFileHandle == INVALID_HANDLE_VALUE) { - if (path.startsWith(QLatin1String("//"))) { - path = this->path(); - // UNC - QStringList parts = QDir::toNativeSeparators(path).split(QLatin1Char('\\'), QString::SkipEmptyParts); - - if (parts.count() == 1 && QFileSystemEngine::uncListSharesOnServer(QLatin1String("\\\\") + parts.at(0), - &platform->uncShares)) { - if (platform->uncShares.isEmpty()) { - platform->done = true; - } else { - platform->uncShareIndex = 1; - } - platform->uncFallback = true; - } else { - platform->done = true; - } - } else { - platform->done = true; - } - } - - if (!platform->done && (!platform->uncFallback || !platform->uncShares.isEmpty())) - platform->saveCurrentFileName(); - } - - return !platform->done; -} - -QT_END_NAMESPACE diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro index 81b785a..179cb0b 100644 --- a/src/tools/bootstrap/bootstrap.pro +++ b/src/tools/bootstrap/bootstrap.pro @@ -92,7 +92,6 @@ unix:SOURCES += ../../corelib/io/qfilesystemengine_unix.cpp \ win32:SOURCES += ../../corelib/io/qfilesystemengine_win.cpp \ ../../corelib/io/qfilesystemiterator_win.cpp \ ../../corelib/io/qfsfileengine_win.cpp \ - ../../corelib/io/qfsfileengine_iterator_win.cpp macx: { QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.4 #enables weak linking for 10.4 (exported) diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro index fe1b028..6450038 100644 --- a/tools/configure/configure.pro +++ b/tools/configure/configure.pro @@ -97,7 +97,6 @@ SOURCES = main.cpp configureapp.cpp environment.cpp tools.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_iterator.cpp \ - $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_iterator_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qiodevice.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qtextstream.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qtemporaryfile.cpp \ diff --git a/tools/qtestlib/wince/cetest/bootstrapped.pri b/tools/qtestlib/wince/cetest/bootstrapped.pri index 76245b0..56c8ab7 100644 --- a/tools/qtestlib/wince/cetest/bootstrapped.pri +++ b/tools/qtestlib/wince/cetest/bootstrapped.pri @@ -12,7 +12,6 @@ SOURCES += \ $$QT_SOURCE_TREE/src/corelib/io/qabstractfileengine.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_iterator.cpp \ - $$QT_SOURCE_TREE/src/corelib/io/qfsfileengine_iterator_win.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qfileinfo.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qtemporaryfile.cpp \ $$QT_SOURCE_TREE/src/corelib/io/qdiriterator.cpp \ -- cgit v0.12 From 5e2fc1468572098cd02df25061f277b60e9b35bd Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 15 Sep 2010 17:48:39 +0100 Subject: Integrate media use case performance tests to qdir tree benchmarks These tests measure the performance of QDirIterator across: - 1000 files in one directory (based on photos) - 1000 files as 100 directories each with 10 files (based on music albums) The test counts and totals the sizes of files, to make sure this isn't causing unwanted filesystem accesses. Reviewed-By: joao --- .../corelib/io/qdir/tree/bench_qdir_tree.cpp | 52 +++++++++++++++++++++- tests/shared/filesystem.h | 10 +++++ 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp index cbe931d..81a1262 100644 --- a/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp +++ b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp @@ -55,12 +55,20 @@ class bench_QDir_tree public: bench_QDir_tree() - : prefix("./test-tree/") + : prefix("./test-tree/"), + musicprefix(QLatin1String("music")), + photoprefix(QLatin1String("photos")), + musicsize(0), + photosize(0) { } private: QByteArray prefix; + QString musicprefix; + QString photoprefix; + qint64 musicsize; + qint64 photosize; private slots: void initTestCase() @@ -105,6 +113,23 @@ private slots: line.clear(); } + + //Use case: music collection - 10 files in 100 directories (albums) + QVERIFY(fs.createDirectory(musicprefix)); + for (int i=0;i<1000;i++) { + if ((i % 10) == 0) + QVERIFY(fs.createDirectory(QString("%1/directory%2").arg(musicprefix).arg(i/10))); + qint64 size = fs.createFileWithContent(QString("%1/directory%2/file%3").arg(musicprefix).arg(i/10).arg(i)); + QVERIFY(size > 0); + musicsize += size; + } + //Use case: photos - 1000 files in 1 directory + QVERIFY(fs.createDirectory(photoprefix)); + for (int i=0;i<1000;i++) { + qint64 size = fs.createFileWithContent(QString("%1/file%2").arg(photoprefix).arg(i)); + QVERIFY(size > 0); + photosize += size; + } } void fileSearch_data() const @@ -166,6 +191,31 @@ private slots: QCOMPARE(count, 11963); } + void thousandFiles_data() const + { + QTest::addColumn("dirName"); + QTest::addColumn("expectedSize"); + QTest::newRow("music") << musicprefix << musicsize; + QTest::newRow("photos") << photoprefix << photosize; + } + + void thousandFiles() const + { + QFETCH(QString, dirName); + QFETCH(qint64, expectedSize); + QBENCHMARK { + qint64 totalsize = 0; + int count = 0; + QDirIterator iter(dirName, QDir::Files, QDirIterator::Subdirectories); + while(iter.hasNext()) { + iter.next(); + count++; + totalsize += iter.fileInfo().size(); + } + QCOMPARE(count, 1000); + QCOMPARE(totalsize, expectedSize); + } + } private: FileSystem fs; }; diff --git a/tests/shared/filesystem.h b/tests/shared/filesystem.h index 079a6dc..8274346 100644 --- a/tests/shared/filesystem.h +++ b/tests/shared/filesystem.h @@ -87,6 +87,16 @@ struct FileSystem return false; } + qint64 createFileWithContent(const QString &fileName) + { + QFile file(fileName); + if (file.open(QIODevice::WriteOnly)) { + createdFiles << fileName; + return file.write(fileName.toUtf8()); + } + return -1; + } + bool createLink(const QString &destination, const QString &linkName) { if (QFile::link(destination, linkName)) { -- cgit v0.12 From 81c2b37cbcd2f0432d3036765d6b1d0cdaa4872a Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 15 Sep 2010 18:01:12 +0100 Subject: On symbian, set the "execute" permission for directories This is the same as the windows port does for non NTFS drives. For files, execute permission is set to false, as the /sys/bin directory is not listable by normal applications. Reviewed-By: joao --- src/corelib/io/qfilesystemengine_symbian.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 9b81571..02b4c48 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -171,13 +171,13 @@ void QFileSystemMetaData::fillFromTEntry(const TEntry& entry) entryFlags &= ~(QFileSystemMetaData::SymbianTEntryFlags); knownFlagsMask |= QFileSystemMetaData::SymbianTEntryFlags; //Symbian doesn't have unix type file permissions - entryFlags |= QFileSystemMetaData::Permissions; - if(entry.IsReadOnly()) { - entryFlags &= ~(QFileSystemMetaData::WritePermissions); + entryFlags |= QFileSystemMetaData::ReadPermissions; + if(!entry.IsReadOnly()) { + entryFlags |= QFileSystemMetaData::WritePermissions; } //set the type if(entry.IsDir()) - entryFlags |= QFileSystemMetaData::DirectoryType; + entryFlags |= (QFileSystemMetaData::DirectoryType | QFileSystemMetaData::ExecutePermissions); else entryFlags |= QFileSystemMetaData::FileType; -- cgit v0.12 From 6437e4083bf088a3a67660d7b015de8647557609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 15 Sep 2010 19:28:48 +0200 Subject: Fix typo --- src/corelib/io/qfilesystemengine_unix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 6d8b3ff..6290d68 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -193,7 +193,7 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, } //static -QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry, , QFileSystemMetaData &data) +QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry, QFileSystemMetaData &data) { if (entry.isEmpty() || entry.isRoot()) return entry; -- cgit v0.12 From 6f716cbdc8a054d2bedc0ffa2bb3a48c12e24695 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 16 Sep 2010 11:31:19 +0200 Subject: Fix QSettings auto test to use QTRY_VERIFY ... instead of relying on qApp->processEvents. Reviewed-by: Olivier Goffart --- tests/auto/qsettings/tst_qsettings.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/tests/auto/qsettings/tst_qsettings.cpp b/tests/auto/qsettings/tst_qsettings.cpp index 058a750..48c5fd1 100644 --- a/tests/auto/qsettings/tst_qsettings.cpp +++ b/tests/auto/qsettings/tst_qsettings.cpp @@ -51,6 +51,7 @@ #include #include #include +#include "../../shared/util.h" #if !defined(Q_OS_SYMBIAN) # include @@ -1719,26 +1720,22 @@ void tst_QSettings::testUpdateRequestEvent() settings1.setValue("key1", 1); QVERIFY(QFileInfo("foo").size() == 0); - qApp->processEvents(); - QVERIFY(QFileInfo("foo").size() > 0); + QTRY_VERIFY(QFileInfo("foo").size() > 0); settings1.remove("key1"); QVERIFY(QFileInfo("foo").size() > 0); - qApp->processEvents(); - QVERIFY(QFileInfo("foo").size() == 0); + QTRY_VERIFY(QFileInfo("foo").size() == 0); settings1.setValue("key2", 2); QVERIFY(QFileInfo("foo").size() == 0); - qApp->processEvents(); - QVERIFY(QFileInfo("foo").size() > 0); + QTRY_VERIFY(QFileInfo("foo").size() > 0); settings1.clear(); QVERIFY(QFileInfo("foo").size() > 0); - qApp->processEvents(); - QVERIFY(QFileInfo("foo").size() == 0); + QTRY_VERIFY(QFileInfo("foo").size() == 0); } const int NumIterations = 5; -- cgit v0.12 From 4d45a868536a235b33029115a70795119b8f3822 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 16 Sep 2010 11:34:23 +0100 Subject: integrate "source" use case to bench_qdir_tree Although there's already some real source (4.6.0 file list) in the test, we decided it's useful to still have this benchmark for a standard directory structure in the 1000 file test. The source benchmark is 10 directories, each containing 10 subdirectories, which each contain 10 files. --- .../corelib/io/qdir/tree/bench_qdir_tree.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp index 81a1262..84922f6 100644 --- a/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp +++ b/tests/benchmarks/corelib/io/qdir/tree/bench_qdir_tree.cpp @@ -58,8 +58,10 @@ public: : prefix("./test-tree/"), musicprefix(QLatin1String("music")), photoprefix(QLatin1String("photos")), + sourceprefix(QLatin1String("source")), musicsize(0), - photosize(0) + photosize(0), + sourcesize(0) { } @@ -67,8 +69,10 @@ private: QByteArray prefix; QString musicprefix; QString photoprefix; + QString sourceprefix; qint64 musicsize; qint64 photosize; + qint64 sourcesize; private slots: void initTestCase() @@ -130,6 +134,17 @@ private slots: QVERIFY(size > 0); photosize += size; } + //Use case: source - 10 files in 10 subdirectories in 10 directories (1000 total) + QVERIFY(fs.createDirectory(sourceprefix)); + for (int i=0;i<1000;i++) { + if ((i % 100) == 0) + QVERIFY(fs.createDirectory(QString("%1/directory%2").arg(sourceprefix).arg(i/100))); + if ((i % 10) == 0) + QVERIFY(fs.createDirectory(QString("%1/directory%2/subdirectory%3").arg(sourceprefix).arg(i/100).arg(i/10))); + qint64 size = fs.createFileWithContent(QString("%1/directory%2/subdirectory%3/file%4").arg(sourceprefix).arg(i/100).arg(i/10).arg(i)); + QVERIFY(size > 0); + sourcesize += size; + } } void fileSearch_data() const @@ -197,6 +212,7 @@ private slots: QTest::addColumn("expectedSize"); QTest::newRow("music") << musicprefix << musicsize; QTest::newRow("photos") << photoprefix << photosize; + QTest::newRow("src") << sourceprefix << sourcesize; } void thousandFiles() const -- cgit v0.12 From 186bcd5f6f65ce4d52b2e9cd0c25caba0ae66eda Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 15 Sep 2010 14:44:58 +0200 Subject: Remove stale comment --- src/corelib/io/qfileinfo.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 4f5a4ab..471da2e 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -397,7 +397,6 @@ bool QFileInfo::operator==(const QFileInfo &fileinfo) const return false; sensitive = QFileSystemEngine::isCaseSensitive() ? Qt::CaseSensitive : Qt::CaseInsensitive; - // if both are native just compare the canonicalFilePath of both. } else { if (d->fileEngine->caseSensitive() != fileinfo.d_ptr->fileEngine->caseSensitive()) return false; -- cgit v0.12 From b9b55234a777c3b206332bafbe227e1355ca9186 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 15 Sep 2010 14:44:38 +0200 Subject: Make QDir use QFileSystemEngine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The creation of a QAbstractFileEngine derived class will now be avoided if the dir we are watching is on the native file system and from then on all access will be through the direct API Reviewed-by: João Abecasis --- src/corelib/io/qdir.cpp | 183 ++++++++++++++++++++++++++++++------------------ 1 file changed, 114 insertions(+), 69 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 8c99226..efc0ba9 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -53,6 +53,10 @@ #include "qvector.h" #include "qalgorithms.h" #include "qvarlengtharray.h" +#include "qfilesystementry_p.h" +#include "qfilesystemmetadata_p.h" +#include "qfilesystemengine_p.h" +#include #ifdef QT_BUILD_CORE_LIB # include "qresource.h" @@ -117,7 +121,6 @@ public: QDirPrivate(const QDirPrivate ©) : QSharedData(copy) - , path(copy.path) , nameFilters(copy.nameFilters) , sort(copy.sort) , filters(copy.filters) @@ -126,11 +129,19 @@ public: , matchAllDirs(copy.matchAllDirs) #endif , fileListsInitialized(false) + , dirEntry(copy.dirEntry) + , metaData(copy.metaData) { } bool exists() const { + if (fileEngine.isNull()) { + if (!metaData.hasFlags(QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType)) + QFileSystemEngine::fillMetaData(dirEntry, metaData, + QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType); + return metaData.exists() && metaData.isDirectory(); + } const QAbstractFileEngine::FileFlags info = fileEngine->fileFlags(QAbstractFileEngine::DirectoryType | QAbstractFileEngine::ExistsFlag @@ -141,7 +152,7 @@ public: } void initFileEngine(); - void initFileLists() const; + void initFileLists(const QDir &dir) const; static void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *); @@ -174,21 +185,32 @@ public: p.truncate(p.length() - 1); } - path = p; + dirEntry = QFileSystemEntry(p); initFileEngine(); - - // set the path to be the qt friendly version so then we can operate on it using just / - path = fileEngine->fileName(QAbstractFileEngine::DefaultName); clearFileLists(); + absoluteDirEntry = QFileSystemEntry(); } - inline void clearFileLists() { + inline void clearFileLists() + { fileListsInitialized = false; files.clear(); fileInfos.clear(); } - QString path; + inline void resolveAbsoluteEntry() const + { + if (!absoluteDirEntry.isEmpty() || dirEntry.isEmpty()) + return; + + if (dirEntry.isRelative()) { + QFileSystemEntry answer = QFileSystemEngine::absoluteName(dirEntry); + absoluteDirEntry = QFileSystemEntry(QDir::cleanPath(answer.filePath())); + } else { + absoluteDirEntry = dirEntry; + } + } + QStringList nameFilters; QDir::SortFlags sort; QDir::Filters filters; @@ -203,6 +225,10 @@ public: mutable bool fileListsInitialized; mutable QStringList files; mutable QFileInfoList fileInfos; + + QFileSystemEntry dirEntry; + mutable QFileSystemEntry absoluteDirEntry; + mutable QFileSystemMetaData metaData; }; /* For sorting */ @@ -316,11 +342,11 @@ inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l, } } -inline void QDirPrivate::initFileLists() const +inline void QDirPrivate::initFileLists(const QDir &dir) const { if (!fileListsInitialized) { QFileInfoList l; - QDirIterator it(path, nameFilters, filters); + QDirIterator it(dir); while (it.hasNext()) { it.next(); l.append(it.fileInfo()); @@ -332,7 +358,7 @@ inline void QDirPrivate::initFileLists() const inline void QDirPrivate::initFileEngine() { - fileEngine.reset(QAbstractFileEngine::create(path)); + fileEngine.reset(QFileSystemEngine::resolveEntryAndCreateLegacyEngine(dirEntry, metaData)); } /*! @@ -597,7 +623,7 @@ void QDir::setPath(const QString &path) QString QDir::path() const { const QDirPrivate* d = d_ptr.constData(); - return d->path; + return d->dirEntry.filePath(); } /*! @@ -611,10 +637,8 @@ QString QDir::path() const QString QDir::absolutePath() const { const QDirPrivate* d = d_ptr.constData(); - QString ret = d->path; - if (QDir::isRelativePath(ret)) - ret = absoluteFilePath(QString::fromLatin1("")); - return cleanPath(ret); + d->resolveAbsoluteEntry(); + return d->absoluteDirEntry.filePath(); } /*! @@ -635,7 +659,12 @@ QString QDir::absolutePath() const */ QString QDir::canonicalPath() const { - return cleanPath(d_ptr->fileEngine->fileName(QAbstractFileEngine::CanonicalName)); + const QDirPrivate* d = d_ptr.constData(); + if (d->fileEngine.isNull()) { + QFileSystemEntry answer = QFileSystemEngine::canonicalName(d->dirEntry, d->metaData); + return answer.filePath(); + } + return d->fileEngine->fileName(QAbstractFileEngine::CanonicalName); } /*! @@ -652,10 +681,7 @@ QString QDir::canonicalPath() const QString QDir::dirName() const { const QDirPrivate* d = d_ptr.constData(); - int pos = d->path.lastIndexOf(QLatin1Char('/')); - if (pos == -1) - return d->path; - return d->path.mid(pos + 1); + return d->dirEntry.fileName(); } /*! @@ -673,7 +699,7 @@ QString QDir::filePath(const QString &fileName) const if (isAbsolutePath(fileName)) return QString(fileName); - QString ret = d->path; + QString ret = d->dirEntry.filePath(); if (!fileName.isEmpty()) { if (!ret.isEmpty() && ret[(int)ret.length()-1] != QLatin1Char('/') && fileName[0] != QLatin1Char('/')) ret += QLatin1Char('/'); @@ -696,22 +722,12 @@ QString QDir::absoluteFilePath(const QString &fileName) const if (isAbsolutePath(fileName)) return fileName; - QString ret; -#ifndef QT_NO_FSFILEENGINE - if (isRelativePath(d->path)) //get pwd - ret = QFSFileEngine::currentPath(fileName); -#endif - if (!d->path.isEmpty() && d->path != QLatin1String(".")) { - if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/'))) - ret += QLatin1Char('/'); - ret += d->path; - } - if (!fileName.isEmpty()) { - if (!ret.isEmpty() && !ret.endsWith(QLatin1Char('/'))) - ret += QLatin1Char('/'); - ret += fileName; - } - return ret; + d->resolveAbsoluteEntry(); + if (fileName.isEmpty()) + return d->absoluteDirEntry.filePath(); + if (!d->absoluteDirEntry.isRoot()) + return d->absoluteDirEntry.filePath() % QLatin1Char('/') % fileName; + return d->absoluteDirEntry.filePath() % fileName; } /*! @@ -857,21 +873,22 @@ bool QDir::cd(const QString &dirName) if (dirName.isEmpty() || dirName == QLatin1String(".")) return true; - QString newPath = d->path; + QString newPath; if (isAbsolutePath(dirName)) { newPath = cleanPath(dirName); } else { if (isRoot()) { if (dirName == QLatin1String("..")) return false; + newPath = d->dirEntry.filePath(); } else { - newPath += QLatin1Char('/'); + newPath = d->dirEntry.filePath() % QLatin1Char('/'); } newPath += dirName; if (dirName.indexOf(QLatin1Char('/')) >= 0 - || d->path == QLatin1String(".") - || dirName == QLatin1String("..")) { + || dirName == QLatin1String("..") + || d->dirEntry.filePath() == QLatin1String(".")) { newPath = cleanPath(newPath); /* If newPath starts with .., we convert it to absolute to @@ -889,7 +906,6 @@ bool QDir::cd(const QString &dirName) QScopedPointer dir(new QDirPrivate(*d_ptr.constData())); dir->setPath(newPath); - if (!dir->exists()) return false; @@ -1202,7 +1218,7 @@ void QDir::setSorting(SortFlags sort) uint QDir::count() const { const QDirPrivate* d = d_ptr.constData(); - d->initFileLists(); + d->initFileLists(*this); return d->files.count(); } @@ -1216,7 +1232,7 @@ uint QDir::count() const QString QDir::operator[](int pos) const { const QDirPrivate* d = d_ptr.constData(); - d->initFileLists(); + d->initFileLists(*this); return d->files[pos]; } @@ -1299,12 +1315,12 @@ QStringList QDir::entryList(const QStringList &nameFilters, Filters filters, sort = d->sort; if (filters == d->filters && sort == d->sort && nameFilters == d->nameFilters) { - d->initFileLists(); + d->initFileLists(*this); return d->files; } QFileInfoList l; - QDirIterator it(d->path, nameFilters, filters); + QDirIterator it(d->dirEntry.filePath(), nameFilters, filters); while (it.hasNext()) { it.next(); l.append(it.fileInfo()); @@ -1345,12 +1361,12 @@ QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filter sort = d->sort; if (filters == d->filters && sort == d->sort && nameFilters == d->nameFilters) { - d->initFileLists(); + d->initFileLists(*this); return d->fileInfos; } QFileInfoList l; - QDirIterator it(d->path, nameFilters, filters); + QDirIterator it(d->dirEntry.filePath(), nameFilters, filters); while (it.hasNext()) { it.next(); l.append(it.fileInfo()); @@ -1377,6 +1393,8 @@ bool QDir::mkdir(const QString &dirName) const } QString fn = filePath(dirName); + if (d->fileEngine.isNull()) + return QFileSystemEngine::createDirectory(QFileSystemEntry(fn), false); return d->fileEngine->mkdir(fn, false); } @@ -1399,6 +1417,9 @@ bool QDir::rmdir(const QString &dirName) const } QString fn = filePath(dirName); + if (d->fileEngine.isNull()) + return QFileSystemEngine::removeDirectory(QFileSystemEntry(fn), false); + return d->fileEngine->rmdir(fn, false); } @@ -1422,6 +1443,8 @@ bool QDir::mkpath(const QString &dirPath) const } QString fn = filePath(dirPath); + if (d->fileEngine.isNull()) + return QFileSystemEngine::createDirectory(QFileSystemEntry(fn), true); return d->fileEngine->mkdir(fn, true); } @@ -1446,6 +1469,8 @@ bool QDir::rmpath(const QString &dirPath) const } QString fn = filePath(dirPath); + if (d->fileEngine.isNull()) + return QFileSystemEngine::removeDirectory(QFileSystemEntry(fn), true); return d->fileEngine->rmdir(fn, true); } @@ -1462,6 +1487,13 @@ bool QDir::isReadable() const { const QDirPrivate* d = d_ptr.constData(); + if (d->fileEngine.isNull()) { + if (!d->metaData.hasFlags(QFileSystemMetaData::UserReadPermission)) + QFileSystemEngine::fillMetaData(d->dirEntry, d->metaData, QFileSystemMetaData::UserReadPermission); + + return (d->metaData.permissions() & QFile::ReadUser) != 0; + } + const QAbstractFileEngine::FileFlags info = d->fileEngine->fileFlags(QAbstractFileEngine::DirectoryType | QAbstractFileEngine::PermsMask); @@ -1500,6 +1532,8 @@ bool QDir::exists() const */ bool QDir::isRoot() const { + if (d_ptr->fileEngine.isNull()) + return d_ptr->dirEntry.isRoot(); return d_ptr->fileEngine->fileFlags(QAbstractFileEngine::FlagsMask) & QAbstractFileEngine::RootFlag; } @@ -1530,7 +1564,7 @@ bool QDir::isRoot() const */ bool QDir::isRelative() const { - return d_ptr->fileEngine->isRelativePath(); + return d_ptr->dirEntry.isRelative(); } @@ -1541,19 +1575,23 @@ bool QDir::isRelative() const \sa isAbsolute() isAbsolutePath() isRelative() cleanPath() */ -bool QDir::makeAbsolute() // ### What do the return values signify? +bool QDir::makeAbsolute() { - QString absolutePath = d_ptr.constData()->fileEngine->fileName(QAbstractFileEngine::AbsoluteName); - if (QDir::isRelativePath(absolutePath)) - return false; - - QScopedPointer dir(new QDirPrivate(*d_ptr.constData())); - dir->setPath(absolutePath); - - if (!(dir->fileEngine->fileFlags(QAbstractFileEngine::TypesMask) & QAbstractFileEngine::DirectoryType)) - return false; + const QDirPrivate *d = d_ptr.constData(); + QScopedPointer dir; + if (!d->fileEngine.isNull()) { + QString absolutePath = d->fileEngine->fileName(QAbstractFileEngine::AbsoluteName); + if (QDir::isRelativePath(absolutePath)) + return false; - d_ptr = dir.take(); + dir.reset(new QDirPrivate(*d_ptr.constData())); + dir->setPath(absolutePath); + } else { // native FS + d->resolveAbsoluteEntry(); + dir.reset(new QDirPrivate(*d_ptr.constData())); + dir->setPath(d->absoluteDirEntry.filePath()); + } + d_ptr = dir.take(); // actually detach return true; } @@ -1573,17 +1611,24 @@ bool QDir::operator==(const QDir &dir) const if (d == other) return true; - if (d->fileEngine->caseSensitive() != other->fileEngine->caseSensitive()) - return false; + Qt::CaseSensitivity sensitive; + if (d->fileEngine.isNull() || other->fileEngine.isNull()) { + if (d->fileEngine.data() != other->fileEngine.data()) // one is native, the other is a custom file-engine + return false; + + sensitive = QFileSystemEngine::isCaseSensitive() ? Qt::CaseSensitive : Qt::CaseInsensitive; + } else { + if (d->fileEngine->caseSensitive() != other->fileEngine->caseSensitive()) + return false; + sensitive = d->fileEngine->caseSensitive() ? Qt::CaseSensitive : Qt::CaseInsensitive; + } + if (d->filters == other->filters && d->sort == other->sort && d->nameFilters == other->nameFilters) { - QString dir1 = absolutePath(), dir2 = dir.absolutePath(); - if (!other->fileEngine->caseSensitive()) - return (dir1.toLower() == dir2.toLower()); - - return (dir1 == dir2); - + d->resolveAbsoluteEntry(); + other->resolveAbsoluteEntry(); + return d->absoluteDirEntry.filePath().compare(other->absoluteDirEntry.filePath(), sensitive) == 0; } return false; } -- cgit v0.12 From 3df81c23e6ab7dae949315a4f0ca4e54469ab2bf Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 16 Sep 2010 16:02:01 +0100 Subject: Fix for QDir constructed with a path containing native separators. QFileSystemEntry's m_filePath should always contain a path with / as separator. Reviewed-By: Thomas Zander --- src/corelib/io/qdir.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index efc0ba9..a45c104 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -175,13 +175,15 @@ public: return ret; } - inline void setPath(QString p) + inline void setPath(const QString &path) { - if ((p.endsWith(QLatin1Char('/')) || p.endsWith(QLatin1Char('\\'))) - && p.length() > 1) { + QString p = QDir::fromNativeSeparators(path); + if (p.endsWith(QLatin1Char('/')) + && p.length() > 1 #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) - if (!(p.length() == 3 && p.at(1) == QLatin1Char(':'))) + && (!(p.length() == 3 && p.at(1).unicode() == ':' && p.at(0).isLetter())) #endif + ) { p.truncate(p.length() - 1); } -- cgit v0.12 From 206f49020bce11e142c4290b6655ac7c15592b43 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Fri, 17 Sep 2010 15:04:27 +0200 Subject: Differntiate different types of absolute paths on windows. QFileSystemEntry now differentiates between various types of absolute paths on Windows and Symbian. The new behavior is shown the table below. Anybody who uses this class should NOT treat that !isRelative() == isAbsolute(). The differentiation is puerly for internal use by the windows and symbian implementations of QFileSystemEngine. |============================================| |Filename isRelative isAbsolute | |============================================| | Somefile.txt 1 0 | | Some/file.txt 1 0 | | a:Somefile.txt 0 0 | | /Somefile.txt 0 0 | | a:/somefile.txt 0 1 | | //abc/somefile.txt 0 1 | |============================================| Reviewed-by: Joao Reviewed-by: Shane Kearns --- src/corelib/io/qfilesystemengine_symbian.cpp | 2 +- src/corelib/io/qfilesystemengine_win.cpp | 20 ++++----- src/corelib/io/qfilesystementry.cpp | 30 ++++++++++---- src/corelib/io/qfilesystementry_p.h | 4 +- .../auto/qfilesystementry/tst_qfilesystementry.cpp | 47 ++++++++++++++++++---- 5 files changed, 74 insertions(+), 29 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 02b4c48..b4f0f88 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -114,7 +114,7 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) const bool isDriveRelative = (orig.size() > 2 && orig.at(1).unicode() == ':' && orig.at(2).unicode() != '/'); const bool isDirty = (orig.contains(QLatin1String("/../")) || orig.contains(QLatin1String("/./")) || orig.endsWith(QLatin1String("/..")) || orig.endsWith(QLatin1String("/."))); - const bool isAbsolute = entry.isAbsolute(); + const bool isAbsolute = !entry.isRelative(); if (isAbsolute && !(needsDrive || isDriveLetter || isDriveRelative || isDirty)) return entry; diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 8526cf2..119ed7c 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -545,18 +545,18 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) if (!entry.isRelative()) { #if !defined(Q_OS_WINCE) - if (entry.filePath().startsWith(QLatin1Char('/')) || // It's a absolute path to the current drive, so \a.txt -> Z:\a.txt - entry.filePath().size() == 2 || // It's a drive letter that needs to get a working dir appended - (entry.filePath().size() > 2 && entry.filePath().at(2) != QLatin1Char('/')) || // It's a drive-relative path, so Z:a.txt -> Z:\currentpath\a.txt - entry.filePath().contains(QLatin1String("/../")) || entry.filePath().contains(QLatin1String("/./")) || - entry.filePath().endsWith(QLatin1String("/..")) || entry.filePath().endsWith(QLatin1String("/."))) - { - ret = QDir::fromNativeSeparators(nativeAbsoluteFilePath(entry.filePath())); - } else -#endif - { + if (entry.isAbsolute() + && !entry.filePath().contains(QLatin1String("/../")) + && !entry.filePath().contains(QLatin1String("/./")) + && !entry.filePath().endsWith(QLatin1String("/..")) + && !entry.filePath().endsWith(QLatin1String("/."))) { ret = entry.filePath(); + } else { + ret = QDir::fromNativeSeparators(nativeAbsoluteFilePath(entry.filePath())); } +#else + ret = entry.filePath(); +#endif } else { ret = QDir::cleanPath(QDir::currentPath() + QLatin1Char('/') + entry.filePath()); } diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index 733a226..10b59fd 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -225,17 +225,33 @@ QString QFileSystemEntry::completeSuffix() const return m_filePath.mid(qMax((qint16)0, m_lastSeparator) + m_firstDotInFileName + 1); } +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) +bool QFileSystemEntry::isRelative() const +{ + resolveFilePath(); + return (m_filePath.isEmpty() || (!m_filePath.isEmpty() && (m_filePath[0].unicode() != '/') + && (!(m_filePath.length() >= 2 && m_filePath[1].unicode() == ':')))); +} + bool QFileSystemEntry::isAbsolute() const { resolveFilePath(); - return (!m_filePath.isEmpty() && (m_filePath[0].unicode() == '/') -#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) - || (m_filePath.length() >= 2 - && ((m_filePath[0].isLetter() && m_filePath[1].unicode() == ':') - || (m_filePath.at(0) == QLatin1Char('/') && m_filePath.at(1) == QLatin1Char('/')))) -#endif - ); + return (!m_filePath.isEmpty() && ((m_filePath.length() >= 3 + && (m_filePath[0].isLetter() && m_filePath[1].unicode() == ':' && m_filePath[2].unicode() == '/')) + || (m_filePath.length() >= 2 && (m_filePath.at(0) == QLatin1Char('/') && m_filePath.at(1) == QLatin1Char('/'))))); +} +#else +bool QFileSystemEntry::isRelative() const +{ + return !isAbsolute(); +} + +bool QFileSystemEntry::isAbsolute() const +{ + resolveFilePath(); + return (!m_filePath.isEmpty() && (m_filePath[0].unicode() == '/')); } +#endif #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) bool QFileSystemEntry::isDriveRoot() const diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h index 5a41782..7a9c2a5 100644 --- a/src/corelib/io/qfilesystementry_p.h +++ b/src/corelib/io/qfilesystementry_p.h @@ -88,9 +88,7 @@ public: QString suffix() const; QString completeSuffix() const; bool isAbsolute() const; - bool isRelative() const { - return !isAbsolute(); - } + bool isRelative() const; #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) bool isDriveRoot() const; diff --git a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp index 49afab6..4375f99 100644 --- a/tests/auto/qfilesystementry/tst_qfilesystementry.cpp +++ b/tests/auto/qfilesystementry/tst_qfilesystementry.cpp @@ -64,6 +64,10 @@ private slots: void baseName(); void completeBaseName_data(); void completeBaseName(); +#if defined(WIN_STUFF) + void absoluteOrRelative_data(); + void absoluteOrRelative(); +#endif }; #if defined(WIN_STUFF) @@ -78,6 +82,7 @@ void tst_QFileSystemEntry::getSetCheck_data() QTest::addColumn("suffix"); QTest::addColumn("completeSuffix"); QTest::addColumn("absolute"); + QTest::addColumn("relative"); QString absPrefix = QLatin1String("\\\\?\\"); QString relPrefix = absPrefix @@ -88,33 +93,33 @@ void tst_QFileSystemEntry::getSetCheck_data() << QString("A:\\home\\qt\\in\\a\\dir.tar.gz") << absPrefix + QString("A:\\home\\qt\\in\\a\\dir.tar.gz") << "A:/home/qt/in/a/dir.tar.gz" - << "dir.tar.gz" << "dir" << "dir.tar" << "gz" << "tar.gz" << true; + << "dir.tar.gz" << "dir" << "dir.tar" << "gz" << "tar.gz" << true << false; QTest::newRow("relative") << QString("in\\a\\dir.tar.gz") << relPrefix + QString("in\\a\\dir.tar.gz") << "in/a/dir.tar.gz" - << "dir.tar.gz" << "dir" << "dir.tar" << "gz" << "tar.gz" << false; + << "dir.tar.gz" << "dir" << "dir.tar" << "gz" << "tar.gz" << false <("path"); + QTest::addColumn("isAbsolute"); + QTest::addColumn("isRelative"); + + QTest::newRow("data0") << "file.tar" << false << true; + QTest::newRow("data1") << "/path/file/file.tar.gz" << false << false; + QTest::newRow("data1") << "C:path/file/file.tar.gz" << false << false; + QTest::newRow("data3") << "C:/path/file" << true << false; + QTest::newRow("data3") << "//machine/share" << true << false; +} + +void tst_QFileSystemEntry::absoluteOrRelative() +{ + QFETCH(QString, path); + QFETCH(bool, isAbsolute); + QFETCH(bool, isRelative); + + QFileSystemEntry fi(path); + QCOMPARE(fi.isAbsolute(), isAbsolute); + QCOMPARE(fi.isRelative(), isRelative); +} +#endif QTEST_MAIN(tst_QFileSystemEntry) #include -- cgit v0.12 From 768009af920c642834b1730136d9c8b156277c1d Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Fri, 17 Sep 2010 16:04:35 +0200 Subject: Fix QDir autotest failures on windows The canonicalName now checks the file existance before it returns the path. It will also fill in the metadata in case the existance was never checked before. Reviewed-by: Joao --- src/corelib/io/qfilesystemengine_win.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 119ed7c..20b9b4d 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -503,8 +503,13 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, //static QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry, QFileSystemMetaData &data) { - // The caller has to verify whether the file exists or not. - return QFileSystemEntry(slowCanonicalized(absoluteName(entry).filePath())); + if (data.missingFlags(QFileSystemMetaData::ExistsAttribute)) + QFileSystemEngine::fillMetaData(entry, data, QFileSystemMetaData::ExistsAttribute); + + if (data.exists()) + return QFileSystemEntry(slowCanonicalized(absoluteName(entry).filePath())); + else + return QFileSystemEntry(); } //static -- cgit v0.12 From 63d50fdfa59cd198f7bf87f37770960e1b93945d Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 17 Sep 2010 15:05:04 +0100 Subject: Move rootPath, homePath, tempPath, currentPath and setCurrentPath Moved these functions inside the QFilesystemEngine and redirected the QFSFileEngine copies. Reviewed-By: joao --- src/corelib/io/qdir.cpp | 31 ++--------- src/corelib/io/qfilesystemengine_p.h | 9 +++- src/corelib/io/qfilesystemengine_symbian.cpp | 67 ++++++++++++++++++++++- src/corelib/io/qfilesystemengine_unix.cpp | 57 +++++++++++++++++++- src/corelib/io/qfilesystemengine_win.cpp | 67 +++++++++++++++++++++++ src/corelib/io/qfilesystementry.cpp | 8 ++- src/corelib/io/qfsfileengine_unix.cpp | 79 ++-------------------------- src/corelib/io/qfsfileengine_win.cpp | 51 ++---------------- src/corelib/kernel/qcoreapplication.cpp | 7 +++ 9 files changed, 225 insertions(+), 151 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index a45c104..e65dc11 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -1779,12 +1779,7 @@ QChar QDir::separator() */ bool QDir::setCurrent(const QString &path) { -#ifdef QT_NO_FSFILEENGINE - Q_UNUSED(path); - return false; -#else - return QFSFileEngine::setCurrentPath(path); -#endif + return QFileSystemEngine::setCurrentPath(QFileSystemEntry(fromNativeSeparators(path))); } /*! @@ -1805,11 +1800,7 @@ bool QDir::setCurrent(const QString &path) */ QString QDir::currentPath() { -#ifdef QT_NO_FSFILEENGINE - return QString(); -#else - return QFSFileEngine::currentPath(); -#endif + return QFileSystemEngine::currentPath().filePath(); } /*! @@ -1867,11 +1858,7 @@ QString QDir::currentPath() */ QString QDir::homePath() { -#ifdef QT_NO_FSFILEENGINE - return QString(); -#else - return cleanPath(QFSFileEngine::homePath()); -#endif + return QFileSystemEngine::homePath(); } /*! @@ -1910,11 +1897,7 @@ QString QDir::homePath() */ QString QDir::tempPath() { -#ifdef QT_NO_FSFILEENGINE - return QString(); -#else - return cleanPath(QFSFileEngine::tempPath()); -#endif + return QFileSystemEngine::tempPath(); } /*! @@ -1941,11 +1924,7 @@ QString QDir::tempPath() */ QString QDir::rootPath() { -#ifdef QT_NO_FSFILEENGINE - return QString(); -#else - return QFSFileEngine::rootPath(); -#endif + return QFileSystemEngine::rootPath(); } /*! diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index b3bbd65..20b664d 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -88,11 +88,13 @@ public: QFileSystemMetaData::MetaDataFlags what); static bool fillPermissions(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what); - static QString homePath(); - static QString rootPath(); static QString owner(const QFileSystemEntry &entry, QAbstractFileEngine::FileOwner own); static QString nativeAbsoluteFilePath(const QString &path); #endif + //homePath, rootPath and tempPath shall return clean paths + static QString homePath(); + static QString rootPath(); + static QString tempPath(); static bool createDirectory(const QFileSystemEntry &entry, bool createParents); static bool removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents); @@ -106,6 +108,9 @@ public: static bool setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data = 0); + static bool setCurrentPath(const QFileSystemEntry &entry); + static QFileSystemEntry currentPath(); + static QAbstractFileEngine *resolveEntryAndCreateLegacyEngine(QFileSystemEntry &entry, QFileSystemMetaData &data); private: diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index b4f0f88..ce2166d 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -42,8 +42,11 @@ #include "qfilesystemengine_p.h" #include "qfsfileengine.h" #include +#include #include +#include +#include QT_BEGIN_NAMESPACE @@ -121,7 +124,7 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) QString result; if (needsDrive || isDriveLetter || isDriveRelative || !isAbsolute || orig.isEmpty()) { - QFileSystemEntry cur(QFSFileEngine::currentPath()); + QFileSystemEntry cur(currentPath()); if(needsDrive) result = cur.filePath().left(2); else if(isDriveRelative && cur.filePath().at(0) != orig.at(0)) @@ -339,4 +342,66 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per return err == KErrNone; // TODO error reporting } +QString QFileSystemEngine::homePath() +{ + QString home = QDir::fromNativeSeparators(qt_TDesC2QString(PathInfo::PhoneMemoryRootPath())); + if(home.endsWith(QLatin1Char('/'))) + home.chop(1); + return home; +} + +QString QFileSystemEngine::rootPath() +{ + TChar drive; + TInt err = RFs::DriveToChar(RFs::GetSystemDrive(), drive); //RFs::GetSystemDriveChar not supported on S60 3.1 + Q_ASSERT(err == KErrNone); //RFs::GetSystemDrive() shall always return a convertible drive number on a valid OS configuration + return QString(QChar(drive)).append(QLatin1String(":/")); +} + +QString QFileSystemEngine::tempPath() +{ + return rootPath().append(QLatin1String("system/temp")); +} + +//static +bool QFileSystemEngine::setCurrentPath(const QFileSystemEntry &entry) +{ + QFileSystemMetaData meta; + QFileSystemEntry absname = absoluteName(entry); + fillMetaData(absname, meta, QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType); + if(!(meta.exists() && meta.isDirectory())) + return false; + + RFs& fs = qt_s60GetRFs(); + QString abspath = absname.nativeFilePath(); + if(!abspath.endsWith(QLatin1Char('\\'))) + abspath.append(QLatin1Char('\\')); + TInt r = fs.SetSessionPath(qt_QString2TPtrC(abspath)); + //SetSessionPath succeeds for non existant directory, which is why it's checked above + if (r == KErrNone) { + __ASSERT_COMPILE(sizeof(wchar_t) == sizeof(unsigned short)); + //attempt to set open C to the same path + r = ::wchdir(reinterpret_cast(absname.filePath().utf16())); + if (r < 0) + qWarning("failed to sync path to open C"); + return true; + } + return false; +} + +//static +QFileSystemEntry QFileSystemEngine::currentPath() +{ + TFileName fn; + QFileSystemEntry ret; + TInt r = qt_s60GetRFs().SessionPath(fn); + if(r == KErrNone) { + //remove terminating slash from non root paths (session path is clean, absolute and always ends in a \) + if(fn.Length() > 3 && fn[fn.Length() - 1] == '\\') + fn.SetLength(fn.Length() - 1); + ret = QFileSystemEntry(qt_TDesC2QString(fn), QFileSystemEntry::FromNativePath()); + } + return ret; +} + QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 6290d68..8724b15 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -246,7 +246,7 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) QByteArray orig = entry.nativeFilePath(); QByteArray result; if (orig.isEmpty() || !orig.startsWith('/')) { - QFileSystemEntry cur(QFSFileEngine::currentPath()); + QFileSystemEntry cur(currentPath()); result = cur.nativeFilePath(); } if (!orig.isEmpty() && !(orig.length() == 1 && orig[0] == '.')) { @@ -548,4 +548,59 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per return false; // TODO implement; } +QString QFileSystemEngine::homePath() +{ + QString home = QFile::decodeName(qgetenv("HOME")); + if (home.isNull()) + home = rootPath(); + return QDir::cleanPath(home); +} + +QString QFileSystemEngine::rootPath() +{ + return QLatin1String("/"); +} + +QString QFileSystemEngine::tempPath() +{ + QString temp = QFile::decodeName(qgetenv("TMPDIR")); + if (temp.isEmpty()) + temp = QLatin1String("/tmp/"); + return QDir::cleanPath(temp); +} + +bool QFileSystemEngine::setCurrentPath(const QFileSystemEntry &path) +{ + int r; + r = QT_CHDIR(path.nativeFilePath()); + return r >= 0; +} + +QFileSystemEntry QFileSystemEngine::currentPath() +{ + QFileSystemEntry result; + QT_STATBUF st; + if (QT_STAT(".", &st) == 0) { +#if defined(__GLIBC__) && !defined(PATH_MAX) + char *currentName = ::get_current_dir_name(); + if (currentName) { + result = QFile::decodeName(QByteArray(currentName)); + ::free(currentName); + } +#else + char currentName[PATH_MAX+1]; + if (::getcwd(currentName, PATH_MAX)) + result = QFileSystemEntry(QByteArray(currentName), QFileSystemEntry::FromNativePath()); +# if defined(QT_DEBUG) + if (result.isEmpty()) + qWarning("QFSFileEngine::currentPath: getcwd() failed"); +# endif +#endif + } else { +# if defined(QT_DEBUG) + qWarning("QFSFileEngine::currentPath: stat(\".\") failed"); +# endif + } + return result; +} QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 20b9b4d..cef7236 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -1098,6 +1098,73 @@ QString QFileSystemEngine::homePath() return QDir::fromNativeSeparators(ret); } +QString QFileSystemEngine::tempPath() +{ + QString ret; + wchar_t tempPath[MAX_PATH]; + DWORD len = GetTempPath(MAX_PATH, tempPath); + if (len) + ret = QString::fromWCharArray(tempPath, len); + if (!ret.isEmpty()) { + while (ret.endsWith(QLatin1Char('\\'))) + ret.chop(1); + ret = QDir::fromNativeSeparators(ret); + } + if (ret.isEmpty()) { +#if !defined(Q_OS_WINCE) + ret = QLatin1String("c:/tmp"); +#else + ret = QLatin1String("/Temp"); +#endif + } + return ret; +} + +bool QFileSystemEngine::setCurrentPath(const QFileSystemEntry &entry) +{ + QFileSystemMetaData meta; + fillMetaData(entry, meta, QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType); + if(!(meta.exists() && meta.isDirectory())) + return false; + +#if !defined(Q_OS_WINCE) + //TODO: this should really be using nativeFilePath(), but that returns a path in long format \\?\c:\foo + //which causes many problems later on when it's returned through currentPath() + return ::SetCurrentDirectory(reinterpret_cast(QDir::toNativeSeparators(entry.filePath()).utf16())) != 0; +#else + qfsPrivateCurrentDir = entry.filePath(); + return true; +#endif +} + +QFileSystemEntry QFileSystemEngine::currentPath() +{ + QString ret; +#if !defined(Q_OS_WINCE) + DWORD size = 0; + wchar_t currentName[PATH_MAX]; + size = ::GetCurrentDirectory(PATH_MAX, currentName); + if (size != 0) { + if (size > PATH_MAX) { + wchar_t *newCurrentName = new wchar_t[size]; + if (::GetCurrentDirectory(PATH_MAX, newCurrentName) != 0) + ret = QString::fromWCharArray(newCurrentName, size); + delete [] newCurrentName; + } else { + ret = QString::fromWCharArray(currentName, size); + } + } +#else + Q_UNUSED(fileName); + //TODO - a race condition exists when using currentPath / setCurrentPath from multiple threads + if (qfsPrivateCurrentDir.isEmpty()) + qfsPrivateCurrentDir = QCoreApplication::applicationDirPath(); + + ret = qfsPrivateCurrentDir; +#endif + return QFileSystemEntry(ret, QFileSystemEntry::FromNativePath()); +} + //static bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target) { diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index 10b59fd..12de135 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -121,8 +121,14 @@ QFileSystemEntry::NativePath QFileSystemEntry::nativeFilePath() const void QFileSystemEntry::resolveFilePath() const { if (m_filePath.isEmpty() && !m_nativeFilePath.isEmpty()) { -#ifdef QFILESYSTEMENTRY_NATIVE_PATH_IS_UTF16 +#if defined(QFILESYSTEMENTRY_NATIVE_PATH_IS_UTF16) m_filePath = QDir::fromNativeSeparators(m_nativeFilePath); +#ifdef Q_OS_WIN + if (m_filePath.startsWith(QLatin1String("//?/UNC/"))) + m_filePath = m_filePath.remove(2,6); + if (m_filePath.startsWith(QLatin1String("//?/"))) + m_filePath = m_filePath.remove(0,4); +#endif #else m_filePath = QDir::fromNativeSeparators(QFile::decodeName(m_nativeFilePath)); #endif diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 2e9d10c..84054d8 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -691,96 +691,27 @@ bool QFSFileEngine::caseSensitive() const bool QFSFileEngine::setCurrentPath(const QString &path) { - int r; - r = QT_CHDIR(QFile::encodeName(path)); - return r >= 0; + return QFileSystemEngine::setCurrentPath(QFileSystemEntry(QDir::fromNativeSeparators(path))); } QString QFSFileEngine::currentPath(const QString &) { - QString result; - QT_STATBUF st; -#if defined(Q_OS_SYMBIAN) - char nativeCurrentName[PATH_MAX+1]; - if (::getcwd(nativeCurrentName, PATH_MAX)) - result = QDir::fromNativeSeparators(QFile::decodeName(QByteArray(nativeCurrentName))); - if (result.isEmpty()) { -# if defined(QT_DEBUG) - qWarning("QFSFileEngine::currentPath: getcwd() failed"); -# endif - } else -#endif - if (QT_STAT(".", &st) == 0) { -#if defined(__GLIBC__) && !defined(PATH_MAX) - char *currentName = ::get_current_dir_name(); - if (currentName) { - result = QFile::decodeName(QByteArray(currentName)); - ::free(currentName); - } -#elif !defined(Q_OS_SYMBIAN) - char currentName[PATH_MAX+1]; - if (::getcwd(currentName, PATH_MAX)) - result = QFile::decodeName(QByteArray(currentName)); -# if defined(QT_DEBUG) - if (result.isNull()) - qWarning("QFSFileEngine::currentPath: getcwd() failed"); -# endif -#endif - } else { -#if defined(Q_OS_SYMBIAN) - // If current dir returned by Open C doesn't exist, - // try to create it (can happen with application private dirs) - // Ignore mkdir failures; we want to be consistent with Open C - // current path regardless. - QT_MKDIR(QFile::encodeName(QLatin1String(nativeCurrentName)), 0777); -#else -# if defined(QT_DEBUG) - qWarning("QFSFileEngine::currentPath: stat(\".\") failed"); -# endif -#endif - } - return result; + return QFileSystemEngine::currentPath().filePath(); } QString QFSFileEngine::homePath() { -#if defined(Q_OS_SYMBIAN) - QString home = QDir::cleanPath(QDir::fromNativeSeparators(qt_TDesC2QString(PathInfo::PhoneMemoryRootPath()))); -#else - QString home = QFile::decodeName(qgetenv("HOME")); - if (home.isNull()) - home = rootPath(); -#endif - return home; + return QFileSystemEngine::homePath(); } QString QFSFileEngine::rootPath() { -#if defined(Q_OS_SYMBIAN) - TChar drive; - TInt err = RFs::DriveToChar(RFs::GetSystemDrive(), drive); //RFs::GetSystemDriveChar not supported on S60 3.1 - Q_ASSERT(err == KErrNone); //RFs::GetSystemDrive() shall always return a convertible drive number on a valid OS configuration - return QString(QChar(drive)).append(QLatin1String(":/")); -#else - return QLatin1String("/"); -#endif + return QFileSystemEngine::rootPath(); } QString QFSFileEngine::tempPath() { -#if defined(Q_OS_SYMBIAN) - TFileName symbianPath = PathInfo::PhoneMemoryRootPath(); - QString temp = QDir::fromNativeSeparators(qt_TDesC2QString(symbianPath)); - temp += QLatin1String( "temp/"); - - // Just to verify that folder really exist on hardware - QT_MKDIR(QFile::encodeName(temp), 0777); -#else - QString temp = QFile::decodeName(qgetenv("TMPDIR")); - if (temp.isEmpty()) - temp = QLatin1String("/tmp/"); -#endif - return temp; + return QFileSystemEngine::tempPath(); } QFileInfoList QFSFileEngine::drives() diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index dde499a..b2009c3 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -544,15 +544,7 @@ bool QFSFileEngine::caseSensitive() const bool QFSFileEngine::setCurrentPath(const QString &path) { - if (!QDir(path).exists()) - return false; - -#if !defined(Q_OS_WINCE) - return ::SetCurrentDirectory((wchar_t*)path.utf16()) != 0; -#else - qfsPrivateCurrentDir = QFSFileEnginePrivate::longFileName(path); - return true; -#endif + return QFileSystemEngine::setCurrentPath(QFileSystemEntry(path)); } QString QFSFileEngine::currentPath(const QString &fileName) @@ -571,29 +563,14 @@ QString QFSFileEngine::currentPath(const QString &fileName) } if (ret.isEmpty()) { //just the pwd - DWORD size = 0; - wchar_t currentName[PATH_MAX]; - size = ::GetCurrentDirectory(PATH_MAX, currentName); - if (size != 0) { - if (size > PATH_MAX) { - wchar_t *newCurrentName = new wchar_t[size]; - if (::GetCurrentDirectory(PATH_MAX, newCurrentName) != 0) - ret = QString::fromWCharArray(newCurrentName); - delete [] newCurrentName; - } else { - ret = QString::fromWCharArray(currentName); - } - } + ret = QFileSystemEngine::currentPath().filePath(); } if (ret.length() >= 2 && ret[1] == QLatin1Char(':')) ret[0] = ret.at(0).toUpper(); // Force uppercase drive letters. - return QDir::fromNativeSeparators(ret); + return ret; #else Q_UNUSED(fileName); - if (qfsPrivateCurrentDir.isEmpty()) - qfsPrivateCurrentDir = QCoreApplication::applicationDirPath(); - - return QDir::fromNativeSeparators(qfsPrivateCurrentDir); + return QFileSystemEngine::currentPath(); #endif } @@ -609,25 +586,7 @@ QString QFSFileEngine::rootPath() QString QFSFileEngine::tempPath() { - QString ret; - { - wchar_t tempPath[MAX_PATH]; - if (GetTempPath(MAX_PATH, tempPath)) - ret = QString::fromWCharArray(tempPath); - if (!ret.isEmpty()) { - while (ret.endsWith(QLatin1Char('\\'))) - ret.chop(1); - ret = QDir::fromNativeSeparators(ret); - } - } - if (ret.isEmpty()) { -#if !defined(Q_OS_WINCE) - ret = QLatin1String("c:/tmp"); -#else - ret = QLatin1String("/Temp"); -#endif - } - return ret; + return QFileSystemEngine::tempPath(); } QFileInfoList QFSFileEngine::drives() diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index ad645e3..d94cf6d 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -71,6 +71,7 @@ # include # include "qeventdispatcher_symbian_p.h" # include "private/qcore_symbian_p.h" +# include "private/qfilesystemengine_p.h" #elif defined(Q_OS_UNIX) # if !defined(QT_NO_GLIB) # include "qeventdispatcher_glib_p.h" @@ -568,6 +569,12 @@ void QCoreApplication::init() Q_ASSERT_X(!self, "QCoreApplication", "there should be only one application object"); QCoreApplication::self = this; +#ifdef Q_OS_SYMBIAN + //ensure temp and working directories exist + QFileSystemEngine::createDirectory(QFileSystemEntry(QFileSystemEngine::tempPath()), true); + QFileSystemEngine::createDirectory(QFileSystemEntry(QFileSystemEngine::currentPath()), true); +#endif + #ifndef QT_NO_THREAD QThread::initialize(); #endif -- cgit v0.12 From 883b223c2fc17e313c8a080c14055bba02ae655c Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 17 Sep 2010 18:13:50 +0100 Subject: Make use of new isRelative / isAbsolute functions Reviewed-By: joao --- src/corelib/io/qfilesystemengine_symbian.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index ce2166d..efb3539 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -112,16 +112,17 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry, QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) { QString orig = entry.filePath(); - const bool needsDrive = (!orig.isEmpty() && orig.at(0).unicode() == '/'); - const bool isDriveLetter = (orig.size() == 2 && orig.at(1).unicode() == ':'); - const bool isDriveRelative = (orig.size() > 2 && orig.at(1).unicode() == ':' && orig.at(2).unicode() != '/'); + const bool isAbsolute = entry.isAbsolute(); const bool isDirty = (orig.contains(QLatin1String("/../")) || orig.contains(QLatin1String("/./")) || orig.endsWith(QLatin1String("/..")) || orig.endsWith(QLatin1String("/."))); - const bool isAbsolute = !entry.isRelative(); - if (isAbsolute && - !(needsDrive || isDriveLetter || isDriveRelative || isDirty)) + if (isAbsolute && !isDirty) return entry; + const bool isRelative = entry.isRelative(); + const bool needsDrive = (!orig.isEmpty() && orig.at(0).unicode() == '/'); + const bool isDriveLetter = !needsDrive && !isAbsolute && !isRelative && orig.length() == 2; + const bool isDriveRelative = !needsDrive && !isAbsolute && !isRelative && orig.length() > 2; + QString result; if (needsDrive || isDriveLetter || isDriveRelative || !isAbsolute || orig.isEmpty()) { QFileSystemEntry cur(currentPath()); -- cgit v0.12 From 333b30dc2b3c065dec2c84cf9750a526c2636d34 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 17 Sep 2010 18:23:11 +0100 Subject: Remove UNC paths on symbian, it doesn't support UNC Reviewed-By: joao --- src/corelib/io/qfilesystementry.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index 12de135..bc7f121 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -244,7 +244,10 @@ bool QFileSystemEntry::isAbsolute() const resolveFilePath(); return (!m_filePath.isEmpty() && ((m_filePath.length() >= 3 && (m_filePath[0].isLetter() && m_filePath[1].unicode() == ':' && m_filePath[2].unicode() == '/')) - || (m_filePath.length() >= 2 && (m_filePath.at(0) == QLatin1Char('/') && m_filePath.at(1) == QLatin1Char('/'))))); +#ifdef Q_OS_WIN + || (m_filePath.length() >= 2 && (m_filePath.at(0) == QLatin1Char('/') && m_filePath.at(1) == QLatin1Char('/'))) +#endif + )); } #else bool QFileSystemEntry::isRelative() const -- cgit v0.12 From b22bc06f8dac7723026014ba39a108b198f16d66 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Tue, 21 Sep 2010 14:21:07 +0200 Subject: Make QDirIterator cheaper when constructed with a QDir MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make sure we share the pre-calculated entry and avoid resolving the fileEngine if we know its a native FS based file. Reviewed-by: João Abecasis --- qmake/qmake.pri | 1 + src/corelib/io/io.pri | 1 + src/corelib/io/qdir.cpp | 226 +++++++++++++++++----------------------- src/corelib/io/qdir_p.h | 98 +++++++++++++++++ src/corelib/io/qdiriterator.cpp | 39 ++++--- 5 files changed, 216 insertions(+), 149 deletions(-) create mode 100644 src/corelib/io/qdir_p.h diff --git a/qmake/qmake.pri b/qmake/qmake.pri index 1d35183..889338f 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -98,6 +98,7 @@ bootstrap { #Qt code qdatetime.h \ qdatetime_p.h \ qdir.h \ + qdir_p.h \ qdiriterator.h \ qfile.h \ qabstractfileengine.h \ diff --git a/src/corelib/io/io.pri b/src/corelib/io/io.pri index 9d209ea..f81ffaf 100644 --- a/src/corelib/io/io.pri +++ b/src/corelib/io/io.pri @@ -9,6 +9,7 @@ HEADERS += \ io/qdataurl_p.h \ io/qdebug.h \ io/qdir.h \ + io/qdir_p.h \ io/qdiriterator.h \ io/qfile.h \ io/qfileinfo.h \ diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index e65dc11..5c882fd 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -41,6 +41,7 @@ #include "qplatformdefs.h" #include "qdir.h" +#include "qdir_p.h" #include "qabstractfileengine.h" #ifndef QT_NO_DEBUG_STREAM #include "qdebug.h" @@ -85,153 +86,123 @@ static QString driveSpec(const QString &path) } //************* QDirPrivate -class QDirPrivate - : public QSharedData -{ -public: - QDirPrivate(const QString &path, - const QStringList &nameFilters_ = QStringList(), - QDir::SortFlags sort_ = QDir::SortFlags(QDir::Name | QDir::IgnoreCase), - QDir::Filters filters_ = QDir::AllEntries) - : QSharedData() - , nameFilters(nameFilters_) - , sort(sort_) - , filters(filters_) +QDirPrivate::QDirPrivate(const QString &path, const QStringList &nameFilters_, QDir::SortFlags sort_, QDir::Filters filters_) + : QSharedData() + , nameFilters(nameFilters_) + , sort(sort_) + , filters(filters_) #ifdef QT3_SUPPORT - , filterSepChar(0) - , matchAllDirs(false) + , filterSepChar(0) + , matchAllDirs(false) #endif - , fileListsInitialized(false) - { - setPath(path.isEmpty() ? QString::fromLatin1(".") : path); - - bool empty = nameFilters.isEmpty(); - if (!empty) { - empty = true; - for (int i = 0; i < nameFilters.size(); ++i) { - if (!nameFilters.at(i).isEmpty()) { - empty = false; - break; - } + , fileListsInitialized(false) +{ + setPath(path.isEmpty() ? QString::fromLatin1(".") : path); + + bool empty = nameFilters.isEmpty(); + if (!empty) { + empty = true; + for (int i = 0; i < nameFilters.size(); ++i) { + if (!nameFilters.at(i).isEmpty()) { + empty = false; + break; } } - if (empty) - nameFilters = QStringList(QString::fromLatin1("*")); } + if (empty) + nameFilters = QStringList(QString::fromLatin1("*")); +} - QDirPrivate(const QDirPrivate ©) - : QSharedData(copy) - , nameFilters(copy.nameFilters) - , sort(copy.sort) - , filters(copy.filters) +QDirPrivate::QDirPrivate(const QDirPrivate ©) + : QSharedData(copy) + , nameFilters(copy.nameFilters) + , sort(copy.sort) + , filters(copy.filters) #ifdef QT3_SUPPORT - , filterSepChar(copy.filterSepChar) - , matchAllDirs(copy.matchAllDirs) + , filterSepChar(copy.filterSepChar) + , matchAllDirs(copy.matchAllDirs) #endif - , fileListsInitialized(false) - , dirEntry(copy.dirEntry) - , metaData(copy.metaData) - { - } + , fileListsInitialized(false) + , dirEntry(copy.dirEntry) + , metaData(copy.metaData) +{ +} - bool exists() const - { - if (fileEngine.isNull()) { - if (!metaData.hasFlags(QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType)) - QFileSystemEngine::fillMetaData(dirEntry, metaData, - QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType); - return metaData.exists() && metaData.isDirectory(); - } - const QAbstractFileEngine::FileFlags info = - fileEngine->fileFlags(QAbstractFileEngine::DirectoryType - | QAbstractFileEngine::ExistsFlag - | QAbstractFileEngine::Refresh); - if (!(info & QAbstractFileEngine::DirectoryType)) - return false; - return info & QAbstractFileEngine::ExistsFlag; +bool QDirPrivate::exists() const +{ + if (fileEngine.isNull()) { + if (!metaData.hasFlags(QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType)) + QFileSystemEngine::fillMetaData(dirEntry, metaData, + QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType); + return metaData.exists() && metaData.isDirectory(); } + const QAbstractFileEngine::FileFlags info = + fileEngine->fileFlags(QAbstractFileEngine::DirectoryType + | QAbstractFileEngine::ExistsFlag + | QAbstractFileEngine::Refresh); + if (!(info & QAbstractFileEngine::DirectoryType)) + return false; + return info & QAbstractFileEngine::ExistsFlag; +} - void initFileEngine(); - void initFileLists(const QDir &dir) const; - - static void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *); - - static inline QChar getFilterSepChar(const QString &nameFilter) - { - QChar sep(QLatin1Char(';')); - int i = nameFilter.indexOf(sep, 0); - if (i == -1 && nameFilter.indexOf(QLatin1Char(' '), 0) != -1) - sep = QChar(QLatin1Char(' ')); - return sep; - } +// static +inline QChar QDirPrivate::getFilterSepChar(const QString &nameFilter) +{ + QChar sep(QLatin1Char(';')); + int i = nameFilter.indexOf(sep, 0); + if (i == -1 && nameFilter.indexOf(QLatin1Char(' '), 0) != -1) + sep = QChar(QLatin1Char(' ')); + return sep; +} - static inline QStringList splitFilters(const QString &nameFilter, QChar sep = 0) - { - if (sep == 0) - sep = getFilterSepChar(nameFilter); - QStringList ret = nameFilter.split(sep); - for (int i = 0; i < ret.count(); ++i) - ret[i] = ret[i].trimmed(); - return ret; - } +// static +inline QStringList QDirPrivate::splitFilters(const QString &nameFilter, QChar sep) +{ + if (sep == 0) + sep = getFilterSepChar(nameFilter); + QStringList ret = nameFilter.split(sep); + for (int i = 0; i < ret.count(); ++i) + ret[i] = ret[i].trimmed(); + return ret; +} - inline void setPath(const QString &path) - { - QString p = QDir::fromNativeSeparators(path); - if (p.endsWith(QLatin1Char('/')) - && p.length() > 1 +inline void QDirPrivate::setPath(const QString &path) +{ + QString p = QDir::fromNativeSeparators(path); + if (p.endsWith(QLatin1Char('/')) + && p.length() > 1 #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) - && (!(p.length() == 3 && p.at(1).unicode() == ':' && p.at(0).isLetter())) + && (!(p.length() == 3 && p.at(1).unicode() == ':' && p.at(0).isLetter())) #endif - ) { - p.truncate(p.length() - 1); - } - - dirEntry = QFileSystemEntry(p); - initFileEngine(); - clearFileLists(); - absoluteDirEntry = QFileSystemEntry(); + ) { + p.truncate(p.length() - 1); } - inline void clearFileLists() - { - fileListsInitialized = false; - files.clear(); - fileInfos.clear(); - } - - inline void resolveAbsoluteEntry() const - { - if (!absoluteDirEntry.isEmpty() || dirEntry.isEmpty()) - return; - - if (dirEntry.isRelative()) { - QFileSystemEntry answer = QFileSystemEngine::absoluteName(dirEntry); - absoluteDirEntry = QFileSystemEntry(QDir::cleanPath(answer.filePath())); - } else { - absoluteDirEntry = dirEntry; - } - } - - QStringList nameFilters; - QDir::SortFlags sort; - QDir::Filters filters; - -#ifdef QT3_SUPPORT - QChar filterSepChar; - bool matchAllDirs; -#endif + dirEntry = QFileSystemEntry(p); + initFileEngine(); + clearFileLists(); + absoluteDirEntry = QFileSystemEntry(); +} - QScopedPointer fileEngine; +inline void QDirPrivate::clearFileLists() +{ + fileListsInitialized = false; + files.clear(); + fileInfos.clear(); +} - mutable bool fileListsInitialized; - mutable QStringList files; - mutable QFileInfoList fileInfos; +inline void QDirPrivate::resolveAbsoluteEntry() const +{ + if (!absoluteDirEntry.isEmpty() || dirEntry.isEmpty()) + return; - QFileSystemEntry dirEntry; - mutable QFileSystemEntry absoluteDirEntry; - mutable QFileSystemMetaData metaData; -}; + if (dirEntry.isRelative()) { + QFileSystemEntry answer = QFileSystemEngine::absoluteName(dirEntry); + absoluteDirEntry = QFileSystemEntry(QDir::cleanPath(answer.filePath())); + } else { + absoluteDirEntry = dirEntry; + } +} /* For sorting */ struct QDirSortItem @@ -343,7 +314,6 @@ inline void QDirPrivate::sortFileList(QDir::SortFlags sort, QFileInfoList &l, } } } - inline void QDirPrivate::initFileLists(const QDir &dir) const { if (!fileListsInitialized) { diff --git a/src/corelib/io/qdir_p.h b/src/corelib/io/qdir_p.h new file mode 100644 index 0000000..5f97c1f --- /dev/null +++ b/src/corelib/io/qdir_p.h @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** 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 QtCore 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$ +** +****************************************************************************/ + +#ifndef QDIR_PRIVATE_H +#define QDIR_PRIVATE_H + +#include "qfilesystementry_p.h" +#include "qfilesystemmetadata_p.h" + +QT_BEGIN_NAMESPACE + +class QDirPrivate : public QSharedData +{ +public: + QDirPrivate(const QString &path, const QStringList &nameFilters_ = QStringList(), + QDir::SortFlags sort_ = QDir::SortFlags(QDir::Name | QDir::IgnoreCase), + QDir::Filters filters_ = QDir::AllEntries); + + QDirPrivate(const QDirPrivate ©); + + bool exists() const; + + void initFileEngine(); + void initFileLists(const QDir &dir) const; + + static void sortFileList(QDir::SortFlags, QFileInfoList &, QStringList *, QFileInfoList *); + + static inline QChar getFilterSepChar(const QString &nameFilter); + + static inline QStringList splitFilters(const QString &nameFilter, QChar sep = 0); + + inline void setPath(const QString &path); + + inline void clearFileLists(); + + inline void resolveAbsoluteEntry() const; + + QStringList nameFilters; + QDir::SortFlags sort; + QDir::Filters filters; + +#ifdef QT3_SUPPORT + QChar filterSepChar; + bool matchAllDirs; +#endif + + QScopedPointer fileEngine; + + mutable bool fileListsInitialized; + mutable QStringList files; + mutable QFileInfoList fileInfos; + + QFileSystemEntry dirEntry; + mutable QFileSystemEntry absoluteDirEntry; + mutable QFileSystemMetaData metaData; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index 582fb85..a8192ea 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -90,6 +90,7 @@ */ #include "qdiriterator.h" +#include "qdir_p.h" #include "qabstractfileengine.h" @@ -119,8 +120,8 @@ public: class QDirIteratorPrivate { public: - QDirIteratorPrivate(const QString &path, const QStringList &nameFilters, - QDir::Filters filters, QDirIterator::IteratorFlags flags); + QDirIteratorPrivate(const QFileSystemEntry &entry, const QStringList &nameFilters, + QDir::Filters filters, QDirIterator::IteratorFlags flags, bool resolveEngine = true); void advance(); @@ -131,7 +132,7 @@ public: QScopedPointer engine; - const QString path; + QFileSystemEntry dirEntry; const QStringList nameFilters; const QDir::Filters filters; const QDirIterator::IteratorFlags iteratorFlags; @@ -153,9 +154,9 @@ public: /*! \internal */ -QDirIteratorPrivate::QDirIteratorPrivate(const QString &path, const QStringList &nameFilters, - QDir::Filters filters, QDirIterator::IteratorFlags flags) - : path(path) +QDirIteratorPrivate::QDirIteratorPrivate(const QFileSystemEntry &entry, const QStringList &nameFilters, + QDir::Filters filters, QDirIterator::IteratorFlags flags, bool resolveEngine) + : dirEntry(entry) , nameFilters(nameFilters.contains(QLatin1String("*")) ? QStringList() : nameFilters) , filters(QDir::NoFilter == filters ? QDir::AllEntries : filters) , iteratorFlags(flags) @@ -168,17 +169,10 @@ QDirIteratorPrivate::QDirIteratorPrivate(const QString &path, const QStringList (filters & QDir::CaseSensitive) ? Qt::CaseSensitive : Qt::CaseInsensitive, QRegExp::Wildcard)); #endif - -#ifdef Q_OS_UNIX - QFileSystemEntry fileEntry(path); QFileSystemMetaData metaData; - - engine.reset(QFileSystemEngine::resolveEntryAndCreateLegacyEngine(fileEntry, metaData)); - QFileInfo fileInfo(new QFileInfoPrivate(fileEntry, metaData)); -#else - engine.reset(QAbstractFileEngine::create(path)); - QFileInfo fileInfo(path); -#endif + if (resolveEngine) + engine.reset(QFileSystemEngine::resolveEntryAndCreateLegacyEngine(dirEntry, metaData)); + QFileInfo fileInfo(new QFileInfoPrivate(dirEntry, metaData)); // Populate fields for hasNext() and next() pushDirectory(fileInfo); @@ -411,8 +405,11 @@ bool QDirIteratorPrivate::matchesFilters(const QString &fileName, const QFileInf \sa hasNext(), next(), IteratorFlags */ QDirIterator::QDirIterator(const QDir &dir, IteratorFlags flags) - : d(new QDirIteratorPrivate(dir.path(), dir.nameFilters(), dir.filter(), flags)) { + // little trick to get hold of the QDirPrivate while there is no API on QDir to give it to us + class MyQDir : public QDir { public: const QDirPrivate *priv() const { return d_ptr.constData(); } }; + const QDirPrivate *other = static_cast(&dir)->priv(); + d.reset(new QDirIteratorPrivate(other->dirEntry, other->nameFilters, other->filters, flags, !other->fileEngine.isNull())); } /*! @@ -432,7 +429,7 @@ QDirIterator::QDirIterator(const QDir &dir, IteratorFlags flags) \sa hasNext(), next(), IteratorFlags */ QDirIterator::QDirIterator(const QString &path, QDir::Filters filters, IteratorFlags flags) - : d(new QDirIteratorPrivate(path, QStringList(), filters, flags)) + : d(new QDirIteratorPrivate(QFileSystemEntry(path), QStringList(), filters, flags)) { } @@ -449,7 +446,7 @@ QDirIterator::QDirIterator(const QString &path, QDir::Filters filters, IteratorF \sa hasNext(), next(), IteratorFlags */ QDirIterator::QDirIterator(const QString &path, IteratorFlags flags) - : d(new QDirIteratorPrivate(path, QStringList(), QDir::NoFilter, flags)) + : d(new QDirIteratorPrivate(QFileSystemEntry(path), QStringList(), QDir::NoFilter, flags)) { } @@ -471,7 +468,7 @@ QDirIterator::QDirIterator(const QString &path, IteratorFlags flags) */ QDirIterator::QDirIterator(const QString &path, const QStringList &nameFilters, QDir::Filters filters, IteratorFlags flags) - : d(new QDirIteratorPrivate(path, nameFilters, filters, flags)) + : d(new QDirIteratorPrivate(QFileSystemEntry(path), nameFilters, filters, flags)) { } @@ -552,7 +549,7 @@ QFileInfo QDirIterator::fileInfo() const */ QString QDirIterator::path() const { - return d->path; + return d->dirEntry.filePath(); } QT_END_NAMESPACE -- cgit v0.12 From 49d5e73b52a8830f88041f0c1e726133e791f999 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 22 Sep 2010 11:32:15 +0200 Subject: Fix regression in QDir::cd() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On changing path we always have to clear the metadata as thats from the old directory and we need to re-stat for the new data. Reviewed-by: João Abecasis --- src/corelib/io/qdir.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 5c882fd..c7cf87f 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -179,6 +179,7 @@ inline void QDirPrivate::setPath(const QString &path) } dirEntry = QFileSystemEntry(p); + metaData.clear(); initFileEngine(); clearFileLists(); absoluteDirEntry = QFileSystemEntry(); -- cgit v0.12 From c798fc3bf3ed8551185d0914f25dc7ed6fd123dd Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 22 Sep 2010 12:45:32 +0200 Subject: Fix QDirIterator on Windows XP. The find option "FindExInfoBasic" which queries only the long file nmae is available only on Windows 7 and above. All other version have to use the "FindExInfoStandard" option which queries both short and long file names. Reviewed-by: Joao --- src/corelib/io/qfilesystemiterator_win.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 373a50a..4050199 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -85,17 +85,15 @@ bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaDa if (findFileHandle == INVALID_HANDLE_VALUE && !uncFallback) { haveData = true; + int infoLevel = 0 ; // FindExInfoStandard; DWORD dwAdditionalFlags = 0; - if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) + if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) { dwAdditionalFlags = 2; // FIND_FIRST_EX_LARGE_FETCH + infoLevel = 1 ; // FindExInfoBasic; + } int searchOps = 0; // FindExSearchNameMatch if (onlyDirs) searchOps = 1 ; // FindExSearchLimitToDirectories -#if !defined(Q_OS_WINCE) - int infoLevel = 1 ; // FindExInfoBasic; -#else - int infoLevel = 0; // FindExInfoStandard; -#endif findFileHandle = FindFirstFileEx((const wchar_t *)nativePath.utf16(), FINDEX_INFO_LEVELS(infoLevel), &findData, FINDEX_SEARCH_OPS(searchOps), 0, dwAdditionalFlags); if (findFileHandle == INVALID_HANDLE_VALUE) { -- cgit v0.12 From 9f2aee2a22d5a7c53480cc6c5794293bfe04cf8c Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 22 Sep 2010 13:14:16 +0200 Subject: Remove warnings --- src/corelib/io/qfilesystemengine_unix.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 8724b15..0672490 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -102,6 +102,7 @@ static inline bool _q_isMacHidden(const char *nativePath) #else static inline bool _q_isMacHidden(const char *nativePath) { + Q_UNUSED(nativePath); // no-op return false; } @@ -294,6 +295,8 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) return QCFString::toQString((CFStringRef)name); } } +#else + Q_UNUSED(entry); #endif return QString(); } -- cgit v0.12 From db9fb7195155f4ec929ae4ac73c5c5d4422e5aa6 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 22 Sep 2010 14:00:55 +0200 Subject: Implement unix permissions setting MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemengine_unix.cpp | 29 +++++++++++++++++- src/corelib/io/qfsfileengine_unix.cpp | 49 +++++-------------------------- 2 files changed, 36 insertions(+), 42 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 0672490..e85eb00 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -43,6 +43,7 @@ #include "qfilesystemengine_p.h" #include "qplatformdefs.h" #include "qfsfileengine.h" +#include "qfile.h" #include // for realpath() #include @@ -548,7 +549,33 @@ bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) //static bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data) { - return false; // TODO implement; + mode_t mode = 0; + if (permissions & QFile::ReadOwner) + mode |= S_IRUSR; + if (permissions & QFile::WriteOwner) + mode |= S_IWUSR; + if (permissions & QFile::ExeOwner) + mode |= S_IXUSR; + if (permissions & QFile::ReadUser) + mode |= S_IRUSR; + if (permissions & QFile::WriteUser) + mode |= S_IWUSR; + if (permissions & QFile::ExeUser) + mode |= S_IXUSR; + if (permissions & QFile::ReadGroup) + mode |= S_IRGRP; + if (permissions & QFile::WriteGroup) + mode |= S_IWGRP; + if (permissions & QFile::ExeGroup) + mode |= S_IXGRP; + if (permissions & QFile::ReadOther) + mode |= S_IROTH; + if (permissions & QFile::WriteOther) + mode |= S_IWOTH; + if (permissions & QFile::ExeOther) + mode |= S_IXOTH; + + return ::chmod(entry.nativeFilePath().constData(), mode) == 0; } QString QFileSystemEngine::homePath() diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 84054d8..7b7cd7f 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -938,18 +938,23 @@ QString QFSFileEngine::owner(FileOwner own) const return QString(); } -#ifdef Q_OS_SYMBIAN bool QFSFileEngine::setPermissions(uint perms) { Q_D(QFSFileEngine); - //TODO: connect up error reporting properly if (!QFileSystemEngine::setPermissions(d->fileEntry, QFile::Permissions(perms), 0)) { - setError(QFile::PermissionsError, QString()); + setError(QFile::PermissionsError, +#ifdef Q_OS_SYMBIAN + //TODO: connect up error reporting properly + QString()); +#else + qt_error_string(errno)); +#endif return false; } return true; } +#ifdef Q_OS_SYMBIAN bool QFSFileEngine::setSize(qint64 size) { Q_D(QFSFileEngine); @@ -983,44 +988,6 @@ bool QFSFileEngine::setSize(qint64 size) return ret; } #else -bool QFSFileEngine::setPermissions(uint perms) -{ - Q_D(QFSFileEngine); - bool ret = false; - mode_t mode = 0; - if (perms & ReadOwnerPerm) - mode |= S_IRUSR; - if (perms & WriteOwnerPerm) - mode |= S_IWUSR; - if (perms & ExeOwnerPerm) - mode |= S_IXUSR; - if (perms & ReadUserPerm) - mode |= S_IRUSR; - if (perms & WriteUserPerm) - mode |= S_IWUSR; - if (perms & ExeUserPerm) - mode |= S_IXUSR; - if (perms & ReadGroupPerm) - mode |= S_IRGRP; - if (perms & WriteGroupPerm) - mode |= S_IWGRP; - if (perms & ExeGroupPerm) - mode |= S_IXGRP; - if (perms & ReadOtherPerm) - mode |= S_IROTH; - if (perms & WriteOtherPerm) - mode |= S_IWOTH; - if (perms & ExeOtherPerm) - mode |= S_IXOTH; - if (d->fd != -1) - ret = fchmod(d->fd, mode) == 0; - else - ret = ::chmod(d->fileEntry.nativeFilePath().constData(), mode) == 0; - if (!ret) - setError(QFile::PermissionsError, qt_error_string(errno)); - return ret; -} - bool QFSFileEngine::setSize(qint64 size) { Q_D(QFSFileEngine); -- cgit v0.12 From 43866e6a2709c8098de0dfb0e51177042f046c52 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Wed, 22 Sep 2010 15:16:02 +0200 Subject: Test 'QDir::cd' a bit better --- tests/auto/qdir/tst_qdir.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 554b685..2bb0a3e 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -937,6 +937,7 @@ void tst_QDir::cd() QFETCH(QString, newDir); QDir d = startDir; + bool notUsed = d.exists(); // make sure we cache this before so we can see if 'cd' fails to flush this QCOMPARE(d.cd(cdDir), successExpected); if (successExpected) QCOMPARE(d.absolutePath(), newDir); -- cgit v0.12 From ecd4dfd5edef036a87ecd354f21d81f3f0a40f0e Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 22 Sep 2010 17:47:38 +0200 Subject: Fix QDir autotests on Windows The QFileSystemMetaData is reused when enumerating directories. Clear this content before filling it with the WIN32_FIND_DATA. Reviewed-by: Joao --- src/corelib/io/qfilesystemiterator_win.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 4050199..0be6413 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -130,6 +130,7 @@ bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaDa QString fileName = QString::fromWCharArray(findData.cFileName); fileEntry = QFileSystemEntry(dirPath + fileName); if (!fileName.endsWith(QLatin1String(".lnk"))) { + metaData = QFileSystemMetaData(); metaData.fillFromFindData(findData, true); } return true; -- cgit v0.12 From 584416b0d95063b761c6b81dbeaae325818dd9af Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 22 Sep 2010 17:47:38 +0200 Subject: Fix QDir autotests on Windows The QFileSystemMetaData is reused when enumerating directories. Clear this content before filling it with the WIN32_FIND_DATA. Reviewed-by: Joao --- src/corelib/io/qfilesystemiterator_win.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 0be6413..5fc64e4 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -129,6 +129,7 @@ bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaDa } else { QString fileName = QString::fromWCharArray(findData.cFileName); fileEntry = QFileSystemEntry(dirPath + fileName); + metaData = QFileSystemMetaData(); if (!fileName.endsWith(QLatin1String(".lnk"))) { metaData = QFileSystemMetaData(); metaData.fillFromFindData(findData, true); -- cgit v0.12 From 0ad8e783a9a60c8a77ceb2648f54cdba79c328c5 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 22 Sep 2010 17:58:11 +0200 Subject: Remove an extra initialization Reviewed-by: Joao --- src/corelib/io/qfilesystemiterator_win.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 5fc64e4..62912a6 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -131,7 +131,6 @@ bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaDa fileEntry = QFileSystemEntry(dirPath + fileName); metaData = QFileSystemMetaData(); if (!fileName.endsWith(QLatin1String(".lnk"))) { - metaData = QFileSystemMetaData(); metaData.fillFromFindData(findData, true); } return true; -- cgit v0.12 From d7df693b54337ea5050391751ae3243cee2f9159 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Thu, 23 Sep 2010 10:05:33 +0200 Subject: Force uppercase for drive letters in QDir::currentPath() on Windows. This was done previously for helping file dialogs and other UI elements using the path. So we need to retain this old behavior. Reviewed-by: Joao --- src/corelib/io/qfilesystemengine_win.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index cef7236..1aba4a7 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -1154,6 +1154,8 @@ QFileSystemEntry QFileSystemEngine::currentPath() ret = QString::fromWCharArray(currentName, size); } } + if (ret.length() >= 2 && ret[1] == QLatin1Char(':')) + ret[0] = ret.at(0).toUpper(); // Force uppercase drive letters. #else Q_UNUSED(fileName); //TODO - a race condition exists when using currentPath / setCurrentPath from multiple threads -- cgit v0.12 From 52090d6e292c165bfb08140c28068b796e295b10 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Thu, 23 Sep 2010 11:14:01 +0200 Subject: Make setPermissions update meta MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit in the unix QFileSystemEngine::setPermissions we now update the QFileSystemMetaData instance passed in on success, to avoid another stat later. Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemengine_unix.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index e85eb00..060cf25 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -575,7 +575,13 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per if (permissions & QFile::ExeOther) mode |= S_IXOTH; - return ::chmod(entry.nativeFilePath().constData(), mode) == 0; + bool success = ::chmod(entry.nativeFilePath().constData(), mode) == 0; + if (success && data) { + data->entryFlags &= ~QFileSystemMetaData::Permissions; + data->entryFlags |= QFileSystemMetaData::MetaDataFlag(uint(permissions)); + data->knownFlagsMask |= QFileSystemMetaData::Permissions; + } + return success; } QString QFileSystemEngine::homePath() -- cgit v0.12 From 59491b5cb9c7dc54f701ba19185fede58a7355db Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Thu, 23 Sep 2010 11:33:38 +0200 Subject: Mark the QFileSystemEngine::copyFile/unix done. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There is no native implementation for this (the old FSFilesystemEngine never had one either) so no code to move. Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemengine_unix.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 060cf25..c17d4c7 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -531,7 +531,10 @@ bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSy //static bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target) { - return false; // TODO implement; + Q_UNUSED(source); + Q_UNUSED(target); + // # we can implement this using sendfile(2) + return false; } //static -- cgit v0.12 From 2645784f05db7b1e631621c511e94c88fc5cd211 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Thu, 23 Sep 2010 16:10:46 +0200 Subject: Move resolving names to qfilesystemengine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolve username and group names code is now in the QFileSystemEngine Reviewed-by: João Abecasis --- src/corelib/io/qfilesystemengine_unix.cpp | 53 +++++++++++++++++++++++++++++-- src/corelib/io/qfsfileengine_unix.cpp | 47 ++------------------------- 2 files changed, 54 insertions(+), 46 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index c17d4c7..1dee09b 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -45,6 +45,8 @@ #include "qfsfileengine.h" #include "qfile.h" +#include + #include // for realpath() #include #include @@ -275,13 +277,60 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) //static QString QFileSystemEngine::resolveUserName(uint userId) { - return QString(); // TODO +#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) + int size_max = sysconf(_SC_GETPW_R_SIZE_MAX); + if (size_max == -1) + size_max = 1024; + QVarLengthArray buf(size_max); +#endif + + struct passwd *pw = 0; +#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) + struct passwd entry; + getpwuid_r(userId, &entry, buf.data(), buf.size(), &pw); +#else + pw = getpwuid(userId); +#endif + if (pw) + return QFile::decodeName(QByteArray(pw->pw_name)); + return QString(); } //static QString QFileSystemEngine::resolveGroupName(uint groupId) { - return QString(); // TODO +#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) + int size_max = sysconf(_SC_GETPW_R_SIZE_MAX); + if (size_max == -1) + size_max = 1024; + QVarLengthArray buf(size_max); +#endif + +#if !defined(Q_OS_SYMBIAN) + struct group *gr = 0; +#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) + size_max = sysconf(_SC_GETGR_R_SIZE_MAX); + if (size_max == -1) + size_max = 1024; + buf.resize(size_max); + struct group entry; + // Some large systems have more members than the POSIX max size + // Loop over by doubling the buffer size (upper limit 250k) + for (unsigned size = size_max; size < 256000; size += size) + { + buf.resize(size); + // ERANGE indicates that the buffer was too small + if (!getgrgid_r(groupId, &entry, buf.data(), buf.size(), &gr) + || errno != ERANGE) + break; + } +#else + gr = getgrgid(groupId); +#endif + if (gr) + return QFile::decodeName(QByteArray(gr->gr_name)); +#endif + return QString(); } //static diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 7b7cd7f..0845cb3 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -892,50 +892,9 @@ uint QFSFileEngine::ownerId(FileOwner own) const QString QFSFileEngine::owner(FileOwner own) const { -#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) - int size_max = sysconf(_SC_GETPW_R_SIZE_MAX); - if (size_max == -1) - size_max = 1024; - QVarLengthArray buf(size_max); -#endif - - if (own == OwnerUser) { - struct passwd *pw = 0; -#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) - struct passwd entry; - getpwuid_r(ownerId(own), &entry, buf.data(), buf.size(), &pw); -#else - pw = getpwuid(ownerId(own)); -#endif - if (pw) - return QFile::decodeName(QByteArray(pw->pw_name)); - } else if (own == OwnerGroup) { -#if !defined(Q_OS_SYMBIAN) - struct group *gr = 0; -#if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) - size_max = sysconf(_SC_GETGR_R_SIZE_MAX); - if (size_max == -1) - size_max = 1024; - buf.resize(size_max); - struct group entry; - // Some large systems have more members than the POSIX max size - // Loop over by doubling the buffer size (upper limit 250k) - for (unsigned size = size_max; size < 256000; size += size) - { - buf.resize(size); - // ERANGE indicates that the buffer was too small - if (!getgrgid_r(ownerId(own), &entry, buf.data(), buf.size(), &gr) - || errno != ERANGE) - break; - } -#else - gr = getgrgid(ownerId(own)); -#endif - if (gr) - return QFile::decodeName(QByteArray(gr->gr_name)); -#endif - } - return QString(); + if (own == OwnerUser) + return QFileSystemEngine::resolveUserName(ownerId(own)); + return QFileSystemEngine::resolveGroupName(ownerId(own)); } bool QFSFileEngine::setPermissions(uint perms) -- cgit v0.12 From 838ed9c68aef4d5a4f0b4d4dbbc1c1f7797cde91 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 29 Sep 2010 12:05:50 +0200 Subject: Compile fixes for windows --- qmake/Makefile.win32 | 1 - src/corelib/io/qfilesystemengine_win.cpp | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index 9b86215..4333d45 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -89,7 +89,6 @@ QTOBJS= \ qabstractfileengine.obj \ qfsfileengine_win.obj \ qsystemlibrary.obj \ - qfsfileengine_iterator_win.obj \ qfileinfo.obj \ qglobal.obj \ qhash.obj \ diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 8fd0919..b164044 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -45,7 +45,7 @@ #include "qplatformdefs.h" #include "qabstractfileengine.h" #include "private/qfsfileengine_p.h" -#include "qfilesystemengine_p.h" +#include #include #include "qfile.h" -- cgit v0.12 From 71f04c22f128a52353f0a53d6d118375c0e99e33 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Thu, 7 Oct 2010 12:50:21 +0200 Subject: Compile fixes for mingw --- qmake/Makefile.win32-g++-sh | 4 +++ src/corelib/io/qfilesystemengine_win.cpp | 53 ------------------------------ src/corelib/io/qfilesystemiterator_win.cpp | 4 +-- src/corelib/io/qfilesystemmetadata_p.h | 53 ++++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 55 deletions(-) diff --git a/qmake/Makefile.win32-g++-sh b/qmake/Makefile.win32-g++-sh index 97be5b5..2530fe8 100644 --- a/qmake/Makefile.win32-g++-sh +++ b/qmake/Makefile.win32-g++-sh @@ -62,6 +62,7 @@ QTOBJS= \ qfileinfo.o \ qabstractfileengine.o \ qfilesystementry.o \ + qfilesystemengine.o \ qfilesystemengine_win.o \ qfilesystemiterator_win.o \ qfsfileengine.o \ @@ -197,6 +198,9 @@ qabstractfileengine.o: $(SOURCE_PATH)/src/corelib/io/qabstractfileengine.cpp qfilesystementry.o: $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystementry.cpp +qfilesystemengine.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine.cpp + qfilesystemengine_win.o: $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qfilesystemengine_win.cpp diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index b164044..1f7a9b9 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -421,59 +421,6 @@ bool QFileSystemEngine::uncListSharesOnServer(const QString &server, QStringList return false; } -void QFileSystemMetaData::fillFromFileAttribute(DWORD fileAttribute,bool isDriveRoot) -{ - fileAttribute_ = fileAttribute; - // Ignore the hidden attribute for drives. - if (!isDriveRoot && (fileAttribute_ & FILE_ATTRIBUTE_HIDDEN)) - entryFlags |= HiddenAttribute; - entryFlags |= ((fileAttribute & FILE_ATTRIBUTE_DIRECTORY) ? DirectoryType: FileType); - entryFlags |= ExistsAttribute; - knownFlagsMask |= FileType | DirectoryType | HiddenAttribute | ExistsAttribute; -} - -void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType, bool isDriveRoot) -{ - fillFromFileAttribute(findData.dwFileAttributes, isDriveRoot); - creationTime_ = findData.ftCreationTime; - lastAccessTime_ = findData.ftLastAccessTime; - lastWriteTime_ = findData.ftLastWriteTime; - if (fileAttribute_ & FILE_ATTRIBUTE_DIRECTORY) { - size_ = 0; - } else { - size_ = findData.nFileSizeHigh; - size_ <<= 32; - size_ += findData.nFileSizeLow; - } - knownFlagsMask |= Times | SizeAttribute; - if (setLinkType) { - knownFlagsMask |= LinkType; - entryFlags &= ~LinkType; - if ((fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) - && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK - || findData.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT)) { - entryFlags |= LinkType; - } - - } -} - -void QFileSystemMetaData::fillFromFindInfo(BY_HANDLE_FILE_INFORMATION &fileInfo) -{ - fillFromFileAttribute(fileInfo.dwFileAttributes); - creationTime_ = fileInfo.ftCreationTime; - lastAccessTime_ = fileInfo.ftLastAccessTime; - lastWriteTime_ = fileInfo.ftLastWriteTime; - if (fileAttribute_ & FILE_ATTRIBUTE_DIRECTORY) { - size_ = 0; - } else { - size_ = fileInfo.nFileSizeHigh; - size_ <<= 32; - size_ += fileInfo.nFileSizeLow; - } - knownFlagsMask |= Times | SizeAttribute; -} - void QFileSystemEngine::clearWinStatData(QFileSystemMetaData &data) { data.size_ = 0; diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 62912a6..9181789 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -66,8 +66,8 @@ QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Fi if (!nativePath.endsWith(QLatin1Char('\\'))) nativePath.append(QLatin1Char('\\')); nativePath.append(QLatin1Char('*')); - if (!dirPath.endsWith(QLatin1Char('//'))) - dirPath.append(QLatin1Char('//')); + if (!dirPath.endsWith(QLatin1Char('/'))) + dirPath.append(QLatin1Char('/')); if ((filters & (QDir::Dirs|QDir::Drives)) && (!(filters & (QDir::Files)))) onlyDirs = true; } diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 29ef987..24dfe6b 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -336,6 +336,59 @@ inline uint QFileSystemMetaData::ownerId(QAbstractFileEngine::FileOwner owner) c else return groupId(); } + +inline void QFileSystemMetaData::fillFromFileAttribute(DWORD fileAttribute,bool isDriveRoot) +{ + fileAttribute_ = fileAttribute; + // Ignore the hidden attribute for drives. + if (!isDriveRoot && (fileAttribute_ & FILE_ATTRIBUTE_HIDDEN)) + entryFlags |= HiddenAttribute; + entryFlags |= ((fileAttribute & FILE_ATTRIBUTE_DIRECTORY) ? DirectoryType: FileType); + entryFlags |= ExistsAttribute; + knownFlagsMask |= FileType | DirectoryType | HiddenAttribute | ExistsAttribute; +} + +inline void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, bool setLinkType, bool isDriveRoot) +{ + fillFromFileAttribute(findData.dwFileAttributes, isDriveRoot); + creationTime_ = findData.ftCreationTime; + lastAccessTime_ = findData.ftLastAccessTime; + lastWriteTime_ = findData.ftLastWriteTime; + if (fileAttribute_ & FILE_ATTRIBUTE_DIRECTORY) { + size_ = 0; + } else { + size_ = findData.nFileSizeHigh; + size_ <<= 32; + size_ += findData.nFileSizeLow; + } + knownFlagsMask |= Times | SizeAttribute; + if (setLinkType) { + knownFlagsMask |= LinkType; + entryFlags &= ~LinkType; + if ((fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) + && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK + || findData.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT)) { + entryFlags |= LinkType; + } + + } +} + +inline void QFileSystemMetaData::fillFromFindInfo(BY_HANDLE_FILE_INFORMATION &fileInfo) +{ + fillFromFileAttribute(fileInfo.dwFileAttributes); + creationTime_ = fileInfo.ftCreationTime; + lastAccessTime_ = fileInfo.ftLastAccessTime; + lastWriteTime_ = fileInfo.ftLastWriteTime; + if (fileAttribute_ & FILE_ATTRIBUTE_DIRECTORY) { + size_ = 0; + } else { + size_ = fileInfo.nFileSizeHigh; + size_ <<= 32; + size_ += fileInfo.nFileSizeLow; + } + knownFlagsMask |= Times | SizeAttribute; +} #endif QT_END_NAMESPACE -- cgit v0.12 From b7bc57cca9e34d3622afc1c1a9ff322024f350df Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 4 Oct 2010 13:22:25 +0100 Subject: Implement error reporting for file APIs Part of the refactoring broke error reporting (false would be return on failure, but the QFile::error() would not return the right thing) A string is passed to the QFileSystemEngine functions which need to return an error, and filled in via the error code when a function fails. For windows, this is GetLastError() as for the previous workaround For unix, this is errno, as for the previous workaround For symbian, this is the integer error code returned by the function Reviewed-By: Thomas Zander Reviewed-By: Prasanth Ullattil --- src/corelib/io/qfilesystemengine_p.h | 13 ++- src/corelib/io/qfilesystemengine_symbian.cpp | 92 +++++++++++++++-- src/corelib/io/qfilesystemengine_unix.cpp | 29 ++++-- src/corelib/io/qfilesystemengine_win.cpp | 22 ++-- src/corelib/io/qfsfileengine_unix.cpp | 55 +++------- src/corelib/io/qfsfileengine_win.cpp | 20 ++-- src/s60installs/bwins/QtCoreu.def | 51 ++++++++- src/s60installs/bwins/QtDeclarativeu.def | 137 ++----------------------- src/s60installs/bwins/QtGuiu.def | 1 - src/s60installs/eabi/QtCoreu.def | 1 - src/s60installs/eabi/QtDeclarativeu.def | 148 ++------------------------- src/s60installs/eabi/QtGuiu.def | 1 - 12 files changed, 214 insertions(+), 356 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 20b664d..f4d942a 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -91,6 +91,9 @@ public: static QString owner(const QFileSystemEntry &entry, QAbstractFileEngine::FileOwner own); static QString nativeAbsoluteFilePath(const QString &path); #endif +#ifdef Q_OS_SYMBIAN + static QString errorString(int errorcode); +#endif //homePath, rootPath and tempPath shall return clean paths static QString homePath(); static QString rootPath(); @@ -99,13 +102,13 @@ public: static bool createDirectory(const QFileSystemEntry &entry, bool createParents); static bool removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents); - static bool createLink(const QFileSystemEntry &source, const QFileSystemEntry &target); + static bool createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString); - static bool copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target); - static bool renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target); - static bool removeFile(const QFileSystemEntry &entry); + static bool copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString); + static bool renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString); + static bool removeFile(const QFileSystemEntry &entry, QString &errorString); - static bool setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, + static bool setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QString &errorString, QFileSystemMetaData *data = 0); static bool setCurrentPath(const QFileSystemEntry &entry); diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index efb3539..1e6f277 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -282,49 +282,56 @@ bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool remo } //static -bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target) +bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) { Q_UNUSED(source) Q_UNUSED(target) + errorString = QLatin1String("not supported"); return false; } //static -bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) { - //TODO: review - should this be a singleton? + //CFileMan is allocated each time because it is not thread-safe CFileMan *fm = 0; TRAPD(err, fm = CFileMan::NewL(qt_s60GetRFs())); - if(err == KErrNone) { + if (err == KErrNone) { err = fm->Copy(qt_QString2TPtrC(source.nativeFilePath()), qt_QString2TPtrC(target.nativeFilePath()), 0); delete fm; return true; } - //TODO: error reporting d->setSymbianError(err, QFile::CopyError); + errorString = QFileSystemEngine::errorString(err); return false; } //static -bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) { QString sourcepath = absoluteName(source).nativeFilePath(); QString targetpath = absoluteName(target).nativeFilePath(); RFs& fs(qt_s60GetRFs()); TInt err = fs.Rename(qt_QString2TPtrC(sourcepath), qt_QString2TPtrC(targetpath)); - return err == KErrNone; // TODO error reporting; + if (err == KErrNone) + return true; + errorString = QFileSystemEngine::errorString(err); + return false; } //static -bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) +bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry, QString &errorString) { QString targetpath = absoluteName(entry).nativeFilePath(); RFs& fs(qt_s60GetRFs()); TInt err = fs.Delete(qt_QString2TPtrC(targetpath)); - return err == KErrNone; // TODO error reporting; + if (err == KErrNone) + return true; + errorString = QFileSystemEngine::errorString(err); + return false; } //static -bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data) +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QString &errorString, QFileSystemMetaData *data) { QString targetpath = absoluteName(entry).nativeFilePath(); TUint setmask = 0; @@ -340,7 +347,10 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per data->entryFlags |= QFileSystemMetaData::MetaDataFlag(uint(permissions)); data->knownFlagsMask |= QFileSystemMetaData::Permissions; } - return err == KErrNone; // TODO error reporting + if (err == KErrNone) + return true; + errorString = QFileSystemEngine::errorString(err); + return false; } QString QFileSystemEngine::homePath() @@ -405,4 +415,64 @@ QFileSystemEntry QFileSystemEngine::currentPath() return ret; } +QString QFileSystemEngine::errorString(int errorcode) +{ + switch (errorcode) { + case KErrNotFound: + return QLatin1String("not found"); + case KErrCancel: + return QLatin1String("cancelled"); + case KErrNoMemory: + return QLatin1String("out of memory"); + case KErrNotSupported: + return QLatin1String("not supported"); + case KErrBadHandle: + return QLatin1String("bad handle"); //KERN-EXEC 0 panic is more likely + case KErrAlreadyExists: + return QLatin1String("already exists"); + case KErrPathNotFound: + return QLatin1String("path not found"); + case KErrInUse: + return QLatin1String("in use"); + case KErrNotReady: + return QLatin1String("not ready (e.g. FS dismounted, no memory card)"); + case KErrCorrupt: + return QLatin1String("corrupt"); + case KErrAccessDenied: + return QLatin1String("access denied"); + case KErrLocked: + return QLatin1String("locked"); + case KErrWrite: + return QLatin1String("incomplete write error"); + case KErrDisMounted: + return QLatin1String("file system dismounted during operation"); //i.e. a forcible dismount was done while we had files open + case KErrEof: + return QLatin1String("end of file"); + case KErrDiskFull: + return QLatin1String("no space in file system"); + case KErrBadName: + return QLatin1String("invalid filename"); + case KErrTimedOut: + return QLatin1String("timed out"); + case KErrBadDescriptor: + return QLatin1String("bad descriptor (passed address on stack to async call?)"); + case KErrAbort: + return QLatin1String("aborted"); + case KErrTooBig: + return QLatin1String("too big"); //e.g. trying to open a >2GB file with 32 bit API + case KErrBadPower: + return QLatin1String("insufficient power"); + case KErrDirFull: + return QLatin1String("no space in directory table"); + case KErrHardwareNotAvailable: + return QLatin1String("hardware not available"); + case KErrSessionClosed: + return QLatin1String("session closed"); + case KErrPermissionDenied: + return QLatin1String("permission denied"); + default: + return QString(QLatin1String("symbian error %d")).arg(errorcode); + } +} + QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 1dee09b..7c733c4 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -572,34 +572,45 @@ bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool remo } //static -bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target) +bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) { - return (::symlink(source.nativeFilePath().constData(), target.nativeFilePath().constData()) == 0); + if (::symlink(source.nativeFilePath().constData(), target.nativeFilePath().constData()) == 0) + return true; + errorString = qt_error_string(errno); + return false; } //static -bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) { Q_UNUSED(source); Q_UNUSED(target); // # we can implement this using sendfile(2) + errorString = QLatin1String("Not implemented!") return false; } //static -bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) { - return (::rename(source.nativeFilePath().constData(), target.nativeFilePath().constData()) == 0); + if (::rename(source.nativeFilePath().constData(), target.nativeFilePath().constData()) == 0) + return true; + errorString = qt_error_string(errno); + return false; } //static -bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) +bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry, QString &errorString) { - return (unlink(entry.nativeFilePath().constData()) == 0); + if (unlink(entry.nativeFilePath().constData()) == 0) + return true; + errorString = qt_error_string(errno); + return false; + } //static -bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QFileSystemMetaData *data) +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QString &errorString, QFileSystemMetaData *data) { mode_t mode = 0; if (permissions & QFile::ReadOwner) @@ -633,6 +644,8 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per data->entryFlags |= QFileSystemMetaData::MetaDataFlag(uint(permissions)); data->knownFlagsMask |= QFileSystemMetaData::Permissions; } + if (!success) + errorString = qt_error_string(errno); return success; } diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 1f7a9b9..5cc7395 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -1115,36 +1115,43 @@ QFileSystemEntry QFileSystemEngine::currentPath() } //static -bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target) +bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) { + errorString = QLatin1String("not implemented"); return false; // TODO implement; } //static -bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) { bool ret = ::CopyFile((wchar_t*)source.nativeFilePath().utf16(), (wchar_t*)target.nativeFilePath().utf16(), true) != 0; + if(!ret) + errorString = qt_error_string(::GetLastError()); return ret; } //static -bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target) +bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) { bool ret = ::MoveFile((wchar_t*)source.nativeFilePath().utf16(), (wchar_t*)target.nativeFilePath().utf16()) != 0; + if(!ret) + errorString = qt_error_string(::GetLastError()); return ret; } //static -bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry) +bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry, QString &errorString) { bool ret = ::DeleteFile((wchar_t*)entry.nativeFilePath().utf16()) != 0; + if(!ret) + errorString = qt_error_string(::GetLastError()); return ret; } //static -bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QString &errorString, QFileSystemMetaData *data) { Q_UNUSED(data); @@ -1160,7 +1167,10 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per if (mode == 0) // not supported return false; - return ::_wchmod((wchar_t*)entry.nativeFilePath().utf16(), mode) == 0; + bool ret = (::_wchmod((wchar_t*)entry.nativeFilePath().utf16(), mode) == 0); + if(!ret) + errorString = qt_error_string(errno); + return ret; } static inline QDateTime fileTimeToQDateTime(const FILETIME *time) diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 0845cb3..acb58a5 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -588,15 +588,11 @@ bool QFSFileEnginePrivate::nativeIsSequential() const bool QFSFileEngine::remove() { Q_D(QFSFileEngine); - bool ret = QFileSystemEngine::removeFile(d->fileEntry); + QString errorString; + bool ret = QFileSystemEngine::removeFile(d->fileEntry, errorString); d->metaData.clear(); if (!ret) { -#ifdef Q_OS_SYMBIAN - //TODO: error reporting - d->setSymbianError(KErrGeneral, QFile::RemoveError, QLatin1String("remove error")); -#else - setError(QFile::RemoveError, qt_error_string(errno)); -#endif + setError(QFile::RemoveError, errorString); } return ret; } @@ -604,16 +600,10 @@ bool QFSFileEngine::remove() bool QFSFileEngine::copy(const QString &newName) { Q_D(QFSFileEngine); - bool ret = QFileSystemEngine::copyFile(d->fileEntry, QFileSystemEntry(newName)); + QString error; + bool ret = QFileSystemEngine::copyFile(d->fileEntry, QFileSystemEntry(newName), error); if (!ret) { -#ifdef Q_OS_SYMBIAN - //TODO: error reporting - d->setSymbianError(KErrGeneral, QFile::CopyError, QLatin1String("copy error")); -#else - // ### Add copy code for Unix to the filesystem engine - setError(QFile::UnspecifiedError, QLatin1String("Not implemented!")); - //setError(QFile::CopyError, qt_error_string(errno)); -#endif + setError(QFile::CopyError, error); } return ret; } @@ -621,15 +611,11 @@ bool QFSFileEngine::copy(const QString &newName) bool QFSFileEngine::rename(const QString &newName) { Q_D(QFSFileEngine); - bool ret = QFileSystemEngine::renameFile(d->fileEntry, QFileSystemEntry(newName)); + QString error; + bool ret = QFileSystemEngine::renameFile(d->fileEntry, QFileSystemEntry(newName), error); if (!ret) { -#ifdef Q_OS_SYMBIAN - //TODO: error reporting - d->setSymbianError(KErrGeneral, QFile::RenameError, QLatin1String("rename error")); -#else - setError(QFile::RenameError, qt_error_string(errno)); -#endif + setError(QFile::RenameError, error); } return ret; @@ -638,14 +624,10 @@ bool QFSFileEngine::rename(const QString &newName) bool QFSFileEngine::link(const QString &newName) { Q_D(QFSFileEngine); - bool ret = QFileSystemEngine::createLink(d->fileEntry, QFileSystemEntry(newName)); + QString error; + bool ret = QFileSystemEngine::createLink(d->fileEntry, QFileSystemEntry(newName), error); if (!ret) { -#ifdef Q_OS_SYMBIAN - //TODO: error reporting - d->setSymbianError(KErrNotSupported, QFile::RenameError, QLatin1String("not supported")); -#else - setError(QFile::RenameError, qt_error_string(errno)); -#endif + setError(QFile::RenameError, error); } return ret; } @@ -900,14 +882,9 @@ QString QFSFileEngine::owner(FileOwner own) const bool QFSFileEngine::setPermissions(uint perms) { Q_D(QFSFileEngine); - if (!QFileSystemEngine::setPermissions(d->fileEntry, QFile::Permissions(perms), 0)) { - setError(QFile::PermissionsError, -#ifdef Q_OS_SYMBIAN - //TODO: connect up error reporting properly - QString()); -#else - qt_error_string(errno)); -#endif + QString error; + if (!QFileSystemEngine::setPermissions(d->fileEntry, QFile::Permissions(perms), error, 0)) { + setError(QFile::PermissionsError, error); return false; } return true; @@ -940,7 +917,7 @@ bool QFSFileEngine::setSize(qint64 size) } if (!ret) { if (err) - d->setSymbianError(err, QFile::ResizeError, QString()); + setError(QFile::ResizeError, QFileSystemEngine::errorString(err)); else setError(QFile::ResizeError, qt_error_string(errno)); } diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index b2009c3..63f2a9f 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -503,27 +503,30 @@ bool QFSFileEnginePrivate::nativeIsSequential() const bool QFSFileEngine::remove() { Q_D(QFSFileEngine); - bool ret = QFileSystemEngine::removeFile(d->fileEntry); + QString error; + bool ret = QFileSystemEngine::removeFile(d->fileEntry, error); if (!ret) - setError(QFile::RemoveError, qt_error_string()); + setError(QFile::RemoveError, error); return ret; } bool QFSFileEngine::copy(const QString ©Name) { Q_D(QFSFileEngine); - bool ret = QFileSystemEngine::copyFile(d->fileEntry, QFileSystemEntry(copyName)); + QString error; + bool ret = QFileSystemEngine::copyFile(d->fileEntry, QFileSystemEntry(copyName), error); if (!ret) - setError(QFile::CopyError, qt_error_string()); + setError(QFile::CopyError, error); return ret; } bool QFSFileEngine::rename(const QString &newName) { Q_D(QFSFileEngine); - bool ret = QFileSystemEngine::renameFile(d->fileEntry, QFileSystemEntry(newName)); + QString error; + bool ret = QFileSystemEngine::renameFile(d->fileEntry, QFileSystemEntry(newName), error); if (!ret) - setError(QFile::RenameError, qt_error_string()); + setError(QFile::RenameError, error); return ret; } @@ -851,9 +854,10 @@ QString QFSFileEngine::owner(FileOwner own) const bool QFSFileEngine::setPermissions(uint perms) { Q_D(QFSFileEngine); - bool ret = QFileSystemEngine::setPermissions(d->fileEntry, QFile::Permissions(perms)); + QString error; + bool ret = QFileSystemEngine::setPermissions(d->fileEntry, QFile::Permissions(perms), error); if (!ret) - setError(QFile::PermissionsError, qt_error_string(errno)); + setError(QFile::PermissionsError, error); return ret; } diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def index 5eeb244..052ec9a 100644 --- a/src/s60installs/bwins/QtCoreu.def +++ b/src/s60installs/bwins/QtCoreu.def @@ -59,7 +59,7 @@ EXPORTS ??0QChildEvent@@QAE@W4Type@QEvent@@PAVQObject@@@Z @ 58 NONAME ; QChildEvent::QChildEvent(enum QEvent::Type, class QObject *) ??0QCoreApplication@@IAE@AAVQCoreApplicationPrivate@@@Z @ 59 NONAME ; QCoreApplication::QCoreApplication(class QCoreApplicationPrivate &) ??0QCoreApplication@@QAE@AAHPAPAD@Z @ 60 NONAME ; QCoreApplication::QCoreApplication(int &, char * *) - ??0QCoreApplicationPrivate@@QAE@AAHPAPAD@Z @ 61 NONAME ; QCoreApplicationPrivate::QCoreApplicationPrivate(int &, char * *) + ??0QCoreApplicationPrivate@@QAE@AAHPAPAD@Z @ 61 NONAME ABSENT ; QCoreApplicationPrivate::QCoreApplicationPrivate(int &, char * *) ??0QCryptographicHash@@QAE@W4Algorithm@0@@Z @ 62 NONAME ; QCryptographicHash::QCryptographicHash(enum QCryptographicHash::Algorithm) ??0QDataStream@@QAE@ABVQByteArray@@@Z @ 63 NONAME ; QDataStream::QDataStream(class QByteArray const &) ??0QDataStream@@QAE@PAVQByteArray@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@@Z @ 64 NONAME ; QDataStream::QDataStream(class QByteArray *, class QFlags) @@ -3123,7 +3123,7 @@ EXPORTS ?reset@QMetaProperty@@QBE_NPAVQObject@@@Z @ 3122 NONAME ; bool QMetaProperty::reset(class QObject *) const ?reset@QTextStream@@QAEXXZ @ 3123 NONAME ; void QTextStream::reset(void) ?resetCurrentSender@QObjectPrivate@@SAXPAVQObject@@PAUSender@1@1@Z @ 3124 NONAME ; void QObjectPrivate::resetCurrentSender(class QObject *, struct QObjectPrivate::Sender *, struct QObjectPrivate::Sender *) - ?resetDeleteWatch@QObjectPrivate@@SAXPAV1@PAHH@Z @ 3125 NONAME ; void QObjectPrivate::resetDeleteWatch(class QObjectPrivate *, int *, int) + ?resetDeleteWatch@QObjectPrivate@@SAXPAV1@PAHH@Z @ 3125 NONAME ABSENT ; void QObjectPrivate::resetDeleteWatch(class QObjectPrivate *, int *, int) ?resetStatus@QDataStream@@QAEXXZ @ 3126 NONAME ; void QDataStream::resetStatus(void) ?resetStatus@QTextStream@@QAEXXZ @ 3127 NONAME ; void QTextStream::resetStatus(void) ?resize@QBitArray@@QAEXH@Z @ 3128 NONAME ; void QBitArray::resize(int) @@ -3296,7 +3296,7 @@ EXPORTS ?setDefault@QLocale@@SAXABV1@@Z @ 3295 NONAME ; void QLocale::setDefault(class QLocale const &) ?setDefaultFormat@QSettings@@SAXW4Format@1@@Z @ 3296 NONAME ; void QSettings::setDefaultFormat(enum QSettings::Format) ?setDefaultState@QHistoryState@@QAEXPAVQAbstractState@@@Z @ 3297 NONAME ; void QHistoryState::setDefaultState(class QAbstractState *) - ?setDeleteWatch@QObjectPrivate@@SAPAHPAV1@PAH@Z @ 3298 NONAME ; int * QObjectPrivate::setDeleteWatch(class QObjectPrivate *, int *) + ?setDeleteWatch@QObjectPrivate@@SAPAHPAV1@PAH@Z @ 3298 NONAME ABSENT ; int * QObjectPrivate::setDeleteWatch(class QObjectPrivate *, int *) ?setDevice@QDataStream@@QAEXPAVQIODevice@@@Z @ 3299 NONAME ; void QDataStream::setDevice(class QIODevice *) ?setDevice@QTextStream@@QAEXPAVQIODevice@@@Z @ 3300 NONAME ; void QTextStream::setDevice(class QIODevice *) ?setDevice@QXmlStreamReader@@QAEXPAVQIODevice@@@Z @ 3301 NONAME ; void QXmlStreamReader::setDevice(class QIODevice *) @@ -4482,5 +4482,48 @@ EXPORTS ?textDirection@QLocale@@QBE?AW4LayoutDirection@Qt@@XZ @ 4481 NONAME ; enum Qt::LayoutDirection QLocale::textDirection(void) const ?msecsSinceReference@QElapsedTimer@@QBE_JXZ @ 4482 NONAME ; long long QElapsedTimer::msecsSinceReference(void) const ?selectThread@QEventDispatcherSymbian@@AAEAAVQSelectThread@@XZ @ 4483 NONAME ; class QSelectThread & QEventDispatcherSymbian::selectThread(void) - ?qt_symbian_SetupThreadHeap@@YAHHAAUSStdEpocThreadCreateInfo@@@Z @ 4484 NONAME ; int qt_symbian_SetupThreadHeap(int, struct SStdEpocThreadCreateInfo &) + ??0QCoreApplication@@QAE@AAHPAPADH@Z @ 4484 NONAME ; QCoreApplication::QCoreApplication(int &, char * *, int) + ??0QCoreApplicationPrivate@@QAE@AAHPAPADI@Z @ 4485 NONAME ; QCoreApplicationPrivate::QCoreApplicationPrivate(int &, char * *, unsigned int) + ?connect@QObject@@SA_NPBV1@ABVQMetaMethod@@01W4ConnectionType@Qt@@@Z @ 4486 NONAME ; bool QObject::connect(class QObject const *, class QMetaMethod const &, class QObject const *, class QMetaMethod const &, enum Qt::ConnectionType) + ?contains@QString@@QBE?AVQBool@@ABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4487 NONAME ; class QBool QString::contains(class QStringRef const &, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@ABV1@W4CaseSensitivity@Qt@@@Z @ 4488 NONAME ; class QBool QStringRef::contains(class QStringRef const &, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@ABVQString@@W4CaseSensitivity@Qt@@@Z @ 4489 NONAME ; class QBool QStringRef::contains(class QString const &, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@VQChar@@W4CaseSensitivity@Qt@@@Z @ 4490 NONAME ; class QBool QStringRef::contains(class QChar, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@VQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 4491 NONAME ; class QBool QStringRef::contains(class QLatin1String, enum Qt::CaseSensitivity) const + ?count@QString@@QBEHABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4492 NONAME ; int QString::count(class QStringRef const &, enum Qt::CaseSensitivity) const + ?count@QStringRef@@QBEHABV1@W4CaseSensitivity@Qt@@@Z @ 4493 NONAME ; int QStringRef::count(class QStringRef const &, enum Qt::CaseSensitivity) const + ?count@QStringRef@@QBEHABVQString@@W4CaseSensitivity@Qt@@@Z @ 4494 NONAME ; int QStringRef::count(class QString const &, enum Qt::CaseSensitivity) const + ?count@QStringRef@@QBEHVQChar@@W4CaseSensitivity@Qt@@@Z @ 4495 NONAME ; int QStringRef::count(class QChar, enum Qt::CaseSensitivity) const + ?disconnect@QObject@@SA_NPBV1@ABVQMetaMethod@@01@Z @ 4496 NONAME ; bool QObject::disconnect(class QObject const *, class QMetaMethod const &, class QObject const *, class QMetaMethod const &) + ?endsWith@QString@@QBE_NABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4497 NONAME ; bool QString::endsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NABV1@W4CaseSensitivity@Qt@@@Z @ 4498 NONAME ; bool QStringRef::endsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NABVQString@@W4CaseSensitivity@Qt@@@Z @ 4499 NONAME ; bool QStringRef::endsWith(class QString const &, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NVQChar@@W4CaseSensitivity@Qt@@@Z @ 4500 NONAME ; bool QStringRef::endsWith(class QChar, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 4501 NONAME ; bool QStringRef::endsWith(class QLatin1String, enum Qt::CaseSensitivity) const + ?indexOf@QString@@QBEHABVQStringRef@@HW4CaseSensitivity@Qt@@@Z @ 4502 NONAME ; int QString::indexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHABV1@HW4CaseSensitivity@Qt@@@Z @ 4503 NONAME ; int QStringRef::indexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHABVQString@@HW4CaseSensitivity@Qt@@@Z @ 4504 NONAME ; int QStringRef::indexOf(class QString const &, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHVQChar@@HW4CaseSensitivity@Qt@@@Z @ 4505 NONAME ; int QStringRef::indexOf(class QChar, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHVQLatin1String@@HW4CaseSensitivity@Qt@@@Z @ 4506 NONAME ; int QStringRef::indexOf(class QLatin1String, int, enum Qt::CaseSensitivity) const + ?isLocalFile@QUrl@@QBE_NXZ @ 4507 NONAME ; bool QUrl::isLocalFile(void) const + ?lastIndexOf@QString@@QBEHABVQStringRef@@HW4CaseSensitivity@Qt@@@Z @ 4508 NONAME ; int QString::lastIndexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHABV1@HW4CaseSensitivity@Qt@@@Z @ 4509 NONAME ; int QStringRef::lastIndexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHABVQString@@HW4CaseSensitivity@Qt@@@Z @ 4510 NONAME ; int QStringRef::lastIndexOf(class QString const &, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHVQChar@@HW4CaseSensitivity@Qt@@@Z @ 4511 NONAME ; int QStringRef::lastIndexOf(class QChar, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHVQLatin1String@@HW4CaseSensitivity@Qt@@@Z @ 4512 NONAME ; int QStringRef::lastIndexOf(class QLatin1String, int, enum Qt::CaseSensitivity) const + ?lockInline@QMutex@@QAEXXZ @ 4513 NONAME ; void QMutex::lockInline(void) + ?lockInternal@QMutex@@AAEXXZ @ 4514 NONAME ; void QMutex::lockInternal(void) + ?nativeKey@QSharedMemory@@QBE?AVQString@@XZ @ 4515 NONAME ; class QString QSharedMemory::nativeKey(void) const + ?senderSignalIndex@QObject@@IBEHXZ @ 4516 NONAME ; int QObject::senderSignalIndex(void) const + ?setNativeKey@QSharedMemory@@QAEXABVQString@@@Z @ 4517 NONAME ; void QSharedMemory::setNativeKey(class QString const &) + ?startsWith@QString@@QBE_NABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4518 NONAME ; bool QString::startsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NABV1@W4CaseSensitivity@Qt@@@Z @ 4519 NONAME ; bool QStringRef::startsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NABVQString@@W4CaseSensitivity@Qt@@@Z @ 4520 NONAME ; bool QStringRef::startsWith(class QString const &, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NVQChar@@W4CaseSensitivity@Qt@@@Z @ 4521 NONAME ; bool QStringRef::startsWith(class QChar, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 4522 NONAME ; bool QStringRef::startsWith(class QLatin1String, enum Qt::CaseSensitivity) const + ?tryLockInline@QMutex@@QAE_NXZ @ 4523 NONAME ; bool QMutex::tryLockInline(void) + ?unlockInline@QMutex@@QAEXXZ @ 4524 NONAME ; void QMutex::unlockInline(void) + ?unlockInternal@QMutex@@AAEXXZ @ 4525 NONAME ; void QMutex::unlockInternal(void) + ?waitForDone@QThreadPool@@QAE_NH@Z @ 4526 NONAME ; bool QThreadPool::waitForDone(int) + ?app_compile_version@QCoreApplicationPrivate@@2HA @ 4527 NONAME ; int QCoreApplicationPrivate::app_compile_version diff --git a/src/s60installs/bwins/QtDeclarativeu.def b/src/s60installs/bwins/QtDeclarativeu.def index cf0398a..cf2f325 100644 --- a/src/s60installs/bwins/QtDeclarativeu.def +++ b/src/s60installs/bwins/QtDeclarativeu.def @@ -142,7 +142,7 @@ EXPORTS ?setEnumOrFlag@QMetaPropertyBuilder@@QAEX_N@Z @ 141 NONAME ; void QMetaPropertyBuilder::setEnumOrFlag(bool) ?getStaticMetaObject@QDeclarativeRectangle@@SAABUQMetaObject@@XZ @ 142 NONAME ; struct QMetaObject const & QDeclarativeRectangle::getStaticMetaObject(void) ?isValid@QDeclarativeProperty@@QBE_NXZ @ 143 NONAME ; bool QDeclarativeProperty::isValid(void) const - ?isConnected@QDeclarativeDebugClient@@QBE_NXZ @ 144 NONAME ABSENT ; bool QDeclarativeDebugClient::isConnected(void) const + ?isConnected@QDeclarativeDebugClient@@QBE_NXZ @ 144 NONAME ; bool QDeclarativeDebugClient::isConnected(void) const ?enabled@QDeclarativeBinding@@QBE_NXZ @ 145 NONAME ; bool QDeclarativeBinding::enabled(void) const ?setSource@QDeclarativeView@@QAEXABVQUrl@@@Z @ 146 NONAME ; void QDeclarativeView::setSource(class QUrl const &) ??_EQDeclarativeDebugService@@UAE@I@Z @ 147 NONAME ; QDeclarativeDebugService::~QDeclarativeDebugService(unsigned int) @@ -242,7 +242,7 @@ EXPORTS ?idString@QDeclarativeDebugObjectReference@@QBE?AVQString@@XZ @ 241 NONAME ; class QString QDeclarativeDebugObjectReference::idString(void) const ?customTypeData@QDeclarativeDomObject@@QBE?AVQByteArray@@XZ @ 242 NONAME ; class QByteArray QDeclarativeDomObject::customTypeData(void) const ?stop@QDeclarativeTransition@@QAEXXZ @ 243 NONAME ; void QDeclarativeTransition::stop(void) - ?data@QDeclarativeListModel@@UBE?AV?$QHash@HVQVariant@@@@HABV?$QList@H@@@Z @ 244 NONAME ABSENT ; class QHash QDeclarativeListModel::data(int, class QList const &) const + ?data@QDeclarativeListModel@@UBE?AV?$QHash@HVQVariant@@@@HABV?$QList@H@@@Z @ 244 NONAME ; class QHash QDeclarativeListModel::data(int, class QList const &) const ?verticalCenterOffset@QDeclarativeAnchors@@QBEMXZ @ 245 NONAME ; float QDeclarativeAnchors::verticalCenterOffset(void) const ?metaObject@QDeclarativeText@@UBEPBUQMetaObject@@XZ @ 246 NONAME ; struct QMetaObject const * QDeclarativeText::metaObject(void) const ??0QDeclarativeComponent@@QAE@PAVQDeclarativeEngine@@PAVQObject@@@Z @ 247 NONAME ; QDeclarativeComponent::QDeclarativeComponent(class QDeclarativeEngine *, class QObject *) @@ -461,7 +461,7 @@ EXPORTS ?qt_metacall@QDeclarativeContext@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 460 NONAME ; int QDeclarativeContext::qt_metacall(enum QMetaObject::Call, int, void * *) ??_EQDeclarativeValueType@@UAE@I@Z @ 461 NONAME ; QDeclarativeValueType::~QDeclarativeValueType(unsigned int) ?qt_metacall@QDeclarativeState@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 462 NONAME ; int QDeclarativeState::qt_metacall(enum QMetaObject::Call, int, void * *) - ?isEnabled@QDeclarativeDebugService@@QBE_NXZ @ 463 NONAME ABSENT ; bool QDeclarativeDebugService::isEnabled(void) const + ?isEnabled@QDeclarativeDebugService@@QBE_NXZ @ 463 NONAME ; bool QDeclarativeDebugService::isEnabled(void) const ?stateChanged@QDeclarativeDebugWatch@@IAEXW4State@1@@Z @ 464 NONAME ; void QDeclarativeDebugWatch::stateChanged(enum QDeclarativeDebugWatch::State) ??0QMetaMethodBuilder@@AAE@PBVQMetaObjectBuilder@@H@Z @ 465 NONAME ; QMetaMethodBuilder::QMetaMethodBuilder(class QMetaObjectBuilder const *, int) ??4QDeclarativeListReference@@QAEAAV0@ABV0@@Z @ 466 NONAME ; class QDeclarativeListReference & QDeclarativeListReference::operator=(class QDeclarativeListReference const &) @@ -608,7 +608,7 @@ EXPORTS ??_EQDeclarativeDebugObjectExpressionWatch@@UAE@I@Z @ 607 NONAME ; QDeclarativeDebugObjectExpressionWatch::~QDeclarativeDebugObjectExpressionWatch(unsigned int) ?computeTransformOrigin@QDeclarativeItemPrivate@@QBE?AVQPointF@@XZ @ 608 NONAME ; class QPointF QDeclarativeItemPrivate::computeTransformOrigin(void) const ??0QDeclarativeListReference@@QAE@PAVQObject@@PBDPAVQDeclarativeEngine@@@Z @ 609 NONAME ; QDeclarativeListReference::QDeclarativeListReference(class QObject *, char const *, class QDeclarativeEngine *) - ?setData@QListModelInterface@@UAE_NHABV?$QHash@HVQVariant@@@@@Z @ 610 NONAME ABSENT ; bool QListModelInterface::setData(int, class QHash const &) + ?setData@QListModelInterface@@UAE_NHABV?$QHash@HVQVariant@@@@@Z @ 610 NONAME ; bool QListModelInterface::setData(int, class QHash const &) ??0QDeclarativePen@@QAE@PAVQObject@@@Z @ 611 NONAME ; QDeclarativePen::QDeclarativePen(class QObject *) ?trUtf8@QPacketProtocol@@SA?AVQString@@PBD0H@Z @ 612 NONAME ; class QString QPacketProtocol::trUtf8(char const *, char const *, int) ?setContextObject@QDeclarativeContext@@QAEXPAVQObject@@@Z @ 613 NONAME ; void QDeclarativeContext::setContextObject(class QObject *) @@ -1028,7 +1028,7 @@ EXPORTS ?qmlInfo@@YA?AVQDeclarativeInfo@@PBVQObject@@ABVQDeclarativeError@@@Z @ 1027 NONAME ; class QDeclarativeInfo qmlInfo(class QObject const *, class QDeclarativeError const &) ?staticMetaObject@QDeclarativeText@@2UQMetaObject@@B @ 1028 NONAME ; struct QMetaObject const QDeclarativeText::staticMetaObject ?color@QDeclarativeRectangle@@QBE?AVQColor@@XZ @ 1029 NONAME ; class QColor QDeclarativeRectangle::color(void) const - ?isEnabled@QDeclarativeDebugClient@@QBE_NXZ @ 1030 NONAME ABSENT ; bool QDeclarativeDebugClient::isEnabled(void) const + ?isEnabled@QDeclarativeDebugClient@@QBE_NXZ @ 1030 NONAME ; bool QDeclarativeDebugClient::isEnabled(void) const ?send@QPacketProtocol@@QAEXABVQPacket@@@Z @ 1031 NONAME ; void QPacketProtocol::send(class QPacket const &) ?width@QDeclarativePixmap@@QBEHXZ @ 1032 NONAME ; int QDeclarativePixmap::width(void) const ?error@QDeclarativeCustomParser@@IAEXABVQDeclarativeCustomParserNode@@ABVQString@@@Z @ 1033 NONAME ; void QDeclarativeCustomParser::error(class QDeclarativeCustomParserNode const &, class QString const &) @@ -1147,7 +1147,7 @@ EXPORTS ?removeNotifySignal@QMetaPropertyBuilder@@QAEXXZ @ 1146 NONAME ; void QMetaPropertyBuilder::removeNotifySignal(void) ?trUtf8@QDeclarativeDebugService@@SA?AVQString@@PBD0@Z @ 1147 NONAME ; class QString QDeclarativeDebugService::trUtf8(char const *, char const *) ?setImportPathList@QDeclarativeEngine@@QAEXABVQStringList@@@Z @ 1148 NONAME ; void QDeclarativeEngine::setImportPathList(class QStringList const &) - ?enabledChanged@QDeclarativeDebugService@@MAEX_N@Z @ 1149 NONAME ABSENT ; void QDeclarativeDebugService::enabledChanged(bool) + ?enabledChanged@QDeclarativeDebugService@@MAEX_N@Z @ 1149 NONAME ; void QDeclarativeDebugService::enabledChanged(bool) ?addWatch@QDeclarativeEngineDebug@@QAEPAVQDeclarativeDebugWatch@@ABVQDeclarativeDebugObjectReference@@PAVQObject@@@Z @ 1150 NONAME ; class QDeclarativeDebugWatch * QDeclarativeEngineDebug::addWatch(class QDeclarativeDebugObjectReference const &, class QObject *) ?asAST@Variant@QDeclarativeParser@@QBEPAVNode@AST@QDeclarativeJS@@XZ @ 1151 NONAME ; class QDeclarativeJS::AST::Node * QDeclarativeParser::Variant::asAST(void) const ?indexOfClassInfo@QMetaObjectBuilder@@QAEHABVQByteArray@@@Z @ 1152 NONAME ; int QMetaObjectBuilder::indexOfClassInfo(class QByteArray const &) @@ -1386,7 +1386,7 @@ EXPORTS ?qmlTypes@QDeclarativeMetaType@@SA?AV?$QList@PAVQDeclarativeType@@@@XZ @ 1385 NONAME ; class QList QDeclarativeMetaType::qmlTypes(void) ?valueTypeCoreIndex@QDeclarativePropertyPrivate@@SAHABVQDeclarativeProperty@@@Z @ 1386 NONAME ; int QDeclarativePropertyPrivate::valueTypeCoreIndex(class QDeclarativeProperty const &) ?writeEnumProperty@QDeclarativePropertyPrivate@@SA_NABVQMetaProperty@@HPAVQObject@@ABVQVariant@@H@Z @ 1387 NONAME ; bool QDeclarativePropertyPrivate::writeEnumProperty(class QMetaProperty const &, int, class QObject *, class QVariant const &, int) - ?setEnabled@QDeclarativeDebugClient@@QAEX_N@Z @ 1388 NONAME ABSENT ; void QDeclarativeDebugClient::setEnabled(bool) + ?setEnabled@QDeclarativeDebugClient@@QAEX_N@Z @ 1388 NONAME ; void QDeclarativeDebugClient::setEnabled(bool) ??1QMetaObjectBuilder@@UAE@XZ @ 1389 NONAME ; QMetaObjectBuilder::~QMetaObjectBuilder(void) ?tr@QDeclarativeStateOperation@@SA?AVQString@@PBD0@Z @ 1390 NONAME ; class QString QDeclarativeStateOperation::tr(char const *, char const *) ?clear@QPacket@@QAEXXZ @ 1391 NONAME ; void QPacket::clear(void) @@ -1715,127 +1715,4 @@ EXPORTS ??0QDeclarativeListModel@@AAE@PBV0@PAVQDeclarativeListModelWorkerAgent@@@Z @ 1714 NONAME ; QDeclarativeListModel::QDeclarativeListModel(class QDeclarativeListModel const *, class QDeclarativeListModelWorkerAgent *) ?inWorkerThread@QDeclarativeListModel@@ABE_NXZ @ 1715 NONAME ; bool QDeclarativeListModel::inWorkerThread(void) const ?canMove@QDeclarativeListModel@@ABE_NHHH@Z @ 1716 NONAME ; bool QDeclarativeListModel::canMove(int, int, int) const - ?getScriptEngine@QDeclarativeDebugHelper@@SAPAVQScriptEngine@@PAVQDeclarativeEngine@@@Z @ 1717 NONAME ; class QScriptEngine * QDeclarativeDebugHelper::getScriptEngine(class QDeclarativeEngine *) - ?setAnimationSlowDownFactor@QDeclarativeDebugHelper@@SAXM@Z @ 1718 NONAME ; void QDeclarativeDebugHelper::setAnimationSlowDownFactor(float) - ?add@QDeclarativeBasePositioner@@QBEPAVQDeclarativeTransition@@XZ @ 1719 NONAME ; class QDeclarativeTransition * QDeclarativeBasePositioner::add(void) const - ?setLoops@QDeclarativeAbstractAnimation@@QAEXH@Z @ 1720 NONAME ; void QDeclarativeAbstractAnimation::setLoops(int) - ?trUtf8@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0@Z @ 1721 NONAME ; class QString QDeclarativeAbstractAnimation::trUtf8(char const *, char const *) - ?tr@QDeclarativeBasePositioner@@SA?AVQString@@PBD0@Z @ 1722 NONAME ; class QString QDeclarativeBasePositioner::tr(char const *, char const *) - ?staticMetaObject@QDeclarativeAbstractAnimation@@2UQMetaObject@@B @ 1723 NONAME ; struct QMetaObject const QDeclarativeAbstractAnimation::staticMetaObject - ?setMove@QDeclarativeBasePositioner@@QAEXPAVQDeclarativeTransition@@@Z @ 1724 NONAME ; void QDeclarativeBasePositioner::setMove(class QDeclarativeTransition *) - ?setRunning@QDeclarativeTimer@@QAEX_N@Z @ 1725 NONAME ; void QDeclarativeTimer::setRunning(bool) - ?tr@QDeclarativeTimer@@SA?AVQString@@PBD0@Z @ 1726 NONAME ; class QString QDeclarativeTimer::tr(char const *, char const *) - ?qt_metacall@QDeclarativeTimer@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1727 NONAME ; int QDeclarativeTimer::qt_metacall(enum QMetaObject::Call, int, void * *) - ?setPaused@QDeclarativeAbstractAnimation@@QAEX_N@Z @ 1728 NONAME ; void QDeclarativeAbstractAnimation::setPaused(bool) - ?d_func@QDeclarativeBasePositioner@@ABEPBVQDeclarativeBasePositionerPrivate@@XZ @ 1729 NONAME ; class QDeclarativeBasePositionerPrivate const * QDeclarativeBasePositioner::d_func(void) const - ?setRepeating@QDeclarativeTimer@@QAEX_N@Z @ 1730 NONAME ; void QDeclarativeTimer::setRepeating(bool) - ?interval@QDeclarativeTimer@@QBEHXZ @ 1731 NONAME ; int QDeclarativeTimer::interval(void) const - ?start@QDeclarativeTimer@@QAEXXZ @ 1732 NONAME ; void QDeclarativeTimer::start(void) - ?transition@QDeclarativeAbstractAnimation@@UAEXAAV?$QList@VQDeclarativeAction@@@@AAV?$QList@VQDeclarativeProperty@@@@W4TransitionDirection@1@@Z @ 1733 NONAME ; void QDeclarativeAbstractAnimation::transition(class QList &, class QList &, enum QDeclarativeAbstractAnimation::TransitionDirection) - ?componentComplete@QDeclarativeAbstractAnimation@@UAEXXZ @ 1734 NONAME ; void QDeclarativeAbstractAnimation::componentComplete(void) - ?statusChanged@QDeclarativeDebugService@@MAEXW4Status@1@@Z @ 1735 NONAME ; void QDeclarativeDebugService::statusChanged(enum QDeclarativeDebugService::Status) - ?runningChanged@QDeclarativeAbstractAnimation@@IAEX_N@Z @ 1736 NONAME ; void QDeclarativeAbstractAnimation::runningChanged(bool) - ?trUtf8@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0H@Z @ 1737 NONAME ; class QString QDeclarativeAbstractAnimation::trUtf8(char const *, char const *, int) - ??_EQDeclarativeBasePositioner@@UAE@I@Z @ 1738 NONAME ; QDeclarativeBasePositioner::~QDeclarativeBasePositioner(unsigned int) - ?metaObject@QDeclarativeTimer@@UBEPBUQMetaObject@@XZ @ 1739 NONAME ; struct QMetaObject const * QDeclarativeTimer::metaObject(void) const - ?setGroup@QDeclarativeAbstractAnimation@@QAEXPAVQDeclarativeAnimationGroup@@@Z @ 1740 NONAME ; void QDeclarativeAbstractAnimation::setGroup(class QDeclarativeAnimationGroup *) - ?isRepeating@QDeclarativeTimer@@QBE_NXZ @ 1741 NONAME ; bool QDeclarativeTimer::isRepeating(void) const - ?setTriggeredOnStart@QDeclarativeTimer@@QAEX_N@Z @ 1742 NONAME ; void QDeclarativeTimer::setTriggeredOnStart(bool) - ?currentTime@QDeclarativeAbstractAnimation@@QAEHXZ @ 1743 NONAME ; int QDeclarativeAbstractAnimation::currentTime(void) - ?status@QDeclarativeEngineDebug@@QBE?AW4Status@1@XZ @ 1744 NONAME ; enum QDeclarativeEngineDebug::Status QDeclarativeEngineDebug::status(void) const - ??1QDeclarativeAbstractAnimation@@UAE@XZ @ 1745 NONAME ; QDeclarativeAbstractAnimation::~QDeclarativeAbstractAnimation(void) - ?triggered@QDeclarativeTimer@@IAEXXZ @ 1746 NONAME ; void QDeclarativeTimer::triggered(void) - ?getStaticMetaObject@QDeclarativeBasePositioner@@SAABUQMetaObject@@XZ @ 1747 NONAME ; struct QMetaObject const & QDeclarativeBasePositioner::getStaticMetaObject(void) - ?finished@QDeclarativeTimer@@AAEXXZ @ 1748 NONAME ; void QDeclarativeTimer::finished(void) - ?pausedChanged@QDeclarativeAbstractAnimation@@IAEX_N@Z @ 1749 NONAME ; void QDeclarativeAbstractAnimation::pausedChanged(bool) - ?complete@QDeclarativeAbstractAnimation@@QAEXXZ @ 1750 NONAME ; void QDeclarativeAbstractAnimation::complete(void) - ?setRunning@QDeclarativeAbstractAnimation@@QAEX_N@Z @ 1751 NONAME ; void QDeclarativeAbstractAnimation::setRunning(bool) - ?trUtf8@QDeclarativeBasePositioner@@SA?AVQString@@PBD0H@Z @ 1752 NONAME ; class QString QDeclarativeBasePositioner::trUtf8(char const *, char const *, int) - ?trUtf8@QDeclarativeBasePositioner@@SA?AVQString@@PBD0@Z @ 1753 NONAME ; class QString QDeclarativeBasePositioner::trUtf8(char const *, char const *) - ?completed@QDeclarativeAbstractAnimation@@IAEXXZ @ 1754 NONAME ; void QDeclarativeAbstractAnimation::completed(void) - ?trUtf8@QDeclarativeTimer@@SA?AVQString@@PBD0@Z @ 1755 NONAME ; class QString QDeclarativeTimer::trUtf8(char const *, char const *) - ?loopCountChanged@QDeclarativeAbstractAnimation@@IAEXH@Z @ 1756 NONAME ; void QDeclarativeAbstractAnimation::loopCountChanged(int) - ?repeatChanged@QDeclarativeTimer@@IAEXXZ @ 1757 NONAME ; void QDeclarativeTimer::repeatChanged(void) - ?setDisableUserControl@QDeclarativeAbstractAnimation@@QAEXXZ @ 1758 NONAME ; void QDeclarativeAbstractAnimation::setDisableUserControl(void) - ?componentComplete@QDeclarativeBasePositioner@@MAEXXZ @ 1759 NONAME ; void QDeclarativeBasePositioner::componentComplete(void) - ?setDefaultTarget@QDeclarativeAbstractAnimation@@QAEXABVQDeclarativeProperty@@@Z @ 1760 NONAME ; void QDeclarativeAbstractAnimation::setDefaultTarget(class QDeclarativeProperty const &) - ?staticMetaObject@QDeclarativeBasePositioner@@2UQMetaObject@@B @ 1761 NONAME ; struct QMetaObject const QDeclarativeBasePositioner::staticMetaObject - ?triggeredOnStart@QDeclarativeTimer@@QBE_NXZ @ 1762 NONAME ; bool QDeclarativeTimer::triggeredOnStart(void) const - ?notifyRunningChanged@QDeclarativeAbstractAnimation@@AAEX_N@Z @ 1763 NONAME ; void QDeclarativeAbstractAnimation::notifyRunningChanged(bool) - ?statusChanged@QDeclarativeDebugClient@@MAEXW4Status@1@@Z @ 1764 NONAME ; void QDeclarativeDebugClient::statusChanged(enum QDeclarativeDebugClient::Status) - ??0QDeclarativeBasePositioner@@IAE@AAVQDeclarativeBasePositionerPrivate@@W4PositionerType@0@PAVQDeclarativeItem@@@Z @ 1765 NONAME ; QDeclarativeBasePositioner::QDeclarativeBasePositioner(class QDeclarativeBasePositionerPrivate &, enum QDeclarativeBasePositioner::PositionerType, class QDeclarativeItem *) - ?componentComplete@QDeclarativeTimer@@MAEXXZ @ 1766 NONAME ; void QDeclarativeTimer::componentComplete(void) - ?tr@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0@Z @ 1767 NONAME ; class QString QDeclarativeAbstractAnimation::tr(char const *, char const *) - ?isRunning@QDeclarativeAbstractAnimation@@QBE_NXZ @ 1768 NONAME ; bool QDeclarativeAbstractAnimation::isRunning(void) const - ?d_func@QDeclarativeAbstractAnimation@@ABEPBVQDeclarativeAbstractAnimationPrivate@@XZ @ 1769 NONAME ; class QDeclarativeAbstractAnimationPrivate const * QDeclarativeAbstractAnimation::d_func(void) const - ??_EQDeclarativeAbstractAnimation@@UAE@I@Z @ 1770 NONAME ; QDeclarativeAbstractAnimation::~QDeclarativeAbstractAnimation(unsigned int) - ??0QDeclarativeBasePositioner@@QAE@W4PositionerType@0@PAVQDeclarativeItem@@@Z @ 1771 NONAME ; QDeclarativeBasePositioner::QDeclarativeBasePositioner(enum QDeclarativeBasePositioner::PositionerType, class QDeclarativeItem *) - ?qt_metacall@QDeclarativeBasePositioner@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1772 NONAME ; int QDeclarativeBasePositioner::qt_metacall(enum QMetaObject::Call, int, void * *) - ?status@QDeclarativeDebugClient@@QBE?AW4Status@1@XZ @ 1773 NONAME ; enum QDeclarativeDebugClient::Status QDeclarativeDebugClient::status(void) const - ?prePositioning@QDeclarativeBasePositioner@@IAEXXZ @ 1774 NONAME ; void QDeclarativeBasePositioner::prePositioning(void) - ?finishApplyTransitions@QDeclarativeBasePositioner@@IAEXXZ @ 1775 NONAME ; void QDeclarativeBasePositioner::finishApplyTransitions(void) - ?d_func@QDeclarativeAbstractAnimation@@AAEPAVQDeclarativeAbstractAnimationPrivate@@XZ @ 1776 NONAME ; class QDeclarativeAbstractAnimationPrivate * QDeclarativeAbstractAnimation::d_func(void) - ?componentFinalized@QDeclarativeAbstractAnimation@@AAEXXZ @ 1777 NONAME ; void QDeclarativeAbstractAnimation::componentFinalized(void) - ??_EQDeclarativeTimer@@UAE@I@Z @ 1778 NONAME ; QDeclarativeTimer::~QDeclarativeTimer(unsigned int) - ?pause@QDeclarativeAbstractAnimation@@QAEXXZ @ 1779 NONAME ; void QDeclarativeAbstractAnimation::pause(void) - ?stop@QDeclarativeTimer@@QAEXXZ @ 1780 NONAME ; void QDeclarativeTimer::stop(void) - ?timelineComplete@QDeclarativeAbstractAnimation@@AAEXXZ @ 1781 NONAME ; void QDeclarativeAbstractAnimation::timelineComplete(void) - ?d_func@QDeclarativeBasePositioner@@AAEPAVQDeclarativeBasePositionerPrivate@@XZ @ 1782 NONAME ; class QDeclarativeBasePositionerPrivate * QDeclarativeBasePositioner::d_func(void) - ?setAlwaysRunToEnd@QDeclarativeAbstractAnimation@@QAEX_N@Z @ 1783 NONAME ; void QDeclarativeAbstractAnimation::setAlwaysRunToEnd(bool) - ?classBegin@QDeclarativeAbstractAnimation@@UAEXXZ @ 1784 NONAME ; void QDeclarativeAbstractAnimation::classBegin(void) - ?d_func@QDeclarativeTimer@@AAEPAVQDeclarativeTimerPrivate@@XZ @ 1785 NONAME ; class QDeclarativeTimerPrivate * QDeclarativeTimer::d_func(void) - ?spacing@QDeclarativeBasePositioner@@QBEHXZ @ 1786 NONAME ; int QDeclarativeBasePositioner::spacing(void) const - ??0QDeclarativeAbstractAnimation@@QAE@PAVQObject@@@Z @ 1787 NONAME ; QDeclarativeAbstractAnimation::QDeclarativeAbstractAnimation(class QObject *) - ?metaObject@QDeclarativeAbstractAnimation@@UBEPBUQMetaObject@@XZ @ 1788 NONAME ; struct QMetaObject const * QDeclarativeAbstractAnimation::metaObject(void) const - ?tr@QDeclarativeAbstractAnimation@@SA?AVQString@@PBD0H@Z @ 1789 NONAME ; class QString QDeclarativeAbstractAnimation::tr(char const *, char const *, int) - ?started@QDeclarativeAbstractAnimation@@IAEXXZ @ 1790 NONAME ; void QDeclarativeAbstractAnimation::started(void) - ?setInterval@QDeclarativeTimer@@QAEXH@Z @ 1791 NONAME ; void QDeclarativeTimer::setInterval(int) - ?statusChanged@QDeclarativeEngineDebug@@IAEXW4Status@1@@Z @ 1792 NONAME ; void QDeclarativeEngineDebug::statusChanged(enum QDeclarativeEngineDebug::Status) - ?d_func@QDeclarativeTimer@@ABEPBVQDeclarativeTimerPrivate@@XZ @ 1793 NONAME ; class QDeclarativeTimerPrivate const * QDeclarativeTimer::d_func(void) const - ?setSpacing@QDeclarativeBasePositioner@@QAEXH@Z @ 1794 NONAME ; void QDeclarativeBasePositioner::setSpacing(int) - ?staticMetaObject@QDeclarativeTimer@@2UQMetaObject@@B @ 1795 NONAME ; struct QMetaObject const QDeclarativeTimer::staticMetaObject - ?positionY@QDeclarativeBasePositioner@@IAEXHABVPositionedItem@1@@Z @ 1796 NONAME ; void QDeclarativeBasePositioner::positionY(int, class QDeclarativeBasePositioner::PositionedItem const &) - ?qt_metacast@QDeclarativeAbstractAnimation@@UAEPAXPBD@Z @ 1797 NONAME ; void * QDeclarativeAbstractAnimation::qt_metacast(char const *) - ?setAdd@QDeclarativeBasePositioner@@QAEXPAVQDeclarativeTransition@@@Z @ 1798 NONAME ; void QDeclarativeBasePositioner::setAdd(class QDeclarativeTransition *) - ?setCurrentTime@QDeclarativeAbstractAnimation@@QAEXH@Z @ 1799 NONAME ; void QDeclarativeAbstractAnimation::setCurrentTime(int) - ?attachedPropertiesId@QDeclarativeType@@QBEHXZ @ 1800 NONAME ; int QDeclarativeType::attachedPropertiesId(void) const - ?positionX@QDeclarativeBasePositioner@@IAEXHABVPositionedItem@1@@Z @ 1801 NONAME ; void QDeclarativeBasePositioner::positionX(int, class QDeclarativeBasePositioner::PositionedItem const &) - ?restart@QDeclarativeAbstractAnimation@@QAEXXZ @ 1802 NONAME ; void QDeclarativeAbstractAnimation::restart(void) - ?itemChange@QDeclarativeBasePositioner@@MAE?AVQVariant@@W4GraphicsItemChange@QGraphicsItem@@ABV2@@Z @ 1803 NONAME ; class QVariant QDeclarativeBasePositioner::itemChange(enum QGraphicsItem::GraphicsItemChange, class QVariant const &) - ??0QDeclarativeAbstractAnimation@@IAE@AAVQDeclarativeAbstractAnimationPrivate@@PAVQObject@@@Z @ 1804 NONAME ; QDeclarativeAbstractAnimation::QDeclarativeAbstractAnimation(class QDeclarativeAbstractAnimationPrivate &, class QObject *) - ?resume@QDeclarativeAbstractAnimation@@QAEXXZ @ 1805 NONAME ; void QDeclarativeAbstractAnimation::resume(void) - ?runningChanged@QDeclarativeTimer@@IAEXXZ @ 1806 NONAME ; void QDeclarativeTimer::runningChanged(void) - ?ticked@QDeclarativeTimer@@AAEXXZ @ 1807 NONAME ; void QDeclarativeTimer::ticked(void) - ?graphicsWidgetGeometryChanged@QDeclarativeBasePositioner@@IAEXXZ @ 1808 NONAME ; void QDeclarativeBasePositioner::graphicsWidgetGeometryChanged(void) - ?trUtf8@QDeclarativeTimer@@SA?AVQString@@PBD0H@Z @ 1809 NONAME ; class QString QDeclarativeTimer::trUtf8(char const *, char const *, int) - ??0QDeclarativeTimer@@QAE@PAVQObject@@@Z @ 1810 NONAME ; QDeclarativeTimer::QDeclarativeTimer(class QObject *) - ?loops@QDeclarativeAbstractAnimation@@QBEHXZ @ 1811 NONAME ; int QDeclarativeAbstractAnimation::loops(void) const - ?setTarget@QDeclarativeAbstractAnimation@@EAEXABVQDeclarativeProperty@@@Z @ 1812 NONAME ; void QDeclarativeAbstractAnimation::setTarget(class QDeclarativeProperty const &) - ?alwaysRunToEnd@QDeclarativeAbstractAnimation@@QBE_NXZ @ 1813 NONAME ; bool QDeclarativeAbstractAnimation::alwaysRunToEnd(void) const - ?tr@QDeclarativeTimer@@SA?AVQString@@PBD0H@Z @ 1814 NONAME ; class QString QDeclarativeTimer::tr(char const *, char const *, int) - ?status@QDeclarativeDebugService@@QBE?AW4Status@1@XZ @ 1815 NONAME ; enum QDeclarativeDebugService::Status QDeclarativeDebugService::status(void) const - ?intervalChanged@QDeclarativeTimer@@IAEXXZ @ 1816 NONAME ; void QDeclarativeTimer::intervalChanged(void) - ?isPaused@QDeclarativeAbstractAnimation@@QBE_NXZ @ 1817 NONAME ; bool QDeclarativeAbstractAnimation::isPaused(void) const - ?getStaticMetaObject@QDeclarativeAbstractAnimation@@SAABUQMetaObject@@XZ @ 1818 NONAME ; struct QMetaObject const & QDeclarativeAbstractAnimation::getStaticMetaObject(void) - ?group@QDeclarativeAbstractAnimation@@QBEPAVQDeclarativeAnimationGroup@@XZ @ 1819 NONAME ; class QDeclarativeAnimationGroup * QDeclarativeAbstractAnimation::group(void) const - ?classBegin@QDeclarativeTimer@@MAEXXZ @ 1820 NONAME ; void QDeclarativeTimer::classBegin(void) - ?restart@QDeclarativeTimer@@QAEXXZ @ 1821 NONAME ; void QDeclarativeTimer::restart(void) - ?move@QDeclarativeBasePositioner@@QBEPAVQDeclarativeTransition@@XZ @ 1822 NONAME ; class QDeclarativeTransition * QDeclarativeBasePositioner::move(void) const - ?spacingChanged@QDeclarativeBasePositioner@@IAEXXZ @ 1823 NONAME ; void QDeclarativeBasePositioner::spacingChanged(void) - ?qt_metacast@QDeclarativeBasePositioner@@UAEPAXPBD@Z @ 1824 NONAME ; void * QDeclarativeBasePositioner::qt_metacast(char const *) - ??1QDeclarativeTimer@@UAE@XZ @ 1825 NONAME ; QDeclarativeTimer::~QDeclarativeTimer(void) - ?getStaticMetaObject@QDeclarativeTimer@@SAABUQMetaObject@@XZ @ 1826 NONAME ; struct QMetaObject const & QDeclarativeTimer::getStaticMetaObject(void) - ?tr@QDeclarativeBasePositioner@@SA?AVQString@@PBD0H@Z @ 1827 NONAME ; class QString QDeclarativeBasePositioner::tr(char const *, char const *, int) - ??1QDeclarativeBasePositioner@@UAE@XZ @ 1828 NONAME ; QDeclarativeBasePositioner::~QDeclarativeBasePositioner(void) - ?moveChanged@QDeclarativeBasePositioner@@IAEXXZ @ 1829 NONAME ; void QDeclarativeBasePositioner::moveChanged(void) - ?qt_metacast@QDeclarativeTimer@@UAEPAXPBD@Z @ 1830 NONAME ; void * QDeclarativeTimer::qt_metacast(char const *) - ?metaObject@QDeclarativeBasePositioner@@UBEPBUQMetaObject@@XZ @ 1831 NONAME ; struct QMetaObject const * QDeclarativeBasePositioner::metaObject(void) const - ?alwaysRunToEndChanged@QDeclarativeAbstractAnimation@@IAEX_N@Z @ 1832 NONAME ; void QDeclarativeAbstractAnimation::alwaysRunToEndChanged(bool) - ?triggeredOnStartChanged@QDeclarativeTimer@@IAEXXZ @ 1833 NONAME ; void QDeclarativeTimer::triggeredOnStartChanged(void) - ?isRunning@QDeclarativeTimer@@QBE_NXZ @ 1834 NONAME ; bool QDeclarativeTimer::isRunning(void) const - ?update@QDeclarativeTimer@@AAEXXZ @ 1835 NONAME ; void QDeclarativeTimer::update(void) - ?stop@QDeclarativeAbstractAnimation@@QAEXXZ @ 1836 NONAME ; void QDeclarativeAbstractAnimation::stop(void) - ?addChanged@QDeclarativeBasePositioner@@IAEXXZ @ 1837 NONAME ; void QDeclarativeBasePositioner::addChanged(void) - ?start@QDeclarativeAbstractAnimation@@QAEXXZ @ 1838 NONAME ; void QDeclarativeAbstractAnimation::start(void) - ?qt_metacall@QDeclarativeAbstractAnimation@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1839 NONAME ; int QDeclarativeAbstractAnimation::qt_metacall(enum QMetaObject::Call, int, void * *) diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index 9a61523..7805dae 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -12892,5 +12892,4 @@ EXPORTS ?setTimeout@QTapAndHoldGesture@@SAXH@Z @ 12891 NONAME ; void QTapAndHoldGesture::setTimeout(int) ?qmljsDebugArguments@QApplicationPrivate@@2VQString@@A @ 12892 NONAME ; class QString QApplicationPrivate::qmljsDebugArguments ?effectiveBoundingRect@QGraphicsItemPrivate@@QBE?AVQRectF@@PAVQGraphicsItem@@@Z @ 12893 NONAME ; class QRectF QGraphicsItemPrivate::effectiveBoundingRect(class QGraphicsItem *) const - ?lastResortFont@QFont@@QBE?AVQString@@XZ @ 12894 NONAME ; class QString QFont::lastResortFont(void) const diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index f496839..01679be 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -3711,5 +3711,4 @@ EXPORTS _ZlsR11QDataStreamRK12QEasingCurve @ 3710 NONAME _ZltRK13QElapsedTimerS1_ @ 3711 NONAME _ZrsR11QDataStreamR12QEasingCurve @ 3712 NONAME - _Z26qt_symbian_SetupThreadHeapiR24SStdEpocThreadCreateInfo @ 3713 NONAME diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def index d4084cc..11dee4d 100644 --- a/src/s60installs/eabi/QtDeclarativeu.def +++ b/src/s60installs/eabi/QtDeclarativeu.def @@ -673,7 +673,7 @@ EXPORTS _ZN22QDeclarativeTransitionD0Ev @ 672 NONAME _ZN22QDeclarativeTransitionD1Ev @ 673 NONAME _ZN22QDeclarativeTransitionD2Ev @ 674 NONAME - _ZN23QDeclarativeDebugClient10setEnabledEb @ 675 NONAME ABSENT + _ZN23QDeclarativeDebugClient10setEnabledEb @ 675 NONAME _ZN23QDeclarativeDebugClient11qt_metacallEN11QMetaObject4CallEiPPv @ 676 NONAME _ZN23QDeclarativeDebugClient11qt_metacastEPKc @ 677 NONAME _ZN23QDeclarativeDebugClient11sendMessageERK10QByteArray @ 678 NONAME @@ -766,7 +766,7 @@ EXPORTS _ZN24QDeclarativeDebugService11qt_metacallEN11QMetaObject4CallEiPPv @ 765 NONAME _ZN24QDeclarativeDebugService11qt_metacastEPKc @ 766 NONAME _ZN24QDeclarativeDebugService11sendMessageERK10QByteArray @ 767 NONAME - _ZN24QDeclarativeDebugService14enabledChangedEb @ 768 NONAME ABSENT + _ZN24QDeclarativeDebugService14enabledChangedEb @ 768 NONAME _ZN24QDeclarativeDebugService14objectToStringEP7QObject @ 769 NONAME _ZN24QDeclarativeDebugService15messageReceivedERK10QByteArray @ 770 NONAME _ZN24QDeclarativeDebugService16staticMetaObjectE @ 771 NONAME DATA 16 @@ -1351,7 +1351,7 @@ EXPORTS _ZNK21QDeclarativeDomObject8propertyERK10QByteArray @ 1350 NONAME _ZNK21QDeclarativeListModel10metaObjectEv @ 1351 NONAME _ZNK21QDeclarativeListModel3getEi @ 1352 NONAME - _ZNK21QDeclarativeListModel4dataEiRK5QListIiE @ 1353 NONAME ABSENT + _ZNK21QDeclarativeListModel4dataEiRK5QListIiE @ 1353 NONAME _ZNK21QDeclarativeListModel4dataEii @ 1354 NONAME _ZNK21QDeclarativeListModel5countEv @ 1355 NONAME _ZNK21QDeclarativeListModel5rolesEv @ 1356 NONAME @@ -1390,9 +1390,9 @@ EXPORTS _ZNK22QDeclarativeTransition7toStateEv @ 1389 NONAME _ZNK22QDeclarativeTransition9fromStateEv @ 1390 NONAME _ZNK23QDeclarativeDebugClient10metaObjectEv @ 1391 NONAME - _ZNK23QDeclarativeDebugClient11isConnectedEv @ 1392 NONAME ABSENT + _ZNK23QDeclarativeDebugClient11isConnectedEv @ 1392 NONAME _ZNK23QDeclarativeDebugClient4nameEv @ 1393 NONAME - _ZNK23QDeclarativeDebugClient9isEnabledEv @ 1394 NONAME ABSENT + _ZNK23QDeclarativeDebugClient9isEnabledEv @ 1394 NONAME _ZNK23QDeclarativeDomDocument10rootObjectEv @ 1395 NONAME _ZNK23QDeclarativeDomDocument6errorsEv @ 1396 NONAME _ZNK23QDeclarativeDomDocument7importsEv @ 1397 NONAME @@ -1427,7 +1427,7 @@ EXPORTS _ZNK24QDeclarativeCustomParser12evaluateEnumERK10QByteArray @ 1426 NONAME _ZNK24QDeclarativeDebugService10metaObjectEv @ 1427 NONAME _ZNK24QDeclarativeDebugService4nameEv @ 1428 NONAME - _ZNK24QDeclarativeDebugService9isEnabledEv @ 1429 NONAME ABSENT + _ZNK24QDeclarativeDebugService9isEnabledEv @ 1429 NONAME _ZNK24QDeclarativeDomComponent13componentRootEv @ 1430 NONAME _ZNK24QDeclarativeScriptString11scopeObjectEv @ 1431 NONAME _ZNK24QDeclarativeScriptString6scriptEv @ 1432 NONAME @@ -1747,140 +1747,4 @@ EXPORTS _ZN21QDeclarativeListModelC1EPKS_P32QDeclarativeListModelWorkerAgent @ 1746 NONAME _ZN21QDeclarativeListModelC2EPKS_P32QDeclarativeListModelWorkerAgent @ 1747 NONAME _ZNK21QDeclarativeListModel14inWorkerThreadEv @ 1748 NONAME - _ZN23QDeclarativeDebugHelper15getScriptEngineEP18QDeclarativeEngine @ 1749 NONAME - _ZN23QDeclarativeDebugHelper26setAnimationSlowDownFactorEf @ 1750 NONAME - _ZN17QDeclarativeTimer10classBeginEv @ 1751 NONAME - _ZN17QDeclarativeTimer10setRunningEb @ 1752 NONAME - _ZN17QDeclarativeTimer11qt_metacallEN11QMetaObject4CallEiPPv @ 1753 NONAME - _ZN17QDeclarativeTimer11qt_metacastEPKc @ 1754 NONAME - _ZN17QDeclarativeTimer11setIntervalEi @ 1755 NONAME - _ZN17QDeclarativeTimer12setRepeatingEb @ 1756 NONAME - _ZN17QDeclarativeTimer13repeatChangedEv @ 1757 NONAME - _ZN17QDeclarativeTimer14runningChangedEv @ 1758 NONAME - _ZN17QDeclarativeTimer15intervalChangedEv @ 1759 NONAME - _ZN17QDeclarativeTimer16staticMetaObjectE @ 1760 NONAME DATA 16 - _ZN17QDeclarativeTimer17componentCompleteEv @ 1761 NONAME - _ZN17QDeclarativeTimer19getStaticMetaObjectEv @ 1762 NONAME - _ZN17QDeclarativeTimer19setTriggeredOnStartEb @ 1763 NONAME - _ZN17QDeclarativeTimer23triggeredOnStartChangedEv @ 1764 NONAME - _ZN17QDeclarativeTimer4stopEv @ 1765 NONAME - _ZN17QDeclarativeTimer5startEv @ 1766 NONAME - _ZN17QDeclarativeTimer6tickedEv @ 1767 NONAME - _ZN17QDeclarativeTimer6updateEv @ 1768 NONAME - _ZN17QDeclarativeTimer7restartEv @ 1769 NONAME - _ZN17QDeclarativeTimer8finishedEv @ 1770 NONAME - _ZN17QDeclarativeTimer9triggeredEv @ 1771 NONAME - _ZN17QDeclarativeTimerC1EP7QObject @ 1772 NONAME - _ZN17QDeclarativeTimerC2EP7QObject @ 1773 NONAME - _ZN23QDeclarativeDebugClient13statusChangedENS_6StatusE @ 1774 NONAME - _ZN23QDeclarativeDebugClientD0Ev @ 1775 NONAME - _ZN23QDeclarativeDebugClientD1Ev @ 1776 NONAME - _ZN23QDeclarativeDebugClientD2Ev @ 1777 NONAME - _ZN23QDeclarativeEngineDebug13statusChangedENS_6StatusE @ 1778 NONAME - _ZN24QDeclarativeDebugService13statusChangedENS_6StatusE @ 1779 NONAME - _ZN24QDeclarativeDebugServiceD0Ev @ 1780 NONAME - _ZN24QDeclarativeDebugServiceD1Ev @ 1781 NONAME - _ZN24QDeclarativeDebugServiceD2Ev @ 1782 NONAME - _ZN26QDeclarativeBasePositioner10addChangedEv @ 1783 NONAME - _ZN26QDeclarativeBasePositioner10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 1784 NONAME - _ZN26QDeclarativeBasePositioner10setSpacingEi @ 1785 NONAME - _ZN26QDeclarativeBasePositioner11moveChangedEv @ 1786 NONAME - _ZN26QDeclarativeBasePositioner11qt_metacallEN11QMetaObject4CallEiPPv @ 1787 NONAME - _ZN26QDeclarativeBasePositioner11qt_metacastEPKc @ 1788 NONAME - _ZN26QDeclarativeBasePositioner14prePositioningEv @ 1789 NONAME - _ZN26QDeclarativeBasePositioner14spacingChangedEv @ 1790 NONAME - _ZN26QDeclarativeBasePositioner16staticMetaObjectE @ 1791 NONAME DATA 16 - _ZN26QDeclarativeBasePositioner17componentCompleteEv @ 1792 NONAME - _ZN26QDeclarativeBasePositioner19getStaticMetaObjectEv @ 1793 NONAME - _ZN26QDeclarativeBasePositioner22finishApplyTransitionsEv @ 1794 NONAME - _ZN26QDeclarativeBasePositioner29graphicsWidgetGeometryChangedEv @ 1795 NONAME - _ZN26QDeclarativeBasePositioner6setAddEP22QDeclarativeTransition @ 1796 NONAME - _ZN26QDeclarativeBasePositioner7setMoveEP22QDeclarativeTransition @ 1797 NONAME - _ZN26QDeclarativeBasePositioner9positionXEiRKNS_14PositionedItemE @ 1798 NONAME - _ZN26QDeclarativeBasePositioner9positionYEiRKNS_14PositionedItemE @ 1799 NONAME - _ZN26QDeclarativeBasePositionerC2ENS_14PositionerTypeEP16QDeclarativeItem @ 1800 NONAME - _ZN26QDeclarativeBasePositionerC2ER33QDeclarativeBasePositionerPrivateNS_14PositionerTypeEP16QDeclarativeItem @ 1801 NONAME - _ZN26QDeclarativeBasePositionerD0Ev @ 1802 NONAME - _ZN26QDeclarativeBasePositionerD1Ev @ 1803 NONAME - _ZN26QDeclarativeBasePositionerD2Ev @ 1804 NONAME - _ZN27QDeclarativeDebugConnectionD0Ev @ 1805 NONAME - _ZN27QDeclarativeDebugConnectionD1Ev @ 1806 NONAME - _ZN27QDeclarativeDebugConnectionD2Ev @ 1807 NONAME - _ZN29QDeclarativeAbstractAnimation10classBeginEv @ 1808 NONAME - _ZN29QDeclarativeAbstractAnimation10setRunningEb @ 1809 NONAME - _ZN29QDeclarativeAbstractAnimation10transitionER5QListI18QDeclarativeActionERS0_I20QDeclarativePropertyENS_19TransitionDirectionE @ 1810 NONAME - _ZN29QDeclarativeAbstractAnimation11currentTimeEv @ 1811 NONAME - _ZN29QDeclarativeAbstractAnimation11qt_metacallEN11QMetaObject4CallEiPPv @ 1812 NONAME - _ZN29QDeclarativeAbstractAnimation11qt_metacastEPKc @ 1813 NONAME - _ZN29QDeclarativeAbstractAnimation13pausedChangedEb @ 1814 NONAME - _ZN29QDeclarativeAbstractAnimation14runningChangedEb @ 1815 NONAME - _ZN29QDeclarativeAbstractAnimation14setCurrentTimeEi @ 1816 NONAME - _ZN29QDeclarativeAbstractAnimation16loopCountChangedEi @ 1817 NONAME - _ZN29QDeclarativeAbstractAnimation16setDefaultTargetERK20QDeclarativeProperty @ 1818 NONAME - _ZN29QDeclarativeAbstractAnimation16staticMetaObjectE @ 1819 NONAME DATA 16 - _ZN29QDeclarativeAbstractAnimation16timelineCompleteEv @ 1820 NONAME - _ZN29QDeclarativeAbstractAnimation17componentCompleteEv @ 1821 NONAME - _ZN29QDeclarativeAbstractAnimation17setAlwaysRunToEndEb @ 1822 NONAME - _ZN29QDeclarativeAbstractAnimation18componentFinalizedEv @ 1823 NONAME - _ZN29QDeclarativeAbstractAnimation19getStaticMetaObjectEv @ 1824 NONAME - _ZN29QDeclarativeAbstractAnimation20notifyRunningChangedEb @ 1825 NONAME - _ZN29QDeclarativeAbstractAnimation21alwaysRunToEndChangedEb @ 1826 NONAME - _ZN29QDeclarativeAbstractAnimation21setDisableUserControlEv @ 1827 NONAME - _ZN29QDeclarativeAbstractAnimation4stopEv @ 1828 NONAME - _ZN29QDeclarativeAbstractAnimation5pauseEv @ 1829 NONAME - _ZN29QDeclarativeAbstractAnimation5startEv @ 1830 NONAME - _ZN29QDeclarativeAbstractAnimation6resumeEv @ 1831 NONAME - _ZN29QDeclarativeAbstractAnimation7restartEv @ 1832 NONAME - _ZN29QDeclarativeAbstractAnimation7startedEv @ 1833 NONAME - _ZN29QDeclarativeAbstractAnimation8completeEv @ 1834 NONAME - _ZN29QDeclarativeAbstractAnimation8setGroupEP26QDeclarativeAnimationGroup @ 1835 NONAME - _ZN29QDeclarativeAbstractAnimation8setLoopsEi @ 1836 NONAME - _ZN29QDeclarativeAbstractAnimation9completedEv @ 1837 NONAME - _ZN29QDeclarativeAbstractAnimation9setPausedEb @ 1838 NONAME - _ZN29QDeclarativeAbstractAnimation9setTargetERK20QDeclarativeProperty @ 1839 NONAME - _ZN29QDeclarativeAbstractAnimationC2EP7QObject @ 1840 NONAME - _ZN29QDeclarativeAbstractAnimationC2ER36QDeclarativeAbstractAnimationPrivateP7QObject @ 1841 NONAME - _ZN29QDeclarativeAbstractAnimationD0Ev @ 1842 NONAME - _ZN29QDeclarativeAbstractAnimationD1Ev @ 1843 NONAME - _ZN29QDeclarativeAbstractAnimationD2Ev @ 1844 NONAME - _ZNK16QDeclarativeType20attachedPropertiesIdEv @ 1845 NONAME - _ZNK17QDeclarativeTimer10metaObjectEv @ 1846 NONAME - _ZNK17QDeclarativeTimer11isRepeatingEv @ 1847 NONAME - _ZNK17QDeclarativeTimer16triggeredOnStartEv @ 1848 NONAME - _ZNK17QDeclarativeTimer8intervalEv @ 1849 NONAME - _ZNK17QDeclarativeTimer9isRunningEv @ 1850 NONAME - _ZNK23QDeclarativeDebugClient6statusEv @ 1851 NONAME - _ZNK23QDeclarativeEngineDebug6statusEv @ 1852 NONAME - _ZNK24QDeclarativeDebugService6statusEv @ 1853 NONAME - _ZNK26QDeclarativeBasePositioner10metaObjectEv @ 1854 NONAME - _ZNK26QDeclarativeBasePositioner3addEv @ 1855 NONAME - _ZNK26QDeclarativeBasePositioner4moveEv @ 1856 NONAME - _ZNK26QDeclarativeBasePositioner7spacingEv @ 1857 NONAME - _ZNK29QDeclarativeAbstractAnimation10metaObjectEv @ 1858 NONAME - _ZNK29QDeclarativeAbstractAnimation14alwaysRunToEndEv @ 1859 NONAME - _ZNK29QDeclarativeAbstractAnimation5groupEv @ 1860 NONAME - _ZNK29QDeclarativeAbstractAnimation5loopsEv @ 1861 NONAME - _ZNK29QDeclarativeAbstractAnimation8isPausedEv @ 1862 NONAME - _ZNK29QDeclarativeAbstractAnimation9isRunningEv @ 1863 NONAME - _ZTI17QDeclarativeTimer @ 1864 NONAME - _ZTI26QDeclarativeBasePositioner @ 1865 NONAME - _ZTI29QDeclarativeAbstractAnimation @ 1866 NONAME - _ZTV17QDeclarativeTimer @ 1867 NONAME - _ZTV26QDeclarativeBasePositioner @ 1868 NONAME - _ZTV29QDeclarativeAbstractAnimation @ 1869 NONAME - _ZThn12_N29QDeclarativeAbstractAnimation10classBeginEv @ 1870 NONAME - _ZThn12_N29QDeclarativeAbstractAnimation17componentCompleteEv @ 1871 NONAME - _ZThn12_N29QDeclarativeAbstractAnimationD0Ev @ 1872 NONAME - _ZThn12_N29QDeclarativeAbstractAnimationD1Ev @ 1873 NONAME - _ZThn16_N26QDeclarativeBasePositioner17componentCompleteEv @ 1874 NONAME - _ZThn16_N26QDeclarativeBasePositionerD0Ev @ 1875 NONAME - _ZThn16_N26QDeclarativeBasePositionerD1Ev @ 1876 NONAME - _ZThn8_N17QDeclarativeTimer10classBeginEv @ 1877 NONAME - _ZThn8_N17QDeclarativeTimer17componentCompleteEv @ 1878 NONAME - _ZThn8_N26QDeclarativeBasePositioner10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 1879 NONAME - _ZThn8_N26QDeclarativeBasePositionerD0Ev @ 1880 NONAME - _ZThn8_N26QDeclarativeBasePositionerD1Ev @ 1881 NONAME - _ZThn8_N29QDeclarativeAbstractAnimation9setTargetERK20QDeclarativeProperty @ 1882 NONAME - _ZThn8_N29QDeclarativeAbstractAnimationD0Ev @ 1883 NONAME - _ZThn8_N29QDeclarativeAbstractAnimationD1Ev @ 1884 NONAME diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 634b7af..4442d33 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -12097,5 +12097,4 @@ EXPORTS _ZN19QApplicationPrivate19qmljsDebugArgumentsE @ 12096 NONAME DATA 4 _ZN20QGraphicsItemPrivate26childrenBoundingRectHelperEP10QTransformP6QRectFP13QGraphicsItem @ 12097 NONAME _ZNK20QGraphicsItemPrivate21effectiveBoundingRectEP13QGraphicsItem @ 12098 NONAME - _ZNK5QFont14lastResortFontEv @ 12099 NONAME -- cgit v0.12 From 36dff2ee879021bbb0d2f1ca8826088a1969e8f0 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 6 Oct 2010 11:43:53 +0100 Subject: Fix for tst_qdir cd(non existant) test case Reviewed-By: Thomas Zander --- src/corelib/io/qfilesystemengine_symbian.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 1e6f277..318a5fd 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -240,6 +240,7 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM if (err) { data.size_ = 0; data.modificationTime_ = TTime(0); + data.entryFlags &= ~(QFileSystemMetaData::SymbianTEntryFlags); } } return data.hasFlags(what); -- cgit v0.12 From 3f8476b9d7dc6bf45db5c3e959d7bc045099cd08 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 6 Oct 2010 11:45:03 +0100 Subject: Implement error reporting for QFile position and size functions Reviewed-By: Thomas Zander --- src/corelib/io/qfsfileengine_unix.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index acb58a5..f5d40f1 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -518,6 +518,7 @@ qint64 QFSFileEnginePrivate::nativeWrite(const char *data, qint64 len) qint64 QFSFileEnginePrivate::nativePos() const { #ifdef Q_OS_SYMBIAN + const Q_Q(QFSFileEngine); if (symbianFile.SubSessionHandle()) { #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API qint64 pos = 0; @@ -526,8 +527,7 @@ qint64 QFSFileEnginePrivate::nativePos() const #endif TInt err = symbianFile.Seek(ESeekCurrent, pos); if(err != KErrNone) { - //TODO: error reporting - //setSymbianError(err, QFile::PositionError, QLatin1String("seek failed")); + const_cast(q)->setError(QFile::PositionError, QFileSystemEngine::errorString(err)); return -1; } return pos; @@ -635,6 +635,7 @@ bool QFSFileEngine::link(const QString &newName) qint64 QFSFileEnginePrivate::nativeSize() const { #ifdef Q_OS_SYMBIAN + const Q_Q(QFSFileEngine); if (symbianFile.SubSessionHandle()) { #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API qint64 size; @@ -643,7 +644,7 @@ qint64 QFSFileEnginePrivate::nativeSize() const #endif TInt err = symbianFile.Size(size); if(err != KErrNone) { - //TODO: error reporting + const_cast(q)->setError(QFile::PositionError, QFileSystemEngine::errorString(err)); return 0; } return size; -- cgit v0.12 From c509f556628fa73192604869b3f1135af5e447ca Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 6 Oct 2010 11:46:16 +0100 Subject: Add test case for enumerating an empty directory Reviewed-By: Thomas Zander --- tests/auto/qdiriterator/tst_qdiriterator.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/auto/qdiriterator/tst_qdiriterator.cpp b/tests/auto/qdiriterator/tst_qdiriterator.cpp index d93e91e..3a696b5 100644 --- a/tests/auto/qdiriterator/tst_qdiriterator.cpp +++ b/tests/auto/qdiriterator/tst_qdiriterator.cpp @@ -155,6 +155,8 @@ tst_QDirIterator::tst_QDirIterator() createDirectory("foo/bar"); createFile("foo/bar/readme.txt"); + createDirectory("empty"); + #ifndef Q_NO_SYMLINKS # if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) // ### Sadly, this is a platform difference right now. @@ -296,6 +298,20 @@ void tst_QDirIterator::iterateRelativeDirectory_data() #endif "entrylist/directory/dummy," "entrylist/writable").split(','); + + QTest::newRow("empty, default") + << QString("empty") << QDirIterator::IteratorFlags(0) + << QDir::Filters(QDir::NoFilter) << QStringList("*") +#if defined(Q_OS_SYMBIAN) || defined(Q_OS_WINCE) + << QStringList(); +#else + << QString("empty/.,empty/..").split(','); +#endif + + QTest::newRow("empty, QDir::NoDotAndDotDot") + << QString("empty") << QDirIterator::IteratorFlags(0) + << QDir::Filters(QDir::NoDotAndDotDot) << QStringList("*") + << QStringList(); } void tst_QDirIterator::iterateRelativeDirectory() -- cgit v0.12 From a9a7fa34f12c54df4951c7e3b3afd6b9712ea57a Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 6 Oct 2010 12:23:14 +0100 Subject: Fix RVCT compile error in tst_collections Reviewed-By: Olivier Goffart --- tests/auto/collections/tst_collections.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/collections/tst_collections.cpp b/tests/auto/collections/tst_collections.cpp index 0adceee..82ec0fa 100644 --- a/tests/auto/collections/tst_collections.cpp +++ b/tests/auto/collections/tst_collections.cpp @@ -3632,7 +3632,7 @@ template class C> void QTBUG13079_collectionInsideCollect } -static quint32 qHash(const QTBUG13079_Node &) +quint32 qHash(const QTBUG13079_Node &) { return 0; } -- cgit v0.12 From b5e87cbc927bbc5e58574c510dbd967c46da4bee Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 6 Oct 2010 16:28:05 +0100 Subject: Fix tst_qtemporaryfile failures on symbian The path created by the _gettemp function is not a native path, as it contains the wrong slashes. So convert it back to a QString first. Check for symbian file handle in the isReallyOpen function so that reopening temp files works correctly. Reviewed-By: Thomas Zander --- src/corelib/io/qtemporaryfile.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp index 479ea20..79dfa35 100644 --- a/src/corelib/io/qtemporaryfile.cpp +++ b/src/corelib/io/qtemporaryfile.cpp @@ -325,6 +325,9 @@ bool QTemporaryFileEngine::isReallyOpen() Q_D(QFSFileEngine); if (!((0 == d->fh) && (-1 == d->fd) +#if defined (Q_OS_SYMBIAN) + && (0 == d->symbianFile.SubSessionHandle()) +#endif #if defined Q_OS_WIN && (INVALID_HANDLE_VALUE == d->fileHandle) #endif @@ -377,7 +380,7 @@ bool QTemporaryFileEngine::open(QIODevice::OpenMode openMode) d->closeFileHandle = true; // Restore the file names (open() resets them). - d->fileEntry = QFileSystemEntry(QByteArray(filename), QFileSystemEntry::FromNativePath()); //changed now! + d->fileEntry = QFileSystemEntry(QString::fromLocal8Bit(filename)); //note that filename is NOT a native path filePathIsTemplate = false; delete [] filename; return true; -- cgit v0.12 From f571cba1997d142e5c9a08472b4489de61471c76 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 6 Oct 2010 17:16:16 +0100 Subject: Remove setSymbianError function Qt autotests require the same error code on all platforms, and the OS specific error to be in text format in the errorString. Tests were failing due to QFile::error returning more detailed information than was wanted. Reviewed-By: Thomas Zander --- src/corelib/io/qfsfileengine_unix.cpp | 41 ++++------------------------------- 1 file changed, 4 insertions(+), 37 deletions(-) diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index f5d40f1..a64f8dc 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -83,39 +83,6 @@ static bool isRelativePathSymbian(const QString& fileName) || (fileName.at(0) == QLatin1Char('/') && fileName.at(1) == QLatin1Char('/'))))); } -/*! - \internal - convert symbian error code to the one suitable for setError. - example usage: setSymbianError(err, QFile::CopyError, QLatin1String("copy error")) -*/ -void QFSFileEnginePrivate::setSymbianError(int symbianError, QFile::FileError defaultError, QString defaultString) -{ - Q_Q(QFSFileEngine); - switch (symbianError) { - case KErrNone: - q->setError(QFile::NoError, QLatin1String("")); - break; - case KErrAccessDenied: - q->setError(QFile::PermissionsError, QLatin1String("access denied")); - break; - case KErrPermissionDenied: - q->setError(QFile::PermissionsError, QLatin1String("permission denied")); - break; - case KErrAbort: - q->setError(QFile::AbortError, QLatin1String("aborted")); - break; - case KErrCancel: - q->setError(QFile::AbortError, QLatin1String("cancelled")); - break; - case KErrTimedOut: - q->setError(QFile::TimeOutError, QLatin1String("timed out")); - break; - default: - q->setError(defaultError, defaultString); - break; - } -} - #endif /*! @@ -272,7 +239,7 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) } if (r != KErrNone) { - setSymbianError(r, QFile::OpenError, QLatin1String("open error")); + q->setError(QFile::OpenError, QFileSystemEngine::errorString(r)); symbianFile.Close(); return false; } @@ -418,7 +385,7 @@ qint64 QFSFileEnginePrivate::nativeRead(char *data, qint64 len) TInt r = symbianFile.Read(ptr); if (r != KErrNone) { - setSymbianError(r, QFile::ReadError, QLatin1String("read error")); + q->setError(QFile::ReadError, QFileSystemEngine::errorString(r)); return -1; } return qint64(ptr.Length()); @@ -503,7 +470,7 @@ qint64 QFSFileEnginePrivate::nativeWrite(const char *data, qint64 len) TInt r = symbianFile.Write(ptr); if (r != KErrNone) { - setSymbianError(r, QFile::WriteError, QLatin1String("write error")); + q->setError(QFile::WriteError, QFileSystemEngine::errorString(r)); return -1; } return len; @@ -556,7 +523,7 @@ bool QFSFileEnginePrivate::nativeSeek(qint64 pos) #endif if (r != KErrNone) { - setSymbianError(r, QFile::PositionError, QLatin1String("seek failed")); + q->setError(QFile::PositionError, QFileSystemEngine::errorString(r)); return false; } return true; -- cgit v0.12 From a3427f351c1cfde94c5d55c03ba1a82c56d9b53d Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Thu, 7 Oct 2010 15:45:32 +0200 Subject: Fix compile --- src/corelib/io/qfilesystemengine_unix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 7c733c4..213fdc3 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -586,7 +586,7 @@ bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSyst Q_UNUSED(source); Q_UNUSED(target); // # we can implement this using sendfile(2) - errorString = QLatin1String("Not implemented!") + errorString = QLatin1String("Not implemented!"); return false; } -- cgit v0.12 From a780773292c3a59e1500f5e36c3de729a8f45f1c Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 8 Oct 2010 10:43:40 +0100 Subject: Create QSystemError class This class is for holding errors returned from system calls, which can be later converted to a string when a string is needed. This will eventually replace the setError(int,string) used in file engines so that strings are only created on demand. The scope of an error is used to distinguish error codes from the C standard library vs error codes from native calls. On some OS (e.g.windows) these error ranges overlap. Reviewed-By: joao --- src/corelib/kernel/kernel.pri | 118 +++++++++++----------- src/corelib/kernel/qsystemerror.cpp | 190 ++++++++++++++++++++++++++++++++++++ src/corelib/kernel/qsystemerror_p.h | 107 ++++++++++++++++++++ 3 files changed, 357 insertions(+), 58 deletions(-) create mode 100644 src/corelib/kernel/qsystemerror.cpp create mode 100644 src/corelib/kernel/qsystemerror_p.h diff --git a/src/corelib/kernel/kernel.pri b/src/corelib/kernel/kernel.pri index 1851e04..bd674a5 100644 --- a/src/corelib/kernel/kernel.pri +++ b/src/corelib/kernel/kernel.pri @@ -1,81 +1,83 @@ # Qt core object module HEADERS += \ - kernel/qabstracteventdispatcher.h \ + kernel/qabstracteventdispatcher.h \ kernel/qabstractitemmodel.h \ kernel/qabstractitemmodel_p.h \ - kernel/qbasictimer.h \ - kernel/qeventloop.h\ - kernel/qpointer.h \ + kernel/qbasictimer.h \ + kernel/qeventloop.h\ + kernel/qpointer.h \ kernel/qcorecmdlineargs_p.h \ - kernel/qcoreapplication.h \ - kernel/qcoreevent.h \ - kernel/qmetaobject.h \ - kernel/qmetatype.h \ - kernel/qmimedata.h \ - kernel/qobject.h \ - kernel/qobjectdefs.h \ - kernel/qsignalmapper.h \ - kernel/qsocketnotifier.h \ - kernel/qtimer.h \ - kernel/qtranslator.h \ + kernel/qcoreapplication.h \ + kernel/qcoreevent.h \ + kernel/qmetaobject.h \ + kernel/qmetatype.h \ + kernel/qmimedata.h \ + kernel/qobject.h \ + kernel/qobjectdefs.h \ + kernel/qsignalmapper.h \ + kernel/qsocketnotifier.h \ + kernel/qtimer.h \ + kernel/qtranslator.h \ kernel/qtranslator_p.h \ kernel/qvariant.h \ - kernel/qabstracteventdispatcher_p.h \ - kernel/qcoreapplication_p.h \ - kernel/qobjectcleanuphandler.h \ + kernel/qabstracteventdispatcher_p.h \ + kernel/qcoreapplication_p.h \ + kernel/qobjectcleanuphandler.h \ kernel/qvariant_p.h \ kernel/qmetaobject_p.h \ kernel/qobject_p.h \ - kernel/qcoreglobaldata_p.h \ - kernel/qsharedmemory.h \ + kernel/qcoreglobaldata_p.h \ + kernel/qsharedmemory.h \ kernel/qsharedmemory_p.h \ kernel/qsystemsemaphore.h \ kernel/qsystemsemaphore_p.h \ kernel/qfunctions_p.h \ - kernel/qmath.h + kernel/qmath.h \ + kernel/qsystemerror_p.h SOURCES += \ - kernel/qabstracteventdispatcher.cpp \ + kernel/qabstracteventdispatcher.cpp \ kernel/qabstractitemmodel.cpp \ - kernel/qbasictimer.cpp \ - kernel/qeventloop.cpp \ - kernel/qcoreapplication.cpp \ - kernel/qcoreevent.cpp \ - kernel/qmetaobject.cpp \ - kernel/qmetatype.cpp \ - kernel/qmimedata.cpp \ - kernel/qobject.cpp \ - kernel/qobjectcleanuphandler.cpp \ - kernel/qsignalmapper.cpp \ - kernel/qsocketnotifier.cpp \ - kernel/qtimer.cpp \ - kernel/qtranslator.cpp \ - kernel/qvariant.cpp \ + kernel/qbasictimer.cpp \ + kernel/qeventloop.cpp \ + kernel/qcoreapplication.cpp \ + kernel/qcoreevent.cpp \ + kernel/qmetaobject.cpp \ + kernel/qmetatype.cpp \ + kernel/qmimedata.cpp \ + kernel/qobject.cpp \ + kernel/qobjectcleanuphandler.cpp \ + kernel/qsignalmapper.cpp \ + kernel/qsocketnotifier.cpp \ + kernel/qtimer.cpp \ + kernel/qtranslator.cpp \ + kernel/qvariant.cpp \ kernel/qcoreglobaldata.cpp \ kernel/qsharedmemory.cpp \ kernel/qsystemsemaphore.cpp \ kernel/qpointer.cpp \ - kernel/qmath.cpp + kernel/qmath.cpp \ + kernel/qsystemerror.cpp win32 { - SOURCES += \ - kernel/qeventdispatcher_win.cpp \ - kernel/qcoreapplication_win.cpp \ - kernel/qwineventnotifier_p.cpp \ + SOURCES += \ + kernel/qeventdispatcher_win.cpp \ + kernel/qcoreapplication_win.cpp \ + kernel/qwineventnotifier_p.cpp \ kernel/qsharedmemory_win.cpp \ kernel/qsystemsemaphore_win.cpp - HEADERS += \ - kernel/qeventdispatcher_win_p.h \ - kernel/qwineventnotifier_p.h + HEADERS += \ + kernel/qeventdispatcher_win_p.h \ + kernel/qwineventnotifier_p.h } wince*: { - SOURCES += \ - kernel/qfunctions_wince.cpp - HEADERS += \ - kernel/qfunctions_wince.h + SOURCES += \ + kernel/qfunctions_wince.cpp + HEADERS += \ + kernel/qfunctions_wince.h } mac:!embedded { @@ -85,18 +87,18 @@ mac:!embedded { mac { SOURCES += \ - kernel/qcore_mac.cpp + kernel/qcore_mac.cpp } unix:!symbian { - SOURCES += \ + SOURCES += \ kernel/qcore_unix.cpp \ kernel/qcrashhandler.cpp \ kernel/qsharedmemory_unix.cpp \ kernel/qsystemsemaphore_unix.cpp - HEADERS += \ + HEADERS += \ kernel/qcore_unix_p.h \ - kernel/qcrashhandler_p.h + kernel/qcrashhandler_p.h contains(QT_CONFIG, glib) { SOURCES += \ @@ -115,7 +117,7 @@ unix:!symbian { } symbian { - SOURCES += \ + SOURCES += \ kernel/qcore_unix.cpp \ kernel/qcrashhandler.cpp \ kernel/qeventdispatcher_symbian.cpp \ @@ -123,7 +125,7 @@ symbian { kernel/qsharedmemory_symbian.cpp \ kernel/qsystemsemaphore_symbian.cpp - HEADERS += \ + HEADERS += \ kernel/qcore_unix_p.h \ kernel/qcrashhandler_p.h \ kernel/qeventdispatcher_symbian_p.h \ @@ -131,9 +133,9 @@ symbian { } vxworks { - SOURCES += \ - kernel/qfunctions_vxworks.cpp - HEADERS += \ - kernel/qfunctions_vxworks.h + SOURCES += \ + kernel/qfunctions_vxworks.cpp + HEADERS += \ + kernel/qfunctions_vxworks.h } diff --git a/src/corelib/kernel/qsystemerror.cpp b/src/corelib/kernel/qsystemerror.cpp new file mode 100644 index 0000000..065014a --- /dev/null +++ b/src/corelib/kernel/qsystemerror.cpp @@ -0,0 +1,190 @@ +/**************************************************************************** +** +** 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 QtCore 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 "qsystemerror_p.h" +#include + +static QString standardLibraryErrorString(int errorCode) +{ + const char *s = 0; + QString ret; + switch (errorCode) { + case 0: + break; + case EACCES: + s = QT_TRANSLATE_NOOP("QIODevice", "Permission denied"); + break; + case EMFILE: + s = QT_TRANSLATE_NOOP("QIODevice", "Too many open files"); + break; + case ENOENT: + s = QT_TRANSLATE_NOOP("QIODevice", "No such file or directory"); + break; + case ENOSPC: + s = QT_TRANSLATE_NOOP("QIODevice", "No space left on device"); + break; + default: { + #if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && _POSIX_VERSION >= 200112L && !defined(Q_OS_INTEGRITY) && !defined(Q_OS_QNX) + QByteArray buf(1024, '\0'); + ret = fromstrerror_helper(strerror_r(errorCode, buf.data(), buf.size()), buf); + #else + ret = QString::fromLocal8Bit(strerror(errorCode)); + #endif + break; } + } + if (s) { + // ######## this breaks moc build currently + // ret = QCoreApplication::translate("QIODevice", s); + ret = QString::fromLatin1(s); + } + return ret.trimmed(); +} + +#ifdef Q_OS_WIN +static QString windowsErrorString(int errorCode) +{ + QString ret; + wchar_t *string = 0; + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + errorCode, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPWSTR)&string, + 0, + NULL); + ret = QString::fromWCharArray(string); + LocalFree((HLOCAL)string); + + if (ret.isEmpty() && errorCode == ERROR_MOD_NOT_FOUND) + ret = QString::fromLatin1("The specified module could not be found."); + return ret; +} +#endif + +#ifdef Q_OS_SYMBIAN +static QString symbianErrorString(int errorCode) +{ + switch (errorCode) { + case KErrNotFound: + return QLatin1String("not found"); + case KErrCancel: + return QLatin1String("cancelled"); + case KErrNoMemory: + return QLatin1String("out of memory"); + case KErrNotSupported: + return QLatin1String("not supported"); + case KErrBadHandle: + return QLatin1String("bad handle"); //KERN-EXEC 0 panic is more likely + case KErrAlreadyExists: + return QLatin1String("already exists"); + case KErrPathNotFound: + return QLatin1String("path not found"); + case KErrInUse: + return QLatin1String("in use"); + case KErrNotReady: + return QLatin1String("not ready (e.g. FS dismounted, no memory card)"); + case KErrCorrupt: + return QLatin1String("corrupt"); + case KErrAccessDenied: + return QLatin1String("access denied"); + case KErrLocked: + return QLatin1String("locked"); + case KErrWrite: + return QLatin1String("incomplete write error"); + case KErrDisMounted: + return QLatin1String("file system dismounted during operation"); //i.e. a forcible dismount was done while we had files open + case KErrEof: + return QLatin1String("end of file"); + case KErrDiskFull: + return QLatin1String("no space in file system"); + case KErrBadName: + return QLatin1String("invalid filename"); + case KErrTimedOut: + return QLatin1String("timed out"); + case KErrBadDescriptor: + return QLatin1String("bad descriptor (passed address on stack to async call?)"); + case KErrAbort: + return QLatin1String("aborted"); + case KErrTooBig: + return QLatin1String("too big"); //e.g. trying to open a >2GB file with 32 bit API + case KErrBadPower: + return QLatin1String("insufficient power"); + case KErrDirFull: + return QLatin1String("no space in directory table"); + case KErrHardwareNotAvailable: + return QLatin1String("hardware not available"); + case KErrSessionClosed: + return QLatin1String("session closed"); + case KErrPermissionDenied: + return QLatin1String("permission denied"); + default: + return QString(QLatin1String("symbian error %d")).arg(errorCode); + } +} +#endif + +QString QSystemError::toString() +{ + switch(errorScope) { + case NativeError: +#if defined (Q_OS_WIN) + errorString = windowsErrorString(errorCode); + break; +#elif defined (Q_OS_SYMBIAN) + return symbianErrorString(errorCode); + break; +#else + //unix: fall through as native and standard library are the same +#endif + case StandardLibraryError: + return standardLibraryErrorString(errorCode); + break; + default: + qWarning("invalid error scope"); + //fall through + case NoError: + return QLatin1String("No error"); + break; + } +} + +QT_END_NAMESPACE + diff --git a/src/corelib/kernel/qsystemerror_p.h b/src/corelib/kernel/qsystemerror_p.h new file mode 100644 index 0000000..c2a13a8 --- /dev/null +++ b/src/corelib/kernel/qsystemerror_p.h @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** 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 QtCore 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$ +** +****************************************************************************/ + +#ifndef QSYSTEMERROR_P_H +#define QSYSTEMERROR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +class Q_CORE_EXPORT QSystemError +{ +public: + enum ErrorScope + { + NoError, + StandardLibraryError, + NativeError + }; + + inline QSystemError(int error, ErrorScope scope); + inline QSystemError(); + + QString toString(); + inline ErrorScope scope(); + inline int error(); + + //data members + int errorCode; + ErrorScope errorScope; +}; + +QSystemError::QSystemError(int error, QSystemError::ErrorScope scope) +: errorCode(error), errorScope(scope) +{ + +} + +QSystemError::QSystemError() +: errorCode(0), errorScope(NoError) +{ + +} + +QSystemError::ErrorScope QSystemError::scope() +{ + return errorScope; +} + +int QSystemError::error() +{ + return errorCode; +} + + +QT_END_NAMESPACE + +#endif // QSYSTEMERROR_P_H -- cgit v0.12 From bb66cbc4287d17a3f368d3e46e98ca026a5332c7 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 8 Oct 2010 15:26:36 +0100 Subject: Update DEF files Reviewed-By: Trust Me --- src/s60installs/bwins/QtCoreu.def | 13 +++ src/s60installs/bwins/QtGuiu.def | 75 ++++++++++++++-- src/s60installs/bwins/QtNetworku.def | 7 ++ src/s60installs/eabi/QtCoreu.def | 56 +++++++++++- src/s60installs/eabi/QtDeclarativeu.def | 149 ++++++++++++++++++++++++++++++-- src/s60installs/eabi/QtGuiu.def | 68 +++++++++++++-- src/s60installs/eabi/QtNetworku.def | 7 ++ 7 files changed, 353 insertions(+), 22 deletions(-) diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def index 052ec9a..4ad9fbb 100644 --- a/src/s60installs/bwins/QtCoreu.def +++ b/src/s60installs/bwins/QtCoreu.def @@ -4526,4 +4526,17 @@ EXPORTS ?unlockInternal@QMutex@@AAEXXZ @ 4525 NONAME ; void QMutex::unlockInternal(void) ?waitForDone@QThreadPool@@QAE_NH@Z @ 4526 NONAME ; bool QThreadPool::waitForDone(int) ?app_compile_version@QCoreApplicationPrivate@@2HA @ 4527 NONAME ; int QCoreApplicationPrivate::app_compile_version + ??0QFileInfo@@QAE@PAVQFileInfoPrivate@@@Z @ 4528 NONAME ; QFileInfo::QFileInfo(class QFileInfoPrivate *) + ??0QSystemError@@QAE@HW4ErrorScope@0@@Z @ 4529 NONAME ; QSystemError::QSystemError(int, enum QSystemError::ErrorScope) + ??0QSystemError@@QAE@XZ @ 4530 NONAME ; QSystemError::QSystemError(void) + ?cast@QMetaObject@@QBEPBVQObject@@PBV2@@Z @ 4531 NONAME ; class QObject const * QMetaObject::cast(class QObject const *) const + ?error@QSystemError@@QAEHXZ @ 4532 NONAME ; int QSystemError::error(void) + ?qt_symbian_SetupThreadHeap@@YAHHAAUSStdEpocThreadCreateInfo@@@Z @ 4533 NONAME ; int qt_symbian_SetupThreadHeap(int, struct SStdEpocThreadCreateInfo &) + ?scope@QSystemError@@QAE?AW4ErrorScope@1@XZ @ 4534 NONAME ; enum QSystemError::ErrorScope QSystemError::scope(void) + ?toAscii@QStringRef@@QBE?AVQByteArray@@XZ @ 4535 NONAME ; class QByteArray QStringRef::toAscii(void) const + ?toLatin1@QStringRef@@QBE?AVQByteArray@@XZ @ 4536 NONAME ; class QByteArray QStringRef::toLatin1(void) const + ?toLocal8Bit@QStringRef@@QBE?AVQByteArray@@XZ @ 4537 NONAME ; class QByteArray QStringRef::toLocal8Bit(void) const + ?toString@QSystemError@@QAE?AVQString@@XZ @ 4538 NONAME ; class QString QSystemError::toString(void) + ?toUcs4@QStringRef@@QBE?AV?$QVector@I@@XZ @ 4539 NONAME ; class QVector QStringRef::toUcs4(void) const + ?toUtf8@QStringRef@@QBE?AVQByteArray@@XZ @ 4540 NONAME ; class QByteArray QStringRef::toUtf8(void) const diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index 9a61523..305952c 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -35,7 +35,7 @@ EXPORTS ??0QApplication@@QAE@AAHPAPADW4Type@0@H@Z @ 34 NONAME ; QApplication::QApplication(int &, char * *, enum QApplication::Type, int) ??0QApplication@@QAE@AAHPAPAD_NH@Z @ 35 NONAME ; QApplication::QApplication(int &, char * *, bool, int) ??0QApplication@@QAE@P6APAVCApaApplication@@XZAAHPAPADH@Z @ 36 NONAME ; QApplication::QApplication(class CApaApplication * (*)(void), int &, char * *, int) - ??0QApplicationPrivate@@QAE@AAHPAPADW4Type@QApplication@@@Z @ 37 NONAME ; QApplicationPrivate::QApplicationPrivate(int &, char * *, enum QApplication::Type) + ??0QApplicationPrivate@@QAE@AAHPAPADW4Type@QApplication@@@Z @ 37 NONAME ABSENT ; QApplicationPrivate::QApplicationPrivate(int &, char * *, enum QApplication::Type) ??0QBitmap@@QAE@ABVQPixmap@@@Z @ 38 NONAME ; QBitmap::QBitmap(class QPixmap const &) ??0QBitmap@@QAE@ABVQSize@@@Z @ 39 NONAME ; QBitmap::QBitmap(class QSize const &) ??0QBitmap@@QAE@ABVQString@@PBD@Z @ 40 NONAME ; QBitmap::QBitmap(class QString const &, char const *) @@ -2195,7 +2195,7 @@ EXPORTS ?alphaF@QColor@@QBEMXZ @ 2194 NONAME ; float QColor::alphaF(void) const ?alphaMapForGlyph@QFontEngine@@UAE?AVQImage@@I@Z @ 2195 NONAME ; class QImage QFontEngine::alphaMapForGlyph(unsigned int) ?alphaMapForGlyph@QFontEngine@@UAE?AVQImage@@IABVQTransform@@@Z @ 2196 NONAME ; class QImage QFontEngine::alphaMapForGlyph(unsigned int, class QTransform const &) - ?alphaRGBMapForGlyph@QFontEngine@@UAE?AVQImage@@IHABVQTransform@@@Z @ 2197 NONAME ; class QImage QFontEngine::alphaRGBMapForGlyph(unsigned int, int, class QTransform const &) + ?alphaRGBMapForGlyph@QFontEngine@@UAE?AVQImage@@IHABVQTransform@@@Z @ 2197 NONAME ABSENT ; class QImage QFontEngine::alphaRGBMapForGlyph(unsigned int, int, class QTransform const &) ?alterCharForCapitalization@QFontPrivate@@QBEXAAVQChar@@@Z @ 2198 NONAME ; void QFontPrivate::alterCharForCapitalization(class QChar &) const ?alternateBase@QPalette@@QBEABVQBrush@@XZ @ 2199 NONAME ; class QBrush const & QPalette::alternateBase(void) const ?alternatingRowColors@QAbstractItemView@@QBE_NXZ @ 2200 NONAME ; bool QAbstractItemView::alternatingRowColors(void) const @@ -10909,7 +10909,7 @@ EXPORTS ?textWidth@QTextDocument@@QBEMXZ @ 10908 NONAME ; float QTextDocument::textWidth(void) const ?texture@QBrush@@QBE?AVQPixmap@@XZ @ 10909 NONAME ; class QPixmap QBrush::texture(void) const ?textureImage@QBrush@@QBE?AVQImage@@XZ @ 10910 NONAME ; class QImage QBrush::textureImage(void) const - ?textureMapForGlyph@QTextureGlyphCache@@QBE?AVQImage@@I@Z @ 10911 NONAME ; class QImage QTextureGlyphCache::textureMapForGlyph(unsigned int) const + ?textureMapForGlyph@QTextureGlyphCache@@QBE?AVQImage@@I@Z @ 10911 NONAME ABSENT ; class QImage QTextureGlyphCache::textureMapForGlyph(unsigned int) const ?themeName@QIcon@@SA?AVQString@@XZ @ 10912 NONAME ; class QString QIcon::themeName(void) ?themeSearchPaths@QIcon@@SA?AVQStringList@@XZ @ 10913 NONAME ; class QStringList QIcon::themeSearchPaths(void) ?tickInterval@QSlider@@QBEHXZ @ 10914 NONAME ; int QSlider::tickInterval(void) const @@ -12511,7 +12511,7 @@ EXPORTS ?staticMetaObject@QFileSystemModel@@2UQMetaObject@@B @ 12510 NONAME ; struct QMetaObject const QFileSystemModel::staticMetaObject ?staticMetaObject@QKeyEventTransition@@2UQMetaObject@@B @ 12511 NONAME ; struct QMetaObject const QKeyEventTransition::staticMetaObject ?staticMetaObject@QLayout@@2UQMetaObject@@B @ 12512 NONAME ; struct QMetaObject const QLayout::staticMetaObject - ?app_compile_version@QApplicationPrivate@@2HA @ 12513 NONAME ; int QApplicationPrivate::app_compile_version + ?app_compile_version@QApplicationPrivate@@2HA @ 12513 NONAME ABSENT ; int QApplicationPrivate::app_compile_version ?spacerItemFactoryMethod@QLayoutPrivate@@2P6APAVQSpacerItem@@PBVQLayout@@HHW4Policy@QSizePolicy@@1@ZA @ 12514 NONAME ; class QSpacerItem * (*QLayoutPrivate::spacerItemFactoryMethod)(class QLayout const *, int, int, enum QSizePolicy::Policy, enum QSizePolicy::Policy) ?allWidgets@QWidgetPrivate@@2PAV?$QSet@PAVQWidget@@@@A @ 12515 NONAME ; class QSet * QWidgetPrivate::allWidgets ?effectiveFocusWidget@QWidgetPrivate@@QAEPAVQWidget@@XZ @ 12516 NONAME ; class QWidget * QWidgetPrivate::effectiveFocusWidget(void) @@ -12522,7 +12522,7 @@ EXPORTS ?addCacheData@QVectorPath@@QBEPAUCacheEntry@1@PAVQPaintEngineEx@@PAXP6AX01@Z@Z @ 12521 NONAME ; struct QVectorPath::CacheEntry * QVectorPath::addCacheData(class QPaintEngineEx *, void *, void (*)(class QPaintEngineEx *, void *)) const ?discardUpdateRequest@QGraphicsItemPrivate@@QBE_N_N00@Z @ 12522 NONAME ; bool QGraphicsItemPrivate::discardUpdateRequest(bool, bool, bool) const ?makeCacheable@QVectorPath@@QBEXXZ @ 12523 NONAME ; void QVectorPath::makeCacheable(void) const - ??0Tab@QTextOption@@QAE@ABU01@@Z @ 12524 NONAME ; QTextOption::Tab::Tab(struct QTextOption::Tab const &) + ??0Tab@QTextOption@@QAE@ABU01@@Z @ 12524 NONAME ABSENT ; QTextOption::Tab::Tab(struct QTextOption::Tab const &) ?effectiveBoundingRect@QGraphicsItemPrivate@@QBE?AVQRectF@@ABV2@@Z @ 12525 NONAME ; class QRectF QGraphicsItemPrivate::effectiveBoundingRect(class QRectF const &) const ?glyphCache@QFontEngine@@QBEPAVQFontEngineGlyphCache@@PAXW4Type@2@ABVQTransform@@@Z @ 12526 NONAME ; class QFontEngineGlyphCache * QFontEngine::glyphCache(void *, enum QFontEngineGlyphCache::Type, class QTransform const &) const ?qt_blurImage@@YAXAAVQImage@@M_NH@Z @ 12527 NONAME ; void qt_blurImage(class QImage &, float, bool, int) @@ -12824,7 +12824,7 @@ EXPORTS ?fromImageReader@QPixmapData@@UAEXPAVQImageReader@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12823 NONAME ; void QPixmapData::fromImageReader(class QImageReader *, class QFlags) ?toPolygon@QBezier@@QBE?AVQPolygonF@@M@Z @ 12824 NONAME ; class QPolygonF QBezier::toPolygon(float) const ?prepare@QStaticText@@QAEXABVQTransform@@ABVQFont@@@Z @ 12825 NONAME ; void QStaticText::prepare(class QTransform const &, class QFont const &) - ?fillTexture@QImageTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@I@Z @ 12826 NONAME ; void QImageTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int) + ?fillTexture@QImageTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@I@Z @ 12826 NONAME ABSENT ; void QImageTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int) ?OpenFileL@QS60MainDocument@@UAEXAAPAVCFileStore@@AAVRFile@@@Z @ 12827 NONAME ; void QS60MainDocument::OpenFileL(class CFileStore * &, class RFile &) ?fixup@QIntValidator@@UBEXAAVQString@@@Z @ 12828 NONAME ; void QIntValidator::fixup(class QString &) const ?resetHeight@QGraphicsItemPrivate@@UAEXXZ @ 12829 NONAME ; void QGraphicsItemPrivate::resetHeight(void) @@ -12893,4 +12893,67 @@ EXPORTS ?qmljsDebugArguments@QApplicationPrivate@@2VQString@@A @ 12892 NONAME ; class QString QApplicationPrivate::qmljsDebugArguments ?effectiveBoundingRect@QGraphicsItemPrivate@@QBE?AVQRectF@@PAVQGraphicsItem@@@Z @ 12893 NONAME ; class QRectF QGraphicsItemPrivate::effectiveBoundingRect(class QGraphicsItem *) const ?lastResortFont@QFont@@QBE?AVQString@@XZ @ 12894 NONAME ; class QString QFont::lastResortFont(void) const + ??0QApplicationPrivate@@QAE@AAHPAPADW4Type@QApplication@@H@Z @ 12895 NONAME ; QApplicationPrivate::QApplicationPrivate(int &, char * *, enum QApplication::Type, int) + ??0QGlyphs@@QAE@ABV0@@Z @ 12896 NONAME ; QGlyphs::QGlyphs(class QGlyphs const &) + ??0QGlyphs@@QAE@XZ @ 12897 NONAME ; QGlyphs::QGlyphs(void) + ??1QGlyphs@@QAE@XZ @ 12898 NONAME ; QGlyphs::~QGlyphs(void) + ??4QGlyphs@@QAEAAV0@ABV0@@Z @ 12899 NONAME ; class QGlyphs & QGlyphs::operator=(class QGlyphs const &) + ??6@YA?AVQDebug@@V0@PBVQSymbianEvent@@@Z @ 12900 NONAME ; class QDebug operator<<(class QDebug, class QSymbianEvent const *) + ??8QGlyphs@@QBE_NABV0@@Z @ 12901 NONAME ; bool QGlyphs::operator==(class QGlyphs const &) const + ??9QGlyphs@@QBE_NABV0@@Z @ 12902 NONAME ; bool QGlyphs::operator!=(class QGlyphs const &) const + ??HQGlyphs@@ABE?AV0@ABV0@@Z @ 12903 NONAME ; class QGlyphs QGlyphs::operator+(class QGlyphs const &) const + ??MQItemSelectionRange@@QBE_NABV0@@Z @ 12904 NONAME ; bool QItemSelectionRange::operator<(class QItemSelectionRange const &) const + ??YQGlyphs@@AAEAAV0@ABV0@@Z @ 12905 NONAME ; class QGlyphs & QGlyphs::operator+=(class QGlyphs const &) + ?alphaRGBMapForGlyph@QFontEngine@@UAE?AVQImage@@IUQFixed@@HABVQTransform@@@Z @ 12906 NONAME ; class QImage QFontEngine::alphaRGBMapForGlyph(unsigned int, struct QFixed, int, class QTransform const &) + ?buddy@QAbstractProxyModel@@UBE?AVQModelIndex@@ABV2@@Z @ 12907 NONAME ; class QModelIndex QAbstractProxyModel::buddy(class QModelIndex const &) const + ?calculateSubPixelPositionCount@QTextureGlyphCache@@IBEHI@Z @ 12908 NONAME ; int QTextureGlyphCache::calculateSubPixelPositionCount(unsigned int) const + ?canFetchMore@QAbstractProxyModel@@UBE_NABVQModelIndex@@@Z @ 12909 NONAME ; bool QAbstractProxyModel::canFetchMore(class QModelIndex const &) const + ?clear@QGlyphs@@QAEXXZ @ 12910 NONAME ; void QGlyphs::clear(void) + ?clipBoundingRect@QPainter@@QBE?AVQRectF@@XZ @ 12911 NONAME ; class QRectF QPainter::clipBoundingRect(void) const + ?convertToPostscriptFontFamilyName@QFontEngine@@SA?AVQByteArray@@ABV2@@Z @ 12912 NONAME ; class QByteArray QFontEngine::convertToPostscriptFontFamilyName(class QByteArray const &) + ?createExplicitFont@QFontEngine@@UBE?AVQFont@@XZ @ 12913 NONAME ; class QFont QFontEngine::createExplicitFont(void) const + ?createExplicitFontWithName@QFontEngine@@IBE?AVQFont@@ABVQString@@@Z @ 12914 NONAME ; class QFont QFontEngine::createExplicitFontWithName(class QString const &) const + ?detach@QGlyphs@@AAEXXZ @ 12915 NONAME ; void QGlyphs::detach(void) + ?drawGlyphs@QPainter@@QAEXABVQPointF@@ABVQGlyphs@@@Z @ 12916 NONAME ; void QPainter::drawGlyphs(class QPointF const &, class QGlyphs const &) + ?fetchMore@QAbstractProxyModel@@UAEXABVQModelIndex@@@Z @ 12917 NONAME ; void QAbstractProxyModel::fetchMore(class QModelIndex const &) + ?fill@QImage@@QAEXABVQColor@@@Z @ 12918 NONAME ; void QImage::fill(class QColor const &) + ?fill@QImage@@QAEXW4GlobalColor@Qt@@@Z @ 12919 NONAME ; void QImage::fill(enum Qt::GlobalColor) + ?fillInPendingGlyphs@QTextureGlyphCache@@QAEXXZ @ 12920 NONAME ; void QTextureGlyphCache::fillInPendingGlyphs(void) + ?fillTexture@QImageTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@IUQFixed@@@Z @ 12921 NONAME ; void QImageTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int, struct QFixed) + ?font@QGlyphs@@QBE?AVQFont@@XZ @ 12922 NONAME ; class QFont QGlyphs::font(void) const + ?get@QFontPrivate@@SAPAV1@ABVQFont@@@Z @ 12923 NONAME ; class QFontPrivate * QFontPrivate::get(class QFont const &) + ?glyphIndexes@QGlyphs@@QBE?AV?$QVector@I@@XZ @ 12924 NONAME ; class QVector QGlyphs::glyphIndexes(void) const + ?glyphs@QTextFragment@@QBE?AV?$QList@VQGlyphs@@@@XZ @ 12925 NONAME ; class QList QTextFragment::glyphs(void) const + ?glyphs@QTextLayout@@QBE?AV?$QList@VQGlyphs@@@@XZ @ 12926 NONAME ; class QList QTextLayout::glyphs(void) const + ?glyphs@QTextLine@@ABE?AV?$QList@VQGlyphs@@@@HH@Z @ 12927 NONAME ; class QList QTextLine::glyphs(int, int) const + ?hasChildren@QAbstractProxyModel@@UBE_NABVQModelIndex@@@Z @ 12928 NONAME ; bool QAbstractProxyModel::hasChildren(class QModelIndex const &) const + ?hasHeightForWidth@QWidgetPrivate@@UBE_NXZ @ 12929 NONAME ; bool QWidgetPrivate::hasHeightForWidth(void) const + ?hasWidthForHeight@QSizePolicy@@QBE_NXZ @ 12930 NONAME ; bool QSizePolicy::hasWidthForHeight(void) const + ?heightForWidth@QTabWidget@@UBEHH@Z @ 12931 NONAME ; int QTabWidget::heightForWidth(int) const + ?inFontUcs4@QFontMetrics@@QBE_NI@Z @ 12932 NONAME ; bool QFontMetrics::inFontUcs4(unsigned int) const + ?inFontUcs4@QFontMetricsF@@QBE_NI@Z @ 12933 NONAME ; bool QFontMetricsF::inFontUcs4(unsigned int) const + ?maxTextureHeight@QTextureGlyphCache@@UBEHXZ @ 12934 NONAME ; int QTextureGlyphCache::maxTextureHeight(void) const + ?maxTextureWidth@QTextureGlyphCache@@UBEHXZ @ 12935 NONAME ; int QTextureGlyphCache::maxTextureWidth(void) const + ?mimeData@QAbstractProxyModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 12936 NONAME ; class QMimeData * QAbstractProxyModel::mimeData(class QList const &) const + ?mimeTypes@QAbstractProxyModel@@UBE?AVQStringList@@XZ @ 12937 NONAME ; class QStringList QAbstractProxyModel::mimeTypes(void) const + ?minimumSizeHint@QCheckBox@@UBE?AVQSize@@XZ @ 12938 NONAME ; class QSize QCheckBox::minimumSizeHint(void) const + ?minimumSizeHint@QRadioButton@@UBE?AVQSize@@XZ @ 12939 NONAME ; class QSize QRadioButton::minimumSizeHint(void) const + ?numberPrefix@QTextListFormat@@QBE?AVQString@@XZ @ 12940 NONAME ; class QString QTextListFormat::numberPrefix(void) const + ?numberSuffix@QTextListFormat@@QBE?AVQString@@XZ @ 12941 NONAME ; class QString QTextListFormat::numberSuffix(void) const + ?positions@QGlyphs@@QBE?AV?$QVector@VQPointF@@@@XZ @ 12942 NONAME ; class QVector QGlyphs::positions(void) const + ?removeItem@QGraphicsGridLayout@@QAEXPAVQGraphicsLayoutItem@@@Z @ 12943 NONAME ; void QGraphicsGridLayout::removeItem(class QGraphicsLayoutItem *) + ?resizeCache@QTextureGlyphCache@@QAEXHH@Z @ 12944 NONAME ; void QTextureGlyphCache::resizeCache(int, int) + ?setFont@QGlyphs@@QAEXABVQFont@@@Z @ 12945 NONAME ; void QGlyphs::setFont(class QFont const &) + ?setGlyphIndexes@QGlyphs@@QAEXABV?$QVector@I@@@Z @ 12946 NONAME ; void QGlyphs::setGlyphIndexes(class QVector const &) + ?setItemData@QAbstractProxyModel@@UAE_NABVQModelIndex@@ABV?$QMap@HVQVariant@@@@@Z @ 12947 NONAME ; bool QAbstractProxyModel::setItemData(class QModelIndex const &, class QMap const &) + ?setNumberPrefix@QTextListFormat@@QAEXABVQString@@@Z @ 12948 NONAME ; void QTextListFormat::setNumberPrefix(class QString const &) + ?setNumberSuffix@QTextListFormat@@QAEXABVQString@@@Z @ 12949 NONAME ; void QTextListFormat::setNumberSuffix(class QString const &) + ?setPositions@QGlyphs@@QAEXABV?$QVector@VQPointF@@@@@Z @ 12950 NONAME ; void QGlyphs::setPositions(class QVector const &) + ?setWidthForHeight@QSizePolicy@@QAEX_N@Z @ 12951 NONAME ; void QSizePolicy::setWidthForHeight(bool) + ?sort@QAbstractProxyModel@@UAEXHW4SortOrder@Qt@@@Z @ 12952 NONAME ; void QAbstractProxyModel::sort(int, enum Qt::SortOrder) + ?span@QAbstractProxyModel@@UBE?AVQSize@@ABVQModelIndex@@@Z @ 12953 NONAME ; class QSize QAbstractProxyModel::span(class QModelIndex const &) const + ?subPixelPositionForX@QTextureGlyphCache@@QBE?AUQFixed@@U2@@Z @ 12954 NONAME ; struct QFixed QTextureGlyphCache::subPixelPositionForX(struct QFixed) const + ?supportedDropActions@QAbstractProxyModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 12955 NONAME ; class QFlags QAbstractProxyModel::supportedDropActions(void) const + ?supportsSubPixelPositions@QFontEngine@@UBE_NXZ @ 12956 NONAME ; bool QFontEngine::supportsSubPixelPositions(void) const + ?textureMapForGlyph@QTextureGlyphCache@@QBE?AVQImage@@IUQFixed@@@Z @ 12957 NONAME ; class QImage QTextureGlyphCache::textureMapForGlyph(unsigned int, struct QFixed) const diff --git a/src/s60installs/bwins/QtNetworku.def b/src/s60installs/bwins/QtNetworku.def index 21718d3..ef43370 100644 --- a/src/s60installs/bwins/QtNetworku.def +++ b/src/s60installs/bwins/QtNetworku.def @@ -1145,4 +1145,11 @@ EXPORTS ?setNetworkAccessible@QNetworkAccessManager@@QAEXW4NetworkAccessibility@1@@Z @ 1144 NONAME ; void QNetworkAccessManager::setNetworkAccessible(enum QNetworkAccessManager::NetworkAccessibility) ??_EQBearerEngineFactoryInterface@@UAE@I@Z @ 1145 NONAME ; QBearerEngineFactoryInterface::~QBearerEngineFactoryInterface(unsigned int) ?enablePolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1146 NONAME ; void QNetworkConfigurationManagerPrivate::enablePolling(void) + ?joinMulticastGroup@QUdpSocket@@QAE_NABVQHostAddress@@@Z @ 1147 NONAME ; bool QUdpSocket::joinMulticastGroup(class QHostAddress const &) + ?joinMulticastGroup@QUdpSocket@@QAE_NABVQHostAddress@@ABVQNetworkInterface@@@Z @ 1148 NONAME ; bool QUdpSocket::joinMulticastGroup(class QHostAddress const &, class QNetworkInterface const &) + ?leaveMulticastGroup@QUdpSocket@@QAE_NABVQHostAddress@@@Z @ 1149 NONAME ; bool QUdpSocket::leaveMulticastGroup(class QHostAddress const &) + ?leaveMulticastGroup@QUdpSocket@@QAE_NABVQHostAddress@@ABVQNetworkInterface@@@Z @ 1150 NONAME ; bool QUdpSocket::leaveMulticastGroup(class QHostAddress const &, class QNetworkInterface const &) + ?multicastInterface@QUdpSocket@@QBE?AVQNetworkInterface@@XZ @ 1151 NONAME ; class QNetworkInterface QUdpSocket::multicastInterface(void) const + ?setFinished@QNetworkReply@@IAEX_N@Z @ 1152 NONAME ; void QNetworkReply::setFinished(bool) + ?setMulticastInterface@QUdpSocket@@QAEXABVQNetworkInterface@@@Z @ 1153 NONAME ; void QUdpSocket::setMulticastInterface(class QNetworkInterface const &) diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index 01679be..ab2c5e5 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -620,8 +620,8 @@ EXPORTS _ZN14QObjectPrivate11clearGuardsEP7QObject @ 619 NONAME _ZN14QObjectPrivate13addConnectionEiPNS_10ConnectionE @ 620 NONAME _ZN14QObjectPrivate14deleteChildrenEv @ 621 NONAME - _ZN14QObjectPrivate14setDeleteWatchEPS_Pi @ 622 NONAME - _ZN14QObjectPrivate16resetDeleteWatchEPS_Pii @ 623 NONAME + _ZN14QObjectPrivate14setDeleteWatchEPS_Pi @ 622 NONAME ABSENT + _ZN14QObjectPrivate16resetDeleteWatchEPS_Pii @ 623 NONAME ABSENT _ZN14QObjectPrivate16setCurrentSenderEP7QObjectPNS_6SenderE @ 624 NONAME ABSENT _ZN14QObjectPrivate16setParent_helperEP7QObject @ 625 NONAME _ZN14QObjectPrivate18resetCurrentSenderEP7QObjectPNS_6SenderES3_ @ 626 NONAME ABSENT @@ -1274,8 +1274,8 @@ EXPORTS _ZN23QCoreApplicationPrivate34sendThroughApplicationEventFiltersEP7QObjectP6QEvent @ 1273 NONAME _ZN23QCoreApplicationPrivate35appendApplicationPathToLibraryPathsEv @ 1274 NONAME _ZN23QCoreApplicationPrivate7attribsE @ 1275 NONAME DATA 4 - _ZN23QCoreApplicationPrivateC1ERiPPc @ 1276 NONAME - _ZN23QCoreApplicationPrivateC2ERiPPc @ 1277 NONAME + _ZN23QCoreApplicationPrivateC1ERiPPc @ 1276 NONAME ABSENT + _ZN23QCoreApplicationPrivateC2ERiPPc @ 1277 NONAME ABSENT _ZN23QCoreApplicationPrivateD0Ev @ 1278 NONAME _ZN23QCoreApplicationPrivateD1Ev @ 1279 NONAME _ZN23QCoreApplicationPrivateD2Ev @ 1280 NONAME @@ -3711,4 +3711,52 @@ EXPORTS _ZlsR11QDataStreamRK12QEasingCurve @ 3710 NONAME _ZltRK13QElapsedTimerS1_ @ 3711 NONAME _ZrsR11QDataStreamR12QEasingCurve @ 3712 NONAME + _Z26qt_symbian_SetupThreadHeapiR24SStdEpocThreadCreateInfo @ 3713 NONAME + _ZN11QThreadPool11waitForDoneEi @ 3714 NONAME + _ZN12QSystemError8toStringEv @ 3715 NONAME + _ZN13QSharedMemory12setNativeKeyERK7QString @ 3716 NONAME + _ZN16QCoreApplicationC1ERiPPci @ 3717 NONAME + _ZN16QCoreApplicationC2ERiPPci @ 3718 NONAME + _ZN23QCoreApplicationPrivate19app_compile_versionE @ 3719 NONAME DATA 4 + _ZN23QCoreApplicationPrivateC1ERiPPcj @ 3720 NONAME + _ZN23QCoreApplicationPrivateC2ERiPPcj @ 3721 NONAME + _ZN6QMutex12lockInternalEv @ 3722 NONAME + _ZN6QMutex14unlockInternalEv @ 3723 NONAME + _ZN7QObject10disconnectEPKS_RK11QMetaMethodS1_S4_ @ 3724 NONAME + _ZN7QObject7connectEPKS_RK11QMetaMethodS1_S4_N2Qt14ConnectionTypeE @ 3725 NONAME + _ZN9QFileInfoC1EP16QFileInfoPrivate @ 3726 NONAME + _ZN9QFileInfoC2EP16QFileInfoPrivate @ 3727 NONAME + _ZNK10QStringRef10startsWithE13QLatin1StringN2Qt15CaseSensitivityE @ 3728 NONAME + _ZNK10QStringRef10startsWithE5QCharN2Qt15CaseSensitivityE @ 3729 NONAME + _ZNK10QStringRef10startsWithERK7QStringN2Qt15CaseSensitivityE @ 3730 NONAME + _ZNK10QStringRef10startsWithERKS_N2Qt15CaseSensitivityE @ 3731 NONAME + _ZNK10QStringRef11lastIndexOfE13QLatin1StringiN2Qt15CaseSensitivityE @ 3732 NONAME + _ZNK10QStringRef11lastIndexOfE5QChariN2Qt15CaseSensitivityE @ 3733 NONAME + _ZNK10QStringRef11lastIndexOfERK7QStringiN2Qt15CaseSensitivityE @ 3734 NONAME + _ZNK10QStringRef11lastIndexOfERKS_iN2Qt15CaseSensitivityE @ 3735 NONAME + _ZNK10QStringRef11toLocal8BitEv @ 3736 NONAME + _ZNK10QStringRef5countE5QCharN2Qt15CaseSensitivityE @ 3737 NONAME + _ZNK10QStringRef5countERK7QStringN2Qt15CaseSensitivityE @ 3738 NONAME + _ZNK10QStringRef5countERKS_N2Qt15CaseSensitivityE @ 3739 NONAME + _ZNK10QStringRef6toUcs4Ev @ 3740 NONAME + _ZNK10QStringRef6toUtf8Ev @ 3741 NONAME + _ZNK10QStringRef7indexOfE13QLatin1StringiN2Qt15CaseSensitivityE @ 3742 NONAME + _ZNK10QStringRef7indexOfE5QChariN2Qt15CaseSensitivityE @ 3743 NONAME + _ZNK10QStringRef7indexOfERK7QStringiN2Qt15CaseSensitivityE @ 3744 NONAME + _ZNK10QStringRef7indexOfERKS_iN2Qt15CaseSensitivityE @ 3745 NONAME + _ZNK10QStringRef7toAsciiEv @ 3746 NONAME + _ZNK10QStringRef8endsWithE13QLatin1StringN2Qt15CaseSensitivityE @ 3747 NONAME + _ZNK10QStringRef8endsWithE5QCharN2Qt15CaseSensitivityE @ 3748 NONAME + _ZNK10QStringRef8endsWithERK7QStringN2Qt15CaseSensitivityE @ 3749 NONAME + _ZNK10QStringRef8endsWithERKS_N2Qt15CaseSensitivityE @ 3750 NONAME + _ZNK10QStringRef8toLatin1Ev @ 3751 NONAME + _ZNK11QMetaObject4castEPK7QObject @ 3752 NONAME + _ZNK13QSharedMemory9nativeKeyEv @ 3753 NONAME + _ZNK4QUrl11isLocalFileEv @ 3754 NONAME + _ZNK7QObject17senderSignalIndexEv @ 3755 NONAME + _ZNK7QString10startsWithERK10QStringRefN2Qt15CaseSensitivityE @ 3756 NONAME + _ZNK7QString11lastIndexOfERK10QStringRefiN2Qt15CaseSensitivityE @ 3757 NONAME + _ZNK7QString5countERK10QStringRefN2Qt15CaseSensitivityE @ 3758 NONAME + _ZNK7QString7indexOfERK10QStringRefiN2Qt15CaseSensitivityE @ 3759 NONAME + _ZNK7QString8endsWithERK10QStringRefN2Qt15CaseSensitivityE @ 3760 NONAME diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def index 11dee4d..c0b43ac 100644 --- a/src/s60installs/eabi/QtDeclarativeu.def +++ b/src/s60installs/eabi/QtDeclarativeu.def @@ -673,7 +673,7 @@ EXPORTS _ZN22QDeclarativeTransitionD0Ev @ 672 NONAME _ZN22QDeclarativeTransitionD1Ev @ 673 NONAME _ZN22QDeclarativeTransitionD2Ev @ 674 NONAME - _ZN23QDeclarativeDebugClient10setEnabledEb @ 675 NONAME + _ZN23QDeclarativeDebugClient10setEnabledEb @ 675 NONAME ABSENT _ZN23QDeclarativeDebugClient11qt_metacallEN11QMetaObject4CallEiPPv @ 676 NONAME _ZN23QDeclarativeDebugClient11qt_metacastEPKc @ 677 NONAME _ZN23QDeclarativeDebugClient11sendMessageERK10QByteArray @ 678 NONAME @@ -766,7 +766,7 @@ EXPORTS _ZN24QDeclarativeDebugService11qt_metacallEN11QMetaObject4CallEiPPv @ 765 NONAME _ZN24QDeclarativeDebugService11qt_metacastEPKc @ 766 NONAME _ZN24QDeclarativeDebugService11sendMessageERK10QByteArray @ 767 NONAME - _ZN24QDeclarativeDebugService14enabledChangedEb @ 768 NONAME + _ZN24QDeclarativeDebugService14enabledChangedEb @ 768 NONAME ABSENT _ZN24QDeclarativeDebugService14objectToStringEP7QObject @ 769 NONAME _ZN24QDeclarativeDebugService15messageReceivedERK10QByteArray @ 770 NONAME _ZN24QDeclarativeDebugService16staticMetaObjectE @ 771 NONAME DATA 16 @@ -1351,7 +1351,7 @@ EXPORTS _ZNK21QDeclarativeDomObject8propertyERK10QByteArray @ 1350 NONAME _ZNK21QDeclarativeListModel10metaObjectEv @ 1351 NONAME _ZNK21QDeclarativeListModel3getEi @ 1352 NONAME - _ZNK21QDeclarativeListModel4dataEiRK5QListIiE @ 1353 NONAME + _ZNK21QDeclarativeListModel4dataEiRK5QListIiE @ 1353 NONAME ABSENT _ZNK21QDeclarativeListModel4dataEii @ 1354 NONAME _ZNK21QDeclarativeListModel5countEv @ 1355 NONAME _ZNK21QDeclarativeListModel5rolesEv @ 1356 NONAME @@ -1390,9 +1390,9 @@ EXPORTS _ZNK22QDeclarativeTransition7toStateEv @ 1389 NONAME _ZNK22QDeclarativeTransition9fromStateEv @ 1390 NONAME _ZNK23QDeclarativeDebugClient10metaObjectEv @ 1391 NONAME - _ZNK23QDeclarativeDebugClient11isConnectedEv @ 1392 NONAME + _ZNK23QDeclarativeDebugClient11isConnectedEv @ 1392 NONAME ABSENT _ZNK23QDeclarativeDebugClient4nameEv @ 1393 NONAME - _ZNK23QDeclarativeDebugClient9isEnabledEv @ 1394 NONAME + _ZNK23QDeclarativeDebugClient9isEnabledEv @ 1394 NONAME ABSENT _ZNK23QDeclarativeDomDocument10rootObjectEv @ 1395 NONAME _ZNK23QDeclarativeDomDocument6errorsEv @ 1396 NONAME _ZNK23QDeclarativeDomDocument7importsEv @ 1397 NONAME @@ -1427,7 +1427,7 @@ EXPORTS _ZNK24QDeclarativeCustomParser12evaluateEnumERK10QByteArray @ 1426 NONAME _ZNK24QDeclarativeDebugService10metaObjectEv @ 1427 NONAME _ZNK24QDeclarativeDebugService4nameEv @ 1428 NONAME - _ZNK24QDeclarativeDebugService9isEnabledEv @ 1429 NONAME + _ZNK24QDeclarativeDebugService9isEnabledEv @ 1429 NONAME ABSENT _ZNK24QDeclarativeDomComponent13componentRootEv @ 1430 NONAME _ZNK24QDeclarativeScriptString11scopeObjectEv @ 1431 NONAME _ZNK24QDeclarativeScriptString6scriptEv @ 1432 NONAME @@ -1747,4 +1747,141 @@ EXPORTS _ZN21QDeclarativeListModelC1EPKS_P32QDeclarativeListModelWorkerAgent @ 1746 NONAME _ZN21QDeclarativeListModelC2EPKS_P32QDeclarativeListModelWorkerAgent @ 1747 NONAME _ZNK21QDeclarativeListModel14inWorkerThreadEv @ 1748 NONAME + _ZN17QDeclarativeTimer10classBeginEv @ 1749 NONAME + _ZN17QDeclarativeTimer10setRunningEb @ 1750 NONAME + _ZN17QDeclarativeTimer11qt_metacallEN11QMetaObject4CallEiPPv @ 1751 NONAME + _ZN17QDeclarativeTimer11qt_metacastEPKc @ 1752 NONAME + _ZN17QDeclarativeTimer11setIntervalEi @ 1753 NONAME + _ZN17QDeclarativeTimer12setRepeatingEb @ 1754 NONAME + _ZN17QDeclarativeTimer13repeatChangedEv @ 1755 NONAME + _ZN17QDeclarativeTimer14runningChangedEv @ 1756 NONAME + _ZN17QDeclarativeTimer15intervalChangedEv @ 1757 NONAME + _ZN17QDeclarativeTimer16staticMetaObjectE @ 1758 NONAME DATA 16 + _ZN17QDeclarativeTimer17componentCompleteEv @ 1759 NONAME + _ZN17QDeclarativeTimer19getStaticMetaObjectEv @ 1760 NONAME + _ZN17QDeclarativeTimer19setTriggeredOnStartEb @ 1761 NONAME + _ZN17QDeclarativeTimer23triggeredOnStartChangedEv @ 1762 NONAME + _ZN17QDeclarativeTimer4stopEv @ 1763 NONAME + _ZN17QDeclarativeTimer5startEv @ 1764 NONAME + _ZN17QDeclarativeTimer6tickedEv @ 1765 NONAME + _ZN17QDeclarativeTimer6updateEv @ 1766 NONAME + _ZN17QDeclarativeTimer7restartEv @ 1767 NONAME + _ZN17QDeclarativeTimer8finishedEv @ 1768 NONAME + _ZN17QDeclarativeTimer9triggeredEv @ 1769 NONAME + _ZN17QDeclarativeTimerC1EP7QObject @ 1770 NONAME + _ZN17QDeclarativeTimerC2EP7QObject @ 1771 NONAME + _ZN23QDeclarativeDebugClient13statusChangedENS_6StatusE @ 1772 NONAME + _ZN23QDeclarativeDebugClientD0Ev @ 1773 NONAME + _ZN23QDeclarativeDebugClientD1Ev @ 1774 NONAME + _ZN23QDeclarativeDebugClientD2Ev @ 1775 NONAME + _ZN23QDeclarativeDebugHelper15getScriptEngineEP18QDeclarativeEngine @ 1776 NONAME + _ZN23QDeclarativeDebugHelper26setAnimationSlowDownFactorEf @ 1777 NONAME + _ZN23QDeclarativeEngineDebug13statusChangedENS_6StatusE @ 1778 NONAME + _ZN24QDeclarativeDebugService13statusChangedENS_6StatusE @ 1779 NONAME + _ZN24QDeclarativeDebugServiceD0Ev @ 1780 NONAME + _ZN24QDeclarativeDebugServiceD1Ev @ 1781 NONAME + _ZN24QDeclarativeDebugServiceD2Ev @ 1782 NONAME + _ZN26QDeclarativeBasePositioner10addChangedEv @ 1783 NONAME + _ZN26QDeclarativeBasePositioner10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 1784 NONAME + _ZN26QDeclarativeBasePositioner10setSpacingEi @ 1785 NONAME + _ZN26QDeclarativeBasePositioner11moveChangedEv @ 1786 NONAME + _ZN26QDeclarativeBasePositioner11qt_metacallEN11QMetaObject4CallEiPPv @ 1787 NONAME + _ZN26QDeclarativeBasePositioner11qt_metacastEPKc @ 1788 NONAME + _ZN26QDeclarativeBasePositioner14prePositioningEv @ 1789 NONAME + _ZN26QDeclarativeBasePositioner14spacingChangedEv @ 1790 NONAME + _ZN26QDeclarativeBasePositioner16staticMetaObjectE @ 1791 NONAME DATA 16 + _ZN26QDeclarativeBasePositioner17componentCompleteEv @ 1792 NONAME + _ZN26QDeclarativeBasePositioner19getStaticMetaObjectEv @ 1793 NONAME + _ZN26QDeclarativeBasePositioner22finishApplyTransitionsEv @ 1794 NONAME + _ZN26QDeclarativeBasePositioner29graphicsWidgetGeometryChangedEv @ 1795 NONAME + _ZN26QDeclarativeBasePositioner6setAddEP22QDeclarativeTransition @ 1796 NONAME + _ZN26QDeclarativeBasePositioner7setMoveEP22QDeclarativeTransition @ 1797 NONAME + _ZN26QDeclarativeBasePositioner9positionXEiRKNS_14PositionedItemE @ 1798 NONAME + _ZN26QDeclarativeBasePositioner9positionYEiRKNS_14PositionedItemE @ 1799 NONAME + _ZN26QDeclarativeBasePositionerC2ENS_14PositionerTypeEP16QDeclarativeItem @ 1800 NONAME + _ZN26QDeclarativeBasePositionerC2ER33QDeclarativeBasePositionerPrivateNS_14PositionerTypeEP16QDeclarativeItem @ 1801 NONAME + _ZN26QDeclarativeBasePositionerD0Ev @ 1802 NONAME + _ZN26QDeclarativeBasePositionerD1Ev @ 1803 NONAME + _ZN26QDeclarativeBasePositionerD2Ev @ 1804 NONAME + _ZN27QDeclarativeDebugConnectionD0Ev @ 1805 NONAME + _ZN27QDeclarativeDebugConnectionD1Ev @ 1806 NONAME + _ZN27QDeclarativeDebugConnectionD2Ev @ 1807 NONAME + _ZN27QDeclarativePropertyPrivate7connectEPK7QObjectiS2_iiPi @ 1808 NONAME + _ZN29QDeclarativeAbstractAnimation10classBeginEv @ 1809 NONAME + _ZN29QDeclarativeAbstractAnimation10setRunningEb @ 1810 NONAME + _ZN29QDeclarativeAbstractAnimation10transitionER5QListI18QDeclarativeActionERS0_I20QDeclarativePropertyENS_19TransitionDirectionE @ 1811 NONAME + _ZN29QDeclarativeAbstractAnimation11currentTimeEv @ 1812 NONAME + _ZN29QDeclarativeAbstractAnimation11qt_metacallEN11QMetaObject4CallEiPPv @ 1813 NONAME + _ZN29QDeclarativeAbstractAnimation11qt_metacastEPKc @ 1814 NONAME + _ZN29QDeclarativeAbstractAnimation13pausedChangedEb @ 1815 NONAME + _ZN29QDeclarativeAbstractAnimation14runningChangedEb @ 1816 NONAME + _ZN29QDeclarativeAbstractAnimation14setCurrentTimeEi @ 1817 NONAME + _ZN29QDeclarativeAbstractAnimation16loopCountChangedEi @ 1818 NONAME + _ZN29QDeclarativeAbstractAnimation16setDefaultTargetERK20QDeclarativeProperty @ 1819 NONAME + _ZN29QDeclarativeAbstractAnimation16staticMetaObjectE @ 1820 NONAME DATA 16 + _ZN29QDeclarativeAbstractAnimation16timelineCompleteEv @ 1821 NONAME + _ZN29QDeclarativeAbstractAnimation17componentCompleteEv @ 1822 NONAME + _ZN29QDeclarativeAbstractAnimation17setAlwaysRunToEndEb @ 1823 NONAME + _ZN29QDeclarativeAbstractAnimation18componentFinalizedEv @ 1824 NONAME + _ZN29QDeclarativeAbstractAnimation19getStaticMetaObjectEv @ 1825 NONAME + _ZN29QDeclarativeAbstractAnimation20notifyRunningChangedEb @ 1826 NONAME + _ZN29QDeclarativeAbstractAnimation21alwaysRunToEndChangedEb @ 1827 NONAME + _ZN29QDeclarativeAbstractAnimation21setDisableUserControlEv @ 1828 NONAME + _ZN29QDeclarativeAbstractAnimation4stopEv @ 1829 NONAME + _ZN29QDeclarativeAbstractAnimation5pauseEv @ 1830 NONAME + _ZN29QDeclarativeAbstractAnimation5startEv @ 1831 NONAME + _ZN29QDeclarativeAbstractAnimation6resumeEv @ 1832 NONAME + _ZN29QDeclarativeAbstractAnimation7restartEv @ 1833 NONAME + _ZN29QDeclarativeAbstractAnimation7startedEv @ 1834 NONAME + _ZN29QDeclarativeAbstractAnimation8completeEv @ 1835 NONAME + _ZN29QDeclarativeAbstractAnimation8setGroupEP26QDeclarativeAnimationGroup @ 1836 NONAME + _ZN29QDeclarativeAbstractAnimation8setLoopsEi @ 1837 NONAME + _ZN29QDeclarativeAbstractAnimation9completedEv @ 1838 NONAME + _ZN29QDeclarativeAbstractAnimation9setPausedEb @ 1839 NONAME + _ZN29QDeclarativeAbstractAnimation9setTargetERK20QDeclarativeProperty @ 1840 NONAME + _ZN29QDeclarativeAbstractAnimationC2EP7QObject @ 1841 NONAME + _ZN29QDeclarativeAbstractAnimationC2ER36QDeclarativeAbstractAnimationPrivateP7QObject @ 1842 NONAME + _ZN29QDeclarativeAbstractAnimationD0Ev @ 1843 NONAME + _ZN29QDeclarativeAbstractAnimationD1Ev @ 1844 NONAME + _ZN29QDeclarativeAbstractAnimationD2Ev @ 1845 NONAME + _ZNK16QDeclarativeType20attachedPropertiesIdEv @ 1846 NONAME + _ZNK17QDeclarativeTimer10metaObjectEv @ 1847 NONAME + _ZNK17QDeclarativeTimer11isRepeatingEv @ 1848 NONAME + _ZNK17QDeclarativeTimer16triggeredOnStartEv @ 1849 NONAME + _ZNK17QDeclarativeTimer8intervalEv @ 1850 NONAME + _ZNK17QDeclarativeTimer9isRunningEv @ 1851 NONAME + _ZNK23QDeclarativeDebugClient6statusEv @ 1852 NONAME + _ZNK23QDeclarativeEngineDebug6statusEv @ 1853 NONAME + _ZNK24QDeclarativeDebugService6statusEv @ 1854 NONAME + _ZNK26QDeclarativeBasePositioner10metaObjectEv @ 1855 NONAME + _ZNK26QDeclarativeBasePositioner3addEv @ 1856 NONAME + _ZNK26QDeclarativeBasePositioner4moveEv @ 1857 NONAME + _ZNK26QDeclarativeBasePositioner7spacingEv @ 1858 NONAME + _ZNK29QDeclarativeAbstractAnimation10metaObjectEv @ 1859 NONAME + _ZNK29QDeclarativeAbstractAnimation14alwaysRunToEndEv @ 1860 NONAME + _ZNK29QDeclarativeAbstractAnimation5groupEv @ 1861 NONAME + _ZNK29QDeclarativeAbstractAnimation5loopsEv @ 1862 NONAME + _ZNK29QDeclarativeAbstractAnimation8isPausedEv @ 1863 NONAME + _ZNK29QDeclarativeAbstractAnimation9isRunningEv @ 1864 NONAME + _ZTI17QDeclarativeTimer @ 1865 NONAME + _ZTI26QDeclarativeBasePositioner @ 1866 NONAME + _ZTI29QDeclarativeAbstractAnimation @ 1867 NONAME + _ZTV17QDeclarativeTimer @ 1868 NONAME + _ZTV26QDeclarativeBasePositioner @ 1869 NONAME + _ZTV29QDeclarativeAbstractAnimation @ 1870 NONAME + _ZThn12_N29QDeclarativeAbstractAnimation10classBeginEv @ 1871 NONAME + _ZThn12_N29QDeclarativeAbstractAnimation17componentCompleteEv @ 1872 NONAME + _ZThn12_N29QDeclarativeAbstractAnimationD0Ev @ 1873 NONAME + _ZThn12_N29QDeclarativeAbstractAnimationD1Ev @ 1874 NONAME + _ZThn16_N26QDeclarativeBasePositioner17componentCompleteEv @ 1875 NONAME + _ZThn16_N26QDeclarativeBasePositionerD0Ev @ 1876 NONAME + _ZThn16_N26QDeclarativeBasePositionerD1Ev @ 1877 NONAME + _ZThn8_N17QDeclarativeTimer10classBeginEv @ 1878 NONAME + _ZThn8_N17QDeclarativeTimer17componentCompleteEv @ 1879 NONAME + _ZThn8_N26QDeclarativeBasePositioner10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant @ 1880 NONAME + _ZThn8_N26QDeclarativeBasePositionerD0Ev @ 1881 NONAME + _ZThn8_N26QDeclarativeBasePositionerD1Ev @ 1882 NONAME + _ZThn8_N29QDeclarativeAbstractAnimation9setTargetERK20QDeclarativeProperty @ 1883 NONAME + _ZThn8_N29QDeclarativeAbstractAnimationD0Ev @ 1884 NONAME + _ZThn8_N29QDeclarativeAbstractAnimationD1Ev @ 1885 NONAME diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 634b7af..681649c 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -711,7 +711,7 @@ EXPORTS _ZN11QFontEngine17getGlyphPositionsERK12QGlyphLayoutRK10QTransform6QFlagsIN9QTextItem10RenderFlagEER15QVarLengthArrayIjLi256EERSA_I11QFixedPointLi256EE @ 710 NONAME _ZN11QFontEngine17getPointInOutlineEjijPiS0_Pj @ 711 NONAME _ZN11QFontEngine19addBitmapFontToPathEffRK12QGlyphLayoutP12QPainterPath6QFlagsIN9QTextItem10RenderFlagEE @ 712 NONAME - _ZN11QFontEngine19alphaRGBMapForGlyphEjiRK10QTransform @ 713 NONAME + _ZN11QFontEngine19alphaRGBMapForGlyphEjiRK10QTransform @ 713 NONAME ABSENT _ZN11QFontEngine20removeGlyphFromCacheEj @ 714 NONAME _ZN11QFontEngine21getTrueTypeGlyphIndexEPKhj @ 715 NONAME _ZN11QFontEngine7getCMapEPKhjPbPi @ 716 NONAME @@ -4324,7 +4324,7 @@ EXPORTS _ZN19QApplicationPrivate18dispatchEnterLeaveEP7QWidgetS1_ @ 4323 NONAME _ZN19QApplicationPrivate18resolveS60ScanCodeEij @ 4324 NONAME _ZN19QApplicationPrivate18wheel_scroll_linesE @ 4325 NONAME DATA 4 - _ZN19QApplicationPrivate19app_compile_versionE @ 4326 NONAME DATA 4 + _ZN19QApplicationPrivate19app_compile_versionE @ 4326 NONAME DATA 4 ABSENT _ZN19QApplicationPrivate19hidden_focus_widgetE @ 4327 NONAME DATA 4 _ZN19QApplicationPrivate19keyboard_input_timeE @ 4328 NONAME DATA 4 _ZN19QApplicationPrivate20emitLastWindowClosedEv @ 4329 NONAME @@ -4356,8 +4356,8 @@ EXPORTS _ZN19QApplicationPrivate9constructEv @ 4355 NONAME _ZN19QApplicationPrivate9fade_menuE @ 4356 NONAME DATA 1 _ZN19QApplicationPrivate9openPopupEP7QWidget @ 4357 NONAME - _ZN19QApplicationPrivateC1ERiPPcN12QApplication4TypeE @ 4358 NONAME - _ZN19QApplicationPrivateC2ERiPPcN12QApplication4TypeE @ 4359 NONAME + _ZN19QApplicationPrivateC1ERiPPcN12QApplication4TypeE @ 4358 NONAME ABSENT + _ZN19QApplicationPrivateC2ERiPPcN12QApplication4TypeE @ 4359 NONAME ABSENT _ZN19QApplicationPrivateD0Ev @ 4360 NONAME _ZN19QApplicationPrivateD1Ev @ 4361 NONAME _ZN19QApplicationPrivateD2Ev @ 4362 NONAME @@ -9242,7 +9242,7 @@ EXPORTS _ZNK18QSyntaxHighlighter20currentBlockUserDataEv @ 9241 NONAME _ZNK18QSyntaxHighlighter6formatEi @ 9242 NONAME _ZNK18QSyntaxHighlighter8documentEv @ 9243 NONAME - _ZNK18QTextureGlyphCache18textureMapForGlyphEj @ 9244 NONAME + _ZNK18QTextureGlyphCache18textureMapForGlyphEj @ 9244 NONAME ABSENT _ZNK19QAbstractProxyModel10headerDataEiN2Qt11OrientationEi @ 9245 NONAME _ZNK19QAbstractProxyModel10metaObjectEv @ 9246 NONAME _ZNK19QAbstractProxyModel11sourceModelEv @ 9247 NONAME @@ -11961,7 +11961,7 @@ EXPORTS _ZN20QGraphicsViewPrivate28updateInputMethodSensitivityEv @ 11960 NONAME _ZN20QGraphicsViewPrivateC1Ev @ 11961 NONAME _ZN20QGraphicsViewPrivateC2Ev @ 11962 NONAME - _ZN23QImageTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 11963 NONAME + _ZN23QImageTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 11963 NONAME ABSENT _ZN23QImageTextureGlyphCache17createTextureDataEii @ 11964 NONAME _ZN23QImageTextureGlyphCache17resizeTextureDataEii @ 11965 NONAME _ZN26QAbstractScrollAreaPrivate14layoutChildrenEv @ 11966 NONAME @@ -12098,4 +12098,60 @@ EXPORTS _ZN20QGraphicsItemPrivate26childrenBoundingRectHelperEP10QTransformP6QRectFP13QGraphicsItem @ 12097 NONAME _ZNK20QGraphicsItemPrivate21effectiveBoundingRectEP13QGraphicsItem @ 12098 NONAME _ZNK5QFont14lastResortFontEv @ 12099 NONAME + _ZN11QFontEngine19alphaRGBMapForGlyphEj6QFixediRK10QTransform @ 12100 NONAME + _ZN11QFontEngine33convertToPostscriptFontFamilyNameERK10QByteArray @ 12101 NONAME + _ZN18QTextureGlyphCache19fillInPendingGlyphsEv @ 12102 NONAME + _ZN19QAbstractProxyModel11setItemDataERK11QModelIndexRK4QMapIi8QVariantE @ 12103 NONAME + _ZN19QAbstractProxyModel4sortEiN2Qt9SortOrderE @ 12104 NONAME + _ZN19QAbstractProxyModel9fetchMoreERK11QModelIndex @ 12105 NONAME + _ZN19QApplicationPrivateC1ERiPPcN12QApplication4TypeEi @ 12106 NONAME + _ZN19QApplicationPrivateC2ERiPPcN12QApplication4TypeEi @ 12107 NONAME + _ZN19QGraphicsGridLayout10removeItemEP19QGraphicsLayoutItem @ 12108 NONAME + _ZN23QImageTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj6QFixed @ 12109 NONAME + _ZN6QImage4fillEN2Qt11GlobalColorE @ 12110 NONAME + _ZN6QImage4fillERK6QColor @ 12111 NONAME + _ZN7QGlyphs12setPositionsERK7QVectorI7QPointFE @ 12112 NONAME + _ZN7QGlyphs15setGlyphIndexesERK7QVectorIjE @ 12113 NONAME + _ZN7QGlyphs5clearEv @ 12114 NONAME + _ZN7QGlyphs6detachEv @ 12115 NONAME + _ZN7QGlyphs7setFontERK5QFont @ 12116 NONAME + _ZN7QGlyphsC1ERKS_ @ 12117 NONAME + _ZN7QGlyphsC1Ev @ 12118 NONAME + _ZN7QGlyphsC2ERKS_ @ 12119 NONAME + _ZN7QGlyphsC2Ev @ 12120 NONAME + _ZN7QGlyphsD1Ev @ 12121 NONAME + _ZN7QGlyphsD2Ev @ 12122 NONAME + _ZN7QGlyphsaSERKS_ @ 12123 NONAME + _ZN7QGlyphspLERKS_ @ 12124 NONAME + _ZN8QPainter10drawGlyphsERK7QPointFRK7QGlyphs @ 12125 NONAME + _ZNK10QTabWidget14heightForWidthEi @ 12126 NONAME + _ZNK11QFontEngine18createExplicitFontEv @ 12127 NONAME + _ZNK11QFontEngine26createExplicitFontWithNameERK7QString @ 12128 NONAME + _ZNK11QTextLayout6glyphsEv @ 12129 NONAME + _ZNK12QFontMetrics10inFontUcs4Ej @ 12130 NONAME + _ZNK12QRadioButton15minimumSizeHintEv @ 12131 NONAME + _ZNK13QFontMetricsF10inFontUcs4Ej @ 12132 NONAME + _ZNK13QTextFragment6glyphsEv @ 12133 NONAME + _ZNK14QWidgetPrivate17hasHeightForWidthEv @ 12134 NONAME + _ZNK16QFileSystemModel5rmdirERK11QModelIndex @ 12135 NONAME + _ZNK18QTextureGlyphCache18textureMapForGlyphEj6QFixed @ 12136 NONAME + _ZNK18QTextureGlyphCache20subPixelPositionForXE6QFixed @ 12137 NONAME + _ZNK18QTextureGlyphCache30calculateSubPixelPositionCountEj @ 12138 NONAME + _ZNK19QAbstractProxyModel11hasChildrenERK11QModelIndex @ 12139 NONAME + _ZNK19QAbstractProxyModel12canFetchMoreERK11QModelIndex @ 12140 NONAME + _ZNK19QAbstractProxyModel20supportedDropActionsEv @ 12141 NONAME + _ZNK19QAbstractProxyModel4spanERK11QModelIndex @ 12142 NONAME + _ZNK19QAbstractProxyModel5buddyERK11QModelIndex @ 12143 NONAME + _ZNK19QAbstractProxyModel8mimeDataERK5QListI11QModelIndexE @ 12144 NONAME + _ZNK19QAbstractProxyModel9mimeTypesEv @ 12145 NONAME + _ZNK7QGlyphs12glyphIndexesEv @ 12146 NONAME + _ZNK7QGlyphs4fontEv @ 12147 NONAME + _ZNK7QGlyphs9positionsEv @ 12148 NONAME + _ZNK7QGlyphseqERKS_ @ 12149 NONAME + _ZNK7QGlyphsneERKS_ @ 12150 NONAME + _ZNK7QGlyphsplERKS_ @ 12151 NONAME + _ZNK8QPainter16clipBoundingRectEv @ 12152 NONAME + _ZNK9QCheckBox15minimumSizeHintEv @ 12153 NONAME + _ZNK9QTextLine6glyphsEii @ 12154 NONAME + _Zls6QDebugPK13QSymbianEvent @ 12155 NONAME diff --git a/src/s60installs/eabi/QtNetworku.def b/src/s60installs/eabi/QtNetworku.def index f13fab3..21f3e73 100644 --- a/src/s60installs/eabi/QtNetworku.def +++ b/src/s60installs/eabi/QtNetworku.def @@ -1168,4 +1168,11 @@ EXPORTS _ZTV35QNetworkConfigurationManagerPrivate @ 1167 NONAME _ZThn8_N19QBearerEnginePluginD0Ev @ 1168 NONAME _ZThn8_N19QBearerEnginePluginD1Ev @ 1169 NONAME + _ZN10QUdpSocket18joinMulticastGroupERK12QHostAddress @ 1170 NONAME + _ZN10QUdpSocket18joinMulticastGroupERK12QHostAddressRK17QNetworkInterface @ 1171 NONAME + _ZN10QUdpSocket19leaveMulticastGroupERK12QHostAddress @ 1172 NONAME + _ZN10QUdpSocket19leaveMulticastGroupERK12QHostAddressRK17QNetworkInterface @ 1173 NONAME + _ZN10QUdpSocket21setMulticastInterfaceERK17QNetworkInterface @ 1174 NONAME + _ZN13QNetworkReply11setFinishedEb @ 1175 NONAME + _ZNK10QUdpSocket18multicastInterfaceEv @ 1176 NONAME -- cgit v0.12 From 7f8af7a2030c0f4ae7ad79eee93bd68a29f285d3 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Mon, 11 Oct 2010 16:35:58 +0200 Subject: Add test to test QDir caching behavior. Also fix the qfileenginemodel test to be less fragile Reviewed-by: Prasanth Ullattil --- tests/auto/qdir/tst_qdir.cpp | 13 +++++++++++++ tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 2bb0a3e..d540f29 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -175,6 +175,8 @@ private slots: void detachingOperations(); + void testCaching(); + #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) void isRoot_data(); void isRoot(); @@ -1663,6 +1665,17 @@ void tst_QDir::detachingOperations() QCOMPARE(dir1.sorting(), sorting); } +void tst_QDir::testCaching() +{ + QString dirName = QString::fromLatin1("testCaching"); + QDir::current().rmdir(dirName); // cleanup a previous run. + QDir dir(dirName); + QVERIFY(!dir.exists()); + QDir::current().mkdir(dirName); + QVERIFY(QDir(dirName).exists()); // dir exists + QVERIFY(dir.exists()); // QDir doesn't cache the 'exist' between calls. +} + #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) void tst_QDir::isRoot_data() { diff --git a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp index c234c96..aa632c7 100644 --- a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp +++ b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp @@ -992,8 +992,8 @@ void tst_QFileSystemModel::dirsBeforeFiles() } dir.rmdir(dirPath); } - dir.mkpath(dirPath); - QVERIFY(dir.exists()); + QVERIFY(dir.mkpath(dirPath)); + QVERIFY(QDir(dirPath).exists()); for (int i = 0; i < 3; ++i) { QLatin1Char c('a' + i); -- cgit v0.12 From 69d1025d7c506350dd90b5fb35510b1036847db7 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Mon, 11 Oct 2010 16:50:09 +0200 Subject: Fix caching of metadata in QDir to not change behavior In 4.7 and before a QDir::exists() always stats and a refresh() call would flush metadata, restore this behavior again. Reviewed-by: Prasanth Ullattil --- src/corelib/io/qdir.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index bbe9226..827294c 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -131,9 +131,8 @@ QDirPrivate::QDirPrivate(const QDirPrivate ©) bool QDirPrivate::exists() const { if (fileEngine.isNull()) { - if (!metaData.hasFlags(QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType)) - QFileSystemEngine::fillMetaData(dirEntry, metaData, - QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType); + QFileSystemEngine::fillMetaData(dirEntry, metaData, + QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType); // always stat return metaData.exists() && metaData.isDirectory(); } const QAbstractFileEngine::FileFlags info = @@ -2094,6 +2093,7 @@ bool QDir::isRelativePath(const QString &path) void QDir::refresh() const { QDirPrivate *d = const_cast(this)->d_ptr.data(); + d->metaData.clear(); d->initFileEngine(); d->clearFileLists(); } -- cgit v0.12 From a3550bce43bcf70f3c763f6fcae28ba5d1a31305 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Mon, 11 Oct 2010 17:43:04 +0200 Subject: Test QDir::mkdir/mkpath return codes --- tests/auto/qdir/tst_qdir.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index d540f29..9521921 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -103,6 +103,8 @@ private slots: void mkdir_data(); void mkdir(); + void makedirReturnCode(); + void rmdir_data(); void rmdir(); @@ -295,6 +297,17 @@ void tst_QDir::mkdir() QVERIFY(fi.exists() && fi.isDir()); } +void tst_QDir::makedirReturnCode() +{ + QString dirName = QString::fromLatin1("makedirReturnCode"); + QDir::current().rmdir(dirName); // cleanup a previous run. + QDir dir(dirName); + QVERIFY(!dir.exists()); + QVERIFY(QDir::current().mkdir(dirName)); + QVERIFY(!QDir::current().mkdir(dirName)); // calling mkdir on an existing dir will fail. + QVERIFY(QDir::current().mkpath(dirName)); // calling mkpath on an existing dir will pass +} + void tst_QDir::rmdir_data() { QTest::addColumn("path"); -- cgit v0.12 From 8ee99ee22729b4d9603fe83929116259956b81ce Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 8 Oct 2010 16:23:55 +0100 Subject: Use QSystemError to return errors from QFileSystemEngine Testing done: win32-msvc2008 and Mac OS X - qfile, qfileinfo, qdir, qdiriterator, qtemporaryfile autotests symbian-sbsv2 - qtcore, qtgui, qtxml autotests win32-g++ - compilation test for qmake Reviewed-By: Thomas Zander --- qmake/Makefile.unix | 6 +- qmake/Makefile.win32 | 1 + qmake/Makefile.win32-g++ | 4 ++ qmake/Makefile.win32-g++-sh | 4 ++ qmake/qmake.pri | 2 + src/corelib/io/qfilesystemengine_p.h | 14 ++--- src/corelib/io/qfilesystemengine_symbian.cpp | 83 ++++------------------------ src/corelib/io/qfilesystemengine_unix.cpp | 20 +++---- src/corelib/io/qfilesystemengine_win.cpp | 22 ++++---- src/corelib/io/qfsfileengine_p.h | 4 -- src/corelib/io/qfsfileengine_unix.cpp | 40 +++++++------- src/corelib/io/qfsfileengine_win.cpp | 16 +++--- src/corelib/kernel/qsystemerror.cpp | 40 ++++++++++++-- src/tools/bootstrap/bootstrap.pro | 3 +- 14 files changed, 120 insertions(+), 139 deletions(-) diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index f03b300..7d61cf8 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -20,7 +20,7 @@ QOBJS=qtextcodec.o qutfcodec.o qstring.o qtextstream.o qiodevice.o qmalloc.o qgl qfsfileengine_unix.o qfsfileengine.o \ qfsfileengine_iterator.o qregexp.o qvector.o qbitarray.o qdir.o qdiriterator.o quuid.o qhash.o \ qfileinfo.o qdatetime.o qstringlist.o qabstractfileengine.o qtemporaryfile.o \ - qmap.o qmetatype.o qsettings.o qlibraryinfo.o qvariant.o qvsnprintf.o \ + qmap.o qmetatype.o qsettings.o qsystemerror.o qlibraryinfo.o qvariant.o qvsnprintf.o \ qlocale.o qlinkedlist.o qurl.o qnumeric.o qcryptographichash.o qxmlstream.o qxmlutils.o \ $(QTOBJS) @@ -65,6 +65,7 @@ DEPEND_SRC=project.cpp property.cpp meta.cpp main.cpp generators/makefile.cpp ge $(SOURCE_PATH)/src/corelib/tools/qvsnprintf.cpp $(SOURCE_PATH)/src/corelib/global/qnumeric.cpp \ $(SOURCE_PATH)/src/corelib/xml/qxmlstream.cpp \ $(SOURCE_PATH)/src/corelib/xml/qxmlutils.cpp \ + $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp \ $(QTSRCS) CPPFLAGS = -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian \ @@ -104,6 +105,9 @@ qvariant.o: $(SOURCE_PATH)/src/corelib/kernel/qvariant.cpp qsettings.o: $(SOURCE_PATH)/src/corelib/io/qsettings.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qsettings.cpp +qsystemerror.o: $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp + qlibraryinfo.o: $(SOURCE_PATH)/src/corelib/global/qlibraryinfo.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/global/qlibraryinfo.cpp diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index 4333d45..c9e623d 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -103,6 +103,7 @@ QTOBJS= \ qutfcodec.obj \ qstring.obj \ qstringlist.obj \ + qsystemerror.obj \ qtextstream.obj \ qdatastream.obj \ quuid.obj \ diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++ index da911e7..1a20d71 100644 --- a/qmake/Makefile.win32-g++ +++ b/qmake/Makefile.win32-g++ @@ -82,6 +82,7 @@ QTOBJS= \ qutfcodec.o \ qstring.o \ qstringlist.o \ + qsystemerror.o \ qsystemlibrary.o \ qtextstream.o \ quuid.o \ @@ -247,6 +248,9 @@ qdatetime.o: $(SOURCE_PATH)/src/corelib/tools/qdatetime.cpp qstringlist.o: $(SOURCE_PATH)/src/corelib/tools/qstringlist.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qstringlist.cpp +qsystemerror.o: $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp + qsystemlibrary.o: $(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp diff --git a/qmake/Makefile.win32-g++-sh b/qmake/Makefile.win32-g++-sh index 2530fe8..aad4a9e 100644 --- a/qmake/Makefile.win32-g++-sh +++ b/qmake/Makefile.win32-g++-sh @@ -83,6 +83,7 @@ QTOBJS= \ qstring.o \ qstringlist.o \ qsystemlibrary.o \ + qsystemerror.o \ qtextstream.o \ quuid.o \ qvector.o \ @@ -246,6 +247,9 @@ qdatetime.o: $(SOURCE_PATH)/src/corelib/tools/qdatetime.cpp qstringlist.o: $(SOURCE_PATH)/src/corelib/tools/qstringlist.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qstringlist.cpp +qsystemerror.o: $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp + $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp + qsystemlibrary.o: $(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/plugin/qsystemlibrary.cpp diff --git a/qmake/qmake.pri b/qmake/qmake.pri index 274cb70..83a5356 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -82,6 +82,7 @@ bootstrap { #Qt code quuid.cpp \ qsettings.cpp \ qlibraryinfo.cpp \ + qsystemerror.cpp \ qvariant.cpp \ qvector.cpp \ qvsnprintf.cpp \ @@ -119,6 +120,7 @@ bootstrap { #Qt code qstring.h \ qstringlist.h \ qstringmatcher.h \ + qsystemerror_p.h \ qtemporaryfile.h \ qtextstream.h \ qurl.h \ diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index f4d942a..1f4aad0 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -56,6 +56,7 @@ #include "qfile.h" #include "qfilesystementry_p.h" #include "qfilesystemmetadata_p.h" +#include QT_BEGIN_NAMESPACE @@ -91,9 +92,6 @@ public: static QString owner(const QFileSystemEntry &entry, QAbstractFileEngine::FileOwner own); static QString nativeAbsoluteFilePath(const QString &path); #endif -#ifdef Q_OS_SYMBIAN - static QString errorString(int errorcode); -#endif //homePath, rootPath and tempPath shall return clean paths static QString homePath(); static QString rootPath(); @@ -102,13 +100,13 @@ public: static bool createDirectory(const QFileSystemEntry &entry, bool createParents); static bool removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents); - static bool createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString); + static bool createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error); - static bool copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString); - static bool renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString); - static bool removeFile(const QFileSystemEntry &entry, QString &errorString); + static bool copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error); + static bool renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error); + static bool removeFile(const QFileSystemEntry &entry, QSystemError &error); - static bool setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QString &errorString, + static bool setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QSystemError &error, QFileSystemMetaData *data = 0); static bool setCurrentPath(const QFileSystemEntry &entry); diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 318a5fd..877ea7a 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -88,7 +88,8 @@ static QString symbianCleanAbsolutePath(const QString& path) //static QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data) { - return link; // TODO implement + Q_UNUSED(data); + return link; } //static @@ -283,16 +284,16 @@ bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool remo } //static -bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) +bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error) { Q_UNUSED(source) Q_UNUSED(target) - errorString = QLatin1String("not supported"); + error = QSystemError(KErrNotSupported, QSystemError::NativeError); return false; } //static -bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) +bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error) { //CFileMan is allocated each time because it is not thread-safe CFileMan *fm = 0; @@ -302,12 +303,12 @@ bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSyst delete fm; return true; } - errorString = QFileSystemEngine::errorString(err); + error = QSystemError(err, QSystemError::NativeError); return false; } //static -bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) +bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error) { QString sourcepath = absoluteName(source).nativeFilePath(); QString targetpath = absoluteName(target).nativeFilePath(); @@ -315,24 +316,24 @@ bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSy TInt err = fs.Rename(qt_QString2TPtrC(sourcepath), qt_QString2TPtrC(targetpath)); if (err == KErrNone) return true; - errorString = QFileSystemEngine::errorString(err); + error = QSystemError(err, QSystemError::NativeError); return false; } //static -bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry, QString &errorString) +bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry, QSystemError &error) { QString targetpath = absoluteName(entry).nativeFilePath(); RFs& fs(qt_s60GetRFs()); TInt err = fs.Delete(qt_QString2TPtrC(targetpath)); if (err == KErrNone) return true; - errorString = QFileSystemEngine::errorString(err); + error = QSystemError(err, QSystemError::NativeError); return false; } //static -bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QString &errorString, QFileSystemMetaData *data) +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QSystemError &error, QFileSystemMetaData *data) { QString targetpath = absoluteName(entry).nativeFilePath(); TUint setmask = 0; @@ -350,7 +351,7 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per } if (err == KErrNone) return true; - errorString = QFileSystemEngine::errorString(err); + error = QSystemError(err, QSystemError::NativeError); return false; } @@ -416,64 +417,4 @@ QFileSystemEntry QFileSystemEngine::currentPath() return ret; } -QString QFileSystemEngine::errorString(int errorcode) -{ - switch (errorcode) { - case KErrNotFound: - return QLatin1String("not found"); - case KErrCancel: - return QLatin1String("cancelled"); - case KErrNoMemory: - return QLatin1String("out of memory"); - case KErrNotSupported: - return QLatin1String("not supported"); - case KErrBadHandle: - return QLatin1String("bad handle"); //KERN-EXEC 0 panic is more likely - case KErrAlreadyExists: - return QLatin1String("already exists"); - case KErrPathNotFound: - return QLatin1String("path not found"); - case KErrInUse: - return QLatin1String("in use"); - case KErrNotReady: - return QLatin1String("not ready (e.g. FS dismounted, no memory card)"); - case KErrCorrupt: - return QLatin1String("corrupt"); - case KErrAccessDenied: - return QLatin1String("access denied"); - case KErrLocked: - return QLatin1String("locked"); - case KErrWrite: - return QLatin1String("incomplete write error"); - case KErrDisMounted: - return QLatin1String("file system dismounted during operation"); //i.e. a forcible dismount was done while we had files open - case KErrEof: - return QLatin1String("end of file"); - case KErrDiskFull: - return QLatin1String("no space in file system"); - case KErrBadName: - return QLatin1String("invalid filename"); - case KErrTimedOut: - return QLatin1String("timed out"); - case KErrBadDescriptor: - return QLatin1String("bad descriptor (passed address on stack to async call?)"); - case KErrAbort: - return QLatin1String("aborted"); - case KErrTooBig: - return QLatin1String("too big"); //e.g. trying to open a >2GB file with 32 bit API - case KErrBadPower: - return QLatin1String("insufficient power"); - case KErrDirFull: - return QLatin1String("no space in directory table"); - case KErrHardwareNotAvailable: - return QLatin1String("hardware not available"); - case KErrSessionClosed: - return QLatin1String("session closed"); - case KErrPermissionDenied: - return QLatin1String("permission denied"); - default: - return QString(QLatin1String("symbian error %d")).arg(errorcode); - } -} - QT_END_NAMESPACE diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 213fdc3..dc6888d 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -572,45 +572,45 @@ bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool remo } //static -bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) +bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error) { if (::symlink(source.nativeFilePath().constData(), target.nativeFilePath().constData()) == 0) return true; - errorString = qt_error_string(errno); + error = QSystemError(errno, QSystemError::StandardLibraryError); return false; } //static -bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) +bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error) { Q_UNUSED(source); Q_UNUSED(target); // # we can implement this using sendfile(2) - errorString = QLatin1String("Not implemented!"); + //when this function returns false, block copy is used in QFile which sets the error code. return false; } //static -bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) +bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error) { if (::rename(source.nativeFilePath().constData(), target.nativeFilePath().constData()) == 0) return true; - errorString = qt_error_string(errno); + error = QSystemError(errno, QSystemError::StandardLibraryError); return false; } //static -bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry, QString &errorString) +bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry, QSystemError &error) { if (unlink(entry.nativeFilePath().constData()) == 0) return true; - errorString = qt_error_string(errno); + error = QSystemError(errno, QSystemError::StandardLibraryError); return false; } //static -bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QString &errorString, QFileSystemMetaData *data) +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QSystemError &error, QFileSystemMetaData *data) { mode_t mode = 0; if (permissions & QFile::ReadOwner) @@ -645,7 +645,7 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per data->knownFlagsMask |= QFileSystemMetaData::Permissions; } if (!success) - errorString = qt_error_string(errno); + error = QSystemError(errno, QSystemError::StandardLibraryError); return success; } diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 5cc7395..53b9e43 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -1115,43 +1115,43 @@ QFileSystemEntry QFileSystemEngine::currentPath() } //static -bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) +bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error) { - errorString = QLatin1String("not implemented"); - return false; // TODO implement; + Q_ASSERT(false); + return false; // TODO implement; - code needs to be moved from qfsfileengine_win.cpp } //static -bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) +bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error) { bool ret = ::CopyFile((wchar_t*)source.nativeFilePath().utf16(), (wchar_t*)target.nativeFilePath().utf16(), true) != 0; if(!ret) - errorString = qt_error_string(::GetLastError()); + error = QSystemError(::GetLastError(), QSystemError::NativeError); return ret; } //static -bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QString &errorString) +bool QFileSystemEngine::renameFile(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error) { bool ret = ::MoveFile((wchar_t*)source.nativeFilePath().utf16(), (wchar_t*)target.nativeFilePath().utf16()) != 0; if(!ret) - errorString = qt_error_string(::GetLastError()); + error = QSystemError(::GetLastError(), QSystemError::NativeError); return ret; } //static -bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry, QString &errorString) +bool QFileSystemEngine::removeFile(const QFileSystemEntry &entry, QSystemError &error) { bool ret = ::DeleteFile((wchar_t*)entry.nativeFilePath().utf16()) != 0; if(!ret) - errorString = qt_error_string(::GetLastError()); + error = QSystemError(::GetLastError(), QSystemError::NativeError); return ret; } //static -bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QString &errorString, +bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Permissions permissions, QSystemError &error, QFileSystemMetaData *data) { Q_UNUSED(data); @@ -1169,7 +1169,7 @@ bool QFileSystemEngine::setPermissions(const QFileSystemEntry &entry, QFile::Per bool ret = (::_wchmod((wchar_t*)entry.nativeFilePath().utf16(), mode) == 0); if(!ret) - errorString = qt_error_string(errno); + error = QSystemError(errno, QSystemError::StandardLibraryError); return ret; } diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index 14a8938..715b46f 100644 --- a/src/corelib/io/qfsfileengine_p.h +++ b/src/corelib/io/qfsfileengine_p.h @@ -185,10 +185,6 @@ public: int sysOpen(const QString &, int flags); #endif -#ifdef Q_OS_SYMBIAN - void setSymbianError(int symbianError, QFile::FileError defaultError, QString defaultString); -#endif - protected: QFSFileEnginePrivate(); diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index a64f8dc..caf5f4c 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -239,7 +239,7 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) } if (r != KErrNone) { - q->setError(QFile::OpenError, QFileSystemEngine::errorString(r)); + q->setError(QFile::OpenError, QSystemError(r, QSystemError::NativeError).toString()); symbianFile.Close(); return false; } @@ -385,7 +385,7 @@ qint64 QFSFileEnginePrivate::nativeRead(char *data, qint64 len) TInt r = symbianFile.Read(ptr); if (r != KErrNone) { - q->setError(QFile::ReadError, QFileSystemEngine::errorString(r)); + q->setError(QFile::ReadError, QSystemError(r, QSystemError::NativeError).toString()); return -1; } return qint64(ptr.Length()); @@ -470,7 +470,7 @@ qint64 QFSFileEnginePrivate::nativeWrite(const char *data, qint64 len) TInt r = symbianFile.Write(ptr); if (r != KErrNone) { - q->setError(QFile::WriteError, QFileSystemEngine::errorString(r)); + q->setError(QFile::WriteError, QSystemError(r, QSystemError::NativeError).toString()); return -1; } return len; @@ -494,7 +494,7 @@ qint64 QFSFileEnginePrivate::nativePos() const #endif TInt err = symbianFile.Seek(ESeekCurrent, pos); if(err != KErrNone) { - const_cast(q)->setError(QFile::PositionError, QFileSystemEngine::errorString(err)); + const_cast(q)->setError(QFile::PositionError, QSystemError(err, QSystemError::NativeError).toString()); return -1; } return pos; @@ -523,7 +523,7 @@ bool QFSFileEnginePrivate::nativeSeek(qint64 pos) #endif if (r != KErrNone) { - q->setError(QFile::PositionError, QFileSystemEngine::errorString(r)); + q->setError(QFile::PositionError, QSystemError(r, QSystemError::NativeError).toString()); return false; } return true; @@ -555,11 +555,11 @@ bool QFSFileEnginePrivate::nativeIsSequential() const bool QFSFileEngine::remove() { Q_D(QFSFileEngine); - QString errorString; - bool ret = QFileSystemEngine::removeFile(d->fileEntry, errorString); + QSystemError error; + bool ret = QFileSystemEngine::removeFile(d->fileEntry, error); d->metaData.clear(); if (!ret) { - setError(QFile::RemoveError, errorString); + setError(QFile::RemoveError, error.toString()); } return ret; } @@ -567,10 +567,10 @@ bool QFSFileEngine::remove() bool QFSFileEngine::copy(const QString &newName) { Q_D(QFSFileEngine); - QString error; + QSystemError error; bool ret = QFileSystemEngine::copyFile(d->fileEntry, QFileSystemEntry(newName), error); if (!ret) { - setError(QFile::CopyError, error); + setError(QFile::CopyError, error.toString()); } return ret; } @@ -578,11 +578,11 @@ bool QFSFileEngine::copy(const QString &newName) bool QFSFileEngine::rename(const QString &newName) { Q_D(QFSFileEngine); - QString error; + QSystemError error; bool ret = QFileSystemEngine::renameFile(d->fileEntry, QFileSystemEntry(newName), error); if (!ret) { - setError(QFile::RenameError, error); + setError(QFile::RenameError, error.toString()); } return ret; @@ -591,10 +591,10 @@ bool QFSFileEngine::rename(const QString &newName) bool QFSFileEngine::link(const QString &newName) { Q_D(QFSFileEngine); - QString error; + QSystemError error; bool ret = QFileSystemEngine::createLink(d->fileEntry, QFileSystemEntry(newName), error); if (!ret) { - setError(QFile::RenameError, error); + setError(QFile::RenameError, error.toString()); } return ret; } @@ -611,7 +611,7 @@ qint64 QFSFileEnginePrivate::nativeSize() const #endif TInt err = symbianFile.Size(size); if(err != KErrNone) { - const_cast(q)->setError(QFile::PositionError, QFileSystemEngine::errorString(err)); + const_cast(q)->setError(QFile::PositionError, QSystemError(err, QSystemError::NativeError).toString()); return 0; } return size; @@ -850,9 +850,9 @@ QString QFSFileEngine::owner(FileOwner own) const bool QFSFileEngine::setPermissions(uint perms) { Q_D(QFSFileEngine); - QString error; + QSystemError error; if (!QFileSystemEngine::setPermissions(d->fileEntry, QFile::Permissions(perms), error, 0)) { - setError(QFile::PermissionsError, error); + setError(QFile::PermissionsError, error.toString()); return false; } return true; @@ -884,10 +884,12 @@ bool QFSFileEngine::setSize(qint64 size) ret = (err == KErrNone); } if (!ret) { + QSystemError error; if (err) - setError(QFile::ResizeError, QFileSystemEngine::errorString(err)); + error = QSystemError(err, QSystemError::NativeError); else - setError(QFile::ResizeError, qt_error_string(errno)); + error = QSystemError(errno, QSystemError::StandardLibraryError); + setError(QFile::ResizeError, error.toString()); } return ret; } diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 63f2a9f..cf83c07 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -503,30 +503,30 @@ bool QFSFileEnginePrivate::nativeIsSequential() const bool QFSFileEngine::remove() { Q_D(QFSFileEngine); - QString error; + QSystemError error; bool ret = QFileSystemEngine::removeFile(d->fileEntry, error); if (!ret) - setError(QFile::RemoveError, error); + setError(QFile::RemoveError, error.toString()); return ret; } bool QFSFileEngine::copy(const QString ©Name) { Q_D(QFSFileEngine); - QString error; + QSystemError error; bool ret = QFileSystemEngine::copyFile(d->fileEntry, QFileSystemEntry(copyName), error); if (!ret) - setError(QFile::CopyError, error); + setError(QFile::CopyError, error.toString()); return ret; } bool QFSFileEngine::rename(const QString &newName) { Q_D(QFSFileEngine); - QString error; + QSystemError error; bool ret = QFileSystemEngine::renameFile(d->fileEntry, QFileSystemEntry(newName), error); if (!ret) - setError(QFile::RenameError, error); + setError(QFile::RenameError, error.toString()); return ret; } @@ -854,10 +854,10 @@ QString QFSFileEngine::owner(FileOwner own) const bool QFSFileEngine::setPermissions(uint perms) { Q_D(QFSFileEngine); - QString error; + QSystemError error; bool ret = QFileSystemEngine::setPermissions(d->fileEntry, QFile::Permissions(perms), error); if (!ret) - setError(QFile::PermissionsError, error); + setError(QFile::PermissionsError, error.toString()); return ret; } diff --git a/src/corelib/kernel/qsystemerror.cpp b/src/corelib/kernel/qsystemerror.cpp index 065014a..d2350b5 100644 --- a/src/corelib/kernel/qsystemerror.cpp +++ b/src/corelib/kernel/qsystemerror.cpp @@ -39,8 +39,40 @@ ** ****************************************************************************/ +#include #include "qsystemerror_p.h" -#include +#if !defined(Q_OS_WINCE) +# include +# if defined(Q_CC_MSVC) +# include +# endif +#endif +#ifdef Q_OS_WIN +#include +#endif + +#if !defined(Q_OS_WIN) && !defined(QT_NO_THREAD) && !defined(Q_OS_INTEGRITY) && !defined(Q_OS_QNX) && \ + defined(_POSIX_THREAD_SAFE_FUNCTIONS) && _POSIX_VERSION >= 200112L +namespace { + // There are two incompatible versions of strerror_r: + // a) the XSI/POSIX.1 version, which returns an int, + // indicating success or not + // b) the GNU version, which returns a char*, which may or may not + // be the beginning of the buffer we used + // The GNU libc manpage for strerror_r says you should use the the XSI + // version in portable code. However, it's impossible to do that if + // _GNU_SOURCE is defined so we use C++ overloading to decide what to do + // depending on the return type + static inline QString fromstrerror_helper(int, const QByteArray &buf) + { + return QString::fromLocal8Bit(buf); + } + static inline QString fromstrerror_helper(const char *str, const QByteArray &) + { + return QString::fromLocal8Bit(str); + } +} +#endif static QString standardLibraryErrorString(int errorCode) { @@ -166,23 +198,19 @@ QString QSystemError::toString() switch(errorScope) { case NativeError: #if defined (Q_OS_WIN) - errorString = windowsErrorString(errorCode); - break; + return windowsErrorString(errorCode); #elif defined (Q_OS_SYMBIAN) return symbianErrorString(errorCode); - break; #else //unix: fall through as native and standard library are the same #endif case StandardLibraryError: return standardLibraryErrorString(errorCode); - break; default: qWarning("invalid error scope"); //fall through case NoError: return QLatin1String("No error"); - break; } } diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro index 6531a83..9e5845c 100644 --- a/src/tools/bootstrap/bootstrap.pro +++ b/src/tools/bootstrap/bootstrap.pro @@ -69,6 +69,7 @@ SOURCES += \ ../../corelib/io/qurl.cpp \ ../../corelib/kernel/qmetatype.cpp \ ../../corelib/kernel/qvariant.cpp \ + ../../corelib/kernel/qsystemerror.cpp \ ../../corelib/tools/qbitarray.cpp \ ../../corelib/tools/qbytearray.cpp \ ../../corelib/tools/qbytearraymatcher.cpp \ @@ -83,7 +84,7 @@ SOURCES += \ ../../corelib/tools/qvector.cpp \ ../../corelib/tools/qvsnprintf.cpp \ ../../corelib/xml/qxmlutils.cpp \ - ../../corelib/xml/qxmlstream.cpp \ + ../../corelib/xml/qxmlstream.cpp \ ../../xml/dom/qdom.cpp \ ../../xml/sax/qxml.cpp -- cgit v0.12 From 2030d7894d119a207f872f23fc06ab3f934073f3 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 11 Oct 2010 17:07:09 +0100 Subject: Update documentation of QDir to reflect Qt 4 behaviour Reviewed-By: Thomas Zander --- src/corelib/io/qdir.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index bbe9226..eb78e25 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -1356,8 +1356,11 @@ QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, Filters filter Returns true on success; otherwise returns false. + If the directory already exists when this function is called, it will return false. + \sa rmdir() */ +// ### Qt5: behaviour when directory already exists should be made consistent for mkdir and mkpath bool QDir::mkdir(const QString &dirName) const { const QDirPrivate* d = d_ptr.constData(); @@ -1406,8 +1409,11 @@ bool QDir::rmdir(const QString &dirName) const Returns true if successful; otherwise returns false. + If the path already exists when this function is called, it will return true. + \sa rmpath() */ +// ### Qt5: behaviour when directory already exists should be made consistent for mkdir and mkpath bool QDir::mkpath(const QString &dirPath) const { const QDirPrivate* d = d_ptr.constData(); -- cgit v0.12 From 0dd8d6e60a850b42b75d64ccc7eb793ae5c1549b Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 11 Oct 2010 17:09:47 +0100 Subject: Fix compilation of two autotests These tests did not link when QT_BUILD_INTERNAL was not defined, as one of the private headers was causing QFileInfoGatherer::~QFileInfoGatherer to be referenced Reviewed-By: Thomas Zander --- tests/auto/qfiledialog/tst_qfiledialog.cpp | 4 ++++ tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/tests/auto/qfiledialog/tst_qfiledialog.cpp b/tests/auto/qfiledialog/tst_qfiledialog.cpp index ca7c445..5d369b4 100644 --- a/tests/auto/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/qfiledialog/tst_qfiledialog.cpp @@ -61,9 +61,13 @@ #include #include #include "../../shared/util.h" +#if defined QT_BUILD_INTERNAL #include "../../../src/gui/dialogs/qsidebar_p.h" #include "../../../src/gui/dialogs/qfilesystemmodel_p.h" #include "../../../src/gui/dialogs/qfiledialog_p.h" +#endif +#include +#include #include "../network-settings.h" diff --git a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp index c234c96..a391eb9 100644 --- a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp +++ b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp @@ -41,7 +41,10 @@ #include +#ifdef QT_BUILD_INTERNAL #include "../../../src/gui/dialogs/qfilesystemmodel_p.h" +#endif +#include #include #include #include @@ -826,8 +829,10 @@ void tst_QFileSystemModel::sort() MyFriendFileSystemModel *myModel = new MyFriendFileSystemModel(); QTreeView *tree = new QTreeView(); +#ifdef QT_BUILD_INTERNAL if (fileDialogMode) myModel->d_func()->disableRecursiveSort = true; +#endif QDir dir(QDir::tempPath()); //initialize the randomness -- cgit v0.12 From 4f9b25ffa8025702c82a32538b82d15acf03303b Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 11 Oct 2010 17:11:54 +0100 Subject: Fix return value for QDir::mkdir on symbian Qt 4.7 behaviour was to return false when directory already exists for mkdir but true when directory already exists for mkpath. This change makes symbian do that in master, even though it's inconsistent. Reviewed-By: Thomas Zander --- src/corelib/io/qfilesystemengine_symbian.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 877ea7a..d068248 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -115,6 +115,7 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) QString orig = entry.filePath(); const bool isAbsolute = entry.isAbsolute(); const bool isDirty = (orig.contains(QLatin1String("/../")) || orig.contains(QLatin1String("/./")) || + orig.contains(QLatin1String("//")) || orig.endsWith(QLatin1String("/..")) || orig.endsWith(QLatin1String("/."))); if (isAbsolute && !isDirty) return entry; @@ -258,7 +259,9 @@ bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool crea r = qt_s60GetRFs().MkDirAll(qt_QString2TPtrC(abspath)); else r = qt_s60GetRFs().MkDir(qt_QString2TPtrC(abspath)); - return (r == KErrNone || r == KErrAlreadyExists); + if (createParents && r == KErrAlreadyExists) + return true; //# Qt5 - QDir::mkdir returns false for existing dir, QDir::mkpath returns true (should be made consistent in Qt 5) + return (r == KErrNone); } //static -- cgit v0.12 From 75016a4a3bb2ae536a3a813f0ef410b1a0c83742 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Mon, 11 Oct 2010 16:35:58 +0200 Subject: Add test to test QDir caching behavior. Also fix the qfileenginemodel test to be less fragile Reviewed-by: Prasanth Ullattil --- tests/auto/qdir/tst_qdir.cpp | 13 +++++++++++++ tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 2bb0a3e..d540f29 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -175,6 +175,8 @@ private slots: void detachingOperations(); + void testCaching(); + #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) void isRoot_data(); void isRoot(); @@ -1663,6 +1665,17 @@ void tst_QDir::detachingOperations() QCOMPARE(dir1.sorting(), sorting); } +void tst_QDir::testCaching() +{ + QString dirName = QString::fromLatin1("testCaching"); + QDir::current().rmdir(dirName); // cleanup a previous run. + QDir dir(dirName); + QVERIFY(!dir.exists()); + QDir::current().mkdir(dirName); + QVERIFY(QDir(dirName).exists()); // dir exists + QVERIFY(dir.exists()); // QDir doesn't cache the 'exist' between calls. +} + #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) void tst_QDir::isRoot_data() { diff --git a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp index a391eb9..6b63691 100644 --- a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp +++ b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp @@ -997,8 +997,8 @@ void tst_QFileSystemModel::dirsBeforeFiles() } dir.rmdir(dirPath); } - dir.mkpath(dirPath); - QVERIFY(dir.exists()); + QVERIFY(dir.mkpath(dirPath)); + QVERIFY(QDir(dirPath).exists()); for (int i = 0; i < 3; ++i) { QLatin1Char c('a' + i); -- cgit v0.12 From aa117bb48971c2fe56aff1e678ee3a7f6358eb0d Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Mon, 11 Oct 2010 16:50:09 +0200 Subject: Fix caching of metadata in QDir to not change behavior In 4.7 and before a QDir::exists() always stats and a refresh() call would flush metadata, restore this behavior again. Reviewed-by: Prasanth Ullattil --- src/corelib/io/qdir.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index eb78e25..e9bc012 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -131,9 +131,8 @@ QDirPrivate::QDirPrivate(const QDirPrivate ©) bool QDirPrivate::exists() const { if (fileEngine.isNull()) { - if (!metaData.hasFlags(QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType)) - QFileSystemEngine::fillMetaData(dirEntry, metaData, - QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType); + QFileSystemEngine::fillMetaData(dirEntry, metaData, + QFileSystemMetaData::ExistsAttribute | QFileSystemMetaData::DirectoryType); // always stat return metaData.exists() && metaData.isDirectory(); } const QAbstractFileEngine::FileFlags info = @@ -2100,6 +2099,7 @@ bool QDir::isRelativePath(const QString &path) void QDir::refresh() const { QDirPrivate *d = const_cast(this)->d_ptr.data(); + d->metaData.clear(); d->initFileEngine(); d->clearFileLists(); } -- cgit v0.12 From f1f39af98afb2129daa5db2686200907de4c0999 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Mon, 11 Oct 2010 17:43:04 +0200 Subject: Test QDir::mkdir/mkpath return codes --- tests/auto/qdir/tst_qdir.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index d540f29..9521921 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -103,6 +103,8 @@ private slots: void mkdir_data(); void mkdir(); + void makedirReturnCode(); + void rmdir_data(); void rmdir(); @@ -295,6 +297,17 @@ void tst_QDir::mkdir() QVERIFY(fi.exists() && fi.isDir()); } +void tst_QDir::makedirReturnCode() +{ + QString dirName = QString::fromLatin1("makedirReturnCode"); + QDir::current().rmdir(dirName); // cleanup a previous run. + QDir dir(dirName); + QVERIFY(!dir.exists()); + QVERIFY(QDir::current().mkdir(dirName)); + QVERIFY(!QDir::current().mkdir(dirName)); // calling mkdir on an existing dir will fail. + QVERIFY(QDir::current().mkpath(dirName)); // calling mkpath on an existing dir will pass +} + void tst_QDir::rmdir_data() { QTest::addColumn("path"); -- cgit v0.12 From 1f8b697da6c6606d57a003666d35115ad72860f2 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 12 Oct 2010 12:04:29 +0100 Subject: Fix deployment for examples and tests Due to the change from default deployment in symbian from being hardcoded in qmake to being in default_deployment.prf the .pro files needed to be changed. Specifically, "DEPLOYMENT = foo" needs to be "DEPLOYMENT += foo" otherwise the default deployment lines are not added and the test won't install. Reviewed-By: Miikka Heikkinen --- demos/declarative/minehunt/minehunt.pro | 2 +- examples/declarative/cppextensions/imageprovider/imageprovider.pro | 2 +- examples/declarative/cppextensions/qwidgets/qwidgets.pro | 2 +- tests/auto/declarative/examples/examples.pro | 2 +- tests/auto/declarative/moduleqt47/moduleqt47.pro | 2 +- tests/auto/declarative/parserstress/parserstress.pro | 2 +- tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro | 2 +- .../qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro | 2 +- .../declarative/qdeclarativeanimations/qdeclarativeanimations.pro | 2 +- .../auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro | 2 +- tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro | 2 +- .../declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro | 2 +- .../declarative/qdeclarativeconnection/qdeclarativeconnection.pro | 2 +- tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro | 2 +- .../declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro | 2 +- .../auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro | 2 +- tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro | 2 +- .../declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro | 2 +- .../qdeclarativefolderlistmodel/qdeclarativefolderlistmodel.pro | 2 +- .../declarative/qdeclarativefontloader/qdeclarativefontloader.pro | 2 +- tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro | 2 +- tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro | 2 +- tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro | 2 +- tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro | 2 +- tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro | 2 +- .../declarative/qdeclarativelayoutitem/qdeclarativelayoutitem.pro | 2 +- .../auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro | 2 +- tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro | 2 +- tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro | 2 +- .../qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.pro | 2 +- .../auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro | 2 +- .../auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro | 2 +- tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro | 2 +- .../declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro | 2 +- .../declarative/qdeclarativepositioners/qdeclarativepositioners.pro | 2 +- tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro | 2 +- tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro | 2 +- tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro | 2 +- .../qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro | 2 +- .../qdeclarativesmoothedanimation/qdeclarativesmoothedanimation.pro | 2 +- .../qdeclarativespringanimation/qdeclarativespringanimation.pro | 2 +- .../declarative/qdeclarativesqldatabase/qdeclarativesqldatabase.pro | 2 +- tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro | 2 +- tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro | 2 +- tests/auto/declarative/qdeclarativetextedit/qdeclarativetextedit.pro | 2 +- .../auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro | 2 +- .../declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro | 2 +- tests/auto/declarative/qdeclarativeview/qdeclarativeview.pro | 2 +- tests/auto/declarative/qdeclarativeviewer/qdeclarativeviewer.pro | 2 +- .../qdeclarativevisualdatamodel/qdeclarativevisualdatamodel.pro | 2 +- tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro | 2 +- .../declarative/qdeclarativeworkerscript/qdeclarativeworkerscript.pro | 2 +- .../qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro | 2 +- .../declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro | 2 +- tests/auto/declarative/qmlvisual/qmlvisual.pro | 2 +- tests/auto/networkselftest/networkselftest.pro | 4 ++-- tests/auto/qapplication/test/test.pro | 4 ++-- tests/auto/qaudioinput/qaudioinput.pro | 2 +- tests/auto/qaudiooutput/qaudiooutput.pro | 2 +- tests/auto/qchar/qchar.pro | 2 +- tests/auto/qclipboard/test/test.pro | 2 +- tests/auto/qfile/test/test.pro | 2 +- tests/auto/qfileinfo/qfileinfo.pro | 2 +- tests/auto/qhttp/qhttp.pro | 4 ++-- tests/auto/qlocalsocket/test/test.pro | 2 +- tests/auto/qresourceengine/qresourceengine.pro | 2 +- tests/auto/qsound/qsound.pro | 2 +- tests/benchmarks/declarative/binding/binding.pro | 2 +- tests/benchmarks/declarative/qdeclarativeimage/qdeclarativeimage.pro | 2 +- tests/benchmarks/declarative/script/script.pro | 2 +- 70 files changed, 73 insertions(+), 73 deletions(-) diff --git a/demos/declarative/minehunt/minehunt.pro b/demos/declarative/minehunt/minehunt.pro index 753ca4e..4cf1441 100644 --- a/demos/declarative/minehunt/minehunt.pro +++ b/demos/declarative/minehunt/minehunt.pro @@ -19,6 +19,6 @@ symbian:{ TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) qmlminehuntfiles.sources = MinehuntCore minehunt.qml - DEPLOYMENT = qmlminehuntfiles + DEPLOYMENT += qmlminehuntfiles } \ No newline at end of file diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider.pro b/examples/declarative/cppextensions/imageprovider/imageprovider.pro index 7149986..9797a3f 100644 --- a/examples/declarative/cppextensions/imageprovider/imageprovider.pro +++ b/examples/declarative/cppextensions/imageprovider/imageprovider.pro @@ -24,5 +24,5 @@ symbian:{ importFiles.sources = ImageProviderCore/qmlimageproviderplugin.dll ImageProviderCore/qmldir importFiles.path = ImageProviderCore - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } diff --git a/examples/declarative/cppextensions/qwidgets/qwidgets.pro b/examples/declarative/cppextensions/qwidgets/qwidgets.pro index 2e610f9..3353a8d 100644 --- a/examples/declarative/cppextensions/qwidgets/qwidgets.pro +++ b/examples/declarative/cppextensions/qwidgets/qwidgets.pro @@ -20,5 +20,5 @@ symbian:{ importFiles.sources = QWidgets/qmlqwidgetsplugin.dll QWidgets/qmldir importFiles.path = QWidgets - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } diff --git a/tests/auto/declarative/examples/examples.pro b/tests/auto/declarative/examples/examples.pro index 2e243b4..1a0dc55 100644 --- a/tests/auto/declarative/examples/examples.pro +++ b/tests/auto/declarative/examples/examples.pro @@ -9,7 +9,7 @@ include(../../../../tools/qml/qml.pri) symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/moduleqt47/moduleqt47.pro b/tests/auto/declarative/moduleqt47/moduleqt47.pro index 4ee634e..711e24c 100644 --- a/tests/auto/declarative/moduleqt47/moduleqt47.pro +++ b/tests/auto/declarative/moduleqt47/moduleqt47.pro @@ -7,7 +7,7 @@ SOURCES += tst_moduleqt47.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/parserstress/parserstress.pro b/tests/auto/declarative/parserstress/parserstress.pro index bb1d69f..17f297b 100644 --- a/tests/auto/declarative/parserstress/parserstress.pro +++ b/tests/auto/declarative/parserstress/parserstress.pro @@ -7,7 +7,7 @@ SOURCES += tst_parserstress.cpp symbian: { importFiles.sources = ..\\..\\qscriptjstestsuite\\tests importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro b/tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro index 9798bb6..6295079 100644 --- a/tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro +++ b/tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro @@ -6,7 +6,7 @@ macx:CONFIG -= app_bundle symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro b/tests/auto/declarative/qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro index 0a2f0f2..8c2259a 100644 --- a/tests/auto/declarative/qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro +++ b/tests/auto/declarative/qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro @@ -7,7 +7,7 @@ macx:CONFIG -= app_bundle symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeanimations/qdeclarativeanimations.pro b/tests/auto/declarative/qdeclarativeanimations/qdeclarativeanimations.pro index ed47dca..578f37b 100644 --- a/tests/auto/declarative/qdeclarativeanimations/qdeclarativeanimations.pro +++ b/tests/auto/declarative/qdeclarativeanimations/qdeclarativeanimations.pro @@ -6,7 +6,7 @@ macx:CONFIG -= app_bundle symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro b/tests/auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro index cfb59ef..7ba3a7d 100644 --- a/tests/auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro +++ b/tests/auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro @@ -6,7 +6,7 @@ macx:CONFIG -= app_bundle symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro b/tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro index a7ba2a8..0cdaada 100644 --- a/tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro +++ b/tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativebinding.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro b/tests/auto/declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro index a21761b..0e41c13 100644 --- a/tests/auto/declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro +++ b/tests/auto/declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro @@ -8,7 +8,7 @@ SOURCES += tst_qdeclarativeborderimage.cpp ../shared/testhttpserver.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeconnection/qdeclarativeconnection.pro b/tests/auto/declarative/qdeclarativeconnection/qdeclarativeconnection.pro index d06ce4f..33d81ba 100644 --- a/tests/auto/declarative/qdeclarativeconnection/qdeclarativeconnection.pro +++ b/tests/auto/declarative/qdeclarativeconnection/qdeclarativeconnection.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativeconnection.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro b/tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro index 415d4e2..1866a43 100644 --- a/tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro +++ b/tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativedom.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro b/tests/auto/declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro index 58cad34..2eb333a 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro +++ b/tests/auto/declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro @@ -15,7 +15,7 @@ INCLUDEPATH += ../shared symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro b/tests/auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro index be0ba6c..3f8b5e9 100644 --- a/tests/auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro +++ b/tests/auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativeflickable.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro b/tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro index 759e80b..cb42418 100644 --- a/tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro +++ b/tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativeflipable.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro b/tests/auto/declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro index 24749c6..3724a78 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro +++ b/tests/auto/declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro @@ -6,7 +6,7 @@ macx:CONFIG -= app_bundle symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativefolderlistmodel/qdeclarativefolderlistmodel.pro b/tests/auto/declarative/qdeclarativefolderlistmodel/qdeclarativefolderlistmodel.pro index 91bf4a7..3299786 100644 --- a/tests/auto/declarative/qdeclarativefolderlistmodel/qdeclarativefolderlistmodel.pro +++ b/tests/auto/declarative/qdeclarativefolderlistmodel/qdeclarativefolderlistmodel.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativefolderlistmodel.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativefontloader/qdeclarativefontloader.pro b/tests/auto/declarative/qdeclarativefontloader/qdeclarativefontloader.pro index 01dca26..fbd2550 100644 --- a/tests/auto/declarative/qdeclarativefontloader/qdeclarativefontloader.pro +++ b/tests/auto/declarative/qdeclarativefontloader/qdeclarativefontloader.pro @@ -8,7 +8,7 @@ SOURCES += tst_qdeclarativefontloader.cpp ../shared/testhttpserver.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro b/tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro index a99a1b9..4ea1e47 100644 --- a/tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro +++ b/tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativegridview.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro b/tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro index 244a1e1..e5db298 100644 --- a/tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro +++ b/tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro @@ -8,7 +8,7 @@ SOURCES += tst_qdeclarativeimage.cpp ../shared/testhttpserver.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro b/tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro index 2c20e7e..188ea23 100644 --- a/tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro +++ b/tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativeinfo.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro b/tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro index f4901c4..26bd624 100644 --- a/tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro +++ b/tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativeitem.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro b/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro index 43c451f..d702082 100644 --- a/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro +++ b/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro @@ -14,7 +14,7 @@ SOURCES += ../shared/testhttpserver.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativelayoutitem/qdeclarativelayoutitem.pro b/tests/auto/declarative/qdeclarativelayoutitem/qdeclarativelayoutitem.pro index 5076e51..b74ea98 100644 --- a/tests/auto/declarative/qdeclarativelayoutitem/qdeclarativelayoutitem.pro +++ b/tests/auto/declarative/qdeclarativelayoutitem/qdeclarativelayoutitem.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativelayoutitem.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro b/tests/auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro index e90db49..d1146b1 100644 --- a/tests/auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro +++ b/tests/auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro @@ -8,7 +8,7 @@ SOURCES += tst_qdeclarativelistmodel.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro b/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro index 2c5a859..f26a71e 100644 --- a/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro +++ b/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativelistview.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro b/tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro index b07bf9e..29b9eb9 100644 --- a/tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro +++ b/tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro @@ -10,7 +10,7 @@ SOURCES += tst_qdeclarativeloader.cpp \ symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.pro b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.pro index fb3630f..36dbb83 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.pro +++ b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.pro @@ -6,7 +6,7 @@ CONFIG -= app_bundle symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro b/tests/auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro index 3d39aa8..fec73c5 100644 --- a/tests/auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro +++ b/tests/auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro @@ -8,7 +8,7 @@ SOURCES += tst_qdeclarativemousearea.cpp ../shared/testhttpserver.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro b/tests/auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro index f9ca90f..9762b7c 100644 --- a/tests/auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro +++ b/tests/auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativeparticles.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro b/tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro index 04fd26b..3270c5e 100644 --- a/tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro +++ b/tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativepathview.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro b/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro index 3130364..2e2c6bc 100644 --- a/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro +++ b/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro @@ -12,7 +12,7 @@ SOURCES += ../shared/testhttpserver.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativepositioners/qdeclarativepositioners.pro b/tests/auto/declarative/qdeclarativepositioners/qdeclarativepositioners.pro index 5dc7bb8..f2c9eee 100644 --- a/tests/auto/declarative/qdeclarativepositioners/qdeclarativepositioners.pro +++ b/tests/auto/declarative/qdeclarativepositioners/qdeclarativepositioners.pro @@ -6,7 +6,7 @@ macx:CONFIG -= app_bundle symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro b/tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro index 4121a33..504a371 100644 --- a/tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro +++ b/tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativeproperty.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro b/tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro index 6af6500..775f445 100644 --- a/tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro +++ b/tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro @@ -6,7 +6,7 @@ macx:CONFIG -= app_bundle symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro b/tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro index f3ff9ed..0f3773c 100644 --- a/tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro +++ b/tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativerepeater.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro b/tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro index c2d30a0..8a63355 100644 --- a/tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro +++ b/tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro @@ -11,7 +11,7 @@ INCLUDEPATH += ../shared symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/qdeclarativesmoothedanimation.pro b/tests/auto/declarative/qdeclarativesmoothedanimation/qdeclarativesmoothedanimation.pro index 872aeb9..e770d46 100644 --- a/tests/auto/declarative/qdeclarativesmoothedanimation/qdeclarativesmoothedanimation.pro +++ b/tests/auto/declarative/qdeclarativesmoothedanimation/qdeclarativesmoothedanimation.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativesmoothedanimation.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativespringanimation/qdeclarativespringanimation.pro b/tests/auto/declarative/qdeclarativespringanimation/qdeclarativespringanimation.pro index 213b262..07bcbe7 100644 --- a/tests/auto/declarative/qdeclarativespringanimation/qdeclarativespringanimation.pro +++ b/tests/auto/declarative/qdeclarativespringanimation/qdeclarativespringanimation.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativespringanimation.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativesqldatabase/qdeclarativesqldatabase.pro b/tests/auto/declarative/qdeclarativesqldatabase/qdeclarativesqldatabase.pro index 1462c9a..400512d 100644 --- a/tests/auto/declarative/qdeclarativesqldatabase/qdeclarativesqldatabase.pro +++ b/tests/auto/declarative/qdeclarativesqldatabase/qdeclarativesqldatabase.pro @@ -8,7 +8,7 @@ SOURCES += tst_qdeclarativesqldatabase.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro b/tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro index 2bae041..cb3e0fe 100644 --- a/tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro +++ b/tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativestates.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro b/tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro index c1a36fd..28a9fcd 100644 --- a/tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro +++ b/tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro @@ -12,7 +12,7 @@ SOURCES += ../shared/testhttpserver.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativetextedit/qdeclarativetextedit.pro b/tests/auto/declarative/qdeclarativetextedit/qdeclarativetextedit.pro index 4b6bd49..8606eb0 100644 --- a/tests/auto/declarative/qdeclarativetextedit/qdeclarativetextedit.pro +++ b/tests/auto/declarative/qdeclarativetextedit/qdeclarativetextedit.pro @@ -8,7 +8,7 @@ HEADERS += ../shared/testhttpserver.h symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro b/tests/auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro index 8f42448..7d178d7 100644 --- a/tests/auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro +++ b/tests/auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativetextinput.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro b/tests/auto/declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro index 90e46d3..56c3cd4 100644 --- a/tests/auto/declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro +++ b/tests/auto/declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro @@ -10,7 +10,7 @@ SOURCES += tst_qdeclarativevaluetypes.cpp \ symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeview/qdeclarativeview.pro b/tests/auto/declarative/qdeclarativeview/qdeclarativeview.pro index 21a9195..2f0a474 100644 --- a/tests/auto/declarative/qdeclarativeview/qdeclarativeview.pro +++ b/tests/auto/declarative/qdeclarativeview/qdeclarativeview.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativeview.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeviewer/qdeclarativeviewer.pro b/tests/auto/declarative/qdeclarativeviewer/qdeclarativeviewer.pro index 6189916..08adf26 100644 --- a/tests/auto/declarative/qdeclarativeviewer/qdeclarativeviewer.pro +++ b/tests/auto/declarative/qdeclarativeviewer/qdeclarativeviewer.pro @@ -9,7 +9,7 @@ SOURCES += tst_qdeclarativeviewer.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/qdeclarativevisualdatamodel.pro b/tests/auto/declarative/qdeclarativevisualdatamodel/qdeclarativevisualdatamodel.pro index 92e5f60..d0d9b36 100644 --- a/tests/auto/declarative/qdeclarativevisualdatamodel/qdeclarativevisualdatamodel.pro +++ b/tests/auto/declarative/qdeclarativevisualdatamodel/qdeclarativevisualdatamodel.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativevisualdatamodel.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro b/tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro index 562a9fb..2ab27a1 100644 --- a/tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro +++ b/tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro @@ -8,7 +8,7 @@ SOURCES += tst_qdeclarativewebview.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativeworkerscript/qdeclarativeworkerscript.pro b/tests/auto/declarative/qdeclarativeworkerscript/qdeclarativeworkerscript.pro index 2f8f23d..9d4e0ed 100644 --- a/tests/auto/declarative/qdeclarativeworkerscript/qdeclarativeworkerscript.pro +++ b/tests/auto/declarative/qdeclarativeworkerscript/qdeclarativeworkerscript.pro @@ -7,7 +7,7 @@ SOURCES += tst_qdeclarativeworkerscript.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro b/tests/auto/declarative/qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro index 619b239..bfd47c5 100644 --- a/tests/auto/declarative/qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro +++ b/tests/auto/declarative/qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro @@ -11,7 +11,7 @@ SOURCES += tst_qdeclarativexmlhttprequest.cpp \ symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro b/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro index 472cffb..f4b25b5 100644 --- a/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro +++ b/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro @@ -11,7 +11,7 @@ SOURCES += tst_qdeclarativexmllistmodel.cpp symbian: { importFiles.sources = data importFiles.path = . - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/auto/declarative/qmlvisual/qmlvisual.pro b/tests/auto/declarative/qmlvisual/qmlvisual.pro index cb7e5d7..be9f26f 100644 --- a/tests/auto/declarative/qmlvisual/qmlvisual.pro +++ b/tests/auto/declarative/qmlvisual/qmlvisual.pro @@ -27,7 +27,7 @@ symbian: { repeater \ selftest_noimages \ webview - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += QT_TEST_SOURCE_DIR=\"\\\"$$PWD\\\"\" } diff --git a/tests/auto/networkselftest/networkselftest.pro b/tests/auto/networkselftest/networkselftest.pro index d7cb7f3..2217a32 100644 --- a/tests/auto/networkselftest/networkselftest.pro +++ b/tests/auto/networkselftest/networkselftest.pro @@ -6,12 +6,12 @@ QT = core network wince*: { addFiles.sources = rfc3252.txt addFiles.path = . - DEPLOYMENT = addFiles + DEPLOYMENT += addFiles DEFINES += SRCDIR=\\\"\\\" } else:symbian { addFiles.sources = rfc3252.txt addFiles.path = . - DEPLOYMENT = addFiles + DEPLOYMENT += addFiles } else:vxworks*: { DEFINES += SRCDIR=\\\"\\\" } else { diff --git a/tests/auto/qapplication/test/test.pro b/tests/auto/qapplication/test/test.pro index 2c54c37..e1193c2 100644 --- a/tests/auto/qapplication/test/test.pro +++ b/tests/auto/qapplication/test/test.pro @@ -8,7 +8,7 @@ wince* { additional.path = desktopsettingsaware someTest.sources = test.pro someTest.path = test - DEPLOYMENT = additional deploy someTest + DEPLOYMENT += additional deploy someTest } symbian: { @@ -17,7 +17,7 @@ symbian: { someTest.sources = test.pro someTest.path = test windowIcon.sources = ../heart.svg - DEPLOYMENT = additional deploy someTest windowIcon + DEPLOYMENT += additional deploy someTest windowIcon LIBS += -lcone -lavkon } diff --git a/tests/auto/qaudioinput/qaudioinput.pro b/tests/auto/qaudioinput/qaudioinput.pro index 5eb1613..0bbbb19 100644 --- a/tests/auto/qaudioinput/qaudioinput.pro +++ b/tests/auto/qaudioinput/qaudioinput.pro @@ -6,7 +6,7 @@ QT = core multimedia wince* { deploy.sources += 4.wav - DEPLOYMENT = deploy + DEPLOYMENT += deploy DEFINES += SRCDIR=\\\"\\\" QT += gui } else { diff --git a/tests/auto/qaudiooutput/qaudiooutput.pro b/tests/auto/qaudiooutput/qaudiooutput.pro index e1734e0..09d7ae3 100644 --- a/tests/auto/qaudiooutput/qaudiooutput.pro +++ b/tests/auto/qaudiooutput/qaudiooutput.pro @@ -6,7 +6,7 @@ QT = core multimedia wince*|symbian: { deploy.sources += 4.wav - DEPLOYMENT = deploy + DEPLOYMENT += deploy !symbian { DEFINES += SRCDIR=\\\"\\\" QT += gui diff --git a/tests/auto/qchar/qchar.pro b/tests/auto/qchar/qchar.pro index 3813e4e..8224448 100644 --- a/tests/auto/qchar/qchar.pro +++ b/tests/auto/qchar/qchar.pro @@ -5,7 +5,7 @@ QT = core wince*|symbian: { deploy.sources += NormalizationTest.txt -DEPLOYMENT = deploy +DEPLOYMENT += deploy } symbian: { diff --git a/tests/auto/qclipboard/test/test.pro b/tests/auto/qclipboard/test/test.pro index 0f8cad1..620ff36 100644 --- a/tests/auto/qclipboard/test/test.pro +++ b/tests/auto/qclipboard/test/test.pro @@ -26,5 +26,5 @@ wince*|symbian: { reg_resource.path = $$REG_RESOURCE_IMPORT_DIR } - DEPLOYMENT = copier paster rsc reg_resource + DEPLOYMENT += copier paster rsc reg_resource } \ No newline at end of file diff --git a/tests/auto/qfile/test/test.pro b/tests/auto/qfile/test/test.pro index 70c93ce..9a2d847 100644 --- a/tests/auto/qfile/test/test.pro +++ b/tests/auto/qfile/test/test.pro @@ -10,7 +10,7 @@ wince*|symbian { resour.sources += ..\\resources\\file1.ext1 resour.path = resources - DEPLOYMENT = files resour + DEPLOYMENT += files resour } wince* { diff --git a/tests/auto/qfileinfo/qfileinfo.pro b/tests/auto/qfileinfo/qfileinfo.pro index 30656e2..7df721e 100644 --- a/tests/auto/qfileinfo/qfileinfo.pro +++ b/tests/auto/qfileinfo/qfileinfo.pro @@ -10,7 +10,7 @@ wince*:|symbian: { deploy.sources += qfileinfo.qrc tst_qfileinfo.cpp res.sources = resources\\file1 resources\\file1.ext1 resources\\file1.ext1.ext2 res.path = resources - DEPLOYMENT = deploy res + DEPLOYMENT += deploy res } symbian { diff --git a/tests/auto/qhttp/qhttp.pro b/tests/auto/qhttp/qhttp.pro index c0be518..b7b78f1 100644 --- a/tests/auto/qhttp/qhttp.pro +++ b/tests/auto/qhttp/qhttp.pro @@ -11,7 +11,7 @@ wince*: { cgi.path = webserver/cgi-bin addFiles.sources = rfc3252.txt trolltech addFiles.path = . - DEPLOYMENT = addFiles webFiles cgi + DEPLOYMENT += addFiles webFiles cgi DEFINES += SRCDIR=\\\"\\\" } else:symbian { webFiles.sources = webserver/* @@ -20,7 +20,7 @@ wince*: { cgi.path = webserver/cgi-bin addFiles.sources = rfc3252.txt trolltech addFiles.path = . - DEPLOYMENT = addFiles webFiles cgi + DEPLOYMENT += addFiles webFiles cgi TARGET.CAPABILITY = NetworkServices } else:vxworks*: { DEFINES += SRCDIR=\\\"\\\" diff --git a/tests/auto/qlocalsocket/test/test.pro b/tests/auto/qlocalsocket/test/test.pro index 687aae2..0ee1cb6 100644 --- a/tests/auto/qlocalsocket/test/test.pro +++ b/tests/auto/qlocalsocket/test/test.pro @@ -42,7 +42,7 @@ symbian { wince*|symbian { scriptFiles.sources = ../lackey/scripts/*.js scriptFiles.path = lackey/scripts - DEPLOYMENT = additionalFiles scriptFiles + DEPLOYMENT += additionalFiles scriptFiles QT += script # for easy deployment of QtScript requires(contains(QT_CONFIG,script)) diff --git a/tests/auto/qresourceengine/qresourceengine.pro b/tests/auto/qresourceengine/qresourceengine.pro index 17e36af..1ad0f5d 100644 --- a/tests/auto/qresourceengine/qresourceengine.pro +++ b/tests/auto/qresourceengine/qresourceengine.pro @@ -38,7 +38,7 @@ wince*|symbian:{ testsub.path = testqrc/test testsub2.sources = testqrc/test/test/* testsub2.path = testqrc/test/test - DEPLOYMENT = deploy test alias other search1 search2 sub testsub testsub2 + DEPLOYMENT += deploy test alias other search1 search2 sub testsub testsub2 !symbian:DEFINES += SRCDIR=\\\"\\\" } else { DEFINES += SRCDIR=\\\"$$PWD/\\\" diff --git a/tests/auto/qsound/qsound.pro b/tests/auto/qsound/qsound.pro index bb1981c..e3279f3 100644 --- a/tests/auto/qsound/qsound.pro +++ b/tests/auto/qsound/qsound.pro @@ -3,7 +3,7 @@ SOURCES += tst_qsound.cpp wince*|symbian: { deploy.sources += 4.wav - DEPLOYMENT = deploy + DEPLOYMENT += deploy !symbian:DEFINES += SRCDIR=\\\"\\\" } else { DEFINES += SRCDIR=\\\"$$PWD/\\\" diff --git a/tests/benchmarks/declarative/binding/binding.pro b/tests/benchmarks/declarative/binding/binding.pro index c1a8223..b93977a 100644 --- a/tests/benchmarks/declarative/binding/binding.pro +++ b/tests/benchmarks/declarative/binding/binding.pro @@ -10,7 +10,7 @@ HEADERS += testtypes.h symbian { data.sources = data data.path = . - DEPLOYMENT = data + DEPLOYMENT += data } else { # Define SRCDIR equal to test's source directory DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/benchmarks/declarative/qdeclarativeimage/qdeclarativeimage.pro b/tests/benchmarks/declarative/qdeclarativeimage/qdeclarativeimage.pro index a68792b..313282b 100644 --- a/tests/benchmarks/declarative/qdeclarativeimage/qdeclarativeimage.pro +++ b/tests/benchmarks/declarative/qdeclarativeimage/qdeclarativeimage.pro @@ -10,7 +10,7 @@ SOURCES += tst_qdeclarativeimage.cpp symbian { importFiles.sources = image.png importFiles.path = - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } diff --git a/tests/benchmarks/declarative/script/script.pro b/tests/benchmarks/declarative/script/script.pro index 685ba03..759c6dd 100644 --- a/tests/benchmarks/declarative/script/script.pro +++ b/tests/benchmarks/declarative/script/script.pro @@ -10,7 +10,7 @@ SOURCES += tst_script.cpp symbian { importFiles.sources = data importFiles.path = - DEPLOYMENT = importFiles + DEPLOYMENT += importFiles } else { DEFINES += SRCDIR=\\\"$$PWD\\\" } -- cgit v0.12 From ec1c89a9440cefc0ebea225d3aeca2decb56e690 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 12 Oct 2010 17:32:29 +0100 Subject: Correct errors in the qimagereader autotest First, pgm and pbm formats need the same exception given to ppm format as they are subtypes of the same format. (as text based image formats they are vulnerable to line end differences) Second, a workaround for the readFromDevice test case hanging on the symbian emulator. The test expects to be able to send a whole image to a socket and have this fit within the send/receive buffers of the TCP stack. At least for the emulator's winsock backend, this hangs the autotest inside a blocking write. On the Nokia 5800, the test passed so it's currently skipped only for the emulator. Reviewed-By: Jason Barron --- tests/auto/qimagereader/tst_qimagereader.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/auto/qimagereader/tst_qimagereader.cpp b/tests/auto/qimagereader/tst_qimagereader.cpp index 4b4bdd6..a6fb886 100644 --- a/tests/auto/qimagereader/tst_qimagereader.cpp +++ b/tests/auto/qimagereader/tst_qimagereader.cpp @@ -1098,6 +1098,11 @@ void tst_QImageReader::readFromDevice() QCOMPARE(image1, expectedImage); } +#if defined (Q_OS_SYMBIAN) && defined (__WINS__) + //the emulator hangs in socket write (this is a test bug, it assumes the TCP stack can accept a whole image to its buffers) + if(imageData.size() > 16384) + QSKIP("image larger than socket buffer (test needs to be rewritten)", SkipSingle); +#endif Server server(imageData); QEventLoop loop; connect(&server, SIGNAL(ready()), &loop, SLOT(quit())); @@ -1249,7 +1254,10 @@ void tst_QImageReader::devicePosition() buf.seek(preLen); QImageReader reader(&buf, format); QCOMPARE(expected, reader.read()); - if (format != "ppm" && format != "gif") // Known not to work + if (format != "ppm" && + format != "pgm" && + format != "pbm" && + format != "gif") // Known not to work QCOMPARE(buf.pos(), qint64(preLen+imageDataSize)); } -- cgit v0.12 From 0aa70ec7195e7a6ee07f73ac3c37030c9d37b132 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 12 Oct 2010 17:38:24 +0100 Subject: Fix for QFile::copy failing silently with relative paths CFileMan doesn't support . and .. in relative paths. Therefore, paths are converted to absolute first. Also, the error was being ignored which has been fixed. Reviewed-By: joao --- src/corelib/io/qfilesystemengine_symbian.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index d068248..e2dfe53 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -302,10 +302,11 @@ bool QFileSystemEngine::copyFile(const QFileSystemEntry &source, const QFileSyst CFileMan *fm = 0; TRAPD(err, fm = CFileMan::NewL(qt_s60GetRFs())); if (err == KErrNone) { - err = fm->Copy(qt_QString2TPtrC(source.nativeFilePath()), qt_QString2TPtrC(target.nativeFilePath()), 0); + err = fm->Copy(qt_QString2TPtrC(absoluteName(source).nativeFilePath()), qt_QString2TPtrC(absoluteName(target).nativeFilePath()), 0); delete fm; - return true; } + if (err == KErrNone) + return true; error = QSystemError(err, QSystemError::NativeError); return false; } -- cgit v0.12 From 5c5a74aa789a876805dbdb0f58de03c2195c3b97 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 12 Oct 2010 17:40:21 +0100 Subject: Fix for qfileinfo isExecutable test case. Files in /sys/bin/ on any drive can be assumed to be executable. So the executable flag is set in the metadata for this path, even though RFs::Entry fails due to permissions (so we don't know if the file exists or not) Reviewed-By: joao --- src/corelib/io/qfilesystemengine_symbian.cpp | 3 +++ tests/auto/qfileinfo/tst_qfileinfo.cpp | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index e2dfe53..dcb99d4 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -244,6 +244,9 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM data.modificationTime_ = TTime(0); data.entryFlags &= ~(QFileSystemMetaData::SymbianTEntryFlags); } + //files in /sys/bin on any drive are executable, even though we don't normally have permission to check whether they exist or not + if(absentry.filePath().midRef(1,10).compare(QLatin1String(":/sys/bin/"), Qt::CaseInsensitive) == 0) + data.entryFlags |= QFileSystemMetaData::ExecutePermissions; } return data.hasFlags(what); } diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index e4aa0d3..d2019b1 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -1465,9 +1465,6 @@ void tst_QFileInfo::isWritable() void tst_QFileInfo::isExecutable() { #ifdef Q_OS_SYMBIAN -# if defined(Q_CC_NOKIAX86) - QSKIP("Impossible to implement reading/touching of application binaries in Symbian emulator", SkipAll); -# endif QString appPath = "c:/sys/bin/tst_qfileinfo.exe"; #else QString appPath = QCoreApplication::applicationDirPath(); -- cgit v0.12 From 303bb0a3d60c3d7b991ea7829c6dd2c5b3beb9d6 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 13 Oct 2010 14:20:38 +0100 Subject: Fix crash in QApplication auto test The pointer is lazily initialised by QWidget, but becomes invalid after the application is destroyed. In the QApplication autotest, QApplication is created and destroyed many times in the same thread (while in normal use it is created at startup and destroyed on exit) As a result, the pointer which is stored in global data became stale and caused a crash due to calling functions on a deleted object. Reviewed-By: Jason Barron --- src/gui/kernel/qapplication_s60.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index ad44d21..57702c6 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1613,6 +1613,9 @@ extern void qt_cleanup_symbianFontDatabaseExtras(); // qfontdatabase_s60.cpp *****************************************************************************/ void qt_cleanup() { +#ifdef Q_WS_S60 + S60->setButtonGroupContainer(0); +#endif if(qt_S60Beep) { delete qt_S60Beep; qt_S60Beep = 0; -- cgit v0.12 From 7a5adf67655b54a0ea43b641dfbd0924b06d214a Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 13 Oct 2010 17:40:03 +0100 Subject: Create regression test for QFileInfo("").exists() File engine refactor caused a regression in QTextDocument, due to a QFileInfo constructed with an empty string returning true from exists() Added a test case to QFileInfo to catch this at the correct level. Reviewed-By: joao --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index d2019b1..cd1a597 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -412,6 +412,7 @@ void tst_QFileInfo::exists_data() QTest::newRow("data9") << SRCDIR "resources/file?.ext1" << false; QTest::newRow("data10") << "." << true; QTest::newRow("data11") << ". " << false; + QTest::newRow("empty") << "" << false; QTest::newRow("simple dir") << SRCDIR "resources" << true; QTest::newRow("simple dir with slash") << SRCDIR "resources/" << true; -- cgit v0.12 From c822fba71e2949eea3de49009ef99602a4110914 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 13 Oct 2010 17:42:54 +0100 Subject: Fix QFileInfo("").exists() regression for symbian Because RFs::Entry("") gets the entry for the current directory, we need to explicitly check for empty strings and treat as a non existant file. Reviewed-By: joao --- src/corelib/io/qfilesystemengine_symbian.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index dcb99d4..89a2b29 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -222,7 +222,9 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM RFs& fs(qt_s60GetRFs()); TInt err; QFileSystemEntry absentry(absoluteName(entry)); - if (absentry.isRoot()) { + if (entry.isEmpty()) { + err = KErrNotFound; + } else if (absentry.isRoot()) { //Root directories don't have an entry, and Entry() returns KErrBadName. //Therefore get information about the volume instead. TInt drive; -- cgit v0.12 From 9ea66f867c1aeb60dc4e90acefb2258a084740ca Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 13 Oct 2010 19:00:00 +0100 Subject: Autotest for seeking beyond end of file and then writing File engine refactor caused a regression in the TIFF image codec, as QFile::seek() previously worked like lseek() / fseek() in posix. But on symbian the native RFile::Seek api clamps to the end of the file if you attempt to seek beyond there. This test checks seek behaviour in the appropriate place, the QFile auto test. Reviewed-By: joao --- tests/auto/qfile/tst_qfile.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 2524e6e..4e7cb9f 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -170,6 +170,7 @@ private slots: void encodeName(); void truncate(); void seekToPos(); + void seekAfterEndOfFile(); void FILEReadWrite(); void i18nFileName_data(); void i18nFileName(); @@ -1644,6 +1645,36 @@ void tst_QFile::seekToPos() } +void tst_QFile::seekAfterEndOfFile() +{ + QLatin1String filename("seekAfterEof.dat"); + QFile::remove(filename); + { + QFile file(filename); + QVERIFY(file.open(QFile::WriteOnly)); + file.write("abcd"); + QCOMPARE(file.size(), qint64(4)); + file.seek(8); + file.write("ijkl"); + QCOMPARE(file.size(), qint64(12)); + file.seek(4); + file.write("efgh"); + QCOMPARE(file.size(), qint64(12)); + file.seek(16); + file.write("----"); + QCOMPARE(file.size(), qint64(20)); + file.flush(); + } + + QFile file(filename); + QVERIFY(file.open(QFile::ReadOnly)); + QByteArray contents = file.readAll(); + QCOMPARE(contents.left(12), QByteArray("abcdefghijkl", 12)); + //bytes 12-15 are uninitialised so we don't care what they read as. + QCOMPARE(contents.mid(16), QByteArray("----", 4)); + file.close(); + QFile::remove(filename); +} void tst_QFile::FILEReadWrite() { -- cgit v0.12 From a2a748f59a14f71c7f7cd5762ae9d358af2518c3 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 14 Oct 2010 14:42:34 +0100 Subject: Fix crashes and hangs in qprocess autotest The qprocess autotest launches various sub processes and checks their results, but this lacked error handling. Added a QVERIFY when opening files (if fopen returned NULL, the test fails instead of crashing) Added a 10s guard when waiting for a subprocess to create a file - previously this loop did not terminate if the subprocess failed. Reviewed-By: Markus Goetz --- tests/auto/qprocess/tst_qprocess.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/auto/qprocess/tst_qprocess.cpp b/tests/auto/qprocess/tst_qprocess.cpp index fd310f4..a497b13 100644 --- a/tests/auto/qprocess/tst_qprocess.cpp +++ b/tests/auto/qprocess/tst_qprocess.cpp @@ -1585,6 +1585,7 @@ void tst_QProcess::spaceArgsTest() #if defined(Q_OS_SYMBIAN) // Symbian test outputs to a file, so check that FILE* file = fopen("c:\\logs\\qprocess_args_test.txt","r"); + QVERIFY(file); char buf[256]; fgets(buf, 256, file); fclose(file); @@ -1614,6 +1615,7 @@ void tst_QProcess::spaceArgsTest() #if defined(Q_OS_SYMBIAN) // Symbian test outputs to a file, so check that file = fopen("c:\\logs\\qprocess_args_test.txt","r"); + QVERIFY(file); fgets(buf, 256, file); fclose(file); actual = QString::fromLatin1(buf).split("|"); @@ -1661,6 +1663,7 @@ void tst_QProcess::nativeArguments() # else FILE* file = fopen("\\temp\\qprocess_args_test.txt","r"); # endif + QVERIFY(file); char buf[256]; fgets(buf, 256, file); fclose(file); @@ -2285,7 +2288,9 @@ void tst_QProcess::detachedWorkingDirectoryAndPid() QFileInfo fi(infoFile); fi.setCaching(false); - while (fi.size() == 0) { + //The guard counter ensures the test does not hang if the sub process fails. + //Instead, the test will fail when trying to open & verify the sub process output file. + for (int guard = 0; guard < 100 && fi.size() == 0; guard++) { QTest::qSleep(100); } @@ -2397,6 +2402,7 @@ void tst_QProcess::startFinishStartFinish() #if defined(Q_OS_SYMBIAN) // Symbian test outputs to a file, so check that FILE* file = fopen("c:\\logs\\qprocess_output_test.txt","r"); + QVERIFY(file); char buf[30]; fgets(buf, 30, file); QCOMPARE(QString::fromLatin1(buf), -- cgit v0.12 From 2e35e9c1eabe667798572457c61e1d1d1f373317 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 15 Oct 2010 12:12:49 +0100 Subject: Document behaviour of QFile::seek when seeking beyond EOF Reviewed-By: joao --- src/corelib/io/qfile.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp index 50e9a8f..a0bc68e 100644 --- a/src/corelib/io/qfile.cpp +++ b/src/corelib/io/qfile.cpp @@ -1477,7 +1477,17 @@ bool QFile::atEnd() const } /*! - \reimp + For random-access devices, this function sets the current position + to \a pos, returning true on success, or false if an error occurred. + For sequential devices, the default behavior is to do nothing and + return false. + + Seeking beyond the end of a file: + If the position is beyond the end of a file, then seek() shall not + immediately extend the file. If a write is performed at this position, + then the file shall be extended. The content of the file between the + previous end of file and the newly written data is UNDEFINED and + varies between platforms and file systems. */ bool QFile::seek(qint64 off) -- cgit v0.12 From 366d2ed09ebf5aa27171a46d723497e5aaa5dd06 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 18 Oct 2010 15:15:39 +0100 Subject: Implement seek beyond end of file for symbian On Symbian, the Seek() function clamps to the end of file position if a position beyond the end of file is given. Also the write functions which take a position silently append at the end of file position if asked to write to a start position beyond EOF. To avoid this behaviour, we don't use seek but rather maintain our own cursor position. When writing, we check if the cursor is beyond EOF and if so extend the file using SetSize() before writing. Reviewed-By: joao --- src/corelib/io/qfsfileengine_unix.cpp | 51 ++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index caf5f4c..96946d6 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -382,12 +382,13 @@ qint64 QFSFileEnginePrivate::nativeRead(char *data, qint64 len) return -1; } TPtr8 ptr(reinterpret_cast(data), static_cast(len)); - TInt r = symbianFile.Read(ptr); + TInt r = symbianFile.Read(symbianFilePos, ptr); if (r != KErrNone) { q->setError(QFile::ReadError, QSystemError(r, QSystemError::NativeError).toString()); return -1; } + symbianFilePos += ptr.Length(); return qint64(ptr.Length()); } #endif @@ -467,12 +468,28 @@ qint64 QFSFileEnginePrivate::nativeWrite(const char *data, qint64 len) return -1; } const TPtrC8 ptr(reinterpret_cast(data), static_cast(len)); - TInt r = symbianFile.Write(ptr); - if (r != KErrNone) - { +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + TInt64 eofpos = 0; +#else + TInt eofpos = 0; +#endif + //The end of file position is not cached because QFile is read/write sharable, therefore another + //process may have altered the file size. + TInt r = symbianFile.Seek(ESeekEnd, eofpos); + if (r == KErrNone && symbianFilePos > eofpos) { + //seek position is beyond end of file so file needs to be extended before write. + //note that SetSize does not zero-initialise (c.f. posix lseek) + r = symbianFile.SetSize(symbianFilePos); + } + if (r == KErrNone) { + //write to specific position in the file (i.e. use our own cursor rather than calling seek) + r = symbianFile.Write(symbianFilePos, ptr); + } + if (r != KErrNone) { q->setError(QFile::WriteError, QSystemError(r, QSystemError::NativeError).toString()); return -1; } + symbianFilePos += len; return len; } #endif @@ -487,17 +504,7 @@ qint64 QFSFileEnginePrivate::nativePos() const #ifdef Q_OS_SYMBIAN const Q_Q(QFSFileEngine); if (symbianFile.SubSessionHandle()) { -#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - qint64 pos = 0; -#else - TInt pos = 0; -#endif - TInt err = symbianFile.Seek(ESeekCurrent, pos); - if(err != KErrNone) { - const_cast(q)->setError(QFile::PositionError, QSystemError(err, QSystemError::NativeError).toString()); - return -1; - } - return pos; + return symbianFilePos; } #endif return posFdFh(); @@ -511,21 +518,13 @@ bool QFSFileEnginePrivate::nativeSeek(qint64 pos) #ifdef Q_OS_SYMBIAN Q_Q(QFSFileEngine); if (symbianFile.SubSessionHandle()) { -#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API - TInt r = symbianFile.Seek(ESeekStart, pos); -#else +#ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API if(pos > KMaxTInt) { q->setError(QFile::PositionError, QLatin1String("Maximum 2GB file position on this platform")); return false; } - TInt pos32(pos); - TInt r = symbianFile.Seek(ESeekStart, pos32); #endif - if (r != KErrNone) - { - q->setError(QFile::PositionError, QSystemError(r, QSystemError::NativeError).toString()); - return false; - } + symbianFilePos = pos; return true; } #endif @@ -867,6 +866,8 @@ bool QFSFileEngine::setSize(qint64 size) if (d->symbianFile.SubSessionHandle()) { TInt err = d->symbianFile.SetSize(size); ret = (err == KErrNone); + if (ret && d->symbianFilePos > size) + d->symbianFilePos = size; } else if (d->fd != -1) ret = QT_FTRUNCATE(d->fd, size) == 0; -- cgit v0.12 From 4bdf081da0276f55662de826568441ca0e85e877 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 14 Oct 2010 14:06:20 +0100 Subject: Move QDir::fromNativeSeparators call to the QFileSystemEntry constructor The m_filePath should always have / as the separator, while m_nativeFilePath should always have the native separator. Almost every place the constructor is used, the path could be one passed into an API from code outside our control. So it's easier to do the path conversion in the constructor than to have to remember to call fromNativeSeparators in every place a QFileSystemEntry is constructed (especially since unix tests won't reveal any error) Reviewed-By: joao --- src/corelib/io/qdir.cpp | 6 +++--- src/corelib/io/qfilesystemengine_symbian.cpp | 2 +- src/corelib/io/qfilesystemengine_win.cpp | 2 +- src/corelib/io/qfilesystementry.cpp | 24 +++++++++++++++++++++++- src/corelib/io/qfilesystementry_p.h | 2 ++ src/corelib/io/qfsfileengine.cpp | 4 ++-- src/corelib/io/qfsfileengine_unix.cpp | 2 +- 7 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index e9bc012..22a3baa 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -177,7 +177,7 @@ inline void QDirPrivate::setPath(const QString &path) p.truncate(p.length() - 1); } - dirEntry = QFileSystemEntry(p); + dirEntry = QFileSystemEntry(p, QFileSystemEntry::FromInternalPath()); metaData.clear(); initFileEngine(); clearFileLists(); @@ -198,7 +198,7 @@ inline void QDirPrivate::resolveAbsoluteEntry() const if (dirEntry.isRelative()) { QFileSystemEntry answer = QFileSystemEngine::absoluteName(dirEntry); - absoluteDirEntry = QFileSystemEntry(QDir::cleanPath(answer.filePath())); + absoluteDirEntry = QFileSystemEntry(QDir::cleanPath(answer.filePath()), QFileSystemEntry::FromInternalPath()); } else { absoluteDirEntry = dirEntry; } @@ -1757,7 +1757,7 @@ QChar QDir::separator() */ bool QDir::setCurrent(const QString &path) { - return QFileSystemEngine::setCurrentPath(QFileSystemEntry(fromNativeSeparators(path))); + return QFileSystemEngine::setCurrentPath(QFileSystemEntry(path)); } /*! diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 89a2b29..c4e8d36 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -148,7 +148,7 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) result.append(orig); } - return QFileSystemEntry(symbianCleanAbsolutePath(result)); + return QFileSystemEntry(symbianCleanAbsolutePath(result), QFileSystemEntry::FromInternalPath()); } //static diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 53b9e43..8fa4d62 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -444,7 +444,7 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, ret = readLink(link); else if (data.isLink()) ret = readSymLink(link); - return QFileSystemEntry(QDir::fromNativeSeparators(ret)); + return QFileSystemEntry(ret); } //static diff --git a/src/corelib/io/qfilesystementry.cpp b/src/corelib/io/qfilesystementry.cpp index bc7f121..d4c6d0a 100644 --- a/src/corelib/io/qfilesystementry.cpp +++ b/src/corelib/io/qfilesystementry.cpp @@ -81,7 +81,25 @@ QFileSystemEntry::QFileSystemEntry() { } +/*! + \internal + Use this constructor when the path is supplied by user code, as it may contain a mix + of '/' and the native separator. + */ QFileSystemEntry::QFileSystemEntry(const QString &filePath) + : m_filePath(QDir::fromNativeSeparators(filePath)), + m_lastSeparator(-2), + m_firstDotInFileName(-2), + m_lastDotInFileName(0) +{ +} + +/*! + \internal + Use this constructor when the path is guaranteed to be in internal format, i.e. all + directory separators are '/' and not the native separator. + */ +QFileSystemEntry::QFileSystemEntry(const QString &filePath, FromInternalPath /* dummy */) : m_filePath(filePath), m_lastSeparator(-2), m_firstDotInFileName(-2), @@ -89,6 +107,10 @@ QFileSystemEntry::QFileSystemEntry(const QString &filePath) { } +/*! + \internal + Use this constructor when the path comes from a native API + */ QFileSystemEntry::QFileSystemEntry(const NativePath &nativeFilePath, FromNativePath /* dummy */) : m_nativeFilePath(nativeFilePath), m_lastSeparator(-2), @@ -98,7 +120,7 @@ QFileSystemEntry::QFileSystemEntry(const NativePath &nativeFilePath, FromNativeP } QFileSystemEntry::QFileSystemEntry(const QString &filePath, const NativePath &nativeFilePath) - : m_filePath(filePath), + : m_filePath(QDir::fromNativeSeparators(filePath)), m_nativeFilePath(nativeFilePath), m_lastSeparator(-2), m_firstDotInFileName(-2), diff --git a/src/corelib/io/qfilesystementry_p.h b/src/corelib/io/qfilesystementry_p.h index 7a9c2a5..2ce0a83 100644 --- a/src/corelib/io/qfilesystementry_p.h +++ b/src/corelib/io/qfilesystementry_p.h @@ -72,10 +72,12 @@ public: typedef QString NativePath; #endif struct FromNativePath{}; + struct FromInternalPath{}; QFileSystemEntry(); explicit QFileSystemEntry(const QString &filePath); + QFileSystemEntry(const QString &filePath, FromInternalPath dummy); QFileSystemEntry(const NativePath &nativeFilePath, FromNativePath dummy); QFileSystemEntry(const QString &filePath, const NativePath &nativeFilePath); diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 9c8df39..5491caf 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -140,7 +140,7 @@ QFSFileEngine::QFSFileEngine(const QString &file) : QAbstractFileEngine(*new QFSFileEnginePrivate) { Q_D(QFSFileEngine); - d->fileEntry = QFileSystemEntry(QDir::fromNativeSeparators(file)); + d->fileEntry = QFileSystemEntry(file); } /*! @@ -189,7 +189,7 @@ void QFSFileEngine::setFileName(const QString &file) { Q_D(QFSFileEngine); d->init(); - d->fileEntry = QFileSystemEntry(QDir::fromNativeSeparators(file)); + d->fileEntry = QFileSystemEntry(file); } /*! diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 96946d6..28e0677 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -640,7 +640,7 @@ bool QFSFileEngine::caseSensitive() const bool QFSFileEngine::setCurrentPath(const QString &path) { - return QFileSystemEngine::setCurrentPath(QFileSystemEntry(QDir::fromNativeSeparators(path))); + return QFileSystemEngine::setCurrentPath(QFileSystemEntry(path)); } QString QFSFileEngine::currentPath(const QString &) -- cgit v0.12 From 064c5714c2167fb2ddfb4f1ab2f706282444884f Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 19 Oct 2010 10:12:30 +0100 Subject: Fix compile error in tst_qxmlstream The same workaround used for other autotests, as the symbian build system doesn't accept \" in DEFINES. Reviewed-By: Janne Koskinen --- tests/auto/qxmlstream/qxmlstream.pro | 2 +- tests/auto/qxmlstream/tst_qxmlstream.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/auto/qxmlstream/qxmlstream.pro b/tests/auto/qxmlstream/qxmlstream.pro index 8f076be..31331cf 100644 --- a/tests/auto/qxmlstream/qxmlstream.pro +++ b/tests/auto/qxmlstream/qxmlstream.pro @@ -8,7 +8,7 @@ wince*|symbian: { addFiles.sources = data XML-Test-Suite addFiles.path = . DEPLOYMENT += addFiles - DEFINES += SRCDIR=\\\"\\\" + wince*:DEFINES += SRCDIR=\\\"\\\" } else { DEFINES += SRCDIR=\\\"$$PWD/\\\" } diff --git a/tests/auto/qxmlstream/tst_qxmlstream.cpp b/tests/auto/qxmlstream/tst_qxmlstream.cpp index 7d5e3b7..19e4b90 100644 --- a/tests/auto/qxmlstream/tst_qxmlstream.cpp +++ b/tests/auto/qxmlstream/tst_qxmlstream.cpp @@ -55,6 +55,10 @@ //TESTED_CLASS=QXmlStreamReader QXmlStreamWriter //TESTED_FILES=corelib/xml/stream/qxmlutils.cpp corelib/xml/stream/qxmlstream.cpp corelib/xml/stream/qxmlstream_p.h +#ifdef Q_OS_SYMBIAN +#define SRCDIR "" +#endif + Q_DECLARE_METATYPE(QXmlStreamReader::ReadElementTextBehaviour) static const char *const catalogFile = SRCDIR "XML-Test-Suite/xmlconf/finalCatalog.xml"; -- cgit v0.12 From ea69ae0df02de27ec0f0a1a9b0a122655445fc01 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 20 Oct 2010 13:36:00 +0100 Subject: Fix QFileDialog regression in symbian Symbian now follows the same convention as windows, where "c:" means the working directory on the C: drive. As a result, the path "c:/" needs to be passed to QFileInfoGatherer when getting info for the root directory. This code already existed but only enabled for windows - now enabled for symbian as well. Reviewed-By: Markus Goetz --- src/gui/dialogs/qfilesystemmodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/dialogs/qfilesystemmodel.cpp b/src/gui/dialogs/qfilesystemmodel.cpp index b8aafe3..be4261d 100644 --- a/src/gui/dialogs/qfilesystemmodel.cpp +++ b/src/gui/dialogs/qfilesystemmodel.cpp @@ -1290,7 +1290,7 @@ QString QFileSystemModelPrivate::filePath(const QModelIndex &index) const if ((fullPath.length() > 2) && fullPath[0] == QLatin1Char('/') && fullPath[1] == QLatin1Char('/')) fullPath = fullPath.mid(1); #endif -#if defined(Q_OS_WIN) +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) if (fullPath.length() == 2 && fullPath.endsWith(QLatin1Char(':'))) fullPath.append(QLatin1Char('/')); #endif -- cgit v0.12 From 12ae7dea67244458fc92575ae2f49a8e32343047 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 20 Oct 2010 13:45:50 +0100 Subject: Fix errors in the QFileDialog autotest The filesSelectedSignal() test case was using the Qt source tree as its test directory - however this is not deployed to the device for symbian and windows CE. On symbian, the path evaluates to the root directory, which doesn't meet the conditions of the test (it contains only directories, while the test requires both files and directories to be present) Changed the test to use SRCDIR (on desktops, the source directory of the test code; on symbian/wince the deployed files location) This directory is valid for the test as it contains both files and directories. The hooks() test case crashes on symbian versions prior to symbian^3, because data exports from dlls are not properly supported by the symbian kernel So, this test is skipped for old symbian versions (if a test crashes, then no xml result file is created) Reviewed-By: Markus Goetz --- tests/auto/qfiledialog/tst_qfiledialog.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/auto/qfiledialog/tst_qfiledialog.cpp b/tests/auto/qfiledialog/tst_qfiledialog.cpp index 5d369b4..ec244c5 100644 --- a/tests/auto/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/qfiledialog/tst_qfiledialog.cpp @@ -279,7 +279,7 @@ void tst_QFiledialog::filesSelectedSignal() QNonNativeFileDialog fd; fd.setViewMode(QFileDialog::List); fd.setOptions(QFileDialog::DontUseNativeDialog); - QDir testDir(SRCDIR"/../../.."); + QDir testDir(SRCDIR); fd.setDirectory(testDir); QFETCH(QFileDialog::FileMode, fileMode); fd.setFileMode(fileMode); @@ -1308,6 +1308,10 @@ QString saveName(QWidget *, const QString &, const QString &, const QString &, Q void tst_QFiledialog::hooks() { +#ifdef Q_OS_SYMBIAN + if(QSysInfo::symbianVersion() < QSysInfo::SV_SF_3) + QSKIP("writing to data exports in paged dll not supported and crashes on symbian versions prior to ^3", SkipAll); +#endif qt_filedialog_existing_directory_hook = &existing; qt_filedialog_save_filename_hook = &saveName; qt_filedialog_open_filename_hook = &openName; -- cgit v0.12 From 848bbec851ca1bb83ce43aa07240c28cdcb0125a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 22 Oct 2010 10:50:40 +0200 Subject: Fix qmake compilation on *nix platforms --- qmake/Makefile.unix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index 7d61cf8..f1697a9 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -106,7 +106,7 @@ qsettings.o: $(SOURCE_PATH)/src/corelib/io/qsettings.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qsettings.cpp qsystemerror.o: $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp - $(CXX) $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/kernel/qsystemerror.cpp qlibraryinfo.o: $(SOURCE_PATH)/src/corelib/global/qlibraryinfo.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/global/qlibraryinfo.cpp -- cgit v0.12 From 02f3d23bc2cb6f4011918cff50fe157a8523c10b Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Tue, 26 Oct 2010 13:48:15 +0200 Subject: Add support for QFileInfo owner() & group() on Windows Since windows doesn't have the concept of user and group IDs, the name resolution has to be done differently. If the qt_ntfs_permission_lookup flag is set (default = 0), the user information is retrieved through the NTFS object security information. Reviewed-by: Joao --- src/corelib/io/qfilesystemengine.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index 9bfd382..8613dd7 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -349,17 +349,35 @@ void QFileSystemMetaData::fillFromDirEnt(const QT_DIRENT &entry) //static QString QFileSystemEngine::resolveUserName(const QFileSystemEntry &entry, QFileSystemMetaData &metaData) { +#if defined (Q_OS_SYMBIAN) + Q_UNUSED(entry); + Q_UNUSED(metaData); + return QString(); +#elif defined(Q_OS_WIN) + Q_UNUSED(metaData); + return QFileSystemEngine::owner(entry, QAbstractFileEngine::OwnerUser); +#else //(Q_OS_UNIX) if (!metaData.hasFlags(QFileSystemMetaData::UserId)) QFileSystemEngine::fillMetaData(entry, metaData, QFileSystemMetaData::UserId); return resolveGroupName(metaData.userId()); +#endif } //static QString QFileSystemEngine::resolveGroupName(const QFileSystemEntry &entry, QFileSystemMetaData &metaData) { +#if defined (Q_OS_SYMBIAN) + Q_UNUSED(entry); + Q_UNUSED(metaData); + return QString(); +#elif defined(Q_OS_WIN) + Q_UNUSED(metaData); + return QFileSystemEngine::owner(entry, QAbstractFileEngine::OwnerGroup); +#else //(Q_OS_UNIX) if (!metaData.hasFlags(QFileSystemMetaData::GroupId)) QFileSystemEngine::fillMetaData(entry, metaData, QFileSystemMetaData::GroupId); return resolveGroupName(metaData.groupId()); +#endif } QT_END_NAMESPACE -- cgit v0.12 From ae9b1a4a392953097d05d55549cc1583f94c3bc8 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 27 Oct 2010 13:48:43 +0200 Subject: Add tests for QFileInfo::owner() Reviewed-by: Joao --- tests/auto/qfileinfo/qfileinfo.pro | 2 ++ tests/auto/qfileinfo/tst_qfileinfo.cpp | 66 ++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/tests/auto/qfileinfo/qfileinfo.pro b/tests/auto/qfileinfo/qfileinfo.pro index 7df721e..101128c 100644 --- a/tests/auto/qfileinfo/qfileinfo.pro +++ b/tests/auto/qfileinfo/qfileinfo.pro @@ -13,6 +13,8 @@ wince*:|symbian: { DEPLOYMENT += deploy res } +win32*:LIBS += -ladvapi32 -lnetapi32 + symbian { TARGET.CAPABILITY=AllFiles LIBS *= -lefsrv diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index cd1a597..898bf54 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -59,6 +59,7 @@ #define _WIN32_WINNT 0x500 #include #include +#include #endif #include #include @@ -184,6 +185,10 @@ private slots: void notEqualOperator() const; void detachingOperations(); + +#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN) + void owner(); +#endif }; tst_QFileInfo::tst_QFileInfo() @@ -1599,5 +1604,66 @@ void tst_QFileInfo::detachingOperations() QVERIFY(!info1.caching()); } +#if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN) +void tst_QFileInfo::owner() +{ + QString userName; +#if defined(Q_OS_UNIX) + char *usernameBuf = getlogin(); + if (usernameBuf) { + userName = QString::fromLocal8Bit(usernameBuf); + } +#endif +#if defined(Q_OS_WIN) + wchar_t usernameBuf[1024]; + DWORD bufSize = 1024; + if (GetUserNameW(usernameBuf, &bufSize)) { + userName = QString::fromWCharArray(usernameBuf, bufSize); + // Special case : If the user is a member of Adminstrators group, all files + // created by the current user are owned by the Admistrators group. + LPLOCALGROUP_USERS_INFO_0 pBuf = NULL; + DWORD dwLevel = 0; + DWORD dwFlags = LG_INCLUDE_INDIRECT ; + DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH; + DWORD dwEntriesRead = 0; + DWORD dwTotalEntries = 0; + NET_API_STATUS nStatus; + nStatus = NetUserGetLocalGroups(0, usernameBuf, dwLevel, dwFlags, (LPBYTE *) &pBuf, + dwPrefMaxLen, &dwEntriesRead, &dwTotalEntries); + // Check if the current user is a member of Adminstrators group + if (nStatus == NERR_Success && pBuf){ + for (int i = 0; i < dwEntriesRead; i++) { + QString groupName = QString::fromWCharArray(pBuf[i].lgrui0_name); + if (!groupName.compare(QLatin1String("Administrators"))) + userName = groupName; + } + } + if (pBuf != NULL) + NetApiBufferFree(pBuf); + } + extern Q_CORE_EXPORT int qt_ntfs_permission_lookup; + qt_ntfs_permission_lookup = 1; +#endif + if (userName.isEmpty()) + QSKIP("Can't retrieve the user name", SkipAll); + QString fileName("ownertest.txt"); + if (QFile::exists(fileName)) + QFile::remove(fileName); + QFile testFile(fileName); + QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Text)); + QByteArray testData("testfile"); + QVERIFY(testFile.write(testData) != -1); + testFile.close(); + QFileInfo fi(fileName); + QVERIFY(fi.exists()); + QCOMPARE(userName, fi.owner()); + if (QFile::exists(fileName)) + QFile::remove(fileName); +#if defined(Q_OS_WIN) + qt_ntfs_permission_lookup = 0; +#endif +} +#endif + QTEST_MAIN(tst_QFileInfo) #include "tst_qfileinfo.moc" -- cgit v0.12 From 484770255f421d71954df4511e3541d2d4654d4e Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 22 Oct 2010 16:00:24 +0100 Subject: Re-enable emulated QFile::map on symbian Memory mapping of RFile handles is not supported in current symbian OS versions. However the "open C" libraries provide an emulated mmap() implementation which was used by QFile::map in Qt 4.6 release. To avoid breaking applications which rely on this function, QFile::map will now open the file with open C as well in order to use that handle to call mmap(). When symbian implements a file mapping API, we can switch the implementation to use that for RFile handles. Reviewed-By: joao --- src/corelib/io/qfile.cpp | 2 ++ src/corelib/io/qfsfileengine.cpp | 12 +++++++++ src/corelib/io/qfsfileengine_p.h | 2 ++ src/corelib/io/qfsfileengine_unix.cpp | 47 ++++++++++++++++------------------- tests/auto/qfile/tst_qfile.cpp | 12 --------- 5 files changed, 37 insertions(+), 38 deletions(-) diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp index a0bc68e..f0ca11b 100644 --- a/src/corelib/io/qfile.cpp +++ b/src/corelib/io/qfile.cpp @@ -48,6 +48,7 @@ #include "qfileinfo.h" #include "private/qiodevice_p.h" #include "private/qfile_p.h" +#include "private/qsystemerror_p.h" #if defined(QT_BUILD_CORE_LIB) # include "qcoreapplication.h" #endif @@ -1223,6 +1224,7 @@ bool QFile::unmap(uchar *address) d->setError(d->fileEngine->error(), d->fileEngine->errorString()); return success; } + d->setError(PermissionsError, QSystemError(EACCES, QSystemError::StandardLibraryError).toString()); return false; } diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 5491caf..ae301f7 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -120,6 +120,9 @@ void QFSFileEnginePrivate::init() openMode = QIODevice::NotOpen; fd = -1; fh = 0; +#ifdef Q_OS_SYMBIAN + fileHandleForMaps = -1; +#endif lastIOCommand = IOFlushCommand; lastFlushFailed = false; closeFileHandle = false; @@ -355,6 +358,7 @@ bool QFSFileEnginePrivate::closeFdFh() if (fd == -1 && !fh #ifdef Q_OS_SYMBIAN && !symbianFile.SubSessionHandle() + && fileHandleForMaps == -1 #endif ) return false; @@ -364,6 +368,14 @@ bool QFSFileEnginePrivate::closeFdFh() bool closed = true; tried_stat = 0; +#ifdef Q_OS_SYMBIAN + // Map handle is always owned by us so always close it + if (fileHandleForMaps >= 0) { + QT_CLOSE(fileHandleForMaps); + fileHandleForMaps = -1; + } +#endif + // Close the file if we created the handle. if (closeFileHandle) { int ret; diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index 715b46f..7c088b8 100644 --- a/src/corelib/io/qfsfileengine_p.h +++ b/src/corelib/io/qfsfileengine_p.h @@ -139,6 +139,8 @@ public: */ TInt symbianFilePos; #endif + mutable int fileHandleForMaps; + int getMapHandle(); #endif #ifdef Q_WS_WIN diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 28e0677..035e78f 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -85,6 +85,7 @@ static bool isRelativePathSymbian(const QString& fileName) #endif +#ifndef Q_OS_SYMBIAN /*! \internal @@ -124,6 +125,7 @@ static inline QByteArray openModeToFopenMode(QIODevice::OpenMode flags, const QF return mode; } +#endif /*! \internal @@ -153,6 +155,7 @@ static inline int openModeToOpenFlags(QIODevice::OpenMode mode) return oflags; } +#ifndef Q_OS_SYMBIAN /*! \internal @@ -163,6 +166,7 @@ static inline bool setCloseOnExec(int fd) { return fd != -1 && fcntl(fd, F_SETFD, FD_CLOEXEC) != -1; } +#endif #ifdef Q_OS_SYMBIAN /*! @@ -539,6 +543,22 @@ int QFSFileEnginePrivate::nativeHandle() const return fh ? fileno(fh) : fd; } +#ifdef Q_OS_SYMBIAN +int QFSFileEnginePrivate::getMapHandle() +{ + if (symbianFile.SubSessionHandle()) { + // Symbian file handle can't be used for open C mmap() so open the file with open C as well. + if (fileHandleForMaps < 0) { + int flags = openModeToOpenFlags(openMode); + flags &= ~(O_CREAT | O_TRUNC); + fileHandleForMaps = ::wopen((wchar_t*)(fileEntry.nativeFilePath().utf16()), flags, 0666); + } + return fileHandleForMaps; + } + return nativeHandle(); +} +#endif + /*! \internal */ @@ -921,30 +941,6 @@ QDateTime QFSFileEngine::fileTime(FileTime time) const return QDateTime(); } -#ifdef Q_OS_SYMBIAN -uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags) -{ - //Q_Q(QFSFileEngine); - Q_UNUSED(flags) - Q_UNUSED(offset) - Q_UNUSED(size) - return 0; - //TODO: use RFileMap when available in symbian^4 -} - -bool QFSFileEnginePrivate::unmap(uchar *ptr) -{ - //TODO: RFileMap as the value in maps, unmap it here when API is available... - //Q_Q(QFSFileEngine); - //if (!maps.contains(ptr)) { - // q->setError(QFile::PermissionsError, qt_error_string(EACCES)); - // return false; - //} - Q_UNUSED(ptr) - - return false; -} -#else uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags) { Q_Q(QFSFileEngine); @@ -985,7 +981,7 @@ uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, QFile::MemoryMapFla #ifdef Q_OS_SYMBIAN void *mapAddress; TRAPD(err, mapAddress = QT_MMAP((void*)0, realSize, - access, MAP_SHARED, nativeHandle(), realOffset)); + access, MAP_SHARED, getMapHandle(), realOffset)); if (err != KErrNone) { qWarning("OpenC bug: leave from mmap %d", err); mapAddress = MAP_FAILED; @@ -1035,7 +1031,6 @@ bool QFSFileEnginePrivate::unmap(uchar *ptr) maps.remove(ptr); return true; } -#endif QT_END_NAMESPACE diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 4e7cb9f..088c1f2 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -2800,10 +2800,6 @@ void tst_QFile::map() QFETCH(int, size); QFETCH(QFile::FileError, error); -#ifdef Q_OS_SYMBIAN - QSKIP("memory mapped files not supported on this platform", SkipAll); -#endif - QString fileName = QDir::currentPath() + '/' + "qfile_map_testfile"; #ifdef Q_WS_WINCE @@ -2925,10 +2921,6 @@ void tst_QFile::mapResource() QFETCH(int, size); QFETCH(QFile::FileError, error); -#ifdef Q_OS_SYMBIAN - QSKIP("memory mapped files not supported on this platform", SkipAll); -#endif - QFile file(fileName); uchar *memory = file.map(offset, size); QCOMPARE(file.error(), error); @@ -2954,10 +2946,6 @@ void tst_QFile::mapOpenMode() QFETCH(int, openMode); static const qint64 fileSize = 4096; -#ifdef Q_OS_SYMBIAN - QSKIP("memory mapped files not supported on this platform", SkipAll); -#endif - QByteArray pattern(fileSize, 'A'); QString fileName = QDir::currentPath() + '/' + "qfile_map_testfile"; -- cgit v0.12 From b251f7f9d2d1fb336e0b4f92858aad2eab0ba88c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 16 Nov 2010 15:17:49 +0100 Subject: QFileSystemEngine::resolveUserName and not group Reviewed-by: Shane Kearns --- src/corelib/io/qfilesystemengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index 8613dd7..fe0bad7 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -359,7 +359,7 @@ QString QFileSystemEngine::resolveUserName(const QFileSystemEntry &entry, QFileS #else //(Q_OS_UNIX) if (!metaData.hasFlags(QFileSystemMetaData::UserId)) QFileSystemEngine::fillMetaData(entry, metaData, QFileSystemMetaData::UserId); - return resolveGroupName(metaData.userId()); + return resolveUserName(metaData.userId()); #endif } -- cgit v0.12 From eb474123412c52e74f402e082c85286047c9aeda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 16 Nov 2010 15:28:17 +0100 Subject: QFile: Fix compilation EACCES was not defined at this point, but it is also not needed, since we know exactly why unmap is failing. Reviewed-by: Shane Kearns --- src/corelib/io/qfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp index f0ca11b..fac4ac6 100644 --- a/src/corelib/io/qfile.cpp +++ b/src/corelib/io/qfile.cpp @@ -1224,7 +1224,7 @@ bool QFile::unmap(uchar *address) d->setError(d->fileEngine->error(), d->fileEngine->errorString()); return success; } - d->setError(PermissionsError, QSystemError(EACCES, QSystemError::StandardLibraryError).toString()); + d->setError(PermissionsError, tr("No file engine available or engine does not support UnMapExtension")); return false; } -- cgit v0.12 From 02aca4e5a1d3e3e47a2c69a63faa772439ac92cf Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 16 Nov 2010 11:53:14 +0000 Subject: Fix tst_qfileinfo crash on windows with UAC enabled Creating symbolic links requires admin privilege by default - when UAC is enabled then even users in the administrators group do not have admin privileges without an escalation prompt. (which is inappropriate for an autotest). When run with insufficient privileges, the test is skipped with a warning Reviewed-By: Prasanth Ullattil --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 898bf54..07e33d3 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -1353,8 +1353,24 @@ void tst_QFileInfo::ntfsJunctionPointsAndSymlinks_data() file.open(QIODevice::ReadWrite); file.close(); - QVERIFY(pwd.exists("abs_symlink") || createSymbolicLinkW((wchar_t*)absSymlink.utf16(),(wchar_t*)absTarget.utf16(),0x1)); - QVERIFY(pwd.exists(relSymlink) || createSymbolicLinkW((wchar_t*)relSymlink.utf16(),(wchar_t*)relTarget.utf16(),0x1)); + DWORD err = ERROR_SUCCESS ; + if (!pwd.exists("abs_symlink")) + if (!createSymbolicLinkW((wchar_t*)absSymlink.utf16(),(wchar_t*)absTarget.utf16(),0x1)) + err = GetLastError(); + if (err == ERROR_SUCCESS && !pwd.exists(relSymlink)) + if (!createSymbolicLinkW((wchar_t*)relSymlink.utf16(),(wchar_t*)relTarget.utf16(),0x1)) + err = GetLastError(); + if (err != ERROR_SUCCESS) { + wchar_t errstr[0x100]; + DWORD count = FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM, + 0, err, 0, errstr, 0x100, 0); + QString error(QString::fromUtf16(errstr, count)); + qWarning() << error; + //we need at least one data set for the test not to assert fail when skipping _data function + QDir target("target"); + QTest::newRow("dummy") << target.path() << false << "" << target.canonicalPath(); + QSKIP("link not supported by FS or insufficient privilege", SkipSingle); + } QVERIFY(file.exists()); QTest::newRow("absolute dir symlink") << absSymlink << true << QDir::fromNativeSeparators(absTarget) << target.canonicalPath(); -- cgit v0.12 From 5a9b670ef04232c7cd5017bd5e241c6ed975be6e Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 16 Nov 2010 13:43:14 +0000 Subject: Test coverage - ensure tst_qfileinfo tests dir & absoluteDir functions The existing dir test function is appropriate, now it checks the dir functions as well as the path functions. Reviewed-By: Prasanth Ullattil --- tests/auto/qfileinfo/qfileinfo.pro | 1 + tests/auto/qfileinfo/tst_qfileinfo.cpp | 13 +++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/auto/qfileinfo/qfileinfo.pro b/tests/auto/qfileinfo/qfileinfo.pro index 101128c..fdbcd26 100644 --- a/tests/auto/qfileinfo/qfileinfo.pro +++ b/tests/auto/qfileinfo/qfileinfo.pro @@ -30,3 +30,4 @@ wince* { DEFINES += SRCDIR=\\\"$$PWD/\\\" } +contains(QT_CONFIG, qt3support): QT += qt3support diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 07e33d3..d021df5 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -705,10 +705,19 @@ void tst_QFileInfo::dir() QFETCH(QString, expected); QFileInfo fi(file); - if (absPath) + if (absPath) { QCOMPARE(fi.absolutePath(), expected); - else + QCOMPARE(fi.absoluteDir().path(), expected); +#ifdef QT3_SUPPORT + QCOMPARE(fi.dir(true).path(), expected); +#endif + } else { QCOMPARE(fi.path(), expected); + QCOMPARE(fi.dir().path(), expected); +#ifdef QT3_SUPPORT + QCOMPARE(fi.dir(false).path(), expected); +#endif + } } -- cgit v0.12 From eab60b677c6e61c2d31f7aec02f05eb9c12862c9 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 16 Nov 2010 16:20:44 +0000 Subject: test coverage: test QFileInfo::group() Reviewed-By: joao --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index d021df5..3e67fb8 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -189,6 +189,7 @@ private slots: #if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN) void owner(); #endif + void group(); }; tst_QFileInfo::tst_QFileInfo() @@ -1690,5 +1691,29 @@ void tst_QFileInfo::owner() } #endif +void tst_QFileInfo::group() +{ + QString expected; +#if defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN) + struct group *gr; + gid_t gid = getegid(); + gr = getgrgid(gid); + expected = QString::fromLocal8Bit(gr->gr_name); +#endif + + QString fileName("ownertest.txt"); + if (QFile::exists(fileName)) + QFile::remove(fileName); + QFile testFile(fileName); + QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Text)); + QByteArray testData("testfile"); + QVERIFY(testFile.write(testData) != -1); + testFile.close(); + QFileInfo fi(fileName); + QVERIFY(fi.exists()); + + QCOMPARE(fi.group(), expected); +} + QTEST_MAIN(tst_QFileInfo) #include "tst_qfileinfo.moc" -- cgit v0.12 From c7e569802ac4d547482d529e910232a80347fc67 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 16 Nov 2010 16:50:38 +0000 Subject: test coverage: test QDir::addSearchPath Reviewed-By: joao --- tests/auto/qdir/tst_qdir.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 9521921..4f6c784 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -1434,6 +1434,29 @@ void tst_QDir::searchPaths() for (int i = 0; i < searchPathPrefixList.count(); ++i) { QVERIFY(QDir::searchPaths(searchPathPrefixList.at(i)).isEmpty()); } + + for (int i = 0; i < searchPathPrefixList.count(); ++i) { + foreach (QString path, searchPathsList.at(i).split(",")) { + QDir::addSearchPath(searchPathPrefixList.at(i), path); + } + } + for (int i = 0; i < searchPathPrefixList.count(); ++i) { + QVERIFY(QDir::searchPaths(searchPathPrefixList.at(i)) == searchPathsList.at(i).split(",")); + } + + QCOMPARE(QFile(filename).exists(), exists); + QCOMPARE(QFileInfo(filename).exists(), exists); + + if (exists) { + QCOMPARE(QFileInfo(filename).absoluteFilePath(), expectedAbsolutePath); + } + + for (int i = 0; i < searchPathPrefixList.count(); ++i) { + QDir::setSearchPaths(searchPathPrefixList.at(i), QStringList()); + } + for (int i = 0; i < searchPathPrefixList.count(); ++i) { + QVERIFY(QDir::searchPaths(searchPathPrefixList.at(i)).isEmpty()); + } } void tst_QDir::entryListWithSearchPaths() -- cgit v0.12 From bc6d6b99981f5abf4d8f4059f86f0441156b6700 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 16 Nov 2010 16:56:20 +0000 Subject: test coverage: add test for QDir::match static functions Reviewed-By: joao --- tests/auto/qdir/tst_qdir.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 4f6c784..62f45e8 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -183,6 +183,11 @@ private slots: void isRoot_data(); void isRoot(); #endif + +#ifndef QT_NO_REGEXP + void match_data(); + void match(); +#endif }; // Testing get/set functions @@ -1738,6 +1743,31 @@ void tst_QDir::isRoot() } #endif +#ifndef QT_NO_REGEXP +void tst_QDir::match_data() +{ + QTest::addColumn("filter"); + QTest::addColumn("filename"); + QTest::addColumn("match"); + + QTest::newRow("single, matching") << "*.cpp" << "tst_qdir.cpp" << true; + QTest::newRow("single, not matching") << "*.cpp" << "tst_qdir.h" << false; + QTest::newRow("multi, matching") << "*.cpp;*.h" << "tst_qdir.cpp" << true; + QTest::newRow("multi, matching2") << "*.cpp;*.h" << "tst_qdir.h" << true; + QTest::newRow("multi, not matching") << "*.cpp;*.h" << "readme.txt" << false; +} + +void tst_QDir::match() +{ + QFETCH(QString, filter); + QFETCH(QString, filename); + QFETCH(bool, match); + + QCOMPARE(QDir::match(filter, filename), match); + QCOMPARE(QDir::match(filter.split(QLatin1Char(';')), filename), match); +} +#endif + QTEST_MAIN(tst_QDir) #include "tst_qdir.moc" -- cgit v0.12 From 43aa80fe8c1064d88b104a8f8f1b97bbaeaf1cec Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 16 Nov 2010 18:21:05 +0000 Subject: Test coverage: test QFile::resize Reviewed-By: joao --- tests/auto/qfile/tst_qfile.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 088c1f2..53618e5 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -211,6 +211,9 @@ private slots: void openStandardStreams(); + void resize_data(); + void resize(); + // --- Task related tests below this line void task167217(); @@ -3085,5 +3088,28 @@ void tst_QFile::writeNothing() } } +void tst_QFile::resize_data() +{ + QTest::addColumn("filetype"); + + QTest::newRow("native") << int(OpenQFile); + QTest::newRow("fileno") << int(OpenFd); + QTest::newRow("stream") << int(OpenStream); +} + +void tst_QFile::resize() +{ + QFETCH(int, filetype); + QString filename(QLatin1String("file.txt")); + QFile file(filename); + QVERIFY(openFile(file, QIODevice::ReadWrite, FileType(filetype))); + QVERIFY(file.resize(8)); + QCOMPARE(file.size(), qint64(8)); + closeFile(file); + QFile::resize(filename, 4); + QCOMPARE(QFileInfo(filename).size(), qint64(4)); + QVERIFY(QFile::remove(filename)); +} + QTEST_MAIN(tst_QFile) #include "tst_qfile.moc" -- cgit v0.12 From f50098de5af1886f69214285345ef7ef4ebdc1fd Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 16 Nov 2010 18:21:56 +0000 Subject: Fix QFile::resize on windows for files opened from a FILE* Reviewed-By: joao --- src/corelib/io/qfsfileengine_win.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index cf83c07..97d1330 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -865,12 +865,16 @@ bool QFSFileEngine::setSize(qint64 size) { Q_D(QFSFileEngine); - if (d->fileHandle != INVALID_HANDLE_VALUE || d->fd != -1) { + if (d->fileHandle != INVALID_HANDLE_VALUE || d->fd != -1 || d->fh) { // resize open file HANDLE fh = d->fileHandle; #if !defined(Q_OS_WINCE) - if (fh == INVALID_HANDLE_VALUE) - fh = (HANDLE)_get_osfhandle(d->fd); + if (fh == INVALID_HANDLE_VALUE) { + if (d->fh) + fh = (HANDLE)_get_osfhandle(QT_FILENO(d->fh)); + else + fh = (HANDLE)_get_osfhandle(d->fd); + } #endif if (fh == INVALID_HANDLE_VALUE) return false; -- cgit v0.12 From 5ebad6878478c33f8a832929a2fb74e93bc29b62 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 17 Nov 2010 12:29:54 +0000 Subject: Test coverage: test more of QFile API Adding tests for these functions: symLinkTarget / readLink (static & non static) permissions (static) constructors which take a QObject parent After this, all function of QFile API are tested except encoding/decoding functions and some QT3_SUPPORT inlines in the header. Reviewed-by: joao --- tests/auto/qfile/tst_qfile.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 53618e5..f60ab1e 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -214,6 +214,8 @@ private slots: void resize_data(); void resize(); + void objectConstructors(); + // --- Task related tests below this line void task167217(); @@ -1112,6 +1114,7 @@ void tst_QFile::permissions() QFETCH(bool, expected); QFile f(file); QCOMPARE(((f.permissions() & perms) == QFile::Permissions(perms)), expected); + QCOMPARE(((QFile::permissions(file) & perms) == QFile::Permissions(perms)), expected); } void tst_QFile::setPermissions() @@ -1299,6 +1302,12 @@ void tst_QFile::link() QVERIFY(info2.isSymLink()); QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath()); + QFile link("myLink.lnk"); + QVERIFY(link.open(QIODevice::ReadOnly)); + QCOMPARE(link.symLinkTarget(), info1.absoluteFilePath()); + link.close(); + QCOMPARE(QFile::symLinkTarget("myLink.lnk"), info1.absoluteFilePath()); + #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) QString wd = getWorkingDirectoryForLink(info2.absoluteFilePath()); QCOMPARE(QDir::fromNativeSeparators(wd), info1.absolutePath()); @@ -3111,5 +3120,14 @@ void tst_QFile::resize() QVERIFY(QFile::remove(filename)); } +void tst_QFile::objectConstructors() +{ + QObject ob; + QFile* file1 = new QFile(SRCDIR "testfile.txt", &ob); + QFile* file2 = new QFile(&ob); + QVERIFY(file1->exists()); + QVERIFY(!file2->exists()); +} + QTEST_MAIN(tst_QFile) #include "tst_qfile.moc" -- cgit v0.12 From 51a28e0ffaaff9f97117256fc6d0e11df392d706 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 17 Nov 2010 12:34:26 +0000 Subject: Windows: fix QFile::symLinkTarget Missing return statement Reviewed-by: joao --- src/corelib/io/qfsfileengine_win.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 97d1330..f3e2c4c 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -825,7 +825,7 @@ QString QFSFileEngine::fileName(FileName file) const return entry.path(); return entry.filePath(); } else if (file == LinkName) { - QFileSystemEngine::getLinkTarget(d->fileEntry, d->metaData).filePath(); + return QFileSystemEngine::getLinkTarget(d->fileEntry, d->metaData).filePath(); } else if (file == BundleName) { return QString(); } -- cgit v0.12 From 43adb2ed628f79d3c59f4bf0b4cec03efc9c3ab6 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 17 Nov 2010 16:28:21 +0000 Subject: Test Coverage: add tests to cover QDir API Functional coverage of QDir, except for trivial shims for deprecated APIs and the QDebug streaming functions. Reviewed-by: joao --- tests/auto/qdir/qdir.pro | 1 + tests/auto/qdir/tst_qdir.cpp | 210 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 207 insertions(+), 4 deletions(-) diff --git a/tests/auto/qdir/qdir.pro b/tests/auto/qdir/qdir.pro index cf612f1..01a88cd 100644 --- a/tests/auto/qdir/qdir.pro +++ b/tests/auto/qdir/qdir.pro @@ -15,6 +15,7 @@ wince* { TARGET.CAPABILITY += AllFiles TARGET.UID3 = 0xE0340002 DEFINES += SYMBIAN_SRCDIR_UID=$$lower($$replace(TARGET.UID3,"0x","")) + LIBS += -lefsrv } else { contains(QT_CONFIG, qt3support):QT += qt3support DEFINES += SRCDIR=\\\"$$PWD/\\\" diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 62f45e8..7f98a9a 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -57,11 +57,13 @@ #include "../../shared/filesystem.h" #if defined(Q_OS_SYMBIAN) +# include # define STRINGIFY(x) #x # define TOSTRING(x) STRINGIFY(x) # define SRCDIR "C:/Private/" TOSTRING(SYMBIAN_SRCDIR_UID) "/" #elif defined(Q_OS_UNIX) # include +# include #endif #if defined(Q_OS_VXWORKS) @@ -188,6 +190,22 @@ private slots: void match_data(); void match(); #endif + + void drives(); + + void arrayOperator(); + +#ifdef QT3_SUPPORT + void setNameFilter(); +#endif + + void equalityOperator_data(); + void equalityOperator(); + + void isRelative_data(); + void isRelative(); + + void isReadable(); }; // Testing get/set functions @@ -1190,6 +1208,8 @@ void tst_QDir::remove() QDir dir; QVERIFY(dir.remove("remove-test")); QVERIFY(!dir.remove("/remove-test")); + QTest::ignoreMessage(QtWarningMsg, "QDir::remove: Empty or null file name"); + QVERIFY(!dir.remove("")); } void tst_QDir::rename() @@ -1202,10 +1222,18 @@ void tst_QDir::rename() QVERIFY(dir.rename("rename-test-renamed", "rename-test")); #if defined(Q_OS_MAC) QVERIFY(!dir.rename("rename-test", "/etc/rename-test-renamed")); -#elif !defined(Q_OS_WIN) && !defined(Q_OS_SYMBIAN) - // on windows/symbian this is possible - maybe make the test a bit better +#elif defined(Q_OS_SYMBIAN) + QVERIFY(!dir.rename("rename-test", "/resource/rename-test-renamed")); +#elif !defined(Q_OS_WIN) + // on windows this is possible - maybe make the test a bit better QVERIFY(!dir.rename("rename-test", "/rename-test-renamed")); #endif + QTest::ignoreMessage(QtWarningMsg, "QDir::rename: Empty or null file name(s)"); + QVERIFY(!dir.rename("rename-test", "")); + QTest::ignoreMessage(QtWarningMsg, "QDir::rename: Empty or null file name(s)"); + QVERIFY(!dir.rename("", "rename-test-renamed")); + QVERIFY(!dir.rename("some-file-that-does-not-exist", "rename-test-renamed")); + QVERIFY(dir.remove("rename-test")); } @@ -1717,7 +1745,6 @@ void tst_QDir::testCaching() QVERIFY(dir.exists()); // QDir doesn't cache the 'exist' between calls. } -#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) void tst_QDir::isRoot_data() { QTest::addColumn("path"); @@ -1729,8 +1756,13 @@ void tst_QDir::isRoot_data() QTest::newRow(QString("./ appended " + test).toLatin1()) << test << false; test = QDir(QDir::rootPath().append("./")).canonicalPath(); QTest::newRow(QString("canonicalPath " + test).toLatin1()) << test << true; +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) test = QDir::rootPath().left(2); QTest::newRow(QString("drive relative " + test).toLatin1()) << test << false; +#endif + + QTest::newRow("resources root") << ":/" << true; + QTest::newRow("resources nonroot") << ":/entrylist" << false; } void tst_QDir::isRoot() @@ -1741,7 +1773,6 @@ void tst_QDir::isRoot() QDir dir(path); QCOMPARE(dir.isRoot(),isRoot); } -#endif #ifndef QT_NO_REGEXP void tst_QDir::match_data() @@ -1768,6 +1799,177 @@ void tst_QDir::match() } #endif +void tst_QDir::drives() +{ + QFileInfoList list(QDir::drives()); +#if defined(Q_OS_WIN) + QVERIFY(list.count() >= 1); //system + QLatin1Char systemdrive('c'); +#elif defined(Q_OS_SYMBIAN) + QVERIFY(list.count() >= 2); //system, rom + QLatin1Char romdrive('z'); + QLatin1Char systemdrive('a' + int(RFs::SystemDrive())); +#endif +#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) + QVERIFY(list.count() <= 26); + bool foundsystem = false; +#ifdef Q_OS_SYMBIAN + bool foundrom = false; +#endif + foreach (QFileInfo fi, list) { + QCOMPARE(fi.absolutePath().size(), 3); //"x:/" + QCOMPARE(fi.absolutePath().at(1), QChar(QLatin1Char(':'))); + QCOMPARE(fi.absolutePath().at(2), QChar(QLatin1Char('/'))); + if (fi.absolutePath().at(0).toLower() == systemdrive) + foundsystem = true; +#ifdef Q_OS_SYMBIAN + if (fi.absolutePath().at(0).toLower() == romdrive) + foundrom = true; +#endif + } + QCOMPARE(foundsystem, true); +#ifdef Q_OS_SYMBIAN + QCOMPARE(foundrom, true); +#endif +#else + QCOMPARE(list.count(), 1); //root + QCOMPARE(list.at(0).absolutePath(), "/"); +#endif +} + +void tst_QDir::arrayOperator() +{ + QDir dir1(SRCDIR "entrylist/"); + QDir dir2(SRCDIR "entrylist/"); + + QStringList entries(dir1.entryList()); + int i = dir2.count(); + QCOMPARE(i, entries.count()); + --i; + for (;i>=0;--i) { + QCOMPARE(dir2[i], entries.at(i)); + } +} + +#ifdef QT3_SUPPORT +void tst_QDir::setNameFilter() +{ + QStringList filters; + filters << "*.jpg" << "*.png" << "*.gif"; + QStringList filters2; + filters2 << "*.cpp" << "*.h" << "*.c"; + + QDir dir(SRCDIR "entrylist/"); + + dir.setNameFilter(filters.join(";")); + QCOMPARE(filters, dir.nameFilters()); + QCOMPARE(filters, dir.nameFilter().split(';')); + + dir.setNameFilters(filters2); + QCOMPARE(filters2, dir.nameFilter().split(';')); + + dir.setNameFilter(filters.join(" ")); + QCOMPARE(filters, dir.nameFilters()); + QCOMPARE(filters, dir.nameFilter().split(' ')); + + dir.setNameFilters(filters2); + QCOMPARE(filters2, dir.nameFilter().split(' ')); +} +#endif + +void tst_QDir::equalityOperator_data() +{ + QTest::addColumn("leftPath"); + QTest::addColumn("leftNameFilters"); + QTest::addColumn("leftSort"); + QTest::addColumn("leftFilters"); + QTest::addColumn("rightPath"); + QTest::addColumn("rightNameFilters"); + QTest::addColumn("rightSort"); + QTest::addColumn("rightFilters"); + QTest::addColumn("expected"); + + QTest::newRow("same") << SRCDIR << "*.cpp" << int(QDir::Name) << int(QDir::Files) + << SRCDIR << "*.cpp" << int(QDir::Name) << int(QDir::Files) + << true; + + QTest::newRow("relativepaths") << "entrylist/" << "*.cpp" << int(QDir::Name) << int(QDir::Files) + << "./entrylist" << "*.cpp" << int(QDir::Name) << int(QDir::Files) + << true; + + QTest::newRow("diff-filters") << SRCDIR << "*.cpp" << int(QDir::Name) << int(QDir::Files) + << SRCDIR << "*.cpp" << int(QDir::Name) << int(QDir::Dirs) + << false; + + QTest::newRow("diff-sort") << SRCDIR << "*.cpp" << int(QDir::Name) << int(QDir::Files) + << SRCDIR << "*.cpp" << int(QDir::Time) << int(QDir::Files) + << false; + + QTest::newRow("diff-namefilters") << SRCDIR << "*.cpp" << int(QDir::Name) << int(QDir::Files) + << SRCDIR << "*.jpg" << int(QDir::Name) << int(QDir::Files) + << false; +} + +void tst_QDir::equalityOperator() +{ + QFETCH(QString, leftPath); + QFETCH(QString, leftNameFilters); + QFETCH(int, leftSort); + QFETCH(int, leftFilters); + QFETCH(QString, rightPath); + QFETCH(QString, rightNameFilters); + QFETCH(int, rightSort); + QFETCH(int, rightFilters); + QFETCH(bool, expected); + + QDir dir1(leftPath, leftNameFilters, QDir::SortFlags(leftSort), QDir::Filters(leftFilters)); + QDir dir2(rightPath, rightNameFilters, QDir::SortFlags(rightSort), QDir::Filters(rightFilters)); + + QCOMPARE((dir1 == dir2), expected); + QCOMPARE((dir2 == dir1), expected); + QCOMPARE((dir1 != dir2), !expected); + QCOMPARE((dir2 != dir1), !expected); +} + +void tst_QDir::isRelative_data() +{ + QTest::addColumn("path"); + QTest::addColumn("relative"); + + QTest::newRow(".") << "./" << true; + QTest::newRow("..") << "../" << true; + QTest::newRow("content") << "entrylist/" << true; + QTest::newRow("current") << QDir::currentPath() << false; + QTest::newRow("homepath") << QDir::homePath() << false; + QTest::newRow("temppath") << QDir::tempPath() << false; + QTest::newRow("rootpath") << QDir::rootPath() << false; + foreach (QFileInfo root, QDir::drives()) { + QTest::newRow(root.absolutePath()) << root.absolutePath() << false; + } +} + +void tst_QDir::isRelative() +{ + QFETCH(QString, path); + QFETCH(bool, relative); + + QCOMPARE(QDir(path).isRelative(), relative); +} + +void tst_QDir::isReadable() +{ + QDir dir; + + QVERIFY(dir.isReadable()); +#if defined (Q_OS_UNIX) && !defined (Q_OS_SYMBIAN) + QVERIFY(dir.mkdir("nonreadabledir")); + QVERIFY(0 == ::chmod("nonreadabledir", 0)); + QVERIFY(!QDir("nonreadabledir").isReadable()); + QVERIFY(0 == ::chmod("nonreadabledir", S_IRUSR | S_IWUSR | S_IXUSR)); + QVERIFY(dir.rmdir("nonreadabledir")); +#endif +} + QTEST_MAIN(tst_QDir) #include "tst_qdir.moc" -- cgit v0.12 From a5de017fe85ce8058c32df1f61df0c9c59ccf01c Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 17 Nov 2010 18:21:45 +0100 Subject: Fix test compile error on linux Reviewed-By: Trust Me --- tests/auto/qdir/tst_qdir.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 7f98a9a..e8c8e07 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -181,10 +181,8 @@ private slots: void testCaching(); -#if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) void isRoot_data(); void isRoot(); -#endif #ifndef QT_NO_REGEXP void match_data(); @@ -1833,7 +1831,7 @@ void tst_QDir::drives() #endif #else QCOMPARE(list.count(), 1); //root - QCOMPARE(list.at(0).absolutePath(), "/"); + QCOMPARE(list.at(0).absolutePath(), QLatin1String("/")); #endif } -- cgit v0.12 From c75d76bc8c08805d2f1b0003ff17c25a28955b52 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 17 Nov 2010 18:04:32 +0000 Subject: Fix test compile issues on symbian Reviewed-by: Trust Me --- tests/auto/qdir/tst_qdir.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index e8c8e07..6a81da6 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -1305,12 +1305,13 @@ void tst_QDir::dotAndDotDot() { #if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN) QSKIP("WinCE and Symbian do not have . nor ..", SkipAll); -#endif +#else QDir dir(QString(SRCDIR "testdir/")); QStringList entryList = dir.entryList(QDir::Dirs); QCOMPARE(entryList, QStringList() << QString(".") << QString("..") << QString("dir") << QString("spaces")); entryList = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); QCOMPARE(entryList, QStringList() << QString("dir") << QString("spaces")); +#endif } #ifdef QT3_SUPPORT @@ -1806,7 +1807,7 @@ void tst_QDir::drives() #elif defined(Q_OS_SYMBIAN) QVERIFY(list.count() >= 2); //system, rom QLatin1Char romdrive('z'); - QLatin1Char systemdrive('a' + int(RFs::SystemDrive())); + QLatin1Char systemdrive('a' + int(RFs::GetSystemDrive())); #endif #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) QVERIFY(list.count() <= 26); @@ -1942,7 +1943,7 @@ void tst_QDir::isRelative_data() QTest::newRow("temppath") << QDir::tempPath() << false; QTest::newRow("rootpath") << QDir::rootPath() << false; foreach (QFileInfo root, QDir::drives()) { - QTest::newRow(root.absolutePath()) << root.absolutePath() << false; + QTest::newRow(root.absolutePath().toLocal8Bit()) << root.absolutePath() << false; } } -- cgit v0.12 From c5a5696ca5273fb0a8474b525d1df4a52463afbd Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 18 Nov 2010 11:55:55 +0000 Subject: Update QDirModel autotest (symbian) Skip test requiring symbolic link as they aren't supported Move a Q_EXPECT_FAIL to immediately before the test function that fails (so the test result is XFAIL instead of FAIL) Reviewed-by: joao --- tests/auto/qdirmodel/tst_qdirmodel.cpp | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/tests/auto/qdirmodel/tst_qdirmodel.cpp b/tests/auto/qdirmodel/tst_qdirmodel.cpp index 41bbd87..e252b82 100644 --- a/tests/auto/qdirmodel/tst_qdirmodel.cpp +++ b/tests/auto/qdirmodel/tst_qdirmodel.cpp @@ -583,19 +583,15 @@ void tst_QDirModel::unreadable() void tst_QDirModel::filePath() { +#ifdef Q_OS_SYMBIAN + QSKIP("OS doesn't support symbolic links", SkipAll); +#else QFile::remove(SRCDIR "test.lnk"); QVERIFY(QFile(SRCDIR "tst_qdirmodel.cpp").link(SRCDIR "test.lnk")); QDirModel model; model.setResolveSymlinks(false); QModelIndex index = model.index(SRCDIR "test.lnk"); QVERIFY(index.isValid()); -#if defined(Q_OS_SYMBIAN) - // Since model will force lowercase path in Symbian, make case insensitive compare - // Note: Windows should fail this, too, if test path has any uppercase letters. - QCOMPARE(model.filePath(index).toLower(), QString(SRCDIR).toLower() + "test.lnk"); - model.setResolveSymlinks(true); - QCOMPARE(model.filePath(index).toLower(), QString(SRCDIR).toLower() + "tst_qdirmodel.cpp"); -#else #ifndef Q_OS_WINCE QString path = SRCDIR; #else @@ -604,8 +600,8 @@ void tst_QDirModel::filePath() QCOMPARE(model.filePath(index), path + QString( "test.lnk")); model.setResolveSymlinks(true); QCOMPARE(model.filePath(index), path + QString( "tst_qdirmodel.cpp")); -#endif QFile::remove(SRCDIR "test.lnk"); +#endif } void tst_QDirModel::task196768_sorting() @@ -613,11 +609,6 @@ void tst_QDirModel::task196768_sorting() //this task showed that the persistent model indexes got corrupted when sorting QString path = SRCDIR; -#ifdef Q_OS_SYMBIAN - if(!RProcess().HasCapability(ECapabilityAllFiles)) - QEXPECT_FAIL("", "QTBUG-9746", Continue); -#endif - QDirModel model; /* QDirModel has a bug if we show the content of the subdirectory inside a hidden directory @@ -637,6 +628,11 @@ void tst_QDirModel::task196768_sorting() QCOMPARE(index.data(), index2.data()); view.setSortingEnabled(true); index2 = model.index(path); + +#ifdef Q_OS_SYMBIAN + if(!RProcess().HasCapability(ECapabilityAllFiles)) + QEXPECT_FAIL("", "QTBUG-9746", Continue); +#endif QCOMPARE(index.data(), index2.data()); } -- cgit v0.12 From d99d8953d2c45ca3ad05fea35ac71407237ab59d Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 22 Nov 2010 16:51:41 +0100 Subject: Doc: Fixed broken link by referring to the errors() method instead. Task-number: QTBUG-15506 --- src/declarative/util/qdeclarativeview.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/declarative/util/qdeclarativeview.cpp b/src/declarative/util/qdeclarativeview.cpp index 0e31a20..c22f200 100644 --- a/src/declarative/util/qdeclarativeview.cpp +++ b/src/declarative/util/qdeclarativeview.cpp @@ -192,7 +192,7 @@ void QDeclarativeViewPrivate::itemGeometryChanged(QDeclarativeItem *resizeItem, /*! \class QDeclarativeView - \since 4.7 + \since 4.7 \brief The QDeclarativeView class provides a widget for displaying a Qt Declarative user interface. QDeclarativeItem objects can be placed on a standard QGraphicsScene and @@ -360,13 +360,14 @@ QDeclarativeContext* QDeclarativeView::rootContext() const } /*! - \enum QDeclarativeView::Status + \enum QDeclarativeView::Status Specifies the loading status of the QDeclarativeView. \value Null This QDeclarativeView has no source set. \value Ready This QDeclarativeView has loaded and created the QML component. \value Loading This QDeclarativeView is loading network data. - \value Error An error has occurred. Call errorDescription() to retrieve a description. + \value Error One or more errors has occurred. Call errors() to retrieve a list + of errors. */ /*! \enum QDeclarativeView::ResizeMode -- cgit v0.12 From 96acd93d741cd735f8c4bdaf6fdcf073192b1562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 17 Nov 2010 18:20:26 +0100 Subject: QFileSystemEngine: clean up unused code resolveUser/GroupName(id) only make sense on Unix platforms, there's no point in replicating them elsewhere. bundleName is a Mac-only feature, so we can otherwise merge the default implementation for other platforms. Reviewed-by: Shane Kearns --- src/corelib/io/qfilesystemengine_p.h | 9 ++++++++- src/corelib/io/qfilesystemengine_symbian.cpp | 21 --------------------- src/corelib/io/qfilesystemengine_unix.cpp | 6 ++---- src/corelib/io/qfilesystemengine_win.cpp | 19 ------------------- 4 files changed, 10 insertions(+), 45 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 1f4aad0..63d2a91 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -69,11 +69,18 @@ public: static QFileSystemEntry canonicalName(const QFileSystemEntry &entry, QFileSystemMetaData &data); static QFileSystemEntry absoluteName(const QFileSystemEntry &entry); static QString resolveUserName(const QFileSystemEntry &entry, QFileSystemMetaData &data); - static QString resolveUserName(uint userId); static QString resolveGroupName(const QFileSystemEntry &entry, QFileSystemMetaData &data); + +#if defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN) + static QString resolveUserName(uint userId); static QString resolveGroupName(uint groupId); +#endif +#if !defined(QWS) && defined(Q_OS_MAC) static QString bundleName(const QFileSystemEntry &entry); +#else + static QString bundleName(const QFileSystemEntry &entry) { Q_UNUSED(entry) return QString(); } +#endif static bool fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what); diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index c4e8d36..3659a39 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -151,27 +151,6 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) return QFileSystemEntry(symbianCleanAbsolutePath(result), QFileSystemEntry::FromInternalPath()); } -//static -QString QFileSystemEngine::resolveUserName(uint userId) -{ - Q_UNUSED(userId) - return QString(); // no users or groups on symbian -} - -//static -QString QFileSystemEngine::resolveGroupName(uint groupId) -{ - Q_UNUSED(groupId) - return QString(); // no users or groups on symbian -} - -//static -QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) -{ - Q_UNUSED(entry); - return QString(); -} - void QFileSystemMetaData::fillFromTEntry(const TEntry& entry) { entryFlags &= ~(QFileSystemMetaData::SymbianTEntryFlags); diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index dc6888d..329da08 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -333,10 +333,10 @@ QString QFileSystemEngine::resolveGroupName(uint groupId) return QString(); } +#if !defined(QWS) && defined(Q_OS_MAC) //static QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) { -#if !defined(QWS) && defined(Q_OS_MAC) QCFType url = CFURLCreateWithFileSystemPath(0, QCFString(entry.filePath()), kCFURLPOSIXPathStyle, true); if (QCFType dict = CFBundleCopyInfoDictionaryForURL(url)) { @@ -345,11 +345,9 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) return QCFString::toQString((CFStringRef)name); } } -#else - Q_UNUSED(entry); -#endif return QString(); } +#endif //static bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 8fa4d62..b2afe90 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -529,25 +529,6 @@ QFileSystemEntry QFileSystemEngine::absoluteName(const QFileSystemEntry &entry) } //static -QString QFileSystemEngine::resolveUserName(uint userId) -{ - return QString(); // TODO -} - -//static -QString QFileSystemEngine::resolveGroupName(uint groupId) -{ - return QString(); // TODO -} - -//static -QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) -{ - Q_UNUSED(entry); - return QString(); -} - -//static QString QFileSystemEngine::owner(const QFileSystemEntry &entry, QAbstractFileEngine::FileOwner own) { QString name; -- cgit v0.12 From ee1f78b08521955342b2ce0f1244c7406bfd3124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 17 Nov 2010 18:28:11 +0100 Subject: QFileSystemEngine: remove symbian code from Unix-specific implementation Symbian is not serviced by this code, anyway. So it's just dead code. Reviewed-by: Shane Kearns --- src/corelib/io/qfilesystemengine_unix.cpp | 51 ------------------------------- 1 file changed, 51 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 329da08..815ff42 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -52,12 +52,6 @@ #include #include -#if defined(Q_OS_SYMBIAN) -# include -# include -# include -# include -#endif #if defined(Q_OS_MAC) # include @@ -65,24 +59,6 @@ QT_BEGIN_NAMESPACE -#if defined(Q_OS_SYMBIAN) -static bool _q_isSymbianHidden(const QFileSystemEntry &entry, bool isDir) -{ - RFs rfs = qt_s60GetRFs(); - - QFileSystemEntry absoluteEntry = QFileSystemEngine::absoluteName(entry); - QString absolutePath = absoluteEntry.filePath(); - - if (isDir && !absolutePath.endsWith(QLatin1Char('/'))) - absolutePath.append(QLatin1Char('/')); - - TPtrC ptr(qt_QString2TPtrC(absolutePath)); - TUint attributes; - TInt err = rfs.Att(ptr, attributes); - return (err == KErrNone && (attributes & KEntryAttHidden)); -} -#endif - #if !defined(QWS) && defined(Q_OS_MAC) static inline bool _q_isMacHidden(const char *nativePath) { @@ -113,11 +89,7 @@ static inline bool _q_isMacHidden(const char *nativePath) bool QFileSystemEngine::isCaseSensitive() { -#if defined(Q_OS_SYMBIAN) - return false; -#else return true; -#endif } //static @@ -306,7 +278,6 @@ QString QFileSystemEngine::resolveGroupName(uint groupId) QVarLengthArray buf(size_max); #endif -#if !defined(Q_OS_SYMBIAN) struct group *gr = 0; #if !defined(QT_NO_THREAD) && defined(_POSIX_THREAD_SAFE_FUNCTIONS) && !defined(Q_OS_OPENBSD) size_max = sysconf(_SC_GETGR_R_SIZE_MAX); @@ -329,7 +300,6 @@ QString QFileSystemEngine::resolveGroupName(uint groupId) #endif if (gr) return QFile::decodeName(QByteArray(gr->gr_name)); -#endif return QString(); } @@ -360,13 +330,6 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM } #endif -#if defined(Q_OS_SYMBIAN) - if (what & QFileSystemMetaData::HiddenAttribute) { - if (!data.hasFlags(QFileSystemMetaData::LinkType | QFileSystemMetaData::DirectoryType)) - what |= QFileSystemMetaData::LinkType | QFileSystemMetaData::DirectoryType; - } -#endif - #if !defined(QWS) && defined(Q_OS_MAC) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 if (what & QFileSystemMetaData::HiddenAttribute) { // Mac OS >= 10.5: st_flags & UF_HIDDEN @@ -471,18 +434,10 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM if (what & QFileSystemMetaData::HiddenAttribute && !data.isHidden()) { -#if defined(Q_OS_SYMBIAN) - // In Symbian, all symlinks have hidden attribute for some reason; - // lets make them visible for better compatibility with other platforms. - // If somebody actually wants a hidden link, then they are out of luck. - if (entryExists && !data.isLink() && _q_isSymbianHidden(entry, data.isDirectory())) - data.entryFlags |= QFileSystemMetaData::HiddenAttribute; -#else QString fileName = entry.fileName(); if ((fileName.size() > 0 && fileName.at(0) == QLatin1Char('.')) || (entryExists && _q_isMacHidden(nativeFilePath))) data.entryFlags |= QFileSystemMetaData::HiddenAttribute; -#endif data.knownFlagsMask |= QFileSystemMetaData::HiddenAttribute; } @@ -513,9 +468,6 @@ bool QFileSystemEngine::createDirectory(const QFileSystemEntry &entry, bool crea QString dirName = entry.filePath(); if (createParents) { dirName = QDir::cleanPath(dirName); -#if defined(Q_OS_SYMBIAN) - dirName = QDir::toNativeSeparators(dirName); -#endif for (int oldslash = -1, slash=0; slash != -1; oldslash = slash) { slash = dirName.indexOf(QDir::separator(), oldslash+1); if (slash == -1) { @@ -548,9 +500,6 @@ bool QFileSystemEngine::removeDirectory(const QFileSystemEntry &entry, bool remo { if (removeEmptyParents) { QString dirName = QDir::cleanPath(entry.filePath()); -#if defined(Q_OS_SYMBIAN) - dirName = QDir::toNativeSeparators(dirName); -#endif for (int oldslash = 0, slash=dirName.length(); slash > 0; oldslash = slash) { QByteArray chunk = QFile::encodeName(dirName.left(slash)); QT_STATBUF st; -- cgit v0.12 From 901fee7e610ec53f744416aeeca89c4605923120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 22 Nov 2010 18:40:05 +0100 Subject: Fix QFile autotest for out-of-source builds --- tests/auto/qfile/tst_qfile.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index f60ab1e..dbd4302 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -1296,8 +1296,8 @@ void tst_QFile::link() QSKIP("Symbian does not support links", SkipAll); #endif QFile::remove("myLink.lnk"); - QFileInfo info1("tst_qfile.cpp"); - QVERIFY(QFile::link("tst_qfile.cpp", "myLink.lnk")); + QFileInfo info1(SRCDIR "tst_qfile.cpp"); + QVERIFY(QFile::link(SRCDIR "tst_qfile.cpp", "myLink.lnk")); QFileInfo info2("myLink.lnk"); QVERIFY(info2.isSymLink()); QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath()); -- cgit v0.12 From be99e778d361068e81936773def14c731553991f Mon Sep 17 00:00:00 2001 From: David Boddie Date: Mon, 22 Nov 2010 19:42:25 +0100 Subject: Doc: Removed incorrect statement about the C locale. Task-number: QTBUG-15488 --- src/corelib/tools/qlocale.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/corelib/tools/qlocale.cpp b/src/corelib/tools/qlocale.cpp index d152682..be1dc08 100644 --- a/src/corelib/tools/qlocale.cpp +++ b/src/corelib/tools/qlocale.cpp @@ -1576,8 +1576,6 @@ QDataStream &operator>>(QDataStream &ds, QLocale &l) defaults to the default locale (see setDefault()). \endlist - The "C" locale is identical in behavior to \l{English}/\l{UnitedStates}. - Use language() and country() to determine the actual language and country values used. -- cgit v0.12 From c8aa3d037ead9a7d1d62dc9ba454de8ff7eae9c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 23 Nov 2010 12:32:30 +0100 Subject: Adding #ifdefs/#defines lost in the merge to master The file-engine-refactor moved a lot of code around. So simple merge conflict resolution didn't cut it to finish the merge. Lighthouse on OS X adds Q_WS_QPA, where we were already using QWS. Also introduced QT_NO_CORESERVICES. --- src/corelib/io/qfilesystemengine.cpp | 3 ++- src/corelib/io/qfilesystemengine_p.h | 2 +- src/corelib/io/qfilesystemengine_unix.cpp | 17 +++++++++-------- src/corelib/io/qfilesystemengine_win.cpp | 8 ++++++++ src/corelib/io/qfilesystemmetadata_p.h | 4 ++-- 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index fe0bad7..1e5914b 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -266,7 +266,8 @@ void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer) // Attributes entryFlags |= QFileSystemMetaData::ExistsAttribute; size_ = statBuffer.st_size; -#if !defined(QWS) && defined(Q_OS_MAC) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) \ + && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 if (statBuffer.st_flags & UF_HIDDEN) { entryFlags |= QFileSystemMetaData::HiddenAttribute; knownFlagsMask |= QFileSystemMetaData::HiddenAttribute; diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 63d2a91..a3ec0ab 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -76,7 +76,7 @@ public: static QString resolveGroupName(uint groupId); #endif -#if !defined(QWS) && defined(Q_OS_MAC) +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) static QString bundleName(const QFileSystemEntry &entry); #else static QString bundleName(const QFileSystemEntry &entry) { Q_UNUSED(entry) return QString(); } diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 815ff42..40fb0c0 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -59,7 +59,7 @@ QT_BEGIN_NAMESPACE -#if !defined(QWS) && defined(Q_OS_MAC) +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) static inline bool _q_isMacHidden(const char *nativePath) { OSErr err; @@ -148,7 +148,7 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, ret.chop(1); return QFileSystemEntry(ret); } -#if !defined(QWS) && defined(Q_OS_MAC) +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) { FSRef fref; if (FSPathMakeRef((const UInt8 *)QFile::encodeName(QDir::cleanPath(link.filePath())).data(), &fref, 0) == noErr) { @@ -178,7 +178,7 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry, return QFileSystemEntry::slowCanonicalName(entry); #else char *ret = 0; -# if defined(Q_OS_MAC) +# if defined(Q_OS_MAC) && !defined(QT_NO_CORESERVICES) // Mac OS X 10.5.x doesn't support the realpath(X,0) extension we use here. if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_6) { ret = realpath(entry.nativeFilePath().constData(), (char*)0); @@ -303,7 +303,7 @@ QString QFileSystemEngine::resolveGroupName(uint groupId) return QString(); } -#if !defined(QWS) && defined(Q_OS_MAC) +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) //static QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) { @@ -323,14 +323,15 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) { -#if !defined(QWS) && defined(Q_OS_MAC) +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) if (what & QFileSystemMetaData::BundleType) { if (!data.hasFlags(QFileSystemMetaData::DirectoryType)) what |= QFileSystemMetaData::DirectoryType; } #endif -#if !defined(QWS) && defined(Q_OS_MAC) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) \ + && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 if (what & QFileSystemMetaData::HiddenAttribute) { // Mac OS >= 10.5: st_flags & UF_HIDDEN what |= QFileSystemMetaData::PosixStatFlags; @@ -395,7 +396,7 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM | QFileSystemMetaData::ExistsAttribute; } -#if !defined(QWS) && defined(Q_OS_MAC) +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) if (what & QFileSystemMetaData::AliasType) { if (entryExists) { @@ -441,7 +442,7 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM data.knownFlagsMask |= QFileSystemMetaData::HiddenAttribute; } -#if !defined(QWS) && defined(Q_OS_MAC) +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) if (what & QFileSystemMetaData::BundleType) { if (entryExists && data.isDirectory()) { QCFType path = CFStringCreateWithBytes(0, diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index b2afe90..621b631 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -71,6 +71,14 @@ #define SECURITY_WIN32 #include +#ifndef SPI_GETPLATFORMTYPE +#define SPI_GETPLATFORMTYPE 257 +#endif + +#ifndef PATH_MAX +#define PATH_MAX FILENAME_MAX +#endif + #ifndef _INTPTR_T_DEFINED #ifdef _WIN64 typedef __int64 intptr_t; diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 24dfe6b..860b887 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -104,7 +104,7 @@ public: #endif FileType = 0x00020000, DirectoryType = 0x00040000, -#if !defined(QWS) && defined(Q_OS_MAC) +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) BundleType = 0x00080000, AliasType = 0x08000000, #else @@ -264,7 +264,7 @@ private: Q_DECLARE_OPERATORS_FOR_FLAGS(QFileSystemMetaData::MetaDataFlags) -#if !defined(QWS) && defined(Q_OS_MAC) +#if !defined(QWS) && !defined(Q_WS_QPA) && defined(Q_OS_MAC) inline bool QFileSystemMetaData::isBundle() const { return (entryFlags & BundleType); } inline bool QFileSystemMetaData::isAlias() const { return (entryFlags & AliasType); } #else -- cgit v0.12 From 3dc88a6229afc72125fa5565eb565a6fbc92620f Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 23 Nov 2010 15:21:20 +0100 Subject: Doc: Added general statements about reentrancy and thread safety. Task-number: QTBUG-14273 --- doc/src/frameworks-technologies/threads.qdoc | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/doc/src/frameworks-technologies/threads.qdoc b/doc/src/frameworks-technologies/threads.qdoc index 3ef617c..3e0204f 100644 --- a/doc/src/frameworks-technologies/threads.qdoc +++ b/doc/src/frameworks-technologies/threads.qdoc @@ -213,10 +213,10 @@ /*! \page threads-reentrancy.html \title Reentrancy and Thread-Safety - + \keyword reentrant \keyword thread-safe - + \previouspage Synchronizing Threads \contentspage Thread Support in Qt \nextpage Threads and QObjects @@ -243,6 +243,15 @@ from multiple threads, even if all the threads use the \e{same} instance of the class. + \note Qt classes are only documented as \e{thread-safe} if they + are intended to be used by multiple threads. If a function is not + marked as thread-safe or reentrant, it should not be used from + different threads. If a class is not marked as thread-safe or + reentrant then a specific instance of that class should not be + accessed from different threads. + + \section1 Reentrancy + C++ classes are often reentrant, simply because they only access their own member data. Any thread can call a member function on an instance of a reentrant class, as long as no other thread can call @@ -268,6 +277,8 @@ end up overwriting each other, and the variable is incremented only once! + \section1 Thread-Safety + Clearly, the access must be serialized: Thread A must perform steps 1, 2, 3 without interruption (atomically) before thread B can perform the same steps; or vice versa. An easy way to make @@ -284,6 +295,8 @@ declared with the \c mutable qualifier because we need to lock and unlock the mutex in \c value(), which is a const function. + \section1 Notes on Qt Classes + Many Qt classes are \e{reentrant}, but they are not made \e{thread-safe}, because making them thread-safe would incur the extra overhead of repeatedly locking and unlocking a QMutex. For @@ -297,9 +310,6 @@ the thread-related classes (e.g. QMutex) and fundamental functions (e.g. QCoreApplication::postEvent()). - \note Qt Classes are only documented as \e{thread-safe} if they - are intended to be used by multiple threads. - \note Terminology in the multithreading domain isn't entirely standardized. POSIX uses definitions of reentrant and thread-safe that are somewhat different for its C APIs. When using other -- cgit v0.12 From 88dd7568fff419510a7c26ffb93d93cc276d7b3b Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Tue, 23 Nov 2010 15:31:12 +0100 Subject: Fix filtering of columns in QSFPM. Fixes a crash introduced in 315c09c3873f7c5d8b785443372bf975bae47ee7 Reviewed-by: Gabriel de Dietrich Reviewed-by: Olivier --- src/gui/itemviews/qsortfilterproxymodel.cpp | 4 +-- .../qsortfilterproxymodel.pro | 5 +-- .../tst_qsortfilterproxymodel.cpp | 39 ++++++++++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/gui/itemviews/qsortfilterproxymodel.cpp b/src/gui/itemviews/qsortfilterproxymodel.cpp index dc8d938..0d9819e 100644 --- a/src/gui/itemviews/qsortfilterproxymodel.cpp +++ b/src/gui/itemviews/qsortfilterproxymodel.cpp @@ -782,14 +782,14 @@ void QSortFilterProxyModelPrivate::source_items_inserted( if (orthogonal_source_to_proxy.isEmpty()) { const int ortho_end = (orient == Qt::Horizontal) ? model->rowCount(source_parent) : model->columnCount(source_parent); + orthogonal_source_to_proxy.resize(ortho_end); + for (int ortho_item = 0; ortho_item < ortho_end; ++ortho_item) { if ((orient == Qt::Horizontal) ? q->filterAcceptsRow(ortho_item, source_parent) : q->filterAcceptsColumn(ortho_item, source_parent)) { orthogonal_proxy_to_source.append(ortho_item); } } - orthogonal_source_to_proxy.resize(orthogonal_proxy_to_source.size()); - if (orient == Qt::Horizontal) { // We're reacting to columnsInserted, but we've just inserted new rows. Sort them. sort_source_rows(orthogonal_proxy_to_source, source_parent); diff --git a/tests/auto/qsortfilterproxymodel/qsortfilterproxymodel.pro b/tests/auto/qsortfilterproxymodel/qsortfilterproxymodel.pro index d2c1147..7edd4a5 100644 --- a/tests/auto/qsortfilterproxymodel/qsortfilterproxymodel.pro +++ b/tests/auto/qsortfilterproxymodel/qsortfilterproxymodel.pro @@ -1,6 +1,7 @@ load(qttest_p4) -SOURCES += tst_qsortfilterproxymodel.cpp - +INCLUDEPATH += $$PWD/../modeltest +SOURCES += tst_qsortfilterproxymodel.cpp ../modeltest/dynamictreemodel.cpp ../modeltest/modeltest.cpp +HEADERS += ../modeltest/dynamictreemodel.h ../modeltest/modeltest.h diff --git a/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp b/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp index 66caf4a..93b9d30 100644 --- a/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp +++ b/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp @@ -43,6 +43,9 @@ #include #include "../../shared/util.h" +#include "dynamictreemodel.h" +#include "modeltest.h" + #include #include @@ -144,6 +147,7 @@ private slots: void testMultipleProxiesWithSelection(); void mapSelectionFromSource(); + void filteredColumns(); protected: void buildHierarchy(const QStringList &data, QAbstractItemModel *model); @@ -3174,5 +3178,40 @@ void tst_QSortFilterProxyModel::taskQTBUG_10287_unnecessaryMapCreation() // No assert failure, it passes. } +class FilteredColumnProxyModel : public QSortFilterProxyModel +{ + Q_OBJECT +public: + FilteredColumnProxyModel(QObject *parent = 0) + : QSortFilterProxyModel(parent) + { + + } + +protected: + bool filterAcceptsColumn(int column, const QModelIndex &source_parent) const + { + return column % 2 != 0; + } +}; + +void tst_QSortFilterProxyModel::filteredColumns() +{ + DynamicTreeModel *model = new DynamicTreeModel(this); + + FilteredColumnProxyModel *proxy = new FilteredColumnProxyModel(this); + proxy->setSourceModel(model); + + new ModelTest(proxy, this); + + ModelInsertCommand *insertCommand = new ModelInsertCommand(model, this); + insertCommand->setNumCols(2); + insertCommand->setStartRow(0); + insertCommand->setEndRow(0); + // Parent is QModelIndex() + insertCommand->doCommand(); + +} + QTEST_MAIN(tst_QSortFilterProxyModel) #include "tst_qsortfilterproxymodel.moc" -- cgit v0.12 From 5ea5d929144ddf334bf8f47cccec35ee7dcbb10c Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 24 Nov 2010 11:14:23 +0100 Subject: Fix compile error on Windows Reviewed-by: Joao --- src/corelib/io/qfsfileengine_win.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index f3e2c4c..715fe39 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -69,6 +69,10 @@ #define SECURITY_WIN32 #include +#ifndef PATH_MAX +#define PATH_MAX FILENAME_MAX +#endif + QT_BEGIN_NAMESPACE -- cgit v0.12 From 57d1545e4afc97517f1472e626c27b8009e904cc Mon Sep 17 00:00:00 2001 From: David Boddie Date: Wed, 24 Nov 2010 13:48:14 +0100 Subject: Doc: Added documentation about Tab and Backtab key handling. Task-number: QTBUG-15569 --- src/declarative/graphicsitems/qdeclarativeitem.cpp | 24 +++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index e0df751..93572a0 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -484,10 +484,18 @@ void QDeclarativeItemKeyFilter::componentComplete() \qmlproperty Item KeyNavigation::down These properties hold the item to assign focus to - when Key_Left, Key_Right, Key_Up or Key_Down are + when the left, right, up or down cursor keys are pressed. */ +/*! + \qmlproperty Item KeyNavigation::tab + \qmlproperty Item KeyNavigation::backtab + + These properties hold the item to assign focus to + when the Tab key or Shift+Tab key combination (Backtab) are pressed. +*/ + QDeclarativeKeyNavigationAttached::QDeclarativeKeyNavigationAttached(QObject *parent) : QObject(*(new QDeclarativeKeyNavigationAttachedPrivate), parent), QDeclarativeItemKeyFilter(qobject_cast(parent)) @@ -941,6 +949,20 @@ void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event, bool post) */ /*! + \qmlsignal Keys::onTabPressed(KeyEvent event) + + This handler is called when the Tab key has been pressed. The \a event + parameter provides information about the event. +*/ + +/*! + \qmlsignal Keys::onBacktabPressed(KeyEvent event) + + This handler is called when the Shift+Tab key combination (Backtab) has + been pressed. The \a event parameter provides information about the event. +*/ + +/*! \qmlsignal Keys::onAsteriskPressed(KeyEvent event) This handler is called when the Asterisk '*' has been pressed. The \a event -- cgit v0.12 From 535df2381d4f0e9cef9abab2c52db1ec93929e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 24 Nov 2010 15:03:33 +0100 Subject: Smoke test for QAbstractFileEngine This tests the default file support provided by Qt, together with QFSFileEngine, QResource engine and a reference custom file engine that works on top of a simple virtual in-memory file system. For now, the test is only focusing on QFile I/O functionality, it should be extended to cover QFileInfo, QDir, QDirIterator and file system operations in QFile. The intent for the reference file engine is not to be a fully functional file system, but to ensure that minimal support for custom file engines is working. Reviewed-by: Shane Kearns --- tests/auto/corelib.pro | 1 + .../qabstractfileengine/qabstractfileengine.pro | 6 + .../qabstractfileengine/qabstractfileengine.qrc | 5 + tests/auto/qabstractfileengine/resources/file.txt | 1 + .../tst_qabstractfileengine.cpp | 724 +++++++++++++++++++++ 5 files changed, 737 insertions(+) create mode 100644 tests/auto/qabstractfileengine/qabstractfileengine.pro create mode 100644 tests/auto/qabstractfileengine/qabstractfileengine.qrc create mode 100644 tests/auto/qabstractfileengine/resources/file.txt create mode 100644 tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp diff --git a/tests/auto/corelib.pro b/tests/auto/corelib.pro index 5ac0c81..3451b53 100644 --- a/tests/auto/corelib.pro +++ b/tests/auto/corelib.pro @@ -102,6 +102,7 @@ SUBDIRS=\ selftests \ utf8 \ qfilesystementry \ + qabstractfileengine symbian:SUBDIRS -= \ qtconcurrentfilter \ diff --git a/tests/auto/qabstractfileengine/qabstractfileengine.pro b/tests/auto/qabstractfileengine/qabstractfileengine.pro new file mode 100644 index 0000000..870473a --- /dev/null +++ b/tests/auto/qabstractfileengine/qabstractfileengine.pro @@ -0,0 +1,6 @@ +load(qttest_p4) +QT = core + +SOURCES = tst_qabstractfileengine.cpp +RESOURCES += qabstractfileengine.qrc + diff --git a/tests/auto/qabstractfileengine/qabstractfileengine.qrc b/tests/auto/qabstractfileengine/qabstractfileengine.qrc new file mode 100644 index 0000000..5401b08 --- /dev/null +++ b/tests/auto/qabstractfileengine/qabstractfileengine.qrc @@ -0,0 +1,5 @@ + + + resources/ + + diff --git a/tests/auto/qabstractfileengine/resources/file.txt b/tests/auto/qabstractfileengine/resources/file.txt new file mode 100644 index 0000000..8a03e0e --- /dev/null +++ b/tests/auto/qabstractfileengine/resources/file.txt @@ -0,0 +1 @@ +This is a simple text file. diff --git a/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp b/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp new file mode 100644 index 0000000..b2003a0 --- /dev/null +++ b/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp @@ -0,0 +1,724 @@ +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include + +class tst_QAbstractFileEngine + : public QObject +{ + Q_OBJECT +public slots: + void cleanupTestCase(); + +private slots: + void customHandler(); + + void fileIO_data(); + void fileIO(); + +private: + QStringList filesForRemoval; +}; + +class ReferenceFileEngine + : public QAbstractFileEngine +{ +public: + ReferenceFileEngine(const QString &fileName) + : fileName_(fileName) + , position_(-1) + , openForRead_(false) + , openForWrite_(false) + { + } + + bool open(QIODevice::OpenMode openMode) + { + Q_ASSERT(!openForRead_); + Q_ASSERT(!openForWrite_); + + openFile_ = resolveFile(openMode & QIODevice::WriteOnly); + if (!openFile_) + return false; + + position_ = 0; + if (openMode & QIODevice::ReadOnly) + openForRead_ = true; + + if (openMode & QIODevice::WriteOnly) { + openForWrite_ = true; + + QMutexLocker lock(&openFile_->mutex); + if (openMode & QIODevice::Truncate + || !(openForRead_ || openMode & QIODevice::Append)) + openFile_->content.clear(); + + if (openMode & QIODevice::Append) + position_ = openFile_->content.size(); + } + + return true; + } + + bool close() + { + openFile_.clear(); + + openForRead_ = false; + openForWrite_ = false; + position_ = -1; + + return true; + } + + qint64 size() const + { + QSharedPointer file = resolveFile(false); + if (!file) + return 0; + + QMutexLocker lock(&file->mutex); + return file->content.size(); + } + + qint64 pos() const + { + Q_ASSERT(openForRead_ || openForWrite_); + return position_; + } + + bool seek(qint64 pos) + { + Q_ASSERT(openForRead_ || openForWrite_); + + if (pos >= 0) { + position_ = pos; + return true; + } + + return false; + } + + bool flush() + { + Q_ASSERT(openForRead_ || openForWrite_); + return true; + } + + bool remove() + { + QMutexLocker lock(&fileSystemMutex); + int count = fileSystem.remove(fileName_); + + return (count == 1); + } + + bool copy(const QString &newName) + { + QMutexLocker lock(&fileSystemMutex); + if (!fileSystem.contains(fileName_) + || fileSystem.contains(newName)) + return false; + + fileSystem.insert(newName, fileSystem.value(fileName_)); + return true; + } + + bool rename(const QString &newName) + { + QMutexLocker lock(&fileSystemMutex); + if (!fileSystem.contains(fileName_) + || fileSystem.contains(newName)) + return false; + + fileSystem.insert(newName, fileSystem.take(fileName_)); + return true; + } + + // bool link(const QString &newName) + // { + // Q_UNUSED(newName) + // return false; + // } + + // bool mkdir(const QString &dirName, bool createParentDirectories) const + // { + // Q_UNUSED(dirName) + // Q_UNUSED(createParentDirectories) + + // return false; + // } + + // bool rmdir(const QString &dirName, bool recurseParentDirectories) const + // { + // Q_UNUSED(dirName) + // Q_UNUSED(recurseParentDirectories) + + // return false; + // } + + bool setSize(qint64 size) + { + if (size < 0) + return false; + + QSharedPointer file = resolveFile(false); + if (!file) + return false; + + QMutexLocker lock(&file->mutex); + file->content.resize(size); + + if (openForRead_ || openForWrite_) + if (position_ > size) + position_ = size; + + return (file->content.size() == size); + } + + FileFlags fileFlags(FileFlags type) const + { + QSharedPointer file = resolveFile(false); + if (file) { + QMutexLocker lock(&file->mutex); + return (file->fileFlags & type); + } + + return FileFlags(); + } + + // bool setPermissions(uint perms) + // { + // Q_UNUSED(perms) + + // return false; + // } + + QString fileName(FileName file) const + { + switch (file) { + case DefaultName: + return QLatin1String("DefaultName"); + case BaseName: + return QLatin1String("BaseName"); + case PathName: + return QLatin1String("PathName"); + case AbsoluteName: + return QLatin1String("AbsoluteName"); + case AbsolutePathName: + return QLatin1String("AbsolutePathName"); + case LinkName: + return QLatin1String("LinkName"); + case CanonicalName: + return QLatin1String("CanonicalName"); + case CanonicalPathName: + return QLatin1String("CanonicalPathName"); + case BundleName: + return QLatin1String("BundleName"); + + default: + break; + } + + return QString(); + } + + uint ownerId(FileOwner owner) const + { + QSharedPointer file = resolveFile(false); + if (file) { + switch (owner) { + case OwnerUser: + { + QMutexLocker lock(&file->mutex); + return file->userId; + } + case OwnerGroup: + { + QMutexLocker lock(&file->mutex); + return file->groupId; + } + } + } + + return -2; + } + + QString owner(FileOwner owner) const + { + QSharedPointer file = resolveFile(false); + if (file) { + uint ownerId; + switch (owner) { + case OwnerUser: + { + QMutexLocker lock(&file->mutex); + ownerId = file->userId; + } + + { + QMutexLocker lock(&fileSystemMutex); + return fileSystemUsers.value(ownerId); + } + + case OwnerGroup: + { + QMutexLocker lock(&file->mutex); + ownerId = file->groupId; + } + + { + QMutexLocker lock(&fileSystemMutex); + return fileSystemGroups.value(ownerId); + } + } + } + + return QString(); + } + + QDateTime fileTime(FileTime time) const + { + QSharedPointer file = resolveFile(false); + if (file) { + QMutexLocker lock(&file->mutex); + switch (time) { + case CreationTime: + return file->creation; + case ModificationTime: + return file->modification; + case AccessTime: + return file->access; + } + } + + return QDateTime(); + } + + void setFileName(const QString &file) + { + Q_ASSERT(!openForRead_); + Q_ASSERT(!openForWrite_); + + fileName_ = file; + } + + // typedef QAbstractFileEngineIterator Iterator; + // Iterator *beginEntryList(QDir::Filters filters, const QStringList &filterNames) + // { + // Q_UNUSED(filters) + // Q_UNUSED(filterNames) + + // return 0; + // } + + // Iterator *endEntryList() + // { + // return 0; + // } + + qint64 read(char *data, qint64 maxLen) + { + Q_ASSERT(openForRead_); + + Q_ASSERT(!openFile_.isNull()); + QMutexLocker lock(&openFile_->mutex); + qint64 readSize = qMin(openFile_->content.size() - position_, maxLen); + if (readSize < 0) + return -1; + + qMemCopy(data, openFile_->content.constData() + position_, readSize); + position_ += readSize; + + return readSize; + } + + qint64 write(const char *data, qint64 length) + { + Q_ASSERT(openForWrite_); + + if (length < 0) + return -1; + + Q_ASSERT(!openFile_.isNull()); + QMutexLocker lock(&openFile_->mutex); + if (openFile_->content.size() == position_) + openFile_->content.append(data, length); + else { + if (position_ + length > openFile_->content.size()) + openFile_->content.resize(position_ + length); + openFile_->content.replace(position_, length, data, length); + } + + qint64 writeSize = qMin(length, openFile_->content.size() - position_); + position_ += writeSize; + + return writeSize; + } + +protected: + // void setError(QFile::FileError error, const QString &str); + + struct File + { + File() + : userId(0) + , groupId(0) + , fileFlags( + ReadOwnerPerm | WriteOwnerPerm | ExeOwnerPerm + | ReadUserPerm | WriteUserPerm | ExeUserPerm + | ReadGroupPerm | WriteGroupPerm | ExeGroupPerm + | ReadOtherPerm | WriteOtherPerm | ExeOtherPerm + | FileType | ExistsFlag) + { + } + + QMutex mutex; + + uint userId, groupId; + QAbstractFileEngine::FileFlags fileFlags; + QDateTime creation, modification, access; + + QByteArray content; + }; + + QSharedPointer resolveFile(bool create) const + { + if (openForRead_ || openForWrite_) { + Q_ASSERT(openFile_); + return openFile_; + } + + QMutexLocker lock(&fileSystemMutex); + if (create) { + QSharedPointer &p = fileSystem[fileName_]; + if (p.isNull()) + p = QSharedPointer(new File); + return p; + } + + return fileSystem.value(fileName_); + } + + static QMutex fileSystemMutex; + static QHash fileSystemUsers, fileSystemGroups; + static QHash > fileSystem; + +private: + QString fileName_; + qint64 position_; + bool openForRead_; + bool openForWrite_; + + mutable QSharedPointer openFile_; +}; + +QMutex ReferenceFileEngine::fileSystemMutex; +QHash ReferenceFileEngine::fileSystemUsers, ReferenceFileEngine::fileSystemGroups; +QHash > ReferenceFileEngine::fileSystem; + +class FileEngineHandler + : QAbstractFileEngineHandler +{ + QAbstractFileEngine *create(const QString &fileName) const + { + if (fileName.startsWith("QFSFileEngine:")) + return new QFSFileEngine(fileName.mid(14)); + if (fileName.startsWith("reference-file-engine:")) + return new ReferenceFileEngine(fileName.mid(22)); + if (fileName.startsWith("resource:")) + return QAbstractFileEngine::create(QLatin1String(":/tst_qabstractfileengine/resources/") + fileName.mid(9)); + return 0; + } +}; + +void tst_QAbstractFileEngine::cleanupTestCase() +{ + bool failed = false; + + FileEngineHandler handler; + Q_FOREACH(QString file, filesForRemoval) + if (!QFile::remove(file) + || QFile::exists(file)) { + failed = true; + qDebug() << "Couldn't remove file:" << file; + } + + QVERIFY(!failed); +} + +void tst_QAbstractFileEngine::customHandler() +{ + QScopedPointer file; + { + file.reset(QAbstractFileEngine::create("resource:file.txt")); + + QVERIFY(file); + } + + { + FileEngineHandler handler; + + QFile file("resource:file.txt"); + QVERIFY(file.exists()); + } + + { + QFile file("resource:file.txt"); + QVERIFY(!file.exists()); + } +} + +void tst_QAbstractFileEngine::fileIO_data() +{ + QTest::addColumn("fileName"); + QTest::addColumn("readContent"); + QTest::addColumn("writeContent"); + QTest::addColumn("fileExists"); + + QString resourceTxtFile(":/tst_qabstractfileengine/resources/file.txt"); + QByteArray readContent("This is a simple text file.\n"); + QByteArray writeContent("This contains two lines of text.\n"); + + QTest::newRow("resource") << resourceTxtFile << readContent << QByteArray() << true; + QTest::newRow("native") << "native-file.txt" << readContent << writeContent << false; + QTest::newRow("Forced QFSFileEngine") << "QFSFileEngine:QFSFileEngine-file.txt" << readContent << writeContent << false; + QTest::newRow("Custom FE") << "reference-file-engine:file.txt" << readContent << writeContent << false; + + QTest::newRow("Forced QFSFileEngine (native)") << "QFSFileEngine:native-file.txt" << readContent << writeContent << true; + QTest::newRow("native (Forced QFSFileEngine)") << "QFSFileEngine-file.txt" << readContent << writeContent << true; + QTest::newRow("Custom FE (2)") << "reference-file-engine:file.txt" << readContent << writeContent << true; +} + +void tst_QAbstractFileEngine::fileIO() +{ + QFETCH(QString, fileName); + QFETCH(QByteArray, readContent); + QFETCH(QByteArray, writeContent); + QFETCH(bool, fileExists); + + FileEngineHandler handler; + + + { + QFile file(fileName); + QCOMPARE(file.exists(), fileExists); + + if (!fileExists) { + QVERIFY(file.open(QIODevice::WriteOnly | QIODevice::Unbuffered)); + filesForRemoval.append(fileName); + + QCOMPARE(file.write(readContent), qint64(readContent.size())); + } + } + + // + // File content is: readContent + // + + qint64 fileSize = readContent.size(); + { + // Reading + QFile file(fileName); + + QVERIFY(!file.isOpen()); + QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Unbuffered)); + + QVERIFY(file.isOpen()); + QCOMPARE(file.size(), fileSize); + QCOMPARE(file.pos(), qint64(0)); + + QCOMPARE(file.size(), fileSize); + QCOMPARE(file.readAll(), readContent); + QCOMPARE(file.pos(), fileSize); + + file.close(); + QVERIFY(!file.isOpen()); + QCOMPARE(file.size(), fileSize); + } + + if (writeContent.isEmpty()) + return; + + { + // Writing / appending + QFile file(fileName); + + QVERIFY(!file.isOpen()); + QVERIFY(file.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Unbuffered)); + + QVERIFY(file.isOpen()); + QCOMPARE(file.size(), fileSize); + QCOMPARE(file.pos(), fileSize); + + QCOMPARE(file.write(writeContent), qint64(writeContent.size())); + + fileSize += writeContent.size(); + QCOMPARE(file.pos(), fileSize); + QCOMPARE(file.size(), fileSize); + + file.close(); + QVERIFY(!file.isOpen()); + QCOMPARE(file.size(), fileSize); + } + + // + // File content is: readContent + writeContent + // + + { + // Reading and Writing + QFile file(fileName); + + QVERIFY(!file.isOpen()); + QVERIFY(file.open(QIODevice::ReadWrite | QIODevice::Unbuffered)); + + QVERIFY(file.isOpen()); + QCOMPARE(file.size(), fileSize); + QCOMPARE(file.pos(), qint64(0)); + + QCOMPARE(file.readAll(), readContent + writeContent); + QCOMPARE(file.pos(), fileSize); + QCOMPARE(file.size(), fileSize); + + QVERIFY(file.seek(writeContent.size())); + QCOMPARE(file.pos(), qint64(writeContent.size())); + QCOMPARE(file.size(), fileSize); + + QCOMPARE(file.write(readContent), qint64(readContent.size())); + QCOMPARE(file.pos(), fileSize); + QCOMPARE(file.size(), fileSize); + + QVERIFY(file.seek(0)); + QCOMPARE(file.pos(), qint64(0)); + QCOMPARE(file.size(), fileSize); + + QCOMPARE(file.write(writeContent), qint64(writeContent.size())); + QCOMPARE(file.pos(), qint64(writeContent.size())); + QCOMPARE(file.size(), fileSize); + + QVERIFY(file.seek(0)); + QCOMPARE(file.read(writeContent.size()), writeContent); + QCOMPARE(file.pos(), qint64(writeContent.size())); + QCOMPARE(file.size(), fileSize); + + QCOMPARE(file.readAll(), readContent); + QCOMPARE(file.pos(), fileSize); + QCOMPARE(file.size(), fileSize); + + file.close(); + QVERIFY(!file.isOpen()); + QCOMPARE(file.size(), fileSize); + } + + // + // File content is: writeContent + readContent + // + + { + // Writing + QFile file(fileName); + + QVERIFY(!file.isOpen()); + QVERIFY(file.open(QIODevice::ReadWrite | QIODevice::Unbuffered)); + + QVERIFY(file.isOpen()); + QCOMPARE(file.size(), fileSize); + QCOMPARE(file.pos(), qint64(0)); + + QCOMPARE(file.write(writeContent), qint64(writeContent.size())); + QCOMPARE(file.pos(), qint64(writeContent.size())); + QCOMPARE(file.size(), fileSize); + + QVERIFY(file.resize(writeContent.size())); + QCOMPARE(file.size(), qint64(writeContent.size())); + + file.close(); + QVERIFY(!file.isOpen()); + QCOMPARE(file.size(), qint64(writeContent.size())); + + QVERIFY(file.resize(fileSize)); + QCOMPARE(file.size(), fileSize); + } + + // + // File content is: writeContent + + // File size is : (readContent + writeContent).size() + // + + { + // Writing / extending + QFile file(fileName); + + QVERIFY(!file.isOpen()); + QVERIFY(file.open(QIODevice::ReadWrite | QIODevice::Unbuffered)); + + QVERIFY(file.isOpen()); + QCOMPARE(file.size(), fileSize); + QCOMPARE(file.pos(), qint64(0)); + + QVERIFY(file.seek(1024)); + QCOMPARE(file.pos(), qint64(1024)); + QCOMPARE(file.size(), fileSize); + + fileSize = 1024 + writeContent.size(); + QCOMPARE(file.write(writeContent), qint64(writeContent.size())); + QCOMPARE(file.pos(), fileSize); + QCOMPARE(file.size(), fileSize); + + QVERIFY(file.seek(1028)); + QCOMPARE(file.pos(), qint64(1028)); + QCOMPARE(file.size(), fileSize); + + fileSize = 1028 + writeContent.size(); + QCOMPARE(file.write(writeContent), qint64(writeContent.size())); + QCOMPARE(file.pos(), fileSize); + QCOMPARE(file.size(), fileSize); + + file.close(); + QVERIFY(!file.isOpen()); + QCOMPARE(file.size(), fileSize); + } + + // + // File content is: writeContent + + writeContent + // File size is : 1024 + writeContent.size() + // + + { + // Writing / truncating + QFile file(fileName); + + QVERIFY(!file.isOpen()); + QVERIFY(file.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Unbuffered)); + + QVERIFY(file.isOpen()); + QCOMPARE(file.size(), qint64(0)); + QCOMPARE(file.pos(), qint64(0)); + + fileSize = readContent.size(); + QCOMPARE(file.write(readContent), fileSize); + QCOMPARE(file.pos(), fileSize); + QCOMPARE(file.size(), fileSize); + + file.close(); + QVERIFY(!file.isOpen()); + QCOMPARE(file.size(), fileSize); + } + + // + // File content is: readContent + // +} + +QTEST_APPLESS_MAIN(tst_QAbstractFileEngine) +#include "tst_qabstractfileengine.moc" + -- cgit v0.12 From 04c3d2e98cebd16a357923ab71a95882e4667ef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 24 Nov 2010 16:43:58 +0100 Subject: QAbstractFileEngine test case Oops, I let a space character slip... --- tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp b/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp index b2003a0..f98adca 100644 --- a/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp +++ b/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp @@ -236,7 +236,7 @@ public: QSharedPointer file = resolveFile(false); if (file) { switch (owner) { - case OwnerUser: + case OwnerUser: { QMutexLocker lock(&file->mutex); return file->userId; -- cgit v0.12 From 79281991e21bb5bd3a6f3288ac934aa4c2b33fcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 25 Nov 2010 10:47:42 +0100 Subject: Let's use engine's understanding of relative path As much as I'd like to have the definition of "relative" be independent of custom engines, the current architecture prevents us from doing that without introducing knowledge about them in QFileSystemEntry. Fixing this specifically for resource files would be possible, but let's not break custom engines... just yet. Reviewed-by: Prasanth Ullattil --- src/corelib/io/qdir.cpp | 4 +++- src/corelib/io/qfileinfo.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 22a3baa..e1fed0d 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -1544,7 +1544,9 @@ bool QDir::isRoot() const */ bool QDir::isRelative() const { - return d_ptr->dirEntry.isRelative(); + if (d_ptr->fileEngine.isNull()) + return d_ptr->dirEntry.isRelative(); + return d_ptr->fileEngine->isRelativePath(); } diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 471da2e..9041c94 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -623,7 +623,9 @@ bool QFileInfo::isRelative() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return true; - return d->fileEntry.isRelative(); + if (d->fileEngine == 0) + return d->fileEntry.isRelative(); + return d->fileEngine->isRelativePath(); } /*! -- cgit v0.12 From 73fb20bc600546e5c7d7e0ad41b28a9b7856665a Mon Sep 17 00:00:00 2001 From: aavit Date: Thu, 25 Nov 2010 12:14:51 +0100 Subject: Avoid race condition: don't quit until new executable is ready --- tests/arthur/baselineserver/src/baselineserver.cpp | 2 ++ tests/arthur/common/baselineprotocol.pri | 1 + 2 files changed, 3 insertions(+) diff --git a/tests/arthur/baselineserver/src/baselineserver.cpp b/tests/arthur/baselineserver/src/baselineserver.cpp index 0399224..fbf68f5 100644 --- a/tests/arthur/baselineserver/src/baselineserver.cpp +++ b/tests/arthur/baselineserver/src/baselineserver.cpp @@ -97,6 +97,8 @@ void BaselineServer::heartbeat() QFileInfo me(QCoreApplication::applicationFilePath()); if (me.lastModified() == meLastMod) return; + if (!me.exists() || !me.isExecutable()) + return; //# (could close() here to avoid accepting new connections, to avoid livelock) //# also, could check for a timeout to force exit, to avoid hung threads blocking diff --git a/tests/arthur/common/baselineprotocol.pri b/tests/arthur/common/baselineprotocol.pri index 996f9d5..62e38a6 100644 --- a/tests/arthur/common/baselineprotocol.pri +++ b/tests/arthur/common/baselineprotocol.pri @@ -1,4 +1,5 @@ INCLUDEPATH += $$PWD +DEPENDPATH += $$PWD QT *= network -- cgit v0.12 From a0be2bb3f5a7f71f1e77ca7b8907e49b8e16bef3 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 25 Nov 2010 13:50:27 +0100 Subject: Doc: Fixed a snippet to show QML comments. Task-number: QTBUG-15584 --- doc/src/snippets/declarative/comments.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/src/snippets/declarative/comments.qml b/doc/src/snippets/declarative/comments.qml index a8e47ad..97659a5 100644 --- a/doc/src/snippets/declarative/comments.qml +++ b/doc/src/snippets/declarative/comments.qml @@ -38,7 +38,6 @@ ** ****************************************************************************/ -//![0] import QtQuick 1.0 //![0] -- cgit v0.12 From dcce5c796e5cd5cb090f1c395e483269bab01566 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Thu, 25 Nov 2010 13:56:29 +0100 Subject: Doc: Fixed whitespace. --- .../qmlvisual/webview/flickable/flickweb.qml | 70 +++++++++++----------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml b/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml index 6063226..af09389 100644 --- a/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml +++ b/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml @@ -1,35 +1,35 @@ -import QtQuick 1.0 -import QtWebKit 1.0 - -Flickable { - id: flickable - width: 320 - height: 200 - contentWidth: Math.max(flickable.width,webView.width) - contentHeight: Math.max(flickable.height,webView.height) - pressDelay: 100 - - WebView { - id: webView - transformOrigin: Item.TopLeft - smooth: false // We don't want smooth scaling, since we only scale during (fast) transitions - url: "test.html" - preferredWidth: flickable.width - preferredHeight: flickable.height - contentsScale: 1 - onContentsSizeChanged: { - // zoom out - contentsScale = Math.min(1,flickable.width / contentsSize.width) - } - } - - Rectangle { - id: button - width: 50; height: 50; color: "red" - MouseArea { - anchors.fill: parent - onPressed: button.color = "blue" - onReleased: button.color = "green" - } - } -} +import QtQuick 1.0 +import QtWebKit 1.0 + +Flickable { + id: flickable + width: 320 + height: 200 + contentWidth: Math.max(flickable.width,webView.width) + contentHeight: Math.max(flickable.height,webView.height) + pressDelay: 100 + + WebView { + id: webView + transformOrigin: Item.TopLeft + smooth: false // We don't want smooth scaling, since we only scale during (fast) transitions + url: "test.html" + preferredWidth: flickable.width + preferredHeight: flickable.height + contentsScale: 1 + onContentsSizeChanged: { + // zoom out + contentsScale = Math.min(1,flickable.width / contentsSize.width) + } + } + + Rectangle { + id: button + width: 50; height: 50; color: "red" + MouseArea { + anchors.fill: parent + onPressed: button.color = "blue" + onReleased: button.color = "green" + } + } +} -- cgit v0.12 From 72fae4bd1bdf5a56632f8ca638f7d1165f6fe1ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 25 Nov 2010 11:05:04 +0100 Subject: Fix QFileDialog autotest Test expects to see a directory in SRCDIR. Copying the resources directory from QAbstractFileEngine autotest shouldn't impact the git repository and serves our purposes well :-) Reviewed-by: Olivier Goffart --- tests/auto/qfiledialog/resources/file.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 tests/auto/qfiledialog/resources/file.txt diff --git a/tests/auto/qfiledialog/resources/file.txt b/tests/auto/qfiledialog/resources/file.txt new file mode 100644 index 0000000..8a03e0e --- /dev/null +++ b/tests/auto/qfiledialog/resources/file.txt @@ -0,0 +1 @@ +This is a simple text file. -- cgit v0.12 From 83c91bb021e9adf86870c498641e329ab7f786c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 25 Nov 2010 11:23:10 +0100 Subject: Fix QFile::link unit test Absolute path for the link target can contain "../" elements and so needs to be cleaned. Really depends on the definition for SRCDIR. Reviewed-by: Prasanth Ullattil --- tests/auto/qfile/tst_qfile.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index dbd4302..ba9a8bf 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -1296,22 +1296,28 @@ void tst_QFile::link() QSKIP("Symbian does not support links", SkipAll); #endif QFile::remove("myLink.lnk"); + QFileInfo info1(SRCDIR "tst_qfile.cpp"); + QString referenceTarget = QDir::cleanPath(info1.absoluteFilePath()); + QVERIFY(QFile::link(SRCDIR "tst_qfile.cpp", "myLink.lnk")); + QFileInfo info2("myLink.lnk"); QVERIFY(info2.isSymLink()); - QCOMPARE(info2.symLinkTarget(), info1.absoluteFilePath()); + QCOMPARE(info2.symLinkTarget(), referenceTarget); QFile link("myLink.lnk"); QVERIFY(link.open(QIODevice::ReadOnly)); - QCOMPARE(link.symLinkTarget(), info1.absoluteFilePath()); + QCOMPARE(link.symLinkTarget(), referenceTarget); link.close(); - QCOMPARE(QFile::symLinkTarget("myLink.lnk"), info1.absoluteFilePath()); + + QCOMPARE(QFile::symLinkTarget("myLink.lnk"), referenceTarget); #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) QString wd = getWorkingDirectoryForLink(info2.absoluteFilePath()); - QCOMPARE(QDir::fromNativeSeparators(wd), info1.absolutePath()); + QCOMPARE(QDir::fromNativeSeparators(wd), referenceTarget); #endif + QVERIFY(QFile::remove(info2.absoluteFilePath())); } -- cgit v0.12 From c7f1fdbe9d1c7387b3a72624b428a1d0f19d5b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 25 Nov 2010 17:50:09 +0100 Subject: Flagging some more tests as parallelizable These tests have no GUI nor do they depend on network, so let's see what breaks if they're parallelized :-) Reviewed-by: Olivier Goffart --- tests/auto/qdir/qdir.pro | 1 + tests/auto/qfile/largefile/largefile.pro | 2 ++ tests/auto/qfile/qfile.pro | 1 + tests/auto/qfileinfo/qfileinfo.pro | 2 ++ tests/auto/qfilesystementry/qfilesystementry.pro | 1 + tests/auto/qfilesystemwatcher/qfilesystemwatcher.pro | 2 ++ tests/auto/qsettings/qsettings.pro | 2 ++ tests/auto/qtemporaryfile/qtemporaryfile.pro | 2 ++ 8 files changed, 13 insertions(+) diff --git a/tests/auto/qdir/qdir.pro b/tests/auto/qdir/qdir.pro index 33aee4b..55fd031 100644 --- a/tests/auto/qdir/qdir.pro +++ b/tests/auto/qdir/qdir.pro @@ -21,3 +21,4 @@ wince* { DEFINES += SRCDIR=\\\"$$PWD/\\\" } +CONFIG += parallel_test diff --git a/tests/auto/qfile/largefile/largefile.pro b/tests/auto/qfile/largefile/largefile.pro index d67cb46..6407cb6 100644 --- a/tests/auto/qfile/largefile/largefile.pro +++ b/tests/auto/qfile/largefile/largefile.pro @@ -4,3 +4,5 @@ QT = core SOURCES += tst_largefile.cpp wince*: SOURCES += $$QT_SOURCE_TREE/src/corelib/kernel/qfunctions_wince.cpp + +CONFIG += parallel_test diff --git a/tests/auto/qfile/qfile.pro b/tests/auto/qfile/qfile.pro index 727f660..f41d327 100644 --- a/tests/auto/qfile/qfile.pro +++ b/tests/auto/qfile/qfile.pro @@ -7,3 +7,4 @@ wince*|symbian:{ !symbian:SUBDIRS += largefile +CONFIG += parallel_test diff --git a/tests/auto/qfileinfo/qfileinfo.pro b/tests/auto/qfileinfo/qfileinfo.pro index f3622da..b35b1e0 100644 --- a/tests/auto/qfileinfo/qfileinfo.pro +++ b/tests/auto/qfileinfo/qfileinfo.pro @@ -31,3 +31,5 @@ wince* { } contains(QT_CONFIG, qt3support): QT += qt3support + +CONFIG += parallel_test diff --git a/tests/auto/qfilesystementry/qfilesystementry.pro b/tests/auto/qfilesystementry/qfilesystementry.pro index 9f75388..b9b43e6 100644 --- a/tests/auto/qfilesystementry/qfilesystementry.pro +++ b/tests/auto/qfilesystementry/qfilesystementry.pro @@ -5,3 +5,4 @@ SOURCES += tst_qfilesystementry.cpp \ HEADERS += ../../../src/corelib/io/qfilesystementry_p.h QT = core +CONFIG += parallel_test diff --git a/tests/auto/qfilesystemwatcher/qfilesystemwatcher.pro b/tests/auto/qfilesystemwatcher/qfilesystemwatcher.pro index 8b8616a..75e85a0 100644 --- a/tests/auto/qfilesystemwatcher/qfilesystemwatcher.pro +++ b/tests/auto/qfilesystemwatcher/qfilesystemwatcher.pro @@ -1,3 +1,5 @@ load(qttest_p4) SOURCES += tst_qfilesystemwatcher.cpp QT = core + +CONFIG += parallel_test diff --git a/tests/auto/qsettings/qsettings.pro b/tests/auto/qsettings/qsettings.pro index 19513b3..fe104df 100644 --- a/tests/auto/qsettings/qsettings.pro +++ b/tests/auto/qsettings/qsettings.pro @@ -6,3 +6,5 @@ contains(QT_CONFIG, qt3support):QT += qt3support CONFIG -= debug CONFIG += release win32-msvc*:LIBS += advapi32.lib + +CONFIG += parallel_test diff --git a/tests/auto/qtemporaryfile/qtemporaryfile.pro b/tests/auto/qtemporaryfile/qtemporaryfile.pro index 543c143..64a043b 100644 --- a/tests/auto/qtemporaryfile/qtemporaryfile.pro +++ b/tests/auto/qtemporaryfile/qtemporaryfile.pro @@ -10,3 +10,5 @@ symbian { }else { DEFINES += SRCDIR=\\\"$$PWD/\\\" } + +CONFIG += parallel_test -- cgit v0.12 From 3fe96820ea6830cb76793602f9f51fb961e70976 Mon Sep 17 00:00:00 2001 From: Geir Vattekar Date: Fri, 26 Nov 2010 08:41:37 +0100 Subject: Doc: Removed two warnings from QDirIterator docs Task-number: QTBUG-15492 --- src/corelib/io/qdiriterator.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/corelib/io/qdiriterator.cpp b/src/corelib/io/qdiriterator.cpp index fd4b9c1..dbb333f 100644 --- a/src/corelib/io/qdiriterator.cpp +++ b/src/corelib/io/qdiriterator.cpp @@ -389,9 +389,6 @@ QDirIterator::QDirIterator(const QDir &dir, IteratorFlags flags) \note To list symlinks that point to non existing files, QDir::System must be passed to the flags. - \warning This constructor expects \a flags to be left at its default value. Use - the constructors that do not take the \a filters argument instead. - \sa hasNext(), next(), IteratorFlags */ QDirIterator::QDirIterator(const QString &path, QDir::Filters filters, IteratorFlags flags) @@ -429,9 +426,6 @@ QDirIterator::QDirIterator(const QString &path, IteratorFlags flags) \note To list symlinks that point to non existing files, QDir::System must be passed to the flags. - \warning This constructor expects \c flags to be left at its default value. Use the - constructors that do not take the \a filters argument instead. - \sa hasNext(), next(), IteratorFlags */ QDirIterator::QDirIterator(const QString &path, const QStringList &nameFilters, -- cgit v0.12 From 5f70c3d9004765f8f86e3472cf59cfa7677f9163 Mon Sep 17 00:00:00 2001 From: Geir Vattekar Date: Fri, 26 Nov 2010 09:29:26 +0100 Subject: Doc:Fix paths in styleplugin/echoplugin .pro files Task-number: QTBUG-14169 --- examples/tools/echoplugin/echowindow/echowindow.pro | 4 ++-- examples/tools/styleplugin/plugin/plugin.pro | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/tools/echoplugin/echowindow/echowindow.pro b/examples/tools/echoplugin/echowindow/echowindow.pro index bdf8c41..d56961c 100644 --- a/examples/tools/echoplugin/echowindow/echowindow.pro +++ b/examples/tools/echoplugin/echowindow/echowindow.pro @@ -5,8 +5,8 @@ SOURCES = echowindow.cpp \ TARGET = echoplugin win32 { - debug:DESTDIR = ../debug/ - release:DESTDIR = ../release/ + CONFIG(debug, release|debug):DESTDIR = ../debug/ + CONFIG(release, release|debug):DESTDIR = ../release/ } else { DESTDIR = ../ } diff --git a/examples/tools/styleplugin/plugin/plugin.pro b/examples/tools/styleplugin/plugin/plugin.pro index 7cb0c97..54e266c 100644 --- a/examples/tools/styleplugin/plugin/plugin.pro +++ b/examples/tools/styleplugin/plugin/plugin.pro @@ -8,8 +8,8 @@ SOURCES = simplestyle.cpp \ TARGET = simplestyleplugin #! [0] win32 { - debug:DESTDIR = ../debug/styles/ - release:DESTDIR = ../release/styles/ + CONFIG(debug, release|debug):DESTDIR = ../debug/styles/ + CONFIG(release, release|debug):DESTDIR = ../release/styles/ } else { DESTDIR = ../styles/ } -- cgit v0.12 From 0b728313dbca3ca6ea54bb8f533dbe70028f96e0 Mon Sep 17 00:00:00 2001 From: Karim Pinter Date: Fri, 26 Nov 2010 10:38:45 +0200 Subject: Adding warning to QMenu documentation If the QMenu is made visible using show() it causes problems because the scrolling and layout is not set properly. The warning suggests to use exec() or popup() instead. Task-number: QTBUG-12119 --- src/gui/widgets/qmenu.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index 4bea6de..551e19e 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1319,6 +1319,9 @@ void QMenu::initStyleOption(QStyleOptionMenuItem *option, const QAction *action) Conversely, actions can be added to widgets with the addAction(), addActions() and insertAction() functions. + + \warning To make QMenu visible on the screen, exec() or popup() should be + used instead of show(). \section1 QMenu on Qt for Windows CE -- cgit v0.12 From b0fb70cd74ef1453a36169088e6f283206818d78 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Fri, 26 Nov 2010 16:32:32 +0100 Subject: Fix link() autotest on Windows This was missed from the previous commit. Reviewed-by: Joao --- tests/auto/qfile/tst_qfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index ba9a8bf..1bbf230 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -1315,7 +1315,7 @@ void tst_QFile::link() #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) QString wd = getWorkingDirectoryForLink(info2.absoluteFilePath()); - QCOMPARE(QDir::fromNativeSeparators(wd), referenceTarget); + QCOMPARE(QDir::fromNativeSeparators(wd), QDir::cleanPath(info1.absolutePath())); #endif QVERIFY(QFile::remove(info2.absoluteFilePath())); -- cgit v0.12 From 87291d518beb131b5b80540d46d53b54c2366a9c Mon Sep 17 00:00:00 2001 From: Karim Pinter Date: Mon, 29 Nov 2010 14:21:23 +0200 Subject: Removes the reseting of the QMenu offset. On s60 when the qmenu is opened on the second time, it restores the position of the last activated menu, so there is no need to reset the offset when the popup() is called again. Task-number: QTBUG-9505 --- src/gui/widgets/qmenu.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index 4bea6de..d9233f5 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1795,10 +1795,14 @@ QSize QMenu::sizeHint() const void QMenu::popup(const QPoint &p, QAction *atAction) { Q_D(QMenu); +#ifndef Q_WS_S60 + //on S60 opens the menu at the same position it was activated last time + //there is no need to reset the offset fix for QTBUG-9505 if (d->scroll) { // reset scroll state from last popup d->scroll->scrollOffset = 0; d->scroll->scrollFlags = QMenuPrivate::QMenuScroller::ScrollNone; } +#endif d->tearoffHighlighted = 0; d->motions = 0; d->doChildEffects = true; -- cgit v0.12 From 0b8a04253e4842465427b3fcf6918a220905db0c Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Mon, 29 Nov 2010 15:20:43 +0100 Subject: Fix documentation for QML extended types Fixes the documentation for QML extended types, one should use 'qmlRegisterExtendedType' instead of 'qmlRegisterType'. Reviewed-by: Leonardo Sobral Cunha --- doc/src/declarative/extending.qdoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc index 5c1b977..1e6e301 100644 --- a/doc/src/declarative/extending.qdoc +++ b/doc/src/declarative/extending.qdoc @@ -594,10 +594,10 @@ the appropriate property on the extension object is used instead. When an extended type is installed, one of the \code template -int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName) +int qmlRegisterExtendedType(const char *uri, int versionMajor, int versionMinor, const char *qmlName) template -int qmlRegisterType() +int qmlRegisterExtendedType() \endcode functions should be used instead of the regular \c qmlRegisterType() variations. The arguments are identical to the corresponding non-extension registration functions, -- cgit v0.12 From 16c3df54960b776f35f59288b888e829e7e81002 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 30 Nov 2010 12:09:48 +0100 Subject: Fixed incorrect angle values in the RotationAnimation description. Task-number: QTBUG-15696 --- src/declarative/util/qdeclarativeanimation.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp index f2e6217..dd7e5fd 100644 --- a/src/declarative/util/qdeclarativeanimation.cpp +++ b/src/declarative/util/qdeclarativeanimation.cpp @@ -1324,7 +1324,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t) /*! \qmlclass RotationAnimation QDeclarativeRotationAnimation - \ingroup qml-animation-transition + \ingroup qml-animation-transition \since 4.7 \inherits PropertyAnimation \brief The RotationAnimation element animates changes in rotation values. @@ -1333,8 +1333,8 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t) over the direction of rotation during an animation. By default, it rotates in the direction - of the numerical change; a rotation from 0 to 240 will rotate 220 degrees - clockwise, while a rotation from 240 to 0 will rotate 220 degrees + of the numerical change; a rotation from 0 to 240 will rotate 240 degrees + clockwise, while a rotation from 240 to 0 will rotate 240 degrees counterclockwise. The \l direction property can be set to specify the direction in which the rotation should occur. @@ -1342,7 +1342,7 @@ void QDeclarativeVector3dAnimation::setTo(QVector3D t) between states via the shortest path: \snippet doc/src/snippets/declarative/rotationanimation.qml 0 - + Notice the RotationAnimation did not need to set a \l target value. As a convenience, when used in a transition, RotationAnimation will rotate all properties named "rotation" or "angle". You can override this by providing -- cgit v0.12 From ec1526a73fef7d95268437204fa8534085940fbc Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 23 Nov 2010 14:30:51 +0000 Subject: Fix compile error on symbian Symbian doesn't have file owners, the resolveUserName / resolveGroupName functions have been correctly moved to unix only scope which caused a compile error. This change makes the QFSFileEngine::owner[Id] return -2 / QString() for symbian directly. Reviewed-by: Markus Goetz --- src/corelib/io/qfsfileengine_unix.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 035e78f..55388e6 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -861,9 +861,13 @@ uint QFSFileEngine::ownerId(FileOwner own) const QString QFSFileEngine::owner(FileOwner own) const { +#ifndef Q_OS_SYMBIAN if (own == OwnerUser) return QFileSystemEngine::resolveUserName(ownerId(own)); return QFileSystemEngine::resolveGroupName(ownerId(own)); +#else + return QString(); +#endif } bool QFSFileEngine::setPermissions(uint perms) -- cgit v0.12 From 9120864d7263cd1ed288770314e387de95d14bf3 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 29 Nov 2010 13:48:03 +0000 Subject: Update with def files merged from master This set of def files is good to merge back, if the merge is done soon. Reviewed-by: Trust Me --- src/s60installs/bwins/QtCoreu.def | 105 +++++++++++++++++++++ src/s60installs/bwins/QtGuiu.def | 156 +++++++++++++++++++++++++++++++- src/s60installs/eabi/QtCoreu.def | 80 ++++++++++++++++ src/s60installs/eabi/QtDeclarativeu.def | 4 +- src/s60installs/eabi/QtGuiu.def | 130 +++++++++++++++++++++++++- 5 files changed, 468 insertions(+), 7 deletions(-) diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def index b0bf2cc..a3c7fbb 100644 --- a/src/s60installs/bwins/QtCoreu.def +++ b/src/s60installs/bwins/QtCoreu.def @@ -4486,4 +4486,109 @@ EXPORTS ?objectNameChanged@QAbstractDeclarativeData@@2P6AXPAV1@PAVQObject@@@ZA @ 4485 NONAME ; void (*QAbstractDeclarativeData::objectNameChanged)(class QAbstractDeclarativeData *, class QObject *) ?queueDeferredActiveObjectsCompletion@QEventDispatcherSymbian@@QAEXXZ @ 4486 NONAME ; void QEventDispatcherSymbian::queueDeferredActiveObjectsCompletion(void) ?reactivateDeferredActiveObjects@QEventDispatcherSymbian@@UAEXXZ @ 4487 NONAME ; void QEventDispatcherSymbian::reactivateDeferredActiveObjects(void) + ??0QAnimationDriver@@IAE@AAVQAnimationDriverPrivate@@PAVQObject@@@Z @ 4488 NONAME ; QAnimationDriver::QAnimationDriver(class QAnimationDriverPrivate &, class QObject *) + ??0QAnimationDriver@@QAE@PAVQObject@@@Z @ 4489 NONAME ; QAnimationDriver::QAnimationDriver(class QObject *) + ??0QAnimationDriverPrivate@@QAE@XZ @ 4490 NONAME ; QAnimationDriverPrivate::QAnimationDriverPrivate(void) + ??0QCoreApplication@@QAE@AAHPAPADH@Z @ 4491 NONAME ; QCoreApplication::QCoreApplication(int &, char * *, int) + ??0QCoreApplicationPrivate@@QAE@AAHPAPADI@Z @ 4492 NONAME ; QCoreApplicationPrivate::QCoreApplicationPrivate(int &, char * *, unsigned int) + ??0QFileInfo@@QAE@PAVQFileInfoPrivate@@@Z @ 4493 NONAME ; QFileInfo::QFileInfo(class QFileInfoPrivate *) + ??0QSystemError@@QAE@HW4ErrorScope@0@@Z @ 4494 NONAME ; QSystemError::QSystemError(int, enum QSystemError::ErrorScope) + ??0QSystemError@@QAE@XZ @ 4495 NONAME ; QSystemError::QSystemError(void) + ??0QUnifiedTimer@@AAE@XZ @ 4496 NONAME ; QUnifiedTimer::QUnifiedTimer(void) + ??0QXmlStreamAttributes@@QAE@XZ @ 4497 NONAME ; QXmlStreamAttributes::QXmlStreamAttributes(void) + ??1QAnimationDriver@@UAE@XZ @ 4498 NONAME ; QAnimationDriver::~QAnimationDriver(void) + ??1QAnimationDriverPrivate@@UAE@XZ @ 4499 NONAME ; QAnimationDriverPrivate::~QAnimationDriverPrivate(void) + ??1QUnifiedTimer@@UAE@XZ @ 4500 NONAME ; QUnifiedTimer::~QUnifiedTimer(void) + ??_EQAnimationDriver@@UAE@I@Z @ 4501 NONAME ; QAnimationDriver::~QAnimationDriver(unsigned int) + ??_EQAnimationDriverPrivate@@UAE@I@Z @ 4502 NONAME ; QAnimationDriverPrivate::~QAnimationDriverPrivate(unsigned int) + ??_EQUnifiedTimer@@UAE@I@Z @ 4503 NONAME ; QUnifiedTimer::~QUnifiedTimer(unsigned int) + ?advance@QAnimationDriver@@QAEXXZ @ 4504 NONAME ; void QAnimationDriver::advance(void) + ?cast@QMetaObject@@QBEPBVQObject@@PBV2@@Z @ 4505 NONAME ; class QObject const * QMetaObject::cast(class QObject const *) const + ?closestPauseAnimationTimeToFinish@QUnifiedTimer@@AAEHXZ @ 4506 NONAME ; int QUnifiedTimer::closestPauseAnimationTimeToFinish(void) + ?connect@QObject@@SA_NPBV1@ABVQMetaMethod@@01W4ConnectionType@Qt@@@Z @ 4507 NONAME ; bool QObject::connect(class QObject const *, class QMetaMethod const &, class QObject const *, class QMetaMethod const &, enum Qt::ConnectionType) + ?contains@QString@@QBE?AVQBool@@ABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4508 NONAME ; class QBool QString::contains(class QStringRef const &, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@ABV1@W4CaseSensitivity@Qt@@@Z @ 4509 NONAME ; class QBool QStringRef::contains(class QStringRef const &, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@ABVQString@@W4CaseSensitivity@Qt@@@Z @ 4510 NONAME ; class QBool QStringRef::contains(class QString const &, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@VQChar@@W4CaseSensitivity@Qt@@@Z @ 4511 NONAME ; class QBool QStringRef::contains(class QChar, enum Qt::CaseSensitivity) const + ?contains@QStringRef@@QBE?AVQBool@@VQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 4512 NONAME ; class QBool QStringRef::contains(class QLatin1String, enum Qt::CaseSensitivity) const + ?count@QString@@QBEHABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4513 NONAME ; int QString::count(class QStringRef const &, enum Qt::CaseSensitivity) const + ?count@QStringRef@@QBEHABV1@W4CaseSensitivity@Qt@@@Z @ 4514 NONAME ; int QStringRef::count(class QStringRef const &, enum Qt::CaseSensitivity) const + ?count@QStringRef@@QBEHABVQString@@W4CaseSensitivity@Qt@@@Z @ 4515 NONAME ; int QStringRef::count(class QString const &, enum Qt::CaseSensitivity) const + ?count@QStringRef@@QBEHVQChar@@W4CaseSensitivity@Qt@@@Z @ 4516 NONAME ; int QStringRef::count(class QChar, enum Qt::CaseSensitivity) const + ?d_func@QAnimationDriver@@AAEPAVQAnimationDriverPrivate@@XZ @ 4517 NONAME ; class QAnimationDriverPrivate * QAnimationDriver::d_func(void) + ?d_func@QAnimationDriver@@ABEPBVQAnimationDriverPrivate@@XZ @ 4518 NONAME ; class QAnimationDriverPrivate const * QAnimationDriver::d_func(void) const + ?disconnect@QObject@@SA_NPBV1@ABVQMetaMethod@@01@Z @ 4519 NONAME ; bool QObject::disconnect(class QObject const *, class QMetaMethod const &, class QObject const *, class QMetaMethod const &) + ?endsWith@QString@@QBE_NABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4520 NONAME ; bool QString::endsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NABV1@W4CaseSensitivity@Qt@@@Z @ 4521 NONAME ; bool QStringRef::endsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NABVQString@@W4CaseSensitivity@Qt@@@Z @ 4522 NONAME ; bool QStringRef::endsWith(class QString const &, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NVQChar@@W4CaseSensitivity@Qt@@@Z @ 4523 NONAME ; bool QStringRef::endsWith(class QChar, enum Qt::CaseSensitivity) const + ?endsWith@QStringRef@@QBE_NVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 4524 NONAME ; bool QStringRef::endsWith(class QLatin1String, enum Qt::CaseSensitivity) const + ?ensureTimerUpdate@QUnifiedTimer@@SAXXZ @ 4525 NONAME ; void QUnifiedTimer::ensureTimerUpdate(void) + ?error@QSystemError@@QAEHXZ @ 4526 NONAME ; int QSystemError::error(void) + ?getStaticMetaObject@QAnimationDriver@@SAABUQMetaObject@@XZ @ 4527 NONAME ; struct QMetaObject const & QAnimationDriver::getStaticMetaObject(void) + ?indexOf@QString@@QBEHABVQStringRef@@HW4CaseSensitivity@Qt@@@Z @ 4528 NONAME ; int QString::indexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHABV1@HW4CaseSensitivity@Qt@@@Z @ 4529 NONAME ; int QStringRef::indexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHABVQString@@HW4CaseSensitivity@Qt@@@Z @ 4530 NONAME ; int QStringRef::indexOf(class QString const &, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHVQChar@@HW4CaseSensitivity@Qt@@@Z @ 4531 NONAME ; int QStringRef::indexOf(class QChar, int, enum Qt::CaseSensitivity) const + ?indexOf@QStringRef@@QBEHVQLatin1String@@HW4CaseSensitivity@Qt@@@Z @ 4532 NONAME ; int QStringRef::indexOf(class QLatin1String, int, enum Qt::CaseSensitivity) const + ?install@QAnimationDriver@@QAEXXZ @ 4533 NONAME ; void QAnimationDriver::install(void) + ?installAnimationDriver@QUnifiedTimer@@QAEXPAVQAnimationDriver@@@Z @ 4534 NONAME ; void QUnifiedTimer::installAnimationDriver(class QAnimationDriver *) + ?instance@QUnifiedTimer@@SAPAV1@_N@Z @ 4535 NONAME ; class QUnifiedTimer * QUnifiedTimer::instance(bool) + ?isLocalFile@QUrl@@QBE_NXZ @ 4536 NONAME ; bool QUrl::isLocalFile(void) const + ?isRunning@QAnimationDriver@@QBE_NXZ @ 4537 NONAME ; bool QAnimationDriver::isRunning(void) const + ?lastIndexOf@QString@@QBEHABVQStringRef@@HW4CaseSensitivity@Qt@@@Z @ 4538 NONAME ; int QString::lastIndexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHABV1@HW4CaseSensitivity@Qt@@@Z @ 4539 NONAME ; int QStringRef::lastIndexOf(class QStringRef const &, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHABVQString@@HW4CaseSensitivity@Qt@@@Z @ 4540 NONAME ; int QStringRef::lastIndexOf(class QString const &, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHVQChar@@HW4CaseSensitivity@Qt@@@Z @ 4541 NONAME ; int QStringRef::lastIndexOf(class QChar, int, enum Qt::CaseSensitivity) const + ?lastIndexOf@QStringRef@@QBEHVQLatin1String@@HW4CaseSensitivity@Qt@@@Z @ 4542 NONAME ; int QStringRef::lastIndexOf(class QLatin1String, int, enum Qt::CaseSensitivity) const + ?lockInline@QMutex@@QAEXXZ @ 4543 NONAME ; void QMutex::lockInline(void) + ?lockInternal@QMutex@@AAEXXZ @ 4544 NONAME ; void QMutex::lockInternal(void) + ?metaObject@QAnimationDriver@@UBEPBUQMetaObject@@XZ @ 4545 NONAME ; struct QMetaObject const * QAnimationDriver::metaObject(void) const + ?nativeKey@QSharedMemory@@QBE?AVQString@@XZ @ 4546 NONAME ; class QString QSharedMemory::nativeKey(void) const + ?qt_metacall@QAnimationDriver@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4547 NONAME ; int QAnimationDriver::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacast@QAnimationDriver@@UAEPAXPBD@Z @ 4548 NONAME ; void * QAnimationDriver::qt_metacast(char const *) + ?registerAnimation@QUnifiedTimer@@SAXPAVQAbstractAnimation@@_N@Z @ 4549 NONAME ; void QUnifiedTimer::registerAnimation(class QAbstractAnimation *, bool) + ?registerRunningAnimation@QUnifiedTimer@@AAEXPAVQAbstractAnimation@@@Z @ 4550 NONAME ; void QUnifiedTimer::registerRunningAnimation(class QAbstractAnimation *) + ?restartAnimationTimer@QUnifiedTimer@@QAEXXZ @ 4551 NONAME ; void QUnifiedTimer::restartAnimationTimer(void) + ?scope@QSystemError@@QAE?AW4ErrorScope@1@XZ @ 4552 NONAME ; enum QSystemError::ErrorScope QSystemError::scope(void) + ?senderSignalIndex@QObject@@IBEHXZ @ 4553 NONAME ; int QObject::senderSignalIndex(void) const + ?setConsistentTiming@QUnifiedTimer@@QAEX_N@Z @ 4554 NONAME ; void QUnifiedTimer::setConsistentTiming(bool) + ?setNativeKey@QSharedMemory@@QAEXABVQString@@@Z @ 4555 NONAME ; void QSharedMemory::setNativeKey(class QString const &) + ?setSlowModeEnabled@QUnifiedTimer@@QAEX_N@Z @ 4556 NONAME ; void QUnifiedTimer::setSlowModeEnabled(bool) + ?setSlowdownFactor@QUnifiedTimer@@QAEXM@Z @ 4557 NONAME ; void QUnifiedTimer::setSlowdownFactor(float) + ?setTimingInterval@QUnifiedTimer@@QAEXH@Z @ 4558 NONAME ; void QUnifiedTimer::setTimingInterval(int) + ?start@QAnimationDriver@@AAEXXZ @ 4559 NONAME ; void QAnimationDriver::start(void) + ?startsWith@QString@@QBE_NABVQStringRef@@W4CaseSensitivity@Qt@@@Z @ 4560 NONAME ; bool QString::startsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NABV1@W4CaseSensitivity@Qt@@@Z @ 4561 NONAME ; bool QStringRef::startsWith(class QStringRef const &, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NABVQString@@W4CaseSensitivity@Qt@@@Z @ 4562 NONAME ; bool QStringRef::startsWith(class QString const &, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NVQChar@@W4CaseSensitivity@Qt@@@Z @ 4563 NONAME ; bool QStringRef::startsWith(class QChar, enum Qt::CaseSensitivity) const + ?startsWith@QStringRef@@QBE_NVQLatin1String@@W4CaseSensitivity@Qt@@@Z @ 4564 NONAME ; bool QStringRef::startsWith(class QLatin1String, enum Qt::CaseSensitivity) const + ?stop@QAnimationDriver@@AAEXXZ @ 4565 NONAME ; void QAnimationDriver::stop(void) + ?swap@QBitArray@@QAEXAAV1@@Z @ 4566 NONAME ; void QBitArray::swap(class QBitArray &) + ?swap@QByteArray@@QAEXAAV1@@Z @ 4567 NONAME ; void QByteArray::swap(class QByteArray &) + ?swap@QRegExp@@QAEXAAV1@@Z @ 4568 NONAME ; void QRegExp::swap(class QRegExp &) + ?swap@QString@@QAEXAAV1@@Z @ 4569 NONAME ; void QString::swap(class QString &) + ?swap@QUrl@@QAEXAAV1@@Z @ 4570 NONAME ; void QUrl::swap(class QUrl &) + ?swap@QVariant@@QAEXAAV1@@Z @ 4571 NONAME ; void QVariant::swap(class QVariant &) + ?timerEvent@QUnifiedTimer@@MAEXPAVQTimerEvent@@@Z @ 4572 NONAME ; void QUnifiedTimer::timerEvent(class QTimerEvent *) + ?toAscii@QStringRef@@QBE?AVQByteArray@@XZ @ 4573 NONAME ; class QByteArray QStringRef::toAscii(void) const + ?toLatin1@QStringRef@@QBE?AVQByteArray@@XZ @ 4574 NONAME ; class QByteArray QStringRef::toLatin1(void) const + ?toLocal8Bit@QStringRef@@QBE?AVQByteArray@@XZ @ 4575 NONAME ; class QByteArray QStringRef::toLocal8Bit(void) const + ?toString@QSystemError@@QAE?AVQString@@XZ @ 4576 NONAME ; class QString QSystemError::toString(void) + ?toUcs4@QStringRef@@QBE?AV?$QVector@I@@XZ @ 4577 NONAME ; class QVector QStringRef::toUcs4(void) const + ?toUtf8@QStringRef@@QBE?AVQByteArray@@XZ @ 4578 NONAME ; class QByteArray QStringRef::toUtf8(void) const + ?tr@QAnimationDriver@@SA?AVQString@@PBD0@Z @ 4579 NONAME ; class QString QAnimationDriver::tr(char const *, char const *) + ?tr@QAnimationDriver@@SA?AVQString@@PBD0H@Z @ 4580 NONAME ; class QString QAnimationDriver::tr(char const *, char const *, int) + ?trUtf8@QAnimationDriver@@SA?AVQString@@PBD0@Z @ 4581 NONAME ; class QString QAnimationDriver::trUtf8(char const *, char const *) + ?trUtf8@QAnimationDriver@@SA?AVQString@@PBD0H@Z @ 4582 NONAME ; class QString QAnimationDriver::trUtf8(char const *, char const *, int) + ?tryLockInline@QMutex@@QAE_NXZ @ 4583 NONAME ; bool QMutex::tryLockInline(void) + ?unlockInline@QMutex@@QAEXXZ @ 4584 NONAME ; void QMutex::unlockInline(void) + ?unlockInternal@QMutex@@AAEXXZ @ 4585 NONAME ; void QMutex::unlockInternal(void) + ?unregisterAnimation@QUnifiedTimer@@SAXPAVQAbstractAnimation@@@Z @ 4586 NONAME ; void QUnifiedTimer::unregisterAnimation(class QAbstractAnimation *) + ?unregisterRunningAnimation@QUnifiedTimer@@AAEXPAVQAbstractAnimation@@@Z @ 4587 NONAME ; void QUnifiedTimer::unregisterRunningAnimation(class QAbstractAnimation *) + ?updateAnimationTimer@QUnifiedTimer@@SAXXZ @ 4588 NONAME ; void QUnifiedTimer::updateAnimationTimer(void) + ?updateAnimationsTime@QUnifiedTimer@@QAEXXZ @ 4589 NONAME ; void QUnifiedTimer::updateAnimationsTime(void) + ?waitForDone@QThreadPool@@QAE_NH@Z @ 4590 NONAME ; bool QThreadPool::waitForDone(int) + ?app_compile_version@QCoreApplicationPrivate@@2HA @ 4591 NONAME ; int QCoreApplicationPrivate::app_compile_version + ?staticMetaObject@QAnimationDriver@@2UQMetaObject@@B @ 4592 NONAME ; struct QMetaObject const QAnimationDriver::staticMetaObject diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index b4a5dfc..8d8f500 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -464,7 +464,7 @@ EXPORTS ??0QRadioButton@@QAE@ABVQString@@PAVQWidget@@@Z @ 463 NONAME ; QRadioButton::QRadioButton(class QString const &, class QWidget *) ??0QRadioButton@@QAE@PAVQWidget@@@Z @ 464 NONAME ; QRadioButton::QRadioButton(class QWidget *) ??0QRasterPixmapData@@QAE@W4PixelType@QPixmapData@@@Z @ 465 NONAME ; QRasterPixmapData::QRasterPixmapData(enum QPixmapData::PixelType) - ??0QRasterWindowSurface@@QAE@PAVQWidget@@@Z @ 466 NONAME ; QRasterWindowSurface::QRasterWindowSurface(class QWidget *) + ??0QRasterWindowSurface@@QAE@PAVQWidget@@@Z @ 466 NONAME ABSENT ; QRasterWindowSurface::QRasterWindowSurface(class QWidget *) ??0QRegExpValidator@@QAE@ABVQRegExp@@PAVQObject@@@Z @ 467 NONAME ; QRegExpValidator::QRegExpValidator(class QRegExp const &, class QObject *) ??0QRegExpValidator@@QAE@PAVQObject@@@Z @ 468 NONAME ; QRegExpValidator::QRegExpValidator(class QObject *) ??0QRegion@@QAE@ABV0@@Z @ 469 NONAME ; QRegion::QRegion(class QRegion const &) @@ -845,7 +845,7 @@ EXPORTS ??0QWidgetResizeHandler@@QAE@PAVQWidget@@0@Z @ 844 NONAME ; QWidgetResizeHandler::QWidgetResizeHandler(class QWidget *, class QWidget *) ??0QWindowStateChangeEvent@@QAE@V?$QFlags@W4WindowState@Qt@@@@@Z @ 845 NONAME ; QWindowStateChangeEvent::QWindowStateChangeEvent(class QFlags) ??0QWindowStateChangeEvent@@QAE@V?$QFlags@W4WindowState@Qt@@@@_N@Z @ 846 NONAME ; QWindowStateChangeEvent::QWindowStateChangeEvent(class QFlags, bool) - ??0QWindowSurface@@QAE@PAVQWidget@@@Z @ 847 NONAME ; QWindowSurface::QWindowSurface(class QWidget *) + ??0QWindowSurface@@QAE@PAVQWidget@@@Z @ 847 NONAME ABSENT ; QWindowSurface::QWindowSurface(class QWidget *) ??0QWindowsStyle@@IAE@AAVQWindowsStylePrivate@@@Z @ 848 NONAME ; QWindowsStyle::QWindowsStyle(class QWindowsStylePrivate &) ??0QWindowsStyle@@QAE@XZ @ 849 NONAME ; QWindowsStyle::QWindowsStyle(void) ??0QWizard@@QAE@PAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z @ 850 NONAME ; QWizard::QWizard(class QWidget *, class QFlags) @@ -12898,4 +12898,156 @@ EXPORTS ?qmljsDebugArgumentsString@QApplicationPrivate@@SA?AVQString@@XZ @ 12897 NONAME ; class QString QApplicationPrivate::qmljsDebugArgumentsString(void) ?convertToPostscriptFontFamilyName@QFontEngine@@SA?AVQByteArray@@ABV2@@Z @ 12898 NONAME ; class QByteArray QFontEngine::convertToPostscriptFontFamilyName(class QByteArray const &) ?lastResortFont@QFont@@QBE?AVQString@@XZ @ 12899 NONAME ; class QString QFont::lastResortFont(void) const + ??0QApplicationPrivate@@QAE@AAHPAPADW4Type@QApplication@@H@Z @ 12900 NONAME ; QApplicationPrivate::QApplicationPrivate(int &, char * *, enum QApplication::Type, int) + ??0QBlittable@@QAE@ABVQSize@@V?$QFlags@W4Capability@QBlittable@@@@@Z @ 12901 NONAME ; QBlittable::QBlittable(class QSize const &, class QFlags) + ??0QBlittablePixmapData@@QAE@XZ @ 12902 NONAME ; QBlittablePixmapData::QBlittablePixmapData(void) + ??0QBlitterPaintEngine@@QAE@PAVQBlittablePixmapData@@@Z @ 12903 NONAME ; QBlitterPaintEngine::QBlitterPaintEngine(class QBlittablePixmapData *) + ??0QGlyphs@@QAE@ABV0@@Z @ 12904 NONAME ; QGlyphs::QGlyphs(class QGlyphs const &) + ??0QGlyphs@@QAE@XZ @ 12905 NONAME ; QGlyphs::QGlyphs(void) + ??0QRasterWindowSurface@@QAE@PAVQWidget@@_N@Z @ 12906 NONAME ; QRasterWindowSurface::QRasterWindowSurface(class QWidget *, bool) + ??0QStaticTextItem@@QAE@ABV0@@Z @ 12907 NONAME ; QStaticTextItem::QStaticTextItem(class QStaticTextItem const &) + ??0QWindowSurface@@QAE@PAVQWidget@@_N@Z @ 12908 NONAME ; QWindowSurface::QWindowSurface(class QWidget *, bool) + ??1QBlittable@@UAE@XZ @ 12909 NONAME ; QBlittable::~QBlittable(void) + ??1QBlittablePixmapData@@UAE@XZ @ 12910 NONAME ; QBlittablePixmapData::~QBlittablePixmapData(void) + ??1QBlitterPaintEngine@@UAE@XZ @ 12911 NONAME ; QBlitterPaintEngine::~QBlitterPaintEngine(void) + ??1QGlyphs@@QAE@XZ @ 12912 NONAME ; QGlyphs::~QGlyphs(void) + ??4QGlyphs@@QAEAAV0@ABV0@@Z @ 12913 NONAME ; class QGlyphs & QGlyphs::operator=(class QGlyphs const &) + ??4QStaticTextItem@@QAEXABV0@@Z @ 12914 NONAME ; void QStaticTextItem::operator=(class QStaticTextItem const &) + ??6@YA?AVQDebug@@V0@PBVQSymbianEvent@@@Z @ 12915 NONAME ; class QDebug operator<<(class QDebug, class QSymbianEvent const *) + ??8QGlyphs@@QBE_NABV0@@Z @ 12916 NONAME ; bool QGlyphs::operator==(class QGlyphs const &) const + ??9QGlyphs@@QBE_NABV0@@Z @ 12917 NONAME ; bool QGlyphs::operator!=(class QGlyphs const &) const + ??HQGlyphs@@ABE?AV0@ABV0@@Z @ 12918 NONAME ; class QGlyphs QGlyphs::operator+(class QGlyphs const &) const + ??MQItemSelectionRange@@QBE_NABV0@@Z @ 12919 NONAME ; bool QItemSelectionRange::operator<(class QItemSelectionRange const &) const + ??YQGlyphs@@AAEAAV0@ABV0@@Z @ 12920 NONAME ; class QGlyphs & QGlyphs::operator+=(class QGlyphs const &) + ??_EQBlittable@@UAE@I@Z @ 12921 NONAME ; QBlittable::~QBlittable(unsigned int) + ??_EQBlittablePixmapData@@UAE@I@Z @ 12922 NONAME ; QBlittablePixmapData::~QBlittablePixmapData(unsigned int) + ??_EQBlitterPaintEngine@@UAE@I@Z @ 12923 NONAME ; QBlitterPaintEngine::~QBlitterPaintEngine(unsigned int) + ?alphaMapBoundingBox@QFontEngine@@UAE?AUglyph_metrics_t@@IABVQTransform@@W4GlyphFormat@1@@Z @ 12924 NONAME ; struct glyph_metrics_t QFontEngine::alphaMapBoundingBox(unsigned int, class QTransform const &, enum QFontEngine::GlyphFormat) + ?alphaMapForGlyph@QFontEngine@@UAE?AVQImage@@IUQFixed@@@Z @ 12925 NONAME ; class QImage QFontEngine::alphaMapForGlyph(unsigned int, struct QFixed) + ?alphaMapForGlyph@QFontEngine@@UAE?AVQImage@@IUQFixed@@ABVQTransform@@@Z @ 12926 NONAME ; class QImage QFontEngine::alphaMapForGlyph(unsigned int, struct QFixed, class QTransform const &) + ?alphaRGBMapForGlyph@QFontEngine@@UAE?AVQImage@@IUQFixed@@HABVQTransform@@@Z @ 12927 NONAME ; class QImage QFontEngine::alphaRGBMapForGlyph(unsigned int, struct QFixed, int, class QTransform const &) + ?begin@QBlitterPaintEngine@@UAE_NPAVQPaintDevice@@@Z @ 12928 NONAME ; bool QBlitterPaintEngine::begin(class QPaintDevice *) + ?blittable@QBlittablePixmapData@@QBEPAVQBlittable@@XZ @ 12929 NONAME ; class QBlittable * QBlittablePixmapData::blittable(void) const + ?brushChanged@QBlitterPaintEngine@@UAEXXZ @ 12930 NONAME ; void QBlitterPaintEngine::brushChanged(void) + ?brushOriginChanged@QBlitterPaintEngine@@UAEXXZ @ 12931 NONAME ; void QBlitterPaintEngine::brushOriginChanged(void) + ?buddy@QAbstractProxyModel@@UBE?AVQModelIndex@@ABV2@@Z @ 12932 NONAME ; class QModelIndex QAbstractProxyModel::buddy(class QModelIndex const &) const + ?buffer@QBlittablePixmapData@@UAEPAVQImage@@XZ @ 12933 NONAME ; class QImage * QBlittablePixmapData::buffer(void) + ?calculateSubPixelPositionCount@QTextureGlyphCache@@IBEHI@Z @ 12934 NONAME ; int QTextureGlyphCache::calculateSubPixelPositionCount(unsigned int) const + ?canFetchMore@QAbstractProxyModel@@UBE_NABVQModelIndex@@@Z @ 12935 NONAME ; bool QAbstractProxyModel::canFetchMore(class QModelIndex const &) const + ?capabilities@QBlittable@@QBE?AV?$QFlags@W4Capability@QBlittable@@@@XZ @ 12936 NONAME ; class QFlags QBlittable::capabilities(void) const + ?clear@QGlyphs@@QAEXXZ @ 12937 NONAME ; void QGlyphs::clear(void) + ?clip@QBlitterPaintEngine@@QAEPBVQClipData@@XZ @ 12938 NONAME ; class QClipData const * QBlitterPaintEngine::clip(void) + ?clip@QBlitterPaintEngine@@UAEXABVQRect@@W4ClipOperation@Qt@@@Z @ 12939 NONAME ; void QBlitterPaintEngine::clip(class QRect const &, enum Qt::ClipOperation) + ?clip@QBlitterPaintEngine@@UAEXABVQRegion@@W4ClipOperation@Qt@@@Z @ 12940 NONAME ; void QBlitterPaintEngine::clip(class QRegion const &, enum Qt::ClipOperation) + ?clip@QBlitterPaintEngine@@UAEXABVQVectorPath@@W4ClipOperation@Qt@@@Z @ 12941 NONAME ; void QBlitterPaintEngine::clip(class QVectorPath const &, enum Qt::ClipOperation) + ?clipBoundingRect@QPainter@@QBE?AVQRectF@@XZ @ 12942 NONAME ; class QRectF QPainter::clipBoundingRect(void) const + ?clipEnabledChanged@QBlitterPaintEngine@@UAEXXZ @ 12943 NONAME ; void QBlitterPaintEngine::clipEnabledChanged(void) + ?compositionModeChanged@QBlitterPaintEngine@@UAEXXZ @ 12944 NONAME ; void QBlitterPaintEngine::compositionModeChanged(void) + ?createExplicitFont@QFontEngine@@UBE?AVQFont@@XZ @ 12945 NONAME ; class QFont QFontEngine::createExplicitFont(void) const + ?createExplicitFontWithName@QFontEngine@@IBE?AVQFont@@ABVQString@@@Z @ 12946 NONAME ; class QFont QFontEngine::createExplicitFontWithName(class QString const &) const + ?createState@QBlitterPaintEngine@@UBEPAVQPainterState@@PAV2@@Z @ 12947 NONAME ; class QPainterState * QBlitterPaintEngine::createState(class QPainterState *) const + ?d_func@QBlittable@@AAEPAVQBlittablePrivate@@XZ @ 12948 NONAME ; class QBlittablePrivate * QBlittable::d_func(void) + ?d_func@QBlittable@@ABEPBVQBlittablePrivate@@XZ @ 12949 NONAME ; class QBlittablePrivate const * QBlittable::d_func(void) const + ?d_func@QBlitterPaintEngine@@AAEPAVQBlitterPaintEnginePrivate@@XZ @ 12950 NONAME ; class QBlitterPaintEnginePrivate * QBlitterPaintEngine::d_func(void) + ?d_func@QBlitterPaintEngine@@ABEPBVQBlitterPaintEnginePrivate@@XZ @ 12951 NONAME ; class QBlitterPaintEnginePrivate const * QBlitterPaintEngine::d_func(void) const + ?detach@QGlyphs@@AAEXXZ @ 12952 NONAME ; void QGlyphs::detach(void) + ?drawEllipse@QBlitterPaintEngine@@UAEXABVQRectF@@@Z @ 12953 NONAME ; void QBlitterPaintEngine::drawEllipse(class QRectF const &) + ?drawGlyphs@QPainter@@QAEXABVQPointF@@ABVQGlyphs@@@Z @ 12954 NONAME ; void QPainter::drawGlyphs(class QPointF const &, class QGlyphs const &) + ?drawImage@QBlitterPaintEngine@@UAEXABVQRectF@@ABVQImage@@0V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12955 NONAME ; void QBlitterPaintEngine::drawImage(class QRectF const &, class QImage const &, class QRectF const &, class QFlags) + ?drawPixmap@QBlitterPaintEngine@@UAEXABVQRectF@@ABVQPixmap@@0@Z @ 12956 NONAME ; void QBlitterPaintEngine::drawPixmap(class QRectF const &, class QPixmap const &, class QRectF const &) + ?drawRects@QBlitterPaintEngine@@UAEXPBVQRect@@H@Z @ 12957 NONAME ; void QBlitterPaintEngine::drawRects(class QRect const *, int) + ?drawRects@QBlitterPaintEngine@@UAEXPBVQRectF@@H@Z @ 12958 NONAME ; void QBlitterPaintEngine::drawRects(class QRectF const *, int) + ?drawStaticTextItem@QBlitterPaintEngine@@UAEXPAVQStaticTextItem@@@Z @ 12959 NONAME ; void QBlitterPaintEngine::drawStaticTextItem(class QStaticTextItem *) + ?drawTextItem@QBlitterPaintEngine@@UAEXABVQPointF@@ABVQTextItem@@@Z @ 12960 NONAME ; void QBlitterPaintEngine::drawTextItem(class QPointF const &, class QTextItem const &) + ?end@QBlitterPaintEngine@@UAE_NXZ @ 12961 NONAME ; bool QBlitterPaintEngine::end(void) + ?fetchMore@QAbstractProxyModel@@UAEXABVQModelIndex@@@Z @ 12962 NONAME ; void QAbstractProxyModel::fetchMore(class QModelIndex const &) + ?fill@QBlittablePixmapData@@UAEXABVQColor@@@Z @ 12963 NONAME ; void QBlittablePixmapData::fill(class QColor const &) + ?fill@QBlitterPaintEngine@@UAEXABVQVectorPath@@ABVQBrush@@@Z @ 12964 NONAME ; void QBlitterPaintEngine::fill(class QVectorPath const &, class QBrush const &) + ?fill@QImage@@QAEXABVQColor@@@Z @ 12965 NONAME ; void QImage::fill(class QColor const &) + ?fill@QImage@@QAEXW4GlobalColor@Qt@@@Z @ 12966 NONAME ; void QImage::fill(enum Qt::GlobalColor) + ?fillInPendingGlyphs@QTextureGlyphCache@@QAEXXZ @ 12967 NONAME ; void QTextureGlyphCache::fillInPendingGlyphs(void) + ?fillRect@QBlitterPaintEngine@@UAEXABVQRectF@@ABVQBrush@@@Z @ 12968 NONAME ; void QBlitterPaintEngine::fillRect(class QRectF const &, class QBrush const &) + ?fillRect@QBlitterPaintEngine@@UAEXABVQRectF@@ABVQColor@@@Z @ 12969 NONAME ; void QBlitterPaintEngine::fillRect(class QRectF const &, class QColor const &) + ?fillTexture@QImageTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@IUQFixed@@@Z @ 12970 NONAME ; void QImageTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int, struct QFixed) + ?font@QGlyphs@@QBE?AVQFont@@XZ @ 12971 NONAME ; class QFont QGlyphs::font(void) const + ?fontEngine@QStaticTextItem@@QBEPAVQFontEngine@@XZ @ 12972 NONAME ; class QFontEngine * QStaticTextItem::fontEngine(void) const + ?fromImage@QBlittablePixmapData@@UAEXABVQImage@@V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 12973 NONAME ; void QBlittablePixmapData::fromImage(class QImage const &, class QFlags) + ?get@QFontPrivate@@SAPAV1@ABVQFont@@@Z @ 12974 NONAME ; class QFontPrivate * QFontPrivate::get(class QFont const &) + ?getItem@QInputDialog@@SA?AVQString@@PAVQWidget@@ABV2@1ABVQStringList@@H_NPA_NV?$QFlags@W4WindowType@Qt@@@@V?$QFlags@W4InputMethodHint@Qt@@@@@Z @ 12975 NONAME ; class QString QInputDialog::getItem(class QWidget *, class QString const &, class QString const &, class QStringList const &, int, bool, bool *, class QFlags, class QFlags) + ?getText@QInputDialog@@SA?AVQString@@PAVQWidget@@ABV2@1W4EchoMode@QLineEdit@@1PA_NV?$QFlags@W4WindowType@Qt@@@@V?$QFlags@W4InputMethodHint@Qt@@@@@Z @ 12976 NONAME ; class QString QInputDialog::getText(class QWidget *, class QString const &, class QString const &, enum QLineEdit::EchoMode, class QString const &, bool *, class QFlags, class QFlags) + ?glyphIndexes@QGlyphs@@QBE?AV?$QVector@I@@XZ @ 12977 NONAME ; class QVector QGlyphs::glyphIndexes(void) const + ?glyphs@QTextFragment@@QBE?AV?$QList@VQGlyphs@@@@XZ @ 12978 NONAME ; class QList QTextFragment::glyphs(void) const + ?glyphs@QTextLayout@@QBE?AV?$QList@VQGlyphs@@@@XZ @ 12979 NONAME ; class QList QTextLayout::glyphs(void) const + ?glyphs@QTextLine@@ABE?AV?$QList@VQGlyphs@@@@HH@Z @ 12980 NONAME ; class QList QTextLine::glyphs(int, int) const + ?hasAlphaChannel@QBlittablePixmapData@@UBE_NXZ @ 12981 NONAME ; bool QBlittablePixmapData::hasAlphaChannel(void) const + ?hasChildren@QAbstractProxyModel@@UBE_NABVQModelIndex@@@Z @ 12982 NONAME ; bool QAbstractProxyModel::hasChildren(class QModelIndex const &) const + ?hasHeightForWidth@QWidgetPrivate@@UBE_NXZ @ 12983 NONAME ; bool QWidgetPrivate::hasHeightForWidth(void) const + ?hasWidthForHeight@QSizePolicy@@QBE_NXZ @ 12984 NONAME ; bool QSizePolicy::hasWidthForHeight(void) const + ?heightForWidth@QTabWidget@@UBEHH@Z @ 12985 NONAME ; int QTabWidget::heightForWidth(int) const + ?inFontUcs4@QFontMetrics@@QBE_NI@Z @ 12986 NONAME ; bool QFontMetrics::inFontUcs4(unsigned int) const + ?inFontUcs4@QFontMetricsF@@QBE_NI@Z @ 12987 NONAME ; bool QFontMetricsF::inFontUcs4(unsigned int) const + ?lock@QBlittable@@QAEPAVQImage@@XZ @ 12988 NONAME ; class QImage * QBlittable::lock(void) + ?markRasterOverlay@QBlittablePixmapData@@QAEXABVQPointF@@ABVQTextItem@@@Z @ 12989 NONAME ; void QBlittablePixmapData::markRasterOverlay(class QPointF const &, class QTextItem const &) + ?markRasterOverlay@QBlittablePixmapData@@QAEXABVQRectF@@@Z @ 12990 NONAME ; void QBlittablePixmapData::markRasterOverlay(class QRectF const &) + ?markRasterOverlay@QBlittablePixmapData@@QAEXABVQVectorPath@@@Z @ 12991 NONAME ; void QBlittablePixmapData::markRasterOverlay(class QVectorPath const &) + ?markRasterOverlay@QBlittablePixmapData@@QAEXPBVQRect@@H@Z @ 12992 NONAME ; void QBlittablePixmapData::markRasterOverlay(class QRect const *, int) + ?markRasterOverlay@QBlittablePixmapData@@QAEXPBVQRectF@@H@Z @ 12993 NONAME ; void QBlittablePixmapData::markRasterOverlay(class QRectF const *, int) + ?metric@QBlittablePixmapData@@UBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 12994 NONAME ; int QBlittablePixmapData::metric(enum QPaintDevice::PaintDeviceMetric) const + ?mimeData@QAbstractProxyModel@@UBEPAVQMimeData@@ABV?$QList@VQModelIndex@@@@@Z @ 12995 NONAME ; class QMimeData * QAbstractProxyModel::mimeData(class QList const &) const + ?mimeTypes@QAbstractProxyModel@@UBE?AVQStringList@@XZ @ 12996 NONAME ; class QStringList QAbstractProxyModel::mimeTypes(void) const + ?minimumSizeHint@QCheckBox@@UBE?AVQSize@@XZ @ 12997 NONAME ; class QSize QCheckBox::minimumSizeHint(void) const + ?minimumSizeHint@QRadioButton@@UBE?AVQSize@@XZ @ 12998 NONAME ; class QSize QRadioButton::minimumSizeHint(void) const + ?numberPrefix@QTextListFormat@@QBE?AVQString@@XZ @ 12999 NONAME ; class QString QTextListFormat::numberPrefix(void) const + ?numberSuffix@QTextListFormat@@QBE?AVQString@@XZ @ 13000 NONAME ; class QString QTextListFormat::numberSuffix(void) const + ?opacityChanged@QBlitterPaintEngine@@UAEXXZ @ 13001 NONAME ; void QBlitterPaintEngine::opacityChanged(void) + ?paintEngine@QBlittablePixmapData@@UBEPAVQPaintEngine@@XZ @ 13002 NONAME ; class QPaintEngine * QBlittablePixmapData::paintEngine(void) const + ?penChanged@QBlitterPaintEngine@@UAEXXZ @ 13003 NONAME ; void QBlitterPaintEngine::penChanged(void) + ?positions@QGlyphs@@QBE?AV?$QVector@VQPointF@@@@XZ @ 13004 NONAME ; class QVector QGlyphs::positions(void) const + ?qt_addBitmapToPath@@YAXMMPBEHHHPAVQPainterPath@@@Z @ 13005 NONAME ; void qt_addBitmapToPath(float, float, unsigned char const *, int, int, int, class QPainterPath *) + ?qt_fontdata_from_index@@YA?AVQByteArray@@H@Z @ 13006 NONAME ; class QByteArray qt_fontdata_from_index(int) + ?raster@QBlitterPaintEngine@@ABEPAVQRasterPaintEngine@@XZ @ 13007 NONAME ; class QRasterPaintEngine * QBlitterPaintEngine::raster(void) const + ?reactivateDeferredActiveObjects@QEventDispatcherS60@@UAEXXZ @ 13008 NONAME ; void QEventDispatcherS60::reactivateDeferredActiveObjects(void) + ?removeItem@QGraphicsGridLayout@@QAEXPAVQGraphicsLayoutItem@@@Z @ 13009 NONAME ; void QGraphicsGridLayout::removeItem(class QGraphicsLayoutItem *) + ?renderHintsChanged@QBlitterPaintEngine@@UAEXXZ @ 13010 NONAME ; void QBlitterPaintEngine::renderHintsChanged(void) + ?resetInternalData@QAbstractProxyModel@@IAEXXZ @ 13011 NONAME ; void QAbstractProxyModel::resetInternalData(void) + ?resize@QBlittablePixmapData@@UAEXHH@Z @ 13012 NONAME ; void QBlittablePixmapData::resize(int, int) + ?resizeCache@QTextureGlyphCache@@QAEXHH@Z @ 13013 NONAME ; void QTextureGlyphCache::resizeCache(int, int) + ?setBlittable@QBlittablePixmapData@@QAEXPAVQBlittable@@@Z @ 13014 NONAME ; void QBlittablePixmapData::setBlittable(class QBlittable *) + ?setFont@QGlyphs@@QAEXABVQFont@@@Z @ 13015 NONAME ; void QGlyphs::setFont(class QFont const &) + ?setFontEngine@QStaticTextItem@@QAEXPAVQFontEngine@@@Z @ 13016 NONAME ; void QStaticTextItem::setFontEngine(class QFontEngine *) + ?setGlyphIndexes@QGlyphs@@QAEXABV?$QVector@I@@@Z @ 13017 NONAME ; void QGlyphs::setGlyphIndexes(class QVector const &) + ?setItemData@QAbstractProxyModel@@UAE_NABVQModelIndex@@ABV?$QMap@HVQVariant@@@@@Z @ 13018 NONAME ; bool QAbstractProxyModel::setItemData(class QModelIndex const &, class QMap const &) + ?setNumberPrefix@QTextListFormat@@QAEXABVQString@@@Z @ 13019 NONAME ; void QTextListFormat::setNumberPrefix(class QString const &) + ?setNumberSuffix@QTextListFormat@@QAEXABVQString@@@Z @ 13020 NONAME ; void QTextListFormat::setNumberSuffix(class QString const &) + ?setPositions@QGlyphs@@QAEXABV?$QVector@VQPointF@@@@@Z @ 13021 NONAME ; void QGlyphs::setPositions(class QVector const &) + ?setState@QBlitterPaintEngine@@UAEXPAVQPainterState@@@Z @ 13022 NONAME ; void QBlitterPaintEngine::setState(class QPainterState *) + ?setWidthForHeight@QSizePolicy@@QAEX_N@Z @ 13023 NONAME ; void QSizePolicy::setWidthForHeight(bool) + ?size@QBlittable@@QBE?AVQSize@@XZ @ 13024 NONAME ; class QSize QBlittable::size(void) const + ?sort@QAbstractProxyModel@@UAEXHW4SortOrder@Qt@@@Z @ 13025 NONAME ; void QAbstractProxyModel::sort(int, enum Qt::SortOrder) + ?span@QAbstractProxyModel@@UBE?AVQSize@@ABVQModelIndex@@@Z @ 13026 NONAME ; class QSize QAbstractProxyModel::span(class QModelIndex const &) const + ?state@QBlitterPaintEngine@@QAEPAVQPainterState@@XZ @ 13027 NONAME ; class QPainterState * QBlitterPaintEngine::state(void) + ?state@QBlitterPaintEngine@@QBEPBVQPainterState@@XZ @ 13028 NONAME ; class QPainterState const * QBlitterPaintEngine::state(void) const + ?stroke@QBlitterPaintEngine@@UAEXABVQVectorPath@@ABVQPen@@@Z @ 13029 NONAME ; void QBlitterPaintEngine::stroke(class QVectorPath const &, class QPen const &) + ?subPixelPositionForX@QTextureGlyphCache@@QBE?AUQFixed@@U2@@Z @ 13030 NONAME ; struct QFixed QTextureGlyphCache::subPixelPositionForX(struct QFixed) const + ?supportedDropActions@QAbstractProxyModel@@UBE?AV?$QFlags@W4DropAction@Qt@@@@XZ @ 13031 NONAME ; class QFlags QAbstractProxyModel::supportedDropActions(void) const + ?supportsSubPixelPositions@QFontEngine@@UBE_NXZ @ 13032 NONAME ; bool QFontEngine::supportsSubPixelPositions(void) const + ?swap@QBitmap@@QAEXAAV1@@Z @ 13033 NONAME ; void QBitmap::swap(class QBitmap &) + ?swap@QBrush@@QAEXAAV1@@Z @ 13034 NONAME ; void QBrush::swap(class QBrush &) + ?swap@QIcon@@QAEXAAV1@@Z @ 13035 NONAME ; void QIcon::swap(class QIcon &) + ?swap@QImage@@QAEXAAV1@@Z @ 13036 NONAME ; void QImage::swap(class QImage &) + ?swap@QKeySequence@@QAEXAAV1@@Z @ 13037 NONAME ; void QKeySequence::swap(class QKeySequence &) + ?swap@QPainterPath@@QAEXAAV1@@Z @ 13038 NONAME ; void QPainterPath::swap(class QPainterPath &) + ?swap@QPen@@QAEXAAV1@@Z @ 13039 NONAME ; void QPen::swap(class QPen &) + ?swap@QPicture@@QAEXAAV1@@Z @ 13040 NONAME ; void QPicture::swap(class QPicture &) + ?swap@QPixmap@@QAEXAAV1@@Z @ 13041 NONAME ; void QPixmap::swap(class QPixmap &) + ?swap@QPolygon@@QAEXAAV1@@Z @ 13042 NONAME ; void QPolygon::swap(class QPolygon &) + ?swap@QPolygonF@@QAEXAAV1@@Z @ 13043 NONAME ; void QPolygonF::swap(class QPolygonF &) + ?swap@QRegion@@QAEXAAV1@@Z @ 13044 NONAME ; void QRegion::swap(class QRegion &) + ?textureMapForGlyph@QTextureGlyphCache@@QBE?AVQImage@@IUQFixed@@@Z @ 13045 NONAME ; class QImage QTextureGlyphCache::textureMapForGlyph(unsigned int, struct QFixed) const + ?toImage@QBlittablePixmapData@@UBE?AVQImage@@XZ @ 13046 NONAME ; class QImage QBlittablePixmapData::toImage(void) const + ?transformChanged@QBlitterPaintEngine@@UAEXXZ @ 13047 NONAME ; void QBlitterPaintEngine::transformChanged(void) + ?type@QBlitterPaintEngine@@UBE?AW4Type@QPaintEngine@@XZ @ 13048 NONAME ; enum QPaintEngine::Type QBlitterPaintEngine::type(void) const + ?unlock@QBlittable@@QAEXXZ @ 13049 NONAME ; void QBlittable::unlock(void) + ?unmarkRasterOverlay@QBlittablePixmapData@@QAEXABVQRectF@@@Z @ 13050 NONAME ; void QBlittablePixmapData::unmarkRasterOverlay(class QRectF const &) + ?userData@QStaticTextItem@@QBEPAVQStaticTextUserData@@XZ @ 13051 NONAME ; class QStaticTextUserData * QStaticTextItem::userData(void) const diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index 3864914..5939010 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -3714,4 +3714,84 @@ EXPORTS _Z26qt_symbian_SetupThreadHeapiR24SStdEpocThreadCreateInfo @ 3713 NONAME _ZN24QAbstractDeclarativeData17objectNameChangedE @ 3714 NONAME DATA 4 _ZN23QEventDispatcherSymbian36queueDeferredActiveObjectsCompletionEv @ 3715 NONAME + _ZN11QThreadPool11waitForDoneEi @ 3716 NONAME + _ZN12QSystemError8toStringEv @ 3717 NONAME + _ZN13QSharedMemory12setNativeKeyERK7QString @ 3718 NONAME + _ZN13QUnifiedTimer10timerEventEP11QTimerEvent @ 3719 NONAME + _ZN13QUnifiedTimer17ensureTimerUpdateEv @ 3720 NONAME + _ZN13QUnifiedTimer17registerAnimationEP18QAbstractAnimationb @ 3721 NONAME + _ZN13QUnifiedTimer17setTimingIntervalEi @ 3722 NONAME + _ZN13QUnifiedTimer19unregisterAnimationEP18QAbstractAnimation @ 3723 NONAME + _ZN13QUnifiedTimer20updateAnimationTimerEv @ 3724 NONAME + _ZN13QUnifiedTimer20updateAnimationsTimeEv @ 3725 NONAME + _ZN13QUnifiedTimer21restartAnimationTimerEv @ 3726 NONAME + _ZN13QUnifiedTimer22installAnimationDriverEP16QAnimationDriver @ 3727 NONAME + _ZN13QUnifiedTimer24registerRunningAnimationEP18QAbstractAnimation @ 3728 NONAME + _ZN13QUnifiedTimer26unregisterRunningAnimationEP18QAbstractAnimation @ 3729 NONAME + _ZN13QUnifiedTimer33closestPauseAnimationTimeToFinishEv @ 3730 NONAME + _ZN13QUnifiedTimer8instanceEb @ 3731 NONAME + _ZN13QUnifiedTimerC1Ev @ 3732 NONAME + _ZN13QUnifiedTimerC2Ev @ 3733 NONAME + _ZN16QAnimationDriver11qt_metacallEN11QMetaObject4CallEiPPv @ 3734 NONAME + _ZN16QAnimationDriver11qt_metacastEPKc @ 3735 NONAME + _ZN16QAnimationDriver16staticMetaObjectE @ 3736 NONAME DATA 16 + _ZN16QAnimationDriver19getStaticMetaObjectEv @ 3737 NONAME + _ZN16QAnimationDriver4stopEv @ 3738 NONAME + _ZN16QAnimationDriver5startEv @ 3739 NONAME + _ZN16QAnimationDriver7advanceEv @ 3740 NONAME + _ZN16QAnimationDriver7installEv @ 3741 NONAME + _ZN16QAnimationDriverC2EP7QObject @ 3742 NONAME + _ZN16QAnimationDriverC2ER23QAnimationDriverPrivateP7QObject @ 3743 NONAME + _ZN16QCoreApplicationC1ERiPPci @ 3744 NONAME + _ZN16QCoreApplicationC2ERiPPci @ 3745 NONAME + _ZN23QCoreApplicationPrivate19app_compile_versionE @ 3746 NONAME DATA 4 + _ZN23QCoreApplicationPrivateC1ERiPPcj @ 3747 NONAME + _ZN23QCoreApplicationPrivateC2ERiPPcj @ 3748 NONAME + _ZN6QMutex12lockInternalEv @ 3749 NONAME + _ZN6QMutex14unlockInternalEv @ 3750 NONAME + _ZN7QObject10disconnectEPKS_RK11QMetaMethodS1_S4_ @ 3751 NONAME + _ZN7QObject7connectEPKS_RK11QMetaMethodS1_S4_N2Qt14ConnectionTypeE @ 3752 NONAME + _ZN9QFileInfoC1EP16QFileInfoPrivate @ 3753 NONAME + _ZN9QFileInfoC2EP16QFileInfoPrivate @ 3754 NONAME + _ZNK10QStringRef10startsWithE13QLatin1StringN2Qt15CaseSensitivityE @ 3755 NONAME + _ZNK10QStringRef10startsWithE5QCharN2Qt15CaseSensitivityE @ 3756 NONAME + _ZNK10QStringRef10startsWithERK7QStringN2Qt15CaseSensitivityE @ 3757 NONAME + _ZNK10QStringRef10startsWithERKS_N2Qt15CaseSensitivityE @ 3758 NONAME + _ZNK10QStringRef11lastIndexOfE13QLatin1StringiN2Qt15CaseSensitivityE @ 3759 NONAME + _ZNK10QStringRef11lastIndexOfE5QChariN2Qt15CaseSensitivityE @ 3760 NONAME + _ZNK10QStringRef11lastIndexOfERK7QStringiN2Qt15CaseSensitivityE @ 3761 NONAME + _ZNK10QStringRef11lastIndexOfERKS_iN2Qt15CaseSensitivityE @ 3762 NONAME + _ZNK10QStringRef11toLocal8BitEv @ 3763 NONAME + _ZNK10QStringRef5countE5QCharN2Qt15CaseSensitivityE @ 3764 NONAME + _ZNK10QStringRef5countERK7QStringN2Qt15CaseSensitivityE @ 3765 NONAME + _ZNK10QStringRef5countERKS_N2Qt15CaseSensitivityE @ 3766 NONAME + _ZNK10QStringRef6toUcs4Ev @ 3767 NONAME + _ZNK10QStringRef6toUtf8Ev @ 3768 NONAME + _ZNK10QStringRef7indexOfE13QLatin1StringiN2Qt15CaseSensitivityE @ 3769 NONAME + _ZNK10QStringRef7indexOfE5QChariN2Qt15CaseSensitivityE @ 3770 NONAME + _ZNK10QStringRef7indexOfERK7QStringiN2Qt15CaseSensitivityE @ 3771 NONAME + _ZNK10QStringRef7indexOfERKS_iN2Qt15CaseSensitivityE @ 3772 NONAME + _ZNK10QStringRef7toAsciiEv @ 3773 NONAME + _ZNK10QStringRef8endsWithE13QLatin1StringN2Qt15CaseSensitivityE @ 3774 NONAME + _ZNK10QStringRef8endsWithE5QCharN2Qt15CaseSensitivityE @ 3775 NONAME + _ZNK10QStringRef8endsWithERK7QStringN2Qt15CaseSensitivityE @ 3776 NONAME + _ZNK10QStringRef8endsWithERKS_N2Qt15CaseSensitivityE @ 3777 NONAME + _ZNK10QStringRef8toLatin1Ev @ 3778 NONAME + _ZNK11QMetaObject4castEPK7QObject @ 3779 NONAME + _ZNK13QSharedMemory9nativeKeyEv @ 3780 NONAME + _ZNK16QAnimationDriver10metaObjectEv @ 3781 NONAME + _ZNK16QAnimationDriver9isRunningEv @ 3782 NONAME + _ZNK4QUrl11isLocalFileEv @ 3783 NONAME + _ZNK7QObject17senderSignalIndexEv @ 3784 NONAME + _ZNK7QString10startsWithERK10QStringRefN2Qt15CaseSensitivityE @ 3785 NONAME + _ZNK7QString11lastIndexOfERK10QStringRefiN2Qt15CaseSensitivityE @ 3786 NONAME + _ZNK7QString5countERK10QStringRefN2Qt15CaseSensitivityE @ 3787 NONAME + _ZNK7QString7indexOfERK10QStringRefiN2Qt15CaseSensitivityE @ 3788 NONAME + _ZNK7QString8endsWithERK10QStringRefN2Qt15CaseSensitivityE @ 3789 NONAME + _ZTI13QUnifiedTimer @ 3790 NONAME + _ZTI16QAnimationDriver @ 3791 NONAME + _ZTI23QAnimationDriverPrivate @ 3792 NONAME + _ZTV13QUnifiedTimer @ 3793 NONAME + _ZTV16QAnimationDriver @ 3794 NONAME + _ZTV23QAnimationDriverPrivate @ 3795 NONAME diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def index 1f69061..b0efab4 100644 --- a/src/s60installs/eabi/QtDeclarativeu.def +++ b/src/s60installs/eabi/QtDeclarativeu.def @@ -1747,8 +1747,8 @@ EXPORTS _ZN21QDeclarativeListModelC1EPKS_P32QDeclarativeListModelWorkerAgent @ 1746 NONAME ABSENT _ZN21QDeclarativeListModelC2EPKS_P32QDeclarativeListModelWorkerAgent @ 1747 NONAME ABSENT _ZNK21QDeclarativeListModel14inWorkerThreadEv @ 1748 NONAME ABSENT - _ZN23QDeclarativeDebugHelper15getScriptEngineEP18QDeclarativeEngine @ 1749 NONAME ABSENT - _ZN23QDeclarativeDebugHelper26setAnimationSlowDownFactorEf @ 1750 NONAME ABSENT + _ZN23QDeclarativeDebugHelper15getScriptEngineEP18QDeclarativeEngine @ 1749 NONAME + _ZN23QDeclarativeDebugHelper26setAnimationSlowDownFactorEf @ 1750 NONAME _ZN17QDeclarativeTimer10classBeginEv @ 1751 NONAME ABSENT _ZN17QDeclarativeTimer10setRunningEb @ 1752 NONAME ABSENT _ZN17QDeclarativeTimer11qt_metacallEN11QMetaObject4CallEiPPv @ 1753 NONAME ABSENT diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index e2aec1d..d6fbdd3 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -3168,7 +3168,7 @@ EXPORTS _ZN14QWindowSurface6bufferEPK7QWidget @ 3167 NONAME _ZN14QWindowSurface6scrollERK7QRegionii @ 3168 NONAME _ZN14QWindowSurface8endPaintERK7QRegion @ 3169 NONAME - _ZN14QWindowSurfaceC2EP7QWidget @ 3170 NONAME + _ZN14QWindowSurfaceC2EP7QWidget @ 3170 NONAME ABSENT _ZN14QWindowSurfaceD0Ev @ 3171 NONAME _ZN14QWindowSurfaceD1Ev @ 3172 NONAME _ZN14QWindowSurfaceD2Ev @ 3173 NONAME @@ -4768,8 +4768,8 @@ EXPORTS _ZN20QRasterWindowSurface13prepareBufferEN6QImage6FormatEP7QWidget @ 4767 NONAME _ZN20QRasterWindowSurface5flushEP7QWidgetRK7QRegionRK6QPoint @ 4768 NONAME _ZN20QRasterWindowSurface6scrollERK7QRegionii @ 4769 NONAME - _ZN20QRasterWindowSurfaceC1EP7QWidget @ 4770 NONAME - _ZN20QRasterWindowSurfaceC2EP7QWidget @ 4771 NONAME + _ZN20QRasterWindowSurfaceC1EP7QWidget @ 4770 NONAME ABSENT + _ZN20QRasterWindowSurfaceC2EP7QWidget @ 4771 NONAME ABSENT _ZN20QRasterWindowSurfaceD0Ev @ 4772 NONAME _ZN20QRasterWindowSurfaceD1Ev @ 4773 NONAME _ZN20QRasterWindowSurfaceD2Ev @ 4774 NONAME @@ -12105,4 +12105,128 @@ EXPORTS _ZN15QStaticTextItemD1Ev @ 12104 NONAME _ZN15QStaticTextItemD2Ev @ 12105 NONAME _ZN19QEventDispatcherS6031reactivateDeferredActiveObjectsEv @ 12106 NONAME + _Z18qt_addBitmapToPathffPKhiiiP12QPainterPath @ 12107 NONAME + _Z22qt_fontdata_from_indexi @ 12108 NONAME + _ZN10QBlittable4lockEv @ 12109 NONAME + _ZN10QBlittable6unlockEv @ 12110 NONAME + _ZN10QBlittableC2ERK5QSize6QFlagsINS_10CapabilityEE @ 12111 NONAME + _ZN10QBlittableD0Ev @ 12112 NONAME + _ZN10QBlittableD1Ev @ 12113 NONAME + _ZN10QBlittableD2Ev @ 12114 NONAME + _ZN11QFontEngine16alphaMapForGlyphEj6QFixed @ 12115 NONAME + _ZN11QFontEngine16alphaMapForGlyphEj6QFixedRK10QTransform @ 12116 NONAME + _ZN11QFontEngine19alphaRGBMapForGlyphEj6QFixediRK10QTransform @ 12117 NONAME + _ZN12QInputDialog7getItemEP7QWidgetRK7QStringS4_RK11QStringListibPb6QFlagsIN2Qt10WindowTypeEES9_INSA_15InputMethodHintEE @ 12118 NONAME + _ZN12QInputDialog7getTextEP7QWidgetRK7QStringS4_N9QLineEdit8EchoModeES4_Pb6QFlagsIN2Qt10WindowTypeEES8_INS9_15InputMethodHintEE @ 12119 NONAME + _ZN14QWindowSurfaceC2EP7QWidgetb @ 12120 NONAME + _ZN18QTextureGlyphCache19fillInPendingGlyphsEv @ 12121 NONAME + _ZN19QAbstractProxyModel11setItemDataERK11QModelIndexRK4QMapIi8QVariantE @ 12122 NONAME + _ZN19QAbstractProxyModel17resetInternalDataEv @ 12123 NONAME + _ZN19QAbstractProxyModel4sortEiN2Qt9SortOrderE @ 12124 NONAME + _ZN19QAbstractProxyModel9fetchMoreERK11QModelIndex @ 12125 NONAME + _ZN19QApplicationPrivateC1ERiPPcN12QApplication4TypeEi @ 12126 NONAME + _ZN19QApplicationPrivateC2ERiPPcN12QApplication4TypeEi @ 12127 NONAME + _ZN19QBlitterPaintEngine10drawPixmapERK6QRectFRK7QPixmapS2_ @ 12128 NONAME + _ZN19QBlitterPaintEngine10penChangedEv @ 12129 NONAME + _ZN19QBlitterPaintEngine11drawEllipseERK6QRectF @ 12130 NONAME + _ZN19QBlitterPaintEngine12brushChangedEv @ 12131 NONAME + _ZN19QBlitterPaintEngine12drawTextItemERK7QPointFRK9QTextItem @ 12132 NONAME + _ZN19QBlitterPaintEngine14opacityChangedEv @ 12133 NONAME + _ZN19QBlitterPaintEngine16transformChangedEv @ 12134 NONAME + _ZN19QBlitterPaintEngine18brushOriginChangedEv @ 12135 NONAME + _ZN19QBlitterPaintEngine18clipEnabledChangedEv @ 12136 NONAME + _ZN19QBlitterPaintEngine18drawStaticTextItemEP15QStaticTextItem @ 12137 NONAME + _ZN19QBlitterPaintEngine18renderHintsChangedEv @ 12138 NONAME + _ZN19QBlitterPaintEngine22compositionModeChangedEv @ 12139 NONAME + _ZN19QBlitterPaintEngine3endEv @ 12140 NONAME + _ZN19QBlitterPaintEngine4clipERK11QVectorPathN2Qt13ClipOperationE @ 12141 NONAME + _ZN19QBlitterPaintEngine4clipERK5QRectN2Qt13ClipOperationE @ 12142 NONAME + _ZN19QBlitterPaintEngine4clipERK7QRegionN2Qt13ClipOperationE @ 12143 NONAME + _ZN19QBlitterPaintEngine4fillERK11QVectorPathRK6QBrush @ 12144 NONAME + _ZN19QBlitterPaintEngine5beginEP12QPaintDevice @ 12145 NONAME + _ZN19QBlitterPaintEngine6strokeERK11QVectorPathRK4QPen @ 12146 NONAME + _ZN19QBlitterPaintEngine8fillRectERK6QRectFRK6QBrush @ 12147 NONAME + _ZN19QBlitterPaintEngine8fillRectERK6QRectFRK6QColor @ 12148 NONAME + _ZN19QBlitterPaintEngine8setStateEP13QPainterState @ 12149 NONAME + _ZN19QBlitterPaintEngine9drawImageERK6QRectFRK6QImageS2_6QFlagsIN2Qt19ImageConversionFlagEE @ 12150 NONAME + _ZN19QBlitterPaintEngine9drawRectsEPK5QRecti @ 12151 NONAME + _ZN19QBlitterPaintEngine9drawRectsEPK6QRectFi @ 12152 NONAME + _ZN19QBlitterPaintEngineC1EP20QBlittablePixmapData @ 12153 NONAME + _ZN19QBlitterPaintEngineC2EP20QBlittablePixmapData @ 12154 NONAME + _ZN19QBlitterPaintEngineD0Ev @ 12155 NONAME + _ZN19QBlitterPaintEngineD1Ev @ 12156 NONAME + _ZN19QBlitterPaintEngineD2Ev @ 12157 NONAME + _ZN19QGraphicsGridLayout10removeItemEP19QGraphicsLayoutItem @ 12158 NONAME + _ZN20QBlittablePixmapData12setBlittableEP10QBlittable @ 12159 NONAME + _ZN20QBlittablePixmapData4fillERK6QColor @ 12160 NONAME + _ZN20QBlittablePixmapData6bufferEv @ 12161 NONAME + _ZN20QBlittablePixmapData6resizeEii @ 12162 NONAME + _ZN20QBlittablePixmapData9fromImageERK6QImage6QFlagsIN2Qt19ImageConversionFlagEE @ 12163 NONAME + _ZN20QBlittablePixmapDataC2Ev @ 12164 NONAME + _ZN20QBlittablePixmapDataD0Ev @ 12165 NONAME + _ZN20QBlittablePixmapDataD1Ev @ 12166 NONAME + _ZN20QBlittablePixmapDataD2Ev @ 12167 NONAME + _ZN20QRasterWindowSurfaceC1EP7QWidgetb @ 12168 NONAME + _ZN20QRasterWindowSurfaceC2EP7QWidgetb @ 12169 NONAME + _ZN23QImageTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj6QFixed @ 12170 NONAME + _ZN6QImage4fillEN2Qt11GlobalColorE @ 12171 NONAME + _ZN6QImage4fillERK6QColor @ 12172 NONAME + _ZN7QGlyphs12setPositionsERK7QVectorI7QPointFE @ 12173 NONAME + _ZN7QGlyphs15setGlyphIndexesERK7QVectorIjE @ 12174 NONAME + _ZN7QGlyphs5clearEv @ 12175 NONAME + _ZN7QGlyphs6detachEv @ 12176 NONAME + _ZN7QGlyphs7setFontERK5QFont @ 12177 NONAME + _ZN7QGlyphsC1ERKS_ @ 12178 NONAME + _ZN7QGlyphsC1Ev @ 12179 NONAME + _ZN7QGlyphsC2ERKS_ @ 12180 NONAME + _ZN7QGlyphsC2Ev @ 12181 NONAME + _ZN7QGlyphsD1Ev @ 12182 NONAME + _ZN7QGlyphsD2Ev @ 12183 NONAME + _ZN7QGlyphsaSERKS_ @ 12184 NONAME + _ZN7QGlyphspLERKS_ @ 12185 NONAME + _ZN8QPainter10drawGlyphsERK7QPointFRK7QGlyphs @ 12186 NONAME + _ZNK10QBlittable12capabilitiesEv @ 12187 NONAME + _ZNK10QBlittable4sizeEv @ 12188 NONAME + _ZNK10QTabWidget14heightForWidthEi @ 12189 NONAME + _ZNK11QFontEngine18createExplicitFontEv @ 12190 NONAME + _ZNK11QFontEngine26createExplicitFontWithNameERK7QString @ 12191 NONAME + _ZNK11QTextLayout6glyphsEv @ 12192 NONAME + _ZNK12QFontMetrics10inFontUcs4Ej @ 12193 NONAME + _ZNK12QRadioButton15minimumSizeHintEv @ 12194 NONAME + _ZNK13QFontMetricsF10inFontUcs4Ej @ 12195 NONAME + _ZNK13QTextFragment6glyphsEv @ 12196 NONAME + _ZNK14QWidgetPrivate17hasHeightForWidthEv @ 12197 NONAME + _ZNK16QFileSystemModel5rmdirERK11QModelIndex @ 12198 NONAME + _ZNK18QTextureGlyphCache18textureMapForGlyphEj6QFixed @ 12199 NONAME + _ZNK18QTextureGlyphCache20subPixelPositionForXE6QFixed @ 12200 NONAME + _ZNK18QTextureGlyphCache30calculateSubPixelPositionCountEj @ 12201 NONAME + _ZNK19QAbstractProxyModel11hasChildrenERK11QModelIndex @ 12202 NONAME + _ZNK19QAbstractProxyModel12canFetchMoreERK11QModelIndex @ 12203 NONAME + _ZNK19QAbstractProxyModel20supportedDropActionsEv @ 12204 NONAME + _ZNK19QAbstractProxyModel4spanERK11QModelIndex @ 12205 NONAME + _ZNK19QAbstractProxyModel5buddyERK11QModelIndex @ 12206 NONAME + _ZNK19QAbstractProxyModel8mimeDataERK5QListI11QModelIndexE @ 12207 NONAME + _ZNK19QAbstractProxyModel9mimeTypesEv @ 12208 NONAME + _ZNK19QBlitterPaintEngine11createStateEP13QPainterState @ 12209 NONAME + _ZNK20QBlittablePixmapData11paintEngineEv @ 12210 NONAME + _ZNK20QBlittablePixmapData15hasAlphaChannelEv @ 12211 NONAME + _ZNK20QBlittablePixmapData6metricEN12QPaintDevice17PaintDeviceMetricE @ 12212 NONAME + _ZNK20QBlittablePixmapData7toImageEv @ 12213 NONAME + _ZNK20QBlittablePixmapData9blittableEv @ 12214 NONAME + _ZNK7QGlyphs12glyphIndexesEv @ 12215 NONAME + _ZNK7QGlyphs4fontEv @ 12216 NONAME + _ZNK7QGlyphs9positionsEv @ 12217 NONAME + _ZNK7QGlyphseqERKS_ @ 12218 NONAME + _ZNK7QGlyphsneERKS_ @ 12219 NONAME + _ZNK7QGlyphsplERKS_ @ 12220 NONAME + _ZNK8QPainter16clipBoundingRectEv @ 12221 NONAME + _ZNK9QCheckBox15minimumSizeHintEv @ 12222 NONAME + _ZNK9QTextLine6glyphsEii @ 12223 NONAME + _ZTI10QBlittable @ 12224 NONAME + _ZTI19QBlitterPaintEngine @ 12225 NONAME + _ZTI20QBlittablePixmapData @ 12226 NONAME + _ZTV10QBlittable @ 12227 NONAME + _ZTV19QBlitterPaintEngine @ 12228 NONAME + _ZTV20QBlittablePixmapData @ 12229 NONAME + _Zls6QDebugPK13QSymbianEvent @ 12230 NONAME -- cgit v0.12 From cd3e03f5e70fa6d973949516f50ea05f201aac20 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 29 Nov 2010 13:55:18 +0000 Subject: Fix buffered/unbuffered mode issues on symbian Due to a bug in the symbian file server, files in /resource can't be opened for unbuffered read, only for default mode read. (it doesn't mask the cache control flags when doing the security check) So read will always be done in default mode. Symptom of this was that QML plugin loading failed as the plugin description in /resource could not be read. Buffered or unbuffered writes (i.e. whether the cache should be write through or write behind) are controlled by the QIODevice::Unbuffered flag, therefore it needs to be passed through to the file engine. An optimisation for unix and windows to force unbuffered mode in the file engine is inappropriate (as that is referring to buffering in the standard library, which is bypassed entirely by using the low level RFile to open files on symbian) Reviewed-by: joao --- src/corelib/io/qfile.cpp | 8 +++++++- src/corelib/io/qfsfileengine_unix.cpp | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp index fac4ac6..85e78a6 100644 --- a/src/corelib/io/qfile.cpp +++ b/src/corelib/io/qfile.cpp @@ -993,8 +993,14 @@ bool QFile::open(OpenMode mode) return false; } +#ifdef Q_OS_SYMBIAN + // For symbian, the unbuffered flag is used to control write-behind cache behaviour + if (fileEngine()->open(mode)) +#else // QIODevice provides the buffering, so there's no need to request it from the file engine. - if (fileEngine()->open(mode | QIODevice::Unbuffered)) { + if (fileEngine()->open(mode | QIODevice::Unbuffered)) +#endif + { QIODevice::open(mode); if (mode & Append) seek(size()); diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 55388e6..1e1b35b 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -196,8 +196,8 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) if (openMode & QFile::Unbuffered) { if (openMode & QIODevice::WriteOnly) symbianMode |= 0x00001000; //EFileWriteDirectIO; - if (openMode & QIODevice::ReadOnly) - symbianMode |= 0x00004000; //EFileReadDirectIO; + // ### Unbuffered read is not used, because it prevents file open in /resource + // ### and has no obvious benefits } else { if (openMode & QIODevice::WriteOnly) symbianMode |= 0x00000800; //EFileWriteBuffered; -- cgit v0.12 From f417baad9235e90b5e9aae2fd06d664635c68bec Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 29 Nov 2010 16:48:17 +0000 Subject: Add symbian platform security and case sensitivity test cases On symbian, check that opening files in protected locations either succeeds or fails cleanly as expected by the capabilities the test is compiled with. This acts as a regression test for opening files in /resource, and also checks the other locations behave as expected. On all platforms, check file created with a mixed case filename can be accessed by it's aliases that differ only in case (or not) depending on the OS case sensitivity. For Windows/Symbian, file should be accessible by altered case aliases For other OS, it should not (other OS supported by Qt are unix like) Reviewed-by: mread --- tests/auto/qfile/tst_qfile.cpp | 92 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 1bbf230..4421f0d 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -215,6 +215,11 @@ private slots: void resize(); void objectConstructors(); +#ifdef Q_OS_SYMBIAN + void platformSecurity_data(); + void platformSecurity(); +#endif + void caseSensitivity(); // --- Task related tests below this line void task167217(); @@ -400,6 +405,7 @@ void tst_QFile::cleanupTestCase() QFile::remove("qfile_map_testfile"); QFile::remove("readAllBuffer.txt"); QFile::remove("qt_file.tmp"); + QFile::remove("File.txt"); } //------------------------------------------ @@ -3135,5 +3141,91 @@ void tst_QFile::objectConstructors() QVERIFY(!file2->exists()); } +#ifdef Q_OS_SYMBIAN +void tst_QFile::platformSecurity_data() +{ + QTest::addColumn("file"); + QTest::addColumn("readable"); + QTest::addColumn("writable"); + + QString selfname = QCoreApplication::applicationFilePath(); + QString ownprivate = QCoreApplication::applicationDirPath(); + QString owndrive = selfname.left(2); + bool amiprivileged = RProcess().HasCapability(ECapabilityAllFiles); + QTest::newRow("resource") << owndrive + "/resource/apps/tst_qfile.rsc" << true << amiprivileged; + QTest::newRow("sys") << selfname << amiprivileged << false; + QTest::newRow("own private") << ownprivate + "/testfile.txt" << true << true; + QTest::newRow("other private") << owndrive + "/private/10003a3f/import/apps/tst_qfile_reg.rsc" << amiprivileged << amiprivileged; +} + +void tst_QFile::platformSecurity() +{ + QFETCH(QString,file); + QFETCH(bool,readable); + QFETCH(bool,writable); + + { + QFile f(file); + QCOMPARE(f.open(QIODevice::ReadOnly), readable); + } + + { + QFile f(file); + QCOMPARE(f.open(QIODevice::ReadOnly | QIODevice::Unbuffered), readable); + } + + //append mode used to avoid truncating the files. + { + QFile f(file); + QCOMPARE(f.open(QIODevice::WriteOnly | QIODevice::Append), writable); + } + + { + QFile f(file); + QCOMPARE(f.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Unbuffered), writable); + } + + { + QFile f(file); + QCOMPARE(f.open(QIODevice::ReadWrite), writable); + } + + { + QFile f(file); + QCOMPARE(f.open(QIODevice::ReadWrite | QIODevice::Unbuffered), writable); + } +} +#endif + +void tst_QFile::caseSensitivity() +{ +#if defined(Q_OS_SYMBIAN) || defined(Q_OS_WIN) + const bool caseSensitive = false; +#else + const bool caseSensitive = true; +#endif + QByteArray testData("a little test"); + QString filename("File.txt"); + { + QFile f(filename); + QVERIFY(f.open(QIODevice::WriteOnly)); + QVERIFY(f.write(testData)); + f.close(); + } + QStringList alternates; + QFileInfo fi(filename); + QVERIFY(fi.exists()); + alternates << "file.txt" << "File.TXT" << "fIlE.TxT" << fi.absoluteFilePath().toUpper() << fi.absoluteFilePath().toLower(); + foreach (QString alt, alternates) { + QFileInfo fi2(alt); + QCOMPARE(fi2.exists(), !caseSensitive); + QCOMPARE(fi.size() == fi2.size(), !caseSensitive); + QFile f2(alt); + QCOMPARE(f2.open(QIODevice::ReadOnly), !caseSensitive); + if (caseSensitive) + QCOMPARE(f2.readAll(), testData); + } +} + QTEST_MAIN(tst_QFile) #include "tst_qfile.moc" -- cgit v0.12 From 1555eed6c27a843e0ecb09c15a915c0a3f76fd1e Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 29 Nov 2010 17:45:12 +0000 Subject: QtDeclarative: make autotests compile on symbian Move tests for private classes inside private_tests scope Add missing libraries Add QT_NO_CONCURRENT ifdef around a test case Define Q_DECLARATIVE_PRIVATE_EXPORT as Q_AUTOTEST_EXPORT, so the classes are exported for autotests, previously they were exported on every OS except symbian. (this doesn't affect exports for production builds) Reviewed-by: Miikka Heikkinen --- src/declarative/qml/qdeclarativeglobal_p.h | 2 +- tests/auto/declarative/declarative.pro | 44 ++++++++++++---------- tests/auto/declarative/examples/examples.pro | 2 + .../tst_qdeclarativepixmapcache.cpp | 4 ++ .../qdeclarativeviewer/qdeclarativeviewer.pro | 2 + tests/auto/declarative/qmlvisual/qmlvisual.pro | 1 - tests/auto/declarative/symbianlibs.pri | 9 +++++ 7 files changed, 42 insertions(+), 22 deletions(-) create mode 100644 tests/auto/declarative/symbianlibs.pri diff --git a/src/declarative/qml/qdeclarativeglobal_p.h b/src/declarative/qml/qdeclarativeglobal_p.h index 31fbb1e..b8428b8 100644 --- a/src/declarative/qml/qdeclarativeglobal_p.h +++ b/src/declarative/qml/qdeclarativeglobal_p.h @@ -65,7 +65,7 @@ QT_MODULE(Declarative) } #ifdef Q_OS_SYMBIAN -#define Q_DECLARATIVE_PRIVATE_EXPORT +#define Q_DECLARATIVE_PRIVATE_EXPORT Q_AUTOTEST_EXPORT #else #define Q_DECLARATIVE_PRIVATE_EXPORT Q_DECLARATIVE_EXPORT #endif diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index f0fcfa9..499c155 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -8,74 +8,78 @@ SUBDIRS += \ SUBDIRS += \ examples \ parserstress \ + qdeclarativecomponent \ + qdeclarativecontext \ + qdeclarativeengine \ + qdeclarativeerror \ + qdeclarativefolderlistmodel \ + qdeclarativeinfo \ + qdeclarativelayoutitem \ + qdeclarativelistreference \ + qdeclarativemoduleplugin \ + qdeclarativeparticles \ + qdeclarativepixmapcache \ + qdeclarativeqt \ + qdeclarativeview \ + qdeclarativeviewer \ + qdeclarativexmlhttprequest \ + qmlvisual \ + moduleqt47 + +contains(QT_CONFIG, private_tests) { + SUBDIRS += \ qdeclarativeanchors \ qdeclarativeanimatedimage \ qdeclarativeanimations \ qdeclarativebehaviors \ qdeclarativebinding \ qdeclarativeborderimage \ - qdeclarativecomponent \ qdeclarativeconnection \ - qdeclarativecontext \ qdeclarativedebug \ qdeclarativedebugclient \ qdeclarativedebugservice \ qdeclarativedom \ qdeclarativeecmascript \ - qdeclarativeengine \ - qdeclarativeerror \ - qdeclarativefolderlistmodel \ - qdeclarativefontloader \ qdeclarativeflickable \ qdeclarativeflipable \ qdeclarativefocusscope \ + qdeclarativefontloader \ qdeclarativegridview \ qdeclarativeimage \ qdeclarativeimageprovider \ - qdeclarativeinfo \ qdeclarativeinstruction \ qdeclarativeitem \ qdeclarativelanguage \ - qdeclarativelayoutitem \ qdeclarativelistmodel \ - qdeclarativelistreference \ qdeclarativelistview \ qdeclarativeloader \ - qdeclarativemoduleplugin \ qdeclarativemousearea \ - qdeclarativeparticles \ qdeclarativepathview \ - qdeclarativepixmapcache \ qdeclarativepositioners \ qdeclarativeproperty \ qdeclarativepropertymap \ - qdeclarativeqt \ qdeclarativerepeater \ qdeclarativesmoothedanimation \ qdeclarativespringanimation \ + qdeclarativestyledtext \ qdeclarativesqldatabase \ qdeclarativestates \ - qdeclarativestyledtext \ qdeclarativesystempalette \ qdeclarativetext \ qdeclarativetextedit \ qdeclarativetextinput \ qdeclarativetimer \ qdeclarativevaluetypes \ - qdeclarativeview \ - qdeclarativeviewer \ qdeclarativevisualdatamodel \ qdeclarativeworkerscript \ - qdeclarativexmlhttprequest \ qdeclarativexmllistmodel \ - qmlvisual \ - qpacketprotocol \ - moduleqt47 + qpacketprotocol contains(QT_CONFIG, webkit) { SUBDIRS += \ qdeclarativewebview } +} # Tests which should run in Pulse PULSE_TESTS = $$SUBDIRS diff --git a/tests/auto/declarative/examples/examples.pro b/tests/auto/declarative/examples/examples.pro index 97f02af..dafc146 100644 --- a/tests/auto/declarative/examples/examples.pro +++ b/tests/auto/declarative/examples/examples.pro @@ -6,6 +6,8 @@ SOURCES += tst_examples.cpp include(../../../../tools/qml/qml.pri) +include(../symbianlibs.pri) + symbian: { importFiles.files = data importFiles.path = . diff --git a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp index 50d0731..1a38e87 100644 --- a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp +++ b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp @@ -74,7 +74,9 @@ private slots: void massive(); void cancelcrash(); void shrinkcache(); +#ifndef QT_NO_CONCURRENT void networkCrash(); +#endif private: QDeclarativeEngine engine; QUrl thisfile; @@ -363,6 +365,7 @@ void createNetworkServer() eventLoop.exec(); } +#ifndef QT_NO_CONCURRENT // QT-3957 void tst_qdeclarativepixmapcache::networkCrash() { @@ -377,6 +380,7 @@ void tst_qdeclarativepixmapcache::networkCrash() } future.cancel(); } +#endif QTEST_MAIN(tst_qdeclarativepixmapcache) diff --git a/tests/auto/declarative/qdeclarativeviewer/qdeclarativeviewer.pro b/tests/auto/declarative/qdeclarativeviewer/qdeclarativeviewer.pro index a94992b..8d4b410 100644 --- a/tests/auto/declarative/qdeclarativeviewer/qdeclarativeviewer.pro +++ b/tests/auto/declarative/qdeclarativeviewer/qdeclarativeviewer.pro @@ -6,6 +6,8 @@ include(../../../../tools/qml/qml.pri) SOURCES += tst_qdeclarativeviewer.cpp +include(../symbianlibs.pri) + symbian: { importFiles.files = data importFiles.path = . diff --git a/tests/auto/declarative/qmlvisual/qmlvisual.pro b/tests/auto/declarative/qmlvisual/qmlvisual.pro index d9fce44..84df15c 100644 --- a/tests/auto/declarative/qmlvisual/qmlvisual.pro +++ b/tests/auto/declarative/qmlvisual/qmlvisual.pro @@ -19,7 +19,6 @@ symbian: { qdeclarativepathview \ qdeclarativepositioners \ qdeclarativesmoothedanimation \ - qdeclarativespringfollow \ qdeclarativetext \ qdeclarativetextedit \ qdeclarativetextinput \ diff --git a/tests/auto/declarative/symbianlibs.pri b/tests/auto/declarative/symbianlibs.pri new file mode 100644 index 0000000..4452f67 --- /dev/null +++ b/tests/auto/declarative/symbianlibs.pri @@ -0,0 +1,9 @@ +#additional libs required for orientation sensor +symbian { + !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) { + LIBS += -lsensrvclient -lsensrvutil + } + contains(QT_CONFIG, s60): { + LIBS += -lavkon -lcone + } +} -- cgit v0.12 From 173e6954e13871606a685229af279a2038f9d939 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 30 Nov 2010 14:21:12 +0000 Subject: Fix compile error for qdir autotest on symbian3 Header file is in a different location compared to previous SDK versions Reviewed-by: Miikka Heikkinen --- tests/auto/qdir/qdir.pro | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/auto/qdir/qdir.pro b/tests/auto/qdir/qdir.pro index 55fd031..472e646 100644 --- a/tests/auto/qdir/qdir.pro +++ b/tests/auto/qdir/qdir.pro @@ -16,6 +16,7 @@ wince* { TARGET.UID3 = 0xE0340002 DEFINES += SYMBIAN_SRCDIR_UID=$$lower($$replace(TARGET.UID3,"0x","")) LIBS += -lefsrv + INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE } else { contains(QT_CONFIG, qt3support):QT += qt3support DEFINES += SRCDIR=\\\"$$PWD/\\\" -- cgit v0.12 From 7380e973a5e8dd8633e955792f219f6231b9513e Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 30 Nov 2010 14:24:59 +0000 Subject: Add test generated files to .gitignore The tests/.gitignore, did not inherit from the main one, which causes git to show hundreds of new files when running tests on symbian. Reviewed-by: Markus Goetz --- .gitignore | 14 +++++++++++++- tests/.gitignore | 6 ------ 2 files changed, 13 insertions(+), 7 deletions(-) delete mode 100644 tests/.gitignore diff --git a/.gitignore b/.gitignore index af52197..521cea2 100644 --- a/.gitignore +++ b/.gitignore @@ -119,6 +119,14 @@ translations/*.qm translations/*_untranslated.ts qrc_*.cpp +# Test generated files +QObject.log +tst_* +!tst_*.* +tst_*.log +tst_*.debug +tst_*~ + # xemacs temporary files *.flc @@ -203,7 +211,7 @@ doc-build # --------------------- ABLD.BAT -bld.inf +bld.inf* *.mmp *.mk *.rss @@ -221,6 +229,10 @@ plugin_commonu.def *.sym *.lib +# runonphone crash dumps +d_exc_*.txt +d_exc_*.stk + # Generated by abldfast.bat from devtools. .abldsteps.* diff --git a/tests/.gitignore b/tests/.gitignore deleted file mode 100644 index b203473..0000000 --- a/tests/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -QObject.log -tst_* -!tst_*.* -tst_*.log -tst_*.debug -tst_*~ -- cgit v0.12 From be03dc12478085b3d8ec92a87fe12234169dce3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 30 Nov 2010 20:37:07 +0100 Subject: Fix typo in QFile test If file system isn't case sensitive, open succeeds as should reading, with the read data matching testData. --- tests/auto/qfile/tst_qfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 4421f0d..d561f53 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -3222,7 +3222,7 @@ void tst_QFile::caseSensitivity() QCOMPARE(fi.size() == fi2.size(), !caseSensitive); QFile f2(alt); QCOMPARE(f2.open(QIODevice::ReadOnly), !caseSensitive); - if (caseSensitive) + if (!caseSensitive) QCOMPARE(f2.readAll(), testData); } } -- cgit v0.12 From 16252a59afa58b0cb4b0ffb02a330dcf002c9750 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 30 Nov 2010 20:50:48 +0100 Subject: Fix tst_QFile::caseSensitivity test on Mac Mac's default file system is case-preserving, but case-insensitive, otherwise. --- tests/auto/qfile/tst_qfile.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index d561f53..a8715e2 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -3199,7 +3199,7 @@ void tst_QFile::platformSecurity() void tst_QFile::caseSensitivity() { -#if defined(Q_OS_SYMBIAN) || defined(Q_OS_WIN) +#if defined(Q_OS_SYMBIAN) || defined(Q_OS_WIN) || defined(Q_OS_MAC) const bool caseSensitive = false; #else const bool caseSensitive = true; -- cgit v0.12 From 993f9b23d72ec74453163413403d0cf06d9f08f4 Mon Sep 17 00:00:00 2001 From: aavit Date: Thu, 2 Dec 2010 15:23:13 +0100 Subject: Added new View command on reports --- tests/arthur/baselineserver/src/baselineserver.cpp | 8 +++ tests/arthur/baselineserver/src/baselineserver.h | 1 + tests/arthur/baselineserver/src/baselineserver.pro | 3 + tests/arthur/baselineserver/src/baselineserver.qrc | 5 ++ tests/arthur/baselineserver/src/htmlpage.cpp | 18 +++-- .../arthur/baselineserver/src/templates/view.html | 79 ++++++++++++++++++++++ 6 files changed, 108 insertions(+), 6 deletions(-) create mode 100644 tests/arthur/baselineserver/src/baselineserver.qrc create mode 100644 tests/arthur/baselineserver/src/templates/view.html diff --git a/tests/arthur/baselineserver/src/baselineserver.cpp b/tests/arthur/baselineserver/src/baselineserver.cpp index fbf68f5..53e40b6 100644 --- a/tests/arthur/baselineserver/src/baselineserver.cpp +++ b/tests/arthur/baselineserver/src/baselineserver.cpp @@ -355,6 +355,14 @@ QString BaselineHandler::pathForItem(const ImageItem &item, bool isBaseline, boo } +QString BaselineHandler::view(const QString &baseline, const QString &rendered, const QString &compared) +{ + QFile f(":/templates/view.html"); + f.open(QIODevice::ReadOnly); + return QString::fromLatin1(f.readAll()).arg('/'+baseline, '/'+rendered, '/'+compared); +} + + QString BaselineHandler::clearAllBaselines(const QString &context) { int tot = 0; diff --git a/tests/arthur/baselineserver/src/baselineserver.h b/tests/arthur/baselineserver/src/baselineserver.h index c5cb45e..346ce1f 100644 --- a/tests/arthur/baselineserver/src/baselineserver.h +++ b/tests/arthur/baselineserver/src/baselineserver.h @@ -100,6 +100,7 @@ public: BaselineHandler(int socketDescriptor = -1); void testPathMapping(); + static QString view(const QString &baseline, const QString &rendered, const QString &compared); static QString clearAllBaselines(const QString &context); static QString updateSingleBaseline(const QString &oldBaseline, const QString &newBaseline); static QString blacklistTest(const QString &context, const QString &itemId, bool removeFromBlacklist = false); diff --git a/tests/arthur/baselineserver/src/baselineserver.pro b/tests/arthur/baselineserver/src/baselineserver.pro index a7be03d..defa05a 100644 --- a/tests/arthur/baselineserver/src/baselineserver.pro +++ b/tests/arthur/baselineserver/src/baselineserver.pro @@ -25,3 +25,6 @@ SOURCES += main.cpp \ HEADERS += \ baselineserver.h \ htmlpage.h + +RESOURCES += \ + baselineserver.qrc diff --git a/tests/arthur/baselineserver/src/baselineserver.qrc b/tests/arthur/baselineserver/src/baselineserver.qrc new file mode 100644 index 0000000..b5cd6af --- /dev/null +++ b/tests/arthur/baselineserver/src/baselineserver.qrc @@ -0,0 +1,5 @@ + + + templates/view.html + + diff --git a/tests/arthur/baselineserver/src/htmlpage.cpp b/tests/arthur/baselineserver/src/htmlpage.cpp index 9659505..11c2eac 100644 --- a/tests/arthur/baselineserver/src/htmlpage.cpp +++ b/tests/arthur/baselineserver/src/htmlpage.cpp @@ -131,10 +131,13 @@ void HTMLPage::addItem(const QString &baseline, const QString &rendered, const I foreach(const QString& img, images) out << "\n"; - out << "

Replace baseline with rendered

" + out << "\n" + << "

Replace baseline with rendered

\n" << "

Blacklist this item

" + << "&itemId=" << item.scriptName << "&url=" << pageUrl << "\">Blacklist this item

\n" + << "

View

\n" << "\n"; out << "\n\n"; @@ -213,12 +216,15 @@ void HTMLPage::handleCGIQuery(const QString &query) QTextStream s(stdout); s << "Content-Type: text/html\r\n\r\n" << ""; -// << "Contents of QUERY_STRING:
" -// << "Full string = " << query << "
"; QString command(cgiUrl.queryItemValue("cmd")); - if (command == QLS("updateSingleBaseline")) { + if (command == QLS("view")) { + s << BaselineHandler::view(cgiUrl.queryItemValue(QLS("baseline")), + cgiUrl.queryItemValue(QLS("rendered")), + cgiUrl.queryItemValue(QLS("compared"))); + } + else if (command == QLS("updateSingleBaseline")) { s << BaselineHandler::updateSingleBaseline(cgiUrl.queryItemValue(QLS("oldBaseline")), cgiUrl.queryItemValue(QLS("newBaseline"))); } else if (command == QLS("clearAllBaselines")) { diff --git a/tests/arthur/baselineserver/src/templates/view.html b/tests/arthur/baselineserver/src/templates/view.html new file mode 100644 index 0000000..c048f47 --- /dev/null +++ b/tests/arthur/baselineserver/src/templates/view.html @@ -0,0 +1,79 @@ +

Lancelot Viewer

+ +

+Zoom: +1x +2x +4x +

+ +

+ + + + + + + + + + + + +
Baseline%1
Rendered%2
Differences

+ + +

+ +

+ + -- cgit v0.12 From 63a2c0a429674506c5a5d9e37571033608e9704b Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 2 Dec 2010 14:24:03 +0000 Subject: Update def files refreeze on top of master def files (we have added some exports to QtCore) Reviewed-by: Trust Me --- src/s60installs/bwins/QtCoreu.def | 7 ++++++- src/s60installs/eabi/QtCoreu.def | 4 ++++ src/s60installs/eabi/QtDeclarativeu.def | 2 +- src/s60installs/eabi/QtGuiu.def | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def index b678b4e..84aa246 100644 --- a/src/s60installs/bwins/QtCoreu.def +++ b/src/s60installs/bwins/QtCoreu.def @@ -4585,4 +4585,9 @@ EXPORTS ?advance@QAnimationDriver@@QAEXXZ @ 4584 NONAME ; void QAnimationDriver::advance(void) ?start@QAnimationDriver@@AAEXXZ @ 4585 NONAME ; void QAnimationDriver::start(void) ?unlockInline@QMutex@@QAEXXZ @ 4586 NONAME ; void QMutex::unlockInline(void) - + ??0QSystemError@@QAE@HW4ErrorScope@0@@Z @ 4587 NONAME ; QSystemError::QSystemError(int, enum QSystemError::ErrorScope) + ??0QSystemError@@QAE@XZ @ 4588 NONAME ; QSystemError::QSystemError(void) + ?error@QSystemError@@QAEHXZ @ 4589 NONAME ; int QSystemError::error(void) + ?scope@QSystemError@@QAE?AW4ErrorScope@1@XZ @ 4590 NONAME ; enum QSystemError::ErrorScope QSystemError::scope(void) + ?toString@QSystemError@@QAE?AVQString@@XZ @ 4591 NONAME ; class QString QSystemError::toString(void) + ??0QFileInfo@@QAE@PAVQFileInfoPrivate@@@Z @ 4592 NONAME ; QFileInfo::QFileInfo(class QFileInfoPrivate *) diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index 02e72a1..130d9c0 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -3791,4 +3791,8 @@ EXPORTS _ZTV13QUnifiedTimer @ 3790 NONAME _ZTV16QAnimationDriver @ 3791 NONAME _ZTV23QAnimationDriverPrivate @ 3792 NONAME + _ZN12QSystemError8toStringEv @ 3793 NONAME + _ZN5QChar21currentUnicodeVersionEv @ 3794 NONAME + _ZN9QFileInfoC1EP16QFileInfoPrivate @ 3795 NONAME + _ZN9QFileInfoC2EP16QFileInfoPrivate @ 3796 NONAME diff --git a/src/s60installs/eabi/QtDeclarativeu.def b/src/s60installs/eabi/QtDeclarativeu.def index bb0bd5a..b0efab4 100644 --- a/src/s60installs/eabi/QtDeclarativeu.def +++ b/src/s60installs/eabi/QtDeclarativeu.def @@ -1883,6 +1883,6 @@ EXPORTS _ZThn8_N29QDeclarativeAbstractAnimation9setTargetERK20QDeclarativeProperty @ 1882 NONAME ABSENT _ZThn8_N29QDeclarativeAbstractAnimationD0Ev @ 1883 NONAME ABSENT _ZThn8_N29QDeclarativeAbstractAnimationD1Ev @ 1884 NONAME ABSENT - _ZN23QDeclarativeDebugHelper15enableDebuggingEv @ 1885 NONAME ABSENT + _ZN23QDeclarativeDebugHelper15enableDebuggingEv @ 1885 NONAME _ZN27QDeclarativePropertyPrivate7connectEPK7QObjectiS2_iiPi @ 1886 NONAME ABSENT diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 703d11b..926ed52 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -12105,7 +12105,7 @@ EXPORTS _ZN15QStaticTextItemD1Ev @ 12104 NONAME _ZN15QStaticTextItemD2Ev @ 12105 NONAME _ZN19QEventDispatcherS6031reactivateDeferredActiveObjectsEv @ 12106 NONAME - _Z18qt_addBitmapToPathffPKhiiiP12QPainterPath @ 12107 NONAME ABSENT + _Z18qt_addBitmapToPathffPKhiiiP12QPainterPath @ 12107 NONAME _Z22qt_fontdata_from_indexi @ 12108 NONAME _ZN10QBlittable4lockEv @ 12109 NONAME _ZN10QBlittable6unlockEv @ 12110 NONAME -- cgit v0.12 From 3f7c80d105d18a3b901a7f3077d8faaea63e0659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Fri, 3 Dec 2010 10:01:28 +0100 Subject: Fix integer overflow in bitfield UnfeasibleConstraint is 4, and that does not fit in 2 bits. Spotted by Thiago Reviewed-by: Thiago --- src/gui/graphicsview/qgridlayoutengine_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgridlayoutengine_p.h b/src/gui/graphicsview/qgridlayoutengine_p.h index 44efbba..1b2e2ec 100644 --- a/src/gui/graphicsview/qgridlayoutengine_p.h +++ b/src/gui/graphicsview/qgridlayoutengine_p.h @@ -433,7 +433,7 @@ private: // Lazily computed from the above user input mutable int q_cachedEffectiveFirstRows[NOrientations]; mutable int q_cachedEffectiveLastRows[NOrientations]; - mutable quint8 q_cachedConstraintOrientation : 2; + mutable quint8 q_cachedConstraintOrientation : 3; // Layout item input mutable QLayoutStyleInfo q_cachedDataForStyleInfo; -- cgit v0.12 From 9988c66e0bc1877d27bb89fbf034bb0e05091a52 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 3 Dec 2010 10:44:54 +0000 Subject: Fix compile error Missing QT_BEGIN_NAMESPACE caused error when the namespace macros are defined. Reviewed-by: mread --- src/corelib/kernel/qsystemerror.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/kernel/qsystemerror.cpp b/src/corelib/kernel/qsystemerror.cpp index d2350b5..953ed95 100644 --- a/src/corelib/kernel/qsystemerror.cpp +++ b/src/corelib/kernel/qsystemerror.cpp @@ -51,6 +51,8 @@ #include #endif +QT_BEGIN_NAMESPACE + #if !defined(Q_OS_WIN) && !defined(QT_NO_THREAD) && !defined(Q_OS_INTEGRITY) && !defined(Q_OS_QNX) && \ defined(_POSIX_THREAD_SAFE_FUNCTIONS) && _POSIX_VERSION >= 200112L namespace { -- cgit v0.12 From c343e2139b1764008b812ee6cc3a2a980fa4d147 Mon Sep 17 00:00:00 2001 From: John Tapsell Date: Tue, 30 Nov 2010 10:20:37 +0000 Subject: QGraphicsLayoutItem - fix invalidating sizehint-with-constraints cache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Jan-Arve Sæther --- src/gui/graphicsview/qgraphicslayout.cpp | 7 +++++-- src/gui/graphicsview/qgraphicslayoutitem.cpp | 2 ++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gui/graphicsview/qgraphicslayout.cpp b/src/gui/graphicsview/qgraphicslayout.cpp index 86b4589..3e95735 100644 --- a/src/gui/graphicsview/qgraphicslayout.cpp +++ b/src/gui/graphicsview/qgraphicslayout.cpp @@ -307,10 +307,13 @@ void QGraphicsLayout::invalidate() // does not call the base implementation? In addition, updateGeometry() // does more than we need. layoutItem->d_func()->sizeHintCacheDirty = true; - layoutItem = layoutItem->parentLayoutItem(); + layoutItem->d_func()->sizeHintWithConstraintCacheDirty = true; + layoutItem = layoutItem->parentLayoutItem(); } - if (layoutItem) + if (layoutItem) { layoutItem->d_func()->sizeHintCacheDirty = true; + layoutItem->d_func()->sizeHintWithConstraintCacheDirty = true; + } bool postIt = layoutItem ? !layoutItem->isLayout() : false; if (postIt) { diff --git a/src/gui/graphicsview/qgraphicslayoutitem.cpp b/src/gui/graphicsview/qgraphicslayoutitem.cpp index 016cfbf..df13039 100644 --- a/src/gui/graphicsview/qgraphicslayoutitem.cpp +++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp @@ -128,6 +128,7 @@ QGraphicsLayoutItemPrivate::~QGraphicsLayoutItemPrivate() void QGraphicsLayoutItemPrivate::init() { sizeHintCacheDirty = true; + sizeHintWithConstraintCacheDirty = true; sizePolicy = QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); } @@ -828,6 +829,7 @@ void QGraphicsLayoutItem::updateGeometry() { Q_D(QGraphicsLayoutItem); d->sizeHintCacheDirty = true; + d->sizeHintWithConstraintCacheDirty = true; } /*! -- cgit v0.12 From b9a029d7abaf46353b7b428eba29c3612661743e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Sat, 4 Dec 2010 08:55:10 +0100 Subject: Add missing include --- src/corelib/io/qfilesystemengine.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index 1e5914b..d9d802e 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -42,6 +42,7 @@ #include "qfilesystemengine_p.h" #include #include +#include #include #ifdef QT_BUILD_CORE_LIB #include -- cgit v0.12 From 684a61aa3da00b04f44eea0e92dbcb6183f505bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Sat, 4 Dec 2010 17:04:33 +0100 Subject: More missing includes --- src/corelib/io/qfilesystemiterator_win.cpp | 2 ++ src/corelib/io/qfilesystemmetadata_p.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 9181789..095a46a 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -43,6 +43,8 @@ #include "qfilesystemengine_p.h" #include "qplatformdefs.h" +#include + QT_BEGIN_NAMESPACE bool done = true; diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 860b887..50c1b61 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -60,6 +60,7 @@ // Platform-specific includes #if defined(Q_OS_WIN) +#include #elif defined(Q_OS_SYMBIAN) #include #include -- cgit v0.12 From 72db8d3075f91cac831de590dd6748c6bbc9a52f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Sat, 4 Dec 2010 20:31:06 +0100 Subject: Set minimum target Windows version to 2000 Required for FindFirstFileEx. --- src/corelib/io/qfilesystemiterator_win.cpp | 4 ++++ src/corelib/io/qfilesystemmetadata_p.h | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 095a46a..96c7fdb 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -43,6 +43,10 @@ #include "qfilesystemengine_p.h" #include "qplatformdefs.h" +#ifndef _WIN32_WINNT +#define _WIN32_WINNT 0x0500 +#endif + #include QT_BEGIN_NAMESPACE diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 50c1b61..03bb7f6 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -60,6 +60,10 @@ // Platform-specific includes #if defined(Q_OS_WIN) +#ifndef _WIN32_WINNT +#define _WIN32_WINNT 0x0500 +#endif + #include #elif defined(Q_OS_SYMBIAN) #include -- cgit v0.12 From 07de3abf3785248160fbd42c449b0832ea97c320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Sat, 4 Dec 2010 20:55:13 +0100 Subject: No symbolic links in Windows CE --- src/corelib/io/qfilesystemmetadata_p.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 03bb7f6..5b5587b 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -370,11 +370,13 @@ inline void QFileSystemMetaData::fillFromFindData(WIN32_FIND_DATA &findData, boo if (setLinkType) { knownFlagsMask |= LinkType; entryFlags &= ~LinkType; +#if !defined(Q_OS_WINCE) if ((fileAttribute_ & FILE_ATTRIBUTE_REPARSE_POINT) && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK || findData.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT)) { entryFlags |= LinkType; } +#endif } } -- cgit v0.12 From e2498cf6e6c193df849f6dbbaab3a827ca3e3a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Sun, 5 Dec 2010 01:25:02 +0100 Subject: Removing unused duplicate definitions These functions have been forked in qfilesystemengine_win.cpp and are no longer used in this file. Cleaning up. --- src/corelib/io/qfsfileengine_win.cpp | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 715fe39..3b6e80c 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -75,15 +75,6 @@ QT_BEGIN_NAMESPACE - - -#if defined(Q_OS_WINCE) -static QString qfsPrivateCurrentDir = QLatin1String(""); -// As none of the functions we try to resolve do exist on Windows CE -// we use QT_NO_LIBRARY to shorten everything up a little bit. -#define QT_NO_LIBRARY 1 -#endif - #if !defined(Q_OS_WINCE) static inline bool isUncPath(const QString &path) { @@ -114,24 +105,6 @@ QString QFSFileEnginePrivate::longFileName(const QString &path) #endif } -static inline bool getFindData(QString path, WIN32_FIND_DATA &findData) -{ - // path should not end with a trailing slash - while (path.endsWith(QLatin1Char('\\'))) - path.chop(1); - - // can't handle drives - if (!path.endsWith(QLatin1Char(':'))) { - HANDLE hFind = ::FindFirstFile((wchar_t*)path.utf16(), &findData); - if (hFind != INVALID_HANDLE_VALUE) { - ::FindClose(hFind); - return true; - } - } - - return false; -} - /* \internal */ -- cgit v0.12 From e37ca76dc70269017eaa7a32c4fae97c9e153ca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Sun, 5 Dec 2010 01:28:48 +0100 Subject: New attempt at fixing compilation failure Including windows.h and defining _WIN32_WINNT didn't cut it. Instead, fall back to explicitly #defining IO_REPARSE_TAG_SYMLINK in metadata header, since it's all that's needed there. In windows-specific iterator implementation ensure _WIN32_WINNT >= 0x0500. --- src/corelib/io/qfilesystemiterator_win.cpp | 3 ++- src/corelib/io/qfilesystemmetadata_p.h | 7 ++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 96c7fdb..6608a9e 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -43,7 +43,8 @@ #include "qfilesystemengine_p.h" #include "qplatformdefs.h" -#ifndef _WIN32_WINNT +#if _WIN32_WINNT < 0x0500 +#undef _WIN32_WINNT #define _WIN32_WINNT 0x0500 #endif diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 5b5587b..c4e11d9 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -60,15 +60,12 @@ // Platform-specific includes #if defined(Q_OS_WIN) -#ifndef _WIN32_WINNT -#define _WIN32_WINNT 0x0500 +#ifndef IO_REPARSE_TAG_SYMLINK +#define IO_REPARSE_TAG_SYMLINK (0xA000000CL) #endif - -#include #elif defined(Q_OS_SYMBIAN) #include #include -#else #endif QT_BEGIN_NAMESPACE -- cgit v0.12 From 364e9d4ff5056f36fbff436ba9539a69ae45c5d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Sun, 5 Dec 2010 03:05:40 +0100 Subject: Define _WIN32_WINNT before any includes ... to ensure it's properly defined before is ever included. --- src/corelib/io/qfilesystemiterator_win.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 6608a9e..b5fce12 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -39,15 +39,15 @@ ** ****************************************************************************/ -#include "qfilesystemiterator_p.h" -#include "qfilesystemengine_p.h" -#include "qplatformdefs.h" - #if _WIN32_WINNT < 0x0500 #undef _WIN32_WINNT #define _WIN32_WINNT 0x0500 #endif +#include "qfilesystemiterator_p.h" +#include "qfilesystemengine_p.h" +#include "qplatformdefs.h" + #include QT_BEGIN_NAMESPACE -- cgit v0.12 From dcc7df8ed32d900a616d415c0eb2565e559f6435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Sun, 5 Dec 2010 11:12:37 +0100 Subject: Add missing license header to test case --- .../tst_qabstractfileengine.cpp | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp b/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp index f98adca..5952252 100644 --- a/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp +++ b/tests/auto/qabstractfileengine/tst_qabstractfileengine.cpp @@ -1,3 +1,44 @@ +/**************************************************************************** +** +** 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 #include -- cgit v0.12 From 9371ba70ac747484b1300d96c2a80dcdbc872fe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Sun, 5 Dec 2010 11:28:28 +0100 Subject: Fix spelling in comments --- src/corelib/io/qfilesystemengine_symbian.cpp | 2 +- src/corelib/io/qfilesystemengine_win.cpp | 2 +- tests/auto/qdir/tst_qdir.cpp | 2 +- tests/auto/qfile/tst_qfile.cpp | 4 ++-- tests/auto/qfiledialog/tst_qfiledialog.cpp | 8 ++++---- tests/auto/qfileinfo/tst_qfileinfo.cpp | 6 +++--- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/corelib/io/qfilesystemengine_symbian.cpp b/src/corelib/io/qfilesystemengine_symbian.cpp index 3659a39..84c3aa1 100644 --- a/src/corelib/io/qfilesystemengine_symbian.cpp +++ b/src/corelib/io/qfilesystemengine_symbian.cpp @@ -378,7 +378,7 @@ bool QFileSystemEngine::setCurrentPath(const QFileSystemEntry &entry) if(!abspath.endsWith(QLatin1Char('\\'))) abspath.append(QLatin1Char('\\')); TInt r = fs.SetSessionPath(qt_QString2TPtrC(abspath)); - //SetSessionPath succeeds for non existant directory, which is why it's checked above + //SetSessionPath succeeds for non existent directory, which is why it's checked above if (r == KErrNone) { __ASSERT_COMPILE(sizeof(wchar_t) == sizeof(unsigned short)); //attempt to set open C to the same path diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 621b631..39fce97 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -378,7 +378,7 @@ static QString readLink(const QFileSystemEntry &link) static bool uncShareExists(const QString &server) { - // This code asumes the UNC path is always like \\?\UNC\server... + // This code assumes the UNC path is always like \\?\UNC\server... QStringList parts = server.split(QLatin1Char('\\'), QString::SkipEmptyParts); if (parts.count() >= 3) { QStringList shares; diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index 6a81da6..dc46f52 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -928,7 +928,7 @@ void tst_QDir::current() if (!path.isEmpty()) { bool b = QDir::setCurrent(path); - // If path is non existant, then setCurrent should be false (currentDir is empty in testData) + // If path is non existent, then setCurrent should be false (currentDir is empty in testData) QVERIFY(b == !currentDir.isEmpty()); } if (!currentDir.isEmpty()) { diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index a8715e2..c19079f 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -414,7 +414,7 @@ void tst_QFile::cleanupTestCase() // attributes and the contents itself // will be changed as far as we have a // proper way to handle files in the -// testing enviroment. +// testing environment. //------------------------------------------ void tst_QFile::exists() @@ -1702,7 +1702,7 @@ void tst_QFile::seekAfterEndOfFile() void tst_QFile::FILEReadWrite() { - // Tests modifing a file. First creates it then reads in 4 bytes and then overwrites these + // Tests modifying a file. First creates it then reads in 4 bytes and then overwrites these // 4 bytes with new values. At the end check to see the file contains the new values. QFile::remove("FILEReadWrite.txt"); diff --git a/tests/auto/qfiledialog/tst_qfiledialog.cpp b/tests/auto/qfiledialog/tst_qfiledialog.cpp index ec244c5..668a3e0 100644 --- a/tests/auto/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/qfiledialog/tst_qfiledialog.cpp @@ -187,7 +187,7 @@ public: QSize sizeHint(const QStyleOptionViewItem &, const QModelIndex &) const { return QSize(); } }; -// emited any time the selection model emits current changed +// emitted any time the selection model emits current changed void tst_QFiledialog::currentChangedSignal() { QNonNativeFileDialog fd; @@ -212,7 +212,7 @@ void tst_QFiledialog::currentChangedSignal() QCOMPARE(spyCurrentChanged.count(), 1); } -// only emited from the views, sidebar, or lookin combo +// only emitted from the views, sidebar, or lookin combo void tst_QFiledialog::directoryEnteredSignal() { #if defined QT_BUILD_INTERNAL @@ -273,7 +273,7 @@ void tst_QFiledialog::filesSelectedSignal_data() QTest::newRow("existingFiles") << QFileDialog::ExistingFiles; } -// emited when the dialog closes with the selected files +// emitted when the dialog closes with the selected files void tst_QFiledialog::filesSelectedSignal() { QNonNativeFileDialog fd; @@ -317,7 +317,7 @@ void tst_QFiledialog::filesSelectedSignal() QCOMPARE(spyFilesSelected.count(), 1); } -// only emited when the combo box is activated +// only emitted when the combo box is activated void tst_QFiledialog::filterSelectedSignal() { QNonNativeFileDialog fd; diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 79c5184..3bbe2ca 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -1653,8 +1653,8 @@ void tst_QFileInfo::owner() DWORD bufSize = 1024; if (GetUserNameW(usernameBuf, &bufSize)) { userName = QString::fromWCharArray(usernameBuf, bufSize); - // Special case : If the user is a member of Adminstrators group, all files - // created by the current user are owned by the Admistrators group. + // Special case : If the user is a member of Administrators group, all files + // created by the current user are owned by the Administrators group. LPLOCALGROUP_USERS_INFO_0 pBuf = NULL; DWORD dwLevel = 0; DWORD dwFlags = LG_INCLUDE_INDIRECT ; @@ -1664,7 +1664,7 @@ void tst_QFileInfo::owner() NET_API_STATUS nStatus; nStatus = NetUserGetLocalGroups(0, usernameBuf, dwLevel, dwFlags, (LPBYTE *) &pBuf, dwPrefMaxLen, &dwEntriesRead, &dwTotalEntries); - // Check if the current user is a member of Adminstrators group + // Check if the current user is a member of Administrators group if (nStatus == NERR_Success && pBuf){ for (int i = 0; i < dwEntriesRead; i++) { QString groupName = QString::fromWCharArray(pBuf[i].lgrui0_name); -- cgit v0.12 From db506f31cf98d050aef10534fb5dad7058f64caf Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 6 Dec 2010 08:57:21 +1000 Subject: Doc: make it clear that "z" affects sibling stacking order. Task-number: QTBUG-15802 --- src/declarative/graphicsitems/qdeclarativeitem.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 9d6fe12..932e68f 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -1809,9 +1809,9 @@ void QDeclarativeItem::setClip(bool c) /*! \qmlproperty real Item::z - Sets the stacking order of the item. By default the stacking order is 0. + Sets the stacking order of sibling items. By default the stacking order is 0. - Items with a higher stacking value are drawn on top of items with a + Items with a higher stacking value are drawn on top of siblings with a lower stacking order. Items with the same stacking value are drawn bottom up in the order they appear. Items with a negative stacking value are drawn under their parent's content. -- cgit v0.12 From ac977c4d57eba8fe2b71e51fc3d0b5eddd416e17 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 6 Dec 2010 12:46:35 +1000 Subject: Qt.include() docs weren't being picked up by qdoc This moves the Qt.include() docs to qdeclarativeengine.cpp and also documents it in the "Integrating JavaScript" page. Task-number: QTBUG-15855 --- doc/src/declarative/javascriptblocks.qdoc | 25 ++++++++++ .../integrating-javascript/includejs/app.qml | 56 ++++++++++++++++++++++ .../integrating-javascript/includejs/factorial.js | 49 +++++++++++++++++++ .../integrating-javascript/includejs/script.js | 48 +++++++++++++++++++ src/declarative/qml/qdeclarativeengine.cpp | 27 +++++++++++ src/declarative/qml/qdeclarativeinclude.cpp | 24 +--------- 6 files changed, 207 insertions(+), 22 deletions(-) create mode 100644 doc/src/snippets/declarative/integrating-javascript/includejs/app.qml create mode 100644 doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js create mode 100644 doc/src/snippets/declarative/integrating-javascript/includejs/script.js diff --git a/doc/src/declarative/javascriptblocks.qdoc b/doc/src/declarative/javascriptblocks.qdoc index 16d0633..41b64da 100644 --- a/doc/src/declarative/javascriptblocks.qdoc +++ b/doc/src/declarative/javascriptblocks.qdoc @@ -143,6 +143,31 @@ As they are shared, stateless library files cannot access QML component instance objects or properties directly, although QML values can be passed as function parameters. + +\section2 Importing One JavaScript File From Another + +If a JavaScript file needs to use functions defined inside another JavaScript file, +the other file can be imported using the \l {QML:Qt::include()}{Qt.include()} +function. This imports all functions from the other file into the current file's +namespace. + +For example, the QML code below left calls \c showCalculations() in \c script.js, +which in turn can call \c factorial() in \c factorial.js, as it has included +\c factorial.js using \l {QML:Qt::include()}{Qt.include()}. + +\table +\row +\o {1,2} \snippet doc/src/snippets/declarative/integrating-javascript/includejs/app.qml 0 +\o \snippet doc/src/snippets/declarative/integrating-javascript/includejs/script.js 0 +\row +\o \snippet doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js 0 +\endtable + +Notice that calling \l {QML:Qt::include()}{Qt.include()} imports all functions from +\c factorial.js into the \c MyScript namespace, which means the QML component can also +access \c factorial() directly as \c MyScript.factorial(). + + \section1 Running JavaScript at Startup It is occasionally necessary to run some imperative code at application (or diff --git a/doc/src/snippets/declarative/integrating-javascript/includejs/app.qml b/doc/src/snippets/declarative/integrating-javascript/includejs/app.qml new file mode 100644 index 0000000..2ecc475 --- /dev/null +++ b/doc/src/snippets/declarative/integrating-javascript/includejs/app.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** 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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +import QtQuick 1.0 +import "script.js" as MyScript + +Item { + width: 100; height: 100 + + MouseArea { + anchors.fill: parent + onClicked: { + MyScript.showCalculations(10) + console.log("Call factorial() from QML:", + MyScript.factorial(10)) + } + } +} +//![0] diff --git a/doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js b/doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js new file mode 100644 index 0000000..0a01e9e --- /dev/null +++ b/doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** 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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +// factorial.js +function factorial(a) { + a = parseInt(a); + if (a <= 0) + return 1; + else + return a * factorial(a - 1); +} +//![0] diff --git a/doc/src/snippets/declarative/integrating-javascript/includejs/script.js b/doc/src/snippets/declarative/integrating-javascript/includejs/script.js new file mode 100644 index 0000000..7380412 --- /dev/null +++ b/doc/src/snippets/declarative/integrating-javascript/includejs/script.js @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** 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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +//![0] +// script.js +Qt.include("factorial.js") + +function showCalculations(value) { + console.log("Call factorial() from script.js:", + factorial(value)); +} +//![0] diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index a8404f0..201e675 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -261,6 +261,33 @@ of their use. \endlist */ +/*! +\qmlmethod object Qt::include(string url, jsobject callback) + +Includes another JavaScript file. This method can only be used from within JavaScript files, +and not regular QML files. + +This imports all functions from \a url into the current script's namespace. + +Qt.include() returns an object that describes the status of the operation. The object has +a single property, \c {status}, that is set to one of the following values: + +\table +\header \o Symbol \o Value \o Description +\row \o result.OK \o 0 \o The include completed successfully. +\row \o result.LOADING \o 1 \o Data is being loaded from the network. +\row \o result.NETWORK_ERROR \o 2 \o A network error occurred while fetching the url. +\row \o result.EXCEPTION \o 3 \o A JavaScript exception occurred while executing the included code. +An additional \c exception property will be set in this case. +\endtable + +The \c status property will be updated as the operation progresses. + +If provided, \a callback is invoked when the operation completes. The callback is passed +the same object as is returned from the Qt.include() call. +*/ +// Qt.include() is implemented in qdeclarativeinclude.cpp + QDeclarativeEnginePrivate::QDeclarativeEnginePrivate(QDeclarativeEngine *e) : captureProperties(false), rootContext(0), isDebugging(false), diff --git a/src/declarative/qml/qdeclarativeinclude.cpp b/src/declarative/qml/qdeclarativeinclude.cpp index 1e240d7..a9ecdda 100644 --- a/src/declarative/qml/qdeclarativeinclude.cpp +++ b/src/declarative/qml/qdeclarativeinclude.cpp @@ -172,28 +172,8 @@ void QDeclarativeInclude::callback(QScriptEngine *engine, QScriptValue &callback } } -/*! -\qmlmethod object Qt::include(string url, jsobject callback) - -Include another JavaScript file. This method can only be used from within JavaScript files, -and not regular QML files. - -Qt.include() returns an object that describes the status of the operation. The object has -a single property, \c {status} that is set to one of the following values: - -\table -\header \o Symbol \o Value \o Description -\row \o result.OK \o 0 \o The include completed successfully. -\row \o result.LOADING \o 1 \o Data is being loaded from the network. -\row \o result.NETWORK_ERROR \o 2 \o A network error occurred while fetching the url. -\row \o result.EXCEPTION \o 3 \o A JavaScript exception occurred while executing the included code. -An additional \c exception property will be set in this case. -\endtable - -The return object's properties will be updated as the operation progresses. - -If provided, \a callback is invoked when the operation completes. The callback is passed -the same object as is returned from the Qt.include() call. +/* + Documented in qdeclarativeengine.cpp */ QScriptValue QDeclarativeInclude::include(QScriptContext *ctxt, QScriptEngine *engine) { -- cgit v0.12 From b74ec2156b2a1f1acd38443047da5bb26cb082b1 Mon Sep 17 00:00:00 2001 From: Christopher Ham Date: Mon, 6 Dec 2010 15:46:47 +1000 Subject: Cursor shouldn't blink while dragging cursor position A function resetCursorBlinkerTimer was introduced to QLineControl. Each time the cursor position in a textInput is updated, the blinker timer is reset. Task-number: QTBUG-15815 Reviewed-by: Martin Jones --- src/declarative/graphicsitems/qdeclarativetextinput.cpp | 1 + src/gui/widgets/qlinecontrol.cpp | 9 +++++++++ src/gui/widgets/qlinecontrol_p.h | 1 + 3 files changed, 11 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp index f8421a3..df103de 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp @@ -1479,6 +1479,7 @@ void QDeclarativeTextInput::cursorPosChanged() updateRect();//TODO: Only update rect between pos's updateMicroFocus(); emit cursorPositionChanged(); + d->control->resetCursorBlinkTimer(); if(!d->control->hasSelectedText()){ if(d->lastSelectionStart != d->control->cursor()){ diff --git a/src/gui/widgets/qlinecontrol.cpp b/src/gui/widgets/qlinecontrol.cpp index f338f40..5ea9dc4 100644 --- a/src/gui/widgets/qlinecontrol.cpp +++ b/src/gui/widgets/qlinecontrol.cpp @@ -1308,6 +1308,15 @@ void QLineControl::setCursorBlinkPeriod(int msec) m_blinkPeriod = msec; } +void QLineControl::resetCursorBlinkTimer() +{ + if (m_blinkPeriod == 0 || m_blinkTimer == 0) + return; + killTimer(m_blinkTimer); + m_blinkTimer = startTimer(m_blinkPeriod / 2); + m_blinkStatus = 1; +} + void QLineControl::timerEvent(QTimerEvent *event) { if (event->timerId() == m_blinkTimer) { diff --git a/src/gui/widgets/qlinecontrol_p.h b/src/gui/widgets/qlinecontrol_p.h index 7068f62..d881acf 100644 --- a/src/gui/widgets/qlinecontrol_p.h +++ b/src/gui/widgets/qlinecontrol_p.h @@ -296,6 +296,7 @@ public: int cursorBlinkPeriod() const { return m_blinkPeriod; } void setCursorBlinkPeriod(int msec); + void resetCursorBlinkTimer(); QString cancelText() const { return m_cancelText; } void setCancelText(const QString &text) { m_cancelText = text; } -- cgit v0.12 From 2051459dd9a257c6492c755a583ff331e7009012 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 6 Dec 2010 17:49:04 +1000 Subject: Some doc clarification for components and javascript integration --- doc/src/declarative/javascriptblocks.qdoc | 5 ++--- src/declarative/qml/qdeclarativecomponent.cpp | 28 +++++++++++++++------------ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/doc/src/declarative/javascriptblocks.qdoc b/doc/src/declarative/javascriptblocks.qdoc index 41b64da..155bd6e 100644 --- a/doc/src/declarative/javascriptblocks.qdoc +++ b/doc/src/declarative/javascriptblocks.qdoc @@ -94,9 +94,8 @@ Both relative and absolute JavaScript URLs can be imported. In the case of a relative URL, the location is resolved relative to the location of the \l {QML Document} that contains the import. If the script file is not accessible, an error will occur. If the JavaScript needs to be fetched from a network -resource, the QML document has a "Loading" -\l {QDeclarativeComponent::status()}{status} until the script has been -downloaded. +resource, the component's \l {QDeclarativeComponent::status()}{status} is set to +"Loading" until the script has been downloaded. Imported JavaScript files are always qualified using the "as" keyword. The qualifier for JavaScript files must be unique, so there is always a one-to-one diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp index 63bde0f..77fc925 100644 --- a/src/declarative/qml/qdeclarativecomponent.cpp +++ b/src/declarative/qml/qdeclarativecomponent.cpp @@ -147,32 +147,36 @@ class QByteArray; Components are reusable, encapsulated QML elements with well-defined interfaces. Components are often defined by \l {qdeclarativedocuments.html}{component files} - - that is, \c .qml files. The \e Component element allows components to be defined - within QML items rather than in a separate file. This may be useful for reusing - a small component within a QML file, or for defining a component that logically - belongs with other QML components within a file. + that is, \c .qml files. The \e Component element essentially allows QML components + to be defined inline, within a \l {QML Document}{QML document}, rather than as a separate QML file. + This may be useful for reusing a small component within a QML file, or for defining + a component that logically belongs with other QML components within a file. For example, here is a component that is used by multiple \l Loader objects. - It contains a top level \l Rectangle item: + It contains a single item, a \l Rectangle: \snippet doc/src/snippets/declarative/component.qml 0 Notice that while a \l Rectangle by itself would be automatically rendered and displayed, this is not the case for the above rectangle because it is defined inside a \c Component. The component encapsulates the - QML elements within, as if they were defined in a separate \c .qml + QML elements within, as if they were defined in a separate QML file, and is not loaded until requested (in this case, by the two \l Loader objects). - A Component cannot contain anything other - than an \c id and a single top level item. While the \c id is optional, - the top level item is not; you cannot define an empty component. + Defining a \c Component is similar to defining a \l {QML Document}{QML document}. + A QML document has a single top-level item that defines the behaviors and + properties of that component, and cannot define properties or behaviors outside + of that top-level item. In the same way, a \c Component definition contains a single + top level item (which in the above example is a \l Rectangle) and cannot define any + data outside of this item, with the exception of an \e id (which in the above example + is \e redSquare). - The Component element is commonly used to provide graphical components - for views. For example, the ListView::delegate property requires a Component + The \c Component element is commonly used to provide graphical components + for views. For example, the ListView::delegate property requires a \c Component to specify how each list item is to be displayed. - Component objects can also be dynamically created using + \c Component objects can also be created dynamically using \l{QML:Qt::createComponent()}{Qt.createComponent()}. */ -- cgit v0.12 From 2e7cfca6089a0923698b9cd208f79a660e058caa Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 6 Dec 2010 17:49:17 +1000 Subject: Document support for QVariantList and QVariantMap type conversion --- doc/src/declarative/qtbinding.qdoc | 34 ++++++++++- .../qtbinding/variantlistmap/MyItem.qml | 54 +++++++++++++++++ .../declarative/qtbinding/variantlistmap/main.cpp | 67 ++++++++++++++++++++++ .../qtbinding/variantlistmap/variantlistmap.pro | 2 + 4 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/variantlistmap/variantlistmap.pro diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index 71f41bc..04b8ca6 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -426,6 +426,7 @@ By default, QML recognizes the following data types: \o QSize, QSizeF \o QRect, QRectF \o QVariant +\o QVariantList, QVariantMap \o QObject* \o Enumerations declared with Q_ENUMS() \endlist @@ -434,6 +435,37 @@ To allow a custom C++ type to be created or used in QML, the C++ class must be r type using qmlRegisterType(), as shown in the \l {Defining new QML elements} section above. +\section2 JavaScript arrays and objects + +There is built-in support for automatic type conversion between QVariantList and JavaScript +arrays, and QVariantMap and JavaScript objects. + +For example, the function defined in QML below left expects two arguments, an array and an object, and prints +their contents using the standard JavaScript syntax for array and object item access. The C++ code +below right calls this function, passing a QVariantList and a QVariantMap, which are automatically +converted to JavaScript array and object values, repectively: + +\table +\row +\o \snippet doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml 0 +\o \snippet doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp 0 +\endtable + +This produces output like: + +\code +Array item: 10 +Array item: #00ff00 +Array item: bottles +Object item: language = QML +Object item: released = Tue Sep 21 2010 00:00:00 GMT+1000 (EST) +\endcode + +Similarly, if a C++ type uses a QVariantList or QVariantMap type for a property or method +parameter, the value can be created as a JavaScript array or object in the QML +side, and is automatically converted to a QVariantList or QVariantMap when it is passed to C++. + + \section2 Using enumerations of a custom type To use an enumeration from a custom C++ component, the enumeration must be declared with Q_ENUMS() to @@ -455,7 +487,7 @@ See the \l {Tutorial: Writing QML extensions with C++}{Writing QML extensions wi the \l {Extending QML in C++} reference documentation for more information. -\section2 Automatic type conversion +\section2 Automatic type conversion from strings As a convenience, some basic types can be specified in QML using format strings to make it easier to pass simple values from QML to C++. diff --git a/doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml b/doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml new file mode 100644 index 0000000..dd59fed --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** 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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//![0] +// MyItem.qml +Item { + function readValues(anArray, anObject) { + for (var i=0; i +#include + +int main(int argc, char *argv[]) { + QApplication app(argc, argv); + +//![0] +// C++ +QDeclarativeView view(QUrl::fromLocalFile("MyItem.qml")); + +QVariantList list; +list << 10 << Qt::green << "bottles"; + +QVariantMap map; +map.insert("language", "QML"); +map.insert("released", QDate(2010, 9, 21)); + +QMetaObject::invokeMethod(view.rootObject(), "readValues", + Q_ARG(QVariant, QVariant::fromValue(list)), + Q_ARG(QVariant, QVariant::fromValue(map))); +//![0] + + view.setSource(QUrl::fromLocalFile("MyItem.qml")); + view.show(); + + return app.exec(); +} + diff --git a/doc/src/snippets/declarative/qtbinding/variantlistmap/variantlistmap.pro b/doc/src/snippets/declarative/qtbinding/variantlistmap/variantlistmap.pro new file mode 100644 index 0000000..68eeaf2 --- /dev/null +++ b/doc/src/snippets/declarative/qtbinding/variantlistmap/variantlistmap.pro @@ -0,0 +1,2 @@ +QT += declarative +SOURCES += main.cpp -- cgit v0.12 From fb43ea28e2712073de06644d78ed5a97a40f016b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 6 Dec 2010 13:46:35 +0100 Subject: Fix QDir::relativeFilePath We used to call cleanPath on the result of absolutePath, before returning it to the user, but stopped doing that. relativeFilePath actually depended on that and broke. Fixed now. Reviewed-by: Prasanth Ullattil --- src/corelib/io/qdir.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index e1fed0d..2f97c3a 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -711,7 +711,7 @@ QString QDir::absoluteFilePath(const QString &fileName) const */ QString QDir::relativeFilePath(const QString &fileName) const { - QString dir = absolutePath(); + QString dir = cleanPath(absolutePath()); QString file = cleanPath(fileName); if (isRelativePath(file) || isRelativePath(dir)) -- cgit v0.12 From 5bdc4ec60655aba2972f0e6cb2b09ee5f012690b Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Mon, 6 Dec 2010 14:24:58 +0100 Subject: Fix tst_QFileInfo::canonicalFilePath failure on Windows When the test application is running without administrative privilages, the CreateSymbolicLink() can incorrectly return success. To handle this we need to check whether GetLastError() returns ERROR_PRIVILEGE_NOT_HELD or not. Reviewed-by: Joao --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 3bbe2ca..96a0d77 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -621,18 +621,27 @@ void tst_QFileInfo::canonicalFilePath() PtrCreateSymbolicLink ptrCreateSymbolicLink = (PtrCreateSymbolicLink)QLibrary::resolve(QLatin1String("kernel32"), "CreateSymbolicLinkW"); - if (!ptrCreateSymbolicLink || - ptrCreateSymbolicLink((wchar_t*)QString("res").utf16(), (wchar_t*)QString("resources").utf16(), 1) == 0) { + if (!ptrCreateSymbolicLink) { QSKIP("Symbolic links aren't supported by FS", SkipAll); + } else { + // CreateSymbolicLink can return TRUE & still fail to create the link, + // the error code in that case is ERROR_PRIVILEGE_NOT_HELD (1314) + SetLastError(0); + BOOL ret = ptrCreateSymbolicLink((wchar_t*)QString("res").utf16(), (wchar_t*)QString("resources").utf16(), 1); + DWORD dwErr = GetLastError(); + if (!ret) + QSKIP("Symbolic links aren't supported by FS", SkipAll); + QString currentPath = QDir::currentPath(); + bool is_res_Current = QDir::setCurrent("res"); + if (!is_res_Current && dwErr == 1314) + QSKIP("Not enough privilages to create Symbolic links", SkipAll); + QCOMPARE(is_res_Current, true); + + QCOMPARE(QFileInfo("file1").canonicalFilePath(), currentPath + "/resources/file1"); + + QCOMPARE(QDir::setCurrent(currentPath), true); + QDir::current().rmdir("res"); } - - QString currentPath = QDir::currentPath(); - QCOMPARE(QDir::setCurrent("res"), true); - - QCOMPARE(QFileInfo("file1").canonicalFilePath(), currentPath + "/resources/file1"); - - QCOMPARE(QDir::setCurrent(currentPath), true); - QDir::current().rmdir("res"); #endif } -- cgit v0.12 From 37fdb437084a7a4acefefbe1d55adee4e7723b7a Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Mon, 6 Dec 2010 14:46:22 +0100 Subject: Fix tst_QFileInfo owner() & group() failure on Windows. The ownership of newly created files are transferred to the Administrator group only if the application is running with Admin privilages. This will happen only on Windows 7 & Vista, on XP user has the ownership. Reviewed-by: Joao --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 63 +++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 96a0d77..70ed842 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -1648,6 +1648,27 @@ void tst_QFileInfo::detachingOperations() } #if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN) +BOOL IsUserAdmin() +{ + BOOL b; + SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY; + PSID AdministratorsGroup; + b = AllocateAndInitializeSid( + &NtAuthority, + 2, + SECURITY_BUILTIN_DOMAIN_RID, + DOMAIN_ALIAS_RID_ADMINS, + 0, 0, 0, 0, 0, 0, + &AdministratorsGroup); + if (b) { + if (!CheckTokenMembership( NULL, AdministratorsGroup, &b)) + b = FALSE; + FreeSid(AdministratorsGroup); + } + + return(b); +} + void tst_QFileInfo::owner() { QString userName; @@ -1661,28 +1682,30 @@ void tst_QFileInfo::owner() wchar_t usernameBuf[1024]; DWORD bufSize = 1024; if (GetUserNameW(usernameBuf, &bufSize)) { - userName = QString::fromWCharArray(usernameBuf, bufSize); - // Special case : If the user is a member of Administrators group, all files - // created by the current user are owned by the Administrators group. - LPLOCALGROUP_USERS_INFO_0 pBuf = NULL; - DWORD dwLevel = 0; - DWORD dwFlags = LG_INCLUDE_INDIRECT ; - DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH; - DWORD dwEntriesRead = 0; - DWORD dwTotalEntries = 0; - NET_API_STATUS nStatus; - nStatus = NetUserGetLocalGroups(0, usernameBuf, dwLevel, dwFlags, (LPBYTE *) &pBuf, - dwPrefMaxLen, &dwEntriesRead, &dwTotalEntries); - // Check if the current user is a member of Administrators group - if (nStatus == NERR_Success && pBuf){ - for (int i = 0; i < dwEntriesRead; i++) { - QString groupName = QString::fromWCharArray(pBuf[i].lgrui0_name); - if (!groupName.compare(QLatin1String("Administrators"))) - userName = groupName; + userName = QString::fromWCharArray(usernameBuf); + if (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA && IsUserAdmin()) { + // Special case : If the user is a member of Administrators group, all files + // created by the current user are owned by the Administrators group. + LPLOCALGROUP_USERS_INFO_0 pBuf = NULL; + DWORD dwLevel = 0; + DWORD dwFlags = LG_INCLUDE_INDIRECT ; + DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH; + DWORD dwEntriesRead = 0; + DWORD dwTotalEntries = 0; + NET_API_STATUS nStatus; + nStatus = NetUserGetLocalGroups(0, usernameBuf, dwLevel, dwFlags, (LPBYTE *) &pBuf, + dwPrefMaxLen, &dwEntriesRead, &dwTotalEntries); + // Check if the current user is a member of Administrators group + if (nStatus == NERR_Success && pBuf){ + for (int i = 0; i < dwEntriesRead; i++) { + QString groupName = QString::fromWCharArray(pBuf[i].lgrui0_name); + if (!groupName.compare(QLatin1String("Administrators"))) + userName = groupName; + } } + if (pBuf != NULL) + NetApiBufferFree(pBuf); } - if (pBuf != NULL) - NetApiBufferFree(pBuf); } extern Q_CORE_EXPORT int qt_ntfs_permission_lookup; qt_ntfs_permission_lookup = 1; -- cgit v0.12 From 9a63863d6f0c614c041c3d4b375bf88d93148ef7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Mon, 6 Dec 2010 14:06:56 +0100 Subject: Make sure to do a deep copy of a QImage when it's being painted on. Not doing so can produce some hard-to-track-down bugs in the app. Task-number: QTBUG-15749 Reviewed-by: Gunnar Sletta --- src/gui/image/qimage.cpp | 25 +++++++++++++++++-------- src/gui/image/qpixmap_raster.cpp | 8 ++++++++ tests/auto/qimage/tst_qimage.cpp | 16 ++++++++++++++++ tests/auto/qpixmap/tst_qpixmap.cpp | 17 +++++++++++++++++ 4 files changed, 58 insertions(+), 8 deletions(-) diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 1157b93..6ba3858 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -1121,9 +1121,14 @@ QImage::QImage(const char * const xpm[]) QImage::QImage(const QImage &image) : QPaintDevice() { - d = image.d; - if (d) - d->ref.ref(); + if (image.paintingActive()) { + d = 0; + operator=(image.copy()); + } else { + d = image.d; + if (d) + d->ref.ref(); + } } #ifdef QT3_SUPPORT @@ -1320,11 +1325,15 @@ QImage::~QImage() QImage &QImage::operator=(const QImage &image) { - if (image.d) - image.d->ref.ref(); - if (d && !d->ref.deref()) - delete d; - d = image.d; + if (image.paintingActive()) { + operator=(image.copy()); + } else { + if (image.d) + image.d->ref.ref(); + if (d && !d->ref.deref()) + delete d; + d = image.d; + } return *this; } diff --git a/src/gui/image/qpixmap_raster.cpp b/src/gui/image/qpixmap_raster.cpp index 53f3559..f080687 100644 --- a/src/gui/image/qpixmap_raster.cpp +++ b/src/gui/image/qpixmap_raster.cpp @@ -44,6 +44,7 @@ #include "qpixmap_raster_p.h" #include "qnativeimage_p.h" #include "qimage_p.h" +#include "qpaintengine.h" #include "qbitmap.h" #include "qimage.h" @@ -302,6 +303,13 @@ bool QRasterPixmapData::hasAlphaChannel() const QImage QRasterPixmapData::toImage() const { + if (image.paintEngine() + && image.paintEngine()->isActive() + && image.paintEngine()->paintDevice() == &image) + { + return image.copy(); + } + return image; } diff --git a/tests/auto/qimage/tst_qimage.cpp b/tests/auto/qimage/tst_qimage.cpp index b446941..b2c59fc 100644 --- a/tests/auto/qimage/tst_qimage.cpp +++ b/tests/auto/qimage/tst_qimage.cpp @@ -142,6 +142,8 @@ private slots: void rgbSwapped_data(); void rgbSwapped(); + + void deepCopyWhenPaintingActive(); }; tst_QImage::tst_QImage() @@ -1886,5 +1888,19 @@ void tst_QImage::rgbSwapped() QCOMPARE(memcmp(image.constBits(), imageSwappedTwice.constBits(), image.numBytes()), 0); } +void tst_QImage::deepCopyWhenPaintingActive() +{ + QImage image(64, 64, QImage::Format_ARGB32_Premultiplied); + image.fill(0); + + QPainter painter(&image); + QImage copy = image; + + painter.setBrush(Qt::black); + painter.drawEllipse(image.rect()); + + QVERIFY(copy != image); +} + QTEST_MAIN(tst_QImage) #include "tst_qimage.moc" diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index 51e6cf5..d5267b5 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -185,6 +185,8 @@ private slots: void preserveDepth(); void splash_crash(); + void toImageDeepCopy(); + void loadAsBitmapOrPixmap(); }; @@ -1751,6 +1753,21 @@ void tst_QPixmap::loadAsBitmapOrPixmap() QVERIFY(bitmap.isQBitmap()); } +void tst_QPixmap::toImageDeepCopy() +{ + QPixmap pixmap(64, 64); + pixmap.fill(Qt::white); + + QPainter painter(&pixmap); + QImage first = pixmap.toImage(); + + painter.setBrush(Qt::black); + painter.drawEllipse(pixmap.rect()); + + QImage second = pixmap.toImage(); + + QVERIFY(first != second); +} QTEST_MAIN(tst_QPixmap) -- cgit v0.12 From 19b1ab1f2f4df72621b1bef43a4a24286ae12657 Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Mon, 6 Dec 2010 16:07:06 +0100 Subject: Fixed a bug by changing the id name to lower case. --- doc/src/getting-started/gettingstartedqml.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc index b767587..e3977bb 100644 --- a/doc/src/getting-started/gettingstartedqml.qdoc +++ b/doc/src/getting-started/gettingstartedqml.qdoc @@ -148,7 +148,7 @@ \code Rectangle { - id:Button + id: button ... property color buttonColor: "lightblue" -- cgit v0.12 From 9679add86ec1562d24d587c6c2343c47ca4b61d7 Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Mon, 6 Dec 2010 16:09:26 +0100 Subject: Some whitespace fixes. --- doc/src/declarative/modules.qdoc | 64 ++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc index 011eb63..2a2e4ff 100644 --- a/doc/src/declarative/modules.qdoc +++ b/doc/src/declarative/modules.qdoc @@ -31,14 +31,14 @@ \section1 QML Modules -A module is a set of QML content files that can be imported as a unit into a QML +A module is a set of QML content files that can be imported as a unit into a QML application. Modules can be used to organize QML content into independent units, -and they can use a versioning mechanism that allows for independent +and they can use a versioning mechanism that allows for independent upgradability of the modules. While QML component files within the same directory are automatically accessible -within the global namespace, components defined elsewhere must be imported -explicitly using the \c import statement to import them as modules. For +within the global namespace, components defined elsewhere must be imported +explicitly using the \c import statement to import them as modules. For example, an \c import statement is required to use: \list @@ -54,13 +54,13 @@ This can be seen in the snippet commonly found at the top of QML files: \qml import QtQuick 1.0 \endqml - -This imports version 4.7 of the "Qt" module into the global namespace. (The QML + +This imports version 1.0 of the "QtQuick" module into the global namespace. (The QML library itself must be imported to use any of the \l {QML Elements}, as they are not included in the global namespace by default.) -The \c Qt module is an \e installed module; it is found in the -\l{The QML import path}{import path}. There are two types of QML modules: +The \c Qt module is an \e installed module; it is found in the +\l{The QML import path}{import path}. There are two types of QML modules: location modules (defined by a URL) and installed modules (defined by a URI). @@ -87,8 +87,8 @@ directory using a relative or absolute path, like this: MyQMLProject |- MyComponents |- Slider.qml - |- CheckBox.qml - |- Main + |- CheckBox.qml + |- Main |- application.qml \endcode @@ -112,7 +112,7 @@ be imported like this: Remote location modules must have a \l{Writing a qmldir file}{qmldir file} in the same directory to specify which QML files should be made available. See the -\l {#qmldirexample}{example} below. The qmldir file is optional for modules on +\l {#qmldirexample}{example} below. The qmldir file is optional for modules on the local filesystem. @@ -121,8 +121,8 @@ the local filesystem. Installed modules are modules that are installed on the -local filesystem within the QML import path, or modules defined in C++ -application code. When importing an installed module, an un-quoted URI is +local filesystem within the QML import path, or modules defined in C++ +application code. When importing an installed module, an un-quoted URI is used, with a mandatory version number: \code @@ -131,7 +131,7 @@ used, with a mandatory version number: \endcode Installed modules that are installed into the import path or created -as a \l{QDeclarativeExtensionPlugin}{QML C++ plugin} must define a +as a \l{QDeclarativeExtensionPlugin}{QML C++ plugin} must define a \l{Writing a qmldir file}{qmldir file}. @@ -142,7 +142,7 @@ The default import path includes: \list \o The directory of the current file -\o The location specified by QLibraryInfo::ImportsPath +\o The location specified by QLibraryInfo::ImportsPath \o Paths specified by the \c QML_IMPORT_PATH environment variable \endlist @@ -153,10 +153,10 @@ When running the \l {QML Viewer}, use the \c -I option to add paths to the impor \section2 Creating installed modules in C++ -C++ applications can dynamically define installed modules using -qmlRegisterType(). +C++ applications can dynamically define installed modules using +qmlRegisterType(). -For \l{QDeclarativeExtensionPlugin}{QML C++ plugins}, the +For \l{QDeclarativeExtensionPlugin}{QML C++ plugins}, the module URI is automatically passed to QDeclarativeExtensionPlugin::registerTypes(). The QDeclarativeExtensionPlugin documentation shows how to use this URI to call qmlRegisterType() to enable the plugin library to be built as @@ -167,7 +167,7 @@ in QML, like this: import com.nokia.TimeExample 1.0 \endcode -A \l{QDeclarativeExtensionPlugin}{QML C++ plugin} also requires a +A \l{QDeclarativeExtensionPlugin}{QML C++ plugin} also requires a \l{Writing a qmldir file}{qmldir file} to make it available to the QML engine. @@ -190,9 +190,9 @@ Types from these modules can then only be used when qualified by the namespace: \qml QtLibrary.Rectangle { ... } - + MyComponents.Slider { ... } - + MyModule.SomeComponent { ... } \endqml @@ -209,7 +209,7 @@ JavaScript files must always be imported with a named import: \qml import "somescript.js" as MyScript - + Item { //... Component.onCompleted: MyScript.doSomething() @@ -220,8 +220,8 @@ JavaScript files must always be imported with a named import: \section1 Writing a qmldir file -A \c qmldir file is a metadata file for a module that maps all type names in -the module to versioned QML files. It is required for installed modules, and +A \c qmldir file is a metadata file for a module that maps all type names in +the module to versioned QML files. It is required for installed modules, and location modules that are loaded from a network source. It is defined by a plain text file named "qmldir" that contains one or more lines of the form: @@ -237,7 +237,7 @@ plugin [] \bold { [] } lines are used to add QML files as types. is the type being made available, the optional is a version -number, and is the (relative) file name of the QML file defining the type. +number, and is the (relative) file name of the QML file defining the type. Installed files do not need to import the module of which they are a part, as they can refer to the other QML files in the module as relative (local) files, but @@ -264,10 +264,10 @@ provide those identifiers. \bold {plugin []} lines are used to add \l{QDeclarativeExtensionPlugin}{QML C++ plugins} to the module. is the name of the library. It is usually not the same as the file name of the plugin binary, which is platform dependent; e.g. the library \c MyAppTypes would produce -\c libMyAppTypes.so on Linux and \c MyAppTypes.dll on Windows. +\c libMyAppTypes.so on Linux and \c MyAppTypes.dll on Windows. is an optional argument specifying either an absolute path to the directory containing the -plugin file, or a relative path from the directory containing the \c qmldir file to the directory +plugin file, or a relative path from the directory containing the \c qmldir file to the directory containing the plugin file. By default the engine searches for the plugin library in the directory that contains the \c qmldir file. The plugin search path can be queried with QDeclarativeEngine::pluginPathList() and modified using QDeclarativeEngine::addPluginPath(). When running the \l {QML Viewer}, use the \c -P option to add paths to the plugin search path. @@ -275,7 +275,7 @@ file. The plugin search path can be queried with QDeclarativeEngine::pluginPathL \target qmldirexample \section2 Example -If the components in the \c MyComponents directory from the +If the components in the \c MyComponents directory from the \l{Location Modules}{earlier example} were to be made available as a network resource, the directory would need to contain a \c qmldir file similar to this: @@ -284,7 +284,7 @@ ComponentA 1.0 ComponentA.qml ComponentB 1.0 ComponentB.qml \endcode -The \c MyComponents directory could then be imported as a module using: +The \c MyComponents directory could then be imported as a module using: \code import "http://the-server-name.com/MyComponents" @@ -298,15 +298,15 @@ a later version is used, as the \c qmldir file specifies that these elements are only available in the 1.0 version. -For examples of \c qmldir files for plugins, see the -\l {declarative/cppextensions/plugins}{Plugins} example and +For examples of \c qmldir files for plugins, see the +\l {declarative/cppextensions/plugins}{Plugins} example and \l {Tutorial: Writing QML extensions with C++}. \section1 Debugging The \c QML_IMPORT_TRACE environment variable can be useful for debugging -when there are problems with finding and loading modules. See +when there are problems with finding and loading modules. See \l{Debugging module imports} for more information. -- cgit v0.12 From fd3fc0b34a891751e6a0849421e8cecd19481324 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Mon, 6 Dec 2010 15:55:22 +0100 Subject: Fix crash in QTextDocument::markContentsDirty 6f6c25b6 introduced this regression because it didn't check d->lout before calling d->lout->documentChange(). Task-number: QTBUG-15777 Reviewed-by: Eskil --- src/gui/text/qtextdocument.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp index c35069f..77e6aa1 100644 --- a/src/gui/text/qtextdocument.cpp +++ b/src/gui/text/qtextdocument.cpp @@ -596,8 +596,10 @@ void QTextDocument::markContentsDirty(int from, int length) Q_D(QTextDocument); d->documentChange(from, length); if (!d->inContentsChange) { - d->lout->documentChanged(d->docChangeFrom, d->docChangeOldLength, d->docChangeLength); - d->docChangeFrom = -1; + if (d->lout) { + d->lout->documentChanged(d->docChangeFrom, d->docChangeOldLength, d->docChangeLength); + d->docChangeFrom = -1; + } } } -- cgit v0.12 From 686dfda2146a84e6653faa56a1484e84571cc4fa Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Mon, 6 Dec 2010 17:39:21 +0100 Subject: Fixed link to qtestlib-tools by adding link to qt-webpages.qdoc. Link is now linking to the gitorious project site. Task-number: QTBUG-15714 Reviewed-by: David Boddie --- doc/src/development/qtestlib.qdoc | 29 ++++++++++++++--------------- doc/src/qt-webpages.qdoc | 10 ++++++++++ 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/doc/src/development/qtestlib.qdoc b/doc/src/development/qtestlib.qdoc index e53957f..08fdfc6 100644 --- a/doc/src/development/qtestlib.qdoc +++ b/doc/src/development/qtestlib.qdoc @@ -245,10 +245,10 @@ \endtable In short, walltime is always available but requires many repetitions to - get a useful result. - Tick counters are usually available and can provide - results with fewer repetitions, but can be susceptible to CPU frequency - scaling issues. + get a useful result. + Tick counters are usually available and can provide + results with fewer repetitions, but can be susceptible to CPU frequency + scaling issues. Valgrind provides exact results, but does not take I/O waits into account, and is only available on a limited number of platforms. @@ -264,7 +264,7 @@ See the chapter 5 in the \l{QTestLib Tutorial} for more benchmarking examples. \section1 Using QTestLib remotely on Windows CE - \c cetest is a convenience application which helps the user to launch an + \c cetest is a convenience application which helps the user to launch an application remotely on a Windows CE device or emulator. It needs to be executed after the unit test has been successfully compiled. @@ -717,15 +717,15 @@ \section1 Writing a Benchmark To create a benchmark we extend a test function with a QBENCHMARK macro. - A benchmark test function will then typically consist of setup code and + A benchmark test function will then typically consist of setup code and a QBENCHMARK macro that contains the code to be measured. This test function benchmarks QString::localeAwareCompare(). \snippet examples/qtestlib/tutorial5/benchmarking.cpp 0 - Setup can be done at the beginning of the function, the clock is not + Setup can be done at the beginning of the function, the clock is not running at this point. The code inside the QBENCHMARK macro will be - measured, and possibly repeated several times in order to get an + measured, and possibly repeated several times in order to get an accurate measurement. Several \l {testlib-benchmarking-measurement}{back-ends} are available @@ -733,7 +733,7 @@ \section1 Data Functions - Data functions are useful for creating benchmarks that compare + Data functions are useful for creating benchmarks that compare multiple data inputs, for example locale aware compare against standard compare. @@ -743,20 +743,19 @@ \snippet examples/qtestlib/tutorial5/benchmarking.cpp 2 - The "if(useLocaleCompare)" switch is placed outside the QBENCHMARK + The "if(useLocaleCompare)" switch is placed outside the QBENCHMARK macro to avoid measuring its overhead. Each benchmark test function - can have one active QBENCHMARK macro. + can have one active QBENCHMARK macro. \section1 External Tools Tools for handling and visualizing test data are available as part of - the qtestlib-tools project on the - \l{http://labs.qt.nokia.com/}{http://labs.qt.nokia.com/}Qt Labs Web site. + the \l {qtestlib-tools} project in the \l{Qt Labs} web site. These include a tool for comparing performance data obtained from test runs and a utility to generate Web-based graphs of performance data. - See the \l{qtestlib-tools Announcement} for more information on these - tools and a simple graphing example. + See the \l{qtestlib-tools Announcement}{qtestlib-tools announcement} + for more information on these tools and a simple graphing example. */ diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc index 05817df..b7b9fba 100644 --- a/doc/src/qt-webpages.qdoc +++ b/doc/src/qt-webpages.qdoc @@ -239,3 +239,13 @@ \externalpage http://get.qt.nokia.com/nokiasmartinstaller/ \title Smart Installer */ + +/*! + \externalpage http://qt.gitorious.org/qt-labs/qtestlib-tools + \title qtestlib-tools +*/ + +/*! + \externalpage http://labs.qt.nokia.com + \title Qt Labs +*/ -- cgit v0.12 From 1eb7dca7fe6a81bada556c1310905be08e1b1d10 Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Mon, 6 Dec 2010 17:43:31 +0100 Subject: Added QML coding convention for "private" properties. Private properties start with two underscores. __property Reviewed-by: David Boddie --- doc/src/declarative/codingconventions.qdoc | 18 ++++++-- .../declarative/codingconventions/private.qml | 49 ++++++++++++++++++++++ 2 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 doc/src/snippets/declarative/codingconventions/private.qml diff --git a/doc/src/declarative/codingconventions.qdoc b/doc/src/declarative/codingconventions.qdoc index ba789e0..3f92d46 100644 --- a/doc/src/declarative/codingconventions.qdoc +++ b/doc/src/declarative/codingconventions.qdoc @@ -35,7 +35,7 @@ This page assumes that you are already familiar with the QML language. If you need an introduction to the language, please read \l {Introduction to the QML language}{the QML introduction} first. -\section1 QML objects +\section1 QML Objects Through our documentation and examples, QML objects are always structured in the following order: @@ -58,7 +58,7 @@ For example, a hypothetical \e photo QML object would look like this: \snippet doc/src/snippets/declarative/codingconventions/photo.qml 0 -\section1 Grouped properties +\section1 Grouped Properties If using multiple properties from a group of properties, we use the \e {group notation} rather than the \e {dot notation} to improve readability. @@ -72,6 +72,18 @@ can be written like this: \snippet doc/src/snippets/declarative/codingconventions/dotproperties.qml 1 +\section1 Private Properties + +QML and JavaScript do not enforce private properties like C++. There is a need +to hide these private properties, for example, when the properties are part of +the implementation. As a convention, private properties begin with two +\e underscore characters. For example, \c __area, is a property that is +accessible but is not meant for public use. Note that QML and JavaScript will +grant the user access to these properties. + +\snippet doc/src/snippets/declarative/codingconventions/private.qml 0 + + \section1 Lists If a list contains only one element, we generally omit the square brackets. @@ -87,7 +99,7 @@ we will write this: \snippet doc/src/snippets/declarative/codingconventions/lists.qml 1 -\section1 JavaScript code +\section1 JavaScript Code If the script is a single expression, we recommend writing it inline: diff --git a/doc/src/snippets/declarative/codingconventions/private.qml b/doc/src/snippets/declarative/codingconventions/private.qml new file mode 100644 index 0000000..1d3dda8 --- /dev/null +++ b/doc/src/snippets/declarative/codingconventions/private.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** 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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 1.0 + +//! [0] +Item { + id: component + width: 40; height: 50 + property real __area: width * height * 0.5 //not meant for outside use +} +//! [0] -- cgit v0.12 From 608b66b5af75ae6982be428439eea735c00cc455 Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Mon, 6 Dec 2010 17:46:28 +0100 Subject: Fixed the QML Focus document. Fixed snippets, images, and formatting. Reviewed-by: David Boddie --- doc/src/declarative/focus.qdoc | 339 ++++++++------------- doc/src/images/declarative-qmlfocus1.png | Bin 0 -> 1890 bytes doc/src/images/declarative-qmlfocus2.png | Bin 0 -> 2756 bytes doc/src/images/declarative-qmlfocus3.png | Bin 0 -> 2743 bytes doc/src/images/declarative-qmlfocus4.png | Bin 0 -> 4137 bytes doc/src/images/declarative-qmlfocus5.png | Bin 0 -> 1376 bytes .../snippets/declarative/focus/advancedFocus.qml | 67 ++++ doc/src/snippets/declarative/focus/basicwidget.qml | 59 ++++ .../snippets/declarative/focus/clickablewidget.qml | 61 ++++ doc/src/snippets/declarative/focus/focusColumn.qml | 25 ++ .../declarative/focus/focusscopewidget.qml | 61 ++++ .../declarative/focus/myclickablewidget.qml | 69 +++++ .../declarative/focus/myfocusscopewidget.qml | 66 ++++ doc/src/snippets/declarative/focus/mywidget.qml | 58 ++++ doc/src/snippets/declarative/focus/qmldir | 4 + doc/src/snippets/declarative/focus/rectangle.qml | 62 ++++ doc/src/snippets/declarative/focus/widget.qml | 61 ++++ 17 files changed, 713 insertions(+), 219 deletions(-) create mode 100644 doc/src/images/declarative-qmlfocus1.png create mode 100644 doc/src/images/declarative-qmlfocus2.png create mode 100644 doc/src/images/declarative-qmlfocus3.png create mode 100644 doc/src/images/declarative-qmlfocus4.png create mode 100644 doc/src/images/declarative-qmlfocus5.png create mode 100644 doc/src/snippets/declarative/focus/advancedFocus.qml create mode 100644 doc/src/snippets/declarative/focus/basicwidget.qml create mode 100644 doc/src/snippets/declarative/focus/clickablewidget.qml create mode 100644 doc/src/snippets/declarative/focus/focusColumn.qml create mode 100644 doc/src/snippets/declarative/focus/focusscopewidget.qml create mode 100644 doc/src/snippets/declarative/focus/myclickablewidget.qml create mode 100644 doc/src/snippets/declarative/focus/myfocusscopewidget.qml create mode 100644 doc/src/snippets/declarative/focus/mywidget.qml create mode 100644 doc/src/snippets/declarative/focus/qmldir create mode 100644 doc/src/snippets/declarative/focus/rectangle.qml create mode 100644 doc/src/snippets/declarative/focus/widget.qml diff --git a/doc/src/declarative/focus.qdoc b/doc/src/declarative/focus.qdoc index 2e74fe0..ae72c3c 100644 --- a/doc/src/declarative/focus.qdoc +++ b/doc/src/declarative/focus.qdoc @@ -31,7 +31,7 @@ \title Keyboard Focus in QML When a key is pressed or released, a key event is generated and delivered to the -focused QML \l Item. To facilitate the construction of reusable components +focused QML \l Item. To facilitate the construction of reusable components and to address some of the cases unique to fluid user interfaces, the QML items add a \e scope based extension to Qt's traditional keyboard focus model. @@ -42,27 +42,21 @@ and to address some of the cases unique to fluid user interfaces, the QML items When the user presses or releases a key, the following occurs: \list 1 \o Qt receives the key action and generates a key event. -\o If the Qt widget containing the \l QDeclarativeView has focus, the key event is delivered to it. Otherwise, regular Qt key handling continues. -\o The key event is delivered by the scene to the QML \l Item with \e {active focus}. If no \l Item has \e {active focus}, the key event is \l {QEvent::ignore()}{ignored} and regular Qt key handling continues. -\o If the QML \l Item with \e {active focus} accepts the key event, propagation stops. Otherwise the event is "bubbled up", by recursively passing it to each \l Item's parent until either the event is accepted, or the root \l Item is reached. - -If the \c {Rectangle} element in the following example has active focus and the \e A key is pressed, -it will bubble up to its parent. However, pressing the \e B key will bubble up to the root -item and thus subsequently be \l {QEvent::ignore()}{ignored}. - -\code -Item { - Item { - Keys.onPressed: { - if (event.key == Qt.Key_A) { - console.log('Key A was pressed'); - event.accepted = true; - } - } - Rectangle {} - } -} -\endcode +\o If the Qt widget containing the \l QDeclarativeView has focus, the key event +is delivered to it. Otherwise, regular Qt key handling continues. +\o The key event is delivered by the scene to the QML \l Item with +\e {active focus}. If no Item has active focus, the key event is +\l {QEvent::ignore()}{ignored} and regular Qt key handling continues. +\o If the QML Item with active focus accepts the key event, propagation +stops. Otherwise the event is "bubbled up", by recursively passing it to each +Item's parent until either the event is accepted, or the root Item is reached. + +If the \c {Rectangle} element in the following example has active focus and the \c A key is pressed, +it will bubble up to its parent. However, pressing the \c B key will bubble up to the root +item and thus subsequently be ignored. + +\snippet doc/src/snippets/declarative/focus/rectangle.qml simple key event +\snippet doc/src/snippets/declarative/focus/rectangle.qml simple key event end \o If the root \l Item is reached, the key event is \l {QEvent::ignore()}{ignored} and regular Qt key handling continues. @@ -72,232 +66,139 @@ See also the \l {Keys}{Keys attached property} and \l {KeyNavigation}{KeyNavigat \section1 Querying the Active Focus Item -Whether or not an \l Item has \e {active focus} can be queried through the -property \c {Item::activeFocus}. For example, here we have a \l Text -element whose text is determined by whether or not it has \e {active focus}. +Whether or not an \l Item has active focus can be queried through the +property \c {Item::activeFocus} property. For example, here we have a \l Text +element whose text is determined by whether or not it has active focus. -\code -Text { - text: activeFocus ? "I have active focus!" : "I do not have active focus" -} -\endcode +\snippet doc/src/snippets/declarative/focus/rectangle.qml active focus \section1 Acquiring Focus and Focus Scopes -An \l Item requests focus by setting the \c {Item::focus} property to true. - -For very simple cases simply setting the \c {Item::focus} property is sometimes -sufficient. If we run the following example with the \l {QML Viewer}, we see that -the \c {keyHandler} element has \e {active focus} and pressing the 'A', 'B' -or 'C' keys modifies the text appropriately. - -\table -\row -\o \code - Rectangle { - color: "lightsteelblue"; width: 240; height: 25 - Text { id: myText } - Item { - id: keyHandler - focus: true - Keys.onPressed: { - if (event.key == Qt.Key_A) - myText.text = 'Key A was pressed' - else if (event.key == Qt.Key_B) - myText.text = 'Key B was pressed' - else if (event.key == Qt.Key_C) - myText.text = 'Key C was pressed' - } - } - } -\endcode -\o \image declarative-qmlfocus1.png -\endtable - -However, were the above example to be used as a self-contained component, this -simple use of the \c {Item::focus} property is no longer sufficient. The left -hand side of the following table shows what we would like to be able to write. -Here we create two instances of our previously defined component, and set the -second one to have focus. The intention is that when the \e A, \e B, or \e C -keys are pressed, the second of the two components receives the event and +An \l Item requests focus by setting the \c focus property to \c true. + +For very simple cases simply setting the \c focus property is sometimes +sufficient. If we run the following example with the \l {QML Viewer}, we see that +the \c {keyHandler} element has active focus and pressing the \c A, \c B, +or \c C keys modifies the text appropriately. + +\snippet doc/src/snippets/declarative/focus/basicwidget.qml focus true + +\image declarative-qmlfocus1.png + +However, were the above example to be used as a reusable or imported component, +this simple use of the \c focus property is no longer sufficient. + +To demonstrate, we create two instances of our previously defined component and +set the first one to have focus. The intention is that when the \c A, \c B, or +\c C keys are pressed, the first of the two components receives the event and responds accordingly. -\table -\row -\o \code -Rectangle { - color: "red"; width: 240; height: 55 - MyWidget {} - MyWidget { y: 30; focus: true } -} -\endcode -\o \code -Rectangle { - color: "red"; width: 240; height: 55 - Rectangle { - color: "lightsteelblue"; width: 240; height: 25 - Text { id: myText } - Item { - id: keyHandler - focus: true - Keys.onPressed: { - if (event.key == Qt.Key_A) - myText.text = 'Key A was pressed' - else if (event.key == Qt.Key_B) - myText.text = 'Key B was pressed' - else if (event.key == Qt.Key_C) - myText.text = 'Key C was pressed' - } - } - } - Rectangle { - y: 30; focus: true - color: "lightsteelblue"; width: 240; height: 25 - Text { id: myText } - Item { - id: keyHandler - focus: true - Keys.onPressed: { - if (event.key == Qt.Key_A) - myText.text = 'Key A was pressed' - else if (event.key == Qt.Key_B) - myText.text = 'Key B was pressed' - else if (event.key == Qt.Key_C) - myText.text = 'Key C was pressed' - } - } - } -} -\endcode -\endtable - -The right hand side of the example shows the expanded code - the equivalent QML -without the use of the component \c {MyWidget}. From this, the problem is -evident - there are no less than three elements that have the \c {Item::focus} -property set to true. Ultimately only one element can have keyboard focus, and the -system has to decide which on. In this case the first appearance of the -\c {Item::focus} property being set to true on line 4 is selected, and the value -of \c {Item::focus} in the other two instances is reverted back to false. This -is exactly the opposite of what was wanted! - -This problem is fundamentally one of visibility. The \c {MyWidget} -components each set their \c {keyHandler} Items as focused as that is all they can -do - they don't know how they are going to be used, but they do know that when -they're in use their \c {keyHandler} element is what needs focus. Likewise -the code that uses the two \c {MyWidgets} sets the second \c {MyWidget} as -focused. While it doesn't know exactly how the \c {MyWidget} is -implemented, it knows that it wants the second one to be focused. This allows us -to achieve encapsulation, allowing each widget to focus on it's appropriate behaviour -itself. - -To solve this problem - allowing components to care about what they know about -and ignore everything else - the QML items introduce a concept known as a -\e {focus scope}. For existing Qt users, a \e {focus scope} is like an -automatic focus proxy. A \e {focus scope} is created using the \l FocusScope -element. - -In the next example, a \l FocusScope is added to the component, and the visual -result shown. - -\table -\row -\o \code -FocusScope { - width: 240; height: 25 - Rectangle { - color: "lightsteelblue"; width: 240; height: 25 - Text { id: myText } - Item { - id: keyHandler - focus: true - Keys.onPressed: { - if (event.key == Qt.Key_A) - myText.text = 'Key A was pressed' - else if (event.key == Qt.Key_B) - myText.text = 'Key B was pressed' - else if (event.key == Qt.Key_C) - myText.text = 'Key C was pressed' - } - } - } -} -\endcode -\o \image declarative-qmlfocus2.png -\endtable +The code that imports and creates two MyWidget instances: +\snippet doc/src/snippets/declarative/focus/widget.qml window + +The MyWidget code: +\snippet doc/src/snippets/declarative/focus/mywidget.qml mywidget + +We would like to have the first MyWidget object to have the focus by setting its +\c focus property to \c true. However, by running the code, we can confirm that +the second widget receives the focus. + +\image declarative-qmlfocus2.png + +Looking at both \c MyWidget and \c window code, the problem is evident - there +are three elements that set the \c focus property set to \c true. The two +MyWidget sets the \c focus to \c true and the \c window component also sets the +focus. Ultimately, only one element can have keyboard focus, and the system has +to decide which element receives the focus. When the second MyWidget is created, +it receives the focus because it is the last element to set its \c focus +property to \c true. + +This problem is due to visibility. The \c MyWidget component would like to have +the focus, but it cannot control the focus when it is imported or reused. +Likewise, the \c window component does not have the ability to know if its +imported components are requesting the focus. + +To solve this problem, the QML introduces a concept known as a \e {focus scope}. +For existing Qt users, a focus scope is like an automatic focus proxy. +A focus scope is created by declaring the \l FocusScope element. + +In the next example, a \l FocusScope element is added to the component, and the +visual result shown. + +\snippet doc/src/snippets/declarative/focus/myfocusscopewidget.qml widget in focusscope + +\image declarative-qmlfocus3.png + Conceptually \e {focus scopes} are quite simple. \list -\o Within each \e {focus scope} one element may have \c {Item::focus} set to true. -If more than one \l Item has the \c {Item::focus} property set, the first is selected -and the others are unset, just like when there are no \e {focus scopes}. -\o When a \e {focus scope} receives \e {active focus}, the contained element with -\c {Item::focus} set (if any) also gets \e {active focus}. If this element is -also a \l FocusScope, the proxying behaviour continues. Both the -\e {focus scope} and the sub-focused item will have \c {Item::activeFocus} set. +\o Within each focus scope one element may have \c {Item::focus} set to +\c true. If more than one \l Item has the \c focus property set, the +last element to set the \c focus will have the focus and the others are unset, +similar to when there are no focus scopes. +\o When a focus scope receives active focus, the contained element with +\c focus set (if any) also gets the active focus. If this element is +also a \l FocusScope, the proxying behavior continues. Both the +focus scope and the sub-focused item will have \c activeFocus property set. \endlist -So far the example has the second component statically selected. It is trivial +Note that, since the FocusScope element is not a visual element, the properties +of its children need to be exposed to the parent item of the FocusScope. Layouts +and positioning elements will use these visual and styling properties to create +the layout. In our example, the \c Column element cannot display the two widgets +properly because the FocusScope lacks visual properties of its own. The MyWidget +component directly binds to the \c rectangle properties to allow the \c Column +element to create the layout containing the children of the FocusScope. + +So far, the example has the second component statically selected. It is trivial now to extend this component to make it clickable, and add it to the original -application. We still set a one of the widgets as focused by default, but from -then on clicking the either one gives it focus. - -\table -\row -\o \code -Rectangle { - color: "red"; width: 240; height: 55 - MyClickableWidget {} - MyClickableWidget { y: 30; focus: true } -} -\endcode -\o \code -FocusScope { - id: page; width: 240; height: 25 - MyWidget { focus: true } - MouseArea { anchors.fill: parent; onClicked: { page.focus = true } } -} -\endcode -\endtable +application. We still set one of the widgets as focused by default. +Now, clicking either MyClickableWidget gives it focus and the other widget +loses the focus. -\image declarative-qmlfocus3.png +The code that imports and creates two MyClickableWidget instances: +\snippet doc/src/snippets/declarative/focus/clickablewidget.qml clickable window + +The MyClickableWidget code: +\snippet doc/src/snippets/declarative/focus/myclickablewidget.qml clickable in focusscope -When a QML item explicitly relinquishes focus (by setting its -\c {Item::focus} property to false while it has \e {active focus}), the system -does not automatically select another element to receive focus. That is, it -is possible for there to be no currently \e {active focus}. +\image declarative-qmlfocus4.png -See the \l{declarative/keyinteraction/focus}{Keyboard Focus example} for a +When a QML \l Item explicitly relinquishes focus (by setting its +\c focus property to \c false while it has active focus), the +system does not automatically select another element to receive focus. That is, +it is possible for there to be no currently active focus. + +See the \l{declarative/keyinteraction/focus}{Keyboard Focus example} for a demonstration of moving keyboard focus between multiple areas using FocusScope elements. \section1 Advanced uses of Focus Scopes -Focus scopes allow focus to allocation to be easily partitioned. Several +Focus scopes allow focus to allocation to be easily partitioned. Several QML items use it to this effect. -\l ListView, for example, is itself a focus scope. Generally this isn't +\l ListView, for example, is itself a focus scope. Generally this isn't noticeable as \l ListView doesn't usually have manually added visual children. By being a focus scope, \l ListView can focus the current list item without -worrying about how that will effect the rest of the application. This allows -the current item delegate to react to key presses. +worrying about how that will effect the rest of the application. This allows the +current item delegate to react to key presses. -This contrived example shows how this works. Pressing the \c Return key will +This contrived example shows how this works. Pressing the \c Return key will print the name of the current list item. -\table -\row -\o \snippet doc/src/snippets/declarative/focusscopes.qml 0 -\o \image declarative-qmlfocus4.png -\endtable +\snippet doc/src/snippets/declarative/focus/advancedFocus.qml FocusScope delegate + +\image declarative-qmlfocus5.png -While the example is simple, there's a lot going on behind the scenes. Whenever +While the example is simple, there are a lot going on behind the scenes. Whenever the current item changes, the \l ListView sets the delegate's \c {Item::focus} -property. As the \l ListView is a \e {focus scope}, this doesn't effect the -rest of the application. However, if the \l ListView itself has -\e {active focus} this causes the delegate itself to receive \e {active focus}. -In this example, the root element of the delegate is also a \e {focus scope}, -which in turn gives \e {active focus} to the \c {Text} element that -actually performs the work of handling the \e {Return} key. +property. As the \l ListView is a focus scope, this doesn't affect the +rest of the application. However, if the \l ListView itself has +active focus this causes the delegate itself to receive active focus. +In this example, the root element of the delegate is also a focus scope, +which in turn gives active focus to the \c {Text} element that actually performs +the work of handling the \c {Return} key. All of the QML view classes, such as \l PathView and \l GridView, behave in a similar manner to allow key handling in their respective delegates. diff --git a/doc/src/images/declarative-qmlfocus1.png b/doc/src/images/declarative-qmlfocus1.png new file mode 100644 index 0000000..317b34b Binary files /dev/null and b/doc/src/images/declarative-qmlfocus1.png differ diff --git a/doc/src/images/declarative-qmlfocus2.png b/doc/src/images/declarative-qmlfocus2.png new file mode 100644 index 0000000..e3f9643 Binary files /dev/null and b/doc/src/images/declarative-qmlfocus2.png differ diff --git a/doc/src/images/declarative-qmlfocus3.png b/doc/src/images/declarative-qmlfocus3.png new file mode 100644 index 0000000..a5897ce Binary files /dev/null and b/doc/src/images/declarative-qmlfocus3.png differ diff --git a/doc/src/images/declarative-qmlfocus4.png b/doc/src/images/declarative-qmlfocus4.png new file mode 100644 index 0000000..f2e64cd Binary files /dev/null and b/doc/src/images/declarative-qmlfocus4.png differ diff --git a/doc/src/images/declarative-qmlfocus5.png b/doc/src/images/declarative-qmlfocus5.png new file mode 100644 index 0000000..ec7307b Binary files /dev/null and b/doc/src/images/declarative-qmlfocus5.png differ diff --git a/doc/src/snippets/declarative/focus/advancedFocus.qml b/doc/src/snippets/declarative/focus/advancedFocus.qml new file mode 100644 index 0000000..274f54f --- /dev/null +++ b/doc/src/snippets/declarative/focus/advancedFocus.qml @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//! [FocusScope delegate] +Rectangle { + color: "lightsteelblue"; width: 100; height: 50 + + ListView { + anchors.fill: parent + focus: true + + model: ListModel { + ListElement { name: "Bob" } + ListElement { name: "John" } + ListElement { name: "Michael" } + } + + delegate: FocusScope { + width: childrenRect.width; height: childrenRect.height + x:childrenRect.x; y: childrenRect.y + TextInput { + focus: true + text: name + Keys.onReturnPressed: console.log(name) + } + } + } +} +//! [FocusScope delegate] diff --git a/doc/src/snippets/declarative/focus/basicwidget.qml b/doc/src/snippets/declarative/focus/basicwidget.qml new file mode 100644 index 0000000..71e75ff --- /dev/null +++ b/doc/src/snippets/declarative/focus/basicwidget.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//! [focus true] +Rectangle { + color: "lightsteelblue"; width: 240; height: 25 + Text { id: myText } + Item { + id: keyHandler + focus: true + Keys.onPressed: { + if (event.key == Qt.Key_A) + myText.text = 'Key A was pressed' + else if (event.key == Qt.Key_B) + myText.text = 'Key B was pressed' + else if (event.key == Qt.Key_C) + myText.text = 'Key C was pressed' + } + } +} +//! [focus true] diff --git a/doc/src/snippets/declarative/focus/clickablewidget.qml b/doc/src/snippets/declarative/focus/clickablewidget.qml new file mode 100644 index 0000000..34b0d87 --- /dev/null +++ b/doc/src/snippets/declarative/focus/clickablewidget.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//! [clickable window] +Rectangle { + id: window + + color: "white"; width: 240; height: 150 + + Column { + anchors.centerIn: parent; spacing: 15 + + MyClickableWidget { + focus: true //set this MyWidget to receive the focus + color: "lightblue" + } + MyClickableWidget { + color: "palegreen" + } + } + +} +//! [clickable window] diff --git a/doc/src/snippets/declarative/focus/focusColumn.qml b/doc/src/snippets/declarative/focus/focusColumn.qml new file mode 100644 index 0000000..eb59309 --- /dev/null +++ b/doc/src/snippets/declarative/focus/focusColumn.qml @@ -0,0 +1,25 @@ +import QtQuick 1.0 + +Rectangle { + width: 200; height: 200 + + // Column { + FocusScope { + x: rect1.x; y:rect1.y; width: rect1.width; height: rect1.height + Rectangle {id: rect1; width: 50; height: 50; focus:true + color: focus ? "red":"blue" + } + Rectangle {id: rect2; width: 50; height: 50; focus:true + color: focus ? "red":"blue" + y: 75 + } +// } +/* + FocusScope { + x: rect2.x; y:rect2.y; width: rect2.width; height: rect2.height + Rectangle {id: rect2; width: 50; height: 50; color: "red"} + } +*/ + } + +} diff --git a/doc/src/snippets/declarative/focus/focusscopewidget.qml b/doc/src/snippets/declarative/focus/focusscopewidget.qml new file mode 100644 index 0000000..48e5750 --- /dev/null +++ b/doc/src/snippets/declarative/focus/focusscopewidget.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//! [focusscope window] +Rectangle { + id: window + + color: "white"; width: 240; height: 150 + + Column { + anchors.centerIn: parent; spacing: 15 + + MyFocusScopeWidget { + focus: true //set this MyWidget to receive the focus + color: "lightblue" + } + MyFocusScopeWidget { + color: "palegreen" + } + } + +} +//! [focusscope window] diff --git a/doc/src/snippets/declarative/focus/myclickablewidget.qml b/doc/src/snippets/declarative/focus/myclickablewidget.qml new file mode 100644 index 0000000..3294662 --- /dev/null +++ b/doc/src/snippets/declarative/focus/myclickablewidget.qml @@ -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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//! [clickable in focusscope] +FocusScope { + + id: scope + + //FocusScope needs to bind to visual properties of the children + property alias color: rectangle.color + x: rectangle.x; y: rectangle.y + width: rectangle.width; height: rectangle.height + + Rectangle { + id: rectangle + anchors.centerIn: parent + color: "lightsteelblue"; width: 175; height: 25; radius: 10; smooth: true + Text { id: label; anchors.centerIn: parent } + focus: true + Keys.onPressed: { + if (event.key == Qt.Key_A) + label.text = 'Key A was pressed' + else if (event.key == Qt.Key_B) + label.text = 'Key B was pressed' + else if (event.key == Qt.Key_C) + label.text = 'Key C was pressed' + } + } + MouseArea { anchors.fill: parent; onClicked: { scope.focus = true } } +} +//! [clickable in focusscope] diff --git a/doc/src/snippets/declarative/focus/myfocusscopewidget.qml b/doc/src/snippets/declarative/focus/myfocusscopewidget.qml new file mode 100644 index 0000000..231ae3a --- /dev/null +++ b/doc/src/snippets/declarative/focus/myfocusscopewidget.qml @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//! [widget in focusscope] +FocusScope { + + //FocusScope needs to bind to visual properties of the children + property alias color: rectangle.color + x: rectangle.x; y: rectangle.y + width: rectangle.width; height: rectangle.height + + Rectangle { + id: rectangle + anchors.centerIn: parent + color: "lightsteelblue"; width: 175; height: 25; radius: 10; smooth: true + Text { id: label; anchors.centerIn: parent } + focus: true + Keys.onPressed: { + if (event.key == Qt.Key_A) + label.text = 'Key A was pressed' + else if (event.key == Qt.Key_B) + label.text = 'Key B was pressed' + else if (event.key == Qt.Key_C) + label.text = 'Key C was pressed' + } + } +} +//! [widget in focusscope] diff --git a/doc/src/snippets/declarative/focus/mywidget.qml b/doc/src/snippets/declarative/focus/mywidget.qml new file mode 100644 index 0000000..bea723d --- /dev/null +++ b/doc/src/snippets/declarative/focus/mywidget.qml @@ -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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//! [mywidget] +//MyWidget code +Rectangle { + id: widget + color: "lightsteelblue"; width: 175; height: 25; radius: 10; smooth: true + Text { id: label; anchors.centerIn: parent} + focus: true + Keys.onPressed: { + if (event.key == Qt.Key_A) + label.text = 'Key A was pressed' + else if (event.key == Qt.Key_B) + label.text = 'Key B was pressed' + else if (event.key == Qt.Key_C) + label.text = 'Key C was pressed' + } +} +//! [mywidget] diff --git a/doc/src/snippets/declarative/focus/qmldir b/doc/src/snippets/declarative/focus/qmldir new file mode 100644 index 0000000..d0683b2 --- /dev/null +++ b/doc/src/snippets/declarative/focus/qmldir @@ -0,0 +1,4 @@ +MyWidget 1.0 mywidget.qml +MyFocusScopeWidget 1.0 myfocusscopewidget.qml +MyClickableWidget 1.0 myclickablewidget.qml + diff --git a/doc/src/snippets/declarative/focus/rectangle.qml b/doc/src/snippets/declarative/focus/rectangle.qml new file mode 100644 index 0000000..01d1f0c --- /dev/null +++ b/doc/src/snippets/declarative/focus/rectangle.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//! [simple key event] +Rectangle { + width: 100; height: 100 + focus: true + Keys.onPressed: { + if (event.key == Qt.Key_A) { + console.log('Key A was pressed'); + event.accepted = true; + } + } +//! [simple key event] + +//! [active focus] + Text { + text: activeFocus ? "I have active focus!" : "I do not have active focus" + } +//! [active focus] + +//! [simple key event end] +} +//! [simple key event end] diff --git a/doc/src/snippets/declarative/focus/widget.qml b/doc/src/snippets/declarative/focus/widget.qml new file mode 100644 index 0000000..cef34c5 --- /dev/null +++ b/doc/src/snippets/declarative/focus/widget.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** 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:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ +import QtQuick 1.0 + +//! [window] + +//Window code that imports MyWidget +Rectangle { + id: window + color: "white"; width: 240; height: 150 + + Column { + anchors.centerIn: parent; spacing: 15 + + MyWidget { + focus: true //set this MyWidget to receive the focus + color: "lightblue" + } + MyWidget { + color: "palegreen" + } + } +} +//! [window] -- cgit v0.12 From 16447b1193fedf5fdcf1f3d270fa73c5036a1ba0 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Tue, 7 Dec 2010 10:41:10 +1000 Subject: Fix openDatabaseSync() to not create unused directory Task-number: QTBUG-15909 Reviewed-by: Warwick Allison --- src/declarative/qml/qdeclarativesqldatabase.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/declarative/qml/qdeclarativesqldatabase.cpp b/src/declarative/qml/qdeclarativesqldatabase.cpp index 45f277e..3f53111 100644 --- a/src/declarative/qml/qdeclarativesqldatabase.cpp +++ b/src/declarative/qml/qdeclarativesqldatabase.cpp @@ -375,7 +375,6 @@ static QScriptValue qmlsqldatabase_open_sync(QScriptContext *context, QScriptEng } else { created = !QFile::exists(basename+QLatin1String(".sqlite")); database = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), dbid); - QDir().mkpath(basename); if (created) { ini.setValue(QLatin1String("Name"), dbname); if (dbcreationCallback.isFunction()) -- cgit v0.12 From f3a7c4e458edb40957186e52012f15767eb8c1f4 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Tue, 7 Dec 2010 12:49:54 +1000 Subject: Update QtGui def files Task-number: QTBUG-15815 --- src/s60installs/bwins/QtGuiu.def | 1 + src/s60installs/eabi/QtGuiu.def | 1 + 2 files changed, 2 insertions(+) diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index 6a33fc3..355b46a 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -12905,4 +12905,5 @@ EXPORTS ?reactivateDeferredActiveObjects@QEventDispatcherS60@@UAEXXZ @ 12904 NONAME ; void QEventDispatcherS60::reactivateDeferredActiveObjects(void) ?userData@QStaticTextItem@@QBEPAVQStaticTextUserData@@XZ @ 12905 NONAME ; class QStaticTextUserData * QStaticTextItem::userData(void) const ?populate@QTextureGlyphCache@@QAE_NPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12906 NONAME ; bool QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *) + ?resetCursorBlinkTimer@QLineControl@@QAEXXZ @ 12907 NONAME ; void QLineControl::resetCursorBlinkTimer(void) diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 54768a1..6b8dd7c 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -12105,4 +12105,5 @@ EXPORTS _ZN15QStaticTextItemD1Ev @ 12104 NONAME _ZN15QStaticTextItemD2Ev @ 12105 NONAME _ZN19QEventDispatcherS6031reactivateDeferredActiveObjectsEv @ 12106 NONAME + _ZN12QLineControl21resetCursorBlinkTimerEv @ 12107 NONAME -- cgit v0.12 From f48a99165e0f3a63b3b144e1a7c7ce586bfc96c4 Mon Sep 17 00:00:00 2001 From: axis Date: Mon, 6 Dec 2010 15:26:08 +0100 Subject: Fixed a BC break between S60 SDK 3.2 and 5.0. Task: QT-4077 RevBy: Shane Kearns --- src/gui/kernel/qeventdispatcher_s60_p.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gui/kernel/qeventdispatcher_s60_p.h b/src/gui/kernel/qeventdispatcher_s60_p.h index c14fef0..539a21c 100644 --- a/src/gui/kernel/qeventdispatcher_s60_p.h +++ b/src/gui/kernel/qeventdispatcher_s60_p.h @@ -75,6 +75,13 @@ public: void complete(); private: + // Workaround for a BC break from S60 3.2 -> 5.0, where the CEikonEnv override was removed. + // To avoid linking to that when we build against 3.2, define an empty body here. + // Reserved_*() have been verified to be empty in the S60 code. + void Reserved_1() {} + void Reserved_2() {} + +private: int m_lastIterationCount; TInt m_savedStatusCode; bool m_hasAlreadyRun; -- cgit v0.12 From 700ce118e1f294148fbbd9b92672f9ff7ec21f8e Mon Sep 17 00:00:00 2001 From: Karim Pinter Date: Tue, 7 Dec 2010 11:46:55 +0200 Subject: Updating merge request 2512 Removing unnecessary comments and changing define to Q_OS_SYMBIAN. Task-number: QTBUG_9505 --- src/gui/widgets/qmenu.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index d9233f5..538df35 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1795,9 +1795,7 @@ QSize QMenu::sizeHint() const void QMenu::popup(const QPoint &p, QAction *atAction) { Q_D(QMenu); -#ifndef Q_WS_S60 - //on S60 opens the menu at the same position it was activated last time - //there is no need to reset the offset fix for QTBUG-9505 +#ifndef Q_OS_SYMBIAN if (d->scroll) { // reset scroll state from last popup d->scroll->scrollOffset = 0; d->scroll->scrollFlags = QMenuPrivate::QMenuScroller::ScrollNone; -- cgit v0.12 From 84fa2a82ea90ad2c554b54bd08db1f41d85484ea Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Tue, 7 Dec 2010 11:07:39 +0100 Subject: Fix compile error in tst_qfileinfo on Mac/Linux Reviewed-by: Shane Kearns --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 70ed842..2e1ab39 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -1648,6 +1648,7 @@ void tst_QFileInfo::detachingOperations() } #if !defined(Q_OS_WINCE) && !defined(Q_OS_SYMBIAN) +#if defined (Q_OS_WIN) BOOL IsUserAdmin() { BOOL b; @@ -1668,6 +1669,7 @@ BOOL IsUserAdmin() return(b); } +#endif void tst_QFileInfo::owner() { -- cgit v0.12 From 8f7de974b34b6fc6c0c15dbf4cdc35e5722e2196 Mon Sep 17 00:00:00 2001 From: Ruben Van Boxem Date: Tue, 7 Dec 2010 12:29:36 +0100 Subject: Fix for GCC on Windows x64. Merge-request: 939 Reviewed-by: Olivier Goffart --- src/corelib/tools/qsimd.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp index 63ebafb..bc5e9e4 100644 --- a/src/corelib/tools/qsimd.cpp +++ b/src/corelib/tools/qsimd.cpp @@ -285,7 +285,13 @@ static inline uint detectProcessorFeatures() uint features = MMX|SSE|SSE2|CMOV; uint feature_result = 0; -#if defined(Q_CC_GNU) +#if defined (Q_OS_WIN64) + { + int info[4]; + __cpuid(info, 1); + feature_result = info[2]; + } +#elif defined(Q_CC_GNU) quint64 tmp; asm ("xchg %%rbx, %1\n" "cpuid\n" @@ -294,12 +300,6 @@ static inline uint detectProcessorFeatures() : "a" (1) : "%edx" ); -#elif defined (Q_OS_WIN64) - { - int info[4]; - __cpuid(info, 1); - feature_result = info[2]; - } #endif if (feature_result & (1u)) -- cgit v0.12 From 532115bcaa370af827a5cbad017b272842c5aacf Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 7 Dec 2010 13:02:48 +0100 Subject: Fix text disappearing on GL when RGB-path is taken (no transformation) When there is no transformation on a glyph in the GL texture glyph cache, it will take the RGB code path to support subpixel antialiasing. In this code path we would ask glTextImage2D() to convert from a GL_ALPHA buffer to an internal format of GL_RGBA. This is not supported on OpenGL ES 2, and would cause missing text for some drivers. The change also fixes a typo in an #ifdef. Task-number: QTBUG-15789 Reviewed-by: Kim --- src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp index 705ad09..66445cd 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp @@ -128,14 +128,17 @@ void QGLTextureGlyphCache::createTextureData(int width, int height) m_width = width; m_height = height; - QVarLengthArray data(width * height); - for (int i = 0; i < data.size(); ++i) - data[i] = 0; - - if (m_type == QFontEngineGlyphCache::Raster_RGBMask) - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_ALPHA, GL_UNSIGNED_BYTE, &data[0]); - else + if (m_type == QFontEngineGlyphCache::Raster_RGBMask) { + QVarLengthArray data(width * height * 4); + for (int i = 0; i < data.size(); ++i) + data[i] = 0; + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, &data[0]); + } else { + QVarLengthArray data(width * height); + for (int i = 0; i < data.size(); ++i) + data[i] = 0; glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, width, height, 0, GL_ALPHA, GL_UNSIGNED_BYTE, &data[0]); + } glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); @@ -287,7 +290,7 @@ void QGLTextureGlyphCache::fillTexture(const Coord &c, glyph_t glyph) if (mask.format() == QImage::Format_RGB32) { glTexSubImage2D(GL_TEXTURE_2D, 0, c.x, c.y, maskWidth, maskHeight, GL_BGRA, GL_UNSIGNED_BYTE, mask.bits()); } else { -#ifdef QT_OPENGL_ES2 +#ifdef QT_OPENGL_ES_2 glTexSubImage2D(GL_TEXTURE_2D, 0, c.x, c.y, maskWidth, maskHeight, GL_ALPHA, GL_UNSIGNED_BYTE, mask.bits()); #else // glTexSubImage2D() might cause some garbage to appear in the texture if the mask width is -- cgit v0.12 From eac9e6a11e7727d8a749242f317362337ce89a1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Tue, 7 Dec 2010 12:53:37 +0100 Subject: Prevent always deep-copying in QPixmap::toImage() for raster pixmaps. Calling paintEngine() can cause a deep copy since it will indirectly call the bits() function. Since we don't want to create a paint engine if it doesn't exist we should access the QImageData paintEngine variable directly instead. Reviewed-by: Olivier Goffart --- src/gui/image/qpixmap_raster.cpp | 13 ++++++++----- tests/auto/qpixmap/tst_qpixmap.cpp | 10 ++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/gui/image/qpixmap_raster.cpp b/src/gui/image/qpixmap_raster.cpp index f080687..29bf5f5 100644 --- a/src/gui/image/qpixmap_raster.cpp +++ b/src/gui/image/qpixmap_raster.cpp @@ -50,6 +50,7 @@ #include "qimage.h" #include #include +#include #include #include #include @@ -303,11 +304,13 @@ bool QRasterPixmapData::hasAlphaChannel() const QImage QRasterPixmapData::toImage() const { - if (image.paintEngine() - && image.paintEngine()->isActive() - && image.paintEngine()->paintDevice() == &image) - { - return image.copy(); + if (!image.isNull()) { + QImageData *data = const_cast(image).data_ptr(); + if (data->paintEngine && data->paintEngine->isActive() + && data->paintEngine->paintDevice() == &image) + { + return image.copy(); + } } return image; diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp index d5267b5..419518a1 100644 --- a/tests/auto/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/qpixmap/tst_qpixmap.cpp @@ -129,10 +129,7 @@ private slots: void isNull(); void task_246446(); -#ifdef Q_WS_QWS void convertFromImageNoDetach(); -#endif - void convertFromImageDetach(); #if defined(Q_WS_WIN) @@ -913,11 +910,13 @@ void tst_QPixmap::isNull() } } -#ifdef Q_WS_QWS void tst_QPixmap::convertFromImageNoDetach() { + QPixmap randomPixmap(10, 10); + if (randomPixmap.pixmapData()->classId() != QPixmapData::RasterClass) + QSKIP("Test only valid for raster pixmaps", SkipAll); + //first get the screen format - QPixmap randomPixmap(10,10); QImage::Format screenFormat = randomPixmap.toImage().format(); QVERIFY(screenFormat != QImage::Format_Invalid); @@ -932,7 +931,6 @@ void tst_QPixmap::convertFromImageNoDetach() const QImage constCopy = copy; QVERIFY(constOrig.bits() == constCopy.bits()); } -#endif //Q_WS_QWS void tst_QPixmap::convertFromImageDetach() { -- cgit v0.12 From 146ea109f9980beda939088687b37549f4d7a125 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 7 Dec 2010 17:04:29 +0100 Subject: Doc: Added a missing external page reference. --- doc/src/external-resources.qdoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc index 8eeaeb1..9bc3b1c 100644 --- a/doc/src/external-resources.qdoc +++ b/doc/src/external-resources.qdoc @@ -448,3 +448,8 @@ \externalpage https://developer.mozilla.org/en/JavaScript/About_JavaScript \title About JavaScript */ + +/*! + \externalpage http://www.libusb.org/ + \title libusb +*/ -- cgit v0.12 From 2c55c106839a4ba1a9d9c1d3f6f6cf7e835ccc1d Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 7 Dec 2010 17:29:04 +0100 Subject: Doc: Added documentation about the use of null custom title bar widgets. Task-number: QTBUG-15516 --- src/gui/widgets/qdockwidget.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/gui/widgets/qdockwidget.cpp b/src/gui/widgets/qdockwidget.cpp index df9b171..0a6269d 100644 --- a/src/gui/widgets/qdockwidget.cpp +++ b/src/gui/widgets/qdockwidget.cpp @@ -1531,8 +1531,11 @@ QAction * QDockWidget::toggleViewAction() const /*! \since 4.3 + Sets an arbitrary \a widget as the dock widget's title bar. If \a widget - is 0, the title bar widget is removed, but not deleted. + is 0, any custom title bar widget previously set on the dock widget is + removed, but not deleted, and the default title bar will be used + instead. If a title bar widget is set, QDockWidget will not use native window decorations when it is floated. @@ -1540,23 +1543,27 @@ QAction * QDockWidget::toggleViewAction() const Here are some tips for implementing custom title bars: \list - \i Mouse events that are not explicitly handled by the title bar widget + \o Mouse events that are not explicitly handled by the title bar widget must be ignored by calling QMouseEvent::ignore(). These events then propagate to the QDockWidget parent, which handles them in the usual manner, moving when the title bar is dragged, docking and undocking when it is double-clicked, etc. - \i When DockWidgetVerticalTitleBar is set on QDockWidget, the title + \o When DockWidgetVerticalTitleBar is set on QDockWidget, the title bar widget is repositioned accordingly. In resizeEvent(), the title bar should check what orientation it should assume: \snippet doc/src/snippets/code/src_gui_widgets_qdockwidget.cpp 0 - \i The title bar widget must have a valid QWidget::sizeHint() and + \o The title bar widget must have a valid QWidget::sizeHint() and QWidget::minimumSizeHint(). These functions should take into account the current orientation of the title bar. + + \o It is not possible to remove a title bar from a dock widget. However, + a similar effect can be achieved by setting a default constructed + QWidget as the title bar widget. \endlist - Using qobject_cast as shown above, the title bar widget has full access + Using qobject_cast() as shown above, the title bar widget has full access to its parent QDockWidget. Hence it can perform such operations as docking and hiding in response to user actions. -- cgit v0.12 From aa4b28cbe52eedfe898da04958339509b1d173bc Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 7 Dec 2010 17:36:01 +0100 Subject: Doc: Fixed a link to the correct searchPaths() function. --- src/corelib/io/qresource.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp index ce9c57e..b45710c 100644 --- a/src/corelib/io/qresource.cpp +++ b/src/corelib/io/qresource.cpp @@ -187,7 +187,7 @@ Q_GLOBAL_STATIC(QStringList, resourceSearchPaths) A QResource can either be loaded with an absolute path, either treated as a file system rooted with a \c{/} character, or in resource notation rooted with a \c{:} character. A relative resource can also be opened - which will be found through the searchPaths(). + which will be found in the list of paths returned by QDir::searchPaths(). A QResource that is representing a file will have data backing it, this data can possibly be compressed, in which case qUncompress() must be -- cgit v0.12 From 4483325532f57157f9ce6953670f9ab175dbaf2a Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 7 Dec 2010 17:36:40 +0100 Subject: Doc: Removed duplicate external page reference. --- doc/src/qt-webpages.qdoc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc index b7b9fba..0a03157 100644 --- a/doc/src/qt-webpages.qdoc +++ b/doc/src/qt-webpages.qdoc @@ -201,11 +201,6 @@ */ /*! - \externalpage http://labs.qt.nokia.com/gitweb?p=qtestlib-tools;a=summary - \title qtestlib-tools -*/ - -/*! \externalpage http://qt.nokia.com/products/library/modular-class-library#info_scripting \title Qt Script for Applications (QSA) */ -- cgit v0.12 From 68a21753acd3e4159025bc73b0a31e652340e039 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 7 Dec 2010 17:37:12 +0100 Subject: Doc: Added a link to the QML Basic Types page. --- doc/src/declarative/declarativeui.qdoc | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc index 5d9eaaf..3d963e2 100644 --- a/doc/src/declarative/declarativeui.qdoc +++ b/doc/src/declarative/declarativeui.qdoc @@ -136,6 +136,7 @@ Module. \list \o \l{QML Elements} +\o \l{QML Basic Types} \o \l{QML Global Object} \o \l{QML Internationalization} \o \l{QML Security} -- cgit v0.12 From 30272ee4f7b37a75bd9b56aa5eb763073a6c965a Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 7 Dec 2010 17:47:32 +0100 Subject: Doc: Fixed incorrect case in a page file name. --- doc/src/getting-started/installation.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc index a68310c..aa10aaf 100644 --- a/doc/src/getting-started/installation.qdoc +++ b/doc/src/getting-started/installation.qdoc @@ -684,7 +684,7 @@ Binary Package} document. We hope you will enjoy using Qt. */ -/*! \page install-Symbian-linux.html +/*! \page install-symbian-linux.html \title Installing Qt for the Symbian platform using Linux (experimental) \ingroup installation \ingroup qtsymbian -- cgit v0.12 From 90928a986d8f37cf394d45cbcf12aaeeaa62d565 Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 7 Dec 2010 17:48:11 +0100 Subject: Doc: Added missing What's New information for Qt 4.6 and 4.7. Task-number: QTBUG-15670 --- doc/src/network-programming/bearermanagement.qdoc | 8 +-- doc/src/qt4-intro.qdoc | 62 ++++++++++++++++++++--- 2 files changed, 58 insertions(+), 12 deletions(-) diff --git a/doc/src/network-programming/bearermanagement.qdoc b/doc/src/network-programming/bearermanagement.qdoc index 98de5bf..12da55b 100644 --- a/doc/src/network-programming/bearermanagement.qdoc +++ b/doc/src/network-programming/bearermanagement.qdoc @@ -26,11 +26,11 @@ ****************************************************************************/ /*! - \page bearer-management.html +\page bearer-management.html - \title Bearer Management - \ingroup qt-network - \brief An API to control the system's connectivity state. +\title Bearer Management +\ingroup qt-network +\brief An API to control the system's connectivity state. Bearer Management controls the connectivity state of the system so that the user can start or stop interfaces or roam transparently between diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc index 62decbb..7325e27 100644 --- a/doc/src/qt4-intro.qdoc +++ b/doc/src/qt4-intro.qdoc @@ -60,7 +60,53 @@ \section1 Recent Additions to Qt 4 - The following features have been added to Qt since the first release of Qt 4: + The following features have been added to Qt since the first release of Qt 4. + + In Qt 4.7: + \list + \o Declarative UI Development with \l{Qt Quick}, technologies for creating + fluid, dynamic user interfaces. + \o Support for \l{Bearer Management}{network bearer management}, enabling + features such as control over network interfaces and support for roaming + between networks. + \o Feature and performance improvements in QtWebKit, including a new tiled + backing store, control over scroll bars used in frames and framesets, + accelerated compositing and \l{The QtWebKit Bridge}{support for hybrid + development}. + \o General performance improvements, including the use of "alien widgets" + on Mac OS X, the QStaticText class for optimized text rendering, a new + \l{QPainter::drawPixmapFragments()}{API for rendering pixmap fragments} + and an updated version of the JavaScriptCore engine for the QtScript + module with improved performance. + \endlist + + In Qt 4.6: + \list + \o Support for \l{The Symbian platform - Introduction to Qt}{the Symbian Platform} + as a mainstream Qt platform, with integration into the S60 framework. + \o The \l{The Animation Framework}{animation framework} allows animations to be + created using both widgets and graphics items. + \o The \l{The State Machine Framework}{state machine framework} provides a robust + state chart implementation based on Harel statecharts and SCXML. + \o Support for \l{QTouchEvent}{touch input} and \l{Gestures Programming}{gestures} + enable developers to create intuitive user interfaces for touch-based devices. + \o A \l{QWebElement}{DOM access API} for QtWebKit provides a cleaner and safer way + to access elements and structures of Web pages without the use of JavaScript. + \o A collection of performance improvements, covering QGraphicsView, QPixmapCache, + QNetworkAccessManager, QContiguousCache class, hardware-accelerated rendering + support through \l{OpenVG Rendering in Qt}{OpenVG}, and the removal of Win9x + support. + \o A collection of \l{QGraphicsEffect}{graphics effects} make it easy to apply + and simple effects to graphics items and combine them to produce more complex + effects. + \o Support for XML schema validation in the QtXmlPatterns module covering + large parts of version 1.0 of the specification. + \o Qt3D enablers, including math primitives for \l{QMatrix4x4}{matrix multiplication}, + \l{QVector3D}{vectors}, \l{QQuaternion}{quaternions} (client-side), and an API + for \l{QGLShader}{vertex and fragment shaders}, GLSL/ES. + \o \l{QtMultimedia Module}{Multimedia services} providing low-level access to the + system's audio system. + \endlist In Qt 4.5: \list @@ -209,7 +255,7 @@ \row \o \l{Qt3Support} \o Qt 3 support classes \row \o \l{QAxContainer} \o ActiveQt client extension \row \o \l{QAxServer} \o ActiveQt server extension - \row \o \l{QtHelp} \o Classes for integrating online documentation + \row \o \l{QtHelp} \o Classes for integrating online documentation \row \o \l{QtDesigner} \o Classes for extending and embedding Qt Designer \row \o \l{QtUiTools} \o Classes for dynamic GUI generation \row \o \l{QtTest} \o Tool classes for unit testing @@ -451,7 +497,7 @@ A list of other Qt 4 features can be found on the \bold{\l{What's New in Qt 4}} page. - \section1 Declarative UI development with Qt Quick + \section1 Declarative UI Development with Qt Quick \image quick_screens.png @@ -508,7 +554,7 @@ For hybrid QtWebKit and C++ projects, Qt 4.7 has added support for transporting \l{QPixmap}s between Qt C++ and WebKit. We have also - improved the documentation hybrid development. Read more here: + improved the documentation for hybrid development. Read more here: \l{The QtWebKit Bridge}. \section1 QtWebKit Performance Benchmarks @@ -680,7 +726,7 @@ See the QTouchEvent class documentation for more information on touch input and QGestureEvent for gestures. - \section1 DOM access API + \section1 DOM Access API Web pages and XML both have very complex document object models. The W3C selector API provides a very simple way to access and @@ -699,7 +745,7 @@ \list \o Rewritten the QGraphicsView rendering algorithm. - \o Made QPixmapCache support efficient Key datastructure. + \o Made QPixmapCache support efficient Key data structure. \o Reduced overhead in QNetworkAccessManager. \o Added the QContiguousCache class, which provides efficient caching of contiguous data. @@ -740,7 +786,7 @@ See the \l{XML Processing} and QXmlSchema class documentation for more information. - \section1 Qt3D enablers + \section1 Qt3D Enablers As more of Qt, and more of the applications built on Qt go 3D, API's should be provided to simplify this. Mainly, the new API @@ -750,7 +796,7 @@ The main features of the Qt3D enablers are currently: Math primitives for matrix multiplication, vectors, quaternions - (client-side), and API for vertex and fragment shaders, GLSL/ES. + (client-side), and an API for vertex and fragment shaders, GLSL/ES. Future research will, among other things include stencils, scissors, vertex buffers and arrays, texture manipulation, and geometry shaders. -- cgit v0.12 From 783a278f243c6411f5f32d11f2165b9eed9b6f8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 7 Dec 2010 14:27:14 +0100 Subject: Don't emit activeFocusChanged() unless the active focus actually changed We would previously call subFocusItemChanged(0) on the item as part of clearing the subfocus, even if the item in question would recieve a new subfocus item as part of setting the new subfocus. This resulted in the declarative item emitting activeFocusChanged(false) and then activeFocusChanged(true), which was affecting any animation or state bound to the activeFocus property of the item. We now stop clearing the subfocus when encountering an item that we know will get subfocus during the set-subfocus pass. We then set subfocus all the way to the root item, since the subfocus item itself might change. The effect of this is that the declarative item will only get one call to subFocusItemChanged(), passing the new subfocus item, instead of two. This means the declarative item can keep track of wherther ot not it had a subfocus item previously, and only emit activeFocusChanged() when the active focus goes from true to false or false to true. Task-number: QTBUG-15615 Reviewed-by: Yoann Lopes --- src/declarative/graphicsitems/qdeclarativeitem_p.h | 10 +- src/gui/graphicsview/qgraphicsitem.cpp | 18 ++-- src/gui/graphicsview/qgraphicsitem_p.h | 4 +- .../data/forceActiveFocus.qml | 26 +++++ .../tst_qdeclarativefocusscope.cpp | 109 +++++++++++++++++++++ 5 files changed, 155 insertions(+), 12 deletions(-) create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/forceActiveFocus.qml diff --git a/src/declarative/graphicsitems/qdeclarativeitem_p.h b/src/declarative/graphicsitems/qdeclarativeitem_p.h index d8635b9..a36ee34 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem_p.h +++ b/src/declarative/graphicsitems/qdeclarativeitem_p.h @@ -126,7 +126,7 @@ public: widthValid(false), heightValid(false), componentComplete(true), keepMouse(false), smooth(false), transformOriginDirty(true), doneEventPreHandler(false), keyHandler(0), - mWidth(0), mHeight(0), implicitWidth(0), implicitHeight(0) + mWidth(0), mHeight(0), implicitWidth(0), implicitHeight(0), hadSubFocusItem(false) { QGraphicsItemPrivate::acceptedMouseButtons = 0; isDeclarativeItem = 1; @@ -275,6 +275,8 @@ public: qreal implicitWidth; qreal implicitHeight; + bool hadSubFocusItem; + QPointF computeTransformOrigin() const; virtual void setPosHelper(const QPointF &pos) @@ -288,9 +290,11 @@ public: // Reimplemented from QGraphicsItemPrivate virtual void subFocusItemChange() { - if (flags & QGraphicsItem::ItemIsFocusScope || !parent) - emit q_func()->activeFocusChanged(subFocusItem != 0); + bool hasSubFocusItem = subFocusItem != 0; + if (((flags & QGraphicsItem::ItemIsFocusScope) || !parent) && hasSubFocusItem != hadSubFocusItem) + emit q_func()->activeFocusChanged(hasSubFocusItem); //see also QDeclarativeItemPrivate::focusChanged + hadSubFocusItem = hasSubFocusItem; } // Reimplemented from QGraphicsItemPrivate diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 7ab49cb..94e1a72 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -3295,9 +3295,13 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim } // Update the child focus chain. - if (scene && scene->focusItem()) - scene->focusItem()->d_ptr->clearSubFocus(); - f->d_ptr->setSubFocus(); + QGraphicsItem *commonAncestor = 0; + if (scene && scene->focusItem()) { + commonAncestor = scene->focusItem()->commonAncestorItem(f); + scene->focusItem()->d_ptr->clearSubFocus(scene->focusItem(), commonAncestor); + } + + f->d_ptr->setSubFocus(f, commonAncestor); // Update the scene's focus item. if (scene) { @@ -5554,7 +5558,7 @@ void QGraphicsItemPrivate::ensureSceneTransformRecursive(QGraphicsItem **topMost /*! \internal */ -void QGraphicsItemPrivate::setSubFocus(QGraphicsItem *rootItem) +void QGraphicsItemPrivate::setSubFocus(QGraphicsItem *rootItem, QGraphicsItem *stopItem) { // Update focus child chain. Stop at panels, or if this item // is hidden, stop at the first item with a visible parent. @@ -5567,7 +5571,7 @@ void QGraphicsItemPrivate::setSubFocus(QGraphicsItem *rootItem) if (parent != q_ptr && parent->d_ptr->subFocusItem) { if (parent->d_ptr->subFocusItem == q_ptr) break; - parent->d_ptr->subFocusItem->d_ptr->clearSubFocus(); + parent->d_ptr->subFocusItem->d_ptr->clearSubFocus(0, stopItem); } parent->d_ptr->subFocusItem = q_ptr; parent->d_ptr->subFocusItemChange(); @@ -5580,12 +5584,12 @@ void QGraphicsItemPrivate::setSubFocus(QGraphicsItem *rootItem) /*! \internal */ -void QGraphicsItemPrivate::clearSubFocus(QGraphicsItem *rootItem) +void QGraphicsItemPrivate::clearSubFocus(QGraphicsItem *rootItem, QGraphicsItem *stopItem) { // Reset sub focus chain. QGraphicsItem *parent = rootItem ? rootItem : q_ptr; do { - if (parent->d_ptr->subFocusItem != q_ptr) + if (parent->d_ptr->subFocusItem != q_ptr || parent == stopItem) break; parent->d_ptr->subFocusItem = 0; parent->d_ptr->subFocusItemChange(); diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h index 1b7aa97..b938759 100644 --- a/src/gui/graphicsview/qgraphicsitem_p.h +++ b/src/gui/graphicsview/qgraphicsitem_p.h @@ -479,8 +479,8 @@ public: void setFocusHelper(Qt::FocusReason focusReason, bool climb, bool focusFromHide); void clearFocusHelper(bool giveFocusToParent); - void setSubFocus(QGraphicsItem *rootItem = 0); - void clearSubFocus(QGraphicsItem *rootItem = 0); + void setSubFocus(QGraphicsItem *rootItem = 0, QGraphicsItem *stopItem = 0); + void clearSubFocus(QGraphicsItem *rootItem = 0, QGraphicsItem *stopItem = 0); void resetFocusProxy(); virtual void subFocusItemChange(); virtual void focusScopeItemChange(bool isSubFocusItem); diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/forceActiveFocus.qml b/tests/auto/declarative/qdeclarativefocusscope/data/forceActiveFocus.qml new file mode 100644 index 0000000..6c39d4a --- /dev/null +++ b/tests/auto/declarative/qdeclarativefocusscope/data/forceActiveFocus.qml @@ -0,0 +1,26 @@ +import QtQuick 1.0 + +Rectangle { + objectName: "root" + FocusScope { + objectName: "scope" + Item { + objectName: "item-a1" + FocusScope { + objectName: "scope-a" + Item { + objectName: "item-a2" + } + } + } + Item { + objectName: "item-b1" + FocusScope { + objectName: "scope-b" + Item { + objectName: "item-b2" + } + } + } + } +} diff --git a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp index 1645dac..6a3627b 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp +++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp @@ -71,6 +71,7 @@ private slots: void noParentFocus(); void signalEmission(); void qtBug13380(); + void forceActiveFocus(); }; /* @@ -432,6 +433,114 @@ void tst_qdeclarativefocusscope::qtBug13380() delete view; } +void tst_qdeclarativefocusscope::forceActiveFocus() +{ + QDeclarativeView *view = new QDeclarativeView; + view->setSource(QUrl::fromLocalFile(SRCDIR "/data/forceActiveFocus.qml")); + + QGraphicsObject *rootObject = view->rootObject(); + QVERIFY(rootObject); + + QDeclarativeItem *scope = findItem(rootObject, QLatin1String("scope")); + QDeclarativeItem *itemA1 = findItem(rootObject, QLatin1String("item-a1")); + QDeclarativeItem *scopeA = findItem(rootObject, QLatin1String("scope-a")); + QDeclarativeItem *itemA2 = findItem(rootObject, QLatin1String("item-a2")); + QDeclarativeItem *itemB1 = findItem(rootObject, QLatin1String("item-b1")); + QDeclarativeItem *scopeB = findItem(rootObject, QLatin1String("scope-b")); + QDeclarativeItem *itemB2 = findItem(rootObject, QLatin1String("item-b2")); + + QVERIFY(scope); + QVERIFY(itemA1); + QVERIFY(scopeA); + QVERIFY(itemA2); + QVERIFY(itemB1); + QVERIFY(scopeB); + QVERIFY(itemB2); + + QSignalSpy rootSpy(rootObject, SIGNAL(activeFocusChanged(bool))); + QSignalSpy scopeSpy(scope, SIGNAL(activeFocusChanged(bool))); + QSignalSpy scopeASpy(scopeA, SIGNAL(activeFocusChanged(bool))); + QSignalSpy scopeBSpy(scopeB, SIGNAL(activeFocusChanged(bool))); + + // First, walk the focus from item-a1 down to item-a2 and back again + itemA1->forceActiveFocus(); + QVERIFY(itemA1->hasActiveFocus()); + QCOMPARE(rootSpy.count(), 1); + QCOMPARE(scopeSpy.count(), 1); + + scopeA->forceActiveFocus(); + QVERIFY(!itemA1->hasActiveFocus()); + QVERIFY(scopeA->hasActiveFocus()); + QCOMPARE(scopeASpy.count(), 1); + QCOMPARE(rootSpy.count(), 1); + QCOMPARE(scopeSpy.count(), 1); + + itemA2->forceActiveFocus(); + QVERIFY(!itemA1->hasActiveFocus()); + QVERIFY(itemA2->hasActiveFocus()); + QVERIFY(scopeA->hasActiveFocus()); + QCOMPARE(scopeASpy.count(), 1); + QCOMPARE(rootSpy.count(), 1); + QCOMPARE(scopeSpy.count(), 1); + + scopeA->forceActiveFocus(); + QVERIFY(!itemA1->hasActiveFocus()); + QVERIFY(itemA2->hasActiveFocus()); + QVERIFY(scopeA->hasActiveFocus()); + QCOMPARE(scopeASpy.count(), 1); + QCOMPARE(rootSpy.count(), 1); + QCOMPARE(scopeSpy.count(), 1); + + itemA1->forceActiveFocus(); + QVERIFY(itemA1->hasActiveFocus()); + QVERIFY(!scopeA->hasActiveFocus()); + QVERIFY(!itemA2->hasActiveFocus()); + QCOMPARE(scopeASpy.count(), 2); + QCOMPARE(rootSpy.count(), 1); + QCOMPARE(scopeSpy.count(), 1); + + // Then jump back and forth between branch 'a' and 'b' + itemB1->forceActiveFocus(); + QVERIFY(itemB1->hasActiveFocus()); + QCOMPARE(rootSpy.count(), 1); + QCOMPARE(scopeSpy.count(), 1); + + scopeA->forceActiveFocus(); + QVERIFY(!itemA1->hasActiveFocus()); + QVERIFY(!itemB1->hasActiveFocus()); + QVERIFY(scopeA->hasActiveFocus()); + QCOMPARE(scopeASpy.count(), 3); + QCOMPARE(rootSpy.count(), 1); + QCOMPARE(scopeSpy.count(), 1); + + scopeB->forceActiveFocus(); + QVERIFY(!scopeA->hasActiveFocus()); + QVERIFY(!itemB1->hasActiveFocus()); + QVERIFY(scopeB->hasActiveFocus()); + QCOMPARE(scopeASpy.count(), 4); + QCOMPARE(scopeBSpy.count(), 1); + QCOMPARE(rootSpy.count(), 1); + QCOMPARE(scopeSpy.count(), 1); + + itemA2->forceActiveFocus(); + QVERIFY(!scopeB->hasActiveFocus()); + QVERIFY(itemA2->hasActiveFocus()); + QCOMPARE(scopeASpy.count(), 5); + QCOMPARE(scopeBSpy.count(), 2); + QCOMPARE(rootSpy.count(), 1); + QCOMPARE(scopeSpy.count(), 1); + + itemB2->forceActiveFocus(); + QVERIFY(!itemA2->hasActiveFocus()); + QVERIFY(itemB2->hasActiveFocus()); + QCOMPARE(scopeASpy.count(), 6); + QCOMPARE(scopeBSpy.count(), 3); + QCOMPARE(rootSpy.count(), 1); + QCOMPARE(scopeSpy.count(), 1); + + delete view; +} + QTEST_MAIN(tst_qdeclarativefocusscope) #include "tst_qdeclarativefocusscope.moc" -- cgit v0.12 From 2eea05dee36f6ce263a91eae88f1029d2c333988 Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Fri, 3 Dec 2010 13:39:24 +0200 Subject: Proxy mode was not correctly checked. Fixes: NB#208617 - QtProxyFactory does not return correct (any) proxy data --- src/plugins/bearer/icd/proxyconf.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/bearer/icd/proxyconf.cpp b/src/plugins/bearer/icd/proxyconf.cpp index 37501fb..efe2da7 100644 --- a/src/plugins/bearer/icd/proxyconf.cpp +++ b/src/plugins/bearer/icd/proxyconf.cpp @@ -306,12 +306,12 @@ QList ProxyConfPrivate::flush(const QNetworkProxyQuery &query) if (isHostExcluded(query.peerHostName())) return result; // no proxy for this host - if (mode == "auto") { + if (mode == QLatin1String("AUTO")) { // TODO: pac currently not supported, fix me return result; } - if (mode == "manual") { + if (mode == QLatin1String("MANUAL")) { bool isHttps = false; QString protocol = query.protocolTag().toLower(); -- cgit v0.12 From ddeae91ab54bb92b813304778ab8dc4037937274 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 8 Dec 2010 16:22:04 +1000 Subject: ListView: Fix calculation of currentItem position when out of view. The calculation of position of currentItem when it is out of the visible area was bogus. Task-number: QTBUG-15525 Reviewed-by: Bea Lam --- .../graphicsitems/qdeclarativelistview.cpp | 12 ++- .../qdeclarativelistview/data/displaylist.qml | 9 ++- .../tst_qdeclarativelistview.cpp | 86 ++++++++++++++++++++++ 3 files changed, 102 insertions(+), 5 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index 845da79..2dfee3b 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -739,16 +739,20 @@ void QDeclarativeListViewPrivate::layout() return; } if (!visibleItems.isEmpty()) { - qreal oldEnd = visibleItems.last()->endPosition(); + bool fixedCurrent = currentItem && visibleItems.first()->item == currentItem->item; + qreal sum = visibleItems.first()->size(); qreal pos = visibleItems.first()->position() + visibleItems.first()->size() + spacing; for (int i=1; i < visibleItems.count(); ++i) { FxListItem *item = visibleItems.at(i); item->setPosition(pos); pos += item->size() + spacing; + sum += item->size(); + fixedCurrent = fixedCurrent || (currentItem && item->item == currentItem->item); } - // move current item if it is after the visible items. - if (currentItem && currentIndex > lastVisibleIndex()) - currentItem->setPosition(currentItem->position() + (visibleItems.last()->endPosition() - oldEnd)); + averageSize = qRound(sum / visibleItems.count()); + // move current item if it is not a visible item. + if (currentIndex >= 0 && currentItem && !fixedCurrent) + currentItem->setPosition(positionAt(currentIndex)); } q->refill(); minExtentDirty = true; diff --git a/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml b/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml index 487b70e..9d58530 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml @@ -1,6 +1,8 @@ import QtQuick 1.0 Rectangle { + id: root + property real delegateHeight: 20 width: 240 height: 320 color: "#ffffff" @@ -10,7 +12,8 @@ Rectangle { Rectangle { id: wrapper objectName: "wrapper" - height: 20 + height: root.delegateHeight + Behavior on height { NumberAnimation {} } width: 240 Text { text: index @@ -20,6 +23,10 @@ Rectangle { objectName: "displayText" text: display } + Text { + x: 200 + text: wrapper.y + } color: ListView.isCurrentItem ? "lightsteelblue" : "white" } }, diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index 759caf2..22ebb1a 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -103,6 +103,7 @@ private slots: void resizeView(); void sizeLessThan1(); void QTBUG_14821(); + void resizeDelegate(); private: template void items(); @@ -1406,6 +1407,8 @@ void tst_QDeclarativeListView::resetModel() QTRY_VERIFY(display != 0); QTRY_COMPARE(display->text(), strings.at(i)); } + + delete canvas; } void tst_QDeclarativeListView::propertyChanges() @@ -1613,6 +1616,8 @@ void tst_QDeclarativeListView::manualHighlight() QTRY_COMPARE(listview->currentIndex(), 2); QTRY_COMPARE(listview->currentItem(), findItem(contentItem, "wrapper", 2)); QTRY_COMPARE(listview->highlightItem()->y(), listview->currentItem()->y()); + + delete canvas; } void tst_QDeclarativeListView::QTBUG_11105() @@ -1752,6 +1757,8 @@ void tst_QDeclarativeListView::footer() model.clear(); QTRY_COMPARE(footer->y(), 0.0); + + delete canvas; } void tst_QDeclarativeListView::resizeView() @@ -1794,6 +1801,8 @@ void tst_QDeclarativeListView::resizeView() QMetaObject::invokeMethod(canvas->rootObject(), "heightRatio", Q_RETURN_ARG(QVariant, heightRatio)); QCOMPARE(heightRatio.toReal(), 0.25); + + delete canvas; } void tst_QDeclarativeListView::sizeLessThan1() @@ -1849,6 +1858,83 @@ void tst_QDeclarativeListView::QTBUG_14821() listview->incrementCurrentIndex(); QCOMPARE(listview->currentIndex(), 0); + + delete canvas; +} + +void tst_QDeclarativeListView::resizeDelegate() +{ + QDeclarativeView *canvas = createView(); + + QStringList strings; + for (int i = 0; i < 30; ++i) + strings << QString::number(i); + QStringListModel model(strings); + + QDeclarativeContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("testModel", &model); + + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/displaylist.qml")); + qApp->processEvents(); + + QDeclarativeListView *listview = findItem(canvas->rootObject(), "list"); + QTRY_VERIFY(listview != 0); + + QDeclarativeItem *contentItem = listview->contentItem(); + QTRY_VERIFY(contentItem != 0); + + QTRY_COMPARE(listview->count(), model.rowCount()); + + listview->setCurrentIndex(25); + listview->setContentY(0); + + for (int i = 0; i < 16; ++i) { + QDeclarativeItem *item = findItem(contentItem, "wrapper", i); + QVERIFY(item != 0); + QCOMPARE(item->y(), i*20.0); + } + + QCOMPARE(listview->currentItem()->y(), 500.0); + QTRY_COMPARE(listview->highlightItem()->y(), 500.0); + + canvas->rootObject()->setProperty("delegateHeight", 30); + qApp->processEvents(); + + for (int i = 0; i < 11; ++i) { + QDeclarativeItem *item = findItem(contentItem, "wrapper", i); + QVERIFY(item != 0); + QTRY_COMPARE(item->y(), i*30.0); + } + + QTRY_COMPARE(listview->currentItem()->y(), 750.0); + QTRY_COMPARE(listview->highlightItem()->y(), 750.0); + + listview->setCurrentIndex(1); + listview->positionViewAtIndex(25, QDeclarativeListView::Beginning); + listview->positionViewAtIndex(5, QDeclarativeListView::Beginning); + + for (int i = 5; i < 16; ++i) { + QDeclarativeItem *item = findItem(contentItem, "wrapper", i); + QVERIFY(item != 0); + QCOMPARE(item->y(), i*30.0); + } + + QTRY_COMPARE(listview->currentItem()->y(), 30.0); + QTRY_COMPARE(listview->highlightItem()->y(), 30.0); + + canvas->rootObject()->setProperty("delegateHeight", 20); + qApp->processEvents(); + + for (int i = 5; i < 11; ++i) { + QDeclarativeItem *item = findItem(contentItem, "wrapper", i); + QVERIFY(item != 0); + QTRY_COMPARE(item->y(), 150 + (i-5)*20.0); + } + + QTRY_COMPARE(listview->currentItem()->y(), 70.0); + QTRY_COMPARE(listview->highlightItem()->y(), 70.0); + + delete canvas; } void tst_QDeclarativeListView::qListModelInterface_items() -- cgit v0.12 From 8e01304939a19b65267887b220aa9814fc56b350 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Wed, 8 Dec 2010 10:52:36 +0100 Subject: Make sure QMeeGoGraphicsSystem::setTranslucent can't be called if surface already created. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 967 Reviewed-by: Samuel Rødal --- src/plugins/graphicssystems/meego/qmeegographicssystem.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp index 507f70b..4a86082 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp @@ -124,8 +124,10 @@ QPixmapData* QMeeGoGraphicsSystem::wrapPixmapData(QPixmapData *pmd) void QMeeGoGraphicsSystem::setSurfaceFixedSize(int /*width*/, int /*height*/) { - if (QMeeGoGraphicsSystem::surfaceWasCreated) + if (QMeeGoGraphicsSystem::surfaceWasCreated) { qWarning("Trying to set surface fixed size but surface already created!"); + return; + } #ifdef QT_WAS_PATCHED QEglProperties *properties = new QEglProperties(); @@ -143,6 +145,11 @@ void QMeeGoGraphicsSystem::setSurfaceScaling(int x, int y, int width, int height void QMeeGoGraphicsSystem::setTranslucent(bool translucent) { + if (QMeeGoGraphicsSystem::surfaceWasCreated) { + qWarning("Trying to set translucency but surface already created!"); + return; + } + QGLWindowSurface::surfaceFormat.setSampleBuffers(false); QGLWindowSurface::surfaceFormat.setSamples(0); QGLWindowSurface::surfaceFormat.setAlpha(translucent); -- cgit v0.12 From d5383440d1a3e0d96cfcfa754aaefe9d30f2e022 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Wed, 8 Dec 2010 10:46:16 +0100 Subject: Fix QWingedEdge memory usage issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QWingedEdge should reserve the amount of segments/edges/vertices in relative to the element count instead of length of the QPainterPath passed in. This problem is especially severe when QTextLayout using it to calculate the region for full line selection highlighting, because the region used QFIXED_MAX as right most coordinate, it will cost more than 2 GB of memory allocated just for it (recorded by valgrind on Mac OS X), and cause crash in systems short of memory. Task-number: QTBUG-15823 Reviewed-by: Samuel Rødal --- src/gui/painting/qpathclipper.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gui/painting/qpathclipper.cpp b/src/gui/painting/qpathclipper.cpp index a17b7c1..5060ad6 100644 --- a/src/gui/painting/qpathclipper.cpp +++ b/src/gui/painting/qpathclipper.cpp @@ -868,9 +868,9 @@ QWingedEdge::QWingedEdge() : } QWingedEdge::QWingedEdge(const QPainterPath &subject, const QPainterPath &clip) : - m_edges(subject.length()), - m_vertices(subject.length()), - m_segments(subject.length()) + m_edges(subject.elementCount()), + m_vertices(subject.elementCount()), + m_segments(subject.elementCount()) { m_segments.setPath(subject); m_segments.addPath(clip); @@ -1405,9 +1405,9 @@ bool QPathClipper::intersect() else if (clipIsRect) return subjectPath.intersects(r2); - QPathSegments a(subjectPath.length()); + QPathSegments a(subjectPath.elementCount()); a.setPath(subjectPath); - QPathSegments b(clipPath.length()); + QPathSegments b(clipPath.elementCount()); b.setPath(clipPath); QIntersectionFinder finder; @@ -1450,9 +1450,9 @@ bool QPathClipper::contains() if (clipIsRect) return subjectPath.contains(r2); - QPathSegments a(subjectPath.length()); + QPathSegments a(subjectPath.elementCount()); a.setPath(subjectPath); - QPathSegments b(clipPath.length()); + QPathSegments b(clipPath.elementCount()); b.setPath(clipPath); QIntersectionFinder finder; -- cgit v0.12 From 36d38c3670aca638a99618291a467b0a4b36f919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 8 Dec 2010 11:52:14 +0100 Subject: Update .def files after 783a278f243c6411f5f32d11f2165b9eed9b6f8c Based on patch from CI system --- src/s60installs/eabi/QtGuiu.def | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 54768a1..632326d 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -4658,11 +4658,11 @@ EXPORTS _ZN20QGraphicsEllipseItemD1Ev @ 4657 NONAME _ZN20QGraphicsEllipseItemD2Ev @ 4658 NONAME _ZN20QGraphicsItemPrivate11removeChildEP13QGraphicsItem @ 4659 NONAME - _ZN20QGraphicsItemPrivate11setSubFocusEP13QGraphicsItem @ 4660 NONAME + _ZN20QGraphicsItemPrivate11setSubFocusEP13QGraphicsItem @ 4660 NONAME ABSENT _ZN20QGraphicsItemPrivate12remapItemPosEP6QEventP13QGraphicsItem @ 4661 NONAME _ZN20QGraphicsItemPrivate12resolveDepthEv @ 4662 NONAME _ZN20QGraphicsItemPrivate12setPosHelperERK7QPointF @ 4663 NONAME - _ZN20QGraphicsItemPrivate13clearSubFocusEP13QGraphicsItem @ 4664 NONAME + _ZN20QGraphicsItemPrivate13clearSubFocusEP13QGraphicsItem @ 4664 NONAME ABSENT _ZN20QGraphicsItemPrivate14setFocusHelperEN2Qt11FocusReasonEb @ 4665 NONAME ABSENT _ZN20QGraphicsItemPrivate15resetFocusProxyEv @ 4666 NONAME _ZN20QGraphicsItemPrivate16setEnabledHelperEbbb @ 4667 NONAME @@ -12105,4 +12105,6 @@ EXPORTS _ZN15QStaticTextItemD1Ev @ 12104 NONAME _ZN15QStaticTextItemD2Ev @ 12105 NONAME _ZN19QEventDispatcherS6031reactivateDeferredActiveObjectsEv @ 12106 NONAME + _ZN20QGraphicsItemPrivate11setSubFocusEP13QGraphicsItemS1_ @ 12107 NONAME + _ZN20QGraphicsItemPrivate13clearSubFocusEP13QGraphicsItemS1_ @ 12108 NONAME -- cgit v0.12 From eb2bd43078c1bb43481aab795f92e105fa130860 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 8 Dec 2010 12:18:06 +0100 Subject: Revert "qgrayraster: Speed up rendering of small cubic splines." This reverts commit a9c0fbd5e946ae6e90b6db6dd4aea64c824a4066. The subdivision code in the above commit messed up subdivision of cubic beziers, so we have to revert it. Task-number: QTBUG-15660 Reviewed-by: Andreas Kling --- src/gui/painting/qgrayraster.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/gui/painting/qgrayraster.c b/src/gui/painting/qgrayraster.c index ec9ebeb..5d665cd 100644 --- a/src/gui/painting/qgrayraster.c +++ b/src/gui/painting/qgrayraster.c @@ -963,49 +963,53 @@ const QT_FT_Vector* control2, const QT_FT_Vector* to ) { + TPos dx, dy, da, db; int top, level; int* levels; QT_FT_Vector* arc; - int mid_x = ( DOWNSCALE( ras.x ) + to->x + - 3 * (control1->x + control2->x ) ) / 8; - int mid_y = ( DOWNSCALE( ras.y ) + to->y + - 3 * (control1->y + control2->y ) ) / 8; - TPos dx = DOWNSCALE( ras.x ) + to->x - ( mid_x << 1 ); - TPos dy = DOWNSCALE( ras.y ) + to->y - ( mid_y << 1 ); + dx = DOWNSCALE( ras.x ) + to->x - ( control1->x << 1 ); if ( dx < 0 ) dx = -dx; + dy = DOWNSCALE( ras.y ) + to->y - ( control1->y << 1 ); if ( dy < 0 ) dy = -dy; if ( dx < dy ) dx = dy; + da = dx; + + dx = DOWNSCALE( ras.x ) + to->x - 3 * ( control1->x + control2->x ); + if ( dx < 0 ) + dx = -dx; + dy = DOWNSCALE( ras.y ) + to->y - 3 * ( control1->x + control2->y ); + if ( dy < 0 ) + dy = -dy; + if ( dx < dy ) + dx = dy; + db = dx; level = 1; - dx /= ras.cubic_level; - while ( dx > 0 ) + da = da / ras.cubic_level; + db = db / ras.conic_level; + while ( da > 0 || db > 0 ) { - dx >>= 2; + da >>= 2; + db >>= 3; level++; } if ( level <= 1 ) { - TPos to_x, to_y; + TPos to_x, to_y, mid_x, mid_y; to_x = UPSCALE( to->x ); to_y = UPSCALE( to->y ); - - /* Recalculation of midpoint is needed only if */ - /* UPSCALE and DOWNSCALE have any effect. */ - -#if ( PIXEL_BITS != 6 ) mid_x = ( ras.x + to_x + 3 * UPSCALE( control1->x + control2->x ) ) / 8; mid_y = ( ras.y + to_y + 3 * UPSCALE( control1->y + control2->y ) ) / 8; -#endif gray_render_line( RAS_VAR_ mid_x, mid_y ); gray_render_line( RAS_VAR_ to_x, to_y ); -- cgit v0.12 From 07b3a1c3d38d5870009e76de6315a9025e8f7915 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 8 Dec 2010 12:28:34 +0100 Subject: Fixed cubic bezier rendering bug in qgrayraster. Use the y coordinates to compute the y delta... This could cause too fine (or too coarse) subdivision of cubic bezier curves, so potentially both performance problems and visual artifacts. Task-number: QTBUG-15660 Reviewed-by: Andreas Kling --- src/gui/painting/qgrayraster.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/painting/qgrayraster.c b/src/gui/painting/qgrayraster.c index 5d665cd..001345f 100644 --- a/src/gui/painting/qgrayraster.c +++ b/src/gui/painting/qgrayraster.c @@ -982,7 +982,7 @@ dx = DOWNSCALE( ras.x ) + to->x - 3 * ( control1->x + control2->x ); if ( dx < 0 ) dx = -dx; - dy = DOWNSCALE( ras.y ) + to->y - 3 * ( control1->x + control2->y ); + dy = DOWNSCALE( ras.y ) + to->y - 3 * ( control1->y + control2->y ); if ( dy < 0 ) dy = -dy; if ( dx < dy ) -- cgit v0.12 From 3ca55de912dc01e23fc01d4aab953c08619a51a9 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Wed, 8 Dec 2010 14:21:53 +0200 Subject: Remove whitespace and leading tab from documentation change Task-number: QTBUG-12119 Reviewed-by: TrustMe --- src/gui/widgets/qmenu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index 2e42cdb..74c2a9e 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1319,7 +1319,7 @@ void QMenu::initStyleOption(QStyleOptionMenuItem *option, const QAction *action) Conversely, actions can be added to widgets with the addAction(), addActions() and insertAction() functions. - + \warning To make QMenu visible on the screen, exec() or popup() should be used instead of show(). -- cgit v0.12 From 299e27838df58153e76e5b3d9bee46dc2a867dec Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Wed, 8 Dec 2010 13:44:03 +0100 Subject: Use a different dither distribution matrix + a bit of rand. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also don't dither on edges. Improves dithering over tiles/scaled smooth gradients. Merge-request: 971 Reviewed-by: Samuel Rødal --- src/plugins/graphicssystems/meego/dithering.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/plugins/graphicssystems/meego/dithering.cpp b/src/plugins/graphicssystems/meego/dithering.cpp index 1a2e3fa..ca303a8 100644 --- a/src/plugins/graphicssystems/meego/dithering.cpp +++ b/src/plugins/graphicssystems/meego/dithering.cpp @@ -154,7 +154,10 @@ unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int h // Add the diffusion for this pixel we stored in the accumulator. // >> 7 because the values in accumulator are stored * 128 - component[c] += accumulator[c][x] >> 7; + if (x != 0 && x != (width - 1)) { + if (accumulator[c][x] >> 7 != 0) + component[c] += rand() % accumulator[c][x] >> 7; + } // Make sure we're not over the boundaries. CLAMP_256(component[c]); @@ -172,10 +175,10 @@ unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int h // Distribute the difference according to the matrix in the // accumulation bufffer. - ACCUMULATE(accumulator[c], x + 1, 0, width, diff * 7); - ACCUMULATE(accumulator[c], x - 1, 1, width, diff * 3); + ACCUMULATE(accumulator[c], x + 1, 0, width, diff * 3); + ACCUMULATE(accumulator[c], x - 1, 1, width, diff * 5); ACCUMULATE(accumulator[c], x, 1, width, diff * 5); - ACCUMULATE(accumulator[c], x + 1, 1, width, diff * 1); + ACCUMULATE(accumulator[c], x + 1, 1, width, diff * 3); } // Write the newly produced pixel -- cgit v0.12 From f317d94880554a114937554907d08807c0cf5047 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Wed, 8 Dec 2010 13:48:22 +0100 Subject: Support for 'qglTranslucent' in QGLWindowSurface. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2523 Reviewed-by: Samuel Rødal --- src/opengl/qwindowsurface_gl.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp index bbb98d0..cd9ae01 100644 --- a/src/opengl/qwindowsurface_gl.cpp +++ b/src/opengl/qwindowsurface_gl.cpp @@ -377,7 +377,25 @@ void QGLWindowSurface::hijackWindow(QWidget *widget) if (widgetPrivate->extraData()->glContext) return; - QGLContext *ctx = new QGLContext(surfaceFormat, widget); + QGLContext *ctx = NULL; + + // Inspect the 'qglTranslucent' property of the target widget. If set to true, + // we need to create the surface in a 32bit alpha-compatible format. This is + // currently used by MeeGo graphics system extra API's. Could be in future + // used by other platform-specific graphic system API's. + if (widget->property("qglTranslucent").isValid()) { + QGLFormat modFormat(surfaceFormat); + + if (widget->property("qglTranslucent").toBool() == true) { + modFormat.setSampleBuffers(false); + modFormat.setSamples(0); + modFormat.setAlpha(true); + } + + ctx = new QGLContext(modFormat, widget); + } else + ctx = new QGLContext(surfaceFormat, widget); + ctx->create(qt_gl_share_widget()->context()); #ifndef QT_NO_EGL -- cgit v0.12 From c4f4d801f5dd31ca4c65c70b2245c987ac8ff203 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Wed, 8 Dec 2010 13:48:23 +0100 Subject: New translucency API for the meego graphics system. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2523 Reviewed-by: Samuel Rødal --- .../qmeegographicssystemhelper.cpp | 5 +++++ .../qmeegographicssystemhelper.h | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp index b660eb3..13e44b8 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp @@ -153,3 +153,8 @@ void QMeeGoGraphicsSystemHelper::setTranslucent(bool translucent) ENSURE_RUNNING_MEEGO; QMeeGoRuntime::setTranslucent(translucent); } + +void QMeeGoGraphicsSystemHelper::setTranslucentWidget(QWidget w, bool translucent) +{ + w.setProperty("qglTranslucent", QVariant(translucent)); +} diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h index d47c829..3e1333d 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h @@ -181,8 +181,25 @@ public: This function needs to be called *before* any widget/content is created. When called with true, the base window surface will be translucent and initialized with QGLFormat.alpha == true. + + This function is *deprecated*. Use ::setTranslucentWidget instead. */ static void setTranslucent(bool translucent); + + //! Sets translucency (alpha) on the given top-level widget. + /*! + This is a new API for enabling GL translucency on top-level widgets. + The specified widget needs to be top-level. When the time comes to create + a window surface for the widget, it'll be created with translucency enabled + (if translucent is true). + + This function has no effect if the widget is already visible or if it's + not a top-level widget. + + This function can be called even if not running MeeGo graphics system. It'll + have no effect though. + */ + static void setTranslucentWidget(QWidget w, bool translucent); }; #endif -- cgit v0.12 From d21eee4fb39ee8378bb87187cec5e46275dc31ed Mon Sep 17 00:00:00 2001 From: aavit Date: Wed, 8 Dec 2010 15:35:54 +0100 Subject: Make protocol less lancelot-specific, prepare use in other testcases --- tests/arthur/baselineserver/src/baselineserver.cpp | 30 +++++----- tests/arthur/baselineserver/src/htmlpage.cpp | 15 +++-- tests/arthur/common/baselineprotocol.cpp | 28 +++++----- tests/arthur/common/baselineprotocol.h | 31 ++++------- tests/auto/lancelot/tst_lancelot.cpp | 65 +++++++++++----------- 5 files changed, 81 insertions(+), 88 deletions(-) diff --git a/tests/arthur/baselineserver/src/baselineserver.cpp b/tests/arthur/baselineserver/src/baselineserver.cpp index 53e40b6..90eb594 100644 --- a/tests/arthur/baselineserver/src/baselineserver.cpp +++ b/tests/arthur/baselineserver/src/baselineserver.cpp @@ -208,8 +208,8 @@ void BaselineHandler::provideBaselineChecksums(const QByteArray &itemListBlock) ImageItemList itemList; QDataStream ds(itemListBlock); ds >> itemList; - qDebug() << runId << logtime() << "Received request for checksums for" << itemList.count() << "items, engine" - << itemList.at(0).engineAsString() << "pixel format" << itemList.at(0).formatAsString(); + qDebug() << runId << logtime() << "Received request for checksums for" << itemList.count() + << "items in test function" << itemList.at(0).testFunction; for (ImageItemList::iterator i = itemList.begin(); i != itemList.end(); ++i) { i->imageChecksums.clear(); @@ -232,10 +232,10 @@ void BaselineHandler::provideBaselineChecksums(const QByteArray &itemListBlock) if (file.open(QIODevice::ReadOnly)) { QTextStream in(&file); do { - QString scriptName = in.readLine(); - if (!scriptName.isNull()) { + QString itemName = in.readLine(); + if (!itemName.isNull()) { for (ImageItemList::iterator i = itemList.begin(); i != itemList.end(); ++i) { - if (i->scriptName == scriptName) + if (i->itemName == itemName) i->status = ImageItem::IgnoreItem; } } @@ -258,7 +258,7 @@ void BaselineHandler::storeImage(const QByteArray &itemBlock, bool isBaseline) ds >> item; QString prefix = pathForItem(item, isBaseline); - qDebug() << runId << logtime() << "Received" << (isBaseline ? "baseline" : "mismatched") << "image for:" << item.scriptName << "Storing in" << prefix; + qDebug() << runId << logtime() << "Received" << (isBaseline ? "baseline" : "mismatched") << "image for:" << item.itemName << "Storing in" << prefix; QString dir = prefix.section(QLC('/'), 0, -2); QDir cwd; @@ -333,17 +333,17 @@ QString BaselineHandler::pathForItem(const ImageItem &item, bool isBaseline, boo if (mapped.isEmpty()) mapPlatformInfo(); - QString itemName = item.scriptName; - if (itemName.contains(QLC('.'))) - itemName.replace(itemName.lastIndexOf(QLC('.')), 1, QLC('_')); + QString itemName = item.itemName; + itemName.replace(QLC('.'), QLC('_')); itemName.append(QLC('_')); - itemName.append(QString::number(item.scriptChecksum, 16).rightJustified(4, QLC('0'))); + itemName.append(QString::number(item.itemChecksum, 16).rightJustified(4, QLC('0'))); QStringList path; if (absolute) path += BaselineServer::storagePath(); + path += mapped.value(PI_TestCase); path += QLS(isBaseline ? "baselines" : "mismatches"); - path += item.engineAsString() + QLC('_') + item.formatAsString(); + path += item.testFunction; path += mapped.value(PI_QtVersion); path += mapped.value(PI_QMakeSpec); path += mapped.value(PI_HostName); @@ -397,6 +397,7 @@ QString BaselineHandler::updateSingleBaseline(const QString &oldBaseline, const return res; } + QString BaselineHandler::blacklistTest(const QString &context, const QString &itemId, bool removeFromBlacklist) { QFile file(BaselineServer::storagePath() + QLC('/') + context + QLS("/BLACKLIST")); @@ -439,11 +440,10 @@ void BaselineHandler::testPathMapping() << QLS("localhost"); ImageItem item; - item.scriptName = QLS("arcs.qps"); - item.engine = ImageItem::Raster; - item.renderFormat = QImage::Format_ARGB32_Premultiplied; + item.testFunction = QLS("testPathMapping"); + item.itemName = QLS("arcs.qps"); item.imageChecksums << 0x0123456789abcdefULL; - item.scriptChecksum = 0x0123; + item.itemChecksum = 0x0123; plat.insert(PI_QtVersion, QLS("4.8.0")); plat.insert(PI_BuildKey, QLS("(nobuildkey)")); diff --git a/tests/arthur/baselineserver/src/htmlpage.cpp b/tests/arthur/baselineserver/src/htmlpage.cpp index 11c2eac..2b16d25 100644 --- a/tests/arthur/baselineserver/src/htmlpage.cpp +++ b/tests/arthur/baselineserver/src/htmlpage.cpp @@ -69,7 +69,7 @@ void HTMLPage::start(const QString &storagepath, const QString &runId, const Pla ctx = context; root = storagepath + QLC('/'); imageItems = itemList; - reportDir = pinfo.value(PI_PulseGitBranch).isEmpty() ? QLS("reports/adhoc/") : QLS("reports/pulse/"); + reportDir = pinfo.value(PI_TestCase) + QLC('/') + (pinfo.value(PI_PulseGitBranch).isEmpty() ? QLS("reports/adhoc/") : QLS("reports/pulse/")); QString dir = root + reportDir; QDir cwd; if (!cwd.exists(dir)) @@ -79,8 +79,7 @@ void HTMLPage::start(const QString &storagepath, const QString &runId, const Pla void HTMLPage::writeHeader(const ImageItem &item) { - path = reportDir + id + QLC('_') + item.engineAsString() - + QLC('_') + item.formatAsString() + QLS(".html"); + path = reportDir + id + QLC('_') + item.testFunction + QLS(".html"); QString pageUrl = BaselineServer::baseUrl() + path; @@ -126,7 +125,7 @@ void HTMLPage::addItem(const QString &baseline, const QString &rendered, const I QString pageUrl = BaselineServer::baseUrl() + path; out << "\n"; - out << "" << item.scriptName << "\n"; + out << "" << item.itemName << "\n"; QStringList images = QStringList() << baseline << rendered << compared; foreach(const QString& img, images) out << "\n"; @@ -135,7 +134,7 @@ void HTMLPage::addItem(const QString &baseline, const QString &rendered, const I << "

Replace baseline with rendered

\n" << "

Blacklist this item

\n" + << "&itemId=" << item.itemName << "&url=" << pageUrl << "\">Blacklist this item

\n" << "

View

\n" << "\n"; @@ -144,7 +143,7 @@ void HTMLPage::addItem(const QString &baseline, const QString &rendered, const I QMutableVectorIterator it(imageItems); while (it.hasNext()) { it.next(); - if (it.value().scriptName == item.scriptName) { + if (it.value().itemName == item.itemName) { it.remove(); break; } @@ -158,11 +157,11 @@ void HTMLPage::end() // Add the names of the scripts that passed the test, or were blacklisted QString pageUrl = BaselineServer::baseUrl() + path; for (int i=0; i" << imageItems.at(i).scriptName << "N/AN/AN/A"; + out << "" << imageItems.at(i).itemName << "N/AN/AN/A"; if (imageItems.at(i).status == ImageItem::IgnoreItem) { out << "Blacklisted " << "Whitelist item"; } else { out << "Test passed"; diff --git a/tests/arthur/common/baselineprotocol.cpp b/tests/arthur/common/baselineprotocol.cpp index 5ed58b4..c7e9e72 100644 --- a/tests/arthur/common/baselineprotocol.cpp +++ b/tests/arthur/common/baselineprotocol.cpp @@ -128,11 +128,10 @@ PlatformInfo::PlatformInfo(bool useLocal) ImageItem &ImageItem::operator=(const ImageItem &other) { - scriptName = other.scriptName; - scriptChecksum = other.scriptChecksum; + testFunction = other.testFunction; + itemName = other.itemName; + itemChecksum = other.itemChecksum; status = other.status; - renderFormat = other.renderFormat; - engine = other.engine; image = other.image; imageChecksums = other.imageChecksums; return *this; @@ -165,6 +164,7 @@ quint64 ImageItem::computeChecksum(const QImage &image) return (quint64(h1) << 32) | h2; } +#if 0 QString ImageItem::engineAsString() const { switch (engine) { @@ -205,6 +205,7 @@ QString ImageItem::formatAsString() const return QLS("UnknownFormat"); return QLS(formatNames[renderFormat]); } +#endif void ImageItem::writeImageToStream(QDataStream &out) const { @@ -249,20 +250,16 @@ void ImageItem::readImageFromStream(QDataStream &in) QDataStream & operator<< (QDataStream &stream, const ImageItem &ii) { - stream << ii.scriptName << ii.scriptChecksum << quint8(ii.status) << quint8(ii.renderFormat) - << quint8(ii.engine) << ii.imageChecksums; + stream << ii.testFunction << ii.itemName << ii.itemChecksum << quint8(ii.status) << ii.imageChecksums; ii.writeImageToStream(stream); return stream; } QDataStream & operator>> (QDataStream &stream, ImageItem &ii) { - quint8 encFormat, encStatus, encEngine; - stream >> ii.scriptName >> ii.scriptChecksum >> encStatus >> encFormat - >> encEngine >> ii.imageChecksums; - ii.renderFormat = QImage::Format(encFormat); + quint8 encStatus; + stream >> ii.testFunction >> ii.itemName >> ii.itemChecksum >> encStatus >> ii.imageChecksums; ii.status = ImageItem::ItemStatus(encStatus); - ii.engine = ImageItem::GraphicsEngine(encEngine); ii.readImageFromStream(stream); return stream; } @@ -275,7 +272,7 @@ BaselineProtocol::~BaselineProtocol() } -bool BaselineProtocol::connect(bool *dryrun) +bool BaselineProtocol::connect(const QString &testCase, bool *dryrun) { errMsg.clear(); QByteArray serverName(qgetenv("QT_LANCELOT_SERVER")); @@ -292,6 +289,7 @@ bool BaselineProtocol::connect(bool *dryrun) } PlatformInfo pi(true); + pi.insert(PI_TestCase, testCase); QByteArray block; QDataStream ds(&block, QIODevice::ReadWrite); ds << pi; @@ -342,11 +340,15 @@ bool BaselineProtocol::acceptConnection(PlatformInfo *pi) } -bool BaselineProtocol::requestBaselineChecksums(ImageItemList *itemList) +bool BaselineProtocol::requestBaselineChecksums(const QString &testFunction, ImageItemList *itemList) { errMsg.clear(); if (!itemList) return false; + + for(ImageItemList::iterator it = itemList->begin(); it != itemList->end(); it++) + it->testFunction = testFunction; + QByteArray block; QDataStream ds(&block, QIODevice::ReadWrite); ds << *itemList; diff --git a/tests/arthur/common/baselineprotocol.h b/tests/arthur/common/baselineprotocol.h index baffb4a..1f4d593 100644 --- a/tests/arthur/common/baselineprotocol.h +++ b/tests/arthur/common/baselineprotocol.h @@ -52,6 +52,7 @@ #define FileFormat "png" +const QString PI_TestCase(QLS("TestCase")); const QString PI_HostName(QLS("HostName")); const QString PI_HostAddress(QLS("HostAddress")); const QString PI_OSName(QLS("OSName")); @@ -73,19 +74,15 @@ struct ImageItem { public: ImageItem() - : status(Ok), renderFormat(QImage::Format_Invalid), engine(Raster), scriptChecksum(0) + : status(Ok), itemChecksum(0) {} ImageItem(const ImageItem &other) { *this = other; } ~ImageItem() {} ImageItem &operator=(const ImageItem &other); - static quint64 computeChecksum(const QImage& image); - QString engineAsString() const; - QString formatAsString() const; - void writeImageToStream(QDataStream &stream) const; - void readImageFromStream(QDataStream &stream); + static quint64 computeChecksum(const QImage& image); enum ItemStatus { Ok = 0, @@ -93,19 +90,15 @@ public: IgnoreItem = 2 }; - enum GraphicsEngine { - Raster = 0, - OpenGL = 1 - }; - - QString scriptName; + QString testFunction; + QString itemName; ItemStatus status; - QImage::Format renderFormat; - GraphicsEngine engine; QImage image; QList imageChecksums; - // tbd: add diffscore - quint16 scriptChecksum; + quint16 itemChecksum; + + void writeImageToStream(QDataStream &stream) const; + void readImageFromStream(QDataStream &stream); }; QDataStream & operator<< (QDataStream &stream, const ImageItem &ii); QDataStream & operator>> (QDataStream &stream, ImageItem& ii); @@ -124,7 +117,7 @@ public: // Important constants here // **************************************************** enum Constant { - ProtocolVersion = 3, + ProtocolVersion = 4, ServerPort = 54129, Timeout = 5000 }; @@ -143,8 +136,8 @@ public: }; // For client: - bool connect(bool *dryrun = 0); - bool requestBaselineChecksums(ImageItemList *itemList); + bool connect(const QString &testCase, bool *dryrun = 0); + bool requestBaselineChecksums(const QString &testFunction, ImageItemList *itemList); bool submitNewBaseline(const ImageItem &item, QByteArray *serverMsg); bool submitMismatch(const ImageItem &item, QByteArray *serverMsg); diff --git a/tests/auto/lancelot/tst_lancelot.cpp b/tests/auto/lancelot/tst_lancelot.cpp index 7c6fe66..d1b093f 100644 --- a/tests/auto/lancelot/tst_lancelot.cpp +++ b/tests/auto/lancelot/tst_lancelot.cpp @@ -66,10 +66,15 @@ public: static bool simfail; private: - ImageItem render(const ImageItem &item); + enum GraphicsEngine { + Raster = 0, + OpenGL = 1 + }; + + bool setupTestSuite(const QStringList& blacklist); + void runTestSuite(GraphicsEngine engine, QImage::Format format); + ImageItem render(const ImageItem &item, GraphicsEngine engine, QImage::Format format); void paint(QPaintDevice *device, const QStringList &script, const QString &filePath); - void runTestSuite(); - bool setupTestSuite(ImageItem::GraphicsEngine engine, QImage::Format format, const QStringList& blacklist); BaselineProtocol proto; ImageItemList baseList; @@ -108,7 +113,7 @@ void tst_Lancelot::initTestCase() #if defined(Q_OS_SOMEPLATFORM) QSKIP("This test is not supported on this platform.", SkipAll); #endif - if (!proto.connect(&dryRunMode)) + if (!proto.connect(QLatin1String("tst_Lancelot"), &dryRunMode)) QSKIP(qPrintable(proto.errorMessage()), SkipAll); QDir qpsDir(scriptsDir); @@ -125,8 +130,8 @@ void tst_Lancelot::initTestCase() file.open(QFile::ReadOnly); QByteArray cont = file.readAll(); scripts.insert(fileName, QString::fromLatin1(cont).split(QLatin1Char('\n'), QString::SkipEmptyParts)); - it->scriptName = fileName; - it->scriptChecksum = qChecksum(cont.constData(), cont.size()); + it->itemName = fileName; + it->itemChecksum = qChecksum(cont.constData(), cont.size()); it++; } } @@ -135,42 +140,42 @@ void tst_Lancelot::initTestCase() void tst_Lancelot::testRasterARGB32PM_data() { QStringList localBlacklist; - if (!setupTestSuite(ImageItem::Raster, QImage::Format_ARGB32_Premultiplied, localBlacklist)) + if (!setupTestSuite(localBlacklist)) QSKIP("Communication with baseline image server failed.", SkipAll); } void tst_Lancelot::testRasterARGB32PM() { - runTestSuite(); + runTestSuite(Raster, QImage::Format_ARGB32_Premultiplied); } void tst_Lancelot::testRasterRGB32_data() { QStringList localBlacklist; - if (!setupTestSuite(ImageItem::Raster, QImage::Format_RGB32, localBlacklist)) + if (!setupTestSuite(localBlacklist)) QSKIP("Communication with baseline image server failed.", SkipAll); } void tst_Lancelot::testRasterRGB32() { - runTestSuite(); + runTestSuite(Raster, QImage::Format_RGB32); } void tst_Lancelot::testRasterRGB16_data() { QStringList localBlacklist; - if (!setupTestSuite(ImageItem::Raster, QImage::Format_RGB16, localBlacklist)) + if (!setupTestSuite(localBlacklist)) QSKIP("Communication with baseline image server failed.", SkipAll); } void tst_Lancelot::testRasterRGB16() { - runTestSuite(); + runTestSuite(Raster, QImage::Format_RGB16); } @@ -178,7 +183,7 @@ void tst_Lancelot::testRasterRGB16() void tst_Lancelot::testOpenGL_data() { QStringList localBlacklist = QStringList() << QLatin1String("rasterops.qps"); - if (!setupTestSuite(ImageItem::OpenGL, QImage::Format_RGB32, localBlacklist)) + if (!setupTestSuite(localBlacklist)) QSKIP("Communication with baseline image server failed.", SkipAll); } @@ -197,45 +202,39 @@ void tst_Lancelot::testOpenGL() ok = true; } if (ok) - runTestSuite(); + runTestSuite(OpenGL, QImage::Format_RGB32); else QSKIP("System under test does not meet preconditions for GL testing. Skipping.", SkipAll); } #endif -bool tst_Lancelot::setupTestSuite(ImageItem::GraphicsEngine engine, QImage::Format format, const QStringList& blacklist) +bool tst_Lancelot::setupTestSuite(const QStringList& blacklist) { QTest::addColumn("baseline"); ImageItemList itemList(baseList); - - for(ImageItemList::iterator it = itemList.begin(); it != itemList.end(); it++) { - it->engine = engine; - it->renderFormat = format; - } - - if (!proto.requestBaselineChecksums(&itemList)) { + if (!proto.requestBaselineChecksums(QTest::currentTestFunction(), &itemList)) { QWARN(qPrintable(proto.errorMessage())); return false; } foreach(const ImageItem& item, itemList) { - if (!blacklist.contains(item.scriptName)) - QTest::newRow(item.scriptName.toLatin1()) << item; + if (!blacklist.contains(item.itemName)) + QTest::newRow(item.itemName.toLatin1()) << item; } return true; } -void tst_Lancelot::runTestSuite() +void tst_Lancelot::runTestSuite(GraphicsEngine engine, QImage::Format format) { QFETCH(ImageItem, baseline); if (baseline.status == ImageItem::IgnoreItem) QSKIP("Blacklisted by baseline server.", SkipSingle); - ImageItem rendered = render(baseline); + ImageItem rendered = render(baseline, engine, format); if (rendered.image.isNull()) { // Assume an error in the test environment, not Qt QWARN("Error: Failed to render image."); QSKIP("Aborted due to errors.", SkipSingle); @@ -258,21 +257,21 @@ void tst_Lancelot::runTestSuite() } -ImageItem tst_Lancelot::render(const ImageItem &item) +ImageItem tst_Lancelot::render(const ImageItem &item, GraphicsEngine engine, QImage::Format format) { ImageItem res = item; res.imageChecksums.clear(); res.image = QImage(); - QString filePath = scriptsDir + item.scriptName; - QStringList script = scripts.value(item.scriptName); + QString filePath = scriptsDir + item.itemName; + QStringList script = scripts.value(item.itemName); - if (item.engine == ImageItem::Raster) { - QImage img(800, 800, item.renderFormat); + if (engine == Raster) { + QImage img(800, 800, format); paint(&img, script, QFileInfo(filePath).absoluteFilePath()); // eh yuck (filePath stuff) res.image = img; res.imageChecksums.append(ImageItem::computeChecksum(img)); #ifndef QT_NO_OPENGL - } else if (item.engine == ImageItem::OpenGL) { + } else if (engine == OpenGL) { QGLWidget glWidget; if (glWidget.isValid()) { glWidget.makeCurrent(); @@ -281,7 +280,7 @@ ImageItem tst_Lancelot::render(const ImageItem &item) fboFormat.setAttachment(QGLFramebufferObject::CombinedDepthStencil); QGLFramebufferObject fbo(800, 800, fboFormat); paint(&fbo, script, QFileInfo(filePath).absoluteFilePath()); // eh yuck (filePath stuff) - res.image = fbo.toImage().convertToFormat(item.renderFormat); + res.image = fbo.toImage().convertToFormat(format); res.imageChecksums.append(ImageItem::computeChecksum(res.image)); } #endif -- cgit v0.12 From b850c43896d60b4dda21b01fdbdb15013cca48fa Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Wed, 8 Dec 2010 15:45:00 +0100 Subject: Check Qt::WA_TranslucentBackground instead of custom widget property. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2523 Reviewed-by: Samuel Rødal --- src/opengl/qwindowsurface_gl.cpp | 17 +++++------------ .../qmeegographicssystemhelper.cpp | 5 ----- .../qmeegographicssystemhelper.h | 18 ++---------------- 3 files changed, 7 insertions(+), 33 deletions(-) diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp index cd9ae01..f64b93c 100644 --- a/src/opengl/qwindowsurface_gl.cpp +++ b/src/opengl/qwindowsurface_gl.cpp @@ -379,19 +379,12 @@ void QGLWindowSurface::hijackWindow(QWidget *widget) QGLContext *ctx = NULL; - // Inspect the 'qglTranslucent' property of the target widget. If set to true, - // we need to create the surface in a 32bit alpha-compatible format. This is - // currently used by MeeGo graphics system extra API's. Could be in future - // used by other platform-specific graphic system API's. - if (widget->property("qglTranslucent").isValid()) { + // For translucent top-level widgets we need alpha in the format. + if (widget->testAttribute(Qt::WA_TranslucentBackground)) { QGLFormat modFormat(surfaceFormat); - - if (widget->property("qglTranslucent").toBool() == true) { - modFormat.setSampleBuffers(false); - modFormat.setSamples(0); - modFormat.setAlpha(true); - } - + modFormat.setSampleBuffers(false); + modFormat.setSamples(0); + modFormat.setAlpha(true); ctx = new QGLContext(modFormat, widget); } else ctx = new QGLContext(surfaceFormat, widget); diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp index 13e44b8..b660eb3 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp @@ -153,8 +153,3 @@ void QMeeGoGraphicsSystemHelper::setTranslucent(bool translucent) ENSURE_RUNNING_MEEGO; QMeeGoRuntime::setTranslucent(translucent); } - -void QMeeGoGraphicsSystemHelper::setTranslucentWidget(QWidget w, bool translucent) -{ - w.setProperty("qglTranslucent", QVariant(translucent)); -} diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h index 3e1333d..6df3c22 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h @@ -182,24 +182,10 @@ public: When called with true, the base window surface will be translucent and initialized with QGLFormat.alpha == true. - This function is *deprecated*. Use ::setTranslucentWidget instead. + This function is *deprecated*. Set Qt::WA_TranslucentBackground attribute + on the top-level widget *before* you show it instead. */ static void setTranslucent(bool translucent); - - //! Sets translucency (alpha) on the given top-level widget. - /*! - This is a new API for enabling GL translucency on top-level widgets. - The specified widget needs to be top-level. When the time comes to create - a window surface for the widget, it'll be created with translucency enabled - (if translucent is true). - - This function has no effect if the widget is already visible or if it's - not a top-level widget. - - This function can be called even if not running MeeGo graphics system. It'll - have no effect though. - */ - static void setTranslucentWidget(QWidget w, bool translucent); }; #endif -- cgit v0.12 From c799f87057d1a61112c0165b15ec37bbef39fffe Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Wed, 8 Dec 2010 15:48:39 +0100 Subject: Doc: Added link to QML Basic Types in main Qt Quick page. Reviewed-by: David Boddie --- doc/src/declarative/declarativeui.qdoc | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc index 5d9eaaf..f8f47c9 100644 --- a/doc/src/declarative/declarativeui.qdoc +++ b/doc/src/declarative/declarativeui.qdoc @@ -108,6 +108,7 @@ Module. \section1 Handling Data \list +\o \l{QML Basic Types}{QML Basic Data Types} \o \l{Using QML Positioner and Repeater Items} \o \l{QML Data Models} \o \l{Presenting Data with QML} -- cgit v0.12 From d7294806fc43e8611c4441881e511af5f18c60db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 8 Dec 2010 16:46:09 +0100 Subject: Prevent out-of-bounds memory access in drawhelper. The coordinates should be modulo the image width and height like for all the other tiled blend functions. Covered by perspectives.qps Task-number: QTBUG-15837 Reviewed-by: Olivier Goffart --- src/gui/painting/qdrawhelper.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index a4ab278..024a69d 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -6432,6 +6432,8 @@ Q_STATIC_TEMPLATE_FUNCTION void blendTransformedTiled(int count, const QSpan *sp int px = int(tx) - (tx < 0); int py = int(ty) - (ty < 0); + px %= image_width; + py %= image_height; if (px < 0) px += image_width; if (py < 0) -- cgit v0.12 From 98b709fec4e0e9d6f1740309936dcb95475d6ee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Wed, 8 Dec 2010 16:18:58 +0100 Subject: Use effective user id instead of getlogin And check if this gives us more reliable results. Reviewed-by: Prasanth Ullattil --- tests/auto/qfileinfo/tst_qfileinfo.cpp | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 2e1ab39..0a61d55 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -54,6 +54,8 @@ #include #include #include +#include +#include #endif #ifdef Q_OS_WIN #define _WIN32_WINNT 0x500 @@ -1675,8 +1677,10 @@ void tst_QFileInfo::owner() { QString userName; #if defined(Q_OS_UNIX) - char *usernameBuf = getlogin(); - if (usernameBuf) { + { + passwd *user = getpwuid(geteuid()); + QVERIFY(user); + char *usernameBuf = user->pw_name; userName = QString::fromLocal8Bit(usernameBuf); } #endif @@ -1715,18 +1719,18 @@ void tst_QFileInfo::owner() if (userName.isEmpty()) QSKIP("Can't retrieve the user name", SkipAll); QString fileName("ownertest.txt"); - if (QFile::exists(fileName)) - QFile::remove(fileName); - QFile testFile(fileName); - QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Text)); - QByteArray testData("testfile"); - QVERIFY(testFile.write(testData) != -1); - testFile.close(); + QVERIFY(!QFile::exists(fileName) || QFile::remove(fileName)); + { + QFile testFile(fileName); + QVERIFY(testFile.open(QIODevice::WriteOnly | QIODevice::Text)); + QByteArray testData("testfile"); + QVERIFY(testFile.write(testData) != -1); + } QFileInfo fi(fileName); QVERIFY(fi.exists()); - QCOMPARE(userName, fi.owner()); - if (QFile::exists(fileName)) - QFile::remove(fileName); + QCOMPARE(fi.owner(), userName); + + QFile::remove(fileName); #if defined(Q_OS_WIN) qt_ntfs_permission_lookup = 0; #endif -- cgit v0.12 From 58ae252e5555dc379b4ed500532bc51ff7bebc25 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 9 Dec 2010 10:12:35 +1000 Subject: highlightFollowsCurrentItem: false was not always honored In some cases ListView and GridView would position the highlight despite highlightFollowsCurrentItem: false being specified. Task-number: QTBUG-15972 Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativegridview.cpp | 14 +++++++++----- src/declarative/graphicsitems/qdeclarativelistview.cpp | 18 ++++++++++++------ .../qdeclarativegridview/data/manual-highlight.qml | 4 ++-- .../qdeclarativegridview/tst_qdeclarativegridview.cpp | 15 +++++++++++---- .../qdeclarativelistview/data/manual-highlight.qml | 2 +- .../qdeclarativelistview/tst_qdeclarativelistview.cpp | 11 +++++++++-- 6 files changed, 44 insertions(+), 20 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp index 1615b0f..4a6a9dc 100644 --- a/src/declarative/graphicsitems/qdeclarativegridview.cpp +++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp @@ -735,7 +735,7 @@ void QDeclarativeGridViewPrivate::createHighlight() QDeclarative_setParent_noEvent(item, q->contentItem()); item->setParentItem(q->contentItem()); highlight = new FxGridItem(item, q); - if (currentItem) + if (currentItem && autoHighlight) highlight->setPosition(currentItem->colPos(), currentItem->rowPos()); highlightXAnimator = new QSmoothedAnimation(q); highlightXAnimator->target = QDeclarativeProperty(highlight->item, QLatin1String("x")); @@ -1253,7 +1253,8 @@ void QDeclarativeGridView::setModel(const QVariant &model) d->moveReason = QDeclarativeGridViewPrivate::SetIndex; d->updateCurrent(d->currentIndex); if (d->highlight && d->currentItem) { - d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos()); + if (d->autoHighlight) + d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos()); d->updateTrackedItem(); } d->moveReason = QDeclarativeGridViewPrivate::Other; @@ -1321,7 +1322,8 @@ void QDeclarativeGridView::setDelegate(QDeclarativeComponent *delegate) d->moveReason = QDeclarativeGridViewPrivate::SetIndex; d->updateCurrent(d->currentIndex); if (d->highlight && d->currentItem) { - d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos()); + if (d->autoHighlight) + d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos()); d->updateTrackedItem(); } d->moveReason = QDeclarativeGridViewPrivate::Other; @@ -2241,7 +2243,8 @@ void QDeclarativeGridView::componentComplete() else d->updateCurrent(d->currentIndex); if (d->highlight && d->currentItem) { - d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos()); + if (d->autoHighlight) + d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos()); d->updateTrackedItem(); } d->moveReason = QDeclarativeGridViewPrivate::Other; @@ -2649,7 +2652,8 @@ void QDeclarativeGridView::modelReset() d->moveReason = QDeclarativeGridViewPrivate::SetIndex; d->updateCurrent(d->currentIndex); if (d->highlight && d->currentItem) { - d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos()); + if (d->autoHighlight) + d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos()); d->updateTrackedItem(); } d->moveReason = QDeclarativeGridViewPrivate::Other; diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index 2dfee3b..d008f91 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -1571,7 +1571,8 @@ void QDeclarativeListView::setModel(const QVariant &model) d->moveReason = QDeclarativeListViewPrivate::SetIndex; d->updateCurrent(d->currentIndex); if (d->highlight && d->currentItem) { - d->highlight->setPosition(d->currentItem->position()); + if (d->autoHighlight) + d->highlight->setPosition(d->currentItem->position()); d->updateTrackedItem(); } } @@ -1642,7 +1643,8 @@ void QDeclarativeListView::setDelegate(QDeclarativeComponent *delegate) d->moveReason = QDeclarativeListViewPrivate::SetIndex; d->updateCurrent(d->currentIndex); if (d->highlight && d->currentItem) { - d->highlight->setPosition(d->currentItem->position()); + if (d->autoHighlight) + d->highlight->setPosition(d->currentItem->position()); d->updateTrackedItem(); } } @@ -2632,8 +2634,10 @@ void QDeclarativeListView::positionViewAtIndex(int index, int mode) cancelFlick(); d->setPosition(pos); if (d->highlight) { - d->highlight->setPosition(d->currentItem->itemPosition()); - d->highlight->setSize(d->currentItem->itemSize()); + if (d->autoHighlight) { + d->highlight->setPosition(d->currentItem->itemPosition()); + d->highlight->setSize(d->currentItem->itemSize()); + } d->updateHighlight(); } } @@ -2679,7 +2683,8 @@ void QDeclarativeListView::componentComplete() else d->updateCurrent(d->currentIndex); if (d->highlight && d->currentItem) { - d->highlight->setPosition(d->currentItem->position()); + if (d->autoHighlight) + d->highlight->setPosition(d->currentItem->position()); d->updateTrackedItem(); } d->moveReason = QDeclarativeListViewPrivate::Other; @@ -3142,7 +3147,8 @@ void QDeclarativeListView::modelReset() d->moveReason = QDeclarativeListViewPrivate::SetIndex; d->updateCurrent(d->currentIndex); if (d->highlight && d->currentItem) { - d->highlight->setPosition(d->currentItem->position()); + if (d->autoHighlight) + d->highlight->setPosition(d->currentItem->position()); d->updateTrackedItem(); } d->moveReason = QDeclarativeListViewPrivate::Other; diff --git a/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml b/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml index 7bb2c95..d082847 100644 --- a/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml +++ b/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml @@ -28,8 +28,8 @@ Item { objectName: "highlight" width: 80; height: 80 color: "lightsteelblue"; radius: 5 - y: grid.currentItem.y - x: grid.currentItem.x + y: grid.currentItem.y+5 + x: grid.currentItem.x+5 } } diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp index 7998e30..fd5d140 100644 --- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp +++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp @@ -1215,15 +1215,22 @@ void tst_QDeclarativeGridView::manualHighlight() QTRY_COMPARE(gridview->currentIndex(), 0); QTRY_COMPARE(gridview->currentItem(), findItem(contentItem, "wrapper", 0)); - QTRY_COMPARE(gridview->highlightItem()->y(), gridview->currentItem()->y()); - QTRY_COMPARE(gridview->highlightItem()->x(), gridview->currentItem()->x()); + QTRY_COMPARE(gridview->highlightItem()->y() - 5, gridview->currentItem()->y()); + QTRY_COMPARE(gridview->highlightItem()->x() - 5, gridview->currentItem()->x()); gridview->setCurrentIndex(2); QTRY_COMPARE(gridview->currentIndex(), 2); QTRY_COMPARE(gridview->currentItem(), findItem(contentItem, "wrapper", 2)); - QTRY_COMPARE(gridview->highlightItem()->y(), gridview->currentItem()->y()); - QTRY_COMPARE(gridview->highlightItem()->x(), gridview->currentItem()->x()); + QTRY_COMPARE(gridview->highlightItem()->y() - 5, gridview->currentItem()->y()); + QTRY_COMPARE(gridview->highlightItem()->x() - 5, gridview->currentItem()->x()); + + gridview->positionViewAtIndex(8, QDeclarativeGridView::Contain); + + QTRY_COMPARE(gridview->currentIndex(), 2); + QTRY_COMPARE(gridview->currentItem(), findItem(contentItem, "wrapper", 2)); + QTRY_COMPARE(gridview->highlightItem()->y() - 5, gridview->currentItem()->y()); + QTRY_COMPARE(gridview->highlightItem()->x() - 5, gridview->currentItem()->x()); } void tst_QDeclarativeGridView::footer() diff --git a/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml b/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml index d8cfd9a..a32a194 100644 --- a/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml +++ b/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml @@ -28,7 +28,7 @@ Item { objectName: "highlight" width: 180; height: 20 color: "lightsteelblue"; radius: 5 - y: list.currentItem.y + y: list.currentItem.y+5 } } diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index 22ebb1a..ff90d32 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -1609,13 +1609,20 @@ void tst_QDeclarativeListView::manualHighlight() QTRY_COMPARE(listview->currentIndex(), 0); QTRY_COMPARE(listview->currentItem(), findItem(contentItem, "wrapper", 0)); - QTRY_COMPARE(listview->highlightItem()->y(), listview->currentItem()->y()); + QTRY_COMPARE(listview->highlightItem()->y() - 5, listview->currentItem()->y()); listview->setCurrentIndex(2); QTRY_COMPARE(listview->currentIndex(), 2); QTRY_COMPARE(listview->currentItem(), findItem(contentItem, "wrapper", 2)); - QTRY_COMPARE(listview->highlightItem()->y(), listview->currentItem()->y()); + QTRY_COMPARE(listview->highlightItem()->y() - 5, listview->currentItem()->y()); + + // QTBUG-15972 + listview->positionViewAtIndex(3, QDeclarativeListView::Contain); + + QTRY_COMPARE(listview->currentIndex(), 2); + QTRY_COMPARE(listview->currentItem(), findItem(contentItem, "wrapper", 2)); + QTRY_COMPARE(listview->highlightItem()->y() - 5, listview->currentItem()->y()); delete canvas; } -- cgit v0.12 From 8eab49de0548363b18c6e2c7b4ff4a8b722992d6 Mon Sep 17 00:00:00 2001 From: Leena Gunda Date: Thu, 9 Dec 2010 11:24:24 +0530 Subject: Fix ConnMan bearer plugin to use new net.connman service name. --- src/plugins/bearer/connman/qconnmanengine.cpp | 247 ++----------------- src/plugins/bearer/connman/qconnmanengine.h | 11 +- .../bearer/connman/qconnmanservice_linux.cpp | 271 +-------------------- .../bearer/connman/qconnmanservice_linux_p.h | 76 +----- 4 files changed, 20 insertions(+), 585 deletions(-) diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp index 7f3501e..5b12b1e 100644 --- a/src/plugins/bearer/connman/qconnmanengine.cpp +++ b/src/plugins/bearer/connman/qconnmanengine.cpp @@ -88,19 +88,10 @@ void QConnmanEngine::initialize() connect(tech,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), this,SLOT(technologyPropertyChangedContext(QString,QString,QDBusVariant))); + } - foreach(const QString devicePath,tech->getDevices()) { - QConnmanDeviceInterface *dev; - dev = new QConnmanDeviceInterface(devicePath); - if(!deviceMap.value(techPath).contains(devicePath)) { - connect(dev,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), - this,SLOT(devicePropertyChangedContext(QString,QString,QDBusVariant))); - deviceMap.insert(techPath,QStringList() << devicePath); - foreach(const QString network,dev->getNetworks()) { - serviceNetworks.insert(getServiceForNetwork(network),network); - } - } - } + foreach(const QString servPath, connmanManager->getServices()) { + addServiceConfiguration(servPath); } // Get current list of access points. @@ -110,7 +101,6 @@ void QConnmanEngine::initialize() QList QConnmanEngine::getConfigurations() { QMutexLocker locker(&mutex); - getNetworkListing(); QList fetchedConfigurations; QNetworkConfigurationPrivate* cpPriv = 0; @@ -133,21 +123,6 @@ QList QConnmanEngine::getConfigurations() return fetchedConfigurations; } -void QConnmanEngine::getNetworkListing() -{ - QMutexLocker locker(&mutex); - QMapIterator i(deviceMap); - while(i.hasNext()) { - i.next(); - QConnmanDeviceInterface dev(i.value().at(0)); - if(dev.isValid()) { - foreach(const QString network,dev.getNetworks()) { - addNetworkConfiguration(network); - } - } - } -} - void QConnmanEngine::doRequestUpdate() { connmanManager->requestScan(""); @@ -225,7 +200,7 @@ void QConnmanEngine::requestUpdate() QString QConnmanEngine::serviceFromId(const QString &id) { QMutexLocker locker(&mutex); - foreach(const QString service, serviceNetworks.keys()) { + foreach(const QString service, serviceNetworks) { if (id == QString::number(qHash(service))) return service; } @@ -330,24 +305,6 @@ QNetworkConfigurationPrivatePointer QConnmanEngine::defaultConfiguration() return QNetworkConfigurationPrivatePointer(); } - -QString QConnmanEngine::getServiceForNetwork(const QString &netPath) -{ - QMutexLocker locker(&mutex); - QConnmanNetworkInterface network(netPath, this); - foreach(QString service,connmanManager->getServices()) { - - QString devicePath = netPath.section("/",5,5); - - QConnmanServiceInterface serv(service,this); - if(serv.getName() == network.getName() - && network.getSignalStrength() == serv.getSignalStrength()) { - return service; - } - } - return QString(); -} - void QConnmanEngine::propertyChangedContext(const QString &path,const QString &item, const QDBusVariant &value) { Q_UNUSED(path); @@ -399,86 +356,19 @@ void QConnmanEngine::servicePropertyChangedContext(const QString &path,const QSt } } -void QConnmanEngine::networkPropertyChangedContext(const QString &/*path*/,const QString &/*item*/, const QDBusVariant &/*value*/) -{ - QMutexLocker locker(&mutex); -} - -void QConnmanEngine::devicePropertyChangedContext(const QString &devpath,const QString &item,const QDBusVariant &value) +void QConnmanEngine::technologyPropertyChangedContext(const QString & path, const QString &item, const QDBusVariant &value) { - QMutexLocker locker(&mutex); - if(item == "Networks") { - - QConnmanNetworkInterface network(devpath, this); + if(item == "State") { + if(value.variant().toString() == "offline") { + QConnmanTechnologyInterface tech(path); + disconnect(&tech,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), + this,SLOT(technologyPropertyChangedContext(QString,QString,QDBusVariant))); - QDBusArgument arg = qvariant_cast(value.variant()); - QStringList remainingNetworks = qdbus_cast(arg); - QString devicetype; - QMapIterator i(deviceMap); - while(i.hasNext()) { - i.next(); - if(i.value().contains(devpath)) { - devicetype = i.key().section("/",-1); - } - } - - QStringList oldnetworks = knownNetworks[devicetype]; - - if(remainingNetworks.count() > oldnetworks.count()) { - foreach(const QString netPath, remainingNetworks) { - if(!oldnetworks.contains(netPath)) { - addNetworkConfiguration(netPath); - } - } - } else { - foreach(const QString netPath, oldnetworks) { - QString servicePath = serviceNetworks.key(netPath); - if(!remainingNetworks.contains(netPath)) { - if(servicePath.isEmpty()) { - removeConfiguration(QString::number(qHash(netPath))); - } else { - removeConfiguration(QString::number(qHash(servicePath))); - } - knownNetworks[devicetype].removeAll(netPath); - } - } + technologies.remove(path); } } } -void QConnmanEngine::technologyPropertyChangedContext(const QString & path, const QString &item, const QDBusVariant &value) -{ - if(item == "Devices") { - QDBusArgument arg = qvariant_cast(value.variant()); - QStringList list = qdbus_cast(arg); - } - if(item == "State") { - - if(value.variant().toString() == "available") { - QConnmanTechnologyInterface tech(connmanManager->getPathForTechnology(path)); - foreach(const QString devPath, tech.getDevices()) { - - if(!deviceMap.value(path).contains(devPath)) { - QConnmanDeviceInterface *dev; - dev = new QConnmanDeviceInterface(devPath,this); - connect(dev,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), - this,SLOT(devicePropertyChangedContext(QString,QString,QDBusVariant))); - deviceMap.insert(path,QStringList() << devPath); - } - } - } - if(value.variant().toString() == "offline") { - deviceMap.remove(path); - QConnmanTechnologyInterface tech(path); - disconnect(&tech,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), - this,SLOT(technologyPropertyChangedContext(QString,QString,QDBusVariant))); - - technologies.remove(path); - getNetworkListing(); - } - } -} - void QConnmanEngine::configurationChange(const QString &id) { QMutexLocker locker(&mutex); @@ -513,8 +403,8 @@ void QConnmanEngine::configurationChange(const QString &id) locker.unlock(); emit configurationChanged(ptr); locker.relock(); - } + locker.unlock(); emit updateCompleted(); } @@ -622,12 +512,7 @@ void QConnmanEngine::removeConfiguration(const QString &id) disconnect(&serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant))); - QString netPath = serviceNetworks.value(service); - serviceNetworks.remove(service); - - QConnmanServiceInterface network(netPath); - disconnect(&network,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), - this,SLOT(networkPropertyChangedContext(QString,QString, QDBusVariant))); + serviceNetworks.removeOne(service); QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.take(id); locker.unlock(); @@ -641,20 +526,11 @@ void QConnmanEngine::addServiceConfiguration(const QString &servicePath) QMutexLocker locker(&mutex); QConnmanServiceInterface *serv; serv = new QConnmanServiceInterface(servicePath); - const QString netPath = serviceNetworks.value(servicePath); - - QConnmanNetworkInterface *network; - network = new QConnmanNetworkInterface(netPath, this); - const QString id = QString::number(qHash(servicePath)); if (!accessPointConfigurations.contains(id)) { - QConnmanDeviceInterface device(netPath.section("/",0,5),this); - - serviceNetworks.insert(servicePath,netPath); - - knownNetworks[device.getType()].append(netPath); + serviceNetworks.append(servicePath); connect(serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant))); @@ -693,15 +569,12 @@ void QConnmanEngine::addServiceConfiguration(const QString &servicePath) cpPriv->purpose = QNetworkConfiguration::PrivatePurpose; } - connect(network,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), - this,SLOT(networkPropertyChangedContext(QString,QString, QDBusVariant))); - cpPriv->state = getStateForService(servicePath); QNetworkConfigurationPrivatePointer ptr(cpPriv); accessPointConfigurations.insert(ptr->id, ptr); foundConfigurations.append(cpPriv); - configInterfaces[cpPriv->id] = device.getInterface(); + configInterfaces[cpPriv->id] = serv->getInterface(); locker.unlock(); emit configurationAdded(ptr); @@ -710,96 +583,6 @@ void QConnmanEngine::addServiceConfiguration(const QString &servicePath) } } -void QConnmanEngine::addNetworkConfiguration(const QString &networkPath) -{ - QMutexLocker locker(&mutex); - if(networkPath.isNull()) - return; - - QConnmanNetworkInterface *network; - network = new QConnmanNetworkInterface(networkPath, this); - QString servicePath = getServiceForNetwork(networkPath); - QConnmanServiceInterface *serv; - - QString id; - QConnmanDeviceInterface device(networkPath.section("/",0,5),this); - - if(servicePath.isEmpty()) { - id = QString::number(qHash(networkPath)); - serv = 0; - } else { - id = QString::number(qHash(servicePath)); - serv = new QConnmanServiceInterface(servicePath,this); - connect(serv,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), - this,SLOT(servicePropertyChangedContext(QString,QString, QDBusVariant))); - } - - if (!id.isEmpty() && !accessPointConfigurations.contains(id)) { - - knownNetworks[device.getType()].append(networkPath); - - serviceNetworks.insert(servicePath,networkPath); - - connect(network,SIGNAL(propertyChangedContext(QString,QString,QDBusVariant)), - this,SLOT(networkPropertyChangedContext(QString,QString, QDBusVariant))); - - QNetworkConfigurationPrivate* cpPriv = new QNetworkConfigurationPrivate(); - - QString networkName = network->getName(); - - if(networkName.isEmpty()) - networkName = "Hidden Network"; - - QNetworkConfiguration::BearerType bearerType; - - if(servicePath.isEmpty()) { - QString devicePath = networkPath.section("/",0,5); - - QConnmanDeviceInterface device(devicePath,this); - bearerType = typeToBearer(device.getType()); - } else { - if(serv->getType() == "cellular") { - bearerType = ofonoTechToBearerType("cellular"); - if(servicePath.isEmpty()) { - networkName = serv->getName(); - } - cpPriv->roamingSupported = isRoamingAllowed(servicePath); - } else { - bearerType = typeToBearer(serv->getType()); - } - } - - cpPriv->name = networkName; - cpPriv->isValid = true; - cpPriv->id = id; - cpPriv->type = QNetworkConfiguration::InternetAccessPoint; - cpPriv->bearerType = bearerType; - - if(network->getWifiSecurity() == "none") { - cpPriv->purpose = QNetworkConfiguration::PublicPurpose; - } else { - cpPriv->purpose = QNetworkConfiguration::PrivatePurpose; - } - - if(servicePath.isEmpty()) - cpPriv->state = QNetworkConfiguration::Undefined; - else - cpPriv->state = getStateForService(servicePath); - - QNetworkConfigurationPrivatePointer ptr(cpPriv); - accessPointConfigurations.insert(ptr->id, ptr); - foundConfigurations.append(cpPriv); - configInterfaces[cpPriv->id] = device.getInterface(); - - locker.unlock(); - emit configurationAdded(ptr); - locker.relock(); - emit updateCompleted(); - } /*else { - qDebug() << "Not added~~~~~~~~~~~"; - }*/ -} - bool QConnmanEngine::requiresPolling() const { return false; diff --git a/src/plugins/bearer/connman/qconnmanengine.h b/src/plugins/bearer/connman/qconnmanengine.h index 2a2308f..55067d8 100644 --- a/src/plugins/bearer/connman/qconnmanengine.h +++ b/src/plugins/bearer/connman/qconnmanengine.h @@ -103,8 +103,6 @@ private Q_SLOTS: void doRequestUpdate(); void servicePropertyChangedContext(const QString &,const QString &,const QDBusVariant &); - void networkPropertyChangedContext(const QString &,const QString &,const QDBusVariant &); - void devicePropertyChangedContext(const QString &,const QString &,const QDBusVariant &); void propertyChangedContext(const QString &,const QString &,const QDBusVariant &); void technologyPropertyChangedContext(const QString &,const QString &, const QDBusVariant &); @@ -113,10 +111,6 @@ private: QList foundConfigurations; - void getNetworkListing(); - - QString getServiceForNetwork(const QString &network); - QString serviceFromId(const QString &id); QString networkFromId(const QString &id); @@ -125,15 +119,12 @@ private: void removeConfiguration(const QString &servicePath); void addServiceConfiguration(const QString &servicePath); - void addNetworkConfiguration(const QString &worknetPath); QDateTime activeTime; QMap technologies; // techpath, tech interface QMap configInterfaces; // id, interface name - QMap knownNetworks; //device path, net paths list - QMap deviceMap; //tech path, device path - QMap serviceNetworks; //service, network + QList serviceNetworks; //servpath QNetworkConfiguration::BearerType ofonoTechToBearerType(const QString &type); bool isRoamingAllowed(const QString &context); diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp index 0545422..092bea9 100644 --- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp +++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp @@ -317,126 +317,8 @@ QString QConnmanManagerInterface::getPathForTechnology(const QString &name) return ""; } -QConnmanNetworkInterface::QConnmanNetworkInterface(const QString &dbusPathName, QObject *parent) - : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE), - dbusPathName, - CONNMAN_NETWORK_INTERFACE, - QDBusConnection::systemBus(), parent) -{ -} - -QConnmanNetworkInterface::~QConnmanNetworkInterface() -{ -} - -void QConnmanNetworkInterface::connectNotify(const char *signal) -{ - if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { - if(!connection().connect(QLatin1String(CONNMAN_SERVICE), - this->path(), - QLatin1String(CONNMAN_NETWORK_INTERFACE), - QLatin1String("PropertyChanged"), - this,SIGNAL(propertyChanged(QString,QDBusVariant)))) { - qWarning() << "network properties not connected"; - } - } - if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) { - QConnmanDBusHelper *helper; - helper = new QConnmanDBusHelper(this); - - dbusConnection.connect(QLatin1String(CONNMAN_SERVICE), - this->path(), - QLatin1String(CONNMAN_NETWORK_INTERFACE), - QLatin1String("PropertyChanged"), - helper,SLOT(propertyChanged(QString,QDBusVariant))); - - QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), - this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), Qt::UniqueConnection); - } -} - -void QConnmanNetworkInterface::disconnectNotify(const char *signal) -{ - if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { - - } -} - -QVariantMap QConnmanNetworkInterface::getProperties() -{ - QDBusReply reply = this->call(QLatin1String("GetProperties")); - return reply.value(); -} - -QVariant QConnmanNetworkInterface::getProperty(const QString &property) -{ - QVariant var; - QVariantMap map = getProperties(); - if (map.contains(property)) { - var = map.value(property); - } - return var; -} - -//properties - -QString QConnmanNetworkInterface::getAddress() -{ - QVariant var = getProperty("Address"); - return qdbus_cast(var); -} - -QString QConnmanNetworkInterface::getName() -{ - QVariant var = getProperty("Name"); - return qdbus_cast(var); -} - -bool QConnmanNetworkInterface::isConnected() -{ - QVariant var = getProperty("Connected"); - return qdbus_cast(var); -} - -quint8 QConnmanNetworkInterface::getSignalStrength() -{ - QVariant var = getProperty("Strength"); - return qdbus_cast(var); -} - -QString QConnmanNetworkInterface::getDevice() -{ - QVariant var = getProperty("Device"); - return qdbus_cast(var); -} - -QString QConnmanNetworkInterface::getWifiSsid() -{ - QVariant var = getProperty("WiFi.SSID"); - return qdbus_cast(var); -} - -QString QConnmanNetworkInterface::getWifiMode() -{ - QVariant var = getProperty("WiFi.Mode"); - return qdbus_cast(var); -} - -QString QConnmanNetworkInterface::getWifiSecurity() -{ - QVariant var = getProperty("WiFi.Security"); - return qdbus_cast(var); -} - -QString QConnmanNetworkInterface::getWifiPassphrase() -{ - QVariant var = getProperty("WiFi.Passphrase"); - return qdbus_cast(var); -} - ////////////////////////// - QConnmanProfileInterface::QConnmanProfileInterface(const QString &dbusPathName,QObject *parent) : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE), dbusPathName, @@ -503,6 +385,7 @@ QStringList QConnmanProfileInterface::getServices() return qdbus_cast(var); } + /////////////////////////// QConnmanServiceInterface::QConnmanServiceInterface(const QString &dbusPathName,QObject *parent) : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE), @@ -910,13 +793,6 @@ QString QConnmanTechnologyInterface::getType() } -QStringList QConnmanTechnologyInterface::getDevices() -{ - QVariant var = getProperty("Devices"); - return qdbus_cast(var); -} - - ////////////////////////////////// QConnmanAgentInterface::QConnmanAgentInterface(const QString &dbusPathName, QObject *parent) : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE), @@ -994,151 +870,8 @@ quint64 QConnmanCounterInterface::getTimeOnline() return 0; } -///////////////////////////////////////// -QConnmanDeviceInterface::QConnmanDeviceInterface(const QString &dbusPathName,QObject *parent) - : QDBusAbstractInterface(QLatin1String(CONNMAN_SERVICE), - dbusPathName, - CONNMAN_DEVICE_INTERFACE, - QDBusConnection::systemBus(), parent) -{ -} - -QConnmanDeviceInterface::~QConnmanDeviceInterface() -{ -} - -void QConnmanDeviceInterface::connectNotify(const char *signal) -{ - if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QDBusVariant))) { - dbusConnection.connect(QLatin1String(CONNMAN_SERVICE), - this->path(), - QLatin1String(CONNMAN_DEVICE_INTERFACE), - QLatin1String("PropertyChanged"), - this,SIGNAL(propertyChanged(QString,QDBusVariant))); - - } - if (QLatin1String(signal) == SIGNAL(propertyChangedContext(QString,QString,QDBusVariant))) { - QConnmanDBusHelper *helper; - helper = new QConnmanDBusHelper(this); - - dbusConnection.connect(QLatin1String(CONNMAN_SERVICE), - this->path(), - QLatin1String(CONNMAN_DEVICE_INTERFACE), - QLatin1String("PropertyChanged"), - helper,SLOT(propertyChanged(QString,QDBusVariant))); - - QObject::connect(helper,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), - this,SIGNAL(propertyChangedContext(const QString &,const QString &,const QDBusVariant &)), Qt::UniqueConnection); - } -} - -void QConnmanDeviceInterface::disconnectNotify(const char *signal) -{ - if (QLatin1String(signal) == SIGNAL(propertyChanged(QString,QVariant))) { - - } -} - -QVariantMap QConnmanDeviceInterface::getProperties() -{ - QDBusReply reply = this->call(QLatin1String("GetProperties")); - return reply.value(); -} - -bool QConnmanDeviceInterface::setProperty(const QString &name, const QDBusVariant &value) -{ - QDBusMessage reply = this->call(QLatin1String("SetProperty"),name, qVariantFromValue(value)); - return true; -} - -void QConnmanDeviceInterface::scan() -{ - QDBusReply reply = this->call(QLatin1String("ProposeScan")); - if(!reply.isValid()) { - qDebug() << reply.error().message(); - } -} - -QVariant QConnmanDeviceInterface::getProperty(const QString &property) -{ - QVariant var; - QVariantMap map = getProperties(); - if (map.contains(property)) { - var = map.value(property); - } - return var; -} - -//properties -QString QConnmanDeviceInterface::getAddress() -{ - QVariant var = getProperty("Address"); - return qdbus_cast(var); -} - -QString QConnmanDeviceInterface::getName() -{ - QVariant var = getProperty("Name"); - return qdbus_cast(var); -} - -QString QConnmanDeviceInterface::getType() -{ - QVariant var = getProperty("Type"); - return qdbus_cast(var); -} - -QString QConnmanDeviceInterface::getInterface() -{ - QVariant var = getProperty("Interface"); - return qdbus_cast(var); -} - -bool QConnmanDeviceInterface::isPowered() -{ - QVariant var = getProperty("Powered"); - return qdbus_cast(var); -} - -quint16 QConnmanDeviceInterface::getScanInterval() -{ - QVariant var = getProperty("ScanInterval"); - return qdbus_cast(var); -} - -bool QConnmanDeviceInterface::setScanInterval(const QString & interval) -{ -// QList args; -// args << qVariantFromValue(name) -// << value.variant(); - -// QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,QLatin1String("SetProperty"),args); - - return setProperty("ScanInterval", QDBusVariant(interval)); -} - -bool QConnmanDeviceInterface::isScanning() -{ - QVariant var = getProperty("Scanning"); - return qdbus_cast(var); -} - -QStringList QConnmanDeviceInterface::getNetworks() -{ - QVariant var = getProperty("Networks"); - return qdbus_cast(var); -} - -bool QConnmanDeviceInterface::setEnabled(bool powered) -{ - QList args; - args << qVariantFromValue(QString("Powered")) - << qVariantFromValue(QDBusVariant(powered)); - - QDBusMessage reply = this->callWithArgumentList(QDBus::AutoDetect,QLatin1String("SetProperty"),args); - return true; -} +///////////////////////////////////////// QConnmanDBusHelper::QConnmanDBusHelper(QObject * parent) : QObject(parent) { diff --git a/src/plugins/bearer/connman/qconnmanservice_linux_p.h b/src/plugins/bearer/connman/qconnmanservice_linux_p.h index 6e6b702..9615b33 100644 --- a/src/plugins/bearer/connman/qconnmanservice_linux_p.h +++ b/src/plugins/bearer/connman/qconnmanservice_linux_p.h @@ -70,8 +70,8 @@ #ifndef __CONNMAN_DBUS_H -#define CONNMAN_SERVICE "org.moblin.connman" -#define CONNMAN_PATH "/org/moblin/connman" +#define CONNMAN_SERVICE "net.connman" +#define CONNMAN_PATH "/net/connman" #define CONNMAN_DEBUG_INTERFACE CONNMAN_SERVICE ".Debug" #define CONNMAN_ERROR_INTERFACE CONNMAN_SERVICE ".Error" @@ -84,8 +84,6 @@ #define CONNMAN_TASK_INTERFACE CONNMAN_SERVICE ".Task" #define CONNMAN_PROFILE_INTERFACE CONNMAN_SERVICE ".Profile" #define CONNMAN_SERVICE_INTERFACE CONNMAN_SERVICE ".Service" -#define CONNMAN_DEVICE_INTERFACE CONNMAN_SERVICE ".Device" -#define CONNMAN_NETWORK_INTERFACE CONNMAN_SERVICE ".Network" #define CONNMAN_PROVIDER_INTERFACE CONNMAN_SERVICE ".Provider" #define CONNMAN_TECHNOLOGY_INTERFACE CONNMAN_SERVICE ".Technology" #endif @@ -151,38 +149,6 @@ protected: QVariant getProperty(const QString &); }; - -class QConnmanNetworkInterface : public QDBusAbstractInterface -{ - Q_OBJECT - -public: - - QConnmanNetworkInterface(const QString &dbusPathName, QObject *parent = 0); - ~QConnmanNetworkInterface(); - - QVariantMap getProperties(); - - //properties - QString getAddress(); - QString getName(); - bool isConnected(); - quint8 getSignalStrength(); - QString getDevice(); - QString getWifiSsid(); - QString getWifiMode(); - QString getWifiSecurity(); - QString getWifiPassphrase(); - -Q_SIGNALS: - void propertyChanged(const QString &, const QDBusVariant &value); - void propertyChangedContext(const QString &,const QString &,const QDBusVariant &); -protected: - void connectNotify(const char *signal); - void disconnectNotify(const char *signal); - QVariant getProperty(const QString &); -}; - class QConnmanProfileInterfacePrivate; class QConnmanProfileInterface : public QDBusAbstractInterface { @@ -287,8 +253,6 @@ public: QString getName(); QString getType(); - QStringList getDevices(); - Q_SIGNALS: void propertyChanged(const QString &, const QDBusVariant &value); void propertyChangedContext(const QString &,const QString &,const QDBusVariant &); @@ -337,42 +301,6 @@ private: QConnmanCounterInterfacePrivate *d; }; -class QConnmanDeviceInterface : public QDBusAbstractInterface -{ - Q_OBJECT - -public: - - QConnmanDeviceInterface(const QString &dbusPathName,QObject *parent = 0); - ~QConnmanDeviceInterface(); - - QVariantMap getProperties(); - void scan(); - -//properties - QString getAddress(); - QString getName(); - QString getType(); - QString getInterface(); - bool isPowered(); - quint16 getScanInterval(); - bool setScanInterval(const QString &interval); - - bool isScanning(); - QStringList getNetworks(); - bool setEnabled(bool powered); - bool setProperty(const QString &name, const QDBusVariant &value); - -Q_SIGNALS: - void propertyChanged(const QString &, const QDBusVariant &value); - void propertyChangedContext(const QString &,const QString &,const QDBusVariant &); -protected: - void connectNotify(const char *signal); - void disconnectNotify(const char *signal); - QVariant getProperty(const QString &); - -}; - class QConnmanDBusHelper: public QObject, protected QDBusContext { Q_OBJECT -- cgit v0.12 From 1e33b4ea1374b499bf938bc2f370f12404b76a58 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Thu, 9 Dec 2010 16:40:11 +1000 Subject: Update QtGui bwins def file for QTBUG-15615 --- src/s60installs/bwins/QtGuiu.def | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index 355b46a..bf4d99f 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -2725,7 +2725,7 @@ EXPORTS ?clearSelection@QTextCursor@@QAEXXZ @ 2724 NONAME ; void QTextCursor::clearSelection(void) ?clearSpans@QTableView@@QAEXXZ @ 2725 NONAME ; void QTableView::clearSpans(void) ?clearString@QLineControl@@ABE?AVQString@@II@Z @ 2726 NONAME ; class QString QLineControl::clearString(unsigned int, unsigned int) const - ?clearSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 2727 NONAME ; void QGraphicsItemPrivate::clearSubFocus(class QGraphicsItem *) + ?clearSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 2727 NONAME ABSENT ; void QGraphicsItemPrivate::clearSubFocus(class QGraphicsItem *) ?clearUndo@QLineControl@@QAEXXZ @ 2728 NONAME ; void QLineControl::clearUndo(void) ?click@QAbstractButton@@QAEXXZ @ 2729 NONAME ; void QAbstractButton::click(void) ?clicked@QAbstractButton@@IAEX_N@Z @ 2730 NONAME ; void QAbstractButton::clicked(bool) @@ -9914,7 +9914,7 @@ EXPORTS ?setStyleSheet@QWidget@@QAEXABVQString@@@Z @ 9913 NONAME ; void QWidget::setStyleSheet(class QString const &) ?setStyleStrategy@QFont@@QAEXW4StyleStrategy@1@@Z @ 9914 NONAME ; void QFont::setStyleStrategy(enum QFont::StyleStrategy) ?setStyle_helper@QWidgetPrivate@@QAEXPAVQStyle@@_N1@Z @ 9915 NONAME ; void QWidgetPrivate::setStyle_helper(class QStyle *, bool, bool) - ?setSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 9916 NONAME ; void QGraphicsItemPrivate::setSubFocus(class QGraphicsItem *) + ?setSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 9916 NONAME ABSENT ; void QGraphicsItemPrivate::setSubFocus(class QGraphicsItem *) ?setSubTitle@QWizardPage@@QAEXABVQString@@@Z @ 9917 NONAME ; void QWizardPage::setSubTitle(class QString const &) ?setSubTitleFormat@QWizard@@QAEXW4TextFormat@Qt@@@Z @ 9918 NONAME ; void QWizard::setSubTitleFormat(enum Qt::TextFormat) ?setSubmitPolicy@QDataWidgetMapper@@QAEXW4SubmitPolicy@1@@Z @ 9919 NONAME ; void QDataWidgetMapper::setSubmitPolicy(enum QDataWidgetMapper::SubmitPolicy) @@ -12906,4 +12906,6 @@ EXPORTS ?userData@QStaticTextItem@@QBEPAVQStaticTextUserData@@XZ @ 12905 NONAME ; class QStaticTextUserData * QStaticTextItem::userData(void) const ?populate@QTextureGlyphCache@@QAE_NPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12906 NONAME ; bool QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *) ?resetCursorBlinkTimer@QLineControl@@QAEXXZ @ 12907 NONAME ; void QLineControl::resetCursorBlinkTimer(void) + ?setSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@0@Z @ 12908 NONAME ; void QGraphicsItemPrivate::setSubFocus(class QGraphicsItem *, class QGraphicsItem *) + ?clearSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@0@Z @ 12909 NONAME ; void QGraphicsItemPrivate::clearSubFocus(class QGraphicsItem *, class QGraphicsItem *) -- cgit v0.12 From 8f5a46deb3604d1d07a7f291695f0da2b04f1b73 Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Wed, 8 Dec 2010 21:31:14 +0200 Subject: QT::Window palette brush fails to render correctly. QWidget uses QPainter::drawTiledPixmap to draw textured background brush but OpenVG paint engine fails to render pixmaps correctly because of incorrect offset calculation. Task-number: QTBUG-15737 Reviewed-by: Gunnar Sletta --- src/openvg/qpaintengine_vg.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp index b8e8bad..13156d7 100644 --- a/src/openvg/qpaintengine_vg.cpp +++ b/src/openvg/qpaintengine_vg.cpp @@ -3210,8 +3210,7 @@ void QVGPaintEngine::drawTiledPixmap (const QRectF &r, const QPixmap &pixmap, const QPointF &s) { QBrush brush(state()->pen.color(), pixmap); - QTransform xform; - xform.translate(-s.x(), -s.y()); + QTransform xform = QTransform::fromTranslate(r.x() - s.x(), r.y() - s.y()); brush.setTransform(xform); fillRect(r, brush); } -- cgit v0.12 From f9057f290bc89884d32ec88bddc8de6e0a3b3f7f Mon Sep 17 00:00:00 2001 From: Janne Koskinen Date: Wed, 8 Dec 2010 12:25:29 +0200 Subject: QLabel wordwrap to respect maximumSize 80 characters width can be longer than maximum size of QLabel. Restrict to max size. Task-number: QT-4354 Reviewed-by: Sami Merila --- src/gui/widgets/qlabel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widgets/qlabel.cpp b/src/gui/widgets/qlabel.cpp index 42be03b..011b07a 100644 --- a/src/gui/widgets/qlabel.cpp +++ b/src/gui/widgets/qlabel.cpp @@ -682,7 +682,7 @@ QSize QLabelPrivate::sizeForWidth(int w) const bool tryWidth = (w < 0) && (align & Qt::TextWordWrap); if (tryWidth) - w = fm.averageCharWidth() * 80; + w = qMin(fm.averageCharWidth() * 80, q->maximumSize().width()); else if (w < 0) w = 2000; w -= (hextra + contentsMargin.width()); -- cgit v0.12 From 1e84041247505502fa3b3f4865126719321f70d3 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Thu, 9 Dec 2010 10:09:30 +0100 Subject: doc: Removed some empty \row commands from a table. --- doc/src/platforms/platform-notes.qdoc | 3 --- 1 file changed, 3 deletions(-) diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc index 9c5f3c8..a7c05e2 100644 --- a/doc/src/platforms/platform-notes.qdoc +++ b/doc/src/platforms/platform-notes.qdoc @@ -81,14 +81,11 @@ \header \o \o Concurrent \o XmlPatterns \o WebKit(*) \o CLucene \o Phonon \row \o g++ 3.3 \o \o \bold{X} \o \o \bold{X} \o \bold{X} \row \o g++ 3.4 and up \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} - \row \row \o SunCC 5.5 \o \o \o \o \bold{X} \o \bold{X} - \row \row \o aCC series 3 \o \o \o \o \bold{X} \o \bold{X} \row \o aCC series 6 \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \row \o xlC 6 \o \o \o \o \bold{X} \o \bold{X} \row \o Intel CC 10 \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} - \row \row \o MSVC 2003 \o \bold{X} \o \bold{X} \o \o \bold{X} \o \bold{X} \row \o MSVC 2005 and up \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \o \bold{X} \endtable -- cgit v0.12 From e195adf461ae81f1fedd75cc8907f823edd1f8f7 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 9 Dec 2010 11:21:12 +0100 Subject: Fix compilation of qnetworkreply test with namespaces. --- tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index 9cf61f9..cff0ae9 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -336,10 +336,10 @@ private Q_SLOTS: void parentingRepliesToTheApp(); }; -QT_BEGIN_NAMESPACE - bool tst_QNetworkReply::seedCreated = false; +QT_BEGIN_NAMESPACE + namespace QTest { template<> char *toString(const QNetworkReply::NetworkError& code) -- cgit v0.12 From 1b41444e13d3e9e2f0733129675d0c2996e7df57 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 8 Dec 2010 16:06:18 +0200 Subject: Add libinfix support for QML plugins in Symbian. Task-number: QTBUG-14736 Reviewed-by: Alessandro Portale --- mkspecs/common/symbian/symbian.conf | 2 +- src/declarative/qml/qdeclarativeimport.cpp | 8 +++++++- tools/configure/configureapp.cpp | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf index 11907cf..707335c 100644 --- a/mkspecs/common/symbian/symbian.conf +++ b/mkspecs/common/symbian/symbian.conf @@ -147,7 +147,7 @@ SYMBIAN_SUPPORTED_LANGUAGES = \ # These directories must match what configure uses for QT_INSTALL_PLUGINS and QT_INSTALL_IMPORTS QT_PLUGINS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/plugins -QT_IMPORTS_BASE_DIR = /resource/qt/imports +QT_IMPORTS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/imports load(symbian/platform_paths) diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp index acc13de..94765f2 100644 --- a/src/declarative/qml/qdeclarativeimport.cpp +++ b/src/declarative/qml/qdeclarativeimport.cpp @@ -382,7 +382,13 @@ bool QDeclarativeImportsPrivate::importExtension(const QString &absoluteFilePath foreach (const QDeclarativeDirParser::Plugin &plugin, qmldirParser.plugins()) { QString resolvedFilePath = database->resolvePlugin(dir, plugin.path, plugin.name); - +#if defined(QT_LIBINFIX) && defined(Q_OS_SYMBIAN) + if (resolvedFilePath.isEmpty()) { + // In case of libinfixed build, attempt to load libinfixed version, too. + QString infixedPluginName = plugin.name + QLatin1String(QT_LIBINFIX); + resolvedFilePath = database->resolvePlugin(dir, plugin.path, infixedPluginName); + } +#endif if (!resolvedFilePath.isEmpty()) { if (!database->importPlugin(resolvedFilePath, uri, errorString)) { if (errorString) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index 050ad62..c967dad 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -1029,6 +1029,8 @@ void Configure::parseCmdLine() if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) { dictionary[ "QT_INSTALL_PLUGINS" ] = QString("\\resource\\qt%1\\plugins").arg(dictionary[ "QT_LIBINFIX" ]); + dictionary[ "QT_INSTALL_IMPORTS" ] = + QString("\\resource\\qt%1\\imports").arg(dictionary[ "QT_LIBINFIX" ]); } } else if (configCmdLine.at(i) == "-D") { ++i; -- cgit v0.12 From bd4ac06eb3c8ac3a9044689481873ce91aeb3180 Mon Sep 17 00:00:00 2001 From: Geir Vattekar Date: Thu, 9 Dec 2010 12:40:10 +0100 Subject: Doc: Fixed doc bug in Diagram Scene example Task-number: QTBUG-15647 --- doc/src/examples/diagramscene.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/examples/diagramscene.qdoc b/doc/src/examples/diagramscene.qdoc index 98bc983..d5cc4e3 100644 --- a/doc/src/examples/diagramscene.qdoc +++ b/doc/src/examples/diagramscene.qdoc @@ -195,7 +195,7 @@ This function returns a QWidget containing a QToolButton with an image of one of the \c DiagramItems, i.e., flowchart shapes. The image is created by the \c DiagramItem through the \c image() - function. The QButtonGroup class lets us attach a QVariant with + function. The QButtonGroup class lets us attach an id (int) with each button; we store the diagram's type, i.e., the DiagramItem::DiagramType enum. We use the stored diagram type when we create new diagram items for the scene. The widgets created -- cgit v0.12 From 99938908456a422ebced06744deec6333546bf6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Thu, 9 Dec 2010 12:44:58 +0100 Subject: Fixed missing text in GL 2 engine after recreating a context. If we recreate the texture glyph cache, we also need to repopulate. Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 3ddc15a..ac41c04 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1477,16 +1477,18 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp QOpenGL2PaintEngineState *s = q->state(); + bool recreateVertexArrays = false; + QGLTextureGlyphCache *cache = (QGLTextureGlyphCache *) staticTextItem->fontEngine()->glyphCache(ctx, glyphType, QTransform()); if (!cache || cache->cacheType() != glyphType) { cache = new QGLTextureGlyphCache(ctx, glyphType, QTransform()); staticTextItem->fontEngine()->setGlyphCache(ctx, cache); + recreateVertexArrays = true; } else if (cache->context() == 0) { // Old context has been destroyed, new context has same ptr value cache->setContext(ctx); } - bool recreateVertexArrays = false; if (staticTextItem->userDataNeedsUpdate) recreateVertexArrays = true; else if (staticTextItem->userData() == 0) -- cgit v0.12 From ad68c845e3e368dc4235e64b54e15a9ee886b078 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Thu, 9 Dec 2010 14:25:16 +0200 Subject: QLabel wraps text at fixed lengths There are multiple problems with text wrapping and dialogs. First, teh CBA height was assumed to be zero, or fetch from previous layout, which caused the dialog to be half under the CBA. Now, CBA height is always asked from AVKON metrics, since asking it from actual component might fail (or produce incorrect results) due to that the component is not created yet (or might still have previous layout active). Additionally, qinputDialog label is now having a size policy to restrict its growing out of dialog borders. Task-number: QT-4354 Reviewed-by: Janne Koskinen --- src/gui/dialogs/qdialog.cpp | 13 ++++++------- src/gui/dialogs/qinputdialog.cpp | 2 ++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp index fbdc522..16ea045 100644 --- a/src/gui/dialogs/qdialog.cpp +++ b/src/gui/dialogs/qdialog.cpp @@ -901,15 +901,13 @@ bool QDialog::symbianAdjustedPosition() QPoint p; const bool doS60Positioning = !(isFullScreen()||isMaximized()); if (doS60Positioning) { + QPoint oldPos = pos(); // naive way to deduce screen orientation if (S60->screenHeightInPixels > S60->screenWidthInPixels) { int cbaHeight; - const CEikButtonGroupContainer* bgContainer = S60->buttonGroupContainer(); - if (!bgContainer) { - cbaHeight = 0; - } else { - cbaHeight = qt_TSize2QSize(bgContainer->Size()).height(); - } + TRect rect; + AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EControlPane, rect); + cbaHeight = rect.Height(); p.setY(S60->screenHeightInPixels - height() - cbaHeight); p.setX(0); } else { @@ -939,7 +937,8 @@ bool QDialog::symbianAdjustedPosition() p.setX(qMax(0,S60->screenWidthInPixels - width())); } } - move(p); + if (oldPos != p || p.y() < 0) + move(p); } return doS60Positioning; #else diff --git a/src/gui/dialogs/qinputdialog.cpp b/src/gui/dialogs/qinputdialog.cpp index ce27bd3..a29376a 100644 --- a/src/gui/dialogs/qinputdialog.cpp +++ b/src/gui/dialogs/qinputdialog.cpp @@ -234,6 +234,8 @@ void QInputDialogPrivate::ensureLayout() //we want to let the input dialog grow to available size on Symbian. #ifndef Q_OS_SYMBIAN mainLayout->setSizeConstraint(QLayout::SetMinAndMaxSize); +#else + label->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); #endif mainLayout->addWidget(label); mainLayout->addWidget(inputWidget); -- cgit v0.12 From a23cab16dd4dd3505578d2747debaa28a21190ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Thu, 9 Dec 2010 14:21:26 +0100 Subject: Fixed DeviceCoordinateCache items when using QGraphicsScene::render(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since viewRect is null, we shouldn't try to use the partialCacheExposure path which intersects the viewRect with the device rect of the item. Task-number: QTBUG-15977 Reviewed-by: Bjørn Erik Nilsen --- src/gui/graphicsview/qgraphicsscene.cpp | 4 ++-- tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp index a0015dc..726e6d7 100644 --- a/src/gui/graphicsview/qgraphicsscene.cpp +++ b/src/gui/graphicsview/qgraphicsscene.cpp @@ -4583,13 +4583,13 @@ void QGraphicsScenePrivate::drawItemHelper(QGraphicsItem *item, QPainter *painte itemCache->exposed.clear(); deviceData->cacheIndent = QPoint(); pix = QPixmap(); - } else { + } else if (!viewRect.isNull()) { allowPartialCacheExposure = deviceData->cacheIndent != QPoint(); } // Allow partial cache exposure if the device rect isn't fully contained and // deviceRect is 20% taller or wider than the viewRect. - if (!allowPartialCacheExposure && !viewRect.contains(deviceRect)) { + if (!allowPartialCacheExposure && !viewRect.isNull() && !viewRect.contains(deviceRect)) { allowPartialCacheExposure = (viewRect.width() * 1.2 < deviceRect.width()) || (viewRect.height() * 1.2 < deviceRect.height()); } diff --git a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp index 6a2f849..588c476 100644 --- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp +++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp @@ -288,6 +288,7 @@ private slots: void taskQT657_paintIntoCacheWithTransparentParts(); void taskQTBUG_7863_paintIntoCacheWithTransparentParts(); void taskQT_3674_doNotCrash(); + void taskQTBUG_15977_renderWithDeviceCoordinateCache(); }; void tst_QGraphicsScene::initTestCase() @@ -4629,5 +4630,27 @@ void tst_QGraphicsScene::zeroScale() QTRY_COMPARE(cl.changes.count(), 2); } +void tst_QGraphicsScene::taskQTBUG_15977_renderWithDeviceCoordinateCache() +{ + QGraphicsScene scene; + scene.setSceneRect(0, 0, 100, 100); + QGraphicsRectItem *rect = scene.addRect(0, 0, 100, 100); + rect->setPen(Qt::NoPen); + rect->setBrush(Qt::red); + rect->setCacheMode(QGraphicsItem::DeviceCoordinateCache); + + QImage image(100, 100, QImage::Format_RGB32); + QPainter p(&image); + scene.render(&p); + p.end(); + + QImage expected(100, 100, QImage::Format_RGB32); + p.begin(&expected); + p.fillRect(expected.rect(), Qt::red); + p.end(); + + QCOMPARE(image, expected); +} + QTEST_MAIN(tst_QGraphicsScene) #include "tst_qgraphicsscene.moc" -- cgit v0.12 From 0c7687458c524252dae26deb32f7a3b8a38491f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Thu, 9 Dec 2010 17:17:22 +0100 Subject: Try using pure scissor clip in GL 2 engine for rotations. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As long as the final clip area is rectangular and axis aligned we can use a scissor clip. This prevents performance problems when doing 90-degree rotated rectangle clips. Reviewed-by: Bjørn Erik Nilsen --- src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index ac41c04..7045fe9 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -2141,7 +2141,11 @@ void QGL2PaintEngineEx::clip(const QVectorPath &path, Qt::ClipOperation op) const QPointF* const points = reinterpret_cast(path.points()); QRectF rect(points[0], points[2]); - if (state()->matrix.type() <= QTransform::TxScale) { + if (state()->matrix.type() <= QTransform::TxScale + || (state()->matrix.type() == QTransform::TxRotate + && qFuzzyIsNull(state()->matrix.m11()) + && qFuzzyIsNull(state()->matrix.m22()))) + { state()->rectangleClip = state()->rectangleClip.intersected(state()->matrix.mapRect(rect).toRect()); d->updateClipScissorTest(); return; -- cgit v0.12 From 4c870f3fe88d14e2efa19b924d9f89dea0a6931c Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Thu, 9 Dec 2010 19:23:04 +0100 Subject: Runtime dependency on Symbians Font Table API The Symbian Font Table API is a feature from (the former) Symbian^4 which will be backported into Symbian^3 in a random minor OS version. In order to keep Qt source and binary compatible between these minor versions, we cannot decide at compile time whether or not to use the new Font Table API. This patch changes many "#ifdef Q_SYMBIAN_HAS_FONTTABLE_API" into "if (symbianFontTableApiAvailable())". The Font Table feature is detected at runtime. Currently, CFeatureDiscovery is not used, because at the time of writing, that feature flag test would give false positives or false negatives. Instead, CFont::ExtendedFunction() is called with KFontGetFontTable to see if the return value is KErrNone, which indicates that the feature is available. The avalibility information gets cached, so the hack happens only once per application run. The font table Api feature comes with helper classes such as "RFontTable" and "TGetFontTableParam". But we cannot use those, because we want to stay source and binary compatible across the Symbian(^3) versions without the Font table API and those with. So, in Qt, RFontTable is simply not used and TGetFontTableParam is replicated as "QSymbianTGetFontTableParam". Same for KFontGetFontTable, KFontReleaseFontTable and later also FfFontTable. This patch has been looked at by colleagues, who verified the overall #ifdef to if() conversion, but did not feel entitled to give their official Reviewed-By for an obscure topic like Qt font support on Symbian. (It sucks to be the only creature in this universe who -kind of- knows how Qt text handling and Symbian text handling interact) Task-Number: QTBUG-15515 --- src/gui/text/qfontdatabase_s60.cpp | 130 +++++++++++++------------- src/gui/text/qfontengine_s60.cpp | 182 ++++++++++++++++++++++--------------- src/gui/text/qfontengine_s60_p.h | 16 ++-- 3 files changed, 181 insertions(+), 147 deletions(-) diff --git a/src/gui/text/qfontdatabase_s60.cpp b/src/gui/text/qfontdatabase_s60.cpp index 5e168c6..9a77a7a 100644 --- a/src/gui/text/qfontdatabase_s60.cpp +++ b/src/gui/text/qfontdatabase_s60.cpp @@ -116,7 +116,6 @@ public: const QSymbianTypeFaceExtras *extras(const QString &typeface, bool bold, bool italic) const; void addFontFileToFontStore(const QFileInfo &fontFileInfo); -#ifndef Q_SYMBIAN_HAS_FONTTABLE_API struct CFontFromFontStoreReleaser { static inline void cleanup(CFont *font) { @@ -127,7 +126,6 @@ public: dbExtras->m_store->ReleaseFont(font); } }; -#endif // !Q_SYMBIAN_HAS_FONTTABLE_API struct CFontFromScreenDeviceReleaser { static inline void cleanup(CFont *font) @@ -138,37 +136,38 @@ public: } }; -#ifndef Q_SYMBIAN_HAS_FONTTABLE_API +// m_heap, m_store, m_rasterizer and m_extras are used if Symbian +// does not provide the Font Table API RHeap* m_heap; CFontStore *m_store; COpenFontRasterizer *m_rasterizer; mutable QList m_extras; -#endif // !Q_SYMBIAN_HAS_FONTTABLE_API + mutable QHash m_extrasHash; }; QSymbianFontDatabaseExtrasImplementation::QSymbianFontDatabaseExtrasImplementation() { -#ifndef Q_SYMBIAN_HAS_FONTTABLE_API - QStringList filters; - filters.append(QLatin1String("*.ttf")); - filters.append(QLatin1String("*.ccc")); - filters.append(QLatin1String("*.ltt")); - const QFileInfoList fontFiles = alternativeFilePaths(QLatin1String("resource\\Fonts"), filters); - - const TInt heapMinLength = 0x1000; - const TInt heapMaxLength = qMax(0x20000 * fontFiles.count(), heapMinLength); - m_heap = User::ChunkHeap(NULL, heapMinLength, heapMaxLength); - QT_TRAP_THROWING( - m_store = CFontStore::NewL(m_heap); - m_rasterizer = COpenFontRasterizer::NewL(TUid::Uid(0x101F7F5E)); - CleanupStack::PushL(m_rasterizer); - m_store->InstallRasterizerL(m_rasterizer); - CleanupStack::Pop(m_rasterizer);); - - foreach (const QFileInfo &fontFileInfo, fontFiles) - addFontFileToFontStore(fontFileInfo); -#endif // !Q_SYMBIAN_HAS_FONTTABLE_API + if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) { + QStringList filters; + filters.append(QLatin1String("*.ttf")); + filters.append(QLatin1String("*.ccc")); + filters.append(QLatin1String("*.ltt")); + const QFileInfoList fontFiles = alternativeFilePaths(QLatin1String("resource\\Fonts"), filters); + + const TInt heapMinLength = 0x1000; + const TInt heapMaxLength = qMax(0x20000 * fontFiles.count(), heapMinLength); + m_heap = User::ChunkHeap(NULL, heapMinLength, heapMaxLength); + QT_TRAP_THROWING( + m_store = CFontStore::NewL(m_heap); + m_rasterizer = COpenFontRasterizer::NewL(TUid::Uid(0x101F7F5E)); + CleanupStack::PushL(m_rasterizer); + m_store->InstallRasterizerL(m_rasterizer); + CleanupStack::Pop(m_rasterizer);); + + foreach (const QFileInfo &fontFileInfo, fontFiles) + addFontFileToFontStore(fontFileInfo); + } } void qt_cleanup_symbianFontDatabaseExtras() @@ -177,26 +176,26 @@ void qt_cleanup_symbianFontDatabaseExtras() static_cast(privateDb()->symbianExtras); if (!dbExtras) return; // initializeDb() has never been called -#ifdef Q_SYMBIAN_HAS_FONTTABLE_API - qDeleteAll(dbExtras->m_extrasHash); -#else // Q_SYMBIAN_HAS_FONTTABLE_API - typedef QList::iterator iterator; - for (iterator p = dbExtras->m_extras.begin(); p != dbExtras->m_extras.end(); ++p) { - dbExtras->m_store->ReleaseFont((*p)->fontOwner()); - delete *p; + if (QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) { + qDeleteAll(dbExtras->m_extrasHash); + } else { + typedef QList::iterator iterator; + for (iterator p = dbExtras->m_extras.begin(); p != dbExtras->m_extras.end(); ++p) { + dbExtras->m_store->ReleaseFont((*p)->fontOwner()); + delete *p; + } + dbExtras->m_extras.clear(); } - dbExtras->m_extras.clear(); -#endif // Q_SYMBIAN_HAS_FONTTABLE_API dbExtras->m_extrasHash.clear(); } QSymbianFontDatabaseExtrasImplementation::~QSymbianFontDatabaseExtrasImplementation() { qt_cleanup_symbianFontDatabaseExtras(); -#ifndef Q_SYMBIAN_HAS_FONTTABLE_API - delete m_store; - m_heap->Close(); -#endif // !Q_SYMBIAN_HAS_FONTTABLE_API + if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) { + delete m_store; + m_heap->Close(); + } } #ifndef FNTSTORE_H_INLINES_SUPPORT_FMM @@ -228,44 +227,45 @@ const QSymbianTypeFaceExtras *QSymbianFontDatabaseExtrasImplementation::extras(c searchSpec.iFontStyle.SetPosture(EPostureItalic); CFont* font = NULL; -#ifdef Q_SYMBIAN_HAS_FONTTABLE_API - const TInt err = S60->screenDevice()->GetNearestFontToDesignHeightInPixels(font, searchSpec); - Q_ASSERT(err == KErrNone && font); - QScopedPointer sFont(font); - QSymbianTypeFaceExtras *extras = new QSymbianTypeFaceExtras(font); - sFont.take(); - m_extrasHash.insert(searchKey, extras); -#else // Q_SYMBIAN_HAS_FONTTABLE_API - const TInt err = m_store->GetNearestFontToDesignHeightInPixels(font, searchSpec); - Q_ASSERT(err == KErrNone && font); - const CBitmapFont *bitmapFont = static_cast(font); - COpenFont *openFont = -#ifdef FNTSTORE_H_INLINES_SUPPORT_FMM - bitmapFont->OpenFont(); -#else // FNTSTORE_H_INLINES_SUPPORT_FMM - OpenFontFromBitmapFont(bitmapFont); -#endif // FNTSTORE_H_INLINES_SUPPORT_FMM - const TOpenFontFaceAttrib* const attrib = openFont->FaceAttrib(); - const QString foundKey = - QString((const QChar*)attrib->FullName().Ptr(), attrib->FullName().Length()); - if (!m_extrasHash.contains(foundKey)) { - QScopedPointer sFont(font); - QSymbianTypeFaceExtras *extras = new QSymbianTypeFaceExtras(font, openFont); + if (QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) { + const TInt err = S60->screenDevice()->GetNearestFontToDesignHeightInPixels(font, searchSpec); + Q_ASSERT(err == KErrNone && font); + QScopedPointer sFont(font); + QSymbianTypeFaceExtras *extras = new QSymbianTypeFaceExtras(font); sFont.take(); - m_extras.append(extras); m_extrasHash.insert(searchKey, extras); - m_extrasHash.insert(foundKey, extras); } else { - m_store->ReleaseFont(font); - m_extrasHash.insert(searchKey, m_extrasHash.value(foundKey)); + const TInt err = m_store->GetNearestFontToDesignHeightInPixels(font, searchSpec); + Q_ASSERT(err == KErrNone && font); + const CBitmapFont *bitmapFont = static_cast(font); + COpenFont *openFont = +#ifdef FNTSTORE_H_INLINES_SUPPORT_FMM + bitmapFont->OpenFont(); +#else // FNTSTORE_H_INLINES_SUPPORT_FMM + OpenFontFromBitmapFont(bitmapFont); +#endif // FNTSTORE_H_INLINES_SUPPORT_FMM + const TOpenFontFaceAttrib* const attrib = openFont->FaceAttrib(); + const QString foundKey = + QString((const QChar*)attrib->FullName().Ptr(), attrib->FullName().Length()); + if (!m_extrasHash.contains(foundKey)) { + QScopedPointer sFont(font); + QSymbianTypeFaceExtras *extras = new QSymbianTypeFaceExtras(font, openFont); + sFont.take(); + m_extras.append(extras); + m_extrasHash.insert(searchKey, extras); + m_extrasHash.insert(foundKey, extras); + } else { + m_store->ReleaseFont(font); + m_extrasHash.insert(searchKey, m_extrasHash.value(foundKey)); + } } -#endif // Q_SYMBIAN_HAS_FONTTABLE_API } return m_extrasHash.value(searchKey); } void QSymbianFontDatabaseExtrasImplementation::addFontFileToFontStore(const QFileInfo &fontFileInfo) { + Q_ASSERT(!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()); const QString fontFile = QDir::toNativeSeparators(fontFileInfo.absoluteFilePath()); TPtrC fontFilePtr(qt_QString2TPtrC(fontFile)); QT_TRAP_THROWING(m_store->AddFileL(fontFilePtr)); diff --git a/src/gui/text/qfontengine_s60.cpp b/src/gui/text/qfontengine_s60.cpp index bf30e1c..f8e5b4a 100644 --- a/src/gui/text/qfontengine_s60.cpp +++ b/src/gui/text/qfontengine_s60.cpp @@ -46,114 +46,115 @@ #include #include "qimage.h" #include +#include #include #include #include #include -#if defined(Q_SYMBIAN_HAS_FONTTABLE_API) || defined(Q_SYMBIAN_HAS_GLYPHOUTLINE_API) +#if defined(Q_SYMBIAN_HAS_GLYPHOUTLINE_API) #include -#endif // Q_SYMBIAN_HAS_FONTTABLE_API || Q_SYMBIAN_HAS_GLYPHOUTLINE_API +#endif // Q_SYMBIAN_HAS_GLYPHOUTLINE_API + +// Replication of TGetFontTableParam & friends. +// There is unfortunately no compile time flag like SYMBIAN_FONT_TABLE_API +// that would help us to only replicate these things for Symbian versions +// that do not yet have the font table Api. Symbian's public SDK does +// generally not define any usable macros. +class QSymbianTGetFontTableParam +{ +public: + TUint32 iTag; + TAny *iContent; + TInt iLength; +}; +const TUid QSymbianKFontGetFontTable = {0x102872C1}; +const TUid QSymbianKFontReleaseFontTable = {0x2002AC24}; QT_BEGIN_NAMESPACE -#ifdef Q_SYMBIAN_HAS_FONTTABLE_API QSymbianTypeFaceExtras::QSymbianTypeFaceExtras(CFont* cFont, COpenFont *openFont) : m_cFont(cFont) , m_symbolCMap(false) + , m_openFont(openFont) { - Q_UNUSED(openFont) + if (!symbianFontTableApiAvailable()) { + TAny *trueTypeExtension = NULL; + m_openFont->ExtendedInterface(KUidOpenFontTrueTypeExtension, trueTypeExtension); + m_trueTypeExtension = static_cast(trueTypeExtension); + Q_ASSERT(m_trueTypeExtension); + } } QSymbianTypeFaceExtras::~QSymbianTypeFaceExtras() { - S60->screenDevice()->ReleaseFont(m_cFont); + if (symbianFontTableApiAvailable()) + S60->screenDevice()->ReleaseFont(m_cFont); } QByteArray QSymbianTypeFaceExtras::getSfntTable(uint tag) const { - RFontTable fontTable; - if (fontTable.Open(*m_cFont, tag) != KErrNone) + if (symbianFontTableApiAvailable()) { + QSymbianTGetFontTableParam fontTableParams = { tag, 0, 0 }; + if (m_cFont->ExtendedFunction(QSymbianKFontGetFontTable, &fontTableParams) == KErrNone) { + const char* const fontTableContent = + static_cast(fontTableParams.iContent); + const QByteArray fontTable(fontTableContent, fontTableParams.iLength); + m_cFont->ExtendedFunction(QSymbianKFontReleaseFontTable, &fontTableParams); + return fontTable; + } return QByteArray(); - const QByteArray byteArray(reinterpret_cast - (fontTable.TableContent()),fontTable.TableLength()); - fontTable.Close(); - return byteArray; + } else { + Q_ASSERT(m_trueTypeExtension->HasTrueTypeTable(tag)); + TInt error = KErrNone; + TInt tableByteLength = 0; + TAny *table = q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength)); + const QByteArray result(static_cast(table), tableByteLength); + m_trueTypeExtension->ReleaseTrueTypeTable(table); + return result; + } } bool QSymbianTypeFaceExtras::getSfntTableData(uint tag, uchar *buffer, uint *length) const { - RFontTable fontTable; - if (fontTable.Open(*m_cFont, tag) != KErrNone) - return false; - bool result = true; - const TInt tableByteLength = fontTable.TableLength(); - - if (*length > 0 && *length < tableByteLength) { - result = false; // Caller did not allocate enough memory + if (symbianFontTableApiAvailable()) { + QSymbianTGetFontTableParam fontTableParams = { tag, 0, 0 }; + if (m_cFont->ExtendedFunction(QSymbianKFontGetFontTable, &fontTableParams) == KErrNone) { + if (*length > 0 && *length < fontTableParams.iLength) { + result = false; // Caller did not allocate enough memory + } else { + *length = fontTableParams.iLength; + if (buffer) + memcpy(buffer, fontTableParams.iContent, fontTableParams.iLength); + } + m_cFont->ExtendedFunction(QSymbianKFontReleaseFontTable, &fontTableParams); + } else { + result = false; + } } else { - *length = tableByteLength; - if (buffer) - memcpy(buffer, fontTable.TableContent(), tableByteLength); - } - - fontTable.Close(); - return result; -} - -#else // Q_SYMBIAN_HAS_FONTTABLE_API -QSymbianTypeFaceExtras::QSymbianTypeFaceExtras(CFont* cFont, COpenFont *openFont) - : m_cFont(cFont) - , m_symbolCMap(false) - , m_openFont(openFont) -{ - TAny *trueTypeExtension = NULL; - m_openFont->ExtendedInterface(KUidOpenFontTrueTypeExtension, trueTypeExtension); - m_trueTypeExtension = static_cast(trueTypeExtension); - Q_ASSERT(m_trueTypeExtension); -} - -QSymbianTypeFaceExtras::~QSymbianTypeFaceExtras() -{ -} - -QByteArray QSymbianTypeFaceExtras::getSfntTable(uint tag) const -{ - Q_ASSERT(m_trueTypeExtension->HasTrueTypeTable(tag)); - TInt error = KErrNone; - TInt tableByteLength = 0; - TAny *table = q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength)); - QByteArray result(static_cast(table), tableByteLength); - m_trueTypeExtension->ReleaseTrueTypeTable(table); - return result; -} + if (!m_trueTypeExtension->HasTrueTypeTable(tag)) + return false; -bool QSymbianTypeFaceExtras::getSfntTableData(uint tag, uchar *buffer, uint *length) const -{ - if (!m_trueTypeExtension->HasTrueTypeTable(tag)) - return false; + TInt error = KErrNone; + TInt tableByteLength; + TAny *table = + q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength)); - bool result = true; - TInt error = KErrNone; - TInt tableByteLength; - TAny *table = - q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength)); + if (error != KErrNone) { + return false; + } else if (*length > 0 && *length < tableByteLength) { + result = false; // Caller did not allocate enough memory + } else { + *length = tableByteLength; + if (buffer) + memcpy(buffer, table, tableByteLength); + } - if (error != KErrNone) { - return false; - } else if (*length > 0 && *length < tableByteLength) { - result = false; // Caller did not allocate enough memory - } else { - *length = tableByteLength; - if (buffer) - memcpy(buffer, table, tableByteLength); + m_trueTypeExtension->ReleaseTrueTypeTable(table); } - - m_trueTypeExtension->ReleaseTrueTypeTable(table); return result; } -#endif // Q_SYMBIAN_HAS_FONTTABLE_API const uchar *QSymbianTypeFaceExtras::cmap() const { @@ -195,6 +196,39 @@ QFixed QSymbianTypeFaceExtras::unitsPerEm() const return m_unitsPerEm; } +bool QSymbianTypeFaceExtras::symbianFontTableApiAvailable() +{ + enum FontTableApiAvailability { + Unknown, + Available, + Unavailable + }; + static FontTableApiAvailability availability = + QSysInfo::symbianVersion() < QSysInfo::SV_SF_3 ? + Unavailable : Unknown; + if (availability == Unknown) { + // Actually, we should ask CFeatureDiscovery::IsFeatureSupportedL() + // with FfFontTable here. But since at the time of writing, the + // FfFontTable flag check either gave false positives or false + // negatives. Here comes an implicit check via CFont::ExtendedFunction. + QSymbianTGetFontTableParam fontTableParams = { + MAKE_TAG('O', 'S', '/', '2'), 0, 0 }; + QSymbianFbsHeapLock lock(QSymbianFbsHeapLock::Unlock); + CFont *font; + const TInt getFontErr = S60->screenDevice()->GetNearestFontInTwips(font, TFontSpec()); + Q_ASSERT(getFontErr == KErrNone); + if (font->ExtendedFunction(QSymbianKFontGetFontTable, &fontTableParams) == KErrNone) { + font->ExtendedFunction(QSymbianKFontReleaseFontTable, &fontTableParams); + availability = Available; + } else { + availability = Unavailable; + } + S60->screenDevice()->ReleaseFont(font); + lock.relock(); + } + return availability == Available; +} + // duplicated from qfontengine_xyz.cpp static inline unsigned int getChar(const QChar *str, int &i, const int len) { diff --git a/src/gui/text/qfontengine_s60_p.h b/src/gui/text/qfontengine_s60_p.h index c65ce55..cdf2185 100644 --- a/src/gui/text/qfontengine_s60_p.h +++ b/src/gui/text/qfontengine_s60_p.h @@ -58,13 +58,11 @@ #include "qsize.h" #include -#ifdef SYMBIAN_GDI_GLYPHDATA -#define Q_SYMBIAN_HAS_FONTTABLE_API -#endif - -#ifdef Q_SYMBIAN_HAS_FONTTABLE_API +// The glyph outline code is intentionally disabled. It will be reactivated as +// soon as the glyph outline API is backported from Symbian(^4) to Symbian(^3). +#if 0 #define Q_SYMBIAN_HAS_GLYPHOUTLINE_API -#endif // Q_SYMBIAN_HAS_FONTTABLE_API +#endif class CFont; @@ -83,16 +81,18 @@ public: CFont *fontOwner() const; bool isSymbolCMap() const; QFixed unitsPerEm() const; + static bool symbianFontTableApiAvailable(); private: CFont* m_cFont; mutable bool m_symbolCMap; mutable QByteArray m_cmapTable; mutable QFixed m_unitsPerEm; -#ifndef Q_SYMBIAN_HAS_FONTTABLE_API + + // m_openFont and m_openFont are used if Symbian does not provide + // the Font Table API COpenFont *m_openFont; mutable MOpenFontTrueTypeExtension *m_trueTypeExtension; -#endif // Q_SYMBIAN_HAS_FONTTABLE_API }; class QFontEngineS60 : public QFontEngine -- cgit v0.12 From bb07641213dfc4c949707500c3d665fae5f4b9f0 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Tue, 7 Dec 2010 14:19:43 +1000 Subject: QDeclarativeProperty doc improvements --- src/declarative/qml/qdeclarativeproperty.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/declarative/qml/qdeclarativeproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp index df0917f..60edd64 100644 --- a/src/declarative/qml/qdeclarativeproperty.cpp +++ b/src/declarative/qml/qdeclarativeproperty.cpp @@ -77,15 +77,28 @@ a property on a specific object instance. To read a property's value, programme QDeclarativeProperty instance and call the read() method. Likewise to write a property value the write() method is used. +For example, for the following QML code: + +\qml +// MyItem.qml +import QtQuick 1.0 + +Text { text: "A bit of text" } +\endqml + +The \l Text object's properties could be accessed using QDeclarativeProperty, like this: + \code +#include +#include -QObject *object = declarativeComponent.create(); +... -QDeclarativeProperty property(object, "font.pixelSize"); +QDeclarativeView view(QUrl::fromLocalFile("MyItem.qml")); +QDeclarativeProperty property(view.rootObject(), "font.pixelSize"); qWarning() << "Current pixel size:" << property.read().toInt(); property.write(24); qWarning() << "Pixel size should now be 24:" << property.read().toInt(); - \endcode */ -- cgit v0.12 From b8da3a08945091d077d3096efae23d613b24210b Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 9 Dec 2010 14:23:42 +1000 Subject: Improvements to anchoring docs Make it clear that anchor margins only apply to anchors. Also document that anchor and absolute positioning cannot be mixed. --- doc/src/declarative/anchor-layout.qdoc | 66 ++++++++++++++++------ src/declarative/graphicsitems/qdeclarativeitem.cpp | 2 + 2 files changed, 51 insertions(+), 17 deletions(-) diff --git a/doc/src/declarative/anchor-layout.qdoc b/doc/src/declarative/anchor-layout.qdoc index b77ce36..f5d5697 100644 --- a/doc/src/declarative/anchor-layout.qdoc +++ b/doc/src/declarative/anchor-layout.qdoc @@ -30,6 +30,8 @@ \target anchor-layout \title Anchor-based Layout in QML +\section1 Overview + In addition to the more traditional \l Grid, \l Row, and \l Column, QML also provides a way to layout items using the concept of \e anchors. Each item can be thought of as having a set of 7 invisible "anchor lines": @@ -54,20 +56,6 @@ In this case, the left edge of \e rect2 is bound to the right edge of \e rect1, \image edge1.png -The anchoring system also allows you to specify margins and offsets. Margins specify the amount of empty space to leave to the outside of an item, while offsets allow you to manipulate positioning using the center anchor lines. Note that margins specified using the anchor layout system only have meaning for anchors; they won't have any effect when using other layouts or absolute positioning. - -\image margins_qml.png - -The following example specifies a left margin: - -\code -Rectangle { id: rect1; ... } -Rectangle { id: rect2; anchors.left: rect1.right; anchors.leftMargin: 5; ... } -\endcode - -In this case, a margin of 5 pixels is reserved to the left of \e rect2, producing the following: - -\image edge2.png You can specify multiple anchors. For example: @@ -78,7 +66,9 @@ Rectangle { id: rect2; anchors.left: rect1.right; anchors.top: rect1.bottom; ... \image edge3.png -By specifying multiple horizontal or vertical anchors you can control the size of an item. For example: +By specifying multiple horizontal or vertical anchors you can control the size of an item. Below, +\e rect2 is anchored to the right of \e rect1 and the left of \e rect3. If either of the blue +rectangles are moved, \e rect2 will stretch and shrink as necessary: \code Rectangle { id: rect1; x: 0; ... } @@ -88,9 +78,42 @@ Rectangle { id: rect3; x: 150; ... } \image edge4.png -\section1 Limitations -For performance reasons, you can only anchor an item to its siblings and direct parent. For example, the following anchor would be considered invalid and would produce a warning: +\section1 Anchor Margins and Offsets + +The anchoring system also allows \e margins and \e offsets to be specified for an item's anchors. +Margins specify the amount of empty space to leave to the outside of an item's anchor, while +offsets allow positioning to be manipulated using the center anchor lines. An item can +specify its anchor margins individually through \l {Item::anchors.leftMargin}{leftMargin}, +\l {Item::anchors.rightMargin}{rightMargin}, \l {Item::anchors.topMargin}{topMargin} and +\l {Item::anchors.bottomMargin}{bottomMargin}, or use \l {Item::}{anchors.margins} to +specify the same margin value for all four edges. Anchor offsets are specified using +\l {Item::anchors.horizontalCenterOffset}{horizontalCenterOffset}, +\l {Item::anchors.verticalCenterOffset}{verticalCenterOffset} and +\l {Item::anchors.baselineOffset}{baselineOffset}. + +\image margins_qml.png + +The following example specifies a left margin: + +\code +Rectangle { id: rect1; ... } +Rectangle { id: rect2; anchors.left: rect1.right; anchors.leftMargin: 5; ... } +\endcode + +In this case, a margin of 5 pixels is reserved to the left of \e rect2, producing the following: + +\image edge2.png + +\note Anchor margins only apply to anchors; they are \e not a generic means of applying margins to an \l Item. +If an anchor margin is specified for an edge but the item is not anchored to any item on that +edge, the margin is not applied. + + +\section1 Restrictions + +For performance reasons, you can only anchor an item to its siblings and direct parent. For example, +the following anchor is invalid and would produce a warning: \badcode Item { @@ -103,4 +126,13 @@ Item { } \endcode +Also, anchor-based layouts cannot be mixed with absolute positioning. If an item specifies its +\l {Item::}{x} position and also sets \l {Item::}{anchors.left}, +or anchors its left and right edges but additionally sets a \l {Item::}{width}, the +result is undefined, as it would not be clear whether the item should use anchoring or absolute +positioning. The same can be said for setting an item's \l {Item::}{y} and \l {Item::}{height} +with \l {Item::}{anchors.top} and \l {Item::}{anchors.bottom}, or setting \l {Item::}{anchors.fill} +as well as \l {Item::}{width} or \l {Item::}{height}. If you wish to change from using +anchor-based to absolute positioning, you can clear an anchor value by setting it to \c undefined. + */ diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 932e68f..75e4a0b 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -2112,6 +2112,8 @@ QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline() const Margins apply to top, bottom, left, right, and fill anchors. The \c anchors.margins property can be used to set all of the various margins at once, to the same value. + Note that margins are anchor-specific and are not applied if an item does not + use anchors. Offsets apply for horizontal center, vertical center, and baseline anchors. -- cgit v0.12 From a0fabfac2ddd0b4e52a1d06623a0864f836cba71 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Fri, 10 Dec 2010 14:22:45 +1000 Subject: Fix broken database creation caused by previous fix 16447b1193fedf5fdcf1f3d270fa73c5036a1ba0 removed unused directory but the fix meant that the base Databases directory was no longer automatically created. Task-number: QTBUG-15909 --- src/declarative/qml/qdeclarativesqldatabase.cpp | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/declarative/qml/qdeclarativesqldatabase.cpp b/src/declarative/qml/qdeclarativesqldatabase.cpp index 3f53111..bda02a5 100644 --- a/src/declarative/qml/qdeclarativesqldatabase.cpp +++ b/src/declarative/qml/qdeclarativesqldatabase.cpp @@ -172,16 +172,23 @@ static const char* sqlerror[] = { return errorValue; \ } - -static QString databaseFile(const QString& connectionName, QScriptEngine *engine) +static QString qmlsqldatabase_databasesPath(QScriptEngine *engine) { QDeclarativeScriptEngine *qmlengine = static_cast(engine); - QString basename = qmlengine->offlineStoragePath - + QDir::separator() + QLatin1String("Databases") + QDir::separator(); - basename += connectionName; - return basename; + return qmlengine->offlineStoragePath + + QDir::separator() + QLatin1String("Databases"); } +static void qmlsqldatabase_initDatabasesPath(QScriptEngine *engine) +{ + QDir().mkpath(qmlsqldatabase_databasesPath(engine)); +} + +static QString qmlsqldatabase_databaseFile(const QString& connectionName, QScriptEngine *engine) +{ + return qmlsqldatabase_databasesPath(engine) + QDir::separator() + + connectionName; +} static QScriptValue qmlsqldatabase_item(QScriptContext *context, QScriptEngine *engine) @@ -302,7 +309,7 @@ static QScriptValue qmlsqldatabase_change_version(QScriptContext *context, QScri if (ok) { context->thisObject().setProperty(QLatin1String("version"), to_version, QScriptValue::ReadOnly); - QSettings ini(databaseFile(db.connectionName(),engine)+QLatin1String(".ini"),QSettings::IniFormat); + QSettings ini(qmlsqldatabase_databaseFile(db.connectionName(),engine) + QLatin1String(".ini"), QSettings::IniFormat); ini.setValue(QLatin1String("Version"), to_version); } @@ -348,6 +355,8 @@ static QScriptValue qmlsqldatabase_read_transaction(QScriptContext *context, QSc */ static QScriptValue qmlsqldatabase_open_sync(QScriptContext *context, QScriptEngine *engine) { + qmlsqldatabase_initDatabasesPath(engine); + QSqlDatabase database; QString dbname = context->argument(0).toString(); @@ -360,7 +369,7 @@ static QScriptValue qmlsqldatabase_open_sync(QScriptContext *context, QScriptEng md5.addData(dbname.toUtf8()); QString dbid(QLatin1String(md5.result().toHex())); - QString basename = databaseFile(dbid,engine); + QString basename = qmlsqldatabase_databaseFile(dbid, engine); bool created = false; QString version = dbversion; -- cgit v0.12 From 1de4983c86a73913bd2d719ad765726530009979 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 10 Dec 2010 15:34:52 +1000 Subject: PathView: removing the currentIndex could make it invalid. Removing the currentIndex could result in currentIndex being > than the number of items in the model. Task-number: QTBUG-15926 Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativepathview.cpp | 2 +- .../declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index 7c79afe..87ea214 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -1478,7 +1478,7 @@ void QDeclarativePathView::itemsRemoved(int modelIndex, int count) currentChanged = true; } else if (d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count) { // current item has been removed. - d->currentIndex = qMin(modelIndex, d->modelCount-1); + d->currentIndex = qMin(modelIndex, d->modelCount-count-1); if (d->currentItem) { if (QDeclarativePathViewAttached *att = d->attached(d->currentItem)) att->setIsCurrentItem(true); diff --git a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp index a2a5363..9193707 100644 --- a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp +++ b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp @@ -429,6 +429,10 @@ void tst_QDeclarativePathView::dataModel() pathview->setOffset(0); QCOMPARE(findItems(pathview, "wrapper").count(), 5); + pathview->setCurrentIndex(model.count()-1); + model.removeItem(model.count()-1); + QCOMPARE(pathview->currentIndex(), model.count()-1); + delete canvas; } -- cgit v0.12 From cedb5e0a5bb381ecfe5acc463d96a0c15abe474d Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Fri, 10 Dec 2010 08:23:16 +0100 Subject: Missing glyphs in GL when scaling QStaticText and QML text items Since scaled text is backed by an A8 glyph cache, it needs to repopulate even if it has previously populated the cache for the unscaled text. This means that we need to record in the userData that the type of the cache is not the same as the last time. Otherwise the A8 version of the cache will only be updated when it's created and when the text actually changes, leading to glyphs missing on screen when zooming text using a scale. Task-number: QTBUG-16012 Reviewed-by: Gunnar --- src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 7045fe9..4a64f39 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1464,6 +1464,7 @@ namespace { QSize cacheSize; QGL2PEXVertexArray vertexCoordinateArray; QGL2PEXVertexArray textureCoordinateArray; + QFontEngineGlyphCache::Type glyphType; }; } @@ -1489,12 +1490,17 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp cache->setContext(ctx); } - if (staticTextItem->userDataNeedsUpdate) + if (staticTextItem->userDataNeedsUpdate) { recreateVertexArrays = true; - else if (staticTextItem->userData() == 0) + } else if (staticTextItem->userData() == 0) { recreateVertexArrays = true; - else if (staticTextItem->userData()->type != QStaticTextUserData::OpenGLUserData) + } else if (staticTextItem->userData()->type != QStaticTextUserData::OpenGLUserData) { recreateVertexArrays = true; + } else { + QOpenGLStaticTextUserData *userData = static_cast(staticTextItem->userData()); + if (userData->glyphType != glyphType) + recreateVertexArrays = true; + } // We only need to update the cache with new glyphs if we are actually going to recreate the vertex arrays. // If the cache size has changed, we do need to regenerate the vertices, but we don't need to repopulate the @@ -1506,8 +1512,8 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp // No space in cache. We need to clear the cache and try again cache->clear(); cache->populate(staticTextItem->fontEngine(), staticTextItem->numGlyphs, - staticTextItem->glyphs, staticTextItem->glyphPositions); - } + staticTextItem->glyphs, staticTextItem->glyphPositions); + } } if (cache->width() == 0 || cache->height() == 0) @@ -1537,6 +1543,8 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp userData = static_cast(staticTextItem->userData()); } + userData->glyphType = glyphType; + // Use cache if backend optimizations is turned on vertexCoordinates = &userData->vertexCoordinateArray; textureCoordinates = &userData->textureCoordinateArray; -- cgit v0.12 From cde178fdc12262ecbbd99edb73477c6d6143e30e Mon Sep 17 00:00:00 2001 From: axis Date: Fri, 26 Nov 2010 10:44:00 +0100 Subject: Corrected case on Symbian library. RevBy: Trust me --- src/gui/dialogs/dialogs.pri | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/dialogs/dialogs.pri b/src/gui/dialogs/dialogs.pri index c25b6d5..12e3a71 100644 --- a/src/gui/dialogs/dialogs.pri +++ b/src/gui/dialogs/dialogs.pri @@ -109,7 +109,7 @@ SOURCES += \ dialogs/qprintpreviewdialog.cpp symbian:contains(QT_CONFIG, s60) { - LIBS += -lcommondialogs + LIBS += -lCommonDialogs SOURCES += dialogs/qfiledialog_symbian.cpp \ dialogs/qcolordialog_symbian.cpp } -- cgit v0.12 From d2a52072c7f0220d7abf0f73102cc5db616527b2 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 10 Dec 2010 09:51:49 +0100 Subject: Remove superfluous OpenGL linking for QtDeclarative --- src/declarative/declarative.pro | 1 - 1 file changed, 1 deletion(-) diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro index 93ad861..1ad888b 100644 --- a/src/declarative/declarative.pro +++ b/src/declarative/declarative.pro @@ -2,7 +2,6 @@ TARGET = QtDeclarative QPRO_PWD = $$PWD QT = core gui script network contains(QT_CONFIG, svg): QT += svg -contains(QT_CONFIG, opengl): QT += opengl DEFINES += QT_BUILD_DECLARATIVE_LIB QT_NO_URL_CAST_FROM_STRING win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000 solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2 -- cgit v0.12 From 0e04bd14bb422d7098f859a3b904fcf4d05aa458 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 10 Dec 2010 09:56:18 +0100 Subject: Don't include directly: non-standard header. It's completely wrong to assume that any Linux has features.h. Instead, include something that comes from the libc (like stdlib.h, which is specified by ISO C 89) and hope that __GLIBC__ gets defined. Specifically don't do this to stddef.h as that one comes from the compiler. Reviewed-by: Andreas Kling --- src/corelib/global/qendian.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/corelib/global/qendian.h b/src/corelib/global/qendian.h index d53504a..08415bf 100644 --- a/src/corelib/global/qendian.h +++ b/src/corelib/global/qendian.h @@ -44,9 +44,8 @@ #include -#ifdef Q_OS_LINUX -# include -#endif +// include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems +#include #ifdef __GLIBC__ #include -- cgit v0.12 From 9d8dac4e4509795b6af8a5885f6e9f1a3ccbaa06 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Fri, 10 Dec 2010 11:12:23 +0200 Subject: QDateTimeEdit is not showing correctly when resizes in symbian The problem boils down to using large square area for QDateTime widget (which is more or less a date-aware combobox). Style tries to make the combobox button as wide as it is tall, and as button is as tall as the combobox frame, it steals the whole square widget for itself. To fix this, we now limit the combobox button height to be no more than fourth of the total width of the widget. Thus, in normal, non-resized case, button is, as tall as the frame, but as widget is made larger, button stops to grow after reaching quarter of width of the widget. Task-number: QT-4312 Reviewed-by: Janne Koskinen --- src/gui/styles/qs60style.cpp | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 2f09529..3c715b7 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -104,11 +104,11 @@ const int QS60StylePrivate::m_numberOfLayouts = const short QS60StylePrivate::data[][MAX_PIXELMETRICS] = { // *** generated pixel metrics *** -{5,0,-909,0,0,2,0,0,-1,7,12,22,15,15,7,198,-909,-909,-909,20,13,2,0,0,21,7,18,30,3,3,1,-909,-909,0,1,0,0,12,20,15,15,18,18,1,115,18,0,-909,-909,-909,-909,0,0,16,2,-909,0,0,-909,16,-909,-909,-909,-909,32,18,55,24,55,4,4,4,9,13,-909,5,51,11,5,0,3,3,6,8,3,3,-909,2,-909,-909,-909,-909,5,5,3,1,106}, -{5,0,-909,0,0,1,0,0,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,8,27,28,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,3,3,5,10,15,-909,5,58,13,5,0,4,4,7,9,4,4,-909,2,-909,-909,-909,-909,6,6,3,1,106}, -{7,0,-909,0,0,2,0,0,-1,25,69,46,37,37,9,258,-909,-909,-909,23,19,26,0,0,32,25,72,44,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,13,3,6,8,19,-909,7,74,19,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1,135}, -{7,0,-909,0,0,2,0,0,-1,25,68,46,37,37,9,258,-909,-909,-909,31,19,6,0,0,32,25,60,52,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,96,35,96,12,3,6,8,19,-909,7,74,22,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1,135}, -{7,0,-909,0,0,2,0,0,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,7,32,30,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,6,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,5,6,8,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1,106} +{5,0,-909,0,0,2,0,2,-1,7,12,22,15,15,7,198,-909,-909,-909,20,13,2,0,0,21,7,18,30,3,3,1,-909,-909,0,1,0,0,12,20,15,15,18,18,1,115,18,0,-909,-909,-909,-909,0,0,16,2,-909,0,0,-909,16,-909,-909,-909,-909,32,18,55,24,55,4,4,4,9,13,-909,5,51,11,5,0,3,3,6,8,3,3,-909,2,-909,-909,-909,-909,5,5,3,1,106}, +{5,0,-909,0,0,1,0,2,-1,8,14,22,15,15,7,164,-909,-909,-909,19,15,2,0,0,21,8,27,28,4,4,1,-909,-909,0,7,6,0,13,23,17,17,21,21,7,115,21,0,-909,-909,-909,-909,0,0,15,1,-909,0,0,-909,15,-909,-909,-909,-909,32,21,65,27,65,3,3,5,10,15,-909,5,58,13,5,0,4,4,7,9,4,4,-909,2,-909,-909,-909,-909,6,6,3,1,106}, +{7,0,-909,0,0,2,0,5,-1,25,69,46,37,37,9,258,-909,-909,-909,23,19,26,0,0,32,25,72,44,5,5,2,-909,-909,0,7,21,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,25,2,-909,0,0,-909,25,-909,-909,-909,-909,87,27,77,35,77,13,3,6,8,19,-909,7,74,19,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1,135}, +{7,0,-909,0,0,2,0,5,-1,25,68,46,37,37,9,258,-909,-909,-909,31,19,6,0,0,32,25,60,52,5,5,2,-909,-909,0,7,32,0,17,29,22,22,27,27,7,173,29,0,-909,-909,-909,-909,0,0,26,2,-909,0,0,-909,26,-909,-909,-909,-909,87,27,96,35,96,12,3,6,8,19,-909,7,74,22,7,0,5,5,8,12,5,5,-909,3,-909,-909,-909,-909,7,7,3,1,135}, +{7,0,-909,0,0,2,0,2,-1,10,20,27,18,18,9,301,-909,-909,-909,29,18,5,0,0,35,7,32,30,5,5,2,-909,-909,0,2,8,0,16,28,21,21,26,26,2,170,26,0,-909,-909,-909,-909,0,0,21,6,-909,0,0,-909,-909,-909,-909,-909,-909,54,26,265,34,265,5,5,6,3,18,-909,7,72,19,7,0,5,6,8,11,6,5,-909,2,-909,-909,-909,-909,5,5,3,1,106} // *** End of generated data *** }; @@ -1071,11 +1071,11 @@ void QS60Style::drawComplexControl(ComplexControl control, const QStyleOptionCom // Button frame QStyleOptionFrame buttonOption; buttonOption.QStyleOption::operator=(*cmb); - const int maxHeight = cmbxFrame.height(); - const int maxWidth = cmbxFrame.width() - cmbxEditField.width(); + const int maxButtonSide = cmbxFrame.width() - cmbxEditField.width(); + const int newTop = cmbxEditField.center().y() - maxButtonSide / 2; const int topLeftPoint = direction ? - (cmbxEditField.right() + 1) : (cmbxEditField.left() + 1 - maxWidth); - const QRect buttonRect(topLeftPoint, cmbxEditField.top(), maxWidth, maxHeight); + (cmbxEditField.right() + 1) : (cmbxEditField.left() + 1 - maxButtonSide); + const QRect buttonRect(topLeftPoint, newTop, maxButtonSide, maxButtonSide); buttonOption.rect = buttonRect; buttonOption.state = cmb->state; drawPrimitive(PE_PanelButtonCommand, &buttonOption, painter, widget); @@ -2884,30 +2884,24 @@ QRect QS60Style::subControlRect(ComplexControl control, const QStyleOptionComple ret = cmb->rect; const int width = cmb->rect.width(); const int height = cmb->rect.height(); - const int buttonIconSize = QS60StylePrivate::pixelMetric(PM_ButtonIconSize); const int buttonMargin = cmb->frame ? 2 : 0; // lets use spinbox frame here as well, as no combobox specific value available. const int frameThickness = cmb->frame ? pixelMetric(PM_SpinBoxFrameWidth, cmb, widget) : 0; - const int buttonWidth = qMax(cmb->rect.height(), buttonIconSize); - + const int buttonMinSize = QS60StylePrivate::pixelMetric(PM_ButtonIconSize) + 2 * buttonMargin; QSize buttonSize; - buttonSize.setWidth(buttonWidth + 2 * buttonMargin); - buttonSize.setHeight(qMax(8, (cmb->rect.height() >> 1) - frameThickness)); //buttons should be squares + //allow button to grow to one fourth of the frame height, if the frame is really tall + buttonSize.setHeight(qMin(height, qMax(width / 4, buttonMinSize))); + buttonSize.setWidth(buttonSize.height()); buttonSize = buttonSize.expandedTo(QApplication::globalStrut()); switch (scontrol) { case SC_ComboBoxArrow: { - const int xposMod = cmb->rect.x() + width - buttonMargin - buttonWidth; + const int xposMod = cmb->rect.x() + width - buttonMargin - buttonSize.width(); const int ypos = cmb->rect.y(); - ret.setRect(xposMod, ypos + buttonMargin, buttonWidth, height - 2 * buttonMargin); + ret.setRect(xposMod, ypos + buttonMargin, buttonSize.width(), height - 2 * buttonMargin); } break; case SC_ComboBoxEditField: { - const int withFrameX = cmb->rect.x() + width - frameThickness - buttonSize.width(); - ret = QRect( - frameThickness, - frameThickness, - withFrameX - frameThickness, - height - 2 * frameThickness); + ret = QRect(0, 0, cmb->rect.x() + width - buttonSize.width(), height); } break; case SC_ComboBoxListBoxPopup: { -- cgit v0.12 From f2ab8acd583941dcd673c627ff03d25e519e1f6b Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Fri, 10 Dec 2010 11:34:45 +0200 Subject: Fix whitespace in qs60style.cpp Reviewed-by: TrustMe --- src/gui/styles/qs60style.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 3c715b7..56d2d19 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -2889,7 +2889,7 @@ QRect QS60Style::subControlRect(ComplexControl control, const QStyleOptionComple const int frameThickness = cmb->frame ? pixelMetric(PM_SpinBoxFrameWidth, cmb, widget) : 0; const int buttonMinSize = QS60StylePrivate::pixelMetric(PM_ButtonIconSize) + 2 * buttonMargin; QSize buttonSize; - //allow button to grow to one fourth of the frame height, if the frame is really tall + //allow button to grow to one fourth of the frame height, if the frame is really tall buttonSize.setHeight(qMin(height, qMax(width / 4, buttonMinSize))); buttonSize.setWidth(buttonSize.height()); buttonSize = buttonSize.expandedTo(QApplication::globalStrut()); -- cgit v0.12 From 38856b7ca5ec18b0292dd3dd11d8ea42fea361e6 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Fri, 10 Dec 2010 10:43:57 +0100 Subject: QmlViewer: Fix crash on exit We can't use atexit() handler to show a warning, since whether the QApplication object then still exists or not is undefined. Instead, call the method directly where it makes sense (warnings about command line arguments etc). Task-number: QTBUG-15740 Reviewed-by: Thomas Hartmann --- tools/qml/main.cpp | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp index 209c72f..104f7b7 100644 --- a/tools/qml/main.cpp +++ b/tools/qml/main.cpp @@ -86,14 +86,16 @@ void myMessageOutput(QtMsgType type, const char *msg) QWeakPointer logger; QString warnings; -void showWarnings() +void exitApp(int i) { +#ifdef Q_OS_WIN + // Debugging output is not visible by default on Windows - + // therefore show modal dialog with errors instead. if (!warnings.isEmpty()) { - int argc = 0; char **argv = 0; - QApplication application(argc, argv); // QApplication() in main has been destroyed already. - Q_UNUSED(application) QMessageBox::warning(0, QApplication::tr("Qt QML Viewer"), warnings); } +#endif + exit(i); } static QAtomicInt recursiveLock(0); @@ -102,14 +104,16 @@ void myMessageOutput(QtMsgType type, const char *msg) { QString strMsg = QString::fromLatin1(msg); - if (!logger.isNull() && !QCoreApplication::closingDown()) { - if (recursiveLock.testAndSetOrdered(0, 1)) { - QMetaObject::invokeMethod(logger.data(), "append", Q_ARG(QString, strMsg)); - recursiveLock = 0; + if (!QCoreApplication::closingDown()) { + if (!logger.isNull()) { + if (recursiveLock.testAndSetOrdered(0, 1)) { + QMetaObject::invokeMethod(logger.data(), "append", Q_ARG(QString, strMsg)); + recursiveLock = 0; + } + } else { + warnings += strMsg; + warnings += QLatin1Char('\n'); } - } else { - warnings += strMsg; - warnings += QLatin1Char('\n'); } if (systemMsgOutput) { // Windows systemMsgOutput(type, msg); @@ -165,7 +169,8 @@ void usage() qWarning(" "); qWarning(" Press F1 for interactive help"); - exit(1); + + exitApp(1); } void scriptOptsUsage() @@ -184,7 +189,8 @@ void scriptOptsUsage() qWarning(" saveonexit ............................... save recording on viewer exit"); qWarning(" "); qWarning(" One of record, play or both must be specified."); - exit(1); + + exitApp(1); } enum WarningsConfig { ShowWarnings, HideWarnings, DefaultWarnings }; @@ -370,7 +376,7 @@ static void parseCommandLineOptions(const QStringList &arguments) qApp->setStartDragDistance(arguments.at(++i).toInt()); } else if (arg == QLatin1String("-v") || arg == QLatin1String("-version")) { qWarning("Qt QML Viewer version %s", QT_VERSION_STR); - exit(0); + exitApp(0); } else if (arg == "-translation") { if (lastArg) usage(); opts.translationFile = arguments.at(++i); @@ -400,7 +406,7 @@ static void parseCommandLineOptions(const QStringList &arguments) QDeclarativeEngine tmpEngine; QString paths = tmpEngine.importPathList().join(QLatin1String(":")); qWarning("Current search path: %s", paths.toLocal8Bit().constData()); - exit(0); + exitApp(0); } opts.imports << arguments.at(++i); } else if (arg == "-P") { @@ -529,12 +535,6 @@ int main(int argc, char ** argv) systemMsgOutput = qInstallMsgHandler(myMessageOutput); #endif -#if defined (Q_OS_WIN) - // Debugging output is not visible by default on Windows - - // therefore show modal dialog with errors instead. - atexit(showWarnings); -#endif - #if defined (Q_WS_X11) || defined (Q_WS_MAC) //### default to using raster graphics backend for now bool gsSpecified = false; -- cgit v0.12 From 240c33480ea300a78416205602af293d5c223ee2 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Fri, 10 Dec 2010 11:17:33 +0100 Subject: QmlViewer: Remove trailing whitespace --- tools/qml/browser/Browser.qml | 2 +- tools/qml/deviceorientation.h | 4 ++-- tools/qml/qdeclarativetester.cpp | 16 ++++++++-------- tools/qml/qdeclarativetester.h | 4 ++-- tools/qml/qmlruntime.cpp | 4 ++-- tools/qml/startup/startup.qml | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/tools/qml/browser/Browser.qml b/tools/qml/browser/Browser.qml index b9573da..968d077 100644 --- a/tools/qml/browser/Browser.qml +++ b/tools/qml/browser/Browser.qml @@ -173,7 +173,7 @@ Rectangle { width: parent.width model: folders1 delegate: folderDelegate - highlight: Rectangle { + highlight: Rectangle { color: palette.highlight visible: root.showFocusHighlight && view1.count != 0 gradient: Gradient { diff --git a/tools/qml/deviceorientation.h b/tools/qml/deviceorientation.h index 487ebd4..88ceb1b 100644 --- a/tools/qml/deviceorientation.h +++ b/tools/qml/deviceorientation.h @@ -52,8 +52,8 @@ class DeviceOrientation : public QObject Q_OBJECT Q_ENUMS(Orientation) public: - enum Orientation { - UnknownOrientation, + enum Orientation { + UnknownOrientation, Portrait, Landscape, PortraitInverted, diff --git a/tools/qml/qdeclarativetester.cpp b/tools/qml/qdeclarativetester.cpp index e3a1f59..1bcdb04 100644 --- a/tools/qml/qdeclarativetester.cpp +++ b/tools/qml/qdeclarativetester.cpp @@ -54,9 +54,9 @@ QT_BEGIN_NAMESPACE extern Q_GUI_EXPORT bool qt_applefontsmoothing_enabled; -QDeclarativeTester::QDeclarativeTester(const QString &script, QDeclarativeViewer::ScriptOptions opts, +QDeclarativeTester::QDeclarativeTester(const QString &script, QDeclarativeViewer::ScriptOptions opts, QDeclarativeView *parent) -: QAbstractAnimation(parent), m_script(script), m_view(parent), filterEvents(true), options(opts), +: QAbstractAnimation(parent), m_script(script), m_view(parent), filterEvents(true), options(opts), testscript(0), hasCompleted(false), hasFailed(false) { parent->viewport()->installEventFilter(this); @@ -75,8 +75,8 @@ QDeclarativeTester::QDeclarativeTester(const QString &script, QDeclarativeViewer QDeclarativeTester::~QDeclarativeTester() { - if (!hasFailed && - options & QDeclarativeViewer::Record && + if (!hasFailed && + options & QDeclarativeViewer::Record && options & QDeclarativeViewer::SaveOnExit) save(); } @@ -228,7 +228,7 @@ void QDeclarativeTester::save() } ts << " }\n"; - while (!mouseevents.isEmpty() && + while (!mouseevents.isEmpty() && mouseevents.first().msec == fe.msec) { MouseEvent me = mouseevents.takeFirst(); @@ -345,7 +345,7 @@ void QDeclarativeTester::updateCurrentTime(int msec) if (QDeclarativeVisualTestFrame *frame = qobject_cast(event)) { if (frame->msec() < msec) { if (options & QDeclarativeViewer::TestImages && !(options & QDeclarativeViewer::Record)) { - qWarning() << "QDeclarativeTester(" << m_script << "): Extra frame. Seen:" + qWarning() << "QDeclarativeTester(" << m_script << "): Extra frame. Seen:" << msec << "Expected:" << frame->msec(); imagefailure(); } @@ -371,7 +371,7 @@ void QDeclarativeTester::updateCurrentTime(int msec) } if (goodImage != img) { QString reject(frame->image().toLocalFile() + ".reject.png"); - qWarning() << "QDeclarativeTester(" << m_script << "): Image mismatch. Reject saved to:" + qWarning() << "QDeclarativeTester(" << m_script << "): Image mismatch. Reject saved to:" << reject; img.save(reject); bool doDiff = (goodImage.size() == img.size()); @@ -424,7 +424,7 @@ void QDeclarativeTester::updateCurrentTime(int msec) ke.destination = ViewPort; } m_savedKeyEvents.append(ke); - } + } testscriptidx++; } diff --git a/tools/qml/qdeclarativetester.h b/tools/qml/qdeclarativetester.h index 0cf508a..5a2a8c6 100644 --- a/tools/qml/qdeclarativetester.h +++ b/tools/qml/qdeclarativetester.h @@ -122,7 +122,7 @@ public: int type() const { return m_type; } void setType(int t) { m_type = t; } - + int button() const { return m_button; } void setButton(int b) { m_button = b; } @@ -237,7 +237,7 @@ private: struct MouseEvent { MouseEvent(QMouseEvent *e) - : type(e->type()), button(e->button()), buttons(e->buttons()), + : type(e->type()), button(e->button()), buttons(e->buttons()), pos(e->pos()), modifiers(e->modifiers()), destination(View) {} QEvent::Type type; diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp index a368bc1..3803691 100644 --- a/tools/qml/qmlruntime.cpp +++ b/tools/qml/qmlruntime.cpp @@ -820,7 +820,7 @@ void QDeclarativeViewer::createMenu() fileMenu->addAction(reloadAction); fileMenu->addSeparator(); fileMenu->addAction(closeAction); -#if !defined(Q_OS_SYMBIAN) +#if !defined(Q_OS_SYMBIAN) fileMenu->addAction(quitAction); QMenu *recordMenu = menu->addMenu(tr("&Recording")); @@ -836,7 +836,7 @@ void QDeclarativeViewer::createMenu() settingsMenu->addAction(proxyAction); #if defined(Q_OS_SYMBIAN) settingsMenu->addAction(fullscreenAction); -#else +#else settingsMenu->addAction(recordOptions); settingsMenu->addMenu(loggerWindow->preferencesMenu()); #endif // !Q_OS_SYMBIAN diff --git a/tools/qml/startup/startup.qml b/tools/qml/startup/startup.qml index 9ca50a3..d3bc932 100644 --- a/tools/qml/startup/startup.qml +++ b/tools/qml/startup/startup.qml @@ -92,8 +92,8 @@ Rectangle { to: 360 loops: NumberAnimation.Infinite running: true - duration: 2000 - } + duration: 2000 + } } } } @@ -168,6 +168,6 @@ Rectangle { } } } - ] + ] } // treatsApp -- cgit v0.12 From 376e636eccedb8d8bbb280c3e2655722a5902461 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Fri, 10 Dec 2010 11:21:04 +0100 Subject: QmlViewer: Remove trailing whitespace --- tools/qml/qdeclarativetester.h | 2 +- tools/qml/qml.pro | 4 ++-- tools/qml/qmlruntime.cpp | 2 +- tools/qml/startup/startup.qml | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/qml/qdeclarativetester.h b/tools/qml/qdeclarativetester.h index 5a2a8c6..6fdf495 100644 --- a/tools/qml/qdeclarativetester.h +++ b/tools/qml/qdeclarativetester.h @@ -122,7 +122,7 @@ public: int type() const { return m_type; } void setType(int t) { m_type = t; } - + int button() const { return m_button; } void setButton(int b) { m_button = b; } diff --git a/tools/qml/qml.pro b/tools/qml/qml.pro index 3927dd6..bdac6e3 100644 --- a/tools/qml/qml.pro +++ b/tools/qml/qml.pro @@ -4,7 +4,7 @@ DESTDIR = ../../bin include(qml.pri) -SOURCES += main.cpp +SOURCES += main.cpp INCLUDEPATH += ../../include/QtDeclarative INCLUDEPATH += ../../src/declarative/util @@ -26,7 +26,7 @@ wince* { QT += xmlpatterns } contains(QT_CONFIG, webkit) { - QT += webkit + QT += webkit } } maemo5 { diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp index 3803691..142e4c5 100644 --- a/tools/qml/qmlruntime.cpp +++ b/tools/qml/qmlruntime.cpp @@ -820,7 +820,7 @@ void QDeclarativeViewer::createMenu() fileMenu->addAction(reloadAction); fileMenu->addSeparator(); fileMenu->addAction(closeAction); -#if !defined(Q_OS_SYMBIAN) +#if !defined(Q_OS_SYMBIAN) fileMenu->addAction(quitAction); QMenu *recordMenu = menu->addMenu(tr("&Recording")); diff --git a/tools/qml/startup/startup.qml b/tools/qml/startup/startup.qml index d3bc932..35c44c2 100644 --- a/tools/qml/startup/startup.qml +++ b/tools/qml/startup/startup.qml @@ -92,8 +92,8 @@ Rectangle { to: 360 loops: NumberAnimation.Infinite running: true - duration: 2000 - } + duration: 2000 + } } } } @@ -168,6 +168,6 @@ Rectangle { } } } - ] + ] } // treatsApp -- cgit v0.12 From c2b13ddde2f4998b03ff9036cc5ab81fd4132e61 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 10 Dec 2010 13:04:37 +0200 Subject: Fix qwidget test crash CEikonEnv::Static()->AppUiFactory()->Cba() call always returns NULL unless cba was defined via resources, which we are no longer doing. Due to the buggy implementation of MEikAppUiFactory interface in Symbian, the only way to get non-resources created cba is to use the return value of CEikonEnv::Static()->AppUiFactory()->SwapButtonGroup() method, so changed the test cases to do a dummy swap. Since the swap just changes the value of a member variable and doesn't trigger anything, it should not cause any interference for the tests. Task-number: QTBUG-15915 Reviewed-by: Janne Koskinen Reviewed-by: Sami Merila --- tests/auto/qwidget/tst_qwidget.cpp | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index 5521873..6069383 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -10029,6 +10029,28 @@ void tst_QWidget::openModal_taskQTBUG_5804() } #ifdef Q_OS_SYMBIAN + +static CEikButtonGroupContainer* cba() +{ + CEikButtonGroupContainer *oldCba = NULL; + + // Due to convoluted/buggy implementation of MEikAppUiFactory interface in Symbian, + // the only way to get the correct cba is to use SwapButtonGroup function. + // Calling SwapButtonGroup doesn't trigger anything, it only changes the value of iToolbar + // member variable, so this double switching should not cause any interference for test. + QT_TRAP_THROWING( + CEikButtonGroupContainer *dummyCba = CEikButtonGroupContainer::NewL( + CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal, NULL, 0); + + oldCba = CEikonEnv::Static()->AppUiFactory()->SwapButtonGroup(dummyCba); + CEikonEnv::Static()->AppUiFactory()->SwapButtonGroup(oldCba); + + delete dummyCba; + ) + + return oldCba; +} + void tst_QWidget::cbaVisibility() { // Test case for task 261048 @@ -10061,7 +10083,7 @@ void tst_QWidget::cbaVisibility() // Verify window decorations i.e. status pane and CBA are visible. CEikStatusPane* statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane(); QVERIFY(statusPane->IsVisible()); - CEikButtonGroupContainer* buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba(); + CEikButtonGroupContainer* buttonGroup = cba(); QVERIFY(buttonGroup->IsVisible()); } @@ -10078,7 +10100,7 @@ void tst_QWidget::fullScreenWindowModeTransitions() const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget); const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget); CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane(); - CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba(); + CEikButtonGroupContainer *buttonGroup = cba(); //Enter widget.showNormal(); @@ -10132,7 +10154,7 @@ void tst_QWidget::maximizedWindowModeTransitions() const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget); const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget); CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane(); - CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba(); + CEikButtonGroupContainer *buttonGroup = cba(); //Enter widget.showNormal(); @@ -10188,7 +10210,7 @@ void tst_QWidget::minimizedWindowModeTransitions() const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget); const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget); CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane(); - CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba(); + CEikButtonGroupContainer *buttonGroup = cba(); //Enter widget.showNormal(); @@ -10244,7 +10266,7 @@ void tst_QWidget::normalWindowModeTransitions() const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget); const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget); CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane(); - CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba(); + CEikButtonGroupContainer *buttonGroup = cba(); //Enter widget.showMaximized(); -- cgit v0.12 From 7b631a55c44520ca114f7e20a87a66c69e57a39e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 6 Dec 2010 16:41:40 +0100 Subject: fix nonsense condition checking the stdout of a grep redirected to /dev/null is rather pointless. also, this code had a syntax error ... --- configure | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 86c14dd..99d460b 100755 --- a/configure +++ b/configure @@ -8597,7 +8597,8 @@ for file in .projects .projects.3; do *winmain/winmain.pro) [ "$XPLATFORM_MINGW" = "yes" ] || continue SPEC=$XQMAKESPEC ;; - *s60main/s60main.pro) if [ "$CFG_NOPROCESS" = "yes" ] || [ -z "`echo "$XPLATFORM" | grep "symbian" >/dev/null`"]; then + *s60main/s60main.pro) + if [ "$CFG_NOPROCESS" = "yes" ] || ! echo "$XPLATFORM" | grep "symbian" >/dev/null; then continue fi;; *examples/activeqt/*) continue ;; -- cgit v0.12 From 6cf07024bfbf795b8c7ddf807668a2255c7b2985 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 6 Dec 2010 16:46:58 +0100 Subject: fix -dont-process for mingw cross-build --- configure | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 99d460b..7141880 100755 --- a/configure +++ b/configure @@ -8595,7 +8595,9 @@ for file in .projects .projects.3; do case $a in *winmain/winmain.pro) - [ "$XPLATFORM_MINGW" = "yes" ] || continue + if [ "$CFG_NOPROCESS" = "yes" ] || [ "$XPLATFORM_MINGW" != "yes" ]; then + continue + fi SPEC=$XQMAKESPEC ;; *s60main/s60main.pro) if [ "$CFG_NOPROCESS" = "yes" ] || ! echo "$XPLATFORM" | grep "symbian" >/dev/null; then -- cgit v0.12 From 58334dcd3bf7c65ff910f4b00f356aa5944f2c82 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 10 Dec 2010 14:12:44 +0100 Subject: fix path separator matching use QDir::separator() instead of Option::dir_sep in localOS context. --- qmake/project.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qmake/project.cpp b/qmake/project.cpp index d967a63..bd81b17 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -2173,7 +2173,7 @@ QMakeProject::doProjectExpand(QString func, QList args_list, const QRegExp regex(r, Qt::CaseSensitive, QRegExp::Wildcard); for(int d = 0; d < dirs.count(); d++) { QString dir = dirs[d]; - if(!dir.isEmpty() && !dir.endsWith(Option::dir_sep)) + if(!dir.isEmpty() && !dir.endsWith(QDir::separator())) dir += "/"; QDir qdir(dir); @@ -2389,7 +2389,7 @@ QMakeProject::doProjectTest(QString func, QList args_list, QMap Date: Fri, 10 Dec 2010 14:57:03 +0100 Subject: Doc: Added a note about the Public Suffix List. Added at the request of Peter Hartmann and Legal. --- doc/src/legal/3rdparty.qdoc | 81 ++++++++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 30 deletions(-) diff --git a/doc/src/legal/3rdparty.qdoc b/doc/src/legal/3rdparty.qdoc index 8b3d5f2..9cc83a6 100644 --- a/doc/src/legal/3rdparty.qdoc +++ b/doc/src/legal/3rdparty.qdoc @@ -683,36 +683,57 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + \hr - jquery 1.4.2.js Copyright 2010 John Resig - This software is dual licensed under the MIT or GPL version 2 licenses. - Nokia has used the software herein under the MIT license. - - jquery includes Sizzle.js Copyright 2010 The Dojo Foundaton and is - licensed under the MIT, BSD and GPL licenses. Nokia has used this - software herein under the MIT license. - - The MIT License - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. - - + jquery 1.4.2.js Copyright 2010 John Resig + This software is dual licensed under the MIT or GPL version 2 licenses. + Nokia has used the software herein under the MIT license. + + jquery includes Sizzle.js Copyright 2010 The Dojo Foundaton and is + licensed under the MIT, BSD and GPL licenses. Nokia has used this + software herein under the MIT license. + + The MIT License + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + + + \section1 The Public Suffix List + + \e{The Public Suffix List is an initiative of the Mozilla Project, but is + maintained as a community resource. It is available for use in any + software, but was originally created to meet the needs of browser + manufacturers. It allows browsers to, for example:} + \list + \o \e{Avoid privacy-damaging "supercookies" being set for high-level + domain name suffixes} + \o \e{Highlight the most important part of a domain name in the user + interface} + \o \e{Accurately sort history entries by site} + \endlist + -- quoted from \l{publicsuffix.org}. + + The public suffix list is used inside Qt to avoid such "supercookies" + mentioned above being set in the cookie jar supported by Qt (by the + QNetworkCookieJar class). + + See \c src/network/access/qnetworkcookiejartlds_p.h.INFO for more + information about how the list is used. */ -- cgit v0.12 From b121ab1e4894ef8e0df5effff3a5e579675f1d40 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 10 Dec 2010 15:33:42 +0100 Subject: refuse to open empty translation files they cause a crash. fixing it properly would be in no reasonable relation to the gain (none whatsoever), so just forbid it. yes, this breaks the message freeze ... big deal in a translation application. ;) Task-number: QTBUG-14574 --- tools/linguist/linguist/messagemodel.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/linguist/linguist/messagemodel.cpp b/tools/linguist/linguist/messagemodel.cpp index 39ba9fd..c2edc75 100644 --- a/tools/linguist/linguist/messagemodel.cpp +++ b/tools/linguist/linguist/messagemodel.cpp @@ -209,6 +209,13 @@ bool DataModel::load(const QString &fileName, bool *langGuessed, QWidget *parent return false; } + if (!tor.messageCount()) { + QMessageBox::warning(parent, QObject::tr("Qt Linguist"), + tr("The translation file '%1' will not be loaded because it is empty.") + .arg(Qt::escape(fileName))); + return false; + } + Translator::Duplicates dupes = tor.resolveDuplicates(); if (!dupes.byId.isEmpty() || !dupes.byContents.isEmpty()) { QString err = tr("Duplicate messages found in '%1':").arg(Qt::escape(fileName)); -- cgit v0.12 From 13d3d484e4eadcec66e70c5a259a5a1ecc582300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Fri, 10 Dec 2010 18:38:00 +0100 Subject: Skip failing tests For Mac OS X 10.5 and earlier, QDir::canonicalPath depends on QDir::cleanPath which is fundamentally broken and specifically fails for the case of "/./", returning "" instead of "/". Fixing cleanPath to a sane and correct behaviour seems to break more code than it is worth so we're skipping these individual tests for the time being. --- tests/auto/qdir/tst_qdir.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp index dc46f52..44d1fb6 100644 --- a/tests/auto/qdir/tst_qdir.cpp +++ b/tests/auto/qdir/tst_qdir.cpp @@ -852,7 +852,15 @@ void tst_QDir::canonicalPath_data() QTest::newRow("nonexistant") << "testd" << QString(); QTest::newRow("rootPath") << QDir::rootPath() << QDir::rootPath(); - QTest::newRow("rootPath + ./") << QDir::rootPath().append("./") << QDir::rootPath(); + +#ifdef Q_OS_MAC + // On Mac OS X 10.5 and earlier, canonicalPath depends on cleanPath which + // is itself very broken and fundamentally wrong on "/./" which, this would + // exercise + if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_6) +#endif + QTest::newRow("rootPath + ./") << QDir::rootPath().append("./") << QDir::rootPath(); + QTest::newRow("rootPath + ../.. ") << QDir::rootPath().append("../..") << QDir::rootPath(); #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) QTest::newRow("drive:\\") << QDir::toNativeSeparators(QDir::rootPath()) << QDir::rootPath(); @@ -1753,8 +1761,16 @@ void tst_QDir::isRoot_data() QTest::newRow(QString("rootPath " + test).toLatin1()) << test << true; test = QDir::rootPath().append("./"); QTest::newRow(QString("./ appended " + test).toLatin1()) << test << false; + test = QDir(QDir::rootPath().append("./")).canonicalPath(); - QTest::newRow(QString("canonicalPath " + test).toLatin1()) << test << true; +#ifdef Q_OS_MAC + // On Mac OS X 10.5 and earlier, canonicalPath depends on cleanPath which + // is itself very broken and fundamentally wrong on "/./", which this would + // exercise + if (QSysInfo::MacintoshVersion >= QSysInfo::MV_10_6) +#endif + QTest::newRow(QString("canonicalPath " + test).toLatin1()) << test << true; + #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN) test = QDir::rootPath().left(2); QTest::newRow(QString("drive relative " + test).toLatin1()) << test << false; -- cgit v0.12 From 53c8baffd0bf9aa959f77a52dbce77b377d11e3b Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Fri, 10 Dec 2010 21:43:06 +0100 Subject: Doc: Fixing typo --- tests/auto/guiapplauncher/tst_guiapplauncher.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/guiapplauncher/tst_guiapplauncher.cpp b/tests/auto/guiapplauncher/tst_guiapplauncher.cpp index 4b3ce18..c223992 100644 --- a/tests/auto/guiapplauncher/tst_guiapplauncher.cpp +++ b/tests/auto/guiapplauncher/tst_guiapplauncher.cpp @@ -270,7 +270,7 @@ private: const QSharedPointer m_wm; }; -// Test mask from enviroment as test lib does not allow options. +// Test mask from environment as test lib does not allow options. static inline unsigned testMask() { unsigned testMask = tst_GuiAppLauncher::TestAll; -- cgit v0.12 From 14f4ebce80ec7d39287b445192b25111a49fff6b Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Fri, 10 Dec 2010 22:56:52 +0100 Subject: Doc: Fixing typo --- tests/auto/macnativeevents/tst_macnativeevents.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/macnativeevents/tst_macnativeevents.cpp b/tests/auto/macnativeevents/tst_macnativeevents.cpp index 742267f..dce768e 100644 --- a/tests/auto/macnativeevents/tst_macnativeevents.cpp +++ b/tests/auto/macnativeevents/tst_macnativeevents.cpp @@ -488,7 +488,7 @@ void tst_MacNativeEvents::testModifierCtrlWithDontSwapCtrlAndMeta() { // On Mac, we switch the Command and Control modifier by default, so that Command // means Meta, and Control means Command. Lets check that the flag to swith off - // this behaviour works. While working on this test I realised that we actually + // this behaviour works. While working on this test I realized that we actually // don't (and never have) respected this flag for raw key events. Only for // menus, through QKeySequence. I don't want to change this behaviour now, at // least not until someone complains. So I choose to let the test just stop -- cgit v0.12 From 2249a44e57764e88ed2967aee7f845fdf4cf2358 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 13 Dec 2010 09:31:37 +1000 Subject: Build on Symbian Reviewed-by: Michael Brasser --- tools/qml/main.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp index 104f7b7..b9513b9 100644 --- a/tools/qml/main.cpp +++ b/tools/qml/main.cpp @@ -59,6 +59,19 @@ QtMsgHandler systemMsgOutput = 0; static QDeclarativeViewer *openFile(const QString &fileName); static void showViewer(QDeclarativeViewer *viewer); +QString warnings; +void exitApp(int i) +{ +#ifdef Q_OS_WIN + // Debugging output is not visible by default on Windows - + // therefore show modal dialog with errors instead. + if (!warnings.isEmpty()) { + QMessageBox::warning(0, QApplication::tr("Qt QML Viewer"), warnings); + } +#endif + exit(i); +} + #if defined (Q_OS_SYMBIAN) #include #include @@ -85,19 +98,6 @@ void myMessageOutput(QtMsgType type, const char *msg) QWeakPointer logger; -QString warnings; -void exitApp(int i) -{ -#ifdef Q_OS_WIN - // Debugging output is not visible by default on Windows - - // therefore show modal dialog with errors instead. - if (!warnings.isEmpty()) { - QMessageBox::warning(0, QApplication::tr("Qt QML Viewer"), warnings); - } -#endif - exit(i); -} - static QAtomicInt recursiveLock(0); void myMessageOutput(QtMsgType type, const char *msg) -- cgit v0.12 From 35f964ac3d88831c857a850bbdc58fcbfdbaf13c Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 13 Dec 2010 13:49:52 +1000 Subject: A QAIM model resulted in items moving to incorrect locations QAbstractItemModel moves items to the gaps between items. QML views assume items are moved to the destination index. This means we need to adjust the destination when moving forward to a gap. Task-number: QTBUG-15841 Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp index 4fe6c4c..4f5213a 100644 --- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp +++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp @@ -1367,7 +1367,7 @@ void QDeclarativeVisualDataModel::_q_rowsMoved(const QModelIndex &sourceParent, Q_D(QDeclarativeVisualDataModel); const int count = sourceEnd - sourceStart + 1; if (destinationParent == d->m_root && sourceParent == d->m_root) { - _q_itemsMoved(sourceStart, destinationRow, count); + _q_itemsMoved(sourceStart, sourceStart > destinationRow ? destinationRow : destinationRow-1, count); } else if (sourceParent == d->m_root) { _q_itemsRemoved(sourceStart, count); } else if (destinationParent == d->m_root) { -- cgit v0.12 From 18b940539d0633f30ae055feedb48aeb15969814 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Wed, 8 Dec 2010 13:38:48 +1000 Subject: Add mirroring-positioners.qml example --- .../positioners/mirroring-positioners.qml | 70 ++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 examples/declarative/positioners/mirroring-positioners.qml diff --git a/examples/declarative/positioners/mirroring-positioners.qml b/examples/declarative/positioners/mirroring-positioners.qml new file mode 100644 index 0000000..0db95dd --- /dev/null +++ b/examples/declarative/positioners/mirroring-positioners.qml @@ -0,0 +1,70 @@ +import QtQuick 1.0 + +Rectangle { + width: column.width+10 + height: column.height+10 + property bool arabic: false + Column { + id: column + spacing: 10 + anchors.centerIn: parent + Text { + text: "Row" + anchors.horizontalCenter: parent.horizontalCenter + } + Row { + flow: arabic ? Row.RightToLeft : Row.LeftToRight + spacing: 10 + Repeater { + model: 4 + Loader { + property int value: index + sourceComponent: delegate + } + } + } + Text { + text: "Grid" + anchors.horizontalCenter: parent.horizontalCenter + } + Grid { + flow: arabic ? Grid.RightToLeft : Grid.LeftToRight + spacing: 10; columns: 4 + Repeater { + model: 11 + Loader { + property int value: index + sourceComponent: delegate + } + } + } + Rectangle { + height: 50; width: parent.width + color: mouseArea.pressed ? "black" : "gray" + Text { + text: arabic ? "RTL" : "LTR" + color: "white" + font.pixelSize: 20 + anchors.centerIn: parent + } + MouseArea { + id: mouseArea + onClicked: arabic = !arabic + anchors.fill: parent + } + } + } + Component { + id: delegate + Rectangle { + width: 50; height: 50 + color: Qt.rgba(0.8/(parent.value+1),0.8/(parent.value+1),0.8/(parent.value+1),1.0) + Text { + text: parent.parent.value+1 + color: "white" + font.pixelSize: 20 + anchors.centerIn: parent + } + } + } +} -- cgit v0.12 From ad653d169aaecf6273787a01797c7647a13eec04 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 13 Dec 2010 16:09:52 +1000 Subject: Fix dragging Flickable back over start point. Change 810e21d9e404aa2fcb602cb68bfd892387b234e7 caused regression. Once stealMouse is set to true is must stay that way until release. Task-number: QTBUG-15998 Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativeflickable.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index 377f3b5..f1d92c5 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -700,8 +700,8 @@ void QDeclarativeFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent bool rejectY = false; bool rejectX = false; - bool stealY = false; - bool stealX = false; + bool stealY = stealMouse; + bool stealX = stealMouse; if (q->yflick()) { int dy = int(event->pos().y() - pressPos.y()); -- cgit v0.12 From 2e2f26072647b08292955ebad631c34d58c828f9 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Mon, 13 Dec 2010 17:08:09 +1000 Subject: Revert "Add mirroring-positioners.qml example" that was accidentally pushed This reverts commit 18b940539d0633f30ae055feedb48aeb15969814. --- .../positioners/mirroring-positioners.qml | 70 ---------------------- 1 file changed, 70 deletions(-) delete mode 100644 examples/declarative/positioners/mirroring-positioners.qml diff --git a/examples/declarative/positioners/mirroring-positioners.qml b/examples/declarative/positioners/mirroring-positioners.qml deleted file mode 100644 index 0db95dd..0000000 --- a/examples/declarative/positioners/mirroring-positioners.qml +++ /dev/null @@ -1,70 +0,0 @@ -import QtQuick 1.0 - -Rectangle { - width: column.width+10 - height: column.height+10 - property bool arabic: false - Column { - id: column - spacing: 10 - anchors.centerIn: parent - Text { - text: "Row" - anchors.horizontalCenter: parent.horizontalCenter - } - Row { - flow: arabic ? Row.RightToLeft : Row.LeftToRight - spacing: 10 - Repeater { - model: 4 - Loader { - property int value: index - sourceComponent: delegate - } - } - } - Text { - text: "Grid" - anchors.horizontalCenter: parent.horizontalCenter - } - Grid { - flow: arabic ? Grid.RightToLeft : Grid.LeftToRight - spacing: 10; columns: 4 - Repeater { - model: 11 - Loader { - property int value: index - sourceComponent: delegate - } - } - } - Rectangle { - height: 50; width: parent.width - color: mouseArea.pressed ? "black" : "gray" - Text { - text: arabic ? "RTL" : "LTR" - color: "white" - font.pixelSize: 20 - anchors.centerIn: parent - } - MouseArea { - id: mouseArea - onClicked: arabic = !arabic - anchors.fill: parent - } - } - } - Component { - id: delegate - Rectangle { - width: 50; height: 50 - color: Qt.rgba(0.8/(parent.value+1),0.8/(parent.value+1),0.8/(parent.value+1),1.0) - Text { - text: parent.parent.value+1 - color: "white" - font.pixelSize: 20 - anchors.centerIn: parent - } - } - } -} -- cgit v0.12 From 95ddfa13737164c93c58ce3694ce59ec68a016d9 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 13 Dec 2010 17:33:13 +1000 Subject: Ensure ListView contentHeight is set to a valid size. If the view height is 0 no items will be created so the contentHeight can not be estimated. The currentItem is usually created, so it is possible to use that to estimate. Task-number: QTBUG-16037 Reviewed-by: Bea Lam --- .../graphicsitems/qdeclarativelistview.cpp | 6 ++++ .../qdeclarativelistview/data/qtbug16037.qml | 37 ++++++++++++++++++++++ .../tst_qdeclarativelistview.cpp | 20 ++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 tests/auto/declarative/qdeclarativelistview/data/qtbug16037.qml diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index d008f91..2a7f508 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -265,6 +265,8 @@ public: } } pos = (*(--visibleItems.constEnd()))->endPosition() + invisibleCount * (averageSize + spacing); + } else if (model && model->count()) { + pos = model->count() * averageSize + (model->count()-1) * spacing; } return pos; } @@ -1050,6 +1052,8 @@ void QDeclarativeListViewPrivate::updateCurrent(int modelIndex) // This is slightly sub-optimal, but section heading caching minimizes the impact. if (currentItem->section) currentItem->section->setVisible(false); + if (visibleItems.isEmpty()) + averageSize = currentItem->size(); } updateHighlight(); emit q->currentIndexChanged(); @@ -1576,6 +1580,7 @@ void QDeclarativeListView::setModel(const QVariant &model) d->updateTrackedItem(); } } + d->updateViewport(); } connect(d->model, SIGNAL(itemsInserted(int,int)), this, SLOT(itemsInserted(int,int))); connect(d->model, SIGNAL(itemsRemoved(int,int)), this, SLOT(itemsRemoved(int,int))); @@ -1647,6 +1652,7 @@ void QDeclarativeListView::setDelegate(QDeclarativeComponent *delegate) d->highlight->setPosition(d->currentItem->position()); d->updateTrackedItem(); } + d->updateViewport(); } } emit delegateChanged(); diff --git a/tests/auto/declarative/qdeclarativelistview/data/qtbug16037.qml b/tests/auto/declarative/qdeclarativelistview/data/qtbug16037.qml new file mode 100644 index 0000000..0756618 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelistview/data/qtbug16037.qml @@ -0,0 +1,37 @@ +import QtQuick 1.0 + +Item { + width: 640 + height: 480 + + function setModel() { + listView.model = listModel1 + } + + ListModel { + id: listModel1 + ListElement { text: "Apple" } + ListElement { text: "Banana" } + ListElement { text: "Orange" } + ListElement { text: "Coconut" } + } + + Rectangle { + width: 200 + height: listView.contentHeight + color: "yellow" + anchors.centerIn: parent + + ListView { + id: listView + objectName: "listview" + anchors.fill: parent + + delegate: Item { + width: 200 + height: 20 + Text { text: model.text; anchors.centerIn: parent } + } + } + } +} diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index ff90d32..b834d46 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -104,6 +104,7 @@ private slots: void sizeLessThan1(); void QTBUG_14821(); void resizeDelegate(); + void QTBUG_16037(); private: template void items(); @@ -1944,6 +1945,25 @@ void tst_QDeclarativeListView::resizeDelegate() delete canvas; } +void tst_QDeclarativeListView::QTBUG_16037() +{ + QDeclarativeView *canvas = createView(); + + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/qtbug16037.qml")); + qApp->processEvents(); + + QDeclarativeListView *listview = findItem(canvas->rootObject(), "listview"); + QTRY_VERIFY(listview != 0); + + QVERIFY(listview->contentHeight() <= 0.0); + + QMetaObject::invokeMethod(canvas->rootObject(), "setModel"); + + QTRY_COMPARE(listview->contentHeight(), 80.0); + + delete canvas; +} + void tst_QDeclarativeListView::qListModelInterface_items() { items(); -- cgit v0.12 From de1632cc7be17df234cd86d49df9787e6aa68107 Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Fri, 10 Dec 2010 13:05:40 +0100 Subject: Add expected failures for JS test suite on Symbian These are bugs in the back-end (JavaScriptCore), not in the QtScript layer. Flag them as such. Task-number: QTBUG-15435 Reviewed-by: Jedrzej Nowacki --- tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp index a280256..4b14cc9 100644 --- a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp +++ b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp @@ -745,6 +745,16 @@ tst_Suite::tst_Suite() addExpectedFailure("ecma/TypeConversion/9.3.1-3.js", "1/-1e-2000", willFixInNextReleaseMessage); #endif +#ifdef Q_OS_SYMBIAN + addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(-1, 0.5)", willFixInNextReleaseMessage); + addExpectedFailure("ecma/Math/15.8.2.13.js", "Math.pow(-1, -0.5)", willFixInNextReleaseMessage); + addExpectedFailure("ecma_3/Operators/order-01.js", "operator evaluation order: 11.5.1 *", willFixInNextReleaseMessage); + addExpectedFailure("ecma_3/Operators/order-01.js", "operator evaluation order: 11.5.2 /", willFixInNextReleaseMessage); + addExpectedFailure("ecma_3/Operators/order-01.js", "operator evaluation order: 11.6.2 -", willFixInNextReleaseMessage); + addExpectedFailure("ecma_3/Operators/order-01.js", "operator evaluation order: 11.13.2 *=", willFixInNextReleaseMessage); + addExpectedFailure("ecma_3/Operators/order-01.js", "operator evaluation order: 11.13.2 /=", willFixInNextReleaseMessage); +#endif + static const char klass[] = "tst_QScriptJsTestSuite"; QVector *data = qt_meta_data_tst_Suite(); -- cgit v0.12 From 6160f8541e4d7cb66de7680b5fb439fb757c59dd Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Mon, 13 Dec 2010 10:28:42 +0200 Subject: Symbian specific input methods should use 'Text' mode as default case Currently default case is 'lower'. It makes more sense to set the default as 'Text', as it is natural default case for most text entries. Task-number: QTBUG-10311 Reviewed-by: Miikka Heikkinen --- src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp index 4a1b9b9..5e8a2e1 100644 --- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp +++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp @@ -89,7 +89,7 @@ QCoeFepInputContext::QCoeFepInputContext(QObject *parent) m_fepState->SetFlags(EAknEditorFlagDefault); m_fepState->SetDefaultInputMode( EAknEditorTextInputMode ); m_fepState->SetPermittedInputModes( EAknEditorAllInputModes ); - m_fepState->SetDefaultCase( EAknEditorLowerCase ); + m_fepState->SetDefaultCase( EAknEditorTextCase ); m_fepState->SetPermittedCases( EAknEditorAllCaseModes ); m_fepState->SetSpecialCharacterTableResourceId(R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG); m_fepState->SetNumericKeymap( EAknEditorStandardNumberModeKeymap ); -- cgit v0.12 From 18dfe6da07eb9ea7beb3cf2b0ea8291d62832efb Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Mon, 13 Dec 2010 07:16:28 +0100 Subject: Fix transformed QPainter::drawGlyphs() for certain paint engines Support pretransforming glyph coordinates for paint engines that don't expect untransformed coordinates. Task-number: QTBUG-15605 Reviewed-by: Samuel --- src/gui/painting/qpainter.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index 546861a..e8db049 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -151,6 +151,13 @@ static inline uint line_emulation(uint emulation) | QPaintEngine_OpaqueBackground); } +static bool qt_paintengine_supports_transformations(QPaintEngine::Type type) +{ + return type == QPaintEngine::OpenGL2 + || type == QPaintEngine::OpenVG + || type == QPaintEngine::OpenGL; +} + #ifndef QT_NO_DEBUG static bool qt_painter_thread_test(int devType, const char *what, bool extraCondition = false) { @@ -5795,8 +5802,17 @@ void QPainter::drawGlyphs(const QPointF &position, const QGlyphs &glyphs) int count = qMin(glyphIndexes.size(), glyphPositions.size()); QVarLengthArray fixedPointPositions(count); - for (int i=0; iextended != 0 + ? qt_paintengine_supports_transformations(d->extended->type()) + : false; + for (int i=0; istate->transform().map(processedPosition); + fixedPointPositions[i] = QFixedPoint::fromPointF(processedPosition); + } d->drawGlyphs(glyphIndexes.data(), fixedPointPositions.data(), count); @@ -5988,10 +6004,7 @@ void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText return; } - bool paintEngineSupportsTransformations = d->extended->type() == QPaintEngine::OpenGL2 - || d->extended->type() == QPaintEngine::OpenVG - || d->extended->type() == QPaintEngine::OpenGL; - + bool paintEngineSupportsTransformations = qt_paintengine_supports_transformations(d->extended->type()); if (paintEngineSupportsTransformations && !staticText_d->untransformedCoordinates) { staticText_d->untransformedCoordinates = true; staticText_d->needsRelayout = true; -- cgit v0.12 From 97954165ddeb8a57d8b6349c00fa50019450213b Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 13 Dec 2010 10:31:07 +0100 Subject: doc: Replaced some \raw and \endraw uses with \table and \endtable In DITA XML, there is no straightforward way to translate raw html into DITA XML, because the XML stream writer automagically escapes all the raw html elements. So I am beginning to replace uses of the \raw command with \table, which gets output correctly. The problem is the XML stream writer must see each XML element start and end, because it keeps them on a stack. When you output XML elements with the writeCharacters() function, it escapes the '<' and '>' of any XML elements the character string contains. --- doc/src/widgets-and-layouts/gallery-cde.qdoc | 427 ++++++--------------------- 1 file changed, 91 insertions(+), 336 deletions(-) diff --git a/doc/src/widgets-and-layouts/gallery-cde.qdoc b/doc/src/widgets-and-layouts/gallery-cde.qdoc index c783399..69287b9 100644 --- a/doc/src/widgets-and-layouts/gallery-cde.qdoc +++ b/doc/src/widgets-and-layouts/gallery-cde.qdoc @@ -34,345 +34,100 @@ This page shows some of the widgets available in Qt when configured to use the "cde" style. -\raw HTML -

Buttons

+\section2 Buttons - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage cde-pushbutton.png -\raw HTML - -\endraw -\inlineimage cde-toolbutton.png -\raw HTML -
-\endraw -The QPushButton widget provides a command button. -\raw HTML - -\endraw -\raw HTML -
-\endraw -\inlineimage cde-checkbox.png -\raw HTML - -\endraw -\inlineimage cde-radiobutton.png -\raw HTML -
-\endraw -The QCheckBox widget provides a checkbox with a text label.\raw HTML - -\endraw -The QRadioButton widget provides a radio button with a text or pixmap label.\raw HTML -
-\endraw -\raw HTML -

Containers

+\table 100% +\row +\o \image cde-checkbox.png + \caption The QCheckBox widget provides a checkbox with a text label. +\o \image cde-radiobutton.png + \caption The QRadioButton widget provides a radio button with a text or pixmap label. +\o \image cde-pushbutton.png + \image cde-toolbutton.png + \caption The QPushButton widget provides a command button. +\endtable - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage cde-groupbox.png -\raw HTML - -\endraw -\inlineimage cde-tabwidget.png -\raw HTML -
-\endraw -The QGroupBox widget provides a group box frame with a title.\raw HTML - -\endraw -The QTabWidget class provides a stack of tabbed widgets.\raw HTML -
-\endraw -\inlineimage cde-frame.png -\raw HTML - -\endraw -\inlineimage cde-toolbox.png -\raw HTML -
-\endraw -The QFrame widget provides a simple decorated container for other widgets.\raw HTML - -\endraw -The QToolBox class provides a column of tabbed widget items.\raw HTML -
-\endraw -\raw HTML -

Item Views

+\section2 Containers - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage cde-listview.png -\raw HTML - -\endraw -\inlineimage cde-treeview.png -\raw HTML -
-\endraw -The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view.\raw HTML - -\endraw -The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view.\raw HTML -
-\endraw -\inlineimage cde-tableview.png -\raw HTML -
-\endraw -The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\raw HTML -
-\endraw -\raw HTML -

Display Widgets

+\table 100% +\row +\o \image cde-groupbox.png + The The QGroupBox widget provides a group box frame with a title. +\o \image cde-tabwidget.png + The QTabWidget class provides a stack of tabbed widgets. +\o \image cde-frame.png + The QFrame widget provides a simple decorated container for other widgets. +\o \image cde-toolbox.png + The QToolBox class provides a column of tabbed widget items. +\endtable - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage cde-progressbar.png -\raw HTML - -\endraw -\inlineimage cde-lcdnumber.png -\raw HTML -
-\endraw -The QProgressBar widget provides a horizontal progress bar.\raw HTML - -\endraw -The QLCDNumber widget displays a number with LCD-like digits.\raw HTML -
-\endraw -\inlineimage cde-label.png -\raw HTML -
-\endraw -The QLabel widget provides a text or image display.\raw HTML -
-\endraw -\raw HTML -

Input Widgets

+\section2 Item Views + +\table 100% +\row +\o \image cde-listview.png + The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view. +\o \image cde-treeview.png + The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view. +\o \image cde-tableview.png + The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\o +\o +\endtable + +\section2 Display Widgets + +\table 100% +\row +\o \image cde-progressbar.png + The QProgressBar widget provides a horizontal progress bar. +\o \image cde-label.png + The QLabel widget provides a text or image display. +\o \image cde-lcdnumber.png + The QLCDNumber widget displays a number with LCD-like digits. +\endtable + +\section2 Input Widgets + +\table 100% +\row +\o \image cde-lineedit.png + The QLineEdit widget is a one-line text editor. +\o \image cde-dateedit.png + The QDateEdit class provides a widget for editing dates. +\o \image cde-timeedit.png + The QTimeEdit class provides a widget for editing times. +\o \image cde-datetimeedit.png + The QDateTimeEdit class provides a widget for editing dates and times. +\endtable + +\table 100% +\row +\o \image cde-slider.png + The QSlider widget provides a vertical or horizontal slider. +\o \image cde-combobox.png + The QComboBox widget is a combined button and pop-up list. +\o \image cde-spinbox.png + The QSpinBox class provides a spin box widget. +\endtable + +\table 100% +\row +\o \image cde-fontcombobox.png + The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts. +\o \image cde-doublespinbox.png + The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered. +\o \image cde-horizontalscrollbar.png + The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation. +\endtable + +\table 100% +\row +\o \image cde-dial.png + The QDial class provides a rounded range control (like a speedometer or potentiometer). +\o \image cde-textedit.png + The QTextEdit class provides a widget that is used to edit and display both plain and rich text. +\o \image cde-calendarwidget.png + The QCalendarWidget class provides a monthly calendar widget that can be used to select dates. +\endtable - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage cde-slider.png -\raw HTML - -\endraw -\inlineimage cde-lineedit.png -\raw HTML -
-\endraw -The QSlider widget provides a vertical or horizontal slider.\raw HTML - -\endraw -The QLineEdit widget is a one-line text editor.\raw HTML -
-\endraw -\inlineimage cde-combobox.png -\raw HTML - -\endraw -\inlineimage cde-doublespinbox.png -\raw HTML -
-\endraw -The QComboBox widget is a combined button and pop-up list.\raw HTML - -\endraw -The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered.\raw HTML -
-\endraw -\inlineimage cde-spinbox.png -\raw HTML - -\endraw -\inlineimage cde-timeedit.png -\raw HTML -
-\endraw -The QSpinBox class provides a spin box widget.\raw HTML - -\endraw -The QTimeEdit class provides a widget for editing times.\raw HTML -
-\endraw -\inlineimage cde-dateedit.png -\raw HTML - -\endraw -\inlineimage cde-datetimeedit.png -\raw HTML -
-\endraw -The QDateEdit class provides a widget for editing dates.\raw HTML - -\endraw -The QDateTimeEdit class provides a widget for editing dates and times.\raw HTML -
-\endraw -\inlineimage cde-textedit.png -\raw HTML - -\endraw -\inlineimage cde-horizontalscrollbar.png -\raw HTML -
-\endraw -The QTextEdit class provides a widget that is used to edit and - display both plain and rich text.\raw HTML - -\endraw -The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation.\raw HTML -
-\endraw -\inlineimage cde-dial.png -\raw HTML - -\endraw -\inlineimage cde-calendarwidget.png -\raw HTML -
-\endraw -The QDial class provides a rounded range control (like a - speedometer or potentiometer).\raw HTML - -\endraw -The QCalendarWidget class provides a monthly calendar widget that can be used to select dates.\raw HTML -
-\endraw -\inlineimage cde-fontcombobox.png -\raw HTML -
-\endraw -The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts.\raw HTML -
-\endraw */ -- cgit v0.12 From d5efbf00631022bc81f1a630aa386272937aa34c Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Mon, 13 Dec 2010 11:40:07 +0100 Subject: --warnings --- src/gui/kernel/qplatformwindow_qpa.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qplatformwindow_qpa.h b/src/gui/kernel/qplatformwindow_qpa.h index 90bc1cb..4f6fedc 100644 --- a/src/gui/kernel/qplatformwindow_qpa.h +++ b/src/gui/kernel/qplatformwindow_qpa.h @@ -60,7 +60,7 @@ class QPlatformGLContext; class Q_GUI_EXPORT QPlatformWindow { - Q_DECLARE_PRIVATE(QPlatformWindow); + Q_DECLARE_PRIVATE(QPlatformWindow) public: QPlatformWindow(QWidget *tlw); virtual ~QPlatformWindow(); @@ -85,7 +85,7 @@ public: protected: QScopedPointer d_ptr; private: - Q_DISABLE_COPY(QPlatformWindow); + Q_DISABLE_COPY(QPlatformWindow) }; QT_END_NAMESPACE -- cgit v0.12 From ad3783ecd1308d357eb0451fe5b4fc24b49ed15a Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 13 Dec 2010 11:42:38 +0100 Subject: doc: Replaced some \raw and \endraw uses with \table and \endtable In DITA XML, there is no straightforward way to translate raw html into DITA XML, because the XML stream writer automagically escapes all the raw html elements. So I am beginning to replace uses of the \raw command with \table, which gets output correctly. The problem is the XML stream writer must see each XML element start and end, because it keeps them on a stack. When you output XML elements with the writeCharacters() function, it escapes the '<' and '>' of any XML elements the character string contains. --- .../widgets-and-layouts/gallery-cleanlooks.qdoc | 432 +++++--------------- doc/src/widgets-and-layouts/gallery-gtk.qdoc | 436 +++++---------------- doc/src/widgets-and-layouts/gallery-macintosh.qdoc | 432 +++++--------------- doc/src/widgets-and-layouts/gallery-motif.qdoc | 432 +++++--------------- doc/src/widgets-and-layouts/gallery-plastique.qdoc | 432 +++++--------------- doc/src/widgets-and-layouts/gallery-windows.qdoc | 432 +++++--------------- .../widgets-and-layouts/gallery-windowsvista.qdoc | 432 +++++--------------- doc/src/widgets-and-layouts/gallery-windowsxp.qdoc | 432 +++++--------------- 8 files changed, 768 insertions(+), 2692 deletions(-) diff --git a/doc/src/widgets-and-layouts/gallery-cleanlooks.qdoc b/doc/src/widgets-and-layouts/gallery-cleanlooks.qdoc index d03adc8..59e2934 100644 --- a/doc/src/widgets-and-layouts/gallery-cleanlooks.qdoc +++ b/doc/src/widgets-and-layouts/gallery-cleanlooks.qdoc @@ -34,345 +34,105 @@ This page shows some of the widgets available in Qt when configured to use the "cleanlooks" style. -\raw HTML -

Buttons

+\section2 Buttons - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage cleanlooks-pushbutton.png -\raw HTML - -\endraw -\inlineimage cleanlooks-toolbutton.png -\raw HTML -
-\endraw -The QPushButton widget provides a command button.\raw HTML - -\endraw -The QToolButton class provides a quick-access button to commands - or options, usually used inside a QToolBar.\raw HTML -
-\endraw -\inlineimage cleanlooks-checkbox.png -\raw HTML - -\endraw -\inlineimage cleanlooks-radiobutton.png -\raw HTML -
-\endraw -The QCheckBox widget provides a checkbox with a text label.\raw HTML - -\endraw -The QRadioButton widget provides a radio button with a text or pixmap label.\raw HTML -
-\endraw -\raw HTML -

Containers

+\table 100% +\row +\o \image cleanlooks-pushbutton.png + \caption The QPushButton widget provides a command button. +\o \image cleanlooks-toolbutton.png + \caption The QToolButton class provides a quick-access button to commands + or options, usually used inside a QToolBar. +\endtable - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage cleanlooks-groupbox.png -\raw HTML - -\endraw -\inlineimage cleanlooks-tabwidget.png -\raw HTML -
-\endraw -The QGroupBox widget provides a group box frame with a title.\raw HTML - -\endraw -The QTabWidget class provides a stack of tabbed widgets.\raw HTML -
-\endraw -\inlineimage cleanlooks-frame.png -\raw HTML - -\endraw -\inlineimage cleanlooks-toolbox.png -\raw HTML -
-\endraw -The QFrame widget provides a simple decorated container for other widgets.\raw HTML - -\endraw -The QToolBox class provides a column of tabbed widget items.\raw HTML -
-\endraw -\raw HTML -

Item Views

+\table 100% +\row +\o \image cleanlooks-checkbox.png + \caption The QCheckBox widget provides a checkbox with a text label. +\o \image cleanlooks-radiobutton.png + \caption The QRadioButton widget provides a radio button with a text or pixmap label. +\endtable - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage cleanlooks-listview.png -\raw HTML - -\endraw -\inlineimage cleanlooks-treeview.png -\raw HTML -
-\endraw -The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view.\raw HTML - -\endraw -The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view.\raw HTML -
-\endraw -\inlineimage cleanlooks-tableview.png -\raw HTML -
-\endraw -The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\raw HTML -
-\endraw -\raw HTML -

Display Widgets

+\section2 Containers - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage cleanlooks-progressbar.png -\raw HTML - -\endraw -\inlineimage cleanlooks-lcdnumber.png -\raw HTML -
-\endraw -The QProgressBar widget provides a horizontal progress bar.\raw HTML - -\endraw -The QLCDNumber widget displays a number with LCD-like digits.\raw HTML -
-\endraw -\inlineimage cleanlooks-label.png -\raw HTML -
-\endraw -The QLabel widget provides a text or image display.\raw HTML -
-\endraw -\raw HTML -

Input Widgets

+\table 100% +\row +\o \image cleanlooks-groupbox.png + The The QGroupBox widget provides a group box frame with a title. +\o \image cleanlooks-tabwidget.png + The QTabWidget class provides a stack of tabbed widgets. +\o \image cleanlooks-frame.png + The QFrame widget provides a simple decorated container for other widgets. +\o \image cleanlooks-toolbox.png + The QToolBox class provides a column of tabbed widget items. +\endtable - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage cleanlooks-slider.png -\raw HTML - -\endraw -\inlineimage cleanlooks-lineedit.png -\raw HTML -
-\endraw -The QSlider widget provides a vertical or horizontal slider.\raw HTML - -\endraw -The QLineEdit widget is a one-line text editor.\raw HTML -
-\endraw -\inlineimage cleanlooks-combobox.png -\raw HTML - -\endraw -\inlineimage cleanlooks-doublespinbox.png -\raw HTML -
-\endraw -The QComboBox widget is a combined button and pop-up list.\raw HTML - -\endraw -The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered.\raw HTML -
-\endraw -\inlineimage cleanlooks-spinbox.png -\raw HTML - -\endraw -\inlineimage cleanlooks-timeedit.png -\raw HTML -
-\endraw -The QSpinBox class provides a spin box widget.\raw HTML - -\endraw -The QTimeEdit class provides a widget for editing times.\raw HTML -
-\endraw -\inlineimage cleanlooks-dateedit.png -\raw HTML - -\endraw -\inlineimage cleanlooks-datetimeedit.png -\raw HTML -
-\endraw -The QDateEdit class provides a widget for editing dates.\raw HTML - -\endraw -The QDateTimeEdit class provides a widget for editing dates and times.\raw HTML -
-\endraw -\inlineimage cleanlooks-textedit.png -\raw HTML - -\endraw -\inlineimage cleanlooks-horizontalscrollbar.png -\raw HTML -
-\endraw -The QTextEdit class provides a widget that is used to edit and - display both plain and rich text.\raw HTML - -\endraw -The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation.\raw HTML -
-\endraw -\inlineimage cleanlooks-dial.png -\raw HTML - -\endraw -\inlineimage cleanlooks-calendarwidget.png -\raw HTML -
-\endraw -The QDial class provides a rounded range control (like a - speedometer or potentiometer).\raw HTML - -\endraw -The QCalendarWidget class provides a monthly calendar widget that can be used to select dates.\raw HTML -
-\endraw -\inlineimage cleanlooks-fontcombobox.png -\raw HTML -
-\endraw -The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts.\raw HTML -
-\endraw +\section2 Item Views + +\table 100% +\row +\o \image cleanlooks-listview.png + The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view. +\o \image cleanlooks-treeview.png + The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view. +\o \image cleanlooks-tableview.png + The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\o +\o +\endtable + +\section2 Display Widgets + +\table 100% +\row +\o \image cleanlooks-progressbar.png + The QProgressBar widget provides a horizontal progress bar. +\o \image cleanlooks-label.png + The QLabel widget provides a text or image display. +\o \image cleanlooks-lcdnumber.png + The QLCDNumber widget displays a number with LCD-like digits. +\endtable + +\section2 Input Widgets + +\table 100% +\row +\o \image cleanlooks-lineedit.png + The QLineEdit widget is a one-line text editor. +\o \image cleanlooks-dateedit.png + The QDateEdit class provides a widget for editing dates. +\o \image cleanlooks-timeedit.png + The QTimeEdit class provides a widget for editing times. +\o \image cleanlooks-datetimeedit.png + The QDateTimeEdit class provides a widget for editing dates and times. +\endtable + +\table 100% +\row +\o \image cleanlooks-slider.png + The QSlider widget provides a vertical or horizontal slider. +\o \image cleanlooks-combobox.png + The QComboBox widget is a combined button and pop-up list. +\o \image cleanlooks-spinbox.png + The QSpinBox class provides a spin box widget. +\endtable + +\table 100% +\row +\o \image cleanlooks-fontcombobox.png + The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts. +\o \image cleanlooks-doublespinbox.png + The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered. +\o \image cleanlooks-horizontalscrollbar.png + The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation. +\endtable + +\table 100% +\row +\o \image cleanlooks-dial.png + The QDial class provides a rounded range control (like a speedometer or potentiometer). +\o \image cleanlooks-textedit.png + The QTextEdit class provides a widget that is used to edit and display both plain and rich text. +\o \image cleanlooks-calendarwidget.png + The QCalendarWidget class provides a monthly calendar widget that can be used to select dates. +\endtable */ diff --git a/doc/src/widgets-and-layouts/gallery-gtk.qdoc b/doc/src/widgets-and-layouts/gallery-gtk.qdoc index b3a6372..b2f8458 100644 --- a/doc/src/widgets-and-layouts/gallery-gtk.qdoc +++ b/doc/src/widgets-and-layouts/gallery-gtk.qdoc @@ -37,349 +37,105 @@ Take a look at the \l{Qt Widget Gallery} to see how Qt applications appear in other styles. -\raw HTML -

Buttons

+\section2 Buttons - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage gtk-pushbutton.png -\raw HTML - -\endraw -\inlineimage gtk-toolbutton.png -\raw HTML -
-\endraw -The QPushButton widget provides a command button.\raw HTML - -\endraw -The QToolButton class provides a quick-access button to commands - or options, usually used inside a QToolBar.\raw HTML -
-\endraw -\inlineimage gtk-checkbox.png -\raw HTML - -\endraw -\inlineimage gtk-radiobutton.png -\raw HTML -
-\endraw -The QCheckBox widget provides a checkbox with a text label.\raw HTML - -\endraw -The QRadioButton widget provides a radio button with a text or pixmap label.\raw HTML -
-\endraw -\raw HTML -

Containers

+\table 100% +\row +\o \image gtk-pushbutton.png + \caption The QPushButton widget provides a command button. +\o \image gtk-toolbutton.png + \caption The QToolButton class provides a quick-access button to commands + or options, usually used inside a QToolBar. +\endtable - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage gtk-groupbox.png -\raw HTML - -\endraw -\inlineimage gtk-tabwidget.png -\raw HTML -
-\endraw -The QGroupBox widget provides a group box frame with a title.\raw HTML - -\endraw -The QTabWidget class provides a stack of tabbed widgets.\raw HTML -
-\endraw -\inlineimage gtk-toolbox.png -\raw HTML - -\endraw -\inlineimage gtk-frame.png -\raw HTML -
-\endraw -The QToolBox class provides a column of tabbed widget items.\raw HTML - -\endraw -The QFrame widget provides a simple decorated container for other widgets.\raw HTML -
-\endraw -\raw HTML -

Item Views

+\table 100% +\row +\o \image gtk-checkbox.png + \caption The QCheckBox widget provides a checkbox with a text label. +\o \image gtk-radiobutton.png + \caption The QRadioButton widget provides a radio button with a text or pixmap label. +\endtable - -- - - - - - - - - - - - - - - - -
-\endraw -\inlineimage gtk-listview.png -\raw HTML - -\endraw -\inlineimage gtk-treeview.png -\raw HTML -
-\endraw -The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view.\raw HTML - -\endraw -The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view.\raw HTML -
-\endraw -\inlineimage gtk-tableview.png -\raw HTML -
-\endraw -The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\raw HTML - -\endraw -\raw HTML -
-\endraw -\raw HTML -

Display Widgets

+\section2 Containers - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage gtk-progressbar.png -\raw HTML - -\endraw -\inlineimage gtk-lcdnumber.png -\raw HTML -
-\endraw -The QProgressBar widget provides a horizontal progress bar.\raw HTML - -\endraw -The QLCDNumber widget displays a number with LCD-like digits.\raw HTML -
-\endraw -\inlineimage gtk-label.png -\raw HTML -
-\endraw -The QLabel widget provides a text or image display.\raw HTML -
-\endraw -\raw HTML -

Input Widgets

+\table 100% +\row +\o \image gtk-groupbox.png + The The QGroupBox widget provides a group box frame with a title. +\o \image gtk-tabwidget.png + The QTabWidget class provides a stack of tabbed widgets. +\o \image gtk-frame.png + The QFrame widget provides a simple decorated container for other widgets. +\o \image gtk-toolbox.png + The QToolBox class provides a column of tabbed widget items. +\endtable - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage gtk-slider.png -\raw HTML - -\endraw -\inlineimage gtk-lineedit.png -\raw HTML -
-\endraw -The QSlider widget provides a vertical or horizontal slider.\raw HTML - -\endraw -The QLineEdit widget is a one-line text editor.\raw HTML -
-\endraw -\inlineimage gtk-combobox.png -\raw HTML - -\endraw -\inlineimage gtk-doublespinbox.png -\raw HTML -
-\endraw -The QComboBox widget is a combined button and pop-up list.\raw HTML - -\endraw -The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered.\raw HTML -
-\endraw -\inlineimage gtk-spinbox.png -\raw HTML - -\endraw -\inlineimage gtk-timeedit.png -\raw HTML -
-\endraw -The QSpinBox class provides a spin box widget.\raw HTML - -\endraw -The QTimeEdit class provides a widget for editing times.\raw HTML -
-\endraw -\inlineimage gtk-dateedit.png -\raw HTML - -\endraw -\inlineimage gtk-datetimeedit.png -\raw HTML -
-\endraw -The QDateEdit class provides a widget for editing dates.\raw HTML - -\endraw -The QDateTimeEdit class provides a widget for editing dates and times.\raw HTML -
-\endraw -\inlineimage gtk-textedit.png -\raw HTML - -\endraw -\inlineimage gtk-horizontalscrollbar.png -\raw HTML -
-\endraw -The QTextEdit class provides a widget that is used to edit and - display both plain and rich text.\raw HTML - -\endraw -The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation.\raw HTML -
-\endraw -\inlineimage gtk-dial.png -\raw HTML - -\endraw -\inlineimage gtk-calendarwidget.png -\raw HTML -
-\endraw -The QDial class provides a rounded range control (like a - speedometer or potentiometer).\raw HTML - -\endraw -The QCalendarWidget class provides a monthly calendar widget that can be used to select dates.\raw HTML -
-\endraw -\inlineimage gtk-fontcombobox.png -\raw HTML -
-\endraw -The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts.\raw HTML -
-\endraw +\section2 Item Views + +\table 100% +\row +\o \image gtk-listview.png + The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view. +\o \image gtk-treeview.png + The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view. +\o \image gtk-tableview.png + The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\o +\o +\endtable + +\section2 Display Widgets + +\table 100% +\row +\o \image gtk-progressbar.png + The QProgressBar widget provides a horizontal progress bar. +\o \image gtk-label.png + The QLabel widget provides a text or image display. +\o \image gtk-lcdnumber.png + The QLCDNumber widget displays a number with LCD-like digits. +\endtable + +\section2 Input Widgets + +\table 100% +\row +\o \image gtk-lineedit.png + The QLineEdit widget is a one-line text editor. +\o \image gtk-dateedit.png + The QDateEdit class provides a widget for editing dates. +\o \image gtk-timeedit.png + The QTimeEdit class provides a widget for editing times. +\o \image gtk-datetimeedit.png + The QDateTimeEdit class provides a widget for editing dates and times. +\endtable + +\table 100% +\row +\o \image gtk-slider.png + The QSlider widget provides a vertical or horizontal slider. +\o \image gtk-combobox.png + The QComboBox widget is a combined button and pop-up list. +\o \image gtk-spinbox.png + The QSpinBox class provides a spin box widget. +\endtable + +\table 100% +\row +\o \image gtk-fontcombobox.png + The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts. +\o \image gtk-doublespinbox.png + The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered. +\o \image gtk-horizontalscrollbar.png + The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation. +\endtable + +\table 100% +\row +\o \image gtk-dial.png + The QDial class provides a rounded range control (like a speedometer or potentiometer). +\o \image gtk-textedit.png + The QTextEdit class provides a widget that is used to edit and display both plain and rich text. +\o \image gtk-calendarwidget.png + The QCalendarWidget class provides a monthly calendar widget that can be used to select dates. +\endtable */ diff --git a/doc/src/widgets-and-layouts/gallery-macintosh.qdoc b/doc/src/widgets-and-layouts/gallery-macintosh.qdoc index 30a78ca..44d7eb9 100644 --- a/doc/src/widgets-and-layouts/gallery-macintosh.qdoc +++ b/doc/src/widgets-and-layouts/gallery-macintosh.qdoc @@ -34,345 +34,105 @@ This page shows some of the widgets available in Qt when configured to use the "macintosh" style. -\raw HTML -

Buttons

+\section2 Buttons - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage macintosh-pushbutton.png -\raw HTML - -\endraw -\inlineimage macintosh-toolbutton.png -\raw HTML -
-\endraw -The QPushButton widget provides a command button.\raw HTML - -\endraw -The QToolButton class provides a quick-access button to commands - or options, usually used inside a QToolBar.\raw HTML -
-\endraw -\inlineimage macintosh-checkbox.png -\raw HTML - -\endraw -\inlineimage macintosh-radiobutton.png -\raw HTML -
-\endraw -The QCheckBox widget provides a checkbox with a text label.\raw HTML - -\endraw -The QRadioButton widget provides a radio button with a text or pixmap label.\raw HTML -
-\endraw -\raw HTML -

Containers

+\table 100% +\row +\o \image macintosh-pushbutton.png + \caption The QPushButton widget provides a command button. +\o \image macintosh-toolbutton.png + \caption The QToolButton class provides a quick-access button to commands + or options, usually used inside a QToolBar. +\endtable - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage macintosh-groupbox.png -\raw HTML - -\endraw -\inlineimage macintosh-tabwidget.png -\raw HTML -
-\endraw -The QGroupBox widget provides a group box frame with a title.\raw HTML - -\endraw -The QTabWidget class provides a stack of tabbed widgets.\raw HTML -
-\endraw -\inlineimage macintosh-frame.png -\raw HTML - -\endraw -\inlineimage macintosh-toolbox.png -\raw HTML -
-\endraw -The QFrame widget provides a simple decorated container for other widgets.\raw HTML - -\endraw -The QToolBox class provides a column of tabbed widget items.\raw HTML -
-\endraw -\raw HTML -

Item Views

+\table 100% +\row +\o \image macintosh-checkbox.png + \caption The QCheckBox widget provides a checkbox with a text label. +\o \image macintosh-radiobutton.png + \caption The QRadioButton widget provides a radio button with a text or pixmap label. +\endtable - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage macintosh-listview.png -\raw HTML - -\endraw -\inlineimage macintosh-treeview.png -\raw HTML -
-\endraw -The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view.\raw HTML - -\endraw -The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view.\raw HTML -
-\endraw -\inlineimage macintosh-tableview.png -\raw HTML -
-\endraw -The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\raw HTML -
-\endraw -\raw HTML -

Display Widgets

+\section2 Containers - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage macintosh-progressbar.png -\raw HTML - -\endraw -\inlineimage macintosh-lcdnumber.png -\raw HTML -
-\endraw -The QProgressBar widget provides a horizontal progress bar.\raw HTML - -\endraw -The QLCDNumber widget displays a number with LCD-like digits.\raw HTML -
-\endraw -\inlineimage macintosh-label.png -\raw HTML -
-\endraw -The QLabel widget provides a text or image display.\raw HTML -
-\endraw -\raw HTML -

Input Widgets

+\table 100% +\row +\o \image macintosh-groupbox.png + The The QGroupBox widget provides a group box frame with a title. +\o \image macintosh-tabwidget.png + The QTabWidget class provides a stack of tabbed widgets. +\o \image macintosh-frame.png + The QFrame widget provides a simple decorated container for other widgets. +\o \image macintosh-toolbox.png + The QToolBox class provides a column of tabbed widget items. +\endtable - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage macintosh-slider.png -\raw HTML - -\endraw -\inlineimage macintosh-lineedit.png -\raw HTML -
-\endraw -The QSlider widget provides a vertical or horizontal slider.\raw HTML - -\endraw -The QLineEdit widget is a one-line text editor.\raw HTML -
-\endraw -\inlineimage macintosh-combobox.png -\raw HTML - -\endraw -\inlineimage macintosh-doublespinbox.png -\raw HTML -
-\endraw -The QComboBox widget is a combined button and pop-up list.\raw HTML - -\endraw -The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered.\raw HTML -
-\endraw -\inlineimage macintosh-spinbox.png -\raw HTML - -\endraw -\inlineimage macintosh-timeedit.png -\raw HTML -
-\endraw -The QSpinBox class provides a spin box widget.\raw HTML - -\endraw -The QTimeEdit class provides a widget for editing times.\raw HTML -
-\endraw -\inlineimage macintosh-dateedit.png -\raw HTML - -\endraw -\inlineimage macintosh-datetimeedit.png -\raw HTML -
-\endraw -The QDateEdit class provides a widget for editing dates.\raw HTML - -\endraw -The QDateTimeEdit class provides a widget for editing dates and times.\raw HTML -
-\endraw -\inlineimage macintosh-textedit.png -\raw HTML - -\endraw -\inlineimage macintosh-horizontalscrollbar.png -\raw HTML -
-\endraw -The QTextEdit class provides a widget that is used to edit and - display both plain and rich text.\raw HTML - -\endraw -The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation.\raw HTML -
-\endraw -\inlineimage macintosh-dial.png -\raw HTML - -\endraw -\inlineimage macintosh-calendarwidget.png -\raw HTML -
-\endraw -The QDial class provides a rounded range control (like a - speedometer or potentiometer).\raw HTML - -\endraw -The QCalendarWidget class provides a monthly calendar widget that can be used to select dates.\raw HTML -
-\endraw -\inlineimage macintosh-fontcombobox.png -\raw HTML -
-\endraw -The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts.\raw HTML -
-\endraw +\section2 Item Views + +\table 100% +\row +\o \image macintosh-listview.png + The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view. +\o \image macintosh-treeview.png + The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view. +\o \image macintosh-tableview.png + The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\o +\o +\endtable + +\section2 Display Widgets + +\table 100% +\row +\o \image macintosh-progressbar.png + The QProgressBar widget provides a horizontal progress bar. +\o \image macintosh-label.png + The QLabel widget provides a text or image display. +\o \image macintosh-lcdnumber.png + The QLCDNumber widget displays a number with LCD-like digits. +\endtable + +\section2 Input Widgets + +\table 100% +\row +\o \image macintosh-lineedit.png + The QLineEdit widget is a one-line text editor. +\o \image macintosh-dateedit.png + The QDateEdit class provides a widget for editing dates. +\o \image macintosh-timeedit.png + The QTimeEdit class provides a widget for editing times. +\o \image macintosh-datetimeedit.png + The QDateTimeEdit class provides a widget for editing dates and times. +\endtable + +\table 100% +\row +\o \image macintosh-slider.png + The QSlider widget provides a vertical or horizontal slider. +\o \image macintosh-combobox.png + The QComboBox widget is a combined button and pop-up list. +\o \image macintosh-spinbox.png + The QSpinBox class provides a spin box widget. +\endtable + +\table 100% +\row +\o \image macintosh-fontcombobox.png + The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts. +\o \image macintosh-doublespinbox.png + The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered. +\o \image macintosh-horizontalscrollbar.png + The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation. +\endtable + +\table 100% +\row +\o \image macintosh-dial.png + The QDial class provides a rounded range control (like a speedometer or potentiometer). +\o \image macintosh-textedit.png + The QTextEdit class provides a widget that is used to edit and display both plain and rich text. +\o \image macintosh-calendarwidget.png + The QCalendarWidget class provides a monthly calendar widget that can be used to select dates. +\endtable */ diff --git a/doc/src/widgets-and-layouts/gallery-motif.qdoc b/doc/src/widgets-and-layouts/gallery-motif.qdoc index 861c22a..b9c95c8 100644 --- a/doc/src/widgets-and-layouts/gallery-motif.qdoc +++ b/doc/src/widgets-and-layouts/gallery-motif.qdoc @@ -34,345 +34,105 @@ This page shows some of the widgets available in Qt when configured to use the "motif" style. -\raw HTML -

Buttons

+\section2 Buttons - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage motif-pushbutton.png -\raw HTML - -\endraw -\inlineimage motif-toolbutton.png -\raw HTML -
-\endraw -The QPushButton widget provides a command button.\raw HTML - -\endraw -The QToolButton class provides a quick-access button to commands - or options, usually used inside a QToolBar.\raw HTML -
-\endraw -\inlineimage motif-checkbox.png -\raw HTML - -\endraw -\inlineimage motif-radiobutton.png -\raw HTML -
-\endraw -The QCheckBox widget provides a checkbox with a text label.\raw HTML - -\endraw -The QRadioButton widget provides a radio button with a text or pixmap label.\raw HTML -
-\endraw -\raw HTML -

Containers

+\table 100% +\row +\o \image motif-pushbutton.png + \caption The QPushButton widget provides a command button. +\o \image motif-toolbutton.png + \caption The QToolButton class provides a quick-access button to commands + or options, usually used inside a QToolBar. +\endtable - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage motif-groupbox.png -\raw HTML - -\endraw -\inlineimage motif-tabwidget.png -\raw HTML -
-\endraw -The QGroupBox widget provides a group box frame with a title.\raw HTML - -\endraw -The QTabWidget class provides a stack of tabbed widgets.\raw HTML -
-\endraw -\inlineimage motif-frame.png -\raw HTML - -\endraw -\inlineimage motif-toolbox.png -\raw HTML -
-\endraw -The QFrame widget provides a simple decorated container for other widgets.\raw HTML - -\endraw -The QToolBox class provides a column of tabbed widget items.\raw HTML -
-\endraw -\raw HTML -

Item Views

+\table 100% +\row +\o \image motif-checkbox.png + \caption The QCheckBox widget provides a checkbox with a text label. +\o \image motif-radiobutton.png + \caption The QRadioButton widget provides a radio button with a text or pixmap label. +\endtable - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage motif-listview.png -\raw HTML - -\endraw -\inlineimage motif-treeview.png -\raw HTML -
-\endraw -The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view.\raw HTML - -\endraw -The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view.\raw HTML -
-\endraw -\inlineimage motif-tableview.png -\raw HTML -
-\endraw -The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\raw HTML -
-\endraw -\raw HTML -

Display Widgets

+\section2 Containers - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage motif-progressbar.png -\raw HTML - -\endraw -\inlineimage motif-lcdnumber.png -\raw HTML -
-\endraw -The QProgressBar widget provides a horizontal progress bar.\raw HTML - -\endraw -The QLCDNumber widget displays a number with LCD-like digits.\raw HTML -
-\endraw -\inlineimage motif-label.png -\raw HTML -
-\endraw -The QLabel widget provides a text or image display.\raw HTML -
-\endraw -\raw HTML -

Input Widgets

+\table 100% +\row +\o \image motif-groupbox.png + The The QGroupBox widget provides a group box frame with a title. +\o \image motif-tabwidget.png + The QTabWidget class provides a stack of tabbed widgets. +\o \image motif-frame.png + The QFrame widget provides a simple decorated container for other widgets. +\o \image motif-toolbox.png + The QToolBox class provides a column of tabbed widget items. +\endtable - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage motif-slider.png -\raw HTML - -\endraw -\inlineimage motif-lineedit.png -\raw HTML -
-\endraw -The QSlider widget provides a vertical or horizontal slider.\raw HTML - -\endraw -The QLineEdit widget is a one-line text editor.\raw HTML -
-\endraw -\inlineimage motif-combobox.png -\raw HTML - -\endraw -\inlineimage motif-doublespinbox.png -\raw HTML -
-\endraw -The QComboBox widget is a combined button and pop-up list.\raw HTML - -\endraw -The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered.\raw HTML -
-\endraw -\inlineimage motif-spinbox.png -\raw HTML - -\endraw -\inlineimage motif-timeedit.png -\raw HTML -
-\endraw -The QSpinBox class provides a spin box widget.\raw HTML - -\endraw -The QTimeEdit class provides a widget for editing times.\raw HTML -
-\endraw -\inlineimage motif-dateedit.png -\raw HTML - -\endraw -\inlineimage motif-datetimeedit.png -\raw HTML -
-\endraw -The QDateEdit class provides a widget for editing dates.\raw HTML - -\endraw -The QDateTimeEdit class provides a widget for editing dates and times.\raw HTML -
-\endraw -\inlineimage motif-textedit.png -\raw HTML - -\endraw -\inlineimage motif-horizontalscrollbar.png -\raw HTML -
-\endraw -The QTextEdit class provides a widget that is used to edit and - display both plain and rich text.\raw HTML - -\endraw -The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation.\raw HTML -
-\endraw -\inlineimage motif-dial.png -\raw HTML - -\endraw -\inlineimage motif-calendarwidget.png -\raw HTML -
-\endraw -The QDial class provides a rounded range control (like a - speedometer or potentiometer).\raw HTML - -\endraw -The QCalendarWidget class provides a monthly calendar widget that can be used to select dates.\raw HTML -
-\endraw -\inlineimage motif-fontcombobox.png -\raw HTML -
-\endraw -The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts.\raw HTML -
-\endraw +\section2 Item Views + +\table 100% +\row +\o \image motif-listview.png + The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view. +\o \image motif-treeview.png + The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view. +\o \image motif-tableview.png + The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\o +\o +\endtable + +\section2 Display Widgets + +\table 100% +\row +\o \image motif-progressbar.png + The QProgressBar widget provides a horizontal progress bar. +\o \image motif-label.png + The QLabel widget provides a text or image display. +\o \image motif-lcdnumber.png + The QLCDNumber widget displays a number with LCD-like digits. +\endtable + +\section2 Input Widgets + +\table 100% +\row +\o \image motif-lineedit.png + The QLineEdit widget is a one-line text editor. +\o \image motif-dateedit.png + The QDateEdit class provides a widget for editing dates. +\o \image motif-timeedit.png + The QTimeEdit class provides a widget for editing times. +\o \image motif-datetimeedit.png + The QDateTimeEdit class provides a widget for editing dates and times. +\endtable + +\table 100% +\row +\o \image motif-slider.png + The QSlider widget provides a vertical or horizontal slider. +\o \image motif-combobox.png + The QComboBox widget is a combined button and pop-up list. +\o \image motif-spinbox.png + The QSpinBox class provides a spin box widget. +\endtable + +\table 100% +\row +\o \image motif-fontcombobox.png + The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts. +\o \image motif-doublespinbox.png + The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered. +\o \image motif-horizontalscrollbar.png + The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation. +\endtable + +\table 100% +\row +\o \image motif-dial.png + The QDial class provides a rounded range control (like a speedometer or potentiometer). +\o \image motif-textedit.png + The QTextEdit class provides a widget that is used to edit and display both plain and rich text. +\o \image motif-calendarwidget.png + The QCalendarWidget class provides a monthly calendar widget that can be used to select dates. +\endtable */ diff --git a/doc/src/widgets-and-layouts/gallery-plastique.qdoc b/doc/src/widgets-and-layouts/gallery-plastique.qdoc index 0ea62ee..5f2a1ec 100644 --- a/doc/src/widgets-and-layouts/gallery-plastique.qdoc +++ b/doc/src/widgets-and-layouts/gallery-plastique.qdoc @@ -34,345 +34,105 @@ This page shows some of the widgets available in Qt when configured to use the "plastique" style. -\raw HTML -

Buttons

+\section2 Buttons - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage plastique-pushbutton.png -\raw HTML - -\endraw -\inlineimage plastique-toolbutton.png -\raw HTML -
-\endraw -The QPushButton widget provides a command button.\raw HTML - -\endraw -The QToolButton class provides a quick-access button to commands - or options, usually used inside a QToolBar.\raw HTML -
-\endraw -\inlineimage plastique-checkbox.png -\raw HTML - -\endraw -\inlineimage plastique-radiobutton.png -\raw HTML -
-\endraw -The QCheckBox widget provides a checkbox with a text label.\raw HTML - -\endraw -The QRadioButton widget provides a radio button with a text or pixmap label.\raw HTML -
-\endraw -\raw HTML -

Containers

+\table 100% +\row +\o \image plastique-pushbutton.png + \caption The QPushButton widget provides a command button. +\o \image plastique-toolbutton.png + \caption The QToolButton class provides a quick-access button to commands + or options, usually used inside a QToolBar. +\endtable - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage plastique-groupbox.png -\raw HTML - -\endraw -\inlineimage plastique-tabwidget.png -\raw HTML -
-\endraw -The QGroupBox widget provides a group box frame with a title.\raw HTML - -\endraw -The QTabWidget class provides a stack of tabbed widgets.\raw HTML -
-\endraw -\inlineimage plastique-frame.png -\raw HTML - -\endraw -\inlineimage plastique-toolbox.png -\raw HTML -
-\endraw -The QFrame widget provides a simple decorated container for other widgets.\raw HTML - -\endraw -The QToolBox class provides a column of tabbed widget items.\raw HTML -
-\endraw -\raw HTML -

Item Views

+\table 100% +\row +\o \image plastique-checkbox.png + \caption The QCheckBox widget provides a checkbox with a text label. +\o \image plastique-radiobutton.png + \caption The QRadioButton widget provides a radio button with a text or pixmap label. +\endtable - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage plastique-listview.png -\raw HTML - -\endraw -\inlineimage plastique-treeview.png -\raw HTML -
-\endraw -The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view.\raw HTML - -\endraw -The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view.\raw HTML -
-\endraw -\inlineimage plastique-tableview.png -\raw HTML -
-\endraw -The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\raw HTML -
-\endraw -\raw HTML -

Display Widgets

+\section2 Containers - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage plastique-progressbar.png -\raw HTML - -\endraw -\inlineimage plastique-lcdnumber.png -\raw HTML -
-\endraw -The QProgressBar widget provides a horizontal progress bar.\raw HTML - -\endraw -The QLCDNumber widget displays a number with LCD-like digits.\raw HTML -
-\endraw -\inlineimage plastique-label.png -\raw HTML -
-\endraw -The QLabel widget provides a text or image display.\raw HTML -
-\endraw -\raw HTML -

Input Widgets

+\table 100% +\row +\o \image plastique-groupbox.png + The The QGroupBox widget provides a group box frame with a title. +\o \image plastique-tabwidget.png + The QTabWidget class provides a stack of tabbed widgets. +\o \image plastique-frame.png + The QFrame widget provides a simple decorated container for other widgets. +\o \image plastique-toolbox.png + The QToolBox class provides a column of tabbed widget items. +\endtable - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage plastique-slider.png -\raw HTML - -\endraw -\inlineimage plastique-lineedit.png -\raw HTML -
-\endraw -The QSlider widget provides a vertical or horizontal slider.\raw HTML - -\endraw -The QLineEdit widget is a one-line text editor.\raw HTML -
-\endraw -\inlineimage plastique-combobox.png -\raw HTML - -\endraw -\inlineimage plastique-doublespinbox.png -\raw HTML -
-\endraw -The QComboBox widget is a combined button and pop-up list.\raw HTML - -\endraw -The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered.\raw HTML -
-\endraw -\inlineimage plastique-spinbox.png -\raw HTML - -\endraw -\inlineimage plastique-timeedit.png -\raw HTML -
-\endraw -The QSpinBox class provides a spin box widget.\raw HTML - -\endraw -The QTimeEdit class provides a widget for editing times.\raw HTML -
-\endraw -\inlineimage plastique-dateedit.png -\raw HTML - -\endraw -\inlineimage plastique-datetimeedit.png -\raw HTML -
-\endraw -The QDateEdit class provides a widget for editing dates.\raw HTML - -\endraw -The QDateTimeEdit class provides a widget for editing dates and times.\raw HTML -
-\endraw -\inlineimage plastique-textedit.png -\raw HTML - -\endraw -\inlineimage plastique-horizontalscrollbar.png -\raw HTML -
-\endraw -The QTextEdit class provides a widget that is used to edit and - display both plain and rich text.\raw HTML - -\endraw -The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation.\raw HTML -
-\endraw -\inlineimage plastique-dial.png -\raw HTML - -\endraw -\inlineimage plastique-calendarwidget.png -\raw HTML -
-\endraw -The QDial class provides a rounded range control (like a - speedometer or potentiometer).\raw HTML - -\endraw -The QCalendarWidget class provides a monthly calendar widget that can be used to select dates.\raw HTML -
-\endraw -\inlineimage plastique-fontcombobox.png -\raw HTML -
-\endraw -The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts.\raw HTML -
-\endraw +\section2 Item Views + +\table 100% +\row +\o \image plastique-listview.png + The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view. +\o \image plastique-treeview.png + The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view. +\o \image plastique-tableview.png + The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\o +\o +\endtable + +\section2 Display Widgets + +\table 100% +\row +\o \image plastique-progressbar.png + The QProgressBar widget provides a horizontal progress bar. +\o \image plastique-label.png + The QLabel widget provides a text or image display. +\o \image plastique-lcdnumber.png + The QLCDNumber widget displays a number with LCD-like digits. +\endtable + +\section2 Input Widgets + +\table 100% +\row +\o \image plastique-lineedit.png + The QLineEdit widget is a one-line text editor. +\o \image plastique-dateedit.png + The QDateEdit class provides a widget for editing dates. +\o \image plastique-timeedit.png + The QTimeEdit class provides a widget for editing times. +\o \image plastique-datetimeedit.png + The QDateTimeEdit class provides a widget for editing dates and times. +\endtable + +\table 100% +\row +\o \image plastique-slider.png + The QSlider widget provides a vertical or horizontal slider. +\o \image plastique-combobox.png + The QComboBox widget is a combined button and pop-up list. +\o \image plastique-spinbox.png + The QSpinBox class provides a spin box widget. +\endtable + +\table 100% +\row +\o \image plastique-fontcombobox.png + The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts. +\o \image plastique-doublespinbox.png + The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered. +\o \image plastique-horizontalscrollbar.png + The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation. +\endtable + +\table 100% +\row +\o \image plastique-dial.png + The QDial class provides a rounded range control (like a speedometer or potentiometer). +\o \image plastique-textedit.png + The QTextEdit class provides a widget that is used to edit and display both plain and rich text. +\o \image plastique-calendarwidget.png + The QCalendarWidget class provides a monthly calendar widget that can be used to select dates. +\endtable */ diff --git a/doc/src/widgets-and-layouts/gallery-windows.qdoc b/doc/src/widgets-and-layouts/gallery-windows.qdoc index d3464a0..fe38745 100644 --- a/doc/src/widgets-and-layouts/gallery-windows.qdoc +++ b/doc/src/widgets-and-layouts/gallery-windows.qdoc @@ -34,345 +34,105 @@ This page shows some of the widgets available in Qt when configured to use the "windows" style. -\raw HTML -

Buttons

+\section2 Buttons - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage windows-pushbutton.png -\raw HTML - -\endraw -\inlineimage windows-toolbutton.png -\raw HTML -
-\endraw -The QPushButton widget provides a command button.\raw HTML - -\endraw -The QToolButton class provides a quick-access button to commands - or options, usually used inside a QToolBar.\raw HTML -
-\endraw -\inlineimage windows-checkbox.png -\raw HTML - -\endraw -\inlineimage windows-radiobutton.png -\raw HTML -
-\endraw -The QCheckBox widget provides a checkbox with a text label.\raw HTML - -\endraw -The QRadioButton widget provides a radio button with a text or pixmap label.\raw HTML -
-\endraw -\raw HTML -

Containers

+\table 100% +\row +\o \image windows-pushbutton.png + \caption The QPushButton widget provides a command button. +\o \image windows-toolbutton.png + \caption The QToolButton class provides a quick-access button to commands + or options, usually used inside a QToolBar. +\endtable - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage windows-groupbox.png -\raw HTML - -\endraw -\inlineimage windows-tabwidget.png -\raw HTML -
-\endraw -The QGroupBox widget provides a group box frame with a title.\raw HTML - -\endraw -The QTabWidget class provides a stack of tabbed widgets.\raw HTML -
-\endraw -\inlineimage windows-frame.png -\raw HTML - -\endraw -\inlineimage windows-toolbox.png -\raw HTML -
-\endraw -The QFrame widget provides a simple decorated container for other widgets.\raw HTML - -\endraw -The QToolBox class provides a column of tabbed widget items.\raw HTML -
-\endraw -\raw HTML -

Item Views

+\table 100% +\row +\o \image windows-checkbox.png + \caption The QCheckBox widget provides a checkbox with a text label. +\o \image windows-radiobutton.png + \caption The QRadioButton widget provides a radio button with a text or pixmap label. +\endtable - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage windows-listview.png -\raw HTML - -\endraw -\inlineimage windows-treeview.png -\raw HTML -
-\endraw -The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view.\raw HTML - -\endraw -The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view.\raw HTML -
-\endraw -\inlineimage windows-tableview.png -\raw HTML -
-\endraw -The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\raw HTML -
-\endraw -\raw HTML -

Display Widgets

+\section2 Containers - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage windows-progressbar.png -\raw HTML - -\endraw -\inlineimage windows-lcdnumber.png -\raw HTML -
-\endraw -The QProgressBar widget provides a horizontal progress bar.\raw HTML - -\endraw -The QLCDNumber widget displays a number with LCD-like digits.\raw HTML -
-\endraw -\inlineimage windows-label.png -\raw HTML -
-\endraw -The QLabel widget provides a text or image display.\raw HTML -
-\endraw -\raw HTML -

Input Widgets

+\table 100% +\row +\o \image windows-groupbox.png + The The QGroupBox widget provides a group box frame with a title. +\o \image windows-tabwidget.png + The QTabWidget class provides a stack of tabbed widgets. +\o \image windows-frame.png + The QFrame widget provides a simple decorated container for other widgets. +\o \image windows-toolbox.png + The QToolBox class provides a column of tabbed widget items. +\endtable - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage windows-slider.png -\raw HTML - -\endraw -\inlineimage windows-lineedit.png -\raw HTML -
-\endraw -The QSlider widget provides a vertical or horizontal slider.\raw HTML - -\endraw -The QLineEdit widget is a one-line text editor.\raw HTML -
-\endraw -\inlineimage windows-combobox.png -\raw HTML - -\endraw -\inlineimage windows-doublespinbox.png -\raw HTML -
-\endraw -The QComboBox widget is a combined button and pop-up list.\raw HTML - -\endraw -The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered.\raw HTML -
-\endraw -\inlineimage windows-spinbox.png -\raw HTML - -\endraw -\inlineimage windows-timeedit.png -\raw HTML -
-\endraw -The QSpinBox class provides a spin box widget.\raw HTML - -\endraw -The QTimeEdit class provides a widget for editing times.\raw HTML -
-\endraw -\inlineimage windows-dateedit.png -\raw HTML - -\endraw -\inlineimage windows-datetimeedit.png -\raw HTML -
-\endraw -The QDateEdit class provides a widget for editing dates.\raw HTML - -\endraw -The QDateTimeEdit class provides a widget for editing dates and times.\raw HTML -
-\endraw -\inlineimage windows-textedit.png -\raw HTML - -\endraw -\inlineimage windows-horizontalscrollbar.png -\raw HTML -
-\endraw -The QTextEdit class provides a widget that is used to edit and - display both plain and rich text.\raw HTML - -\endraw -The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation.\raw HTML -
-\endraw -\inlineimage windows-dial.png -\raw HTML - -\endraw -\inlineimage windows-calendarwidget.png -\raw HTML -
-\endraw -The QDial class provides a rounded range control (like a - speedometer or potentiometer).\raw HTML - -\endraw -The QCalendarWidget class provides a monthly calendar widget that can be used to select dates.\raw HTML -
-\endraw -\inlineimage windows-fontcombobox.png -\raw HTML -
-\endraw -The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts.\raw HTML -
-\endraw +\section2 Item Views + +\table 100% +\row +\o \image windows-listview.png + The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view. +\o \image windows-treeview.png + The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view. +\o \image windows-tableview.png + The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\o +\o +\endtable + +\section2 Display Widgets + +\table 100% +\row +\o \image windows-progressbar.png + The QProgressBar widget provides a horizontal progress bar. +\o \image windows-label.png + The QLabel widget provides a text or image display. +\o \image windows-lcdnumber.png + The QLCDNumber widget displays a number with LCD-like digits. +\endtable + +\section2 Input Widgets + +\table 100% +\row +\o \image windows-lineedit.png + The QLineEdit widget is a one-line text editor. +\o \image windows-dateedit.png + The QDateEdit class provides a widget for editing dates. +\o \image windows-timeedit.png + The QTimeEdit class provides a widget for editing times. +\o \image windows-datetimeedit.png + The QDateTimeEdit class provides a widget for editing dates and times. +\endtable + +\table 100% +\row +\o \image windows-slider.png + The QSlider widget provides a vertical or horizontal slider. +\o \image windows-combobox.png + The QComboBox widget is a combined button and pop-up list. +\o \image windows-spinbox.png + The QSpinBox class provides a spin box widget. +\endtable + +\table 100% +\row +\o \image windows-fontcombobox.png + The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts. +\o \image windows-doublespinbox.png + The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered. +\o \image windows-horizontalscrollbar.png + The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation. +\endtable + +\table 100% +\row +\o \image windows-dial.png + The QDial class provides a rounded range control (like a speedometer or potentiometer). +\o \image windows-textedit.png + The QTextEdit class provides a widget that is used to edit and display both plain and rich text. +\o \image windows-calendarwidget.png + The QCalendarWidget class provides a monthly calendar widget that can be used to select dates. +\endtable */ diff --git a/doc/src/widgets-and-layouts/gallery-windowsvista.qdoc b/doc/src/widgets-and-layouts/gallery-windowsvista.qdoc index 00afd52..e017a2c 100644 --- a/doc/src/widgets-and-layouts/gallery-windowsvista.qdoc +++ b/doc/src/widgets-and-layouts/gallery-windowsvista.qdoc @@ -34,345 +34,105 @@ This page shows some of the widgets available in Qt when configured to use the "windowsvista" style. -\raw HTML -

Buttons

+\section2 Buttons - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage windowsvista-pushbutton.png -\raw HTML - -\endraw -\inlineimage windowsvista-toolbutton.png -\raw HTML -
-\endraw -The QPushButton widget provides a command button.\raw HTML - -\endraw -The QToolButton class provides a quick-access button to commands - or options, usually used inside a QToolBar.\raw HTML -
-\endraw -\inlineimage windowsvista-checkbox.png -\raw HTML - -\endraw -\inlineimage windowsvista-radiobutton.png -\raw HTML -
-\endraw -The QCheckBox widget provides a checkbox with a text label.\raw HTML - -\endraw -The QRadioButton widget provides a radio button with a text or pixmap label.\raw HTML -
-\endraw -\raw HTML -

Containers

+\table 100% +\row +\o \image windowsvista-pushbutton.png + \caption The QPushButton widget provides a command button. +\o \image windowsvista-toolbutton.png + \caption The QToolButton class provides a quick-access button to commands + or options, usually used inside a QToolBar. +\endtable - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage windowsvista-groupbox.png -\raw HTML - -\endraw -\inlineimage windowsvista-tabwidget.png -\raw HTML -
-\endraw -The QGroupBox widget provides a group box frame with a title.\raw HTML - -\endraw -The QTabWidget class provides a stack of tabbed widgets.\raw HTML -
-\endraw -\inlineimage windowsvista-frame.png -\raw HTML - -\endraw -\inlineimage windowsvista-toolbox.png -\raw HTML -
-\endraw -The QFrame widget provides a simple decorated container for other widgets.\raw HTML - -\endraw -The QToolBox class provides a column of tabbed widget items.\raw HTML -
-\endraw -\raw HTML -

Item Views

+\table 100% +\row +\o \image windowsvista-checkbox.png + \caption The QCheckBox widget provides a checkbox with a text label. +\o \image windowsvista-radiobutton.png + \caption The QRadioButton widget provides a radio button with a text or pixmap label. +\endtable - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage windowsvista-listview.png -\raw HTML - -\endraw -\inlineimage windowsvista-treeview.png -\raw HTML -
-\endraw -The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view.\raw HTML - -\endraw -The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view.\raw HTML -
-\endraw -\inlineimage windowsvista-tableview.png -\raw HTML -
-\endraw -The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\raw HTML -
-\endraw -\raw HTML -

Display Widgets

+\section2 Containers - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage windowsvista-progressbar.png -\raw HTML - -\endraw -\inlineimage windowsvista-lcdnumber.png -\raw HTML -
-\endraw -The QProgressBar widget provides a horizontal progress bar.\raw HTML - -\endraw -The QLCDNumber widget displays a number with LCD-like digits.\raw HTML -
-\endraw -\inlineimage windowsvista-label.png -\raw HTML -
-\endraw -The QLabel widget provides a text or image display.\raw HTML -
-\endraw -\raw HTML -

Input Widgets

+\table 100% +\row +\o \image windowsvista-groupbox.png + The The QGroupBox widget provides a group box frame with a title. +\o \image windowsvista-tabwidget.png + The QTabWidget class provides a stack of tabbed widgets. +\o \image windowsvista-frame.png + The QFrame widget provides a simple decorated container for other widgets. +\o \image windowsvista-toolbox.png + The QToolBox class provides a column of tabbed widget items. +\endtable - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage windowsvista-slider.png -\raw HTML - -\endraw -\inlineimage windowsvista-lineedit.png -\raw HTML -
-\endraw -The QSlider widget provides a vertical or horizontal slider.\raw HTML - -\endraw -The QLineEdit widget is a one-line text editor.\raw HTML -
-\endraw -\inlineimage windowsvista-combobox.png -\raw HTML - -\endraw -\inlineimage windowsvista-doublespinbox.png -\raw HTML -
-\endraw -The QComboBox widget is a combined button and pop-up list.\raw HTML - -\endraw -The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered.\raw HTML -
-\endraw -\inlineimage windowsvista-spinbox.png -\raw HTML - -\endraw -\inlineimage windowsvista-timeedit.png -\raw HTML -
-\endraw -The QSpinBox class provides a spin box widget.\raw HTML - -\endraw -The QTimeEdit class provides a widget for editing times.\raw HTML -
-\endraw -\inlineimage windowsvista-dateedit.png -\raw HTML - -\endraw -\inlineimage windowsvista-datetimeedit.png -\raw HTML -
-\endraw -The QDateEdit class provides a widget for editing dates.\raw HTML - -\endraw -The QDateTimeEdit class provides a widget for editing dates and times.\raw HTML -
-\endraw -\inlineimage windowsvista-textedit.png -\raw HTML - -\endraw -\inlineimage windowsvista-horizontalscrollbar.png -\raw HTML -
-\endraw -The QTextEdit class provides a widget that is used to edit and - display both plain and rich text.\raw HTML - -\endraw -The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation.\raw HTML -
-\endraw -\inlineimage windowsvista-dial.png -\raw HTML - -\endraw -\inlineimage windowsvista-calendarwidget.png -\raw HTML -
-\endraw -The QDial class provides a rounded range control (like a - speedometer or potentiometer).\raw HTML - -\endraw -The QCalendarWidget class provides a monthly calendar widget that can be used to select dates.\raw HTML -
-\endraw -\inlineimage windowsvista-fontcombobox.png -\raw HTML -
-\endraw -The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts.\raw HTML -
-\endraw +\section2 Item Views + +\table 100% +\row +\o \image windowsvista-listview.png + The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view. +\o \image windowsvista-treeview.png + The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view. +\o \image windowsvista-tableview.png + The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\o +\o +\endtable + +\section2 Display Widgets + +\table 100% +\row +\o \image windowsvista-progressbar.png + The QProgressBar widget provides a horizontal progress bar. +\o \image windowsvista-label.png + The QLabel widget provides a text or image display. +\o \image windowsvista-lcdnumber.png + The QLCDNumber widget displays a number with LCD-like digits. +\endtable + +\section2 Input Widgets + +\table 100% +\row +\o \image windowsvista-lineedit.png + The QLineEdit widget is a one-line text editor. +\o \image windowsvista-dateedit.png + The QDateEdit class provides a widget for editing dates. +\o \image windowsvista-timeedit.png + The QTimeEdit class provides a widget for editing times. +\o \image windowsvista-datetimeedit.png + The QDateTimeEdit class provides a widget for editing dates and times. +\endtable + +\table 100% +\row +\o \image windowsvista-slider.png + The QSlider widget provides a vertical or horizontal slider. +\o \image windowsvista-combobox.png + The QComboBox widget is a combined button and pop-up list. +\o \image windowsvista-spinbox.png + The QSpinBox class provides a spin box widget. +\endtable + +\table 100% +\row +\o \image windowsvista-fontcombobox.png + The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts. +\o \image windowsvista-doublespinbox.png + The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered. +\o \image windowsvista-horizontalscrollbar.png + The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation. +\endtable + +\table 100% +\row +\o \image windowsvista-dial.png + The QDial class provides a rounded range control (like a speedometer or potentiometer). +\o \image windowsvista-textedit.png + The QTextEdit class provides a widget that is used to edit and display both plain and rich text. +\o \image windowsvista-calendarwidget.png + The QCalendarWidget class provides a monthly calendar widget that can be used to select dates. +\endtable */ diff --git a/doc/src/widgets-and-layouts/gallery-windowsxp.qdoc b/doc/src/widgets-and-layouts/gallery-windowsxp.qdoc index 60c8ff0..f3c53ee 100644 --- a/doc/src/widgets-and-layouts/gallery-windowsxp.qdoc +++ b/doc/src/widgets-and-layouts/gallery-windowsxp.qdoc @@ -34,345 +34,105 @@ This page shows some of the widgets available in Qt when configured to use the "windowsxp" style. -\raw HTML -

Buttons

+\section2 Buttons - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage windowsxp-pushbutton.png -\raw HTML - -\endraw -\inlineimage windowsxp-toolbutton.png -\raw HTML -
-\endraw -The QPushButton widget provides a command button.\raw HTML - -\endraw -The QToolButton class provides a quick-access button to commands - or options, usually used inside a QToolBar.\raw HTML -
-\endraw -\inlineimage windowsxp-checkbox.png -\raw HTML - -\endraw -\inlineimage windowsxp-radiobutton.png -\raw HTML -
-\endraw -The QCheckBox widget provides a checkbox with a text label.\raw HTML - -\endraw -The QRadioButton widget provides a radio button with a text or pixmap label.\raw HTML -
-\endraw -\raw HTML -

Containers

+\table 100% +\row +\o \image windowsxp-pushbutton.png + \caption The QPushButton widget provides a command button. +\o \image windowsxp-toolbutton.png + \caption The QToolButton class provides a quick-access button to commands + or options, usually used inside a QToolBar. +\endtable - -- - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage windowsxp-groupbox.png -\raw HTML - -\endraw -\inlineimage windowsxp-tabwidget.png -\raw HTML -
-\endraw -The QGroupBox widget provides a group box frame with a title.\raw HTML - -\endraw -The QTabWidget class provides a stack of tabbed widgets.\raw HTML -
-\endraw -\inlineimage windowsxp-frame.png -\raw HTML - -\endraw -\inlineimage windowsxp-toolbox.png -\raw HTML -
-\endraw -The QFrame widget provides a simple decorated container for other widgets.\raw HTML - -\endraw -The QToolBox class provides a column of tabbed widget items.\raw HTML -
-\endraw -\raw HTML -

Item Views

+\table 100% +\row +\o \image windowsxp-checkbox.png + \caption The QCheckBox widget provides a checkbox with a text label. +\o \image windowsxp-radiobutton.png + \caption The QRadioButton widget provides a radio button with a text or pixmap label. +\endtable - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage windowsxp-listview.png -\raw HTML - -\endraw -\inlineimage windowsxp-treeview.png -\raw HTML -
-\endraw -The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view.\raw HTML - -\endraw -The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view.\raw HTML -
-\endraw -\inlineimage windowsxp-tableview.png -\raw HTML -
-\endraw -The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\raw HTML -
-\endraw -\raw HTML -

Display Widgets

+\section2 Containers - -- - - - - - - - - - - - - - - -
-\endraw -\inlineimage windowsxp-progressbar.png -\raw HTML - -\endraw -\inlineimage windowsxp-lcdnumber.png -\raw HTML -
-\endraw -The QProgressBar widget provides a horizontal progress bar.\raw HTML - -\endraw -The QLCDNumber widget displays a number with LCD-like digits.\raw HTML -
-\endraw -\inlineimage windowsxp-label.png -\raw HTML -
-\endraw -The QLabel widget provides a text or image display.\raw HTML -
-\endraw -\raw HTML -

Input Widgets

+\table 100% +\row +\o \image windowsxp-groupbox.png + The The QGroupBox widget provides a group box frame with a title. +\o \image windowsxp-tabwidget.png + The QTabWidget class provides a stack of tabbed widgets. +\o \image windowsxp-frame.png + The QFrame widget provides a simple decorated container for other widgets. +\o \image windowsxp-toolbox.png + The QToolBox class provides a column of tabbed widget items. +\endtable - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-\endraw -\inlineimage windowsxp-slider.png -\raw HTML - -\endraw -\inlineimage windowsxp-lineedit.png -\raw HTML -
-\endraw -The QSlider widget provides a vertical or horizontal slider.\raw HTML - -\endraw -The QLineEdit widget is a one-line text editor.\raw HTML -
-\endraw -\inlineimage windowsxp-combobox.png -\raw HTML - -\endraw -\inlineimage windowsxp-doublespinbox.png -\raw HTML -
-\endraw -The QComboBox widget is a combined button and pop-up list.\raw HTML - -\endraw -The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered.\raw HTML -
-\endraw -\inlineimage windowsxp-spinbox.png -\raw HTML - -\endraw -\inlineimage windowsxp-timeedit.png -\raw HTML -
-\endraw -The QSpinBox class provides a spin box widget.\raw HTML - -\endraw -The QTimeEdit class provides a widget for editing times.\raw HTML -
-\endraw -\inlineimage windowsxp-dateedit.png -\raw HTML - -\endraw -\inlineimage windowsxp-datetimeedit.png -\raw HTML -
-\endraw -The QDateEdit class provides a widget for editing dates.\raw HTML - -\endraw -The QDateTimeEdit class provides a widget for editing dates and times.\raw HTML -
-\endraw -\inlineimage windowsxp-textedit.png -\raw HTML - -\endraw -\inlineimage windowsxp-horizontalscrollbar.png -\raw HTML -
-\endraw -The QTextEdit class provides a widget that is used to edit and - display both plain and rich text.\raw HTML - -\endraw -The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation.\raw HTML -
-\endraw -\inlineimage windowsxp-dial.png -\raw HTML - -\endraw -\inlineimage windowsxp-calendarwidget.png -\raw HTML -
-\endraw -The QDial class provides a rounded range control (like a - speedometer or potentiometer).\raw HTML - -\endraw -The QCalendarWidget class provides a monthly calendar widget that can be used to select dates.\raw HTML -
-\endraw -\inlineimage windowsxp-fontcombobox.png -\raw HTML -
-\endraw -The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts.\raw HTML -
-\endraw +\section2 Item Views + +\table 100% +\row +\o \image windowsxp-listview.png + The QListView class provides a default model/view implementation of a list/icon view. The QListWidget class provides a classic item-based list/icon view. +\o \image windowsxp-treeview.png + The QTreeView class provides a default model/view implementation of a tree view. The QTreeWidget class provides a classic item-based tree view. +\o \image windowsxp-tableview.png + The QTableView class provides a default model/view implementation of a table view. The QTableWidget class provides a classic item-based table view.\o +\o +\endtable + +\section2 Display Widgets + +\table 100% +\row +\o \image windowsxp-progressbar.png + The QProgressBar widget provides a horizontal progress bar. +\o \image windowsxp-label.png + The QLabel widget provides a text or image display. +\o \image windowsxp-lcdnumber.png + The QLCDNumber widget displays a number with LCD-like digits. +\endtable + +\section2 Input Widgets + +\table 100% +\row +\o \image windowsxp-lineedit.png + The QLineEdit widget is a one-line text editor. +\o \image windowsxp-dateedit.png + The QDateEdit class provides a widget for editing dates. +\o \image windowsxp-timeedit.png + The QTimeEdit class provides a widget for editing times. +\o \image windowsxp-datetimeedit.png + The QDateTimeEdit class provides a widget for editing dates and times. +\endtable + +\table 100% +\row +\o \image windowsxp-slider.png + The QSlider widget provides a vertical or horizontal slider. +\o \image windowsxp-combobox.png + The QComboBox widget is a combined button and pop-up list. +\o \image windowsxp-spinbox.png + The QSpinBox class provides a spin box widget. +\endtable + +\table 100% +\row +\o \image windowsxp-fontcombobox.png + The QFontComboBox widget is a specialized combobox that enables fonts to be selected from a pop-up list containing previews of available fonts. +\o \image windowsxp-doublespinbox.png + The QDoubleSpinBox class provides a spin box widget that allows double precision floating point numbers to be entered. +\o \image windowsxp-horizontalscrollbar.png + The QScrollBar widget provides a vertical or horizontal scroll bar. Here, we show a scroll bar with horizontal orientation. +\endtable + +\table 100% +\row +\o \image windowsxp-dial.png + The QDial class provides a rounded range control (like a speedometer or potentiometer). +\o \image windowsxp-textedit.png + The QTextEdit class provides a widget that is used to edit and display both plain and rich text. +\o \image windowsxp-calendarwidget.png + The QCalendarWidget class provides a monthly calendar widget that can be used to select dates. +\endtable */ -- cgit v0.12 From 21fd6c0d818f3f4a3efa8904c8ddbfeb3a1e931d Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Mon, 13 Dec 2010 12:25:54 +0100 Subject: doc: Replaced some \raw and \endraw uses with \table and \endtable In DITA XML, there is no straightforward way to translate raw html into DITA XML, because the XML stream writer automagically escapes all the raw html elements. So I am beginning to replace uses of the \raw command with \table, which gets output correctly. The problem is the XML stream writer must see each XML element start and end, because it keeps them on a stack. When you output XML elements with the writeCharacters() function, it escapes the '<' and '>' of any XML elements the character string contains. --- doc/src/widgets-and-layouts/gallery.qdoc | 112 +++++++++---------------------- 1 file changed, 30 insertions(+), 82 deletions(-) diff --git a/doc/src/widgets-and-layouts/gallery.qdoc b/doc/src/widgets-and-layouts/gallery.qdoc index 201817b..d11d9c8 100644 --- a/doc/src/widgets-and-layouts/gallery.qdoc +++ b/doc/src/widgets-and-layouts/gallery.qdoc @@ -34,103 +34,51 @@ with the native desktop enviroment. Below, you can find links to the various widget styles that are supplied with Qt 4. - \raw HTML - - - - - - - - - - - - - - - - - - - - - - - - -
- \endraw - \image plastique-tabwidget.png Plastique Style Widget Gallery - - \bold{\l{Plastique Style Widget Gallery}} + \table + \row + \o \image plastique-tabwidget.png Plastique Style Widget Gallery + \caption \l{Plastique Style Widget Gallery} The Plastique style is provided by QPlastiqueStyle. - \raw HTML - - \endraw - \image windowsxp-tabwidget.png Windows XP Style Widget Gallery - - \bold{\l{Windows XP Style Widget Gallery}} + \o \image windowsxp-tabwidget.png Windows XP Style Widget Gallery + \caption \l{Windows XP Style Widget Gallery} The Windows XP style is provided by QWindowsXPStyle. - \raw HTML -
- \endraw - \image gtk-tabwidget.png GTK Style Widget Gallery + \o \image windows-tabwidget.png Windows Style Widget Gallery + \caption \l{Windows Style Widget Gallery} - \bold{\l{GTK Style Widget Gallery}} - - The GTK style is provided by QGtkStyle. - \raw HTML - - \endraw - \image macintosh-tabwidget.png Macintosh Style Widget Gallery + The Windows style is provided by QWindowsStyle. + \endtable - \bold{\l{Macintosh Style Widget Gallery}} + \table + \row + \o \image macintosh-tabwidget.png Macintosh Style Widget Gallery + \caption \l{Macintosh Style Widget Gallery} The Macintosh style is provided by QMacStyle. - \raw HTML -
- \endraw - \image cleanlooks-tabwidget.png Cleanlooks Style Widget Gallery - - \bold{\l{Cleanlooks Style Widget Gallery}} + \o \image cleanlooks-tabwidget.png Cleanlooks Style Widget Gallery + \caption \l{Cleanlooks Style Widget Gallery} The Cleanlooks style is provided by QCleanlooksStyle. - \raw HTML - - \endraw - \image windowsvista-tabwidget.png Windows Vista Style Widget Gallery - - \bold{\l{Windows Vista Style Widget Gallery}} + \o \image windowsvista-tabwidget.png Windows Vista Style Widget Gallery + \caption \l{Windows Vista Style Widget Gallery} The Windows Vista style is provided by QWindowsVistaStyle. - \raw HTML -
- \endraw - \image motif-tabwidget.png Motif Style Widget Gallery + \endtable - \bold{\l{Motif Style Widget Gallery}} + \table + \row + \o \image gtk-tabwidget.png GTK Style Widget Gallery + \caption \l{GTK Style Widget Gallery} - The Motif style is provided by QMotifStyle. - \raw HTML - - \endraw - \image windows-tabwidget.png Windows Style Widget Gallery - - \bold{\l{Windows Style Widget Gallery}} - - The Windows style is provided by QWindowsStyle. - \raw HTML -
- \endraw - \image cde-tabwidget.png CDE Style Widget Gallery + The GTK style is provided by QGtkStyle. + \o \image motif-tabwidget.png Motif Style Widget Gallery + \caption \l{Motif Style Widget Gallery} - \bold{\l{CDE Style Widget Gallery}} + The Motif style is provided by QMotifStyle. + \o \image cde-tabwidget.png CDE Style Widget Gallery + \caption \l{CDE Style Widget Gallery} The Common Desktop Environment style is provided by QCDEStyle. - \raw HTML -
- \endraw + \endtable */ -- cgit v0.12 From 6902cd0d68c63e3a0d0dd1593a77f54c002ae363 Mon Sep 17 00:00:00 2001 From: Kim Motoyoshi Kalland Date: Mon, 13 Dec 2010 12:56:36 +0100 Subject: Corrected documentation for QImage::fill(). Reviewed-by: Samuel --- src/gui/image/qimage.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index bb94788c..897cb64 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -2018,11 +2018,11 @@ void QImage::fill(Qt::GlobalColor color) Fills the entire image with the given \a color. If the depth of the image is 1, the image will be filled with 1 if - \a color equals Qt::color0; it will otherwise be filled with 0. + \a color equals Qt::color1; it will otherwise be filled with 0. If the depth of the image is 8, the image will be filled with the index corresponding the \a color in the color table if present; it - will otherwise be filled with 0.| + will otherwise be filled with 0. \since 4.8 */ -- cgit v0.12 From 7ee2e9fd873b2c38a1a362170c4a0e4754cfd22a Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Mon, 18 Oct 2010 09:28:14 +0200 Subject: Cocoa: native child filedialogs sometimes shows non-native on screen The reason is that we make all child dialogs of a modal dialogs non-modaly shaddowed, as documented. But we forgot to check if a window is actually visible before raising it to front. Also adding harmless auto release pool Rev-By: prasanth --- src/gui/kernel/qeventdispatcher_mac.mm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qeventdispatcher_mac.mm b/src/gui/kernel/qeventdispatcher_mac.mm index 515c6d3..dc926e0 100644 --- a/src/gui/kernel/qeventdispatcher_mac.mm +++ b/src/gui/kernel/qeventdispatcher_mac.mm @@ -844,7 +844,7 @@ static void setChildrenWorksWhenModal(QWidget *widget, bool worksWhenModal) NSWindow *window = qt_mac_window_for(dialogs[i]); if (window && [window isKindOfClass:[NSPanel class]]) { [static_cast(window) setWorksWhenModal:worksWhenModal]; - if (worksWhenModal && dialogs[i]->isVisible()){ + if (worksWhenModal && [window isVisible]){ [window orderFront:window]; } } @@ -856,6 +856,7 @@ void QEventDispatcherMacPrivate::updateChildrenWorksWhenModal() // Make the dialog children of the widget // active. And make the dialog children of // the previous modal dialog unactive again: + QMacCocoaAutoReleasePool pool; int size = cocoaModalSessionStack.size(); if (size > 0){ if (QWidget *prevModal = cocoaModalSessionStack[size-1].widget) -- cgit v0.12 From a04b19d34c23df5bb6e4f499b6b12c7a1211969a Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Mon, 18 Oct 2010 15:27:02 +0200 Subject: Cocoa: make sure stays on top child windows are not levelled down [NSWindow addChild] levels the child to the level of the parent. In Qt we do not want this. So we do a check after setting up the parent-child relationship for this. Reviewed-by: cduclos --- src/gui/kernel/qwidget_mac.mm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm index 997419b..08af3ac 100644 --- a/src/gui/kernel/qwidget_mac.mm +++ b/src/gui/kernel/qwidget_mac.mm @@ -2822,8 +2822,12 @@ void QWidgetPrivate::setSubWindowStacking(bool set) if (NSWindow *pwin = [qt_mac_nativeview_for(parent) window]) { if (set) { Qt::WindowType ptype = parent->window()->windowType(); - if ([pwin isVisible] && (ptype == Qt::Window || ptype == Qt::Dialog) && ![qwin parentWindow]) + if ([pwin isVisible] && (ptype == Qt::Window || ptype == Qt::Dialog) && ![qwin parentWindow]) { + NSInteger level = [qwin level]; [pwin addChildWindow:qwin ordered:NSWindowAbove]; + if ([qwin level] < level) + [qwin setLevel:level]; + } } else { [pwin removeChildWindow:qwin]; } @@ -2837,8 +2841,12 @@ void QWidgetPrivate::setSubWindowStacking(bool set) if (NSWindow *cwin = [qt_mac_nativeview_for(child) window]) { if (set) { Qt::WindowType ctype = child->window()->windowType(); - if ([cwin isVisible] && (ctype == Qt::Window || ctype == Qt::Dialog) && ![cwin parentWindow]) + if ([cwin isVisible] && (ctype == Qt::Window || ctype == Qt::Dialog) && ![cwin parentWindow]) { + NSInteger level = [cwin level]; [qwin addChildWindow:cwin ordered:NSWindowAbove]; + if ([cwin level] < level) + [cwin setLevel:level]; + } } else { [qwin removeChildWindow:qt_mac_window_for(child)]; } -- cgit v0.12 From 19148694b1e094ad968e26e6fab448d3d2c7f4d4 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Mon, 18 Oct 2010 15:30:12 +0200 Subject: Cocoa: cannot use staysOnTop flag for native file dialogs We cannot mix staysOnTop and native file dialogs, since Cocoa will anyway set it back to NSModalPanelWindowLevel when running it app modal. There are ways to work around this issue, but the file dialog also has a button for showing a "create directory" modal panel, and this we cannot control. Reviewed-by: cduclos --- src/gui/dialogs/qfiledialog_mac.mm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gui/dialogs/qfiledialog_mac.mm b/src/gui/dialogs/qfiledialog_mac.mm index 87850a7..1e13113 100644 --- a/src/gui/dialogs/qfiledialog_mac.mm +++ b/src/gui/dialogs/qfiledialog_mac.mm @@ -719,6 +719,14 @@ bool QFileDialogPrivate::setVisible_sys(bool visible) if (!visible == q->isHidden()) return false; + if (q->windowFlags() & Qt::WindowStaysOnTopHint) { + // The native file dialog tries all it can to stay + // on the NSModalPanel level. And it might also show + // its own "create directory" dialog that we cannot control. + // So we need to use the non-native version in this case... + return false; + } + #ifndef QT_MAC_USE_COCOA return visible ? showCarbonNavServicesDialog() : hideCarbonNavServicesDialog(); #else -- cgit v0.12 From 3e2cb226277998a7841c85048493c89bc1ccc95f Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Mon, 18 Oct 2010 16:12:46 +0200 Subject: Cocoa: Fix addChildWindow bug where we connect a grandparent to a child A plain bug where we ask for a list of widgets, but forget that qFindChildren is recursive, which is not what we want. Reviewed-by: jbache --- src/gui/kernel/qwidget_mac.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm index 08af3ac..b89cb88 100644 --- a/src/gui/kernel/qwidget_mac.mm +++ b/src/gui/kernel/qwidget_mac.mm @@ -2834,9 +2834,9 @@ void QWidgetPrivate::setSubWindowStacking(bool set) } } - QList widgets = q->findChildren(); + QObjectList widgets = q->children(); for (int i=0; i(widgets.at(i)); if (child && child->isWindow()) { if (NSWindow *cwin = [qt_mac_nativeview_for(child) window]) { if (set) { -- cgit v0.12 From 780b4d84205f16c46f6c5e85e6c1925beb4e4dba Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Mon, 22 Nov 2010 11:08:34 +0100 Subject: Cocoa: combobox does not hightlight when mouse re-hovers the first item The reason is that on Mac, the highlight is supposed to switch off when the mouse moves out of the drop down menu. On X11, it stays. So there is a separate code path for this in qcombobox.cpp. But it fails to clear the index set in the view when the mouse leaves, which stops the item from re-highligh when the mouse re-enters. Reviewed-by: ogoffart --- src/gui/widgets/qcombobox.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp index 7859bdc..5a4e507 100644 --- a/src/gui/widgets/qcombobox.cpp +++ b/src/gui/widgets/qcombobox.cpp @@ -398,7 +398,7 @@ void QComboBoxPrivateContainer::leaveEvent(QEvent *) #ifdef Q_WS_MAC QStyleOptionComboBox opt = comboStyleOption(); if (combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo)) - view->clearSelection(); + view->setCurrentIndex(QModelIndex()); #endif } -- cgit v0.12 From d9004ddf237a09f3b7f25128ceb83a0e79e7b1aa Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Mon, 13 Dec 2010 13:39:34 +0100 Subject: Cocoa: popup hides behind window Reason: when cocoa receives a mouse press/release in a window, it finds the correct view inside that window and sends the mouse event to it. But NSWindow also does some other stuff just before sending the event, like raise and lower windows. So when we override sendEvent, and more over, do not call [super sendEvent], we stop this raise/lower etc from working. So, to make this work again, I partially revert change 0b2eab87ad3bd73a0744469a45c29ca098649c9b Task-number: QTBUG-15638, QTBUG-1517 Reviewed-by: Fabien Freling --- src/gui/kernel/qcocoasharedwindowmethods_mac_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h index ddf1a27..1e2e71b 100644 --- a/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h +++ b/src/gui/kernel/qcocoasharedwindowmethods_mac_p.h @@ -182,7 +182,7 @@ QT_END_NAMESPACE bool handled = false; // sometimes need to redirect mouse events to the popup. QWidget *popup = qAppInstance()->activePopupWidget(); - if (popup) { + if (popup && popup != widget) { switch([event type]) { case NSLeftMouseDown: -- cgit v0.12 From 8e6078401562d40d2e63c4a2c769843088ec3350 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Fri, 10 Dec 2010 16:07:25 +0100 Subject: Make sure num_glyphs pass to HarfBuzz is large enough Currently we only pass the num_glyphs for the run to HB_ShapeItem, but it can be less then the string length for this run because of Unicode surrogates. Thus, we need to pass at least the length of that run as num_glyphs to HB (given that we have enough space allocated because for the entire string), if that's still not enough, we will do ensureSpace again according to the num_glyphs returned by HB and move remaining glyphs backwards. Task-number: QTBUG-15679 Reviewed-by: Lars Knoll --- src/gui/text/qtextengine.cpp | 5 ++++- tests/auto/qtextlayout/tst_qtextlayout.cpp | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 06eed55..96379e6 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -1233,6 +1233,8 @@ void QTextEngine::shapeTextWithHarfbuzz(int item) const shaper_item.num_glyphs -= itemBoundaries[k + 1]; } shaper_item.initialGlyphCount = shaper_item.num_glyphs; + if (shaper_item.num_glyphs < shaper_item.item.length) + shaper_item.num_glyphs = shaper_item.item.length; QFontEngine *actualFontEngine = font; uint engineIdx = 0; @@ -1257,7 +1259,8 @@ void QTextEngine::shapeTextWithHarfbuzz(int item) const } const QGlyphLayout g = availableGlyphs(&si).mid(glyph_pos); - moveGlyphData(g.mid(shaper_item.num_glyphs), g.mid(shaper_item.initialGlyphCount), remaining_glyphs); + if (shaper_item.num_glyphs > shaper_item.item.length) + moveGlyphData(g.mid(shaper_item.num_glyphs), g.mid(shaper_item.initialGlyphCount), remaining_glyphs); shaper_item.glyphs = g.glyphs; shaper_item.attributes = g.attributes; diff --git a/tests/auto/qtextlayout/tst_qtextlayout.cpp b/tests/auto/qtextlayout/tst_qtextlayout.cpp index dcc43d0..4f4413f 100644 --- a/tests/auto/qtextlayout/tst_qtextlayout.cpp +++ b/tests/auto/qtextlayout/tst_qtextlayout.cpp @@ -125,6 +125,7 @@ private slots: void lineWidthFromBOM(); void textWidthVsWIdth(); + void textWithSurrogates_qtbug15679(); private: QFont testFont; @@ -1412,6 +1413,24 @@ void tst_QTextLayout::textWidthVsWIdth() } } +void tst_QTextLayout::textWithSurrogates_qtbug15679() +{ + QString str = QString::fromUtf8("🀀a🀀"); + QTextLayout layout(str); + layout.beginLayout(); + QTextLine line = layout.createLine(); + layout.endLayout(); + + qreal x[6]; + for (int i = 0; i < 6; i++) + x[i] = line.cursorToX(i); + + // If the first and third character are using the same + // font, they must have the same advance (since they + // are surrogate pairs, we need to add two for each + // character) + QCOMPARE(x[2] - x[0], x[5] - x[3]); +} QTEST_MAIN(tst_QTextLayout) #include "tst_qtextlayout.moc" -- cgit v0.12 From 69ed34d2aa77a3bacc7f66797baa514f35358b7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Mon, 13 Dec 2010 14:21:39 +0100 Subject: Fixed GL 2 engine rendering of images / pixmaps above max texture size. Down-scale images or pixmaps that are above the max texture size. Not optimal performance-wise, but better than failing. Task-number: QTBUG-16033 Reviewed-by: Eskil Abrahamsen Blomfeldt --- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 52 +++++++++++++++++++--- .../gl2paintengineex/qpaintengineex_opengl2_p.h | 2 + 2 files changed, 49 insertions(+), 5 deletions(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index 4a64f39..668a3f0 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -163,6 +163,8 @@ void QGL2PaintEngineExPrivate::setBrush(const QBrush& brush) Q_ASSERT(newStyle != Qt::NoBrush); currentBrush = brush; + if (!currentBrushPixmap.isNull()) + currentBrushPixmap = QPixmap(); brushUniformsDirty = true; // All brushes have at least one uniform if (newStyle > Qt::SolidPattern) @@ -221,10 +223,14 @@ void QGL2PaintEngineExPrivate::updateBrushTexture() updateTextureFilter(GL_TEXTURE_2D, GL_CLAMP_TO_EDGE, q->state()->renderHints & QPainter::SmoothPixmapTransform); } else if (style == Qt::TexturePattern) { - const QPixmap& texPixmap = currentBrush.texture(); + currentBrushPixmap = currentBrush.texture(); + + int max_texture_size = ctx->d_func()->maxTextureSize(); + if (currentBrushPixmap.width() > max_texture_size || currentBrushPixmap.height() > max_texture_size) + currentBrushPixmap = currentBrushPixmap.scaled(max_texture_size, max_texture_size, Qt::KeepAspectRatio); glActiveTexture(GL_TEXTURE0 + QT_BRUSH_TEXTURE_UNIT); - QGLTexture *tex = ctx->d_func()->bindTexture(texPixmap, GL_TEXTURE_2D, GL_RGBA, + QGLTexture *tex = ctx->d_func()->bindTexture(currentBrushPixmap, GL_TEXTURE_2D, GL_RGBA, QGLContext::InternalBindOption | QGLContext::CanFlipNativePixmapBindOption); updateTextureFilter(GL_TEXTURE_2D, GL_REPEAT, q->state()->renderHints & QPainter::SmoothPixmapTransform); @@ -1305,13 +1311,30 @@ void QGL2PaintEngineEx::transformChanged() } +static const QRectF scaleRect(const QRectF &r, qreal sx, qreal sy) +{ + return QRectF(r.x() * sx, r.y() * sy, r.width() * sx, r.height() * sy); +} + void QGL2PaintEngineEx::drawPixmap(const QRectF& dest, const QPixmap & pixmap, const QRectF & src) { Q_D(QGL2PaintEngineEx); + QGLContext *ctx = d->ctx; + + int max_texture_size = ctx->d_func()->maxTextureSize(); + if (pixmap.width() > max_texture_size || pixmap.height() > max_texture_size) { + QPixmap scaled = pixmap.scaled(max_texture_size, max_texture_size, Qt::KeepAspectRatio); + + const qreal sx = scaled.width() / qreal(pixmap.width()); + const qreal sy = scaled.height() / qreal(pixmap.height()); + + drawPixmap(dest, scaled, scaleRect(src, sx, sy)); + return; + } + ensureActive(); d->transferMode(ImageDrawingMode); - QGLContext *ctx = d->ctx; glActiveTexture(GL_TEXTURE0 + QT_IMAGE_TEXTURE_UNIT); QGLTexture *texture = ctx->d_func()->bindTexture(pixmap, GL_TEXTURE_2D, GL_RGBA, @@ -1334,11 +1357,24 @@ void QGL2PaintEngineEx::drawImage(const QRectF& dest, const QImage& image, const Qt::ImageConversionFlags) { Q_D(QGL2PaintEngineEx); + QGLContext *ctx = d->ctx; + + int max_texture_size = ctx->d_func()->maxTextureSize(); + if (image.width() > max_texture_size || image.height() > max_texture_size) { + QImage scaled = image.scaled(max_texture_size, max_texture_size, Qt::KeepAspectRatio); + + const qreal sx = scaled.width() / qreal(image.width()); + const qreal sy = scaled.height() / qreal(image.height()); + + drawImage(dest, scaled, scaleRect(src, sx, sy)); + return; + } + ensureActive(); d->transferMode(ImageDrawingMode); - QGLContext *ctx = d->ctx; glActiveTexture(GL_TEXTURE0 + QT_IMAGE_TEXTURE_UNIT); + QGLTexture *texture = ctx->d_func()->bindTexture(image, GL_TEXTURE_2D, GL_RGBA, QGLContext::InternalBindOption); GLuint id = texture->id; @@ -1737,7 +1773,13 @@ void QGL2PaintEngineEx::drawPixmapFragments(const QPainter::PixmapFragment *frag } ensureActive(); - d->drawPixmapFragments(fragments, fragmentCount, pixmap, hints); + int max_texture_size = d->ctx->d_func()->maxTextureSize(); + if (pixmap.width() > max_texture_size || pixmap.height() > max_texture_size) { + QPixmap scaled = pixmap.scaled(max_texture_size, max_texture_size, Qt::KeepAspectRatio); + d->drawPixmapFragments(fragments, fragmentCount, scaled, hints); + } else { + d->drawPixmapFragments(fragments, fragmentCount, pixmap, hints); + } } diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h index b255e75..02b737b 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h @@ -274,6 +274,8 @@ public: QBrush currentBrush; // May not be the state's brush! const QBrush noBrush; + QPixmap currentBrushPixmap; + QGL2PEXVertexArray vertexCoordinateArray; QGL2PEXVertexArray textureCoordinateArray; QVector elementIndices; -- cgit v0.12 From 0af1f5508e165f3b494ab236cb1cdf1b0edcffa5 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Mon, 13 Dec 2010 11:29:22 +0100 Subject: Fixes text jitter in QtQuick components when using the virtual keyboard QGraphicsView::mapFromScene() returns a QRect instead of a QRectF. Thus, we were prematurely rounding the micro focus rectangle coordinates in QGraphicsView::inputMethodQuery(). (The Qt::ImMicroFocus query returns a QRectF from QGraphicsScene, which is the result of querying QDeclarativeTextEdit and mapping it to the scene.) Auto-test included. Reviewed-by: leo Reviewed-by: bnilsen Task-number: QTCOMPONENTS-288 Task-number: QTBUG-16063 --- src/gui/graphicsview/qgraphicsview.cpp | 2 +- tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 39 ++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp index a566c8e..2acea8a 100644 --- a/src/gui/graphicsview/qgraphicsview.cpp +++ b/src/gui/graphicsview/qgraphicsview.cpp @@ -2494,7 +2494,7 @@ QVariant QGraphicsView::inputMethodQuery(Qt::InputMethodQuery query) const QVariant value = d->scene->inputMethodQuery(query); if (value.type() == QVariant::RectF) - value = mapFromScene(value.toRectF()).boundingRect(); + value = d->mapRectFromScene(value.toRectF()); else if (value.type() == QVariant::PointF) value = mapFromScene(value.toPointF()); else if (value.type() == QVariant::Rect) diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index 0a9633f..e1fbaee 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -246,6 +246,7 @@ private slots: void QTBUG_4151_clipAndIgnore(); void QTBUG_5859_exposedRect(); void QTBUG_7438_cursor(); + void QTBUG_16063_microFocusRect(); public slots: void dummySlot() {} @@ -4450,5 +4451,43 @@ void tst_QGraphicsView::QTBUG_7438_cursor() #endif } +class IMItem : public QGraphicsRectItem +{ +public: + IMItem(QGraphicsItem *parent = 0): + QGraphicsRectItem(mf.adjusted(-5, -5, 5, 5), parent) + { + setFlag(QGraphicsItem::ItemIsFocusable, true); + setFlag(QGraphicsItem::ItemAcceptsInputMethod, true); + } + + QVariant inputMethodQuery(Qt::InputMethodQuery query) const + { + return mf; + } + + static QRectF mf; +}; + +QRectF IMItem::mf(1.5, 1.6, 10, 10); + +void tst_QGraphicsView::QTBUG_16063_microFocusRect() +{ + QGraphicsScene scene; + IMItem *item = new IMItem(); + scene.addItem(item); + + QGraphicsView view(&scene); + + view.setFixedSize(40, 40); + view.show(); + QTest::qWaitForWindowShown(&view); + + scene.setFocusItem(item); + view.setFocus(); + QRectF mfv = view.inputMethodQuery(Qt::ImMicroFocus).toRectF(); + QCOMPARE(mfv, QRectF(13.5, 13.6, 10, 10)); +} + QTEST_MAIN(tst_QGraphicsView) #include "tst_qgraphicsview.moc" -- cgit v0.12 From d5fe82b2ab939727f573429605abd99c039a99d1 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 13 Dec 2010 15:41:16 +0200 Subject: Fix crash when creating more than one QApplication in single test case CBA pointer is stored in static variable and it wasn't cleaned up properly at QApplication destruction, which led to crash. Task-number: QTBUG-15915 Reviewed-by: Sami Merila Reviewed-by: Janne Koskinen --- src/gui/kernel/qapplication_s60.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 8596563..81fa4e6 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1633,6 +1633,13 @@ void qt_cleanup() //Change mouse pointer back S60->wsSession().SetPointerCursorMode(EPointerCursorNone); +#ifdef Q_WS_S60 + // Clear CBA + CEikonEnv::Static()->AppUiFactory()->SwapButtonGroup(0); + delete S60->buttonGroupContainer(); + S60->setButtonGroupContainer(0); +#endif + if (S60->qtOwnsS60Environment) { // Restore the S60 framework trap handler. See qt_init(). User::SetTrapHandler(S60->s60InstalledTrapHandler); -- cgit v0.12 From 50d3c15bd16f4e70327f8de30c8c0df5ed2f995c Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 13 Dec 2010 16:08:36 +0200 Subject: Minor optimization Use already defined factory pointer instead of re-asking it twice. Reviewed-by: Janne Koskinen --- src/gui/kernel/qwidget_s60.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index 609307c..d6ad3c3 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -504,7 +504,7 @@ void QWidgetPrivate::show_sys() CEikButtonGroupContainer *cba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal,ui,R_AVKON_SOFTKEYS_EMPTY_WITH_IDS); - CEikButtonGroupContainer *oldCba = CEikonEnv::Static()->AppUiFactory()->SwapButtonGroup(cba); + CEikButtonGroupContainer *oldCba = factory->SwapButtonGroup(cba); Q_ASSERT(!oldCba); S60->setButtonGroupContainer(cba); @@ -513,7 +513,7 @@ void QWidgetPrivate::show_sys() menuBar->SetMenuType(CEikMenuBar::EMenuOptions); S60->appUi()->AddToStackL(menuBar,ECoeStackPriorityMenu,ECoeStackFlagRefusesFocus); - CEikMenuBar *oldMenu = CEikonEnv::Static()->AppUiFactory()->SwapMenuBar(menuBar); + CEikMenuBar *oldMenu = factory->SwapMenuBar(menuBar); Q_ASSERT(!oldMenu); ) -- cgit v0.12 From 5e0be0aae4aa4011b4dbf7d1d457e4c8b4f6d4dc Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 13 Dec 2010 16:12:25 +0200 Subject: Fix qapplication autotest deployment Necessary default deployment was getting removed from qapplication test Task-number: QTBUG-15915 Reviewed-by: Janne Koskinen --- tests/auto/qapplication/test/test.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qapplication/test/test.pro b/tests/auto/qapplication/test/test.pro index 2c54c37..d946e7e 100644 --- a/tests/auto/qapplication/test/test.pro +++ b/tests/auto/qapplication/test/test.pro @@ -17,7 +17,7 @@ symbian: { someTest.sources = test.pro someTest.path = test windowIcon.sources = ../heart.svg - DEPLOYMENT = additional deploy someTest windowIcon + DEPLOYMENT += additional deploy someTest windowIcon LIBS += -lcone -lavkon } -- cgit v0.12 From 44911b0d44f4840e0d7678f8de7227a3a4018d34 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 13 Dec 2010 16:15:51 +0200 Subject: Non-hacky fix for qwidget autotest Turns out there is a nice way for getting current CBA, CEikButtonGroupContainer::Current(), so using that instead of the previous hack. Task-number: QTBUG-15915 Reviewed-by: Janne Koskinen --- tests/auto/qwidget/tst_qwidget.cpp | 32 +++++--------------------------- 1 file changed, 5 insertions(+), 27 deletions(-) diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp index 6069383..d611225 100644 --- a/tests/auto/qwidget/tst_qwidget.cpp +++ b/tests/auto/qwidget/tst_qwidget.cpp @@ -10029,28 +10029,6 @@ void tst_QWidget::openModal_taskQTBUG_5804() } #ifdef Q_OS_SYMBIAN - -static CEikButtonGroupContainer* cba() -{ - CEikButtonGroupContainer *oldCba = NULL; - - // Due to convoluted/buggy implementation of MEikAppUiFactory interface in Symbian, - // the only way to get the correct cba is to use SwapButtonGroup function. - // Calling SwapButtonGroup doesn't trigger anything, it only changes the value of iToolbar - // member variable, so this double switching should not cause any interference for test. - QT_TRAP_THROWING( - CEikButtonGroupContainer *dummyCba = CEikButtonGroupContainer::NewL( - CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal, NULL, 0); - - oldCba = CEikonEnv::Static()->AppUiFactory()->SwapButtonGroup(dummyCba); - CEikonEnv::Static()->AppUiFactory()->SwapButtonGroup(oldCba); - - delete dummyCba; - ) - - return oldCba; -} - void tst_QWidget::cbaVisibility() { // Test case for task 261048 @@ -10083,7 +10061,7 @@ void tst_QWidget::cbaVisibility() // Verify window decorations i.e. status pane and CBA are visible. CEikStatusPane* statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane(); QVERIFY(statusPane->IsVisible()); - CEikButtonGroupContainer* buttonGroup = cba(); + CEikButtonGroupContainer* buttonGroup = CEikButtonGroupContainer::Current(); QVERIFY(buttonGroup->IsVisible()); } @@ -10100,7 +10078,7 @@ void tst_QWidget::fullScreenWindowModeTransitions() const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget); const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget); CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane(); - CEikButtonGroupContainer *buttonGroup = cba(); + CEikButtonGroupContainer *buttonGroup = CEikButtonGroupContainer::Current(); //Enter widget.showNormal(); @@ -10154,7 +10132,7 @@ void tst_QWidget::maximizedWindowModeTransitions() const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget); const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget); CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane(); - CEikButtonGroupContainer *buttonGroup = cba(); + CEikButtonGroupContainer *buttonGroup = CEikButtonGroupContainer::Current(); //Enter widget.showNormal(); @@ -10210,7 +10188,7 @@ void tst_QWidget::minimizedWindowModeTransitions() const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget); const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget); CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane(); - CEikButtonGroupContainer *buttonGroup = cba(); + CEikButtonGroupContainer *buttonGroup = CEikButtonGroupContainer::Current(); //Enter widget.showNormal(); @@ -10266,7 +10244,7 @@ void tst_QWidget::normalWindowModeTransitions() const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget); const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget); CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane(); - CEikButtonGroupContainer *buttonGroup = cba(); + CEikButtonGroupContainer *buttonGroup = CEikButtonGroupContainer::Current(); //Enter widget.showMaximized(); -- cgit v0.12 From b8f639f27a05043f9f9ac371352508d6527f0123 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 10 Dec 2010 10:00:54 +0100 Subject: Comment a bit more the timer ID allocation code. Also add the notes for where to place .loadAcquire when that function exists. Reviewed-By: Bradley T. Hughes --- src/corelib/kernel/qabstracteventdispatcher.cpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/corelib/kernel/qabstracteventdispatcher.cpp b/src/corelib/kernel/qabstracteventdispatcher.cpp index bcf4477..1c1c6e3 100644 --- a/src/corelib/kernel/qabstracteventdispatcher.cpp +++ b/src/corelib/kernel/qabstracteventdispatcher.cpp @@ -120,11 +120,20 @@ void QAbstractEventDispatcherPrivate::init() } } +// Timer IDs are implemented using a free-list; +// there's a vector initialized with: +// X[i] = i + 1 +// and nextFreeTimerId starts with 1. +// +// Allocating a timer ID involves taking the ID from +// X[nextFreeTimerId] +// updating nextFreeTimerId to this value and returning the old value +// (continues below). int QAbstractEventDispatcherPrivate::allocateTimerId() { int timerId, newTimerId; do { - timerId = nextFreeTimerId; + timerId = nextFreeTimerId; //.loadAcquire(); // ### FIXME Proper memory ordering semantics // which bucket are we looking in? int which = timerId & 0x00ffffff; @@ -148,6 +157,17 @@ int QAbstractEventDispatcherPrivate::allocateTimerId() return timerId; } +// Releasing a timer ID requires putting the current ID back in the vector; +// we do it by setting: +// X[timerId] = nextFreeTimerId; +// then we update nextFreeTimerId to the timer we've just released +// +// The extra code in allocateTimerId and releaseTimerId are ABA prevention +// and bucket memory. The buckets are simply to make sure we allocate only +// the necessary number of timers. See above. +// +// ABA prevention simply adds a value to 7 of the top 8 bits when resetting +// nextFreeTimerId. void QAbstractEventDispatcherPrivate::releaseTimerId(int timerId) { int which = timerId & 0x00ffffff; @@ -157,7 +177,7 @@ void QAbstractEventDispatcherPrivate::releaseTimerId(int timerId) int freeId, newTimerId; do { - freeId = nextFreeTimerId; + freeId = nextFreeTimerId;//.loadAcquire(); // ### FIXME Proper memory ordering semantics b[at] = freeId & 0x00ffffff; newTimerId = prepareNewValueWithSerialNumber(freeId, timerId); -- cgit v0.12 From f0a892a46fdc438277c8b401c267db4bd92aec1b Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 13 Dec 2010 14:50:07 +0100 Subject: Fix ABA problem with: the serial must be updated on all accesses The nextFreeTimerId's serial counter was only being updated on timer ID releasing. It needs to be updated on allocation too. Reviewed-by: Bradley T. Hughes --- src/corelib/kernel/qabstracteventdispatcher.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/kernel/qabstracteventdispatcher.cpp b/src/corelib/kernel/qabstracteventdispatcher.cpp index 1c1c6e3..5619921 100644 --- a/src/corelib/kernel/qabstracteventdispatcher.cpp +++ b/src/corelib/kernel/qabstracteventdispatcher.cpp @@ -151,7 +151,7 @@ int QAbstractEventDispatcherPrivate::allocateTimerId() } } - newTimerId = b[at]; + newTimerId = prepareNewValueWithSerialNumber(timerId, b[at]); } while (!nextFreeTimerId.testAndSetRelaxed(timerId, newTimerId)); return timerId; -- cgit v0.12 From a02a747a9d5294127dfe3e676a2759e228257e70 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 13 Dec 2010 14:58:16 +0100 Subject: Use constants the timer ID masks instead of values everywhere Reviewed-By: Bradley T. Hughes --- src/corelib/kernel/qabstracteventdispatcher.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/corelib/kernel/qabstracteventdispatcher.cpp b/src/corelib/kernel/qabstracteventdispatcher.cpp index 5619921..002d360 100644 --- a/src/corelib/kernel/qabstracteventdispatcher.cpp +++ b/src/corelib/kernel/qabstracteventdispatcher.cpp @@ -77,10 +77,14 @@ Q_DESTRUCTOR_FUNCTION(timerIdsDestructorFunction) static QBasicAtomicInt nextFreeTimerId = Q_BASIC_ATOMIC_INITIALIZER(1); +static const int TimerIdMask = 0x00ffffff; +static const int TimerSerialMask = ~TimerIdMask & ~0x80000000; +static const int TimerSerialCounter = TimerIdMask + 1; + // avoid the ABA-problem by using 7 of the top 8 bits of the timerId as a serial number static inline int prepareNewValueWithSerialNumber(int oldId, int newId) { - return (newId & 0x00FFFFFF) | ((oldId + 0x01000000) & 0x7f000000); + return (newId & TimerIdMask) | ((oldId + TimerSerialCounter) & TimerSerialMask); } static inline int bucketOffset(int timerId) @@ -136,7 +140,7 @@ int QAbstractEventDispatcherPrivate::allocateTimerId() timerId = nextFreeTimerId; //.loadAcquire(); // ### FIXME Proper memory ordering semantics // which bucket are we looking in? - int which = timerId & 0x00ffffff; + int which = timerId & TimerIdMask; int bucket = bucketOffset(which); int at = bucketIndex(bucket, which); int *b = timerIds[bucket]; @@ -170,7 +174,7 @@ int QAbstractEventDispatcherPrivate::allocateTimerId() // nextFreeTimerId. void QAbstractEventDispatcherPrivate::releaseTimerId(int timerId) { - int which = timerId & 0x00ffffff; + int which = timerId & TimerIdMask; int bucket = bucketOffset(which); int at = bucketIndex(bucket, which); int *b = timerIds[bucket]; @@ -178,7 +182,7 @@ void QAbstractEventDispatcherPrivate::releaseTimerId(int timerId) int freeId, newTimerId; do { freeId = nextFreeTimerId;//.loadAcquire(); // ### FIXME Proper memory ordering semantics - b[at] = freeId & 0x00ffffff; + b[at] = freeId & TimerIdMask; newTimerId = prepareNewValueWithSerialNumber(freeId, timerId); } while (!nextFreeTimerId.testAndSetRelease(freeId, newTimerId)); -- cgit v0.12 From bd9d5c80235ce6d1b005df96c3058b75e82bd6f0 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 13 Dec 2010 15:02:27 +0100 Subject: Add a small protection against releasing a timer twice. The cell corresponding to an allocated timer ID in the free list is unused (because the ID isn't free). So use it to store an invalid value that we can check against the user's value. This provides some protection against a given timer being released twice. Since we store the serial counter of the nextFreeTimerId, getting the same ID twice is a 1-in-128 chance. Reviewed-By: Bradley T. Hughes --- src/corelib/kernel/qabstracteventdispatcher.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/corelib/kernel/qabstracteventdispatcher.cpp b/src/corelib/kernel/qabstracteventdispatcher.cpp index 002d360..bf675a7 100644 --- a/src/corelib/kernel/qabstracteventdispatcher.cpp +++ b/src/corelib/kernel/qabstracteventdispatcher.cpp @@ -132,18 +132,24 @@ void QAbstractEventDispatcherPrivate::init() // Allocating a timer ID involves taking the ID from // X[nextFreeTimerId] // updating nextFreeTimerId to this value and returning the old value +// +// When the timer ID is allocated, its cell in the vector is unused (it's a +// free list). As an added protection, we use the cell to store an invalid +// (negative) value that we can later check for integrity. +// // (continues below). int QAbstractEventDispatcherPrivate::allocateTimerId() { int timerId, newTimerId; + int at, *b; do { timerId = nextFreeTimerId; //.loadAcquire(); // ### FIXME Proper memory ordering semantics // which bucket are we looking in? int which = timerId & TimerIdMask; int bucket = bucketOffset(which); - int at = bucketIndex(bucket, which); - int *b = timerIds[bucket]; + at = bucketIndex(bucket, which); + b = timerIds[bucket]; if (!b) { // allocate a new bucket @@ -158,6 +164,8 @@ int QAbstractEventDispatcherPrivate::allocateTimerId() newTimerId = prepareNewValueWithSerialNumber(timerId, b[at]); } while (!nextFreeTimerId.testAndSetRelaxed(timerId, newTimerId)); + b[at] = -timerId; + return timerId; } @@ -179,6 +187,8 @@ void QAbstractEventDispatcherPrivate::releaseTimerId(int timerId) int at = bucketIndex(bucket, which); int *b = timerIds[bucket]; + Q_ASSERT(b[at] == -timerId); + int freeId, newTimerId; do { freeId = nextFreeTimerId;//.loadAcquire(); // ### FIXME Proper memory ordering semantics -- cgit v0.12 From 2362debe4e0b9e7d6ba39960a0b039370783cab4 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 13 Dec 2010 16:38:00 +0100 Subject: support app-bundles with whitespace in name based on merge-request 960 by Robin Helgelin --- tools/macdeployqt/shared/shared.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/macdeployqt/shared/shared.cpp b/tools/macdeployqt/shared/shared.cpp index c7d23c0..d974f5d 100644 --- a/tools/macdeployqt/shared/shared.cpp +++ b/tools/macdeployqt/shared/shared.cpp @@ -574,9 +574,13 @@ void createDiskImage(const QString &appBundlePath) } // More dmg options can be found in the hdiutil man page. - QString options = QString("create %1.dmg -srcfolder %1.app -format UDZO -volname %1").arg(appBaseName); + QStringList options = QStringList() + << "create" << dmgName + << "-srcfolder" << appBundlePath + << "-format" << "UDZO" + << "-volname" << appBaseName; QProcess hdutil; - hdutil.start("hdiutil", options.split(' ')); + hdutil.start("hdiutil", options); hdutil.waitForFinished(-1); } -- cgit v0.12 From 7d2cdbd606c70f6fb7c41742b028d1fb227122b0 Mon Sep 17 00:00:00 2001 From: miniak Date: Mon, 13 Dec 2010 16:47:05 +0100 Subject: Fix comctl32 v6 dependency generation in Visual Studio 2005 and higher Merge-request: 2526 Reviewed-by: Joerg Bornemann --- mkspecs/win32-msvc2005/qmake.conf | 6 +++--- mkspecs/win32-msvc2008/qmake.conf | 6 +++--- mkspecs/win32-msvc2010/qmake.conf | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/mkspecs/win32-msvc2005/qmake.conf b/mkspecs/win32-msvc2005/qmake.conf index aa58e30..0c79561 100644 --- a/mkspecs/win32-msvc2005/qmake.conf +++ b/mkspecs/win32-msvc2005/qmake.conf @@ -1,7 +1,7 @@ # # qmake configuration for win32-msvc2005 # -# Written for Microsoft VC2005.NET +# Written for Microsoft Visual C++ 2005 # MAKEFILE_GENERATOR = MSVC.NET @@ -53,12 +53,12 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $< QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<< QMAKE_LINK = link -QMAKE_LFLAGS = /NOLOGO +QMAKE_LFLAGS = /NOLOGO \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF QMAKE_LFLAGS_DEBUG = /DEBUG QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" +QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS QMAKE_LFLAGS_DLL = /DLL QMAKE_LFLAGS_LTCG = /LTCG diff --git a/mkspecs/win32-msvc2008/qmake.conf b/mkspecs/win32-msvc2008/qmake.conf index ee7b99a..24a0486 100644 --- a/mkspecs/win32-msvc2008/qmake.conf +++ b/mkspecs/win32-msvc2008/qmake.conf @@ -1,7 +1,7 @@ # # qmake configuration for win32-msvc2008 # -# Written for Microsoft VC2005.NET +# Written for Microsoft Visual C++ 2008 # MAKEFILE_GENERATOR = MSVC.NET @@ -55,12 +55,12 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $< QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<< QMAKE_LINK = link -QMAKE_LFLAGS = /NOLOGO +QMAKE_LFLAGS = /NOLOGO \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF QMAKE_LFLAGS_DEBUG = /DEBUG QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" +QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS QMAKE_LFLAGS_DLL = /DLL QMAKE_LFLAGS_LTCG = /LTCG diff --git a/mkspecs/win32-msvc2010/qmake.conf b/mkspecs/win32-msvc2010/qmake.conf index 44e460e..c08a74d 100644 --- a/mkspecs/win32-msvc2010/qmake.conf +++ b/mkspecs/win32-msvc2010/qmake.conf @@ -1,7 +1,7 @@ # # qmake configuration for win32-msvc2010 # -# Written for Microsoft VC2005.NET +# Written for Microsoft Visual C++ 2010 # MAKEFILE_GENERATOR = MSBUILD @@ -55,12 +55,12 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $< QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<< QMAKE_LINK = link -QMAKE_LFLAGS = /NOLOGO +QMAKE_LFLAGS = /NOLOGO \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF QMAKE_LFLAGS_DEBUG = /DEBUG QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE -QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" +QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS QMAKE_LFLAGS_DLL = /DLL QMAKE_LFLAGS_LTCG = /LTCG -- cgit v0.12 From 496a3f83138e807150f2ff06f5462f7f9ab519fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 13 Dec 2010 18:06:19 +0100 Subject: Don't rely on uninitialized data When we fail to get file attributes, the file times are left in an uninitialized state, which may lead to a crash. In particular, this was showing up in QMessageBox's autotest, where the lastModified time is being queried on a non-existing file. Before the refactoring, we were returning a default constructed QDateTime to queries about different file times, with this change we will return the time corresponding to a default constructed FILETIME object. Reviewed-by: Shane Kearns --- src/corelib/io/qfilesystemengine_win.cpp | 3 +++ tests/auto/qfileinfo/tst_qfileinfo.cpp | 45 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 39fce97..b7bded9 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -433,6 +433,9 @@ void QFileSystemEngine::clearWinStatData(QFileSystemMetaData &data) { data.size_ = 0; data.fileAttribute_ = 0; + data.creationTime_ = FILETIME(); + data.lastAccessTime_ = FILETIME(); + data.lastWriteTime_ = FILETIME(); } bool QFileSystemEngine::isCaseSensitive() diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp index 0a61d55..4d9e80b 100644 --- a/tests/auto/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp @@ -196,6 +196,8 @@ private slots: void owner(); #endif void group(); + + void invalidState(); }; tst_QFileInfo::tst_QFileInfo() @@ -1761,5 +1763,48 @@ void tst_QFileInfo::group() QCOMPARE(fi.group(), expected); } +void tst_QFileInfo::invalidState() +{ + // Shouldn't crash; + + { + QFileInfo info; + QCOMPARE(info.size(), qint64(0)); + QVERIFY(!info.exists()); + + info.setCaching(false); + + info.created(); + info.lastRead(); + info.lastModified(); + } + + { + QFileInfo info(""); + QCOMPARE(info.size(), qint64(0)); + QVERIFY(!info.exists()); + + info.setCaching(false); + + info.created(); + info.lastRead(); + info.lastModified(); + } + + { + QFileInfo info("file-doesn't-really-exist.txt"); + QCOMPARE(info.size(), qint64(0)); + QVERIFY(!info.exists()); + + info.setCaching(false); + + info.created(); + info.lastRead(); + info.lastModified(); + } + + QVERIFY(true); +} + QTEST_MAIN(tst_QFileInfo) #include "tst_qfileinfo.moc" -- cgit v0.12 From 18e3cd65980e1bc01e6af4807cae0bceca25288c Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Fri, 10 Dec 2010 13:20:48 +0100 Subject: QPointer: thread safety Fix a race condition between the destructor of QPointer and the destruction of the object living in a different thread. Task-number: QTBUG-16005 Reviewed-by: Joao --- src/corelib/kernel/qobject.cpp | 2 ++ tests/auto/qpointer/tst_qpointer.cpp | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 7fe9c52..c3102ea 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -408,6 +408,8 @@ void QMetaObject::removeGuard(QObject **ptr) if (!hash || hash->isEmpty()) return; QMutexLocker locker(guardHashLock()); + if (!*ptr) //check again, under the lock + return; GuardHash::iterator it = hash->find(*ptr); const GuardHash::iterator end = hash->end(); bool more = false; //if the QObject has more pointer attached to it. diff --git a/tests/auto/qpointer/tst_qpointer.cpp b/tests/auto/qpointer/tst_qpointer.cpp index 5a07e41..ce23764 100644 --- a/tests/auto/qpointer/tst_qpointer.cpp +++ b/tests/auto/qpointer/tst_qpointer.cpp @@ -73,6 +73,7 @@ private slots: void castDuringDestruction(); void data() const; void dataSignature() const; + void threadSafety(); }; tst_QPointer::tst_QPointer() @@ -345,5 +346,36 @@ void tst_QPointer::dataSignature() const } } +class TestRunnable : public QObject, public QRunnable { + void run() { + QPointer obj1 = new QObject; + QPointer obj2 = new QObject; + obj1->moveToThread(thread()); // this is the owner thread + obj1->deleteLater(); // the delete will happen in the owner thread + obj2->moveToThread(thread()); // this is the owner thread + obj2->deleteLater(); // the delete will happen in the owner thread + } +}; + +void tst_QPointer::threadSafety() +{ + + QThread owner; + owner.start(); + + QThreadPool pool; + for (int i = 0; i < 300; i++) { + QPointer task = new TestRunnable; + task->setAutoDelete(true); + task->moveToThread(&owner); + pool.start(task); + } + pool.waitForDone(); + + owner.quit(); + owner.wait(); +} + + QTEST_MAIN(tst_QPointer) #include "tst_qpointer.moc" -- cgit v0.12 From 8d0863f175199384e41a00fa18a9ea7d177c7f0e Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 13 Dec 2010 22:57:17 +0100 Subject: qrgb565: Use the trivial qt_memconvert() and qt_rectconvert() Use memcpy() instead of the generic conversion routines where both template arguments are qrgb565. Yields a massive performance gain for tiling opaque (background) images in WebKit on 16-bit displays. This was previously restricted to Q_WS_QWS for some unknown reason. Reviewed-by: Benjamin Poulain --- src/gui/painting/qdrawhelper_p.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/gui/painting/qdrawhelper_p.h b/src/gui/painting/qdrawhelper_p.h index 0cc2e40..33fd21e 100644 --- a/src/gui/painting/qdrawhelper_p.h +++ b/src/gui/painting/qdrawhelper_p.h @@ -1684,9 +1684,7 @@ QT_TRIVIAL_MEMCONVERT_IMPL(qrgb888) QT_TRIVIAL_MEMCONVERT_IMPL(qargb6666) QT_TRIVIAL_MEMCONVERT_IMPL(qrgb666) QT_TRIVIAL_MEMCONVERT_IMPL(quint16) -#ifdef Q_WS_QWS QT_TRIVIAL_MEMCONVERT_IMPL(qrgb565) -#endif QT_TRIVIAL_MEMCONVERT_IMPL(qargb8565) QT_TRIVIAL_MEMCONVERT_IMPL(qargb8555) QT_TRIVIAL_MEMCONVERT_IMPL(qrgb555) @@ -1783,9 +1781,7 @@ QT_RECTCONVERT_TRIVIAL_IMPL(quint32) QT_RECTCONVERT_TRIVIAL_IMPL(qrgb888) QT_RECTCONVERT_TRIVIAL_IMPL(qargb6666) QT_RECTCONVERT_TRIVIAL_IMPL(qrgb666) -#ifdef Q_WS_QWS QT_RECTCONVERT_TRIVIAL_IMPL(qrgb565) -#endif QT_RECTCONVERT_TRIVIAL_IMPL(qargb8565) QT_RECTCONVERT_TRIVIAL_IMPL(quint16) QT_RECTCONVERT_TRIVIAL_IMPL(qargb8555) -- cgit v0.12 From 2eee49127b80b5b56c605f76ccea004b03d89577 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Tue, 14 Dec 2010 11:22:50 +1000 Subject: Remove active selection when TextEdit loses focus Task-number: QTBUG-15341 Reviewed-by: Yann Bodson --- .../graphicsitems/qdeclarativetextedit.cpp | 14 ++++++++ .../graphicsitems/qdeclarativetextedit_p.h | 1 + .../tst_qdeclarativetextedit.cpp | 40 ++++++++++++++++++++++ 3 files changed, 55 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index e05f4e4..1042cf1 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -994,6 +994,20 @@ void QDeclarativeTextEditPrivate::focusChanged(bool hasFocus) QDeclarativeItemPrivate::focusChanged(hasFocus); } +void QDeclarativeTextEdit::focusOutEvent(QFocusEvent *event) +{ + Q_D(QDeclarativeTextEdit); + if (event->reason() != Qt::ActiveWindowFocusReason + && event->reason() != Qt::PopupFocusReason) { + QTextCursor cursor = d->control->textCursor(); + if (cursor.hasSelection()) { + cursor.clearSelection(); + d->control->setTextCursor(cursor); + } + } + QDeclarativePaintedItem::focusOutEvent(event); +} + /*! \qmlmethod void TextEdit::selectAll() diff --git a/src/declarative/graphicsitems/qdeclarativetextedit_p.h b/src/declarative/graphicsitems/qdeclarativetextedit_p.h index 68fde3d..6826cb5 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit_p.h +++ b/src/declarative/graphicsitems/qdeclarativetextedit_p.h @@ -249,6 +249,7 @@ protected: void keyPressEvent(QKeyEvent *); void keyReleaseEvent(QKeyEvent *); void focusInEvent(QFocusEvent *event); + void focusOutEvent(QFocusEvent *event); // mouse filter? void mousePressEvent(QGraphicsSceneMouseEvent *event); diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp index a7971cc..ed02451 100644 --- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp +++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp @@ -110,6 +110,7 @@ private slots: void mouseSelection_data(); void mouseSelection(); void inputMethodHints(); + void clearSelectionOnFocusLost(); void cursorDelegate(); void delegateLoading_data(); @@ -748,6 +749,45 @@ void tst_qdeclarativetextedit::inputMethodHints() QVERIFY(textEditObject->inputMethodHints() & Qt::ImhUppercaseOnly); } +// QTBUG-15341 +void tst_qdeclarativetextedit::clearSelectionOnFocusLost() +{ + + // create a visible scene with two text edits + QGraphicsScene scene; + QGraphicsView view(&scene); + QDeclarativeTextEdit edit; + QDeclarativeTextEdit secondEdit; + edit.setText("Hello world!"); + scene.addItem(&edit); + scene.addItem(&secondEdit); + view.show(); + QApplication::setActiveWindow(&view); + QTest::qWaitForWindowShown(&view); + QTRY_COMPARE(QApplication::activeWindow(), static_cast(&view)); + + int index = 0; + while (index < Qt::NoFocusReason) { + + // focus the first text edit and select text + edit.setFocus(true); + edit.selectAll(); + QVERIFY(edit.hasActiveFocus() && !secondEdit.hasActiveFocus()); + QCOMPARE(edit.selectedText().size(), 12); + + // lose focus in the first text edit + qobject_cast(&secondEdit)->setFocus(Qt::FocusReason(index)); + QVERIFY(!edit.hasActiveFocus() && secondEdit.hasActiveFocus()); + + // depending on the focus reason, selection should now be cleared + bool clearSelection = (index != Qt::ActiveWindowFocusReason && index != Qt::PopupFocusReason); + QCOMPARE(edit.selectedText().isEmpty(), clearSelection); + index++; + } +} + + + void tst_qdeclarativetextedit::cursorDelegate() { QDeclarativeView* view = createView(SRCDIR "/data/cursorTest.qml"); -- cgit v0.12 From e4257e41c1c9e764d27f1c61f9173c34444236f3 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Tue, 14 Dec 2010 14:27:38 +1000 Subject: Abort working replies with error when network session fails. Otherwise the connections will stay in a zombie state until the TCP keep alive timer times out in a couple of hours. Task-number: Maemo 201619 --- src/network/access/qnetworkreplyimpl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp index cf6e674..3d1df06 100644 --- a/src/network/access/qnetworkreplyimpl.cpp +++ b/src/network/access/qnetworkreplyimpl.cpp @@ -271,8 +271,8 @@ void QNetworkReplyImplPrivate::_q_networkSessionConnected() void QNetworkReplyImplPrivate::_q_networkSessionFailed() { - // Abort waiting replies. - if (state == WaitingForSession) { + // Abort waiting and working replies. + if (state == WaitingForSession || state == Working) { state = Working; error(QNetworkReplyImpl::UnknownNetworkError, QCoreApplication::translate("QNetworkReply", "Network session error.")); -- cgit v0.12 From f58cf707dd5668ca2849f457e951a9cef7d1d544 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Tue, 14 Dec 2010 15:27:23 +1000 Subject: Revert a fix made for bug QTBUG-15341 Reverted a commit 2eee49127b80b5b56c605f76ccea004b03d89577 "Remove active selection when TextEdit loses focus". Contrary to TextInput, by default TextEdit keeps the selection visible when the editor loses active focus. If this is not wanted, a property called persistentSelection can be set false to make selection dependant on the focus. --- .../graphicsitems/qdeclarativetextedit.cpp | 14 -------- .../graphicsitems/qdeclarativetextedit_p.h | 1 - .../tst_qdeclarativetextedit.cpp | 40 ---------------------- 3 files changed, 55 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index 1042cf1..e05f4e4 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -994,20 +994,6 @@ void QDeclarativeTextEditPrivate::focusChanged(bool hasFocus) QDeclarativeItemPrivate::focusChanged(hasFocus); } -void QDeclarativeTextEdit::focusOutEvent(QFocusEvent *event) -{ - Q_D(QDeclarativeTextEdit); - if (event->reason() != Qt::ActiveWindowFocusReason - && event->reason() != Qt::PopupFocusReason) { - QTextCursor cursor = d->control->textCursor(); - if (cursor.hasSelection()) { - cursor.clearSelection(); - d->control->setTextCursor(cursor); - } - } - QDeclarativePaintedItem::focusOutEvent(event); -} - /*! \qmlmethod void TextEdit::selectAll() diff --git a/src/declarative/graphicsitems/qdeclarativetextedit_p.h b/src/declarative/graphicsitems/qdeclarativetextedit_p.h index 6826cb5..68fde3d 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit_p.h +++ b/src/declarative/graphicsitems/qdeclarativetextedit_p.h @@ -249,7 +249,6 @@ protected: void keyPressEvent(QKeyEvent *); void keyReleaseEvent(QKeyEvent *); void focusInEvent(QFocusEvent *event); - void focusOutEvent(QFocusEvent *event); // mouse filter? void mousePressEvent(QGraphicsSceneMouseEvent *event); diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp index ed02451..a7971cc 100644 --- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp +++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp @@ -110,7 +110,6 @@ private slots: void mouseSelection_data(); void mouseSelection(); void inputMethodHints(); - void clearSelectionOnFocusLost(); void cursorDelegate(); void delegateLoading_data(); @@ -749,45 +748,6 @@ void tst_qdeclarativetextedit::inputMethodHints() QVERIFY(textEditObject->inputMethodHints() & Qt::ImhUppercaseOnly); } -// QTBUG-15341 -void tst_qdeclarativetextedit::clearSelectionOnFocusLost() -{ - - // create a visible scene with two text edits - QGraphicsScene scene; - QGraphicsView view(&scene); - QDeclarativeTextEdit edit; - QDeclarativeTextEdit secondEdit; - edit.setText("Hello world!"); - scene.addItem(&edit); - scene.addItem(&secondEdit); - view.show(); - QApplication::setActiveWindow(&view); - QTest::qWaitForWindowShown(&view); - QTRY_COMPARE(QApplication::activeWindow(), static_cast(&view)); - - int index = 0; - while (index < Qt::NoFocusReason) { - - // focus the first text edit and select text - edit.setFocus(true); - edit.selectAll(); - QVERIFY(edit.hasActiveFocus() && !secondEdit.hasActiveFocus()); - QCOMPARE(edit.selectedText().size(), 12); - - // lose focus in the first text edit - qobject_cast(&secondEdit)->setFocus(Qt::FocusReason(index)); - QVERIFY(!edit.hasActiveFocus() && secondEdit.hasActiveFocus()); - - // depending on the focus reason, selection should now be cleared - bool clearSelection = (index != Qt::ActiveWindowFocusReason && index != Qt::PopupFocusReason); - QCOMPARE(edit.selectedText().isEmpty(), clearSelection); - index++; - } -} - - - void tst_qdeclarativetextedit::cursorDelegate() { QDeclarativeView* view = createView(SRCDIR "/data/cursorTest.qml"); -- cgit v0.12 From c34225b62ea2dd2a545baf2ade41629be6a55473 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Tue, 14 Dec 2010 13:59:36 +1000 Subject: Clarify that XmlListModel is read only --- src/declarative/util/qdeclarativexmllistmodel.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp index ce5b483..49a12b1 100644 --- a/src/declarative/util/qdeclarativexmllistmodel.cpp +++ b/src/declarative/util/qdeclarativexmllistmodel.cpp @@ -503,9 +503,9 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListProperty Date: Tue, 14 Dec 2010 16:38:02 +1000 Subject: Docs: implications of creating network access managers in other threads Task-number: QTBUG-16032 --- .../qdeclarativenetworkaccessmanagerfactory.cpp | 53 ++++++++++++++-------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/src/declarative/qml/qdeclarativenetworkaccessmanagerfactory.cpp b/src/declarative/qml/qdeclarativenetworkaccessmanagerfactory.cpp index d22798d..36e9721 100644 --- a/src/declarative/qml/qdeclarativenetworkaccessmanagerfactory.cpp +++ b/src/declarative/qml/qdeclarativenetworkaccessmanagerfactory.cpp @@ -46,27 +46,44 @@ QT_BEGIN_NAMESPACE /*! \class QDeclarativeNetworkAccessManagerFactory \since 4.7 - \brief The QDeclarativeNetworkAccessManagerFactory class provides a factory for QNetworkAccessManager for use by a Qt Declarative engine. + \brief The QDeclarativeNetworkAccessManagerFactory class creates QNetworkAccessManager instances for a QML engine. - QNetworkAccessManager is used for all network access by QML. - By implementing a factory it is possible to create custom - QNetworkAccessManager with specialized caching, proxy and - cookie support. + A QML engine uses QNetworkAccessManager for all network access. + By implementing a factory, it is possible to provide the QML engine + with custom QNetworkAccessManager instances with specialized caching, + proxy and cookies support. - To implement a factory, subclass QDeclarativeNetworkAccessManagerFactory and implement - the create() method. + To implement a factory, subclass QDeclarativeNetworkAccessManagerFactory and + implement the virtual create() method, then assign it to the relevant QML + engine using QDeclarativeEngine::setNetworkAccessManagerFactory(). - To use a factory, assign it to the relevant QDeclarativeEngine using - QDeclarativeEngine::setNetworkAccessManagerFactory(). + Note the QML engine may create QNetworkAccessManager instances + from multiple threads. Because of this, the implementation of the create() + method must be \l{Reentrancy and Thread-Safety}{reentrant}. In addition, + the developer should be careful if the signals of the object to be + returned from create() are connected to the slots of an object that may + be created in a different thread: - Note: the create() method may be called by multiple threads, so ensure the - implementation of this method is reentrant. + \list + \o The QML engine internally handles all requests, and cleans up any + QNetworkReply objects it creates. Receiving the + QNetworkAccessManager::finished() signal in another thread may not + provide the receiver with a valid reply object if it has already + been deleted. + \o Authentication details provided to QNetworkAccessManager::authenticationRequired() + must be provided immediately, so this signal cannot be connected as a + Qt::QueuedConnection (or as the default Qt::AutoConnection from another + thread). + \endlist + + For more information about signals and threads, see + \l {Threads and QObjects} and \l {Signals and Slots Across Threads}. - \sa QDeclarativeEngine::setNetworkAccessManagerFactory(), {declarative/cppextensions/networkaccessmanagerfactory}{NetworkAccessManagerFactory example} + \sa {declarative/cppextensions/networkaccessmanagerfactory}{NetworkAccessManagerFactory example} */ /*! - The destructor is empty. + Destroys the factory. The default implementation does nothing. */ QDeclarativeNetworkAccessManagerFactory::~QDeclarativeNetworkAccessManagerFactory() { @@ -75,13 +92,9 @@ QDeclarativeNetworkAccessManagerFactory::~QDeclarativeNetworkAccessManagerFactor /*! \fn QNetworkAccessManager *QDeclarativeNetworkAccessManagerFactory::create(QObject *parent) - Implement this method to create a QNetworkAccessManager with \a parent. - This allows proxies, caching and cookie support to be setup appropriately. - - This method must return a new QNetworkAccessManager each time it is called. - The parent of the QNetworkAccessManager must be the \a parent provided. - The QNetworkAccessManager(s) created by this - function will be destroyed automatically when their parent is destroyed. + Creates and returns a network access manager with the specified \a parent. + This method must return a new QNetworkAccessManager instance each time + it is called. Note: this method may be called by multiple threads, so ensure the implementation of this method is reentrant. -- cgit v0.12 From aa10afea34995c262156d26957455b698e630953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Tue, 14 Dec 2010 10:05:23 +0100 Subject: Fix warnings, whitespace cleanup ... and trigger CI :-/ --- src/corelib/io/qfilesystemengine_win.cpp | 4 ++++ src/corelib/io/qfilesystemmetadata_p.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index b7bded9..19c94e5 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -1110,6 +1110,10 @@ QFileSystemEntry QFileSystemEngine::currentPath() bool QFileSystemEngine::createLink(const QFileSystemEntry &source, const QFileSystemEntry &target, QSystemError &error) { Q_ASSERT(false); + Q_UNUSED(source) + Q_UNUSED(target) + Q_UNUSED(error) + return false; // TODO implement; - code needs to be moved from qfsfileengine_win.cpp } diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index c4e11d9..7f75b05 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -94,7 +94,7 @@ public: ReadPermissions = OtherReadPermission | GroupReadPermission | UserReadPermission | OwnerReadPermission, WritePermissions = OtherWritePermission | GroupWritePermission | UserWritePermission | OwnerWritePermission, - ExecutePermissions = OtherExecutePermission | GroupExecutePermission | UserExecutePermission | OwnerExecutePermission, + ExecutePermissions = OtherExecutePermission | GroupExecutePermission | UserExecutePermission | OwnerExecutePermission, Permissions = OtherPermissions | GroupPermissions | UserPermissions | OwnerPermissions, -- cgit v0.12 From 725716bcf158988ac664da8f8bcd2d9a8e91a916 Mon Sep 17 00:00:00 2001 From: axis Date: Fri, 10 Dec 2010 10:32:11 +0100 Subject: Fixed several compile and deployment issues in the mmf phonon plugin. RevBy: Trust me --- src/3rdparty/phonon/mmf/abstractaudioeffect.h | 2 +- src/3rdparty/phonon/mmf/audioequalizer.cpp | 2 +- src/3rdparty/phonon/mmf/bassboost.cpp | 2 +- src/3rdparty/phonon/mmf/environmentalreverb.cpp | 2 +- src/3rdparty/phonon/mmf/loudness.cpp | 2 +- src/3rdparty/phonon/mmf/stereowidening.cpp | 2 +- src/plugins/phonon/mmf/mmf.pro | 4 ++-- src/s60installs/s60installs.pro | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/3rdparty/phonon/mmf/abstractaudioeffect.h b/src/3rdparty/phonon/mmf/abstractaudioeffect.h index 8879636..70adcf6 100644 --- a/src/3rdparty/phonon/mmf/abstractaudioeffect.h +++ b/src/3rdparty/phonon/mmf/abstractaudioeffect.h @@ -21,7 +21,7 @@ along with this library. If not, see . #include -#include +#include #include diff --git a/src/3rdparty/phonon/mmf/audioequalizer.cpp b/src/3rdparty/phonon/mmf/audioequalizer.cpp index 28433f6..1d2bbd4 100644 --- a/src/3rdparty/phonon/mmf/audioequalizer.cpp +++ b/src/3rdparty/phonon/mmf/audioequalizer.cpp @@ -16,7 +16,7 @@ along with this library. If not, see . */ -#include +#include #include "audioequalizer.h" QT_BEGIN_NAMESPACE diff --git a/src/3rdparty/phonon/mmf/bassboost.cpp b/src/3rdparty/phonon/mmf/bassboost.cpp index 81d9208..67076f6 100644 --- a/src/3rdparty/phonon/mmf/bassboost.cpp +++ b/src/3rdparty/phonon/mmf/bassboost.cpp @@ -16,7 +16,7 @@ along with this library. If not, see . */ -#include +#include #include "bassboost.h" QT_BEGIN_NAMESPACE diff --git a/src/3rdparty/phonon/mmf/environmentalreverb.cpp b/src/3rdparty/phonon/mmf/environmentalreverb.cpp index c500385..d4f5223 100644 --- a/src/3rdparty/phonon/mmf/environmentalreverb.cpp +++ b/src/3rdparty/phonon/mmf/environmentalreverb.cpp @@ -16,7 +16,7 @@ along with this library. If not, see . */ -#include +#include #include "environmentalreverb.h" QT_BEGIN_NAMESPACE diff --git a/src/3rdparty/phonon/mmf/loudness.cpp b/src/3rdparty/phonon/mmf/loudness.cpp index 22d7518..ca05ab0 100644 --- a/src/3rdparty/phonon/mmf/loudness.cpp +++ b/src/3rdparty/phonon/mmf/loudness.cpp @@ -16,7 +16,7 @@ along with this library. If not, see . */ -#include +#include #include "loudness.h" QT_BEGIN_NAMESPACE diff --git a/src/3rdparty/phonon/mmf/stereowidening.cpp b/src/3rdparty/phonon/mmf/stereowidening.cpp index e452160..f90651b 100644 --- a/src/3rdparty/phonon/mmf/stereowidening.cpp +++ b/src/3rdparty/phonon/mmf/stereowidening.cpp @@ -16,7 +16,7 @@ along with this library. If not, see . */ -#include +#include #include "stereowidening.h" QT_BEGIN_NAMESPACE diff --git a/src/plugins/phonon/mmf/mmf.pro b/src/plugins/phonon/mmf/mmf.pro index 691fc80..5d7b61d 100644 --- a/src/plugins/phonon/mmf/mmf.pro +++ b/src/plugins/phonon/mmf/mmf.pro @@ -103,7 +103,7 @@ symbian { exists($${EPOCROOT}epoc32/include/mw/downloadmgrclient.h) { HEADERS += $$PHONON_MMF_DIR/download.h SOURCES += $$PHONON_MMF_DIR/download.cpp - LIBS += -ldownloadmgr + LIBS += -lDownloadMgr DEFINES += PHONON_MMF_PROGRESSIVE_DOWNLOAD } } @@ -125,7 +125,7 @@ symbian { LIBS += -lmediaclientaudiostream # For CMdaAudioOutputStream # These are for effects. - LIBS += -lAudioEqualizerEffect -lBassBoostEffect -lDistanceAttenuationEffect -lDopplerBase -lEffectBase -lEnvironmentalReverbEffect -lListenerDopplerEffect -lListenerLocationEffect -lListenerOrientationEffect -lLocationBase -lLoudnessEffect -lOrientationBase -lSourceDopplerEffect -lSourceLocationEffect -lSourceOrientationEffect -lStereoWideningEffect + LIBS += -lAudioEqualizerEffect -lBassBoostEffect -lDistanceAttenuationEffect -lDopplerbase -lEffectBase -lEnvironmentalReverbEffect -lListenerDopplerEffect -lListenerLocationEffect -lListenerOrientationEffect -lLocationBase -lLoudnessEffect -lOrientationBase -lSourceDopplerEffect -lSourceLocationEffect -lSourceOrientationEffect -lStereoWideningEffect # This is needed for having the .qtplugin file properly created on Symbian. QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/phonon_backend diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index ff67bcf..5a435cd 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -132,7 +132,7 @@ symbian: { codecs_plugins.path = c:$$QT_PLUGINS_BASE_DIR/codecs contains(QT_CONFIG, phonon-backend) { - phonon_backend_plugins.sources += $$QMAKE_LIBDIR_QT/phonon_mmf$${QT_LIBINFIX}.dll + phonon_backend_plugins.sources += $$QT_BUILD_TREE/plugins/phonon_backend/phonon_mmf$${QT_LIBINFIX}.dll phonon_backend_plugins.path = c:$$QT_PLUGINS_BASE_DIR/phonon_backend DEPLOYMENT += phonon_backend_plugins -- cgit v0.12 From 6aa1ab84404c92f2048270b1932fa10cecdcc58d Mon Sep 17 00:00:00 2001 From: axis Date: Fri, 10 Dec 2010 15:35:06 +0100 Subject: Fixed a bug in the input methods on S60 with QGraphicsWebView. The bug happened because we did not expect to receive a call to CancelFepInlineEdit() when the widget had not previously been given any preedit text by S60. However, this can happen, and if it happens at the same time that there is a temporarily visible character in the widget (because it will be obscured as a password a second later), then the temporary character would be discarded. Fixed by checking in the beginning of CancelFepInlineEdit() whether we currently have any temporary preedit text or not, and if we do, we don't clear the contents, since it is the input context itself that generated the preedit text, not S60. Also made sure that the temporary preedit text is committed if we receive a call to UpdateFepInlineTextL(), which may sometimes happen without a call to StartFepInlineEditL(). Task: QT-4314 AutoTest: Included RevBy: Shane Kearns --- src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 8 ++ tests/auto/qinputcontext/qinputcontext.pro | 2 + tests/auto/qinputcontext/tst_qinputcontext.cpp | 141 +++++++++++++++++++++++- 3 files changed, 148 insertions(+), 3 deletions(-) diff --git a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp index 4a1b9b9..686f388 100644 --- a/src/gui/inputmethod/qcoefepinputcontext_s60.cpp +++ b/src/gui/inputmethod/qcoefepinputcontext_s60.cpp @@ -657,6 +657,8 @@ void QCoeFepInputContext::UpdateFepInlineTextL(const TDesC& aNewInlineText, if (!w) return; + commitTemporaryPreeditString(); + m_inlinePosition = aPositionOfInsertionPointInInlineText; QList attributes; @@ -694,6 +696,12 @@ void QCoeFepInputContext::SetInlineEditingCursorVisibilityL(TBool aCursorVisibil void QCoeFepInputContext::CancelFepInlineEdit() { + // We are not supposed to ever have a tempPreeditString and a real preedit string + // from S60 at the same time, so it should be safe to rely on this test to determine + // whether we should honor S60's request to clear the text or not. + if (m_hasTempPreeditString) + return; + QList attributes; QInputMethodEvent event(QLatin1String(""), attributes); event.setCommitString(QLatin1String(""), 0, 0); diff --git a/tests/auto/qinputcontext/qinputcontext.pro b/tests/auto/qinputcontext/qinputcontext.pro index ec6831e..4b3ab96 100644 --- a/tests/auto/qinputcontext/qinputcontext.pro +++ b/tests/auto/qinputcontext/qinputcontext.pro @@ -1,6 +1,8 @@ load(qttest_p4) SOURCES += tst_qinputcontext.cpp +contains(QT_CONFIG, webkit):QT += webkit + symbian { LIBS += -lws32 -lcone } diff --git a/tests/auto/qinputcontext/tst_qinputcontext.cpp b/tests/auto/qinputcontext/tst_qinputcontext.cpp index 5a258a9..020f177 100644 --- a/tests/auto/qinputcontext/tst_qinputcontext.cpp +++ b/tests/auto/qinputcontext/tst_qinputcontext.cpp @@ -50,6 +50,13 @@ #include #include #include +#include +#include + +#ifdef QT_WEBKIT_LIB +#include +#include +#endif #ifdef Q_OS_SYMBIAN #include @@ -466,6 +473,115 @@ void tst_QInputContext::focusProxy() QCOMPARE(gic->focusWidget(), &proxy); } +#ifdef QT_WEBKIT_LIB +class AutoWebView : public QWebView +{ + Q_OBJECT + +public: + AutoWebView() + : m_length(0) + , m_mode(QLineEdit::Normal) + { + updatePage(); + } + ~AutoWebView() {} + + void updatePage() + { + // The update might reset the input method parameters. + bool imEnabled = testAttribute(Qt::WA_InputMethodEnabled); + Qt::InputMethodHints hints = inputMethodHints(); + + QString page = "" + "
"; + if (m_mode == QLineEdit::Password) + page = page.arg("password"); + else + page = page.arg("text"); + + if (m_length == 0) + page = page.arg(""); + else + page = page.arg("maxlength=\"" + QString::number(m_length) + "\""); + + setHtml(page); + + setAttribute(Qt::WA_InputMethodEnabled, imEnabled); + setInputMethodHints(hints); + } + void setMaxLength(int length) + { + m_length = length; + updatePage(); + } + void setEchoMode(QLineEdit::EchoMode mode) + { + m_mode = mode; + updatePage(); + } + + int m_length; + QLineEdit::EchoMode m_mode; +}; + +class AutoGraphicsWebView : public QGraphicsView +{ + Q_OBJECT + +public: + AutoGraphicsWebView() + : m_length(0) + , m_mode(QLineEdit::Normal) + { + m_scene.addItem(&m_view); + setScene(&m_scene); + m_view.setFocus(); + updatePage(); + } + ~AutoGraphicsWebView() {} + + void updatePage() + { + // The update might reset the input method parameters. + bool imEnabled = testAttribute(Qt::WA_InputMethodEnabled); + Qt::InputMethodHints hints = inputMethodHints(); + + QString page = "" + "
"; + if (m_mode == QLineEdit::Password) + page = page.arg("password"); + else + page = page.arg("text"); + + if (m_length == 0) + page = page.arg(""); + else + page = page.arg("maxlength=\"" + QString::number(m_length) + "\""); + + m_view.setHtml(page); + + setAttribute(Qt::WA_InputMethodEnabled, imEnabled); + setInputMethodHints(hints); + } + void setMaxLength(int length) + { + m_length = length; + updatePage(); + } + void setEchoMode(QLineEdit::EchoMode mode) + { + m_mode = mode; + updatePage(); + } + + int m_length; + QLineEdit::EchoMode m_mode; + QGraphicsScene m_scene; + QGraphicsWebView m_view; +}; +#endif // QT_WEBKIT_LIB + void tst_QInputContext::symbianTestCoeFepInputContext_data() { #ifdef Q_OS_SYMBIAN @@ -481,6 +597,10 @@ void tst_QInputContext::symbianTestCoeFepInputContext_data() symbianTestCoeFepInputContext_addData(); symbianTestCoeFepInputContext_addData(); symbianTestCoeFepInputContext_addData(); +# ifdef QT_WEBKIT_LIB + symbianTestCoeFepInputContext_addData(); + symbianTestCoeFepInputContext_addData(); +# endif #endif } @@ -1087,13 +1207,28 @@ void tst_QInputContext::symbianTestCoeFepInputContext() editwidget->setAttribute(Qt::WA_InputMethodEnabled, inputMethodEnabled); editwidget->setInputMethodHints(inputMethodHints); - QLineEdit *lineedit = qobject_cast(editwidget); - if (lineedit) { + if (QLineEdit *lineedit = qobject_cast(editwidget)) { if (maxLength > 0) lineedit->setMaxLength(maxLength); lineedit->setEchoMode(echoMode); +#ifdef QT_WEBKIT_LIB + } else if (AutoWebView *webView = qobject_cast(editwidget)) { + if (maxLength > 0) + webView->setMaxLength(maxLength); + webView->setEchoMode(echoMode); + // WebKit disables T9 everywhere. + if (inputMethodEnabled && !(inputMethodHints & Qt::ImhNoPredictiveText)) + return; + } else if (AutoGraphicsWebView *webView = qobject_cast(editwidget)) { + if (maxLength > 0) + webView->setMaxLength(maxLength); + webView->setEchoMode(echoMode); + // WebKit disables T9 everywhere. + if (inputMethodEnabled && !(inputMethodHints & Qt::ImhNoPredictiveText)) + return; +#endif } else if (maxLength > 0 || echoMode != QLineEdit::Normal) { - // Only QLineEdits support these features so don't attempt any tests using those + // Only some widgets support these features so don't attempt any tests using those // on other widgets. return; } -- cgit v0.12 From 284211ccbd2cbdfea46cdf4b8628a1a967271985 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Tue, 14 Dec 2010 10:26:39 +0100 Subject: Prevent ::flush from being called on QGLWindowSurface if no painting happened. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 2527 Reviewed-by: Harald Fernengel Reviewed-by: Samuel Rødal --- src/opengl/qwindowsurface_gl.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp index f64b93c..6749826 100644 --- a/src/opengl/qwindowsurface_gl.cpp +++ b/src/opengl/qwindowsurface_gl.cpp @@ -267,6 +267,7 @@ struct QGLWindowSurfacePrivate int tried_pb : 1; int destructive_swap_buffers : 1; int geometry_updated : 1; + int did_paint : 1; QGLContext *ctx; @@ -330,6 +331,7 @@ QGLWindowSurface::QGLWindowSurface(QWidget *window) d_ptr->glDevice.d = d_ptr; d_ptr->q_ptr = this; d_ptr->geometry_updated = false; + d_ptr->did_paint = false; } QGLWindowSurface::~QGLWindowSurface() @@ -461,6 +463,8 @@ void QGLWindowSurface::beginPaint(const QRegion &) glClearColor(0.0, 0.0, 0.0, 0.0); glClear(clearFlags); } + + d_ptr->did_paint = true; } void QGLWindowSurface::endPaint(const QRegion &rgn) @@ -513,6 +517,13 @@ void QGLWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint & if (d_ptr->geometry_updated) return; + // did_paint is set to true in ::beginPaint. ::beginPaint means that we + // at least cleared the background (= painted something). In EGL API it's a + // mistakte to call swapBuffers if nothing was painted. This check protects + // the flush func from being executed if it's for nothing. + if (! d_ptr->did_paint) + return; + QWidget *parent = widget->internalWinId() ? widget : widget->nativeParentWidget(); Q_ASSERT(parent); @@ -736,6 +747,8 @@ void QGLWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint & ctx->swapBuffers(); else glFlush(); + + d_ptr->did_paint = false; } -- cgit v0.12 From 4d93a606ea0438be8062fda82baf639a9ced78ba Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Tue, 14 Dec 2010 10:28:26 +0100 Subject: Trivial: Fix coding style Fix coding style of merge request --- src/opengl/qwindowsurface_gl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp index 6749826..7dc7dc7 100644 --- a/src/opengl/qwindowsurface_gl.cpp +++ b/src/opengl/qwindowsurface_gl.cpp @@ -521,7 +521,7 @@ void QGLWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint & // at least cleared the background (= painted something). In EGL API it's a // mistakte to call swapBuffers if nothing was painted. This check protects // the flush func from being executed if it's for nothing. - if (! d_ptr->did_paint) + if (!d_ptr->did_paint) return; QWidget *parent = widget->internalWinId() ? widget : widget->nativeParentWidget(); -- cgit v0.12 From e864a530a5c48459c433518ff6ad893f33ec93d8 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Tue, 14 Dec 2010 10:57:11 +0100 Subject: Fix failing tst_QGraphicsView::QTBUG_16063_microFocusRect auto-test This ammends commit 0af1f5508e165f3b494ab236cb1cdf1b0edcffa5. Reviewed-by: trust me --- tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index e1fbaee..e259177 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -4455,7 +4455,7 @@ class IMItem : public QGraphicsRectItem { public: IMItem(QGraphicsItem *parent = 0): - QGraphicsRectItem(mf.adjusted(-5, -5, 5, 5), parent) + QGraphicsRectItem(QRectF(0, 0, 20, 20), parent) { setFlag(QGraphicsItem::ItemIsFocusable, true); setFlag(QGraphicsItem::ItemAcceptsInputMethod, true); @@ -4486,7 +4486,7 @@ void tst_QGraphicsView::QTBUG_16063_microFocusRect() scene.setFocusItem(item); view.setFocus(); QRectF mfv = view.inputMethodQuery(Qt::ImMicroFocus).toRectF(); - QCOMPARE(mfv, QRectF(13.5, 13.6, 10, 10)); + QCOMPARE(mfv, IMItem::mf.translated(-view.mapToScene(view.sceneRect().toRect()).boundingRect().topLeft())); } QTEST_MAIN(tst_QGraphicsView) -- cgit v0.12 From 736b8205158dd7b98af862a029b273dff6fb716d Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 8 Dec 2010 13:23:23 +0100 Subject: QApplication: fix crash exit whith native windows Regression introduced in 8dd8db250d92521fda619bdcf3e1c859b37b2da0 Patch comes from the task Task-number: QTBUG-15774 --- src/gui/kernel/qapplication.cpp | 6 +++--- tests/auto/qapplication/modal/main.cpp | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gui/kernel/qapplication.cpp b/src/gui/kernel/qapplication.cpp index a4ae46b..b4ff7c4 100644 --- a/src/gui/kernel/qapplication.cpp +++ b/src/gui/kernel/qapplication.cpp @@ -1101,6 +1101,9 @@ QApplication::~QApplication() QApplicationPrivate::is_app_closing = true; QApplicationPrivate::is_app_running = false; + delete QWidgetPrivate::mapper; + QWidgetPrivate::mapper = 0; + // delete all widgets if (QWidgetPrivate::allWidgets) { QWidgetSet *mySet = QWidgetPrivate::allWidgets; @@ -1130,9 +1133,6 @@ QApplication::~QApplication() delete d->ignore_cursor; d->ignore_cursor = 0; #endif - delete QWidgetPrivate::mapper; - QWidgetPrivate::mapper = 0; - delete QApplicationPrivate::app_pal; QApplicationPrivate::app_pal = 0; delete QApplicationPrivate::sys_pal; diff --git a/tests/auto/qapplication/modal/main.cpp b/tests/auto/qapplication/modal/main.cpp index f9d8fb4..3eaaa0d 100644 --- a/tests/auto/qapplication/modal/main.cpp +++ b/tests/auto/qapplication/modal/main.cpp @@ -47,6 +47,7 @@ int main(int argc, char *argv[]) { QApplication app(argc, argv); + QApplication::setAttribute(Qt::AA_NativeWindows); //QTBUG-15774 base *b = new base(); return app.exec(); } -- cgit v0.12 From 67b24ac50637ecda00990b239fc5ed0b73e54d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Tue, 14 Dec 2010 12:03:23 +0100 Subject: Fixed stroke / fill inconsistencies in GL 2 paint engine. Get rid of the aliased coordinate delta, like we already did in the raster paint engine. Task-number: QTBUG-16043 Reviewed-by: Gunnar Sletta --- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 40 ---------------------- .../gl2paintengineex/qpaintengineex_opengl2_p.h | 2 -- 2 files changed, 42 deletions(-) diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index bb7c804..cdd785a 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -381,12 +381,6 @@ void QGL2PaintEngineExPrivate::updateMatrix() dx = ceilf(dx - 0.5f); dy = ceilf(dy - 0.5f); } -#ifndef Q_OS_SYMBIAN - if (addOffset) { - dx += 0.49f; - dy += 0.49f; - } -#endif pmvMatrix[0][0] = (wfactor * transform.m11()) - transform.m13(); pmvMatrix[1][0] = (wfactor * transform.m21()) - transform.m23(); pmvMatrix[2][0] = (wfactor * dx) - transform.m33(); @@ -488,11 +482,6 @@ void QGL2PaintEngineExPrivate::drawTexture(const QGLRect& dest, const QGLRect& s currentBrush = noBrush; shaderManager->setSrcPixelType(pattern ? QGLEngineShaderManager::PatternSrc : QGLEngineShaderManager::ImageSrc); - if (addOffset) { - addOffset = false; - matrixDirty = true; - } - if (snapToPixelGrid) { snapToPixelGrid = false; matrixDirty = true; @@ -675,16 +664,6 @@ void QGL2PaintEngineExPrivate::fill(const QVectorPath& path) { transferMode(BrushDrawingMode); - const QOpenGL2PaintEngineState *s = q->state(); - const bool newAddOffset = !(s->renderHints & QPainter::Antialiasing) && - (qbrush_style(currentBrush) == Qt::SolidPattern) && - !multisamplingAlwaysEnabled; - - if (addOffset != newAddOffset) { - addOffset = newAddOffset; - matrixDirty = true; - } - if (snapToPixelGrid) { snapToPixelGrid = false; matrixDirty = true; @@ -1203,12 +1182,6 @@ void QGL2PaintEngineEx::stroke(const QVectorPath &path, const QPen &pen) void QGL2PaintEngineExPrivate::stroke(const QVectorPath &path, const QPen &pen) { const QOpenGL2PaintEngineState *s = q->state(); - const bool newAddOffset = !(s->renderHints & QPainter::Antialiasing) && !multisamplingAlwaysEnabled; - if (addOffset != newAddOffset) { - addOffset = newAddOffset; - matrixDirty = true; - } - if (snapToPixelGrid) { snapToPixelGrid = false; matrixDirty = true; @@ -1638,10 +1611,6 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp setVertexAttributePointer(QT_VERTEX_COORDS_ATTR, (GLfloat*)vertexCoordinates->data()); setVertexAttributePointer(QT_TEXTURE_COORDS_ATTR, (GLfloat*)textureCoordinates->data()); - if (addOffset) { - addOffset = false; - matrixDirty = true; - } if (!snapToPixelGrid) { snapToPixelGrid = true; matrixDirty = true; @@ -1786,11 +1755,6 @@ void QGL2PaintEngineExPrivate::drawPixmapFragments(const QPainter::PixmapFragmen textureCoordinateArray.clear(); opacityArray.reset(); - if (addOffset) { - addOffset = false; - matrixDirty = true; - } - if (snapToPixelGrid) { snapToPixelGrid = false; matrixDirty = true; @@ -2087,10 +2051,6 @@ void QGL2PaintEngineExPrivate::writeClip(const QVectorPath &path, uint value) { transferMode(BrushDrawingMode); - if (addOffset) { - addOffset = false; - matrixDirty = true; - } if (snapToPixelGrid) { snapToPixelGrid = false; matrixDirty = true; diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h index b255e75..88172fb 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2_p.h @@ -181,7 +181,6 @@ public: elementIndicesVBOId(0), opacityArray(0), snapToPixelGrid(false), - addOffset(false), nativePaintingActive(false), inverseScale(1), lastMaskTextureUsed(0) @@ -283,7 +282,6 @@ public: GLfloat staticTextureCoordinateArray[8]; bool snapToPixelGrid; - bool addOffset; // When enabled, adds a 0.49,0.49 offset to matrix in updateMatrix bool nativePaintingActive; GLfloat pmvMatrix[3][3]; GLfloat inverseScale; -- cgit v0.12 From 3778c3f5208f3db99d6b23a2a3c4abf1fe2ec64f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Tue, 14 Dec 2010 11:46:57 +0100 Subject: Make sure that d->init() is called from both ctors. QGraphicsLayout uses the protected ctor that did not call d->init(), so all its subclasses was potentially suffering from this. Task-number: QTBUG-15333 Reviewed-by: John Tapsell --- src/gui/graphicsview/qgraphicslayoutitem.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgraphicslayoutitem.cpp b/src/gui/graphicsview/qgraphicslayoutitem.cpp index df13039..b11dc9e 100644 --- a/src/gui/graphicsview/qgraphicslayoutitem.cpp +++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp @@ -129,7 +129,6 @@ void QGraphicsLayoutItemPrivate::init() { sizeHintCacheDirty = true; sizeHintWithConstraintCacheDirty = true; - sizePolicy = QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); } /*! @@ -400,6 +399,7 @@ QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItem *parent, bool isLay { Q_D(QGraphicsLayoutItem); d->init(); + sizePolicy = QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); d->q_ptr = this; } @@ -410,6 +410,7 @@ QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItemPrivate &dd) : d_ptr(&dd) { Q_D(QGraphicsLayoutItem); + d->init(); d->q_ptr = this; } -- cgit v0.12 From 542fe69cdeff81acb8f986ff4606043613345dc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan-Arve=20S=C3=A6ther?= Date: Tue, 14 Dec 2010 13:03:43 +0100 Subject: Fix to commit 3778c3f5208f3db99d6b23a2a3c4abf1fe2ec64f This is what could happen if you go to lunch before comitting. --- src/gui/graphicsview/qgraphicslayoutitem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgraphicslayoutitem.cpp b/src/gui/graphicsview/qgraphicslayoutitem.cpp index b11dc9e..0a24aae 100644 --- a/src/gui/graphicsview/qgraphicslayoutitem.cpp +++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp @@ -399,7 +399,7 @@ QGraphicsLayoutItem::QGraphicsLayoutItem(QGraphicsLayoutItem *parent, bool isLay { Q_D(QGraphicsLayoutItem); d->init(); - sizePolicy = QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); + d->sizePolicy = QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); d->q_ptr = this; } -- cgit v0.12 From 0727539b89898544047d32e63633790fa0c44b5a Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 14 Dec 2010 14:03:08 +0100 Subject: Don't delete FBO when resetting glyph cache When the glyph cache is cleared because the max texture size has been exceeded, we shouldn't delete the fbo as this is only created in setContext() and will thus not be recreated. All subsequent resizing of the cache will fail. Task-number: QT-3971 Reviewed-by: Samuel --- src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp index 66445cd..1b879c3 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp @@ -83,13 +83,9 @@ void QGLTextureGlyphCache::clear() if (ctx) { QGLShareContextScope scope(ctx); - if (!ctx->d_ptr->workaround_brokenFBOReadBack) - glDeleteFramebuffers(1, &m_fbo); - if (m_width || m_height) glDeleteTextures(1, &m_texture); - m_fbo = 0; m_texture = 0; m_width = 0; m_height = 0; @@ -105,6 +101,13 @@ void QGLTextureGlyphCache::clear() QGLTextureGlyphCache::~QGLTextureGlyphCache() { + if (ctx) { + QGLShareContextScope scope(ctx); + + if (!ctx->d_ptr->workaround_brokenFBOReadBack) + glDeleteFramebuffers(1, &m_fbo); + } + clear(); } -- cgit v0.12 From 3c20e7a08aadb08955603d004054a3adacff180f Mon Sep 17 00:00:00 2001 From: aavit Date: Tue, 14 Dec 2010 15:24:20 +0100 Subject: Make the lancelot/baseline test system generically usable To facilitate usage outside of tst_lancelot: - Added new QBaseLineTest simple API - Added "tst_baselineexample" autotest to show usage - Improved reporting - Results from all testfunctions collected in same report --- tests/arthur/baselineserver/src/baselineserver.cpp | 84 +++--- tests/arthur/baselineserver/src/baselineserver.h | 12 +- tests/arthur/baselineserver/src/baselineserver.pro | 4 +- tests/arthur/baselineserver/src/htmlpage.cpp | 244 ----------------- tests/arthur/baselineserver/src/htmlpage.h | 79 ------ tests/arthur/baselineserver/src/main.cpp | 2 +- tests/arthur/baselineserver/src/report.cpp | 296 +++++++++++++++++++++ tests/arthur/baselineserver/src/report.h | 90 +++++++ tests/arthur/common/baselineprotocol.cpp | 5 + tests/arthur/common/baselineprotocol.h | 12 +- tests/arthur/common/qbaselinetest.cpp | 124 +++++++++ tests/arthur/common/qbaselinetest.h | 64 +++++ tests/arthur/common/qbaselinetest.pri | 13 + tests/auto/baselineexample/baselineexample.pro | 18 ++ tests/auto/baselineexample/tst_baselineexample.cpp | 158 +++++++++++ tests/auto/lancelot/lancelot.pro | 5 +- tests/auto/lancelot/tst_lancelot.cpp | 2 +- 17 files changed, 834 insertions(+), 378 deletions(-) delete mode 100644 tests/arthur/baselineserver/src/htmlpage.cpp delete mode 100644 tests/arthur/baselineserver/src/htmlpage.h create mode 100644 tests/arthur/baselineserver/src/report.cpp create mode 100644 tests/arthur/baselineserver/src/report.h create mode 100644 tests/arthur/common/qbaselinetest.cpp create mode 100644 tests/arthur/common/qbaselinetest.h create mode 100644 tests/arthur/common/qbaselinetest.pri create mode 100644 tests/auto/baselineexample/baselineexample.pro create mode 100644 tests/auto/baselineexample/tst_baselineexample.cpp diff --git a/tests/arthur/baselineserver/src/baselineserver.cpp b/tests/arthur/baselineserver/src/baselineserver.cpp index 90eb594..6351dff 100644 --- a/tests/arthur/baselineserver/src/baselineserver.cpp +++ b/tests/arthur/baselineserver/src/baselineserver.cpp @@ -145,36 +145,43 @@ const char *BaselineHandler::logtime() //return QTime::currentTime().toString(QLS("mm:ss.zzz")); } -void BaselineHandler::receiveRequest() +bool BaselineHandler::establishConnection() { - if (!connectionEstablished) { - if (!proto.acceptConnection(&plat)) { - qWarning() << runId << logtime() << "Accepting new connection from" << proto.socket.peerAddress().toString() << "failed." << proto.errorMessage(); - proto.socket.disconnectFromHost(); - return; - } - QString logMsg; - foreach (QString key, plat.keys()) { - if (key != PI_HostName && key != PI_HostAddress) - logMsg += key + QLS(": '") + plat.value(key) + QLS("', "); - } - qDebug() << runId << logtime() << "Connection established with" << plat.value(PI_HostName) - << "[" << qPrintable(plat.value(PI_HostAddress)) << "]" << logMsg; + if (!proto.acceptConnection(&plat)) { + qWarning() << runId << logtime() << "Accepting new connection from" << proto.socket.peerAddress().toString() << "failed." << proto.errorMessage(); + proto.socket.disconnectFromHost(); + return false; + } + QString logMsg; + foreach (QString key, plat.keys()) { + if (key != PI_HostName && key != PI_HostAddress) + logMsg += key + QLS(": '") + plat.value(key) + QLS("', "); + } + qDebug() << runId << logtime() << "Connection established with" << plat.value(PI_HostName) + << "[" << qPrintable(plat.value(PI_HostAddress)) << "]" << logMsg; - // Filter on branch - QString branch = plat.value(PI_PulseGitBranch); - if (branch.isEmpty()) { - // Not run by Pulse, i.e. ad hoc run: Ok. - } - else if (branch != QLS("master-integration") || !plat.value(PI_GitCommit).contains(QLS("Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into master-integration"))) { - qDebug() << runId << logtime() << "Did not pass branch/staging repo filter, disconnecting."; - proto.sendBlock(BaselineProtocol::Abort, QByteArray("This branch/staging repo is not assigned to be tested.")); - proto.socket.disconnectFromHost(); - return; - } + // Filter on branch + QString branch = plat.value(PI_PulseGitBranch); + if (branch.isEmpty()) { + // Not run by Pulse, i.e. ad hoc run: Ok. + } + else if (branch != QLS("master-integration") || !plat.value(PI_GitCommit).contains(QLS("Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into master-integration"))) { + qDebug() << runId << logtime() << "Did not pass branch/staging repo filter, disconnecting."; + proto.sendBlock(BaselineProtocol::Abort, QByteArray("This branch/staging repo is not assigned to be tested.")); + proto.socket.disconnectFromHost(); + return false; + } + + proto.sendBlock(BaselineProtocol::Ack, QByteArray()); + + report.init(this, runId, plat); + return true; +} - proto.sendBlock(BaselineProtocol::Ack, QByteArray()); - connectionEstablished = true; +void BaselineHandler::receiveRequest() +{ + if (!connectionEstablished) { + connectionEstablished = establishConnection(); return; } @@ -247,7 +254,7 @@ void BaselineHandler::provideBaselineChecksums(const QByteArray &itemListBlock) QDataStream ods(&block, QIODevice::WriteOnly); ods << itemList; proto.sendBlock(BaselineProtocol::Ack, block); - report.start(BaselineServer::storagePath(), runId, plat, context, itemList); + report.addItems(itemList); } @@ -274,19 +281,15 @@ void BaselineHandler::storeImage(const QByteArray &itemBlock, bool isBaseline) file.close(); if (!isBaseline) - report.addItem(pathForItem(item, true, false) + QLS(FileFormat), - pathForItem(item, false, false) + QLS(FileFormat), - item); + report.addMismatch(item); - QByteArray msg(isBaseline ? "New baseline image stored: " : - "Mismatch report: " ); - msg += BaselineServer::baseUrl(); + QString msg; if (isBaseline) - msg += pathForItem(item, true, false).toLatin1() + FileFormat; + msg = QLS("New baseline image stored: ") + pathForItem(item, true, true) + QLS(FileFormat); else - msg += report.filePath(); + msg = BaselineServer::baseUrl() + report.filePath(); - proto.sendBlock(BaselineProtocol::Ack, msg); + proto.sendBlock(BaselineProtocol::Ack, msg.toLatin1()); } @@ -298,7 +301,7 @@ void BaselineHandler::receiveDisconnect() } -void BaselineHandler::mapPlatformInfo() +void BaselineHandler::mapPlatformInfo() const { mapped = plat; @@ -328,12 +331,13 @@ void BaselineHandler::mapPlatformInfo() mapped.insert(PI_QtVersion, ver.prepend(QLS("Qt-"))); //### TBD: remove patch version } -QString BaselineHandler::pathForItem(const ImageItem &item, bool isBaseline, bool absolute) +QString BaselineHandler::pathForItem(const ImageItem &item, bool isBaseline, bool absolute) const { if (mapped.isEmpty()) mapPlatformInfo(); - QString itemName = item.itemName; + QString itemName = item.itemName.simplified(); + itemName.replace(QLC(' '), QLC('_')); itemName.replace(QLC('.'), QLC('_')); itemName.append(QLC('_')); itemName.append(QString::number(item.itemChecksum, 16).rightJustified(4, QLC('0'))); diff --git a/tests/arthur/baselineserver/src/baselineserver.h b/tests/arthur/baselineserver/src/baselineserver.h index 346ce1f..e09a9d0 100644 --- a/tests/arthur/baselineserver/src/baselineserver.h +++ b/tests/arthur/baselineserver/src/baselineserver.h @@ -50,7 +50,7 @@ #include #include "baselineprotocol.h" -#include "htmlpage.h" +#include "report.h" // #seconds between update checks #define HEARTBEAT 10 @@ -99,7 +99,9 @@ class BaselineHandler : public QObject public: BaselineHandler(int socketDescriptor = -1); void testPathMapping(); + QString pathForItem(const ImageItem &item, bool isBaseline = true, bool absolute = true) const; + // CGI callbacks: static QString view(const QString &baseline, const QString &rendered, const QString &compared); static QString clearAllBaselines(const QString &context); static QString updateSingleBaseline(const QString &oldBaseline, const QString &newBaseline); @@ -110,19 +112,19 @@ private slots: void receiveDisconnect(); private: + bool establishConnection(); void provideBaselineChecksums(const QByteArray &itemListBlock); void storeImage(const QByteArray &itemBlock, bool isBaseline); - void mapPlatformInfo(); - QString pathForItem(const ImageItem &item, bool isBaseline = true, bool absolute = true); + void mapPlatformInfo() const; const char *logtime(); QString computeMismatchScore(const QImage& baseline, const QImage& rendered); BaselineProtocol proto; PlatformInfo plat; - PlatformInfo mapped; + mutable PlatformInfo mapped; bool connectionEstablished; QString runId; - HTMLPage report; + Report report; }; #endif // BASELINESERVER_H diff --git a/tests/arthur/baselineserver/src/baselineserver.pro b/tests/arthur/baselineserver/src/baselineserver.pro index defa05a..770662b 100644 --- a/tests/arthur/baselineserver/src/baselineserver.pro +++ b/tests/arthur/baselineserver/src/baselineserver.pro @@ -20,11 +20,11 @@ include(../../common/baselineprotocol.pri) SOURCES += main.cpp \ baselineserver.cpp \ - htmlpage.cpp + report.cpp HEADERS += \ baselineserver.h \ - htmlpage.h + report.h RESOURCES += \ baselineserver.qrc diff --git a/tests/arthur/baselineserver/src/htmlpage.cpp b/tests/arthur/baselineserver/src/htmlpage.cpp deleted file mode 100644 index 2b16d25..0000000 --- a/tests/arthur/baselineserver/src/htmlpage.cpp +++ /dev/null @@ -1,244 +0,0 @@ -/**************************************************************************** -** -** 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 "htmlpage.h" -#include "baselineprotocol.h" -#include "baselineserver.h" -#include -#include -#include - -HTMLPage::HTMLPage() - : headerWritten(false) -{ -} - -HTMLPage::~HTMLPage() -{ - end(); -} - -QString HTMLPage::filePath() -{ - return path; -} - -void HTMLPage::start(const QString &storagepath, const QString &runId, const PlatformInfo pinfo, const QString &context, const ImageItemList &itemList) -{ - end(); - - id = runId; - plat = pinfo; - ctx = context; - root = storagepath + QLC('/'); - imageItems = itemList; - reportDir = pinfo.value(PI_TestCase) + QLC('/') + (pinfo.value(PI_PulseGitBranch).isEmpty() ? QLS("reports/adhoc/") : QLS("reports/pulse/")); - QString dir = root + reportDir; - QDir cwd; - if (!cwd.exists(dir)) - cwd.mkpath(dir); -} - - -void HTMLPage::writeHeader(const ImageItem &item) -{ - path = reportDir + id + QLC('_') + item.testFunction + QLS(".html"); - - QString pageUrl = BaselineServer::baseUrl() + path; - - file.setFileName(root + path); - if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) - qWarning() << "Failed to open report file" << file.fileName(); - out.setDevice(&file); - - out << "

Lancelot results from run " << id << "

\n\n"; - out << "

Platform Info:

\n"; - out << "\n"; - foreach (QString key, plat.keys()) - out << "\n"; - out << "
" << key << "" << plat.value(key) << "

\n\n"; - - out << "

Clear all baselines (They will be recreated by the next run)

\n\n"; - - out << "

\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "
"; -} - - -void HTMLPage::writeFooter() -{ - out << "
ScriptBaselineRenderedComparison (diffs are RED)Info/Action

\n\n"; -} - - -void HTMLPage::addItem(const QString &baseline, const QString &rendered, const ImageItem &item) -{ - if (!headerWritten) { - writeHeader(item); - headerWritten = true; - } - QString compared = generateCompared(baseline, rendered); - QString pageUrl = BaselineServer::baseUrl() + path; - - out << "\n"; - out << "" << item.itemName << "\n"; - QStringList images = QStringList() << baseline << rendered << compared; - foreach(const QString& img, images) - out << "\n"; - - out << "\n" - << "

Replace baseline with rendered

\n" - << "

Blacklist this item

\n" - << "

View

\n" - << "\n"; - out << "\n\n"; - - QMutableVectorIterator it(imageItems); - while (it.hasNext()) { - it.next(); - if (it.value().itemName == item.itemName) { - it.remove(); - break; - } - } -} - - -void HTMLPage::end() -{ - if (file.isOpen()) { - // Add the names of the scripts that passed the test, or were blacklisted - QString pageUrl = BaselineServer::baseUrl() + path; - for (int i=0; i" << imageItems.at(i).itemName << "N/AN/AN/A"; - if (imageItems.at(i).status == ImageItem::IgnoreItem) { - out << "Blacklisted " - << "Whitelist item"; - } else { - out << "Test passed"; - } - out << "\n"; - } - - writeFooter(); - out.flush(); - file.close(); - path.clear(); - headerWritten = false; - } -} - - -QString HTMLPage::generateCompared(const QString &baseline, const QString &rendered, bool fuzzy) -{ - QString res = rendered; - QFileInfo fi(res); - res.chop(fi.suffix().length() + 1); - res += QLS(fuzzy ? "_fuzzycompared.png" : "_compared.png"); - QStringList args; - if (fuzzy) - args << QLS("-fuzz") << QLS("5%"); - args << root+baseline << root+rendered << root+res; - QProcess::execute(QLS("compare"), args); - return res; -} - - -QString HTMLPage::generateThumbnail(const QString &image) -{ - QString res = image; - QFileInfo imgFI(root+image); - res.chop(imgFI.suffix().length() + 1); - res += QLS("_thumbnail.jpg"); - QFileInfo resFI(root+res); - if (resFI.exists() && resFI.lastModified() > imgFI.lastModified()) - return res; - QStringList args; - args << root+image << QLS("-resize") << QLS("240x240") << QLS("-quality") << QLS("50") << root+res; - QProcess::execute(QLS("convert"), args); - return res; -} - - -void HTMLPage::handleCGIQuery(const QString &query) -{ - QUrl cgiUrl(QLS("http://dummy/cgi-bin/dummy.cgi?") + query); - QTextStream s(stdout); - s << "Content-Type: text/html\r\n\r\n" - << ""; - - QString command(cgiUrl.queryItemValue("cmd")); - - if (command == QLS("view")) { - s << BaselineHandler::view(cgiUrl.queryItemValue(QLS("baseline")), - cgiUrl.queryItemValue(QLS("rendered")), - cgiUrl.queryItemValue(QLS("compared"))); - } - else if (command == QLS("updateSingleBaseline")) { - s << BaselineHandler::updateSingleBaseline(cgiUrl.queryItemValue(QLS("oldBaseline")), - cgiUrl.queryItemValue(QLS("newBaseline"))); - } else if (command == QLS("clearAllBaselines")) { - s << BaselineHandler::clearAllBaselines(cgiUrl.queryItemValue(QLS("context"))); - } else if (command == QLS("blacklist")) { - // blacklist a test - s << BaselineHandler::blacklistTest(cgiUrl.queryItemValue(QLS("context")), - cgiUrl.queryItemValue(QLS("itemId"))); - } else if (command == QLS("whitelist")) { - // whitelist a test - s << BaselineHandler::blacklistTest(cgiUrl.queryItemValue(QLS("context")), - cgiUrl.queryItemValue(QLS("itemId")), true); - } else { - s << "Unknown query:
" << query << "
"; - } - s << "

Back to report"; - s << ""; -} diff --git a/tests/arthur/baselineserver/src/htmlpage.h b/tests/arthur/baselineserver/src/htmlpage.h deleted file mode 100644 index 5f1e051..0000000 --- a/tests/arthur/baselineserver/src/htmlpage.h +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ -#ifndef HTMLPAGE_H -#define HTMLPAGE_H - -#include "baselineprotocol.h" -#include -#include - -class HTMLPage -{ -public: - HTMLPage(); - ~HTMLPage(); - - void start(const QString &storagePath, const QString &runId, const PlatformInfo pinfo, const QString &context, const ImageItemList &itemList); - void addItem(const QString &baseline, const QString &rendered, const ImageItem &item); - void end(); - QString filePath(); - - static void handleCGIQuery(const QString &query); - -private: - void writeHeader(const ImageItem &item); - void writeFooter(); - QString generateCompared(const QString &baseline, const QString &rendered, bool fuzzy = false); - QString generateThumbnail(const QString &image); - - QString root; - QString path; - QString reportDir; - QFile file; - QTextStream out; - QString id; - PlatformInfo plat; - QString ctx; - ImageItemList imageItems; - bool headerWritten; -}; - -#endif // HTMLPAGE_H diff --git a/tests/arthur/baselineserver/src/main.cpp b/tests/arthur/baselineserver/src/main.cpp index a5ec4db..bf41f41 100644 --- a/tests/arthur/baselineserver/src/main.cpp +++ b/tests/arthur/baselineserver/src/main.cpp @@ -48,7 +48,7 @@ int main(int argc, char *argv[]) QString queryString(qgetenv("QUERY_STRING")); if (!queryString.isEmpty()) { // run as CGI script - HTMLPage::handleCGIQuery(queryString); + Report::handleCGIQuery(queryString); return 0; } diff --git a/tests/arthur/baselineserver/src/report.cpp b/tests/arthur/baselineserver/src/report.cpp new file mode 100644 index 0000000..f5bb418 --- /dev/null +++ b/tests/arthur/baselineserver/src/report.cpp @@ -0,0 +1,296 @@ +/**************************************************************************** +** +** 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 "report.h" +#include "baselineprotocol.h" +#include "baselineserver.h" +#include +#include +#include + +Report::Report() + : written(false), numItems(0), numMismatches(0) +{ +} + +Report::~Report() +{ + end(); +} + +QString Report::filePath() +{ + return path; +} + +void Report::init(const BaselineHandler *h, const QString &r, const PlatformInfo &p) +{ + handler = h; + runId = r; + plat = p; + rootDir = BaselineServer::storagePath() + QLC('/'); + reportDir = plat.value(PI_TestCase) + QLC('/') + (plat.value(PI_PulseGitBranch).isEmpty() ? QLS("reports/adhoc/") : QLS("reports/pulse/")); + QString dir = rootDir + reportDir; + QDir cwd; + if (!cwd.exists(dir)) + cwd.mkpath(dir); + path = reportDir + QLS("Report_") + runId + QLS(".html"); +} + +void Report::addItems(const ImageItemList &items) +{ + if (items.isEmpty()) + return; + numItems += items.size(); + QString func = items.at(0).testFunction; + if (!testFunctions.contains(func)) + testFunctions.append(func); + itemLists[func] += items; +} + +void Report::addMismatch(const ImageItem &item) +{ + if (!testFunctions.contains(item.testFunction)) { + qWarning() << "Report::addMismatch: unknown testfunction" << item.testFunction; + return; + } + bool found = false; + ImageItemList &list = itemLists[item.testFunction]; + for (ImageItemList::iterator it = list.begin(); it != list.end(); ++it) { + if (it->itemName == item.itemName && it->itemChecksum == item.itemChecksum) { + it->status = ImageItem::Mismatch; + found = true; + break; + } + } + if (found) + numMismatches++; + else + qWarning() << "Report::addMismatch: unknown item" << item.itemName << "in testfunction" << item.testFunction; +} + +void Report::end() +{ + if (written || !numMismatches) + return; + write(); + written = true; +} + + +void Report::write() +{ + QFile file(rootDir + path); + if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + qWarning() << "Failed to open report file" << file.fileName(); + return; + } + out.setDevice(&file); + + writeHeader(); + foreach(const QString &func, testFunctions) { + writeFunctionResults(itemLists.value(func)); + } + writeFooter(); + file.close(); +} + + +void Report::writeHeader() +{ + QString title = plat.value(PI_TestCase) + QLS(" Qt Baseline Test Report"); + out << "" << title << "\n" + << "

" << title << "

\n" + << "

Run Id: " << runId << "

\n" + << "

Summary: " << numMismatches << " of " << numItems << " items reported mismatching

\n\n"; + out << "

Platform Info:

\n" + << "\n"; + foreach (QString key, plat.keys()) + out << "\n"; + out << "
" << key << "" << plat.value(key) << "
\n\n"; +} + + +void Report::writeFunctionResults(const ImageItemList &list) +{ + QString testFunction = list.at(0).testFunction; + QString pageUrl = BaselineServer::baseUrl() + path; + QString ctx = handler->pathForItem(list.at(0), true, false).section(QLC('/'), 0, -2); + + out << "\n

 

Test function: " << testFunction << "

\n"; + out << "

Clear all baselines (They will be recreated by the next run)

\n\n"; + + out << "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n" + "\n\n"; + + foreach (const ImageItem &item, list) { + out << "\n"; + out << "\n"; + QString baseline = handler->pathForItem(item, true, false) + QLS(FileFormat); + if (item.status == ImageItem::Mismatch) { + QString rendered = handler->pathForItem(item, false, false) + QLS(FileFormat); + writeItem(baseline, rendered, item, ctx); + } + else { + out << "\n" + << "\n" + << "\n"; + } + out << "\n\n"; + } + + out << "
ItemBaselineRenderedComparison (diffs are RED)Info/Action
" << item.itemName << "viewn/a"; + switch (item.status) { + case ImageItem::BaselineNotFound: + out << "Baseline not found/regenerated"; + break; + case ImageItem::IgnoreItem: + out << "Blacklisted " + << "Whitelist this item"; + break; + case ImageItem::Ok: + out << "No mismatch reported"; + break; + default: + out << "?"; + break; + } + out << "
\n"; +} + +void Report::writeItem(const QString &baseline, const QString &rendered, const ImageItem &item, const QString &ctx) +{ + QString compared = generateCompared(baseline, rendered); + QString pageUrl = BaselineServer::baseUrl() + path; + + QStringList images = QStringList() << baseline << rendered << compared; + foreach (const QString& img, images) + out << "\n"; + + out << "\n" + << "

Mismatch reported

\n" + << "

Replace baseline with rendered

\n" + << "

Blacklist this item

\n" + << "

Inspect

\n" + << "\n"; +} + +void Report::writeFooter() +{ + out << "\n\n"; +} + + +QString Report::generateCompared(const QString &baseline, const QString &rendered, bool fuzzy) +{ + QString res = rendered; + QFileInfo fi(res); + res.chop(fi.suffix().length() + 1); + res += QLS(fuzzy ? "_fuzzycompared.png" : "_compared.png"); + QStringList args; + if (fuzzy) + args << QLS("-fuzz") << QLS("5%"); + args << rootDir+baseline << rootDir+rendered << rootDir+res; + QProcess::execute(QLS("compare"), args); + return res; +} + + +QString Report::generateThumbnail(const QString &image) +{ + QString res = image; + QFileInfo imgFI(rootDir+image); + res.chop(imgFI.suffix().length() + 1); + res += QLS("_thumbnail.jpg"); + QFileInfo resFI(rootDir+res); + if (resFI.exists() && resFI.lastModified() > imgFI.lastModified()) + return res; + QStringList args; + args << rootDir+image << QLS("-resize") << QLS("240x240>") << QLS("-quality") << QLS("50") << rootDir+res; + QProcess::execute(QLS("convert"), args); + return res; +} + + +void Report::handleCGIQuery(const QString &query) +{ + QUrl cgiUrl(QLS("http://dummy/cgi-bin/dummy.cgi?") + query); + QTextStream s(stdout); + s << "Content-Type: text/html\r\n\r\n" + << ""; + + QString command(cgiUrl.queryItemValue("cmd")); + + if (command == QLS("view")) { + s << BaselineHandler::view(cgiUrl.queryItemValue(QLS("baseline")), + cgiUrl.queryItemValue(QLS("rendered")), + cgiUrl.queryItemValue(QLS("compared"))); + } + else if (command == QLS("updateSingleBaseline")) { + s << BaselineHandler::updateSingleBaseline(cgiUrl.queryItemValue(QLS("oldBaseline")), + cgiUrl.queryItemValue(QLS("newBaseline"))); + } else if (command == QLS("clearAllBaselines")) { + s << BaselineHandler::clearAllBaselines(cgiUrl.queryItemValue(QLS("context"))); + } else if (command == QLS("blacklist")) { + // blacklist a test + s << BaselineHandler::blacklistTest(cgiUrl.queryItemValue(QLS("context")), + cgiUrl.queryItemValue(QLS("itemId"))); + } else if (command == QLS("whitelist")) { + // whitelist a test + s << BaselineHandler::blacklistTest(cgiUrl.queryItemValue(QLS("context")), + cgiUrl.queryItemValue(QLS("itemId")), true); + } else { + s << "Unknown query:
" << query << "
"; + } + s << "

Back to report"; + s << ""; +} diff --git a/tests/arthur/baselineserver/src/report.h b/tests/arthur/baselineserver/src/report.h new file mode 100644 index 0000000..0df613a --- /dev/null +++ b/tests/arthur/baselineserver/src/report.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ +#ifndef REPORT_H +#define REPORT_H + +#include "baselineprotocol.h" +#include +#include +#include +#include + +class BaselineHandler; + +class Report +{ +public: + Report(); + ~Report(); + + void init(const BaselineHandler *h, const QString &r, const PlatformInfo &p); + void addItems(const ImageItemList& items); + void addMismatch(const ImageItem& item); + void end(); + + QString filePath(); + + static void handleCGIQuery(const QString &query); + +private: + void write(); + void writeFunctionResults(const ImageItemList &list); + void writeItem(const QString &baseline, const QString &rendered, const ImageItem &item, const QString &ctx); + void writeHeader(); + void writeFooter(); + QString generateCompared(const QString &baseline, const QString &rendered, bool fuzzy = false); + QString generateThumbnail(const QString &image); + + const BaselineHandler *handler; + QString runId; + PlatformInfo plat; + QString rootDir; + QString reportDir; + QString path; + QStringList testFunctions; + QMap itemLists; + bool written; + int numItems; + int numMismatches; + QTextStream out; +}; + +#endif // REPORT_H diff --git a/tests/arthur/common/baselineprotocol.cpp b/tests/arthur/common/baselineprotocol.cpp index c7e9e72..e4445bd 100644 --- a/tests/arthur/common/baselineprotocol.cpp +++ b/tests/arthur/common/baselineprotocol.cpp @@ -48,6 +48,7 @@ #include #include #include +#include #ifndef QMAKESPEC #define QMAKESPEC "Unknown" @@ -264,6 +265,10 @@ QDataStream & operator>> (QDataStream &stream, ImageItem &ii) return stream; } +BaselineProtocol::BaselineProtocol() +{ +} + BaselineProtocol::~BaselineProtocol() { socket.close(); diff --git a/tests/arthur/common/baselineprotocol.h b/tests/arthur/common/baselineprotocol.h index 1f4d593..2315bc3 100644 --- a/tests/arthur/common/baselineprotocol.h +++ b/tests/arthur/common/baselineprotocol.h @@ -38,6 +38,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + #ifndef BASELINEPROTOCOL_H #define BASELINEPROTOCOL_H @@ -46,6 +47,7 @@ #include #include #include +#include #define QLS QLatin1String #define QLC QLatin1Char @@ -87,7 +89,8 @@ public: enum ItemStatus { Ok = 0, BaselineNotFound = 1, - IgnoreItem = 2 + IgnoreItem = 2, + Mismatch = 3 }; QString testFunction; @@ -107,12 +110,15 @@ Q_DECLARE_METATYPE(ImageItem); typedef QVector ImageItemList; + class BaselineProtocol { public: - BaselineProtocol() {} + BaselineProtocol(); ~BaselineProtocol(); + static BaselineProtocol *instance(QObject *parent = 0); + // **************************************************** // Important constants here // **************************************************** @@ -136,6 +142,8 @@ public: }; // For client: + + // For advanced client: bool connect(const QString &testCase, bool *dryrun = 0); bool requestBaselineChecksums(const QString &testFunction, ImageItemList *itemList); bool submitNewBaseline(const ImageItem &item, QByteArray *serverMsg); diff --git a/tests/arthur/common/qbaselinetest.cpp b/tests/arthur/common/qbaselinetest.cpp new file mode 100644 index 0000000..e95b510 --- /dev/null +++ b/tests/arthur/common/qbaselinetest.cpp @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** 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 "qbaselinetest.h" +#include "baselineprotocol.h" + +namespace QBaselineTest { + +bool connected = false; +bool triedConnecting = false; +BaselineProtocol proto; + + +bool checkImage(const QImage& img, const char *name, quint16 checksum, QByteArray *msg, bool *error) +{ + QByteArray itemName; + bool hasName = qstrlen(name); + const char *tag = QTest::currentDataTag(); + if (qstrlen(tag)) { + itemName = tag; + if (hasName) + itemName.append('_').append(name); + } else { + itemName = hasName ? name : "default_name"; + } + + *msg = "Baseline check of image '" + itemName + "': "; + + if (!triedConnecting) { + triedConnecting = true; + if (!proto.connect(QTest::testObject()->metaObject()->className())) { + *msg += "Failed to connect to baseline server: " + proto.errorMessage().toLatin1(); + *error = true; + return true; + } + connected = true; + } + if (!connected) { + *msg = "Not connected to baseline server."; + *error = true; + return true; + } + + ImageItem item; + item.itemName = QLatin1String(itemName); + item.itemChecksum = checksum; + item.testFunction = QLatin1String(QTest::currentTestFunction()); + ImageItemList list; + list.append(item); + if (!proto.requestBaselineChecksums(QLatin1String(QTest::currentTestFunction()), &list) || list.isEmpty()) { + *msg = "Communication with baseline server failed: " + proto.errorMessage().toLatin1(); + *error = true; + return true; + } + item.image = img; + item.imageChecksums.prepend(ImageItem::computeChecksum(img)); + QByteArray srvMsg; + switch (list.at(0).status) { + case ImageItem::IgnoreItem : + qDebug() << msg->constData() << "Ignored, blacklisted on server."; + return true; + break; + case ImageItem::BaselineNotFound: + if (proto.submitNewBaseline(item, &srvMsg)) + qDebug() << msg->constData() << "Baseline not found on server. New baseline uploaded."; + else + qDebug() << msg->constData() << "Baseline not found on server. Uploading of new baseline failed:" << srvMsg; + return true; + break; + case ImageItem::Ok: + break; + default: + qWarning() << "Unexpected reply from baseline server."; + return true; + break; + } + *error = false; + // The actual comparison of the given image with the baseline: + if (list.at(0).imageChecksums.contains(item.imageChecksums.at(0))) + return true; + proto.submitMismatch(item, &srvMsg); + *msg += "Mismatch. See report:\n " + srvMsg; + return false; +} + +} diff --git a/tests/arthur/common/qbaselinetest.h b/tests/arthur/common/qbaselinetest.h new file mode 100644 index 0000000..3445c72 --- /dev/null +++ b/tests/arthur/common/qbaselinetest.h @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#ifndef BASELINETEST_H +#define BASELINETEST_H + +#include + +namespace QBaselineTest { +bool checkImage(const QImage& img, const char *name, quint16 checksum, QByteArray *msg, bool *error); +} + +#define QBASELINE_CHECK_SUM(image, name, checksum)\ +do {\ + QByteArray _msg;\ + bool _err = false;\ + if (!QBaselineTest::checkImage((image), (name), (checksum), &_msg, &_err)) {\ + QFAIL(_msg.constData());\ + } else if (_err) {\ + QSKIP(_msg.constData(), SkipSingle);\ + }\ +} while (0) + +#define QBASELINE_CHECK(image, name) QBASELINE_CHECK_SUM(image, name, 0) + +#endif // BASELINETEST_H diff --git a/tests/arthur/common/qbaselinetest.pri b/tests/arthur/common/qbaselinetest.pri new file mode 100644 index 0000000..5420c6e --- /dev/null +++ b/tests/arthur/common/qbaselinetest.pri @@ -0,0 +1,13 @@ +QT *= testlib + +SOURCES += \ + $$PWD/qbaselinetest.cpp + +HEADERS += \ + $$PWD/qbaselinetest.h + +win32|symbian*:MKSPEC=$$replace(QMAKESPEC, \\\\, /) +else:MKSPEC=$$QMAKESPEC +DEFINES += QMAKESPEC=\\\"$$MKSPEC\\\" + +include($$PWD/baselineprotocol.pri) diff --git a/tests/auto/baselineexample/baselineexample.pro b/tests/auto/baselineexample/baselineexample.pro new file mode 100644 index 0000000..30feecc --- /dev/null +++ b/tests/auto/baselineexample/baselineexample.pro @@ -0,0 +1,18 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2010-12-09T14:55:13 +# +#------------------------------------------------- + +QT += testlib + +TARGET = tst_baselineexample +CONFIG += console +CONFIG -= app_bundle + +TEMPLATE = app + +SOURCES += tst_baselineexample.cpp +DEFINES += SRCDIR=\\\"$$PWD/\\\" + +include($$QT_SOURCE_TREE/tests/arthur/common/qbaselinetest.pri) diff --git a/tests/auto/baselineexample/tst_baselineexample.cpp b/tests/auto/baselineexample/tst_baselineexample.cpp new file mode 100644 index 0000000..28cbec5 --- /dev/null +++ b/tests/auto/baselineexample/tst_baselineexample.cpp @@ -0,0 +1,158 @@ +/**************************************************************************** +** +** 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 +#include + +class tst_BaselineExample : public QObject +{ + Q_OBJECT + +public: + tst_BaselineExample(); + +private Q_SLOTS: + void testBasicUsage(); + void testMultipleImages(); + void testDataDriven_data(); + void testDataDriven(); + void testDataDrivenMultiple_data(); + void testDataDrivenMultiple(); + void testChecksum_data(); + void testChecksum(); +}; + + +tst_BaselineExample::tst_BaselineExample() +{ +} + + +void tst_BaselineExample::testBasicUsage() +{ + // Generate an image: + QPushButton b("Press me!"); + b.resize(100, 50); + b.show(); + QTest::qWaitForWindowShown(&b); + QImage img1 = QPixmap::grabWidget(&b).toImage(); + QVERIFY(!img1.isNull()); + + // Compare it to baseline on server: + QBASELINE_CHECK(img1, "button"); +} + + +void tst_BaselineExample::testMultipleImages() +{ + QPushButton b("Press me!"); + b.resize(100, 50); + b.show(); + QTest::qWaitForWindowShown(&b); + QBASELINE_CHECK(QPixmap::grabWidget(&b).toImage(), "text1"); + + b.setText("Kick me!"); + QTest::qWait(50); + QBASELINE_CHECK(QPixmap::grabWidget(&b).toImage(), "text2"); +} + + +void tst_BaselineExample::testDataDriven_data() +{ + QTest::addColumn("label"); + QTest::newRow("short") << "Ok!"; + QTest::newRow("long") << "A really long button text that just does not seem to end"; + QTest::newRow("empty") << ""; +} + + +void tst_BaselineExample::testDataDriven() +{ + QFETCH(QString, label); + QPushButton b(label); + b.resize(100, 50); + b.show(); + QTest::qWaitForWindowShown(&b); + QBASELINE_CHECK(QPixmap::grabWidget(&b).toImage(), 0); +} + + +void tst_BaselineExample::testDataDrivenMultiple_data() +{ + testDataDriven_data(); +} + + +void tst_BaselineExample::testDataDrivenMultiple() +{ + QFETCH(QString, label); + QPushButton b(label); + b.resize(100, 50); + b.show(); + QTest::qWaitForWindowShown(&b); + QBASELINE_CHECK(QPixmap::grabWidget(&b).toImage(), "normal"); + + b.setText(label.prepend('&')); + QTest::qWait(50); + QBASELINE_CHECK(QPixmap::grabWidget(&b).toImage(), "shortcut"); +} + + +void tst_BaselineExample::testChecksum_data() +{ + testDataDriven_data(); +} + + +void tst_BaselineExample::testChecksum() +{ + QFETCH(QString, label); + QPushButton b(label); + b.resize(100, 50); + b.show(); + QTest::qWaitForWindowShown(&b); + QBASELINE_CHECK_SUM(QPixmap::grabWidget(&b).toImage(), 0, quint16(qHash(label))); +} + + +QTEST_MAIN(tst_BaselineExample); + +#include "tst_baselineexample.moc" diff --git a/tests/auto/lancelot/lancelot.pro b/tests/auto/lancelot/lancelot.pro index 4535b83..6d6edf8 100644 --- a/tests/auto/lancelot/lancelot.pro +++ b/tests/auto/lancelot/lancelot.pro @@ -7,9 +7,6 @@ SOURCES += tst_lancelot.cpp \ HEADERS += $$QT_SOURCE_TREE/tests/arthur/common/paintcommands.h RESOURCES += $$QT_SOURCE_TREE/tests/arthur/common/images.qrc -include($$QT_SOURCE_TREE/tests/arthur/common/baselineprotocol.pri) -win32|symbian*:MKSPEC=$$replace(QMAKESPEC, \\\\, /) -else:MKSPEC=$$QMAKESPEC -DEFINES += QMAKESPEC=\\\"$$MKSPEC\\\" +include($$QT_SOURCE_TREE/tests/arthur/common/qbaselinetest.pri) !symbian:!wince*:DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/lancelot/tst_lancelot.cpp b/tests/auto/lancelot/tst_lancelot.cpp index d1b093f..4bde927 100644 --- a/tests/auto/lancelot/tst_lancelot.cpp +++ b/tests/auto/lancelot/tst_lancelot.cpp @@ -252,7 +252,7 @@ void tst_Lancelot::runTestSuite(GraphicsEngine engine, QImage::Format format) if (dryRunMode) qDebug() << "Dryrun mode, ignoring detected mismatch." << serverMsg; else - QFAIL("Rendered image differs from baseline.\n" + serverMsg); + QFAIL("Rendered image differs from baseline. Report:\n " + serverMsg); } } -- cgit v0.12 From c031e5808ee406277a5401c69801e5c6e2ebfaea Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Wed, 15 Dec 2010 14:16:36 +1000 Subject: Fix invalid configurations being added to bearermonitor list. --- examples/network/bearermonitor/bearermonitor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/network/bearermonitor/bearermonitor.cpp b/examples/network/bearermonitor/bearermonitor.cpp index 75ffb01..bfa3d1f 100644 --- a/examples/network/bearermonitor/bearermonitor.cpp +++ b/examples/network/bearermonitor/bearermonitor.cpp @@ -226,7 +226,7 @@ void BearerMonitor::updateConfigurations() if (defaultConfiguration.type() == QNetworkConfiguration::ServiceNetwork) updateSnapConfiguration(defaultItem, defaultConfiguration); - } else { + } else if (defaultConfiguration.isValid()) { configurationAdded(defaultConfiguration); } -- cgit v0.12 From c9faf2defa9fa3209e44e8a5c1ae2da8e630d379 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Wed, 8 Dec 2010 17:48:14 +1000 Subject: Ensure that DBus is connected before all uses. In early system startup applications may try to use ICD before it is contactable. Ensure that the connection to ICD is established before all calls are made. If ICD is still not contactable QDBusServiceWatcher is used to monitor registration of the com.nokia.icd2 address and reconnection is attempted once ICD is started. Task-number: Maemo 199755 --- src/plugins/bearer/icd/qicdengine.cpp | 93 ++++++++++++++++++++++++++++++----- src/plugins/bearer/icd/qicdengine.h | 6 +++ 2 files changed, 88 insertions(+), 11 deletions(-) diff --git a/src/plugins/bearer/icd/qicdengine.cpp b/src/plugins/bearer/icd/qicdengine.cpp index bdf4e2e..a5a183b 100644 --- a/src/plugins/bearer/icd/qicdengine.cpp +++ b/src/plugins/bearer/icd/qicdengine.cpp @@ -229,7 +229,7 @@ void IapMonitor::iapRemoved(const QString &iap_id) /******************************************************************************/ QIcdEngine::QIcdEngine(QObject *parent) -: QBearerEngine(parent), iapMonitor(0), m_dbusInterface(0), +: QBearerEngine(parent), iapMonitor(0), m_dbusInterface(0), m_icdServiceWatcher(0), firstUpdate(true), m_scanGoingOn(false) { } @@ -248,9 +248,10 @@ QNetworkConfigurationManager::Capabilities QIcdEngine::capabilities() const QNetworkConfigurationManager::NetworkSessionRequired; } -void QIcdEngine::initialize() +bool QIcdEngine::ensureDBusConnection() { - QMutexLocker locker(&mutex); + if (m_dbusInterface) + return true; // Setup DBus Interface for ICD m_dbusInterface = new QDBusInterface(ICD_DBUS_API_INTERFACE, @@ -259,9 +260,22 @@ void QIcdEngine::initialize() QDBusConnection::systemBus(), this); - // abort if cannot connect to DBus. - if (!m_dbusInterface->isValid()) - return; + if (!m_dbusInterface->isValid()) { + delete m_dbusInterface; + m_dbusInterface = 0; + + if (!m_icdServiceWatcher) { + m_icdServiceWatcher = new QDBusServiceWatcher(ICD_DBUS_API_INTERFACE, + QDBusConnection::systemBus(), + QDBusServiceWatcher::WatchForOwnerChange, + this); + + connect(m_icdServiceWatcher, SIGNAL(serviceOwnerChanged(QString,QString,QString)), + this, SLOT(icdServiceOwnerChanged(QString,QString,QString))); + } + + return false; + } connect(&m_scanTimer, SIGNAL(timeout()), this, SLOT(finishAsyncConfigurationUpdate())); m_scanTimer.setSingleShot(true); @@ -289,6 +303,19 @@ void QIcdEngine::initialize() doRequestUpdate(); getIcdInitialState(); + + return true; +} + +void QIcdEngine::initialize() +{ + QMutexLocker locker(&mutex); + + if (!ensureDBusConnection()) { + locker.unlock(); + emit updateCompleted(); + locker.relock(); + } } static inline QString network_attrs_to_security(uint network_attrs) @@ -792,6 +819,9 @@ QNetworkConfigurationPrivatePointer QIcdEngine::defaultConfiguration() { QMutexLocker locker(&mutex); + if (!ensureDBusConnection()) + return QNetworkConfigurationPrivatePointer(); + // Here we just return [ANY] request to icd and let the icd decide which IAP to connect. return userChoiceConfigurations.value(OSSO_IAP_ANY); } @@ -933,13 +963,52 @@ void QIcdEngine::connectionStateSignalsSlot(QDBusMessage msg) locker.relock(); } +void QIcdEngine::icdServiceOwnerChanged(const QString &serviceName, const QString &oldOwner, + const QString &newOwner) +{ + QMutexLocker locker(&mutex); + + if (newOwner.isEmpty()) { + // Disconnected from ICD, remove all configurations + cleanup(); + delete iapMonitor; + iapMonitor = 0; + delete m_dbusInterface; + m_dbusInterface = 0; + + QMutableHashIterator i(accessPointConfigurations); + while (i.hasNext()) { + i.next(); + + QNetworkConfigurationPrivatePointer ptr = i.value(); + i.remove(); + + locker.unlock(); + emit configurationRemoved(ptr); + locker.relock(); + } + + userChoiceConfigurations.clear(); + } else { + // Connected to ICD ensure connection. + ensureDBusConnection(); + } +} + void QIcdEngine::requestUpdate() { QMutexLocker locker(&mutex); - if (m_scanGoingOn) { + if (!ensureDBusConnection()) { + locker.unlock(); + emit updateCompleted(); + locker.relock(); return; } + + if (m_scanGoingOn) + return; + m_scanGoingOn = true; m_dbusInterface->connection().connect(ICD_DBUS_API_INTERFACE, @@ -956,14 +1025,16 @@ void QIcdEngine::requestUpdate() void QIcdEngine::cancelAsyncConfigurationUpdate() { - if (!m_scanGoingOn) { + if (!ensureDBusConnection()) return; - } + + if (!m_scanGoingOn) + return; + m_scanGoingOn = false; - if (m_scanTimer.isActive()) { + if (m_scanTimer.isActive()) m_scanTimer.stop(); - } m_dbusInterface->connection().disconnect(ICD_DBUS_API_INTERFACE, ICD_DBUS_API_PATH, diff --git a/src/plugins/bearer/icd/qicdengine.h b/src/plugins/bearer/icd/qicdengine.h index d528f15..d5b4fb3 100644 --- a/src/plugins/bearer/icd/qicdengine.h +++ b/src/plugins/bearer/icd/qicdengine.h @@ -53,6 +53,7 @@ QT_BEGIN_NAMESPACE class QNetworkConfigurationPrivate; class IapMonitor; class QDBusInterface; +class QDBusServiceWatcher; inline QNetworkConfiguration::BearerType bearerTypeFromIapType(const QString &iapType) { @@ -147,12 +148,15 @@ private Q_SLOTS: void finishAsyncConfigurationUpdate(); void asyncUpdateConfigurationsSlot(QDBusMessage msg); void connectionStateSignalsSlot(QDBusMessage msg); + void icdServiceOwnerChanged(const QString &serviceName, const QString &oldOwner, + const QString &newOwner); private: void startListeningStateSignalsForAllConnections(); void doRequestUpdate(QList scanned = QList()); void cancelAsyncConfigurationUpdate(); void getIcdInitialState(); + bool ensureDBusConnection(); private: IapMonitor *iapMonitor; @@ -162,6 +166,8 @@ private: QStringList m_typesToBeScanned; QList m_scanResult; + QDBusServiceWatcher *m_icdServiceWatcher; + bool firstUpdate; bool m_scanGoingOn; }; -- cgit v0.12 From e75980a322ea1088e1c6bf60259b8ba853d32444 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Wed, 15 Dec 2010 15:30:43 +1000 Subject: Fix possible null pointer dereference. When parsing a new connection an access point with the same SSID may not have been previously seen. Task-number: QTBUG-15276 --- src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp index 554f9b7..f93b605 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp @@ -743,9 +743,11 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.take(accessPointId); - mutex.unlock(); - emit configurationRemoved(ptr); - mutex.lock(); + if (ptr) { + mutex.unlock(); + emit configurationRemoved(ptr); + mutex.lock(); + } } break; } -- cgit v0.12 From 27de60f2f6047cb3f698825af96e569fde04ef06 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Wed, 15 Dec 2010 17:06:25 +1000 Subject: Add extra type of embedded license. Marketing needs this for commercial customers. Reviewed-by: Trust Me --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 7141880..aa8d047 100755 --- a/configure +++ b/configure @@ -480,7 +480,7 @@ elif [ $COMMERCIAL_USER = "yes" ]; then # Qt All-OS LICENSE_EXTENSION="-ALLOS" ;; - 8M,* | KM,* | S9,* | SC,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*) + 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*) # Qt for Embedded Linux LICENSE_EXTENSION="-EMBEDDED" ;; -- cgit v0.12 From 915a31420c4f8d04c82103e3dd4d33b468a9334d Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 15 Dec 2010 11:44:19 +0200 Subject: Resize event for QDesktopWidget was sent too early Some recent changes had caused a change in events sent from avkon to QSymbianControl, causing QDesktopWidget to be get resize event before the client area of application was correct. Moved the resize event sending from HandleStatusPaneSizeChange to HandleResourceChange (case KEikDynamicLayoutVariantSwitch). Task-number: QTBUG-16095 Reviewed-by: Sami Merila --- src/gui/kernel/qapplication_s60.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 81fa4e6..6db1fa8 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -667,9 +667,6 @@ void QSymbianControl::HandleStatusPaneSizeChange() { QS60MainAppUi *s60AppUi = static_cast(S60->appUi()); s60AppUi->HandleStatusPaneSizeChange(); - // Send resize event to trigger desktopwidget workAreaResized signal - QResizeEvent e(qt_desktopWidget->size(), qt_desktopWidget->size()); - QApplication::sendEvent(qt_desktopWidget, &e); } #endif @@ -1310,6 +1307,9 @@ void QSymbianControl::HandleResourceChange(int resourceType) case KEikDynamicLayoutVariantSwitch: { handleClientAreaChange(); + // Send resize event to trigger desktopwidget workAreaResized signal + QResizeEvent e(qt_desktopWidget->size(), qt_desktopWidget->size()); + QApplication::sendEvent(qt_desktopWidget, &e); break; } #endif -- cgit v0.12 From e0aa9897bc2d04054cc65dbe3452bee2ed2eacd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 15 Dec 2010 12:41:08 +0100 Subject: Prevent crash in drawhelper code when the cpu has MMXEXT but no SSE. We can't use the qdrawhelper_sse.cpp or qdrawhelper_sse3dnow.cpp when SSE is not run-time detected, as those are compiled with -msse and MMXEXT is just a subset of SSE. The compiler might choose to use an instruction not in the subset, causing a crash at run-time. Task-number: QTBUG-15693 Reviewed-by: Thiago Macieira --- src/gui/painting/qdrawhelper.cpp | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 024a69d..62af212 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -7711,17 +7711,6 @@ void qInitDrawhelperAsm() } #endif #endif // SSE -#if defined(QT_HAVE_MMXEXT) && defined(QT_HAVE_SSE) - } else if (features & MMXEXT) { - qt_memfill32 = qt_memfill32_sse; - qDrawHelper[QImage::Format_RGB16].bitmapBlit = qt_bitmapblit16_sse; -# ifdef QT_HAVE_3DNOW - if (features & MMX3DNOW) { - qt_memfill32 = qt_memfill32_sse3dnow; - qDrawHelper[QImage::Format_RGB16].bitmapBlit = qt_bitmapblit16_sse3dnow; - } -# endif // 3DNOW -#endif // MMXEXT } #ifdef QT_HAVE_MMX if (features & MMX) { -- cgit v0.12 From 21b1b5a9af95af10b281176564f14cafa2339006 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Sat, 11 Dec 2010 00:03:14 +0100 Subject: Improve performance of clipping to a scaled QRectF Clipping to a scaled QRectF was so far hitting the slow code path in the raster paintengine that generates clip spans for every line. This is not needed as we also clip translated QRectF's to integer rects. This patch does the same for scaled rectangles and ensures the clipping really happens at the closest pixel boundary. Reviewed-by: Samuel --- src/gui/painting/qpaintengine_raster.cpp | 33 ++++++++++++++++++++++---------- src/gui/painting/qpaintengine_raster_p.h | 2 ++ 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index 89202ac..4d06c9f 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -1212,7 +1212,7 @@ void QRasterPaintEngine::clip(const QVectorPath &path, Qt::ClipOperation op) // There are some cases that are not supported by clip(QRect) if (op != Qt::UniteClip && (op != Qt::IntersectClip || !s->clip || s->clip->hasRectClip || s->clip->hasRegionClip)) { - if (s->matrix.type() <= QTransform::TxTranslate + if (s->matrix.type() <= QTransform::TxScale && ((path.shape() == QVectorPath::RectangleHint) || (isRect(points, path.elementCount()) && (!types || (types[0] == QPainterPath::MoveToElement @@ -1224,8 +1224,8 @@ void QRasterPaintEngine::clip(const QVectorPath &path, Qt::ClipOperation op) #endif QRectF r(points[0], points[1], points[4]-points[0], points[5]-points[1]); - clip(r.toRect(), op); - return; + if (setClipRectInDeviceCoords(s->matrix.mapRect(r).toRect(), op)) + return; } } @@ -1286,7 +1286,6 @@ void QRasterPaintEngine::clip(const QRect &rect, Qt::ClipOperation op) qDebug() << "QRasterPaintEngine::clip(): " << rect << op; #endif - Q_D(QRasterPaintEngine); QRasterPaintEngineState *s = state(); if (op == Qt::NoClip) { @@ -1296,11 +1295,23 @@ void QRasterPaintEngine::clip(const QRect &rect, Qt::ClipOperation op) QPaintEngineEx::clip(rect, op); return; - } else if (op == Qt::ReplaceClip || s->clip == 0) { + } else if (!setClipRectInDeviceCoords(s->matrix.mapRect(rect), op)) { + QPaintEngineEx::clip(rect, op); + return; + } +} + + +bool QRasterPaintEngine::setClipRectInDeviceCoords(const QRect &r, Qt::ClipOperation op) +{ + Q_D(QRasterPaintEngine); + QRect clipRect = r & d->deviceRect; + QRasterPaintEngineState *s = state(); + + if (op == Qt::ReplaceClip || s->clip == 0) { // No current clip, hence we intersect with sysclip and be // done with it... - QRect clipRect = s->matrix.mapRect(rect) & d->deviceRect; QRegion clipRegion = systemClip(); QClipData *clip = new QClipData(d->rasterBuffer->height()); @@ -1316,12 +1327,11 @@ void QRasterPaintEngine::clip(const QRect &rect, Qt::ClipOperation op) s->clip->enabled = true; s->flags.has_clip_ownership = true; - } else { // intersect clip with current clip + } else if (op == Qt::IntersectClip){ // intersect clip with current clip QClipData *base = s->clip; Q_ASSERT(base); if (base->hasRectClip || base->hasRegionClip) { - QRect clipRect = s->matrix.mapRect(rect) & d->deviceRect; if (!s->flags.has_clip_ownership) { s->clip = new QClipData(d->rasterBuffer->height()); s->flags.has_clip_ownership = true; @@ -1332,11 +1342,14 @@ void QRasterPaintEngine::clip(const QRect &rect, Qt::ClipOperation op) s->clip->setClipRegion(base->clipRegion & clipRect); s->clip->enabled = true; } else { - QPaintEngineEx::clip(rect, op); - return; + return false; } + } else { + return false; } + qrasterpaintengine_dirty_clip(d, s); + return true; } diff --git a/src/gui/painting/qpaintengine_raster_p.h b/src/gui/painting/qpaintengine_raster_p.h index 1016f8d..7d4d3b6 100644 --- a/src/gui/painting/qpaintengine_raster_p.h +++ b/src/gui/painting/qpaintengine_raster_p.h @@ -266,6 +266,8 @@ private: void drawGlyphsS60(const QPointF &p, const QTextItemInt &ti); #endif // Q_OS_SYMBIAN && QT_NO_FREETYPE + bool setClipRectInDeviceCoords(const QRect &r, Qt::ClipOperation op); + inline void ensureBrush(const QBrush &brush) { if (!qbrush_fast_equals(state()->lastBrush, brush) || (brush.style() != Qt::NoBrush && state()->fillFlags)) updateBrush(brush); -- cgit v0.12 From d8990fbd132fc9e456c55a624eeb709088b0b819 Mon Sep 17 00:00:00 2001 From: Paul Labedan Date: Tue, 7 Dec 2010 12:25:23 +0100 Subject: Remove warning about null cursor handle on S60 while handle is valid --- src/gui/kernel/qcursor_s60.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qcursor_s60.cpp b/src/gui/kernel/qcursor_s60.cpp index 68e079e..6369f25 100644 --- a/src/gui/kernel/qcursor_s60.cpp +++ b/src/gui/kernel/qcursor_s60.cpp @@ -472,9 +472,9 @@ void qt_symbian_setWindowGroupCursor(const QCursor &cursor, RWindowTreeNode &nod if (handle) { RWsPointerCursor *pcurs = reinterpret_cast (handle); node.SetCustomPointerCursor(*pcurs); - } + } else #ifdef Q_SYMBIAN_HAS_SYSTEM_CURSORS - else { + { TInt shape = qt_symbian_translate_cursor_shape(cursor.shape()); node.SetPointerCursor(shape); } -- cgit v0.12 From 3e7adcb80a86748608d5517413301cd2b1b8df78 Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Wed, 15 Dec 2010 16:42:05 +0100 Subject: Check for null-pointer to avoid a crash in textedit demo. Task-number: QTBUG-16125 Reviewed-by: trustme --- demos/textedit/textedit.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/demos/textedit/textedit.cpp b/demos/textedit/textedit.cpp index 165c97c..9fa1949 100644 --- a/demos/textedit/textedit.cpp +++ b/demos/textedit/textedit.cpp @@ -262,7 +262,8 @@ void TextEdit::setupEditActions() tb->addAction(a); menu->addAction(a); #ifndef QT_NO_CLIPBOARD - actionPaste->setEnabled(QApplication::clipboard()->mimeData()->hasText()); + if (const QMimeData *md = QApplication::clipboard()->mimeData()) + actionPaste->setEnabled(md->hasText()); #endif } @@ -681,7 +682,8 @@ void TextEdit::cursorPositionChanged() void TextEdit::clipboardDataChanged() { #ifndef QT_NO_CLIPBOARD - actionPaste->setEnabled(QApplication::clipboard()->mimeData()->hasText()); + if (const QMimeData *md = QApplication::clipboard()->mimeData()) + actionPaste->setEnabled(md->hasText()); #endif } -- cgit v0.12 From 32d200da9cc7a4dfb3f302f22ef5718a286845c9 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Tue, 7 Dec 2010 14:29:28 +0100 Subject: Make QScroller examples Qt-namespace safe. --- examples/scroller/plot/plotwidget.h | 3 ++- examples/scroller/plot/settingswidget.h | 2 ++ examples/scroller/wheel/wheelwidget.h | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/examples/scroller/plot/plotwidget.h b/examples/scroller/plot/plotwidget.h index 3b4d92d..4987ebc 100644 --- a/examples/scroller/plot/plotwidget.h +++ b/examples/scroller/plot/plotwidget.h @@ -45,10 +45,11 @@ #include #include +QT_BEGIN_NAMESPACE class QPushButton; class QLabel; - class QScroller; +QT_END_NAMESPACE class PlotWidget : public QWidget { diff --git a/examples/scroller/plot/settingswidget.h b/examples/scroller/plot/settingswidget.h index 2fb268c..0ea201d 100644 --- a/examples/scroller/plot/settingswidget.h +++ b/examples/scroller/plot/settingswidget.h @@ -44,12 +44,14 @@ #include +QT_BEGIN_NAMESPACE class QScroller; class QGridLayout; class QSpinBox; class QComboBox; class QCheckBox; class QPlainTextEdit; +QT_END_NAMESPACE class MetricItemUpdater; class SnapOverlay; diff --git a/examples/scroller/wheel/wheelwidget.h b/examples/scroller/wheel/wheelwidget.h index 818b6ab..c50f951 100644 --- a/examples/scroller/wheel/wheelwidget.h +++ b/examples/scroller/wheel/wheelwidget.h @@ -45,8 +45,10 @@ #include #include +QT_BEGIN_NAMESPACE class QPainter; class QRect; +QT_END_NAMESPACE class AbstractWheelWidget : public QWidget { Q_OBJECT -- cgit v0.12 From 3e0df49f978933b1e4e6b48c695bf813ec9a2828 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Tue, 7 Dec 2010 14:29:59 +0100 Subject: Fix drag velocity smoothing in QScroller. The algorithm used for smoothing the drag velocity was wrong in many ways. Reviewed-by: Ralf Engels --- examples/scroller/plot/settingswidget.cpp | 2 +- src/gui/util/qscroller.cpp | 16 ++++++++++------ src/gui/util/qscrollerproperties.cpp | 9 +++++---- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/examples/scroller/plot/settingswidget.cpp b/examples/scroller/plot/settingswidget.cpp index af1e621..840e3fc 100644 --- a/examples/scroller/plot/settingswidget.cpp +++ b/examples/scroller/plot/settingswidget.cpp @@ -348,7 +348,7 @@ private: MetricItem items[] = { { METRIC(MousePressEventDelay), 1000, "ms", qreal(0), qreal(2000), qreal(10) }, { METRIC(DragStartDistance), 1000, "mm", qreal(1), qreal(20), qreal(0.1) }, - { METRIC(DragVelocitySmoothingFactor), 1, "", qreal(0), qreal(1), qreal(0.01) }, + { METRIC(DragVelocitySmoothingFactor), 1, "", qreal(0), qreal(1), qreal(0.1) }, { METRIC(AxisLockThreshold), 1, "", qreal(0), qreal(1), qreal(0.01) }, { METRIC(ScrollingCurve), 1, "", QEasingCurve(), 0, 0 }, diff --git a/src/gui/util/qscroller.cpp b/src/gui/util/qscroller.cpp index b7b5903..0955f58 100644 --- a/src/gui/util/qscroller.cpp +++ b/src/gui/util/qscroller.cpp @@ -1046,6 +1046,9 @@ void QScrollerPrivate::setDpiFromWidget(QWidget *widget) */ void QScrollerPrivate::updateVelocity(const QPointF &deltaPixelRaw, qint64 deltaTime) { + if (deltaTime <= 0) + return; + Q_Q(QScroller); QPointF ppm = q->pixelPerMeter(); const QScrollerPropertiesPrivate *sp = properties.d.data(); @@ -1057,14 +1060,12 @@ void QScrollerPrivate::updateVelocity(const QPointF &deltaPixelRaw, qint64 delta if (((deltaPixelRaw / qreal(deltaTime)).manhattanLength() / ((ppm.x() + ppm.y()) / 2) * 1000) > qreal(2.5)) deltaPixel = deltaPixelRaw * qreal(2.5) * ppm / 1000 / (deltaPixelRaw / qreal(deltaTime)).manhattanLength(); - qreal inversSmoothingFactor = ((qreal(1) - sp->dragVelocitySmoothingFactor) * qreal(deltaTime) / qreal(1000)); QPointF newv = -deltaPixel / qreal(deltaTime) * qreal(1000) / ppm; - newv = newv * (qreal(1) - inversSmoothingFactor) + releaseVelocity * inversSmoothingFactor; + if (releaseVelocity != QPointF(0, 0)) + newv = newv * sp->dragVelocitySmoothingFactor + releaseVelocity * (qreal(1) - sp->dragVelocitySmoothingFactor); - if (deltaPixel.x()) - releaseVelocity.setX(qBound(-sp->maximumVelocity, newv.x(), sp->maximumVelocity)); - if (deltaPixel.y()) - releaseVelocity.setY(qBound(-sp->maximumVelocity, newv.y(), sp->maximumVelocity)); + releaseVelocity.setX(qBound(-sp->maximumVelocity, newv.x(), sp->maximumVelocity)); + releaseVelocity.setY(qBound(-sp->maximumVelocity, newv.y(), sp->maximumVelocity)); qScrollerDebug() << " --> new velocity:" << releaseVelocity; } @@ -1569,6 +1570,9 @@ bool QScrollerPrivate::releaseWhileDragging(const QPointF &position, qint64 time Q_Q(QScroller); const QScrollerPropertiesPrivate *sp = properties.d.data(); + // handleDrag updates lastPosition, lastTimestamp and velocity + handleDrag(position, timestamp); + // check if we moved at all - this can happen if you stop a running // scroller with a press and release shortly afterwards QPointF deltaPixel = position - pressPosition; diff --git a/src/gui/util/qscrollerproperties.cpp b/src/gui/util/qscrollerproperties.cpp index d21f131..4a1f085 100644 --- a/src/gui/util/qscrollerproperties.cpp +++ b/src/gui/util/qscrollerproperties.cpp @@ -61,7 +61,7 @@ QScrollerPropertiesPrivate *QScrollerPropertiesPrivate::defaults() #ifdef Q_WS_MAEMO_5 spp.mousePressEventDelay = qreal(0); spp.dragStartDistance = qreal(2.5 / 1000); - spp.dragVelocitySmoothingFactor = qreal(0.15); + spp.dragVelocitySmoothingFactor = qreal(10); spp.axisLockThreshold = qreal(0); spp.scrollingCurve.setType(QEasingCurve::OutQuad); spp.decelerationFactor = 1.0; @@ -82,7 +82,7 @@ QScrollerPropertiesPrivate *QScrollerPropertiesPrivate::defaults() #else spp.mousePressEventDelay = qreal(0.25); spp.dragStartDistance = qreal(5.0 / 1000); - spp.dragVelocitySmoothingFactor = qreal(0.02); + spp.dragVelocitySmoothingFactor = qreal(0.8); spp.axisLockThreshold = qreal(0); spp.scrollingCurve.setType(QEasingCurve::OutQuad); spp.decelerationFactor = qreal(0.125); @@ -342,8 +342,9 @@ void QScrollerProperties::setScrollMetric(ScrollMetric metric, const QVariant &v moved before the flick gesture is triggered in \c m. \value DragVelocitySmoothingFactor A value that describes how much new drag velocities are - included in the final scrolling velocity. This value should be in the range between \c 0 and \c - 1. Low values meaning that the last dragging velocity is not very important. + included in the final scrolling velocity. This value should be in the range between \c 0 and + \c 1. The lower the value, the more smoothing will be applied to the dragging velocity. The + default value is \c 0.8. \value AxisLockThreshold If greater than zero a scroll movement will be restricted to one axis only if the movement is inside an angle about the axis. The threshold must be in the range \c 0 -- cgit v0.12 From 82bbc1c1611bde33680d22a1a3c6449e51d7b0b9 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Wed, 15 Dec 2010 18:20:14 +0100 Subject: Resolve XRRSizes() from libxrandr for QScroller's DPI calculation. Reviewed-by: Denis Dzyubenko --- src/gui/kernel/qapplication_x11.cpp | 3 +++ src/gui/kernel/qt_x11_p.h | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/gui/kernel/qapplication_x11.cpp b/src/gui/kernel/qapplication_x11.cpp index ff98229..58ccda2 100644 --- a/src/gui/kernel/qapplication_x11.cpp +++ b/src/gui/kernel/qapplication_x11.cpp @@ -2015,12 +2015,15 @@ void qt_init(QApplicationPrivate *priv, int, (PtrXRRRootToScreen) xrandrLib.resolve("XRRRootToScreen"); X11->ptrXRRQueryExtension = (PtrXRRQueryExtension) xrandrLib.resolve("XRRQueryExtension"); + X11->ptrXRRSizes = + (PtrXRRSizes) xrandrLib.resolve("XRRSizes"); } # else X11->ptrXRRSelectInput = XRRSelectInput; X11->ptrXRRUpdateConfiguration = XRRUpdateConfiguration; X11->ptrXRRRootToScreen = XRRRootToScreen; X11->ptrXRRQueryExtension = XRRQueryExtension; + X11->ptrXRRSizes = XRRSizes; # endif if (X11->ptrXRRQueryExtension diff --git a/src/gui/kernel/qt_x11_p.h b/src/gui/kernel/qt_x11_p.h index 56c8094..d97264c 100644 --- a/src/gui/kernel/qt_x11_p.h +++ b/src/gui/kernel/qt_x11_p.h @@ -226,6 +226,7 @@ typedef void (*PtrXRRSelectInput)(Display *, Window, int); typedef int (*PtrXRRUpdateConfiguration)(XEvent *); typedef int (*PtrXRRRootToScreen)(Display *, Window); typedef Bool (*PtrXRRQueryExtension)(Display *, int *, int *); +typedef XRRScreenSize *(*PtrXRRSizes)(Display *, int, int *); #endif // QT_NO_XRANDR #ifndef QT_NO_XINPUT @@ -710,6 +711,7 @@ struct QX11Data PtrXRRUpdateConfiguration ptrXRRUpdateConfiguration; PtrXRRRootToScreen ptrXRRRootToScreen; PtrXRRQueryExtension ptrXRRQueryExtension; + PtrXRRSizes ptrXRRSizes; #endif // QT_NO_XRANDR }; -- cgit v0.12 From b78ffe51f9a4c4ac705e435d45fffe39864c032d Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Wed, 15 Dec 2010 18:22:15 +0100 Subject: Use XRandR to get the real DPI values for the screen. This is needed for the Xomap server, but may also apply to others. Reviewed-by: Ralf Engels --- src/gui/util/qscroller.cpp | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/src/gui/util/qscroller.cpp b/src/gui/util/qscroller.cpp index 0955f58..f651a06 100644 --- a/src/gui/util/qscroller.cpp +++ b/src/gui/util/qscroller.cpp @@ -64,6 +64,10 @@ #include +#if defined(Q_WS_X11) +# include "private/qt_x11_p.h" +#endif + QT_BEGIN_NAMESPACE @@ -986,38 +990,46 @@ bool QScroller::handleInput(Input input, const QPointF &position, qint64 timesta return false; } -#ifdef Q_WS_MAEMO_5 +#if !defined(Q_WS_MAC) +// the Mac version is implemented in qscroller_mac.mm QPointF QScrollerPrivate::realDpi(int screen) { +# ifdef Q_WS_MAEMO_5 Q_UNUSED(screen); + // The DPI value is hardcoded to 96 on Maemo5: // https://projects.maemo.org/bugzilla/show_bug.cgi?id=152525 // This value (260) is only correct for the N900 though, but // there's no way to get the real DPI at run time. return QPointF(260, 260); -} -#elif defined(Q_WS_MAC) - -// implemented in qscroller_mac.mm - -#else +# elif defined(Q_WS_X11) && !defined(QT_NO_XRANDR) + if (X11->use_xrandr && X11->ptrXRRSizes) { + int nsizes = 0; + XRRScreenSize *sizes = X11->ptrXRRSizes(X11->display, screen == -1 ? X11->defaultScreen : screen, &nsizes); + if (nsizes > 0 && sizes && sizes->width && sizes->height && sizes->mwidth && sizes->mheight) { + qScrollerDebug() << "XRandR DPI:" << QPointF(qreal(25.4) * qreal(sizes->width) / qreal(sizes->mwidth), + qreal(25.4) * qreal(sizes->height) / qreal(sizes->mheight)); + return QPointF(qreal(25.4) * qreal(sizes->width) / qreal(sizes->mwidth), + qreal(25.4) * qreal(sizes->height) / qreal(sizes->mheight)); + } + } +# endif -QPointF QScrollerPrivate::realDpi(int screen) -{ QWidget *w = QApplication::desktop()->screen(screen); return QPointF(w->physicalDpiX(), w->physicalDpiY()); } -#endif +#endif // !Q_WS_MAC + /*! \internal Returns the resolution of the used screen. */ QPointF QScrollerPrivate::dpi() const { - return pixelPerMeter / qreal(39.3700787); + return pixelPerMeter * qreal(0.0254); } /*! \internal @@ -1028,7 +1040,7 @@ QPointF QScrollerPrivate::dpi() const */ void QScrollerPrivate::setDpi(const QPointF &dpi) { - pixelPerMeter = dpi * qreal(39.3700787); + pixelPerMeter = dpi / qreal(0.0254); } /*! \internal -- cgit v0.12 From fe438d7d828021d7f86301af36fe8dff2768532a Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Wed, 15 Dec 2010 18:37:28 +0100 Subject: QScroller: nicer Overshoot bounce back animation. Reviewed-by: Ralf Engels --- src/gui/util/qscroller.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gui/util/qscroller.cpp b/src/gui/util/qscroller.cpp index f651a06..2ca4a6e 100644 --- a/src/gui/util/qscroller.cpp +++ b/src/gui/util/qscroller.cpp @@ -1367,9 +1367,8 @@ void QScrollerPrivate::createScrollingSegments(qreal v, qreal startPos, qreal pp qreal oDistance = viewSize * sp->overshootScrollDistanceFactor * endV / sp->maximumVelocity; qreal oDeltaTime = sp->overshootScrollTime; - pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.5, stopPos, stopPos + oDistance, sp->scrollingCurve.type(), orientation); - pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.3, stopPos + oDistance, stopPos + oDistance * 0.3, QEasingCurve::InQuad, orientation); - pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.2, stopPos + oDistance * 0.3, stopPos, QEasingCurve::OutQuad, orientation); + pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.3, stopPos, stopPos + oDistance, sp->scrollingCurve.type(), orientation); + pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.7, stopPos + oDistance, stopPos, sp->scrollingCurve.type(), orientation); } return; } -- cgit v0.12 From df30d58de183d13c649ef7e0fbb8e2b3658e0862 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Wed, 15 Dec 2010 18:24:27 +0100 Subject: Removed obsolete Maemo 5 code --- src/gui/util/qscrollerproperties.cpp | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/src/gui/util/qscrollerproperties.cpp b/src/gui/util/qscrollerproperties.cpp index 4a1f085..2e52959 100644 --- a/src/gui/util/qscrollerproperties.cpp +++ b/src/gui/util/qscrollerproperties.cpp @@ -58,28 +58,6 @@ QScrollerPropertiesPrivate *QScrollerPropertiesPrivate::defaults() { if (!systemDefaults) { QScrollerPropertiesPrivate spp; -#ifdef Q_WS_MAEMO_5 - spp.mousePressEventDelay = qreal(0); - spp.dragStartDistance = qreal(2.5 / 1000); - spp.dragVelocitySmoothingFactor = qreal(10); - spp.axisLockThreshold = qreal(0); - spp.scrollingCurve.setType(QEasingCurve::OutQuad); - spp.decelerationFactor = 1.0; - spp.minimumVelocity = qreal(0.0195); - spp.maximumVelocity = qreal(6.84); - spp.maximumClickThroughVelocity = qreal(0.0684); - spp.acceleratingFlickMaximumTime = qreal(0.125); - spp.acceleratingFlickSpeedupFactor = qreal(3.0); - spp.snapPositionRatio = qreal(0.25); - spp.snapTime = qreal(1); - spp.overshootDragResistanceFactor = qreal(1); - spp.overshootDragDistanceFactor = qreal(0.3); - spp.overshootScrollDistanceFactor = qreal(0.3); - spp.overshootScrollTime = qreal(0.5); - spp.hOvershootPolicy = QScrollerProperties::OvershootWhenScrollable; - spp.vOvershootPolicy = QScrollerProperties::OvershootWhenScrollable; - spp.frameRate = QScrollerProperties::Fps30; -#else spp.mousePressEventDelay = qreal(0.25); spp.dragStartDistance = qreal(5.0 / 1000); spp.dragVelocitySmoothingFactor = qreal(0.8); @@ -104,7 +82,7 @@ QScrollerPropertiesPrivate *QScrollerPropertiesPrivate::defaults() spp.hOvershootPolicy = QScrollerProperties::OvershootWhenScrollable; spp.vOvershootPolicy = QScrollerProperties::OvershootWhenScrollable; spp.frameRate = QScrollerProperties::Standard; -#endif + systemDefaults = new QScrollerPropertiesPrivate(spp); } return new QScrollerPropertiesPrivate(userDefaults ? *userDefaults : *systemDefaults); -- cgit v0.12 From cb51c2157f870a5c83ae6d9435ec4b1004392bc9 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 13 Dec 2010 22:26:39 +0100 Subject: Don't need to set FD_CLOEXEC since qt_safe_* will have done that. Reviewed-By: Trust Me --- src/network/socket/qnativesocketengine_unix.cpp | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp index f6bfbac..021acd0 100644 --- a/src/network/socket/qnativesocketengine_unix.cpp +++ b/src/network/socket/qnativesocketengine_unix.cpp @@ -202,9 +202,6 @@ bool QNativeSocketEnginePrivate::createNewSocket(QAbstractSocket::SocketType soc return false; } - // Ensure that the socket is closed on exec*(). - ::fcntl(socket, F_SETFD, FD_CLOEXEC); - socketDescriptor = socket; return true; } @@ -565,16 +562,6 @@ int QNativeSocketEnginePrivate::nativeAccept() #else int acceptedDescriptor = qt_safe_accept(socketDescriptor, 0, 0); #endif - //check if we have valid descriptor at all - if(acceptedDescriptor > 0) { - // Ensure that the socket is closed on exec*() - ::fcntl(acceptedDescriptor, F_SETFD, FD_CLOEXEC); - } -#ifdef Q_OS_SYMBIAN - else { - qWarning("QNativeSocketEnginePrivate::nativeAccept() - acceptedDescriptor <= 0"); - } -#endif return acceptedDescriptor; } -- cgit v0.12 From e1955231478df8990cf8b1f80438abf957c5d6f2 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 14 Dec 2010 11:25:32 +0100 Subject: Add a warning about trying to release a timer ID that isn't active Reviewed-By: Trust Me --- src/corelib/kernel/qeventdispatcher_unix.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/corelib/kernel/qeventdispatcher_unix.cpp b/src/corelib/kernel/qeventdispatcher_unix.cpp index f50994c..b2ccc68 100644 --- a/src/corelib/kernel/qeventdispatcher_unix.cpp +++ b/src/corelib/kernel/qeventdispatcher_unix.cpp @@ -501,6 +501,7 @@ bool QTimerInfoList::unregisterTimer(int timerId) } } // id not found + qWarning("Application asked to unregister timer 0x%x which is not registered in this thread. Fix application.", timerId); return false; } -- cgit v0.12 From 038927f1208ff346cbe8d2cfefbd39808ffb5711 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 15 Dec 2010 18:48:05 +0100 Subject: Autotest: Add some comments about this obscure test. More information, see commit d9bf386d917c64ad5d8f11f9daadf82b2be9d531 (old qt-history) and old TT task 90183. Reviewed-By: Trust Me --- tests/auto/qprocess/tst_qprocess.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tests/auto/qprocess/tst_qprocess.cpp b/tests/auto/qprocess/tst_qprocess.cpp index fd310f4..13f1d26 100644 --- a/tests/auto/qprocess/tst_qprocess.cpp +++ b/tests/auto/qprocess/tst_qprocess.cpp @@ -1999,11 +1999,15 @@ void tst_QProcess::spaceInName() void tst_QProcess::lockupsInStartDetached() { #if !defined(Q_OS_SYMBIAN) - // What exactly is this call supposed to achieve anyway? + // Check that QProcess doesn't cause a lock up at this program's + // exit if a thread was started and we tried to run a program that + // doesn't exist. Before Qt 4.2, this used to lock up on Unix due + // to calling ::exit instead of ::_exit if execve failed. + QHostInfo::lookupHost(QString("something.invalid"), 0, 0); -#endif QProcess::execute("yjhbrty"); QProcess::startDetached("yjhbrty"); +#endif } //----------------------------------------------------------------------------- -- cgit v0.12 From 7b0809edf975f3226b43d3b43b5fe8035298fde9 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 15 Dec 2010 18:48:48 +0100 Subject: ICC: Don't print warning 1259 since it's too annoying. ICC 12 keeps outputting this when you copy a type of larger size to a smaller, or from int to float. --- mkspecs/linux-icc/qmake.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf index af56a9a..ba707e23 100644 --- a/mkspecs/linux-icc/qmake.conf +++ b/mkspecs/linux-icc/qmake.conf @@ -23,7 +23,7 @@ QMAKE_YACC = yacc QMAKE_YACCFLAGS = -d QMAKE_CFLAGS = -falign-stack=maintain-16-byte QMAKE_CFLAGS_DEPS = -M -QMAKE_CFLAGS_WARN_ON = -w1 -Wcheck -wd654,1572,411,873,1125 +QMAKE_CFLAGS_WARN_ON = -w1 -Wcheck -wd654,1572,411,873,1125,2259 QMAKE_CFLAGS_WARN_OFF = -w QMAKE_CFLAGS_RELEASE = -O2 -falign-functions=16 -ansi-alias -fstrict-aliasing QMAKE_CFLAGS_DEBUG = -O0 -g -- cgit v0.12 From 981a83d7832e8cd1ee7bcd42dfaba62f0b04f2c1 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 15 Dec 2010 18:53:57 +0100 Subject: Suppress a warning about killing a timer that isn't active. The timer was active, but it got killed by ~QObject. The QObject d-pointer is deleted after the timers (as is expected), which means that the QBasicTimer destructors in QAbstractItemViewPrivate are run after the timers are already gone. Reviewed-by: Trust Me --- src/gui/itemviews/qabstractitemview.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index acc8deb..177b088 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -595,6 +595,8 @@ QAbstractItemView::QAbstractItemView(QAbstractItemViewPrivate &dd, QWidget *pare */ QAbstractItemView::~QAbstractItemView() { + // stop this timer here before ~QObject + d_func()->delayedReset.stop(); } /*! -- cgit v0.12 From 017a5cfc6462317e6cca0f04a8339e2575bb9130 Mon Sep 17 00:00:00 2001 From: aavit Date: Wed, 15 Dec 2010 21:12:52 +0100 Subject: Satisfy the maketestselftest autotst --- tests/auto/other.pro | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/auto/other.pro b/tests/auto/other.pro index d1a7a86..512cd25 100644 --- a/tests/auto/other.pro +++ b/tests/auto/other.pro @@ -4,6 +4,7 @@ TEMPLATE=subdirs SUBDIRS=\ # exceptionsafety_objects \ shouldn't enable it +# baselineexample \ Just an example demonstrating qbaselinetest usage lancelot \ qaccessibility \ qalgorithms \ -- cgit v0.12 From ba2f8a1f7da6b40a095cad43e4b737dc1306b0cc Mon Sep 17 00:00:00 2001 From: aavit Date: Thu, 16 Dec 2010 10:57:06 +0100 Subject: Need not keep client waiting until server has saved --- tests/arthur/baselineserver/src/baselineserver.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/tests/arthur/baselineserver/src/baselineserver.cpp b/tests/arthur/baselineserver/src/baselineserver.cpp index 6351dff..f59600f 100644 --- a/tests/arthur/baselineserver/src/baselineserver.cpp +++ b/tests/arthur/baselineserver/src/baselineserver.cpp @@ -267,6 +267,13 @@ void BaselineHandler::storeImage(const QByteArray &itemBlock, bool isBaseline) QString prefix = pathForItem(item, isBaseline); qDebug() << runId << logtime() << "Received" << (isBaseline ? "baseline" : "mismatched") << "image for:" << item.itemName << "Storing in" << prefix; + QString msg; + if (isBaseline) + msg = QLS("New baseline image stored: ") + pathForItem(item, true, true) + QLS(FileFormat); + else + msg = BaselineServer::baseUrl() + report.filePath(); + proto.sendBlock(BaselineProtocol::Ack, msg.toLatin1()); + QString dir = prefix.section(QLC('/'), 0, -2); QDir cwd; if (!cwd.exists(dir)) @@ -282,14 +289,6 @@ void BaselineHandler::storeImage(const QByteArray &itemBlock, bool isBaseline) if (!isBaseline) report.addMismatch(item); - - QString msg; - if (isBaseline) - msg = QLS("New baseline image stored: ") + pathForItem(item, true, true) + QLS(FileFormat); - else - msg = BaselineServer::baseUrl() + report.filePath(); - - proto.sendBlock(BaselineProtocol::Ack, msg.toLatin1()); } -- cgit v0.12 From fa57982fadab625fb022d32f690ef05427920581 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Thu, 16 Dec 2010 11:30:17 +0100 Subject: QmlDebugger: Fix runtime warnings about unregistered metatypes Check whether the type of a property is known to the metatype system before trying to read from it. That avoids lots of runtime warnings e.g. for the QSequentialGroup::currentAnimation property, which type QAbstractAnimation * isn't registered by default via qRegisterMetaType<>(). Reviewed-by: Christiaan Janssen Task-number: QTCREATORBUG-2853 --- src/declarative/qml/qdeclarativeenginedebug.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/declarative/qml/qdeclarativeenginedebug.cpp b/src/declarative/qml/qdeclarativeenginedebug.cpp index bffe681..e54f7d6 100644 --- a/src/declarative/qml/qdeclarativeenginedebug.cpp +++ b/src/declarative/qml/qdeclarativeenginedebug.cpp @@ -146,7 +146,10 @@ QDeclarativeEngineDebugServer::propertyData(QObject *obj, int propIdx) if (binding) rv.binding = binding->expression(); - QVariant value = prop.read(obj); + QVariant value; + if (prop.userType() != 0) { + value = prop.read(obj); + } rv.value = valueContents(value); if (QDeclarativeValueTypeFactory::isValueType(prop.userType())) { -- cgit v0.12 From c70b1afe694b0d32ece6b639b1e4d10501df8bb0 Mon Sep 17 00:00:00 2001 From: Sami Merila Date: Thu, 16 Dec 2010 13:41:28 +0200 Subject: Remove support for automatic tactile feedback from QS60Style Currently QS60Style loads automatically a plugin to support tactile feedback for styled applications. However, there is no control over this, so applications cannot remove the automatic support, if they'd like to use Mobility APIs to control the feedback themselves. In order to avoid this, remove tactile feedback plugin from style. Lets see if we can later put this back with optional enable/disable flag. Task-number: QTBUG-16151 Reviewed-by: Miikka Heikkinen --- src/gui/styles/qs60style.cpp | 3 - src/gui/styles/qs60style_feedbackinterface_p.h | 50 -------------- src/gui/styles/qs60style_p.h | 4 -- src/gui/styles/qs60style_s60.cpp | 24 +------ src/plugins/s60/feedback/feedback.pro | 18 ----- src/plugins/s60/feedback/qtactileFeedback.h | 54 --------------- src/plugins/s60/feedback/qtactileFeedback_s60.cpp | 83 ----------------------- src/plugins/s60/s60.pro | 4 -- src/s60installs/qt.iby | 5 -- src/s60installs/s60installs.pro | 6 -- 10 files changed, 1 insertion(+), 250 deletions(-) delete mode 100644 src/gui/styles/qs60style_feedbackinterface_p.h delete mode 100644 src/plugins/s60/feedback/feedback.pro delete mode 100644 src/plugins/s60/feedback/qtactileFeedback.h delete mode 100644 src/plugins/s60/feedback/qtactileFeedback_s60.cpp diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp index 56d2d19..040ca4f 100644 --- a/src/gui/styles/qs60style.cpp +++ b/src/gui/styles/qs60style.cpp @@ -3464,9 +3464,6 @@ bool QS60Style::eventFilter(QObject *object, QEvent *event) if (d->m_pressedWidget) d->m_pressedWidget->update(); -#ifdef Q_WS_S60 - d->touchFeedback(event, w); -#endif } break; } diff --git a/src/gui/styles/qs60style_feedbackinterface_p.h b/src/gui/styles/qs60style_feedbackinterface_p.h deleted file mode 100644 index 81fcdc3..0000000 --- a/src/gui/styles/qs60style_feedbackinterface_p.h +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -** -** 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 QtGui 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 - -class TactileFeedbackInterface : public QObject -{ - public: - virtual void touchFeedback(QEvent *event, const QWidget *widget) = 0; -}; - -Q_DECLARE_INTERFACE(TactileFeedbackInterface, "com.trolltech.Qt.TactileFeedbackInterface/1.0") diff --git a/src/gui/styles/qs60style_p.h b/src/gui/styles/qs60style_p.h index db4285d..721fbd9 100644 --- a/src/gui/styles/qs60style_p.h +++ b/src/gui/styles/qs60style_p.h @@ -387,7 +387,6 @@ private: //data members class QFocusFrame; class QProgressBar; class QS60StyleAnimation; -class TactileFeedbackInterface; // Private class #ifdef Q_OS_SYMBIAN @@ -576,8 +575,6 @@ public: void stopAnimation(QS60StyleEnums::SkinParts animation); static QS60StyleAnimation* animationDefinition(QS60StyleEnums::SkinParts part); static void removeAnimations(); - //No support for tactile feedback in emulated style - void touchFeedback(QEvent *event, const QWidget *widget); #endif @@ -632,7 +629,6 @@ private: #ifdef Q_WS_S60 //list of progress bars having animation running QList m_bars; - TactileFeedbackInterface *m_feedbackPlugin; #endif }; diff --git a/src/gui/styles/qs60style_s60.cpp b/src/gui/styles/qs60style_s60.cpp index 92f53ff..4e3f5da 100644 --- a/src/gui/styles/qs60style_s60.cpp +++ b/src/gui/styles/qs60style_s60.cpp @@ -50,10 +50,6 @@ #include "qapplication.h" #include "qsettings.h" -#include "qpluginloader.h" -#include "qlibraryinfo.h" -#include "private/qs60style_feedbackinterface_p.h" - #include #include #include @@ -1221,25 +1217,13 @@ void QS60StylePrivate::setActiveLayout() Q_GLOBAL_STATIC(QList, m_animations) -QS60StylePrivate::QS60StylePrivate() : m_feedbackPlugin(0) +QS60StylePrivate::QS60StylePrivate() { //Animation defaults need to be created when style is instantiated QS60StyleAnimation* progressBarAnimation = new QS60StyleAnimation(QS60StyleEnums::SP_QgnGrafBarWaitAnim, 7, 100); m_animations()->append(progressBarAnimation); // No need to set active layout, if dynamic metrics API is available setActiveLayout(); - - //Tactile feedback plugin is only available for touch devices. - if (isTouchSupported()) { - QString pluginsPath = QLibraryInfo::location(QLibraryInfo::PluginsPath); - pluginsPath += QLatin1String("/feedback/qtactilefeedback.dll"); - - // Create plugin loader - QPluginLoader pluginLoader(pluginsPath); - // Load plugin and store pointer to the plugin implementation - if (pluginLoader.load()) - m_feedbackPlugin = qobject_cast(pluginLoader.instance()); - } } void QS60StylePrivate::removeAnimations() @@ -1529,12 +1513,6 @@ void QS60StylePrivate::stopAnimation(QS60StyleEnums::SkinParts animationPart) } } -void QS60StylePrivate::touchFeedback(QEvent *event, const QWidget *widget) -{ - if (m_feedbackPlugin) - m_feedbackPlugin->touchFeedback(event, widget); -} - QVariant QS60StyleModeSpecifics::themeDefinition( QS60StyleEnums::ThemeDefinitions definition, QS60StyleEnums::SkinParts part) { diff --git a/src/plugins/s60/feedback/feedback.pro b/src/plugins/s60/feedback/feedback.pro deleted file mode 100644 index 5e577ec..0000000 --- a/src/plugins/s60/feedback/feedback.pro +++ /dev/null @@ -1,18 +0,0 @@ -include(../../qpluginbase.pri) - -TARGET = qtactilefeedback$${QT_LIBINFIX} - -QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/s60/feedback - -INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE - -!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) { - HEADERS += qtactileFeedback.h - SOURCES += qtactileFeedback_s60.cpp - - LIBS += -ltouchfeedback -} - -load(data_caging_paths) - -TARGET.UID3=0x200315B4 diff --git a/src/plugins/s60/feedback/qtactileFeedback.h b/src/plugins/s60/feedback/qtactileFeedback.h deleted file mode 100644 index 7c4cc29..0000000 --- a/src/plugins/s60/feedback/qtactileFeedback.h +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************************** -** -** 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 QtGui 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 -#include - -#include "private/qs60style_feedbackinterface_p.h" - -class QTactileFeedback : public TactileFeedbackInterface -{ - Q_OBJECT - Q_INTERFACES(TactileFeedbackInterface) - - public: - void touchFeedback(QEvent *event, const QWidget *widget); - }; diff --git a/src/plugins/s60/feedback/qtactileFeedback_s60.cpp b/src/plugins/s60/feedback/qtactileFeedback_s60.cpp deleted file mode 100644 index c2f1d34..0000000 --- a/src/plugins/s60/feedback/qtactileFeedback_s60.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** 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 QtGui 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 -#include -#include -#include - -#include -#include "qtactileFeedback.h" - -#include - -void QTactileFeedback::touchFeedback(QEvent *event, const QWidget *widget) -{ - //Lets share the global instance for touch feedback (you are NOT allowed to try and delete it!). - MTouchFeedback* feedback = MTouchFeedback::Instance(); - - //If the widget itself is not handling focus, try to use focusProxy widget. - const QWidget *w = ((widget->focusPolicy() == Qt::NoFocus) && (widget->focusProxy())) ? widget->focusProxy() : widget; - - //Only give tactile feedback for enabled widgets that take focus. - if (feedback && w && w->isEnabled() && w->isWidgetType() && w->isVisible()) { - //Scrollbars are 'special' that they don't take focus (nor they have focusProxy), yet we'd like to have tactile feedback for them - if (w->focusPolicy() == Qt::NoFocus) - if (!qobject_cast(w)) - return; - - //Don't give tactile feedback for widgets that are outside topmost dialog. - QWidget *dialog = QApplication::activeModalWidget(); - if (dialog) { - QList allChildren = dialog->findChildren(); - if (!allChildren.contains(w)) - return; - } - - //Widget specific tactile feedback. - if (qobject_cast(w) || qobject_cast(w)) - feedback->InstantFeedback(ETouchFeedbackSensitive); - else - feedback->InstantFeedback(ETouchFeedbackBasic); - } -} - -Q_EXPORT_PLUGIN2("feedback", QTactileFeedback); diff --git a/src/plugins/s60/s60.pro b/src/plugins/s60/s60.pro index 1ddf326..c999fff 100644 --- a/src/plugins/s60/s60.pro +++ b/src/plugins/s60/s60.pro @@ -6,10 +6,6 @@ symbian { SUBDIRS += 3_1 3_2 } - !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) { - SUBDIRS += feedback - } - # 5.0 is used also for Symbian3 and later SUBDIRS += 5_0 } \ No newline at end of file diff --git a/src/s60installs/qt.iby b/src/s60installs/qt.iby index 2b3be0a..4afbf05 100644 --- a/src/s60installs/qt.iby +++ b/src/s60installs/qt.iby @@ -60,8 +60,6 @@ file=ABI_DIR\BUILD_DIR\qsymbianbearer.dll SHARED_LIB_DIR\qsymbianbearer.dll // so don't bother including those plugins file=ABI_DIR\BUILD_DIR\qts60plugin_5_0.dll SHARED_LIB_DIR\qts60plugin_5_0.dll -file=ABI_DIR\BUILD_DIR\qtactilefeedback.dll SHARED_LIB_DIR\qtactilefeedback.dll - S60_APP_RESOURCE(s60main) // imageformats stubs @@ -107,9 +105,6 @@ data=\epoc32\data\z\resource\qt\plugins\graphicssystems\qglgraphicssystem.qtplug // bearer stub data=\epoc32\data\z\resource\qt\plugins\bearer\qsymbianbearer.qtplugin resource\qt\plugins\bearer\qsymbianbearer.qtplugin -// feedback -data=\epoc32\data\z\resource\qt\plugins\feedback\qtactilefeedback.qtplugin resource\qt\plugins\feedback\qtactilefeedback.qtplugin - // Stub sis file data=ZSYSTEM\install\qt_stub.sis System\Install\qt_stub.sis data=ZSYSTEM\install\qtwebkit_stub.sis System\Install\qtwebkit_stub.sis diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro index 5a435cd..be7ed97 100644 --- a/src/s60installs/s60installs.pro +++ b/src/s60installs/s60installs.pro @@ -87,12 +87,6 @@ symbian: { DEPLOYMENT += bearer_plugin } - !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) { - feedback_plugin.sources = $$QT_BUILD_TREE/plugins/s60/feedback/qtactilefeedback$${QT_LIBINFIX}.dll - feedback_plugin.path = c:$$QT_PLUGINS_BASE_DIR/feedback - DEPLOYMENT += feedback_plugin - } - qtlibraries.pkg_postrules += qts60plugindeployment qtlibraries.path = c:/sys/bin -- cgit v0.12 From 6f9642572c392536c07a52037e4c1de587489c49 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Thu, 16 Dec 2010 13:21:22 +0100 Subject: Add work around for bug when painting w/glTexSubImage into large texture It seems that copying small rectangles from glTexSubImage2D into a texture which is 2048x2048 is busted on some SGX drivers, even though the driver reports 2048 as the maximum texture size. This caused text to turn into flickering garbage once the texture glyph cache had grown to its max size (e.g. when painting very many Chinese glyphs.) To work around the problem, we hardcore the maximum texture height to 1024 on this driver so that the texture glyph cache is reset whenever that size is exceeded. Task-number: QT-3971 Done-with: Samuel --- src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp | 5 ++++- src/opengl/qgl.cpp | 1 + src/opengl/qgl_egl.cpp | 2 ++ src/opengl/qgl_p.h | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp index 1b879c3..ba311c3 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp @@ -323,6 +323,9 @@ int QGLTextureGlyphCache::maxTextureWidth() const int QGLTextureGlyphCache::maxTextureHeight() const { - return ctx->d_ptr->maxTextureSize(); + if (ctx->d_ptr->workaround_brokenTexSubImage) + return qMin(1024, ctx->d_ptr->maxTextureSize()); + else + return ctx->d_ptr->maxTextureSize(); } QT_END_NAMESPACE diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp index 18f1203..9bf879a 100644 --- a/src/opengl/qgl.cpp +++ b/src/opengl/qgl.cpp @@ -1706,6 +1706,7 @@ void QGLContextPrivate::init(QPaintDevice *dev, const QGLFormat &format) active_engine = 0; workaround_needsFullClearOnEveryFrame = false; workaround_brokenFBOReadBack = false; + workaround_brokenTexSubImage = false; workaroundsCached = false; workaround_brokenTextureFromPixmap = false; diff --git a/src/opengl/qgl_egl.cpp b/src/opengl/qgl_egl.cpp index 8902099..6f9e39c 100644 --- a/src/opengl/qgl_egl.cpp +++ b/src/opengl/qgl_egl.cpp @@ -204,6 +204,8 @@ void QGLContext::makeCurrent() const char *egl_version = eglQueryString(d->eglContext->display(), EGL_VERSION); if (egl_version && strstr(egl_version, "1.3")) d->workaround_brokenFBOReadBack = true; + else if (egl_version && strstr(egl_version, "1.4")) + d->workaround_brokenTexSubImage = true; } } } diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h index b46d428..bf830ba 100644 --- a/src/opengl/qgl_p.h +++ b/src/opengl/qgl_p.h @@ -401,6 +401,7 @@ public: // workarounds for driver/hw bugs on different platforms uint workaround_needsFullClearOnEveryFrame : 1; uint workaround_brokenFBOReadBack : 1; + uint workaround_brokenTexSubImage : 1; uint workaroundsCached : 1; uint workaround_brokenTextureFromPixmap : 1; -- cgit v0.12 From ab8a9e77d877fd53eaec8dca1eeca619a4ba81d6 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 16 Dec 2010 12:57:06 +0200 Subject: Avoid duplicate resize event No need to have two resize events in queue for same widget, so do not post a new one if one is already pending in QSymbianControl::SizeChanged(). Reviewed-by: Sami Merila --- src/gui/kernel/qapplication_s60.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 6db1fa8..181fcc7 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1174,8 +1174,10 @@ void QSymbianControl::SizeChanged() if (!slowResize && tlwExtra) tlwExtra->inTopLevelResize = false; } else { - QResizeEvent *e = new QResizeEvent(newSize, oldSize); - QApplication::postEvent(qwidget, e); + if (!qwidget->testAttribute(Qt::WA_PendingResizeEvent)) { + QResizeEvent *e = new QResizeEvent(newSize, oldSize); + QApplication::postEvent(qwidget, e); + } } } -- cgit v0.12 From f0347c8c0c37bd90dcaefb8f4b669096f7eb66b5 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 16 Dec 2010 15:23:51 +0200 Subject: Improved orientation change autotest The test wasn't even compiling anymore, so fixed that. Also added additional orientation change and an available geometry check after each orientation change. Reviewed-by: Sami Merila --- .../orientationchange/orientationchange.pro | 1 + .../orientationchange/tst_orientationchange.cpp | 43 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/tests/auto/symbian/orientationchange/orientationchange.pro b/tests/auto/symbian/orientationchange/orientationchange.pro index 08b34f9..98aa2ad 100644 --- a/tests/auto/symbian/orientationchange/orientationchange.pro +++ b/tests/auto/symbian/orientationchange/orientationchange.pro @@ -4,4 +4,5 @@ SOURCES += tst_orientationchange.cpp symbian { INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE + LIBS += -lcone -leikcore -lavkon # Screen orientation } diff --git a/tests/auto/symbian/orientationchange/tst_orientationchange.cpp b/tests/auto/symbian/orientationchange/tst_orientationchange.cpp index eb3709d..2ac2f7f 100644 --- a/tests/auto/symbian/orientationchange/tst_orientationchange.cpp +++ b/tests/auto/symbian/orientationchange/tst_orientationchange.cpp @@ -45,6 +45,8 @@ #include #include +#include +#include class tst_orientationchange : public QObject { @@ -151,6 +153,47 @@ void tst_orientationchange::resizeEventOnOrientationChange() } QCOMPARE(normalWidget->resizeEventCount, 0); + QDesktopWidget desktop; + QRect qtAvail = desktop.availableGeometry(normalWidget); + TRect clientRect = static_cast(CCoeEnv::Static()-> AppUi())->ClientRect(); + QRect symbianAvail = qt_TRect2QRect(clientRect); + QCOMPARE(qtAvail, symbianAvail); + + // Switch orientation back to original + orientation = orientation == CAknAppUi::EAppUiOrientationPortrait + ? CAknAppUi::EAppUiOrientationLandscape + : CAknAppUi::EAppUiOrientationPortrait; + + + fullScreenWidget->reset(); + maximizedWidget->reset(); + normalWidget->reset(); + + TRAP(err, appUi->SetOrientationL(orientation)); + + QCoreApplication::sendPostedEvents(); + QCoreApplication::sendPostedEvents(); + + // setOrientationL is not guaranteed to change orientation + // (if emulator configured to support just portrait or landscape, then + // setOrientationL call shouldn't do anything). + // So let's ensure that we do not get resize event twice. + + QVERIFY(fullScreenWidget->resizeEventCount <= 1); + if (fullScreenWidget->resizeEventCount) { + QCOMPARE(fullScreenWidget->size(), fullScreenWidget->resizeEventSize); + } + QVERIFY(maximizedWidget->resizeEventCount <= 1); + if (fullScreenWidget->resizeEventCount) { + QCOMPARE(maximizedWidget->size(), maximizedWidget->resizeEventSize); + } + QCOMPARE(normalWidget->resizeEventCount, 0); + + qtAvail = desktop.availableGeometry(normalWidget); + clientRect = static_cast(CCoeEnv::Static()-> AppUi())->ClientRect(); + symbianAvail = qt_TRect2QRect(clientRect); + QCOMPARE(qtAvail, symbianAvail); + TRAP(err, appUi->SetOrientationL(CAknAppUi::EAppUiOrientationUnspecified)); delete normalWidget; -- cgit v0.12 From 66eec88591be2e8369e73dc5c86148cb4b09fad8 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 13 Dec 2010 17:20:12 +0100 Subject: clarify setStatus() behavior Reviewed-by: mariusSO --- src/corelib/io/qdatastream.cpp | 3 +++ src/corelib/io/qtextstream.cpp | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/corelib/io/qdatastream.cpp b/src/corelib/io/qdatastream.cpp index 58f0190..dffb3c6 100644 --- a/src/corelib/io/qdatastream.cpp +++ b/src/corelib/io/qdatastream.cpp @@ -495,6 +495,9 @@ void QDataStream::resetStatus() /*! Sets the status of the data stream to the \a status given. + Subsequent calls to setStatus() are ignored until resetStatus() + is called. + \sa Status status() resetStatus() */ void QDataStream::setStatus(Status status) diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp index 6091ec0..f4731f9 100644 --- a/src/corelib/io/qtextstream.cpp +++ b/src/corelib/io/qtextstream.cpp @@ -1593,6 +1593,9 @@ void QTextStream::resetStatus() Sets the status of the text stream to the \a status given. + Subsequent calls to setStatus() are ignored until resetStatus() + is called. + \sa Status status() resetStatus() */ void QTextStream::setStatus(Status status) -- cgit v0.12 From ca062f6ed45acf83720faec8a211d9bf91705b2c Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 16 Dec 2010 14:17:22 +0100 Subject: don't report flush error when we didn't flush in the first place this went unnoticed, as the return value is ignored - so far. Reviewed-by: mariusSO --- src/corelib/io/qtextstream.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp index f4731f9..560766a 100644 --- a/src/corelib/io/qtextstream.cpp +++ b/src/corelib/io/qtextstream.cpp @@ -693,7 +693,7 @@ bool QTextStreamPrivate::flushWriteBuffer() // flush the file #ifndef QT_NO_QOBJECT QFile *file = qobject_cast(device); - bool flushed = file && file->flush(); + bool flushed = !file || file->flush(); #else bool flushed = true; #endif -- cgit v0.12 From 9233143bb25e33c07f73b7d35b0d6cbd14ef1686 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 13 Dec 2010 17:57:55 +0100 Subject: add write error handling to QDataStream add new status flag WriteFailed. use it in all write functions. Task-number: QTBUG-376 Reviewed-by: mariusSO --- src/corelib/io/qdatastream.cpp | 55 +++++++++++++++++++----------- src/corelib/io/qdatastream.h | 3 +- tests/auto/qdatastream/tst_qdatastream.cpp | 51 +++++++++++++++++++++++++++ 3 files changed, 89 insertions(+), 20 deletions(-) diff --git a/src/corelib/io/qdatastream.cpp b/src/corelib/io/qdatastream.cpp index dffb3c6..52ee252 100644 --- a/src/corelib/io/qdatastream.cpp +++ b/src/corelib/io/qdatastream.cpp @@ -243,6 +243,11 @@ QT_BEGIN_NAMESPACE } #endif +#define CHECK_STREAM_WRITE_PRECOND(retVal) \ + CHECK_STREAM_PRECOND(retVal) \ + if (q_status != Ok) \ + return retVal; + enum { DefaultStreamVersion = QDataStream::Qt_4_6 }; @@ -995,8 +1000,9 @@ int QDataStream::readRawData(char *s, int len) QDataStream &QDataStream::operator<<(qint8 i) { - CHECK_STREAM_PRECOND(*this) - dev->putChar(i); + CHECK_STREAM_WRITE_PRECOND(*this) + if (!dev->putChar(i)) + q_status = WriteFailed; return *this; } @@ -1018,11 +1024,12 @@ QDataStream &QDataStream::operator<<(qint8 i) QDataStream &QDataStream::operator<<(qint16 i) { - CHECK_STREAM_PRECOND(*this) + CHECK_STREAM_WRITE_PRECOND(*this) if (!noswap) { i = qbswap(i); } - dev->write((char *)&i, sizeof(qint16)); + if (dev->write((char *)&i, sizeof(qint16)) != sizeof(qint16)) + q_status = WriteFailed; return *this; } @@ -1035,11 +1042,12 @@ QDataStream &QDataStream::operator<<(qint16 i) QDataStream &QDataStream::operator<<(qint32 i) { - CHECK_STREAM_PRECOND(*this) + CHECK_STREAM_WRITE_PRECOND(*this) if (!noswap) { i = qbswap(i); } - dev->write((char *)&i, sizeof(qint32)); + if (dev->write((char *)&i, sizeof(qint32)) != sizeof(qint32)) + q_status = WriteFailed; return *this; } @@ -1060,7 +1068,7 @@ QDataStream &QDataStream::operator<<(qint32 i) QDataStream &QDataStream::operator<<(qint64 i) { - CHECK_STREAM_PRECOND(*this) + CHECK_STREAM_WRITE_PRECOND(*this) if (version() < 6) { quint32 i1 = i & 0xffffffff; quint32 i2 = i >> 32; @@ -1069,7 +1077,8 @@ QDataStream &QDataStream::operator<<(qint64 i) if (!noswap) { i = qbswap(i); } - dev->write((char *)&i, sizeof(qint64)); + if (dev->write((char *)&i, sizeof(qint64)) != sizeof(qint64)) + q_status = WriteFailed; } return *this; } @@ -1089,8 +1098,9 @@ QDataStream &QDataStream::operator<<(qint64 i) QDataStream &QDataStream::operator<<(bool i) { - CHECK_STREAM_PRECOND(*this) - dev->putChar(qint8(i)); + CHECK_STREAM_WRITE_PRECOND(*this) + if (!dev->putChar(qint8(i))) + q_status = WriteFailed; return *this; } @@ -1111,7 +1121,7 @@ QDataStream &QDataStream::operator<<(float f) return *this; } - CHECK_STREAM_PRECOND(*this) + CHECK_STREAM_WRITE_PRECOND(*this) float g = f; // fixes float-on-stack problem if (!noswap) { union { @@ -1122,7 +1132,8 @@ QDataStream &QDataStream::operator<<(float f) x.val2 = qbswap(x.val2); g = x.val1; } - dev->write((char *)&g, sizeof(float)); + if (dev->write((char *)&g, sizeof(float)) != sizeof(float)) + q_status = WriteFailed; return *this; } @@ -1144,10 +1155,11 @@ QDataStream &QDataStream::operator<<(double f) return *this; } - CHECK_STREAM_PRECOND(*this) + CHECK_STREAM_WRITE_PRECOND(*this) #ifndef Q_DOUBLE_FORMAT if (noswap) { - dev->write((char *)&f, sizeof(double)); + if (dev->write((char *)&f, sizeof(double)) != sizeof(double)) + q_status = WriteFailed; } else { union { double val1; @@ -1155,7 +1167,8 @@ QDataStream &QDataStream::operator<<(double f) } x; x.val1 = f; x.val2 = qbswap(x.val2); - dev->write((char *)&x.val2, sizeof(double)); + if (dev->write((char *)&x.val2, sizeof(double)) != sizeof(double)) + q_status = WriteFailed; } #else union { @@ -1184,7 +1197,8 @@ QDataStream &QDataStream::operator<<(double f) b[Q_DF(1)] = *p++; b[Q_DF(0)] = *p; } - dev->write(b, 8); + if (dev->write(b, 8) != 8) + q_status = WriteFailed; #endif return *this; } @@ -1224,7 +1238,7 @@ QDataStream &QDataStream::operator<<(const char *s) QDataStream &QDataStream::writeBytes(const char *s, uint len) { - CHECK_STREAM_PRECOND(*this) + CHECK_STREAM_WRITE_PRECOND(*this) *this << (quint32)len; // write length specifier if (len) writeRawData(s, len); @@ -1242,8 +1256,11 @@ QDataStream &QDataStream::writeBytes(const char *s, uint len) int QDataStream::writeRawData(const char *s, int len) { - CHECK_STREAM_PRECOND(-1) - return dev->write(s, len); + CHECK_STREAM_WRITE_PRECOND(-1) + int ret = dev->write(s, len); + if (ret != len) + q_status = WriteFailed; + return ret; } /*! diff --git a/src/corelib/io/qdatastream.h b/src/corelib/io/qdatastream.h index 774c4bc..05248ac 100644 --- a/src/corelib/io/qdatastream.h +++ b/src/corelib/io/qdatastream.h @@ -101,7 +101,8 @@ public: enum Status { Ok, ReadPastEnd, - ReadCorruptData + ReadCorruptData, + WriteFailed }; enum FloatingPointPrecision { diff --git a/tests/auto/qdatastream/tst_qdatastream.cpp b/tests/auto/qdatastream/tst_qdatastream.cpp index c03bc71..898fb84 100644 --- a/tests/auto/qdatastream/tst_qdatastream.cpp +++ b/tests/auto/qdatastream/tst_qdatastream.cpp @@ -168,6 +168,8 @@ private slots: void stream_atEnd_data(); void stream_atEnd(); + void stream_writeError(); + void stream_QByteArray2(); void setVersion_data(); @@ -2345,6 +2347,55 @@ void tst_QDataStream::stream_atEnd() } } +class FakeBuffer : public QBuffer +{ +protected: + qint64 writeData(const char *c, qint64 i) { return m_lock ? 0 : QBuffer::writeData(c, i); } +public: + FakeBuffer(bool locked = false) : m_lock(locked) {} + void setLocked(bool locked) { m_lock = locked; } +private: + bool m_lock; +}; + +#define TEST_WRITE_ERROR(op) \ + { \ + FakeBuffer fb(false); \ + QVERIFY(fb.open(QBuffer::ReadWrite)); \ + QDataStream fs(&fb); \ + fs.writeRawData("hello", 5); \ + /* first write some initial content */ \ + QCOMPARE(fs.status(), QDataStream::Ok); \ + QCOMPARE(fb.data(), QByteArray("hello")); \ + /* then test that writing can cause an error */ \ + fb.setLocked(true); \ + fs op; \ + QCOMPARE(fs.status(), QDataStream::WriteFailed); \ + QCOMPARE(fb.data(), QByteArray("hello")); \ + /* finally test that writing after an error doesn't change the stream any more */ \ + fb.setLocked(false); \ + fs op; \ + QCOMPARE(fs.status(), QDataStream::WriteFailed); \ + QCOMPARE(fb.data(), QByteArray("hello")); \ + } + +void tst_QDataStream::stream_writeError() +{ + TEST_WRITE_ERROR(<< true) + TEST_WRITE_ERROR(<< (qint8)1) + TEST_WRITE_ERROR(<< (quint8)1) + TEST_WRITE_ERROR(<< (qint16)1) + TEST_WRITE_ERROR(<< (quint16)1) + TEST_WRITE_ERROR(<< (qint32)1) + TEST_WRITE_ERROR(<< (quint32)1) + TEST_WRITE_ERROR(<< (qint64)1) + TEST_WRITE_ERROR(<< (quint64)1) + TEST_WRITE_ERROR(<< "hello") + TEST_WRITE_ERROR(<< (float)1.0) + TEST_WRITE_ERROR(<< (double)1.0) + TEST_WRITE_ERROR(.writeRawData("test", 4)) +} + void tst_QDataStream::stream_QByteArray2() { QByteArray ba; -- cgit v0.12 From 135a6e32522775b182e870130eb12502753c913c Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 16 Dec 2010 12:36:41 +0100 Subject: add write error handling to QTextStream add new status flag WriteFailed. use it in flushWriteBuffer(). remove the boolean return values from write(), putString() and putNumber(), as they were ignored anyway - flushWriteBuffer() does it correctly now. Task-number: QTBUG-376 Reviewed-by: mariusSO --- src/corelib/io/qtextstream.cpp | 42 ++++++++++++++++++------------ src/corelib/io/qtextstream.h | 3 ++- tests/auto/qtextstream/tst_qtextstream.cpp | 37 ++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 18 deletions(-) diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp index 560766a..242c672 100644 --- a/src/corelib/io/qtextstream.cpp +++ b/src/corelib/io/qtextstream.cpp @@ -396,19 +396,19 @@ public: npsInvalidPrefix }; - inline bool write(const QString &data); inline bool getChar(QChar *ch); inline void ungetChar(const QChar &ch); NumberParsingStatus getNumber(qulonglong *l); bool getReal(double *f); - bool putNumber(qulonglong number, bool negative); - inline bool putString(const QString &ch, bool number = false); + inline void write(const QString &data); + inline void putString(const QString &ch, bool number = false); + void putNumber(qulonglong number, bool negative); // buffers bool fillReadBuffer(qint64 maxBytes = -1); void resetReadBuffer(); - bool flushWriteBuffer(); + void flushWriteBuffer(); QString writeBuffer; QString readBuffer; int readBufferOffset; @@ -642,14 +642,20 @@ void QTextStreamPrivate::resetReadBuffer() /*! \internal */ -bool QTextStreamPrivate::flushWriteBuffer() +void QTextStreamPrivate::flushWriteBuffer() { // no buffer next to the QString itself; this function should only // be called internally, for devices. if (string || !device) - return false; + return; + + // Stream went bye-bye already. Appending further data may succeed again, + // but would create a corrupted stream anyway. + if (status != QTextStream::Ok) + return; + if (writeBuffer.isEmpty()) - return true; + return; #if defined (Q_OS_WIN) // handle text translation and bypass the Text flag in the device. @@ -681,8 +687,10 @@ bool QTextStreamPrivate::flushWriteBuffer() qDebug("QTextStreamPrivate::flushWriteBuffer(), device->write(\"%s\") == %d", qt_prettyDebug(data.constData(), qMin(data.size(),32), data.size()).constData(), int(bytesWritten)); #endif - if (bytesWritten <= 0) - return false; + if (bytesWritten <= 0) { + status = QTextStream::WriteFailed; + return; + } #if defined (Q_OS_WIN) // replace the text flag @@ -702,7 +710,8 @@ bool QTextStreamPrivate::flushWriteBuffer() qDebug("QTextStreamPrivate::flushWriteBuffer() wrote %d bytes", int(bytesWritten)); #endif - return flushed && bytesWritten == qint64(data.size()); + if (!flushed || bytesWritten != qint64(data.size())) + status = QTextStream::WriteFailed; } QString QTextStreamPrivate::read(int maxlen) @@ -908,7 +917,7 @@ inline void QTextStreamPrivate::restoreToSavedConverterState() /*! \internal */ -inline bool QTextStreamPrivate::write(const QString &data) +inline void QTextStreamPrivate::write(const QString &data) { if (string) { // ### What about seek()?? @@ -916,9 +925,8 @@ inline bool QTextStreamPrivate::write(const QString &data) } else { writeBuffer += data; if (writeBuffer.size() > QTEXTSTREAM_BUFFERSIZE) - return flushWriteBuffer(); + flushWriteBuffer(); } - return true; } /*! \internal @@ -959,7 +967,7 @@ inline void QTextStreamPrivate::ungetChar(const QChar &ch) /*! \internal */ -inline bool QTextStreamPrivate::putString(const QString &s, bool number) +inline void QTextStreamPrivate::putString(const QString &s, bool number) { QString tmp = s; @@ -993,7 +1001,7 @@ inline bool QTextStreamPrivate::putString(const QString &s, bool number) qt_prettyDebug(a.constData(), a.size(), qMax(16, a.size())).constData(), qt_prettyDebug(b.constData(), b.size(), qMax(16, b.size())).constData()); #endif - return write(tmp); + write(tmp); } /*! @@ -2270,7 +2278,7 @@ QTextStream &QTextStream::operator>>(char *c) /*! \internal */ -bool QTextStreamPrivate::putNumber(qulonglong number, bool negative) +void QTextStreamPrivate::putNumber(qulonglong number, bool negative) { QString result; @@ -2310,7 +2318,7 @@ bool QTextStreamPrivate::putNumber(qulonglong number, bool negative) result.prepend(QLatin1Char('0')); } } - return putString(result, true); + putString(result, true); } /*! diff --git a/src/corelib/io/qtextstream.h b/src/corelib/io/qtextstream.h index d82da59..c635691 100644 --- a/src/corelib/io/qtextstream.h +++ b/src/corelib/io/qtextstream.h @@ -89,7 +89,8 @@ public: enum Status { Ok, ReadPastEnd, - ReadCorruptData + ReadCorruptData, + WriteFailed }; enum NumberFlag { ShowBase = 0x1, diff --git a/tests/auto/qtextstream/tst_qtextstream.cpp b/tests/auto/qtextstream/tst_qtextstream.cpp index 4c78ef0..005f686 100644 --- a/tests/auto/qtextstream/tst_qtextstream.cpp +++ b/tests/auto/qtextstream/tst_qtextstream.cpp @@ -228,6 +228,7 @@ private slots: void status_real_read(); void status_integer_read(); void status_word_read(); + void status_write_error(); // use case tests void useCase1(); @@ -4176,6 +4177,42 @@ void tst_QTextStream::status_word_read() QCOMPARE(s.status(), QTextStream::ReadPastEnd); } +class FakeBuffer : public QBuffer +{ +protected: + qint64 writeData(const char *c, qint64 i) { return m_lock ? 0 : QBuffer::writeData(c, i); } +public: + FakeBuffer(bool locked = false) : m_lock(locked) {} + void setLocked(bool locked) { m_lock = locked; } +private: + bool m_lock; +}; + +void tst_QTextStream::status_write_error() +{ + FakeBuffer fb(false); + QVERIFY(fb.open(QBuffer::ReadWrite)); + QTextStream fs(&fb); + fs.setCodec(QTextCodec::codecForName("latin1")); + /* first write some initial content */ + fs << "hello"; + fs.flush(); + QCOMPARE(fs.status(), QTextStream::Ok); + QCOMPARE(fb.data(), QByteArray("hello")); + /* then test that writing can cause an error */ + fb.setLocked(true); + fs << "error"; + fs.flush(); + QCOMPARE(fs.status(), QTextStream::WriteFailed); + QCOMPARE(fb.data(), QByteArray("hello")); + /* finally test that writing after an error doesn't change the stream any more */ + fb.setLocked(false); + fs << "can't do that"; + fs.flush(); + QCOMPARE(fs.status(), QTextStream::WriteFailed); + QCOMPARE(fb.data(), QByteArray("hello")); +} + void tst_QTextStream::task180679_alignAccountingStyle() { { -- cgit v0.12 From 7857e0cf4673fb0defab5af9c60d0c2dea93e55c Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 15 Dec 2010 18:55:48 +0100 Subject: Doc: typo fixed in doc/src/declarative/extending.qdoc Reviewed-by: TrustMe --- doc/src/declarative/extending.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc index e23ca91..748ec6c 100644 --- a/doc/src/declarative/extending.qdoc +++ b/doc/src/declarative/extending.qdoc @@ -461,7 +461,7 @@ constructing an animation object and manually setting the animation's "target" property, a property value source can be assigned directly to a property of any type and automatically set up this association. -The example shown here is rather contrived: the \c announcment property of the +The example shown here is rather contrived: the \c announcement property of the \c BirthdayParty object is a string that is printed every time it is assigned and the \c HappyBirthdaySong value source generates the lyrics of the song "Happy Birthday". -- cgit v0.12 From ce3dabc8863440a56540d86537848621581afa7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 16 Dec 2010 13:43:02 +0100 Subject: Make parent constructor argument optional Task-number: QTBUG-16100 Reviewed-by: Oswald Buddenhagen --- src/gui/widgets/qvalidator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widgets/qvalidator.h b/src/gui/widgets/qvalidator.h index 63734ca..af1b80f 100644 --- a/src/gui/widgets/qvalidator.h +++ b/src/gui/widgets/qvalidator.h @@ -101,7 +101,7 @@ class Q_GUI_EXPORT QIntValidator : public QValidator public: explicit QIntValidator(QObject * parent = 0); - QIntValidator(int bottom, int top, QObject * parent); + QIntValidator(int bottom, int top, QObject *parent = 0); ~QIntValidator(); QValidator::State validate(QString &, int &) const; -- cgit v0.12 From 632016368e26ba06d7d09740a8a1805f4ea911f1 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Fri, 17 Dec 2010 15:24:30 +1000 Subject: Update test bitmaps for QDeclarativeImage::svg() autotest on Linux Task-number: Reviewed-by: Martin Jones --- .../declarative/qdeclarativeimage/data/heart.png | Bin 12424 -> 12577 bytes .../declarative/qdeclarativeimage/data/heart200.png | Bin 7943 -> 8063 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart.png b/tests/auto/declarative/qdeclarativeimage/data/heart.png index ff93f6c..abe97fe 100644 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart.png and b/tests/auto/declarative/qdeclarativeimage/data/heart.png differ diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200.png b/tests/auto/declarative/qdeclarativeimage/data/heart200.png index 5a31ae8..7fbb13c 100644 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart200.png and b/tests/auto/declarative/qdeclarativeimage/data/heart200.png differ -- cgit v0.12 From e0abcb2ff7a3044305580659f9a432a9630a5943 Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Fri, 17 Dec 2010 16:18:03 +1000 Subject: Fix QDeclarativeState::reset() autotest Current state reset mechanism does not really work for Text elements as the keeping implicit correct would require relayouting of text twice (See bug QTBUG-15118). Changed QDeclarativeState reset autotest to use Image element instead of Text element until the issue has been fixed. Task-number: Reviewed-by: Yann Bodson --- tests/auto/declarative/qdeclarativestates/data/image.png | Bin 0 -> 173 bytes tests/auto/declarative/qdeclarativestates/data/reset.qml | 9 ++++----- .../qdeclarativestates/tst_qdeclarativestates.cpp | 13 ++++++------- 3 files changed, 10 insertions(+), 12 deletions(-) create mode 100644 tests/auto/declarative/qdeclarativestates/data/image.png diff --git a/tests/auto/declarative/qdeclarativestates/data/image.png b/tests/auto/declarative/qdeclarativestates/data/image.png new file mode 100644 index 0000000..ed1833c Binary files /dev/null and b/tests/auto/declarative/qdeclarativestates/data/image.png differ diff --git a/tests/auto/declarative/qdeclarativestates/data/reset.qml b/tests/auto/declarative/qdeclarativestates/data/reset.qml index 8799c97..a140ffa 100644 --- a/tests/auto/declarative/qdeclarativestates/data/reset.qml +++ b/tests/auto/declarative/qdeclarativestates/data/reset.qml @@ -3,17 +3,16 @@ import QtQuick 1.0 Rectangle { width: 640 height: 480 - Text { - id: theText + Image { + id: image width: 40 - wrapMode: Text.WordWrap - text: "a text string that is longer than 40 pixels" + source: "image.png" } states: State { name: "state1" PropertyChanges { - target: theText + target: image width: undefined } } diff --git a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp index b8409a5..870842c 100644 --- a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp +++ b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp @@ -44,7 +44,6 @@ #include #include #include -#include #include #include #include @@ -1126,15 +1125,15 @@ void tst_qdeclarativestates::reset() QDeclarativeRectangle *rect = qobject_cast(c.create()); QVERIFY(rect != 0); - QDeclarativeText *text = rect->findChild(); - QVERIFY(text != 0); - QCOMPARE(text->width(), qreal(40.)); - QVERIFY(text->width() < text->height()); + QDeclarativeImage *image = rect->findChild(); + QVERIFY(image != 0); + QCOMPARE(image->width(), qreal(40.)); + QCOMPARE(image->height(), qreal(20.)); QDeclarativeItemPrivate::get(rect)->setState("state1"); - QVERIFY(text->width() > 41); - QVERIFY(text->width() > text->height()); + QCOMPARE(image->width(), 20.0); + QCOMPARE(image->height(), qreal(20.)); } void tst_qdeclarativestates::illegalObjectCreation() -- cgit v0.12 From 80eb3ebbfe24738163532494e8866ac20fd1b0e4 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 16 Dec 2010 16:03:13 +0200 Subject: Fix incorrect file name case for OpenGL libraries in symbian.conf. To support linux builds, file names must be cased correctly. Task-number: QT-4375 Reviewed-by: Miikka Heikkinen --- mkspecs/common/symbian/symbian.conf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf index 707335c..00cf0d7 100644 --- a/mkspecs/common/symbian/symbian.conf +++ b/mkspecs/common/symbian/symbian.conf @@ -70,12 +70,12 @@ QMAKE_LIBS_CORE = $$QMAKE_LIBS -lefsrv -lhal -lbafl QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -lapparc -lcentralrepository QMAKE_LIBS_NETWORK = QMAKE_LIBS_EGL = -llibEGL -QMAKE_LIBS_OPENGL = -llibglesv2 +QMAKE_LIBS_OPENGL = -llibGLESv2 QMAKE_LIBS_OPENGL_ES1 = -llibGLESv1_CM -QMAKE_LIBS_OPENGL_ES2 = -llibglesv2 -QMAKE_LIBS_OPENGL_QT = -llibglesv2 -lcone -lws32 +QMAKE_LIBS_OPENGL_ES2 = -llibGLESv2 +QMAKE_LIBS_OPENGL_QT = -llibGLESv2 -lcone -lws32 QMAKE_LIBS_OPENGL_ES1_QT = -llibGLESv1_CM -lcone -lws32 -QMAKE_LIBS_OPENGL_ES2_QT = -llibglesv2 -lcone -lws32 +QMAKE_LIBS_OPENGL_ES2_QT = -llibGLESv2 -lcone -lws32 QMAKE_LIBS_OPENVG = -llibOpenVG -lfbscli -lbitgdi -lgdi QMAKE_LIBS_THREAD = -llibpthread QMAKE_LIBS_COMPAT = -- cgit v0.12 From d238b0ba236da4c3c33c0707d8dd6f5e5903d6c0 Mon Sep 17 00:00:00 2001 From: Ville Pernu Date: Fri, 17 Dec 2010 11:08:53 +0200 Subject: Fix waitForOpened not working with already active configuration When an active QNetworkConfiguration is already in use (e.g. browser already open), the QNetworkSession::waitForOpened() did not work properly. Changed one if-statement in the function to adapt to the scenario. Reviewed-by: Perttu Pohjonen Task-number: QTBUG-565 --- src/network/bearer/qnetworksession.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/network/bearer/qnetworksession.cpp b/src/network/bearer/qnetworksession.cpp index 226c3c5..db1a37c 100644 --- a/src/network/bearer/qnetworksession.cpp +++ b/src/network/bearer/qnetworksession.cpp @@ -310,8 +310,9 @@ bool QNetworkSession::waitForOpened(int msecs) if (d->isOpen) return true; - if (d->state != Connecting) + if (!(d->state == Connecting || d->state == Connected)) { return false; + } QEventLoop* loop = new QEventLoop(this); QObject::connect(d, SIGNAL(quitPendingWaitsForOpened()), -- cgit v0.12 From b54efea2e97baac1d9442e829be2d6fb322c5085 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 17 Dec 2010 11:37:52 +0200 Subject: Use relative include instead of absolute in default qmake.conf Absolute include path breaks QtP releases which copy mkspecs under epoc32 and do not necessarily have the sources available in the original absolute path and can't patch the paths either at installation time. Task-number: QTBUG-16172 Reviewed-by: Oswald Buddenhagen --- tools/configure/configureapp.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index c967dad..915a56d 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -3267,8 +3267,14 @@ void Configure::generateConfigfiles() if (qmakeConfFile.open(QFile::WriteOnly | QFile::Text)) { QTextStream qmakeConfStream; qmakeConfStream.setDevice(&qmakeConfFile); + // While QMAKESPEC_ORIGINAL being relative or absolute doesn't matter for the + // primary use of this variable by qmake to identify the original mkspec, the + // variable is also used for few special cases where the absolute path is required. + // Conversely, the include of the original qmake.conf must be done using relative path, + // as some Qt binary deployments are done in a manner that doesn't allow for patching + // the paths at the installation time. qmakeConfStream << "QMAKESPEC_ORIGINAL=" << pltSpec << endl << endl; - qmakeConfStream << "include(" << pltSpec << "/qmake.conf)" << endl; + qmakeConfStream << "include(" << "../" << spec << "/qmake.conf)" << endl << endl; qmakeConfStream.flush(); qmakeConfFile.close(); } -- cgit v0.12 From 5daf1ab79e3dd906664a7af00b311ba7c3f51138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 16 Dec 2010 16:24:11 +0100 Subject: Test doesn't need to depend on temp path Instead, use the current directory for creating test data. Reviewed-by: Oswald Buddenhagen --- tests/auto/qcompleter/tst_qcompleter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qcompleter/tst_qcompleter.cpp b/tests/auto/qcompleter/tst_qcompleter.cpp index 650c328..abc86ec 100644 --- a/tests/auto/qcompleter/tst_qcompleter.cpp +++ b/tests/auto/qcompleter/tst_qcompleter.cpp @@ -1455,7 +1455,7 @@ void tst_QCompleter::task247560_keyboardNavigation() void tst_QCompleter::QTBUG_14292_filesystem() { - QDir tmpDir = QDir::temp(); + QDir tmpDir = QDir::currentPath(); qsrand(QTime::currentTime().msec()); QString d = "tst_QCompleter_" + QString::number(qrand()); QVERIFY(tmpDir.mkdir(d)); -- cgit v0.12 From a97cf9553ff841dcfd45bbc85ff05b0aafd4a548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 16 Dec 2010 16:31:34 +0100 Subject: tst_QCompleter: Clean up after one's self The utility class FileSystem uses the RAII idiom to clean up directories created for the purpose of the test. Rubber-stamped-by: Oswald Buddenhagen --- tests/auto/qcompleter/tst_qcompleter.cpp | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/tests/auto/qcompleter/tst_qcompleter.cpp b/tests/auto/qcompleter/tst_qcompleter.cpp index abc86ec..62e64be 100644 --- a/tests/auto/qcompleter/tst_qcompleter.cpp +++ b/tests/auto/qcompleter/tst_qcompleter.cpp @@ -49,6 +49,7 @@ #include #include "../../shared/util.h" +#include "../../shared/filesystem.h" //TESTED_CLASS= //TESTED_FILES= @@ -1455,24 +1456,16 @@ void tst_QCompleter::task247560_keyboardNavigation() void tst_QCompleter::QTBUG_14292_filesystem() { + FileSystem fs; QDir tmpDir = QDir::currentPath(); + qsrand(QTime::currentTime().msec()); QString d = "tst_QCompleter_" + QString::number(qrand()); - QVERIFY(tmpDir.mkdir(d)); - -#if 0 - struct Cleanup { - QString dir; - ~Cleanup() { - qDebug() << dir << - QFile::remove(dir); } - } cleanup; - cleanup.dir = tmpDir.absolutePath()+"/" +d; -#endif + QVERIFY(fs.createDirectory(tmpDir.filePath(d))); QVERIFY(tmpDir.cd(d)); - QVERIFY(tmpDir.mkdir("hello")); - QVERIFY(tmpDir.mkdir("holla")); + QVERIFY(fs.createDirectory(tmpDir.filePath("hello"))); + QVERIFY(fs.createDirectory(tmpDir.filePath("holla"))); QLineEdit edit; QCompleter comp; @@ -1500,12 +1493,12 @@ void tst_QCompleter::QTBUG_14292_filesystem() QCOMPARE(comp.popup()->model()->rowCount(), 1); QTest::keyClick(&edit, 'r'); QTRY_VERIFY(!comp.popup()->isVisible()); - QVERIFY(tmpDir.mkdir("hero")); + QVERIFY(fs.createDirectory(tmpDir.filePath("hero"))); QTRY_VERIFY(comp.popup()->isVisible()); QCOMPARE(comp.popup()->model()->rowCount(), 1); QTest::keyClick(comp.popup(), Qt::Key_Escape); QTRY_VERIFY(!comp.popup()->isVisible()); - QVERIFY(tmpDir.mkdir("nothingThere")); + QVERIFY(fs.createDirectory(tmpDir.filePath("nothingThere"))); //there is no reason creating a file should open a popup, it did in Qt 4.7.0 QTest::qWait(60); QVERIFY(!comp.popup()->isVisible()); @@ -1522,7 +1515,7 @@ void tst_QCompleter::QTBUG_14292_filesystem() QTest::qWaitForWindowShown(&w); QTRY_VERIFY(!edit.hasFocus() && !comp.popup()->hasFocus()); - QVERIFY(tmpDir.mkdir("hemo")); + QVERIFY(fs.createDirectory(tmpDir.filePath("hemo"))); //there is no reason creating a file should open a popup, it did in Qt 4.7.0 QTest::qWait(60); QVERIFY(!comp.popup()->isVisible()); -- cgit v0.12 From c60a2a5e5136cfec74429114c6c74401fdda65a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 16 Dec 2010 14:09:35 +0100 Subject: Windows Vista and 7 also have animated progress bars Which means they get paint events all the time. Reviewed-by: Jens Bache-Wiig --- tests/auto/qprogressbar/tst_qprogressbar.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/auto/qprogressbar/tst_qprogressbar.cpp b/tests/auto/qprogressbar/tst_qprogressbar.cpp index 7d94e3c..e042fb8 100644 --- a/tests/auto/qprogressbar/tst_qprogressbar.cpp +++ b/tests/auto/qprogressbar/tst_qprogressbar.cpp @@ -179,10 +179,15 @@ void tst_QProgressBar::format() bar.repainted = false; bar.setFormat("%v of %m (%p%)"); qApp->processEvents(); + #ifndef Q_WS_MAC - // The Mac scroll bar is animated, which means we get paint events all the time. + // Animated scroll bars get paint events all the time +#ifdef Q_OS_WIN + if (QSysInfo::WindowsVersion < QSysInfo::WV_VISTA) +#endif QVERIFY(!bar.repainted); #endif + QCOMPARE(bar.text(), QString("1 of 10 (10%)")); bar.setRange(5, 5); bar.setValue(5); -- cgit v0.12 From 912e8a2c90a200300feaef18beedd4e6af3e8623 Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Fri, 17 Dec 2010 15:12:30 +0100 Subject: Draw focusrect through style proxy This function call was simply not converted to use the new proxy style, hence preventing people from overriding it properly. Reviewed-by: Andy Shaw Task-number: QTBUG-16127 --- src/gui/styles/qcommonstyle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp index 039a6da..296455b 100644 --- a/src/gui/styles/qcommonstyle.cpp +++ b/src/gui/styles/qcommonstyle.cpp @@ -2217,7 +2217,7 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt, if (vopt->state & QStyle::State_HasFocus) { QStyleOptionFocusRect o; o.QStyleOption::operator=(*vopt); - o.rect = subElementRect(SE_ItemViewItemFocusRect, vopt, widget); + o.rect = proxy()->subElementRect(SE_ItemViewItemFocusRect, vopt, widget); o.state |= QStyle::State_KeyboardFocusChange; o.state |= QStyle::State_Item; QPalette::ColorGroup cg = (vopt->state & QStyle::State_Enabled) -- cgit v0.12 From 4d5029365ccc045522cb87582c2b2e1a36ed0d24 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 16 Dec 2010 17:06:23 +0100 Subject: document WriteFailed status codes (whoops) --- src/corelib/io/qdatastream.cpp | 1 + src/corelib/io/qtextstream.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/corelib/io/qdatastream.cpp b/src/corelib/io/qdatastream.cpp index 52ee252..73ce490 100644 --- a/src/corelib/io/qdatastream.cpp +++ b/src/corelib/io/qdatastream.cpp @@ -223,6 +223,7 @@ QT_BEGIN_NAMESPACE \value ReadPastEnd The data stream has read past the end of the data in the underlying device. \value ReadCorruptData The data stream has read corrupt data. + \value WriteFailed The data stream cannot write to the underlying device. */ /***************************************************************************** diff --git a/src/corelib/io/qtextstream.cpp b/src/corelib/io/qtextstream.cpp index 242c672..3bdbf32 100644 --- a/src/corelib/io/qtextstream.cpp +++ b/src/corelib/io/qtextstream.cpp @@ -224,6 +224,7 @@ static const int QTEXTSTREAM_BUFFERSIZE = 16384; \value ReadPastEnd The text stream has read past the end of the data in the underlying device. \value ReadCorruptData The text stream has read corrupt data. + \value WriteFailed The text stream cannot write to the underlying device. \sa status() */ -- cgit v0.12 From 558fe9383ba0aecbec09cc411c0ebab132aac137 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 16 Dec 2010 17:28:24 +0100 Subject: make QXmlStreamWriterPrivate::write(const char *s) ascii-only it's only ever called with ascii data, and the input encoding semantics weren't all that clear anyway. Reviewed-by: denis --- src/corelib/xml/qxmlstream.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp index 91c3a19..50703a4 100644 --- a/src/corelib/xml/qxmlstream.cpp +++ b/src/corelib/xml/qxmlstream.cpp @@ -3083,16 +3083,11 @@ void QXmlStreamWriterPrivate::writeEscaped(const QString &s, bool escapeWhitespa qWarning("QXmlStreamWriter: No device"); } - +// ASCII only! void QXmlStreamWriterPrivate::write(const char *s) { if (device) { -#ifndef QT_NO_TEXTCODEC - if (codec->mibEnum() != 106) - device->write(encoder->fromUnicode(QLatin1String(s))); - else -#endif - device->write(s, strlen(s)); + device->write(s, strlen(s)); } else if (stringDevice) { stringDevice->append(QLatin1String(s)); } else -- cgit v0.12 From 86246bfe354aaf03065cd78d7d5410e5097ada48 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 16 Dec 2010 17:30:52 +0100 Subject: remove some code duplication writeEscaped() can simply call write() once it's done escaping Reviewed-by: denis --- src/corelib/xml/qxmlstream.cpp | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp index 50703a4..b29bd92 100644 --- a/src/corelib/xml/qxmlstream.cpp +++ b/src/corelib/xml/qxmlstream.cpp @@ -3070,17 +3070,7 @@ void QXmlStreamWriterPrivate::writeEscaped(const QString &s, bool escapeWhitespa escaped += QChar(c); } } - if (device) { -#ifdef QT_NO_TEXTCODEC - device->write(escaped.toLatin1(), escaped.size()); -#else - device->write(encoder->fromUnicode(escaped)); -#endif - } - else if (stringDevice) - stringDevice->append(escaped); - else - qWarning("QXmlStreamWriter: No device"); + write(escaped); } // ASCII only! -- cgit v0.12 From 468328468904d116a5ff70fd4c71c34e453e8593 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 16 Dec 2010 17:44:01 +0100 Subject: optimize writing string constants and byte arrays don't throw away the already known length just to call strlen() on it over and over again. Reviewed-by: denis --- src/corelib/xml/qxmlstream.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp index b29bd92..3d8af9b 100644 --- a/src/corelib/xml/qxmlstream.cpp +++ b/src/corelib/xml/qxmlstream.cpp @@ -2965,7 +2965,8 @@ public: void write(const QStringRef &); void write(const QString &); void writeEscaped(const QString &, bool escapeWhitespace = false); - void write(const char *s); + void write(const char *s, int len); + template void write(const char (&s)[N]) { write(s, N - 1); } bool finishStartElement(bool contents = true); void writeStartElement(const QString &namespaceUri, const QString &name); QIODevice *device; @@ -3074,12 +3075,12 @@ void QXmlStreamWriterPrivate::writeEscaped(const QString &s, bool escapeWhitespa } // ASCII only! -void QXmlStreamWriterPrivate::write(const char *s) +void QXmlStreamWriterPrivate::write(const char *s, int len) { if (device) { - device->write(s, strlen(s)); + device->write(s, len); } else if (stringDevice) { - stringDevice->append(QLatin1String(s)); + stringDevice->append(QString::fromLatin1(s, len)); } else qWarning("QXmlStreamWriter: No device"); } @@ -3157,7 +3158,7 @@ void QXmlStreamWriterPrivate::indent(int level) { write("\n"); for (int i = level; i > 0; --i) - write(autoFormattingIndent.constData()); + write(autoFormattingIndent.constData(), autoFormattingIndent.length()); } @@ -3744,7 +3745,7 @@ void QXmlStreamWriter::writeStartDocument(const QString &version) #ifdef QT_NO_TEXTCODEC d->write("iso-8859-1"); #else - d->write(d->codec->name().constData()); + d->write(d->codec->name().constData(), d->codec->name().length()); #endif } d->write("\"?>"); @@ -3767,12 +3768,13 @@ void QXmlStreamWriter::writeStartDocument(const QString &version, bool standalon #ifdef QT_NO_TEXTCODEC d->write("iso-8859-1"); #else - d->write(d->codec->name().constData()); + d->write(d->codec->name().constData(), d->codec->name().length()); #endif } - d->write("\" standalone=\""); - d->write(standalone ? "yes" : "no"); - d->write("\"?>"); + if (standalone) + d->write("\" standalone=\"yes\"?>"); + else + d->write("\" standalone=\"no\"?>"); } -- cgit v0.12 From 8789d4bd9eaba3a90fb3a94edb71ad0c1e01dc66 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Thu, 16 Dec 2010 20:32:21 +0100 Subject: add error handling to QXmlStreamWriter introduce QXmlStreamWriter::hasError(). set the error flag when any write error occurs. ignore subsequent writes after the first error. Reviewed-by: denis --- src/corelib/xml/qxmlstream.cpp | 37 ++++++++++++-- src/corelib/xml/qxmlstream.h | 2 + tests/auto/qxmlstream/tst_qxmlstream.cpp | 82 ++++++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 5 deletions(-) diff --git a/src/corelib/xml/qxmlstream.cpp b/src/corelib/xml/qxmlstream.cpp index 3d8af9b..64a9857 100644 --- a/src/corelib/xml/qxmlstream.cpp +++ b/src/corelib/xml/qxmlstream.cpp @@ -2941,6 +2941,9 @@ QStringRef QXmlStreamReader::documentEncoding() const By default, QXmlStreamWriter encodes XML in UTF-8. Different encodings can be enforced using setCodec(). + If an error occurs while writing to the underlying device, hasError() + starts returning true and subsequent writes are ignored. + The \l{QXmlStream Bookmarks Example} illustrates how to use a stream writer to write an XML bookmark file (XBEL) that was previously read in by a QXmlStreamReader. @@ -2976,6 +2979,7 @@ public: uint inEmptyElement :1; uint lastWasStartElement :1; uint wroteSomething :1; + uint hasError :1; uint autoFormatting :1; QByteArray autoFormattingIndent; NamespaceDeclaration emptyNamespace; @@ -3008,6 +3012,7 @@ QXmlStreamWriterPrivate::QXmlStreamWriterPrivate(QXmlStreamWriter *q) #endif inStartElement = inEmptyElement = false; wroteSomething = false; + hasError = false; lastWasStartElement = false; lastNamespaceDeclaration = 1; autoFormatting = false; @@ -3017,11 +3022,15 @@ QXmlStreamWriterPrivate::QXmlStreamWriterPrivate(QXmlStreamWriter *q) void QXmlStreamWriterPrivate::write(const QStringRef &s) { if (device) { + if (hasError) + return; #ifdef QT_NO_TEXTCODEC - device->write(s.toString().toLatin1(), s.size()); + QByteArray bytes = s.toLatin1(); #else - device->write(encoder->fromUnicode(s.constData(), s.size())); + QByteArray bytes = encoder->fromUnicode(s.constData(), s.size()); #endif + if (device->write(bytes) != bytes.size()) + hasError = true; } else if (stringDevice) s.appendTo(stringDevice); @@ -3032,11 +3041,15 @@ void QXmlStreamWriterPrivate::write(const QStringRef &s) void QXmlStreamWriterPrivate::write(const QString &s) { if (device) { + if (hasError) + return; #ifdef QT_NO_TEXTCODEC - device->write(s.toLatin1(), s.size()); + QByteArray bytes = s.toLatin1(); #else - device->write(encoder->fromUnicode(s)); + QByteArray bytes = encoder->fromUnicode(s); #endif + if (device->write(bytes) != bytes.size()) + hasError = true; } else if (stringDevice) stringDevice->append(s); @@ -3078,7 +3091,10 @@ void QXmlStreamWriterPrivate::writeEscaped(const QString &s, bool escapeWhitespa void QXmlStreamWriterPrivate::write(const char *s, int len) { if (device) { - device->write(s, len); + if (hasError) + return; + if (device->write(s, len) != len) + hasError = true; } else if (stringDevice) { stringDevice->append(QString::fromLatin1(s, len)); } else @@ -3359,6 +3375,17 @@ int QXmlStreamWriter::autoFormattingIndent() const return d->autoFormattingIndent.count(' ') - d->autoFormattingIndent.count('\t'); } +/*! + Returns \c true if the stream failed to write to the underlying device. + + The error status is never reset. Writes happening after the error + occurred are ignored, even if the error condition is cleared. + */ +bool QXmlStreamWriter::hasError() const +{ + Q_D(const QXmlStreamWriter); + return d->hasError; +} /*! \overload diff --git a/src/corelib/xml/qxmlstream.h b/src/corelib/xml/qxmlstream.h index d7143bd..244d3d4 100644 --- a/src/corelib/xml/qxmlstream.h +++ b/src/corelib/xml/qxmlstream.h @@ -474,6 +474,8 @@ public: void writeCurrentToken(const QXmlStreamReader &reader); #endif + bool hasError() const; + private: Q_DISABLE_COPY(QXmlStreamWriter) Q_DECLARE_PRIVATE(QXmlStreamWriter) diff --git a/tests/auto/qxmlstream/tst_qxmlstream.cpp b/tests/auto/qxmlstream/tst_qxmlstream.cpp index 19e4b90..9e4f3ec 100644 --- a/tests/auto/qxmlstream/tst_qxmlstream.cpp +++ b/tests/auto/qxmlstream/tst_qxmlstream.cpp @@ -574,6 +574,7 @@ private slots: void checkCommentIndentation() const; void checkCommentIndentation_data() const; void qtbug9196_crash() const; + void hasError() const; private: static QByteArray readFile(const QString &filename); @@ -1560,5 +1561,86 @@ void tst_QXmlStream::qtbug9196_crash() const } } +class FakeBuffer : public QBuffer +{ +protected: + qint64 writeData(const char *c, qint64 i) + { + qint64 ai = qMin(m_capacity, i); + m_capacity -= ai; + return ai ? QBuffer::writeData(c, ai) : 0; + } +public: + void setCapacity(int capacity) { m_capacity = capacity; } +private: + qint64 m_capacity; +}; + +void tst_QXmlStream::hasError() const +{ + { + FakeBuffer fb; + QVERIFY(fb.open(QBuffer::ReadWrite)); + fb.setCapacity(1000); + QXmlStreamWriter writer(&fb); + writer.writeStartDocument(); + writer.writeEndDocument(); + QVERIFY(!writer.hasError()); + QCOMPARE(fb.data(), QByteArray("\n")); + } + + { + // Failure caused by write(QString) + FakeBuffer fb; + QVERIFY(fb.open(QBuffer::ReadWrite)); + fb.setCapacity(strlen(" Date: Mon, 20 Dec 2010 10:32:54 +1000 Subject: Quiet unused parameter warnings. --- src/plugins/bearer/icd/qicdengine.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/bearer/icd/qicdengine.cpp b/src/plugins/bearer/icd/qicdengine.cpp index a5a183b..96827f3 100644 --- a/src/plugins/bearer/icd/qicdengine.cpp +++ b/src/plugins/bearer/icd/qicdengine.cpp @@ -966,6 +966,9 @@ void QIcdEngine::connectionStateSignalsSlot(QDBusMessage msg) void QIcdEngine::icdServiceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner) { + Q_UNUSED(serviceName); + Q_UNUSED(oldOwner); + QMutexLocker locker(&mutex); if (newOwner.isEmpty()) { -- cgit v0.12 From 95b0418a7ee7aee9658fd19b363e73d583af0b04 Mon Sep 17 00:00:00 2001 From: Damian Jansen Date: Mon, 20 Dec 2010 13:09:48 +1000 Subject: Fix deployment of minehunt for Symbian Task: QT-4298 --- demos/declarative/minehunt/minehunt.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/declarative/minehunt/minehunt.pro b/demos/declarative/minehunt/minehunt.pro index 8a7fdc5..5929ecf 100644 --- a/demos/declarative/minehunt/minehunt.pro +++ b/demos/declarative/minehunt/minehunt.pro @@ -18,6 +18,6 @@ symbian:{ TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) qmlminehuntfiles.sources = MinehuntCore minehunt.qml - DEPLOYMENT = qmlminehuntfiles + DEPLOYMENT += qmlminehuntfiles } -- cgit v0.12 From 0aeebdc851682d2afd63494ddeafa4e745ad2b72 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 20 Dec 2010 14:30:09 +1000 Subject: Update docs on importing javascript files --- doc/src/declarative/javascriptblocks.qdoc | 4 +++- doc/src/declarative/modules.qdoc | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/src/declarative/javascriptblocks.qdoc b/doc/src/declarative/javascriptblocks.qdoc index 155bd6e..68cb392 100644 --- a/doc/src/declarative/javascriptblocks.qdoc +++ b/doc/src/declarative/javascriptblocks.qdoc @@ -99,7 +99,9 @@ resource, the component's \l {QDeclarativeComponent::status()}{status} is set to Imported JavaScript files are always qualified using the "as" keyword. The qualifier for JavaScript files must be unique, so there is always a one-to-one -mapping between qualifiers and JavaScript files. +mapping between qualifiers and JavaScript files. (This also means qualifiers cannot +be named the same as built-in JavaScript objects such as \c Date and \c Math). + \section2 Code-Behind Implementation Files diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc index 011eb63..bf9f5fd 100644 --- a/doc/src/declarative/modules.qdoc +++ b/doc/src/declarative/modules.qdoc @@ -216,6 +216,8 @@ JavaScript files must always be imported with a named import: } \endqml +The qualifier ("MyScript" in the above example) must be unique within the QML document. +Unlike ordinary modules, multiple scripts cannot be imported into the same namespace. \section1 Writing a qmldir file -- cgit v0.12 From 327169a6a3fb0bac258cb878019734211a707cce Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 20 Dec 2010 14:30:27 +1000 Subject: Don't truncate image:// url strings prematurely Url fragments and queries were being removed from the image ids passed to QDeclarativeImageProvider. Task-number: QTBUG-16195 Reviewed-by: Martin Jones --- src/declarative/qml/qdeclarativeengine.cpp | 12 ++++-- src/declarative/qml/qdeclarativeimageprovider.cpp | 16 ++++++-- .../tst_qdeclarativeimageprovider.cpp | 46 ++++++++++++++++++++-- 3 files changed, 62 insertions(+), 12 deletions(-) diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index 201e675..cf3ea42 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -760,8 +760,10 @@ QImage QDeclarativeEnginePrivate::getImageFromProvider(const QUrl &url, QSize *s QImage image; QSharedPointer provider = imageProviders.value(url.host()); locker.unlock(); - if (provider) - image = provider->requestImage(url.path().mid(1), size, req_size); + if (provider) { + QString imageId = url.toString(QUrl::RemoveScheme | QUrl::RemoveAuthority).mid(1); + image = provider->requestImage(imageId, size, req_size); + } return image; } @@ -771,8 +773,10 @@ QPixmap QDeclarativeEnginePrivate::getPixmapFromProvider(const QUrl &url, QSize QPixmap pixmap; QSharedPointer provider = imageProviders.value(url.host()); locker.unlock(); - if (provider) - pixmap = provider->requestPixmap(url.path().mid(1), size, req_size); + if (provider) { + QString imageId = url.toString(QUrl::RemoveScheme | QUrl::RemoveAuthority).mid(1); + pixmap = provider->requestPixmap(imageId, size, req_size); + } return pixmap; } diff --git a/src/declarative/qml/qdeclarativeimageprovider.cpp b/src/declarative/qml/qdeclarativeimageprovider.cpp index ef31be7..e3da645 100644 --- a/src/declarative/qml/qdeclarativeimageprovider.cpp +++ b/src/declarative/qml/qdeclarativeimageprovider.cpp @@ -182,13 +182,17 @@ QDeclarativeImageProvider::ImageType QDeclarativeImageProvider::imageType() cons Implement this method to return the image with \a id. The default implementation returns an empty image. + The \a id is the requested image source, with the "image:" scheme and + provider identifier removed. For example, if the image \l{Image::}{source} + was "image://myprovider/icons/home", the given \a id would be "icons/home". + The \a requestedSize corresponds to the \l {Image::sourceSize} requested by an Image element. If \a requestedSize is a valid size, the image returned should be of that size. In all cases, \a size must be set to the original size of the image. This - is used to set the \l {Item::}{width} and \l {Item::}{height} of image - elements that should be automatically sized to the loaded image. + is used to set the \l {Item::}{width} and \l {Item::}{height} of the + relevant \l Image if these values have not been set explicitly. \note this method may be called by multiple threads, so ensure the implementation of this method is reentrant. @@ -207,13 +211,17 @@ QImage QDeclarativeImageProvider::requestImage(const QString &id, QSize *size, c Implement this method to return the pixmap with \a id. The default implementation returns an empty pixmap. + The \a id is the requested image source, with the "image:" scheme and + provider identifier removed. For example, if the image \l{Image::}{source} + was "image://myprovider/icons/home", the given \a id would be "icons/home". + The \a requestedSize corresponds to the \l {Image::sourceSize} requested by an Image element. If \a requestedSize is a valid size, the image returned should be of that size. In all cases, \a size must be set to the original size of the image. This - is used to set the \l {Item::}{width} and \l {Item::}{height} of image - elements that should be automatically sized to the loaded image. + is used to set the \l {Item::}{width} and \l {Item::}{height} of the + relevant \l Image if these values have not been set explicitly. */ QPixmap QDeclarativeImageProvider::requestPixmap(const QString &id, QSize *size, const QSize& requestedSize) { diff --git a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp index cd12e3a..5b214e6 100644 --- a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp +++ b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp @@ -100,6 +100,8 @@ public: QImage requestImage(const QString &id, QSize *size, const QSize& requestedSize) { + lastImageId = id; + if (id == QLatin1String("no-such-file.png")) return QImage(); @@ -114,6 +116,7 @@ public: } bool *deleteWatch; + QString lastImageId; }; Q_DECLARE_METATYPE(TestQImageProvider*); @@ -134,6 +137,8 @@ public: QPixmap requestPixmap(const QString &id, QSize *size, const QSize& requestedSize) { + lastImageId = id; + if (id == QLatin1String("no-such-file.png")) return QPixmap(); @@ -148,6 +153,7 @@ public: } bool *deleteWatch; + QString lastImageId; }; Q_DECLARE_METATYPE(TestQPixmapProvider*); @@ -164,22 +170,49 @@ QString tst_qdeclarativeimageprovider::newImageFileName() const void tst_qdeclarativeimageprovider::fillRequestTestsData(const QString &id) { QTest::addColumn("source"); + QTest::addColumn("imageId"); QTest::addColumn("properties"); QTest::addColumn("size"); QTest::addColumn("error"); - QTest::newRow(QTest::toString(id + " exists")) << newImageFileName() << "" << QSize(100,100) << ""; - QTest::newRow(QTest::toString(id + " scaled")) << newImageFileName() << "sourceSize: \"80x30\"" << QSize(80,30) << ""; + QString fileName = newImageFileName(); + QTest::newRow(QTest::toString(id + " simple test")) + << "image://test/" + fileName << fileName << "" << QSize(100,100) << ""; + + fileName = newImageFileName(); + QTest::newRow(QTest::toString(id + " url with no id")) + << "image://test/" + fileName << "" + fileName << "" << QSize(100,100) << ""; + + fileName = newImageFileName(); + QTest::newRow(QTest::toString(id + " url with path")) + << "image://test/test/path" + fileName << "test/path" + fileName << "" << QSize(100,100) << ""; + + fileName = newImageFileName(); + QTest::newRow(QTest::toString(id + " url with fragment")) + << "image://test/faq.html?#question13" + fileName << "faq.html?#question13" + fileName << "" << QSize(100,100) << ""; - QTest::newRow(QTest::toString(id + " missing")) << "image://test/no-such-file.png" << "" << QSize() + fileName = newImageFileName(); + QTest::newRow(QTest::toString(id + " url with query")) + << "image://test/cgi-bin/drawgraph.cgi?type=pie&color=green" + fileName << "cgi-bin/drawgraph.cgi?type=pie&color=green" + fileName + << "" << QSize(100,100) << ""; + + fileName = newImageFileName(); + QTest::newRow(QTest::toString(id + " scaled image")) + << "image://test/" + fileName << fileName << "sourceSize: \"80x30\"" << QSize(80,30) << ""; + + QTest::newRow(QTest::toString(id + " missing")) + << "image://test/no-such-file.png" << "no-such-file.png" << "" << QSize(100,100) << "file::2:1: QML Image: Failed to get image from provider: image://test/no-such-file.png"; - QTest::newRow(QTest::toString(id + " unknown provider")) << "image://bogus/exists.png" << "" << QSize() + + QTest::newRow(QTest::toString(id + " unknown provider")) + << "image://bogus/exists.png" << "" << "" << QSize() << "file::2:1: QML Image: Failed to get image from provider: image://bogus/exists.png"; } void tst_qdeclarativeimageprovider::runTest(bool async, QDeclarativeImageProvider *provider) { QFETCH(QString, source); + QFETCH(QString, imageId); QFETCH(QString, properties); QFETCH(QSize, size); QFETCH(QString, error); @@ -210,6 +243,11 @@ void tst_qdeclarativeimageprovider::runTest(bool async, QDeclarativeImageProvide QTRY_VERIFY(obj->status() == QDeclarativeImage::Ready); else QVERIFY(obj->status() == QDeclarativeImage::Ready); + if (QByteArray(QTest::currentDataTag()).startsWith("qimage")) + QCOMPARE(static_cast(provider)->lastImageId, imageId); + else + QCOMPARE(static_cast(provider)->lastImageId, imageId); + QCOMPARE(obj->width(), qreal(size.width())); QCOMPARE(obj->height(), qreal(size.height())); QCOMPARE(obj->pixmap().width(), size.width()); -- cgit v0.12 From 28973e50710cfcd96da037cdad7f46700221c185 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Mon, 20 Dec 2010 15:50:41 +1000 Subject: Make it clear which security updates are needed for Visual Studio 2005. As well as Service Pack 1, the compiler also needs four additional security updates in order to work correctly with Qt's pre-built binary package. Task-number: QTBUG-7633 Reviewed-by: Toby Tomkins --- doc/src/getting-started/installation.qdoc | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc index a68310c..5b009cd 100644 --- a/doc/src/getting-started/installation.qdoc +++ b/doc/src/getting-started/installation.qdoc @@ -963,6 +963,7 @@ We hope you will enjoy using Qt. first install the Visual Studio Service Pack 1 available \l{http://www.microsoft.com/downloads/details.aspx?FamilyId=BB4A75AB-E2D4-4C96-B39D-37BAF6B5B1DC&displaylang=en}{here} to avoid runtime conflicts. + Additionally, you must use the Check for Updates feature in the Help menu of the Visual Studio 2005 IDE to apply at least the following security updates: KB937061, KB971023, KB971090, KB973673. If you are using a source edition of Qt, you must first install Perl so that the syncqt script invoked by configure can be executed. You can download -- cgit v0.12 From 95e64de1827f9b2bae829d40756f7142c56c460f Mon Sep 17 00:00:00 2001 From: Joona Petrell Date: Mon, 20 Dec 2010 15:44:25 +1000 Subject: Update test bitmaps for QDeclarativeImage::svg() autotest on Windows Task-number: Reviewed-by: Martin Jones --- .../qdeclarativeimage/data/heart-win32.png | Bin 12457 -> 12621 bytes .../qdeclarativeimage/data/heart200-win32.png | Bin 7939 -> 8062 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png b/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png index 5992e79..351da13 100644 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png and b/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png differ diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png b/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png index 19b20a8..4976ff9 100644 Binary files a/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png and b/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png differ -- cgit v0.12 From 197ec350e4014330851a013501c6dde3068ac26f Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Mon, 20 Dec 2010 17:07:34 +1000 Subject: Setting TextInput.cursorPosition outside bounds crashed. Check bounds in TextInput and TextEdit. Task-number: QTBUG-16188 Reviewed-by: Bea Lam --- src/declarative/graphicsitems/qdeclarativetextedit.cpp | 2 ++ src/declarative/graphicsitems/qdeclarativetextinput.cpp | 2 ++ .../qdeclarativetextedit/tst_qdeclarativetextedit.cpp | 13 +++++++++++++ .../qdeclarativetextinput/tst_qdeclarativetextinput.cpp | 13 +++++++++++++ 4 files changed, 30 insertions(+) diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp index e05f4e4..4e16d24 100644 --- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp @@ -643,6 +643,8 @@ int QDeclarativeTextEdit::cursorPosition() const void QDeclarativeTextEdit::setCursorPosition(int pos) { Q_D(QDeclarativeTextEdit); + if (pos < 0 || pos > d->text.length()) + return; QTextCursor cursor = d->control->textCursor(); if (cursor.position() == pos) return; diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp index df103de..521e4ab 100644 --- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp +++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp @@ -437,6 +437,8 @@ int QDeclarativeTextInput::cursorPosition() const void QDeclarativeTextInput::setCursorPosition(int cp) { Q_D(QDeclarativeTextInput); + if (cp < 0 || cp > d->control->text().length()) + return; d->control->moveCursor(cp); } diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp index a7971cc..c7a51f7 100644 --- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp +++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp @@ -652,6 +652,19 @@ void tst_qdeclarativetextedit::selection() QVERIFY(textEditObject->selectionEnd() == 0); QVERIFY(textEditObject->selectedText().isNull()); + // Verify invalid positions are ignored. + textEditObject->setCursorPosition(-1); + QVERIFY(textEditObject->cursorPosition() == 0); + QVERIFY(textEditObject->selectionStart() == 0); + QVERIFY(textEditObject->selectionEnd() == 0); + QVERIFY(textEditObject->selectedText().isNull()); + + textEditObject->setCursorPosition(textEditObject->text().count()+1); + QVERIFY(textEditObject->cursorPosition() == 0); + QVERIFY(textEditObject->selectionStart() == 0); + QVERIFY(textEditObject->selectionEnd() == 0); + QVERIFY(textEditObject->selectedText().isNull()); + //Test selection for(int i=0; i<= testStr.size(); i++) { textEditObject->select(0,i); diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp index 76e0102..7b2310a 100644 --- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp +++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp @@ -354,6 +354,19 @@ void tst_qdeclarativetextinput::selection() QVERIFY(textinputObject->selectionEnd() == 0); QVERIFY(textinputObject->selectedText().isNull()); + // Verify invalid positions are ignored. + textinputObject->setCursorPosition(-1); + QVERIFY(textinputObject->cursorPosition() == 0); + QVERIFY(textinputObject->selectionStart() == 0); + QVERIFY(textinputObject->selectionEnd() == 0); + QVERIFY(textinputObject->selectedText().isNull()); + + textinputObject->setCursorPosition(textinputObject->text().count()+1); + QVERIFY(textinputObject->cursorPosition() == 0); + QVERIFY(textinputObject->selectionStart() == 0); + QVERIFY(textinputObject->selectionEnd() == 0); + QVERIFY(textinputObject->selectedText().isNull()); + //Test selection for(int i=0; i<= testStr.size(); i++) { textinputObject->select(0,i); -- cgit v0.12 From de72670c620e1193fa875bf1a4adee553700bacb Mon Sep 17 00:00:00 2001 From: Ville Pernu Date: Mon, 20 Dec 2010 09:57:24 +0200 Subject: QNAM HTTP: Fix missing error() signal During download, if a QAbstractSocket::RemoteHostClosedError occurs, the error handling is deferred to _q_disconnected() slot. However, the error message is not saved for the function, and thus the _q_disconnected only emits a finished-signal. We now store an unhandled error into a private member. It is handled and reset by the _q_disconnected (or more specifically, allDone-function). Also, an additional check is made that there are no simultaneous HTTP errors. If a HTTP error exists, any socket errors are suppressed. Task-Number: QT-3494 Reviewed-By: Markus Goetz --- src/network/access/qhttpnetworkconnectionchannel.cpp | 20 +++++++++++++++++++- src/network/access/qhttpnetworkconnectionchannel_p.h | 1 + 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp index c8caad4..c4471eb 100644 --- a/src/network/access/qhttpnetworkconnectionchannel.cpp +++ b/src/network/access/qhttpnetworkconnectionchannel.cpp @@ -66,6 +66,7 @@ QHttpNetworkConnectionChannel::QHttpNetworkConnectionChannel() , bytesTotal(0) , resendCurrent(false) , lastStatus(0) + , unhandledError(QNetworkReply::NoError) , pendingEncrypt(false) , reconnectAttempts(2) , authMethod(QAuthenticatorPrivate::None) @@ -642,7 +643,23 @@ void QHttpNetworkConnectionChannel::allDone() // slot connected to it. The socket will not fire readyRead signal, if we are already // in the slot connected to readyRead if (emitFinished) - QMetaObject::invokeMethod(reply, "finished", Qt::QueuedConnection); + { + // Check whether _q_error was invoked previously and if it left a socket + // error unhandled AND that there are no http errors. + // In case there are both socket errors and http errors, the socket error is suppressed. + // Http errors are handled in the QNetworkAccessHttpBackend. + if(unhandledError != QNetworkReply::NoError && reply->statusCode() == 200) { + QString errorString = connection->d_func()->errorDetail(unhandledError, socket, socket->errorString()); + qRegisterMetaType("QNetworkReply::NetworkError"); + QMetaObject::invokeMethod(reply, "finishedWithError", + Qt::QueuedConnection, + Q_ARG(QNetworkReply::NetworkError, unhandledError), + Q_ARG(QString, errorString)); + } else { + QMetaObject::invokeMethod(reply, "finished", Qt::QueuedConnection); + } + unhandledError = QNetworkReply::NoError; // Reset the value + } // reset the reconnection attempts after we receive a complete reply. // in case of failures, each channel will attempt two reconnects before emitting error. reconnectAttempts = 2; @@ -964,6 +981,7 @@ void QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError socket errorCode = QNetworkReply::RemoteHostClosedError; } } else { + unhandledError = QNetworkReply::RemoteHostClosedError; return; } break; diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h index fd18042..e1d42fb 100644 --- a/src/network/access/qhttpnetworkconnectionchannel_p.h +++ b/src/network/access/qhttpnetworkconnectionchannel_p.h @@ -105,6 +105,7 @@ public: qint64 bytesTotal; bool resendCurrent; int lastStatus; // last status received on this channel + QNetworkReply::NetworkError unhandledError; // Stored code of an unhandled error. bool pendingEncrypt; // for https (send after encrypted) int reconnectAttempts; // maximum 2 reconnection attempts QAuthenticatorPrivate::Method authMethod; -- cgit v0.12 From 8605f528930744b2afc594c39afb146bd7ad4b54 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Mon, 20 Dec 2010 10:48:50 +0100 Subject: QIntValidator: provide default argument to parent For consistency. Reviewed-by: Joao Reviewed-by: Gabriel Task-number: 16100 --- src/gui/widgets/qvalidator.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gui/widgets/qvalidator.h b/src/gui/widgets/qvalidator.h index 63734ca..013387d 100644 --- a/src/gui/widgets/qvalidator.h +++ b/src/gui/widgets/qvalidator.h @@ -101,7 +101,7 @@ class Q_GUI_EXPORT QIntValidator : public QValidator public: explicit QIntValidator(QObject * parent = 0); - QIntValidator(int bottom, int top, QObject * parent); + QIntValidator(int bottom, int top, QObject *parent = 0); ~QIntValidator(); QValidator::State validate(QString &, int &) const; @@ -142,7 +142,7 @@ class Q_GUI_EXPORT QDoubleValidator : public QValidator public: explicit QDoubleValidator(QObject * parent = 0); - QDoubleValidator(double bottom, double top, int decimals, QObject * parent); + QDoubleValidator(double bottom, double top, int decimals, QObject *parent = 0); ~QDoubleValidator(); enum Notation { @@ -186,7 +186,7 @@ class Q_GUI_EXPORT QRegExpValidator : public QValidator public: explicit QRegExpValidator(QObject *parent = 0); - QRegExpValidator(const QRegExp& rx, QObject *parent); + QRegExpValidator(const QRegExp& rx, QObject *parent = 0); ~QRegExpValidator(); virtual QValidator::State validate(QString& input, int& pos) const; -- cgit v0.12 From 3677eabde5595194b6fc72cd395a1ae7560c5e48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 20 Dec 2010 11:55:32 +0100 Subject: define FSCTL_SET_REPARSE_POINT in test header ... as was already done in windows engine implementation for FSCTL_*GET*_REPARSE_POINT. --- tests/shared/filesystem.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/shared/filesystem.h b/tests/shared/filesystem.h index 8274346..4775671 100644 --- a/tests/shared/filesystem.h +++ b/tests/shared/filesystem.h @@ -55,6 +55,9 @@ #define IO_REPARSE_TAG_MOUNT_POINT (0xA0000003L) #endif #define REPARSE_MOUNTPOINT_HEADER_SIZE 8 +#ifndef FSCTL_SET_REPARSE_POINT +#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) +#endif #endif struct FileSystem -- cgit v0.12 From b98e374e94e81b66be0dc009356a729e9b97dce8 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 1 Dec 2010 16:38:59 +0000 Subject: QFile API: add API to specify if adopted file handles should be closed QFile behaviour has been to not close file handles adopted by open(FILE*, OpenMode) and open(int fd, OpenMode) functions. This is inconvenient for frameworks which want to return an opened QFile to the user. In this case it would be better to transfer ownership of the handle to the QFile. New overloads are added which take an additional parameter from the QFile::FileHandleFlags flags. Currently only one bit is used to provide the AutoCloseHandle option, but it is extensible. The AutoCloseHandle option tells the QFile backend that it should close the handle when close() is called, rather than the default behaviour which remains to flush the handle and leave it open. The DontCloseHandle option is the inverse of this, specifying the old behaviour of flushing but not closing the file handle. Symbian OS file handles are not compatible with int, they are an opaque data type which contains two integers. The first identifies to the kernel the file server session The second identifies to the file server the subsession object (the file) The reason for this is that it has a microkernel architecture, the kernel has no support for files - all files and file systems are handled by a user mode process called the "file server". So for symbian, a new QFile::open() overload is added for adopting a symbian RFile handle. The API mirrors the existing API for POSIX file handles, but takes an RFile reference rather than an integer file descriptor. Task-number: QT-2924 Reviewed-by: joao Reviewed-by: mread Reviewed-by: Oswald Buddenhagen --- src/corelib/io/qfile.cpp | 187 ++++++++++++++++++++++++++++++++-- src/corelib/io/qfile.h | 14 +++ src/corelib/io/qfile_p.h | 7 +- src/corelib/io/qfsfileengine.cpp | 14 ++- src/corelib/io/qfsfileengine.h | 8 ++ src/corelib/io/qfsfileengine_unix.cpp | 59 +++++++++++ 6 files changed, 277 insertions(+), 12 deletions(-) diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp index 85e78a6..e3bc8da 100644 --- a/src/corelib/io/qfile.cpp +++ b/src/corelib/io/qfile.cpp @@ -103,7 +103,7 @@ QFilePrivate::~QFilePrivate() } bool -QFilePrivate::openExternalFile(int flags, int fd) +QFilePrivate::openExternalFile(int flags, int fd, QFile::FileHandleFlags handleFlags) { #ifdef QT_NO_FSFILEENGINE Q_UNUSED(flags); @@ -113,14 +113,13 @@ QFilePrivate::openExternalFile(int flags, int fd) delete fileEngine; fileEngine = 0; QFSFileEngine *fe = new QFSFileEngine; - fe->setFileName(fileName); fileEngine = fe; - return fe->open(QIODevice::OpenMode(flags), fd); + return fe->open(QIODevice::OpenMode(flags), fd, handleFlags); #endif } bool -QFilePrivate::openExternalFile(int flags, FILE *fh) +QFilePrivate::openExternalFile(int flags, FILE *fh, QFile::FileHandleFlags handleFlags) { #ifdef QT_NO_FSFILEENGINE Q_UNUSED(flags); @@ -130,12 +129,28 @@ QFilePrivate::openExternalFile(int flags, FILE *fh) delete fileEngine; fileEngine = 0; QFSFileEngine *fe = new QFSFileEngine; - fe->setFileName(fileName); fileEngine = fe; - return fe->open(QIODevice::OpenMode(flags), fh); + return fe->open(QIODevice::OpenMode(flags), fh, handleFlags); #endif } +#ifdef Q_OS_SYMBIAN +bool QFilePrivate::openExternalFile(int flags, const RFile &f, QFile::FileHandleFlags handleFlags) +{ +#ifdef QT_NO_FSFILEENGINE + Q_UNUSED(flags); + Q_UNUSED(fh); + return false; +#else + delete fileEngine; + fileEngine = 0; + QFSFileEngine *fe = new QFSFileEngine; + fileEngine = fe; + return fe->open(QIODevice::OpenMode(flags), f, handleFlags); +#endif +} +#endif + inline bool QFilePrivate::ensureFlushed() const { // This function ensures that the write buffer has been flushed (const @@ -341,6 +356,20 @@ QFilePrivate::setError(QFile::FileError err, int errNum) \snippet doc/src/snippets/ntfsp.cpp 1 */ +/*! + \enum QFile::FileHandleFlag + + This enum is used when opening a file to specify additional + options which only apply to files and not to a generic + QIODevice. + + \value AutoCloseHandle The file handle passed into open() should be + closed by close(), the default behaviour is that close just flushes + the file and the app is responsible for closing the file handle. When + opening a file by name, this flag is ignored as Qt always "owns" the + file handle and must close it. + */ + #ifdef QT3_SUPPORT /*! \typedef QFile::PermissionSpec @@ -1058,8 +1087,57 @@ bool QFile::open(OpenMode mode) \snippet doc/src/snippets/code/src_corelib_io_qfile.cpp 4 */ +// ### Qt5: merge this into new overload with a default parameter bool QFile::open(FILE *fh, OpenMode mode) { + return open(fh, mode, DontCloseHandle); +} + +/*! + \overload + + Opens the existing file handle \a fh in the given \a mode. + Returns true if successful; otherwise returns false. + + Example: + \snippet doc/src/snippets/code/src_corelib_io_qfile.cpp 3 + + When a QFile is opened using this function, behaviour of close() is + controlled by the AutoCloseHandle flag. + If AutoCloseHandle is specified, and this function succeeds, + then calling close() closes the adopted handle. + Otherwise, close() does not actually close the file, but only flushes it. + + \bold{Warning:} + \list 1 + \o If \a fh does not refer to a regular file, e.g., it is \c stdin, + \c stdout, or \c stderr, you may not be able to seek(). size() + returns \c 0 in those cases. See QIODevice::isSequential() for + more information. + \o Since this function opens the file without specifying the file name, + you cannot use this QFile with a QFileInfo. + \endlist + + \note For Windows CE you may not be able to call resize(). + + \sa close(), {qmake Variable Reference#CONFIG}{qmake Variable Reference} + + \bold{Note for the Windows Platform} + + \a fh must be opened in binary mode (i.e., the mode string must contain + 'b', as in "rb" or "wb") when accessing files and other random-access + devices. Qt will translate the end-of-line characters if you pass + QIODevice::Text to \a mode. Sequential devices, such as stdin and stdout, + are unaffected by this limitation. + + You need to enable support for console applications in order to use the + stdin, stdout and stderr streams at the console. To do this, add the + following declaration to your application's project file: + + \snippet doc/src/snippets/code/src_corelib_io_qfile.cpp 4 +*/ +bool QFile::open(FILE *fh, OpenMode mode, FileHandleFlags handleFlags) +{ Q_D(QFile); if (isOpen()) { qWarning("QFile::open: File (%s) already open", qPrintable(fileName())); @@ -1072,7 +1150,7 @@ bool QFile::open(FILE *fh, OpenMode mode) qWarning("QFile::open: File access not specified"); return false; } - if(d->openExternalFile(mode, fh)) { + if (d->openExternalFile(mode, fh, handleFlags)) { QIODevice::open(mode); if (mode & Append) { seek(size()); @@ -1118,8 +1196,44 @@ bool QFile::open(FILE *fh, OpenMode mode) \sa close() */ +// ### Qt5: merge this into new overload with a default parameter bool QFile::open(int fd, OpenMode mode) { + return open(fd, mode, DontCloseHandle); +} + +/*! + \overload + + Opens the existing file descriptor \a fd in the given \a mode. + Returns true if successful; otherwise returns false. + + When a QFile is opened using this function, behaviour of close() is + controlled by the AutoCloseHandle flag. + If AutoCloseHandle is specified, and this function succeeds, + then calling close() closes the adopted handle. + Otherwise, close() does not actually close the file, but only flushes it. + + The QFile that is opened using this function is automatically set + to be in raw mode; this means that the file input/output functions + are slow. If you run into performance issues, you should try to + use one of the other open functions. + + \warning If \a fd is not a regular file, e.g, it is 0 (\c stdin), + 1 (\c stdout), or 2 (\c stderr), you may not be able to seek(). In + those cases, size() returns \c 0. See QIODevice::isSequential() + for more information. + + \warning For Windows CE you may not be able to call seek(), setSize(), + fileTime(). size() returns \c 0. + + \warning Since this function opens the file without specifying the file name, + you cannot use this QFile with a QFileInfo. + + \sa close() +*/ +bool QFile::open(int fd, OpenMode mode, FileHandleFlags handleFlags) +{ Q_D(QFile); if (isOpen()) { qWarning("QFile::open: File (%s) already open", qPrintable(fileName())); @@ -1132,7 +1246,7 @@ bool QFile::open(int fd, OpenMode mode) qWarning("QFile::open: File access not specified"); return false; } - if(d->openExternalFile(mode, fd)) { + if (d->openExternalFile(mode, fd, handleFlags)) { QIODevice::open(mode); if (mode & Append) { seek(size()); @@ -1146,6 +1260,63 @@ bool QFile::open(int fd, OpenMode mode) return false; } +#ifdef Q_OS_SYMBIAN +/*! + \overload + + Opens the existing file object \a f in the given \a mode. + Returns true if successful; otherwise returns false. + + When a QFile is opened using this function, behaviour of close() is + controlled by the AutoCloseHandle flag. + If AutoCloseHandle is specified, and this function succeeds, + then calling close() closes the adopted handle. + Otherwise, close() does not actually close the file, but only flushes it. + + \warning If the file handle is adopted from another process, + you may not be able to use this QFile with a QFileInfo. + + \sa close() +*/ +bool QFile::open(const RFile &f, OpenMode mode, FileHandleFlags handleFlags) +{ + Q_D(QFile); + if (isOpen()) { + qWarning("QFile::open: File (%s) already open", qPrintable(fileName())); + return false; + } + if (mode & Append) + mode |= WriteOnly; + unsetError(); + if ((mode & (ReadOnly | WriteOnly)) == 0) { + qWarning("QFile::open: File access not specified"); + return false; + } + if (d->openExternalFile(mode, f, handleFlags)) { + bool ok = QIODevice::open(mode); + if (ok) { + if (mode & Append) { + ok = seek(size()); + } else { + qint64 pos = 0; + TInt err; +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + err = static_cast(f).Seek(ESeekCurrent, pos); +#else + TInt pos32 = 0; + err = f.Seek(ESeekCurrent, pos32); + pos = pos32; +#endif + ok = ok && (err == KErrNone); + ok = ok && seek(pos); + } + } + return ok; + } + return false; +} +#endif + /*! Returns the file handle of the file. diff --git a/src/corelib/io/qfile.h b/src/corelib/io/qfile.h index 212576c..fa9e5aa 100644 --- a/src/corelib/io/qfile.h +++ b/src/corelib/io/qfile.h @@ -45,6 +45,9 @@ #include #include #include +#ifdef Q_OS_SYMBIAN +#include +#endif #ifdef open #error qfile.h must be included before any header file that defines open @@ -97,6 +100,12 @@ public: }; Q_DECLARE_FLAGS(Permissions, Permission) + enum FileHandleFlag { + AutoCloseHandle = 0x0001, + DontCloseHandle = 0 + }; + Q_DECLARE_FLAGS(FileHandleFlags, FileHandleFlag) + QFile(); QFile(const QString &name); #ifndef QT_NO_QOBJECT @@ -145,6 +154,11 @@ public: bool open(OpenMode flags); bool open(FILE *f, OpenMode flags); bool open(int fd, OpenMode flags); +#ifdef Q_OS_SYMBIAN + bool open(const RFile &f, OpenMode flags, FileHandleFlags handleFlags = DontCloseHandle); +#endif + bool open(FILE *f, OpenMode ioFlags, FileHandleFlags handleFlags); + bool open(int fd, OpenMode ioFlags, FileHandleFlags handleFlags); virtual void close(); qint64 size() const; diff --git a/src/corelib/io/qfile_p.h b/src/corelib/io/qfile_p.h index cf76c09..085bbf0 100644 --- a/src/corelib/io/qfile_p.h +++ b/src/corelib/io/qfile_p.h @@ -67,8 +67,11 @@ protected: QFilePrivate(); ~QFilePrivate(); - bool openExternalFile(int flags, int fd); - bool openExternalFile(int flags, FILE *fh); + bool openExternalFile(int flags, int fd, QFile::FileHandleFlags handleFlags); + bool openExternalFile(int flags, FILE *fh, QFile::FileHandleFlags handleFlags); +#ifdef Q_OS_SYMBIAN + bool openExternalFile(int flags, const RFile& f, QFile::FileHandleFlags handleFlags); +#endif QString fileName; mutable QAbstractFileEngine *fileEngine; diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index ae301f7..f1d3db5 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -230,6 +230,11 @@ bool QFSFileEngine::open(QIODevice::OpenMode openMode) */ bool QFSFileEngine::open(QIODevice::OpenMode openMode, FILE *fh) { + return open(openMode, fh, QFile::DontCloseHandle); +} + +bool QFSFileEngine::open(QIODevice::OpenMode openMode, FILE *fh, QFile::FileHandleFlags handleFlags) +{ Q_D(QFSFileEngine); // Append implies WriteOnly. @@ -242,7 +247,7 @@ bool QFSFileEngine::open(QIODevice::OpenMode openMode, FILE *fh) d->openMode = openMode; d->lastFlushFailed = false; - d->closeFileHandle = false; + d->closeFileHandle = (handleFlags & QFile::AutoCloseHandle); d->fileEntry.clear(); d->tried_stat = 0; d->fd = -1; @@ -286,6 +291,11 @@ bool QFSFileEnginePrivate::openFh(QIODevice::OpenMode openMode, FILE *fh) */ bool QFSFileEngine::open(QIODevice::OpenMode openMode, int fd) { + return open(openMode, fd, QFile::DontCloseHandle); +} + +bool QFSFileEngine::open(QIODevice::OpenMode openMode, int fd, QFile::FileHandleFlags handleFlags) +{ Q_D(QFSFileEngine); // Append implies WriteOnly. @@ -298,7 +308,7 @@ bool QFSFileEngine::open(QIODevice::OpenMode openMode, int fd) d->openMode = openMode; d->lastFlushFailed = false; - d->closeFileHandle = false; + d->closeFileHandle = (handleFlags & QFile::AutoCloseHandle); d->fileEntry.clear(); d->fh = 0; d->fd = -1; diff --git a/src/corelib/io/qfsfileengine.h b/src/corelib/io/qfsfileengine.h index 6b077ed..73c8c77 100644 --- a/src/corelib/io/qfsfileengine.h +++ b/src/corelib/io/qfsfileengine.h @@ -43,6 +43,9 @@ #define QFSFILEENGINE_H #include +#ifdef Q_OS_SYMBIAN +#include +#endif #ifndef QT_NO_FSFILEENGINE @@ -101,6 +104,11 @@ public: //FS only!! bool open(QIODevice::OpenMode flags, int fd); + bool open(QIODevice::OpenMode flags, int fd, QFile::FileHandleFlags handleFlags); + bool open(QIODevice::OpenMode flags, FILE *fh, QFile::FileHandleFlags handleFlags); +#ifdef Q_OS_SYMBIAN + bool open(QIODevice::OpenMode flags, const RFile &f, QFile::FileHandleFlags handleFlags); +#endif static bool setCurrentPath(const QString &path); static QString currentPath(const QString &path = QString()); static QString homePath(); diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 1e1b35b..d0350f0 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -251,6 +251,65 @@ bool QFSFileEnginePrivate::nativeOpen(QIODevice::OpenMode openMode) closeFileHandle = true; return true; } + +bool QFSFileEngine::open(QIODevice::OpenMode openMode, const RFile &file, QFile::FileHandleFlags handleFlags) +{ + Q_D(QFSFileEngine); + + // Append implies WriteOnly. + if (openMode & QFile::Append) + openMode |= QFile::WriteOnly; + + // WriteOnly implies Truncate if neither ReadOnly nor Append are sent. + if ((openMode & QFile::WriteOnly) && !(openMode & (QFile::ReadOnly | QFile::Append))) + openMode |= QFile::Truncate; + + d->openMode = openMode; + d->lastFlushFailed = false; + d->closeFileHandle = (handleFlags & QFile::AutoCloseHandle); + d->fileEntry.clear(); + d->fh = 0; + d->fd = -1; + d->tried_stat = 0; + +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + //RFile64 adds only functions to RFile, no data members + d->symbianFile = static_cast(file); +#else + d->symbianFile = file; +#endif + TInt ret; + d->symbianFilePos = 0; + if (openMode & QFile::Append) { + // Seek to the end when in Append mode. + ret = d->symbianFile.Size(d->symbianFilePos); + } else { + // Seek to current otherwise + ret = d->symbianFile.Seek(ESeekCurrent, d->symbianFilePos); + } + + if (ret != KErrNone) { + setError(QFile::OpenError, QSystemError(ret, QSystemError::NativeError).toString()); + + d->openMode = QIODevice::NotOpen; +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API + d->symbianFile = RFile64(); +#else + d->symbianFile = RFile(); +#endif + return false; + } + + // Extract filename (best effort) + TFileName fn; + TInt err = d->symbianFile.FullName(fn); + if (err == KErrNone) + d->fileEntry = QFileSystemEntry(qt_TDesC2QString(fn), QFileSystemEntry::FromNativePath()); + else + d->fileEntry.clear(); + + return true; +} #else /*! \internal -- cgit v0.12 From 09317dda494a51d101723131c5a01af4149ac5de Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 20 Dec 2010 13:04:23 +0100 Subject: Micro-optimization for QSpanData::setup() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't call QColor::rgba() in a macro arg that gets evaluated multiple times. Reviewed-by: Samuel Rødal --- src/gui/painting/qpaintengine_raster.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index 97dfddf..3186749 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -5152,7 +5152,8 @@ void QSpanData::setup(const QBrush &brush, int alpha, QPainter::CompositionMode case Qt::SolidPattern: { type = Solid; QColor c = qbrush_color(brush); - solid.color = PREMUL(ARGB_COMBINE_ALPHA(c.rgba(), alpha)); + QRgb rgba = c.rgba(); + solid.color = PREMUL(ARGB_COMBINE_ALPHA(rgba, alpha)); if ((solid.color & 0xff000000) == 0 && compositionMode == QPainter::CompositionMode_SourceOver) { type = None; -- cgit v0.12 From 48e7c71d1165f0c60f56e0b769b35df2658e8e96 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 20 Dec 2010 13:05:27 +0100 Subject: Make the QRasterPaintEngineState copy constructor cheaper. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use initializer syntax to avoid default-constructing a throwaway QBrush and QPen. Reviewed-by: Samuel Rødal --- src/gui/painting/qpaintengine_raster.cpp | 34 ++++++++++++-------------------- 1 file changed, 13 insertions(+), 21 deletions(-) diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index 3186749..7fc90b8 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -662,31 +662,23 @@ QRasterPaintEngineState::QRasterPaintEngineState() QRasterPaintEngineState::QRasterPaintEngineState(QRasterPaintEngineState &s) : QPainterState(s) + , stroker(s.stroker) + , lastBrush(s.lastBrush) + , brushData(s.brushData) + , lastPen(s.lastPen) + , penData(s.penData) + , fillFlags(s.fillFlags) + , strokeFlags(s.strokeFlags) + , pixmapFlags(s.pixmapFlags) + , intOpacity(s.intOpacity) + , txscale(s.txscale) + , flag_bits(s.flag_bits) + , clip(s.clip) + , dirty(s.dirty) { - stroker = s.stroker; - - lastBrush = s.lastBrush; - brushData = s.brushData; brushData.tempImage = 0; - - lastPen = s.lastPen; - penData = s.penData; penData.tempImage = 0; - - fillFlags = s.fillFlags; - strokeFlags = s.strokeFlags; - pixmapFlags = s.pixmapFlags; - - intOpacity = s.intOpacity; - - txscale = s.txscale; - - flag_bits = s.flag_bits; - - clip = s.clip; flags.has_clip_ownership = false; - - dirty = s.dirty; } /*! -- cgit v0.12 From 0189fc2335c891373ce595a4a01e4a9d73cc5fe4 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Sun, 12 Dec 2010 17:33:12 +0100 Subject: Move advances for control character in Indic syllable shaping When handling control characters (ZWJ, ZWNJ) in Indic syllables, we only moved glyphs and attributes of the item, advances should also be moved forward, otherwise we will use the advance of ZWJ/ ZWNJ for the part of syllable, which is normally zero, it results some positioning problems. Task-number: QTBUG-14204 Reviewed-by: Lars Knoll --- src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp | 1 + tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp b/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp index 4a618da..bbf479e 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp +++ b/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp @@ -1683,6 +1683,7 @@ static bool indic_shape_syllable(HB_Bool openType, HB_ShaperItem *item, bool inv } item->glyphs[j] = item->glyphs[i]; item->attributes[j] = item->attributes[i]; + item->advances[j] = item->advances[i]; ++i; ++j; } diff --git a/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp b/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp index 0a7458f..b0b6b1e 100644 --- a/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp +++ b/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp @@ -103,6 +103,7 @@ private slots: void khmer(); void linearB(); + void controlInSyllable_qtbug14204(); }; tst_QTextScriptEngine::tst_QTextScriptEngine() @@ -1111,6 +1112,22 @@ void tst_QTextScriptEngine::greek() #endif } +void tst_QTextScriptEngine::controlInSyllable_qtbug14204() +{ + QString s; + s.append(QChar(0x0915)); + s.append(QChar(0x094d)); + s.append(QChar(0x200d)); + s.append(QChar(0x0915)); + + QTextLayout layout(s); + QTextEngine *e = layout.d; + e->itemize(); + e->shape(0); + + QVERIFY(e->layoutData->items[0].num_glyphs == 2); + QVERIFY(e->layoutData->glyphLayout.advances_x[1] != 0); +} QTEST_MAIN(tst_QTextScriptEngine) #include "tst_qtextscriptengine.moc" -- cgit v0.12 From ad0841dfd89d08140b719098ecfec82881df63e6 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Tue, 14 Dec 2010 18:18:35 +0100 Subject: Disable certain GPOS features by default According to OpenType Layout tag registry, these features should be turned off by default. Leaving them on will cause some text layout problems in common UI widgets -- they are usually designed for better positioning in print publishing or full featured text layout programs, not for general usage. There is no way to turn them on in HarfBuzz now, it should be addressed later. Features like 'valt' are intended for vertical writing mode are also turned off, since HarfBuzz doesn't support it properly yet. Task-number: QTBUG-15754 Reviewed-by: Lars Knoll --- src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp | 41 +++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp b/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp index ce4d4ac..ef86144 100644 --- a/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp +++ b/src/3rdparty/harfbuzz/src/harfbuzz-shaper.cpp @@ -538,8 +538,20 @@ void HB_HeuristicSetGlyphAttributes(HB_ShaperItem *item) #ifndef NO_OPENTYPE static const HB_OpenTypeFeature basic_features[] = { { HB_MAKE_TAG('c', 'c', 'm', 'p'), CcmpProperty }, - { HB_MAKE_TAG('l', 'i', 'g', 'a'), CcmpProperty }, - { HB_MAKE_TAG('c', 'l', 'i', 'g'), CcmpProperty }, + { HB_MAKE_TAG('l', 'i', 'g', 'a'), LigaProperty }, + { HB_MAKE_TAG('c', 'l', 'i', 'g'), CligProperty }, + {0, 0} +}; + +static const HB_OpenTypeFeature disabled_features[] = { + { HB_MAKE_TAG('c', 'p', 'c', 't'), PositioningProperties }, + { HB_MAKE_TAG('h', 'a', 'l', 't'), PositioningProperties }, + // TODO: we need to add certain HB_ShaperFlag for vertical + // writing mode to enable these vertical writing features: + { HB_MAKE_TAG('v', 'a', 'l', 't'), PositioningProperties }, + { HB_MAKE_TAG('v', 'h', 'a', 'l'), PositioningProperties }, + { HB_MAKE_TAG('v', 'k', 'r', 'n'), PositioningProperties }, + { HB_MAKE_TAG('v', 'p', 'a', 'l'), PositioningProperties }, {0, 0} }; #endif @@ -1110,12 +1122,29 @@ HB_Bool HB_SelectScript(HB_ShaperItem *shaper_item, const HB_OpenTypeFeature *fe HB_UInt *feature_tag_list = feature_tag_list_buffer; while (*feature_tag_list) { HB_UShort feature_index; + bool skip = false; if (*feature_tag_list == HB_MAKE_TAG('k', 'e', 'r', 'n')) { - if (face->current_flags & HB_ShaperFlag_NoKerning) { - ++feature_tag_list; - continue; + if (face->current_flags & HB_ShaperFlag_NoKerning) + skip = true; + else + face->has_opentype_kerning = true; + } + features = disabled_features; + while (features->tag) { + if (*feature_tag_list == features->tag) { + skip = true; + break; } - face->has_opentype_kerning = true; + ++features; + } + // 'palt' should be turned off by default unless 'kern' is on + if (!face->has_opentype_kerning && + *feature_tag_list == HB_MAKE_TAG('p', 'a', 'l', 't')) + skip = true; + + if (skip) { + ++feature_tag_list; + continue; } error = HB_GPOS_Select_Feature(face->gpos, *feature_tag_list, script_index, 0xffff, &feature_index); if (!error) -- cgit v0.12 From daba2c507ad42c66dafa6a29cffa94e9641e0c58 Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Mon, 20 Dec 2010 14:26:39 +0100 Subject: Delay creation of the process manager The *nix process manager would create a pipe on every startup. In order to improve startup speed, the QProcessManager is now created when first needed. Reviewed-by: Robert Griebl --- src/corelib/io/qprocess_unix.cpp | 30 ++++++++++++++++++++++++++---- src/corelib/kernel/qcoreapplication.cpp | 18 ++++++++++++------ src/corelib/kernel/qcoreapplication.h | 1 + src/corelib/kernel/qcoreapplication_p.h | 2 ++ 4 files changed, 41 insertions(+), 10 deletions(-) diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp index 216c382..e52d132 100644 --- a/src/corelib/io/qprocess_unix.cpp +++ b/src/corelib/io/qprocess_unix.cpp @@ -169,17 +169,27 @@ private: Q_GLOBAL_STATIC(QMutex, processManagerGlobalMutex) -static QProcessManager *processManager() { +static QProcessManager *processManagerInstance = 0; + +static QProcessManager *processManager() +{ // The constructor of QProcessManager should be called only once // so we cannot use Q_GLOBAL_STATIC directly for QProcessManager QMutex *mutex = processManagerGlobalMutex(); QMutexLocker locker(mutex); - static QProcessManager processManager; - return &processManager; + + if (!processManagerInstance) + QProcessPrivate::initializeProcessManager(); + + Q_ASSERT(processManagerInstance); + return processManagerInstance; } QProcessManager::QProcessManager() { + // can only be called from main thread + Q_ASSERT(!qApp || qApp->thread() == QThread::currentThread()); + #if defined (QPROCESS_DEBUG) qDebug() << "QProcessManager::QProcessManager()"; #endif @@ -198,6 +208,8 @@ QProcessManager::QProcessManager() ::sigaction(SIGCHLD, &action, &oldAction); if (oldAction.sa_handler != qt_sa_sigchld_handler) qt_sa_old_sigchld_handler = oldAction.sa_handler; + + processManagerInstance = this; } QProcessManager::~QProcessManager() @@ -226,6 +238,8 @@ QProcessManager::~QProcessManager() if (oldAction.sa_handler != qt_sa_sigchld_handler) { ::sigaction(SIGCHLD, &oldAction, 0); } + + processManagerInstance = 0; } void QProcessManager::run() @@ -1289,7 +1303,15 @@ bool QProcessPrivate::startDetached(const QString &program, const QStringList &a void QProcessPrivate::initializeProcessManager() { - (void) processManager(); + if (qApp && qApp->thread() != QThread::currentThread()) { + // The process manager must be initialized in the main thread + // Note: The call below will re-enter this function, but in the right thread, + // so the else statement below will be executed. + QMetaObject::invokeMethod(qApp, "_q_initializeProcessManager", Qt::BlockingQueuedConnection); + } else { + static QProcessManager processManager; + Q_UNUSED(processManager); + } } QT_END_NAMESPACE diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 0f95ee0..799433b 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -336,6 +336,16 @@ void QCoreApplicationPrivate::createEventDispatcher() #endif } +void QCoreApplicationPrivate::_q_initializeProcessManager() +{ +#ifndef QT_NO_PROCESS +# ifdef Q_OS_UNIX + QProcessPrivate::initializeProcessManager(); +# endif +#endif +} + + QThread *QCoreApplicationPrivate::theMainThread = 0; QThread *QCoreApplicationPrivate::mainThread() { @@ -600,12 +610,6 @@ void QCoreApplication::init() } #endif -#if defined(Q_OS_UNIX) && !(defined(QT_NO_PROCESS)) - // Make sure the process manager thread object is created in the main - // thread. - QProcessPrivate::initializeProcessManager(); -#endif - #ifdef QT_EVAL extern void qt_core_eval_init(uint); qt_core_eval_init(d->application_type); @@ -2666,3 +2670,5 @@ int QCoreApplication::loopLevel() */ QT_END_NAMESPACE + +#include "moc_qcoreapplication.cpp" diff --git a/src/corelib/kernel/qcoreapplication.h b/src/corelib/kernel/qcoreapplication.h index f1c7c26..17e784e 100644 --- a/src/corelib/kernel/qcoreapplication.h +++ b/src/corelib/kernel/qcoreapplication.h @@ -205,6 +205,7 @@ protected: QCoreApplication(QCoreApplicationPrivate &p); private: + Q_PRIVATE_SLOT(d_func(), void _q_initializeProcessManager()) static bool sendSpontaneousEvent(QObject *receiver, QEvent *event); bool notifyInternal(QObject *receiver, QEvent *event); diff --git a/src/corelib/kernel/qcoreapplication_p.h b/src/corelib/kernel/qcoreapplication_p.h index 2355c37..aafa821 100644 --- a/src/corelib/kernel/qcoreapplication_p.h +++ b/src/corelib/kernel/qcoreapplication_p.h @@ -82,6 +82,8 @@ public: bool sendThroughObjectEventFilters(QObject *, QEvent *); bool notify_helper(QObject *, QEvent *); + void _q_initializeProcessManager(); + virtual QString appName() const; virtual void createEventDispatcher(); static void removePostedEvent(QEvent *); -- cgit v0.12 From d9dbdb1afde441c8ab87f42b4a5e0e29ad54480c Mon Sep 17 00:00:00 2001 From: Denis Dzyubenko Date: Mon, 20 Dec 2010 14:05:53 +0100 Subject: Fixed QStatusBar not to repaint itself too early When the toplevel containing a statusbar is initially shown, QStatusBar will repaint itself way too early - repaint() is called from the LayoutRequest event causing a whole window repaint before the window was resized to the proper size. This caused Qt Creator to paint itself in small size in a maximized window on its startup. Task-number: QTBUG-14547 Reviewed-by: Olivier Goffart --- src/gui/widgets/qstatusbar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/widgets/qstatusbar.cpp b/src/gui/widgets/qstatusbar.cpp index c88d2a1..c60913e 100644 --- a/src/gui/widgets/qstatusbar.cpp +++ b/src/gui/widgets/qstatusbar.cpp @@ -575,7 +575,7 @@ void QStatusBar::reformat() d->savedStrut = maxH; vbox->addSpacing(2); d->box->activate(); - repaint(); + update(); } /*! -- cgit v0.12 From cb44818623d10d5d6a9f49ddf5651351ebe55f67 Mon Sep 17 00:00:00 2001 From: Fabien Freling Date: Mon, 20 Dec 2010 14:40:51 +0100 Subject: Fix the redirection of painting for the toolbar. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-16154 Reviewed-by: Samuel Rødal --- src/gui/painting/qunifiedtoolbarsurface_mac.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/painting/qunifiedtoolbarsurface_mac.cpp b/src/gui/painting/qunifiedtoolbarsurface_mac.cpp index ace0a46..02ba8db 100644 --- a/src/gui/painting/qunifiedtoolbarsurface_mac.cpp +++ b/src/gui/painting/qunifiedtoolbarsurface_mac.cpp @@ -83,11 +83,11 @@ void QUnifiedToolbarSurface::recursiveRedirect(QObject *object, const QPoint &of widget->d_func()->unifiedSurface = this; widget->d_func()->isInUnifiedToolbar = true; widget->d_func()->toolbar_offset = offset; - } - } - for (int i = 0; i < object->children().size(); ++i) { - recursiveRedirect(object->children().at(i), offset); + for (int i = 0; i < object->children().size(); ++i) { + recursiveRedirect(object->children().at(i), offset); + } + } } } } -- cgit v0.12 From e679392978c21266ec0bf6f960ab8c5f0621e18b Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Thu, 30 Sep 2010 17:29:40 +0200 Subject: Add QElapsedTimer::nsecsElapsed() const Allow sub-millisecond resolution on systems where it is possible. On UNIX, with monotonic clock support we get full nanosecond resolution, microsecond otherwise. On Windows we convert the performance counters to nanoseconds if availble, otherwise we only have millisecond resolution. On Mac, the mach time is converted to nanoseconds. On Symbian, we have microsecond resolution. Reviewed-by: joao --- src/corelib/tools/qelapsedtimer.h | 1 + src/corelib/tools/qelapsedtimer_generic.cpp | 16 ++++++++++++++++ src/corelib/tools/qelapsedtimer_mac.cpp | 6 ++++++ src/corelib/tools/qelapsedtimer_symbian.cpp | 22 +++++++++++----------- src/corelib/tools/qelapsedtimer_unix.cpp | 11 +++++++++++ src/corelib/tools/qelapsedtimer_win.cpp | 20 +++++++++++++------- tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp | 7 ++++++- 7 files changed, 64 insertions(+), 19 deletions(-) diff --git a/src/corelib/tools/qelapsedtimer.h b/src/corelib/tools/qelapsedtimer.h index b996f6a..4118389 100644 --- a/src/corelib/tools/qelapsedtimer.h +++ b/src/corelib/tools/qelapsedtimer.h @@ -68,6 +68,7 @@ public: void invalidate(); bool isValid() const; + qint64 nsecsElapsed() const; qint64 elapsed() const; bool hasExpired(qint64 timeout) const; diff --git a/src/corelib/tools/qelapsedtimer_generic.cpp b/src/corelib/tools/qelapsedtimer_generic.cpp index 85986e6..740f496 100644 --- a/src/corelib/tools/qelapsedtimer_generic.cpp +++ b/src/corelib/tools/qelapsedtimer_generic.cpp @@ -103,6 +103,22 @@ qint64 QElapsedTimer::restart() return t1 - old; } +/*! \since 4.8 + + Returns the number of nanoseconds since this QElapsedTimer was last + started. Calling this function in a QElapsedTimer that was invalidated + will result in undefined results. + + On platforms that do not provide nanosecond resolution, the value returned + will be the best estimate available. + + \sa start(), restart(), hasExpired(), invalidate() +*/ +qint64 QElapsedTimer::nsecsElapsed() const +{ + return elapsed() * 1000000; +} + /*! Returns the number of milliseconds since this QElapsedTimer was last started. Calling this function in a QElapsedTimer that was invalidated diff --git a/src/corelib/tools/qelapsedtimer_mac.cpp b/src/corelib/tools/qelapsedtimer_mac.cpp index 8fceb49..e51f8b3 100644 --- a/src/corelib/tools/qelapsedtimer_mac.cpp +++ b/src/corelib/tools/qelapsedtimer_mac.cpp @@ -97,6 +97,12 @@ qint64 QElapsedTimer::restart() return absoluteToMSecs(t1 - old); } +qint64 QElapsedTimer::nsecsElapsed() const +{ + uint64_t cpu_time = mach_absolute_time(); + return absoluteToNSecs(cpu_time - t1); +} + qint64 QElapsedTimer::elapsed() const { uint64_t cpu_time = mach_absolute_time(); diff --git a/src/corelib/tools/qelapsedtimer_symbian.cpp b/src/corelib/tools/qelapsedtimer_symbian.cpp index 038b102..7cd5f1e 100644 --- a/src/corelib/tools/qelapsedtimer_symbian.cpp +++ b/src/corelib/tools/qelapsedtimer_symbian.cpp @@ -64,11 +64,6 @@ static quint64 getMicrosecondFromTick() return nanokernel_tick_period * (val | (quint64(highdword) << 32)); } -static quint64 getMillisecondFromTick() -{ - return getMicrosecondFromTick() / 1000; -} - timeval qt_gettime() { timeval tv; @@ -91,36 +86,41 @@ bool QElapsedTimer::isMonotonic() void QElapsedTimer::start() { - t1 = getMillisecondFromTick(); + t1 = getMicrosecondFromTick(); t2 = 0; } qint64 QElapsedTimer::restart() { qint64 oldt1 = t1; - t1 = getMillisecondFromTick(); + t1 = getMicrosecondFromTick(); t2 = 0; return t1 - oldt1; } +qint64 QElapsedTimer::nsecsElapsed() const +{ + return (getMicrosecondFromTick() - t1) * 1000; +} + qint64 QElapsedTimer::elapsed() const { - return getMillisecondFromTick() - t1; + return (getMicrosecondFromTick() - t1) / 1000; } qint64 QElapsedTimer::msecsSinceReference() const { - return t1; + return t1 / 1000; } qint64 QElapsedTimer::msecsTo(const QElapsedTimer &other) const { - return other.t1 - t1; + return (other.t1 - t1) / 1000; } qint64 QElapsedTimer::secsTo(const QElapsedTimer &other) const { - return msecsTo(other) / 1000; + return msecsTo(other) / 1000000; } bool operator<(const QElapsedTimer &v1, const QElapsedTimer &v2) diff --git a/src/corelib/tools/qelapsedtimer_unix.cpp b/src/corelib/tools/qelapsedtimer_unix.cpp index 633fa00..7407e1b 100644 --- a/src/corelib/tools/qelapsedtimer_unix.cpp +++ b/src/corelib/tools/qelapsedtimer_unix.cpp @@ -167,6 +167,17 @@ qint64 QElapsedTimer::restart() return elapsedAndRestart(t1, t2, &t1, &t2); } +qint64 QElapsedTimer::nsecsElapsed() const +{ + qint64 sec, frac; + do_gettime(&sec, &frac); + sec = sec - t1; + frac = frac - t2; + if (!monotonicClockAvailable) + frac *= 1000; + return sec * Q_INT64_C(1000000000) + frac; +} + qint64 QElapsedTimer::elapsed() const { qint64 sec, frac; diff --git a/src/corelib/tools/qelapsedtimer_win.cpp b/src/corelib/tools/qelapsedtimer_win.cpp index c77acaa..3f4acc1 100644 --- a/src/corelib/tools/qelapsedtimer_win.cpp +++ b/src/corelib/tools/qelapsedtimer_win.cpp @@ -79,14 +79,14 @@ static void resolveLibs() done = true; } -static inline qint64 ticksToMilliseconds(qint64 ticks) +static inline qint64 ticksToNanoseconds(qint64 ticks) { if (counterFrequency > 0) { // QueryPerformanceCounter uses an arbitrary frequency - return ticks * 1000 / counterFrequency; + return ticks * 1000000000 / counterFrequency; } else { // GetTickCount(64) return milliseconds - return ticks; + return ticks * 1000000; } } @@ -144,24 +144,30 @@ qint64 QElapsedTimer::restart() qint64 oldt1 = t1; t1 = getTickCount(); t2 = 0; - return ticksToMilliseconds(t1 - oldt1); + return ticksToNanoseconds(t1 - oldt1) / 1000000; +} + +qint64 QElapsedTimer::nsecsElapsed() const +{ + qint64 elapsed = getTickCount() - t1; + return ticksToNanoseconds(elapsed); } qint64 QElapsedTimer::elapsed() const { qint64 elapsed = getTickCount() - t1; - return ticksToMilliseconds(elapsed); + return ticksToNanoseconds(elapsed) / 1000000; } qint64 QElapsedTimer::msecsSinceReference() const { - return ticksToMilliseconds(t1); + return ticksToNanoseconds(t1) / 1000000; } qint64 QElapsedTimer::msecsTo(const QElapsedTimer &other) const { qint64 difference = other.t1 - t1; - return ticksToMilliseconds(difference); + return ticksToNanoseconds(difference) / 1000000; } qint64 QElapsedTimer::secsTo(const QElapsedTimer &other) const diff --git a/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp b/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp index 87df57d..bc61f52 100644 --- a/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp +++ b/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp @@ -122,11 +122,13 @@ void tst_QElapsedTimer::basics() quint64 value1 = t1.msecsSinceReference(); qDebug() << value1 << t1; + qint64 nsecs = t1.nsecsElapsed(); qint64 elapsed = t1.restart(); QVERIFY(elapsed < minResolution); + QVERIFY(nsecs / 1000000 < minResolution); quint64 value2 = t1.msecsSinceReference(); - qDebug() << value2 << t1 << elapsed; + qDebug() << value2 << t1 << elapsed << nsecs; // in theory, elapsed == value2 - value1 // However, since QElapsedTimer keeps internally the full resolution, @@ -150,7 +152,10 @@ void tst_QElapsedTimer::elapsed() // don't check: t1.secsTo(t2) // QVERIFY(t1 - t2 < 0); + QVERIFY(t1.nsecsElapsed() > 0); QVERIFY(t1.elapsed() > 0); + // the number of elapsed nanoseconds and milliseconds should match + QVERIFY(t1.nsecsElapsed() - t1.elapsed() * 1000000 < 1000000); QVERIFY(t1.hasExpired(minResolution)); QVERIFY(!t1.hasExpired(8*minResolution)); QVERIFY(!t2.hasExpired(minResolution)); -- cgit v0.12 From df5403e48df3ab57924a6b85d9cbaa95e3c5e766 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Thu, 16 Sep 2010 10:36:22 +0200 Subject: Removed QMutexPrivate::self() declaration This function is not used or implemented anywhere. Reviewed-by: joao --- src/corelib/thread/qmutex_p.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/corelib/thread/qmutex_p.h b/src/corelib/thread/qmutex_p.h index 6126423..57a6062 100644 --- a/src/corelib/thread/qmutex_p.h +++ b/src/corelib/thread/qmutex_p.h @@ -65,7 +65,6 @@ public: QMutexPrivate(QMutex::RecursionMode mode); ~QMutexPrivate(); - ulong self(); bool wait(int timeout = -1); void wakeUp(); -- cgit v0.12 From 33b015ae5fe561e48130b07e1ae320131cec3505 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Tue, 28 Sep 2010 11:39:17 +0200 Subject: Add a benchmark for contended and uncontended QMutex performance This benchmark also includes the same benchmark for the native type for comparison. Reviewed-by: joao --- tests/benchmarks/corelib/thread/qmutex/qmutex.pro | 2 +- .../corelib/thread/qmutex/tst_qmutex.cpp | 272 ++++++++++++++++++++- 2 files changed, 261 insertions(+), 13 deletions(-) diff --git a/tests/benchmarks/corelib/thread/qmutex/qmutex.pro b/tests/benchmarks/corelib/thread/qmutex/qmutex.pro index eda2f11..8fda5fa 100644 --- a/tests/benchmarks/corelib/thread/qmutex/qmutex.pro +++ b/tests/benchmarks/corelib/thread/qmutex/qmutex.pro @@ -1,6 +1,6 @@ load(qttest_p4) TEMPLATE = app TARGET = tst_bench_qmutex - +QT -= gui SOURCES += tst_qmutex.cpp diff --git a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp index fded508..9ed5d55 100644 --- a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp +++ b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp @@ -39,34 +39,85 @@ ** ****************************************************************************/ -#include -#include +#include +#include #include -//TESTED_FILES= +#ifdef Q_OS_UNIX +# include +# include +typedef pthread_mutex_t NativeMutexType; +void NativeMutexInitialize(NativeMutexType *mutex) +{ + pthread_mutex_init(mutex, NULL); +} +void NativeMutexDestroy(NativeMutexType *mutex) +{ + pthread_mutex_destroy(mutex); +} +void NativeMutexLock(NativeMutexType *mutex) +{ + pthread_mutex_lock(mutex); +} +void NativeMutexUnlock(NativeMutexType *mutex) +{ + pthread_mutex_unlock(mutex); +} +#elif defined(Q_OS_WIN) +# define _WIN32_WINNT 0x0400 +# include +typedef CRITICAL_SECTION NativeMutexType; +void NativeMutexInitialize(NativeMutexType *mutex) +{ + InitializeCriticalSection(mutex); +} +void NativeMutexDestroy(NativeMutexType *mutex) +{ + DeleteCriticalSection(mutex); +} +void NativeMutexLock(NativeMutexType *mutex) +{ + EnterCriticalSection(mutex); +} +void NativeMutexUnlock(NativeMutexType *mutex) +{ + LeaveCriticalSection(mutex); +} +#endif +//TESTED_FILES= class tst_QMutex : public QObject { Q_OBJECT + int threadCount; + public: - tst_QMutex(); - virtual ~tst_QMutex(); + tst_QMutex() + { + // at least 2 threads, even on single cpu/core machines + threadCount = qMax(2, QThread::idealThreadCount()); + qDebug("thread count: %d", threadCount); + } private slots: void noThread_data(); void noThread(); -}; -tst_QMutex::tst_QMutex() -{ -} + void uncontendedNative(); + void uncontendedQMutex(); + void uncontendedQMutexLocker(); -tst_QMutex::~tst_QMutex() -{ -} + void contendedNative_data(); + void contendedQMutex_data() { contendedNative_data(); } + void contendedQMutexLocker_data() { contendedNative_data(); } + + void contendedNative(); + void contendedQMutex(); + void contendedQMutexLocker(); +}; void tst_QMutex::noThread_data() { @@ -127,5 +178,202 @@ void tst_QMutex::noThread() QCOMPARE(int(count), N); } +void tst_QMutex::uncontendedNative() +{ + NativeMutexType mutex; + NativeMutexInitialize(&mutex); + QBENCHMARK { + NativeMutexLock(&mutex); + NativeMutexUnlock(&mutex); + } + NativeMutexDestroy(&mutex); +} + +void tst_QMutex::uncontendedQMutex() +{ + QMutex mutex; + QBENCHMARK { + mutex.lock(); + mutex.unlock(); + } +} + +void tst_QMutex::uncontendedQMutexLocker() +{ + QMutex mutex; + QBENCHMARK { + QMutexLocker locker(&mutex); + } +} + +void tst_QMutex::contendedNative_data() +{ + QTest::addColumn("iterations"); + QTest::addColumn("msleepDuration"); + QTest::newRow("-1") << 100 << -1; + QTest::newRow("0") << 100 << 0; + QTest::newRow("1") << 10 << 1; + QTest::newRow("2") << 10 << 2; +} + +class NativeMutexThread : public QThread +{ + QSemaphore *semaphore1, *semaphore2; + NativeMutexType *mutex; + int iterations, msleepDuration; +public: + bool done; + NativeMutexThread(QSemaphore *semaphore1, QSemaphore *semaphore2, NativeMutexType *mutex, int iterations, int msleepDuration) + : semaphore1(semaphore1), semaphore2(semaphore2), mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) + { } + void run() { + forever { + semaphore1->acquire(); + if (done) + break; + for (int i = 0; i < iterations; ++i) { + NativeMutexLock(mutex); + if (msleepDuration >= 0) + msleep(msleepDuration); + NativeMutexUnlock(mutex); + } + semaphore2->release(); + } + } +}; + +void tst_QMutex::contendedNative() +{ + QFETCH(int, iterations); + QFETCH(int, msleepDuration); + + QSemaphore semaphore1, semaphore2; + NativeMutexType mutex; + NativeMutexInitialize(&mutex); + + QVector threads(threadCount); + for (int i = 0; i < threads.count(); ++i) { + threads[i] = new NativeMutexThread(&semaphore1, &semaphore2, &mutex, iterations, msleepDuration); + threads[i]->start(); + } + + QBENCHMARK { + semaphore1.release(threadCount); + semaphore2.acquire(threadCount); + } + + for (int i = 0; i < threads.count(); ++i) + threads[i]->done = true; + semaphore1.release(threadCount); + for (int i = 0; i < threads.count(); ++i) + threads[i]->wait(); + qDeleteAll(threads); + + NativeMutexDestroy(&mutex); +} + +class QMutexThread : public QThread +{ + QSemaphore *semaphore1, *semaphore2; + QMutex *mutex; + int iterations, msleepDuration; +public: + bool done; + QMutexThread(QSemaphore *semaphore1, QSemaphore *semaphore2, QMutex *mutex, int iterations, int msleepDuration) + : semaphore1(semaphore1), semaphore2(semaphore2), mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) + { } + void run() { + forever { + semaphore1->acquire(); + if (done) + break; + for (int i = 0; i < iterations; ++i) { + mutex->lock(); + if (msleepDuration >= 0) + msleep(msleepDuration); + mutex->unlock(); + } + semaphore2->release(); + } + } +}; + +void tst_QMutex::contendedQMutex() +{ + QFETCH(int, iterations); + QFETCH(int, msleepDuration); + QSemaphore semaphore1, semaphore2; + QMutex mutex; + + QVector threads(threadCount); + for (int i = 0; i < threads.count(); ++i) { + threads[i] = new QMutexThread(&semaphore1, &semaphore2, &mutex, iterations, msleepDuration); + threads[i]->start(); + } + + QBENCHMARK { + semaphore1.release(threadCount); + semaphore2.acquire(threadCount); + } + + for (int i = 0; i < threads.count(); ++i) + threads[i]->done = true; + semaphore1.release(threadCount); + for (int i = 0; i < threads.count(); ++i) + threads[i]->wait(); + qDeleteAll(threads); +} + +class QMutexLockerThread : public QThread +{ + QSemaphore *semaphore1, *semaphore2; + QMutex *mutex; + int iterations, msleepDuration; +public: + bool done; + QMutexLockerThread(QSemaphore *semaphore1, QSemaphore *semaphore2, QMutex *mutex, int iterations, int msleepDuration) + : semaphore1(semaphore1), semaphore2(semaphore2), mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) + { } + void run() { + forever { + semaphore1->acquire(); + if (done) + break; + for (int i = 0; i < iterations; ++i) { + QMutexLocker locker(mutex); + if (msleepDuration >= 0) + msleep(msleepDuration); + } + semaphore2->release(); + } + } +}; + +void tst_QMutex::contendedQMutexLocker() +{ + QFETCH(int, iterations); + QFETCH(int, msleepDuration); + QSemaphore semaphore1, semaphore2; + QMutex mutex; + + QVector threads(threadCount); + for (int i = 0; i < threads.count(); ++i) { + threads[i] = new QMutexLockerThread(&semaphore1, &semaphore2, &mutex, iterations, msleepDuration); + threads[i]->start(); + } + + QBENCHMARK { + semaphore1.release(threadCount); + semaphore2.acquire(threadCount); + } + + for (int i = 0; i < threads.count(); ++i) + threads[i]->done = true; + semaphore1.release(threadCount); + for (int i = 0; i < threads.count(); ++i) + threads[i]->wait(); + qDeleteAll(threads); +} + QTEST_MAIN(tst_QMutex) #include "tst_qmutex.moc" -- cgit v0.12 From 2a508c6279af71c16d04ad4e764f101ea32a1c05 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Wed, 29 Sep 2010 13:42:19 +0200 Subject: Test contention performance for long (10ms) critical sections The performance should be about the same for all cases (meaning that our spinning overhead should not add too much overhead). Reviewed-by: joao --- tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp index 9ed5d55..b918014 100644 --- a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp +++ b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp @@ -214,6 +214,7 @@ void tst_QMutex::contendedNative_data() QTest::newRow("0") << 100 << 0; QTest::newRow("1") << 10 << 1; QTest::newRow("2") << 10 << 2; + QTest::newRow("10") << 10 << 10; } class NativeMutexThread : public QThread -- cgit v0.12 From 00c4e6d3d4e9196dc1c418c9269fcbed2f49dc87 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Fri, 1 Oct 2010 10:49:00 +0200 Subject: Add baseline test data to measure test overhead Also give the existing test data meaningful names Reviewed-by: joao --- tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp index b918014..7a6b45c 100644 --- a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp +++ b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp @@ -210,11 +210,12 @@ void tst_QMutex::contendedNative_data() { QTest::addColumn("iterations"); QTest::addColumn("msleepDuration"); - QTest::newRow("-1") << 100 << -1; - QTest::newRow("0") << 100 << 0; - QTest::newRow("1") << 10 << 1; - QTest::newRow("2") << 10 << 2; - QTest::newRow("10") << 10 << 10; + QTest::newRow("baseline") << 0 << -1; + QTest::newRow("no msleep") << 1000 << -1; + QTest::newRow("msleep(0)") << 1000 << 0; + QTest::newRow("msleep(1)") << 10 << 1; + QTest::newRow("msleep(2)") << 10 << 2; + QTest::newRow("msleep(10)") << 10 << 10; } class NativeMutexThread : public QThread -- cgit v0.12 From 6d6c738879bb2ef5b5c1e42908bdd1ed16980f95 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 1 Dec 2010 12:13:27 +0300 Subject: use binary search int the string2PaperSize() helper since it is much much faster Merge-request: 2516 Signed-off-by: axis --- src/gui/painting/qprinterinfo_unix.cpp | 207 ++++++++++----------------------- 1 file changed, 64 insertions(+), 143 deletions(-) diff --git a/src/gui/painting/qprinterinfo_unix.cpp b/src/gui/painting/qprinterinfo_unix.cpp index 2129aa5..0d4cc16 100644 --- a/src/gui/painting/qprinterinfo_unix.cpp +++ b/src/gui/painting/qprinterinfo_unix.cpp @@ -60,6 +60,68 @@ QT_BEGIN_NAMESPACE #ifndef QT_NO_PRINTER +#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) +// preserver names in ascending order for the binary search +static const struct NamedPaperSize { + const char *const name; + QPrinter::PaperSize size; +} named_sizes_map[QPrinter::NPageSize] = { + { "A0", QPrinter::A0 }, + { "A1", QPrinter::A1 }, + { "A2", QPrinter::A2 }, + { "A3", QPrinter::A3 }, + { "A4", QPrinter::A4 }, + { "A5", QPrinter::A5 }, + { "A6", QPrinter::A6 }, + { "A7", QPrinter::A7 }, + { "A8", QPrinter::A8 }, + { "A9", QPrinter::A9 }, + { "B0", QPrinter::B0 }, + { "B1", QPrinter::B1 }, + { "B10", QPrinter::B10 }, + { "B2", QPrinter::B2 }, + { "B4", QPrinter::B4 }, + { "B5", QPrinter::B5 }, + { "B6", QPrinter::B6 }, + { "B7", QPrinter::B7 }, + { "B8", QPrinter::B8 }, + { "B9", QPrinter::B9 }, + { "C5E", QPrinter::C5E }, + { "Comm10E", QPrinter::Comm10E }, + { "Custom", QPrinter::Custom }, + { "DLE", QPrinter::DLE }, + { "Executive", QPrinter::Executive }, + { "Folio", QPrinter::Folio }, + { "Ledger", QPrinter::Ledger }, + { "Legal", QPrinter::Legal }, + { "Letter", QPrinter::Letter }, + { "Tabloid", QPrinter::Tabloid } +}; + +inline bool operator<(const char *name, const NamedPaperSize &data) +{ return qstrcmp(name, data.name) < 0; } +inline bool operator<(const NamedPaperSize &data, const char *name) +{ return qstrcmp(data.name, name) < 0; } + +static inline QPrinter::PaperSize string2PaperSize(const char *name) +{ + const NamedPaperSize *r = qBinaryFind(named_sizes_map, named_sizes_map + QPrinter::NPageSize, name); + if (r - named_sizes_map != QPrinter::NPageSize) + return r->size; + return QPrinter::Custom; +} + +static inline const char *paperSize2String(QPrinter::PaperSize size) +{ + for (int i = 0; i < QPrinter::NPageSize; ++i) { + if (size == named_sizes_map[i].size) + return named_sizes_map[i].name; + } + return 0; +} +#endif + + class QPrinterInfoPrivate { Q_DECLARE_PUBLIC(QPrinterInfo) @@ -68,9 +130,6 @@ public: QPrinterInfoPrivate(const QString& name); ~QPrinterInfoPrivate(); - static QPrinter::PaperSize string2PaperSize(const QString& str); - static QString pageSize2String(QPrinter::PaperSize size); - private: QString m_name; bool m_isNull; @@ -977,11 +1036,8 @@ QList< QPrinter::PaperSize> QPrinterInfo::supportedPaperSizes() const cups.setCurrentPrinter(d->m_cupsPrinterIndex); const ppd_option_t* sizes = cups.pageSizes(); if (sizes) { - for (int j = 0; j < sizes->num_choices; ++j) { - d->m_paperSizes.append( - QPrinterInfoPrivate::string2PaperSize( - QLatin1String(sizes->choices[j].choice))); - } + for (int j = 0; j < sizes->num_choices; ++j) + d->m_paperSizes.append(string2PaperSize(sizes->choices[j].choice)); } } #endif @@ -1016,141 +1072,6 @@ QPrinterInfoPrivate::~QPrinterInfoPrivate() { } -QPrinter::PaperSize QPrinterInfoPrivate::string2PaperSize(const QString& str) -{ - if (str == QLatin1String("A4")) { - return QPrinter::A4; - } else if (str == QLatin1String("B5")) { - return QPrinter::B5; - } else if (str == QLatin1String("Letter")) { - return QPrinter::Letter; - } else if (str == QLatin1String("Legal")) { - return QPrinter::Legal; - } else if (str == QLatin1String("Executive")) { - return QPrinter::Executive; - } else if (str == QLatin1String("A0")) { - return QPrinter::A0; - } else if (str == QLatin1String("A1")) { - return QPrinter::A1; - } else if (str == QLatin1String("A2")) { - return QPrinter::A2; - } else if (str == QLatin1String("A3")) { - return QPrinter::A3; - } else if (str == QLatin1String("A5")) { - return QPrinter::A5; - } else if (str == QLatin1String("A6")) { - return QPrinter::A6; - } else if (str == QLatin1String("A7")) { - return QPrinter::A7; - } else if (str == QLatin1String("A8")) { - return QPrinter::A8; - } else if (str == QLatin1String("A9")) { - return QPrinter::A9; - } else if (str == QLatin1String("B0")) { - return QPrinter::B0; - } else if (str == QLatin1String("B1")) { - return QPrinter::B1; - } else if (str == QLatin1String("B10")) { - return QPrinter::B10; - } else if (str == QLatin1String("B2")) { - return QPrinter::B2; - } else if (str == QLatin1String("B3")) { - return QPrinter::B3; - } else if (str == QLatin1String("B4")) { - return QPrinter::B4; - } else if (str == QLatin1String("B6")) { - return QPrinter::B6; - } else if (str == QLatin1String("B7")) { - return QPrinter::B7; - } else if (str == QLatin1String("B8")) { - return QPrinter::B8; - } else if (str == QLatin1String("B9")) { - return QPrinter::B9; - } else if (str == QLatin1String("C5E")) { - return QPrinter::C5E; - } else if (str == QLatin1String("Comm10E")) { - return QPrinter::Comm10E; - } else if (str == QLatin1String("DLE")) { - return QPrinter::DLE; - } else if (str == QLatin1String("Folio")) { - return QPrinter::Folio; - } else if (str == QLatin1String("Ledger")) { - return QPrinter::Ledger; - } else if (str == QLatin1String("Tabloid")) { - return QPrinter::Tabloid; - } else { - return QPrinter::Custom; - } -} - -QString QPrinterInfoPrivate::pageSize2String(QPrinter::PaperSize size) -{ - switch (size) { - case QPrinter::A4: - return QLatin1String("A4"); - case QPrinter::B5: - return QLatin1String("B5"); - case QPrinter::Letter: - return QLatin1String("Letter"); - case QPrinter::Legal: - return QLatin1String("Legal"); - case QPrinter::Executive: - return QLatin1String("Executive"); - case QPrinter::A0: - return QLatin1String("A0"); - case QPrinter::A1: - return QLatin1String("A1"); - case QPrinter::A2: - return QLatin1String("A2"); - case QPrinter::A3: - return QLatin1String("A3"); - case QPrinter::A5: - return QLatin1String("A5"); - case QPrinter::A6: - return QLatin1String("A6"); - case QPrinter::A7: - return QLatin1String("A7"); - case QPrinter::A8: - return QLatin1String("A8"); - case QPrinter::A9: - return QLatin1String("A9"); - case QPrinter::B0: - return QLatin1String("B0"); - case QPrinter::B1: - return QLatin1String("B1"); - case QPrinter::B10: - return QLatin1String("B10"); - case QPrinter::B2: - return QLatin1String("B2"); - case QPrinter::B3: - return QLatin1String("B3"); - case QPrinter::B4: - return QLatin1String("B4"); - case QPrinter::B6: - return QLatin1String("B6"); - case QPrinter::B7: - return QLatin1String("B7"); - case QPrinter::B8: - return QLatin1String("B8"); - case QPrinter::B9: - return QLatin1String("B9"); - case QPrinter::C5E: - return QLatin1String("C5E"); - case QPrinter::Comm10E: - return QLatin1String("Comm10E"); - case QPrinter::DLE: - return QLatin1String("DLE"); - case QPrinter::Folio: - return QLatin1String("Folio"); - case QPrinter::Ledger: - return QLatin1String("Ledger"); - case QPrinter::Tabloid: - return QLatin1String("Tabloid"); - default: - return QLatin1String("Custom"); - } -} - #endif // QT_NO_PRINTER QT_END_NAMESPACE -- cgit v0.12 From f725c90032b83df62432018af362830e899e71c1 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 1 Dec 2010 07:48:55 +0300 Subject: minor refactoring of QPrinterInfoPrivate use member initialization lists; remove unused Q_DECLARE_PUBLIC stuff and q_ptr member; make members public instead Merge-request: 2516 Signed-off-by: axis --- src/gui/painting/qprinterinfo_mac.cpp | 42 +++++++---------------------- src/gui/painting/qprinterinfo_unix.cpp | 48 +++++++++------------------------- src/gui/painting/qprinterinfo_win.cpp | 42 +++++++---------------------- 3 files changed, 32 insertions(+), 100 deletions(-) diff --git a/src/gui/painting/qprinterinfo_mac.cpp b/src/gui/painting/qprinterinfo_mac.cpp index 9b199f4..6a48c91 100644 --- a/src/gui/painting/qprinterinfo_mac.cpp +++ b/src/gui/painting/qprinterinfo_mac.cpp @@ -49,18 +49,20 @@ QT_BEGIN_NAMESPACE class QPrinterInfoPrivate { -Q_DECLARE_PUBLIC(QPrinterInfo) public: - ~QPrinterInfoPrivate(); - QPrinterInfoPrivate(); - QPrinterInfoPrivate(const QString& name); - -private: - QPrinterInfo* q_ptr; + QPrinterInfoPrivate() : + m_isNull(true), m_default(false) + {} + QPrinterInfoPrivate(const QString& name) : + m_name(name), + m_isNull(false), m_default(false) + {} + ~QPrinterInfoPrivate() + {} QString m_name; - bool m_default; bool m_isNull; + bool m_default; }; static QPrinterInfoPrivate nullQPrinterInfoPrivate; @@ -139,7 +141,6 @@ QPrinterInfo::QPrinterInfo() QPrinterInfo::QPrinterInfo(const QString& name) : d_ptr(new QPrinterInfoPrivate(name)) { - d_ptr->q_ptr = this; } QPrinterInfo::QPrinterInfo(const QPrinterInfo& src) @@ -152,7 +153,6 @@ QPrinterInfo& QPrinterInfo::operator=(const QPrinterInfo& src) { Q_ASSERT(d_ptr); d_ptr.reset(new QPrinterInfoPrivate(*src.d_ptr)); - d_ptr->q_ptr = this; return *this; } @@ -210,28 +210,6 @@ QList QPrinterInfo::supportedPaperSizes() const return paperList; } -///////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////// - -QPrinterInfoPrivate::QPrinterInfoPrivate() : - q_ptr(NULL), - m_default(false), - m_isNull(true) -{ -} - -QPrinterInfoPrivate::QPrinterInfoPrivate(const QString& name) : - q_ptr(NULL), - m_name(name), - m_default(false), - m_isNull(false) -{ -} - -QPrinterInfoPrivate::~QPrinterInfoPrivate() -{ -} - #endif // QT_NO_PRINTER QT_END_NAMESPACE diff --git a/src/gui/painting/qprinterinfo_unix.cpp b/src/gui/painting/qprinterinfo_unix.cpp index 0d4cc16..eb16a1b 100644 --- a/src/gui/painting/qprinterinfo_unix.cpp +++ b/src/gui/painting/qprinterinfo_unix.cpp @@ -124,21 +124,26 @@ static inline const char *paperSize2String(QPrinter::PaperSize size) class QPrinterInfoPrivate { -Q_DECLARE_PUBLIC(QPrinterInfo) public: - QPrinterInfoPrivate(); - QPrinterInfoPrivate(const QString& name); - ~QPrinterInfoPrivate(); + QPrinterInfoPrivate() : + m_isNull(true), m_default(false), + m_mustGetPaperSizes(true), m_cupsPrinterIndex(0) + {} + QPrinterInfoPrivate(const QString& name) : + m_name(name), + m_isNull(false), m_default(false), + m_mustGetPaperSizes(true), m_cupsPrinterIndex(0) + {} + ~QPrinterInfoPrivate() + {} -private: QString m_name; bool m_isNull; bool m_default; + mutable bool m_mustGetPaperSizes; mutable QList m_paperSizes; int m_cupsPrinterIndex; - - QPrinterInfo* q_ptr; }; static QPrinterInfoPrivate nullQPrinterInfoPrivate; @@ -946,7 +951,6 @@ QPrinterInfo::QPrinterInfo(const QPrinter& printer) { Q_D(QPrinterInfo); - d->q_ptr = this; #if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) QCUPSSupport cups; @@ -990,7 +994,6 @@ QPrinterInfo::QPrinterInfo(const QPrinter& printer) QPrinterInfo::QPrinterInfo(const QString& name) : d_ptr(new QPrinterInfoPrivate(name)) { - d_ptr->q_ptr = this; } QPrinterInfo::~QPrinterInfo() @@ -1001,7 +1004,6 @@ QPrinterInfo& QPrinterInfo::operator=(const QPrinterInfo& src) { Q_ASSERT(d_ptr); d_ptr.reset(new QPrinterInfoPrivate(*src.d_ptr)); - d_ptr->q_ptr = this; return *this; } @@ -1046,32 +1048,6 @@ QList< QPrinter::PaperSize> QPrinterInfo::supportedPaperSizes() const return d->m_paperSizes; } -///////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////// - -QPrinterInfoPrivate::QPrinterInfoPrivate() -{ - m_isNull = true; - m_default = false; - m_mustGetPaperSizes = true; - m_cupsPrinterIndex = 0; - q_ptr = 0; -} - -QPrinterInfoPrivate::QPrinterInfoPrivate(const QString& name) -{ - m_name = name; - m_isNull = false; - m_default = false; - m_mustGetPaperSizes = true; - m_cupsPrinterIndex = 0; - q_ptr = 0; -} - -QPrinterInfoPrivate::~QPrinterInfoPrivate() -{ -} - #endif // QT_NO_PRINTER QT_END_NAMESPACE diff --git a/src/gui/painting/qprinterinfo_win.cpp b/src/gui/painting/qprinterinfo_win.cpp index caada1f..808de2c 100644 --- a/src/gui/painting/qprinterinfo_win.cpp +++ b/src/gui/painting/qprinterinfo_win.cpp @@ -53,18 +53,20 @@ extern QPrinter::PaperSize mapDevmodePaperSize(int s); class QPrinterInfoPrivate { -Q_DECLARE_PUBLIC(QPrinterInfo) public: - ~QPrinterInfoPrivate(); - QPrinterInfoPrivate(); - QPrinterInfoPrivate(const QString& name); + QPrinterInfoPrivate() : + m_isNull(true), m_default(false) + {} + QPrinterInfoPrivate(const QString& name) : + m_name(name), + m_isNull(false), m_default(false) + {} + ~QPrinterInfoPrivate() + {} -private: QString m_name; - bool m_default; bool m_isNull; - - QPrinterInfo* q_ptr; + bool m_default; }; static QPrinterInfoPrivate nullQPrinterInfoPrivate; @@ -142,7 +144,6 @@ QPrinterInfo::QPrinterInfo() QPrinterInfo::QPrinterInfo(const QString& name) : d_ptr(new QPrinterInfoPrivate(name)) { - d_ptr->q_ptr = this; } QPrinterInfo::QPrinterInfo(const QPrinterInfo& src) @@ -173,7 +174,6 @@ QPrinterInfo& QPrinterInfo::operator=(const QPrinterInfo& src) { Q_ASSERT(d_ptr); d_ptr.reset(new QPrinterInfoPrivate(*src.d_ptr)); - d_ptr->q_ptr = this; return *this; } @@ -218,28 +218,6 @@ QList QPrinterInfo::supportedPaperSizes() const return paperList; } -///////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////// - -QPrinterInfoPrivate::QPrinterInfoPrivate() : - m_default(false), - m_isNull(true), - q_ptr(NULL) -{ -} - -QPrinterInfoPrivate::QPrinterInfoPrivate(const QString& name) : - m_name(name), - m_default(false), - m_isNull(false), - q_ptr(NULL) -{ -} - -QPrinterInfoPrivate::~QPrinterInfoPrivate() -{ -} - #endif // QT_NO_PRINTER QT_END_NAMESPACE -- cgit v0.12 From 2cf77579cf41594e036beeacf3dc3b6aa9f05cfa Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 1 Dec 2010 12:31:19 +0300 Subject: refactoring of QPrinterInfo move QPrinterInfoPrivate to it's own header file; rename qprinterinfo.qdoc to qprinterinfo.cpp to make it consistent with others; squash the duplicated code into qprinterinfo.cpp; avoid extra d_ptr assignments in the QPrinterInfo copying c-tor; simplify the QPrinterInfo from QPrinter c-tor code; fix styling and few method param names; remove the `m_` prefix of QPrinterInfoPrivate's members (as they are members of a private class anyway ;P) remove the boilerplates Merge-request: 2516 Signed-off-by: axis --- src/gui/painting/painting.pri | 2 + src/gui/painting/qprinterinfo.cpp | 173 +++++++++++++++++++++++++++++++++ src/gui/painting/qprinterinfo.h | 15 +-- src/gui/painting/qprinterinfo.qdoc | 125 ------------------------ src/gui/painting/qprinterinfo_mac.cpp | 100 +------------------ src/gui/painting/qprinterinfo_p.h | 108 ++++++++++++++++++++ src/gui/painting/qprinterinfo_unix.cpp | 159 +++--------------------------- src/gui/painting/qprinterinfo_win.cpp | 106 ++------------------ 8 files changed, 317 insertions(+), 471 deletions(-) create mode 100644 src/gui/painting/qprinterinfo.cpp delete mode 100644 src/gui/painting/qprinterinfo.qdoc create mode 100644 src/gui/painting/qprinterinfo_p.h diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri index 099619c..51f2538 100644 --- a/src/gui/painting/painting.pri +++ b/src/gui/painting/painting.pri @@ -34,6 +34,7 @@ HEADERS += \ painting/qprinter.h \ painting/qprinter_p.h \ painting/qprinterinfo.h \ + painting/qprinterinfo_p.h \ painting/qrasterizer_p.h \ painting/qregion.h \ painting/qstroker_p.h \ @@ -73,6 +74,7 @@ SOURCES += \ painting/qprintengine_pdf.cpp \ painting/qprintengine_ps.cpp \ painting/qprinter.cpp \ + painting/qprinterinfo.cpp \ painting/qrasterizer.cpp \ painting/qregion.cpp \ painting/qstroker.cpp \ diff --git a/src/gui/painting/qprinterinfo.cpp b/src/gui/painting/qprinterinfo.cpp new file mode 100644 index 0000000..21d56f3 --- /dev/null +++ b/src/gui/painting/qprinterinfo.cpp @@ -0,0 +1,173 @@ +/**************************************************************************** +** +** 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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of this +** file. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qprinterinfo.h" +#include "qprinterinfo_p.h" + +#ifndef QT_NO_PRINTER + +QT_BEGIN_NAMESPACE + +QPrinterInfoPrivate QPrinterInfoPrivate::shared_null; + + +/*! + \class QPrinterInfo + + \brief The QPrinterInfo class gives access to information about + existing printers. + + \ingroup printing + + Use the static functions to generate a list of QPrinterInfo + objects. Each QPrinterInfo object in the list represents a single + printer and can be queried for name, supported paper sizes, and + whether or not it is the default printer. + + \since 4.4 +*/ + +/*! + \fn QList QPrinterInfo::availablePrinters() + + Returns a list of available printers on the system. +*/ + +/*! + \fn QPrinterInfo QPrinterInfo::defaultPrinter() + + Returns the default printer on the system. + + The return value should be checked using isNull() before being + used, in case there is no default printer. + + \sa isNull() +*/ + +/*! + Constructs an empty QPrinterInfo object. + + \sa isNull() +*/ +QPrinterInfo::QPrinterInfo() + : d_ptr(&QPrinterInfoPrivate::shared_null) +{ +} + +/*! + Constructs a copy of \a other. +*/ +QPrinterInfo::QPrinterInfo(const QPrinterInfo &other) + : d_ptr(new QPrinterInfoPrivate(*other.d_ptr)) +{ +} + +/*! + Constructs a QPrinterInfo object from \a printer. +*/ +QPrinterInfo::QPrinterInfo(const QPrinter &printer) + : d_ptr(&QPrinterInfoPrivate::shared_null) +{ + foreach (const QPrinterInfo &printerInfo, availablePrinters()) { + if (printerInfo.printerName() == printer.printerName()) { + d_ptr.reset(new QPrinterInfoPrivate(*printerInfo.d_ptr)); + break; + } + } +} + +/*! + \internal +*/ +QPrinterInfo::QPrinterInfo(const QString &name) + : d_ptr(new QPrinterInfoPrivate(name)) +{ +} + +/*! + Destroys the QPrinterInfo object. References to the values in the + object become invalid. +*/ +QPrinterInfo::~QPrinterInfo() +{ +} + +/*! + Sets the QPrinterInfo object to be equal to \a other. +*/ +QPrinterInfo &QPrinterInfo::operator=(const QPrinterInfo &other) +{ + Q_ASSERT(d_ptr); + d_ptr.reset(new QPrinterInfoPrivate(*other.d_ptr)); + return *this; +} + +/*! + Returns the name of the printer. + + \sa QPrinter::setPrinterName() +*/ +QString QPrinterInfo::printerName() const +{ + const Q_D(QPrinterInfo); + return d->name; +} + +/*! + Returns whether this QPrinterInfo object holds a printer definition. + + An empty QPrinterInfo object could result for example from calling + defaultPrinter() when there are no printers on the system. +*/ +bool QPrinterInfo::isNull() const +{ + const Q_D(QPrinterInfo); + return d->isNull; +} + +/*! + Returns whether this printer is the default printer. +*/ +bool QPrinterInfo::isDefault() const +{ + const Q_D(QPrinterInfo); + return d->isDefault; +} + +/*! + \fn QList< QPrinter::PaperSize> QPrinterInfo::supportedPaperSizes() const + \since 4.4 + + Returns a list of supported paper sizes by the printer. + + Not all printer drivers support this query, so the list may be empty. + On Mac OS X 10.3, this function always returns an empty list. +*/ + +QT_END_NAMESPACE + +#endif // QT_NO_PRINTER diff --git a/src/gui/painting/qprinterinfo.h b/src/gui/painting/qprinterinfo.h index 063c6b9..c8c9534 100644 --- a/src/gui/painting/qprinterinfo.h +++ b/src/gui/painting/qprinterinfo.h @@ -42,9 +42,10 @@ #ifndef QPRINTERINFO_H #define QPRINTERINFO_H -#include #include +#include + QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -56,15 +57,13 @@ class QPrinterInfoPrivate; class QPrinterInfoPrivateDeleter; class Q_GUI_EXPORT QPrinterInfo { -Q_DECLARE_PRIVATE(QPrinterInfo) - public: QPrinterInfo(); - QPrinterInfo(const QPrinterInfo& src); - QPrinterInfo(const QPrinter& printer); + QPrinterInfo(const QPrinterInfo &other); + QPrinterInfo(const QPrinter &printer); ~QPrinterInfo(); - QPrinterInfo& operator=(const QPrinterInfo& src); + QPrinterInfo &operator=(const QPrinterInfo &other); QString printerName() const; bool isNull() const; @@ -75,8 +74,10 @@ public: static QPrinterInfo defaultPrinter(); private: - QPrinterInfo(const QString& name); + QPrinterInfo(const QString &name); +private: + Q_DECLARE_PRIVATE(QPrinterInfo) QScopedPointer d_ptr; }; diff --git a/src/gui/painting/qprinterinfo.qdoc b/src/gui/painting/qprinterinfo.qdoc deleted file mode 100644 index 9193213..0000000 --- a/src/gui/painting/qprinterinfo.qdoc +++ /dev/null @@ -1,125 +0,0 @@ -/**************************************************************************** -** -** 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 documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** 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 Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of this -** file. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \class QPrinterInfo - - \brief The QPrinterInfo class gives access to information about - existing printers. - - \ingroup printing - - Use the static functions to generate a list of QPrinterInfo - objects. Each QPrinterInfo object in the list represents a single - printer and can be queried for name, supported paper sizes, and - whether or not it is the default printer. - - \since 4.4 -*/ - -/*! - \fn QList QPrinterInfo::availablePrinters() - - Returns a list of available printers on the system. -*/ - -/*! - \fn QPrinterInfo QPrinterInfo::defaultPrinter() - - Returns the default printer on the system. - - The return value should be checked using isNull() before being - used, in case there is no default printer. - - \sa isNull() -*/ - -/*! - \fn QPrinterInfo::QPrinterInfo() - - Constructs an empty QPrinterInfo object. - - \sa isNull() -*/ - -/*! - \fn QPrinterInfo::QPrinterInfo(const QPrinterInfo& src) - - Constructs a copy of \a src. -*/ - -/*! - \fn QPrinterInfo::QPrinterInfo(const QPrinter& printer) - - Constructs a QPrinterInfo object from \a printer. -*/ - -/*! - \fn QPrinterInfo::~QPrinterInfo() - - Destroys the QPrinterInfo object. References to the values in the - object become invalid. -*/ - -/*! - \fn QPrinterInfo& QPrinterInfo::operator=(const QPrinterInfo& src) - - Sets the QPrinterInfo object to be equal to \a src. -*/ - -/*! - \fn QString QPrinterInfo::printerName() const - - Returns the name of the printer. - - \sa QPrinter::setPrinterName() -*/ - -/*! - \fn bool QPrinterInfo::isNull() const - - Returns whether this QPrinterInfo object holds a printer definition. - - An empty QPrinterInfo object could result for example from calling - defaultPrinter() when there are no printers on the system. -*/ - -/*! - \fn bool QPrinterInfo::isDefault() const - - Returns whether this printer is the default printer. -*/ - -/*! - \fn QList< QPrinter::PaperSize> QPrinterInfo::supportedPaperSizes() const - \since 4.4 - - Returns a list of supported paper sizes by the printer. - - Not all printer drivers support this query, so the list may be empty. - On Mac OS X 10.3, this function always returns an empty list. -*/ diff --git a/src/gui/painting/qprinterinfo_mac.cpp b/src/gui/painting/qprinterinfo_mac.cpp index 6a48c91..9d0e886 100644 --- a/src/gui/painting/qprinterinfo_mac.cpp +++ b/src/gui/painting/qprinterinfo_mac.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "qprinterinfo.h" +#include "qprinterinfo_p.h" #include "private/qt_mac_p.h" @@ -47,40 +48,7 @@ QT_BEGIN_NAMESPACE #ifndef QT_NO_PRINTER -class QPrinterInfoPrivate -{ -public: - QPrinterInfoPrivate() : - m_isNull(true), m_default(false) - {} - QPrinterInfoPrivate(const QString& name) : - m_name(name), - m_isNull(false), m_default(false) - {} - ~QPrinterInfoPrivate() - {} - - QString m_name; - bool m_isNull; - bool m_default; -}; - -static QPrinterInfoPrivate nullQPrinterInfoPrivate; - -class QPrinterInfoPrivateDeleter -{ -public: - static inline void cleanup(QPrinterInfoPrivate *d) - { - if (d != &nullQPrinterInfoPrivate) - delete d; - } -}; - -extern QPrinter::PaperSize qSizeFTopaperSize(const QSizeF& size); - -///////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////// +extern QPrinter::PaperSize qSizeFTopaperSize(const QSizeF &size); QList QPrinterInfo::availablePrinters() { @@ -96,7 +64,7 @@ QList QPrinterInfo::availablePrinters() QString name = QCFString::toQString(PMPrinterGetName(printer)); printers.append(QPrinterInfo(name)); if (PMPrinterIsDefault(printer)) { - printers[i].d_ptr->m_default = true; + printers[i].d_ptr->isDefault = true; } } } @@ -114,71 +82,11 @@ QPrinterInfo QPrinterInfo::defaultPrinter(){ return QPrinterInfo(); } -///////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////// - -QPrinterInfo::QPrinterInfo(const QPrinter& prn) - : d_ptr(&nullQPrinterInfoPrivate) -{ - QList list = availablePrinters(); - for (int c = 0; c < list.size(); ++c) { - if (prn.printerName() == list[c].printerName()) { - *this = list[c]; - return; - } - } -} - -QPrinterInfo::~QPrinterInfo() -{ -} - -QPrinterInfo::QPrinterInfo() - : d_ptr(&nullQPrinterInfoPrivate) -{ -} - -QPrinterInfo::QPrinterInfo(const QString& name) - : d_ptr(new QPrinterInfoPrivate(name)) -{ -} - -QPrinterInfo::QPrinterInfo(const QPrinterInfo& src) - : d_ptr(&nullQPrinterInfoPrivate) -{ - *this = src; -} - -QPrinterInfo& QPrinterInfo::operator=(const QPrinterInfo& src) -{ - Q_ASSERT(d_ptr); - d_ptr.reset(new QPrinterInfoPrivate(*src.d_ptr)); - return *this; -} - -QString QPrinterInfo::printerName() const -{ - const Q_D(QPrinterInfo); - return d->m_name; -} - -bool QPrinterInfo::isNull() const -{ - const Q_D(QPrinterInfo); - return d->m_isNull; -} - -bool QPrinterInfo::isDefault() const -{ - const Q_D(QPrinterInfo); - return d->m_default; -} - QList QPrinterInfo::supportedPaperSizes() const { const Q_D(QPrinterInfo); - PMPrinter cfPrn = PMPrinterCreateFromPrinterID(QCFString::toCFStringRef(d->m_name)); + PMPrinter cfPrn = PMPrinterCreateFromPrinterID(QCFString::toCFStringRef(d->name)); if (!cfPrn) return QList(); diff --git a/src/gui/painting/qprinterinfo_p.h b/src/gui/painting/qprinterinfo_p.h new file mode 100644 index 0000000..f5981d4 --- /dev/null +++ b/src/gui/painting/qprinterinfo_p.h @@ -0,0 +1,108 @@ +/**************************************************************************** +** +** 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 QtGui 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$ +** +****************************************************************************/ + +#ifndef QPRINTERINFO_P_H +#define QPRINTERINFO_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "QtCore/qglobal.h" + +#ifndef QT_NO_PRINTER + +#include "QtCore/qlist.h" + +QT_BEGIN_NAMESPACE + +class QPrinterInfoPrivate +{ +public: + QPrinterInfoPrivate(const QString& name = QString()) : + name(name), isNull(false), isDefault(false) +#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(Q_OS_SYMBIAN)) || defined(Q_WS_QPA) +#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) + , cupsPrinterIndex(0), hasPaperSizes(false) +#endif +#endif + {} + ~QPrinterInfoPrivate() + {} + + static QPrinterInfoPrivate shared_null; + + QString name; + bool isNull; + bool isDefault; + +#if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(Q_OS_SYMBIAN)) || defined(Q_WS_QPA) +#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) + int cupsPrinterIndex; + mutable bool hasPaperSizes; + mutable QList paperSizes; +#endif +#endif +}; + + +class QPrinterInfoPrivateDeleter +{ +public: + static inline void cleanup(QPrinterInfoPrivate *d) + { + if (d != &QPrinterInfoPrivate::shared_null) + delete d; + } +}; + +QT_END_NAMESPACE + +#endif // QT_NO_PRINTER + +#endif // QPRINTERINFO_P_H diff --git a/src/gui/painting/qprinterinfo_unix.cpp b/src/gui/painting/qprinterinfo_unix.cpp index eb16a1b..c30fcb4 100644 --- a/src/gui/painting/qprinterinfo_unix.cpp +++ b/src/gui/painting/qprinterinfo_unix.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "qprinterinfo.h" +#include "qprinterinfo_p.h" #include #include @@ -121,46 +122,6 @@ static inline const char *paperSize2String(QPrinter::PaperSize size) } #endif - -class QPrinterInfoPrivate -{ -public: - QPrinterInfoPrivate() : - m_isNull(true), m_default(false), - m_mustGetPaperSizes(true), m_cupsPrinterIndex(0) - {} - QPrinterInfoPrivate(const QString& name) : - m_name(name), - m_isNull(false), m_default(false), - m_mustGetPaperSizes(true), m_cupsPrinterIndex(0) - {} - ~QPrinterInfoPrivate() - {} - - QString m_name; - bool m_isNull; - bool m_default; - - mutable bool m_mustGetPaperSizes; - mutable QList m_paperSizes; - int m_cupsPrinterIndex; -}; - -static QPrinterInfoPrivate nullQPrinterInfoPrivate; - -class QPrinterInfoPrivateDeleter -{ -public: - static inline void cleanup(QPrinterInfoPrivate *d) - { - if (d != &nullQPrinterInfoPrivate) - delete d; - } -}; - -///////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////// - void qt_perhapsAddPrinter(QList *printers, const QString &name, QString host, QString comment, QStringList aliases) @@ -891,9 +852,8 @@ QList QPrinterInfo::availablePrinters() QList list; #if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) - QCUPSSupport cups; if (QCUPSSupport::isAvailable()) { - //const ppd_file_t* cupsPPD = cups.currentPPD(); + QCUPSSupport cups; int cupsPrinterCount = cups.availablePrintersCount(); const cups_dest_t* cupsPrinters = cups.availablePrinters(); @@ -903,8 +863,8 @@ QList QPrinterInfo::availablePrinters() printerName += QLatin1Char('/') + QString::fromLocal8Bit(cupsPrinters[i].instance); list.append(QPrinterInfo(printerName)); if (cupsPrinters[i].is_default) - list[i].d_ptr->m_default = true; - list[i].d_ptr->m_cupsPrinterIndex = i; + list[i].d_ptr->isDefault = true; + list[i].d_ptr->cupsPrinterIndex = i; } } else { #endif @@ -916,7 +876,7 @@ QList QPrinterInfo::availablePrinters() list.append(QPrinterInfo((*i).name)); } if (defprn >= 0 && defprn < lprPrinters.size()) { - list[defprn].d_ptr->m_default = true; + list[defprn].d_ptr->isDefault = true; } #if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) } @@ -935,117 +895,30 @@ QPrinterInfo QPrinterInfo::defaultPrinter() return (prnList.size() > 0) ? prnList[0] : QPrinterInfo(); } -QPrinterInfo::QPrinterInfo() - : d_ptr(&nullQPrinterInfoPrivate) +QList QPrinterInfo::supportedPaperSizes() const { -} - -QPrinterInfo::QPrinterInfo(const QPrinterInfo& src) - : d_ptr(&nullQPrinterInfoPrivate) -{ - *this = src; -} - -QPrinterInfo::QPrinterInfo(const QPrinter& printer) - : d_ptr(new QPrinterInfoPrivate(printer.printerName())) -{ - - Q_D(QPrinterInfo); - -#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) - QCUPSSupport cups; - if (QCUPSSupport::isAvailable()) { - int cupsPrinterCount = cups.availablePrintersCount(); - const cups_dest_t* cupsPrinters = cups.availablePrinters(); - - for (int i = 0; i < cupsPrinterCount; ++i) { - QString printerName(QString::fromLocal8Bit(cupsPrinters[i].name)); - if (cupsPrinters[i].instance) - printerName += QLatin1Char('/') + QString::fromLocal8Bit(cupsPrinters[i].instance); - if (printerName == printer.printerName()) { - if (cupsPrinters[i].is_default) - d->m_default = true; - d->m_cupsPrinterIndex = i; - return; - } - } - } else { -#endif - QList lprPrinters; - int defprn = qt_getLprPrinters(lprPrinters); - // populating printer combo - QList::const_iterator i = lprPrinters.constBegin(); - int c; - for(c = 0; i != lprPrinters.constEnd(); ++i, ++c) { - if (i->name == printer.printerName()) { - if (defprn == c) - d->m_default = true; - return; - } - } #if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) - } -#endif - - // Printer not found. - d_ptr.reset(&nullQPrinterInfoPrivate); -} - -QPrinterInfo::QPrinterInfo(const QString& name) - : d_ptr(new QPrinterInfoPrivate(name)) -{ -} - -QPrinterInfo::~QPrinterInfo() -{ -} - -QPrinterInfo& QPrinterInfo::operator=(const QPrinterInfo& src) -{ - Q_ASSERT(d_ptr); - d_ptr.reset(new QPrinterInfoPrivate(*src.d_ptr)); - return *this; -} - -QString QPrinterInfo::printerName() const -{ const Q_D(QPrinterInfo); - return d->m_name; -} - -bool QPrinterInfo::isNull() const -{ - const Q_D(QPrinterInfo); - return d->m_isNull; -} - -bool QPrinterInfo::isDefault() const -{ - const Q_D(QPrinterInfo); - return d->m_default; -} -QList< QPrinter::PaperSize> QPrinterInfo::supportedPaperSizes() const -{ - const Q_D(QPrinterInfo); - if (d->m_mustGetPaperSizes) { - d->m_mustGetPaperSizes = false; + if (!d->hasPaperSizes) { + d->hasPaperSizes = true; -#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) - QCUPSSupport cups; if (QCUPSSupport::isAvailable()) { // Find paper sizes from CUPS. - cups.setCurrentPrinter(d->m_cupsPrinterIndex); + QCUPSSupport cups; + cups.setCurrentPrinter(d->cupsPrinterIndex); const ppd_option_t* sizes = cups.pageSizes(); if (sizes) { for (int j = 0; j < sizes->num_choices; ++j) - d->m_paperSizes.append(string2PaperSize(sizes->choices[j].choice)); + d->paperSizes.append(string2PaperSize(sizes->choices[j].choice)); } } -#endif - } - return d->m_paperSizes; + + return d->paperSizes; +#else + return QList(); +#endif } #endif // QT_NO_PRINTER diff --git a/src/gui/painting/qprinterinfo_win.cpp b/src/gui/painting/qprinterinfo_win.cpp index 808de2c..962aa2d 100644 --- a/src/gui/painting/qprinterinfo_win.cpp +++ b/src/gui/painting/qprinterinfo_win.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "qprinterinfo.h" +#include "qprinterinfo_p.h" #include @@ -51,39 +52,6 @@ QT_BEGIN_NAMESPACE extern QPrinter::PaperSize mapDevmodePaperSize(int s); -class QPrinterInfoPrivate -{ -public: - QPrinterInfoPrivate() : - m_isNull(true), m_default(false) - {} - QPrinterInfoPrivate(const QString& name) : - m_name(name), - m_isNull(false), m_default(false) - {} - ~QPrinterInfoPrivate() - {} - - QString m_name; - bool m_isNull; - bool m_default; -}; - -static QPrinterInfoPrivate nullQPrinterInfoPrivate; - -class QPrinterInfoPrivateDeleter -{ -public: - static inline void cleanup(QPrinterInfoPrivate *d) - { - if (d != &nullQPrinterInfoPrivate) - delete d; - } -}; - -///////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////// - QList QPrinterInfo::availablePrinters() { QList printers; @@ -105,7 +73,7 @@ QList QPrinterInfo::availablePrinters() for (uint i = 0; i < returned; ++i) { printers.append(QPrinterInfo(QString::fromWCharArray(infoList[i].pPrinterName))); if (printers.at(i).printerName() == defPrn.printerName()) - printers[i].d_ptr->m_default = true; + printers[i].d_ptr->isDefault = true; } delete [] buffer; } @@ -127,86 +95,24 @@ QPrinterInfo QPrinterInfo::defaultPrinter() QString printerName = noConfiguredPrinters ? QString() : info.at(0); QPrinterInfo prn(printerName); - prn.d_ptr->m_default = true; + prn.d_ptr->isDefault = true; if (noConfiguredPrinters) - prn.d_ptr->m_isNull = true; + prn.d_ptr->isNull = true; return prn; } -///////////////////////////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////////////////// - -QPrinterInfo::QPrinterInfo() - : d_ptr(&nullQPrinterInfoPrivate) -{ -} - -QPrinterInfo::QPrinterInfo(const QString& name) - : d_ptr(new QPrinterInfoPrivate(name)) -{ -} - -QPrinterInfo::QPrinterInfo(const QPrinterInfo& src) - : d_ptr(&nullQPrinterInfoPrivate) -{ - *this = src; -} - -QPrinterInfo::QPrinterInfo(const QPrinter& prn) - : d_ptr(&nullQPrinterInfoPrivate) -{ - QList list = availablePrinters(); - for (int c = 0; c < list.size(); ++c) { - if (prn.printerName() == list[c].printerName()) { - *this = list[c]; - return; - } - } - - *this = QPrinterInfo(); -} - -QPrinterInfo::~QPrinterInfo() -{ -} - -QPrinterInfo& QPrinterInfo::operator=(const QPrinterInfo& src) -{ - Q_ASSERT(d_ptr); - d_ptr.reset(new QPrinterInfoPrivate(*src.d_ptr)); - return *this; -} - -QString QPrinterInfo::printerName() const -{ - const Q_D(QPrinterInfo); - return d->m_name; -} - -bool QPrinterInfo::isNull() const -{ - const Q_D(QPrinterInfo); - return d->m_isNull; -} - -bool QPrinterInfo::isDefault() const -{ - const Q_D(QPrinterInfo); - return d->m_default; -} - QList QPrinterInfo::supportedPaperSizes() const { const Q_D(QPrinterInfo); QList paperList; - DWORD size = DeviceCapabilities(reinterpret_cast(d->m_name.utf16()), + DWORD size = DeviceCapabilities(reinterpret_cast(d->name.utf16()), NULL, DC_PAPERS, NULL, NULL); if ((int)size == -1) return paperList; wchar_t *papers = new wchar_t[size]; - size = DeviceCapabilities(reinterpret_cast(d->m_name.utf16()), + size = DeviceCapabilities(reinterpret_cast(d->name.utf16()), NULL, DC_PAPERS, papers, NULL); for (int c = 0; c < (int)size; ++c) { -- cgit v0.12 From 70fd5a220d966279eb66df08ad69539bb26d59cd Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 1 Dec 2010 12:54:52 +0300 Subject: micro-optimizations, clean-ups and styling fixes Merge-request: 2516 Signed-off-by: axis --- src/gui/painting/qprinterinfo_mac.cpp | 67 ++++++++++++++++----------------- src/gui/painting/qprinterinfo_unix.cpp | 46 +++++++++++------------ src/gui/painting/qprinterinfo_win.cpp | 68 +++++++++++++++------------------- 3 files changed, 83 insertions(+), 98 deletions(-) diff --git a/src/gui/painting/qprinterinfo_mac.cpp b/src/gui/painting/qprinterinfo_mac.cpp index 9d0e886..8d41217 100644 --- a/src/gui/painting/qprinterinfo_mac.cpp +++ b/src/gui/painting/qprinterinfo_mac.cpp @@ -54,68 +54,63 @@ QList QPrinterInfo::availablePrinters() { QList printers; - OSStatus status = noErr; - QCFType printerList; - status = PMServerCreatePrinterList(kPMServerLocal, &printerList); - if (status == noErr) { - CFIndex count = CFArrayGetCount(printerList); - for (CFIndex i=0; i(const_cast(CFArrayGetValueAtIndex(printerList, i))); - QString name = QCFString::toQString(PMPrinterGetName(printer)); - printers.append(QPrinterInfo(name)); - if (PMPrinterIsDefault(printer)) { - printers[i].d_ptr->isDefault = true; - } + QCFType array; + if (PMServerCreatePrinterList(kPMServerLocal, &array) == noErr) { + CFIndex count = CFArrayGetCount(array); + for (int i = 0; i < count; ++i) { + PMPrinter printer = static_cast(const_cast(CFArrayGetValueAtIndex(array, i))); + QString printerName = QCFString::toQString(PMPrinterGetName(printer)); + + QPrinterInfo printerInfo(printerName); + if (PMPrinterIsDefault(printer)) + printerInfo.d_ptr->isDefault = true; + printers.append(printerInfo); } } return printers; } -QPrinterInfo QPrinterInfo::defaultPrinter(){ +QPrinterInfo QPrinterInfo::defaultPrinter() +{ QList printers = availablePrinters(); - for (int c = 0; c < printers.size(); ++c) { - if (printers[c].isDefault()) { - return printers[c]; - } + foreach (const QPrinterInfo &printerInfo, printers) { + if (printerInfo.isDefault()) + return printerInfo; } - return QPrinterInfo(); + + return printers.value(0); } QList QPrinterInfo::supportedPaperSizes() const { const Q_D(QPrinterInfo); - PMPrinter cfPrn = PMPrinterCreateFromPrinterID(QCFString::toCFStringRef(d->name)); + QList paperSizes; - if (!cfPrn) return QList(); + PMPrinter cfPrn = PMPrinterCreateFromPrinterID(QCFString::toCFStringRef(d->name)); + if (!cfPrn) + return paperSizes; CFArrayRef array; - OSStatus status = PMPrinterGetPaperList(cfPrn, &array); - - if (status != 0) { + if (PMPrinterGetPaperList(cfPrn, &array) != noErr) { PMRelease(cfPrn); - return QList(); + return paperSizes; } - QList paperList; int count = CFArrayGetCount(array); - for (int c = 0; c < count; c++) { - PMPaper paper = static_cast( - const_cast( - CFArrayGetValueAtIndex(array, c))); + for (int i = 0; i < count; ++i) { + PMPaper paper = static_cast(const_cast(CFArrayGetValueAtIndex(array, i))); double width, height; - status = PMPaperGetWidth(paper, &width); - status |= PMPaperGetHeight(paper, &height); - if (status != 0) continue; - - QSizeF size(width * 0.3527, height * 0.3527); - paperList.append(qSizeFTopaperSize(size)); + if (PMPaperGetWidth(paper, &width) == noErr && PMPaperGetHeight(paper, &height) == noErr) { + QSizeF size(width * 0.3527, height * 0.3527); + paperSizes.append(qSizeFTopaperSize(size)); + } } PMRelease(cfPrn); - return paperList; + return paperSizes; } #endif // QT_NO_PRINTER diff --git a/src/gui/painting/qprinterinfo_unix.cpp b/src/gui/painting/qprinterinfo_unix.cpp index c30fcb4..be24bd7 100644 --- a/src/gui/painting/qprinterinfo_unix.cpp +++ b/src/gui/painting/qprinterinfo_unix.cpp @@ -809,12 +809,12 @@ int qt_getLprPrinters(QList& printers) #endif } + QRegExp ps(QLatin1String("[^a-z]ps(?:[^a-z]|$)")); + QRegExp lp(QLatin1String("[^a-z]lp(?:[^a-z]|$)")); + int quality = 0; int best = 0; for (int i = 0; i < printers.size(); ++i) { - QRegExp ps(QLatin1String("[^a-z]ps(?:[^a-z]|$)")); - QRegExp lp(QLatin1String("[^a-z]lp(?:[^a-z]|$)")); - QString name = printers.at(i).name; QString comment = printers.at(i).comment; if (quality < 5 && name == dollarPrinter) { @@ -849,50 +849,48 @@ int qt_getLprPrinters(QList& printers) QList QPrinterInfo::availablePrinters() { - QList list; + QList printers; #if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) if (QCUPSSupport::isAvailable()) { QCUPSSupport cups; int cupsPrinterCount = cups.availablePrintersCount(); const cups_dest_t* cupsPrinters = cups.availablePrinters(); - for (int i = 0; i < cupsPrinterCount; ++i) { QString printerName(QString::fromLocal8Bit(cupsPrinters[i].name)); if (cupsPrinters[i].instance) printerName += QLatin1Char('/') + QString::fromLocal8Bit(cupsPrinters[i].instance); - list.append(QPrinterInfo(printerName)); + + QPrinterInfo printerInfo(printerName); if (cupsPrinters[i].is_default) - list[i].d_ptr->isDefault = true; - list[i].d_ptr->cupsPrinterIndex = i; + printerInfo.d_ptr->isDefault = true; + printerInfo.d_ptr->cupsPrinterIndex = i; + printers.append(printerInfo); } - } else { + } else #endif + { QList lprPrinters; int defprn = qt_getLprPrinters(lprPrinters); // populating printer combo - QList::const_iterator i = lprPrinters.constBegin(); - for(; i != lprPrinters.constEnd(); ++i) { - list.append(QPrinterInfo((*i).name)); - } - if (defprn >= 0 && defprn < lprPrinters.size()) { - list[defprn].d_ptr->isDefault = true; - } -#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) + foreach (const QPrinterDescription &description, lprPrinters) + printers.append(QPrinterInfo(description.name)); + if (defprn >= 0 && defprn < printers.size()) + printers[defprn].d_ptr->isDefault = true; } -#endif - return list; + return printers; } QPrinterInfo QPrinterInfo::defaultPrinter() { - QList prnList = availablePrinters(); - for (int i = 0; i < prnList.size(); ++i) { - if (prnList[i].isDefault()) - return prnList[i]; + QList printers = availablePrinters(); + foreach (const QPrinterInfo &printerInfo, printers) { + if (printerInfo.isDefault()) + return printerInfo; } - return (prnList.size() > 0) ? prnList[0] : QPrinterInfo(); + + return printers.value(0); } QList QPrinterInfo::supportedPaperSizes() const diff --git a/src/gui/painting/qprinterinfo_win.cpp b/src/gui/painting/qprinterinfo_win.cpp index 962aa2d..6adf5a4 100644 --- a/src/gui/painting/qprinterinfo_win.cpp +++ b/src/gui/painting/qprinterinfo_win.cpp @@ -55,25 +55,22 @@ extern QPrinter::PaperSize mapDevmodePaperSize(int s); QList QPrinterInfo::availablePrinters() { QList printers; - LPBYTE buffer; + DWORD needed = 0; DWORD returned = 0; - - if ( !EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS, NULL, 4, 0, 0, &needed, &returned)) - { - buffer = new BYTE[needed]; - if (!EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS , NULL, - 4, buffer, needed, &needed, &returned)) - { - delete [] buffer; - return printers; - } - PPRINTER_INFO_4 infoList = reinterpret_cast(buffer); - QPrinterInfo defPrn = defaultPrinter(); - for (uint i = 0; i < returned; ++i) { - printers.append(QPrinterInfo(QString::fromWCharArray(infoList[i].pPrinterName))); - if (printers.at(i).printerName() == defPrn.printerName()) - printers[i].d_ptr->isDefault = true; + if (!EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS, NULL, 4, 0, 0, &needed, &returned)) { + LPBYTE buffer = new BYTE[needed]; + if (EnumPrinters(PRINTER_ENUM_LOCAL | PRINTER_ENUM_CONNECTIONS, NULL, 4, buffer, needed, &needed, &returned)) { + PPRINTER_INFO_4 infoList = reinterpret_cast(buffer); + QPrinterInfo defPrn = defaultPrinter(); + for (uint i = 0; i < returned; ++i) { + QString printerName(QString::fromWCharArray(infoList[i].pPrinterName)); + + QPrinterInfo printerInfo(printerName); + if (printerInfo.printerName() == defPrn.printerName()) + printerInfo.d_ptr->isDefault = true; + printers.append(printerInfo); + } } delete [] buffer; } @@ -88,40 +85,35 @@ QPrinterInfo QPrinterInfo::defaultPrinter() GetProfileString(L"windows", L"device", (wchar_t*)noPrinters.utf16(), buffer, 256); QString output = QString::fromWCharArray(buffer); - // Filter out the name of the printer, which should be everything - // before a comma. + // Filter out the name of the printer, which should be everything before a comma. bool noConfiguredPrinters = (output == noPrinters); - QStringList info = output.split(QLatin1Char(',')); - QString printerName = noConfiguredPrinters ? QString() : info.at(0); + QString printerName = output.split(QLatin1Char(',')).value(0); - QPrinterInfo prn(printerName); - prn.d_ptr->isDefault = true; + QPrinterInfo printerInfo(printerName); + printerInfo.d_ptr->isDefault = true; if (noConfiguredPrinters) - prn.d_ptr->isNull = true; - return prn; + printerInfo.d_ptr->isNull = true; + return printerInfo; } QList QPrinterInfo::supportedPaperSizes() const { const Q_D(QPrinterInfo); - QList paperList; + + QList paperSizes; DWORD size = DeviceCapabilities(reinterpret_cast(d->name.utf16()), NULL, DC_PAPERS, NULL, NULL); - if ((int)size == -1) - return paperList; - - wchar_t *papers = new wchar_t[size]; - size = DeviceCapabilities(reinterpret_cast(d->name.utf16()), - NULL, DC_PAPERS, papers, NULL); - - for (int c = 0; c < (int)size; ++c) { - paperList.append(mapDevmodePaperSize(papers[c])); + if ((int)size != -1) { + wchar_t *papers = new wchar_t[size]; + size = DeviceCapabilities(reinterpret_cast(d->name.utf16()), + NULL, DC_PAPERS, papers, NULL); + for (int c = 0; c < (int)size; ++c) + paperSizes.append(mapDevmodePaperSize(papers[c])); + delete [] papers; } - delete [] papers; - - return paperList; + return paperSizes; } #endif // QT_NO_PRINTER -- cgit v0.12 From ed2abc6f5d8b2fe9e819d473768767c11f9c83ba Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 1 Dec 2010 13:24:44 +0300 Subject: fix QPrinterInfo::defaultPrinter() on win to not return a partially filled invalid printer info. is the default printer couldn't be retrieved, return an invalid QPrinterInfo() rather than a semi-invalid info which has isDefault() == true and printerName() == "qt_no_printers" Merge-request: 2516 Signed-off-by: axis --- src/gui/painting/qprinterinfo_win.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/gui/painting/qprinterinfo_win.cpp b/src/gui/painting/qprinterinfo_win.cpp index 6adf5a4..f7b6874 100644 --- a/src/gui/painting/qprinterinfo_win.cpp +++ b/src/gui/painting/qprinterinfo_win.cpp @@ -84,16 +84,15 @@ QPrinterInfo QPrinterInfo::defaultPrinter() wchar_t buffer[256]; GetProfileString(L"windows", L"device", (wchar_t*)noPrinters.utf16(), buffer, 256); QString output = QString::fromWCharArray(buffer); + if (output != noPrinters) { + // Filter out the name of the printer, which should be everything before a comma. + QString printerName = output.split(QLatin1Char(',')).value(0); + QPrinterInfo printerInfo(printerName); + printerInfo.d_ptr->isDefault = true; + return printerInfo; + } - // Filter out the name of the printer, which should be everything before a comma. - bool noConfiguredPrinters = (output == noPrinters); - QString printerName = output.split(QLatin1Char(',')).value(0); - - QPrinterInfo printerInfo(printerName); - printerInfo.d_ptr->isDefault = true; - if (noConfiguredPrinters) - printerInfo.d_ptr->isNull = true; - return printerInfo; + return QPrinterInfo(); } QList QPrinterInfo::supportedPaperSizes() const -- cgit v0.12 From 50af3716c956be0f50fdd896925da7af91d5da2c Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 1 Dec 2010 13:46:24 +0300 Subject: QPrinterInfo::supportedPaperSizes(): return early if the info is invalid e.g. don't report supported paper sized in any case Merge-request: 2516 Signed-off-by: axis --- src/gui/painting/qprinterinfo_mac.cpp | 2 ++ src/gui/painting/qprinterinfo_unix.cpp | 3 +++ src/gui/painting/qprinterinfo_win.cpp | 2 ++ 3 files changed, 7 insertions(+) diff --git a/src/gui/painting/qprinterinfo_mac.cpp b/src/gui/painting/qprinterinfo_mac.cpp index 8d41217..033682a 100644 --- a/src/gui/painting/qprinterinfo_mac.cpp +++ b/src/gui/painting/qprinterinfo_mac.cpp @@ -87,6 +87,8 @@ QList QPrinterInfo::supportedPaperSizes() const const Q_D(QPrinterInfo); QList paperSizes; + if (isNull()) + return paperSizes; PMPrinter cfPrn = PMPrinterCreateFromPrinterID(QCFString::toCFStringRef(d->name)); if (!cfPrn) diff --git a/src/gui/painting/qprinterinfo_unix.cpp b/src/gui/painting/qprinterinfo_unix.cpp index be24bd7..af2e52a 100644 --- a/src/gui/painting/qprinterinfo_unix.cpp +++ b/src/gui/painting/qprinterinfo_unix.cpp @@ -898,6 +898,9 @@ QList QPrinterInfo::supportedPaperSizes() const #if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) const Q_D(QPrinterInfo); + if (isNull()) + return d->paperSizes; + if (!d->hasPaperSizes) { d->hasPaperSizes = true; diff --git a/src/gui/painting/qprinterinfo_win.cpp b/src/gui/painting/qprinterinfo_win.cpp index f7b6874..2d25063 100644 --- a/src/gui/painting/qprinterinfo_win.cpp +++ b/src/gui/painting/qprinterinfo_win.cpp @@ -100,6 +100,8 @@ QList QPrinterInfo::supportedPaperSizes() const const Q_D(QPrinterInfo); QList paperSizes; + if (isNull()) + return paperSizes; DWORD size = DeviceCapabilities(reinterpret_cast(d->name.utf16()), NULL, DC_PAPERS, NULL, NULL); -- cgit v0.12 From 1d6266e751d6b23a15f56bc21c503fe1a71da975 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 1 Dec 2010 14:28:32 +0300 Subject: get rid of QPrinterInfoPrivate::isNull member invalid QPrinterInfo always have d_ptr == &QPrinterInfoPrivate::shared_null; no need in separate flag for that Merge-request: 2516 Signed-off-by: axis --- src/gui/painting/qprinterinfo.cpp | 2 +- src/gui/painting/qprinterinfo_p.h | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/gui/painting/qprinterinfo.cpp b/src/gui/painting/qprinterinfo.cpp index 21d56f3..72f8be3 100644 --- a/src/gui/painting/qprinterinfo.cpp +++ b/src/gui/painting/qprinterinfo.cpp @@ -146,7 +146,7 @@ QString QPrinterInfo::printerName() const bool QPrinterInfo::isNull() const { const Q_D(QPrinterInfo); - return d->isNull; + return d == &QPrinterInfoPrivate::shared_null; } /*! diff --git a/src/gui/painting/qprinterinfo_p.h b/src/gui/painting/qprinterinfo_p.h index f5981d4..7781d59 100644 --- a/src/gui/painting/qprinterinfo_p.h +++ b/src/gui/painting/qprinterinfo_p.h @@ -65,7 +65,7 @@ class QPrinterInfoPrivate { public: QPrinterInfoPrivate(const QString& name = QString()) : - name(name), isNull(false), isDefault(false) + name(name), isDefault(false) #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(Q_OS_SYMBIAN)) || defined(Q_WS_QPA) #if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY) , cupsPrinterIndex(0), hasPaperSizes(false) @@ -78,7 +78,6 @@ public: static QPrinterInfoPrivate shared_null; QString name; - bool isNull; bool isDefault; #if (defined(Q_OS_UNIX) && !defined(Q_OS_MAC) && !defined(Q_OS_SYMBIAN)) || defined(Q_WS_QPA) -- cgit v0.12 From b24447e0f20db4a40df724476c6542ea44590935 Mon Sep 17 00:00:00 2001 From: axis Date: Mon, 20 Dec 2010 16:09:50 +0100 Subject: Fixed autotest. --- tests/auto/qprinterinfo/tst_qprinterinfo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/qprinterinfo/tst_qprinterinfo.cpp b/tests/auto/qprinterinfo/tst_qprinterinfo.cpp index c3fad6c..4f767a5 100644 --- a/tests/auto/qprinterinfo/tst_qprinterinfo.cpp +++ b/tests/auto/qprinterinfo/tst_qprinterinfo.cpp @@ -134,7 +134,7 @@ QStringList tst_QPrinterInfo::getPrintersFromSystem() QString output = getOutputFromCommand(command); QStringList list = output.split(QChar::fromLatin1('\n')); - QRegExp reg("^[Pp]rinter ([.a-zA-Z0-9_-]+)"); + QRegExp reg("^[Pp]rinter ([.a-zA-Z0-9-_@]+)"); for (int c = 0; c < list.size(); ++c) { if (reg.indexIn(list[c]) >= 0) { QString printer = reg.cap(1); -- cgit v0.12 From 9a18739c538013a7f2111e68e9255379cfbd9a57 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Tue, 12 Oct 2010 13:11:38 +0200 Subject: Ensure that every thread does contend in the contention tests 2 semaphore barrier is not enough to ensure that every thread does run as part of the benchmark. It is possible that a single thread, given enough time, could do all the work while the other threads remain dormant. Prevent this by making sure that the each thread rendevous with both the semaphore barriers at the start of their run(), yields after unlocking, and then rendevous again at the end. Reviewed-by: joao --- .../corelib/thread/qmutex/tst_qmutex.cpp | 93 ++++++++++++++-------- 1 file changed, 60 insertions(+), 33 deletions(-) diff --git a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp index 7a6b45c..cbfffe5 100644 --- a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp +++ b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp @@ -95,6 +95,9 @@ class tst_QMutex : public QObject int threadCount; public: + // barriers for the contended tests + static QSemaphore semaphore1, semaphore2, semaphore3, semaphore4; + tst_QMutex() { // at least 2 threads, even on single cpu/core machines @@ -119,6 +122,11 @@ private slots: void contendedQMutexLocker(); }; +QSemaphore tst_QMutex::semaphore1; +QSemaphore tst_QMutex::semaphore2; +QSemaphore tst_QMutex::semaphore3; +QSemaphore tst_QMutex::semaphore4; + void tst_QMutex::noThread_data() { QTest::addColumn("t"); @@ -220,17 +228,17 @@ void tst_QMutex::contendedNative_data() class NativeMutexThread : public QThread { - QSemaphore *semaphore1, *semaphore2; NativeMutexType *mutex; int iterations, msleepDuration; public: bool done; - NativeMutexThread(QSemaphore *semaphore1, QSemaphore *semaphore2, NativeMutexType *mutex, int iterations, int msleepDuration) - : semaphore1(semaphore1), semaphore2(semaphore2), mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) + NativeMutexThread(NativeMutexType *mutex, int iterations, int msleepDuration) + : mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) { } void run() { forever { - semaphore1->acquire(); + tst_QMutex::semaphore1.release(); + tst_QMutex::semaphore2.acquire(); if (done) break; for (int i = 0; i < iterations; ++i) { @@ -238,8 +246,11 @@ public: if (msleepDuration >= 0) msleep(msleepDuration); NativeMutexUnlock(mutex); + + QThread::yieldCurrentThread(); } - semaphore2->release(); + tst_QMutex::semaphore3.release(); + tst_QMutex::semaphore4.acquire(); } } }; @@ -249,24 +260,26 @@ void tst_QMutex::contendedNative() QFETCH(int, iterations); QFETCH(int, msleepDuration); - QSemaphore semaphore1, semaphore2; NativeMutexType mutex; NativeMutexInitialize(&mutex); QVector threads(threadCount); for (int i = 0; i < threads.count(); ++i) { - threads[i] = new NativeMutexThread(&semaphore1, &semaphore2, &mutex, iterations, msleepDuration); + threads[i] = new NativeMutexThread(&mutex, iterations, msleepDuration); threads[i]->start(); } QBENCHMARK { - semaphore1.release(threadCount); - semaphore2.acquire(threadCount); + semaphore1.acquire(threadCount); + semaphore2.release(threadCount); + semaphore3.acquire(threadCount); + semaphore4.release(threadCount); } for (int i = 0; i < threads.count(); ++i) threads[i]->done = true; - semaphore1.release(threadCount); + semaphore1.acquire(threadCount); + semaphore2.release(threadCount); for (int i = 0; i < threads.count(); ++i) threads[i]->wait(); qDeleteAll(threads); @@ -276,17 +289,17 @@ void tst_QMutex::contendedNative() class QMutexThread : public QThread { - QSemaphore *semaphore1, *semaphore2; QMutex *mutex; int iterations, msleepDuration; public: bool done; - QMutexThread(QSemaphore *semaphore1, QSemaphore *semaphore2, QMutex *mutex, int iterations, int msleepDuration) - : semaphore1(semaphore1), semaphore2(semaphore2), mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) + QMutexThread(QMutex *mutex, int iterations, int msleepDuration) + : mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) { } void run() { forever { - semaphore1->acquire(); + tst_QMutex::semaphore1.release(); + tst_QMutex::semaphore2.acquire(); if (done) break; for (int i = 0; i < iterations; ++i) { @@ -294,8 +307,11 @@ public: if (msleepDuration >= 0) msleep(msleepDuration); mutex->unlock(); + + QThread::yieldCurrentThread(); } - semaphore2->release(); + tst_QMutex::semaphore3.release(); + tst_QMutex::semaphore4.acquire(); } } }; @@ -304,23 +320,26 @@ void tst_QMutex::contendedQMutex() { QFETCH(int, iterations); QFETCH(int, msleepDuration); - QSemaphore semaphore1, semaphore2; + QMutex mutex; QVector threads(threadCount); for (int i = 0; i < threads.count(); ++i) { - threads[i] = new QMutexThread(&semaphore1, &semaphore2, &mutex, iterations, msleepDuration); + threads[i] = new QMutexThread(&mutex, iterations, msleepDuration); threads[i]->start(); } QBENCHMARK { - semaphore1.release(threadCount); - semaphore2.acquire(threadCount); + semaphore1.acquire(threadCount); + semaphore2.release(threadCount); + semaphore3.acquire(threadCount); + semaphore4.release(threadCount); } for (int i = 0; i < threads.count(); ++i) threads[i]->done = true; - semaphore1.release(threadCount); + semaphore1.acquire(threadCount); + semaphore2.release(threadCount); for (int i = 0; i < threads.count(); ++i) threads[i]->wait(); qDeleteAll(threads); @@ -328,25 +347,30 @@ void tst_QMutex::contendedQMutex() class QMutexLockerThread : public QThread { - QSemaphore *semaphore1, *semaphore2; QMutex *mutex; int iterations, msleepDuration; public: bool done; - QMutexLockerThread(QSemaphore *semaphore1, QSemaphore *semaphore2, QMutex *mutex, int iterations, int msleepDuration) - : semaphore1(semaphore1), semaphore2(semaphore2), mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) + QMutexLockerThread(QMutex *mutex, int iterations, int msleepDuration) + : mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) { } void run() { forever { - semaphore1->acquire(); + tst_QMutex::semaphore1.release(); + tst_QMutex::semaphore2.acquire(); if (done) break; for (int i = 0; i < iterations; ++i) { - QMutexLocker locker(mutex); - if (msleepDuration >= 0) - msleep(msleepDuration); + { + QMutexLocker locker(mutex1); + if (msleepDuration >= 0) + msleep(msleepDuration); + } + + QThread::yieldCurrentThread(); } - semaphore2->release(); + tst_QMutex::semaphore3.release(); + tst_QMutex::semaphore4.acquire(); } } }; @@ -355,23 +379,26 @@ void tst_QMutex::contendedQMutexLocker() { QFETCH(int, iterations); QFETCH(int, msleepDuration); - QSemaphore semaphore1, semaphore2; + QMutex mutex; QVector threads(threadCount); for (int i = 0; i < threads.count(); ++i) { - threads[i] = new QMutexLockerThread(&semaphore1, &semaphore2, &mutex, iterations, msleepDuration); + threads[i] = new QMutexLockerThread(&mutex, iterations, msleepDuration); threads[i]->start(); } QBENCHMARK { - semaphore1.release(threadCount); - semaphore2.acquire(threadCount); + semaphore1.acquire(threadCount); + semaphore2.release(threadCount); + semaphore3.acquire(threadCount); + semaphore4.release(threadCount); } for (int i = 0; i < threads.count(); ++i) threads[i]->done = true; - semaphore1.release(threadCount); + semaphore1.acquire(threadCount); + semaphore2.release(threadCount); for (int i = 0; i < threads.count(); ++i) threads[i]->wait(); qDeleteAll(threads); -- cgit v0.12 From d9c00320a1e1f6aa7d0083b3415704e20e216a1f Mon Sep 17 00:00:00 2001 From: axis Date: Mon, 6 Dec 2010 13:41:51 +0100 Subject: Moved the default dependency targets to default_post.prf. The file that they were in would not be parsed if CONFIG -= qt, but it always needs to be parsed, otherwise apps that don't use Qt will fail the sis file creation. RevBy: Miikka Heikkinen --- mkspecs/features/symbian/default_post.prf | 47 +++++++++++++++++++++++++++++++ mkspecs/features/symbian/qt.prf | 47 ------------------------------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/mkspecs/features/symbian/default_post.prf b/mkspecs/features/symbian/default_post.prf index a2ac377..89f655d 100644 --- a/mkspecs/features/symbian/default_post.prf +++ b/mkspecs/features/symbian/default_post.prf @@ -53,6 +53,53 @@ isEmpty(TARGET.UID2) { } } +# Allow .pro files to specify include path(s) to be prepended to the list. +# +# This allows the project to override the default ordering, whereby paths +# relative to $$QMAKE_INCDIR_QT always come first. This ordering can cause +# problems when both the epoc32/include tree and a Qt include directory +# contain a header of the same name - in this case, the Qt header is always +# included by virtue of its path appearing first in the SYSTEMINCLUDE +# directives in the generated MMP file. +# +# To work around this situation, the following line can be added to the .pro +# file: +# PREPEND_INCLUDEPATH = /epoc32/include +# +INCLUDEPATH = $$PREPEND_INCLUDEPATH $$INCLUDEPATH + +# Add dependency to Qt package to all other projects besides Qt libs. +# Note: Qt libs package with full capabilities has UID3 of 0x2001E61C, +# while self-signed version typically has temporary UID3 of 0xE001E61C. +contains(CONFIG, qt):!contains(TARGET.UID3, 0x2001E61C):!contains(TARGET.UID3, 0xE001E61C):isEmpty(QT_LIBINFIX) { + qt_pkg_name = Qt + pkg_depends_qt += \ + "; Default dependency to Qt libraries" \ + "(0x2001E61C), $${QT_MAJOR_VERSION}, $${QT_MINOR_VERSION}, $${QT_PATCH_VERSION}, {$$addLanguageDependentPkgItem(qt_pkg_name)}" + + # Projects linking to webkit need dependency to webkit + contains(QT, webkit): { + # these can be overridden by mkspecs/modules/qt_webkit.pri + isEmpty(QT_WEBKIT_MAJOR_VERSION) { + QT_WEBKIT_MAJOR_VERSION = $${QT_MAJOR_VERSION} + QT_WEBKIT_MINOR_VERSION = $${QT_MINOR_VERSION} + QT_WEBKIT_PATCH_VERSION = $${QT_PATCH_VERSION} + } + + webkit_pkg_name = QtWebKit + pkg_depends_webkit += \ + "; Dependency to Qt Webkit" \ + "(0x200267C2), $${QT_WEBKIT_MAJOR_VERSION}, $${QT_WEBKIT_MINOR_VERSION}, $${QT_WEBKIT_PATCH_VERSION}, {$$addLanguageDependentPkgItem(webkit_pkg_name)}" + } else { + default_deployment.pkg_prerules -= pkg_depends_webkit + } +} else { + default_deployment.pkg_prerules -= pkg_depends_webkit pkg_depends_qt +} + +isEmpty(TARGET.EPOCSTACKSIZE):TARGET.EPOCSTACKSIZE = 0x14000 +isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x020000 0x800000 + # Supports S60 3.1, 3.2, 5.0, Symbian^3, and Symbian^4 by default platform_product_id = S60ProductID platform_product_id = $$addLanguageDependentPkgItem(platform_product_id) diff --git a/mkspecs/features/symbian/qt.prf b/mkspecs/features/symbian/qt.prf index c8f97aa..c376b64 100644 --- a/mkspecs/features/symbian/qt.prf +++ b/mkspecs/features/symbian/qt.prf @@ -6,53 +6,6 @@ CONFIG += qtmain load(qt) -# Allow .pro files to specify include path(s) to be prepended to the list. -# -# This allows the project to override the default ordering, whereby paths -# relative to $$QMAKE_INCDIR_QT always come first. This ordering can cause -# problems when both the epoc32/include tree and a Qt include directory -# contain a header of the same name - in this case, the Qt header is always -# included by virtue of its path appearing first in the SYSTEMINCLUDE -# directives in the generated MMP file. -# -# To work around this situation, the following line can be added to the .pro -# file: -# PREPEND_INCLUDEPATH = /epoc32/include -# -INCLUDEPATH = $$PREPEND_INCLUDEPATH $$INCLUDEPATH - -# Add dependency to Qt package to all other projects besides Qt libs. -# Note: Qt libs package with full capabilities has UID3 of 0x2001E61C, -# while self-signed version typically has temporary UID3 of 0xE001E61C. -contains(CONFIG, qt):!contains(TARGET.UID3, 0x2001E61C):!contains(TARGET.UID3, 0xE001E61C):isEmpty(QT_LIBINFIX) { - qt_pkg_name = Qt - pkg_depends_qt += \ - "; Default dependency to Qt libraries" \ - "(0x2001E61C), $${QT_MAJOR_VERSION}, $${QT_MINOR_VERSION}, $${QT_PATCH_VERSION}, {$$addLanguageDependentPkgItem(qt_pkg_name)}" - - # Projects linking to webkit need dependency to webkit - contains(QT, webkit): { - # these can be overridden by mkspecs/modules/qt_webkit.pri - isEmpty(QT_WEBKIT_MAJOR_VERSION) { - QT_WEBKIT_MAJOR_VERSION = $${QT_MAJOR_VERSION} - QT_WEBKIT_MINOR_VERSION = $${QT_MINOR_VERSION} - QT_WEBKIT_PATCH_VERSION = $${QT_PATCH_VERSION} - } - - webkit_pkg_name = QtWebKit - pkg_depends_webkit += \ - "; Dependency to Qt Webkit" \ - "(0x200267C2), $${QT_WEBKIT_MAJOR_VERSION}, $${QT_WEBKIT_MINOR_VERSION}, $${QT_WEBKIT_PATCH_VERSION}, {$$addLanguageDependentPkgItem(webkit_pkg_name)}" - } else { - default_deployment.pkg_prerules -= pkg_depends_webkit - } -} else { - default_deployment.pkg_prerules -= pkg_depends_webkit pkg_depends_qt -} - -isEmpty(TARGET.EPOCSTACKSIZE):TARGET.EPOCSTACKSIZE = 0x14000 -isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x020000 0x800000 - # Workaround for the fact that Gnupoc and Symbian chose different approaches to # the letter casing of headers. contains(CONFIG, is_using_gnupoc) { -- cgit v0.12 From 2d87a865b26250dcecbcf73178f8091e0724106d Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Wed, 13 Oct 2010 12:33:27 +0200 Subject: test contention when using 2 mutexes add test data and adapt the test harness to allow testing contention performance when using 2 mutexes (2 mutexes are often used inside of Qt, so we want to ensure that this also performs well). Reviewed-by: joao --- .../corelib/thread/qmutex/tst_qmutex.cpp | 81 ++++++++++++++-------- 1 file changed, 53 insertions(+), 28 deletions(-) diff --git a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp index cbfffe5..b0c5702 100644 --- a/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp +++ b/tests/benchmarks/corelib/thread/qmutex/tst_qmutex.cpp @@ -218,22 +218,31 @@ void tst_QMutex::contendedNative_data() { QTest::addColumn("iterations"); QTest::addColumn("msleepDuration"); - QTest::newRow("baseline") << 0 << -1; - QTest::newRow("no msleep") << 1000 << -1; - QTest::newRow("msleep(0)") << 1000 << 0; - QTest::newRow("msleep(1)") << 10 << 1; - QTest::newRow("msleep(2)") << 10 << 2; - QTest::newRow("msleep(10)") << 10 << 10; + QTest::addColumn("use2mutexes"); + + QTest::newRow("baseline") << 0 << -1 << false; + + QTest::newRow("no msleep, 1 mutex") << 1000 << -1 << false; + QTest::newRow("no msleep, 2 mutexes") << 1000 << -1 << true; + QTest::newRow("msleep(0), 1 mutex") << 1000 << 0 << false; + QTest::newRow("msleep(0), 2 mutexes") << 1000 << 0 << true; + QTest::newRow("msleep(1), 1 mutex") << 10 << 1 << false; + QTest::newRow("msleep(1), 2 mutexes") << 10 << 1 << true; + QTest::newRow("msleep(2), 1 mutex") << 10 << 2 << false; + QTest::newRow("msleep(2), 2 mutexes") << 10 << 2 << true; + QTest::newRow("msleep(10), 1 mutex") << 10 << 10 << false; + QTest::newRow("msleep(10), 2 mutexes") << 10 << 10 << true; } class NativeMutexThread : public QThread { - NativeMutexType *mutex; + NativeMutexType *mutex1, *mutex2; int iterations, msleepDuration; + bool use2mutexes; public: bool done; - NativeMutexThread(NativeMutexType *mutex, int iterations, int msleepDuration) - : mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) + NativeMutexThread(NativeMutexType *mutex1, NativeMutexType *mutex2, int iterations, int msleepDuration, bool use2mutexes) + : mutex1(mutex1), mutex2(mutex2), iterations(iterations), msleepDuration(msleepDuration), use2mutexes(use2mutexes), done(false) { } void run() { forever { @@ -242,10 +251,14 @@ public: if (done) break; for (int i = 0; i < iterations; ++i) { - NativeMutexLock(mutex); + NativeMutexLock(mutex1); + if (use2mutexes) + NativeMutexLock(mutex2); if (msleepDuration >= 0) msleep(msleepDuration); - NativeMutexUnlock(mutex); + if (use2mutexes) + NativeMutexUnlock(mutex2); + NativeMutexUnlock(mutex1); QThread::yieldCurrentThread(); } @@ -259,13 +272,15 @@ void tst_QMutex::contendedNative() { QFETCH(int, iterations); QFETCH(int, msleepDuration); + QFETCH(bool, use2mutexes); - NativeMutexType mutex; - NativeMutexInitialize(&mutex); + NativeMutexType mutex1, mutex2; + NativeMutexInitialize(&mutex1); + NativeMutexInitialize(&mutex2); QVector threads(threadCount); for (int i = 0; i < threads.count(); ++i) { - threads[i] = new NativeMutexThread(&mutex, iterations, msleepDuration); + threads[i] = new NativeMutexThread(&mutex1, &mutex2, iterations, msleepDuration, use2mutexes); threads[i]->start(); } @@ -284,17 +299,19 @@ void tst_QMutex::contendedNative() threads[i]->wait(); qDeleteAll(threads); - NativeMutexDestroy(&mutex); + NativeMutexDestroy(&mutex1); + NativeMutexDestroy(&mutex2); } class QMutexThread : public QThread { - QMutex *mutex; + QMutex *mutex1, *mutex2; int iterations, msleepDuration; + bool use2mutexes; public: bool done; - QMutexThread(QMutex *mutex, int iterations, int msleepDuration) - : mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) + QMutexThread(QMutex *mutex1, QMutex *mutex2, int iterations, int msleepDuration, bool use2mutexes) + : mutex1(mutex1), mutex2(mutex2), iterations(iterations), msleepDuration(msleepDuration), use2mutexes(use2mutexes), done(false) { } void run() { forever { @@ -303,10 +320,14 @@ public: if (done) break; for (int i = 0; i < iterations; ++i) { - mutex->lock(); + mutex1->lock(); + if (use2mutexes) + mutex2->lock(); if (msleepDuration >= 0) msleep(msleepDuration); - mutex->unlock(); + if (use2mutexes) + mutex2->unlock(); + mutex1->unlock(); QThread::yieldCurrentThread(); } @@ -320,12 +341,13 @@ void tst_QMutex::contendedQMutex() { QFETCH(int, iterations); QFETCH(int, msleepDuration); + QFETCH(bool, use2mutexes); - QMutex mutex; + QMutex mutex1, mutex2; QVector threads(threadCount); for (int i = 0; i < threads.count(); ++i) { - threads[i] = new QMutexThread(&mutex, iterations, msleepDuration); + threads[i] = new QMutexThread(&mutex1, &mutex2, iterations, msleepDuration, use2mutexes); threads[i]->start(); } @@ -347,12 +369,13 @@ void tst_QMutex::contendedQMutex() class QMutexLockerThread : public QThread { - QMutex *mutex; + QMutex *mutex1, *mutex2; int iterations, msleepDuration; + bool use2mutexes; public: bool done; - QMutexLockerThread(QMutex *mutex, int iterations, int msleepDuration) - : mutex(mutex), iterations(iterations), msleepDuration(msleepDuration), done(false) + QMutexLockerThread(QMutex *mutex1, QMutex *mutex2, int iterations, int msleepDuration, bool use2mutexes) + : mutex1(mutex1), mutex2(mutex2), iterations(iterations), msleepDuration(msleepDuration), use2mutexes(use2mutexes), done(false) { } void run() { forever { @@ -362,7 +385,8 @@ public: break; for (int i = 0; i < iterations; ++i) { { - QMutexLocker locker(mutex1); + QMutexLocker locker1(mutex1); + QMutexLocker locker2(use2mutexes ? mutex2 : 0); if (msleepDuration >= 0) msleep(msleepDuration); } @@ -379,12 +403,13 @@ void tst_QMutex::contendedQMutexLocker() { QFETCH(int, iterations); QFETCH(int, msleepDuration); + QFETCH(bool, use2mutexes); - QMutex mutex; + QMutex mutex1, mutex2; QVector threads(threadCount); for (int i = 0; i < threads.count(); ++i) { - threads[i] = new QMutexLockerThread(&mutex, iterations, msleepDuration); + threads[i] = new QMutexLockerThread(&mutex1, &mutex2, iterations, msleepDuration, use2mutexes); threads[i]->start(); } -- cgit v0.12 From d9e35493d494df60d771a928a8d0dbde2b66906e Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Thu, 16 Sep 2010 10:50:25 +0200 Subject: Move contender count maintenance to QMutexPrivate Make the cross-platform implementation of QMutex in qmutex.cpp only use testAndSetAcquire(0, 1) and testAndSetRelease(1, 0) like in the new inline functions in qmutex.h This will allow us to open up for more platform-specific optimizations to improve performance of contended QMutexes. Reviewed-by: joao --- src/corelib/thread/qmutex.cpp | 43 ++++++++------------------------------ src/corelib/thread/qmutex_unix.cpp | 5 +++++ src/corelib/thread/qmutex_win.cpp | 8 ++++++- 3 files changed, 21 insertions(+), 35 deletions(-) diff --git a/src/corelib/thread/qmutex.cpp b/src/corelib/thread/qmutex.cpp index b85a22d..403468a 100644 --- a/src/corelib/thread/qmutex.cpp +++ b/src/corelib/thread/qmutex.cpp @@ -157,15 +157,12 @@ void QMutex::lock() return; } - bool isLocked = d->contenders.fetchAndAddAcquire(1) == 0; + bool isLocked = d->contenders.testAndSetAcquire(0, 1); if (!isLocked) { // didn't get the lock, wait for it isLocked = d->wait(); Q_ASSERT_X(isLocked, "QMutex::lock", "Internal error, infinite wait has timed out."); - - // don't need to wait for the lock anymore - d->contenders.deref(); } d->owner = self; @@ -174,8 +171,7 @@ void QMutex::lock() return; } - - bool isLocked = d->contenders == 0 && d->contenders.testAndSetAcquire(0, 1); + bool isLocked = d->contenders.testAndSetAcquire(0, 1); if (!isLocked) { lockInternal(); } @@ -211,7 +207,7 @@ bool QMutex::tryLock() return true; } - bool isLocked = d->contenders == 0 && d->contenders.testAndSetAcquire(0, 1); + bool isLocked = d->contenders.testAndSetAcquire(0, 1); if (!isLocked) { // some other thread has the mutex locked, or we tried to // recursively lock an non-recursive mutex @@ -224,13 +220,7 @@ bool QMutex::tryLock() return isLocked; } - bool isLocked = d->contenders == 0 && d->contenders.testAndSetAcquire(0, 1); - if (!isLocked) { - // some other thread has the mutex locked, or we tried to - // recursively lock an non-recursive mutex - return isLocked; - } - return isLocked; + return d->contenders.testAndSetAcquire(0, 1); } /*! \overload @@ -269,13 +259,10 @@ bool QMutex::tryLock(int timeout) return true; } - bool isLocked = d->contenders.fetchAndAddAcquire(1) == 0; + bool isLocked = d->contenders.testAndSetAcquire(0, 1); if (!isLocked) { // didn't get the lock, wait for it isLocked = d->wait(timeout); - - // don't need to wait for the lock anymore - d->contenders.deref(); if (!isLocked) return false; } @@ -286,17 +273,9 @@ bool QMutex::tryLock(int timeout) return true; } - bool isLocked = d->contenders.fetchAndAddAcquire(1) == 0; - if (!isLocked) { - // didn't get the lock, wait for it - isLocked = d->wait(timeout); - - // don't need to wait for the lock anymore - d->contenders.deref(); - if (!isLocked) - return false; - } - return true; + return (d->contenders.testAndSetAcquire(0, 1) + // didn't get the lock, wait for it + || d->wait(timeout)); } @@ -310,7 +289,6 @@ bool QMutex::tryLock(int timeout) void QMutex::unlock() { QMutexPrivate *d = static_cast(this->d); - if (d->recursive) { if (!--d->count) { d->owner = 0; @@ -460,16 +438,13 @@ void QMutex::lockInternal() do { if (spinCount++ > maximumSpinCount) { // puts("spinning useless, sleeping"); - bool isLocked = d->contenders.fetchAndAddAcquire(1) == 0; + bool isLocked = d->contenders.testAndSetAcquire(0, 1); if (!isLocked) { // didn't get the lock, wait for it isLocked = d->wait(); Q_ASSERT_X(isLocked, "QMutex::lock", "Internal error, infinite wait has timed out."); - - // don't need to wait for the lock anymore - d->contenders.deref(); } // decrease the lastSpinCount since we didn't actually get the lock by spinning spinCount = -d->lastSpinCount / SpinCountPenalizationDivisor; diff --git a/src/corelib/thread/qmutex_unix.cpp b/src/corelib/thread/qmutex_unix.cpp index 7e7ef22..dcf8b9f 100644 --- a/src/corelib/thread/qmutex_unix.cpp +++ b/src/corelib/thread/qmutex_unix.cpp @@ -77,6 +77,10 @@ QMutexPrivate::~QMutexPrivate() bool QMutexPrivate::wait(int timeout) { + if (contenders.fetchAndAddAcquire(1) == 0) { + // lock acquired without waiting + return true; + } report_error(pthread_mutex_lock(&mutex), "QMutex::lock", "mutex lock"); int errorCode = 0; while (!wakeup) { @@ -101,6 +105,7 @@ bool QMutexPrivate::wait(int timeout) } wakeup = false; report_error(pthread_mutex_unlock(&mutex), "QMutex::lock", "mutex unlock"); + contenders.deref(); return errorCode == 0; } diff --git a/src/corelib/thread/qmutex_win.cpp b/src/corelib/thread/qmutex_win.cpp index a810000..c278f04 100644 --- a/src/corelib/thread/qmutex_win.cpp +++ b/src/corelib/thread/qmutex_win.cpp @@ -60,7 +60,13 @@ QMutexPrivate::~QMutexPrivate() bool QMutexPrivate::wait(int timeout) { - return WaitForSingleObject(event, timeout < 0 ? INFINITE : timeout) == WAIT_OBJECT_0; + if (contenders.fetchAndAddAcquire(1) == 0) { + // lock acquired without waiting + return true; + } + bool returnValue = (WaitForSingleObject(event, timeout < 0 ? INFINITE : timeout) == WAIT_OBJECT_0); + contenders.deref(); + return returnValue; } void QMutexPrivate::wakeUp() -- cgit v0.12 From feb0b0cd47808a77a048c6a13686d39a0540a488 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Fri, 1 Oct 2010 09:44:55 +0200 Subject: Remove unnecessary testAndSetAcquire from QMutex::lockInternal() QMutexPrivate::wait() will take care of doing another test for the lock before putting the thread to sleep, so we can avoid another if(). Reviewed-by: joao --- src/corelib/thread/qmutex.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/corelib/thread/qmutex.cpp b/src/corelib/thread/qmutex.cpp index 403468a..19e2457 100644 --- a/src/corelib/thread/qmutex.cpp +++ b/src/corelib/thread/qmutex.cpp @@ -437,15 +437,12 @@ void QMutex::lockInternal() do { if (spinCount++ > maximumSpinCount) { - // puts("spinning useless, sleeping"); - bool isLocked = d->contenders.testAndSetAcquire(0, 1); - if (!isLocked) { - - // didn't get the lock, wait for it - isLocked = d->wait(); - Q_ASSERT_X(isLocked, "QMutex::lock", - "Internal error, infinite wait has timed out."); - } + // didn't get the lock, wait for it + bool isLocked = d->wait(); + Q_ASSERT_X(isLocked, "QMutex::lock", + "Internal error, infinite wait has timed out."); + Q_UNUSED(isLocked); + // decrease the lastSpinCount since we didn't actually get the lock by spinning spinCount = -d->lastSpinCount / SpinCountPenalizationDivisor; break; -- cgit v0.12 From 87bab705ded31559941020d3c500f43f571f9c16 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Fri, 1 Oct 2010 09:45:42 +0200 Subject: Disable spinning under lock contention on single CPU machines Spinning is just wasted time on these systems. Reviewed-by: joao --- src/corelib/thread/qmutex.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/corelib/thread/qmutex.cpp b/src/corelib/thread/qmutex.cpp index 19e2457..54b3ed4 100644 --- a/src/corelib/thread/qmutex.cpp +++ b/src/corelib/thread/qmutex.cpp @@ -429,6 +429,16 @@ void QMutex::unlock() void QMutex::lockInternal() { QMutexPrivate *d = static_cast(this->d); + + if (QThread::idealThreadCount() == 1) { + // don't spin on single cpu machines + bool isLocked = d->wait(); + Q_ASSERT_X(isLocked, "QMutex::lock", + "Internal error, infinite wait has timed out."); + Q_UNUSED(isLocked); + return; + } + int spinCount = 0; int lastSpinCount = d->lastSpinCount; -- cgit v0.12 From cf17b743d2fe84ab259b7232ab07b58a1872e18e Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Thu, 16 Sep 2010 15:46:43 +0200 Subject: Improve QMutex contention performance on Mac OS X Use a Mach semaphore to implement QMutexPrivate::wait() and ::wakeup(). This makes QMutex perform more or less identically the same as pthread_mutex_t when contended. Reviewed-by: joao --- src/corelib/thread/qmutex_p.h | 8 +++++- src/corelib/thread/qmutex_unix.cpp | 53 +++++++++++++++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/src/corelib/thread/qmutex_p.h b/src/corelib/thread/qmutex_p.h index 57a6062..e23be94 100644 --- a/src/corelib/thread/qmutex_p.h +++ b/src/corelib/thread/qmutex_p.h @@ -58,6 +58,10 @@ #include #include +#if defined(Q_OS_MAC) +# include +#endif + QT_BEGIN_NAMESPACE class QMutexPrivate : public QMutexData { @@ -72,7 +76,9 @@ public: Qt::HANDLE owner; uint count; -#if defined(Q_OS_UNIX) +#if defined(Q_OS_MAC) + semaphore_t mach_semaphore; +#elif defined(Q_OS_UNIX) volatile bool wakeup; pthread_mutex_t mutex; pthread_cond_t cond; diff --git a/src/corelib/thread/qmutex_unix.cpp b/src/corelib/thread/qmutex_unix.cpp index dcf8b9f..ce1bfc2 100644 --- a/src/corelib/thread/qmutex_unix.cpp +++ b/src/corelib/thread/qmutex_unix.cpp @@ -53,28 +53,77 @@ #undef wakeup #endif +#if defined(Q_OS_MAC) +# include +# include +#endif + QT_BEGIN_NAMESPACE +#if !defined(Q_OS_MAC) static void report_error(int code, const char *where, const char *what) { if (code != 0) qWarning("%s: %s failure: %s", where, what, qPrintable(qt_error_string(code))); } +#endif QMutexPrivate::QMutexPrivate(QMutex::RecursionMode mode) - : QMutexData(mode), lastSpinCount(0), owner(0), count(0), wakeup(false) + : QMutexData(mode), lastSpinCount(0), owner(0), count(0) { +#if defined(Q_OS_MAC) + kern_return_t r = semaphore_create(mach_task_self(), &mach_semaphore, SYNC_POLICY_FIFO, 0); + if (r != KERN_SUCCESS) + qWarning("QMutex: failed to create semaphore, error %d", r); +#else + wakeup = false; report_error(pthread_mutex_init(&mutex, NULL), "QMutex", "mutex init"); report_error(pthread_cond_init(&cond, NULL), "QMutex", "cv init"); +#endif } QMutexPrivate::~QMutexPrivate() { +#if defined(Q_OS_MAC) + kern_return_t r = semaphore_destroy(mach_task_self(), mach_semaphore); + if (r != KERN_SUCCESS) + qWarning("QMutex: failed to destroy semaphore, error %d", r); +#else report_error(pthread_cond_destroy(&cond), "QMutex", "cv destroy"); report_error(pthread_mutex_destroy(&mutex), "QMutex", "mutex destroy"); +#endif } +#if defined(Q_OS_MAC) + +bool QMutexPrivate::wait(int timeout) +{ + if (contenders.fetchAndAddAcquire(1) == 0) { + // lock acquired without waiting + return true; + } + bool returnValue; + if (timeout < 0) { + returnValue = semaphore_wait(mach_semaphore) == KERN_SUCCESS; + } else { + mach_timespec_t ts; + ts.tv_nsec = ((timeout % 1000) * 1000) * 1000; + ts.tv_sec = (timeout / 1000); + kern_return_t r = semaphore_timedwait(mach_semaphore, ts); + returnValue = r == KERN_SUCCESS; + } + contenders.deref(); + return returnValue; +} + +void QMutexPrivate::wakeUp() +{ + semaphore_signal(mach_semaphore); +} + +#else // !Q_OS_MAC + bool QMutexPrivate::wait(int timeout) { if (contenders.fetchAndAddAcquire(1) == 0) { @@ -117,6 +166,8 @@ void QMutexPrivate::wakeUp() report_error(pthread_mutex_unlock(&mutex), "QMutex::unlock", "mutex unlock"); } +#endif // !Q_OS_MAC + QT_END_NAMESPACE #endif // QT_NO_THREAD -- cgit v0.12 From 8a7b5aca7b6575013a4e4ee9b99808d25edf6fdf Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Mon, 27 Sep 2010 15:19:45 +0200 Subject: Improve QMutex contention performance on Linux Use futex(2) to implement QMutexPrivate::wait() and ::wakeup(). This makes QMutex perform more or less identically the same as pthread_mutex_t when contended. We have to use the contender count in a different way due to the way that futex() waiting works. Waiting on a futex atomically checks that the value has not changed from the expected value and then puts the thread to sleep. So, on Linux, the contender QAtomicInt will only ever be one of three values: 0 for unlocked, 1 for locked, 2 for contended. This does mean that there is a slight chance for unfairness due to the fetch-and-store to zero in the wakeUp() function, but unfortunately this cannot be avoid as the code is now. Reviewed-by: joao --- src/corelib/thread/qmutex_p.h | 2 +- src/corelib/thread/qmutex_unix.cpp | 43 +++++++++++++++++++++++++++++++++----- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/corelib/thread/qmutex_p.h b/src/corelib/thread/qmutex_p.h index e23be94..2d45cfb 100644 --- a/src/corelib/thread/qmutex_p.h +++ b/src/corelib/thread/qmutex_p.h @@ -78,7 +78,7 @@ public: #if defined(Q_OS_MAC) semaphore_t mach_semaphore; -#elif defined(Q_OS_UNIX) +#elif defined(Q_OS_UNIX) && !defined(Q_OS_LINUX) volatile bool wakeup; pthread_mutex_t mutex; pthread_cond_t cond; diff --git a/src/corelib/thread/qmutex_unix.cpp b/src/corelib/thread/qmutex_unix.cpp index ce1bfc2..e872187 100644 --- a/src/corelib/thread/qmutex_unix.cpp +++ b/src/corelib/thread/qmutex_unix.cpp @@ -56,11 +56,15 @@ #if defined(Q_OS_MAC) # include # include +#elif defined(Q_OS_LINUX) +# include +# include +# include #endif QT_BEGIN_NAMESPACE -#if !defined(Q_OS_MAC) +#if !defined(Q_OS_MAC) && !defined(Q_OS_LINUX) static void report_error(int code, const char *where, const char *what) { if (code != 0) @@ -76,7 +80,7 @@ QMutexPrivate::QMutexPrivate(QMutex::RecursionMode mode) kern_return_t r = semaphore_create(mach_task_self(), &mach_semaphore, SYNC_POLICY_FIFO, 0); if (r != KERN_SUCCESS) qWarning("QMutex: failed to create semaphore, error %d", r); -#else +#elif !defined(Q_OS_LINUX) wakeup = false; report_error(pthread_mutex_init(&mutex, NULL), "QMutex", "mutex init"); report_error(pthread_cond_init(&cond, NULL), "QMutex", "cv init"); @@ -89,7 +93,7 @@ QMutexPrivate::~QMutexPrivate() kern_return_t r = semaphore_destroy(mach_task_self(), mach_semaphore); if (r != KERN_SUCCESS) qWarning("QMutex: failed to destroy semaphore, error %d", r); -#else +#elif !defined(Q_OS_LINUX) report_error(pthread_cond_destroy(&cond), "QMutex", "cv destroy"); report_error(pthread_mutex_destroy(&mutex), "QMutex", "mutex destroy"); #endif @@ -122,7 +126,36 @@ void QMutexPrivate::wakeUp() semaphore_signal(mach_semaphore); } -#else // !Q_OS_MAC +#elif defined(Q_OS_LINUX) + +static inline int _q_futex(volatile int *addr, int op, int val, const struct timespec *timeout, int *addr2, int val2) +{ + return syscall(SYS_futex, addr, op, val, timeout, addr2, val2); +} + +bool QMutexPrivate::wait(int timeout) +{ + while (contenders.fetchAndStoreAcquire(2) > 0) { + struct timespec ts, *pts = 0; + if (timeout >= 0) { + ts.tv_nsec = ((timeout % 1000) * 1000) * 1000; + ts.tv_sec = (timeout / 1000); + pts = &ts; + } + int r = _q_futex(&contenders._q_value, FUTEX_WAIT, 2, pts, 0, 0); + if (r != 0 && errno == ETIMEDOUT) + return false; + } + return true; +} + +void QMutexPrivate::wakeUp() +{ + (void) contenders.fetchAndStoreRelease(0); + (void) _q_futex(&contenders._q_value, FUTEX_WAKE, 1, 0, 0, 0); +} + +#else // !Q_OS_MAC && !Q_OS_LINUX bool QMutexPrivate::wait(int timeout) { @@ -166,7 +199,7 @@ void QMutexPrivate::wakeUp() report_error(pthread_mutex_unlock(&mutex), "QMutex::unlock", "mutex unlock"); } -#endif // !Q_OS_MAC +#endif // !Q_OS_MAC && !Q_OS_LINUX QT_END_NAMESPACE -- cgit v0.12 From 3b6a84de5c5ed2e1970ad2b396292babb9173227 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Fri, 1 Oct 2010 09:50:22 +0200 Subject: Optimize adaptive spinning mutex code Change the adaptive spinning code to be elapsed time based instead of iteration based. The new approach will quickly reduce the amount of allowed spinning time when it detects that lock contention is resolved by waiting instead of spinning. We get better results by dynamically adjusting for elapsed running time instead of trying to fine tune iteration counts that won't work for all CPU types, speeds, etc. From observation, lock performance suffers if the spin time is higher than the minimum wait time. Because of this, QMutex never increases the spin time, it only reduces the spin time to the minimum observed wait time. For very long wait times, we disable spinning completely (and always resolve contention by waiting). Use QThread::yieldCurrentThread() when spinning on a contended mutex. Comment from the code: be a good citizen... yielding lets something else run if there is something to run, but may also relieve memory pressure if not. Reviewed-by: joao --- src/corelib/thread/qmutex.cpp | 36 ++++++++++++++++++++---------------- src/corelib/thread/qmutex_p.h | 4 +++- src/corelib/thread/qmutex_unix.cpp | 2 +- src/corelib/thread/qmutex_win.cpp | 2 +- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/corelib/thread/qmutex.cpp b/src/corelib/thread/qmutex.cpp index 54b3ed4..72f87b7 100644 --- a/src/corelib/thread/qmutex.cpp +++ b/src/corelib/thread/qmutex.cpp @@ -45,6 +45,7 @@ #ifndef QT_NO_THREAD #include "qatomic.h" +#include "qelapsedtimer.h" #include "qthread.h" #include "qmutex_p.h" @@ -439,31 +440,34 @@ void QMutex::lockInternal() return; } - int spinCount = 0; - int lastSpinCount = d->lastSpinCount; - - enum { AdditionalSpins = 20, SpinCountPenalizationDivisor = 4 }; - const int maximumSpinCount = lastSpinCount + AdditionalSpins; - + QElapsedTimer elapsedTimer; + elapsedTimer.start(); do { - if (spinCount++ > maximumSpinCount) { - // didn't get the lock, wait for it + if (elapsedTimer.hasExpired(d->maximumSpinTime)) { + // didn't get the lock, wait for it, since we're not going to gain anything by spinning more + int spinTime = elapsedTimer.restart(); bool isLocked = d->wait(); Q_ASSERT_X(isLocked, "QMutex::lock", "Internal error, infinite wait has timed out."); Q_UNUSED(isLocked); - // decrease the lastSpinCount since we didn't actually get the lock by spinning - spinCount = -d->lastSpinCount / SpinCountPenalizationDivisor; - break; + int maximumSpinTime = d->maximumSpinTime; + int waitTime = elapsedTimer.elapsed(); + // adjust the spin count when spinning does not benefit contention performance + if (spinTime + waitTime > QMutexPrivate::MaximumSpinTimeThreshold) { + // long waits, stop spinning + d->maximumSpinTime = 0; + } else if (waitTime < maximumSpinTime) { + // never spin more than the minimum wait time (otherwise we may perform worse) + d->maximumSpinTime = waitTime; + } + return; } + // be a good citizen... yielding lets something else run if there is something to run, but may also relieve memory pressure if not + QThread::yieldCurrentThread(); } while (d->contenders != 0 || !d->contenders.testAndSetAcquire(0, 1)); - // adjust the last spin lock count - lastSpinCount = d->lastSpinCount; - d->lastSpinCount = spinCount >= 0 - ? qMax(lastSpinCount, spinCount) - : lastSpinCount + spinCount; + // spinning is working, do not change the spin time } /*! diff --git a/src/corelib/thread/qmutex_p.h b/src/corelib/thread/qmutex_p.h index 2d45cfb..6de42ad 100644 --- a/src/corelib/thread/qmutex_p.h +++ b/src/corelib/thread/qmutex_p.h @@ -72,7 +72,9 @@ public: bool wait(int timeout = -1); void wakeUp(); - volatile int lastSpinCount; + // half of a frame (in ms) at 60fps + enum { MaximumSpinTimeThreshold = 8 }; + volatile int maximumSpinTime; Qt::HANDLE owner; uint count; diff --git a/src/corelib/thread/qmutex_unix.cpp b/src/corelib/thread/qmutex_unix.cpp index e872187..48014cc 100644 --- a/src/corelib/thread/qmutex_unix.cpp +++ b/src/corelib/thread/qmutex_unix.cpp @@ -74,7 +74,7 @@ static void report_error(int code, const char *where, const char *what) QMutexPrivate::QMutexPrivate(QMutex::RecursionMode mode) - : QMutexData(mode), lastSpinCount(0), owner(0), count(0) + : QMutexData(mode), maximumSpinTime(MaximumSpinTimeThreshold), owner(0), count(0) { #if defined(Q_OS_MAC) kern_return_t r = semaphore_create(mach_task_self(), &mach_semaphore, SYNC_POLICY_FIFO, 0); diff --git a/src/corelib/thread/qmutex_win.cpp b/src/corelib/thread/qmutex_win.cpp index c278f04..89e8b87 100644 --- a/src/corelib/thread/qmutex_win.cpp +++ b/src/corelib/thread/qmutex_win.cpp @@ -48,7 +48,7 @@ QT_BEGIN_NAMESPACE QMutexPrivate::QMutexPrivate(QMutex::RecursionMode mode) - : QMutexData(mode), lastSpinCount(0), owner(0), count(0) + : QMutexData(mode), maximumSpinTime(MaximumSpinTimeThreshold), owner(0), count(0) { event = CreateEvent(0, FALSE, FALSE, 0); if (!event) -- cgit v0.12 From 6c1180505a0ac55bfd0eac87c2a61103a8fdec14 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Fri, 1 Oct 2010 10:21:10 +0200 Subject: Store and track spin times in nanosecond resolution Use the new QElapsedTimer::nsecsElapsed() and store all values in qint64 instead of int. The maximum spin time threshold is now 1000000ns, or 1ms. Spinning for longer than 1ms is just a waste of time, CPU, and battery. Reviewed-by: joao --- src/corelib/thread/qmutex.cpp | 9 +++++---- src/corelib/thread/qmutex_p.h | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/corelib/thread/qmutex.cpp b/src/corelib/thread/qmutex.cpp index 72f87b7..03e623f 100644 --- a/src/corelib/thread/qmutex.cpp +++ b/src/corelib/thread/qmutex.cpp @@ -443,16 +443,17 @@ void QMutex::lockInternal() QElapsedTimer elapsedTimer; elapsedTimer.start(); do { - if (elapsedTimer.hasExpired(d->maximumSpinTime)) { + qint64 spinTime = elapsedTimer.nsecsElapsed(); + if (spinTime > d->maximumSpinTime) { // didn't get the lock, wait for it, since we're not going to gain anything by spinning more - int spinTime = elapsedTimer.restart(); + elapsedTimer.start(); bool isLocked = d->wait(); Q_ASSERT_X(isLocked, "QMutex::lock", "Internal error, infinite wait has timed out."); Q_UNUSED(isLocked); - int maximumSpinTime = d->maximumSpinTime; - int waitTime = elapsedTimer.elapsed(); + qint64 maximumSpinTime = d->maximumSpinTime; + qint64 waitTime = elapsedTimer.nsecsElapsed(); // adjust the spin count when spinning does not benefit contention performance if (spinTime + waitTime > QMutexPrivate::MaximumSpinTimeThreshold) { // long waits, stop spinning diff --git a/src/corelib/thread/qmutex_p.h b/src/corelib/thread/qmutex_p.h index 6de42ad..fa6e879 100644 --- a/src/corelib/thread/qmutex_p.h +++ b/src/corelib/thread/qmutex_p.h @@ -72,9 +72,9 @@ public: bool wait(int timeout = -1); void wakeUp(); - // half of a frame (in ms) at 60fps - enum { MaximumSpinTimeThreshold = 8 }; - volatile int maximumSpinTime; + // 1ms = 1000000ns + enum { MaximumSpinTimeThreshold = 1000000 }; + volatile qint64 maximumSpinTime; Qt::HANDLE owner; uint count; -- cgit v0.12 From 44cf2baeb07bf48270a6a41c8f1433517130ba01 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Fri, 1 Oct 2010 10:22:10 +0200 Subject: Track average wait times under our maximum spin time threshold Further observation shows that spin times slightly over the average wait time produce the best results. This change keeps a heavily weighted average of the wait times under 1.5ms (1.5 times the max spin threshold), and adjusts the spin time to be 150% of the average wait time. Introduce spin time adjustments when spin locking works, and adjust to between 150% of the average wait time and the maximum threshold. Reviewed-by: joao --- src/corelib/thread/qmutex.cpp | 24 ++++++++++++++++++------ src/corelib/thread/qmutex_p.h | 1 + src/corelib/thread/qmutex_unix.cpp | 2 +- src/corelib/thread/qmutex_win.cpp | 2 +- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/corelib/thread/qmutex.cpp b/src/corelib/thread/qmutex.cpp index 03e623f..1009f7b 100644 --- a/src/corelib/thread/qmutex.cpp +++ b/src/corelib/thread/qmutex.cpp @@ -453,14 +453,20 @@ void QMutex::lockInternal() Q_UNUSED(isLocked); qint64 maximumSpinTime = d->maximumSpinTime; - qint64 waitTime = elapsedTimer.nsecsElapsed(); + qint64 averageWaitTime = d->averageWaitTime; + qint64 actualWaitTime = elapsedTimer.nsecsElapsed(); + if (actualWaitTime < (QMutexPrivate::MaximumSpinTimeThreshold * 3 / 2)) { + // measure the wait times + averageWaitTime = d->averageWaitTime = qMin((averageWaitTime + actualWaitTime) / 2, qint64(QMutexPrivate::MaximumSpinTimeThreshold)); + } + // adjust the spin count when spinning does not benefit contention performance - if (spinTime + waitTime > QMutexPrivate::MaximumSpinTimeThreshold) { + if ((spinTime + actualWaitTime) - qint64(QMutexPrivate::MaximumSpinTimeThreshold) >= qint64(QMutexPrivate::MaximumSpinTimeThreshold)) { // long waits, stop spinning d->maximumSpinTime = 0; - } else if (waitTime < maximumSpinTime) { - // never spin more than the minimum wait time (otherwise we may perform worse) - d->maximumSpinTime = waitTime; + } else { + // allow spinning if wait times decrease, but never spin more than the average wait time (otherwise we may perform worse) + d->maximumSpinTime = qBound(qint64(averageWaitTime * 3 / 2), maximumSpinTime / 2, qint64(QMutexPrivate::MaximumSpinTimeThreshold)); } return; } @@ -468,7 +474,13 @@ void QMutex::lockInternal() QThread::yieldCurrentThread(); } while (d->contenders != 0 || !d->contenders.testAndSetAcquire(0, 1)); - // spinning is working, do not change the spin time + // spinning is working, do not change the spin time (unless we are using much less time than allowed to spin) + qint64 maximumSpinTime = d->maximumSpinTime; + qint64 spinTime = elapsedTimer.nsecsElapsed(); + if (spinTime < maximumSpinTime / 2) { + // we are using much less time than we need, adjust the limit + d->maximumSpinTime = qBound(qint64(d->averageWaitTime * 3 / 2), maximumSpinTime / 2, qint64(QMutexPrivate::MaximumSpinTimeThreshold)); + } } /*! diff --git a/src/corelib/thread/qmutex_p.h b/src/corelib/thread/qmutex_p.h index fa6e879..9d40bea 100644 --- a/src/corelib/thread/qmutex_p.h +++ b/src/corelib/thread/qmutex_p.h @@ -75,6 +75,7 @@ public: // 1ms = 1000000ns enum { MaximumSpinTimeThreshold = 1000000 }; volatile qint64 maximumSpinTime; + volatile qint64 averageWaitTime; Qt::HANDLE owner; uint count; diff --git a/src/corelib/thread/qmutex_unix.cpp b/src/corelib/thread/qmutex_unix.cpp index 48014cc..0e09ea0 100644 --- a/src/corelib/thread/qmutex_unix.cpp +++ b/src/corelib/thread/qmutex_unix.cpp @@ -74,7 +74,7 @@ static void report_error(int code, const char *where, const char *what) QMutexPrivate::QMutexPrivate(QMutex::RecursionMode mode) - : QMutexData(mode), maximumSpinTime(MaximumSpinTimeThreshold), owner(0), count(0) + : QMutexData(mode), maximumSpinTime(MaximumSpinTimeThreshold), averageWaitTime(0), owner(0), count(0) { #if defined(Q_OS_MAC) kern_return_t r = semaphore_create(mach_task_self(), &mach_semaphore, SYNC_POLICY_FIFO, 0); diff --git a/src/corelib/thread/qmutex_win.cpp b/src/corelib/thread/qmutex_win.cpp index 89e8b87..a759caa 100644 --- a/src/corelib/thread/qmutex_win.cpp +++ b/src/corelib/thread/qmutex_win.cpp @@ -48,7 +48,7 @@ QT_BEGIN_NAMESPACE QMutexPrivate::QMutexPrivate(QMutex::RecursionMode mode) - : QMutexData(mode), maximumSpinTime(MaximumSpinTimeThreshold), owner(0), count(0) + : QMutexData(mode), maximumSpinTime(MaximumSpinTimeThreshold), averageWaitTime(0), owner(0), count(0) { event = CreateEvent(0, FALSE, FALSE, 0); if (!event) -- cgit v0.12 From 215748d3be876ffec5d72f2d1dfcce56bb7a5937 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 20 Dec 2010 17:38:05 +0200 Subject: Fix using QFileDialog statics in Symbian. Trying to access files outside C:/data with QFileDialog static functions either paniced or simply threw an exception depending on what you were trying to do exactly. To fix this, QFileDialog static functions now will default to QDir::rootPath() if the path specified by user is invalid. Task-number: QTBUG-16204 Reviewed-by: Janne Koskinen --- src/gui/dialogs/qfiledialog_symbian.cpp | 69 ++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 28 deletions(-) diff --git a/src/gui/dialogs/qfiledialog_symbian.cpp b/src/gui/dialogs/qfiledialog_symbian.cpp index 1f70305..d82ce2b 100644 --- a/src/gui/dialogs/qfiledialog_symbian.cpp +++ b/src/gui/dialogs/qfiledialog_symbian.cpp @@ -119,36 +119,49 @@ static QString launchSymbianDialog(const QString dialogCaption, const QString st { QString selection; #if defined(Q_WS_S60) && defined(SYMBIAN_VERSION_SYMBIAN3) - QT_TRAP_THROWING( - TFileName startFolder; - if (!startDirectory.isEmpty()) { - QString dir = QDir::toNativeSeparators(startDirectory); + TFileName startFolder; + if (!startDirectory.isEmpty()) { + QString dir = QDir::toNativeSeparators(QFileDialogPrivate::workingDirectory(startDirectory)); + startFolder = qt_QString2TPtrC(dir); + } + TInt types = AknCommonDialogsDynMem::EMemoryTypeMMCExternal| + AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage| + AknCommonDialogsDynMem::EMemoryTypePhone; + + TPtrC titlePtr(qt_QString2TPtrC(dialogCaption)); + TFileName target; + bool select = false; + int tryCount = 2; + while (tryCount--) { + TInt err(KErrNone); + TRAP(err, + if (dialogMode == DialogOpen) { + CExtensionFilter* extensionFilter = new (ELeave) CExtensionFilter; + CleanupStack::PushL(extensionFilter); + extensionFilter->setFilter(filter); + select = AknCommonDialogsDynMem::RunSelectDlgLD(types, target, + startFolder, NULL, NULL, titlePtr, extensionFilter); + CleanupStack::Pop(extensionFilter); + } else if (dialogMode == DialogSave) { + select = AknCommonDialogsDynMem::RunSaveDlgLD(types, target, + startFolder, NULL, NULL, titlePtr); + } else if (dialogMode == DialogFolder) { + select = AknCommonDialogsDynMem::RunFolderSelectDlgLD(types, target, startFolder, + 0, 0, titlePtr, NULL, NULL); + } + ); + + if (err == KErrNone) { + tryCount = 0; + } else { + // Symbian native file dialog doesn't allow accessing files outside C:/Data + // It will always leave in that case, so default into QDir::rootPath() in error cases. + QString dir = QDir::toNativeSeparators(QDir::rootPath()); startFolder = qt_QString2TPtrC(dir); } - TInt types = AknCommonDialogsDynMem::EMemoryTypeMMCExternal| - AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage| - AknCommonDialogsDynMem::EMemoryTypePhone; - - TPtrC titlePtr(qt_QString2TPtrC(dialogCaption)); - TFileName target; - bool select = false; - if (dialogMode == DialogOpen) { - CExtensionFilter* extensionFilter = new (ELeave) CExtensionFilter; - CleanupStack::PushL(extensionFilter); - extensionFilter->setFilter(filter); - select = AknCommonDialogsDynMem::RunSelectDlgLD(types, target, - startFolder, NULL, NULL, titlePtr, extensionFilter); - CleanupStack::Pop(extensionFilter); - } else if (dialogMode == DialogSave) { - select = AknCommonDialogsDynMem::RunSaveDlgLD(types, target, - startFolder, NULL, NULL, titlePtr); - } else if (dialogMode == DialogFolder) { - select = AknCommonDialogsDynMem::RunFolderSelectDlgLD(types, target, startFolder, - 0, 0, titlePtr, NULL, NULL); - } - if (select) - selection.append(qt_TDesC2QString(target)); - ); + } + if (select) + selection.append(qt_TDesC2QString(target)); #endif return selection; } -- cgit v0.12 From e8d42e5861bdfd6acec3bf1ccc8d55b09b1cc573 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 20 Dec 2010 17:53:57 +0200 Subject: Remove few compile warnings Reviewed-by: Janne Koskinen --- src/gui/dialogs/qfiledialog_symbian.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/dialogs/qfiledialog_symbian.cpp b/src/gui/dialogs/qfiledialog_symbian.cpp index d82ce2b..1fc5f5e 100644 --- a/src/gui/dialogs/qfiledialog_symbian.cpp +++ b/src/gui/dialogs/qfiledialog_symbian.cpp @@ -64,7 +64,7 @@ public: filterList.clear(); if (filter.left(2) == QLatin1String("*.")) { //Filter has only extensions - filterList << filter.split(" "); + filterList << filter.split(QLatin1String(" ")); return; } else { //Extensions are in parenthesis and there may be several filters @@ -75,7 +75,7 @@ public: return; } } - QRegExp rx("\\(([^\\)]*)\\)"); + QRegExp rx(QLatin1String("\\(([^\\)]*)\\)")); int pos = 0; while ((pos = rx.indexIn(filter, pos)) != -1) { filterList << rx.cap(1).split(QLatin1String(" ")); -- cgit v0.12 From 37e630fba7bb1dde3e11567f52a1bd28fafbaec6 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 2 Dec 2010 18:07:29 +0000 Subject: Add autotests for AutoCloseHandle / DontCloseHandle and RFile adoption Extended the existing tests which open a file from a handle to use symbian RFile as well (when testing on symbian). Added a new test to check the file handle is open/closed after closing a QFile, based on whether the file was opened with AutoCloseHandle or not. Reviewed-by: mread --- tests/auto/qfile/test/test.pro | 4 +- tests/auto/qfile/tst_qfile.cpp | 147 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 141 insertions(+), 10 deletions(-) diff --git a/tests/auto/qfile/test/test.pro b/tests/auto/qfile/test/test.pro index 673eacc..c0049b0 100644 --- a/tests/auto/qfile/test/test.pro +++ b/tests/auto/qfile/test/test.pro @@ -37,4 +37,6 @@ win32 { LIBS+=-lole32 -luuid } - +symbian { + LIBS+=-lefsrv +} diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index c19079f..d9b8283 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -70,6 +70,8 @@ #elif defined(Q_OS_WINCE) # include # include +#elif defined(Q_OS_SYMBIAN) +# include #endif #include @@ -221,6 +223,8 @@ private slots: #endif void caseSensitivity(); + void autocloseHandle(); + // --- Task related tests below this line void task167217(); @@ -233,12 +237,20 @@ public: void invalidFile(); private: - enum FileType { OpenQFile, OpenFd, OpenStream }; + enum FileType { + OpenQFile, + OpenFd, + OpenStream, +#ifdef Q_OS_SYMBIAN + OpenRFile, +#endif + NumberOfFileTypes + }; void openStandardStreamsFileDescriptors(); void openStandardStreamsBufferedStreams(); - bool openFd(QFile &file, QIODevice::OpenMode mode) + bool openFd(QFile &file, QIODevice::OpenMode mode, QFile::FileHandleFlags handleFlags) { int fdMode = QT_OPEN_LARGEFILE | QT_OPEN_BINARY; @@ -250,10 +262,10 @@ private: fd_ = QT_OPEN(qPrintable(file.fileName()), fdMode); - return (-1 != fd_) && file.open(fd_, mode); + return (-1 != fd_) && file.open(fd_, mode, handleFlags); } - bool openStream(QFile &file, QIODevice::OpenMode mode) + bool openStream(QFile &file, QIODevice::OpenMode mode, QFile::FileHandleFlags handleFlags) { char const *streamMode = ""; @@ -265,10 +277,37 @@ private: stream_ = QT_FOPEN(qPrintable(file.fileName()), streamMode); - return stream_ && file.open(stream_, mode); + return stream_ && file.open(stream_, mode, handleFlags); + } + +#ifdef Q_OS_SYMBIAN + bool openRFile(QFile &file, QIODevice::OpenMode mode, QFile::FileHandleFlags handleFlags) + { + //connect file server first time + if (!rfs_.Handle() && rfs_.Connect() != KErrNone) + return false; + //symbian does not like ./ in filenames, so open by absolute path + QString fileName(QDir::toNativeSeparators(QFileInfo(file).absoluteFilePath())); + TPtrC fn(fileName.utf16(), fileName.length()); + TInt smode = 0; + if (mode & QIODevice::WriteOnly) + smode |= EFileWrite; + if (mode & QIODevice::ReadOnly) + smode |= EFileRead; + TInt r; + if ((mode & QIODevice::Truncate) || (!(mode & QIODevice::ReadOnly) && !(mode & QIODevice::Append))) { + r = rfile_.Replace(rfs_, fn, smode); + } else { + r = rfile_.Open(rfs_, fn, smode); + if (r == KErrNotFound && (mode & QIODevice::WriteOnly)) { + r = rfile_.Create(rfs_, fn, smode); + } + } + return (r == KErrNone) && file.open(rfile_, mode, handleFlags); } +#endif - bool openFile(QFile &file, QIODevice::OpenMode mode, FileType type = OpenQFile) + bool openFile(QFile &file, QIODevice::OpenMode mode, FileType type = OpenQFile, QFile::FileHandleFlags handleFlags = QFile::DontCloseHandle) { if (mode & QIODevice::WriteOnly && !file.exists()) { @@ -285,10 +324,14 @@ private: return file.open(mode); case OpenFd: - return openFd(file, mode); + return openFd(file, mode, handleFlags); case OpenStream: - return openStream(file, mode); + return openStream(file, mode, handleFlags); +#ifdef Q_OS_SYMBIAN + case OpenRFile: + return openRFile(file, mode, handleFlags); +#endif } return false; @@ -302,6 +345,8 @@ private: QT_CLOSE(fd_); if (stream_) ::fclose(stream_); + if (rfile_.SubSessionHandle()) + rfile_.Close(); fd_ = -1; stream_ = 0; @@ -309,6 +354,10 @@ private: int fd_; FILE *stream_; +#ifdef Q_OS_SYMBIAN + RFs rfs_; + RFile rfile_; +#endif }; tst_QFile::tst_QFile() @@ -2214,6 +2263,9 @@ void tst_QFile::writeLargeDataBlock_data() QTest::newRow("localfile-QFile") << "./largeblockfile.txt" << (int)OpenQFile; QTest::newRow("localfile-Fd") << "./largeblockfile.txt" << (int)OpenFd; QTest::newRow("localfile-Stream") << "./largeblockfile.txt" << (int)OpenStream; +#ifdef Q_OS_SYMBIAN + QTest::newRow("localfile-RFile") << "./largeblockfile.txt" << (int)OpenRFile; +#endif #if defined(Q_OS_WIN) && !defined(Q_OS_WINCE) // Some semi-randomness to avoid collisions. @@ -3100,7 +3152,7 @@ void tst_QFile::openStandardStreams() void tst_QFile::writeNothing() { - for (int i = 0; i < 3; ++i) { + for (int i = 0; i < NumberOfFileTypes; ++i) { QFile file("file.txt"); QVERIFY( openFile(file, QIODevice::WriteOnly | QIODevice::Unbuffered, FileType(i)) ); QVERIFY( 0 == file.write((char *)0, 0) ); @@ -3116,6 +3168,9 @@ void tst_QFile::resize_data() QTest::newRow("native") << int(OpenQFile); QTest::newRow("fileno") << int(OpenFd); QTest::newRow("stream") << int(OpenStream); +#ifdef Q_OS_SYMBIAN + QTest::newRow("rfile") << int(OpenRFile); +#endif } void tst_QFile::resize() @@ -3227,5 +3282,79 @@ void tst_QFile::caseSensitivity() } } +void tst_QFile::autocloseHandle() +{ +#ifdef Q_OS_SYMBIAN + // these tests are a bit different, because using a closed file handle results in a panic rather than error + { + QFile file("readonlyfile"); + QFile file2("readonlyfile"); + QVERIFY(openFile(file, QIODevice::ReadOnly, OpenRFile, QFile::AutoCloseHandle)); + // file is opened with mandatory lock, so opening again should fail + QVERIFY(!file2.open(QIODevice::ReadOnly)); + + file.close(); + // opening again should now succeed (because handle is closed) + QVERIFY(file2.open(QIODevice::ReadOnly)); + } + + { + QFile file("readonlyfile"); + QFile file2("readonlyfile"); + QVERIFY(openFile(file, QIODevice::ReadOnly, OpenRFile, QFile::DontCloseHandle)); + // file is opened with mandatory lock, so opening again should fail + QVERIFY(!file2.open(QIODevice::ReadOnly)); + + file.close(); + // opening again should still fail (because handle is not auto closed) + QVERIFY(!file2.open(QIODevice::ReadOnly)); + + rfile_.Close(); + // now it should succeed + QVERIFY(file2.open(QIODevice::ReadOnly)); + } +#endif + + { + QFile file("readonlyfile"); + QVERIFY(openFile(file, QIODevice::ReadOnly, OpenFd, QFile::AutoCloseHandle)); + file.close(); + //file is closed, read should fail + char buf; + QCOMPARE(::read(fd_, &buf, 1), -1); + QVERIFY(errno = EBADF); + } + + { + QFile file("readonlyfile"); + QVERIFY(openFile(file, QIODevice::ReadOnly, OpenFd, QFile::DontCloseHandle)); + file.close(); + //file is not closed, read should succeed + char buf; + QCOMPARE(::read(fd_, &buf, 1), 1); + ::close(fd_); + } + + { + QFile file("readonlyfile"); + QVERIFY(openFile(file, QIODevice::ReadOnly, OpenStream, QFile::AutoCloseHandle)); + file.close(); + //file is closed, read should fail + char buf; + QCOMPARE(int(::fread(&buf, 1, 1, stream_)), 0); + QVERIFY(::ferror(stream_)); //actual error seems to be OS dependent + } + + { + QFile file("readonlyfile"); + QVERIFY(openFile(file, QIODevice::ReadOnly, OpenStream, QFile::DontCloseHandle)); + file.close(); + //file is not closed, read should succeed + char buf; + QCOMPARE(int(::fread(&buf, 1, 1, stream_)), 1); + ::fclose(stream_); + } +} + QTEST_MAIN(tst_QFile) #include "tst_qfile.moc" -- cgit v0.12 From 2b9690e1b2bceb2923d1e3941186fa74f2457043 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Mon, 20 Dec 2010 15:58:06 +0000 Subject: Update def files Add the new APIs + all the unfrozen changes on master Reviewed-by: Trust Me --- src/s60installs/bwins/QtCoreu.def | 8 +++ src/s60installs/bwins/QtGuiu.def | 95 +++++++++++++++++++++++++++++++- src/s60installs/bwins/QtNetworku.def | 23 +++++--- src/s60installs/eabi/QtCoreu.def | 6 ++ src/s60installs/eabi/QtGuiu.def | 104 ++++++++++++++++++++++++++++++++++- src/s60installs/eabi/QtNetworku.def | 20 ++++--- 6 files changed, 237 insertions(+), 19 deletions(-) diff --git a/src/s60installs/bwins/QtCoreu.def b/src/s60installs/bwins/QtCoreu.def index 84aa246..f2c43e6 100644 --- a/src/s60installs/bwins/QtCoreu.def +++ b/src/s60installs/bwins/QtCoreu.def @@ -4591,3 +4591,11 @@ EXPORTS ?scope@QSystemError@@QAE?AW4ErrorScope@1@XZ @ 4590 NONAME ; enum QSystemError::ErrorScope QSystemError::scope(void) ?toString@QSystemError@@QAE?AVQString@@XZ @ 4591 NONAME ; class QString QSystemError::toString(void) ??0QFileInfo@@QAE@PAVQFileInfoPrivate@@@Z @ 4592 NONAME ; QFileInfo::QFileInfo(class QFileInfoPrivate *) + ?currentUnicodeVersion@QChar@@SA?AW4UnicodeVersion@1@XZ @ 4593 NONAME ; enum QChar::UnicodeVersion QChar::currentUnicodeVersion(void) + ?open@QFSFileEngine@@QAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@ABVRFile@@V?$QFlags@W4FileHandleFlag@QFile@@@@@Z @ 4594 NONAME ; bool QFSFileEngine::open(class QFlags, class RFile const &, class QFlags) + ?open@QFSFileEngine@@QAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@HV?$QFlags@W4FileHandleFlag@QFile@@@@@Z @ 4595 NONAME ; bool QFSFileEngine::open(class QFlags, int, class QFlags) + ?open@QFSFileEngine@@QAE_NV?$QFlags@W4OpenModeFlag@QIODevice@@@@PAU__sFILE@@V?$QFlags@W4FileHandleFlag@QFile@@@@@Z @ 4596 NONAME ; bool QFSFileEngine::open(class QFlags, struct __sFILE *, class QFlags) + ?open@QFile@@QAE_NABVRFile@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@V?$QFlags@W4FileHandleFlag@QFile@@@@@Z @ 4597 NONAME ; bool QFile::open(class RFile const &, class QFlags, class QFlags) + ?open@QFile@@QAE_NHV?$QFlags@W4OpenModeFlag@QIODevice@@@@V?$QFlags@W4FileHandleFlag@QFile@@@@@Z @ 4598 NONAME ; bool QFile::open(int, class QFlags, class QFlags) + ?open@QFile@@QAE_NPAU__sFILE@@V?$QFlags@W4OpenModeFlag@QIODevice@@@@V?$QFlags@W4FileHandleFlag@QFile@@@@@Z @ 4599 NONAME ; bool QFile::open(struct __sFILE *, class QFlags, class QFlags) + diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def index 8dcc235..322d88b 100644 --- a/src/s60installs/bwins/QtGuiu.def +++ b/src/s60installs/bwins/QtGuiu.def @@ -2725,7 +2725,7 @@ EXPORTS ?clearSelection@QTextCursor@@QAEXXZ @ 2724 NONAME ; void QTextCursor::clearSelection(void) ?clearSpans@QTableView@@QAEXXZ @ 2725 NONAME ; void QTableView::clearSpans(void) ?clearString@QLineControl@@ABE?AVQString@@II@Z @ 2726 NONAME ; class QString QLineControl::clearString(unsigned int, unsigned int) const - ?clearSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 2727 NONAME ; void QGraphicsItemPrivate::clearSubFocus(class QGraphicsItem *) + ?clearSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 2727 NONAME ABSENT ; void QGraphicsItemPrivate::clearSubFocus(class QGraphicsItem *) ?clearUndo@QLineControl@@QAEXXZ @ 2728 NONAME ; void QLineControl::clearUndo(void) ?click@QAbstractButton@@QAEXXZ @ 2729 NONAME ; void QAbstractButton::click(void) ?clicked@QAbstractButton@@IAEX_N@Z @ 2730 NONAME ; void QAbstractButton::clicked(bool) @@ -9914,7 +9914,7 @@ EXPORTS ?setStyleSheet@QWidget@@QAEXABVQString@@@Z @ 9913 NONAME ; void QWidget::setStyleSheet(class QString const &) ?setStyleStrategy@QFont@@QAEXW4StyleStrategy@1@@Z @ 9914 NONAME ; void QFont::setStyleStrategy(enum QFont::StyleStrategy) ?setStyle_helper@QWidgetPrivate@@QAEXPAVQStyle@@_N1@Z @ 9915 NONAME ; void QWidgetPrivate::setStyle_helper(class QStyle *, bool, bool) - ?setSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 9916 NONAME ; void QGraphicsItemPrivate::setSubFocus(class QGraphicsItem *) + ?setSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 9916 NONAME ABSENT ; void QGraphicsItemPrivate::setSubFocus(class QGraphicsItem *) ?setSubTitle@QWizardPage@@QAEXABVQString@@@Z @ 9917 NONAME ; void QWizardPage::setSubTitle(class QString const &) ?setSubTitleFormat@QWizard@@QAEXW4TextFormat@Qt@@@Z @ 9918 NONAME ; void QWizard::setSubTitleFormat(enum Qt::TextFormat) ?setSubmitPolicy@QDataWidgetMapper@@QAEXW4SubmitPolicy@1@@Z @ 9919 NONAME ; void QDataWidgetMapper::setSubmitPolicy(enum QDataWidgetMapper::SubmitPolicy) @@ -13051,4 +13051,95 @@ EXPORTS ??_EQBlittable@@UAE@I@Z @ 13050 NONAME ; QBlittable::~QBlittable(unsigned int) ?qt_addBitmapToPath@@YAXMMPBEHHHPAVQPainterPath@@@Z @ 13051 NONAME ; void qt_addBitmapToPath(float, float, unsigned char const *, int, int, int, class QPainterPath *) ?drawGlyphs@QPainter@@QAEXABVQPointF@@ABVQGlyphs@@@Z @ 13052 NONAME ; void QPainter::drawGlyphs(class QPointF const &, class QGlyphs const &) + ??0QFlickGesture@@QAE@PAVQObject@@W4MouseButton@Qt@@0@Z @ 13053 NONAME ; QFlickGesture::QFlickGesture(class QObject *, enum Qt::MouseButton, class QObject *) + ??0QScrollEvent@@QAE@ABVQPointF@@0W4ScrollState@0@@Z @ 13054 NONAME ; QScrollEvent::QScrollEvent(class QPointF const &, class QPointF const &, enum QScrollEvent::ScrollState) + ??0QScrollPrepareEvent@@QAE@ABVQPointF@@@Z @ 13055 NONAME ; QScrollPrepareEvent::QScrollPrepareEvent(class QPointF const &) + ??0QScroller@@AAE@PAVQObject@@@Z @ 13056 NONAME ; QScroller::QScroller(class QObject *) + ??0QScrollerProperties@@QAE@ABV0@@Z @ 13057 NONAME ; QScrollerProperties::QScrollerProperties(class QScrollerProperties const &) + ??0QScrollerProperties@@QAE@XZ @ 13058 NONAME ; QScrollerProperties::QScrollerProperties(void) + ??1QFlickGesture@@UAE@XZ @ 13059 NONAME ; QFlickGesture::~QFlickGesture(void) + ??1QScrollEvent@@UAE@XZ @ 13060 NONAME ; QScrollEvent::~QScrollEvent(void) + ??1QScrollPrepareEvent@@UAE@XZ @ 13061 NONAME ; QScrollPrepareEvent::~QScrollPrepareEvent(void) + ??1QScroller@@EAE@XZ @ 13062 NONAME ; QScroller::~QScroller(void) + ??1QScrollerProperties@@UAE@XZ @ 13063 NONAME ; QScrollerProperties::~QScrollerProperties(void) + ??4QScrollerProperties@@QAEAAV0@ABV0@@Z @ 13064 NONAME ; class QScrollerProperties & QScrollerProperties::operator=(class QScrollerProperties const &) + ??8QScrollerProperties@@QBE_NABV0@@Z @ 13065 NONAME ; bool QScrollerProperties::operator==(class QScrollerProperties const &) const + ??9QScrollerProperties@@QBE_NABV0@@Z @ 13066 NONAME ; bool QScrollerProperties::operator!=(class QScrollerProperties const &) const + ??_EQFlickGesture@@UAE@I@Z @ 13067 NONAME ; QFlickGesture::~QFlickGesture(unsigned int) + ??_EQScrollEvent@@UAE@I@Z @ 13068 NONAME ; QScrollEvent::~QScrollEvent(unsigned int) + ??_EQScrollPrepareEvent@@UAE@I@Z @ 13069 NONAME ; QScrollPrepareEvent::~QScrollPrepareEvent(unsigned int) + ??_EQScroller@@UAE@I@Z @ 13070 NONAME ; QScroller::~QScroller(unsigned int) + ??_EQScrollerProperties@@UAE@I@Z @ 13071 NONAME ; QScrollerProperties::~QScrollerProperties(unsigned int) + ?activeScrollers@QScroller@@SA?AV?$QList@PAVQScroller@@@@XZ @ 13072 NONAME ; class QList QScroller::activeScrollers(void) + ?canStartScrollingAt@QAbstractScrollAreaPrivate@@QAE_NABVQPoint@@@Z @ 13073 NONAME ; bool QAbstractScrollAreaPrivate::canStartScrollingAt(class QPoint const &) + ?clearSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@0@Z @ 13074 NONAME ; void QGraphicsItemPrivate::clearSubFocus(class QGraphicsItem *, class QGraphicsItem *) + ?contentPos@QScrollEvent@@QBE?AVQPointF@@XZ @ 13075 NONAME ; class QPointF QScrollEvent::contentPos(void) const + ?contentPos@QScrollPrepareEvent@@QBE?AVQPointF@@XZ @ 13076 NONAME ; class QPointF QScrollPrepareEvent::contentPos(void) const + ?contentPosRange@QScrollPrepareEvent@@QBE?AVQRectF@@XZ @ 13077 NONAME ; class QRectF QScrollPrepareEvent::contentPosRange(void) const + ?d_func@QFlickGesture@@AAEPAVQFlickGesturePrivate@@XZ @ 13078 NONAME ; class QFlickGesturePrivate * QFlickGesture::d_func(void) + ?d_func@QFlickGesture@@ABEPBVQFlickGesturePrivate@@XZ @ 13079 NONAME ; class QFlickGesturePrivate const * QFlickGesture::d_func(void) const + ?d_func@QScrollEvent@@AAEPAVQScrollEventPrivate@@XZ @ 13080 NONAME ; class QScrollEventPrivate * QScrollEvent::d_func(void) + ?d_func@QScrollEvent@@ABEPBVQScrollEventPrivate@@XZ @ 13081 NONAME ; class QScrollEventPrivate const * QScrollEvent::d_func(void) const + ?d_func@QScrollPrepareEvent@@AAEPAVQScrollPrepareEventPrivate@@XZ @ 13082 NONAME ; class QScrollPrepareEventPrivate * QScrollPrepareEvent::d_func(void) + ?d_func@QScrollPrepareEvent@@ABEPBVQScrollPrepareEventPrivate@@XZ @ 13083 NONAME ; class QScrollPrepareEventPrivate const * QScrollPrepareEvent::d_func(void) const + ?d_func@QScroller@@AAEPAVQScrollerPrivate@@XZ @ 13084 NONAME ; class QScrollerPrivate * QScroller::d_func(void) + ?d_func@QScroller@@ABEPBVQScrollerPrivate@@XZ @ 13085 NONAME ; class QScrollerPrivate const * QScroller::d_func(void) const + ?ensureVisible@QScroller@@QAEXABVQRectF@@MM@Z @ 13086 NONAME ; void QScroller::ensureVisible(class QRectF const &, float, float) + ?ensureVisible@QScroller@@QAEXABVQRectF@@MMH@Z @ 13087 NONAME ; void QScroller::ensureVisible(class QRectF const &, float, float, int) + ?finalPosition@QScroller@@QBE?AVQPointF@@XZ @ 13088 NONAME ; class QPointF QScroller::finalPosition(void) const + ?getStaticMetaObject@QFlickGesture@@SAABUQMetaObject@@XZ @ 13089 NONAME ; struct QMetaObject const & QFlickGesture::getStaticMetaObject(void) + ?getStaticMetaObject@QScroller@@SAABUQMetaObject@@XZ @ 13090 NONAME ; struct QMetaObject const & QScroller::getStaticMetaObject(void) + ?grabGesture@QScroller@@SA?AW4GestureType@Qt@@PAVQObject@@W4ScrollerGestureType@1@@Z @ 13091 NONAME ; enum Qt::GestureType QScroller::grabGesture(class QObject *, enum QScroller::ScrollerGestureType) + ?grabbedGesture@QScroller@@SA?AW4GestureType@Qt@@PAVQObject@@@Z @ 13092 NONAME ; enum Qt::GestureType QScroller::grabbedGesture(class QObject *) + ?handleInput@QScroller@@QAE_NW4Input@1@ABVQPointF@@_J@Z @ 13093 NONAME ; bool QScroller::handleInput(enum QScroller::Input, class QPointF const &, long long) + ?hasScroller@QScroller@@SA_NPAVQObject@@@Z @ 13094 NONAME ; bool QScroller::hasScroller(class QObject *) + ?metaObject@QFlickGesture@@UBEPBUQMetaObject@@XZ @ 13095 NONAME ; struct QMetaObject const * QFlickGesture::metaObject(void) const + ?metaObject@QScroller@@UBEPBUQMetaObject@@XZ @ 13096 NONAME ; struct QMetaObject const * QScroller::metaObject(void) const + ?overshootDistance@QScrollEvent@@QBE?AVQPointF@@XZ @ 13097 NONAME ; class QPointF QScrollEvent::overshootDistance(void) const + ?pixelPerMeter@QScroller@@QBE?AVQPointF@@XZ @ 13098 NONAME ; class QPointF QScroller::pixelPerMeter(void) const + ?qGamma_correct_back_to_linear_cs@@YAXPAVQImage@@@Z @ 13099 NONAME ; void qGamma_correct_back_to_linear_cs(class QImage *) + ?qt_metacall@QFlickGesture@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 13100 NONAME ; int QFlickGesture::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QScroller@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 13101 NONAME ; int QScroller::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacast@QFlickGesture@@UAEPAXPBD@Z @ 13102 NONAME ; void * QFlickGesture::qt_metacast(char const *) + ?qt_metacast@QScroller@@UAEPAXPBD@Z @ 13103 NONAME ; void * QScroller::qt_metacast(char const *) + ?resendPrepareEvent@QScroller@@QAEXXZ @ 13104 NONAME ; void QScroller::resendPrepareEvent(void) + ?resetCursorBlinkTimer@QLineControl@@QAEXXZ @ 13105 NONAME ; void QLineControl::resetCursorBlinkTimer(void) + ?scrollMetric@QScrollerProperties@@QBE?AVQVariant@@W4ScrollMetric@1@@Z @ 13106 NONAME ; class QVariant QScrollerProperties::scrollMetric(enum QScrollerProperties::ScrollMetric) const + ?scrollState@QScrollEvent@@QBE?AW4ScrollState@1@XZ @ 13107 NONAME ; enum QScrollEvent::ScrollState QScrollEvent::scrollState(void) const + ?scrollTo@QScroller@@QAEXABVQPointF@@@Z @ 13108 NONAME ; void QScroller::scrollTo(class QPointF const &) + ?scrollTo@QScroller@@QAEXABVQPointF@@H@Z @ 13109 NONAME ; void QScroller::scrollTo(class QPointF const &, int) + ?scroller@QScroller@@SAPAV1@PAVQObject@@@Z @ 13110 NONAME ; class QScroller * QScroller::scroller(class QObject *) + ?scroller@QScroller@@SAPBV1@PBVQObject@@@Z @ 13111 NONAME ; class QScroller const * QScroller::scroller(class QObject const *) + ?scrollerProperties@QScroller@@QBE?AVQScrollerProperties@@XZ @ 13112 NONAME ; class QScrollerProperties QScroller::scrollerProperties(void) const + ?scrollerPropertiesChanged@QScroller@@IAEXABVQScrollerProperties@@@Z @ 13113 NONAME ; void QScroller::scrollerPropertiesChanged(class QScrollerProperties const &) + ?setContentPos@QScrollPrepareEvent@@QAEXABVQPointF@@@Z @ 13114 NONAME ; void QScrollPrepareEvent::setContentPos(class QPointF const &) + ?setContentPosRange@QScrollPrepareEvent@@QAEXABVQRectF@@@Z @ 13115 NONAME ; void QScrollPrepareEvent::setContentPosRange(class QRectF const &) + ?setDefaultScrollerProperties@QScrollerProperties@@SAXABV1@@Z @ 13116 NONAME ; void QScrollerProperties::setDefaultScrollerProperties(class QScrollerProperties const &) + ?setScrollMetric@QScrollerProperties@@QAEXW4ScrollMetric@1@ABVQVariant@@@Z @ 13117 NONAME ; void QScrollerProperties::setScrollMetric(enum QScrollerProperties::ScrollMetric, class QVariant const &) + ?setScrollerProperties@QScroller@@QAEXABVQScrollerProperties@@@Z @ 13118 NONAME ; void QScroller::setScrollerProperties(class QScrollerProperties const &) + ?setSnapPositionsX@QScroller@@QAEXABV?$QList@M@@@Z @ 13119 NONAME ; void QScroller::setSnapPositionsX(class QList const &) + ?setSnapPositionsX@QScroller@@QAEXMM@Z @ 13120 NONAME ; void QScroller::setSnapPositionsX(float, float) + ?setSnapPositionsY@QScroller@@QAEXABV?$QList@M@@@Z @ 13121 NONAME ; void QScroller::setSnapPositionsY(class QList const &) + ?setSnapPositionsY@QScroller@@QAEXMM@Z @ 13122 NONAME ; void QScroller::setSnapPositionsY(float, float) + ?setSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@0@Z @ 13123 NONAME ; void QGraphicsItemPrivate::setSubFocus(class QGraphicsItem *, class QGraphicsItem *) + ?setViewportSize@QScrollPrepareEvent@@QAEXABVQSizeF@@@Z @ 13124 NONAME ; void QScrollPrepareEvent::setViewportSize(class QSizeF const &) + ?startPos@QScrollPrepareEvent@@QBE?AVQPointF@@XZ @ 13125 NONAME ; class QPointF QScrollPrepareEvent::startPos(void) const + ?state@QScroller@@QBE?AW4State@1@XZ @ 13126 NONAME ; enum QScroller::State QScroller::state(void) const + ?stateChanged@QScroller@@IAEXW4State@1@@Z @ 13127 NONAME ; void QScroller::stateChanged(enum QScroller::State) + ?stop@QScroller@@QAEXXZ @ 13128 NONAME ; void QScroller::stop(void) + ?target@QScroller@@QBEPAVQObject@@XZ @ 13129 NONAME ; class QObject * QScroller::target(void) const + ?tr@QFlickGesture@@SA?AVQString@@PBD0@Z @ 13130 NONAME ; class QString QFlickGesture::tr(char const *, char const *) + ?tr@QFlickGesture@@SA?AVQString@@PBD0H@Z @ 13131 NONAME ; class QString QFlickGesture::tr(char const *, char const *, int) + ?tr@QScroller@@SA?AVQString@@PBD0@Z @ 13132 NONAME ; class QString QScroller::tr(char const *, char const *) + ?tr@QScroller@@SA?AVQString@@PBD0H@Z @ 13133 NONAME ; class QString QScroller::tr(char const *, char const *, int) + ?trUtf8@QFlickGesture@@SA?AVQString@@PBD0@Z @ 13134 NONAME ; class QString QFlickGesture::trUtf8(char const *, char const *) + ?trUtf8@QFlickGesture@@SA?AVQString@@PBD0H@Z @ 13135 NONAME ; class QString QFlickGesture::trUtf8(char const *, char const *, int) + ?trUtf8@QScroller@@SA?AVQString@@PBD0@Z @ 13136 NONAME ; class QString QScroller::trUtf8(char const *, char const *) + ?trUtf8@QScroller@@SA?AVQString@@PBD0H@Z @ 13137 NONAME ; class QString QScroller::trUtf8(char const *, char const *, int) + ?ungrabGesture@QScroller@@SAXPAVQObject@@@Z @ 13138 NONAME ; void QScroller::ungrabGesture(class QObject *) + ?unsetDefaultScrollerProperties@QScrollerProperties@@SAXXZ @ 13139 NONAME ; void QScrollerProperties::unsetDefaultScrollerProperties(void) + ?velocity@QScroller@@QBE?AVQPointF@@XZ @ 13140 NONAME ; class QPointF QScroller::velocity(void) const + ?viewportSize@QScrollPrepareEvent@@QBE?AVQSizeF@@XZ @ 13141 NONAME ; class QSizeF QScrollPrepareEvent::viewportSize(void) const + ?staticMetaObject@QScroller@@2UQMetaObject@@B @ 13142 NONAME ; struct QMetaObject const QScroller::staticMetaObject + ?staticMetaObject@QFlickGesture@@2UQMetaObject@@B @ 13143 NONAME ; struct QMetaObject const QFlickGesture::staticMetaObject diff --git a/src/s60installs/bwins/QtNetworku.def b/src/s60installs/bwins/QtNetworku.def index 865aa54..b01324c 100644 --- a/src/s60installs/bwins/QtNetworku.def +++ b/src/s60installs/bwins/QtNetworku.def @@ -1001,7 +1001,7 @@ EXPORTS ?staticMetaObject@QNetworkSession@@2UQMetaObject@@B @ 1000 NONAME ; struct QMetaObject const QNetworkSession::staticMetaObject ?trUtf8@QBearerEngine@@SA?AVQString@@PBD0@Z @ 1001 NONAME ; class QString QBearerEngine::trUtf8(char const *, char const *) ?privateConfiguration@QNetworkSessionPrivate@@IBE?AV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@ABVQNetworkConfiguration@@@Z @ 1002 NONAME ; class QExplicitlySharedDataPointer QNetworkSessionPrivate::privateConfiguration(class QNetworkConfiguration const &) const - ?isOnline@QNetworkConfigurationManagerPrivate@@QAE_NXZ @ 1003 NONAME ; bool QNetworkConfigurationManagerPrivate::isOnline(void) + ?isOnline@QNetworkConfigurationManagerPrivate@@QAE_NXZ @ 1003 NONAME ABSENT ; bool QNetworkConfigurationManagerPrivate::isOnline(void) ?state@QNetworkConfiguration@@QBE?AV?$QFlags@W4StateFlag@QNetworkConfiguration@@@@XZ @ 1004 NONAME ; class QFlags QNetworkConfiguration::state(void) const ?configurationAdded@QNetworkConfigurationManagerPrivate@@IAEXABVQNetworkConfiguration@@@Z @ 1005 NONAME ; void QNetworkConfigurationManagerPrivate::configurationAdded(class QNetworkConfiguration const &) ?defaultConfiguration@QNetworkConfigurationManager@@QBE?AVQNetworkConfiguration@@XZ @ 1006 NONAME ; class QNetworkConfiguration QNetworkConfigurationManager::defaultConfiguration(void) const @@ -1027,7 +1027,7 @@ EXPORTS ?staticMetaObject@QBearerEngine@@2UQMetaObject@@B @ 1026 NONAME ; struct QMetaObject const QBearerEngine::staticMetaObject ?networkSessionConnected@QNetworkAccessManager@@IAEXXZ @ 1027 NONAME ; void QNetworkAccessManager::networkSessionConnected(void) ??1QBearerEngine@@UAE@XZ @ 1028 NONAME ; QBearerEngine::~QBearerEngine(void) - ?capabilities@QNetworkConfigurationManagerPrivate@@QAE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 1029 NONAME ; class QFlags QNetworkConfigurationManagerPrivate::capabilities(void) + ?capabilities@QNetworkConfigurationManagerPrivate@@QAE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 1029 NONAME ABSENT ; class QFlags QNetworkConfigurationManagerPrivate::capabilities(void) ??1QNetworkConfiguration@@QAE@XZ @ 1030 NONAME ; QNetworkConfiguration::~QNetworkConfiguration(void) ?bearerTypeName@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1031 NONAME ; class QString QNetworkConfiguration::bearerTypeName(void) const ??0QNetworkConfigurationManagerPrivate@@QAE@XZ @ 1032 NONAME ; QNetworkConfigurationManagerPrivate::QNetworkConfigurationManagerPrivate(void) @@ -1041,7 +1041,7 @@ EXPORTS ?name@QNetworkConfiguration@@QBE?AVQString@@XZ @ 1040 NONAME ; class QString QNetworkConfiguration::name(void) const ?close@QNetworkSession@@QAEXXZ @ 1041 NONAME ; void QNetworkSession::close(void) ?sessionProperty@QNetworkSession@@QBE?AVQVariant@@ABVQString@@@Z @ 1042 NONAME ; class QVariant QNetworkSession::sessionProperty(class QString const &) const - ?engines@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@PAVQBearerEngine@@@@XZ @ 1043 NONAME ; class QList QNetworkConfigurationManagerPrivate::engines(void) + ?engines@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@PAVQBearerEngine@@@@XZ @ 1043 NONAME ABSENT ; class QList QNetworkConfigurationManagerPrivate::engines(void) ?isOnline@QNetworkConfigurationManager@@QBE_NXZ @ 1044 NONAME ; bool QNetworkConfigurationManager::isOnline(void) const ?capabilities@QNetworkConfigurationManager@@QBE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 1045 NONAME ; class QFlags QNetworkConfigurationManager::capabilities(void) const ?configurationRemoved@QNetworkConfigurationManagerPrivate@@AAEXV?$QExplicitlySharedDataPointer@VQNetworkConfigurationPrivate@@@@@Z @ 1046 NONAME ; void QNetworkConfigurationManagerPrivate::configurationRemoved(class QExplicitlySharedDataPointer) @@ -1095,7 +1095,7 @@ EXPORTS ??_EQBearerEnginePlugin@@UAE@I@Z @ 1094 NONAME ; QBearerEnginePlugin::~QBearerEnginePlugin(unsigned int) ?children@QNetworkConfiguration@@QBE?AV?$QList@VQNetworkConfiguration@@@@XZ @ 1095 NONAME ; class QList QNetworkConfiguration::children(void) const ?activeConfiguration@QNetworkAccessManager@@QBE?AVQNetworkConfiguration@@XZ @ 1096 NONAME ; class QNetworkConfiguration QNetworkAccessManager::activeConfiguration(void) const - ?defaultConfiguration@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@XZ @ 1097 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::defaultConfiguration(void) + ?defaultConfiguration@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@XZ @ 1097 NONAME ABSENT ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::defaultConfiguration(void) ?getStaticMetaObject@QNetworkSession@@SAABUQMetaObject@@XZ @ 1098 NONAME ; struct QMetaObject const & QNetworkSession::getStaticMetaObject(void) ?qt_metacast@QNetworkSession@@UAEPAXPBD@Z @ 1099 NONAME ; void * QNetworkSession::qt_metacast(char const *) ?updateCompleted@QBearerEngine@@IAEXXZ @ 1100 NONAME ; void QBearerEngine::updateCompleted(void) @@ -1109,8 +1109,8 @@ EXPORTS ?qt_metacast@QNetworkConfigurationManagerPrivate@@UAEPAXPBD@Z @ 1108 NONAME ; void * QNetworkConfigurationManagerPrivate::qt_metacast(char const *) ?newConfigurationActivated@QNetworkSessionPrivate@@IAEXXZ @ 1109 NONAME ; void QNetworkSessionPrivate::newConfigurationActivated(void) ?qt_metacast@QNetworkSessionPrivate@@UAEPAXPBD@Z @ 1110 NONAME ; void * QNetworkSessionPrivate::qt_metacast(char const *) - ?startPolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1111 NONAME ; void QNetworkConfigurationManagerPrivate::startPolling(void) - ?allConfigurations@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 1112 NONAME ; class QList QNetworkConfigurationManagerPrivate::allConfigurations(class QFlags) + ?startPolling@QNetworkConfigurationManagerPrivate@@QAEXXZ @ 1111 NONAME ABSENT ; void QNetworkConfigurationManagerPrivate::startPolling(void) + ?allConfigurations@QNetworkConfigurationManagerPrivate@@QAE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 1112 NONAME ABSENT ; class QList QNetworkConfigurationManagerPrivate::allConfigurations(class QFlags) ?connectNotify@QNetworkSession@@MAEXPBD@Z @ 1113 NONAME ; void QNetworkSession::connectNotify(char const *) ?onlineStateChanged@QNetworkConfigurationManagerPrivate@@IAEX_N@Z @ 1114 NONAME ; void QNetworkConfigurationManagerPrivate::onlineStateChanged(bool) ?bytesWritten@QNetworkSession@@QBE_KXZ @ 1115 NONAME ; unsigned long long QNetworkSession::bytesWritten(void) const @@ -1132,8 +1132,8 @@ EXPORTS ?reject@QNetworkSession@@QAEXXZ @ 1131 NONAME ; void QNetworkSession::reject(void) ?options@QAuthenticator@@QBE?AV?$QHash@VQString@@VQVariant@@@@XZ @ 1132 NONAME ; class QHash QAuthenticator::options(void) const ?purpose@QNetworkConfiguration@@QBE?AW4Purpose@1@XZ @ 1133 NONAME ; enum QNetworkConfiguration::Purpose QNetworkConfiguration::purpose(void) const - ?configurationFromIdentifier@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1134 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::configurationFromIdentifier(class QString const &) - ?abort@QNetworkConfigurationManagerPrivate@@IAEXXZ @ 1135 NONAME ; void QNetworkConfigurationManagerPrivate::abort(void) + ?configurationFromIdentifier@QNetworkConfigurationManagerPrivate@@QAE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1134 NONAME ABSENT ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::configurationFromIdentifier(class QString const &) + ?abort@QNetworkConfigurationManagerPrivate@@IAEXXZ @ 1135 NONAME ABSENT ; void QNetworkConfigurationManagerPrivate::abort(void) ?tr@QNetworkConfigurationManager@@SA?AVQString@@PBD0@Z @ 1136 NONAME ; class QString QNetworkConfigurationManager::tr(char const *, char const *) ?trUtf8@QNetworkSession@@SA?AVQString@@PBD0H@Z @ 1137 NONAME ; class QString QNetworkSession::trUtf8(char const *, char const *, int) ?trUtf8@QBearerEnginePlugin@@SA?AVQString@@PBD0@Z @ 1138 NONAME ; class QString QBearerEnginePlugin::trUtf8(char const *, char const *) @@ -1152,4 +1152,11 @@ EXPORTS ?joinMulticastGroup@QUdpSocket@@QAE_NABVQHostAddress@@@Z @ 1151 NONAME ; bool QUdpSocket::joinMulticastGroup(class QHostAddress const &) ?leaveMulticastGroup@QUdpSocket@@QAE_NABVQHostAddress@@ABVQNetworkInterface@@@Z @ 1152 NONAME ; bool QUdpSocket::leaveMulticastGroup(class QHostAddress const &, class QNetworkInterface const &) ?leaveMulticastGroup@QUdpSocket@@QAE_NABVQHostAddress@@@Z @ 1153 NONAME ; bool QUdpSocket::leaveMulticastGroup(class QHostAddress const &) + ?allConfigurations@QNetworkConfigurationManagerPrivate@@QBE?AV?$QList@VQNetworkConfiguration@@@@V?$QFlags@W4StateFlag@QNetworkConfiguration@@@@@Z @ 1154 NONAME ; class QList QNetworkConfigurationManagerPrivate::allConfigurations(class QFlags) const + ?capabilities@QNetworkConfigurationManagerPrivate@@QBE?AV?$QFlags@W4Capability@QNetworkConfigurationManager@@@@XZ @ 1155 NONAME ; class QFlags QNetworkConfigurationManagerPrivate::capabilities(void) const + ?configurationFromIdentifier@QNetworkConfigurationManagerPrivate@@QBE?AVQNetworkConfiguration@@ABVQString@@@Z @ 1156 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::configurationFromIdentifier(class QString const &) const + ?defaultConfiguration@QNetworkConfigurationManagerPrivate@@QBE?AVQNetworkConfiguration@@XZ @ 1157 NONAME ; class QNetworkConfiguration QNetworkConfigurationManagerPrivate::defaultConfiguration(void) const + ?engines@QNetworkConfigurationManagerPrivate@@QBE?AV?$QList@PAVQBearerEngine@@@@XZ @ 1158 NONAME ; class QList QNetworkConfigurationManagerPrivate::engines(void) const + ?isOnline@QNetworkConfigurationManagerPrivate@@QBE_NXZ @ 1159 NONAME ; bool QNetworkConfigurationManagerPrivate::isOnline(void) const + ?startPolling@QNetworkConfigurationManagerPrivate@@AAEXXZ @ 1160 NONAME ; void QNetworkConfigurationManagerPrivate::startPolling(void) diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index 130d9c0..e97ac61 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -3795,4 +3795,10 @@ EXPORTS _ZN5QChar21currentUnicodeVersionEv @ 3794 NONAME _ZN9QFileInfoC1EP16QFileInfoPrivate @ 3795 NONAME _ZN9QFileInfoC2EP16QFileInfoPrivate @ 3796 NONAME + _ZN13QFSFileEngine4openE6QFlagsIN9QIODevice12OpenModeFlagEEP7__sFILES0_IN5QFile14FileHandleFlagEE @ 3797 NONAME + _ZN13QFSFileEngine4openE6QFlagsIN9QIODevice12OpenModeFlagEERK5RFileS0_IN5QFile14FileHandleFlagEE @ 3798 NONAME + _ZN13QFSFileEngine4openE6QFlagsIN9QIODevice12OpenModeFlagEEiS0_IN5QFile14FileHandleFlagEE @ 3799 NONAME + _ZN5QFile4openEP7__sFILE6QFlagsIN9QIODevice12OpenModeFlagEES2_INS_14FileHandleFlagEE @ 3800 NONAME + _ZN5QFile4openERK5RFile6QFlagsIN9QIODevice12OpenModeFlagEES3_INS_14FileHandleFlagEE @ 3801 NONAME + _ZN5QFile4openEi6QFlagsIN9QIODevice12OpenModeFlagEES0_INS_14FileHandleFlagEE @ 3802 NONAME diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def index 926ed52..8064fa3 100644 --- a/src/s60installs/eabi/QtGuiu.def +++ b/src/s60installs/eabi/QtGuiu.def @@ -4658,11 +4658,11 @@ EXPORTS _ZN20QGraphicsEllipseItemD1Ev @ 4657 NONAME _ZN20QGraphicsEllipseItemD2Ev @ 4658 NONAME _ZN20QGraphicsItemPrivate11removeChildEP13QGraphicsItem @ 4659 NONAME - _ZN20QGraphicsItemPrivate11setSubFocusEP13QGraphicsItem @ 4660 NONAME + _ZN20QGraphicsItemPrivate11setSubFocusEP13QGraphicsItem @ 4660 NONAME ABSENT _ZN20QGraphicsItemPrivate12remapItemPosEP6QEventP13QGraphicsItem @ 4661 NONAME _ZN20QGraphicsItemPrivate12resolveDepthEv @ 4662 NONAME _ZN20QGraphicsItemPrivate12setPosHelperERK7QPointF @ 4663 NONAME - _ZN20QGraphicsItemPrivate13clearSubFocusEP13QGraphicsItem @ 4664 NONAME + _ZN20QGraphicsItemPrivate13clearSubFocusEP13QGraphicsItem @ 4664 NONAME ABSENT _ZN20QGraphicsItemPrivate14setFocusHelperEN2Qt11FocusReasonEb @ 4665 NONAME ABSENT _ZN20QGraphicsItemPrivate15resetFocusProxyEv @ 4666 NONAME _ZN20QGraphicsItemPrivate16setEnabledHelperEbbb @ 4667 NONAME @@ -12233,4 +12233,104 @@ EXPORTS _ZNK14QFileOpenEvent8openFileER5QFile6QFlagsIN9QIODevice12OpenModeFlagEE @ 12232 NONAME ABSENT _ZN11QFontEngine16alphaMapForGlyphEj6QFixed @ 12233 NONAME _ZN11QFontEngine16alphaMapForGlyphEj6QFixedRK10QTransform @ 12234 NONAME + _Z32qGamma_correct_back_to_linear_csP6QImage @ 12235 NONAME + _ZN12QLineControl21resetCursorBlinkTimerEv @ 12236 NONAME + _ZN12QScrollEvent6d_funcEv @ 12237 NONAME + _ZN12QScrollEventC1ERK7QPointFS2_NS_11ScrollStateE @ 12238 NONAME + _ZN12QScrollEventC2ERK7QPointFS2_NS_11ScrollStateE @ 12239 NONAME + _ZN12QScrollEventD0Ev @ 12240 NONAME + _ZN12QScrollEventD1Ev @ 12241 NONAME + _ZN12QScrollEventD2Ev @ 12242 NONAME + _ZN13QFlickGesture11qt_metacallEN11QMetaObject4CallEiPPv @ 12243 NONAME + _ZN13QFlickGesture11qt_metacastEPKc @ 12244 NONAME + _ZN13QFlickGesture16staticMetaObjectE @ 12245 NONAME DATA 16 + _ZN13QFlickGesture19getStaticMetaObjectEv @ 12246 NONAME + _ZN13QFlickGestureC1EP7QObjectN2Qt11MouseButtonES1_ @ 12247 NONAME + _ZN13QFlickGestureC2EP7QObjectN2Qt11MouseButtonES1_ @ 12248 NONAME + _ZN13QFlickGestureD0Ev @ 12249 NONAME + _ZN13QFlickGestureD1Ev @ 12250 NONAME + _ZN13QFlickGestureD2Ev @ 12251 NONAME + _ZN19QScrollPrepareEvent13setContentPosERK7QPointF @ 12252 NONAME + _ZN19QScrollPrepareEvent15setViewportSizeERK6QSizeF @ 12253 NONAME + _ZN19QScrollPrepareEvent18setContentPosRangeERK6QRectF @ 12254 NONAME + _ZN19QScrollPrepareEvent6d_funcEv @ 12255 NONAME + _ZN19QScrollPrepareEventC1ERK7QPointF @ 12256 NONAME + _ZN19QScrollPrepareEventC2ERK7QPointF @ 12257 NONAME + _ZN19QScrollPrepareEventD0Ev @ 12258 NONAME + _ZN19QScrollPrepareEventD1Ev @ 12259 NONAME + _ZN19QScrollPrepareEventD2Ev @ 12260 NONAME + _ZN19QScrollerProperties15setScrollMetricENS_12ScrollMetricERK8QVariant @ 12261 NONAME + _ZN19QScrollerProperties28setDefaultScrollerPropertiesERKS_ @ 12262 NONAME + _ZN19QScrollerProperties30unsetDefaultScrollerPropertiesEv @ 12263 NONAME + _ZN19QScrollerPropertiesC1ERKS_ @ 12264 NONAME + _ZN19QScrollerPropertiesC1Ev @ 12265 NONAME + _ZN19QScrollerPropertiesC2ERKS_ @ 12266 NONAME + _ZN19QScrollerPropertiesC2Ev @ 12267 NONAME + _ZN19QScrollerPropertiesD0Ev @ 12268 NONAME + _ZN19QScrollerPropertiesD1Ev @ 12269 NONAME + _ZN19QScrollerPropertiesD2Ev @ 12270 NONAME + _ZN19QScrollerPropertiesaSERKS_ @ 12271 NONAME + _ZN20QGraphicsItemPrivate11setSubFocusEP13QGraphicsItemS1_ @ 12272 NONAME + _ZN20QGraphicsItemPrivate13clearSubFocusEP13QGraphicsItemS1_ @ 12273 NONAME + _ZN26QAbstractScrollAreaPrivate19canStartScrollingAtERK6QPoint @ 12274 NONAME + _ZN9QScroller11grabGestureEP7QObjectNS_19ScrollerGestureTypeE @ 12275 NONAME + _ZN9QScroller11handleInputENS_5InputERK7QPointFx @ 12276 NONAME + _ZN9QScroller11hasScrollerEP7QObject @ 12277 NONAME + _ZN9QScroller11qt_metacallEN11QMetaObject4CallEiPPv @ 12278 NONAME + _ZN9QScroller11qt_metacastEPKc @ 12279 NONAME + _ZN9QScroller12stateChangedENS_5StateE @ 12280 NONAME + _ZN9QScroller13ensureVisibleERK6QRectFff @ 12281 NONAME + _ZN9QScroller13ensureVisibleERK6QRectFffi @ 12282 NONAME + _ZN9QScroller13ungrabGestureEP7QObject @ 12283 NONAME + _ZN9QScroller14grabbedGestureEP7QObject @ 12284 NONAME + _ZN9QScroller15activeScrollersEv @ 12285 NONAME + _ZN9QScroller16staticMetaObjectE @ 12286 NONAME DATA 16 + _ZN9QScroller17setSnapPositionsXERK5QListIfE @ 12287 NONAME + _ZN9QScroller17setSnapPositionsXEff @ 12288 NONAME + _ZN9QScroller17setSnapPositionsYERK5QListIfE @ 12289 NONAME + _ZN9QScroller17setSnapPositionsYEff @ 12290 NONAME + _ZN9QScroller18resendPrepareEventEv @ 12291 NONAME + _ZN9QScroller19getStaticMetaObjectEv @ 12292 NONAME + _ZN9QScroller21setScrollerPropertiesERK19QScrollerProperties @ 12293 NONAME + _ZN9QScroller25scrollerPropertiesChangedERK19QScrollerProperties @ 12294 NONAME + _ZN9QScroller4stopEv @ 12295 NONAME + _ZN9QScroller8scrollToERK7QPointF @ 12296 NONAME + _ZN9QScroller8scrollToERK7QPointFi @ 12297 NONAME + _ZN9QScroller8scrollerEP7QObject @ 12298 NONAME + _ZN9QScroller8scrollerEPK7QObject @ 12299 NONAME + _ZN9QScrollerC1EP7QObject @ 12300 NONAME + _ZN9QScrollerC2EP7QObject @ 12301 NONAME + _ZN9QScrollerD0Ev @ 12302 NONAME + _ZN9QScrollerD1Ev @ 12303 NONAME + _ZN9QScrollerD2Ev @ 12304 NONAME + _ZNK12QScrollEvent10contentPosEv @ 12305 NONAME + _ZNK12QScrollEvent11scrollStateEv @ 12306 NONAME + _ZNK12QScrollEvent17overshootDistanceEv @ 12307 NONAME + _ZNK12QScrollEvent6d_funcEv @ 12308 NONAME + _ZNK13QFlickGesture10metaObjectEv @ 12309 NONAME + _ZNK19QScrollPrepareEvent10contentPosEv @ 12310 NONAME + _ZNK19QScrollPrepareEvent12viewportSizeEv @ 12311 NONAME + _ZNK19QScrollPrepareEvent15contentPosRangeEv @ 12312 NONAME + _ZNK19QScrollPrepareEvent6d_funcEv @ 12313 NONAME + _ZNK19QScrollPrepareEvent8startPosEv @ 12314 NONAME + _ZNK19QScrollerProperties12scrollMetricENS_12ScrollMetricE @ 12315 NONAME + _ZNK19QScrollerPropertieseqERKS_ @ 12316 NONAME + _ZNK19QScrollerPropertiesneERKS_ @ 12317 NONAME + _ZNK9QScroller10metaObjectEv @ 12318 NONAME + _ZNK9QScroller13finalPositionEv @ 12319 NONAME + _ZNK9QScroller13pixelPerMeterEv @ 12320 NONAME + _ZNK9QScroller18scrollerPropertiesEv @ 12321 NONAME + _ZNK9QScroller5stateEv @ 12322 NONAME + _ZNK9QScroller6targetEv @ 12323 NONAME + _ZNK9QScroller8velocityEv @ 12324 NONAME + _ZTI12QScrollEvent @ 12325 NONAME + _ZTI13QFlickGesture @ 12326 NONAME + _ZTI19QScrollPrepareEvent @ 12327 NONAME + _ZTI19QScrollerProperties @ 12328 NONAME + _ZTI9QScroller @ 12329 NONAME + _ZTV12QScrollEvent @ 12330 NONAME + _ZTV13QFlickGesture @ 12331 NONAME + _ZTV19QScrollPrepareEvent @ 12332 NONAME + _ZTV19QScrollerProperties @ 12333 NONAME + _ZTV9QScroller @ 12334 NONAME diff --git a/src/s60installs/eabi/QtNetworku.def b/src/s60installs/eabi/QtNetworku.def index 21f3e73..9b989a7 100644 --- a/src/s60installs/eabi/QtNetworku.def +++ b/src/s60installs/eabi/QtNetworku.def @@ -1085,12 +1085,12 @@ EXPORTS _ZN35QNetworkConfigurationManagerPrivate11pollEnginesEv @ 1084 NONAME _ZN35QNetworkConfigurationManagerPrivate11qt_metacallEN11QMetaObject4CallEiPPv @ 1085 NONAME _ZN35QNetworkConfigurationManagerPrivate11qt_metacastEPKc @ 1086 NONAME - _ZN35QNetworkConfigurationManagerPrivate12capabilitiesEv @ 1087 NONAME + _ZN35QNetworkConfigurationManagerPrivate12capabilitiesEv @ 1087 NONAME ABSENT _ZN35QNetworkConfigurationManagerPrivate12startPollingEv @ 1088 NONAME _ZN35QNetworkConfigurationManagerPrivate13enablePollingEv @ 1089 NONAME _ZN35QNetworkConfigurationManagerPrivate14disablePollingEv @ 1090 NONAME _ZN35QNetworkConfigurationManagerPrivate16staticMetaObjectE @ 1091 NONAME DATA 16 - _ZN35QNetworkConfigurationManagerPrivate17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1092 NONAME + _ZN35QNetworkConfigurationManagerPrivate17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1092 NONAME ABSENT _ZN35QNetworkConfigurationManagerPrivate18configurationAddedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1093 NONAME _ZN35QNetworkConfigurationManagerPrivate18configurationAddedERK21QNetworkConfiguration @ 1094 NONAME _ZN35QNetworkConfigurationManagerPrivate18onlineStateChangedEb @ 1095 NONAME @@ -1099,14 +1099,14 @@ EXPORTS _ZN35QNetworkConfigurationManagerPrivate20configurationChangedERK21QNetworkConfiguration @ 1098 NONAME _ZN35QNetworkConfigurationManagerPrivate20configurationRemovedE28QExplicitlySharedDataPointerI28QNetworkConfigurationPrivateE @ 1099 NONAME _ZN35QNetworkConfigurationManagerPrivate20configurationRemovedERK21QNetworkConfiguration @ 1100 NONAME - _ZN35QNetworkConfigurationManagerPrivate20defaultConfigurationEv @ 1101 NONAME + _ZN35QNetworkConfigurationManagerPrivate20defaultConfigurationEv @ 1101 NONAME ABSENT _ZN35QNetworkConfigurationManagerPrivate20updateConfigurationsEv @ 1102 NONAME - _ZN35QNetworkConfigurationManagerPrivate27configurationFromIdentifierERK7QString @ 1103 NONAME + _ZN35QNetworkConfigurationManagerPrivate27configurationFromIdentifierERK7QString @ 1103 NONAME ABSENT _ZN35QNetworkConfigurationManagerPrivate27configurationUpdateCompleteEv @ 1104 NONAME _ZN35QNetworkConfigurationManagerPrivate31performAsyncConfigurationUpdateEv @ 1105 NONAME - _ZN35QNetworkConfigurationManagerPrivate5abortEv @ 1106 NONAME - _ZN35QNetworkConfigurationManagerPrivate7enginesEv @ 1107 NONAME - _ZN35QNetworkConfigurationManagerPrivate8isOnlineEv @ 1108 NONAME + _ZN35QNetworkConfigurationManagerPrivate5abortEv @ 1106 NONAME ABSENT + _ZN35QNetworkConfigurationManagerPrivate7enginesEv @ 1107 NONAME ABSENT + _ZN35QNetworkConfigurationManagerPrivate8isOnlineEv @ 1108 NONAME ABSENT _ZN35QNetworkConfigurationManagerPrivateC1Ev @ 1109 NONAME _ZN35QNetworkConfigurationManagerPrivateC2Ev @ 1110 NONAME _ZN35QNetworkConfigurationManagerPrivateD0Ev @ 1111 NONAME @@ -1175,4 +1175,10 @@ EXPORTS _ZN10QUdpSocket21setMulticastInterfaceERK17QNetworkInterface @ 1174 NONAME _ZN13QNetworkReply11setFinishedEb @ 1175 NONAME _ZNK10QUdpSocket18multicastInterfaceEv @ 1176 NONAME + _ZNK35QNetworkConfigurationManagerPrivate12capabilitiesEv @ 1177 NONAME + _ZNK35QNetworkConfigurationManagerPrivate17allConfigurationsE6QFlagsIN21QNetworkConfiguration9StateFlagEE @ 1178 NONAME + _ZNK35QNetworkConfigurationManagerPrivate20defaultConfigurationEv @ 1179 NONAME + _ZNK35QNetworkConfigurationManagerPrivate27configurationFromIdentifierERK7QString @ 1180 NONAME + _ZNK35QNetworkConfigurationManagerPrivate7enginesEv @ 1181 NONAME + _ZNK35QNetworkConfigurationManagerPrivate8isOnlineEv @ 1182 NONAME -- cgit v0.12 From 7747e8864db4518e35d5a472cec37697b85b3b15 Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Mon, 20 Dec 2010 16:02:33 +0000 Subject: runonphone: Check that the device->config is valid before dereferencing it In some occasions (encountered on OS X), this can be null for some devices. Merge-request: 834 Reviewed-by: Shane Kearns --- tools/runonphone/serenum_unix.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/runonphone/serenum_unix.cpp b/tools/runonphone/serenum_unix.cpp index db6375e..f65497e 100644 --- a/tools/runonphone/serenum_unix.cpp +++ b/tools/runonphone/serenum_unix.cpp @@ -82,7 +82,7 @@ QList enumerateSerialPorts(int loglevel) for (struct usb_bus *bus = usb_get_busses(); bus; bus = bus->next) { for (struct usb_device *device = bus->devices; device; device = device->next) { - for (int n = 0; n < device->descriptor.bNumConfigurations; ++n) { + for (int n = 0; n < device->descriptor.bNumConfigurations && device->config; ++n) { struct usb_config_descriptor &usbConfig =device->config[n]; QList usableInterfaces; for (int m = 0; m < usbConfig.bNumInterfaces; ++m) { -- cgit v0.12 From 11ea9609129205cd08dc5fbeb889cc60f4f84f65 Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Mon, 20 Dec 2010 16:02:37 +0000 Subject: reword: Make the USB serial device enumeration work on OS X, too Tested on OS X Snow Leopard with libusb-0.1.12. The devices are named /dev/cu.usbmodem, where the opaque id doesn't seem to be available via the current libusb interface, but finding it would require usage of native OS X APIs. The interface number is available at least, and searching for cu\.usbmodem.* as a regexp finds the right devices as long as not too many devices are connected. Merge-request: 834 Reviewed-by: Shane Kearns --- tools/runonphone/serenum_unix.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/tools/runonphone/serenum_unix.cpp b/tools/runonphone/serenum_unix.cpp index f65497e..93d8c67 100644 --- a/tools/runonphone/serenum_unix.cpp +++ b/tools/runonphone/serenum_unix.cpp @@ -158,6 +158,10 @@ QList enumerateSerialPorts(int loglevel) << "device" << device->filename << "interface" << descriptor.bInterfaceNumber; } +#ifdef Q_OS_MAC + eligibleInterfaces << QString("^cu\\.usbmodem.*%1$") + .arg(QString("%1").arg(descriptor.bInterfaceNumber, 1, 16).toUpper()); +#else // ### manufacturer and product strings are only readable as root :( if (!manufacturerString.isEmpty() && !productString.isEmpty()) { eligibleInterfaces << QString("usb-%1_%2-if%3") @@ -167,6 +171,7 @@ QList enumerateSerialPorts(int loglevel) } else { eligibleInterfaces << QString("if%1").arg(i, 2, 16, QChar('0')); // fix! } +#endif eligibleInterfacesInfo << InterfaceInfo(manufacturerString, productString, device->descriptor.idVendor, device->descriptor.idProduct); } } @@ -179,14 +184,24 @@ QList enumerateSerialPorts(int loglevel) if (loglevel > 1) qDebug() << " searching for interfaces:" << eligibleInterfaces; +#ifdef Q_OS_MAC + QDir dir("/dev/"); + bool allowAny = false; +#else QDir dir("/dev/serial/by-id/"); - foreach (const QFileInfo &info, dir.entryInfoList()) { + bool allowAny = eligibleInterfaces.isEmpty(); +#endif + foreach (const QFileInfo &info, dir.entryInfoList(QDir::System)) { if (!info.isDir()) { - bool usable = eligibleInterfaces.isEmpty(); + bool usable = allowAny; + QString friendlyName = info.fileName(); foreach (const QString &iface, eligibleInterfaces) { - if (info.fileName().contains(iface)) { + if (info.fileName().contains(QRegExp(iface))) { if (loglevel > 1) qDebug() << " found device file:" << info.fileName() << endl; +#ifdef Q_OS_MAC + friendlyName = eligibleInterfacesInfo[eligibleInterfaces.indexOf(iface)].product; +#endif usable = true; break; } @@ -195,7 +210,7 @@ QList enumerateSerialPorts(int loglevel) continue; SerialPortId id; - id.friendlyName = info.fileName(); + id.friendlyName = friendlyName; id.portName = info.canonicalFilePath(); list << id; } -- cgit v0.12 From d6a7931c5a2b90c0c276a1367135c9dc4e7532cd Mon Sep 17 00:00:00 2001 From: Martin Storsjo Date: Mon, 20 Dec 2010 16:02:42 +0000 Subject: runonphone: Only print the modprobe instructions on linux Merge-request: 834 Reviewed-by: Shane Kearns --- tools/runonphone/serenum_unix.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/runonphone/serenum_unix.cpp b/tools/runonphone/serenum_unix.cpp index 93d8c67..86e797b 100644 --- a/tools/runonphone/serenum_unix.cpp +++ b/tools/runonphone/serenum_unix.cpp @@ -223,11 +223,15 @@ QList enumerateSerialPorts(int loglevel) << iface.manufacturer << "Product:" << iface.product +#ifdef Q_OS_LINUX << endl << " Load generic driver using:" << QString("sudo modprobe usbserial vendor=0x%1 product=0x%2") .arg(iface.manufacturerid, 4, 16, QChar('0')) .arg(iface.productid, 4, 16, QChar('0')); +#else + ; +#endif } } return list; -- cgit v0.12 From 7d2dc192477c0d10b2c5c9f144e2a37a270093f0 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 21 Dec 2010 10:57:44 +1000 Subject: Add tests for ListView.indexAt() and GridView.IndexAt() --- .../tst_qdeclarativegridview.cpp | 37 ++++++++++++++++++++++ .../tst_qdeclarativelistview.cpp | 33 +++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp index fd5d140..a2dcf1c 100644 --- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp +++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp @@ -84,6 +84,7 @@ private slots: void manualHighlight(); void footer(); void header(); + void indexAt(); private: QDeclarativeView *createView(); @@ -1299,6 +1300,42 @@ void tst_QDeclarativeGridView::header() QTRY_COMPARE(header->y(), 0.0); } +void tst_QDeclarativeGridView::indexAt() +{ + QDeclarativeView *canvas = createView(); + + TestModel model; + model.addItem("Fred", "12345"); + model.addItem("John", "2345"); + model.addItem("Bob", "54321"); + model.addItem("Billy", "22345"); + model.addItem("Sam", "2945"); + model.addItem("Ben", "04321"); + model.addItem("Jim", "0780"); + + QDeclarativeContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("testModel", &model); + ctxt->setContextProperty("testTopToBottom", QVariant(false)); + + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview1.qml")); + qApp->processEvents(); + + QDeclarativeGridView *gridview = findItem(canvas->rootObject(), "grid"); + QTRY_VERIFY(gridview != 0); + + QDeclarativeItem *contentItem = gridview->contentItem(); + QTRY_VERIFY(contentItem != 0); + + QTRY_COMPARE(gridview->count(), model.count()); + + QCOMPARE(gridview->indexAt(0, 0), 0); + QCOMPARE(gridview->indexAt(79, 59), 0); + QCOMPARE(gridview->indexAt(80, 0), 1); + QCOMPARE(gridview->indexAt(0, 60), 3); + QCOMPARE(gridview->indexAt(240, 0), -1); + + delete canvas; +} QDeclarativeView *tst_QDeclarativeGridView::createView() { diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index b834d46..3df10a9 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -105,6 +105,7 @@ private slots: void QTBUG_14821(); void resizeDelegate(); void QTBUG_16037(); + void indexAt(); private: template void items(); @@ -1964,6 +1965,38 @@ void tst_QDeclarativeListView::QTBUG_16037() delete canvas; } +void tst_QDeclarativeListView::indexAt() +{ + QDeclarativeView *canvas = createView(); + + TestModel model; + for (int i = 0; i < 30; i++) + model.addItem("Item" + QString::number(i), ""); + + QDeclarativeContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("testModel", &model); + + TestObject *testObject = new TestObject; + ctxt->setContextProperty("testObject", testObject); + + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml")); + qApp->processEvents(); + + QDeclarativeListView *listview = findItem(canvas->rootObject(), "list"); + QTRY_VERIFY(listview != 0); + + QDeclarativeItem *contentItem = listview->contentItem(); + QTRY_VERIFY(contentItem != 0); + + QCOMPARE(listview->indexAt(0,0), 0); + QCOMPARE(listview->indexAt(0,19), 0); + QCOMPARE(listview->indexAt(239,19), 0); + QCOMPARE(listview->indexAt(0,20), 1); + QCOMPARE(listview->indexAt(240,20), -1); + + delete canvas; +} + void tst_QDeclarativeListView::qListModelInterface_items() { items(); -- cgit v0.12 From bc679ceb8ad36de1da696f7f67e71145ceec7f98 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 21 Dec 2010 11:11:59 +1000 Subject: More testing for KeyNavigation attached properties. --- .../qdeclarativeitem/data/keynavigationtest.qml | 40 ++++++++++++++++++++++ .../qdeclarativeitem/tst_qdeclarativeitem.cpp | 5 +++ 2 files changed, 45 insertions(+) diff --git a/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml b/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml index 229f969..f614a12 100644 --- a/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml +++ b/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml @@ -3,6 +3,46 @@ import QtQuick 1.0 Grid { columns: 2 width: 100; height: 100 + function verify() { + if (item1.KeyNavigation.right != item2) + return false; + if (item1.KeyNavigation.down != item3) + return false; + if (item1.KeyNavigation.tab != item2) + return false; + if (item1.KeyNavigation.backtab != item4) + return false; + + if (item2.KeyNavigation.left != item1) + return false; + if (item2.KeyNavigation.down != item4) + return false; + if (item2.KeyNavigation.tab != item3) + return false; + if (item2.KeyNavigation.backtab != item1) + return false; + + if (item3.KeyNavigation.right != item4) + return false; + if (item3.KeyNavigation.up != item1) + return false; + if (item3.KeyNavigation.tab != item4) + return false; + if (item3.KeyNavigation.backtab != item2) + return false; + + if (item4.KeyNavigation.left != item3) + return false; + if (item4.KeyNavigation.up != item2) + return false; + if (item4.KeyNavigation.tab != item1) + return false; + if (item4.KeyNavigation.backtab != item3) + return false; + + return true; + } + Rectangle { id: item1 objectName: "item1" diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp index 711bf00..0ebb8b7 100644 --- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp +++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp @@ -393,6 +393,11 @@ void tst_QDeclarativeItem::keyNavigation() QVERIFY(item); QVERIFY(item->hasActiveFocus()); + QVariant result; + QVERIFY(QMetaObject::invokeMethod(canvas->rootObject(), "verify", + Q_RETURN_ARG(QVariant, result))); + QVERIFY(result.toBool()); + // right QKeyEvent key(QEvent::KeyPress, Qt::Key_Right, Qt::NoModifier, "", false, 1); QApplication::sendEvent(canvas, &key); -- cgit v0.12 From 4ff05f2ed8cef9a126af023a4692eb8c50a0a892 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Tue, 21 Dec 2010 15:58:12 +1000 Subject: Fix number of chapters in qtestlib tutorial. Task-number: QTBUG-10248 Reviewed-by: Trust Me --- doc/src/development/qtestlib.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/development/qtestlib.qdoc b/doc/src/development/qtestlib.qdoc index e53957f..38c2220 100644 --- a/doc/src/development/qtestlib.qdoc +++ b/doc/src/development/qtestlib.qdoc @@ -370,7 +370,7 @@ \title QTestLib Tutorial This tutorial gives a short introduction to how to use some of the - features of the QTestLib framework. It is divided into four + features of the QTestLib framework. It is divided into five chapters: \list 1 -- cgit v0.12 From 2a340b56c9935ee25bbd0b750d1239cb14051b27 Mon Sep 17 00:00:00 2001 From: axis Date: Tue, 21 Dec 2010 10:46:26 +0100 Subject: Fixed PREPEND_INCLUDEPATH being executed too early. It used to be carried out inside qt.prf, but was moved to default_post.prf. However, since qt.prf is executed after default_post.prf, it would still prepend its own include paths at the very front, which is wrong. Fixed by introducing a new feature profile for PREPEND_INCLUDEPATH, which is run after qt.prf (features in $$CONFIG are executed in reverse order). RevBy: Miikka Heikkinen --- mkspecs/common/symbian/symbian.conf | 2 +- mkspecs/features/symbian/default_post.prf | 15 --------------- mkspecs/features/symbian/prepend_includepath.prf | 14 ++++++++++++++ 3 files changed, 15 insertions(+), 16 deletions(-) create mode 100644 mkspecs/features/symbian/prepend_includepath.prf diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf index b8e1d26..8c79d8b 100644 --- a/mkspecs/common/symbian/symbian.conf +++ b/mkspecs/common/symbian/symbian.conf @@ -3,7 +3,7 @@ # TEMPLATE = app -CONFIG += qt warn_on release incremental link_prl sis_targets run_on_phone +CONFIG += prepend_includepath qt warn_on release incremental link_prl sis_targets run_on_phone QT += core gui QMAKE_INCREMENTAL_STYLE = sublib diff --git a/mkspecs/features/symbian/default_post.prf b/mkspecs/features/symbian/default_post.prf index 89f655d..fffc481 100644 --- a/mkspecs/features/symbian/default_post.prf +++ b/mkspecs/features/symbian/default_post.prf @@ -53,21 +53,6 @@ isEmpty(TARGET.UID2) { } } -# Allow .pro files to specify include path(s) to be prepended to the list. -# -# This allows the project to override the default ordering, whereby paths -# relative to $$QMAKE_INCDIR_QT always come first. This ordering can cause -# problems when both the epoc32/include tree and a Qt include directory -# contain a header of the same name - in this case, the Qt header is always -# included by virtue of its path appearing first in the SYSTEMINCLUDE -# directives in the generated MMP file. -# -# To work around this situation, the following line can be added to the .pro -# file: -# PREPEND_INCLUDEPATH = /epoc32/include -# -INCLUDEPATH = $$PREPEND_INCLUDEPATH $$INCLUDEPATH - # Add dependency to Qt package to all other projects besides Qt libs. # Note: Qt libs package with full capabilities has UID3 of 0x2001E61C, # while self-signed version typically has temporary UID3 of 0xE001E61C. diff --git a/mkspecs/features/symbian/prepend_includepath.prf b/mkspecs/features/symbian/prepend_includepath.prf new file mode 100644 index 0000000..d9fd4fe --- /dev/null +++ b/mkspecs/features/symbian/prepend_includepath.prf @@ -0,0 +1,14 @@ +# Allow .pro files to specify include path(s) to be prepended to the list. +# +# This allows the project to override the default ordering, whereby paths +# relative to $$QMAKE_INCDIR_QT always come first. This ordering can cause +# problems when both the epoc32/include tree and a Qt include directory +# contain a header of the same name - in this case, the Qt header is always +# included by virtue of its path appearing first in the SYSTEMINCLUDE +# directives in the generated MMP file. +# +# To work around this situation, the following line can be added to the .pro +# file: +# PREPEND_INCLUDEPATH = /epoc32/include +# +INCLUDEPATH = $$PREPEND_INCLUDEPATH $$INCLUDEPATH -- cgit v0.12 From 5963b2b92829035d14ab9f5fc5f65dec9460d969 Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Tue, 21 Dec 2010 11:14:26 +0100 Subject: Add inter-process binary shader cache for MeeGo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch significantly reduces MeeGo app startup times by caching binary shaders in a shared memory segment. Reviewed-by: Robert Griebl Reviewed-by: Samuel Rødal --- .../gl2paintengineex/qglengineshadermanager.cpp | 294 +++++++------ .../gl2paintengineex/qglshadercache_meego_p.h | 457 +++++++++++++++++++++ src/opengl/gl2paintengineex/qglshadercache_p.h | 98 +++++ src/opengl/opengl.pro | 4 +- src/opengl/util/meego/main.cpp | 48 +++ .../util/meego/shader-cache-introspector.pro | 7 + 6 files changed, 771 insertions(+), 137 deletions(-) create mode 100644 src/opengl/gl2paintengineex/qglshadercache_meego_p.h create mode 100644 src/opengl/gl2paintengineex/qglshadercache_p.h create mode 100644 src/opengl/util/meego/main.cpp create mode 100644 src/opengl/util/meego/shader-cache-introspector.pro diff --git a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp index 93ff3f4..0723c28 100644 --- a/src/opengl/gl2paintengineex/qglengineshadermanager.cpp +++ b/src/opengl/gl2paintengineex/qglengineshadermanager.cpp @@ -42,6 +42,7 @@ #include "qglengineshadermanager_p.h" #include "qglengineshadersource_p.h" #include "qpaintengineex_opengl2_p.h" +#include "qglshadercache_p.h" #if defined(QT_DEBUG) #include @@ -170,64 +171,92 @@ QGLEngineSharedShaders::QGLEngineSharedShaders(const QGLContext* context) QGLShader* fragShader; QGLShader* vertexShader; - QByteArray source; + QByteArray vertexSource; + QByteArray fragSource; // Compile up the simple shader: - source.clear(); - source.append(qShaderSnippets[MainVertexShader]); - source.append(qShaderSnippets[PositionOnlyVertexShader]); - vertexShader = new QGLShader(QGLShader::Vertex, context, 0); - shaders.append(vertexShader); - if (!vertexShader->compileSourceCode(source)) - qWarning("Vertex shader for simpleShaderProg (MainVertexShader & PositionOnlyVertexShader) failed to compile"); - - source.clear(); - source.append(qShaderSnippets[MainFragmentShader]); - source.append(qShaderSnippets[ShockingPinkSrcFragmentShader]); - fragShader = new QGLShader(QGLShader::Fragment, context, 0); - shaders.append(fragShader); - if (!fragShader->compileSourceCode(source)) - qWarning("Fragment shader for simpleShaderProg (MainFragmentShader & ShockingPinkSrcFragmentShader) failed to compile"); + vertexSource.append(qShaderSnippets[MainVertexShader]); + vertexSource.append(qShaderSnippets[PositionOnlyVertexShader]); + + fragSource.append(qShaderSnippets[MainFragmentShader]); + fragSource.append(qShaderSnippets[ShockingPinkSrcFragmentShader]); simpleShaderProg = new QGLShaderProgram(context, 0); - simpleShaderProg->addShader(vertexShader); - simpleShaderProg->addShader(fragShader); - simpleShaderProg->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR); - simpleShaderProg->bindAttributeLocation("pmvMatrix1", QT_PMV_MATRIX_1_ATTR); - simpleShaderProg->bindAttributeLocation("pmvMatrix2", QT_PMV_MATRIX_2_ATTR); - simpleShaderProg->bindAttributeLocation("pmvMatrix3", QT_PMV_MATRIX_3_ATTR); + + CachedShader simpleShaderCache(fragSource, vertexSource); + + bool inCache = simpleShaderCache.load(simpleShaderProg, context); + + if (!inCache) { + vertexShader = new QGLShader(QGLShader::Vertex, context, 0); + shaders.append(vertexShader); + if (!vertexShader->compileSourceCode(vertexSource)) + qWarning("Vertex shader for simpleShaderProg (MainVertexShader & PositionOnlyVertexShader) failed to compile"); + + fragShader = new QGLShader(QGLShader::Fragment, context, 0); + shaders.append(fragShader); + if (!fragShader->compileSourceCode(fragSource)) + qWarning("Fragment shader for simpleShaderProg (MainFragmentShader & ShockingPinkSrcFragmentShader) failed to compile"); + + simpleShaderProg->addShader(vertexShader); + simpleShaderProg->addShader(fragShader); + + simpleShaderProg->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR); + simpleShaderProg->bindAttributeLocation("pmvMatrix1", QT_PMV_MATRIX_1_ATTR); + simpleShaderProg->bindAttributeLocation("pmvMatrix2", QT_PMV_MATRIX_2_ATTR); + simpleShaderProg->bindAttributeLocation("pmvMatrix3", QT_PMV_MATRIX_3_ATTR); + } + simpleShaderProg->link(); - if (!simpleShaderProg->isLinked()) { + + if (simpleShaderProg->isLinked()) { + if (!inCache) + simpleShaderCache.store(simpleShaderProg, context); + } else { qCritical() << "Errors linking simple shader:" << simpleShaderProg->log(); } // Compile the blit shader: - source.clear(); - source.append(qShaderSnippets[MainWithTexCoordsVertexShader]); - source.append(qShaderSnippets[UntransformedPositionVertexShader]); - vertexShader = new QGLShader(QGLShader::Vertex, context, 0); - shaders.append(vertexShader); - if (!vertexShader->compileSourceCode(source)) - qWarning("Vertex shader for blitShaderProg (MainWithTexCoordsVertexShader & UntransformedPositionVertexShader) failed to compile"); - - source.clear(); - source.append(qShaderSnippets[MainFragmentShader]); - source.append(qShaderSnippets[ImageSrcFragmentShader]); - fragShader = new QGLShader(QGLShader::Fragment, context, 0); - shaders.append(fragShader); - if (!fragShader->compileSourceCode(source)) - qWarning("Fragment shader for blitShaderProg (MainFragmentShader & ImageSrcFragmentShader) failed to compile"); + vertexSource.clear(); + vertexSource.append(qShaderSnippets[MainWithTexCoordsVertexShader]); + vertexSource.append(qShaderSnippets[UntransformedPositionVertexShader]); + + fragSource.clear(); + fragSource.append(qShaderSnippets[MainFragmentShader]); + fragSource.append(qShaderSnippets[ImageSrcFragmentShader]); blitShaderProg = new QGLShaderProgram(context, 0); - blitShaderProg->addShader(vertexShader); - blitShaderProg->addShader(fragShader); - blitShaderProg->bindAttributeLocation("textureCoordArray", QT_TEXTURE_COORDS_ATTR); - blitShaderProg->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR); + + CachedShader blitShaderCache(fragSource, vertexSource); + + inCache = blitShaderCache.load(blitShaderProg, context); + + if (!inCache) { + vertexShader = new QGLShader(QGLShader::Vertex, context, 0); + shaders.append(vertexShader); + if (!vertexShader->compileSourceCode(vertexSource)) + qWarning("Vertex shader for blitShaderProg (MainWithTexCoordsVertexShader & UntransformedPositionVertexShader) failed to compile"); + + fragShader = new QGLShader(QGLShader::Fragment, context, 0); + shaders.append(fragShader); + if (!fragShader->compileSourceCode(fragSource)) + qWarning("Fragment shader for blitShaderProg (MainFragmentShader & ImageSrcFragmentShader) failed to compile"); + + blitShaderProg->addShader(vertexShader); + blitShaderProg->addShader(fragShader); + + blitShaderProg->bindAttributeLocation("textureCoordArray", QT_TEXTURE_COORDS_ATTR); + blitShaderProg->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR); + } + blitShaderProg->link(); - if (!blitShaderProg->isLinked()) { + if (blitShaderProg->isLinked()) { + if (!inCache) + blitShaderCache.store(blitShaderProg, context); + } else { qCritical() << "Errors linking blit shader:" - << simpleShaderProg->log(); + << blitShaderProg->log(); } #ifdef QT_GL_SHARED_SHADER_DEBUG @@ -279,101 +308,110 @@ QGLEngineShaderProg *QGLEngineSharedShaders::findProgramInCache(const QGLEngineS } } - QGLShader *vertexShader = 0; - QGLShader *fragShader = 0; - QGLEngineShaderProg *newProg = 0; - bool success = false; + QScopedPointer newProg; do { - QByteArray source; + QByteArray fragSource; // Insert the custom stage before the srcPixel shader to work around an ATI driver bug // where you cannot forward declare a function that takes a sampler as argument. if (prog.srcPixelFragShader == CustomImageSrcFragmentShader) - source.append(prog.customStageSource); - source.append(qShaderSnippets[prog.mainFragShader]); - source.append(qShaderSnippets[prog.srcPixelFragShader]); + fragSource.append(prog.customStageSource); + fragSource.append(qShaderSnippets[prog.mainFragShader]); + fragSource.append(qShaderSnippets[prog.srcPixelFragShader]); if (prog.compositionFragShader) - source.append(qShaderSnippets[prog.compositionFragShader]); + fragSource.append(qShaderSnippets[prog.compositionFragShader]); if (prog.maskFragShader) - source.append(qShaderSnippets[prog.maskFragShader]); - fragShader = new QGLShader(QGLShader::Fragment, ctxGuard.context(), 0); - shaders.append(fragShader); - QByteArray description; + fragSource.append(qShaderSnippets[prog.maskFragShader]); + + QByteArray vertexSource; + vertexSource.append(qShaderSnippets[prog.mainVertexShader]); + vertexSource.append(qShaderSnippets[prog.positionVertexShader]); + + QScopedPointer shaderProgram(new QGLShaderProgram(ctxGuard.context(), 0)); + + CachedShader shaderCache(fragSource, vertexSource); + bool inCache = shaderCache.load(shaderProgram.data(), ctxGuard.context()); + + if (!inCache) { + + QScopedPointer fragShader(new QGLShader(QGLShader::Fragment, ctxGuard.context(), 0)); + QByteArray description; #if defined(QT_DEBUG) - // Name the shader for easier debugging - description.append("Fragment shader: main="); - description.append(snippetNameStr(prog.mainFragShader)); - description.append(", srcPixel="); - description.append(snippetNameStr(prog.srcPixelFragShader)); - if (prog.compositionFragShader) { - description.append(", composition="); - description.append(snippetNameStr(prog.compositionFragShader)); - } - if (prog.maskFragShader) { - description.append(", mask="); - description.append(snippetNameStr(prog.maskFragShader)); - } - fragShader->setObjectName(QString::fromLatin1(description)); + // Name the shader for easier debugging + description.append("Fragment shader: main="); + description.append(snippetNameStr(prog.mainFragShader)); + description.append(", srcPixel="); + description.append(snippetNameStr(prog.srcPixelFragShader)); + if (prog.compositionFragShader) { + description.append(", composition="); + description.append(snippetNameStr(prog.compositionFragShader)); + } + if (prog.maskFragShader) { + description.append(", mask="); + description.append(snippetNameStr(prog.maskFragShader)); + } + fragShader->setObjectName(QString::fromLatin1(description)); #endif - if (!fragShader->compileSourceCode(source)) { - qWarning() << "Warning:" << description << "failed to compile!"; - break; - } + if (!fragShader->compileSourceCode(fragSource)) { + qWarning() << "Warning:" << description << "failed to compile!"; + break; + } - source.clear(); - source.append(qShaderSnippets[prog.mainVertexShader]); - source.append(qShaderSnippets[prog.positionVertexShader]); - vertexShader = new QGLShader(QGLShader::Vertex, ctxGuard.context(), 0); - shaders.append(vertexShader); + QScopedPointer vertexShader(new QGLShader(QGLShader::Vertex, ctxGuard.context(), 0)); #if defined(QT_DEBUG) - // Name the shader for easier debugging - description.clear(); - description.append("Vertex shader: main="); - description.append(snippetNameStr(prog.mainVertexShader)); - description.append(", position="); - description.append(snippetNameStr(prog.positionVertexShader)); - vertexShader->setObjectName(QString::fromLatin1(description)); + // Name the shader for easier debugging + description.clear(); + description.append("Vertex shader: main="); + description.append(snippetNameStr(prog.mainVertexShader)); + description.append(", position="); + description.append(snippetNameStr(prog.positionVertexShader)); + vertexShader->setObjectName(QString::fromLatin1(description)); #endif - if (!vertexShader->compileSourceCode(source)) { - qWarning() << "Warning:" << description << "failed to compile!"; - break; - } + if (!vertexShader->compileSourceCode(vertexSource)) { + qWarning() << "Warning:" << description << "failed to compile!"; + break; + } - newProg = new QGLEngineShaderProg(prog); - - // If the shader program's not found in the cache, create it now. - newProg->program = new QGLShaderProgram(ctxGuard.context(), 0); - newProg->program->addShader(vertexShader); - newProg->program->addShader(fragShader); - - // We have to bind the vertex attribute names before the program is linked: - newProg->program->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR); - if (newProg->useTextureCoords) - newProg->program->bindAttributeLocation("textureCoordArray", QT_TEXTURE_COORDS_ATTR); - if (newProg->useOpacityAttribute) - newProg->program->bindAttributeLocation("opacityArray", QT_OPACITY_ATTR); - if (newProg->usePmvMatrixAttribute) { - newProg->program->bindAttributeLocation("pmvMatrix1", QT_PMV_MATRIX_1_ATTR); - newProg->program->bindAttributeLocation("pmvMatrix2", QT_PMV_MATRIX_2_ATTR); - newProg->program->bindAttributeLocation("pmvMatrix3", QT_PMV_MATRIX_3_ATTR); + shaders.append(vertexShader.data()); + shaders.append(fragShader.data()); + shaderProgram->addShader(vertexShader.take()); + shaderProgram->addShader(fragShader.take()); + + // We have to bind the vertex attribute names before the program is linked: + shaderProgram->bindAttributeLocation("vertexCoordsArray", QT_VERTEX_COORDS_ATTR); + if (prog.useTextureCoords) + shaderProgram->bindAttributeLocation("textureCoordArray", QT_TEXTURE_COORDS_ATTR); + if (prog.useOpacityAttribute) + shaderProgram->bindAttributeLocation("opacityArray", QT_OPACITY_ATTR); + if (prog.usePmvMatrixAttribute) { + shaderProgram->bindAttributeLocation("pmvMatrix1", QT_PMV_MATRIX_1_ATTR); + shaderProgram->bindAttributeLocation("pmvMatrix2", QT_PMV_MATRIX_2_ATTR); + shaderProgram->bindAttributeLocation("pmvMatrix3", QT_PMV_MATRIX_3_ATTR); + } } + newProg.reset(new QGLEngineShaderProg(prog)); + newProg->program = shaderProgram.take(); + newProg->program->link(); - if (!newProg->program->isLinked()) { + if (newProg->program->isLinked()) { + if (!inCache) + shaderCache.store(newProg->program, ctxGuard.context()); + } else { QLatin1String none("none"); QLatin1String br("\n"); QString error; - error = QLatin1String("Shader program failed to link,") + error = QLatin1String("Shader program failed to link,"); #if defined(QT_DEBUG) - + br - + QLatin1String(" Shaders Used:") + br - + QLatin1String(" ") + vertexShader->objectName() + QLatin1String(": ") + br - + QLatin1String(vertexShader->sourceCode()) + br - + QLatin1String(" ") + fragShader->objectName() + QLatin1String(": ") + br - + QLatin1String(fragShader->sourceCode()) + br + error += QLatin1String("\n Shaders Used:\n"); + for (int i = 0; i < newProg->program->shaders().count(); ++i) { + QGLShader *shader = newProg->program->shaders().at(i); + error += QLatin1String(" ") + shader->objectName() + QLatin1String(": \n") + + QLatin1String(shader->sourceCode()) + br; + } #endif - + QLatin1String(" Error Log:\n") - + QLatin1String(" ") + newProg->program->log(); + error += QLatin1String(" Error Log:\n") + + QLatin1String(" ") + newProg->program->log(); qWarning() << error; break; } @@ -395,26 +433,10 @@ QGLEngineShaderProg *QGLEngineSharedShaders::findProgramInCache(const QGLEngineS } } - cachedPrograms.insert(0, newProg); - - success = true; + cachedPrograms.insert(0, newProg.data()); } while (false); - // Clean up everything if we weren't successful - if (!success) { - if (newProg) { - delete newProg; // Also deletes the QGLShaderProgram which in turn deletes the QGLShaders - newProg = 0; - } - else { - if (vertexShader) - delete vertexShader; - if (fragShader) - delete fragShader; - } - } - - return newProg; + return newProg.take(); } void QGLEngineSharedShaders::cleanupCustomStage(QGLCustomShaderStage* stage) diff --git a/src/opengl/gl2paintengineex/qglshadercache_meego_p.h b/src/opengl/gl2paintengineex/qglshadercache_meego_p.h new file mode 100644 index 0000000..5f51fc2 --- /dev/null +++ b/src/opengl/gl2paintengineex/qglshadercache_meego_p.h @@ -0,0 +1,457 @@ +/**************************************************************************** +** +** 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 QtOpenGL 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$ +** +****************************************************************************/ + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#ifndef QGLSHADERCACHE_MEEGO_P_H +#define QGLSHADERCACHE_MEEGO_P_H + +#include + +#if defined(QT_MEEGO_EXPERIMENTAL_SHADERCACHE) && defined(QT_OPENGL_ES_2) + +#include +#include +#include + +#ifndef QT_BOOTSTRAPPED +# include +#endif +#if defined(QT_DEBUG) || defined(QT_MEEGO_EXPERIMENTAL_SHADERCACHE_TRACE) +# include +#endif + +QT_BEGIN_HEADER + +/* + This cache stores internal Qt shader programs in shared memory. + + This header file is ugly on purpose and can only be included once. It is only to be used + for the internal shader cache, not as a generic cache for anyone's shaders. + + The cache stores either ShaderCacheMaxEntries shader programs or ShaderCacheDataSize kilobytes + of shader programs, whatever limit is reached first. + + The layout of the cache is as outlined in the CachedShaders struct. After some + integers, an array of headers is reserved, then comes the space for the actual binaries. + + Shader Programs are identified by the md5sum of their frag and vertex shader source code. + + Shader Programs are never removed. The cache never shrinks or re-shuffles. This is done + on purpose to ensure minimum amount of locking, no alignment problems and very few write + operations. + + Note: Locking the shader cache could be expensive, because the entire system might hang. + That's why the cache is immutable to minimize the time we need to keep it locked. + + Why is it Meego specific? + + First, the size is chosen so that it fits to generic meego usage. Second, on Meego, there's + always at least one Qt application active (the launcher), so the cache will never be destroyed. + Only when the last Qt app exits, the cache dies, which should only be when someone kills the + X11 server. And last but not least it was only tested with Meego's SGX driver. + + There's a small tool in src/opengl/util/meego that dumps the contents of the cache. + */ + +// anonymous namespace, prevent exporting of the private symbols +namespace +{ + +struct CachedShaderHeader +{ + /* the index in the data[] member of CachedShaders */ + int index; + /* the size of the binary shader */ + GLsizei size; + /* the format of the binary shader */ + GLenum format; + /* the md5sum of the frag+vertex shaders */ + char md5Sum[16]; +}; + +enum +{ + /* The maximum amount of shader programs the cache can hold */ + ShaderCacheMaxEntries = 20 +}; + +typedef CachedShaderHeader CachedShaderHeaders[ShaderCacheMaxEntries]; + +enum +{ + // ShaderCacheDataSize is 20k minus the other data members of CachedShaders + ShaderCacheDataSize = 1024 * ShaderCacheMaxEntries - sizeof(CachedShaderHeaders) - 2 * sizeof(int) +}; + +struct CachedShaders +{ + /* How much space is still available in the cache */ + inline int availableSize() const { return ShaderCacheDataSize - dataSize; } + + /* The current amount of cached shaders */ + int shaderCount; + + /* The current amount (in bytes) of cached data */ + int dataSize; + + /* The headers describing the shaders */ + CachedShaderHeaders headers; + + /* The actual binary data of the shader programs */ + char data[ShaderCacheDataSize]; +}; + +//#define QT_DEBUG_SHADER_CACHE +#ifdef QT_DEBUG_SHADER_CACHE +static QDebug shaderCacheDebug() +{ + return QDebug(QtDebugMsg); +} +#else +static inline QNoDebug shaderCacheDebug() { return QNoDebug(); } +#endif + +class ShaderCacheSharedMemory +{ +public: + ShaderCacheSharedMemory() + : shm(QLatin1String("qt_gles2_shadercache_" QT_VERSION_STR)) + { + // we need a system semaphore here, since cache creation and initialization must be atomic + QSystemSemaphore attachSemaphore(QLatin1String("qt_gles2_shadercache_mutex_" QT_VERSION_STR), 1); + + if (!attachSemaphore.acquire()) { + shaderCacheDebug() << "Unable to require shader cache semaphore:" << attachSemaphore.errorString(); + return; + } + + if (shm.attach()) { + // success! + shaderCacheDebug() << "Attached to shader cache"; + } else { + + // no cache exists - create and initialize it + if (shm.create(sizeof(CachedShaders))) { + shaderCacheDebug() << "Created new shader cache"; + initializeCache(); + } else { + shaderCacheDebug() << "Unable to create shader cache:" << shm.errorString(); + } + } + + attachSemaphore.release(); + } + + inline bool isAttached() const { return shm.isAttached(); } + + inline bool lock() { return shm.lock(); } + inline bool unlock() { return shm.unlock(); } + inline void *data() { return shm.data(); } + inline QString errorString() { return shm.errorString(); } + + ~ShaderCacheSharedMemory() + { + if (!shm.detach()) + shaderCacheDebug() << "Unable to detach shader cache" << shm.errorString(); + } + +private: + void initializeCache() + { + // no need to lock the shared memory since we're already protected by the + // attach system semaphore. + + void *data = shm.data(); + Q_ASSERT(data); + + memset(data, 0, sizeof(CachedShaders)); + } + + QSharedMemory shm; +}; + +class ShaderCacheLocker +{ +public: + inline ShaderCacheLocker(ShaderCacheSharedMemory *cache) + : shm(cache->lock() ? cache : (ShaderCacheSharedMemory *)0) + { + if (!shm) + shaderCacheDebug() << "Unable to lock shader cache" << cache->errorString(); + } + + inline bool isLocked() const { return shm; } + + inline ~ShaderCacheLocker() + { + if (!shm) + return; + if (!shm->unlock()) + shaderCacheDebug() << "Unable to unlock shader cache" << shm->errorString(); + } + +private: + ShaderCacheSharedMemory *shm; +}; + +#ifdef QT_BOOTSTRAPPED +} // end namespace +#else + +static void traceCacheOverflow(const char *message) +{ +#if defined(QT_DEBUG) || defined (QT_MEEGO_EXPERIMENTAL_SHADERCACHE_TRACE) + openlog(qPrintable(QCoreApplication::applicationName()), LOG_PID | LOG_ODELAY, LOG_USER); + syslog(LOG_DEBUG, message); + closelog(); +#endif + shaderCacheDebug() << message; +} + +Q_GLOBAL_STATIC(ShaderCacheSharedMemory, shaderCacheSharedMemory) + +/* + Finds the index of the shader program identified by md5Sum in the cache. + Note: Does NOT lock the cache for reading, the cache must already be locked! + + Returns -1 when no shader was found. + */ +static int qt_cache_index_unlocked(const QByteArray &md5Sum, CachedShaders *cache) +{ + for (int i = 0; i < cache->shaderCount; ++i) { + if (qstrncmp(md5Sum.constData(), cache->headers[i].md5Sum, 16) == 0) { + return i; + } + } + return -1; +} + +/* Returns the index of the shader identified by md5Sum */ +static int qt_cache_index(const QByteArray &md5Sum) +{ + ShaderCacheSharedMemory *shm = shaderCacheSharedMemory(); + if (!shm || !shm->isAttached()) + return false; + + Q_ASSERT(md5Sum.length() == 16); + + ShaderCacheLocker locker(shm); + if (!locker.isLocked()) + return false; + + void *data = shm->data(); + Q_ASSERT(data); + + CachedShaders *cache = reinterpret_cast(data); + + return qt_cache_index_unlocked(md5Sum, cache); +} + +/* Loads the cached shader at index \a shaderIndex into \a program + * Note: Since the cache is immutable, this operation doesn't lock the shared memory. + */ +static bool qt_cached_shader(QGLShaderProgram *program, const QGLContext *ctx, int shaderIndex) +{ + Q_ASSERT(shaderIndex >= 0 && shaderIndex <= ShaderCacheMaxEntries); + Q_ASSERT(program); + + ShaderCacheSharedMemory *shm = shaderCacheSharedMemory(); + if (!shm || !shm->isAttached()) + return false; + + void *data = shm->data(); + Q_ASSERT(data); + + CachedShaders *cache = reinterpret_cast(data); + + shaderCacheDebug() << "fetching cached shader at index" << shaderIndex + << "dataIndex" << cache->headers[shaderIndex].index + << "size" << cache->headers[shaderIndex].size + << "format" << cache->headers[shaderIndex].format; + + // call program->programId first, since that resolves the glProgramBinaryOES symbol + GLuint programId = program->programId(); + glProgramBinaryOES(programId, cache->headers[shaderIndex].format, + cache->data + cache->headers[shaderIndex].index, + cache->headers[shaderIndex].size); + + return true; +} + +/* Stores the shader program in the cache. Returns false if there's an error with the cache, or + if the cache is too small to hold the shader. */ +static bool qt_cache_shader(const QGLShaderProgram *shader, const QGLContext *ctx, const QByteArray &md5Sum) +{ + ShaderCacheSharedMemory *shm = shaderCacheSharedMemory(); + if (!shm || !shm->isAttached()) + return false; + + void *data = shm->data(); + Q_ASSERT(data); + + CachedShaders *cache = reinterpret_cast(data); + + ShaderCacheLocker locker(shm); + if (!locker.isLocked()) + return false; + + int cacheIdx = cache->shaderCount; + if (cacheIdx >= ShaderCacheMaxEntries) { + traceCacheOverflow("Qt OpenGL shader cache index overflow!"); + return false; + } + + // now that we have the lock on the shared memory, make sure no one + // inserted the shader already while we were unlocked + if (qt_cache_index_unlocked(md5Sum, cache) != -1) + return true; // already cached + + shaderCacheDebug() << "Caching shader at index" << cacheIdx; + + GLint binaryLength = 0; + glGetProgramiv(shader->programId(), GL_PROGRAM_BINARY_LENGTH_OES, &binaryLength); + + if (!binaryLength) { + shaderCacheDebug() << "Unable to determine binary shader size!"; + return false; + } + + if (binaryLength > cache->availableSize()) { + traceCacheOverflow("Qt OpenGL shader cache data overflow!"); + return false; + } + + GLsizei size = 0; + GLenum format = 0; + glGetProgramBinaryOES(shader->programId(), binaryLength, &size, &format, + cache->data + cache->dataSize); + + if (!size) { + shaderCacheDebug() << "Unable to get binary shader!"; + return false; + } + + cache->headers[cacheIdx].index = cache->dataSize; + cache->dataSize += binaryLength; + ++cache->shaderCount; + cache->headers[cacheIdx].size = binaryLength; + cache->headers[cacheIdx].format = format; + + memcpy(cache->headers[cacheIdx].md5Sum, md5Sum.constData(), 16); + + shaderCacheDebug() << "cached shader size" << size + << "format" << format + << "binarySize" << binaryLength + << "cache index" << cacheIdx + << "data index" << cache->headers[cacheIdx].index; + + return true; +} + +} // namespace + +QT_BEGIN_NAMESPACE + +QT_MODULE(OpenGL) + +class CachedShader +{ +public: + CachedShader(const QByteArray &fragSource, const QByteArray &vertexSource) + : cacheIdx(-1) + { + QCryptographicHash md5Hash(QCryptographicHash::Md5); + + md5Hash.addData(fragSource); + md5Hash.addData(vertexSource); + + md5Sum = md5Hash.result(); + } + + bool isCached() + { + return cacheIndex() != -1; + } + + int cacheIndex() + { + if (cacheIdx != -1) + return cacheIdx; + cacheIdx = qt_cache_index(md5Sum); + return cacheIdx; + } + + bool load(QGLShaderProgram *program, const QGLContext *ctx) + { + if (cacheIndex() == -1) + return false; + return qt_cached_shader(program, ctx, cacheIdx); + } + + bool store(QGLShaderProgram *program, const QGLContext *ctx) + { + return qt_cache_shader(program, ctx, md5Sum); + } + +private: + QByteArray md5Sum; + int cacheIdx; +}; + + +QT_END_NAMESPACE + +#endif + +QT_END_HEADER + +#endif +#endif diff --git a/src/opengl/gl2paintengineex/qglshadercache_p.h b/src/opengl/gl2paintengineex/qglshadercache_p.h new file mode 100644 index 0000000..29616ae --- /dev/null +++ b/src/opengl/gl2paintengineex/qglshadercache_p.h @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** 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 QtOpenGL 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$ +** +****************************************************************************/ + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#ifndef QGLSHADERCACHE_P_H +#define QGLSHADERCACHE_P_H + +#include + +#if defined(QT_MEEGO_EXPERIMENTAL_SHADERCACHE) && defined(QT_OPENGL_ES_2) +# include "qglshadercache_meego_p.h" +#else + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(OpenGL) + +class QGLShaderProgram; +class QGLContext; + +class CachedShader +{ +public: + inline CachedShader(const QByteArray &, const QByteArray &) + {} + + inline bool isCached() + { + return false; + } + + inline bool load(QGLShaderProgram *, const QGLContext *) + { + return false; + } + + inline bool store(QGLShaderProgram *, const QGLContext *) + { + return false; + } +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif +#endif diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro index 682e620..a089d55 100644 --- a/src/opengl/opengl.pro +++ b/src/opengl/opengl.pro @@ -60,7 +60,9 @@ SOURCES += qgl.cpp \ gl2paintengineex/qglcustomshaderstage_p.h \ gl2paintengineex/qtriangulatingstroker_p.h \ gl2paintengineex/qtriangulator_p.h \ - gl2paintengineex/qtextureglyphcache_gl_p.h + gl2paintengineex/qtextureglyphcache_gl_p.h \ + gl2paintengineex/qglshadercache_p.h \ + gl2paintengineex/qglshadercache_meego_p.h SOURCES += qglshaderprogram.cpp \ qglpixmapfilter.cpp \ diff --git a/src/opengl/util/meego/main.cpp b/src/opengl/util/meego/main.cpp new file mode 100644 index 0000000..0c9a915 --- /dev/null +++ b/src/opengl/util/meego/main.cpp @@ -0,0 +1,48 @@ +#include + +#define QT_DEBUG_SHADER_CACHE +#define QT_MEEGO_EXPERIMENTAL_SHADERCACHE +#define QT_OPENGL_ES_2 +#define QT_BOOTSTRAPPED + +typedef int GLsizei; +typedef unsigned int GLenum; + +#include "../../gl2paintengineex/qglshadercache_meego_p.h" + +#include +#include + +int main() +{ + ShaderCacheSharedMemory shm; + + if (!shm.isAttached()) { + fprintf(stderr, "Unable to attach to shared memory\n"); + return EXIT_FAILURE; + } + + ShaderCacheLocker locker(&shm); + if (!locker.isLocked()) { + fprintf(stderr, "Unable to lock shared memory\n"); + return EXIT_FAILURE; + } + + void *data = shm.data(); + Q_ASSERT(data); + + CachedShaders *cache = reinterpret_cast(data); + + for (int i = 0; i < cache->shaderCount; ++i) { + printf("Shader %d: %d bytes\n", i, cache->headers[i].size); + } + + printf("\nSummary:\n\n" + " Amount of cached shaders: %d\n" + " Bytes used: %d\n" + " Bytes available: %d\n", + cache->shaderCount, cache->dataSize, cache->availableSize()); + + return EXIT_SUCCESS; +} + diff --git a/src/opengl/util/meego/shader-cache-introspector.pro b/src/opengl/util/meego/shader-cache-introspector.pro new file mode 100644 index 0000000..520e9a5 --- /dev/null +++ b/src/opengl/util/meego/shader-cache-introspector.pro @@ -0,0 +1,7 @@ +TEMPLATE = app + +SOURCES += main.cpp + +TARGET = shader-cache-introspector + +QT = core -- cgit v0.12 From 482e924154a57cf2e37d8224d3c677635aa56317 Mon Sep 17 00:00:00 2001 From: Raul Metsma Date: Tue, 21 Dec 2010 12:55:49 +0100 Subject: QMessageBox wrong Show/Hide Details button label On LanguageChange event QMessageBox switches Show/Hide Details button label Customer portal case id: 00217646 Merge-request: 973 Reviewed-by: Olivier Goffart --- src/gui/dialogs/qmessagebox.cpp | 2 +- tests/auto/qmessagebox/tst_qmessagebox.cpp | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/gui/dialogs/qmessagebox.cpp b/src/gui/dialogs/qmessagebox.cpp index 224a176..af9616d 100644 --- a/src/gui/dialogs/qmessagebox.cpp +++ b/src/gui/dialogs/qmessagebox.cpp @@ -1925,7 +1925,7 @@ void QMessageBoxPrivate::retranslateStrings() { #ifndef QT_NO_TEXTEDIT if (detailsButton) - detailsButton->setLabel(detailsText->isHidden() ? HideLabel : ShowLabel); + detailsButton->setLabel(detailsText->isHidden() ? ShowLabel : HideLabel); #endif } diff --git a/tests/auto/qmessagebox/tst_qmessagebox.cpp b/tests/auto/qmessagebox/tst_qmessagebox.cpp index d4ca064..54d199c 100644 --- a/tests/auto/qmessagebox/tst_qmessagebox.cpp +++ b/tests/auto/qmessagebox/tst_qmessagebox.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #if defined(Q_WS_MAC) && !defined(QT_NO_STYLE_MAC) #include #endif @@ -119,6 +120,7 @@ private slots: void statics(); void about(); void detailsText(); + void detailsButtonText(); void shortcut(); @@ -661,6 +663,26 @@ void tst_QMessageBox::detailsText() QCOMPARE(box.detailedText(), text); } +void tst_QMessageBox::detailsButtonText() +{ + QMessageBox box; + box.setDetailedText("bla"); + box.open(); + QApplication::postEvent(&box, new QEvent(QEvent::LanguageChange)); + QApplication::processEvents(); + QDialogButtonBox* bb = box.findChild("qt_msgbox_buttonbox"); + QVERIFY(bb); //get the detail button + + QList list = bb->buttons(); + QAbstractButton* btn = NULL; + foreach(btn, list) { + if (btn && (btn->inherits("QPushButton"))) { + if(btn->text() != QMessageBox::tr("OK") && btn->text() != QMessageBox::tr("Show Details...")) + QFAIL("Incorrect messagebox button text!"); + } + } +} + void tst_QMessageBox::incorrectDefaultButton() { keyToSend = Qt::Key_Escape; -- cgit v0.12 From b696d941c06535b7a7813c4d3b39dbd3710476e4 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Tue, 21 Dec 2010 10:29:19 +0100 Subject: Fix timer warning when deleting item views Reviewed-by: Olivier Task-number: QTBUG-16175 --- src/gui/itemviews/qabstractitemview.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp index 177b088..a7960ae 100644 --- a/src/gui/itemviews/qabstractitemview.cpp +++ b/src/gui/itemviews/qabstractitemview.cpp @@ -595,8 +595,15 @@ QAbstractItemView::QAbstractItemView(QAbstractItemViewPrivate &dd, QWidget *pare */ QAbstractItemView::~QAbstractItemView() { - // stop this timer here before ~QObject - d_func()->delayedReset.stop(); + Q_D(QAbstractItemView); + // stop these timers here before ~QObject + d->delayedReset.stop(); + d->updateTimer.stop(); + d->delayedEditing.stop(); + d->delayedAutoScroll.stop(); + d->autoScrollTimer.stop(); + d->delayedLayout.stop(); + d->fetchMoreTimer.stop(); } /*! -- cgit v0.12 From 5d68753927ac6ba1445ceb6831da7e2346d91bf9 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 21 Dec 2010 13:26:54 +0100 Subject: Optimize texture glyph cache To avoid calling the bounding box function for the same non-printable characters in every call, we cache them as empty in the coords table and bail out before painting them. This patch also fixes some possible reads of uninitialized memory (reference to return value) and reference to a default constructed object consisting of uninitialized pods. Reviewed-by: Samuel --- src/gui/painting/qpaintengine_raster.cpp | 4 +++- src/gui/painting/qtextureglyphcache.cpp | 11 ++++++++--- src/gui/painting/qtextureglyphcache_p.h | 5 +++++ .../gl2paintengineex/qpaintengineex_opengl2.cpp | 20 ++++++++++++-------- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index 97dfddf..ec5cef0 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -3111,7 +3111,9 @@ void QRasterPaintEngine::drawCachedGlyphs(int numGlyphs, const glyph_t *glyphs, if (supportsSubPixelPositions) subPixelPosition = cache->subPixelPositionForX(positions[i].x); QTextureGlyphCache::GlyphAndSubPixelPosition glyph(glyphs[i], subPixelPosition); - const QTextureGlyphCache::Coord &c = cache->coords.value(glyph); + const QTextureGlyphCache::Coord &c = cache->coords[glyph]; + if (c.isNull()) + continue; int x = qFloor(positions[i].x) + c.baseLineX - margin; int y = qFloor(positions[i].y) - c.baseLineY - margin; diff --git a/src/gui/painting/qtextureglyphcache.cpp b/src/gui/painting/qtextureglyphcache.cpp index 60300c3..670ca95 100644 --- a/src/gui/painting/qtextureglyphcache.cpp +++ b/src/gui/painting/qtextureglyphcache.cpp @@ -175,11 +175,16 @@ bool QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const metrics.yoff.toReal(), metrics.x.toReal(), metrics.y.toReal()); -#endif +#endif + GlyphAndSubPixelPosition key(glyph, subPixelPosition); int glyph_width = metrics.width.ceil().toInt(); int glyph_height = metrics.height.ceil().toInt(); - if (glyph_height == 0 || glyph_width == 0) + if (glyph_height == 0 || glyph_width == 0) { + // Avoid multiple calls to boundingBox() for non-printable characters + Coord c = { 0, 0, 0, 0, 0, 0 }; + coords.insert(key, c); continue; + } glyph_width += margin * 2 + 4; glyph_height += margin * 2 + 4; // align to 8-bit boundary @@ -192,7 +197,7 @@ bool QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const metrics.x.round().truncate(), -metrics.y.truncate() }; // baseline for horizontal scripts - listItemCoordinates.insert(GlyphAndSubPixelPosition(glyph, subPixelPosition), c); + listItemCoordinates.insert(key, c); rowHeight = qMax(rowHeight, glyph_height); } if (listItemCoordinates.isEmpty()) diff --git a/src/gui/painting/qtextureglyphcache_p.h b/src/gui/painting/qtextureglyphcache_p.h index 4227e9a..7a0bdfd 100644 --- a/src/gui/painting/qtextureglyphcache_p.h +++ b/src/gui/painting/qtextureglyphcache_p.h @@ -107,6 +107,11 @@ public: int baseLineX; int baseLineY; + + bool isNull() const + { + return w == 0 || h == 0; + } }; bool populate(QFontEngine *fontEngine, int numGlyphs, const glyph_t *glyphs, diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp index cdd785a..771d33f 100644 --- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp +++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp @@ -1556,7 +1556,6 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp } } - if (recreateVertexArrays) { vertexCoordinates->clear(); textureCoordinates->clear(); @@ -1569,7 +1568,10 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp QTextureGlyphCache::GlyphAndSubPixelPosition glyph(staticTextItem->glyphs[i], subPixelPosition); - const QTextureGlyphCache::Coord &c = cache->coords.value(glyph); + const QTextureGlyphCache::Coord &c = cache->coords[glyph]; + if (c.isNull()) + continue; + int x = staticTextItem->glyphPositions[i].x.toInt() + c.baseLineX - margin; int y = staticTextItem->glyphPositions[i].y.toInt() - c.baseLineY - margin; @@ -1580,10 +1582,12 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp staticTextItem->userDataNeedsUpdate = false; } - if (elementIndices.size() < staticTextItem->numGlyphs*6) { + int numGlyphs = vertexCoordinates->vertexCount() / 4; + + if (elementIndices.size() < numGlyphs*6) { Q_ASSERT(elementIndices.size() % 6 == 0); int j = elementIndices.size() / 6 * 4; - while (j < staticTextItem->numGlyphs*4) { + while (j < numGlyphs*4) { elementIndices.append(j + 0); elementIndices.append(j + 0); elementIndices.append(j + 1); @@ -1672,9 +1676,9 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp updateTextureFilter(GL_TEXTURE_2D, GL_REPEAT, false); #if defined(QT_OPENGL_DRAWCACHEDGLYPHS_INDEX_ARRAY_VBO) - glDrawElements(GL_TRIANGLE_STRIP, 6 * staticTextItem->numGlyphs, GL_UNSIGNED_SHORT, 0); + glDrawElements(GL_TRIANGLE_STRIP, 6 * numGlyphs, GL_UNSIGNED_SHORT, 0); #else - glDrawElements(GL_TRIANGLE_STRIP, 6 * staticTextItem->numGlyphs, GL_UNSIGNED_SHORT, elementIndices.data()); + glDrawElements(GL_TRIANGLE_STRIP, 6 * numGlyphs, GL_UNSIGNED_SHORT, elementIndices.data()); #endif shaderManager->setMaskType(QGLEngineShaderManager::SubPixelMaskPass2); @@ -1722,10 +1726,10 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp } #if defined(QT_OPENGL_DRAWCACHEDGLYPHS_INDEX_ARRAY_VBO) - glDrawElements(GL_TRIANGLE_STRIP, 6 * staticTextItem->numGlyphs, GL_UNSIGNED_SHORT, 0); + glDrawElements(GL_TRIANGLE_STRIP, 6 * numGlyphs, GL_UNSIGNED_SHORT, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); #else - glDrawElements(GL_TRIANGLE_STRIP, 6 * staticTextItem->numGlyphs, GL_UNSIGNED_SHORT, elementIndices.data()); + glDrawElements(GL_TRIANGLE_STRIP, 6 * numGlyphs, GL_UNSIGNED_SHORT, elementIndices.data()); #endif } -- cgit v0.12 From ff187688e113ec157dd14abcef0faf602b68901c Mon Sep 17 00:00:00 2001 From: David Boddie Date: Tue, 21 Dec 2010 14:21:21 +0100 Subject: Doc: Added a missing license header. --- doc/src/snippets/declarative/focus/focusColumn.qml | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/doc/src/snippets/declarative/focus/focusColumn.qml b/doc/src/snippets/declarative/focus/focusColumn.qml index eb59309..42ee3da 100644 --- a/doc/src/snippets/declarative/focus/focusColumn.qml +++ b/doc/src/snippets/declarative/focus/focusColumn.qml @@ -1,3 +1,42 @@ +/**************************************************************************** +** +** 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 documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ import QtQuick 1.0 Rectangle { -- cgit v0.12 From b6218123974795f1a83c42198ab7fd3ceeab8029 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 21 Dec 2010 13:00:07 +0000 Subject: Fix qfile test errors Fix compile error for non symbian targets Fix MSVCRT assertion failure Test file.handle() returns the right thing before and after file is closed. Reviewed-by: joao --- tests/auto/qfile/tst_qfile.cpp | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index d9b8283..4e18ec4 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -345,8 +345,10 @@ private: QT_CLOSE(fd_); if (stream_) ::fclose(stream_); +#ifdef Q_OS_SYMBIAN if (rfile_.SubSessionHandle()) rfile_.Close(); +#endif fd_ = -1; stream_ = 0; @@ -3282,6 +3284,25 @@ void tst_QFile::caseSensitivity() } } +//MSVCRT asserts when any function is called with a closed file handle. +//This replaces the default crashing error handler with one that ignores the error (allowing EBADF to be returned) +class AutoIgnoreInvalidParameter +{ +public: +#if defined(Q_OS_WIN) && defined (Q_CC_MSVC) + static void ignore_invalid_parameter(const wchar_t*, const wchar_t*, const wchar_t*, unsigned int, uintptr_t) {} + AutoIgnoreInvalidParameter() + { + old = _set_invalid_parameter_handler(ignore_invalid_parameter); + } + ~AutoIgnoreInvalidParameter() + { + _set_invalid_parameter_handler(old); + } + _invalid_parameter_handler old; +#endif +}; + void tst_QFile::autocloseHandle() { #ifdef Q_OS_SYMBIAN @@ -3318,41 +3339,56 @@ void tst_QFile::autocloseHandle() { QFile file("readonlyfile"); QVERIFY(openFile(file, QIODevice::ReadOnly, OpenFd, QFile::AutoCloseHandle)); + QCOMPARE(file.handle(), fd_); file.close(); + QCOMPARE(file.handle(), -1); + AutoIgnoreInvalidParameter a; + Q_UNUSED(a); //file is closed, read should fail char buf; - QCOMPARE(::read(fd_, &buf, 1), -1); + QCOMPARE(QT_READ(fd_, &buf, 1), -1); QVERIFY(errno = EBADF); + fd_ = -1; } { QFile file("readonlyfile"); QVERIFY(openFile(file, QIODevice::ReadOnly, OpenFd, QFile::DontCloseHandle)); + QCOMPARE(file.handle(), fd_); file.close(); + QCOMPARE(file.handle(), -1); //file is not closed, read should succeed char buf; - QCOMPARE(::read(fd_, &buf, 1), 1); + QCOMPARE(QT_READ(fd_, &buf, 1), 1); ::close(fd_); + fd_ = -1; } { QFile file("readonlyfile"); QVERIFY(openFile(file, QIODevice::ReadOnly, OpenStream, QFile::AutoCloseHandle)); + QCOMPARE(file.handle(), fileno(stream_)); file.close(); + QCOMPARE(file.handle(), -1); + AutoIgnoreInvalidParameter a; + Q_UNUSED(a); //file is closed, read should fail char buf; QCOMPARE(int(::fread(&buf, 1, 1, stream_)), 0); - QVERIFY(::ferror(stream_)); //actual error seems to be OS dependent + stream_ = 0; } { QFile file("readonlyfile"); QVERIFY(openFile(file, QIODevice::ReadOnly, OpenStream, QFile::DontCloseHandle)); + QCOMPARE(file.handle(), fileno(stream_)); file.close(); + QCOMPARE(file.handle(), -1); //file is not closed, read should succeed char buf; QCOMPARE(int(::fread(&buf, 1, 1, stream_)), 1); ::fclose(stream_); + stream_ = 0; } } -- cgit v0.12 From afa22a20c1b89960b647b0e3a9dc390fe6f87eae Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Wed, 22 Dec 2010 08:48:40 +1000 Subject: tst_headers: make failure more detailed when failing to open a file Replace QVERIFY(f.open(...)) with QVERIFY2(f.open(...), qPrintable(f.errorString())) This pattern should be followed for all functions which can provide an error string on failure. --- tests/auto/headers/tst_headers.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/auto/headers/tst_headers.cpp b/tests/auto/headers/tst_headers.cpp index 7ccf058..8c8bc2c 100644 --- a/tests/auto/headers/tst_headers.cpp +++ b/tests/auto/headers/tst_headers.cpp @@ -203,7 +203,7 @@ void tst_Headers::licenseCheck() QFETCH(QString, sourceFile); QFile f(sourceFile); - QVERIFY(f.open(QIODevice::ReadOnly)); + QVERIFY2(f.open(QIODevice::ReadOnly), qPrintable(f.errorString())); QByteArray data = f.readAll(); data.replace("\r\n", "\n"); // Windows data.replace('\r', '\n'); // Mac OS9 @@ -264,7 +264,7 @@ void tst_Headers::privateSlots() return; QFile f(header); - QVERIFY(f.open(QIODevice::ReadOnly)); + QVERIFY2(f.open(QIODevice::ReadOnly), qPrintable(f.errorString())); QStringList content = QString::fromLocal8Bit(f.readAll()).split("\n"); foreach (QString line, content) { @@ -286,7 +286,7 @@ void tst_Headers::macros() return; QFile f(header); - QVERIFY(f.open(QIODevice::ReadOnly)); + QVERIFY2(f.open(QIODevice::ReadOnly), qPrintable(f.errorString())); QByteArray data = f.readAll(); QStringList content = QString::fromLocal8Bit(data.replace('\r', "")).split("\n"); -- cgit v0.12 From 960c0f28c5c2a52d28f06d4cfda4f7d46becad93 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 20 Dec 2010 16:31:09 +1000 Subject: Remove redundant docs --- doc/src/declarative/qdeclarativereference.qdoc | 81 -------------------------- 1 file changed, 81 deletions(-) delete mode 100644 doc/src/declarative/qdeclarativereference.qdoc diff --git a/doc/src/declarative/qdeclarativereference.qdoc b/doc/src/declarative/qdeclarativereference.qdoc deleted file mode 100644 index c2c5e91..0000000 --- a/doc/src/declarative/qdeclarativereference.qdoc +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** 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 documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** 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 Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of this -** file. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page qdeclarativereference.html - \title QML Reference - - \target qtdeclarativemainpage - - QML is a language for building the animation rich, - highly fluid user interfaces that are becoming common in portable consumer - electronics devices such as mobile phones, media players, set-top boxes and - netbooks. It is also appropriate for highly custom desktop - user interfaces, or special elements in more traditional desktop user interfaces. - - Building fluid applications is done declaratively, rather than procedurally. - That is, you specify \e what the UI should look like and how it should behave - rather than specifying step-by-step \e how to build it. Specifying a UI declaratively - does not just include the layout of the interface items, but also the way each - individual item looks and behaves and the overall flow of the application. - - The QML elements provide a sophisticated set of graphical and behavioral building - blocks. These different elements are combined together in \l {QML Documents}{QML documents} to build components - ranging in complexity from simple buttons and sliders, to complete - internet-enabled applications like a \l {http://www.flickr.com}{Flickr} photo browser. - - Getting Started: - \list - \o \l {Introduction to the QML language} - \o \l {QML Tutorial}{Tutorial: 'Hello World'} - \o \l {QML Advanced Tutorial}{Advanced Tutorial: 'Same Game'} - \o \l {QML Examples and Demos} - \endlist - - \section1 Core QML Features: - \list - \o \l {QML Documents} - \o \l {Property Binding} - \o \l {Integrating JavaScript} - \o \l {QML Scope} - \o \l {Network Transparency} - \o \l {qmlmodels}{Data Models} - \o \l {anchor-layout}{Anchor-based Layout} - \o \l {qmlstates}{States} - \o \l {qdeclarativeanimation.html}{Animation} - \o \l {qdeclarativemodules.html}{Modules} - \o \l {qmlfocus}{Keyboard Focus} - \o \l {Extending types from QML} - \endlist - - QML Reference: - \list - \o \l {elements}{QML Elements} - \o \l {QML Global Object} - \o \l {QML Internationalization} - \endlist -*/ -- cgit v0.12 From 22df95289adc5fca59cc0a42cf18e98c5cc433d9 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 22 Dec 2010 11:35:39 +1000 Subject: Add double type to QML Basic Types docs --- doc/src/declarative/basictypes.qdoc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc index 034b7d1..939f328 100644 --- a/doc/src/declarative/basictypes.qdoc +++ b/doc/src/declarative/basictypes.qdoc @@ -95,6 +95,26 @@ */ /*! + \qmlbasictype double + \ingroup qmlbasictypes + + \brief A double number has a decimal point and is stored in double precision. + + A double number has a decimal point and is stored in double precision, \l + {http://en.wikipedia.org/wiki/IEEE_754} {IEEE floating point} + format. + + Example: + \qml + Item { + property double number: 32155.2355 + } + \endqml + + \sa {QML Basic Types} +*/ + +/*! \qmlbasictype string \ingroup qmlbasictypes -- cgit v0.12 From 2d4d125313d79fb80f513952bed675b7126392fd Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 22 Dec 2010 12:23:08 +1000 Subject: Document the 'variant' basic type This includes documentation on restrictions and considerations when storing a JavaScript object with this type, since such properties only hold a copy of the object's values and not the actual object. Task-number: QTBUG-16196 Reviewed-by: Michael Brasser --- doc/src/declarative/basictypes.qdoc | 75 ++++++++++++++++++++++++++++++++++++- doc/src/declarative/extending.qdoc | 24 ++++++------ 2 files changed, 87 insertions(+), 12 deletions(-) diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc index 939f328..e9d3a44 100644 --- a/doc/src/declarative/basictypes.qdoc +++ b/doc/src/declarative/basictypes.qdoc @@ -432,7 +432,8 @@ list only modify a \e copy of the list and not the actual list. (These current limitations are due to restrictions on \l {Property Binding} where lists are involved.) - To create a modifiable list, create an array object from within a \c .js JavaScript file, + You can, however, modify a copy of the list and then reassign the property to the modified + value. Other options are to create an array object from within a \c .js JavaScript file, or implement a custom list element in C++. Here is a QML element that modifies the list in a JavaScript file: @@ -472,6 +473,78 @@ \sa {QML Basic Types} */ + +/*! + \qmlbasictype variant + \ingroup qmlbasictypes + + \brief A variant type is a generic property type. + + A variant is a generic property type. A variant type property can hold any of the + \l {QML Basic Types}{basic type} values: + + \qml + Item { + property variant aNumber : 100 + property variant aString : "Hello world!" + property variant aList : [ 1, 2, "buckle my shoe" ] + } + \endqml + + The \c variant type can also hold a \e copy of a JavaScript object. For example, the + \c animal property below defines a JavaScript object defined with JSON notation. The + object's properties and values can be examined using the standard JavaScript syntax, + as shown in the \c Component.onCompleted handler. + + \qml + Item { + property variant animal : { 'type': 'bird', 'species': 'galah', 'age': 7 } + + Component.onCompleted: { + for (var attribute in animal) + console.log(attribute, "=", animal[attribute]) + } + } + \endqml + + It must be noted that the \c animal property holds a \e copy of the defined object, and + not the object itself. (This is true even if the property refers to an object defined in + some JavaScript file; the property will hold a copy of the object, and not the actual + object.) The property essentially holds a copy of the contents within the object. This + has several implications: + + \list + \o Changes to any of the property's values (for example, the \c animal.type value + above) only modify the \e copy of the object, not the object itself. You can, however, + modify a copy of the object and then reassign the property to the modified value. + \o Because the property only holds a copy of the object, \l{Property Binding}{bindings} to + any of the property's individual values are not updated until the whole property is + reassigned to a new value. For example: + + \qml + Item { + property variant animal : { 'type': 'bird', 'species': 'galah', 'age': 7 } + + Text { text: "Animal species: " + animal.species } + + Component.onCompleted: { + animal.species = 'kookaburra' // this has no effect on the displayed text + + var newObj = animal + newObj.species = 'kookaburra' + animal = newObj // this will update the displayed text + } + } + \endqml + \o Since the object values are copied, it does not hold any reference to the original + object, and extra data such as the object's JavaScript prototype chain is lost in the + process. + \endlist + + \sa {QML Basic Types} +*/ + + /*! \qmlbasictype vector3d \ingroup qmlbasictypes diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc index 748ec6c..ff519f6 100644 --- a/doc/src/declarative/extending.qdoc +++ b/doc/src/declarative/extending.qdoc @@ -753,15 +753,15 @@ with their default values and the corresponding C++ type: \table \header \o QML Type Name \o Default value \o C++ Type Name -\row \o int \o 0 \o int -\row \o bool \o \c false \o bool -\row \o double \o 0.0 \o double -\row \o real \o 0.0 \o double -\row \o string \o "" (empty string) \o QString -\row \o url \o "" (empty url) \o QUrl -\row \o color \o #000000 (black) \o QColor -\row \o date \o \c undefined \o QDateTime -\row \o variant \o \c undefined \o QVariant +\row \o \l int \o 0 \o int +\row \o \l bool \o \c false \o bool +\row \o \l double \o 0.0 \o double +\row \o \l real \o 0.0 \o double +\row \o \l string \o "" (empty string) \o QString +\row \o \l url \o "" (empty url) \o QUrl +\row \o \l color \o #000000 (black) \o QColor +\row \o \l date \o \c undefined \o QDateTime +\row \o \l variant \o \c undefined \o QVariant \endtable QML object types can also be used as property types. This includes @@ -776,6 +776,10 @@ property MyCustomType customProperty Such object-type properties default to an \c undefined value. +It is also possible to store a copy of a JavaScript object using the \c variant +property type. This creates some restrictions on how the property should be used; +see the \l {variant}{variant type documentation} for details. + \l{list}{List properties} are created with the \c list syntax, and default to an empty list: @@ -786,8 +790,6 @@ property list listOfItems Note that list properties cannot be modified like ordinary JavaScript arrays. See the \l {list}{list type documentation} for details. -For details about accessing and manipulating QML properties from C++, see \l {Using QML with C++}. - \section2 Property change signals -- cgit v0.12 From 55c32b91a298d52bd7c29968d21b4b7a5ee741e4 Mon Sep 17 00:00:00 2001 From: Peter Yard Date: Wed, 22 Dec 2010 16:03:35 +1000 Subject: Docs: QTBUG-9150 Incorrect snippet in class doc. --- src/sql/models/qsqltablemodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp index 8589163..974cf7b 100644 --- a/src/sql/models/qsqltablemodel.cpp +++ b/src/sql/models/qsqltablemodel.cpp @@ -265,7 +265,7 @@ QSqlRecord QSqlTableModelPrivate::primaryValues(int row) QSqlTableModel can also be used to access a database programmatically, without binding it to a view: - \snippet doc/src/snippets/sqldatabase/sqldatabase.cpp 25 + \snippet doc/src/snippets/sqldatabase/sqldatabase.cpp 21 The code snippet above extracts the \c salary field from record 4 in the result set of the query \c{SELECT * from employee}. -- cgit v0.12 From e50a0ad18c40322ca0c06a11e7dc7b9a82951f16 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Wed, 22 Dec 2010 16:12:26 +1000 Subject: XmlListModel requests should set 'Accept' header to 'application/xml' Task-number: QTBUG-15836 Reviewed-by: Michael Brasser --- src/declarative/util/qdeclarativexmllistmodel.cpp | 1 + .../tst_qdeclarativexmllistmodel.cpp | 69 ++++++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp index 49a12b1..e97cd67 100644 --- a/src/declarative/util/qdeclarativexmllistmodel.cpp +++ b/src/declarative/util/qdeclarativexmllistmodel.cpp @@ -924,6 +924,7 @@ void QDeclarativeXmlListModel::reload() } else { d->notifyQueryStarted(true); QNetworkRequest req(d->src); + req.setRawHeader("Accept", "application/xml"); d->reply = qmlContext(this)->engine()->networkAccessManager()->get(req); QObject::connect(d->reply, SIGNAL(finished()), this, SLOT(requestFinished())); QObject::connect(d->reply, SIGNAL(downloadProgress(qint64,qint64)), diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp b/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp index a14f942..b95b053 100644 --- a/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp +++ b/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp @@ -38,8 +38,13 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ +#include + #include #include +#include +#include +#include #include #include #include @@ -81,6 +86,7 @@ private slots: void roles(); void roleErrors(); void uniqueRoleNames(); + void headers(); void xml(); void xml_data(); void source(); @@ -139,6 +145,44 @@ private: QDeclarativeEngine engine; }; +class CustomNetworkAccessManagerFactory : public QObject, public QDeclarativeNetworkAccessManagerFactory +{ + Q_OBJECT +public: + QVariantMap lastSentHeaders; + +protected: + QNetworkAccessManager *create(QObject *parent); +}; + +class CustomNetworkAccessManager : public QNetworkAccessManager +{ + Q_OBJECT +public: + CustomNetworkAccessManager(CustomNetworkAccessManagerFactory *factory, QObject *parent) + : QNetworkAccessManager(parent), m_factory(factory) {} + +protected: + QNetworkReply *createRequest(Operation op, const QNetworkRequest &req, QIODevice * outgoingData = 0) + { + if (m_factory) { + QVariantMap map; + foreach (const QString &header, req.rawHeaderList()) + map[header] = req.rawHeader(header.toUtf8()); + m_factory->lastSentHeaders = map; + } + return QNetworkAccessManager::createRequest(op, req, outgoingData); + } + + QPointer m_factory; +}; + +QNetworkAccessManager *CustomNetworkAccessManagerFactory::create(QObject *parent) +{ + return new CustomNetworkAccessManager(this, parent); +} + + void tst_qdeclarativexmllistmodel::buildModel() { QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/model.qml")); @@ -312,6 +356,31 @@ void tst_qdeclarativexmllistmodel::xml_data() QTest::newRow("one item") << "HobbesTiger7Large" << 1; } +void tst_qdeclarativexmllistmodel::headers() +{ + // ensure the QNetworkAccessManagers created for this test are immediately deleted + QDeclarativeEngine qmlEng; + + CustomNetworkAccessManagerFactory factory; + qmlEng.setNetworkAccessManagerFactory(&factory); + + QDeclarativeComponent component(&qmlEng, QUrl::fromLocalFile(SRCDIR "/data/model.qml")); + QDeclarativeXmlListModel *model = qobject_cast(component.create()); + QVERIFY(model != 0); + QTRY_COMPARE(model->status(), QDeclarativeXmlListModel::Ready); + + QVariantMap expectedHeaders; + expectedHeaders["Accept"] = "application/xml"; + + QCOMPARE(factory.lastSentHeaders.count(), expectedHeaders.count()); + foreach (const QString &header, expectedHeaders.keys()) { + QVERIFY(factory.lastSentHeaders.contains(header)); + QCOMPARE(factory.lastSentHeaders[header].toString(), expectedHeaders[header].toString()); + } + + delete model; +} + void tst_qdeclarativexmllistmodel::source() { QFETCH(QUrl, source); -- cgit v0.12 From cb31612bf6a48f995fbc05b5e8aa924e13034ae4 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Wed, 22 Dec 2010 16:15:28 +1000 Subject: Removing all visible items in ListView resulted in blank view. When delayRemove is true and all visible items are tagged to be removed the visibleIndex became invalid and refill() began filling from 0. Task-number: QTBUG-16183 Reviewed-by: Michael Brasser --- src/declarative/graphicsitems/qdeclarativelistview.cpp | 14 ++++++++++---- .../qdeclarativelistview/tst_qdeclarativelistview.cpp | 3 ++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index 2a7f508..86c8756 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -643,7 +643,8 @@ void QDeclarativeListViewPrivate::refill(qreal from, qreal to, bool doBuffer) int i = visibleItems.count() - 1; while (i > 0 && visibleItems.at(i)->index == -1) --i; - modelIndex = visibleItems.at(i)->index + 1; + if (visibleItems.at(i)->index != -1) + modelIndex = visibleItems.at(i)->index + 1; } bool changed = false; @@ -2804,7 +2805,10 @@ void QDeclarativeListView::itemsInserted(int modelIndex, int count) int i = d->visibleItems.count() - 1; while (i > 0 && d->visibleItems.at(i)->index == -1) --i; - if (d->visibleItems.at(i)->index + 1 == modelIndex + if (i == 0 && d->visibleItems.first()->index == -1) { + // there are no visible items except items marked for removal + index = d->visibleItems.count(); + } else if (d->visibleItems.at(i)->index + 1 == modelIndex && d->visibleItems.at(i)->endPosition() < d->buffer+d->position()+d->size()-1) { // Special case of appending an item to the model. index = d->visibleItems.count(); @@ -2836,7 +2840,7 @@ void QDeclarativeListView::itemsInserted(int modelIndex, int count) // index can be the next item past the end of the visible items list (i.e. appended) int pos = index < d->visibleItems.count() ? d->visibleItems.at(index)->position() - : d->visibleItems.at(index-1)->endPosition()+d->spacing+1; + : d->visibleItems.last()->endPosition()+d->spacing+1; int initialPos = pos; int diff = 0; QList added; @@ -2988,14 +2992,16 @@ void QDeclarativeListView::itemsRemoved(int modelIndex, int count) } // update visibleIndex + bool haveVisibleIndex = false; for (it = d->visibleItems.begin(); it != d->visibleItems.end(); ++it) { if ((*it)->index != -1) { d->visibleIndex = (*it)->index; + haveVisibleIndex = true; break; } } - if (removedVisible && d->visibleItems.isEmpty()) { + if (removedVisible && !haveVisibleIndex) { d->timeline.clear(); if (d->itemCount == 0) { d->visibleIndex = 0; diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index 3df10a9..dba0cc4 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -667,7 +667,8 @@ void tst_QDeclarativeListView::removed(bool animated) listview->setContentY(80); QTest::qWait(300); - model.removeItems(1, 17); + // remove all visible items + model.removeItems(1, 18); QTest::qWait(300); // Confirm items positioned correctly -- cgit v0.12 From 749387a203737e49fb44ce7001ed78ba5512583d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Tue, 21 Dec 2010 12:43:16 +0100 Subject: Improve performance of bilinear downscaling of images with neon. Gives a 36 % performance boost for downscaling a 512x512 pixmap to 480x480 with SmoothPixmapFilter enabled. Reviewed-by: Andreas Kling --- src/gui/painting/qdrawhelper.cpp | 133 +++++++++++++++++++++++++++++++-------- 1 file changed, 107 insertions(+), 26 deletions(-) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 62af212..fdb686d 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -712,6 +712,38 @@ static inline uint interpolate_4_pixels_16(uint tl, uint tr, uint bl, uint br, i } #endif +#if defined(QT_ALWAYS_HAVE_NEON) +#define interpolate_4_pixels_16_neon(tl, tr, bl, br, distx, disty, disty_, colorMask, invColorMask, v_256, b) \ +{ \ + const int16x8_t dxdy = vmulq_s16(distx, disty); \ + const int16x8_t distx_ = vshlq_n_s16(distx, 4); \ + const int16x8_t idxidy = vaddq_s16(dxdy, vsubq_s16(v_256, vaddq_s16(distx_, disty_))); \ + const int16x8_t dxidy = vsubq_s16(distx_, dxdy); \ + const int16x8_t idxdy = vsubq_s16(disty_, dxdy); \ + \ + int16x8_t tlAG = vreinterpretq_s16_u16(vshrq_n_u16(vreinterpretq_u16_s16(tl), 8)); \ + int16x8_t tlRB = vandq_s16(tl, colorMask); \ + int16x8_t trAG = vreinterpretq_s16_u16(vshrq_n_u16(vreinterpretq_u16_s16(tr), 8)); \ + int16x8_t trRB = vandq_s16(tr, colorMask); \ + int16x8_t blAG = vreinterpretq_s16_u16(vshrq_n_u16(vreinterpretq_u16_s16(bl), 8)); \ + int16x8_t blRB = vandq_s16(bl, colorMask); \ + int16x8_t brAG = vreinterpretq_s16_u16(vshrq_n_u16(vreinterpretq_u16_s16(br), 8)); \ + int16x8_t brRB = vandq_s16(br, colorMask); \ + \ + int16x8_t rAG = vmulq_s16(tlAG, idxidy); \ + int16x8_t rRB = vmulq_s16(tlRB, idxidy); \ + rAG = vmlaq_s16(rAG, trAG, dxidy); \ + rRB = vmlaq_s16(rRB, trRB, dxidy); \ + rAG = vmlaq_s16(rAG, blAG, idxdy); \ + rRB = vmlaq_s16(rRB, blRB, idxdy); \ + rAG = vmlaq_s16(rAG, brAG, dxdy); \ + rRB = vmlaq_s16(rRB, brRB, dxdy); \ + \ + rAG = vandq_s16(invColorMask, rAG); \ + rRB = vreinterpretq_s16_u16(vshrq_n_u16(vreinterpretq_u16_s16(rRB), 8)); \ + vst1q_s16((int16_t*)(b), vorrq_s16(rAG, rRB)); \ +} +#endif template Q_STATIC_TEMPLATE_FUNCTION inline void fetchTransformedBilinear_pixelBounds(int max, int l1, int l2, int &v1, int &v2) @@ -920,35 +952,36 @@ const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator * const uchar *s2 = data->texture.scanLine(y2); int disty = (fy & 0x0000ffff) >> 12; -#if defined(QT_ALWAYS_HAVE_SSE2) if (blendType != BlendTransformedBilinearTiled && (format == QImage::Format_ARGB32_Premultiplied || format == QImage::Format_RGB32)) { - //prolog to get into the bounds - while (b < end) { - int x1 = (fx >> 16); - int x2; - fetchTransformedBilinear_pixelBounds(image_width, image_x1, image_x2, x1, x2); - if (x1 != x2) //break if we are insided the bounds. - break; - uint tl = fetch(s1, x1, data->texture.colorTable); - uint tr = fetch(s1, x2, data->texture.colorTable); - uint bl = fetch(s2, x1, data->texture.colorTable); - uint br = fetch(s2, x2, data->texture.colorTable); - int distx = (fx & 0x0000ffff) >> 12; - *b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty); - fx += fdx; - ++b; - } - uint *boundedEnd; - if (fdx > 0) - boundedEnd = qMin(end, buffer + uint((image_x2 - (fx >> 16)) / data->m11)); - else - boundedEnd = qMin(end, buffer + uint((image_x1 - (fx >> 16)) / data->m11)); +#define BILINEAR_DOWNSCALE_BOUNDS_PROLOG \ + while (b < end) { \ + int x1 = (fx >> 16); \ + int x2; \ + fetchTransformedBilinear_pixelBounds(image_width, image_x1, image_x2, x1, x2); \ + if (x1 != x2) \ + break; \ + uint tl = fetch(s1, x1, data->texture.colorTable); \ + uint tr = fetch(s1, x2, data->texture.colorTable); \ + uint bl = fetch(s2, x1, data->texture.colorTable); \ + uint br = fetch(s2, x2, data->texture.colorTable); \ + int distx = (fx & 0x0000ffff) >> 12; \ + *b = interpolate_4_pixels_16(tl, tr, bl, br, distx, disty); \ + fx += fdx; \ + ++b; \ + } \ + uint *boundedEnd; \ + if (fdx > 0) \ + boundedEnd = qMin(end, buffer + uint((image_x2 - (fx >> 16)) / data->m11)); \ + else \ + boundedEnd = qMin(end, buffer + uint((image_x1 - (fx >> 16)) / data->m11)); \ boundedEnd -= 3; +#if defined(QT_ALWAYS_HAVE_SSE2) + BILINEAR_DOWNSCALE_BOUNDS_PROLOG + const __m128i colorMask = _mm_set1_epi32(0x00ff00ff); - //const __m128i distShuffleMask = _mm_set_epi8(13, 12, 13, 12, 9, 8, 9, 8, 5, 4, 5, 4, 1, 0, 1, 0); const __m128i v_256 = _mm_set1_epi16(256); const __m128i v_disty = _mm_set1_epi16(disty); __m128i v_fdx = _mm_set1_epi32(fdx*4); @@ -976,8 +1009,7 @@ const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator * bl.i[i] = *(addr_tl+secondLine); br.i[i] = *(addr_tr+secondLine); } - __m128i v_distx = _mm_srli_epi16(v_fx.vect, 12); //distx = (fx & 0x0000ffff) >> 12; - //v_distx = _mm_shuffle_epi8(v_disty, distShuffleMask); //distx |= distx << 16; + __m128i v_distx = _mm_srli_epi16(v_fx.vect, 12); v_distx = _mm_shufflehi_epi16(v_distx, _MM_SHUFFLE(2,2,0,0)); v_distx = _mm_shufflelo_epi16(v_distx, _MM_SHUFFLE(2,2,0,0)); @@ -986,8 +1018,57 @@ const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator * v_fx.vect = _mm_add_epi32(v_fx.vect, v_fdx); } fx = v_fx.i[0]; - } +#elif defined(QT_ALWAYS_HAVE_NEON) + BILINEAR_DOWNSCALE_BOUNDS_PROLOG + + const int16x8_t colorMask = vdupq_n_s16(0x00ff); + const int16x8_t invColorMask = vmvnq_s16(colorMask); + const int16x8_t v_256 = vdupq_n_s16(256); + const int16x8_t v_disty = vdupq_n_s16(disty); + const int16x8_t v_disty_ = vshlq_n_s16(v_disty, 4); + int32x4_t v_fdx = vdupq_n_s32(fdx*4); + + ptrdiff_t secondLine = reinterpret_cast(s2) - reinterpret_cast(s1); + + union Vect_buffer { int32x4_t vect; quint32 i[4]; }; + Vect_buffer v_fx; + + for (int i = 0; i < 4; i++) { + v_fx.i[i] = fx; + fx += fdx; + } + + const int32x4_t v_ffff_mask = vdupq_n_s32(0x0000ffff); + + while (b < boundedEnd) { + + Vect_buffer tl, tr, bl, br; + + Vect_buffer v_fx_shifted; + v_fx_shifted.vect = vshrq_n_s32(v_fx.vect, 16); + + int32x4_t v_distx = vshrq_n_s32(vandq_s32(v_fx.vect, v_ffff_mask), 12); + + for (int i = 0; i < 4; i++) { + int x1 = v_fx_shifted.i[i]; + const uint *addr_tl = reinterpret_cast(s1) + x1; + const uint *addr_tr = addr_tl + 1; + tl.i[i] = *addr_tl; + tr.i[i] = *addr_tr; + bl.i[i] = *(addr_tl+secondLine); + br.i[i] = *(addr_tr+secondLine); + } + + v_distx = vorrq_s32(v_distx, vshlq_n_s32(v_distx, 16)); + + interpolate_4_pixels_16_neon(vreinterpretq_s16_s32(tl.vect), vreinterpretq_s16_s32(tr.vect), vreinterpretq_s16_s32(bl.vect), vreinterpretq_s16_s32(br.vect), vreinterpretq_s16_s32(v_distx), v_disty, v_disty_, colorMask, invColorMask, v_256, b); + b+=4; + v_fx.vect = vaddq_s32(v_fx.vect, v_fdx); + } + fx = v_fx.i[0]; #endif + } + while (b < end) { int x1 = (fx >> 16); int x2; -- cgit v0.12 From 53f52118efd7587fe604f3d3dd898fa9464809a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 22 Dec 2010 09:34:37 +0100 Subject: Made documentation of QPixmap::createMaskFromColor match behaviour. Task-number: QTBUG-16223 Reviewed-by: Gunnar Sletta --- src/gui/image/qpixmap.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/image/qpixmap.cpp b/src/gui/image/qpixmap.cpp index c5d9a7e..3a7be1d 100644 --- a/src/gui/image/qpixmap.cpp +++ b/src/gui/image/qpixmap.cpp @@ -775,8 +775,8 @@ QBitmap QPixmap::createHeuristicMask(bool clipTight) const /*! Creates and returns a mask for this pixmap based on the given \a maskColor. If the \a mode is Qt::MaskInColor, all pixels matching the - maskColor will be opaque. If \a mode is Qt::MaskOutColor, all pixels - matching the maskColor will be transparent. + maskColor will be transparent. If \a mode is Qt::MaskOutColor, all pixels + matching the maskColor will be opaque. This function is slow because it involves converting to/from a QImage. -- cgit v0.12 From 07bc01460e72f08550f09de66e0e716471cf61bd Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 22 Dec 2010 12:18:39 +0200 Subject: Fix libinfixed usage in Symbian when def files are used There was a hardcoded lookup on "qtcore.dll" in s60main, which caused loading of wrong dll. Task-number: QTBUG-16221 Reviewed-by: Janne Koskinen --- src/s60main/newallocator_hook.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/s60main/newallocator_hook.cpp b/src/s60main/newallocator_hook.cpp index 9ea2ef0..3e259c2 100644 --- a/src/s60main/newallocator_hook.cpp +++ b/src/s60main/newallocator_hook.cpp @@ -69,6 +69,16 @@ TInt UserHeap::SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) // So the function is found and called dynamically, by library lookup. If it is not found, we // use the OS allocator creation functions instead. +#if defined(QT_LIBINFIX) +# define QT_LSTRING2(x) L##x +# define QT_LSTRING(x) QT_LSTRING2(x) +# define QT_LIBINFIX_UNICODE QT_LSTRING(QT_LIBINFIX) +#else +# define QT_LIBINFIX_UNICODE L"" +#endif + +_LIT(QtCoreLibName, "qtcore" QT_LIBINFIX_UNICODE L".dll"); + struct SThreadCreateInfo { TAny* iHandle; @@ -106,7 +116,7 @@ TInt UserHeap::SetupThreadHeap(TBool aNotFirst, SStdEpocThreadCreateInfo& aInfo) #ifndef __WINS__ // attempt to create the fast allocator through a known export ordinal in qtcore.dll RLibrary qtcore; - if (qtcore.Load(_L("qtcore.dll")) == KErrNone) + if (qtcore.Load(QtCoreLibName) == KErrNone) { const int qt_symbian_SetupThreadHeap_eabi_ordinal = 3713; TLibraryFunction libFunc = qtcore.Lookup(qt_symbian_SetupThreadHeap_eabi_ordinal); -- cgit v0.12 From bdc39d20b4958f7adc95dc5990d601e946213fda Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Wed, 22 Dec 2010 11:37:56 +0100 Subject: add missing license header --- src/opengl/util/meego/main.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/opengl/util/meego/main.cpp b/src/opengl/util/meego/main.cpp index 0c9a915..5522855 100644 --- a/src/opengl/util/meego/main.cpp +++ b/src/opengl/util/meego/main.cpp @@ -1,3 +1,44 @@ +/**************************************************************************** +** +** 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 QtOpenGL 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 #define QT_DEBUG_SHADER_CACHE -- cgit v0.12 From cafbb2943eea989b0eeadb0c54c151ad921691b9 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 20 Dec 2010 19:44:53 +0100 Subject: Do not crash in case a future version of libdbus has a new kind of message. --- src/dbus/qdbusintegrator.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index 1842e5a..f64b7ca 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -565,10 +565,8 @@ bool QDBusConnectionPrivate::handleMessage(const QDBusMessage &amsg) return true; case QDBusMessage::ReplyMessage: case QDBusMessage::ErrorMessage: - return false; // we don't handle those here case QDBusMessage::InvalidMessage: - Q_ASSERT_X(false, "QDBusConnection", "Invalid message found when processing"); - break; + return false; // we don't handle those here } return false; -- cgit v0.12 From fb9ded4e5e3e85672beef83945b3a7e17371368c Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 22 Dec 2010 12:12:30 +0100 Subject: Work around an apparent GCC optimiser bug accessing arrays beyond end Accessing arrays beyond their end is known to cause problems in gcc 4.4 and 4.5. So don't try to be too smart in accessing m[0][index] but instead access the array as it's meant to be. Upstream bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43247#c10 Reviewed-by: Olivier Goffart --- src/gui/math3d/qgenericmatrix.h | 68 ++++++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 28 deletions(-) diff --git a/src/gui/math3d/qgenericmatrix.h b/src/gui/math3d/qgenericmatrix.h index 3224ae2..f91bce7 100644 --- a/src/gui/math3d/qgenericmatrix.h +++ b/src/gui/math3d/qgenericmatrix.h @@ -198,52 +198,58 @@ Q_OUTOFLINE_TEMPLATE QGenericMatrix QGenericMatrix::transposed template Q_OUTOFLINE_TEMPLATE QGenericMatrix& QGenericMatrix::operator+=(const QGenericMatrix& other) { - for (int index = 0; index < N * M; ++index) - m[0][index] += other.m[0][index]; + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) + m[col][row] += other.m[col][row]; return *this; } template Q_OUTOFLINE_TEMPLATE QGenericMatrix& QGenericMatrix::operator-=(const QGenericMatrix& other) { - for (int index = 0; index < N * M; ++index) - m[0][index] -= other.m[0][index]; + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) + m[col][row] -= other.m[col][row]; return *this; } template Q_OUTOFLINE_TEMPLATE QGenericMatrix& QGenericMatrix::operator*=(T factor) { - for (int index = 0; index < N * M; ++index) - m[0][index] *= factor; + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) + m[col][row] *= factor; return *this; } template Q_OUTOFLINE_TEMPLATE bool QGenericMatrix::operator==(const QGenericMatrix& other) const { - for (int index = 0; index < N * M; ++index) { - if (m[0][index] != other.m[0][index]) - return false; - } + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) { + if (m[col][row] != other.m[col][row]) + return false; + } return true; } template Q_OUTOFLINE_TEMPLATE bool QGenericMatrix::operator!=(const QGenericMatrix& other) const { - for (int index = 0; index < N * M; ++index) { - if (m[0][index] != other.m[0][index]) - return true; - } + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) { + if (m[col][row] != other.m[col][row]) + return true; + } return false; } template Q_OUTOFLINE_TEMPLATE QGenericMatrix& QGenericMatrix::operator/=(T divisor) { - for (int index = 0; index < N * M; ++index) - m[0][index] /= divisor; + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) + m[col][row] /= divisor; return *this; } @@ -251,8 +257,9 @@ template Q_OUTOFLINE_TEMPLATE QGenericMatrix operator+(const QGenericMatrix& m1, const QGenericMatrix& m2) { QGenericMatrix result(1); - for (int index = 0; index < N * M; ++index) - result.m[0][index] = m1.m[0][index] + m2.m[0][index]; + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) + result.m[col][row] = m1.m[col][row] + m2.m[col][row]; return result; } @@ -260,8 +267,9 @@ template Q_OUTOFLINE_TEMPLATE QGenericMatrix operator-(const QGenericMatrix& m1, const QGenericMatrix& m2) { QGenericMatrix result(1); - for (int index = 0; index < N * M; ++index) - result.m[0][index] = m1.m[0][index] - m2.m[0][index]; + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) + result.m[col][row] = m1.m[col][row] - m2.m[col][row]; return result; } @@ -284,8 +292,9 @@ template Q_OUTOFLINE_TEMPLATE QGenericMatrix operator-(const QGenericMatrix& matrix) { QGenericMatrix result(1); - for (int index = 0; index < N * M; ++index) - result.m[0][index] = -matrix.m[0][index]; + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) + result.m[col][row] = -matrix.m[col][row]; return result; } @@ -293,8 +302,9 @@ template Q_OUTOFLINE_TEMPLATE QGenericMatrix operator*(T factor, const QGenericMatrix& matrix) { QGenericMatrix result(1); - for (int index = 0; index < N * M; ++index) - result.m[0][index] = matrix.m[0][index] * factor; + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) + result.m[col][row] = matrix.m[col][row] * factor; return result; } @@ -302,8 +312,9 @@ template Q_OUTOFLINE_TEMPLATE QGenericMatrix operator*(const QGenericMatrix& matrix, T factor) { QGenericMatrix result(1); - for (int index = 0; index < N * M; ++index) - result.m[0][index] = matrix.m[0][index] * factor; + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) + result.m[col][row] = matrix.m[col][row] * factor; return result; } @@ -311,8 +322,9 @@ template Q_OUTOFLINE_TEMPLATE QGenericMatrix operator/(const QGenericMatrix& matrix, T divisor) { QGenericMatrix result(1); - for (int index = 0; index < N * M; ++index) - result.m[0][index] = matrix.m[0][index] / divisor; + for (int row = 0; row < M; ++row) + for (int col = 0; col < N; ++col) + result.m[col][row] = matrix.m[col][row] / divisor; return result; } -- cgit v0.12 From 6210542b3fb2b577512f5e2970f14303d1e5f21a Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Wed, 22 Dec 2010 14:04:26 +0100 Subject: tst_qmessagebox: add debug to know why it fails --- tests/auto/qmessagebox/tst_qmessagebox.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/auto/qmessagebox/tst_qmessagebox.cpp b/tests/auto/qmessagebox/tst_qmessagebox.cpp index 54d199c..f6ee764 100644 --- a/tests/auto/qmessagebox/tst_qmessagebox.cpp +++ b/tests/auto/qmessagebox/tst_qmessagebox.cpp @@ -677,8 +677,10 @@ void tst_QMessageBox::detailsButtonText() QAbstractButton* btn = NULL; foreach(btn, list) { if (btn && (btn->inherits("QPushButton"))) { - if(btn->text() != QMessageBox::tr("OK") && btn->text() != QMessageBox::tr("Show Details...")) + if (btn->text() != QMessageBox::tr("OK") && btn->text() != QMessageBox::tr("Show Details...")) { + qDebug() << btn->text(); QFAIL("Incorrect messagebox button text!"); + } } } } -- cgit v0.12 From 6ecb2f699c203fd937495cba844f7888a1d3305f Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 22 Dec 2010 14:30:59 +0100 Subject: Assistant: Get rid of bogus warning. Task-number: QTBUG-16096 --- tools/assistant/tools/assistant/main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/assistant/tools/assistant/main.cpp b/tools/assistant/tools/assistant/main.cpp index e3eef34..5883f7b 100644 --- a/tools/assistant/tools/assistant/main.cpp +++ b/tools/assistant/tools/assistant/main.cpp @@ -292,7 +292,8 @@ void setupTranslation(const QString &fileName, const QString &dir) QTranslator *translator = new QTranslator(QCoreApplication::instance()); if (translator->load(fileName, dir)) { QCoreApplication::installTranslator(translator); - } else if (!fileName.endsWith(QLatin1String("en_US"))) { + } else if (!fileName.endsWith(QLatin1String("en_US")) + && !fileName.endsWith(QLatin1String("_C"))) { qWarning("Could not load translation file %s in directory %s.", qPrintable(fileName), qPrintable(dir)); } -- cgit v0.12 From bfd3a0d40932cb4ef2a35424a24e1961c3b21bb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Tue, 21 Dec 2010 15:14:23 +0100 Subject: Improve performance of bilinear upscaling of images with neon. Gives an improvement of around 19.6 % for upscaling a 256x256 pixmap to 480x480 with SmoothPixmapFilter enabled. Reviewed-by: Olivier Goffart --- src/gui/painting/qdrawhelper.cpp | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index fdb686d..4fd90ed 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -851,10 +851,9 @@ const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator * } } -#if defined(QT_ALWAYS_HAVE_SSE2) if (blendType != BlendTransformedBilinearTiled && (format == QImage::Format_ARGB32_Premultiplied || format == QImage::Format_RGB32)) { - +#if defined(QT_ALWAYS_HAVE_SSE2) const __m128i disty_ = _mm_set1_epi16(disty); const __m128i idisty_ = _mm_set1_epi16(idisty); const __m128i colorMask = _mm_set1_epi32(0x00ff00ff); @@ -884,8 +883,38 @@ const uint * QT_FASTCALL fetchTransformedBilinear(uint *buffer, const Operator * rRB = _mm_srli_epi16(rRB, 8); _mm_storeu_si128((__m128i*)(&intermediate_buffer[0][f]), rRB); } - } +#elif defined(QT_ALWAYS_HAVE_NEON) + const int16x8_t disty_ = vdupq_n_s16(disty); + const int16x8_t idisty_ = vdupq_n_s16(idisty); + const int16x8_t colorMask = vdupq_n_s16(0x00ff); + + lim -= 3; + for (; f < lim; x += 4, f += 4) { + // Load 4 pixels from s1, and split the alpha-green and red-blue component + int16x8_t top = vld1q_s16((int16_t*)((const uint *)(s1)+x)); + int16x8_t topAG = vreinterpretq_s16_u16(vshrq_n_u16(vreinterpretq_u16_s16(top), 8)); + int16x8_t topRB = vandq_s16(top, colorMask); + // Multiplies each colour component by idisty + topAG = vmulq_s16(topAG, idisty_); + topRB = vmulq_s16(topRB, idisty_); + + // Same for the s2 vector + int16x8_t bottom = vld1q_s16((int16_t*)((const uint *)(s2)+x)); + int16x8_t bottomAG = vreinterpretq_s16_u16(vshrq_n_u16(vreinterpretq_u16_s16(bottom), 8)); + int16x8_t bottomRB = vandq_s16(bottom, colorMask); + bottomAG = vmulq_s16(bottomAG, disty_); + bottomRB = vmulq_s16(bottomRB, disty_); + + // Add the values, and shift to only keep 8 significant bits per colors + int16x8_t rAG = vaddq_s16(topAG, bottomAG); + rAG = vreinterpretq_s16_u16(vshrq_n_u16(vreinterpretq_u16_s16(rAG), 8)); + vst1q_s16((int16_t*)(&intermediate_buffer[1][f]), rAG); + int16x8_t rRB = vaddq_s16(topRB, bottomRB); + rRB = vreinterpretq_s16_u16(vshrq_n_u16(vreinterpretq_u16_s16(rRB), 8)); + vst1q_s16((int16_t*)(&intermediate_buffer[0][f]), rRB); + } #endif + } for (; f < count; f++) { // Same as above but without sse2 if (blendType == BlendTransformedBilinearTiled) { if (x >= image_width) x -= image_width; -- cgit v0.12 From a5110b5d40b70fb44ed98aa8861b676df1e78385 Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Wed, 22 Dec 2010 14:34:16 +0100 Subject: Fix timer regression for indeterminate progressbars Indeterminate progressbars were broken since 4.7.0 due to 0f771c62f5253a969f5a8a81bfd9254b9bd58b8f Since start was never called on QElapsedTimer, the elaped time was undefined and resulted in random repaints and behavior for indeterminate progressbars. Task-number:QTBUG-15227 Reviewed-by:richard --- src/gui/styles/qwindowsstyle.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp index 720dd6d..654be3c 100644 --- a/src/gui/styles/qwindowsstyle.cpp +++ b/src/gui/styles/qwindowsstyle.cpp @@ -130,6 +130,7 @@ QWindowsStylePrivate::QWindowsStylePrivate() pSHGetStockIconInfo = (PtrSHGetStockIconInfo)shellLib.resolve("SHGetStockIconInfo"); } #endif + startTime.start(); } // Returns true if the toplevel parent of \a widget has seen the Alt-key -- cgit v0.12 From 462f5148a3be5835cc8d5b69685473042789c917 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 22 Dec 2010 15:39:28 +0200 Subject: Fix infinite loop in qmake when reading malformed .ts files. No checking for the end of xml file was done in while loop looking for TS element. Task-number: QTBUG-16261 Reviewed-by: Janne Koskinen --- qmake/generators/symbian/symbiancommon.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp index 602bcc2..d9f12b3 100644 --- a/qmake/generators/symbian/symbiancommon.cpp +++ b/qmake/generators/symbian/symbiancommon.cpp @@ -977,7 +977,7 @@ bool SymbianCommonGenerator::parseTsContent(const QString &tsFilename, SymbianLo QXmlStreamReader xml(&tsFile); - while (xml.name() != tsElement) + while (!xml.atEnd() && xml.name() != tsElement) xml.readNextStartElement(); while (xml.readNextStartElement()) { -- cgit v0.12 From a562fd2d201e3b618ed99a316275f20385cc5c25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Thu, 16 Dec 2010 14:45:21 +0100 Subject: Added int overloads to QPoint operator* and operator*=. For increased performance to avoid having to convert to qreal and back. Separating the qreal overload into float and double overloads is also necessary to avoid compiler errors about ambiguous overloads. Task-number: QTBUG-15872 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/corelib/tools/qpoint.cpp | 63 +++++++++++++++++++++++++++++++++++++++++--- src/corelib/tools/qpoint.h | 38 +++++++++++++++++++++----- 2 files changed, 92 insertions(+), 9 deletions(-) diff --git a/src/corelib/tools/qpoint.cpp b/src/corelib/tools/qpoint.cpp index c297709..592a83d 100644 --- a/src/corelib/tools/qpoint.cpp +++ b/src/corelib/tools/qpoint.cpp @@ -187,7 +187,19 @@ QT_BEGIN_NAMESPACE */ /*! - \fn QPoint &QPoint::operator*=(qreal factor) + \fn QPoint &QPoint::operator*=(float factor) + + Multiplies this point's coordinates by the given \a factor, and + returns a reference to this point. + + Note that the result is rounded to the nearest integer as points are held as + integers. Use QPointF for floating point accuracy. + + \sa operator/=() +*/ + +/*! + \fn QPoint &QPoint::operator*=(double factor) Multiplies this point's coordinates by the given \a factor, and returns a reference to this point. For example: @@ -200,6 +212,14 @@ QT_BEGIN_NAMESPACE \sa operator/=() */ +/*! + \fn QPoint &QPoint::operator*=(int factor) + + Multiplies this point's coordinates by the given \a factor, and + returns a reference to this point. + + \sa operator/=() +*/ /*! \fn bool operator==(const QPoint &p1, const QPoint &p2) @@ -237,7 +257,7 @@ QT_BEGIN_NAMESPACE */ /*! - \fn const QPoint operator*(const QPoint &point, qreal factor) + \fn const QPoint operator*(const QPoint &point, float factor) \relates QPoint Returns a copy of the given \a point multiplied by the given \a factor. @@ -249,7 +269,44 @@ QT_BEGIN_NAMESPACE */ /*! - \fn const QPoint operator*(qreal factor, const QPoint &point) + \fn const QPoint operator*(const QPoint &point, double factor) + \relates QPoint + + Returns a copy of the given \a point multiplied by the given \a factor. + + Note that the result is rounded to the nearest integer as points + are held as integers. Use QPointF for floating point accuracy. + + \sa QPoint::operator*=() +*/ + +/*! + \fn const QPoint operator*(const QPoint &point, int factor) + \relates QPoint + + Returns a copy of the given \a point multiplied by the given \a factor. + + \sa QPoint::operator*=() +*/ + +/*! + \fn const QPoint operator*(float factor, const QPoint &point) + \overload + \relates QPoint + + Returns a copy of the given \a point multiplied by the given \a factor. +*/ + +/*! + \fn const QPoint operator*(double factor, const QPoint &point) + \overload + \relates QPoint + + Returns a copy of the given \a point multiplied by the given \a factor. +*/ + +/*! + \fn const QPoint operator*(int factor, const QPoint &point) \overload \relates QPoint diff --git a/src/corelib/tools/qpoint.h b/src/corelib/tools/qpoint.h index 79a7dd8..e57b0ed 100644 --- a/src/corelib/tools/qpoint.h +++ b/src/corelib/tools/qpoint.h @@ -70,15 +70,23 @@ public: QPoint &operator+=(const QPoint &p); QPoint &operator-=(const QPoint &p); - QPoint &operator*=(qreal c); + + QPoint &operator*=(float c); + QPoint &operator*=(double c); + QPoint &operator*=(int c); + QPoint &operator/=(qreal c); friend inline bool operator==(const QPoint &, const QPoint &); friend inline bool operator!=(const QPoint &, const QPoint &); friend inline const QPoint operator+(const QPoint &, const QPoint &); friend inline const QPoint operator-(const QPoint &, const QPoint &); - friend inline const QPoint operator*(const QPoint &, qreal); - friend inline const QPoint operator*(qreal, const QPoint &); + friend inline const QPoint operator*(const QPoint &, float); + friend inline const QPoint operator*(float, const QPoint &); + friend inline const QPoint operator*(const QPoint &, double); + friend inline const QPoint operator*(double, const QPoint &); + friend inline const QPoint operator*(const QPoint &, int); + friend inline const QPoint operator*(int, const QPoint &); friend inline const QPoint operator-(const QPoint &); friend inline const QPoint operator/(const QPoint &, qreal); @@ -141,9 +149,15 @@ inline QPoint &QPoint::operator+=(const QPoint &p) inline QPoint &QPoint::operator-=(const QPoint &p) { xp-=p.xp; yp-=p.yp; return *this; } -inline QPoint &QPoint::operator*=(qreal c) +inline QPoint &QPoint::operator*=(float c) +{ xp = qRound(xp*c); yp = qRound(yp*c); return *this; } + +inline QPoint &QPoint::operator*=(double c) { xp = qRound(xp*c); yp = qRound(yp*c); return *this; } +inline QPoint &QPoint::operator*=(int c) +{ xp = xp*c; yp = yp*c; return *this; } + inline bool operator==(const QPoint &p1, const QPoint &p2) { return p1.xp == p2.xp && p1.yp == p2.yp; } @@ -156,12 +170,24 @@ inline const QPoint operator+(const QPoint &p1, const QPoint &p2) inline const QPoint operator-(const QPoint &p1, const QPoint &p2) { return QPoint(p1.xp-p2.xp, p1.yp-p2.yp); } -inline const QPoint operator*(const QPoint &p, qreal c) +inline const QPoint operator*(const QPoint &p, float c) { return QPoint(qRound(p.xp*c), qRound(p.yp*c)); } -inline const QPoint operator*(qreal c, const QPoint &p) +inline const QPoint operator*(const QPoint &p, double c) { return QPoint(qRound(p.xp*c), qRound(p.yp*c)); } +inline const QPoint operator*(const QPoint &p, int c) +{ return QPoint(p.xp*c, p.yp*c); } + +inline const QPoint operator*(float c, const QPoint &p) +{ return QPoint(qRound(p.xp*c), qRound(p.yp*c)); } + +inline const QPoint operator*(double c, const QPoint &p) +{ return QPoint(qRound(p.xp*c), qRound(p.yp*c)); } + +inline const QPoint operator*(int c, const QPoint &p) +{ return QPoint(p.xp*c, p.yp*c); } + inline const QPoint operator-(const QPoint &p) { return QPoint(-p.xp, -p.yp); } -- cgit v0.12 From ce432e1799111cbed492e46bb62d8dfb40585a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Fri, 17 Dec 2010 12:46:44 +0100 Subject: Prevented infinite loop in QMoviePrivate::next(). If we're unable to read the first frame, we shouldn't return an end marker, as that will cause QMoviePrivate::next() to recurse indefinitely when the playCounter is set to -1 (infinite). Reviewed-by: Olivier Goffart --- src/gui/image/qmovie.cpp | 6 +++++- tests/auto/qmovie/animations/corrupt.gif | Bin 0 -> 847 bytes tests/auto/qmovie/qmovie.pro | 1 + tests/auto/qmovie/resources.qrc | 5 +++++ tests/auto/qmovie/tst_qmovie.cpp | 13 +++++++++++++ 5 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 tests/auto/qmovie/animations/corrupt.gif create mode 100644 tests/auto/qmovie/resources.qrc diff --git a/src/gui/image/qmovie.cpp b/src/gui/image/qmovie.cpp index 911a2b5..eb139fa 100644 --- a/src/gui/image/qmovie.cpp +++ b/src/gui/image/qmovie.cpp @@ -381,10 +381,14 @@ QFrameInfo QMoviePrivate::infoForFrame(int frameNumber) QPixmap aPixmap = QPixmap::fromImage(anImage); int aDelay = reader->nextImageDelay(); return QFrameInfo(aPixmap, aDelay); - } else { + } else if (frameNumber != 0) { // We've read all frames now. Return an end marker haveReadAll = true; return QFrameInfo::endMarker(); + } else { + // No readable frames + haveReadAll = true; + return QFrameInfo(); } } diff --git a/tests/auto/qmovie/animations/corrupt.gif b/tests/auto/qmovie/animations/corrupt.gif new file mode 100644 index 0000000..c1545eb Binary files /dev/null and b/tests/auto/qmovie/animations/corrupt.gif differ diff --git a/tests/auto/qmovie/qmovie.pro b/tests/auto/qmovie/qmovie.pro index 6973955..855eb9e 100644 --- a/tests/auto/qmovie/qmovie.pro +++ b/tests/auto/qmovie/qmovie.pro @@ -12,6 +12,7 @@ wince*: { DEPLOYMENT += addFiles } +RESOURCES += resources.qrc symbian: { addFiles.files = animations\\* diff --git a/tests/auto/qmovie/resources.qrc b/tests/auto/qmovie/resources.qrc new file mode 100644 index 0000000..ce459a0 --- /dev/null +++ b/tests/auto/qmovie/resources.qrc @@ -0,0 +1,5 @@ + + + animations/corrupt.gif + + diff --git a/tests/auto/qmovie/tst_qmovie.cpp b/tests/auto/qmovie/tst_qmovie.cpp index 80a551b..d43d4cb 100644 --- a/tests/auto/qmovie/tst_qmovie.cpp +++ b/tests/auto/qmovie/tst_qmovie.cpp @@ -72,6 +72,7 @@ private slots: void jumpToFrame_data(); void jumpToFrame(); void changeMovieFile(); + void infiniteLoop(); }; // Testing get/set functions @@ -208,5 +209,17 @@ void tst_QMovie::changeMovieFile() QVERIFY(movie.currentFrameNumber() == -1); } +void tst_QMovie::infiniteLoop() +{ + QLabel label; + label.show(); + QMovie *movie = new QMovie(QLatin1String(":animations/corrupt.gif"), QByteArray(), &label); + label.setMovie(movie); + movie->start(); + + QTestEventLoop::instance().enterLoop(1); + QTestEventLoop::instance().timeout(); +} + QTEST_MAIN(tst_QMovie) #include "tst_qmovie.moc" -- cgit v0.12 From 8c74ca2677e942bdd86f69527ab8f8ea4a15144a Mon Sep 17 00:00:00 2001 From: Eckhart Koppen Date: Wed, 22 Dec 2010 16:54:54 +0200 Subject: Added initial set of build related files for Symbian config.profiles directory created with initial files needed to compile Qt on Nokia specific build setups during Symbian platform builds. Reviewed-by: Lars Knoll --- config.profiles/symbian/bld.inf | 87 + config.profiles/symbian/confml/qt.confml | 16 + config.profiles/symbian/data_caging_paths.prf | 71 + config.profiles/symbian/environment.prf | 9 + config.profiles/symbian/headerexport | 1138 +++ config.profiles/symbian/implml/qt_copy.implml | 10 + config.profiles/symbian/layers.sysdef.xml | 41 + config.profiles/symbian/loc.prf | 25 + config.profiles/symbian/non_foundation_paths.prf | 115 + config.profiles/symbian/package_definition.xml | 54 + config.profiles/symbian/package_map.xml | 1 + config.profiles/symbian/platform_paths.prf | 251 + config.profiles/symbian/qt.conf | 6 + config.profiles/symbian/qt.iby | 118 + config.profiles/symbian/qtconfig.flm | 88 + config.profiles/symbian/qtconfig.xml | 17 + config.profiles/symbian/sysdef_1_5_1.dtd | 88 + config.profiles/symbian/translations/qt_ar.ts | 7821 ++++++++++++++++++ config.profiles/symbian/translations/qt_fa.ts | 8507 +++++++++++++++++++ .../symbian/translations/qt_fr_symbian.ts | 8519 +++++++++++++++++++ config.profiles/symbian/translations/qt_he.ts | 7781 ++++++++++++++++++ .../symbian/translations/qt_pl_symbian.ts | 8525 ++++++++++++++++++++ .../symbian/translations/qt_ru_symbian.ts | 8522 +++++++++++++++++++ config.profiles/symbian/translations/qt_ur.ts | 8507 +++++++++++++++++++ .../symbian/translations/qt_zh_cn_symbian.ts | 8517 +++++++++++++++++++ .../symbian/translations/qt_zh_tw_symbian.ts | 8505 +++++++++++++++++++ .../symbian/translations_symbian/translations.pro | 16 + 27 files changed, 77355 insertions(+) create mode 100644 config.profiles/symbian/bld.inf create mode 100644 config.profiles/symbian/confml/qt.confml create mode 100644 config.profiles/symbian/data_caging_paths.prf create mode 100644 config.profiles/symbian/environment.prf create mode 100644 config.profiles/symbian/headerexport create mode 100644 config.profiles/symbian/implml/qt_copy.implml create mode 100644 config.profiles/symbian/layers.sysdef.xml create mode 100644 config.profiles/symbian/loc.prf create mode 100644 config.profiles/symbian/non_foundation_paths.prf create mode 100644 config.profiles/symbian/package_definition.xml create mode 100644 config.profiles/symbian/package_map.xml create mode 100644 config.profiles/symbian/platform_paths.prf create mode 100644 config.profiles/symbian/qt.conf create mode 100644 config.profiles/symbian/qt.iby create mode 100644 config.profiles/symbian/qtconfig.flm create mode 100644 config.profiles/symbian/qtconfig.xml create mode 100644 config.profiles/symbian/sysdef_1_5_1.dtd create mode 100644 config.profiles/symbian/translations/qt_ar.ts create mode 100644 config.profiles/symbian/translations/qt_fa.ts create mode 100644 config.profiles/symbian/translations/qt_fr_symbian.ts create mode 100644 config.profiles/symbian/translations/qt_he.ts create mode 100644 config.profiles/symbian/translations/qt_pl_symbian.ts create mode 100644 config.profiles/symbian/translations/qt_ru_symbian.ts create mode 100644 config.profiles/symbian/translations/qt_ur.ts create mode 100644 config.profiles/symbian/translations/qt_zh_cn_symbian.ts create mode 100644 config.profiles/symbian/translations/qt_zh_tw_symbian.ts create mode 100644 config.profiles/symbian/translations_symbian/translations.pro diff --git a/config.profiles/symbian/bld.inf b/config.profiles/symbian/bld.inf new file mode 100644 index 0000000..d3958dd --- /dev/null +++ b/config.profiles/symbian/bld.inf @@ -0,0 +1,87 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* +* Description: Build information file for Qt configuration +* +*/ + +#include + +PRJ_PLATFORMS +TOOLS2 + +PRJ_EXPORTS +qtconfig.xml /epoc32/tools/makefile_templates/qt/qtconfig.xml +qtconfig.flm /epoc32/tools/makefile_templates/qt/qtconfig.flm + +../../mkspecs/symbian-sbsv2/flm/qt/qmake_emulator_deployment.flm /epoc32/tools/makefile_templates/qt/ +../../mkspecs/symbian-sbsv2/flm/qt/qmake_extra_pre_targetdep.flm /epoc32/tools/makefile_templates/qt/ +../../mkspecs/symbian-sbsv2/flm/qt/qmake_post_link.flm /epoc32/tools/makefile_templates/qt/ +../../mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm /epoc32/tools/makefile_templates/qt/ +../../mkspecs/symbian-sbsv2/flm/qt/qt.xml /epoc32/tools/makefile_templates/qt/ + +qt.conf /epoc32/tools/qt.conf + +/* export platform specific configuration */ + +platform_paths.prf /epoc32/include/ +data_caging_paths.prf /epoc32/include/ +non_foundation_paths.prf /epoc32/include/ + +environment.prf /epoc32/tools/qt/mkspecs/features/environment.prf + +//for loc +loc.prf /epoc32/tools/qt/mkspecs/features/loc.prf + +//For UDA image +confml/qt.confml CONFML_EXPORT_PATH(qt.confml,uda_content) +implml/qt_copy.implml CRML_EXPORT_PATH(qt_copy.implml,uda_content) +content/apps/qt.sisx CRML_EXPORT_PATH(../content/sis/,uda_content) +content/apps/qt_stub.sis /epoc32/data/z/system/install/qt_stub.sis + +//tools +../../bin/createpackage.bat /epoc32/tools/createpackage.bat +../../bin/createpackage.pl /epoc32/tools/createpackage.pl +../../bin/patch_capabilities.bat /epoc32/tools/patch_capabilities.bat +../../bin/patch_capabilities.pl /epoc32/tools/patch_capabilities.pl + + +/* export localization *.ts files */ +translations/qt_ur.ts /epoc32/include/platform/qt/translations/ +translations/qt_fa.ts /epoc32/include/platform/qt/translations/ +translations/qt_ar.ts /epoc32/include/platform/qt/translations/ +translations/qt_he.ts /epoc32/include/platform/qt/translations/ + +translations/qt_fr_symbian.ts /epoc32/include/platform/qt/translations/qt_fr.ts +translations/qt_pl_symbian.ts /epoc32/include/platform/qt/translations/qt_pl.ts +translations/qt_ru_symbian.ts /epoc32/include/platform/qt/translations/qt_ru.ts +translations/qt_zh_cn_symbian.ts /epoc32/include/platform/qt/translations/qt_zh_cn.ts +translations/qt_zh_tw_symbian.ts /epoc32/include/platform/qt/translations/qt_zh_tw.ts + +../../translations/qt_ar.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_cs.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_da.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_de.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_es.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_gl.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_hu.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_ja.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_pt.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_sk.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_sl.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_sv.ts /epoc32/include/platform/qt/translations/ +../../translations/qt_uk.ts /epoc32/include/platform/qt/translations/ + + +PRJ_MMPFILES + + +PRJ_TESTMMPFILES + + +PRJ_EXTENSIONS +START EXTENSION qt/qtconfig +OPTION QT_ROOT .. +OPTION OPTIONS -opensource -confirm-license -openvg -opengl-es-2 -script -no-scripttools -no-webkit -make make -graphicssystem openvg -no-phonon-backend -usedeffiles -dont-process -nomake examples -nomake demos -nomake tools -audio-backend -fpu softvfp+vfpv2 +END \ No newline at end of file diff --git a/config.profiles/symbian/confml/qt.confml b/config.profiles/symbian/confml/qt.confml new file mode 100644 index 0000000..f5e9a49 --- /dev/null +++ b/config.profiles/symbian/confml/qt.confml @@ -0,0 +1,16 @@ + + + + QT settings + + To enable QT usage + + + + + true + + + \ No newline at end of file diff --git a/config.profiles/symbian/data_caging_paths.prf b/config.profiles/symbian/data_caging_paths.prf new file mode 100644 index 0000000..8bb0f79 --- /dev/null +++ b/config.profiles/symbian/data_caging_paths.prf @@ -0,0 +1,71 @@ +# +# ============================================================================== +# Name : data_caging_paths.prf +# Part of : +# Interface : Data Caging Path Definitions API for Qt/S60 +# Description : Paths specific to Symbian^3 and later +# +# Usage examples: +# +# # Load these definitions on pro-file if needed: +# load(data_caging_paths) +# +# # These variables are mostly useful when specifying deployment +# +# myLib.sources = myLib.dll +# myLib.path = $$SHARED_LIB_DIR +# DEPLOYMENT += myLib +# +# # Note: Do not use $$PLUGINS_DIR or $$PLUGINS_1_DIR to deploy Qt plugins. +# # $$QT_PUBLIC_PLUGINS_BASE specifies the public base directory for Qt +# # plugin stubs: +# +# myPublicImageFormatPlugin.sources = myImageFormat.dll +# myPublicImageFormatPlugin.path = $$QT_PLUGINS_BASE_DIR/imageformats +# DEPLOYMENT += myPublicImageFormatPlugin +# +# ============================================================================== + +APPARC_RECOGNISER_RESOURCES_DIR = /resource/apps/registrationresourcefiles +APP_BITMAP_DIR = /resource/apps +APP_RESOURCE_DIR = /resource/apps +BITMAP_DIR = /resource/apps +BIOFILE_DIR = /resource/messaging/bif +CHARCONV_PLUGIN_DIR = /resource/charconv +CONTACTS_RESOURCE_DIR = /resource/cntmodel +CTRL_PANEL_RESOURCE_DIR = /resource/controls +CONVERTER_PLUGIN_RESOURCE_DIR = /resource/convert +ECOM_RESOURCE_DIR = /resource/plugins +ERROR_RESOURCE_DIR = /resource/errors +PROGRAMS_DIR = /sys/bin +FEP_RESOURCES_DIR = /resource/fep +HELP_FILE_DIR = /resource/help +LOG_ENGINE_RESOURCE_DIR = /resource/logengine +MTM_RESOURCE_DIR = /resource/messaging +MTM_INFO_FILE_DIR = /resource/messaging/mtm +PRINTER_DRIVER_DIR = /resource/printers +SHARED_LIB_DIR = /sys/bin +UIKLAF_RESOURCE_DIR = /resource/uiklaf +WAPPUSH_PLUGIN_RESOURCE_DIR = /resource/messaging/wappush +WATCHER_PLUGIN_RESOURCE_DIR = /resource/messaging/watchers +RECOGNISERS_DIR = /sys/bin +PARSERS_DIR = /sys/bin +NOTIFIERS_DIR = /sys/bin +PLUGINS_DIR = /sys/bin +PLUGINS_1_DIR = /sys/bin +RESOURCE_FILES_DIR = /resource + +CA_CERTIFICATES_DIR = /private/101f72a6 +COMMDB_DIR = /private/100012a5 +SS_CONFIG_FILE_DIR = /private/101f7989/esock +TRUSTED_FONTS_DIR = /private/10003a16/fonts +UNTRUSTED_FONT_DIR = /private/10003a16/import/fonts +WINDOW_SERVER_INI_DIR = /private/10003b20 +SKINS_DIR = /private/10207114 +BOOTDATA_DIR = /resource/bootdata + +isEmpty(QT_PLUGINS_BASE_DIR): QT_PLUGINS_BASE_DIR = $$RESOURCE_FILES_DIR/qt$${QT_LIBINFIX}/plugins +isEmpty(QT_IMPORTS_BASE_DIR): QT_IMPORTS_BASE_DIR = $$RESOURCE_FILES_DIR/qt/imports +isEmpty(HW_ZDIR): HW_ZDIR = epoc32/data/z +isEmpty(REG_RESOURCE_DIR): REG_RESOURCE_DIR = /private/10003a3f/apps +isEmpty(REG_RESOURCE_IMPORT_DIR): REG_RESOURCE_IMPORT_DIR = /private/10003a3f/import/apps diff --git a/config.profiles/symbian/environment.prf b/config.profiles/symbian/environment.prf new file mode 100644 index 0000000..09ba90d --- /dev/null +++ b/config.profiles/symbian/environment.prf @@ -0,0 +1,9 @@ +# don't export SQLite on Symbian^3 onwards since it is already in the environment +CONFIG *= symbian_no_export_sqlite + +# STL autodetection in clean builds not working, specify it explicitly +CONFIG *= stl + + +S60_VERSION = 5.2 +SYMBIAN_VERSION = Symbian3 \ No newline at end of file diff --git a/config.profiles/symbian/headerexport b/config.profiles/symbian/headerexport new file mode 100644 index 0000000..e9e6f3b --- /dev/null +++ b/config.profiles/symbian/headerexport @@ -0,0 +1,1138 @@ +#!/usr/bin/perl -w +###################################################################### +# +# Synchronizes Qt header files - internal development tool. +# +# Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +# Contact: Nokia Corporation (qt-info@nokia.com) +# +###################################################################### + +# use packages ------------------------------------------------------- +use File::Basename; +use File::Path; +use Cwd; +use Config; +use strict; + +for (my $i = 0; $i < $#ARGV; $i++) { + if ($ARGV[$i] eq "-base-dir" && $i < $#ARGV - 1) { + $ENV{"QTDIR"} = $ARGV[$i + 1]; + last; + } +} + +die "syncqt: QTDIR not defined" if ! $ENV{"QTDIR"}; # sanity check + +# global variables +my $isunix = 0; +my $basedir = $ENV{"QTDIR"}; +$basedir =~ s=\\=/=g; +my %modules = ( # path to module name map + "QtGui" => "$basedir/src/gui", + "QtOpenGL" => "$basedir/src/opengl", + "QtOpenVG" => "$basedir/src/openvg", + "QtCore" => "$basedir/src/corelib", + "QtXml" => "$basedir/src/xml", + "QtXmlPatterns" => "$basedir/src/xmlpatterns", + "QtSql" => "$basedir/src/sql", + "QtNetwork" => "$basedir/src/network", + "QtSvg" => "$basedir/src/svg", + "QtDeclarative" => "$basedir/src/declarative", + "QtScript" => "$basedir/src/script", + "QtScriptTools" => "$basedir/src/scripttools", + "Qt3Support" => "$basedir/src/qt3support", + "ActiveQt" => "$basedir/src/activeqt", + "QtTest" => "$basedir/src/testlib", + "QtHelp" => "$basedir/tools/assistant/lib", + "QtDesigner" => "$basedir/tools/designer/src/lib", + "QtUiTools" => "$basedir/tools/designer/src/uitools", + "QtDBus" => "$basedir/src/dbus", +# "QtWebKit" => "$basedir/src/3rdparty/webkit/WebCore", // :TODO:disabled since QtWebKit built separately, better logic needed here. + "phonon" => "$basedir/src/phonon", + "QtMultimedia" => "$basedir/src/multimedia", + "QtMeeGoGraphicsSystemHelper" => "$basedir/tools/qmeegographicssystemhelper", +); +my %moduleheaders = ( # restrict the module headers to those found in relative path + "QtWebKit" => "../WebKit/qt/Api", + "phonon" => "../3rdparty/phonon/phonon", +); + +#$modules{"QtCore"} .= ";$basedir/mkspecs/" . $ENV{"MKSPEC"} if defined $ENV{"MKSPEC"}; + +# global variables (modified by options) +my $module = 0; +my $showonly = 0; +my $quiet = 0; +my $remove_stale = 1; +my $force_win = 0; +my $force_relative = 0; +my $check_includes = 0; +my $copy_headers = 0; +my $create_uic_class_map = 1; +my $create_private_headers = 1; +my $oneway = 0; +my @modules_to_sync ; +$force_relative = 1 if ( -d "/System/Library/Frameworks" ); +my $out_basedir = $basedir; +$out_basedir =~ s=\\=/=g; +my $out_subdir = 'include'; + +# functions ---------------------------------------------------------- + +###################################################################### +# Syntax: showUsage() +# Params: -none- +# +# Purpose: Show the usage of the script. +# Returns: -none- +###################################################################### +sub showUsage +{ + print "$0 usage:\n"; + print " -copy Copy headers instead of include-fwd(default: " . ($copy_headers ? "yes" : "no") . ")\n"; + print " -remove-stale Removes stale headers (default: " . ($remove_stale ? "yes" : "no") . ")\n"; + print " -relative Force relative symlinks (default: " . ($force_relative ? "yes" : "no") . ")\n"; + print " -windows Force platform to Windows (default: " . ($force_win ? "yes" : "no") . ")\n"; + print " -showonly Show action but not perform (default: " . ($showonly ? "yes" : "no") . ")\n"; + print " -outdir Specify output directory for sync (default: $out_basedir)\n"; + print " -outsubdir

Target subdir under outdir (default: $out_subdir)\n"; + print " -public Create only public headers (default: " . ($create_private_headers ? "no" : "yes") . ")\n"; + print " -oneway Don't sync back from outdir (default: " . ($oneway ? "yes" : "no") . ")\n"; + print " -quiet Only report problems, not activity (default: " . ($quiet ? "yes" : "no") . ")\n"; + print " -separate-module :: Create headers for with original headers in relative to \n"; + print " -help This help\n"; + exit 0; +} + +###################################################################### +# Syntax: checkUnix() +# Params: -none- +# +# Purpose: Check if script runs on a Unix system or not. Cygwin +# systems are _not_ detected as Unix systems. +# Returns: 1 if a unix system, else 0. +###################################################################### +sub checkUnix { + my ($r) = 0; + if ( $force_win != 0) { + return 0; + } elsif ( -f "/bin/uname" ) { + $r = 1; + (-f "\\bin\\uname") && ($r = 0); + } elsif ( -f "/usr/bin/uname" ) { + $r = 1; + (-f "\\usr\\bin\\uname") && ($r = 0); + } + if($r) { + $_ = $Config{'osname'}; + $r = 0 if( /(ms)|(cyg)win/i ); + } + return $r; +} + +sub checkRelative { + my ($dir) = @_; + return 0 if($dir =~ /^\//); + return 0 if(!checkUnix() && $dir =~ /[a-zA-Z]:[\/\\]/); + return 1; +} + +###################################################################### +# Syntax: shouldMasterInclude(iheader) +# Params: iheader, string, filename to verify inclusion +# +# Purpose: Determines if header should be in the master include file. +# Returns: 0 if file contains "#pragma qt_no_master_include" or not +# able to open, else 1. +###################################################################### +sub shouldMasterInclude { + my ($iheader) = @_; + return 0 if(basename($iheader) =~ /_/); + return 0 if(basename($iheader) =~ /qconfig/); + if(open(F, "<$iheader")) { + while() { + chomp; + return 0 if(/^\#pragma qt_no_master_include$/); + } + close(F); + } else { + return 0; + } + return 1; +} + +###################################################################### +# Syntax: classNames(iheader) +# Params: iheader, string, filename to parse for classname "symlinks" +# +# Purpose: Scans through iheader to find all classnames that should be +# synced into library's include structure. +# Returns: List of all class names in a file. +###################################################################### +sub classNames { + my @ret; + my ($iheader) = @_; + if(basename($iheader) eq "qglobal.h") { + push @ret, "QtGlobal"; + } elsif(basename($iheader) eq "qendian.h") { + push @ret, "QtEndian"; + } elsif(basename($iheader) eq "qconfig.h") { + push @ret, "QtConfig"; + } elsif(basename($iheader) eq "qplugin.h") { + push @ret, "QtPlugin"; + } elsif(basename($iheader) eq "qalgorithms.h") { + push @ret, "QtAlgorithms"; + } elsif(basename($iheader) eq "qcontainerfwd.h") { + push @ret, "QtContainerFwd"; + } elsif(basename($iheader) eq "qdebug.h") { + push @ret, "QtDebug"; + } elsif(basename($iheader) eq "qevent.h") { + push @ret, "QtEvents"; + } elsif(basename($iheader) eq "qnamespace.h") { + push @ret, "Qt" + } elsif(basename($iheader) eq "qssl.h") { + push @ret, "QSsl"; + } elsif(basename($iheader) eq "qtest.h") { + push @ret, "QTest" + } elsif(basename($iheader) eq "qtconcurrentmap.h") { + push @ret, "QtConcurrentMap" + } elsif(basename($iheader) eq "qtconcurrentfilter.h") { + push @ret, "QtConcurrentFilter" + } elsif(basename($iheader) eq "qtconcurrentrun.h") { + push @ret, "QtConcurrentRun" + } elsif(basename($iheader) eq "qaudio.h") { + push @ret, "QAudio" + } + + my $parsable = ""; + if(open(F, "<$iheader")) { + while() { + my $line = $_; + chomp $line; + chop $line if ($line =~ /\r$/); + if($line =~ /^\#/) { + if($line =~ /\\$/) { + while($line = ) { + chomp $line; + last unless($line =~ /\\$/); + } + } + return @ret if($line =~ m/^#pragma qt_sync_stop_processing/); + push(@ret, $1) if($line =~ m/^#pragma qt_class\(([^)]*)\)[\r\n]*$/); + $line = 0; + } + if($line) { + $line =~ s,//.*$,,; #remove c++ comments + $line .= ";" if($line =~ m/^Q_[A-Z_]*\(.*\)[\r\n]*$/); #qt macro + $line .= ";" if($line =~ m/^QT_(BEGIN|END)_HEADER[\r\n]*$/); #qt macro + $line .= ";" if($line =~ m/^QT_(BEGIN|END)_NAMESPACE[\r\n]*$/); #qt macro + $line .= ";" if($line =~ m/^QT_MODULE\(.*\)[\r\n]*$/); # QT_MODULE macro + $parsable .= " " . $line; + } + } + close(F); + } + + my $last_definition = 0; + my @namespaces; + for(my $i = 0; $i < length($parsable); $i++) { + my $definition = 0; + my $character = substr($parsable, $i, 1); + if($character eq "/" && substr($parsable, $i+1, 1) eq "*") { #I parse like this for greedy reasons + for($i+=2; $i < length($parsable); $i++) { + my $end = substr($parsable, $i, 2); + if($end eq "*/") { + $last_definition = $i+2; + $i++; + last; + } + } + } elsif($character eq "{") { + my $brace_depth = 1; + my $block_start = $i + 1; + BLOCK: for($i+=1; $i < length($parsable); $i++) { + my $ignore = substr($parsable, $i, 1); + if($ignore eq "{") { + $brace_depth++; + } elsif($ignore eq "}") { + $brace_depth--; + unless($brace_depth) { + for(my $i2 = $i+1; $i2 < length($parsable); $i2++) { + my $end = substr($parsable, $i2, 1); + if($end eq ";" || $end ne " ") { + $definition = substr($parsable, $last_definition, $block_start - $last_definition) . "}"; + $i = $i2 if($end eq ";"); + $last_definition = $i + 1; + last BLOCK; + } + } + } + } + } + } elsif($character eq ";") { + $definition = substr($parsable, $last_definition, $i - $last_definition + 1); + $last_definition = $i + 1; + } elsif($character eq "}") { + # a naked } must be a namespace ending + # if it's not a namespace, it's eaten by the loop above + pop @namespaces; + $last_definition = $i + 1; + } + + if (substr($parsable, $last_definition, $i - $last_definition + 1) =~ m/ namespace ([^ ]*) / + && substr($parsable, $i+1, 1) eq "{") { + push @namespaces, $1; + + # Eat the opening { so that the condensing loop above doesn't see it + $i++; + $last_definition = $i + 1; + } + + if($definition) { + $definition =~ s=[\n\r]==g; + my @symbols; + if($definition =~ m/^ *typedef *.*\(\*([^\)]*)\)\(.*\);$/) { + push @symbols, $1; + } elsif($definition =~ m/^ *typedef +(.*) +([^ ]*);$/) { + push @symbols, $2; + } elsif($definition =~ m/^ *(template *<.*> *)?(class|struct) +([^ ]* +)?([^<\s]+) ?(<[^>]*> ?)?\s*((,|:)\s*(public|protected|private) *.*)? *\{\}$/) { + push @symbols, $4; + } elsif($definition =~ m/^ *Q_DECLARE_.*ITERATOR\((.*)\);$/) { + push @symbols, "Q" . $1 . "Iterator"; + push @symbols, "QMutable" . $1 . "Iterator"; + } + + foreach my $symbol (@symbols) { + $symbol = (join("::", @namespaces) . "::" . $symbol) if (scalar @namespaces); + push @ret, $symbol + if ($symbol =~ /^Q[^:]*$/ # no-namespace, starting with Q + || $symbol =~ /^Phonon::/); # or in the Phonon namespace + } + } + } + return @ret; +} + +###################################################################### +# Syntax: syncHeader(header, iheader, copy, timestamp) +# Params: header, string, filename to create "symlink" for +# iheader, string, destination name of symlink +# copy, forces header to be a copy of iheader +# timestamp, the requested modification time if copying +# +# Purpose: Syncronizes header to iheader +# Returns: 1 if successful, else 0. +###################################################################### +sub syncHeader { + my ($header, $iheader, $copy, $ts) = @_; + $iheader =~ s=\\=/=g; + $header =~ s=\\=/=g; + return copyFile($iheader, $header) if($copy); + + unless(-e $header) { + my $header_dir = dirname($header); + mkpath $header_dir, !$quiet; + + #write it + my $iheader_out = fixPaths($iheader, $header_dir); + open HEADER, ">$header" || die "Could not open $header for writing!\n"; + print HEADER "#include \"$iheader_out\"\n"; + close HEADER; + utime(time, $ts, $header) or die "$iheader, $header"; + return 1; + } + return 0; +} + +###################################################################### +# Syntax: fixPaths(file, dir) +# Params: file, string, filepath to be made relative to dir +# dir, string, dirpath for point of origin +# +# Purpose: file is made relative (if possible) of dir. +# Returns: String with the above applied conversion. +###################################################################### +sub fixPaths { + my ($file, $dir) = @_; + $dir =~ s=^$basedir/=$out_basedir/= if(!($basedir eq $out_basedir)); + $file =~ s=\\=/=g; + $file =~ s/\+/\\+/g; + $dir =~ s=\\=/=g; + $dir =~ s/\+/\\+/g; + + #setup + my $ret = $file; + $ret =~ s,/cygdrive/([a-zA-Z])/,$1:/,g; + my $file_dir = dirname($file); + if($file_dir eq ".") { + $file_dir = getcwd(); + $file_dir =~ s=\\=/=g; + } + $file_dir =~ s,/cygdrive/([a-zA-Z])/,$1:/,g; + if($dir eq ".") { + $dir = getcwd(); + $dir =~ s=\\=/=g; + } + $dir =~ s,/cygdrive/([a-zA-Z])/,$1:/,g; + return basename($file) if($file_dir eq $dir); + + #guts + my $match_dir = 0; + for(my $i = 1; $i < length($file_dir); $i++) { + my $slash = index($file_dir, "/", $i); + last if($slash == -1); + my $tmp = substr($file_dir, 0, $slash); + last unless($dir =~ m,^$tmp/,); + $match_dir = $tmp; + $i = $slash; + } + if($match_dir) { + my $after = substr($dir, length($match_dir)); + my $count = ($after =~ tr,/,,); + my $dots = ""; + for(my $i = 0; $i < $count; $i++) { + $dots .= "../"; + } + $ret =~ s,^$match_dir,$dots,; + } + $ret =~ s,/+,/,g; + return $ret; +} + +###################################################################### +# Syntax: fileContents(filename) +# Params: filename, string, filename of file to return contents +# +# Purpose: Get the contents of a file. +# Returns: String with contents of the file, or empty string if file +# doens't exist. +# Warning: Dies if it does exist but script cannot get read access. +###################################################################### +sub fileContents { + my ($filename) = @_; + my $filecontents = ""; + if (-e $filename) { + open(I, "< $filename") || die "Could not open $filename for reading, read block?"; + local $/; + binmode I; + $filecontents = ; + close I; + } + return $filecontents; +} + +###################################################################### +# Syntax: fileCompare(file1, file2) +# Params: file1, string, filename of first file +# file2, string, filename of second file +# +# Purpose: Determines if files are equal, and which one is newer. +# Returns: 0 if files are equal no matter the timestamp, -1 if file1 +# is newer, 1 if file2 is newer. +###################################################################### +sub fileCompare { + my ($file1, $file2) = @_; + my $file1contents = fileContents($file1); + my $file2contents = fileContents($file2); + if (! -e $file1) { return 1; } + if (! -e $file2) { return -1; } + return $file1contents ne $file2contents ? (stat($file2))[9] <=> (stat($file1))[9] : 0; +} + +###################################################################### +# Syntax: copyFile(file, ifile) +# Params: file, string, filename to create duplicate for +# ifile, string, destination name of duplicate +# +# Purpose: Keeps files in sync so changes in the newer file will be +# written to the other. +# Returns: 1 if files were synced, else 0. +# Warning: Dies if script cannot get write access. +###################################################################### +sub copyFile +{ + my ($file,$ifile, $copy,$knowdiff,$filecontents,$ifilecontents) = @_; + # Bi-directional synchronization + open( I, "< " . $file ) || die "Could not open $file for reading"; + local $/; + binmode I; + $filecontents = ; + close I; + if ( open(I, "< " . $ifile) ) { + local $/; + binmode I; + $ifilecontents = ; + close I; + $copy = fileCompare($file, $ifile); + $knowdiff = 0, + } else { + $copy = -1; + $knowdiff = 1; + } + + if ( $knowdiff || ($filecontents ne $ifilecontents) ) { + if ( $copy > 0 && !$oneway) { + my $file_dir = dirname($file); + mkpath $file_dir, !$quiet unless(-e $file_dir); + open(O, "> " . $file) || die "Could not open $file for writing (no write permission?)"; + local $/; + binmode O; + print O $ifilecontents; + close O; + utime time, (stat($ifile))[9], $file; + return 1; + } elsif ( $copy < 0 ) { + my $ifile_dir = dirname($ifile); + mkpath $ifile_dir, !$quiet unless(-e $ifile_dir); + open(O, "> " . $ifile) || die "Could not open $ifile for writing (no write permission?)"; + local $/; + binmode O; + print O $filecontents; + close O; + utime time, (stat($file))[9], $ifile; + return 1; + } + } + return 0; +} + +###################################################################### +# Syntax: symlinkFile(file, ifile) +# Params: file, string, filename to create "symlink" for +# ifile, string, destination name of symlink +# +# Purpose: File is symlinked to ifile (or copied if filesystem doesn't +# support symlink). +# Returns: 1 on success, else 0. +###################################################################### +sub symlinkFile +{ + my ($file,$ifile) = @_; + + if ($isunix) { + print "symlink created for $file " unless $quiet; + if ( $force_relative && ($ifile =~ /^$basedir/)) { + my $t = getcwd(); + my $c = -1; + my $p = "../"; + $t =~ s-^$basedir/--; + $p .= "../" while( ($c = index( $t, "/", $c + 1)) != -1 ); + $file =~ s-^$basedir/-$p-; + print " ($file)\n" unless $quiet; + } + print "\n" unless $quiet; + return symlink($file, $ifile); + } + return copyFile($file, $ifile); +} + +###################################################################### +# Syntax: findFiles(dir, match, descend) +# Params: dir, string, directory to search for name +# match, string, regular expression to match in dir +# descend, integer, 0 = non-recursive search +# 1 = recurse search into subdirectories +# +# Purpose: Finds files matching a regular expression. +# Returns: List of matching files. +# +# Examples: +# findFiles("/usr","\.cpp$",1) - finds .cpp files in /usr and below +# findFiles("/tmp","^#",0) - finds #* files in /tmp +###################################################################### +sub findFiles { + my ($dir,$match,$descend) = @_; + my ($file,$p,@files); + local(*D); + $dir =~ s=\\=/=g; + ($dir eq "") && ($dir = "."); + if ( opendir(D,$dir) ) { + if ( $dir eq "." ) { + $dir = ""; + } else { + ($dir =~ /\/$/) || ($dir .= "/"); + } + foreach $file ( sort readdir(D) ) { + next if ( $file =~ /^\.\.?$/ ); + $p = $file; + ($file =~ /$match/) && (push @files, $p); + if ( $descend && -d $p && ! -l $p ) { + push @files, &findFiles($p,$match,$descend); + } + } + closedir(D); + } + return @files; +} + +# -------------------------------------------------------------------- +# "main" function +# -------------------------------------------------------------------- + +while ( @ARGV ) { + my $var = 0; + my $val = 0; + + #parse + my $arg = shift @ARGV; + if ($arg eq "-h" || $arg eq "-help" || $arg eq "?") { + $var = "show_help"; + $val = "yes"; + } elsif($arg eq "-copy") { + $var = "copy"; + $val = "yes"; + } elsif($arg eq "-o" || $arg eq "-outdir") { + $var = "output"; + $val = shift @ARGV; + } elsif($arg eq "-showonly" || $arg eq "-remove-stale" || $arg eq "-windows" || + $arg eq "-relative" || $arg eq "-check-includes") { + $var = substr($arg, 1); + $val = "yes"; + } elsif($arg =~ /^-no-(.*)$/) { + $var = $1; + $val = "no"; + #these are for commandline compat + } elsif($arg eq "-inc") { + $var = "output"; + $val = shift @ARGV; + } elsif($arg eq "-module") { + $var = "module"; + $val = shift @ARGV; + } elsif($arg eq "-separate-module") { + $var = "separate-module"; + $val = shift @ARGV; + } elsif($arg eq "-show") { + $var = "showonly"; + $val = "yes"; + } elsif($arg eq "-quiet") { + $var = "quiet"; + $val = "yes"; + } elsif($arg eq "-base-dir") { + # skip, it's been dealt with at the top of the file + shift @ARGV; + next; + } elsif("$arg" eq "-outsubdir") { + $var = "outsubdir"; + $val = shift @ARGV; + } elsif("$arg" eq "-public") { + $var = "public"; + $val = "yes"; + } elsif("$arg" eq "-oneway") { + $var = "oneway"; + $val = "yes"; + } + + #do something + if(!$var || $var eq "show_help") { + print "Unknown option: $arg\n\n" if(!$var); + showUsage(); + } elsif ($var eq "copy") { + if($val eq "yes") { + $copy_headers++; + } elsif($showonly) { + $copy_headers--; + } + } elsif ($var eq "showonly") { + if($val eq "yes") { + $showonly++; + } elsif($showonly) { + $showonly--; + } + } elsif ($var eq "quiet") { + if($val eq "yes") { + $quiet++; + } elsif($quiet) { + $quiet--; + } + } elsif ($var eq "check-includes") { + if($val eq "yes") { + $check_includes++; + } elsif($check_includes) { + $check_includes--; + } + } elsif ($var eq "remove-stale") { + if($val eq "yes") { + $remove_stale++; + } elsif($remove_stale) { + $remove_stale--; + } + } elsif ($var eq "windows") { + if($val eq "yes") { + $force_win++; + } elsif($force_win) { + $force_win--; + } + } elsif ($var eq "relative") { + if($val eq "yes") { + $force_relative++; + } elsif($force_relative) { + $force_relative--; + } + } elsif ("$var" eq "public") { + $create_private_headers = ("$val" eq "yes" ? 0 : 1); + } elsif ("$var" eq "oneway") { + $oneway = ("$val" eq "yes" ? 1 : 0); + } elsif ("$var" eq "outsubdir") { + $out_subdir = $val; + } elsif ($var eq "module") { + print "module :$val:\n" unless $quiet; + die "No such module: $val" unless(defined $modules{$val}); + push @modules_to_sync, $val; + } elsif ($var eq "separate-module") { + my ($module, $prodir, $headerdir) = split(/:/, $val); + $modules{$module} = $prodir; + push @modules_to_sync, $module; + $moduleheaders{$module} = $headerdir; + $create_uic_class_map = 0; + $create_private_headers = 0; + } elsif ($var eq "output") { + my $outdir = $val; + if(checkRelative($outdir)) { + $out_basedir = getcwd(); + chomp $out_basedir; + $out_basedir .= "/" . $outdir; + } else { + $out_basedir = $outdir; + } + # \ -> / + $out_basedir =~ s=\\=/=g; + } +} +@modules_to_sync = keys(%modules) if($#modules_to_sync == -1); + +$isunix = checkUnix; #cache checkUnix + +# create path +mkpath "$out_basedir/include", !$quiet; +mkpath "$out_basedir/$out_subdir/Qt", !$quiet; + +my @ignore_headers = (); +my $class_lib_map_contents = ""; +my @ignore_for_master_contents = ( "qt.h", "qpaintdevicedefs.h" ); +my @ignore_for_include_check = ( "qatomic.h" ); +my @ignore_for_qt_begin_header_check = ( "qiconset.h", "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qt_windows.h" ); +my @ignore_for_qt_begin_namespace_check = ( "qconfig.h", "qconfig-dist.h", "qconfig-large.h", "qconfig-medium.h", "qconfig-minimal.h", "qconfig-small.h", "qfeatures.h", "qatomic_arch.h", "qatomic_windowsce.h", "qt_windows.h", "qatomic_macosx.h" ); +my @ignore_for_qt_module_check = ( "$modules{QtCore}/arch", "$modules{QtCore}/global", "$modules{QtSql}/drivers", "$modules{QtTest}", "$modules{QtDesigner}", "$modules{QtUiTools}", "$modules{QtDBus}", "$modules{phonon}" ); +my %colliding_headers = (); +my %inject_headers; +# Force generation of forwarding header for qconfig.h if (and only if) we can't +# find the header by normal means. +%inject_headers = ( "$basedir/src/corelib/global" => ( "*qconfig.h" ) ) unless (-e "$basedir/src/corelib/global/qconfig.h"); + +foreach my $lib (@modules_to_sync) { + #iteration info + my $dir = $modules{$lib}; + my $pathtoheaders = ""; + $pathtoheaders = $moduleheaders{$lib} if ($moduleheaders{$lib}); + + #information used after the syncing + my $pri_install_classes = ""; + my $pri_install_files = ""; + my $pri_install_pfiles = ""; + + my $libcapitals = $lib; + $libcapitals =~ y/a-z/A-Z/; + my $master_contents = "#ifndef QT_".$libcapitals."_MODULE_H\n#define QT_".$libcapitals."_MODULE_H\n"; + + #get dependencies + if(-e "$dir/" . basename($dir) . ".pro") { + if(open(F, "<$dir/" . basename($dir) . ".pro")) { + while(my $line = ) { + chomp $line; + if($line =~ /^ *QT *\+?= *([^\r\n]*)/) { + foreach(split(/ /, $1)) { + $master_contents .= "#include \n" if($_ eq "core"); + $master_contents .= "#include \n" if($_ eq "gui"); + $master_contents .= "#include \n" if($_ eq "network"); + $master_contents .= "#include \n" if($_ eq "svg"); + $master_contents .= "#include \n" if($_ eq "declarative"); + $master_contents .= "#include \n" if($_ eq "script"); + $master_contents .= "#include \n" if($_ eq "scripttools"); + $master_contents .= "#include \n" if($_ eq "qt3support"); + $master_contents .= "#include \n" if($_ eq "sql"); + $master_contents .= "#include \n" if($_ eq "xml"); + $master_contents .= "#include \n" if($_ eq "xmlpatterns"); + $master_contents .= "#include \n" if($_ eq "opengl"); + $master_contents .= "#include \n" if($_ eq "openvg"); + } + } + } + close(F); + } + } + + #remove the old files + if($remove_stale) { + my @subdirs = ("$out_basedir/$out_subdir/$lib"); + foreach my $subdir (@subdirs) { + if (opendir DIR, $subdir) { + while(my $t = readdir(DIR)) { + my $file = "$subdir/$t"; + if(-d $file) { + push @subdirs, $file unless($t eq "." || $t eq ".."); + } else { + my @files = ($file); + #push @files, "$out_basedir/$out_subdir/Qt/$t" if(-e "$out_basedir/$out_subdir/Qt/$t"); + foreach my $file (@files) { + my $remove_file = 0; + if(open(F, "<$file")) { + while(my $line = ) { + chomp $line; + if($line =~ /^\#include \"([^\"]*)\"$/) { + my $include = $1; + $include = $subdir . "/" . $include unless(substr($include, 0, 1) eq "/"); + $remove_file = 1 unless(-e $include); + } else { + $remove_file = 0; + last; + } + } + close(F); + unlink $file if($remove_file); + } + } + } + } + closedir DIR; + } + + } + } + + #create the new ones + foreach my $current_dir (split(/;/, $dir)) { + my $headers_dir = $current_dir; + $headers_dir .= "/$pathtoheaders" if ($pathtoheaders); + #calc subdirs + my @subdirs = ($headers_dir); + foreach my $subdir (@subdirs) { + opendir DIR, $subdir or next; + while(my $t = readdir(DIR)) { + push @subdirs, "$subdir/$t" if(-d "$subdir/$t" && !($t eq ".") && + !($t eq "..") && !($t eq ".obj") && + !($t eq ".moc") && !($t eq ".rcc") && + !($t eq ".uic") && !($t eq "build")); + } + closedir DIR; + } + + #calc files and "copy" them + foreach my $subdir (@subdirs) { + my @headers = findFiles($subdir, "^[-a-z0-9_]*\\.h\$" , 0); + push @headers, $inject_headers{$subdir} if (defined $inject_headers{$subdir}); + foreach my $header (@headers) { + my $shadow = ($header =~ s/^\*//); + $header = 0 if($header =~ /^ui_.*.h/); + foreach (@ignore_headers) { + $header = 0 if($header eq $_); + } + if($header) { + my $header_copies = 0; + #figure out if it is a public header + my $public_header = $header; + if($public_header =~ /_p.h$/ || $public_header =~ /_pch.h$/) { + $public_header = 0; + } else { + foreach (@ignore_for_master_contents) { + $public_header = 0 if($header eq $_); + } + } + + my $iheader = $subdir . "/" . $header; + $iheader =~ s/^\Q$basedir\E/$out_basedir/ if ($shadow); + my @classes = $public_header ? classNames($iheader) : (); + if($showonly) { + print "$header [$lib]\n"; + foreach(@classes) { + print "SYMBOL: $_\n"; + } + } else { + my $ts = (stat($iheader))[9]; + #find out all the places it goes.. + my @headers; + if ($public_header) { + @headers = ( "$out_basedir/$out_subdir/$lib/$header" ); + + # write forwarding headers to include/Qt + if ($lib ne "phonon" && $subdir =~ /^$basedir\/src/) { + my $file_name = "$out_basedir/$out_subdir/Qt/$header"; + my $file_op = '>'; + my $header_content = ''; + if (exists $colliding_headers{$file_name}) { + $file_op = '>>'; + } else { + $colliding_headers{$file_name} = 1; + my $warning_msg = 'Inclusion of header files from include/Qt is deprecated.'; + $header_content = "#ifndef QT_NO_QT_INCLUDE_WARN\n" . + " #if defined(__GNUC__)\n" . + " #warning \"$warning_msg\"\n" . + " #elif defined(_MSC_VER)\n" . + " #pragma message(\"WARNING: $warning_msg\")\n" . + " #endif\n". + "#endif\n\n"; + } + $header_content .= '#include "' . "../$lib/$header" . "\"\n"; + open HEADERFILE, $file_op, $file_name or die "unable to open '$file_name' : $!\n"; + print HEADERFILE $header_content; + close HEADERFILE; + } + + foreach my $full_class (@classes) { + my $header_base = basename($header); + # Strip namespaces: + my $class = $full_class; + $class =~ s/^.*:://; +# if ($class =~ m/::/) { +# class =~ s,::,/,g; +# } + $class_lib_map_contents .= "QT_CLASS_LIB($full_class, $lib, $header_base)\n"; + $header_copies++ if(syncHeader("$out_basedir/$out_subdir/$lib/$class", "$out_basedir/$out_subdir/$lib/$header", 0, $ts)); + + # KDE-Compat headers for Phonon + if ($lib eq "phonon") { + $header_copies++ if (syncHeader("$out_basedir/$out_subdir/phonon_compat/Phonon/$class", "$out_basedir/$out_subdir/$lib/$header", 0, $ts)); + } + } + } elsif ($create_private_headers) { + @headers = ( "$out_basedir/$out_subdir/$lib/private/$header" ); + } + foreach(@headers) { #sync them + $header_copies++ if(syncHeader($_, $iheader, $copy_headers, $ts)); + } + + if($public_header) { + #put it into the master file + $master_contents .= "#include \"$public_header\"\n" if(shouldMasterInclude($iheader)); + + #deal with the install directives + if($public_header) { + my $pri_install_iheader = fixPaths($iheader, $current_dir); + foreach my $class (@classes) { + # Strip namespaces: + $class =~ s/^.*:://; +# if ($class =~ m/::/) { +# $class =~ s,::,/,g; +# } + my $class_header = fixPaths("$out_basedir/$out_subdir/$lib/$class", + $current_dir) . " "; + $pri_install_classes .= $class_header + unless($pri_install_classes =~ $class_header); + } + $pri_install_files.= "$pri_install_iheader ";; + } + } + else { + my $pri_install_iheader = fixPaths($iheader, $current_dir); + $pri_install_pfiles.= "$pri_install_iheader ";; + } + } + print "header created for $iheader ($header_copies)\n" if($header_copies > 0 && !$quiet); + } + } + } + } + + # close the master include: + $master_contents .= "#endif\n"; + + unless($showonly) { + my @master_includes; + push @master_includes, "$out_basedir/$out_subdir/$lib/$lib"; + push @master_includes, "$out_basedir/$out_subdir/phonon_compat/Phonon/Phonon" if ($lib eq "phonon"); + foreach my $master_include (@master_includes) { + #generate the "master" include file + my @tmp = split(/;/,$modules{$lib}); + $pri_install_files .= fixPaths($master_include, $tmp[0]) . " "; #get the master file installed too + if($master_include && -e $master_include) { + open MASTERINCLUDE, "<$master_include"; + local $/; + binmode MASTERINCLUDE; + my $oldmaster = ; + close MASTERINCLUDE; + $oldmaster =~ s/\r//g; # remove \r's , so comparison is ok on all platforms + $master_include = 0 if($oldmaster eq $master_contents); + } + if($master_include && $master_contents) { + my $master_dir = dirname($master_include); + mkpath $master_dir, !$quiet; + print "header (master) created for $lib\n" unless $quiet; + open MASTERINCLUDE, ">$master_include"; + print MASTERINCLUDE $master_contents; + close MASTERINCLUDE; + } + } + + #handle the headers.pri for each module + my $headers_pri_contents = ""; + $headers_pri_contents .= "SYNCQT.HEADER_FILES = $pri_install_files\n"; + $headers_pri_contents .= "SYNCQT.HEADER_CLASSES = $pri_install_classes\n"; + $headers_pri_contents .= "SYNCQT.PRIVATE_HEADER_FILES = $pri_install_pfiles\n"; + my $headers_pri_file = "$out_basedir/$out_subdir/$lib/headers.pri"; + if(-e $headers_pri_file) { + open HEADERS_PRI_FILE, "<$headers_pri_file"; + local $/; + binmode HEADERS_PRI_FILE; + my $old_headers_pri_contents = ; + close HEADERS_PRI_FILE; + $old_headers_pri_contents =~ s/\r//g; # remove \r's , so comparison is ok on all platforms + $headers_pri_file = 0 if($old_headers_pri_contents eq $headers_pri_contents); + } + if($headers_pri_file && $master_contents) { + my $headers_pri_dir = dirname($headers_pri_file); + mkpath $headers_pri_dir, !$quiet; + print "headers.pri file created for $lib\n" unless $quiet; + open HEADERS_PRI_FILE, ">$headers_pri_file"; + print HEADERS_PRI_FILE $headers_pri_contents; + close HEADERS_PRI_FILE; + } + } +} +unless($showonly || !$create_uic_class_map) { + my $class_lib_map = "$out_basedir/src/tools/uic/qclass_lib_map.h"; + if(-e $class_lib_map) { + open CLASS_LIB_MAP, "<$class_lib_map"; + local $/; + binmode CLASS_LIB_MAP; + my $old_class_lib_map_contents = ; + close CLASS_LIB_MAP; + $old_class_lib_map_contents =~ s/\r//g; # remove \r's , so comparison is ok on all platforms + $class_lib_map = 0 if($old_class_lib_map_contents eq $class_lib_map_contents); + } + if($class_lib_map) { + my $class_lib_map_dir = dirname($class_lib_map); + mkpath $class_lib_map_dir, !$quiet; + open CLASS_LIB_MAP, ">$class_lib_map"; + print CLASS_LIB_MAP $class_lib_map_contents; + close CLASS_LIB_MAP; + } +} + +if($check_includes) { + for my $lib (keys(%modules)) { + #calc subdirs + my @subdirs = ($modules{$lib}); + foreach my $subdir (@subdirs) { + opendir DIR, $subdir or die "Huh, directory ".$subdir." cannot be opened."; + while(my $t = readdir(DIR)) { + push @subdirs, "$subdir/$t" if(-d "$subdir/$t" && !($t eq ".") && + !($t eq "..") && !($t eq ".obj") && + !($t eq ".moc") && !($t eq ".rcc") && + !($t eq ".uic") && !($t eq "build")); + } + closedir DIR; + } + + foreach my $subdir (@subdirs) { + my $header_skip_qt_module_test = 0; + foreach(@ignore_for_qt_module_check) { + foreach (split(/;/, $_)) { + $header_skip_qt_module_test = 1 if ($subdir =~ /^$_/); + } + } + my @headers = findFiles($subdir, "^[-a-z0-9_]*\\.h\$" , 0); + foreach my $header (@headers) { + my $header_skip_qt_begin_header_test = 0; + my $header_skip_qt_begin_namespace_test = 0; + $header = 0 if($header =~ /^ui_.*.h/); + foreach (@ignore_headers) { + $header = 0 if($header eq $_); + } + if($header) { + my $public_header = $header; + if($public_header =~ /_p.h$/ || $public_header =~ /_pch.h$/) { + $public_header = 0; + } else { + foreach (@ignore_for_master_contents) { + $public_header = 0 if($header eq $_); + } + if($public_header) { + foreach (@ignore_for_include_check) { + $public_header = 0 if($header eq $_); + } + foreach(@ignore_for_qt_begin_header_check) { + $header_skip_qt_begin_header_test = 1 if ($header eq $_); + } + foreach(@ignore_for_qt_begin_namespace_check) { + $header_skip_qt_begin_namespace_test = 1 if ($header eq $_); + } + } + } + + my $iheader = $subdir . "/" . $header; + if($public_header) { + if(open(F, "<$iheader")) { + my $qt_module_found = 0; + my $qt_begin_header_found = 0; + my $qt_end_header_found = 0; + my $qt_begin_namespace_found = 0; + my $qt_end_namespace_found = 0; + my $line; + while($line = ) { + chomp $line; + my $output_line = 1; + if($line =~ /^ *\# *pragma (qt_no_included_check|qt_sync_stop_processing)/) { + last; + } elsif($line =~ /^ *\# *include/) { + my $include = $line; + if($line =~ /<.*>/) { + $include =~ s,.*<(.*)>.*,$1,; + } elsif($line =~ /".*"/) { + $include =~ s,.*"(.*)".*,$1,; + } else { + $include = 0; + } + if($include) { + for my $trylib (keys(%modules)) { + if(-e "$out_basedir/$out_subdir/$trylib/$include") { + print "WARNING: $iheader includes $include when it should include $trylib/$include\n"; + } + } + } + } elsif ($header_skip_qt_begin_header_test == 0 and $line =~ /^QT_BEGIN_HEADER\s*$/) { + $qt_begin_header_found = 1; + } elsif ($header_skip_qt_begin_header_test == 0 and $line =~ /^QT_END_HEADER\s*$/) { + $qt_end_header_found = 1; + } elsif ($header_skip_qt_begin_namespace_test == 0 and $line =~ /^QT_BEGIN_NAMESPACE\s*$/) { + $qt_begin_namespace_found = 1; + } elsif ($header_skip_qt_begin_namespace_test == 0 and $line =~ /^QT_END_NAMESPACE\s*$/) { + $qt_end_namespace_found = 1; + } elsif ($header_skip_qt_module_test == 0 and $line =~ /^QT_MODULE\(.*\)\s*$/) { + $qt_module_found = 1; + } + } + if ($header_skip_qt_begin_header_test == 0) { + if ($qt_begin_header_found == 0) { + print "WARNING: $iheader does not include QT_BEGIN_HEADER\n"; + } + + if ($qt_begin_header_found && $qt_end_header_found == 0) { + print "WARNING: $iheader has QT_BEGIN_HEADER but no QT_END_HEADER\n"; + } + } + + if ($header_skip_qt_begin_namespace_test == 0) { + if ($qt_begin_namespace_found == 0) { + print "WARNING: $iheader does not include QT_BEGIN_NAMESPACE\n"; + } + + if ($qt_begin_namespace_found && $qt_end_namespace_found == 0) { + print "WARNING: $iheader has QT_BEGIN_NAMESPACE but no QT_END_NAMESPACE\n"; + } + } + + if ($header_skip_qt_module_test == 0) { + if ($qt_module_found == 0) { + print "WARNING: $iheader does not include QT_MODULE\n"; + } + } + close(F); + } + } + } + } + } + } + } + +exit 0; diff --git a/config.profiles/symbian/implml/qt_copy.implml b/config.profiles/symbian/implml/qt_copy.implml new file mode 100644 index 0000000..53d600e --- /dev/null +++ b/config.profiles/symbian/implml/qt_copy.implml @@ -0,0 +1,10 @@ + + + + + + + + + diff --git a/config.profiles/symbian/layers.sysdef.xml b/config.profiles/symbian/layers.sysdef.xml new file mode 100644 index 0000000..4c1b6f9 --- /dev/null +++ b/config.profiles/symbian/layers.sysdef.xml @@ -0,0 +1,41 @@ + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config.profiles/symbian/loc.prf b/config.profiles/symbian/loc.prf new file mode 100644 index 0000000..9973903 --- /dev/null +++ b/config.profiles/symbian/loc.prf @@ -0,0 +1,25 @@ + +qtPrepareTool(LRELEASE, lrelease) + +loc.CONFIG = no_link +loc.commands = $$LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT} +loc.output = $${EPOCROOT}epoc32/data/z/resource/qt/translations/${QMAKE_FILE_BASE}.qm +loc.input = TRANSLATIONS +loc.variable_out = PRE_TARGETDEPS + +loc_winscwudeb.CONFIG = no_link +loc_winscwudeb.commands = $$LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT} +loc_winscwudeb.output = $${EPOCROOT}epoc32/release/winscw/udeb/z/resource/qt/translations/${QMAKE_FILE_BASE}.qm +loc_winscwudeb.input = TRANSLATIONS +loc_winscwudeb.variable_out = PRE_TARGETDEPS + +loc_winscwurel.CONFIG = no_link +loc_winscwurel.commands = $$LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT} +loc_winscwurel.output = $${EPOCROOT}epoc32/release/winscw/urel/z/resource/qt/translations/${QMAKE_FILE_BASE}.qm +loc_winscwurel.input = TRANSLATIONS +loc_winscwurel.variable_out = PRE_TARGETDEPS + +QMAKE_EXTRA_COMPILERS += loc +QMAKE_EXTRA_COMPILERS += loc_winscwudeb +QMAKE_EXTRA_COMPILERS += loc_winscwurel + diff --git a/config.profiles/symbian/non_foundation_paths.prf b/config.profiles/symbian/non_foundation_paths.prf new file mode 100644 index 0000000..8074ff7 --- /dev/null +++ b/config.profiles/symbian/non_foundation_paths.prf @@ -0,0 +1,115 @@ +# +# ============================================================================== +# Name : non_foundation_paths.prf +# Part of : +# Interface : None foundation code Path Definitions API for Qt/S60 +# Description : Symbian^3 and onwards specific platform paths +# +# Usage examples: +# +# Note: this file will not added automatically. It needs to be included +# when needed. +# +# Variable usages to add the system include paths +# +# The include paths has to be related to the layer in which your SW +# resides. Thus as an example: a component residing in middleware +# layer should use the MW specific macro. +# +# INCLUDEPATH += $$NON_FOUNDATION_APP_LAYER_SYSTEMINCLUDE +# INCLUDEPATH += $$NON_FOUNDATION_MW_LAYER_SYSTEMINCLUDE +# INCLUDEPATH += $$NON_FOUNDATION_OS_LAYER_SYSTEMINCLUDE +# INCLUDEPATH += $$NON_FOUNDATION_ADAPT_LAYER_SYSTEMINCLUDE +# +# Macros related to exporting non-foundation headers into +# correct place in the new system. +# NON_FOUNDATION_APP_LAYER_EXPORT_PATH +# NON_FOUNDATION_MW_LAYER_EXPORT_PATH +# NON_FOUNDATION_OS_LAYER_EXPORT_PATH +# NON_FOUNDATION_ADAPT_LAYER_EXPORT_PATH +# +# ============================================================================== + +# --------------------------------------- +# Location, where the non-foundation app code should export its headers. +# These are specific to app layer to which the non-foundation code belongs to. +# --------------------------------------- +defineReplace(NON_FOUNDATION_APP_LAYER_EXPORT_PATH) { + return (/epoc32/include/ext/app/$$1) +} + +# --------------------------------------- +# Location, where the non-foundation mw code should export its headers. +# These are specific to mw layer to which the non-foundation code belongs to. +# --------------------------------------- +defineReplace(NON_FOUNDATION_MW_LAYER_EXPORT_PATH) { + return (/epoc32/include/ext/mw/$$1) +} + +# --------------------------------------- +# Location, where the non-foundation os code should export its headers. +# These are specific to os layer to which the non-foundation code belongs to. +# --------------------------------------- +defineReplace(NON_FOUNDATION_OS_LAYER_EXPORT_PATH) { + return (/epoc32/include/ext/os/$$1) +} + +# --------------------------------------- +# Location, where the non-foundation adapt code should export its headers. +# These are specific to adapt layer to which the non-foundation code belongs to. +# --------------------------------------- +# Temporarily commented out to help adaptation side migration +# defineReplace(NON_FOUNDATION_ADAPT_LAYER_EXPORT_PATH) { +# return (/epoc32/include/ext/adapt/$$1) +# } + +# ************************************************************************** +# General comments about the 3 define statements related to include paths. +# It should be enough only to have one of the below macros and one of the include macros +# from platform_paths.hrh. +# No other systemincludes to epoc32/include or subdirectories. +# ************************************************************************** + +# This define statements defines the SYSTEMINCLUDE-line, which is intended to be +# used in the mmp-files that are part of the applications-layer. +# +# Applications layer is the last one in the list, since most likely the most of +# the headers come from middleware or os-layer => thus they are first. + +NON_FOUNDATION_APP_LAYER_SYSTEMINCLUDE = \ + /epoc32/include/ext/app \ + /epoc32/include/ext/mw \ + /epoc32/include/ext/os + +# This define statements defines the SYSTEMINCLUDE-line, which is intended to be +# used in the mmp-files that are part of the middleware-layer. + +NON_FOUNDATION_MW_LAYER_SYSTEMINCLUDE = \ + /epoc32/include/ext/mw \ + /epoc32/include/ext/os + +# This define statements defines the SYSTEMINCLUDE-line, which is intended to be +# used in the mmp-files that are part of the os-layer. + +NON_FOUNDATION_OS_LAYER_SYSTEMINCLUDE = \ + /epoc32/include/ext/os + +# This define statements defines the SYSTEMINCLUDE-line, which is intended to be +# used in the mmp-files that are part of the adapt-layer. +# Temporarily commented out to help adaptation side migration +# NON_FOUNDATION_ADAPT_LAYER_SYSTEMINCLUDE = \ +# /epoc32/include/ext/os \ +# /epoc32/include/ext/adapt + + +# **************************************************************************** +# Definitions to export IBY files to different folders where they will be taken +# to ROM image +# **************************************************************************** + +# Following three definitions are used for exporting IBY files to +# Core image (ROM+ROFS1). IBY files are exported according to their layer. + +defineReplace(NON_FOUNDATION_CORE_ADAPT_LAYER_IBY_EXPORT_PATH) { + return (/epoc32/rom/include/$$1) +} diff --git a/config.profiles/symbian/package_definition.xml b/config.profiles/symbian/package_definition.xml new file mode 100644 index 0000000..f0c6652 --- /dev/null +++ b/config.profiles/symbian/package_definition.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config.profiles/symbian/package_map.xml b/config.profiles/symbian/package_map.xml new file mode 100644 index 0000000..6233095 --- /dev/null +++ b/config.profiles/symbian/package_map.xml @@ -0,0 +1 @@ + diff --git a/config.profiles/symbian/platform_paths.prf b/config.profiles/symbian/platform_paths.prf new file mode 100644 index 0000000..0e2131f --- /dev/null +++ b/config.profiles/symbian/platform_paths.prf @@ -0,0 +1,251 @@ +# +# ============================================================================== +# Name : platform_paths.prf +# Part of : +# Interface : Platform Path Definitions API for Qt/S60 +# Description : Symbian^3 and onwards specific platform paths +# +# Usage examples: +# +# Note: this file gets automatically added to all Qt/S60 projects +# +# Variable usages to add the system include paths +# +# The include paths has to be related to the layer in which your SW +# resides. Thus as an example: a component residing in middleware +# layer should use the MW specific macro. +# +# INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE +# INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE +# INCLUDEPATH += $$OS_LAYER_SYSTEMINCLUDE +# +# If there is a need to include public headers of some S60 component, +# various *_EXPORT_PATH macros can be utilized: +# +# INCLUDEPATH += $$OS_LAYER_PUBLIC_EXPORT_PATH(somecomponent) +# +# Variables related to using various parts of stdapis: +# +# To use STLLIB you need to have this in your pro-file: +# +# QMAKE_CXXFLAGS.CW *= $$STLLIB_USAGE_CW_FLAGS +# DEFINES *= $$STLLIB_USAGE_DEFINES +# +# Depending on what module you are using from stdapis you need to have +# one or more of the following variables in your pro-file. +# +# INCLUDEPATH += $$OS_LAYER_LIBC_SYSTEMINCLUDE +# INCLUDEPATH += $$OS_LAYER_GLIB_SYSTEMINCLUDE +# INCLUDEPATH += $$OS_LAYER_SSL_SYSTEMINCLUDE +# INCLUDEPATH += $$OS_LAYER_STDCPP_SYSTEMINCLUDE +# INCLUDEPATH += $$OS_LAYER_BOOST_SYSTEMINCLUDE +# INCLUDEPATH += $$OS_LAYER_DBUS_SYSTEMINCLUDE +# INCLUDEPATH += $$OS_LAYER_LIBUTILITY_SYSTEMINCLUDE +# +# +# +# +# ============================================================================== + +# --------------------------------------- +# Location, where the applications layer specific public headers are exported +# --------------------------------------- + +defineReplace(APP_LAYER_SDK_EXPORT_PATH) { + return (/epoc32/include/app/$$1) +} +defineReplace(APP_LAYER_PUBLIC_EXPORT_PATH) { + return (/epoc32/include/app/$$1) +} + +# --------------------------------------- +# Location, where the applications layer specific platform headers are exported +# --------------------------------------- + +defineReplace(APP_LAYER_DOMAIN_EXPORT_PATH) { + return (/epoc32/include/platform/app/$$1) +} +defineReplace(APP_LAYER_PLATFORM_EXPORT_PATH) { + return (/epoc32/include/platform/app/$$1) +} + +# --------------------------------------- +# Location, where the middleware layer specific public headers are exported +# --------------------------------------- + +defineReplace(MW_LAYER_SDK_EXPORT_PATH) { + return (/epoc32/include/mw/$$1) +} +defineReplace(MW_LAYER_PUBLIC_EXPORT_PATH) { + return (/epoc32/include/mw/$$1) +} + +# --------------------------------------- +# Location, where the middleware layer specific platform headers are exported +# --------------------------------------- + +defineReplace(MW_LAYER_DOMAIN_EXPORT_PATH) { + return (/epoc32/include/platform/mw/$$1) +} +defineReplace(MW_LAYER_PLATFORM_EXPORT_PATH) { + return (/epoc32/include/platform/mw/$$1) +} + +# --------------------------------------- +# Location, where the os layer specific public headers are exported +# --------------------------------------- + +defineReplace(OSEXT_LAYER_SDK_EXPORT_PATH) { + return (/epoc32/include/$$1) +} +# WARNING: If the following path changes see the exists() function around line 219 +defineReplace(OS_LAYER_PUBLIC_EXPORT_PATH) { + return (/epoc32/include/$$1) +} + +# --------------------------------------- +# Location, where the os specific platform headers are exported +# --------------------------------------- + +defineReplace(OSEXT_LAYER_DOMAIN_EXPORT_PATH) { + return (/epoc32/include/platform/$$1) +} +defineReplace(OS_LAYER_PLATFORM_EXPORT_PATH) { + return (/epoc32/include/platform/$$1) +} + +# --------------------------------------- +# General comments about the 3 define statements related to include paths: +# 1) the /epoc32/include/oem is now defined there for backward compability. +# Once the directory is empty, the directory will be removed. However this +# enables us to ensure that if you use these define statements => you do +# not have to remove the statements later on, when the directory no longer +# exists. +# 2) These statements should be enough in normal cases. For certain specific +# cases you might need to add some specific directory from /epoc32/include +# (for instance /epoc32/include/ecom). +# In normal cases the include staments in code should be relative to one of +# the system include paths, but in certain cases, the included files requires +# that the subdirectory is also part of the system include paths. +# --------------------------------------- + +# This variable defines the include paths, which are intended to be +# used in the pro-files that are part of the applications-layer. It includes all +# the needed directories from the /epoc32/include, that are valid ones for the +# application-layer components. +# +# Applications layer is the last one in the list, since most likely the most of +# the headers come from middleware or os-layer => thus they are first. + +APP_LAYER_SYSTEMINCLUDE = \ + /epoc32/include \ + /epoc32/include/mw \ + /epoc32/include/platform/mw \ + /epoc32/include/platform \ + /epoc32/include/app \ + /epoc32/include/platform/app \ + /epoc32/include/platform/loc \ + /epoc32/include/platform/mw/loc \ + /epoc32/include/platform/app/loc \ + /epoc32/include/platform/loc/sc \ + /epoc32/include/platform/mw/loc/sc \ + /epoc32/include/platform/app/loc/sc + +# This define statements defines the include paths, which are intended to be +# used in the pro-files that are part of the middleware-layer. It includes all +# the needed directories from the /epoc32/include, that are valid ones for the +# middleware-layer components. + +MW_LAYER_SYSTEMINCLUDE = \ + /epoc32/include \ + /epoc32/include/mw \ + /epoc32/include/platform/mw \ + /epoc32/include/platform \ + /epoc32/include/platform/loc \ + /epoc32/include/platform/mw/loc \ + /epoc32/include/platform/loc/sc \ + /epoc32/include/platform/mw/loc/sc + +# This define statements defines the include paths, which are intended to be +# used in the pro-files that are part of the osextensions-layer. It includes all +# the needed directories from the /epoc32/include, that are valid ones for the +# os-layer components. + +OS_LAYER_SYSTEMINCLUDE = \ + /epoc32/include \ + /epoc32/include/platform \ + /epoc32/include/platform/loc \ + /epoc32/include/platform/loc/sc + +# This define statements defines the include paths, which are intended to be +# used in the pro-files that are part of the os-layer. This is intended +# to be only used by those components which need to use in their mmp-file either +# kern_ext.mmh or nkern_ext.mmh. Reason is that those +# 2 files already contain the /epoc32/include as system include path. + +OS_LAYER_KERNEL_SYSTEMINCLUDE = \ + /epoc32/include/platform + + +# --------------------------------------- +# Definitions that also define the systeminclude paths for various +# part of stdapis. Append to INCLUDEPATH in pro-file. +# --------------------------------------- + +OS_LAYER_LIBC_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis) \ + $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/sys) + +OS_LAYER_GLIB_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0) \ + $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/glib) \ + $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/gObject) + +OS_LAYER_SSL_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/openssl) + +# stlportv5 is preferred over stlport as it has the throwing version of operator new +exists($${EPOCROOT}epoc32/include/stdapis/stlport) \ +:!exists($${EPOCROOT}epoc32/include/stdapis/stlportv5) { + OS_LAYER_STDCPP_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlport) +} else { + OS_LAYER_STDCPP_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5) +} + +OS_LAYER_BOOST_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/boost) + +OS_LAYER_DBUS_SYSTEMINCLUDE = $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0) \ + $$OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0/dbus) + +OS_LAYER_LIBUTILITY_SYSTEMINCLUDE = $$OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/utility) + +# --------------------------------------- +# Definitions to export IBY files to different folders where they will be taken +# to ROM image +# --------------------------------------- + +defineReplace(CORE_APP_LAYER_IBY_EXPORT_PATH) { + return(/epoc32/rom/include/core/app/$$1) +} +defineReplace(CORE_MW_LAYER_IBY_EXPORT_PATH) { + return(/epoc32/rom/include/core/mw/$$1) +} +defineReplace(CORE_OSEXT_LAYER_IBY_EXPORT_PATH) { + return(/epoc32/rom/include/core/os/$$1) +} +defineReplace(CORE_OS_LAYER_IBY_EXPORT_PATH) { + return(/epoc32/rom/include/core/os/$$1) +} +defineReplace(CORE_TOOLS_LAYER_IBY_EXPORT_PATH) { + return(/epoc32/rom/include/core/tools/$$1) +} +defineReplace(CORE_ADAPT_LAYER_IBY_EXPORT_PATH) { + return(/epoc32/rom/include/$$1) +} +defineReplace(CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH) { + return(/epoc32/rom/include/customervariant/app/$$1) +} + +# You need to define the following in pro-file, if you are using the stllib: +# QMAKE_CXXFLAGS.CW *= $$STLLIB_USAGE_CW_FLAGS +# DEFINES *= $$STLLIB_USAGE_DEFINES +STLLIB_USAGE_CW_FLAGS = "-wchar_t on" +STLLIB_USAGE_DEFINES = _WCHAR_T_DECLARED + diff --git a/config.profiles/symbian/qt.conf b/config.profiles/symbian/qt.conf new file mode 100644 index 0000000..29dfa88 --- /dev/null +++ b/config.profiles/symbian/qt.conf @@ -0,0 +1,6 @@ +[Paths] +Data = $(EPOCROOT)epoc32/tools/qt +Headers = $(EPOCROOT)epoc32/include/mw +Binaries = $(EPOCROOT)epoc32/tools +Prefix = $(EPOCROOT)sf/mw/qt + diff --git a/config.profiles/symbian/qt.iby b/config.profiles/symbian/qt.iby new file mode 100644 index 0000000..2b3be0a --- /dev/null +++ b/config.profiles/symbian/qt.iby @@ -0,0 +1,118 @@ +#ifndef QT_IBY +#define QT_IBY + +#include + +#warning("qt.iby: hack - BINARY_SELECTION_ORDER really needs to be at the baseport/device level as it depends on the device type"); +BINARY_SELECTION_ORDER ARMV6,ARMV5 // hack - this really needs to be at the baseport/device level as it depends on the device type + +file=ABI_DIR\BUILD_DIR\QtCore.dll SHARED_LIB_DIR\QtCore.dll +file=ABI_DIR\BUILD_DIR\QtGui.dll SHARED_LIB_DIR\QtGui.dll +file=ABI_DIR\BUILD_DIR\QtOpenVG.dll SHARED_LIB_DIR\QtOpenVG.dll +file=ABI_DIR\BUILD_DIR\QtSvg.dll SHARED_LIB_DIR\QtSvg.dll +file=ABI_DIR\BUILD_DIR\QtSql.dll SHARED_LIB_DIR\QtSql.dll +file=ABI_DIR\BUILD_DIR\QtXml.dll SHARED_LIB_DIR\QtXml.dll +file=ABI_DIR\BUILD_DIR\QtNetwork.dll SHARED_LIB_DIR\QtNetwork.dll +file=ABI_DIR\BUILD_DIR\QtScript.dll SHARED_LIB_DIR\QtScript.dll +file=ABI_DIR\BUILD_DIR\QtTest.dll SHARED_LIB_DIR\QtTest.dll +file=ABI_DIR\BUILD_DIR\QtWebKit.dll SHARED_LIB_DIR\QtWebKit.dll +file=ABI_DIR\BUILD_DIR\phonon.dll SHARED_LIB_DIR\phonon.dll +file=ABI_DIR\BUILD_DIR\QtMultimedia.dll SHARED_LIB_DIR\QtMultimedia.dll +file=ABI_DIR\BUILD_DIR\QtXmlPatterns.dll SHARED_LIB_DIR\QtXmlPatterns.dll +file=ABI_DIR\BUILD_DIR\QtDeclarative.dll SHARED_LIB_DIR\QtDeclarative.dll +file=ABI_DIR\BUILD_DIR\QtOpenGL.dll SHARED_LIB_DIR\QtOpenGL.dll + +// imageformats +file=ABI_DIR\BUILD_DIR\qgif.dll SHARED_LIB_DIR\qgif.dll +file=ABI_DIR\BUILD_DIR\qico.dll SHARED_LIB_DIR\qico.dll +file=ABI_DIR\BUILD_DIR\qjpeg.dll SHARED_LIB_DIR\qjpeg.dll +file=ABI_DIR\BUILD_DIR\qmng.dll SHARED_LIB_DIR\qmng.dll +file=ABI_DIR\BUILD_DIR\qsvg.dll SHARED_LIB_DIR\qsvg.dll +file=ABI_DIR\BUILD_DIR\qtiff.dll SHARED_LIB_DIR\qtiff.dll + +// codecs +file=ABI_DIR\BUILD_DIR\qcncodecs.dll SHARED_LIB_DIR\qcncodecs.dll +file=ABI_DIR\BUILD_DIR\qjpcodecs.dll SHARED_LIB_DIR\qjpcodecs.dll +file=ABI_DIR\BUILD_DIR\qkrcodecs.dll SHARED_LIB_DIR\qkrcodecs.dll +file=ABI_DIR\BUILD_DIR\qtwcodecs.dll SHARED_LIB_DIR\qtwcodecs.dll + +// iconengines +file=ABI_DIR\BUILD_DIR\qsvgicon.dll SHARED_LIB_DIR\qsvgicon.dll + +// Phonon MMF backend +// This is commented out by default, as normally Helix backend will be used. +// If the Helix backend is present, it will override MMF backend, so make sure to remove it from +// image creation in addition to uncommenting the following lines if you want to use MMF backend. +//file=ABI_DIR\BUILD_DIR\phonon_mmf.dll SHARED_LIB_DIR\phonon_mmf.dll +//data=\epoc32\data\z\resource\qt\plugins\phonon_backend\phonon_mmf.qtplugin resource\qt\plugins\phonon_backend\phonon_mmf.qtplugin + +// QtMultimedia audio backend +file=ABI_DIR\BUILD_DIR\qaudio.dll SHARED_LIB_DIR\qaudio.dll + +// graphicssystems +file=ABI_DIR\BUILD_DIR\qvggraphicssystem.dll SHARED_LIB_DIR\qvggraphicssystem.dll +file=ABI_DIR\BUILD_DIR\qglgraphicssystem.dll SHARED_LIB_DIR\qglgraphicssystem.dll + +// bearer +file=ABI_DIR\BUILD_DIR\qsymbianbearer.dll SHARED_LIB_DIR\qsymbianbearer.dll + +// S60 version compatibility plugins for 5.0 (3.1 and 3.2 devices are never likely to have this in ROM, +// so don't bother including those plugins +file=ABI_DIR\BUILD_DIR\qts60plugin_5_0.dll SHARED_LIB_DIR\qts60plugin_5_0.dll + +file=ABI_DIR\BUILD_DIR\qtactilefeedback.dll SHARED_LIB_DIR\qtactilefeedback.dll + +S60_APP_RESOURCE(s60main) + +// imageformats stubs +data=\epoc32\data\z\resource\qt\plugins\imageformats\qgif.qtplugin resource\qt\plugins\imageformats\qgif.qtplugin +data=\epoc32\data\z\resource\qt\plugins\imageformats\qico.qtplugin resource\qt\plugins\imageformats\qico.qtplugin +data=\epoc32\data\z\resource\qt\plugins\imageformats\qjpeg.qtplugin resource\qt\plugins\imageformats\qjpeg.qtplugin +data=\epoc32\data\z\resource\qt\plugins\imageformats\qmng.qtplugin resource\qt\plugins\imageformats\qmng.qtplugin +data=\epoc32\data\z\resource\qt\plugins\imageformats\qsvg.qtplugin resource\qt\plugins\imageformats\qsvg.qtplugin +data=\epoc32\data\z\resource\qt\plugins\imageformats\qtiff.qtplugin resource\qt\plugins\imageformats\qtiff.qtplugin + +// codecs stubs +data=\epoc32\data\z\resource\qt\plugins\codecs\qcncodecs.qtplugin resource\qt\plugins\codecs\qcncodecs.qtplugin +data=\epoc32\data\z\resource\qt\plugins\codecs\qjpcodecs.qtplugin resource\qt\plugins\codecs\qjpcodecs.qtplugin +data=\epoc32\data\z\resource\qt\plugins\codecs\qkrcodecs.qtplugin resource\qt\plugins\codecs\qkrcodecs.qtplugin +data=\epoc32\data\z\resource\qt\plugins\codecs\qtwcodecs.qtplugin resource\qt\plugins\codecs\qtwcodecs.qtplugin + +// iconengines stubs +data=\epoc32\data\z\resource\qt\plugins\iconengines\qsvgicon.qtplugin resource\qt\plugins\iconengines\qsvgicon.qtplugin + +// qml import plugins +file=ABI_DIR\BUILD_DIR\qmlwebkitplugin.dll SHARED_LIB_DIR\qmlwebkitplugin.dll +file=ABI_DIR\BUILD_DIR\qmlfolderlistmodelplugin.dll SHARED_LIB_DIR\qmlfolderlistmodelplugin.dll +file=ABI_DIR\BUILD_DIR\qmlgesturesplugin.dll SHARED_LIB_DIR\qmlgesturesplugin.dll +file=ABI_DIR\BUILD_DIR\qmlparticlesplugin.dll SHARED_LIB_DIR\qmlparticlesplugin.dll + +data=\epoc32\data\z\resource\qt\imports\QtWebKit\qmlwebkitplugin.qtplugin resource\qt\imports\QtWebKit\qmlwebkitplugin.qtplugin +data=\epoc32\data\z\resource\qt\imports\Qt\labs\folderlistmodel\qmlfolderlistmodelplugin.qtplugin resource\qt\imports\Qt\labs\folderlistmodel\qmlfolderlistmodelplugin.qtplugin +data=\epoc32\data\z\resource\qt\imports\Qt\labs\gestures\qmlgesturesplugin.qtplugin resource\qt\imports\Qt\labs\gestures\qmlgesturesplugin.qtplugin +data=\epoc32\data\z\resource\qt\imports\Qt\labs\particles\qmlparticlesplugin.qtplugin resource\qt\imports\Qt\labs\particles\qmlparticlesplugin.qtplugin + +data=\epoc32\data\z\resource\qt\imports\QtWebKit\qmldir resource\qt\imports\QtWebKit\qmldir +data=\epoc32\data\z\resource\qt\imports\Qt\labs\folderlistmodel\qmldir resource\qt\imports\Qt\labs\folderlistmodel\qmldir +data=\epoc32\data\z\resource\qt\imports\Qt\labs\gestures\qmldir resource\qt\imports\Qt\labs\gestures\qmldir +data=\epoc32\data\z\resource\qt\imports\Qt\labs\particles\qmldir resource\qt\imports\Qt\labs\particles\qmldir + +// QtMultimedia audio backend +data=\epoc32\data\qt\qtlibspluginstubs\qaudio.qtplugin resource\qt\plugins\audio\qaudio.qtplugin + +// graphicssystems +data=\epoc32\data\z\resource\qt\plugins\graphicssystems\qvggraphicssystem.qtplugin resource\qt\plugins\graphicssystems\qvggraphicssystem.qtplugin +data=\epoc32\data\z\resource\qt\plugins\graphicssystems\qglgraphicssystem.qtplugin resource\qt\plugins\graphicssystems\qglgraphicssystem.qtplugin + +// bearer stub +data=\epoc32\data\z\resource\qt\plugins\bearer\qsymbianbearer.qtplugin resource\qt\plugins\bearer\qsymbianbearer.qtplugin + +// feedback +data=\epoc32\data\z\resource\qt\plugins\feedback\qtactilefeedback.qtplugin resource\qt\plugins\feedback\qtactilefeedback.qtplugin + +// Stub sis file +data=ZSYSTEM\install\qt_stub.sis System\Install\qt_stub.sis +data=ZSYSTEM\install\qtwebkit_stub.sis System\Install\qtwebkit_stub.sis + +#endif // __QT_IBY__ + diff --git a/config.profiles/symbian/qtconfig.flm b/config.profiles/symbian/qtconfig.flm new file mode 100644 index 0000000..61ee6e6 --- /dev/null +++ b/config.profiles/symbian/qtconfig.flm @@ -0,0 +1,88 @@ +# /**************************************************************************** +# ** +# ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +# ** Contact: +# ** +# ****************************************************************************/ + +# FLM to build Qt tools. + +QT_ROOT:= ../.. +TARGETDIR:=$(EPOCROOT)/$(INSTALLPATH) +MKSPECDIR:=$(EPOCROOT)/$(INSTALLPATH)/qt +SOURCEDIR:=$(EXTENSION_ROOT)/$(QT_ROOT)/bin +TOOLSSRCDIR:=$(EXTENSION_ROOT)/$(QT_ROOT)/src/tools +LANGUAGETOOLDIR:=$(EXTENSION_ROOT)/$(QT_ROOT)/tools/linguist +CONFIGURE_APP:=configure$(DOTEXE) + +$(call makepath,$(TARGETDIR)) + +ifneq ($(filter linux,$(HOSTPLATFORM)),) +PLATFORM:=$(PLATFORM.LINUX) +else +PLATFORM:=$(PLATFORM.WIN32) +endif + +TARGET_TOOLS:=$(TARGETDIR)/qmake$(DOTEXE) $(TARGETDIR)/moc$(DOTEXE) $(TARGETDIR)/rcc$(DOTEXE) $(TARGETDIR)/uic$(DOTEXE) $(TARGETDIR)/lrelease$(DOTEXE) +QT_TOOLS:= $(TOOLSSRCDIR)/uic $(TOOLSSRCDIR)/moc $(TOOLSSRCDIR)/rcc $(LANGUAGETOOLDIR)/lrelease +SOURCE_TOOLS:=$(SOURCEDIR)/qmake$(DOTEXE) $(SOURCEDIR)/moc$(DOTEXE) $(SOURCEDIR)/rcc$(DOTEXE) $(SOURCEDIR)/uic$(DOTEXE) $(SOURCEDIR)/lrelease$(DOTEXE) + +define QtConfiguration +ifneq ($(filter linux,$(HOSTPLATFORM)),) +$(TARGET_TOOLS): $(QT_TOOLS) +else +$(TARGET_TOOLS): $(SOURCEDIR)/qmake$(DOTEXE) +endif + $(call startrule,qtconf_deploy) \ + $(GNUCP) $(SOURCEDIR)/$$(notdir $$@) $$@ \ + $(call endrule,qtconf_deploy) + +ifneq ($(filter linux,$(HOSTPLATFORM)),) +$(QT_TOOLS): $(TOOLSSRCDIR)/bootstrap + $(call startrule,qtconf_tools_build) \ + cd $$@; \ + $(GNUMAKE38); \ + cd .. \ + $(call endrule,qtconf_tools_build) + +$(TOOLSSRCDIR)/bootstrap:$(SOURCEDIR)/qmake$(DOTEXE) + $(call startrule,qtconf_bootstrap_build) \ + cd $(TOOLSSRCDIR)/bootstrap; \ + $(GNUMAKE38); \ + cd .. \ + $(call endrule,qtconf_bootstrap_build) +endif + + +$(SOURCEDIR)/qmake$(DOTEXE): $(EXTENSION_ROOT)/$(QT_ROOT)/$(CONFIGURE_APP) + $(call startrule,qtconf) \ + cd $(EXTENSION_ROOT)/$(QT_ROOT) && unset INCLUDE && unset LIB && $(EXTENSION_ROOT)/$(QT_ROOT)/$(CONFIGURE_APP) -platform $(PLATFORM) -xplatform $(XPLATFORM) $(OPTIONS) \ + $(call endrule,qtconf) + $(call startrule,headerexport) \ + cd $(EXTENSION_ROOT)/$(QT_ROOT)/config.profiles/symbian && \ + perl headerexport -base-dir $(EXTENSION_ROOT)/$(QT_ROOT) -copy -oneway -outdir $(EPOCROOT)/epoc32/include/ -outsubdir mw + $(call endrule,headerexport) + $(call startrule,mkspecexport) \ + $(GNUCP) -R $(EXTENSION_ROOT)/$(QT_ROOT)/mkspecs $(MKSPECDIR) + $(call endrule,mkspecexport) +endef + +# Here a variable named "done_" gets created +GUARD:=done_$(call sanitise,$(TARGETDIR)/qmake$(DOTEXE)) +# If variable "done_..." not set, set it to 1, so that +# UREL and UDEB do not execute makesis twice on the same target +ifeq ($($(GUARD)),) +$(GUARD):=1 +ifneq ($(filter linux,$(HOSTPLATFORM)),) +EXPORT:: $(QT_TOOLS) $(TARGET_TOOLS) +else +EXPORT:: $(TARGET_TOOLS) +endif +$(eval $(call QtConfiguration)) +$(eval $(call whatmacro,$(TARGET_TOOLS))) +ifeq ($(OSTYPE),unix) +$(eval $(call GenerateStandardCleanTarget,$(QT_TOOLS) $(TARGET_TOOLS) $(SOURCE_TOOLS),$(TARGETDIR))) +else +$(eval $(call GenerateStandardCleanTarget,$(TARGET_TOOLS) $(SOURCE_TOOLS),$(TARGETDIR))) +endif +endif diff --git a/config.profiles/symbian/qtconfig.xml b/config.profiles/symbian/qtconfig.xml new file mode 100644 index 0000000..c2244d6 --- /dev/null +++ b/config.profiles/symbian/qtconfig.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + diff --git a/config.profiles/symbian/sysdef_1_5_1.dtd b/config.profiles/symbian/sysdef_1_5_1.dtd new file mode 100644 index 0000000..2defd21 --- /dev/null +++ b/config.profiles/symbian/sysdef_1_5_1.dtd @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config.profiles/symbian/translations/qt_ar.ts b/config.profiles/symbian/translations/qt_ar.ts new file mode 100644 index 0000000..f44dc98 --- /dev/null +++ b/config.profiles/symbian/translations/qt_ar.ts @@ -0,0 +1,7821 @@ + + + + + AudioOutput + + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + + + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + + + + + Revert back to device '%1' + + + + + CloseButton + + + Close Tab + + + + + PPDOptionsModel + + Name + الإسم + + + + Phonon:: + + + Notifications + + + + + Music + + + + + Video + + + + + Communication + + + + + Games + + + + + Accessibility + + + + + Phonon::Gstreamer::Backend + + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + + + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + + + + + Phonon::Gstreamer::MediaObject + + + Cannot start playback. + +Check your Gstreamer installation and make sure you +have libgstreamer-plugins-base installed. + + + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + + + + + + + + + + + + Could not open media source. + + + + + Invalid source type. + + + + + Could not locate media source. + + + + + Could not open audio device. The device is already in use. + + + + + Could not decode media source. + + + + + Phonon::VolumeSlider + + + + Volume: %1% + + + + + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + + + + + Q3Accel + + + %1, %2 not defined + + + + + Ambiguous %1 not handled + + + + + Q3DataTable + + + True + صحيح + + + + False + خاطئ + + + + Insert + إدراج + + + + Update + تحديث + + + + Delete + حذف + + + + Q3FileDialog + + + Copy or Move a File + نسخ أو تحريك ملفّ + + + + Read: %1 + قراءة: %1 + + + + + Write: %1 + كتابة: %1 + + + + + Cancel + إلغاء + + + + + + + All Files (*) + جميع الملفّات (*) + + + + Name + الإسم + + + + Size + السّعة + + + + Type + الطّراز + + + + Date + التّاريخ + + + + Attributes + الخاصّيات + + + + + &OK + &موافقة + + + + Look &in: + بحث &في: + + + + + + File &name: + إ&سم الملفّ: + + + + File &type: + &طراز الملفّ: + + + + Back + رجوع + + + + One directory up + دليل للأعلى + + + + Create New Folder + صنع دليل جديد + + + + List View + معاينة بالقائمة + + + + Detail View + معاينة مفصّلة + + + + Preview File Info + عرض مقدّم لمعلومات الملفّ + + + + Preview File Contents + عرض مقدّم لمحتويات الملفّ + + + + Read-write + قراءة-كتابة + + + + Read-only + قراءة فقط + + + + Write-only + كتابة فقط + + + + Inaccessible + مستحيل التّوصّل إليه + + + + Symlink to File + وصل رمزي لملفّ + + + + Symlink to Directory + وصل رمزي لدليل + + + + Symlink to Special + وصل رمزي لملفّ خاصّ + + + + File + ملفّ + + + + Dir + دليل + + + + Special + ملفّ خاصّ + + + + + + Open + فتح + + + + + Save As + حفظ تحت + + + + + + &Open + &فتح + + + + + &Save + &حفظ + + + + &Rename + ت&غيير الإسم + + + + &Delete + ح&ذف + + + + R&eload + إ&عادة التّحميل + + + + Sort by &Name + فرز بال&إسم + + + + Sort by &Size + فرز بالسّ&عة + + + + Sort by &Date + فرز بالتّا&ريخ + + + + &Unsorted + غير &مفروز + + + + Sort + فرز + + + + Show &hidden files + ع&رض الملفّات المخفية + + + + the file + الملفّ + + + + the directory + الدّليل + + + + the symlink + الوصل الرّمزي + + + + Delete %1 + حذف %1 + + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + <qt>هل تريد فعلا حذف %1 "%2"؟</qt> + + + + &Yes + &نعم + + + + &No + &لا + + + + New Folder 1 + دليل جديد 1 + + + + New Folder + دليل جديد + + + + New Folder %1 + دليل جديد %1 + + + + Find Directory + إيجاد الدّليل + + + + + Directories + دلائل + + + + Directory: + دليل: + + + + + Error + خطأ + + + + %1 +File not found. +Check path and filename. + %1 +لم يتمّ إيجاد الملفّ. +تحقّق من المسار و إسم الملفّ. + + + + All Files (*.*) + جميع الملفّات (*.*) + + + + Open + فتح + + + + Select a Directory + انتقاء دليل + + + + Q3LocalFs + + + + Could not read directory +%1 + لم أستطع قراءة الدّليل +%1 + + + + Could not create directory +%1 + لم أستطع صنع الدّليل +%1 + + + + Could not remove file or directory +%1 + لم أستطع نزع الملفّ أو الدّليل +%1 + + + + Could not rename +%1 +to +%2 + لم أستطع إعادة تسمية +%1 +إلى +%2 + + + + Could not open +%1 + لم أستطع فتح +%1 + + + + Could not write +%1 + لم أستطع كتابة +%1 + + + + Q3MainWindow + + + Line up + تصفيف + + + + Customize... + تخصيص... + + + + Q3NetworkProtocol + + + Operation stopped by the user + أوقفت العمليّة من طرف المستعمل + + + + Q3ProgressDialog + + + + Cancel + إلغاء + + + + Q3TabDialog + + + + OK + موافقة + + + + Apply + تطبيق + + + + Help + مساعدة + + + + Defaults + افتراضيات + + + + Cancel + إلغاء + + + + Q3TextEdit + + + &Undo + &تراجع + + + + &Redo + إ&عادة + + + + Cu&t + &قصّ + + + + &Copy + &نسخ + + + + &Paste + ت&لصيق + + + + Clear + محو + + + + + Select All + انتقاء الجميع + + + + Q3TitleBar + + + System + + + + + Restore up + + + + + Minimize + تصغير + + + + Restore down + + + + + Maximize + تكبير + + + + Close + إغلاق + + + + Contains commands to manipulate the window + + + + + Puts a minimized back to normal + + + + + Moves the window out of the way + + + + + Puts a maximized window back to normal + + + + + Makes the window full screen + + + + + Closes the window + + + + + Displays the name of the window and contains controls to manipulate it + + + + + Q3ToolBar + + + More... + أكثر... + + + + Q3UrlOperator + + + + + The protocol `%1' is not supported + المراسم '%1' غير مدعومة + + + + The protocol `%1' does not support listing directories + المراسم '%1' لا تدعم وضع قوائم الدّلائل + + + + The protocol `%1' does not support creating new directories + المراسم '%1' لا تدعم صنع دلائل جديدة + + + + The protocol `%1' does not support removing files or directories + المراسم '%1' لا تدعم نزع الملفّات أو الدّلائل + + + + The protocol `%1' does not support renaming files or directories + المراسم '%1' لا تدعم إعادة تسمية الملفّات أو الدّلائل + + + + The protocol `%1' does not support getting files + المراسم '%1' لا تدعم استخلاص الملفّات + + + + The protocol `%1' does not support putting files + المراسم '%1' لا تدعم وضع الملفّات + + + + + The protocol `%1' does not support copying or moving files or directories + المراسم '%1' لا تدعم نسخ أو تحريك الملفّات أو الدّلائل + + + + + (unknown) + (مجهول) + + + + Q3Wizard + + + &Cancel + &إلغاء + + + + < &Back + < &رجوع + + + + &Next > + ال&تّالي > + + + + &Finish + إ&نهاء + + + + &Help + &مساعدة + + + + QAbstractSocket + + + + + + Host not found + + + + + + + Connection refused + رفض الوصل + + + + Connection timed out + + + + + + + Operation on socket is not supported + + + + + Socket operation timed out + + + + + Socket is not connected + + + + + Network unreachable + + + + + QAbstractSpinBox + + + &Step up + + + + + Step &down + + + + + &Select All + + + + + QApplication + + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + RTL + + + + Executable '%1' requires Qt %2, found Qt %3. + البرنامج '%1' يتطلّب Qt %2، تمّ إيجاد Qt %3. + + + + Incompatible Qt Library Error + خطأ: مكتبة Qt غير موافقة + + + + Activate + + + + + Activates the program's main window + + + + + QAxSelect + + + Select ActiveX Control + + + + + OK + موافقة + + + + &Cancel + &إلغاء + + + + COM &Object: + + + + + QCheckBox + + + Uncheck + + + + + Check + + + + + Toggle + + + + + QColorDialog + + + Hu&e: + ال&صّبغة: + + + + &Sat: + التّ&شبّع: + + + + &Val: + ال&قيمة: + + + + &Red: + أ&حمر: + + + + &Green: + أ&خضر: + + + + Bl&ue: + أ&زرق: + + + + A&lpha channel: + قناة أ&لفا: + + + + Select Color + + + + + &Basic colors + الألوان القا&عديّة + + + + &Custom colors + الأل&وان المخصّصة + + + &Define Custom Colors >> + تع&ريف الألوان المخصّصة >> + + + OK + موافقة + + + Cancel + إلغاء + + + + &Add to Custom Colors + الإ&ضافة إلى الألوان المخصّصة + + + Select color + إنتقاء اللّون + + + + QComboBox + + + + Open + فتح + + + + False + خاطئ + + + + True + صحيح + + + + Close + إغلاق + + + + QCoreApplication + + + %1: key is empty + QSystemSemaphore + + + + + %1: unable to make key + QSystemSemaphore + + + + + %1: ftok failed + QSystemSemaphore + + + + + QDB2Driver + + + Unable to connect + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + Unable to set autocommit + + + + + QDB2Result + + + + Unable to execute statement + + + + + Unable to prepare statement + + + + + Unable to bind variable + + + + + Unable to fetch record %1 + + + + + Unable to fetch next + + + + + Unable to fetch first + + + + + QDateTimeEdit + + + AM + + + + + am + + + + + PM + + + + + pm + + + + + QDial + + + QDial + + + + + SpeedoMeter + + + + + SliderHandle + + + + + QDialog + + + What's This? + ما هذا؟ + + + + Done + + + + + QDialogButtonBox + + + + + OK + موافقة + + + + Save + حفظ + + + + &Save + &حفظ + + + + Open + فتح + + + + Cancel + إلغاء + + + + &Cancel + &إلغاء + + + + Close + إغلاق + + + + &Close + إ&غلاق + + + + Apply + تطبيق + + + + Reset + + + + + Help + مساعدة + + + + Don't Save + + + + + Discard + + + + + &Yes + &نعم + + + + Yes to &All + + + + + &No + &لا + + + + N&o to All + + + + + Save All + + + + + Abort + + + + + Retry + + + + + Ignore + + + + + Restore Defaults + + + + + Close without Saving + + + + + &OK + &موافقة + + + + QDirModel + + + Name + الإسم + + + + Size + السّعة + + + + Kind + Match OS X Finder + + + + + Type + All other platforms + الطّراز + + + + Date Modified + + + + + QDockWidget + + + Close + إغلاق + + + + Dock + + + + + Float + + + + + QDoubleSpinBox + + + More + + + + + Less + + + + + QErrorMessage + + + &Show this message again + أ&عرض مجدّداهذاالبلاغ + + + + &OK + &موافقة + + + + Debug Message: + بلاغ تصحيح الأخطاء: + + + + Warning: + إنذار: + + + + Fatal Error: + خطأ قاتل: + + + + QFile + + + + Destination file exists + + + + + Cannot remove source file + + + + + Cannot open %1 for input + + + + + Cannot open for output + + + + + Failure to write block + + + + + Cannot create %1 for output + + + + + QFileDialog + + + + All Files (*) + جميع الملفّات (*) + + + + + Back + رجوع + + + + + List View + معاينة بالقائمة + + + + + Detail View + معاينة مفصّلة + + + + + File + ملفّ + + + + Open + فتح + + + + Save As + حفظ تحت + + + + + + + &Open + &فتح + + + + + &Save + &حفظ + + + + Recent Places + + + + + &Rename + ت&غيير الإسم + + + + &Delete + ح&ذف + + + + Show &hidden files + ع&رض الملفّات المخفية + + + + New Folder + دليل جديد + + + + Find Directory + إيجاد الدّليل + + + + Directories + دلائل + + + + All Files (*.*) + جميع الملفّات (*.*) + + + + + Directory: + دليل: + + + + %1 already exists. +Do you want to replace it? + + + + + %1 +File not found. +Please verify the correct file name was given. + + + + + My Computer + + + + + + Parent Directory + + + + + + Files of type: + + + + + + %1 +Directory not found. +Please verify the correct directory name was given. + + + + + '%1' is write protected. +Do you want to delete it anyway? + + + + + Are sure you want to delete '%1'? + + + + + Could not delete directory. + + + + + Drive + + + + + Unknown + + + + + Show + + + + + + Forward + للأمام + + + + &New Folder + + + + + + &Choose + + + + + Remove + + + + + + File &name: + إ&سم الملفّ: + + + + + Look in: + + + + + + Create New Folder + صنع دليل جديد + + + + QFileSystemModel + + + %1 TB + + + + + %1 GB + + + + + %1 MB + + + + + %1 KB + + + + + %1 bytes + + + + + Invalid filename + + + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + + + + + Name + الإسم + + + + Size + السّعة + + + + Kind + Match OS X Finder + + + + + Type + All other platforms + الطّراز + + + + Date Modified + + + + + My Computer + + + + + Computer + + + + + QFontDatabase + + + + Normal + + + + + + + Bold + + + + + + Demi Bold + + + + + + + Black + + + + + Demi + + + + + + Light + + + + + + Italic + + + + + + Oblique + + + + + Any + + + + + Latin + + + + + Greek + + + + + Cyrillic + + + + + Armenian + + + + + Hebrew + + + + + Arabic + + + + + Syriac + + + + + Thaana + + + + + Devanagari + + + + + Bengali + + + + + Gurmukhi + + + + + Gujarati + + + + + Oriya + + + + + Tamil + + + + + Telugu + + + + + Kannada + + + + + Malayalam + + + + + Sinhala + + + + + Thai + + + + + Lao + + + + + Tibetan + + + + + Myanmar + + + + + Georgian + + + + + Khmer + + + + + Simplified Chinese + + + + + Traditional Chinese + + + + + Japanese + + + + + Korean + + + + + Vietnamese + + + + + Symbol + + + + + Ogham + + + + + Runic + + + + + QFontDialog + + + &Font + ال&خطّ + + + + Font st&yle + &طراز الخطّ + + + + &Size + ال&حجم + + + + Effects + تأثيرات + + + + Stri&keout + ت&شطيب + + + + &Underline + ت&سطير + + + + Sample + عيّنة + + + + + Select Font + انتقاء الخطّ + + + + Wr&iting System + + + + + QFtp + + + Host %1 found + تمّ إيجاد المضيف %1 + + + + Host found + تمّ إيجاد المضيف + + + + + + Connected to host %1 + تمّ وصل المضيف %1 + + + + Connected to host + تمّ وصل المضيف + + + + Connection to %1 closed + تمّ إغلاق الوصل بالمضيف %1 + + + + + + Connection closed + وصل مغلق + + + + + Host %1 not found + لم يتمّ إيجاد المضيف %1 + + + + + Connection refused to host %1 + رفض الوصل بالمضيف %1 + + + + Connection timed out to host %1 + + + + + + + + Unknown error + خطأ مجهول + + + + + Connecting to host failed: +%1 + فشل وصل المضيف: +%1 + + + + + Login failed: +%1 + فشل التّسجيل: +%1 + + + + + Listing directory failed: +%1 + فشلت عمليّة وضع قائمة للدّليل: +%1 + + + + + Changing directory failed: +%1 + فشلت عمليّة تغيير الدّليل: +%1 + + + + + Downloading file failed: +%1 + فشلت عمليّة تحميل الملفّ: +%1 + + + + + Uploading file failed: +%1 + فشلت عمليّة تحميل (بعث) الملفّ: +%1 + + + + + Removing file failed: +%1 + فشلت عمليّة نزع الملفّ: +%1 + + + + + Creating directory failed: +%1 + فشلت عمليّة صنع الدّليل: +%1 + + + + + Removing directory failed: +%1 + فشلت عمليّة نزع الدّليل: +%1 + + + + + Not connected + غير متصّل + + + + + Connection refused for data connection + رفض وصل المعطيات + + + + QHostInfo + + + Unknown error + خطأ مجهول + + + + QHostInfoAgent + + + + + + + + + + Host not found + + + + + + + + Unknown address type + + + + + + + Unknown error + خطأ مجهول + + + + QHttp + + + + Connection refused + رفض الوصل + + + + + + Host %1 not found + لم يتمّ إيجاد المضيف %1 + + + + + Wrong content length + طول المحتوى خاطئ + + + + HTTPS connection requested but SSL support not compiled in + + + + + + + + HTTP request failed + فشل طلب الHTTP + + + + Host %1 found + تمّ إيجاد المضيف %1 + + + + Host found + تمّ إيجاد المضيف + + + + Connected to host %1 + تمّ وصل المضيف %1 + + + + Connected to host + تمّ وصل المضيف + + + + Connection to %1 closed + تمّ إغلاق الوصل بالمضيف %1 + + + + + Connection closed + وصل مغلق + + + + + + + Unknown error + خطأ مجهول + + + + + Request aborted + تمّ إبطال الطّلب + + + + + No server set to connect to + ليس هناك أيّ خادم للوصل + + + + + Server closed connection unexpectedly + الخادم أغلق الوصل بصفة غير متوقّعة + + + + + Invalid HTTP response header + صديرة استجابة الHTTP غير صالحة + + + + Unknown authentication method + + + + + + + + Invalid HTTP chunked body + مقطع HTTP غير صالح + + + + Error writing response to device + + + + + Proxy authentication required + + + + + Authentication required + + + + + Connection refused (or timed out) + + + + + Proxy requires authentication + + + + + Host requires authentication + + + + + Data corrupted + + + + + Unknown protocol specified + + + + + SSL handshake failed + + + + + QHttpSocketEngine + + + Did not receive HTTP response from proxy + + + + + Error parsing authentication request from proxy + + + + + Authentication required + + + + + Proxy denied connection + + + + + Error communicating with HTTP proxy + + + + + Proxy server not found + + + + + Proxy connection refused + + + + + Proxy server connection timed out + + + + + Proxy connection closed prematurely + + + + + QIBaseDriver + + + Error opening database + + + + + Could not start transaction + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + QIBaseResult + + + Unable to create BLOB + + + + + Unable to write BLOB + + + + + Unable to open BLOB + + + + + Unable to read BLOB + + + + + + Could not find array + + + + + Could not get array data + + + + + Could not get query info + + + + + Could not start transaction + + + + + Unable to commit transaction + + + + + Could not allocate statement + + + + + Could not prepare statement + + + + + + Could not describe input statement + + + + + Could not describe statement + + + + + Unable to close statement + + + + + Unable to execute query + + + + + Could not fetch next item + + + + + Could not get statement info + + + + + QIODevice + + + Permission denied + + + + + Too many open files + + + + + No such file or directory + + + + + No space left on device + + + + + Unknown error + خطأ مجهول + + + + QInputContext + + + XIM + + + + + XIM input method + + + + + Windows input method + + + + + Mac OS X input method + + + + + QInputDialog + + + Enter a value: + + + + + QLibrary + + + Could not mmap '%1': %2 + + + + + Plugin verification data mismatch in '%1' + + + + + Could not unmap '%1': %2 + + + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + + + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + + + + + Unknown error + خطأ مجهول + + + + + The shared library was not found. + + + + + The file '%1' is not a valid Qt plugin. + + + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + + + + + + Cannot load library %1: %2 + + + + + + Cannot unload library %1: %2 + + + + + + Cannot resolve symbol "%1" in %2: %3 + + + + + QLineEdit + + + &Undo + &تراجع + + + + &Redo + إ&عادة + + + + Cu&t + &قصّ + + + + &Copy + &نسخ + + + + &Paste + ت&لصيق + + + + Select All + انتقاء الجميع + + + + Delete + حذف + + + + QLocalServer + + + + %1: Name error + + + + + %1: Permission denied + + + + + %1: Address in use + + + + + + %1: Unknown error %2 + + + + + QLocalSocket + + + + %1: Connection refused + + + + + + %1: Remote closed + + + + + + + + %1: Invalid name + + + + + + %1: Socket access error + + + + + + %1: Socket resource error + + + + + + %1: Socket operation timed out + + + + + + %1: Datagram too large + + + + + + + %1: Connection error + + + + + + %1: The socket operation is not supported + + + + + %1: Unknown error + + + + + + %1: Unknown error %2 + + + + + QMYSQLDriver + + + Unable to open database ' + + + + + Unable to connect + + + + + Unable to begin transaction + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + QMYSQLResult + + + Unable to fetch data + + + + + Unable to execute query + + + + + Unable to store result + + + + + + Unable to prepare statement + + + + + Unable to reset statement + + + + + Unable to bind value + + + + + Unable to execute statement + + + + + + Unable to bind outvalues + + + + + Unable to store statement results + + + + + Unable to execute next query + + + + + Unable to store next result + + + + + QMdiArea + + + (Untitled) + + + + + QMdiSubWindow + + + %1 - [%2] + %1 - [%2] + + + + Close + إغلاق + + + + Minimize + تصغير + + + + Restore Down + استعاد في الأسفل + + + + &Restore + ا&ستعاد + + + + &Move + &تحريك + + + + &Size + ال&حجم + + + + Mi&nimize + ت&صغير + + + + Ma&ximize + ت&كبير + + + + Stay on &Top + ال&بقاء في الأمام + + + + &Close + إ&غلاق + + + + - [%1] + + + + + Maximize + تكبير + + + + Unshade + + + + + Shade + + + + + Restore + + + + + Help + مساعدة + + + + Menu + قائمة الخيارات + + + + QMenu + + + + Close + إغلاق + + + + + Open + فتح + + + + + + Execute + + + + + QMenuBar + + About + حول + + + Config + تشكيل + + + Preference + تفضيل + + + Options + خيارات + + + Setting + ضبط + + + Setup + إعداد + + + Quit + إنتهاء + + + Exit + خروج + + + + QMessageBox + + + + + + OK + موافقة + + + + About Qt + + + + + Help + مساعدة + + + + Show Details... + + + + + Hide Details... + + + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + + + + + QMultiInputContext + + + Select IM + + + + + QMultiInputContextPlugin + + + Multiple input method switcher + + + + + Multiple input method switcher that uses the context menu of the text widgets + + + + + QNativeSocketEngine + + + The remote host closed the connection + + + + + Network operation timed out + + + + + Out of resources + + + + + Unsupported socket operation + + + + + Protocol type not supported + + + + + Invalid socket descriptor + + + + + Network unreachable + + + + + Permission denied + + + + + Connection timed out + + + + + Connection refused + رفض الوصل + + + + The bound address is already in use + + + + + The address is not available + + + + + The address is protected + + + + + Unable to send a message + + + + + Unable to receive a message + + + + + Unable to write + + + + + Network error + + + + + Another socket is already listening on the same port + + + + + Unable to initialize non-blocking socket + + + + + Unable to initialize broadcast socket + + + + + Attempt to use IPv6 socket on a platform with no IPv6 support + + + + + Host unreachable + + + + + Datagram was too large to send + + + + + Operation on non-socket + + + + + Unknown error + خطأ مجهول + + + + The proxy type is invalid for this operation + + + + + QNetworkAccessCacheBackend + + + Error opening %1 + + + + + QNetworkAccessFileBackend + + + Request for opening non-local file %1 + + + + + Error opening %1: %2 + + + + + Write error writing to %1: %2 + + + + + Cannot open %1: Path is a directory + + + + + Read error reading from %1: %2 + + + + + QNetworkAccessFtpBackend + + + No suitable proxy found + + + + + Cannot open %1: is a directory + + + + + Logging in to %1 failed: authentication required + + + + + Error while downloading %1: %2 + + + + + Error while uploading %1: %2 + + + + + QNetworkAccessHttpBackend + + + No suitable proxy found + + + + + QNetworkReply + + + Error downloading %1 - server replied: %2 + + + + + Protocol "%1" is unknown + + + + + QNetworkReplyImpl + + + + Operation canceled + + + + + QOCIDriver + + + Unable to logon + + + + + Unable to initialize + QOCIDriver + + + + + Unable to begin transaction + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + QOCIResult + + + + + Unable to bind column for batch execute + + + + + Unable to execute batch statement + + + + + Unable to goto next + + + + + Unable to alloc statement + + + + + Unable to prepare statement + + + + + Unable to bind value + + + + + Unable to execute statement + + + + + QODBCDriver + + + Unable to connect + + + + + Unable to connect - Driver doesn't support all needed functionality + + + + + Unable to disable autocommit + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + Unable to enable autocommit + + + + + QODBCResult + + + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + + + + + + Unable to execute statement + + + + + Unable to fetch next + + + + + Unable to prepare statement + + + + + Unable to bind variable + + + + + + + Unable to fetch last + + + + + Unable to fetch + + + + + Unable to fetch first + + + + + Unable to fetch previous + + + + + QObject + + + Home + منزل + + + + Operation not supported on %1 + + + + + Invalid URI: %1 + + + + + Write error writing to %1: %2 + + + + + Read error reading from %1: %2 + + + + + Socket error on %1: %2 + + + + + Remote host closed the connection prematurely on %1 + + + + + Protocol error: packet of size 0 received + + + + + + No host name given + + + + + QPPDOptionsModel + + + Name + الإسم + + + + Value + + + + + QPSQLDriver + + + Unable to connect + + + + + Could not begin transaction + + + + + Could not commit transaction + + + + + Could not rollback transaction + + + + + Unable to subscribe + + + + + Unable to unsubscribe + + + + + QPSQLResult + + + Unable to create query + + + + + Unable to prepare statement + + + + + QPageSetupWidget + + + Centimeters (cm) + + + + + Millimeters (mm) + + + + + Inches (in) + + + + + Points (pt) + + + + + Form + + + + + Paper + + + + + Page size: + + + + + Width: + + + + + Height: + + + + + Paper source: + + + + + Orientation + + + + + Portrait + صورة + + + + Landscape + منظر + + + + Reverse landscape + + + + + Reverse portrait + + + + + Margins + + + + + top margin + + + + + left margin + + + + + right margin + + + + + bottom margin + + + + + QPluginLoader + + + Unknown error + خطأ مجهول + + + + The plugin was not loaded. + + + + + QPrintDialog + + + locally connected + موصل محليّا + + + + + Aliases: %1 + بدائل: %1 + + + + + unknown + مجهول + + + + OK + موافقة + + + Cancel + إلغاء + + + Print in color if available + طباعة بالألوان إن توفّرت + + + Printer + الطّابعة + + + + Print all + طباعة الجميع + + + + Print range + مدى الطّباعة + + + Print last page first + طباعة الصّفحة الخيرة أوّلا + + + Number of copies: + عدد النّسخ: + + + Paper format + مقاييس الورق + + + Portrait + صورة + + + Landscape + منظر + + + + A0 (841 x 1189 mm) + أ0 (841 × 1189 مم) + + + + A1 (594 x 841 mm) + أ1 (594 × 841 مم) + + + + A2 (420 x 594 mm) + أ2 (420 × 594 مم) + + + + A3 (297 x 420 mm) + أ3 (297 × 420 مم) + + + + A5 (148 x 210 mm) + أ5 (148 × 210 مم) + + + + A6 (105 x 148 mm) + أ6 (105 × 148 مم) + + + + A7 (74 x 105 mm) + أ7 (74 × 105 مم) + + + + A8 (52 x 74 mm) + أ8 (52 × 74 مم) + + + + A9 (37 x 52 mm) + أ9 (37 × 52 مم) + + + + B0 (1000 x 1414 mm) + ب0 (1000 × 1414 مم) + + + + B1 (707 x 1000 mm) + ب1 (707 × 1000 مم) + + + + B2 (500 x 707 mm) + ب2 (500 × 707 مم) + + + + B3 (353 x 500 mm) + ب3 (353 × 500 مم) + + + + B4 (250 x 353 mm) + ب4 (250 × 353 مم) + + + + B6 (125 x 176 mm) + ب6 (125 × 176 مم) + + + + B7 (88 x 125 mm) + ب7 (88 × 125 مم) + + + + B8 (62 x 88 mm) + ب4 (62 × 88 مم) + + + + B9 (44 x 62 mm) + ب9 (44 × 62 مم) + + + + B10 (31 x 44 mm) + ب10 (31 × 44 مم) + + + + C5E (163 x 229 mm) + سي5إي (163 × 229 مم) + + + + DLE (110 x 220 mm) + دي أل إي (110 × 220 مم) + + + + Folio (210 x 330 mm) + ملفّ (210 × 330 مم) + + + + Ledger (432 x 279 mm) + دفتر (432 × 279 مم) + + + + Tabloid (279 x 432 mm) + جريدة (279 × 432 مم) + + + + US Common #10 Envelope (105 x 241 mm) + غلاف رسالة أمريكية متداولة رقم 10 (105 × 241 مم) + + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + + + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + + + + + Executive (7.5 x 10 inches, 191 x 254 mm) + + + + + Legal (8.5 x 14 inches, 216 x 356 mm) + + + + + Letter (8.5 x 11 inches, 216 x 279 mm) + + + + + + + Print + طباعة + + + File + ملفّ + + + + Print To File ... + + + + + File %1 is not writable. +Please choose a different file name. + + + + + %1 already exists. +Do you want to overwrite it? + + + + + File exists + + + + + <qt>Do you want to overwrite it?</qt> + + + + + Print selection + + + + + %1 is a directory. +Please choose a different file name. + + + + + A0 + + + + + A1 + + + + + A2 + + + + + A3 + + + + + A4 + + + + + A5 + + + + + A6 + + + + + A7 + + + + + A8 + + + + + A9 + + + + + B0 + + + + + B1 + + + + + B2 + + + + + B3 + + + + + B4 + + + + + B5 + + + + + B6 + + + + + B7 + + + + + B8 + + + + + B9 + + + + + B10 + + + + + C5E + + + + + DLE + + + + + Executive + + + + + Folio + + + + + Ledger + + + + + Legal + + + + + Letter + + + + + Tabloid + + + + + US Common #10 Envelope + + + + + Custom + + + + + + &Options >> + + + + + &Print + + + + + &Options << + + + + + Print to File (PDF) + + + + + Print to File (Postscript) + + + + + Local file + + + + + Write %1 file + + + + + The 'From' value cannot be greater than the 'To' value. + + + + + QPrintPreviewDialog + + + + Page Setup + + + + + %1% + + + + + Print Preview + + + + + Next page + + + + + Previous page + + + + + First page + + + + + Last page + + + + + Fit width + + + + + Fit page + + + + + Zoom in + + + + + Zoom out + + + + + Portrait + صورة + + + + Landscape + منظر + + + + Show single page + + + + + Show facing pages + + + + + Show overview of all pages + + + + + Print + طباعة + + + + Page setup + + + + + Close + إغلاق + + + + Export to PDF + + + + + Export to PostScript + + + + + QPrintPropertiesDialog + + Save + حفظ + + + OK + موافقة + + + + QPrintPropertiesWidget + + + Form + + + + + Page + + + + + Advanced + + + + + QPrintSettingsOutput + + + Form + + + + + Copies + + + + + Print range + مدى الطّباعة + + + + Print all + طباعة الجميع + + + + Pages from + + + + + to + + + + + Selection + + + + + Output Settings + + + + + Copies: + + + + + Collate + + + + + Reverse + + + + + Options + خيارات + + + + Color Mode + + + + + Color + + + + + Grayscale + + + + + Duplex Printing + + + + + None + + + + + Long side + + + + + Short side + + + + + QPrintWidget + + + Form + + + + + Printer + الطّابعة + + + + &Name: + + + + + P&roperties + + + + + Location: + + + + + Preview + + + + + Type: + + + + + Output &file: + + + + + ... + + + + + QProcess + + + + Could not open input redirection for reading + + + + + + Could not open output redirection for writing + + + + + Resource error (fork failure): %1 + + + + + + + + + + + + + Process operation timed out + + + + + + + + Error reading from process + + + + + + + Error writing to process + + + + + Process crashed + + + + + No program defined + + + + + Process failed to start + + + + + QProgressDialog + + + Cancel + إلغاء + + + + QPushButton + + + Open + فتح + + + + QRadioButton + + + Check + + + + + QRegExp + + + no error occurred + لم يحدث هناك أيّ خطأ + + + + disabled feature used + تمّ استعمال خاصيّة التّوقيف + + + + bad char class syntax + خطأ نركيبي: صنف الرّمز + + + + bad lookahead syntax + خطأ تركيبي: النّظر إلى الأمام + + + + bad repetition syntax + خطأ نركيبي: تكرار + + + + invalid octal value + قيمة ثمانية غبر صالحة + + + + missing left delim + الفاصل الأيسر ناقص + + + + unexpected end + نهاية غير متوقّعة + + + + met internal limit + تمّ الوصول إلى الحدّ الدّاخلي + + + + QSQLite2Driver + + + Error to open database + + + + + Unable to begin transaction + + + + + Unable to commit transaction + + + + + Unable to rollback Transaction + + + + + QSQLite2Result + + + Unable to fetch results + + + + + Unable to execute statement + + + + + QSQLiteDriver + + + Error opening database + + + + + Error closing database + + + + + Unable to begin transaction + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + QSQLiteResult + + + + + Unable to fetch row + + + + + Unable to execute statement + + + + + Unable to reset statement + + + + + Unable to bind parameters + + + + + Parameter count mismatch + + + + + No query + + + + + QScrollBar + + + Scroll here + + + + + Left edge + + + + + Top + + + + + Right edge + + + + + Bottom + + + + + Page left + + + + + + Page up + + + + + Page right + + + + + + Page down + + + + + Scroll left + + + + + Scroll up + + + + + Scroll right + + + + + Scroll down + + + + + Line up + تصفيف + + + + Position + + + + + Line down + + + + + QSharedMemory + + + %1: unable to set key on lock + + + + + %1: create size is less then 0 + + + + + + %1: unable to lock + + + + + %1: unable to unlock + + + + + + %1: permission denied + + + + + + %1: already exists + + + + + + %1: doesn't exists + + + + + + %1: out of resources + + + + + + %1: unknown error %2 + + + + + %1: key is empty + + + + + %1: unix key file doesn't exists + + + + + %1: ftok failed + + + + + + %1: unable to make key + + + + + %1: system-imposed size restrictions + + + + + %1: not attached + + + + + %1: invalid size + + + + + %1: key error + + + + + %1: size query failed + + + + + QShortcut + + + Space + فراغ + + + + Esc + إفلات + + + + Tab + جدولة + + + + Backtab + جدولة للوراء + + + + Backspace + فراغ للوراء + + + + Return + عودة + + + + Enter + إدخال + + + + Ins + إدراج + + + + Del + حذف + + + + Pause + وقف + + + + Print + طباعة + + + + SysReq + نظام + + + + Home + منزل + + + + End + نهاية + + + + Left + يسار + + + + Up + فوق + + + + Right + يمين + + + + Down + تحت + + + + PgUp + صفحة للفوق + + + + PgDown + صفحة للتحت + + + + CapsLock + إقفال الحروف الكبيرة + + + + NumLock + إقفال الأعداد + + + + ScrollLock + إقفال التّحريك + + + + Menu + قائمة الخيارات + + + + Help + مساعدة + + + + Back + رجوع + + + + Forward + للأمام + + + + Stop + توقّف + + + + Refresh + إنعاش + + + + Volume Down + تنقيص الصّوت + + + + Volume Mute + إغلاق الصّوت + + + + Volume Up + زيادة الصّوت + + + + Bass Boost + إنعاش الأصوات الجهورية + + + + Bass Up + زيادة الأصوات الجهورية + + + + Bass Down + تنقيص الأصوات الجهورية + + + + Treble Up + زيادة الأصوات الحادّة + + + + Treble Down + تنقيص الأصوات الحادّة + + + + Media Play + لعب الوسط + + + + Media Stop + توقيف الوسط + + + + Media Previous + الوسط الأسبق + + + + Media Next + الوسط التّالي + + + + Media Record + تسجيل الوسط + + + + Favorites + المفضّلات + + + + Search + بحث + + + + Standby + إنتظار + + + + Open URL + فتح الوصلة + + + + Launch Mail + بدأ البريد + + + + Launch Media + بدأ الوسط + + + + Launch (0) + بدأ (0) + + + + Launch (1) + بدأ (1) + + + + Launch (2) + بدأ (2) + + + + Launch (3) + بدأ (3) + + + + Launch (4) + بدأ (4) + + + + Launch (5) + بدأ (5) + + + + Launch (6) + بدأ (6) + + + + Launch (7) + بدأ (7) + + + + Launch (8) + بدأ (8) + + + + Launch (9) + بدأ (9) + + + + Launch (A) + بدأ (A) + + + + Launch (B) + بدأ (B) + + + + Launch (C) + بدأ (C) + + + + Launch (D) + بدأ (D) + + + + Launch (E) + بدأ (E) + + + + Launch (F) + بدأ (F) + + + + Print Screen + + + + + Page Up + + + + + Page Down + + + + + Caps Lock + + + + + Num Lock + + + + + Number Lock + + + + + Scroll Lock + + + + + Insert + إدراج + + + + Delete + حذف + + + + Escape + + + + + System Request + + + + + Select + + + + + Yes + نعم + + + + No + لا + + + + Context1 + + + + + Context2 + + + + + Context3 + + + + + Context4 + + + + + Call + + + + + Hangup + + + + + Flip + + + + + + Ctrl + تحكّم + + + + + Shift + إزاحة + + + + + Alt + تناوب + + + + + Meta + ما فوق + + + + + + + + + + + F%1 + F%1 + + + + Home Page + + + + + QSlider + + + Page left + + + + + Page up + + + + + Position + + + + + Page right + + + + + Page down + + + + + QSocks5SocketEngine + + + Connection to proxy refused + + + + + Connection to proxy closed prematurely + + + + + Proxy host not found + + + + + Connection to proxy timed out + + + + + Proxy authentication failed + + + + + Proxy authentication failed: %1 + + + + + SOCKS version 5 protocol error + + + + + General SOCKSv5 server failure + + + + + Connection not allowed by SOCKSv5 server + + + + + TTL expired + + + + + SOCKSv5 command not supported + + + + + Address type not supported + + + + + Unknown SOCKSv5 proxy error code 0x%1 + + + + + Network operation timed out + + + + + QSpinBox + + + More + + + + + Less + + + + + QSql + + + Delete + حذف + + + + Delete this record? + حذف هذاالتّسجيل؟ + + + + + + Yes + نعم + + + + + + No + لا + + + + Insert + إدراج + + + + Update + تحديث + + + + Save edits? + حفظ التّغييرات؟ + + + + Cancel + إلغاء + + + + Confirm + تأكيد + + + + Cancel your edits? + إلغاء التّغييرات؟ + + + + QSslSocket + + + Unable to write data: %1 + + + + + Error while reading: %1 + + + + + Error during SSL handshake: %1 + + + + + Error creating SSL context (%1) + + + + + Invalid or empty cipher list (%1) + + + + + Error creating SSL session, %1 + + + + + Error creating SSL session: %1 + + + + + Cannot provide a certificate with no key, %1 + + + + + Error loading local certificate, %1 + + + + + Error loading private key, %1 + + + + + Private key does not certificate public key, %1 + + + + + QSystemSemaphore + + + + %1: out of resources + + + + + + %1: permission denied + + + + + %1: already exists + + + + + %1: does not exist + + + + + + %1: unknown error %2 + + + + + QTDSDriver + + + Unable to open connection + + + + + Unable to use database + + + + + QTabBar + + + Scroll Left + + + + + Scroll Right + + + + + QTcpServer + + + Operation on socket is not supported + + + + + QTextControl + + + &Undo + &تراجع + + + + &Redo + إ&عادة + + + + Cu&t + &قصّ + + + + &Copy + &نسخ + + + + Copy &Link Location + + + + + &Paste + ت&لصيق + + + + Delete + حذف + + + + Select All + انتقاء الجميع + + + + QToolButton + + + + Press + + + + + + Open + فتح + + + + QUdpSocket + + + This platform does not support IPv6 + + + + + QUndoGroup + + + Undo + تراجع + + + + Redo + إعادة + + + + QUndoModel + + + <empty> + + + + + QUndoStack + + + Undo + تراجع + + + + Redo + إعادة + + + + QUnicodeControlCharacterMenu + + + LRM Left-to-right mark + + + + + RLM Right-to-left mark + + + + + ZWJ Zero width joiner + + + + + ZWNJ Zero width non-joiner + + + + + ZWSP Zero width space + + + + + LRE Start of left-to-right embedding + + + + + RLE Start of right-to-left embedding + + + + + LRO Start of left-to-right override + + + + + RLO Start of right-to-left override + + + + + PDF Pop directional formatting + + + + + Insert Unicode control character + + + + + QWebFrame + + + Request cancelled + + + + + Request blocked + + + + + Cannot show URL + + + + + Frame load interruped by policy change + + + + + Cannot show mimetype + + + + + File does not exist + + + + + QWebPage + + + Bad HTTP request + + + + + Submit + default label for Submit buttons in forms on web pages + + + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + + + + + Reset + default label for Reset buttons in forms on web pages + + + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + + + + + Choose File + title for file button used in HTML forms + + + + + No file selected + text to display in file button used in HTML forms when no file is selected + + + + + Open in New Window + Open in New Window context menu item + + + + + Save Link... + Download Linked File context menu item + + + + + Copy Link + Copy Link context menu item + + + + + Open Image + Open Image in New Window context menu item + + + + + Save Image + Download Image context menu item + + + + + Copy Image + Copy Link context menu item + + + + + Open Frame + Open Frame in New Window context menu item + + + + + Copy + Copy context menu item + + + + + Go Back + Back context menu item + + + + + Go Forward + Forward context menu item + + + + + Stop + Stop context menu item + توقّف + + + + Reload + Reload context menu item + + + + + Cut + Cut context menu item + + + + + Paste + Paste context menu item + + + + + No Guesses Found + No Guesses Found context menu item + + + + + Ignore + Ignore Spelling context menu item + + + + + Add To Dictionary + Learn Spelling context menu item + + + + + Search The Web + Search The Web context menu item + + + + + Look Up In Dictionary + Look Up in Dictionary context menu item + + + + + Open Link + Open Link context menu item + + + + + Ignore + Ignore Grammar context menu item + + + + + Spelling + Spelling and Grammar context sub-menu item + + + + + Show Spelling and Grammar + menu item title + + + + + Hide Spelling and Grammar + menu item title + + + + + Check Spelling + Check spelling context menu item + + + + + Check Spelling While Typing + Check spelling while typing context menu item + + + + + Check Grammar With Spelling + Check grammar with spelling context menu item + + + + + Fonts + Font context sub-menu item + + + + + Bold + Bold context menu item + + + + + Italic + Italic context menu item + + + + + Underline + Underline context menu item + + + + + Outline + Outline context menu item + + + + + Direction + Writing direction context sub-menu item + + + + + Text Direction + Text direction context sub-menu item + + + + + Default + Default writing direction context menu item + + + + + LTR + Left to Right context menu item + + + + + RTL + Right to Left context menu item + + + + + Inspect + Inspect Element context menu item + + + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + + + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + + + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + + + + + Unknown + Unknown filesize FTP directory listing item + + + + + %1 (%2x%3 pixels) + Title string for images + + + + + Web Inspector - %2 + + + + + Scroll here + + + + + Left edge + + + + + Top + + + + + Right edge + + + + + Bottom + + + + + Page left + + + + + Page up + + + + + Page right + + + + + Page down + + + + + Scroll left + + + + + Scroll up + + + + + Scroll right + + + + + Scroll down + + + + + %n file(s) + number of chosen file + + + + + + + JavaScript Alert - %1 + + + + + JavaScript Confirm - %1 + + + + + JavaScript Prompt - %1 + + + + + Move the cursor to the next character + + + + + Move the cursor to the previous character + + + + + Move the cursor to the next word + + + + + Move the cursor to the previous word + + + + + Move the cursor to the next line + + + + + Move the cursor to the previous line + + + + + Move the cursor to the start of the line + + + + + Move the cursor to the end of the line + + + + + Move the cursor to the start of the block + + + + + Move the cursor to the end of the block + + + + + Move the cursor to the start of the document + + + + + Move the cursor to the end of the document + + + + + Select all + + + + + Select to the next character + + + + + Select to the previous character + + + + + Select to the next word + + + + + Select to the previous word + + + + + Select to the next line + + + + + Select to the previous line + + + + + Select to the start of the line + + + + + Select to the end of the line + + + + + Select to the start of the block + + + + + Select to the end of the block + + + + + Select to the start of the document + + + + + Select to the end of the document + + + + + Delete to the start of the word + + + + + Delete to the end of the word + + + + + Insert a new paragraph + + + + + Insert a new line + + + + + QWhatsThisAction + + + What's This? + ما هذا؟ + + + + QWidget + + + * + + + + + QWizard + + + < &Back + < &رجوع + + + + &Finish + إ&نهاء + + + + &Help + &مساعدة + + + + Go Back + + + + + Continue + + + + + Commit + + + + + Done + + + + Quit + إنتهاء + + + + Help + مساعدة + + + + Cancel + إلغاء + + + + &Next + + + + + &Next > + ال&تّالي > + + + + QWorkspace + + + &Restore + ا&ستعاد + + + + &Move + &تحريك + + + + &Size + &حجم + + + + Mi&nimize + ت&صغير + + + + Ma&ximize + ت&كبير + + + + &Close + إ&غلاق + + + + Stay on &Top + ال&بقاء في الأمام + + + + + Sh&ade + ت&ظليل + + + + + %1 - [%2] + %1 - [%2] + + + + Minimize + تصغير + + + + Restore Down + استعاد في الأسفل + + + + Close + إغلاق + + + + &Unshade + إ&لغاء التّظليل + + + + QXml + + + no error occurred + لم يحدث هناك أيّ خطأ + + + + error triggered by consumer + أطلق الخطأ من طرف المستهلك + + + + unexpected end of file + نهاية غير متوقّعة للملفّ + + + + more than one document type definition + أكثر من تعريف لطراز الوثيقة + + + + error occurred while parsing element + حدث خطأ عند تحليل تركيب العنصر + + + + tag mismatch + عدم تطابق العلامة + + + + error occurred while parsing content + حدث خطأ عند تحليل تركيب المحتوى + + + + unexpected character + رمز غير متوقّع + + + + invalid name for processing instruction + إسم غير صالح لتعليمة المعالجة + + + + version expected while reading the XML declaration + الإصدار متوقّع عند قراءة إعلان الXML + + + + wrong value for standalone declaration + قيمة خاطئة لإعلان مستقلّ + + + + encoding declaration or standalone declaration expected while reading the XML declaration + إعلان التّرميز أو إعلان مستقلّ متوقّع عند قراءة إعلان الXML + + + + standalone declaration expected while reading the XML declaration + إعلان مستقلّ متوقّع عند قراءة إعلان الXML + + + + error occurred while parsing document type definition + حدث خطأ عند تحليل تركيب تعريف طراز الوثيقة + + + + letter is expected + حرف متوقّع + + + + error occurred while parsing comment + حدث خطأ عند تحليل تركيب التّعليق + + + + error occurred while parsing reference + حدث خطأ عند تحليل تركيب المرجع + + + + internal general entity reference not allowed in DTD + المرجع إلى كيان داخلي عامّ غير مسموح به في الDTD + + + + external parsed general entity reference not allowed in attribute value + المرجع إلى كيان خارجي عامّ معرب غير مسموح به في قيمة الخاصّية + + + + external parsed general entity reference not allowed in DTD + المرجع إلى كيان خارجي عامّ معرب غير مسموح به في الDTD + + + + unparsed entity reference in wrong context + مرجع إلى كيان غير معرب في سياق خاطئ + + + + recursive entities + كيانات معاودة + + + + error in the text declaration of an external entity + خطأ في التّعريف النّصّي لكيان خارجي + + + + QXmlStream + + + + Extra content at end of document. + + + + + Invalid entity value. + + + + + Invalid XML character. + + + + + Sequence ']]>' not allowed in content. + + + + + Namespace prefix '%1' not declared + + + + + Attribute redefined. + + + + + Unexpected character '%1' in public id literal. + + + + + Invalid XML version string. + + + + + Unsupported XML version. + + + + + %1 is an invalid encoding name. + + + + + Encoding %1 is unsupported + + + + + Standalone accepts only yes or no. + + + + + Invalid attribute in XML declaration. + + + + + Premature end of document. + + + + + Invalid document. + + + + + Expected + + + + + , but got ' + + + + + Unexpected ' + + + + + Expected character data. + + + + + Recursive entity detected. + + + + + Start tag expected. + + + + + XML declaration not at start of document. + + + + + NDATA in parameter entity declaration. + + + + + %1 is an invalid processing instruction name. + + + + + Invalid processing instruction name. + + + + + + + + Illegal namespace declaration. + + + + + Invalid XML name. + + + + + Opening and ending tag mismatch. + + + + + Reference to unparsed entity '%1'. + + + + + + + Entity '%1' not declared. + + + + + Reference to external entity '%1' in attribute value. + + + + + Invalid character reference. + + + + + + Encountered incorrectly encoded content. + + + + + The standalone pseudo attribute must appear after the encoding. + + + + + %1 is an invalid PUBLIC identifier. + + + + + QtXmlPatterns + + + An %1-attribute with value %2 has already been declared. + + + + + An %1-attribute must have a valid %2 as value, which %3 isn't. + + + + + Network timeout. + + + + + Element %1 can't be serialized because it appears outside the document element. + + + + + Attribute %1 can't be serialized because it appears at the top level. + + + + + Year %1 is invalid because it begins with %2. + + + + + Day %1 is outside the range %2..%3. + + + + + Month %1 is outside the range %2..%3. + + + + + Overflow: Can't represent date %1. + + + + + Day %1 is invalid for month %2. + + + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + + + + + Time %1:%2:%3.%4 is invalid. + + + + + Overflow: Date can't be represented. + + + + + + At least one component must be present. + + + + + At least one time component must appear after the %1-delimiter. + + + + + No operand in an integer division, %1, can be %2. + + + + + The first operand in an integer division, %1, cannot be infinity (%2). + + + + + The second operand in a division, %1, cannot be zero (%2). + + + + + %1 is not a valid value of type %2. + + + + + When casting to %1 from %2, the source value cannot be %3. + + + + + Integer division (%1) by zero (%2) is undefined. + + + + + Division (%1) by zero (%2) is undefined. + + + + + Modulus division (%1) by zero (%2) is undefined. + + + + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + + + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + + + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + + + + + A value of type %1 cannot have an Effective Boolean Value. + + + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + + + + + Value %1 of type %2 exceeds maximum (%3). + + + + + Value %1 of type %2 is below minimum (%3). + + + + + A value of type %1 must contain an even number of digits. The value %2 does not. + + + + + %1 is not valid as a value of type %2. + + + + + Operator %1 cannot be used on type %2. + + + + + Operator %1 cannot be used on atomic values of type %2 and %3. + + + + + The namespace URI in the name for a computed attribute cannot be %1. + + + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + + + + + Type error in cast, expected %1, received %2. + + + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + + + + + No casting is possible with %1 as the target type. + + + + + It is not possible to cast from %1 to %2. + + + + + Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. + + + + + It's not possible to cast the value %1 of type %2 to %3 + + + + + Failure when casting from %1 to %2: %3 + + + + + A comment cannot contain %1 + + + + + A comment cannot end with a %1. + + + + + No comparisons can be done involving the type %1. + + + + + Operator %1 is not available between atomic values of type %2 and %3. + + + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + + + + + A library module cannot be evaluated directly. It must be imported from a main module. + + + + + No template by name %1 exists. + + + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + + + + + A positional predicate must evaluate to a single numeric value. + + + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. + + + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + + + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + + + + + The data of a processing instruction cannot contain the string %1 + + + + + No namespace binding exists for the prefix %1 + + + + + No namespace binding exists for the prefix %1 in %2 + + + + + + %1 is an invalid %2 + + + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + + + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + + + + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + + + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + + + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + + + + + %1 is not a valid XML 1.0 character. + + + + + The first argument to %1 cannot be of type %2. + + + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + + + + + %1 was called. + + + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + + + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + + + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + + + + + %1 matches newline characters + + + + + %1 and %2 match the start and end of a line. + + + + + Matches are case insensitive + + + + + Whitespace characters are removed, except when they appear in character classes + + + + + %1 is an invalid regular expression pattern: %2 + + + + + %1 is an invalid flag for regular expressions. Valid flags are: + + + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + + + + + It will not be possible to retrieve %1. + + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + + + + + The default collection is undefined + + + + + %1 cannot be retrieved + + + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + + + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + + + + + %1 is not a whole number of minutes. + + + + + Required cardinality is %1; got cardinality %2. + + + + + The item %1 did not match the required type %2. + + + + + + %1 is an unknown schema type. + + + + + Only one %1 declaration can occur in the query prolog. + + + + + The initialization of variable %1 depends on itself + + + + + No variable by name %1 exists + + + + + The variable %1 is unused + + + + + Version %1 is not supported. The supported XQuery version is 1.0. + + + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + + + + + No function with signature %1 is available + + + + + + A default namespace declaration must occur before function, variable, and option declarations. + + + + + Namespace declarations must occur before function, variable, and option declarations. + + + + + Module imports must occur before function, variable, and option declarations. + + + + + It is not possible to redeclare prefix %1. + + + + + Prefix %1 is already declared in the prolog. + + + + + The name of an option must have a prefix. There is no default namespace for options. + + + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + + + + + The target namespace of a %1 cannot be empty. + + + + + The module import feature is not supported + + + + + No value is available for the external variable by name %1. + + + + + A construct was encountered which only is allowed in XQuery. + + + + + A template by name %1 has already been declared. + + + + + The keyword %1 cannot occur with any other mode name. + + + + + The value of attribute %1 must of type %2, which %3 isn't. + + + + + The prefix %1 can not be bound. By default, it is already bound to the namespace %2. + + + + + A variable by name %1 has already been declared. + + + + + A stylesheet function must have a prefixed name. + + + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + + + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + + + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + + + + + A function already exists with the signature %1. + + + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + + + + + An argument by name %1 has already been declared. Every argument name must be unique. + + + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + + + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + + + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + + + + + In an XSL-T pattern, function %1 cannot have a third argument. + + + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + + + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + + + + + %1 is an invalid template mode name. + + + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + + + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + + + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + + + + + Each name of a template parameter must be unique; %1 is duplicated. + + + + + The %1-axis is unsupported in XQuery + + + + + %1 is not a valid name for a processing-instruction. + + + + + %1 is not a valid numeric literal. + + + + + No function by name %1 is available. + + + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + + + + + %1 is an invalid namespace URI. + + + + + It is not possible to bind to the prefix %1 + + + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + + + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + + + + + Two namespace declaration attributes have the same name: %1. + + + + + The namespace URI must be a constant and cannot use enclosed expressions. + + + + + An attribute by name %1 has already appeared on this element. + + + + + A direct element constructor is not well-formed. %1 is ended with %2. + + + + + The name %1 does not refer to any schema type. + + + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + + + + + %1 is not an atomic type. Casting is only possible to atomic types. + + + + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + + + + + The name of an extension expression must be in a namespace. + + + + + empty + + + + + zero or one + + + + + exactly one + + + + + one or more + + + + + zero or more + + + + + Required type is %1, but %2 was found. + + + + + Promoting %1 to %2 may cause loss of precision. + + + + + The focus is undefined. + + + + + It's not possible to add attributes after any other kind of node. + + + + + An attribute by name %1 has already been created. + + + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + + + + + %1 is an unsupported encoding. + + + + + %1 contains octets which are disallowed in the requested encoding %2. + + + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + + + + + Ambiguous rule match. + + + + + In a namespace constructor, the value for a namespace cannot be an empty string. + + + + + The prefix must be a valid %1, which %2 is not. + + + + + The prefix %1 cannot be bound. + + + + + Only the prefix %1 can be bound to %2 and vice versa. + + + + + Circularity detected + + + + + The parameter %1 is required, but no corresponding %2 is supplied. + + + + + The parameter %1 is passed, but no corresponding %2 exists. + + + + + The URI cannot have a fragment + + + + + Element %1 is not allowed at this location. + + + + + Text nodes are not allowed at this location. + + + + + Parse error: %1 + + + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + + + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + + + + + Unknown XSL-T attribute %1. + + + + + Attribute %1 and %2 are mutually exclusive. + + + + + In a simplified stylesheet module, attribute %1 must be present. + + + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + + + + + Element %1 must have at least one of the attributes %2 or %3. + + + + + At least one mode must be specified in the %1-attribute on element %2. + + + + + Attribute %1 cannot appear on the element %2. Only the standard attributes can appear. + + + + + Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes. + + + + + Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes. + + + + + Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes. + + + + + XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is. + + + + + The attribute %1 must appear on element %2. + + + + + The element with local name %1 does not exist in XSL-T. + + + + + Element %1 must come last. + + + + + At least one %1-element must occur before %2. + + + + + Only one %1-element can appear. + + + + + At least one %1-element must occur inside %2. + + + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + + + + + Element %1 must have either a %2-attribute or a sequence constructor. + + + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + + + + + Element %1 cannot have children. + + + + + Element %1 cannot have a sequence constructor. + + + + + + The attribute %1 cannot appear on %2, when it is a child of %3. + + + + + A parameter in a function cannot be declared to be a tunnel. + + + + + This processor is not Schema-aware and therefore %1 cannot be used. + + + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + + + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + + + + + Attribute %1 cannot have the value %2. + + + + + The attribute %1 can only appear on the first %2 element. + + + + + At least one %1 element must appear as child of %2. + + + + + VolumeSlider + + + Muted + + + + + + Volume: %1% + + + + diff --git a/config.profiles/symbian/translations/qt_fa.ts b/config.profiles/symbian/translations/qt_fa.ts new file mode 100644 index 0000000..d876a9d --- /dev/null +++ b/config.profiles/symbian/translations/qt_fa.ts @@ -0,0 +1,8507 @@ + + + + + + CloseButton + + Close Tab + + + + + FakeReply + + Fake error ! + + + + Invalid URL + + + + + Phonon:: + + Notifications + + + + Music + + + + Video + + + + Communication + + + + Games + + + + Accessibility + + + + + Phonon::AudioOutput + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + + + + Revert back to device '%1' + + + + + Phonon::Gstreamer::Backend + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + + + + + Phonon::Gstreamer::MediaObject + + Cannot start playback. + +Check your GStreamer installation and make sure you +have libgstreamer-plugins-base installed. + + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + + + + Could not open media source. + + + + Invalid source type. + + + + Could not locate media source. + + + + Could not open audio device. The device is already in use. + + + + Could not decode media source. + + + + + Phonon::MMF + + Audio Output + + + + The audio output device + + + + No error + + + + Not found + + + + Out of memory + + + + Not supported + + + + Overflow + + + + Underflow + + + + Already exists + + + + Path not found + + + + In use + + + + Not ready + + + + Access denied + + + + Could not connect + + + + Disconnected + + + + Permission denied + + + + Insufficient bandwidth + + + + Network unavailable + + + + Network communication error + + + + Streaming not supported + + + + Server alert + + + + Invalid protocol + + + + Invalid URL + + + + Multicast error + + + + Proxy server error + + + + Proxy server not supported + + + + Audio output error + + + + Video output error + + + + Decoder error + + + + Audio or video components could not be played + + + + DRM error + + + + Unknown error (%1) + + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + + + + Error opening file + + + + Error opening URL + + + + Setting volume failed + + + + Playback complete + + + + + Phonon::MMF::AudioEqualizer + + %1 Hz + + + + + Phonon::MMF::AudioPlayer + + Getting position failed + + + + Opening clip failed + + + + + Phonon::MMF::EffectFactory + + Enabled + + + + + Phonon::MMF::EnvironmentalReverb + + Decay HF ratio (%) + + + + Decay time (ms) + + + + Density (%) + + + + Diffusion (%) + + + + Reflections delay (ms) + + + + Reflections level (mB) + + + + Reverb delay (ms) + + + + Reverb level (mB) + + + + Room HF level + + + + Room level (mB) + + + + + Phonon::MMF::MediaObject + + Error opening source: type not supported + + + + Error opening source: media type could not be determined + + + + + Phonon::MMF::StereoWidening + + Level (%) + + + + + Phonon::MMF::VideoPlayer + + Pause failed + + + + Seek failed + + + + Getting position failed + + + + Opening clip failed + + + + Buffering clip failed + + + + Video display error + + + + + Phonon::VolumeSlider + + Volume: %1% + + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + + + + Muted + + + + + Q3Accel + + %1, %2 not defined + + + + Ambiguous %1 not handled + + + + + Q3DataTable + + True + + + + False + + + + Insert + + + + Update + + + + Delete + + + + + Q3FileDialog + + Copy or Move a File + + + + Read: %1 + + + + Write: %1 + + + + Cancel + + + + All Files (*) + + + + Name + + + + Size + + + + Type + + + + Date + + + + Attributes + + + + &OK + + + + Look &in: + + + + File &name: + + + + File &type: + + + + Back + + + + One directory up + + + + Create New Folder + + + + List View + + + + Detail View + + + + Preview File Info + + + + Preview File Contents + + + + Read-write + + + + Read-only + + + + Write-only + + + + Inaccessible + + + + Symlink to File + + + + Symlink to Directory + + + + Symlink to Special + + + + File + + + + Dir + + + + Special + + + + Open + + + + Save As + + + + &Open + + + + &Save + + + + &Rename + + + + &Delete + + + + R&eload + + + + Sort by &Name + + + + Sort by &Size + + + + Sort by &Date + + + + &Unsorted + + + + Sort + + + + Show &hidden files + + + + the file + + + + the directory + + + + the symlink + + + + Delete %1 + + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + + + + &Yes + + + + &No + + + + New Folder 1 + + + + New Folder + + + + New Folder %1 + + + + Find Directory + + + + Directories + + + + Directory: + + + + Error + + + + %1 +File not found. +Check path and filename. + + + + All Files (*.*) + + + + Open + + + + Select a Directory + + + + + Q3LocalFs + + Could not read directory +%1 + + + + Could not create directory +%1 + + + + Could not remove file or directory +%1 + + + + Could not rename +%1 +to +%2 + + + + Could not open +%1 + + + + Could not write +%1 + + + + + Q3MainWindow + + Line up + + + + Customize... + + + + + Q3NetworkProtocol + + Operation stopped by the user + + + + + Q3ProgressDialog + + Cancel + + + + + Q3TabDialog + + OK + + + + Apply + + + + Help + + + + Defaults + + + + Cancel + + + + + Q3TextEdit + + &Undo + + + + &Redo + + + + Cu&t + + + + &Copy + + + + &Paste + + + + Clear + + + + Select All + + + + + Q3TitleBar + + System + + + + Restore up + + + + Minimize + + + + Restore down + + + + Maximize + + + + Close + + + + Contains commands to manipulate the window + + + + Puts a minimized window back to normal + + + + Moves the window out of the way + + + + Puts a maximized window back to normal + + + + Makes the window full screen + + + + Closes the window + + + + Displays the name of the window and contains controls to manipulate it + + + + + Q3ToolBar + + More... + + + + + Q3UrlOperator + + The protocol `%1' is not supported + + + + The protocol `%1' does not support listing directories + + + + The protocol `%1' does not support creating new directories + + + + The protocol `%1' does not support removing files or directories + + + + The protocol `%1' does not support renaming files or directories + + + + The protocol `%1' does not support getting files + + + + The protocol `%1' does not support putting files + + + + The protocol `%1' does not support copying or moving files or directories + + + + (unknown) + + + + + Q3Wizard + + &Cancel + + + + < &Back + + + + &Next > + + + + &Finish + + + + &Help + + + + + QAbstractSocket + + Host not found + + + + Connection refused + + + + Connection timed out + + + + Operation on socket is not supported + + + + Socket operation timed out + + + + Socket is not connected + + + + Network unreachable + + + + + QAbstractSpinBox + + &Step up + + + + Step &down + + + + &Select All + + + + + QAccessibleButton + + Press + + + + + QApplication + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + RTL + + + Executable '%1' requires Qt %2, found Qt %3. + + + + Incompatible Qt Library Error + + + + Activate + + + + Activates the program's main window + + + + + QAxSelect + + Select ActiveX Control + + + + OK + + + + &Cancel + + + + COM &Object: + + + + + QCheckBox + + Uncheck + + + + Check + + + + Toggle + + + + + QColorDialog + + Hu&e: + Hu&e: + + + &Sat: + &Sat: + + + &Val: + &Val: + + + &Red: + &Red: + + + &Green: + + + + Bl&ue: + + + + A&lpha channel: + + + + Select Color + Select Color + + + &Basic colors + + + + &Custom colors + + + + &Add to Custom Colors + + + + + QComboBox + + Open + Open + + + False + False + + + True + True + + + Close + Close + + + + QCoreApplication + + %1: key is empty + QSystemSemaphore + %1: key is empty + + + %1: unable to make key + QSystemSemaphore + %1: unable to make key + + + %1: ftok failed + QSystemSemaphore + %1: ftok failed + + + %1: already exists + QSystemSemaphore + %1: already exists + + + %1: does not exist + QSystemSemaphore + %1: does not exist + + + %1: out of resources + QSystemSemaphore + %1: out of resources + + + %1: unknown error %2 + QSystemSemaphore + %1: unknown error %2 + + + + QDB2Driver + + Unable to connect + Unable to connect + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + Unable to set autocommit + Unable to set autocommit + + + + QDB2Result + + Unable to execute statement + Unable to execute statement + + + Unable to prepare statement + Unable to prepare statement + + + Unable to bind variable + Unable to bind variable + + + Unable to fetch record %1 + Unable to fetch record %1 + + + Unable to fetch next + Unable to fetch next + + + Unable to fetch first + Unable to fetch first + + + + QDateTimeEdit + + AM + AM + + + am + am + + + PM + PM + + + pm + pm + + + + QDial + + QDial + QDial + + + SpeedoMeter + SpeedoMeter + + + SliderHandle + SliderHandle + + + + QDialog + + What's This? + What's This? + + + Done + Done + + + + QDialogButtonBox + + OK + OK + + + Save + Save + + + &Save + &Save + + + Open + Open + + + Cancel + Cancel + + + &Cancel + &Cancel + + + Close + Close + + + &Close + &Close + + + Apply + Apply + + + Reset + Reset + + + Help + Help + + + Don't Save + Don't Save + + + Discard + Discard + + + &Yes + &Yes + + + Yes to &All + Yes to &All + + + &No + &No + + + N&o to All + N&o to All + + + Save All + Save All + + + Abort + Abort + + + Retry + Retry + + + Ignore + Ignore + + + Restore Defaults + Restore Defaults + + + Close without Saving + Close without Saving + + + &OK + &OK + + + + QDirModel + + Name + Name + + + Size + Size + + + Kind + Match OS X Finder + Kind + + + Type + All other platforms + Type + + + Date Modified + Date Modified + + + + QDockWidget + + Close + Close + + + Dock + Dock + + + Float + Float + + + + QDoubleSpinBox + + More + More + + + Less + Less + + + + QErrorMessage + + &Show this message again + &Show this message again + + + &OK + &OK + + + Debug Message: + Debug Message: + + + Warning: + Warning: + + + Fatal Error: + Fatal Error: + + + + QFile + + Destination file exists + Destination file exists + + + Will not rename sequential file using block copy + Will not rename sequential file using block copy + + + Cannot remove source file + Cannot remove source file + + + Cannot open %1 for input + Cannot open %1 for input + + + Cannot open for output + Cannot open for output + + + Failure to write block + Failure to write block + + + Cannot create %1 for output + Cannot create %1 for output + + + + QFileDialog + + All Files (*) + All Files (*) + + + Back + Back + + + List View + List View + + + Detail View + Detail View + + + File + File + + + Open + Open + + + Save As + Save As + + + &Open + &Open + + + &Save + &Save + + + Recent Places + Recent Places + + + &Rename + &Rename + + + &Delete + &Delete + + + Show &hidden files + Show &hidden files + + + New Folder + New Folder + + + Find Directory + Find Directory + + + Directories + Directories + + + All Files (*.*) + All Files (*.*) + + + Directory: + Directory: + + + %1 already exists. +Do you want to replace it? + %1 already exists. +Do you want to replace it? + + + %1 +File not found. +Please verify the correct file name was given. + %1 +File not found. +Please verify the correct file name was given. + + + My Computer + My Computer + + + Parent Directory + Parent Directory + + + Files of type: + Files of type: + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Directory not found. +Please verify the correct directory name was given. + + + '%1' is write protected. +Do you want to delete it anyway? + '%1' is write protected. +Do you want to delete it anyway? + + + Are sure you want to delete '%1'? + Are sure you want to delete '%1'? + + + Could not delete directory. + Could not delete directory. + + + Drive + Drive + + + File Folder + Match Windows Explorer + File Folder + + + Folder + All other platforms + Folder + + + Alias + Mac OS X Finder + Alias + + + Shortcut + All other platforms + Shortcut + + + Unknown + Unknown + + + Show + Show + + + Forward + Forward + + + &New Folder + &New Folder + + + &Choose + &Choose + + + Remove + Remove + + + File &name: + File &name: + + + Look in: + Look in: + + + Create New Folder + Create New Folder + + + + QFileSystemModel + + %1 TB + %1 TB + + + %1 GB + %1 GB + + + %1 MB + %1 MB + + + %1 KB + %1 KB + + + %1 bytes + %1 bytes + + + Invalid filename + Invalid filename + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + + + Name + Name + + + Size + Size + + + Kind + Match OS X Finder + Kind + + + Type + All other platforms + Type + + + Date Modified + Date Modified + + + My Computer + My Computer + + + Computer + Computer + + + %1 byte(s) + %1 byte(s) + + + + QFontDatabase + + Normal + Normal + + + Bold + Bold + + + Demi Bold + Demi Bold + + + Black + Black + + + Demi + Demi + + + Light + Light + + + Italic + Italic + + + Oblique + Oblique + + + Any + Any + + + Latin + Latin + + + Greek + Greek + + + Cyrillic + Cyrillic + + + Armenian + Armenian + + + Hebrew + Hebrew + + + Arabic + Arabic + + + Syriac + Syriac + + + Thaana + Thaana + + + Devanagari + Devanagari + + + Bengali + Bengali + + + Gurmukhi + Gurmukhi + + + Gujarati + Gujarati + + + Oriya + Oriya + + + Tamil + Tamil + + + Telugu + Telugu + + + Kannada + Kannada + + + Malayalam + Malayalam + + + Sinhala + Sinhala + + + Thai + Thai + + + Lao + Lao + + + Tibetan + Tibetan + + + Myanmar + Myanmar + + + Georgian + Georgian + + + Khmer + Khmer + + + Simplified Chinese + Simplified Chinese + + + Traditional Chinese + Traditional Chinese + + + Japanese + Japanese + + + Korean + Korean + + + Vietnamese + Vietnamese + + + Symbol + Symbol + + + Ogham + Ogham + + + Runic + Runic + + + N'Ko + N'Ko + + + + QFontDialog + + &Font + &Font + + + Font st&yle + Font st&yle + + + &Size + &Size + + + Effects + Effects + + + Stri&keout + Stri&keout + + + &Underline + &Underline + + + Sample + Sample + + + Select Font + Select Font + + + Wr&iting System + Wr&iting System + + + + QFtp + + Host %1 found + Host %1 found + + + Host found + Host found + + + Connected to host %1 + Connected to host %1 + + + Connected to host + Connected to host + + + Connection to %1 closed + Connection to %1 closed + + + Connection closed + Connection closed + + + Host %1 not found + Host %1 not found + + + Connection refused to host %1 + Connection refused to host %1 + + + Connection timed out to host %1 + Connection timed out to host %1 + + + Unknown error + Unknown error + + + Connecting to host failed: +%1 + Connecting to host failed: +%1 + + + Login failed: +%1 + Login failed: +%1 + + + Listing directory failed: +%1 + Listing directory failed: +%1 + + + Changing directory failed: +%1 + Changing directory failed: +%1 + + + Downloading file failed: +%1 + Downloading file failed: +%1 + + + Uploading file failed: +%1 + Uploading file failed: +%1 + + + Removing file failed: +%1 + Removing file failed: +%1 + + + Creating directory failed: +%1 + Creating directory failed: +%1 + + + Removing directory failed: +%1 + Removing directory failed: +%1 + + + Not connected + Not connected + + + Connection refused for data connection + Connection refused for data connection + + + + QHostInfo + + Unknown error + Unknown error + + + + QHostInfoAgent + + Host not found + Host not found + + + Unknown address type + Unknown address type + + + Unknown error + Unknown error + + + No host name given + No host name given + + + Invalid hostname + Invalid hostname + + + + QHttp + + Connection refused + Connection refused + + + Host %1 not found + Host %1 not found + + + Wrong content length + Wrong content length + + + HTTP request failed + HTTP request failed + + + Host %1 found + Host %1 found + + + Host found + Host found + + + Connected to host %1 + Connected to host %1 + + + Connected to host + Connected to host + + + Connection to %1 closed + Connection to %1 closed + + + Connection closed + Connection closed + + + Unknown error + Unknown error + + + Request aborted + Request aborted + + + No server set to connect to + No server set to connect to + + + Server closed connection unexpectedly + Server closed connection unexpectedly + + + Invalid HTTP response header + Invalid HTTP response header + + + Unknown authentication method + Unknown authentication method + + + Invalid HTTP chunked body + Invalid HTTP chunked body + + + Error writing response to device + Error writing response to device + + + Proxy authentication required + Proxy authentication required + + + Authentication required + Authentication required + + + Proxy requires authentication + Proxy requires authentication + + + Host requires authentication + Host requires authentication + + + Data corrupted + Data corrupted + + + SSL handshake failed + SSL handshake failed + + + Unknown protocol specified + Unknown protocol specified + + + Connection refused (or timed out) + Connection refused (or timed out) + + + HTTPS connection requested but SSL support not compiled in + HTTPS connection requested but SSL support not compiled in + + + + QHttpSocketEngine + + Did not receive HTTP response from proxy + Did not receive HTTP response from proxy + + + Error parsing authentication request from proxy + Error parsing authentication request from proxy + + + Authentication required + Authentication required + + + Proxy denied connection + Proxy denied connection + + + Error communicating with HTTP proxy + Error communicating with HTTP proxy + + + Proxy server not found + Proxy server not found + + + Proxy connection refused + Proxy connection refused + + + Proxy server connection timed out + Proxy server connection timed out + + + Proxy connection closed prematurely + Proxy connection closed prematurely + + + + QIBaseDriver + + Error opening database + Error opening database + + + Could not start transaction + Could not start transaction + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + + QIBaseResult + + Unable to create BLOB + Unable to create BLOB + + + Unable to write BLOB + Unable to write BLOB + + + Unable to open BLOB + Unable to open BLOB + + + Unable to read BLOB + Unable to read BLOB + + + Could not find array + Could not find array + + + Could not get array data + Could not get array data + + + Could not get query info + Could not get query info + + + Could not start transaction + Could not start transaction + + + Unable to commit transaction + Unable to commit transaction + + + Could not allocate statement + Could not allocate statement + + + Could not prepare statement + Could not prepare statement + + + Could not describe input statement + Could not describe input statement + + + Could not describe statement + Could not describe statement + + + Unable to close statement + Unable to close statement + + + Unable to execute query + Unable to execute query + + + Could not fetch next item + Could not fetch next item + + + Could not get statement info + Could not get statement info + + + + QIODevice + + Permission denied + Permission denied + + + Too many open files + Too many open files + + + No such file or directory + No such file or directory + + + No space left on device + No space left on device + + + Unknown error + Unknown error + + + + QInputContext + + XIM + XIM + + + FEP + FEP + + + XIM input method + XIM input method + + + Windows input method + Windows input method + + + Mac OS X input method + Mac OS X input method + + + S60 FEP input method + S60 FEP input method + + + + QInputDialog + + Enter a value: + Enter a value: + + + + QLibrary + + Could not mmap '%1': %2 + Could not mmap '%1': %2 + + + Plugin verification data mismatch in '%1' + Plugin verification data mismatch in '%1' + + + Could not unmap '%1': %2 + Could not unmap '%1': %2 + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + + + Unknown error + Unknown error + + + The shared library was not found. + The shared library was not found. + + + The file '%1' is not a valid Qt plugin. + The file '%1' is not a valid Qt plugin. + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + + + Cannot load library %1: %2 + Cannot load library %1: %2 + + + Cannot unload library %1: %2 + Cannot unload library %1: %2 + + + Cannot resolve symbol "%1" in %2: %3 + Cannot resolve symbol "%1" in %2: %3 + + + + QLineEdit + + Select All + Select All + + + &Undo + &Undo + + + &Redo + &Redo + + + Cu&t + Cu&t + + + &Copy + &Copy + + + &Paste + &Paste + + + Delete + Delete + + + + QLocalServer + + %1: Name error + %1: Name error + + + %1: Permission denied + %1: Permission denied + + + %1: Address in use + %1: Address in use + + + %1: Unknown error %2 + %1: Unknown error %2 + + + + QLocalSocket + + %1: Connection refused + %1: Connection refused + + + %1: Remote closed + %1: Remote closed + + + %1: Invalid name + %1: Invalid name + + + %1: Socket access error + %1: Socket access error + + + %1: Socket resource error + %1: Socket resource error + + + %1: Socket operation timed out + %1: Socket operation timed out + + + %1: Datagram too large + %1: Datagram too large + + + %1: Connection error + %1: Connection error + + + %1: The socket operation is not supported + %1: The socket operation is not supported + + + %1: Unknown error + %1: Unknown error + + + %1: Unknown error %2 + %1: Unknown error %2 + + + + QMYSQLDriver + + Unable to open database ' + Unable to open database ' + + + Unable to connect + Unable to connect + + + Unable to begin transaction + Unable to begin transaction + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + + QMYSQLResult + + Unable to fetch data + Unable to fetch data + + + Unable to execute query + Unable to execute query + + + Unable to store result + Unable to store result + + + Unable to prepare statement + Unable to prepare statement + + + Unable to reset statement + Unable to reset statement + + + Unable to bind value + Unable to bind value + + + Unable to execute statement + Unable to execute statement + + + Unable to bind outvalues + Unable to bind outvalues + + + Unable to store statement results + Unable to store statement results + + + Unable to execute next query + Unable to execute next query + + + Unable to store next result + Unable to store next result + + + + QMdiArea + + (Untitled) + (Untitled) + + + + QMdiSubWindow + + %1 - [%2] + %1 - [%2] + + + Close + Close + + + Minimize + Minimize + + + Restore Down + Restore Down + + + &Restore + &Restore + + + &Move + &Move + + + &Size + &Size + + + Mi&nimize + Mi&nimize + + + Ma&ximize + Ma&ximize + + + Stay on &Top + Stay on &Top + + + &Close + &Close + + + Maximize + Maximize + + + Unshade + Unshade + + + Shade + Shade + + + Restore + Restore + + + Help + Help + + + Menu + Menu + + + - [%1] + - [%1] + + + + QMenu + + Close + Close + + + Open + Open + + + Execute + Execute + + + + QMenuBar + + Actions + Actions + + + + QMessageBox + + OK + OK + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + + + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + + + About Qt + About Qt + + + Help + Help + + + Show Details... + Show Details... + + + Hide Details... + Hide Details... + + + + QMultiInputContext + + Select IM + Select IM + + + + QMultiInputContextPlugin + + Multiple input method switcher + Multiple input method switcher + + + Multiple input method switcher that uses the context menu of the text widgets + Multiple input method switcher that uses the context menu of the text widgets + + + + QNativeSocketEngine + + The remote host closed the connection + The remote host closed the connection + + + Network operation timed out + Network operation timed out + + + Out of resources + Out of resources + + + Unsupported socket operation + Unsupported socket operation + + + Protocol type not supported + Protocol type not supported + + + Invalid socket descriptor + Invalid socket descriptor + + + Network unreachable + Network unreachable + + + Permission denied + Permission denied + + + Connection timed out + Connection timed out + + + Connection refused + Connection refused + + + The bound address is already in use + The bound address is already in use + + + The address is not available + The address is not available + + + The address is protected + The address is protected + + + Unable to send a message + Unable to send a message + + + Unable to receive a message + Unable to receive a message + + + Unable to write + Unable to write + + + Network error + Network error + + + Another socket is already listening on the same port + Another socket is already listening on the same port + + + Unable to initialize non-blocking socket + Unable to initialize non-blocking socket + + + Unable to initialize broadcast socket + Unable to initialize broadcast socket + + + Attempt to use IPv6 socket on a platform with no IPv6 support + Attempt to use IPv6 socket on a platform with no IPv6 support + + + Host unreachable + Host unreachable + + + Datagram was too large to send + Datagram was too large to send + + + Operation on non-socket + Operation on non-socket + + + Unknown error + Unknown error + + + The proxy type is invalid for this operation + The proxy type is invalid for this operation + + + + QNetworkAccessCacheBackend + + Error opening %1 + Error opening %1 + + + + QNetworkAccessDebugPipeBackend + + Write error writing to %1: %2 + Write error writing to %1: %2 + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + Request for opening non-local file %1 + + + Error opening %1: %2 + Error opening %1: %2 + + + Write error writing to %1: %2 + Write error writing to %1: %2 + + + Cannot open %1: Path is a directory + Cannot open %1: Path is a directory + + + Read error reading from %1: %2 + Read error reading from %1: %2 + + + + QNetworkAccessFtpBackend + + No suitable proxy found + No suitable proxy found + + + Cannot open %1: is a directory + Cannot open %1: is a directory + + + Logging in to %1 failed: authentication required + Logging in to %1 failed: authentication required + + + Error while downloading %1: %2 + Error while downloading %1: %2 + + + Error while uploading %1: %2 + Error while uploading %1: %2 + + + + QNetworkAccessHttpBackend + + No suitable proxy found + No suitable proxy found + + + + QNetworkReply + + Error downloading %1 - server replied: %2 + Error downloading %1 - server replied: %2 + + + Protocol "%1" is unknown + Protocol "%1" is unknown + + + + QNetworkReplyImpl + + Operation canceled + Operation canceled + + + + QOCIDriver + + Unable to logon + Unable to logon + + + Unable to initialize + QOCIDriver + Unable to initialize + + + Unable to begin transaction + Unable to begin transaction + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + + QOCIResult + + Unable to bind column for batch execute + Unable to bind column for batch execute + + + Unable to execute batch statement + Unable to execute batch statement + + + Unable to goto next + Unable to goto next + + + Unable to alloc statement + Unable to alloc statement + + + Unable to prepare statement + Unable to prepare statement + + + Unable to get statement type + Unable to get statement type + + + Unable to bind value + Unable to bind value + + + Unable to execute statement + Unable to execute statement + + + + QODBCDriver + + Unable to connect + Unable to connect + + + Unable to disable autocommit + Unable to disable autocommit + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + Unable to enable autocommit + Unable to enable autocommit + + + Unable to connect - Driver doesn't support all functionality required + Unable to connect - Driver doesn't support all functionality required + + + + QODBCResult + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + + + Unable to execute statement + Unable to execute statement + + + Unable to fetch next + Unable to fetch next + + + Unable to prepare statement + Unable to prepare statement + + + Unable to bind variable + Unable to bind variable + + + Unable to fetch last + Unable to fetch last + + + Unable to fetch + Unable to fetch + + + Unable to fetch first + Unable to fetch first + + + Unable to fetch previous + Unable to fetch previous + + + + QObject + + Invalid hostname + Invalid hostname + + + Operation not supported on %1 + Operation not supported on %1 + + + Invalid URI: %1 + Invalid URI: %1 + + + Socket error on %1: %2 + Socket error on %1: %2 + + + Remote host closed the connection prematurely on %1 + Remote host closed the connection prematurely on %1 + + + No host name given + No host name given + + + + QPPDOptionsModel + + Name + Name + + + Value + Value + + + + QPSQLDriver + + Unable to connect + Unable to connect + + + Could not begin transaction + Could not begin transaction + + + Could not commit transaction + Could not commit transaction + + + Could not rollback transaction + Could not rollback transaction + + + Unable to subscribe + Unable to subscribe + + + Unable to unsubscribe + Unable to unsubscribe + + + + QPSQLResult + + Unable to create query + Unable to create query + + + Unable to prepare statement + Unable to prepare statement + + + + QPageSetupWidget + + Centimeters (cm) + Centimeters (cm) + + + Millimeters (mm) + Millimeters (mm) + + + Inches (in) + Inches (in) + + + Points (pt) + Points (pt) + + + Form + Form + + + Paper + Paper + + + Page size: + Page size: + + + Width: + Width: + + + Height: + Height: + + + Paper source: + Paper source: + + + Orientation + Orientation + + + Portrait + Portrait + + + Landscape + Landscape + + + Reverse landscape + Reverse landscape + + + Reverse portrait + Reverse portrait + + + Margins + Margins + + + top margin + top margin + + + left margin + left margin + + + right margin + right margin + + + bottom margin + bottom margin + + + + QPluginLoader + + Unknown error + Unknown error + + + The plugin was not loaded. + The plugin was not loaded. + + + + QPrintDialog + + locally connected + locally connected + + + Aliases: %1 + Aliases: %1 + + + unknown + unknown + + + OK + OK + + + Print all + Print all + + + Print range + Print range + + + A0 (841 x 1189 mm) + A0 (841 x 1189 mm) + + + A1 (594 x 841 mm) + A1 (594 x 841 mm) + + + A2 (420 x 594 mm) + A2 (420 x 594 mm) + + + A3 (297 x 420 mm) + A3 (297 x 420 mm) + + + A5 (148 x 210 mm) + A5 (148 x 210 mm) + + + A6 (105 x 148 mm) + A6 (105 x 148 mm) + + + A7 (74 x 105 mm) + A7 (74 x 105 mm) + + + A8 (52 x 74 mm) + A8 (52 x 74 mm) + + + A9 (37 x 52 mm) + A9 (37 x 52 mm) + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 mm) + + + B1 (707 x 1000 mm) + B1 (707 x 1000 mm) + + + B2 (500 x 707 mm) + B2 (500 x 707 mm) + + + B3 (353 x 500 mm) + B3 (353 x 500 mm) + + + B4 (250 x 353 mm) + B4 (250 x 353 mm) + + + B6 (125 x 176 mm) + B6 (125 x 176 mm) + + + B7 (88 x 125 mm) + B7 (88 x 125 mm) + + + B8 (62 x 88 mm) + B8 (62 x 88 mm) + + + B9 (44 x 62 mm) + B9 (44 x 62 mm) + + + B10 (31 x 44 mm) + B10 (31 x 44 mm) + + + C5E (163 x 229 mm) + C5E (163 x 229 mm) + + + DLE (110 x 220 mm) + DLE (110 x 220 mm) + + + Folio (210 x 330 mm) + Folio (210 x 330 mm) + + + Ledger (432 x 279 mm) + Ledger (432 x 279 mm) + + + Tabloid (279 x 432 mm) + Tabloid (279 x 432 mm) + + + US Common #10 Envelope (105 x 241 mm) + US Common #10 Envelope (105 x 241 mm) + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 mm, 8.26 x 11.7 inches) + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 mm, 6.93 x 9.84 inches) + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (7.5 x 10 inches, 191 x 254 mm) + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8.5 x 14 inches, 216 x 356 mm) + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (8.5 x 11 inches, 216 x 279 mm) + + + Print selection + Print selection + + + Print + Print + + + Print To File ... + Print To File ... + + + File %1 is not writable. +Please choose a different file name. + File %1 is not writable. +Please choose a different file name. + + + %1 already exists. +Do you want to overwrite it? + %1 already exists. +Do you want to overwrite it? + + + File exists + File exists + + + <qt>Do you want to overwrite it?</qt> + <qt>Do you want to overwrite it?</qt> + + + %1 is a directory. +Please choose a different file name. + %1 is a directory. +Please choose a different file name. + + + The 'From' value cannot be greater than the 'To' value. + The 'From' value cannot be greater than the 'To' value. + + + A0 + A0 + + + A1 + A1 + + + A2 + A2 + + + A3 + A3 + + + A4 + A4 + + + A5 + A5 + + + A6 + A6 + + + A7 + A7 + + + A8 + A8 + + + A9 + A9 + + + B0 + B0 + + + B1 + B1 + + + B2 + B2 + + + B3 + B3 + + + B4 + B4 + + + B5 + B5 + + + B6 + B6 + + + B7 + B7 + + + B8 + B8 + + + B9 + B9 + + + B10 + B10 + + + C5E + C5E + + + DLE + DLE + + + Executive + Executive + + + Folio + Folio + + + Ledger + Ledger + + + Legal + Legal + + + Letter + Letter + + + Tabloid + Tabloid + + + US Common #10 Envelope + US Common #10 Envelope + + + Custom + Custom + + + &Options >> + &Options >> + + + &Options << + &Options << + + + Print to File (PDF) + Print to File (PDF) + + + Print to File (Postscript) + Print to File (Postscript) + + + Local file + Local file + + + Write %1 file + Write %1 file + + + &Print + &Print + + + + QPrintPreviewDialog + + %1% + %1% + + + Print Preview + Print Preview + + + Next page + Next page + + + Previous page + Previous page + + + First page + First page + + + Last page + Last page + + + Fit width + Fit width + + + Fit page + Fit page + + + Zoom in + Zoom in + + + Zoom out + Zoom out + + + Portrait + Portrait + + + Landscape + Landscape + + + Show single page + Show single page + + + Show facing pages + Show facing pages + + + Show overview of all pages + Show overview of all pages + + + Print + Print + + + Page setup + Page setup + + + Close + Close + + + Export to PDF + Export to PDF + + + Export to PostScript + Export to PostScript + + + Page Setup + Page Setup + + + + QPrintPropertiesWidget + + Form + Form + + + Page + Page + + + Advanced + Advanced + + + + QPrintSettingsOutput + + Form + Form + + + Copies + Copies + + + Print range + Print range + + + Print all + Print all + + + Pages from + Pages from + + + to + to + + + Selection + Selection + + + Output Settings + Output Settings + + + Copies: + Copies: + + + Collate + Collate + + + Reverse + Reverse + + + Options + Options + + + Color Mode + Color Mode + + + Color + Color + + + Grayscale + Grayscale + + + Duplex Printing + Duplex Printing + + + None + None + + + Long side + Long side + + + Short side + Short side + + + + QPrintWidget + + Form + Form + + + Printer + Printer + + + &Name: + &Name: + + + P&roperties + P&roperties + + + Location: + Location: + + + Preview + Preview + + + Type: + Type: + + + Output &file: + Output &file: + + + ... + ... + + + + QProcess + + Could not open input redirection for reading + Could not open input redirection for reading + + + Could not open output redirection for writing + Could not open output redirection for writing + + + Resource error (fork failure): %1 + Resource error (fork failure): %1 + + + Process operation timed out + Process operation timed out + + + Error reading from process + Error reading from process + + + Error writing to process + Error writing to process + + + Process crashed + Process crashed + + + No program defined + No program defined + + + Process failed to start: %1 + Process failed to start: %1 + + + + QProgressDialog + + Cancel + Cancel + + + + QPushButton + + Open + Open + + + + QRadioButton + + Check + Check + + + + QRegExp + + no error occurred + no error occurred + + + disabled feature used + disabled feature used + + + bad char class syntax + bad char class syntax + + + bad lookahead syntax + bad lookahead syntax + + + bad repetition syntax + bad repetition syntax + + + invalid octal value + invalid octal value + + + missing left delim + missing left delim + + + unexpected end + unexpected end + + + met internal limit + met internal limit + + + invalid interval + invalid interval + + + invalid category + invalid category + + + + QSQLite2Driver + + Error opening database + Error opening database + + + Unable to begin transaction + Unable to begin transaction + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + + QSQLite2Result + + Unable to fetch results + Unable to fetch results + + + Unable to execute statement + Unable to execute statement + + + + QSQLiteDriver + + Error opening database + Error opening database + + + Error closing database + Error closing database + + + Unable to begin transaction + Unable to begin transaction + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + + QSQLiteResult + + Unable to fetch row + Unable to fetch row + + + Unable to execute statement + Unable to execute statement + + + Unable to reset statement + Unable to reset statement + + + Unable to bind parameters + Unable to bind parameters + + + Parameter count mismatch + Parameter count mismatch + + + No query + No query + + + + QScriptBreakpointsModel + + ID + ID + + + Location + Location + + + Condition + Condition + + + Ignore-count + Ignore-count + + + Single-shot + Single-shot + + + Hit-count + Hit-count + + + + QScriptBreakpointsWidget + + New + New + + + Delete + Delete + + + + QScriptDebugger + + Go to Line + Go to Line + + + Line: + Line: + + + Interrupt + Interrupt + + + Shift+F5 + Shift+F5 + + + Continue + Continue + + + F5 + F5 + + + Step Into + Step Into + + + F11 + F11 + + + Step Over + Step Over + + + F10 + F10 + + + Step Out + Step Out + + + Shift+F11 + Shift+F11 + + + Run to Cursor + Run to Cursor + + + Ctrl+F10 + Ctrl+F10 + + + Run to New Script + Run to New Script + + + Toggle Breakpoint + Toggle Breakpoint + + + F9 + F9 + + + Clear Debug Output + Clear Debug Output + + + Clear Error Log + Clear Error Log + + + Clear Console + Clear Console + + + &Find in Script... + &Find in Script... + + + Ctrl+F + Ctrl+F + + + Find &Next + Find &Next + + + F3 + F3 + + + Find &Previous + Find &Previous + + + Shift+F3 + Shift+F3 + + + Ctrl+G + Ctrl+G + + + Debug + Debug + + + + QScriptDebuggerCodeFinderWidget + + Close + Close + + + Previous + Previous + + + Next + Next + + + Case Sensitive + Case Sensitive + + + Whole words + Whole words + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + + + + QScriptDebuggerLocalsModel + + Name + Name + + + Value + Value + + + + QScriptDebuggerStackModel + + Level + Level + + + Name + Name + + + Location + Location + + + + QScriptEdit + + Toggle Breakpoint + Toggle Breakpoint + + + Disable Breakpoint + Disable Breakpoint + + + Enable Breakpoint + Enable Breakpoint + + + Breakpoint Condition: + Breakpoint Condition: + + + + QScriptEngineDebugger + + Loaded Scripts + Loaded Scripts + + + Breakpoints + Breakpoints + + + Stack + Stack + + + Locals + Locals + + + Console + Console + + + Debug Output + Debug Output + + + Error Log + Error Log + + + Search + Search + + + View + View + + + Qt Script Debugger + Qt Script Debugger + + + + QScriptNewBreakpointWidget + + Close + Close + + + + QScrollBar + + Scroll here + Scroll here + + + Left edge + Left edge + + + Top + Top + + + Right edge + Right edge + + + Bottom + Bottom + + + Page left + Page left + + + Page up + Page up + + + Page right + Page right + + + Page down + Page down + + + Scroll left + Scroll left + + + Scroll up + Scroll up + + + Scroll right + Scroll right + + + Scroll down + Scroll down + + + Line up + Line up + + + Position + Position + + + Line down + Line down + + + + QSharedMemory + + %1: create size is less then 0 + %1: create size is less then 0 + + + %1: unable to lock + %1: unable to lock + + + %1: unable to unlock + %1: unable to unlock + + + %1: permission denied + %1: permission denied + + + %1: already exists + %1: already exists + + + %1: doesn't exists + %1: doesn't exists + + + %1: out of resources + %1: out of resources + + + %1: unknown error %2 + %1: unknown error %2 + + + %1: key is empty + %1: key is empty + + + %1: ftok failed + %1: ftok failed + + + %1: unable to make key + %1: unable to make key + + + %1: doesn't exist + %1: doesn't exist + + + %1: UNIX key file doesn't exist + %1: UNIX key file doesn't exist + + + %1: system-imposed size restrictions + %1: system-imposed size restrictions + + + %1: not attached + %1: not attached + + + %1: invalid size + %1: invalid size + + + %1: key error + %1: key error + + + %1: size query failed + %1: size query failed + + + %1: unable to set key on lock + %1: unable to set key on lock + + + + QShortcut + + Space + Space + + + Esc + Esc + + + Tab + Tab + + + Backtab + Backtab + + + Backspace + Backspace + + + Return + Return + + + Enter + Enter + + + Ins + Ins + + + Del + Del + + + Pause + Pause + + + Print + Print + + + SysReq + SysReq + + + Home + Home + + + End + End + + + Left + Left + + + Up + Up + + + Right + Right + + + Down + Down + + + PgUp + PgUp + + + PgDown + PgDown + + + CapsLock + CapsLock + + + NumLock + NumLock + + + ScrollLock + ScrollLock + + + Menu + Menu + + + Help + Help + + + Back + Back + + + Forward + Forward + + + Stop + Stop + + + Refresh + Refresh + + + Volume Down + Volume Down + + + Volume Mute + Volume Mute + + + Volume Up + Volume Up + + + Bass Boost + Bass Boost + + + Bass Up + Bass Up + + + Bass Down + Bass Down + + + Treble Up + Treble Up + + + Treble Down + Treble Down + + + Media Play + Media Play + + + Media Stop + Media Stop + + + Media Previous + Media Previous + + + Media Next + Media Next + + + Media Record + Media Record + + + Favorites + Favorites + + + Search + Search + + + Standby + Standby + + + Open URL + Open URL + + + Launch Mail + Launch Mail + + + Launch Media + Launch Media + + + Launch (0) + Launch (0) + + + Launch (1) + Launch (1) + + + Launch (2) + Launch (2) + + + Launch (3) + Launch (3) + + + Launch (4) + Launch (4) + + + Launch (5) + Launch (5) + + + Launch (6) + Launch (6) + + + Launch (7) + Launch (7) + + + Launch (8) + Launch (8) + + + Launch (9) + Launch (9) + + + Launch (A) + Launch (A) + + + Launch (B) + Launch (B) + + + Launch (C) + Launch (C) + + + Launch (D) + Launch (D) + + + Launch (E) + Launch (E) + + + Launch (F) + Launch (F) + + + Monitor Brightness Up + Monitor Brightness Up + + + Monitor Brightness Down + Monitor Brightness Down + + + Keyboard Light On/Off + Keyboard Light On/Off + + + Keyboard Brightness Up + Keyboard Brightness Up + + + Keyboard Brightness Down + Keyboard Brightness Down + + + Power Off + Power Off + + + Wake Up + Wake Up + + + Eject + Eject + + + Screensaver + Screensaver + + + WWW + WWW + + + Sleep + Sleep + + + LightBulb + LightBulb + + + Shop + Shop + + + History + History + + + Add Favorite + Add Favorite + + + Hot Links + Hot Links + + + Adjust Brightness + Adjust Brightness + + + Finance + Finance + + + Community + Community + + + Audio Rewind + Audio Rewind + + + Back Forward + Back Forward + + + Application Left + Application Left + + + Application Right + Application Right + + + Book + Book + + + CD + CD + + + Calculator + Calculator + + + Clear + Clear + + + Clear Grab + Clear Grab + + + Close + Close + + + Copy + Copy + + + Cut + Cut + + + Display + Display + + + DOS + DOS + + + Documents + Documents + + + Spreadsheet + Spreadsheet + + + Browser + Browser + + + Game + Game + + + Go + Go + + + iTouch + iTouch + + + Logoff + Logoff + + + Market + Market + + + Meeting + Meeting + + + Keyboard Menu + Keyboard Menu + + + Menu PB + Menu PB + + + My Sites + My Sites + + + News + News + + + Home Office + Home Office + + + Option + Option + + + Paste + Paste + + + Phone + Phone + + + Reply + Reply + + + Reload + Reload + + + Rotate Windows + Rotate Windows + + + Rotation PB + Rotation PB + + + Rotation KB + Rotation KB + + + Save + Save + + + Send + Send + + + Spellchecker + Spellchecker + + + Split Screen + Split Screen + + + Support + Support + + + Task Panel + Task Panel + + + Terminal + Terminal + + + Tools + Tools + + + Travel + Travel + + + Video + Video + + + Word Processor + Word Processor + + + XFer + XFer + + + Zoom In + Zoom In + + + Zoom Out + Zoom Out + + + Away + Away + + + Messenger + Messenger + + + WebCam + WebCam + + + Mail Forward + Mail Forward + + + Pictures + Pictures + + + Music + Music + + + Battery + Battery + + + Bluetooth + Bluetooth + + + Wireless + Wireless + + + Ultra Wide Band + Ultra Wide Band + + + Audio Forward + Audio Forward + + + Audio Repeat + Audio Repeat + + + Audio Random Play + Audio Random Play + + + Subtitle + Subtitle + + + Audio Cycle Track + Audio Cycle Track + + + Time + Time + + + View + View + + + Top Menu + Top Menu + + + Suspend + Suspend + + + Hibernate + Hibernate + + + Print Screen + Print Screen + + + Page Up + Page Up + + + Page Down + Page Down + + + Caps Lock + Caps Lock + + + Num Lock + Num Lock + + + Number Lock + Number Lock + + + Scroll Lock + Scroll Lock + + + Insert + Insert + + + Delete + Delete + + + Escape + Escape + + + System Request + System Request + + + Select + Select + + + Yes + Yes + + + No + No + + + Context1 + Context1 + + + Context2 + Context2 + + + Context3 + Context3 + + + Context4 + Context4 + + + Call + Call + + + Hangup + Hangup + + + Flip + Flip + + + Ctrl + Ctrl + + + Shift + Shift + + + Alt + Alt + + + Meta + Meta + + + + + + + + + F%1 + F%1 + + + Home Page + Home Page + + + + QSlider + + Page left + Page left + + + Page up + Page up + + + Position + Position + + + Page right + Page right + + + Page down + Page down + + + + QSocks5SocketEngine + + Connection to proxy refused + Connection to proxy refused + + + Connection to proxy closed prematurely + Connection to proxy closed prematurely + + + Proxy host not found + Proxy host not found + + + Connection to proxy timed out + Connection to proxy timed out + + + Proxy authentication failed + Proxy authentication failed + + + Proxy authentication failed: %1 + Proxy authentication failed: %1 + + + SOCKS version 5 protocol error + SOCKS version 5 protocol error + + + General SOCKSv5 server failure + General SOCKSv5 server failure + + + Connection not allowed by SOCKSv5 server + Connection not allowed by SOCKSv5 server + + + TTL expired + TTL expired + + + SOCKSv5 command not supported + SOCKSv5 command not supported + + + Address type not supported + Address type not supported + + + Unknown SOCKSv5 proxy error code 0x%1 + Unknown SOCKSv5 proxy error code 0x%1 + + + Network operation timed out + Network operation timed out + + + + QSoftKeyManager + + Ok + Ok + + + Select + Select + + + Done + Done + + + Options + Options + + + Cancel + Cancel + + + Exit + Exit + + + + QSpinBox + + More + More + + + Less + Less + + + + QSql + + Delete + Delete + + + Delete this record? + Delete this record? + + + Yes + Yes + + + No + No + + + Insert + Insert + + + Update + Update + + + Save edits? + Save edits? + + + Cancel + Cancel + + + Confirm + Confirm + + + Cancel your edits? + Cancel your edits? + + + + QSslSocket + + Unable to write data: %1 + Unable to write data: %1 + + + Unable to decrypt data: %1 + Unable to decrypt data: %1 + + + Error while reading: %1 + Error while reading: %1 + + + Error during SSL handshake: %1 + Error during SSL handshake: %1 + + + Error creating SSL context (%1) + Error creating SSL context (%1) + + + Invalid or empty cipher list (%1) + Invalid or empty cipher list (%1) + + + Private key does not certify public key, %1 + Private key does not certify public key, %1 + + + Error creating SSL session, %1 + Error creating SSL session, %1 + + + Error creating SSL session: %1 + Error creating SSL session: %1 + + + Cannot provide a certificate with no key, %1 + Cannot provide a certificate with no key, %1 + + + Error loading local certificate, %1 + Error loading local certificate, %1 + + + Error loading private key, %1 + Error loading private key, %1 + + + No error + No error + + + The issuer certificate could not be found + The issuer certificate could not be found + + + The certificate signature could not be decrypted + The certificate signature could not be decrypted + + + The public key in the certificate could not be read + The public key in the certificate could not be read + + + The signature of the certificate is invalid + The signature of the certificate is invalid + + + The certificate is not yet valid + The certificate is not yet valid + + + The certificate has expired + The certificate has expired + + + The certificate's notBefore field contains an invalid time + The certificate's notBefore field contains an invalid time + + + The certificate's notAfter field contains an invalid time + The certificate's notAfter field contains an invalid time + + + The certificate is self-signed, and untrusted + The certificate is self-signed, and untrusted + + + The root certificate of the certificate chain is self-signed, and untrusted + The root certificate of the certificate chain is self-signed, and untrusted + + + The issuer certificate of a locally looked up certificate could not be found + The issuer certificate of a locally looked up certificate could not be found + + + No certificates could be verified + No certificates could be verified + + + One of the CA certificates is invalid + One of the CA certificates is invalid + + + The basicConstraints path length parameter has been exceeded + The basicConstraints path length parameter has been exceeded + + + The supplied certificate is unsuitable for this purpose + The supplied certificate is unsuitable for this purpose + + + The root CA certificate is not trusted for this purpose + The root CA certificate is not trusted for this purpose + + + The root CA certificate is marked to reject the specified purpose + The root CA certificate is marked to reject the specified purpose + + + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + + + The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate + The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate + + + The peer did not present any certificate + The peer did not present any certificate + + + The host name did not match any of the valid hosts for this certificate + The host name did not match any of the valid hosts for this certificate + + + Unknown error + Unknown error + + + + QStateMachine + + Missing initial state in compound state '%1' + Missing initial state in compound state '%1' + + + Missing default state in history state '%1' + Missing default state in history state '%1' + + + No common ancestor for targets and source of transition from state '%1' + No common ancestor for targets and source of transition from state '%1' + + + Unknown error + Unknown error + + + + QSystemSemaphore + + %1: does not exist + %1: does not exist + + + %1: out of resources + %1: out of resources + + + %1: permission denied + %1: permission denied + + + %1: already exists + %1: already exists + + + %1: unknown error %2 + %1: unknown error %2 + + + + QTDSDriver + + Unable to open connection + Unable to open connection + + + Unable to use database + Unable to use database + + + + QTabBar + + Scroll Left + Scroll Left + + + Scroll Right + Scroll Right + + + + QTcpServer + + Operation on socket is not supported + Operation on socket is not supported + + + + QTextControl + + &Undo + &Undo + + + &Redo + &Redo + + + Cu&t + Cu&t + + + &Copy + &Copy + + + Copy &Link Location + Copy &Link Location + + + &Paste + &Paste + + + Delete + Delete + + + Select All + Select All + + + + QToolButton + + Press + Press + + + Open + Open + + + + QUdpSocket + + This platform does not support IPv6 + This platform does not support IPv6 + + + + QUndoGroup + + Undo + Undo + + + Redo + Redo + + + + QUndoModel + + <empty> + <empty> + + + + QUndoStack + + Undo + Undo + + + Redo + Redo + + + + QUnicodeControlCharacterMenu + + LRM Left-to-right mark + LRM Left-to-right mark + + + RLM Right-to-left mark + RLM Right-to-left mark + + + ZWJ Zero width joiner + ZWJ Zero width joiner + + + ZWNJ Zero width non-joiner + ZWNJ Zero width non-joiner + + + ZWSP Zero width space + ZWSP Zero width space + + + LRE Start of left-to-right embedding + LRE Start of left-to-right embedding + + + RLE Start of right-to-left embedding + RLE Start of right-to-left embedding + + + LRO Start of left-to-right override + LRO Start of left-to-right override + + + RLO Start of right-to-left override + RLO Start of right-to-left override + + + PDF Pop directional formatting + PDF Pop directional formatting + + + Insert Unicode control character + Insert Unicode control character + + + + QWebFrame + + Request cancelled + Request cancelled + + + Request blocked + Request blocked + + + Cannot show URL + Cannot show URL + + + Frame load interrupted by policy change + Frame load interrupted by policy change + + + Cannot show mimetype + Cannot show mimetype + + + File does not exist + File does not exist + + + + QWebPage + + Submit + default label for Submit buttons in forms on web pages + Submit + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + Submit + + + Reset + default label for Reset buttons in forms on web pages + Reset + + + Choose File + title for file button used in HTML forms + Choose File + + + No file selected + text to display in file button used in HTML forms when no file is selected + No file selected + + + Open in New Window + Open in New Window context menu item + Open in New Window + + + Save Link... + Download Linked File context menu item + Save Link... + + + Copy Link + Copy Link context menu item + Copy Link + + + Open Image + Open Image in New Window context menu item + Open Image + + + Save Image + Download Image context menu item + Save Image + + + Copy Image + Copy Link context menu item + Copy Image + + + Open Frame + Open Frame in New Window context menu item + Open Frame + + + Copy + Copy context menu item + Copy + + + Go Back + Back context menu item + Go Back + + + Go Forward + Forward context menu item + Go Forward + + + Stop + Stop context menu item + Stop + + + Reload + Reload context menu item + Reload + + + Cut + Cut context menu item + Cut + + + Paste + Paste context menu item + Paste + + + No Guesses Found + No Guesses Found context menu item + No Guesses Found + + + Ignore + Ignore Spelling context menu item + Ignore + + + Add To Dictionary + Learn Spelling context menu item + Add To Dictionary + + + Search The Web + Search The Web context menu item + Search The Web + + + Look Up In Dictionary + Look Up in Dictionary context menu item + Look Up In Dictionary + + + Open Link + Open Link context menu item + Open Link + + + Ignore + Ignore Grammar context menu item + Ignore + + + Spelling + Spelling and Grammar context sub-menu item + Spelling + + + Show Spelling and Grammar + menu item title + Show Spelling and Grammar + + + Hide Spelling and Grammar + menu item title + Hide Spelling and Grammar + + + Check Spelling + Check spelling context menu item + Check Spelling + + + Check Spelling While Typing + Check spelling while typing context menu item + Check Spelling While Typing + + + Check Grammar With Spelling + Check grammar with spelling context menu item + Check Grammar With Spelling + + + Fonts + Font context sub-menu item + Fonts + + + Bold + Bold context menu item + Bold + + + Italic + Italic context menu item + Italic + + + Underline + Underline context menu item + Underline + + + Outline + Outline context menu item + Outline + + + Direction + Writing direction context sub-menu item + Direction + + + Text Direction + Text direction context sub-menu item + Text Direction + + + Default + Default writing direction context menu item + Default + + + Left to Right + Left to Right context menu item + Left to Right + + + Right to Left + Right to Left context menu item + Right to Left + + + Loading... + Media controller status message when the media is loading + Loading... + + + Live Broadcast + Media controller status message when watching a live broadcast + Live Broadcast + + + Audio Element + Media controller element + Audio Element + + + Video Element + Media controller element + Video Element + + + Mute Button + Media controller element + Mute Button + + + Unmute Button + Media controller element + Unmute Button + + + Play Button + Media controller element + Play Button + + + Pause Button + Media controller element + Pause Button + + + Slider + Media controller element + Slider + + + Slider Thumb + Media controller element + Slider Thumb + + + Rewind Button + Media controller element + Rewind Button + + + Return to Real-time Button + Media controller element + Return to Real-time Button + + + Elapsed Time + Media controller element + Elapsed Time + + + Remaining Time + Media controller element + Remaining Time + + + Status Display + Media controller element + Status Display + + + Fullscreen Button + Media controller element + Fullscreen Button + + + Seek Forward Button + Media controller element + Seek Forward Button + + + Seek Back Button + Media controller element + Seek Back Button + + + Audio element playback controls and status display + Media controller element + Audio element playback controls and status display + + + Video element playback controls and status display + Media controller element + Video element playback controls and status display + + + Mute audio tracks + Media controller element + Mute audio tracks + + + Unmute audio tracks + Media controller element + Unmute audio tracks + + + Begin playback + Media controller element + Begin playback + + + Pause playback + Media controller element + Pause playback + + + Movie time scrubber + Media controller element + Movie time scrubber + + + Movie time scrubber thumb + Media controller element + Movie time scrubber thumb + + + Rewind movie + Media controller element + Rewind movie + + + Return streaming movie to real-time + Media controller element + Return streaming movie to real-time + + + Current movie time + Media controller element + Current movie time + + + Remaining movie time + Media controller element + Remaining movie time + + + Current movie status + Media controller element + Current movie status + + + Play movie in full-screen mode + Media controller element + Play movie in full-screen mode + + + Seek quickly back + Media controller element + Seek quickly back + + + Seek quickly forward + Media controller element + Seek quickly forward + + + Indefinite time + Media time description + Indefinite time + + + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1 days %2 hours %3 minutes %4 seconds + + + %1 hours %2 minutes %3 seconds + Media time description + %1 hours %2 minutes %3 seconds + + + %1 minutes %2 seconds + Media time description + %1 minutes %2 seconds + + + %1 seconds + Media time description + %1 seconds + + + Inspect + Inspect Element context menu item + Inspect + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + No recent searches + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + Recent searches + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + Clear recent searches + + + Unknown + Unknown filesize FTP directory listing item + Unknown + + + Web Inspector - %2 + Web Inspector - %2 + + + %1 (%2x%3 pixels) + Title string for images + %1 (%2x%3 pixels) + + + Bad HTTP request + Bad HTTP request + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + This is a searchable index. Enter search keywords: + + + Scroll here + Scroll here + + + Left edge + Left edge + + + Top + Top + + + Right edge + Right edge + + + Bottom + Bottom + + + Page left + Page left + + + Page up + Page up + + + Page right + Page right + + + Page down + Page down + + + Scroll left + Scroll left + + + Scroll up + Scroll up + + + Scroll right + Scroll right + + + Scroll down + Scroll down + + + %n file(s) + number of chosen file + + %n file(s) + %n file(s) + + + + JavaScript Alert - %1 + JavaScript Alert - %1 + + + JavaScript Confirm - %1 + JavaScript Confirm - %1 + + + JavaScript Prompt - %1 + JavaScript Prompt - %1 + + + JavaScript Problem - %1 + JavaScript Problem - %1 + + + The script on this page appears to have a problem. Do you want to stop the script? + The script on this page appears to have a problem. Do you want to stop the script? + + + Move the cursor to the next character + Move the cursor to the next character + + + Move the cursor to the previous character + Move the cursor to the previous character + + + Move the cursor to the next word + Move the cursor to the next word + + + Move the cursor to the previous word + Move the cursor to the previous word + + + Move the cursor to the next line + Move the cursor to the next line + + + Move the cursor to the previous line + Move the cursor to the previous line + + + Move the cursor to the start of the line + Move the cursor to the start of the line + + + Move the cursor to the end of the line + Move the cursor to the end of the line + + + Move the cursor to the start of the block + Move the cursor to the start of the block + + + Move the cursor to the end of the block + Move the cursor to the end of the block + + + Move the cursor to the start of the document + Move the cursor to the start of the document + + + Move the cursor to the end of the document + Move the cursor to the end of the document + + + Select all + Select all + + + Select to the next character + Select to the next character + + + Select to the previous character + Select to the previous character + + + Select to the next word + Select to the next word + + + Select to the previous word + Select to the previous word + + + Select to the next line + Select to the next line + + + Select to the previous line + Select to the previous line + + + Select to the start of the line + Select to the start of the line + + + Select to the end of the line + Select to the end of the line + + + Select to the start of the block + Select to the start of the block + + + Select to the end of the block + Select to the end of the block + + + Select to the start of the document + Select to the start of the document + + + Select to the end of the document + Select to the end of the document + + + Delete to the start of the word + Delete to the start of the word + + + Delete to the end of the word + Delete to the end of the word + + + Insert a new paragraph + Insert a new paragraph + + + Insert a new line + Insert a new line + + + Paste and Match Style + Paste and Match Style + + + Remove formatting + Remove formatting + + + Strikethrough + Strikethrough + + + Subscript + Subscript + + + Superscript + Superscript + + + Insert Bulleted List + Insert Bulleted List + + + Insert Numbered List + Insert Numbered List + + + Indent + Indent + + + Outdent + Outdent + + + Center + Center + + + Justify + Justify + + + Align Left + Align Left + + + Align Right + Align Right + + + + QWhatsThisAction + + What's This? + What's This? + + + + QWidget + + * + * + + + + QWizard + + Cancel + Cancel + + + Help + Help + + + < &Back + < &Back + + + &Finish + &Finish + + + &Help + &Help + + + Go Back + Go Back + + + Continue + Continue + + + Commit + Commit + + + Done + Done + + + &Next + &Next + + + &Next > + &Next > + + + + QWorkspace + + &Restore + &Restore + + + &Move + &Move + + + &Size + &Size + + + Mi&nimize + Mi&nimize + + + Ma&ximize + Ma&ximize + + + &Close + &Close + + + Stay on &Top + Stay on &Top + + + Minimize + Minimize + + + Restore Down + Restore Down + + + Close + Close + + + Sh&ade + Sh&ade + + + %1 - [%2] + %1 - [%2] + + + &Unshade + &Unshade + + + + QXml + + no error occurred + no error occurred + + + error triggered by consumer + error triggered by consumer + + + unexpected end of file + unexpected end of file + + + more than one document type definition + more than one document type definition + + + error occurred while parsing element + error occurred while parsing element + + + tag mismatch + tag mismatch + + + error occurred while parsing content + error occurred while parsing content + + + unexpected character + unexpected character + + + invalid name for processing instruction + invalid name for processing instruction + + + version expected while reading the XML declaration + version expected while reading the XML declaration + + + wrong value for standalone declaration + wrong value for standalone declaration + + + error occurred while parsing document type definition + error occurred while parsing document type definition + + + letter is expected + letter is expected + + + error occurred while parsing comment + error occurred while parsing comment + + + error occurred while parsing reference + error occurred while parsing reference + + + internal general entity reference not allowed in DTD + internal general entity reference not allowed in DTD + + + external parsed general entity reference not allowed in attribute value + external parsed general entity reference not allowed in attribute value + + + external parsed general entity reference not allowed in DTD + external parsed general entity reference not allowed in DTD + + + unparsed entity reference in wrong context + unparsed entity reference in wrong context + + + recursive entities + recursive entities + + + error in the text declaration of an external entity + error in the text declaration of an external entity + + + encoding declaration or standalone declaration expected while reading the XML declaration + encoding declaration or standalone declaration expected while reading the XML declaration + + + standalone declaration expected while reading the XML declaration + standalone declaration expected while reading the XML declaration + + + + QXmlPatternistCLI + + Warning in %1, at line %2, column %3: %4 + Warning in %1, at line %2, column %3: %4 + + + Warning in %1: %2 + Warning in %1: %2 + + + Unknown location + Unknown location + + + Error %1 in %2, at line %3, column %4: %5 + Error %1 in %2, at line %3, column %4: %5 + + + Error %1 in %2: %3 + Error %1 in %2: %3 + + + + QXmlStream + + Extra content at end of document. + Extra content at end of document. + + + Invalid entity value. + Invalid entity value. + + + Invalid XML character. + Invalid XML character. + + + Sequence ']]>' not allowed in content. + Sequence ']]>' not allowed in content. + + + Namespace prefix '%1' not declared + Namespace prefix '%1' not declared + + + Attribute redefined. + Attribute redefined. + + + Unexpected character '%1' in public id literal. + Unexpected character '%1' in public id literal. + + + Invalid XML version string. + Invalid XML version string. + + + Unsupported XML version. + Unsupported XML version. + + + %1 is an invalid encoding name. + %1 is an invalid encoding name. + + + Encoding %1 is unsupported + Encoding %1 is unsupported + + + Standalone accepts only yes or no. + Standalone accepts only yes or no. + + + Invalid attribute in XML declaration. + Invalid attribute in XML declaration. + + + Premature end of document. + Premature end of document. + + + Invalid document. + Invalid document. + + + Expected + Expected + + + , but got ' + , but got ' + + + Unexpected ' + Unexpected ' + + + Expected character data. + Expected character data. + + + Recursive entity detected. + Recursive entity detected. + + + Start tag expected. + Start tag expected. + + + XML declaration not at start of document. + XML declaration not at start of document. + + + NDATA in parameter entity declaration. + NDATA in parameter entity declaration. + + + %1 is an invalid processing instruction name. + %1 is an invalid processing instruction name. + + + Invalid processing instruction name. + Invalid processing instruction name. + + + Illegal namespace declaration. + Illegal namespace declaration. + + + Invalid XML name. + Invalid XML name. + + + Opening and ending tag mismatch. + Opening and ending tag mismatch. + + + Reference to unparsed entity '%1'. + Reference to unparsed entity '%1'. + + + Entity '%1' not declared. + Entity '%1' not declared. + + + Reference to external entity '%1' in attribute value. + Reference to external entity '%1' in attribute value. + + + Invalid character reference. + Invalid character reference. + + + Encountered incorrectly encoded content. + Encountered incorrectly encoded content. + + + The standalone pseudo attribute must appear after the encoding. + The standalone pseudo attribute must appear after the encoding. + + + %1 is an invalid PUBLIC identifier. + %1 is an invalid PUBLIC identifier. + + + + QtXmlPatterns + + At least one component must be present. + At least one component must be present. + + + %1 is not a valid value of type %2. + %1 is not a valid value of type %2. + + + When casting to %1 from %2, the source value cannot be %3. + When casting to %1 from %2, the source value cannot be %3. + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + + + The data of a processing instruction cannot contain the string %1 + The data of a processing instruction cannot contain the string %1 + + + %1 is an invalid %2 + %1 is an invalid %2 + + + %1 is not a valid XML 1.0 character. + %1 is not a valid XML 1.0 character. + + + %1 was called. + %1 was called. + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + In the replacement string, %1 must be followed by at least one digit when not escaped. + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + In the replacement string, %1 can only be used to escape itself or %2, not %3 + + + %1 matches newline characters + %1 matches newline characters + + + Matches are case insensitive + Matches are case insensitive + + + %1 is an invalid regular expression pattern: %2 + %1 is an invalid regular expression pattern: %2 + + + It will not be possible to retrieve %1. + It will not be possible to retrieve %1. + + + The default collection is undefined + The default collection is undefined + + + %1 cannot be retrieved + %1 cannot be retrieved + + + The item %1 did not match the required type %2. + The item %1 did not match the required type %2. + + + %1 is an unknown schema type. + %1 is an unknown schema type. + + + A template with name %1 has already been declared. + A template with name %1 has already been declared. + + + Only one %1 declaration can occur in the query prolog. + Only one %1 declaration can occur in the query prolog. + + + The initialization of variable %1 depends on itself + The initialization of variable %1 depends on itself + + + The variable %1 is unused + The variable %1 is unused + + + Version %1 is not supported. The supported XQuery version is 1.0. + Version %1 is not supported. The supported XQuery version is 1.0. + + + No function with signature %1 is available + No function with signature %1 is available + + + It is not possible to redeclare prefix %1. + It is not possible to redeclare prefix %1. + + + Prefix %1 is already declared in the prolog. + Prefix %1 is already declared in the prolog. + + + The name of an option must have a prefix. There is no default namespace for options. + The name of an option must have a prefix. There is no default namespace for options. + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + + + The target namespace of a %1 cannot be empty. + The target namespace of a %1 cannot be empty. + + + The module import feature is not supported + The module import feature is not supported + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + + + A function already exists with the signature %1. + A function already exists with the signature %1. + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + No external functions are supported. All supported functions can be used directly, without first declaring them as external + + + The %1-axis is unsupported in XQuery + The %1-axis is unsupported in XQuery + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + The namespace URI cannot be the empty string when binding to a prefix, %1. + + + %1 is an invalid namespace URI. + %1 is an invalid namespace URI. + + + It is not possible to bind to the prefix %1 + It is not possible to bind to the prefix %1 + + + Two namespace declaration attributes have the same name: %1. + Two namespace declaration attributes have the same name: %1. + + + The namespace URI must be a constant and cannot use enclosed expressions. + The namespace URI must be a constant and cannot use enclosed expressions. + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + + + empty + empty + + + zero or one + zero or one + + + exactly one + exactly one + + + one or more + one or more + + + zero or more + zero or more + + + The focus is undefined. + The focus is undefined. + + + An attribute by name %1 has already been created. + An attribute by name %1 has already been created. + + + Network timeout. + Network timeout. + + + Element %1 can't be serialized because it appears outside the document element. + Element %1 can't be serialized because it appears outside the document element. + + + Year %1 is invalid because it begins with %2. + Year %1 is invalid because it begins with %2. + + + Day %1 is outside the range %2..%3. + Day %1 is outside the range %2..%3. + + + Month %1 is outside the range %2..%3. + Month %1 is outside the range %2..%3. + + + Overflow: Can't represent date %1. + Overflow: Can't represent date %1. + + + Day %1 is invalid for month %2. + Day %1 is invalid for month %2. + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + + + Time %1:%2:%3.%4 is invalid. + Time %1:%2:%3.%4 is invalid. + + + Overflow: Date can't be represented. + Overflow: Date can't be represented. + + + At least one time component must appear after the %1-delimiter. + At least one time component must appear after the %1-delimiter. + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + + + A value of type %1 cannot have an Effective Boolean Value. + A value of type %1 cannot have an Effective Boolean Value. + + + Value %1 of type %2 exceeds maximum (%3). + Value %1 of type %2 exceeds maximum (%3). + + + Value %1 of type %2 is below minimum (%3). + Value %1 of type %2 is below minimum (%3). + + + A value of type %1 must contain an even number of digits. The value %2 does not. + A value of type %1 must contain an even number of digits. The value %2 does not. + + + %1 is not valid as a value of type %2. + %1 is not valid as a value of type %2. + + + Operator %1 cannot be used on type %2. + Operator %1 cannot be used on type %2. + + + Operator %1 cannot be used on atomic values of type %2 and %3. + Operator %1 cannot be used on atomic values of type %2 and %3. + + + The namespace URI in the name for a computed attribute cannot be %1. + The namespace URI in the name for a computed attribute cannot be %1. + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + + + Type error in cast, expected %1, received %2. + Type error in cast, expected %1, received %2. + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + + + A comment cannot contain %1 + A comment cannot contain %1 + + + A comment cannot end with a %1. + A comment cannot end with a %1. + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + + + A library module cannot be evaluated directly. It must be imported from a main module. + A library module cannot be evaluated directly. It must be imported from a main module. + + + No template by name %1 exists. + No template by name %1 exists. + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + + + A positional predicate must evaluate to a single numeric value. + A positional predicate must evaluate to a single numeric value. + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + + + No namespace binding exists for the prefix %1 + No namespace binding exists for the prefix %1 + + + No namespace binding exists for the prefix %1 in %2 + No namespace binding exists for the prefix %1 in %2 + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + %1 must be followed by %2 or %3, not at the end of the replacement string. + + + %1 and %2 match the start and end of a line. + %1 and %2 match the start and end of a line. + + + Whitespace characters are removed, except when they appear in character classes + Whitespace characters are removed, except when they appear in character classes + + + %1 is an invalid flag for regular expressions. Valid flags are: + %1 is an invalid flag for regular expressions. Valid flags are: + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + + + Required cardinality is %1; got cardinality %2. + Required cardinality is %1; got cardinality %2. + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + + + The keyword %1 cannot occur with any other mode name. + The keyword %1 cannot occur with any other mode name. + + + No variable with name %1 exists + No variable with name %1 exists + + + The value of attribute %1 must be of type %2, which %3 isn't. + The value of attribute %1 must be of type %2, which %3 isn't. + + + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + + + A variable with name %1 has already been declared. + A variable with name %1 has already been declared. + + + No value is available for the external variable with name %1. + No value is available for the external variable with name %1. + + + A stylesheet function must have a prefixed name. + A stylesheet function must have a prefixed name. + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + + + An argument with name %1 has already been declared. Every argument name must be unique. + An argument with name %1 has already been declared. Every argument name must be unique. + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + + + In an XSL-T pattern, function %1 cannot have a third argument. + In an XSL-T pattern, function %1 cannot have a third argument. + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + + + %1 is an invalid template mode name. + %1 is an invalid template mode name. + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + None of the pragma expressions are supported. Therefore, a fallback expression must be present + + + Each name of a template parameter must be unique; %1 is duplicated. + Each name of a template parameter must be unique; %1 is duplicated. + + + No function with name %1 is available. + No function with name %1 is available. + + + %1 is not a valid numeric literal. + %1 is not a valid numeric literal. + + + W3C XML Schema identity constraint selector + W3C XML Schema identity constraint selector + + + W3C XML Schema identity constraint field + W3C XML Schema identity constraint field + + + A construct was encountered which is disallowed in the current language(%1). + A construct was encountered which is disallowed in the current language(%1). + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + + + An attribute with name %1 has already appeared on this element. + An attribute with name %1 has already appeared on this element. + + + A direct element constructor is not well-formed. %1 is ended with %2. + A direct element constructor is not well-formed. %1 is ended with %2. + + + The name %1 does not refer to any schema type. + The name %1 does not refer to any schema type. + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + + + %1 is not an atomic type. Casting is only possible to atomic types. + %1 is not an atomic type. Casting is only possible to atomic types. + + + %1 is not a valid name for a processing-instruction. + %1 is not a valid name for a processing-instruction. + + + The name of an extension expression must be in a namespace. + The name of an extension expression must be in a namespace. + + + Required type is %1, but %2 was found. + Required type is %1, but %2 was found. + + + Promoting %1 to %2 may cause loss of precision. + Promoting %1 to %2 may cause loss of precision. + + + It's not possible to add attributes after any other kind of node. + It's not possible to add attributes after any other kind of node. + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + + + Integer division (%1) by zero (%2) is undefined. + Integer division (%1) by zero (%2) is undefined. + + + Division (%1) by zero (%2) is undefined. + Division (%1) by zero (%2) is undefined. + + + Modulus division (%1) by zero (%2) is undefined. + Modulus division (%1) by zero (%2) is undefined. + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + %1 takes at most %n argument(s). %2 is therefore invalid. + %1 takes at most %n argument(s). %2 is therefore invalid. + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 requires at least %n argument(s). %2 is therefore invalid. + %1 requires at least %n argument(s). %2 is therefore invalid. + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + + + A default namespace declaration must occur before function, variable, and option declarations. + A default namespace declaration must occur before function, variable, and option declarations. + + + Namespace declarations must occur before function, variable, and option declarations. + Namespace declarations must occur before function, variable, and option declarations. + + + Module imports must occur before function, variable, and option declarations. + Module imports must occur before function, variable, and option declarations. + + + %1 is not a whole number of minutes. + %1 is not a whole number of minutes. + + + Attribute %1 can't be serialized because it appears at the top level. + Attribute %1 can't be serialized because it appears at the top level. + + + %1 is an unsupported encoding. + %1 is an unsupported encoding. + + + %1 contains octets which are disallowed in the requested encoding %2. + %1 contains octets which are disallowed in the requested encoding %2. + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + + + Ambiguous rule match. + Ambiguous rule match. + + + In a namespace constructor, the value for a namespace cannot be an empty string. + In a namespace constructor, the value for a namespace cannot be an empty string. + + + The prefix must be a valid %1, which %2 is not. + The prefix must be a valid %1, which %2 is not. + + + The prefix %1 cannot be bound. + The prefix %1 cannot be bound. + + + Only the prefix %1 can be bound to %2 and vice versa. + Only the prefix %1 can be bound to %2 and vice versa. + + + The parameter %1 is required, but no corresponding %2 is supplied. + The parameter %1 is required, but no corresponding %2 is supplied. + + + The parameter %1 is passed, but no corresponding %2 exists. + The parameter %1 is passed, but no corresponding %2 exists. + + + The URI cannot have a fragment + The URI cannot have a fragment + + + Element %1 is not allowed at this location. + Element %1 is not allowed at this location. + + + Text nodes are not allowed at this location. + Text nodes are not allowed at this location. + + + Parse error: %1 + Parse error: %1 + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + + + Unknown XSL-T attribute %1. + Unknown XSL-T attribute %1. + + + Attribute %1 and %2 are mutually exclusive. + Attribute %1 and %2 are mutually exclusive. + + + In a simplified stylesheet module, attribute %1 must be present. + In a simplified stylesheet module, attribute %1 must be present. + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + + + Element %1 must have at least one of the attributes %2 or %3. + Element %1 must have at least one of the attributes %2 or %3. + + + At least one mode must be specified in the %1-attribute on element %2. + At least one mode must be specified in the %1-attribute on element %2. + + + Element %1 must come last. + Element %1 must come last. + + + At least one %1-element must occur before %2. + At least one %1-element must occur before %2. + + + Only one %1-element can appear. + Only one %1-element can appear. + + + At least one %1-element must occur inside %2. + At least one %1-element must occur inside %2. + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + When attribute %1 is present on %2, a sequence constructor cannot be used. + + + Element %1 must have either a %2-attribute or a sequence constructor. + Element %1 must have either a %2-attribute or a sequence constructor. + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + + + Element %1 cannot have children. + Element %1 cannot have children. + + + Element %1 cannot have a sequence constructor. + Element %1 cannot have a sequence constructor. + + + The attribute %1 cannot appear on %2, when it is a child of %3. + The attribute %1 cannot appear on %2, when it is a child of %3. + + + A parameter in a function cannot be declared to be a tunnel. + A parameter in a function cannot be declared to be a tunnel. + + + This processor is not Schema-aware and therefore %1 cannot be used. + This processor is not Schema-aware and therefore %1 cannot be used. + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + + + Attribute %1 cannot have the value %2. + Attribute %1 cannot have the value %2. + + + The attribute %1 can only appear on the first %2 element. + The attribute %1 can only appear on the first %2 element. + + + At least one %1 element must appear as child of %2. + At least one %1 element must appear as child of %2. + + + %1 has inheritance loop in its base type %2. + %1 has inheritance loop in its base type %2. + + + Circular inheritance of base type %1. + Circular inheritance of base type %1. + + + Circular inheritance of union %1. + Circular inheritance of union %1. + + + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + + + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + + + Base type of simple type %1 cannot be complex type %2. + Base type of simple type %1 cannot be complex type %2. + + + Simple type %1 cannot have direct base type %2. + Simple type %1 cannot have direct base type %2. + + + Simple type %1 is not allowed to have base type %2. + Simple type %1 is not allowed to have base type %2. + + + Simple type %1 can only have simple atomic type as base type. + Simple type %1 can only have simple atomic type as base type. + + + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + + + Variety of item type of %1 must be either atomic or union. + Variety of item type of %1 must be either atomic or union. + + + Variety of member types of %1 must be atomic. + Variety of member types of %1 must be atomic. + + + %1 is not allowed to derive from %2 by list as the latter defines it as final. + %1 is not allowed to derive from %2 by list as the latter defines it as final. + + + Simple type %1 is only allowed to have %2 facet. + Simple type %1 is only allowed to have %2 facet. + + + Base type of simple type %1 must have variety of type list. + Base type of simple type %1 must have variety of type list. + + + Base type of simple type %1 has defined derivation by restriction as final. + Base type of simple type %1 has defined derivation by restriction as final. + + + Item type of base type does not match item type of %1. + Item type of base type does not match item type of %1. + + + Simple type %1 contains not allowed facet type %2. + Simple type %1 contains not allowed facet type %2. + + + %1 is not allowed to derive from %2 by union as the latter defines it as final. + %1 is not allowed to derive from %2 by union as the latter defines it as final. + + + %1 is not allowed to have any facets. + %1 is not allowed to have any facets. + + + Base type %1 of simple type %2 must have variety of union. + Base type %1 of simple type %2 must have variety of union. + + + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + + + Member type %1 cannot be derived from member type %2 of %3's base type %4. + Member type %1 cannot be derived from member type %2 of %3's base type %4. + + + Derivation method of %1 must be extension because the base type %2 is a simple type. + Derivation method of %1 must be extension because the base type %2 is a simple type. + + + Complex type %1 has duplicated element %2 in its content model. + Complex type %1 has duplicated element %2 in its content model. + + + Complex type %1 has non-deterministic content. + Complex type %1 has non-deterministic content. + + + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + + + Content model of complex type %1 is not a valid extension of content model of %2. + Content model of complex type %1 is not a valid extension of content model of %2. + + + Complex type %1 must have simple content. + Complex type %1 must have simple content. + + + Complex type %1 must have the same simple type as its base class %2. + Complex type %1 must have the same simple type as its base class %2. + + + Complex type %1 cannot be derived from base type %2%3. + Complex type %1 cannot be derived from base type %2%3. + + + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + + + Complex type %1 with simple content cannot be derived from complex base type %2. + Complex type %1 with simple content cannot be derived from complex base type %2. + + + Item type of simple type %1 cannot be a complex type. + Item type of simple type %1 cannot be a complex type. + + + Member type of simple type %1 cannot be a complex type. + Member type of simple type %1 cannot be a complex type. + + + %1 is not allowed to have a member type with the same name as itself. + %1 is not allowed to have a member type with the same name as itself. + + + %1 facet collides with %2 facet. + %1 facet collides with %2 facet. + + + %1 facet must have the same value as %2 facet of base type. + %1 facet must have the same value as %2 facet of base type. + + + %1 facet must be equal or greater than %2 facet of base type. + %1 facet must be equal or greater than %2 facet of base type. + + + %1 facet must be less than or equal to %2 facet of base type. + %1 facet must be less than or equal to %2 facet of base type. + + + %1 facet contains invalid regular expression + %1 facet contains invalid regular expression + + + Unknown notation %1 used in %2 facet. + Unknown notation %1 used in %2 facet. + + + %1 facet contains invalid value %2: %3. + %1 facet contains invalid value %2: %3. + + + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + + + %1 facet cannot be %2 if %3 facet of base type is %4. + %1 facet cannot be %2 if %3 facet of base type is %4. + + + %1 facet must be less than or equal to %2 facet. + %1 facet must be less than or equal to %2 facet. + + + %1 facet must be less than %2 facet of base type. + %1 facet must be less than %2 facet of base type. + + + %1 facet and %2 facet cannot appear together. + %1 facet and %2 facet cannot appear together. + + + %1 facet must be greater than %2 facet of base type. + %1 facet must be greater than %2 facet of base type. + + + %1 facet must be less than %2 facet. + %1 facet must be less than %2 facet. + + + %1 facet must be greater than or equal to %2 facet of base type. + %1 facet must be greater than or equal to %2 facet of base type. + + + Simple type contains not allowed facet %1. + Simple type contains not allowed facet %1. + + + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + + + Only %1 and %2 facets are allowed when derived by union. + Only %1 and %2 facets are allowed when derived by union. + + + %1 contains %2 facet with invalid data: %3. + %1 contains %2 facet with invalid data: %3. + + + Attribute group %1 contains attribute %2 twice. + Attribute group %1 contains attribute %2 twice. + + + Attribute group %1 contains two different attributes that both have types derived from %2. + Attribute group %1 contains two different attributes that both have types derived from %2. + + + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + Complex type %1 contains attribute %2 twice. + Complex type %1 contains attribute %2 twice. + + + Complex type %1 contains two different attributes that both have types derived from %2. + Complex type %1 contains two different attributes that both have types derived from %2. + + + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + Element %1 is not allowed to have a value constraint if its base type is complex. + Element %1 is not allowed to have a value constraint if its base type is complex. + + + Element %1 is not allowed to have a value constraint if its type is derived from %2. + Element %1 is not allowed to have a value constraint if its type is derived from %2. + + + Value constraint of element %1 is not of elements type: %2. + Value constraint of element %1 is not of elements type: %2. + + + Element %1 is not allowed to have substitution group affiliation as it is no global element. + Element %1 is not allowed to have substitution group affiliation as it is no global element. + + + Type of element %1 cannot be derived from type of substitution group affiliation. + Type of element %1 cannot be derived from type of substitution group affiliation. + + + Value constraint of attribute %1 is not of attributes type: %2. + Value constraint of attribute %1 is not of attributes type: %2. + + + Attribute %1 has value constraint but has type derived from %2. + Attribute %1 has value constraint but has type derived from %2. + + + %1 attribute in derived complex type must be %2 like in base type. + %1 attribute in derived complex type must be %2 like in base type. + + + Attribute %1 in derived complex type must have %2 value constraint like in base type. + Attribute %1 in derived complex type must have %2 value constraint like in base type. + + + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. + + + Attribute %1 in derived complex type must have %2 value constraint. + Attribute %1 in derived complex type must have %2 value constraint. + + + processContent of base wildcard must be weaker than derived wildcard. + processContent of base wildcard must be weaker than derived wildcard. + + + Element %1 exists twice with different types. + Element %1 exists twice with different types. + + + Particle contains non-deterministic wildcards. + Particle contains non-deterministic wildcards. + + + Base attribute %1 is required but derived attribute is not. + Base attribute %1 is required but derived attribute is not. + + + Type of derived attribute %1 cannot be validly derived from type of base attribute. + Type of derived attribute %1 cannot be validly derived from type of base attribute. + + + Value constraint of derived attribute %1 does not match value constraint of base attribute. + Value constraint of derived attribute %1 does not match value constraint of base attribute. + + + Derived attribute %1 does not exist in the base definition. + Derived attribute %1 does not exist in the base definition. + + + Derived attribute %1 does not match the wildcard in the base definition. + Derived attribute %1 does not match the wildcard in the base definition. + + + Base attribute %1 is required but missing in derived definition. + Base attribute %1 is required but missing in derived definition. + + + Derived definition contains an %1 element that does not exists in the base definition + Derived definition contains an %1 element that does not exists in the base definition + + + Derived wildcard is not a subset of the base wildcard. + Derived wildcard is not a subset of the base wildcard. + + + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + + + Attribute %1 from base type is missing in derived type. + Attribute %1 from base type is missing in derived type. + + + Type of derived attribute %1 differs from type of base attribute. + Type of derived attribute %1 differs from type of base attribute. + + + Base definition contains an %1 element that is missing in the derived definition + Base definition contains an %1 element that is missing in the derived definition + + + %1 references unknown %2 or %3 element %4. + %1 references unknown %2 or %3 element %4. + + + %1 references identity constraint %2 that is no %3 or %4 element. + %1 references identity constraint %2 that is no %3 or %4 element. + + + %1 has a different number of fields from the identity constraint %2 that it references. + %1 has a different number of fields from the identity constraint %2 that it references. + + + Base type %1 of %2 element cannot be resolved. + Base type %1 of %2 element cannot be resolved. + + + Item type %1 of %2 element cannot be resolved. + Item type %1 of %2 element cannot be resolved. + + + Member type %1 of %2 element cannot be resolved. + Member type %1 of %2 element cannot be resolved. + + + Type %1 of %2 element cannot be resolved. + Type %1 of %2 element cannot be resolved. + + + Base type %1 of complex type cannot be resolved. + Base type %1 of complex type cannot be resolved. + + + %1 cannot have complex base type that has a %2. + %1 cannot have complex base type that has a %2. + + + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. + + + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. + + + Type of %1 element must be a simple type, %2 is not. + Type of %1 element must be a simple type, %2 is not. + + + Substitution group %1 of %2 element cannot be resolved. + Substitution group %1 of %2 element cannot be resolved. + + + Substitution group %1 has circular definition. + Substitution group %1 has circular definition. + + + Duplicated element names %1 in %2 element. + Duplicated element names %1 in %2 element. + + + Reference %1 of %2 element cannot be resolved. + Reference %1 of %2 element cannot be resolved. + + + Circular group reference for %1. + Circular group reference for %1. + + + %1 element is not allowed in this scope + %1 element is not allowed in this scope + + + %1 element cannot have %2 attribute with value other than %3. + %1 element cannot have %2 attribute with value other than %3. + + + %1 element cannot have %2 attribute with value other than %3 or %4. + %1 element cannot have %2 attribute with value other than %3 or %4. + + + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. + + + Attribute group %1 has circular reference. + Attribute group %1 has circular reference. + + + %1 attribute in %2 must have %3 use like in base type %4. + %1 attribute in %2 must have %3 use like in base type %4. + + + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. + + + %1 has attribute wildcard but its base type %2 has not. + %1 has attribute wildcard but its base type %2 has not. + + + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. + + + Enumeration facet contains invalid content: {%1} is not a value of type %2. + Enumeration facet contains invalid content: {%1} is not a value of type %2. + + + Namespace prefix of qualified name %1 is not defined. + Namespace prefix of qualified name %1 is not defined. + + + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. + + + Empty particle cannot be derived from non-empty particle. + Empty particle cannot be derived from non-empty particle. + + + Derived particle is missing element %1. + Derived particle is missing element %1. + + + Derived element %1 is missing value constraint as defined in base particle. + Derived element %1 is missing value constraint as defined in base particle. + + + Derived element %1 has weaker value constraint than base particle. + Derived element %1 has weaker value constraint than base particle. + + + Fixed value constraint of element %1 differs from value constraint in base particle. + Fixed value constraint of element %1 differs from value constraint in base particle. + + + Derived element %1 cannot be nillable as base element is not nillable. + Derived element %1 cannot be nillable as base element is not nillable. + + + Block constraints of derived element %1 must not be more weaker than in the base element. + Block constraints of derived element %1 must not be more weaker than in the base element. + + + Simple type of derived element %1 cannot be validly derived from base element. + Simple type of derived element %1 cannot be validly derived from base element. + + + Complex type of derived element %1 cannot be validly derived from base element. + Complex type of derived element %1 cannot be validly derived from base element. + + + Element %1 is missing in derived particle. + Element %1 is missing in derived particle. + + + Element %1 does not match namespace constraint of wildcard in base particle. + Element %1 does not match namespace constraint of wildcard in base particle. + + + Wildcard in derived particle is not a valid subset of wildcard in base particle. + Wildcard in derived particle is not a valid subset of wildcard in base particle. + + + processContent of wildcard in derived particle is weaker than wildcard in base particle. + processContent of wildcard in derived particle is weaker than wildcard in base particle. + + + Derived particle allows content that is not allowed in the base particle. + Derived particle allows content that is not allowed in the base particle. + + + Can not process unknown element %1, expected elements are: %2. + Can not process unknown element %1, expected elements are: %2. + + + Element %1 is not allowed in this scope, possible elements are: %2. + Element %1 is not allowed in this scope, possible elements are: %2. + + + Child element is missing in that scope, possible child elements are: %1. + Child element is missing in that scope, possible child elements are: %1. + + + Document is not a XML schema. + Document is not a XML schema. + + + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + + + %1 attribute of %2 element contains invalid content: {%3}. + %1 attribute of %2 element contains invalid content: {%3}. + + + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + + + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + + + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + + + %1 element without %2 attribute is not allowed inside schema without target namespace. + %1 element without %2 attribute is not allowed inside schema without target namespace. + + + %1 element is not allowed inside %2 element if %3 attribute is present. + %1 element is not allowed inside %2 element if %3 attribute is present. + + + %1 element has neither %2 attribute nor %3 child element. + %1 element has neither %2 attribute nor %3 child element. + + + %1 element with %2 child element must not have a %3 attribute. + %1 element with %2 child element must not have a %3 attribute. + + + %1 attribute of %2 element must be %3 or %4. + %1 attribute of %2 element must be %3 or %4. + + + %1 attribute of %2 element must have a value of %3. + %1 attribute of %2 element must have a value of %3. + + + %1 attribute of %2 element must have a value of %3 or %4. + %1 attribute of %2 element must have a value of %3 or %4. + + + %1 element must not have %2 and %3 attribute together. + %1 element must not have %2 and %3 attribute together. + + + Content of %1 attribute of %2 element must not be from namespace %3. + Content of %1 attribute of %2 element must not be from namespace %3. + + + %1 attribute of %2 element must not be %3. + %1 attribute of %2 element must not be %3. + + + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + + + Specifying use='prohibited' inside an attribute group has no effect. + Specifying use='prohibited' inside an attribute group has no effect. + + + %1 element must have either %2 or %3 attribute. + %1 element must have either %2 or %3 attribute. + + + %1 element must have either %2 attribute or %3 or %4 as child element. + %1 element must have either %2 attribute or %3 or %4 as child element. + + + %1 element requires either %2 or %3 attribute. + %1 element requires either %2 or %3 attribute. + + + Text or entity references not allowed inside %1 element + Text or entity references not allowed inside %1 element + + + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + + + %1 element is not allowed in this context. + %1 element is not allowed in this context. + + + %1 attribute of %2 element has larger value than %3 attribute. + %1 attribute of %2 element has larger value than %3 attribute. + + + Prefix of qualified name %1 is not defined. + Prefix of qualified name %1 is not defined. + + + %1 attribute of %2 element must either contain %3 or the other values. + %1 attribute of %2 element must either contain %3 or the other values. + + + Component with ID %1 has been defined previously. + Component with ID %1 has been defined previously. + + + Element %1 already defined. + Element %1 already defined. + + + Attribute %1 already defined. + Attribute %1 already defined. + + + Type %1 already defined. + Type %1 already defined. + + + Attribute group %1 already defined. + Attribute group %1 already defined. + + + Element group %1 already defined. + Element group %1 already defined. + + + Notation %1 already defined. + Notation %1 already defined. + + + Identity constraint %1 already defined. + Identity constraint %1 already defined. + + + Duplicated facets in simple type %1. + Duplicated facets in simple type %1. + + + %1 is not valid according to %2. + %1 is not valid according to %2. + + + String content does not match the length facet. + String content does not match the length facet. + + + String content does not match the minLength facet. + String content does not match the minLength facet. + + + String content does not match the maxLength facet. + String content does not match the maxLength facet. + + + String content does not match pattern facet. + String content does not match pattern facet. + + + String content is not listed in the enumeration facet. + String content is not listed in the enumeration facet. + + + Signed integer content does not match the maxInclusive facet. + Signed integer content does not match the maxInclusive facet. + + + Signed integer content does not match the maxExclusive facet. + Signed integer content does not match the maxExclusive facet. + + + Signed integer content does not match the minInclusive facet. + Signed integer content does not match the minInclusive facet. + + + Signed integer content does not match the minExclusive facet. + Signed integer content does not match the minExclusive facet. + + + Signed integer content is not listed in the enumeration facet. + Signed integer content is not listed in the enumeration facet. + + + Signed integer content does not match pattern facet. + Signed integer content does not match pattern facet. + + + Signed integer content does not match in the totalDigits facet. + Signed integer content does not match in the totalDigits facet. + + + Unsigned integer content does not match the maxInclusive facet. + Unsigned integer content does not match the maxInclusive facet. + + + Unsigned integer content does not match the maxExclusive facet. + Unsigned integer content does not match the maxExclusive facet. + + + Unsigned integer content does not match the minInclusive facet. + Unsigned integer content does not match the minInclusive facet. + + + Unsigned integer content does not match the minExclusive facet. + Unsigned integer content does not match the minExclusive facet. + + + Unsigned integer content is not listed in the enumeration facet. + Unsigned integer content is not listed in the enumeration facet. + + + Unsigned integer content does not match pattern facet. + Unsigned integer content does not match pattern facet. + + + Unsigned integer content does not match in the totalDigits facet. + Unsigned integer content does not match in the totalDigits facet. + + + Double content does not match the maxInclusive facet. + Double content does not match the maxInclusive facet. + + + Double content does not match the maxExclusive facet. + Double content does not match the maxExclusive facet. + + + Double content does not match the minInclusive facet. + Double content does not match the minInclusive facet. + + + Double content does not match the minExclusive facet. + Double content does not match the minExclusive facet. + + + Double content is not listed in the enumeration facet. + Double content is not listed in the enumeration facet. + + + Double content does not match pattern facet. + Double content does not match pattern facet. + + + Decimal content does not match in the fractionDigits facet. + Decimal content does not match in the fractionDigits facet. + + + Decimal content does not match in the totalDigits facet. + Decimal content does not match in the totalDigits facet. + + + Date time content does not match the maxInclusive facet. + Date time content does not match the maxInclusive facet. + + + Date time content does not match the maxExclusive facet. + Date time content does not match the maxExclusive facet. + + + Date time content does not match the minInclusive facet. + Date time content does not match the minInclusive facet. + + + Date time content does not match the minExclusive facet. + Date time content does not match the minExclusive facet. + + + Date time content is not listed in the enumeration facet. + Date time content is not listed in the enumeration facet. + + + Date time content does not match pattern facet. + Date time content does not match pattern facet. + + + Duration content does not match the maxInclusive facet. + Duration content does not match the maxInclusive facet. + + + Duration content does not match the maxExclusive facet. + Duration content does not match the maxExclusive facet. + + + Duration content does not match the minInclusive facet. + Duration content does not match the minInclusive facet. + + + Duration content does not match the minExclusive facet. + Duration content does not match the minExclusive facet. + + + Duration content is not listed in the enumeration facet. + Duration content is not listed in the enumeration facet. + + + Duration content does not match pattern facet. + Duration content does not match pattern facet. + + + Boolean content does not match pattern facet. + Boolean content does not match pattern facet. + + + Binary content does not match the length facet. + Binary content does not match the length facet. + + + Binary content does not match the minLength facet. + Binary content does not match the minLength facet. + + + Binary content does not match the maxLength facet. + Binary content does not match the maxLength facet. + + + Binary content is not listed in the enumeration facet. + Binary content is not listed in the enumeration facet. + + + Invalid QName content: %1. + Invalid QName content: %1. + + + QName content is not listed in the enumeration facet. + QName content is not listed in the enumeration facet. + + + QName content does not match pattern facet. + QName content does not match pattern facet. + + + Notation content is not listed in the enumeration facet. + Notation content is not listed in the enumeration facet. + + + List content does not match length facet. + List content does not match length facet. + + + List content does not match minLength facet. + List content does not match minLength facet. + + + List content does not match maxLength facet. + List content does not match maxLength facet. + + + List content is not listed in the enumeration facet. + List content is not listed in the enumeration facet. + + + List content does not match pattern facet. + List content does not match pattern facet. + + + Union content is not listed in the enumeration facet. + Union content is not listed in the enumeration facet. + + + Union content does not match pattern facet. + Union content does not match pattern facet. + + + Data of type %1 are not allowed to be empty. + Data of type %1 are not allowed to be empty. + + + Element %1 is missing child element. + Element %1 is missing child element. + + + There is one IDREF value with no corresponding ID: %1. + There is one IDREF value with no corresponding ID: %1. + + + Loaded schema file is invalid. + Loaded schema file is invalid. + + + %1 contains invalid data. + %1 contains invalid data. + + + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + + + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + + + No schema defined for validation. + No schema defined for validation. + + + No definition for element %1 available. + No definition for element %1 available. + + + Specified type %1 is not known to the schema. + Specified type %1 is not known to the schema. + + + Element %1 is not defined in this scope. + Element %1 is not defined in this scope. + + + Declaration for element %1 does not exist. + Declaration for element %1 does not exist. + + + Element %1 contains invalid content. + Element %1 contains invalid content. + + + Element %1 is declared as abstract. + Element %1 is declared as abstract. + + + Element %1 is not nillable. + Element %1 is not nillable. + + + Attribute %1 contains invalid data: %2 + Attribute %1 contains invalid data: %2 + + + Element contains content although it is nillable. + Element contains content although it is nillable. + + + Fixed value constraint not allowed if element is nillable. + Fixed value constraint not allowed if element is nillable. + + + Element %1 cannot contain other elements, as it has a fixed content. + Element %1 cannot contain other elements, as it has a fixed content. + + + Specified type %1 is not validly substitutable with element type %2. + Specified type %1 is not validly substitutable with element type %2. + + + Complex type %1 is not allowed to be abstract. + Complex type %1 is not allowed to be abstract. + + + Element %1 contains not allowed attributes. + Element %1 contains not allowed attributes. + + + Element %1 contains not allowed child element. + Element %1 contains not allowed child element. + + + Content of element %1 does not match its type definition: %2. + Content of element %1 does not match its type definition: %2. + + + Content of element %1 does not match defined value constraint. + Content of element %1 does not match defined value constraint. + + + Element %1 contains not allowed child content. + Element %1 contains not allowed child content. + + + Element %1 contains not allowed text content. + Element %1 contains not allowed text content. + + + Element %1 is missing required attribute %2. + Element %1 is missing required attribute %2. + + + Attribute %1 does not match the attribute wildcard. + Attribute %1 does not match the attribute wildcard. + + + Declaration for attribute %1 does not exist. + Declaration for attribute %1 does not exist. + + + Element %1 contains two attributes of type %2. + Element %1 contains two attributes of type %2. + + + Attribute %1 contains invalid content. + Attribute %1 contains invalid content. + + + Element %1 contains unknown attribute %2. + Element %1 contains unknown attribute %2. + + + Content of attribute %1 does not match its type definition: %2. + Content of attribute %1 does not match its type definition: %2. + + + Content of attribute %1 does not match defined value constraint. + Content of attribute %1 does not match defined value constraint. + + + Non-unique value found for constraint %1. + Non-unique value found for constraint %1. + + + Key constraint %1 contains absent fields. + Key constraint %1 contains absent fields. + + + Key constraint %1 contains references nillable element %2. + Key constraint %1 contains references nillable element %2. + + + No referenced value found for key reference %1. + No referenced value found for key reference %1. + + + More than one value found for field %1. + More than one value found for field %1. + + + Field %1 has no simple type. + Field %1 has no simple type. + + + ID value '%1' is not unique. + ID value '%1' is not unique. + + + '%1' attribute contains invalid QName content: %2. + '%1' attribute contains invalid QName content: %2. + + + diff --git a/config.profiles/symbian/translations/qt_fr_symbian.ts b/config.profiles/symbian/translations/qt_fr_symbian.ts new file mode 100644 index 0000000..c0b0699 --- /dev/null +++ b/config.profiles/symbian/translations/qt_fr_symbian.ts @@ -0,0 +1,8519 @@ + + + + + + CloseButton + + Close Tab + Fermer l'onglet + + + + FakeReply + + Fake error ! + Fausse erreur! + + + Invalid URL + URL non valide + + + + Phonon:: + + Notifications + Notifications + + + Music + Musique + + + Video + Vidéo + + + Communication + Communication + + + Games + Jeux + + + Accessibility + Accessibilité + + + + Phonon::AudioOutput + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + <html>L'appareil de lecture audio <b>%1</b> ne fonctionne pas.<br/>Retour à <b>%2</b>.</html> + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + <html>Basculement vers l'appareil de lecture audio <b>%1</b><br/>qui vient juste d'être disponible et dont le niveau de préférence est plus élevé.</html> + + + Revert back to device '%1' + Revenir à l'appareil '%1' + + + + Phonon::Gstreamer::Backend + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + Attention: Vous n'avez apparemment pas installé le paquet gstreamer0.10-plugins-good. +Des fonctionnalités vidéo ont été desactivées. + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + Attention: Vous n'avez apparemment pas installées les plugins de base de GStreamer. +Le support audio et vidéo est désactivé + + + + Phonon::Gstreamer::MediaObject + + Cannot start playback. + +Check your GStreamer installation and make sure you +have libgstreamer-plugins-base installed. + + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + Un codec requis est manquant. Vous devez installer le codec suivant pour jouer le contenu: %0 + + + Could not open media source. + Impossible d'ouvrir le média source. + + + Invalid source type. + Type de source invalide. + + + Could not locate media source. + Impossible de localiser le média source. + + + Could not open audio device. The device is already in use. + Impossible d'ouvrir le périphérique audio. Celui-ci est déjà en cours d'utilisation. + + + Could not decode media source. + Impossible de décoder le média source. + + + + Phonon::MMF + + Audio Output + Sortie audio + + + The audio output device + Appareil de sortie audio + + + No error + Aucune erreur + + + Not found + Introuvable + + + Out of memory + Mémoire insuffisante + + + Not supported + Non supporté + + + Overflow + Dépassement + + + Underflow + Soupassement + + + Already exists + Existe déjà + + + Path not found + Chemin introuvable + + + In use + Utilisé + + + Not ready + Pas prêt + + + Access denied + Accès refusé + + + Could not connect + Connexion impossible + + + Disconnected + Déconnecté + + + Permission denied + Autorisation refusée + + + Insufficient bandwidth + Bande passante insuffisante + + + Network unavailable + Réseau non disponible + + + Network communication error + Erreur de communication réseau + + + Streaming not supported + Streaming non supporté + + + Server alert + Alerte serveur + + + Invalid protocol + Protocole non valide + + + Invalid URL + URL non valide + + + Multicast error + Erreur multicast + + + Proxy server error + Erreur du serveur proxy + + + Proxy server not supported + Serveur proxy non supporté + + + Audio output error + Erreur de sortie audio + + + Video output error + Erreur de sortie vidéo + + + Decoder error + Erreur du décodeur + + + Audio or video components could not be played + Les composants audio ou vidéo n'ont pas pu être lus + + + DRM error + Erreur GDN + + + Unknown error (%1) + Erreur inconnue (%1) + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + Pas prêt pour lecture + + + Error opening file + Erreur lors de l'ouverture du fichier + + + Error opening URL + Erreur lors de l'ouverture de l'URL + + + Setting volume failed + Le réglage du volume a échoué + + + Playback complete + Lecture terminée + + + + Phonon::MMF::AudioEqualizer + + %1 Hz + %1 Hz + + + + Phonon::MMF::AudioPlayer + + Getting position failed + L'obtention de la position a échoué + + + Opening clip failed + L'ouverture du clip a échoué + + + + Phonon::MMF::EffectFactory + + Enabled + Activé + + + + Phonon::MMF::EnvironmentalReverb + + Decay HF ratio (%) + Ratio HF du déclin (%) + + + Decay time (ms) + Temps de déclin (ms) + + + Density (%) + Densité (%) + + + Diffusion (%) + Diffusion (%) + + + Reflections delay (ms) + Délai réflexions (ms) + + + Reflections level (mB) + Niveau réflexions (mB) + + + Reverb delay (ms) + Délai de réverbération (ms) + + + Reverb level (mB) + Niveau de réverbération (mB) + + + Room HF level + Niveau HF pièce + + + Room level (mB) + Niveau pièce (mB) + + + + Phonon::MMF::MediaObject + + Error opening source: type not supported + Erreur lors de l'ouverture de la source: type non supporté + + + Error opening source: media type could not be determined + Erreur lors de l'ouverture de la source: type de média non déterminé + + + + Phonon::MMF::StereoWidening + + Level (%) + Niveau (%) + + + + Phonon::MMF::VideoPlayer + + Pause failed + La mise en pause a échoué + + + Seek failed + La recherche a échoué + + + Getting position failed + L'obtention de la position a échoué + + + Opening clip failed + L'ouverture du clip a échoué + + + Buffering clip failed + La mise en mémoire tampon du clip a échoué + + + Video display error + Erreur de l'affichage vidéo + + + + Phonon::VolumeSlider + + Volume: %1% + Volume: %1% + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + Utilisez le slider pour ajuster le volume. La position la plus à gauche est 0%, la plus à droite est %1% + + + Muted + Son coupé + + + + Q3Accel + + %1, %2 not defined + La séquence %1, %2 n'est pas définie + + + Ambiguous %1 not handled + Séquence ambiguë %1 non traitée + + + + Q3DataTable + + True + Vrai + + + False + Faux + + + Insert + Insérer + + + Update + Actualiser + + + Delete + Supprimer + + + + Q3FileDialog + + Copy or Move a File + Copie ou déplace un fichier + + + Read: %1 + Lecture : %1 + + + Write: %1 + Écriture : %1 + + + Cancel + Annuler + + + All Files (*) + Tous les fichiers (*) + + + Name + Nom + + + Size + Taille + + + Type + Type + + + Date + Date + + + Attributes + Attributs + + + &OK + &OK + + + Look &in: + Chercher &dans : + + + File &name: + &Nom de fichier : + + + File &type: + &Type de fichier : + + + Back + Précédent (historique) + + + One directory up + Aller au dossier parent + + + Create New Folder + Créer un nouveau dossier + + + List View + Affichage liste + + + Detail View + Affichage détaillé + + + Preview File Info + Informations du fichier prévisualisé + + + Preview File Contents + Contenu du fichier prévisualisé + + + Read-write + Lecture-écriture + + + Read-only + Lecture seule + + + Write-only + Écriture seule + + + Inaccessible + Inaccessible + + + Symlink to File + Lien symbolique vers un fichier + + + Symlink to Directory + Lien symbolique vers un dossier + + + Symlink to Special + Lien symbolique vers un fichier spécial + + + File + Fichier + + + Dir + Dossier + + + Special + Fichier spécial + + + Open + Ouvrir + + + Save As + Enregistrer sous + + + &Open + &Ouvrir + + + &Save + &Enregistrer + + + &Rename + &Renommer + + + &Delete + Suppri&mer + + + R&eload + R&echarger + + + Sort by &Name + Trier par &nom + + + Sort by &Size + Trier par ta&ille + + + Sort by &Date + Trier par &date + + + &Unsorted + &Non trié + + + Sort + Tri + + + Show &hidden files + Afficher les fic&hiers cachés + + + the file + le fichier + + + the directory + le dossier + + + the symlink + le lien symbolique + + + Delete %1 + Supprimer %1 + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + <qt>Voulez-vous vraiment supprimer %1 "%2" ?</qt> + + + &Yes + &Oui + + + &No + &Non + + + New Folder 1 + Nouveau dossier 1 + + + New Folder + Nouveau dossier + + + New Folder %1 + Nouveau dossier %1 + + + Find Directory + Chercher dans le dossier + + + Directories + Dossiers + + + Directory: + Dossier : + + + Error + Erreur + + + %1 +File not found. +Check path and filename. + %1 +Impossible de trouver le fichier. +Vérifier le chemin et le nom du fichier. + + + All Files (*.*) + Tous les fichiers (*.*) + + + Open + Ouvrir + + + Select a Directory + Sélectionner un dossier + + + + Q3LocalFs + + Could not read directory +%1 + Impossible de lire le dossier +%1 + + + Could not create directory +%1 + Impossible de créer le dossier +%1 + + + Could not remove file or directory +%1 + Impossible de supprimer le fichier ou dossier +%1 + + + Could not rename +%1 +to +%2 + Impossible de renommer +%1 +en +%2 + + + Could not open +%1 + Impossible d'ouvrir +%1 + + + Could not write +%1 + Impossible d'écrire +%1 + + + + Q3MainWindow + + Line up + Aligner + + + Customize... + Personnaliser... + + + + Q3NetworkProtocol + + Operation stopped by the user + Opération interrompue par l'utilisateur + + + + Q3ProgressDialog + + Cancel + Annuler + + + + Q3TabDialog + + OK + OK + + + Apply + Appliquer + + + Help + Aide + + + Defaults + Par défaut + + + Cancel + Annuler + + + + Q3TextEdit + + &Undo + &Annuler + + + &Redo + &Rétablir + + + Cu&t + Co&uper + + + &Copy + Cop&ier + + + &Paste + Co&ller + + + Clear + Effacer + + + Select All + Tout sélectionner + + + + Q3TitleBar + + System + Système + + + Restore up + Restaurer en haut + + + Minimize + Réduire + + + Restore down + Restaurer en bas + + + Maximize + Maximiser + + + Close + Fermer + + + Contains commands to manipulate the window + Contient des commandes pour manipuler la fenêtre + + + Puts a minimized window back to normal + + + + Moves the window out of the way + Déplace la fenêtre à l'écart + + + Puts a maximized window back to normal + Rend à une fenêtre minimisée son aspect normal + + + Makes the window full screen + Affiche la fenêtre en plein écran + + + Closes the window + Ferme la fenêtre + + + Displays the name of the window and contains controls to manipulate it + Affiche le nom de la fenêtre et contient des contrôles pour la manipuler + + + + Q3ToolBar + + More... + Reste... + + + + Q3UrlOperator + + The protocol `%1' is not supported + Le protocole '%1' n'est pas géré + + + The protocol `%1' does not support listing directories + Le protocole `%1' ne permet pas de lister les fichiers d'un dossier + + + The protocol `%1' does not support creating new directories + Le protocole `%1' ne permet pas de créer de nouveaux dossiers + + + The protocol `%1' does not support removing files or directories + Le protocole `%1' ne permet pas de supprimer des fichiers ou des dossiers + + + The protocol `%1' does not support renaming files or directories + Le protocole `%1' ne permet pas de renommer des fichiers ou des dossiers + + + The protocol `%1' does not support getting files + Le protocole `%1' ne permet pas de recevoir des fichiers + + + The protocol `%1' does not support putting files + Le protocole `%1' ne permet pas d'envoyer des fichiers + + + The protocol `%1' does not support copying or moving files or directories + Le protocole `%1' ne permet pas de copier ou de déplacer des fichiers + + + (unknown) + (inconnu) + + + + Q3Wizard + + &Cancel + &Annuler + + + < &Back + < &Précédent + + + &Next > + &Suivant > + + + &Finish + &Terminer + + + &Help + &Aide + + + + QAbstractSocket + + Host not found + Hôte introuvable + + + Connection refused + Connexion refusée + + + Connection timed out + Connexion expirée + + + Operation on socket is not supported + Opération sur socket non supportée + + + Socket operation timed out + Opération socket expirée + + + Socket is not connected + Le socket n'est pas connecté + + + Network unreachable + Réseau impossible à rejoindre + + + + QAbstractSpinBox + + &Step up + &Augmenter + + + Step &down + &Diminuer + + + &Select All + Tout &sélectionner + + + + QAccessibleButton + + Press + Appuyer + + + + QApplication + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + LTR + + + Executable '%1' requires Qt %2, found Qt %3. + L'exécutable '%1' requiert Qt %2 (Qt %3 présent). + + + Incompatible Qt Library Error + Erreur : bibliothèque Qt incompatible + + + Activate + Activer + + + Activates the program's main window + Active la fenêtre principale du programme + + + + QAxSelect + + Select ActiveX Control + Sélectionner un contrôle ActiveX + + + OK + OK + + + &Cancel + &Annuler + + + COM &Object: + &Objet COM : + + + + QCheckBox + + Uncheck + Décocher + + + Check + Cocher + + + Toggle + Changer + + + + QColorDialog + + Hu&e: + &Teinte : + + + &Sat: + &Saturation : + + + &Val: + &Valeur : + + + &Red: + &Rouge : + + + &Green: + &Vert : + + + Bl&ue: + Ble&u : + + + A&lpha channel: + Canal a&lpha : + + + Select Color + Sélectionner une couleur + + + &Basic colors + Couleurs de &base + + + &Custom colors + &Couleurs personnalisées + + + &Add to Custom Colors + &Ajouter aux couleurs personnalisées + + + + QComboBox + + Open + Ouvrir + + + False + Faux + + + True + Vrai + + + Close + Fermer + + + + QCoreApplication + + %1: key is empty + QSystemSemaphore + %1: clé vide + + + %1: unable to make key + QSystemSemaphore + %1: impossible de créer la clé + + + %1: ftok failed + QSystemSemaphore + %1: ftok a échoué + + + %1: already exists + QSystemSemaphore + %1: existe déjà + + + %1: does not exist + QSystemSemaphore + %1: n'existe pas + + + %1: out of resources + QSystemSemaphore + %1: plus de ressources disponibles + + + %1: unknown error %2 + QSystemSemaphore + %1: erreur inconnue %2 + + + + QDB2Driver + + Unable to connect + Incapable d'établir une connexion + + + Unable to commit transaction + Incapable de soumettre la transaction + + + Unable to rollback transaction + Incapable d'annuler la transaction + + + Unable to set autocommit + Impossible d'activer l'auto-soumission + + + + QDB2Result + + Unable to execute statement + Impossible d'exécuter la requête + + + Unable to prepare statement + Impossible de prépare la requête + + + Unable to bind variable + Impossible d'attacher la variable + + + Unable to fetch record %1 + Impossible de récupérer l'enregistrement %1 + + + Unable to fetch next + Impossible de récupérer le suivant + + + Unable to fetch first + Impossible de récupérer le premier + + + + QDateTimeEdit + + AM + AM + + + am + am + + + PM + PM + + + pm + pm + + + + QDial + + QDial + QDial + + + SpeedoMeter + Tachymètre + + + SliderHandle + Poignée + + + + QDialog + + What's This? + Qu'est-ce que c'est ? + + + Done + Terminer + + + + QDialogButtonBox + + OK + OK + + + Save + Enregistrer + + + &Save + Enregi&strer + + + Open + Ouvrir + + + Cancel + Annuler + + + &Cancel + &Annuler + + + Close + Fermer + + + &Close + &Fermer + + + Apply + Appliquer + + + Reset + Réinitialiser + + + Help + Aide + + + Don't Save + Ne pas enregistrer + + + Discard + Ne pas enregistrer + + + &Yes + &Oui + + + Yes to &All + Oui à &tout + + + &No + &Non + + + N&o to All + Non à to&ut + + + Save All + Tout Enregistrer + + + Abort + Abandonner + + + Retry + Réessayer + + + Ignore + Ignorer + + + Restore Defaults + Restaurer les valeurs par défaut + + + Close without Saving + Fermer sans sauvegarder + + + &OK + &OK + + + + QDirModel + + Name + Nom + + + Size + Taille + + + Kind + Match OS X Finder + Type + + + Type + All other platforms + Type + + + Date Modified + Dernière Modification + + + + QDockWidget + + Close + Fermer + + + Dock + Attacher + + + Float + Détacher + + + + QDoubleSpinBox + + More + Plus + + + Less + Moins + + + + QErrorMessage + + &Show this message again + &Afficher ce message de nouveau + + + &OK + &OK + + + Debug Message: + Message de débogage: + + + Warning: + Avertissement: + + + Fatal Error: + Erreur fatale: + + + + QFile + + Destination file exists + Le fichier destination existe + + + Will not rename sequential file using block copy + Ne renommera pas le fichier séquentiel avec la copie bloc + + + Cannot remove source file + Impossible de supprimer le fichier source + + + Cannot open %1 for input + Impossible d'ouvrir %1 pour lecture + + + Cannot open for output + Impossible d'ouvrir pour écriture + + + Failure to write block + Impossible d'écrire un bloc + + + Cannot create %1 for output + Impossible de créer %1 pour écriture + + + + QFileDialog + + All Files (*) + Tous les fichiers (*) + + + Back + Précédent (historique) + + + List View + Affichage liste + + + Detail View + Affichage détaillé + + + File + Fichier + + + Open + Ouvrir + + + Save As + Enregistrer sous + + + &Open + &Ouvrir + + + &Save + &Enregistrer + + + Recent Places + Emplacements récents + + + &Rename + &Renommer + + + &Delete + Suppri&mer + + + Show &hidden files + Afficher les fic&hiers cachés + + + New Folder + Nouveau dossier + + + Find Directory + Chercher dans le dossier + + + Directories + Dossiers + + + All Files (*.*) + Tous les fichiers (*.*) + + + Directory: + Dossier : + + + %1 already exists. +Do you want to replace it? + Le fichier %1 existe déjà. Voulez-vous l'écraser ? + + + %1 +File not found. +Please verify the correct file name was given. + %1 +Fichier introuvable. +Veuillez vérifier que le nom du fichier est correct. + + + My Computer + Poste de travail + + + Parent Directory + Dossier parent + + + Files of type: + Fichiers de type : + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Dossier introuvable. +Veuillez vérifier que le nom du dossier est correct. + + + '%1' is write protected. +Do you want to delete it anyway? + '%1' est protégé en écriture. +Voulez-vous quand même le supprimer ? + + + Are sure you want to delete '%1'? + Etes-vous sûr de vouloir supprimer '%1' ? + + + Could not delete directory. + Impossible de supprimer le dossier. + + + Drive + Unité + + + File Folder + Match Windows Explorer + Fichier Dossier + + + Folder + All other platforms + Dossier + + + Alias + Mac OS X Finder + Pseudo + + + Shortcut + All other platforms + Raccourci + + + Unknown + Inconnu + + + Show + Montrer + + + Forward + Successeur + + + &New Folder + &Nouveau dossier + + + &Choose + &Choisir + + + Remove + Supprimer + + + File &name: + &Nom de fichier : + + + Look in: + Voir dans: + + + Create New Folder + Créer un nouveau dossier + + + + QFileSystemModel + + %1 TB + %1 To + + + %1 GB + %1 Go + + + %1 MB + %1 Mo + + + %1 KB + %1 Ko + + + %1 bytes + %1 octets + + + Invalid filename + Nom de fichier invalide + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>Le nom "%1" ne peut pas être utilisé.</b><p>Essayez un autre nom avec moins de caractères ou sans ponctuation. + + + Name + Nom + + + Size + Taille + + + Kind + Match OS X Finder + Type + + + Type + All other platforms + Type + + + Date Modified + Dernière modification + + + My Computer + Mon ordinateur + + + Computer + Ordinateur + + + %1 byte(s) + %1 octet(s) + + + + QFontDatabase + + Normal + Normal + + + Bold + Gras + + + Demi Bold + Semi Gras + + + Black + Noir + + + Demi + Demi + + + Light + Léger + + + Italic + Italique + + + Oblique + Oblique + + + Any + Tous + + + Latin + Latin + + + Greek + Grec + + + Cyrillic + Cyrillique + + + Armenian + Arménien + + + Hebrew + Hébreu + + + Arabic + Arabe + + + Syriac + Syriaque + + + Thaana + Thaana + + + Devanagari + Devanagari + + + Bengali + Bengali + + + Gurmukhi + Gurmukhi + + + Gujarati + Gujarati + + + Oriya + Oriya + + + Tamil + Tamil + + + Telugu + Telugu + + + Kannada + Kannada + + + Malayalam + Malayalam + + + Sinhala + Sinhala + + + Thai + Thaï + + + Lao + Lao + + + Tibetan + Tibétain + + + Myanmar + Myanmar + + + Georgian + Géorgien + + + Khmer + Khmer + + + Simplified Chinese + Chinois Simplifié + + + Traditional Chinese + Chinois Traditionnel + + + Japanese + Japonais + + + Korean + Coréen + + + Vietnamese + Vietnamien + + + Symbol + Symbole + + + Ogham + Ogham + + + Runic + Runique + + + N'Ko + N'Ko + + + + QFontDialog + + &Font + &Police + + + Font st&yle + St&yle de police + + + &Size + &Taille + + + Effects + Effets + + + Stri&keout + &Barré + + + &Underline + &Souligné + + + Sample + Exemple + + + Select Font + Choisir une police + + + Wr&iting System + &Système d'écriture + + + + QFtp + + Host %1 found + Hôte %1 trouvé + + + Host found + Hôte trouvé + + + Connected to host %1 + Connecté à l'hôte %1 + + + Connected to host + Connecté à l'hôte + + + Connection to %1 closed + Connexion à %1 arrêtée + + + Connection closed + Connexion arrêtée + + + Host %1 not found + Hôte %1 introuvable + + + Connection refused to host %1 + Connexion à l'hôte %1 refusée + + + Connection timed out to host %1 + Connexion expirée vers l'hôte %1 + + + Unknown error + Erreur inconnue + + + Connecting to host failed: +%1 + Échec de la connexion à l'hôte +%1 + + + Login failed: +%1 + Échec du login: +%1 + + + Listing directory failed: +%1 + Échec du listage du dossier : +%1 + + + Changing directory failed: +%1 + Échec du changement de dossier : +%1 + + + Downloading file failed: +%1 + Échec du téléchargement du fichier : +%1 + + + Uploading file failed: +%1 + Échec du télédéchargement : +%1 + + + Removing file failed: +%1 + Échec de la suppression d'un fichier : +%1 + + + Creating directory failed: +%1 + Échec de la création d'un dossier : +%1 + + + Removing directory failed: +%1 + Échec de la suppression d'un dossier : +%1 + + + Not connected + Non connecté + + + Connection refused for data connection + Connexion donnée refusée + + + + QHostInfo + + Unknown error + Erreur inconnue + + + + QHostInfoAgent + + Host not found + Hôte introuvable + + + Unknown address type + Adresse de type inconnu + + + Unknown error + Erreur inconnue + + + No host name given + Aucun nom d'hôte n'a été donné + + + Invalid hostname + Nom d'hôte non valide + + + + QHttp + + Connection refused + Connexion refusée + + + Host %1 not found + Hôte %1 introuvable + + + Wrong content length + Longueur du contenu invalide + + + HTTP request failed + Échec de la requête HTTP + + + Host %1 found + Hôte %1 trouvé + + + Host found + Hôte trouvé + + + Connected to host %1 + Connecté à l'hôte %1 + + + Connected to host + Connecté à l'hôte + + + Connection to %1 closed + Connexion à %1 arrêtée + + + Connection closed + Connexion arrêtée + + + Unknown error + Erreur inconnue + + + Request aborted + Requête interrompue + + + No server set to connect to + Aucun serveur spécifié + + + Server closed connection unexpectedly + Connexion interrompue par le serveur + + + Invalid HTTP response header + Entête de réponse HTTP invalide + + + Unknown authentication method + Méthode d'authentification inconnue + + + Invalid HTTP chunked body + Fragment HTTP invalide + + + Error writing response to device + Erreur lors de l'écriture de la réponse + + + Proxy authentication required + Le proxy requiert une authentification + + + Authentication required + Authentification requise + + + Proxy requires authentication + Le proxy requiert une authentification + + + Host requires authentication + L'hôte requiert une authentification + + + Data corrupted + Données corrompues + + + SSL handshake failed + le handshake SSL a échoué + + + Unknown protocol specified + Protocole spécifié inconnu + + + Connection refused (or timed out) + Connexion refusée (ou délai expiré) + + + HTTPS connection requested but SSL support not compiled in + Connexion HTTPS requise mais le support SSL n'est pas compilé + + + + QHttpSocketEngine + + Did not receive HTTP response from proxy + Pas de réponse HTTP de la part du proxy + + + Error parsing authentication request from proxy + Erreur dans le reqête d'authentification reçue du proxy + + + Authentication required + Authentification requise + + + Proxy denied connection + Le Proxy a rejeté la connexion + + + Error communicating with HTTP proxy + Erreur de communication avec le proxy HTTP + + + Proxy server not found + Serveur proxy introuvable + + + Proxy connection refused + Connexion au proxy refusée + + + Proxy server connection timed out + La connexion au serveur proxy a expiré + + + Proxy connection closed prematurely + La connexion au serveur proxy a été fermée prématurément + + + + QIBaseDriver + + Error opening database + Erreur d'ouverture de la base de données + + + Could not start transaction + La transaction n'a pas pu être démarrée + + + Unable to commit transaction + Incapable de soumettre la transaction + + + Unable to rollback transaction + Incapable d'annuler la transaction + + + + QIBaseResult + + Unable to create BLOB + Impossible de créer un BLOB + + + Unable to write BLOB + Impossible d'écrire le BLOB + + + Unable to open BLOB + Impossible d'ouvrir le BLOB + + + Unable to read BLOB + Impossible de lire le BLOB + + + Could not find array + Impossible de trouver le tableau + + + Could not get array data + Impossible de trouver le tableau de données + + + Could not get query info + Impossible d'avoir les informations sur la requête + + + Could not start transaction + Impossible de démarrer la transaction + + + Unable to commit transaction + Incapable de soumettre la transaction + + + Could not allocate statement + Impossible d'allouer la requête + + + Could not prepare statement + Impossible de préparer la requête + + + Could not describe input statement + Impossible de décrire la requête + + + Could not describe statement + Impossible de décrire la requête + + + Unable to close statement + Impossible de fermer la requête + + + Unable to execute query + Impossible d'exécuter la requête + + + Could not fetch next item + Impossible de récuperer l'élément suivant + + + Could not get statement info + Impossible d'avoir les informations sur la requête + + + + QIODevice + + Permission denied + Accès refusé + + + Too many open files + Trop de fichiers ouverts simultanément + + + No such file or directory + Aucun fichier ou dossier de ce nom + + + No space left on device + Aucun espace disponible sur le périphérique + + + Unknown error + Erreur inconnue + + + + QInputContext + + XIM + XIM + + + FEP + Processeur frontal + + + XIM input method + Méthode d'entrée XIM + + + Windows input method + Méthode d'entrée Windows + + + Mac OS X input method + Méthode d'entrée Mac OS X + + + S60 FEP input method + Méthode de saisie processeur frontal S60 + + + + QInputDialog + + Enter a value: + Entrer une valeur : + + + + QLibrary + + Could not mmap '%1': %2 + Impossible d'établir la projection en mémoire de '%1' : %2 + + + Plugin verification data mismatch in '%1' + Données de vérification du plugin différente dans '%1' + + + Could not unmap '%1': %2 + Impossible de supprimer la projection en mémoire de '%1' : %2 + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + Le plugin '%1' utilise une bibliothèque Qt incompatible. (%2.%3.%4) [%5] + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + Le plugin '%1' utilise une bibliothèque Qt incompatible. Clé attendue "%2", reçue "%3" + + + Unknown error + Erreur inconnue + + + The shared library was not found. + La bibliothèque partagée est introuvable. + + + The file '%1' is not a valid Qt plugin. + Le fichier '%1' n'est pas un plugin Qt valide. + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + Le plugin '%1' utilise une bibliothèque Qt incompatible. (Il est impossible de mélanger des bibliothèques 'debug' et 'release'.) + + + Cannot load library %1: %2 + Impossible de charger la bibliothèque %1 : %2 + + + Cannot unload library %1: %2 + Impossible de décharger la bibliothèque %1 : %2 + + + Cannot resolve symbol "%1" in %2: %3 + Impossible de résoudre le symbole "%1" dans %2 : %3 + + + + QLineEdit + + Select All + Tout sélectionner + + + &Undo + &Annuler + + + &Redo + &Rétablir + + + Cu&t + Co&uper + + + &Copy + Cop&ier + + + &Paste + Co&ller + + + Delete + Supprimer + + + + QLocalServer + + %1: Name error + %1: Erreur de nom + + + %1: Permission denied + %1: Permission refusée + + + %1: Address in use + %1: Address déjà utilisée + + + %1: Unknown error %2 + %1: Erreur inconnue %2 + + + + QLocalSocket + + %1: Connection refused + %1: Connexion refusée + + + %1: Remote closed + %1: Connexion fermée + + + %1: Invalid name + %1: Nom invalide + + + %1: Socket access error + %1: Erreur d'accès au socket + + + %1: Socket resource error + %1: Erreur de ressource du socket + + + %1: Socket operation timed out + %1: L'opération socket a expiré + + + %1: Datagram too large + %1: Datagramme trop grand + + + %1: Connection error + %1: Erreur de connexion + + + %1: The socket operation is not supported + %1: L'opération n'est pas supportée + + + %1: Unknown error + %1 : erreur inconnue + + + %1: Unknown error %2 + %1: Erreur inconnue %2 + + + + QMYSQLDriver + + Unable to open database ' + Impossible d'ouvrir la base de données ' + + + Unable to connect + Impossible d'établir une connexion + + + Unable to begin transaction + Impossible de démarrer la transaction + + + Unable to commit transaction + Impossible de soumettre la transaction + + + Unable to rollback transaction + Impossible d'annuler la transaction + + + + QMYSQLResult + + Unable to fetch data + Impossible de récuperer des données + + + Unable to execute query + Impossible d'exécuter la requête + + + Unable to store result + Impossible de stocker le résultat + + + Unable to prepare statement + Impossible de préparer l'instruction + + + Unable to reset statement + Impossible de réinitialiser l'instruction + + + Unable to bind value + Impossible d'attacher la valeur + + + Unable to execute statement + Impossible d'exécuter la requête + + + Unable to bind outvalues + Impossible d'attacher les valeurs de sortie + + + Unable to store statement results + Impossible de stocker les résultats de la requête + + + Unable to execute next query + Impossible d'exécuterla prochaine requête + + + Unable to store next result + Impossible de stocker le prochain résultat + + + + QMdiArea + + (Untitled) + (Sans titre) + + + + QMdiSubWindow + + %1 - [%2] + %1 - [%2] + + + Close + Fermer + + + Minimize + Réduire + + + Restore Down + Restaurer en bas + + + &Restore + &Restaurer + + + &Move + &Déplacer + + + &Size + &Taille + + + Mi&nimize + Réd&uire + + + Ma&ximize + Ma&ximiser + + + Stay on &Top + &Rester au premier plan + + + &Close + &Fermer + + + Maximize + Maximiser + + + Unshade + Restaurer + + + Shade + Ombrer + + + Restore + Restaurer + + + Help + Aide + + + Menu + Menu + + + - [%1] + - [%1] + + + + QMenu + + Close + Fermer + + + Open + Ouvrir + + + Execute + Exécuter + + + + QMenuBar + + Actions + Actions + + + + QMessageBox + + OK + OK + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>Présentation de Qt</h3><p>Ce programme utilise Qt version %1.</p> + + + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <p>Qt est une boîte à outils C++ pour le développement d’applications multiplateformes.</p><p>Qt fournit une portabilité source unique pour MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux et les principales variantes commerciales d’Unix. Qt est également disponible pour appareils intégrés tels que Qt pour Embedded Linux et Qt pour Windows CE.</p><p>Il existe trois options de licence différentes conçues pour s’adapter aux besoins d’utilisateurs variés.</p><p>Qt concédée sous notre contrat de licence commerciale est destinée au développement de logiciels propriétaires/commerciaux dont vous ne souhaitez pas partager le code source avec des tiers ou qui ne peuvent se conformer aux termes de la LGPL GNU version 2.1 ou GPL GNU version 3.0.</p><p>Qt concédée sous la LGPL GNU version 2.1 est destinée au développement d’applications Qt (propriétaires ou source libre) à condition que vous vous conformiez aux conditions générales de la LGPL GNU version 2.1.</p><p>Qt concédée sous la licence publique générale GNU version 3.0 est destinée au développement d’applications Qt lorsque vous souhaitez utiliser ces applications avec d’autres logiciels soumis aux termes de la GPL GNU version 3.0 ou lorsque vous acceptez les termes de la GPL GNU version 3.0.</p><p>Veuillez consulter<a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> pour un aperçu des concessions de licences Qt.</p><p>Copyright (C) 2010 Nokia Corporation et/ou ses filiales.</p><p>Qt est un produit Nokia. Voir <a href="http://qt.nokia.com/">qt.nokia.com</a> pour de plus amples informations.</p> + + + About Qt + À propos de Qt + + + Help + Aide + + + Show Details... + Montrer les détails... + + + Hide Details... + Cacher les détails... + + + + QMultiInputContext + + Select IM + Sélectionner IM + + + + QMultiInputContextPlugin + + Multiple input method switcher + Sélectionneur de méthode de saisie + + + Multiple input method switcher that uses the context menu of the text widgets + Sélectionneur de méthode de saisie qui utilise le menu contextuel des widgets de texte + + + + QNativeSocketEngine + + The remote host closed the connection + L'hôte distant a fermé la connexion + + + Network operation timed out + L'opération réseau a expiré + + + Out of resources + Manque de ressources + + + Unsupported socket operation + Opération socket non supportée + + + Protocol type not supported + Protocol non géré + + + Invalid socket descriptor + Descripteur de socket invalide + + + Network unreachable + Réseau impossible à rejoindre + + + Permission denied + Accès refusé + + + Connection timed out + Connexion expirée + + + Connection refused + Connexion refusée + + + The bound address is already in use + L'adresse liée est déjà en usage + + + The address is not available + L'adresse n'est pas disponible + + + The address is protected + L'adresse est protégée + + + Unable to send a message + Impossible d'envoyer un message + + + Unable to receive a message + Impossible de recevoir un message + + + Unable to write + Impossible d'écrire + + + Network error + Erreur réseau + + + Another socket is already listening on the same port + Un autre socket écoute déjà sur le même port + + + Unable to initialize non-blocking socket + Impossible d'initialiser le socket asynchrone + + + Unable to initialize broadcast socket + Impossible d'initialiser le socket broadcast + + + Attempt to use IPv6 socket on a platform with no IPv6 support + Tentative d'utiliser un socket IPv6 sur une plateforme qui ne supporte pas IPv6 + + + Host unreachable + Hôte inaccessible + + + Datagram was too large to send + Le datagramme était trop grand pour être envoyé + + + Operation on non-socket + Operation sur non-socket + + + Unknown error + Erreur inconnue + + + The proxy type is invalid for this operation + Le type de proxy est invalide pour cette opération + + + + QNetworkAccessCacheBackend + + Error opening %1 + Erreur lors de l'ouverture de %1 + + + + QNetworkAccessDebugPipeBackend + + Write error writing to %1: %2 + Erreur lors de l'écriture dans %1: %2 + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + Requête d'ouverture de fichier distant %1 + + + Error opening %1: %2 + Erreur lors de l'ouverture de %1 : %2 + + + Write error writing to %1: %2 + Erreur d'écriture de %1 : %2 + + + Cannot open %1: Path is a directory + Impossible d'ouvrir %1 : le chemin est un dossier + + + Read error reading from %1: %2 + Erreur de lecture de %1 : %2 + + + + QNetworkAccessFtpBackend + + No suitable proxy found + Aucun proxy trouvé + + + Cannot open %1: is a directory + Impossible d'ouvrir %1 : le chemin est un dossier + + + Logging in to %1 failed: authentication required + Connexion à %1 a échoué : authentification requise + + + Error while downloading %1: %2 + Erreur lors du téléchargement de %1 : %2 + + + Error while uploading %1: %2 + Erreur lors de l'envoi de %1 : %2 + + + + QNetworkAccessHttpBackend + + No suitable proxy found + Aucun proxy trouvé + + + + QNetworkReply + + Error downloading %1 - server replied: %2 + Erreur lors du téléchargement de %1 - le serveur a répondu: %2 + + + Protocol "%1" is unknown + Le protocole "%1" est inconnu + + + + QNetworkReplyImpl + + Operation canceled + Opération annulée + + + + QOCIDriver + + Unable to logon + Impossible d'ouvrir une session + + + Unable to initialize + QOCIDriver + L'initialisation a échouée + + + Unable to begin transaction + Impossible de démarrer la transaction + + + Unable to commit transaction + Impossible d'enregistrer la transaction + + + Unable to rollback transaction + Impossible d'annuler la transaction + + + + QOCIResult + + Unable to bind column for batch execute + Impossible d'attacher la colonne pour une execution batch + + + Unable to execute batch statement + Impossible d'exécuter l'instruction batch + + + Unable to goto next + Impossible de passer au suivant + + + Unable to alloc statement + Impossible d'allouer la requête + + + Unable to prepare statement + Impossible de préparer la requête + + + Unable to get statement type + + + + Unable to bind value + Impossible d'attacher la valeur + + + Unable to execute statement + Impossible d'exéctuer la requête + + + + QODBCDriver + + Unable to connect + Incapable d'établir une connexion + + + Unable to disable autocommit + Impossible de désactiver l'autocommit + + + Unable to commit transaction + Incapable de soumettre la transaction + + + Unable to rollback transaction + Incapable d'annuler la transaction + + + Unable to enable autocommit + Impossible d'active l'autocommit + + + Unable to connect - Driver doesn't support all functionality required + + + + + QODBCResult + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: Impossible d'utiliser 'SQL_CURSOR_STATIC' comme attribut de requête. Veuillez vérifier la configuration de votre pilote ODBC + + + Unable to execute statement + Impossible d'exéctuer la requête + + + Unable to fetch next + Impossible de récupérer le suivant + + + Unable to prepare statement + Impossible de préparer la requête + + + Unable to bind variable + Impossible d'attacher la variable + + + Unable to fetch last + Impossible de récupérer le dernier + + + Unable to fetch + Impossible de récupérer + + + Unable to fetch first + Impossible de récupérer le premier + + + Unable to fetch previous + Impossible de récupérer le précedent + + + + QObject + + Invalid hostname + Nom d'hôte non valide + + + Operation not supported on %1 + Opération non supportée sur %1 + + + Invalid URI: %1 + URI invalide : %1 + + + Socket error on %1: %2 + Erreur de socket sur %1 : %2 + + + Remote host closed the connection prematurely on %1 + L'hôte distant a fermé sa connexion de façon prématurée sur %1 + + + No host name given + Nom d'hôte manquant + + + + QPPDOptionsModel + + Name + Nom + + + Value + Valeur + + + + QPSQLDriver + + Unable to connect + Impossible d'établir une connexion + + + Could not begin transaction + Impossible de démarrer la transaction + + + Could not commit transaction + Impossible de soumettre la transaction + + + Could not rollback transaction + Impossible d'annuler la transaction + + + Unable to subscribe + Impossible de s'inscrire + + + Unable to unsubscribe + Impossible de se désinscrire + + + + QPSQLResult + + Unable to create query + Impossible de créer la requête + + + Unable to prepare statement + Impossible de préparer la requête + + + + QPageSetupWidget + + Centimeters (cm) + Centimètres (cm) + + + Millimeters (mm) + Millimètres (mm) + + + Inches (in) + Pouces (in) + + + Points (pt) + Points (pts) + + + Form + Formulaire + + + Paper + Papier + + + Page size: + Dimensions : + + + Width: + Largeur : + + + Height: + Hauteur : + + + Paper source: + Source du papier : + + + Orientation + Orientation + + + Portrait + Portrait + + + Landscape + Paysage + + + Reverse landscape + Paysage inversé + + + Reverse portrait + Portrait inversé + + + Margins + Marges + + + top margin + marge haute + + + left margin + marge gauche + + + right margin + marge droite + + + bottom margin + marge basse + + + + QPluginLoader + + Unknown error + Erreur inconnue + + + The plugin was not loaded. + Le plugin n'a pas été chargé. + + + + QPrintDialog + + locally connected + connecté en local + + + Aliases: %1 + Alias : %1 + + + unknown + inconnu + + + OK + OK + + + Print all + Imprimer tout + + + Print range + Imprimer la sélection + + + A0 (841 x 1189 mm) + A0 (841 x 1189 mm) + + + A1 (594 x 841 mm) + A1 (594 x 841 mm) + + + A2 (420 x 594 mm) + A2 (420 x 594 mm) + + + A3 (297 x 420 mm) + A3 (297 x 420 mm) + + + A5 (148 x 210 mm) + A5 (148 x 210 mm) + + + A6 (105 x 148 mm) + A6 (105 x 148 mm) + + + A7 (74 x 105 mm) + A7 (74 x 105 mm) + + + A8 (52 x 74 mm) + A8 (52 x 74 mm) + + + A9 (37 x 52 mm) + A9 (37 x 52 mm) + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 mm) + + + B1 (707 x 1000 mm) + B1 (707 x 1000 mm) + + + B2 (500 x 707 mm) + B2 (500 x 707 mm) + + + B3 (353 x 500 mm) + B3 (353 x 500 mm) + + + B4 (250 x 353 mm) + B4 (250 x 353 mm) + + + B6 (125 x 176 mm) + B6 (125 x 176 mm) + + + B7 (88 x 125 mm) + B7 (88 x 125 mm) + + + B8 (62 x 88 mm) + B8 (62 x 88 mm) + + + B9 (44 x 62 mm) + B9 (44 x 62 mm) + + + B10 (31 x 44 mm) + B10 (31 x 44 mm) + + + C5E (163 x 229 mm) + C5E (163 x 229 mm) + + + DLE (110 x 220 mm) + DLE (110 x 220 mm) + + + Folio (210 x 330 mm) + Folio (210 x 330 mm) + + + Ledger (432 x 279 mm) + Ledger (432 x 279 mm) + + + Tabloid (279 x 432 mm) + Tabloïde (279 x 432 mm) + + + US Common #10 Envelope (105 x 241 mm) + US Common #10 Envelope (105 x 241 mm) + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 mm) + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 mm) + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (7,5 x 10 pouces, 191 x 254 mm) + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8.5 x 14 pouces, 216 x 356 mm) + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (8,5 x 11 pouces, 216 x 279 mm) + + + Print selection + Imprimer la sélection + + + Print + Impr écran + + + Print To File ... + Imprimer dans un fichier... + + + File %1 is not writable. +Please choose a different file name. + Impossible d'écrire dans le fichier %1. +Veuillez choisir un nom de fichier différent. + + + %1 already exists. +Do you want to overwrite it? + %1 existe. +Voulez-vous l'écraser ? + + + File exists + Le fichier existe + + + <qt>Do you want to overwrite it?</qt> + <qt>voulez-vous l'écraser ?</qt> + + + %1 is a directory. +Please choose a different file name. + %1 est un dossier. +Veuillez choisir un nom de fichier différent. + + + The 'From' value cannot be greater than the 'To' value. + La valeur 'de' ne peut pas être plus grande que la valeur 'à'. + + + A0 + + + + A1 + + + + A2 + + + + A3 + + + + A4 + + + + A5 + + + + A6 + + + + A7 + + + + A8 + + + + A9 + + + + B0 + + + + B1 + + + + B2 + + + + B3 + + + + B4 + + + + B5 + + + + B6 + + + + B7 + + + + B8 + + + + B9 + + + + B10 + + + + C5E + + + + DLE + + + + Executive + + + + Folio + + + + Ledger + + + + Legal + + + + Letter + + + + Tabloid + + + + US Common #10 Envelope + + + + Custom + Personnalisé + + + &Options >> + + + + &Options << + + + + Print to File (PDF) + Imprimer dans un fichier (PDF) + + + Print to File (Postscript) + Imprimer dans un fichier (PostScript) + + + Local file + Fichier local + + + Write %1 file + Ecriture du fichier %1 + + + &Print + Im&primer + + + + QPrintPreviewDialog + + %1% + %1% + + + Print Preview + Aperçu avant impression + + + Next page + Page suivante + + + Previous page + Page précédente + + + First page + Première page + + + Last page + Dernière page + + + Fit width + Ajuster la largeur + + + Fit page + Ajuster la page + + + Zoom in + Zoom avant + + + Zoom out + Zoom arrière + + + Portrait + Portrait + + + Landscape + Paysage + + + Show single page + Afficher une seule page + + + Show facing pages + Afficher deux pages + + + Show overview of all pages + Afficher un aperçu de toutes les pages + + + Print + Impr écran + + + Page setup + Configuration de la page + + + Close + Fermer + + + Export to PDF + Exporter vers PDF + + + Export to PostScript + Exporter vers PostScript + + + Page Setup + Configuration de la page + + + + QPrintPropertiesWidget + + Form + Formulaire + + + Page + + + + Advanced + Avancé + + + + QPrintSettingsOutput + + Form + Formulaire + + + Copies + Copies + + + Print range + Imprimer la sélection + + + Print all + Imprimer tout + + + Pages from + Pages + + + to + à + + + Selection + Sélection + + + Output Settings + Paramètres de sortie + + + Copies: + + + + Collate + Assembler + + + Reverse + Inverse + + + Options + Options + + + Color Mode + Mode de couleur + + + Color + Couleur + + + Grayscale + Dégradé de gris + + + Duplex Printing + Impression en duplex + + + None + Aucun + + + Long side + Côté long + + + Short side + Côté court + + + + QPrintWidget + + Form + Formulaire + + + Printer + Imprimante + + + &Name: + &Nom : + + + P&roperties + P&ropriétés + + + Location: + Emplacement : + + + Preview + Prévisualisation + + + Type: + + + + Output &file: + &Fichier de sortie: + + + ... + + + + + QProcess + + Could not open input redirection for reading + Impossible d'ouvrir la redirection d'entrée en lecture + + + Could not open output redirection for writing + Impossible d'ouvrir la redirection de sortie pour écriture + + + Resource error (fork failure): %1 + Erreur de ressouce (fork) : %1 + + + Process operation timed out + Operation de processus a expiré + + + Error reading from process + Erreur de lecture du processus + + + Error writing to process + Erreur d"écriture vers le processus + + + Process crashed + Le processus à planté + + + No program defined + Aucun programme défini + + + Process failed to start: %1 + Le démarrage du processus a échoué: %1 + + + + QProgressDialog + + Cancel + Annuler + + + + QPushButton + + Open + Ouvrir + + + + QRadioButton + + Check + Cocher + + + + QRegExp + + no error occurred + aucune erreur ne s'est produite + + + disabled feature used + option désactivée + + + bad char class syntax + syntaxe invalide pour classe de caractère + + + bad lookahead syntax + syntaxe invalide pour lookahead + + + bad repetition syntax + syntaxe invalide pour répétition + + + invalid octal value + valeur octale invalide + + + missing left delim + délémiteur gauche manquant + + + unexpected end + fin impromptue + + + met internal limit + rencontré limite interne + + + invalid interval + intervalle non valide + + + invalid category + catégorie non valide + + + + QSQLite2Driver + + Error opening database + Erreur lors de l'ouverture de la base de données + + + Unable to begin transaction + Impossible de démarrer la transaction + + + Unable to commit transaction + Impossible de soumettre la transaction + + + Unable to rollback transaction + Impossible de répéter la transaction + + + + QSQLite2Result + + Unable to fetch results + Impossible de récupérer les résultats + + + Unable to execute statement + Impossible d'exécuter la requête + + + + QSQLiteDriver + + Error opening database + Erreur lors de l'ouverture de la base de données + + + Error closing database + Erreur lors de la fermeture de la base de données + + + Unable to begin transaction + Impossible de démarrer la transaction + + + Unable to commit transaction + Incapable de soumettre la transaction + + + Unable to rollback transaction + Impossible d'annuler la transaction + + + + QSQLiteResult + + Unable to fetch row + Impossible de récupérer la rangée + + + Unable to execute statement + Impossible d'exécuter la requête + + + Unable to reset statement + Impossible de réinitialiser la requête + + + Unable to bind parameters + Impossible d'attacher les paramètres + + + Parameter count mismatch + Nombre de paramètres incorrect + + + No query + Pas de requête + + + + QScriptBreakpointsModel + + ID + Identifiant + + + Location + Lieu + + + Condition + Condition + + + Ignore-count + Comptes d'ignorés + + + Single-shot + Un seul tir + + + Hit-count + Compte de coups + + + + QScriptBreakpointsWidget + + New + Créer + + + Delete + Supprimer + + + + QScriptDebugger + + Go to Line + Aller à la ligne + + + Line: + Ligne: + + + Interrupt + Interrompre + + + Shift+F5 + Shift+F5 + + + Continue + Continuer + + + F5 + F5 + + + Step Into + Pas à pas détaillé + + + F11 + F11 + + + Step Over + Pas à pas principal + + + F10 + F10 + + + Step Out + Pas à pas sortant + + + Shift+F11 + Shift+F11 + + + Run to Cursor + Exécuter au curseur + + + Ctrl+F10 + Ctrl+F10 + + + Run to New Script + Exécuter au nouveau script + + + Toggle Breakpoint + Basculer le point d'arrêt + + + F9 + F9 + + + Clear Debug Output + Effacer les résultats du débogage + + + Clear Error Log + Effacer le journal d'erreurs + + + Clear Console + Effacer la console + + + &Find in Script... + &Chercher dans le script... + + + Ctrl+F + Ctrl+F + + + Find &Next + Résultat &suivant + + + F3 + F3 + + + Find &Previous + Chercher &précédent + + + Shift+F3 + Shift+F3 + + + Ctrl+G + Ctrl+G + + + Debug + Déboguer + + + + QScriptDebuggerCodeFinderWidget + + Close + Fermer + + + Previous + Précédent + + + Next + Suivant + + + Case Sensitive + Sensible à la casse + + + Whole words + Mots entiers + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;La recherche est revenue au début + + + + QScriptDebuggerLocalsModel + + Name + Nom + + + Value + Valeur + + + + QScriptDebuggerStackModel + + Level + Niveau + + + Name + Nom + + + Location + Lieu + + + + QScriptEdit + + Toggle Breakpoint + Basculer le point d'arrêt + + + Disable Breakpoint + Désactiver le point d'arrêt + + + Enable Breakpoint + Activer le point d'arrêt + + + Breakpoint Condition: + Condition du point d'arrêt: + + + + QScriptEngineDebugger + + Loaded Scripts + Scripts chargés + + + Breakpoints + Points d'arrêt + + + Stack + Empiler + + + Locals + Locaux + + + Console + Console + + + Debug Output + Résultats du débogage + + + Error Log + Journal d'erreurs + + + Search + Chercher + + + View + Afficher + + + Qt Script Debugger + Débogueur de script Qt + + + + QScriptNewBreakpointWidget + + Close + Fermer + + + + QScrollBar + + Scroll here + Défiler jusqu'ici + + + Left edge + Extrême gauche + + + Top + En haut + + + Right edge + Extrême droite + + + Bottom + En bas + + + Page left + Page précédente + + + Page up + Page précédente + + + Page right + Page suivante + + + Page down + Page suivante + + + Scroll left + Défiler vers la gauche + + + Scroll up + Défiler vers le haut + + + Scroll right + Défiler vers la droite + + + Scroll down + Défiler vers le bas + + + Line up + Aligner + + + Position + Position + + + Line down + Aligner en-bas + + + + QSharedMemory + + %1: create size is less then 0 + %1 : taille de création est inférieur à 0 + + + %1: unable to lock + %1 : impossible de vérrouiller + + + %1: unable to unlock + %1 : impossible de déverrouiller + + + %1: permission denied + %1 : permission refusée + + + %1: already exists + %1 : existe déjà + + + %1: doesn't exists + %1 : n'existe pas + + + %1: out of resources + %1 : plus de ressources disponibles + + + %1: unknown error %2 + %1 : erreur inconnue %2 + + + %1: key is empty + %1 : clé vide + + + %1: ftok failed + %1 : ftok a échoué + + + %1: unable to make key + %1 : impossible de créer la clé + + + %1: doesn't exist + %1: n'existe pas + + + %1: UNIX key file doesn't exist + %1: le fichier de clés UNIX n'existe pas + + + %1: system-imposed size restrictions + %1 : le système impose des restrictions sur la taille + + + %1: not attached + %1 : non attaché + + + %1: invalid size + %1 : taille invalide + + + %1: key error + %1 : erreur de clé + + + %1: size query failed + %1 : la requête de taille a échoué + + + %1: unable to set key on lock + %1 : impossible d'affecter la clé au verrou + + + + QShortcut + + Space + Espace + + + Esc + Échap + + + Tab + Tab + + + Backtab + Tab arr + + + Backspace + Effacement + + + Return + Retour + + + Enter + Entrée + + + Ins + Inser + + + Del + Suppr + + + Pause + Pause + + + Print + Impr écran + + + SysReq + Syst + + + Home + Début + + + End + Fin + + + Left + Gauche + + + Up + Haut + + + Right + Droite + + + Down + Bas + + + PgUp + Page préc + + + PgDown + Page suiv + + + CapsLock + Verr maj + + + NumLock + Verr num + + + ScrollLock + Arrêt défil + + + Menu + Menu + + + Help + Aide + + + Back + Précédent (historique) + + + Forward + Successeur (historique) + + + Stop + Stop + + + Refresh + Rafraîchir + + + Volume Down + Volume bas + + + Volume Mute + Volume muet + + + Volume Up + Volume haut + + + + Bass Boost + Graves fort + + + Bass Up + Graves haut + + + Bass Down + Graves bas + + + Treble Up + Aigus haut + + + Treble Down + Aigus bas + + + Media Play + Média démarrer + + + Media Stop + Média arrêt + + + Media Previous + Média précédent + + + Media Next + Média suivant + + + Media Record + Média enregistrer + + + Favorites + Préférés + + + Search + Recherche + + + Standby + Attente + + + Open URL + Ouvrir URL + + + Launch Mail + Lancer courrier + + + Launch Media + Lancer média + + + Launch (0) + Lancer (0) + + + Launch (1) + Lancer (1) + + + Launch (2) + Lancer (2) + + + Launch (3) + Lancer (3) + + + Launch (4) + Lancer (4) + + + Launch (5) + Lancer (5) + + + Launch (6) + Lancer (6) + + + Launch (7) + Lancer (7) + + + Launch (8) + Lancer (8) + + + Launch (9) + Lancer (9) + + + Launch (A) + Lancer (A) + + + Launch (B) + Lancer (B) + + + Launch (C) + Lancer (C) + + + Launch (D) + Lancer (D) + + + Launch (E) + Lancer (E) + + + Launch (F) + Lancer (F) + + + Monitor Brightness Up + Augmenter la luminosité du moniteur + + + Monitor Brightness Down + Baisser la luminosité du moniteur + + + Keyboard Light On/Off + Avec/sans lumière clavier + + + Keyboard Brightness Up + Augmenter la luminosité du clavier + + + Keyboard Brightness Down + Baisser la luminosité du clavier + + + Power Off + Couper l'alimentation + + + Wake Up + Réveiller + + + Eject + Éjecter + + + Screensaver + Économiseur d'écran + + + WWW + WWW + + + Sleep + Dormir + + + LightBulb + Ampoule + + + Shop + Magasin + + + History + Historique + + + Add Favorite + Ajouter favori + + + Hot Links + Liens chauds + + + Adjust Brightness + Régler la luminosité + + + Finance + Finances + + + Community + Communauté + + + Audio Rewind + Audio arrière + + + Back Forward + Retour avant + + + Application Left + Application gauche + + + Application Right + Application droite + + + Book + Livre + + + CD + CD + + + Calculator + Calculatrice + + + Clear + Effacer + + + Clear Grab + Effacer la prise + + + Close + Fermer + + + Copy + Copier + + + Cut + Couper + + + Display + Affichage + + + DOS + DOS + + + Documents + Documents + + + Spreadsheet + Feuille de calcul + + + Browser + Navigateur + + + Game + Jeu + + + Go + Aller + + + iTouch + iTouch + + + Logoff + Fermer une session + + + Market + Marché + + + Meeting + Réunion + + + Keyboard Menu + Menu du clavier + + + Menu PB + Menu PB + + + My Sites + Mes sites + + + News + Actualités + + + Home Office + Bureau à domicile + + + Option + Option + + + Paste + Coller + + + Phone + Téléphone + + + Reply + Répondre + + + Reload + Recharger + + + Rotate Windows + Faire tourner la fenêtre + + + Rotation PB + Rotation PB + + + Rotation KB + Rotation KB + + + Save + Enregistrer + + + Send + Envoyer + + + Spellchecker + Correcteur orthographique + + + Split Screen + Partager l'écran + + + Support + Supporter + + + Task Panel + Panneau de tâches + + + Terminal + Terminal + + + Tools + Outils + + + Travel + Voyager + + + Video + Vidéo + + + Word Processor + Traitement de texte + + + XFer + XFer + + + Zoom In + Agrandir + + + Zoom Out + Rétrécir + + + Away + Absent + + + Messenger + Messenger + + + WebCam + Webcaméra + + + Mail Forward + Faire suivre l'e-mail + + + Pictures + Images + + + Music + Musique + + + Battery + Batterie + + + Bluetooth + Bluetooth + + + Wireless + Sans fil + + + Ultra Wide Band + Bande ultralarge + + + Audio Forward + Audio avant + + + Audio Repeat + Audio répéter + + + Audio Random Play + Audio lecture aléatoire + + + Subtitle + Sous-titre + + + Audio Cycle Track + Piste du cycle audio + + + Time + Heure + + + View + Afficher + + + Top Menu + Haut du menu + + + Suspend + Suspendre + + + Hibernate + Hiberner + + + Print Screen + Capture d'écran + + + Page Up + Page haut + + + Page Down + Page bas + + + Caps Lock + Verrou maj. + + + Num Lock + Verrou num. + + + Number Lock + Verrou numéro + + + Scroll Lock + Arrêt défilement + + + Insert + Insérer + + + Delete + Supprimer + + + Escape + Échapement + + + System Request + Système + + + Select + Sélectionner + + + Yes + Oui + + + No + Non + + + Context1 + Contexte1 + + + Context2 + Contexte2 + + + Context3 + Contexte3 + + + Context4 + Contexte4 + + + Call + Appeler + + + Hangup + Raccrocher + + + Flip + Retourner + + + Ctrl + Ctrl + + + Shift + Maj + + + Alt + Alt + + + Meta + Méta + + + + + + + + + F%1 + F%1 + + + Home Page + Page d'accueil + + + + QSlider + + Page left + Page précédente + + + Page up + Page précédente + + + Position + Position + + + Page right + Page suivante + + + Page down + Page suivante + + + + QSocks5SocketEngine + + Connection to proxy refused + Connexion au proxy refusée + + + Connection to proxy closed prematurely + connexion au proxy fermée prématurément + + + Proxy host not found + Hôte proxy introuvable + + + Connection to proxy timed out + Connexion au proxy expirée + + + Proxy authentication failed + L'authentification proxy a échoué + + + Proxy authentication failed: %1 + L'authentification proxy a échoué : %1 + + + SOCKS version 5 protocol error + Erreur de protocole SOCKS version 5 + + + General SOCKSv5 server failure + Erreur générale du serveur SOCKSv5 + + + Connection not allowed by SOCKSv5 server + Connexion refusée par le serveur SOCKSv5 + + + TTL expired + TTL expiré + + + SOCKSv5 command not supported + Commande SOCKSv5 non supportée + + + Address type not supported + Type d'adresse non supporté + + + Unknown SOCKSv5 proxy error code 0x%1 + Erreur proxy SOCKSv5 inconnue : 0x%1 + + + Network operation timed out + L'opération réseau a expiré + + + + QSoftKeyManager + + Ok + OK + + + Select + Sélectionner + + + Done + Terminer + + + Options + Options + + + Cancel + Annuler + + + Exit + Quitter + + + + QSpinBox + + More + Plus + + + Less + Moins + + + + QSql + + Delete + Supprimer + + + Delete this record? + Supprimer cet enregistrement ? + + + Yes + Oui + + + No + Non + + + Insert + Insérer + + + Update + Actualiser + + + Save edits? + Enregistrer les modifications ? + + + Cancel + Annuler + + + Confirm + Confirmer + + + Cancel your edits? + Annuler vos modifications ? + + + + QSslSocket + + Unable to write data: %1 + Impossible d'écrire les données : %1 + + + Unable to decrypt data: %1 + Impossible de décrypter les données: %1 + + + Error while reading: %1 + Erreur lors de la lecture : %1 + + + Error during SSL handshake: %1 + Erreur lors de la poignée de main SSL : %1 + + + Error creating SSL context (%1) + Erreur lors de la création du contexte SSL (%1) + + + Invalid or empty cipher list (%1) + La list de chiffrements est invalide ou vide (%1) + + + Private key does not certify public key, %1 + La clé privée ne certifie pas la clé publique, %1 + + + Error creating SSL session, %1 + Erreur lors de la création de la session SSL, %1 + + + Error creating SSL session: %1 + Erreur lors de la création de la session SSL : %1 + + + Cannot provide a certificate with no key, %1 + Impossible de fournir un certificat sans clé, %1 + + + Error loading local certificate, %1 + Erreur lors du chargement du certificat local, %1 + + + Error loading private key, %1 + Erreur lors du chargement de la clé privée, %1 + + + No error + Aucune erreur + + + The issuer certificate could not be found + Le certificat de l'émetteur est introuvable + + + The certificate signature could not be decrypted + La signature du certificat n'a pas pu être vérifiée + + + The public key in the certificate could not be read + La clé publique du certificat n'a pas pu être lue + + + The signature of the certificate is invalid + La signature du certificat n'est pas valide + + + The certificate is not yet valid + Le certificat n'est pas encore valide + + + The certificate has expired + Le certificat a expiré + + + The certificate's notBefore field contains an invalid time + Le champ pasAvant du certificat inclut une heure non valide + + + The certificate's notAfter field contains an invalid time + Le champ pasAprès du certificat inclut une heure non valide + + + The certificate is self-signed, and untrusted + Le certificat n'est pas sécurisé car signé automatiquement + + + The root certificate of the certificate chain is self-signed, and untrusted + Le certificat racine de la chaîne de certificats n'est pas sécurisé car signé automatiquement + + + The issuer certificate of a locally looked up certificate could not be found + Le certificat de l'émetteur d'un certificat converti localement est introuvable + + + No certificates could be verified + Aucun certificat n'a pu être vérifié + + + One of the CA certificates is invalid + L'un des certificats CA n'est pas valide + + + The basicConstraints path length parameter has been exceeded + Le paramètre de longueur du chemin basicConstraints a été dépassé + + + The supplied certificate is unsuitable for this purpose + Le certificat fourni ne convient pas pour cet objectif + + + The root CA certificate is not trusted for this purpose + Le certificat CA racine n'est pas sécurisé pour cet objectif + + + The root CA certificate is marked to reject the specified purpose + Le certificat CA racine est marqué pour rejeter l'objectif spécifié + + + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + Le certificat de l'émetteur candidat actuel a été rejeté car le nom de son sujet ne correspondait pas au nom de l'émetteur du certificat actuel + + + The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate + Le certificat de l'émetteur candidat actuel a été rejeté car le nom de son sujet et son numéro de série étaient présents et ne correspondaient pas à l'identifiant de la clé d'autorité du certificat actuel + + + The peer did not present any certificate + Le poste ne contient aucun certificat + + + The host name did not match any of the valid hosts for this certificate + Le nom d'hôte ne correspondait à aucun des hôtes valides pour ce certificat + + + Unknown error + Erreur inconnue + + + + QStateMachine + + Missing initial state in compound state '%1' + État initial manquant dans l'état composé '%1' + + + Missing default state in history state '%1' + État par défaut manquant dans l'état de l'historique '%1' + + + No common ancestor for targets and source of transition from state '%1' + Aucun ancêtre commun pour les cibles et la source de transition de l'état '%1' + + + Unknown error + Erreur inconnue + + + + QSystemSemaphore + + %1: does not exist + %1 : n'existe pas + + + %1: out of resources + %1: plus de ressources disponibles + + + %1: permission denied + %1: permission refusée + + + %1: already exists + %1 : existe déjà + + + %1: unknown error %2 + %1: erreur inconnue %2 + + + + QTDSDriver + + Unable to open connection + Impossible d'ouvrir la connexion + + + Unable to use database + Impossible d'utiliser la base de données + + + + QTabBar + + Scroll Left + Défiler vers la gauche + + + Scroll Right + Défiler vers la droite + + + + QTcpServer + + Operation on socket is not supported + Opération sur le socket non supportée + + + + QTextControl + + &Undo + &Annuler + + + &Redo + &Répéter + + + Cu&t + Co&uper + + + &Copy + Cop&ier + + + Copy &Link Location + Copier l'adresse du &lien + + + &Paste + Co&ller + + + Delete + Supprimer + + + Select All + Tout sélectionner + + + + QToolButton + + Press + Presser + + + Open + Ouvrir + + + + QUdpSocket + + This platform does not support IPv6 + Cette plateforme ne supporte pas IPv6 + + + + QUndoGroup + + Undo + Annuler + + + Redo + Répéter + + + + QUndoModel + + <empty> + <vide> + + + + QUndoStack + + Undo + Annuler + + + Redo + Répéter + + + + QUnicodeControlCharacterMenu + + LRM Left-to-right mark + LRM Left-to-right mark + + + RLM Right-to-left mark + RLM Right-to-left mark + + + ZWJ Zero width joiner + ZWJ Zero width joiner + + + ZWNJ Zero width non-joiner + ZWNJ Zero width non-joiner + + + ZWSP Zero width space + ZWSP Zero width space + + + LRE Start of left-to-right embedding + LRE Start of left-to-right embedding + + + RLE Start of right-to-left embedding + RLE Start of right-to-left embedding + + + LRO Start of left-to-right override + LRO Start of left-to-right override + + + RLO Start of right-to-left override + RLO Start of right-to-left override + + + PDF Pop directional formatting + PDF Pop directional formatting + + + Insert Unicode control character + Insérer caractère de contrôle Unicode + + + + QWebFrame + + Request cancelled + Requête annulée + + + Request blocked + Requête bloquée + + + Cannot show URL + Impossible d'afficher l'URL + + + Frame load interrupted by policy change + Charge du cadre interrompue par le changement de politique + + + Cannot show mimetype + Impossible d'afficher le mimetype + + + File does not exist + Le fichier n'existe pas + + + + QWebPage + + Submit + default label for Submit buttons in forms on web pages + + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + + + + Reset + default label for Reset buttons in forms on web pages + + + + Choose File + title for file button used in HTML forms + Choisir le fichier + + + No file selected + text to display in file button used in HTML forms when no file is selected + + + + Open in New Window + Open in New Window context menu item + + + + Save Link... + Download Linked File context menu item + + + + Copy Link + Copy Link context menu item + Copier le lien + + + Open Image + Open Image in New Window context menu item + + + + Save Image + Download Image context menu item + + + + Copy Image + Copy Link context menu item + Copier l'image + + + Open Frame + Open Frame in New Window context menu item + + + + Copy + Copy context menu item + Copier + + + Go Back + Back context menu item + + + + Go Forward + Forward context menu item + + + + Stop + Stop context menu item + + + + Reload + Reload context menu item + + + + Cut + Cut context menu item + Couper + + + Paste + Paste context menu item + + + + No Guesses Found + No Guesses Found context menu item + + + + Ignore + Ignore Spelling context menu item + + + + Add To Dictionary + Learn Spelling context menu item + Ajouter au dictionnaire + + + Search The Web + Search The Web context menu item + + + + Look Up In Dictionary + Look Up in Dictionary context menu item + + + + Open Link + Open Link context menu item + + + + Ignore + Ignore Grammar context menu item + + + + Spelling + Spelling and Grammar context sub-menu item + + + + Show Spelling and Grammar + menu item title + + + + Hide Spelling and Grammar + menu item title + + + + Check Spelling + Check spelling context menu item + Vérifier l'orthographe + + + Check Spelling While Typing + Check spelling while typing context menu item + Vérifier l'orthographe pendant la saisie + + + Check Grammar With Spelling + Check grammar with spelling context menu item + Vérifier la grammaire en même temps que l'orthographe + + + Fonts + Font context sub-menu item + + + + Bold + Bold context menu item + Gras + + + Italic + Italic context menu item + + + + Underline + Underline context menu item + + + + Outline + Outline context menu item + + + + Direction + Writing direction context sub-menu item + Direction + + + Text Direction + Text direction context sub-menu item + + + + Default + Default writing direction context menu item + Défaut + + + Left to Right + Left to Right context menu item + Gauche à droite + + + Right to Left + Right to Left context menu item + Droite à gauche + + + Loading... + Media controller status message when the media is loading + Chargement... + + + Live Broadcast + Media controller status message when watching a live broadcast + Diffusion en direct + + + Audio Element + Media controller element + Élément audio + + + Video Element + Media controller element + Élément vidéo + + + Mute Button + Media controller element + Bouton de désactivation du son + + + Unmute Button + Media controller element + Bouton de réactivation du son + + + Play Button + Media controller element + Bouton de lecture + + + Pause Button + Media controller element + Bouton de pause + + + Slider + Media controller element + Barre de défilement + + + Slider Thumb + Media controller element + Curseur de la barre de défilement + + + Rewind Button + Media controller element + Bouton de retour en arrière + + + Return to Real-time Button + Media controller element + Bouton de retour au temps réel + + + Elapsed Time + Media controller element + Temps écoulé + + + Remaining Time + Media controller element + Durée restante + + + Status Display + Media controller element + Affichage de l'état + + + Fullscreen Button + Media controller element + Bouton de plein écran + + + Seek Forward Button + Media controller element + Bouton de recherche avant + + + Seek Back Button + Media controller element + Bouton de recherche arrière + + + Audio element playback controls and status display + Media controller element + Commandes de lecture et affichage de l'état de l'élément audio + + + Video element playback controls and status display + Media controller element + Commandes de lecture et affichage de l'état de l'élément vidéo + + + Mute audio tracks + Media controller element + Couper le son des pistes audio + + + Unmute audio tracks + Media controller element + Réactiver le son des pistes audio + + + Begin playback + Media controller element + Commencer la lecture + + + Pause playback + Media controller element + Pause lecture + + + Movie time scrubber + Media controller element + Épurateur de la durée du film + + + Movie time scrubber thumb + Media controller element + Case de défilement de l'épurateur de la durée du film + + + Rewind movie + Media controller element + Rembobiner le film + + + Return streaming movie to real-time + Media controller element + Ramener le film en streaming en temps réel + + + Current movie time + Media controller element + Durée du film actuel + + + Remaining movie time + Media controller element + Durée de film restante + + + Current movie status + Media controller element + État du film actuel + + + Play movie in full-screen mode + Media controller element + Regarder le film en mode plein écran + + + Seek quickly back + Media controller element + Recherche rapide arrière + + + Seek quickly forward + Media controller element + Recherche rapide avant + + + Indefinite time + Media time description + Durée indéfinie + + + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1 jours %2 heures %3 minutes %4 secondes + + + %1 hours %2 minutes %3 seconds + Media time description + %1 heures %2 minutes %3 secondes + + + %1 minutes %2 seconds + Media time description + %1 minutes %2 secondes + + + %1 seconds + Media time description + %1 secondes + + + Inspect + Inspect Element context menu item + + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + Effacer les recherches récentes + + + Unknown + Unknown filesize FTP directory listing item + + + + Web Inspector - %2 + + + + %1 (%2x%3 pixels) + Title string for images + %1 (%2x%3 pixels) + + + Bad HTTP request + Requête HTTP erronée + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + + + + Scroll here + + + + Left edge + + + + Top + + + + Right edge + + + + Bottom + En bas + + + Page left + + + + Page up + + + + Page right + + + + Page down + + + + Scroll left + + + + Scroll up + + + + Scroll right + + + + Scroll down + + + + %n file(s) + number of chosen file + + + + + + + JavaScript Alert - %1 + + + + JavaScript Confirm - %1 + + + + JavaScript Prompt - %1 + + + + JavaScript Problem - %1 + Problème de JavaScript - %1 + + + The script on this page appears to have a problem. Do you want to stop the script? + Le script de cette page semble avoir un problème. Souhaitez-vous arrêter le script? + + + Move the cursor to the next character + + + + Move the cursor to the previous character + + + + Move the cursor to the next word + + + + Move the cursor to the previous word + + + + Move the cursor to the next line + + + + Move the cursor to the previous line + + + + Move the cursor to the start of the line + + + + Move the cursor to the end of the line + + + + Move the cursor to the start of the block + + + + Move the cursor to the end of the block + + + + Move the cursor to the start of the document + + + + Move the cursor to the end of the document + + + + Select all + + + + Select to the next character + + + + Select to the previous character + + + + Select to the next word + + + + Select to the previous word + + + + Select to the next line + + + + Select to the previous line + + + + Select to the start of the line + + + + Select to the end of the line + + + + Select to the start of the block + + + + Select to the end of the block + + + + Select to the start of the document + + + + Select to the end of the document + + + + Delete to the start of the word + Supprimer jusqu'au début du mot + + + Delete to the end of the word + Supprimer jusqu'à la fin du mot + + + Insert a new paragraph + + + + Insert a new line + + + + Paste and Match Style + Coller et suivre le style + + + Remove formatting + Retirer la mise en forme + + + Strikethrough + Barré + + + Subscript + Indice + + + Superscript + Exposant + + + Insert Bulleted List + Insérer une liste à puces + + + Insert Numbered List + Insérer une liste numérotée + + + Indent + Retrait + + + Outdent + Retrait négatif + + + Center + Centré + + + Justify + Justifié + + + Align Left + Aligner à gauche + + + Align Right + Aligner à droite + + + + QWhatsThisAction + + What's This? + + + + + QWidget + + * + + + + + QWizard + + Cancel + + + + Help + + + + < &Back + + + + &Finish + + + + &Help + + + + Go Back + + + + Continue + + + + Commit + + + + Done + + + + &Next + + + + &Next > + + + + + QWorkspace + + &Restore + + + + &Move + + + + &Size + + + + Mi&nimize + + + + Ma&ximize + + + + &Close + + + + Stay on &Top + + + + Minimize + + + + Restore Down + + + + Close + + + + Sh&ade + + + + %1 - [%2] + + + + &Unshade + + + + + QXml + + no error occurred + + + + error triggered by consumer + + + + unexpected end of file + + + + more than one document type definition + + + + error occurred while parsing element + + + + tag mismatch + + + + error occurred while parsing content + + + + unexpected character + + + + invalid name for processing instruction + + + + version expected while reading the XML declaration + + + + wrong value for standalone declaration + + + + error occurred while parsing document type definition + + + + letter is expected + + + + error occurred while parsing comment + + + + error occurred while parsing reference + + + + internal general entity reference not allowed in DTD + + + + external parsed general entity reference not allowed in attribute value + + + + external parsed general entity reference not allowed in DTD + + + + unparsed entity reference in wrong context + + + + recursive entities + + + + error in the text declaration of an external entity + + + + encoding declaration or standalone declaration expected while reading the XML declaration + + + + standalone declaration expected while reading the XML declaration + + + + + QXmlPatternistCLI + + Warning in %1, at line %2, column %3: %4 + Avertissement dans %1, à la ligne %2, colonne %3: %4 + + + Warning in %1: %2 + Avertissement dans %1: %2 + + + Unknown location + Lieu inconnu + + + Error %1 in %2, at line %3, column %4: %5 + Erreur %1 dans %2, à la ligne %3, colonne %4: %5 + + + Error %1 in %2: %3 + Erreur %1 dans %2: %3 + + + + QXmlStream + + Extra content at end of document. + + + + Invalid entity value. + + + + Invalid XML character. + + + + Sequence ']]>' not allowed in content. + + + + Namespace prefix '%1' not declared + + + + Attribute redefined. + + + + Unexpected character '%1' in public id literal. + + + + Invalid XML version string. + + + + Unsupported XML version. + + + + %1 is an invalid encoding name. + + + + Encoding %1 is unsupported + + + + Standalone accepts only yes or no. + + + + Invalid attribute in XML declaration. + + + + Premature end of document. + + + + Invalid document. + + + + Expected + + + + , but got ' + + + + Unexpected ' + + + + Expected character data. + + + + Recursive entity detected. + + + + Start tag expected. + + + + XML declaration not at start of document. + + + + NDATA in parameter entity declaration. + + + + %1 is an invalid processing instruction name. + + + + Invalid processing instruction name. + + + + Illegal namespace declaration. + + + + Invalid XML name. + + + + Opening and ending tag mismatch. + + + + Reference to unparsed entity '%1'. + + + + Entity '%1' not declared. + + + + Reference to external entity '%1' in attribute value. + + + + Invalid character reference. + + + + Encountered incorrectly encoded content. + + + + The standalone pseudo attribute must appear after the encoding. + + + + %1 is an invalid PUBLIC identifier. + + + + + QtXmlPatterns + + At least one component must be present. + Au moins un composant doit être présent. + + + %1 is not a valid value of type %2. + %1 n'est pas une valeur valide du type %2. + + + When casting to %1 from %2, the source value cannot be %3. + En castant de %2 vers %1, la valeur source ne peut pas être %3. + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + Effective Boolean Value ne peut être calculée pour une séquence contenant deux ou plus valeurs atomiques. + + + The data of a processing instruction cannot contain the string %1 + Les données d'une instruction de traitement ne peut contenir la chaîne %1 + + + %1 is an invalid %2 + %1 est un ivalide %2 + + + %1 is not a valid XML 1.0 character. + %1 n'est pas un caractère XML 1.0 valide. + + + %1 was called. + %1 a été appelé. + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + Dans la chaîne de remplacement, %1 doit être suivi par au moins un chiffre s'il n'est pas échappé. + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + Dans la chaîne de remplacement, %1 peut seulement être utilisé pour échapper lui-même ou %2 mais pas %3 + + + %1 matches newline characters + %1 correspond à des caractères de saut de ligne + + + Matches are case insensitive + Les correspondances ne sont pas sensibles à la casse + + + %1 is an invalid regular expression pattern: %2 + %1 est un modèle d'expression régulière invalide: %2 + + + It will not be possible to retrieve %1. + Il sera impossible de récupérer %1. + + + The default collection is undefined + I'l n'y a pas de collection par défaut + + + %1 cannot be retrieved + %1 ne peut pas être récupéré + + + The item %1 did not match the required type %2. + L'item %1 ne correspond pas au type requis %2. + + + %1 is an unknown schema type. + %1 est un type de schema inconnu. + + + A template with name %1 has already been declared. + + + + Only one %1 declaration can occur in the query prolog. + Seulement une déclaration %1 peut intervenir lors du prologue de la requête. + + + The initialization of variable %1 depends on itself + L'initialisation de la variable %1 dépend d'elle-même + + + The variable %1 is unused + La variable %1 est inutilisée + + + Version %1 is not supported. The supported XQuery version is 1.0. + La version %1 n'est pas supportée. La version de XQuery supportée est 1.0. + + + No function with signature %1 is available + Aucune fonction avec la signature %1 n'est disponible + + + It is not possible to redeclare prefix %1. + Il est impossible de redéclarer le préfixe %1. + + + Prefix %1 is already declared in the prolog. + Le préfixe %1 est déjà déclaré dans le prologue. + + + The name of an option must have a prefix. There is no default namespace for options. + Le nom d'une option doit avoir un préfixe. Il n'y a pas de namespace par défaut pour les options. + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + La fonctionnalité "Schema Import" n'est pas supportée et les déclarations %1 ne peuvent donc intervenir. + + + The target namespace of a %1 cannot be empty. + Le namespace cible d'un %1 ne peut être vide. + + + The module import feature is not supported + La fonctionnalité "module import" n'est pas supportée + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + Le namespace d'une fonction utilisateur dans un module de bibliothèque doit être équivalent au namespace du module. En d'autres mots, il devrait être %1 au lieu de %2 + + + A function already exists with the signature %1. + Une fonction avec la signature %1 existe déjà. + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + Les fonctions externes ne sont pas supportées. Toutes les fonctions supportées peuvent êter utilisées directement sans les déclarer préalablement comme externes + + + The %1-axis is unsupported in XQuery + L'axe %1 n'est pas supporté dans XQuery + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + L'URI de namespace ne peut être une chaîne vide quand on le lie à un préfixe, %1. + + + %1 is an invalid namespace URI. + %1 est un URI de namespace invalide. + + + It is not possible to bind to the prefix %1 + Il est impossible de se lier au préfixe %1 + + + Two namespace declaration attributes have the same name: %1. + Deux attributs de déclarations de namespace ont le même nom : %1. + + + The namespace URI must be a constant and cannot use enclosed expressions. + L'URI de namespace doit être une constante et ne peut contenir d'expressions. + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + %1 n'est pas dans les déclaration d'attribut in-scope. La fonctionnalité d'inport de schéma n'est pas supportée. + + + empty + vide + + + zero or one + zéro ou un + + + exactly one + exactement un + + + one or more + un ou plus + + + zero or more + zéro ou plus + + + The focus is undefined. + Le focus est indéfini. + + + An attribute by name %1 has already been created. + Un attribute de nom %1 a déjà été créé. + + + Network timeout. + Le réseau ne répond pas. + + + Element %1 can't be serialized because it appears outside the document element. + L'élément %1 ne peut pas être sérialisé parce qu'il est hors de l'élément document. + + + Year %1 is invalid because it begins with %2. + L'année %1 est invalide parce qu'elle commence par %2. + + + Day %1 is outside the range %2..%3. + Le jour %1 est hors de l'intervalle %2..%3. + + + Month %1 is outside the range %2..%3. + Le mois %1 est hors de l'intervalle %2..%3. + + + Overflow: Can't represent date %1. + Overflow: ne peut pas représenter la date %1. + + + Day %1 is invalid for month %2. + Jour %1 est invalide pour le mois %2. + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + L'heure 24:%1:%2.%3 est invalide. L'heure est 24 mais les minutes, seconndes et millisecondes ne sont pas à 0; + + + Time %1:%2:%3.%4 is invalid. + L'heure %1:%2:%3.%4 est invalide. + + + Overflow: Date can't be represented. + Overflow : la date ne peut pas être représentée. + + + At least one time component must appear after the %1-delimiter. + Au moins un composant doit apparaître après le délimiteur %1. + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + Diviser une valeur du type %1 par %2 (not-a-number) est interdit. + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + Diviser une valeur de type %1 par %2 ou %3 (plus ou moins zéro) est interdit. + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + La multiplication d'une valeur du type %1 par %2 ou %3 (plus ou moins infini) est interdite. + + + A value of type %1 cannot have an Effective Boolean Value. + Une valeur de type %1 ne peut pas avoir une Effective Boolean Value. + + + Value %1 of type %2 exceeds maximum (%3). + La valeur %1 de type %2 excède le maximum (%3). + + + Value %1 of type %2 is below minimum (%3). + La valeur %1 de type %2 est inférieur au minimum (%3). + + + A value of type %1 must contain an even number of digits. The value %2 does not. + Une valeur de type %1 doit contenir un nombre pair de chiffre. La valeur %2 n'est pas conforme. + + + %1 is not valid as a value of type %2. + %1 n'est pas une valeur valide de type %2. + + + Operator %1 cannot be used on type %2. + L'opérateur %1 ne peut pas être utilisé pour le type %2. + + + Operator %1 cannot be used on atomic values of type %2 and %3. + L'opérateur %1 ne peut pas être utilisé pour des valeurs atomiques de type %2 ou %3. + + + The namespace URI in the name for a computed attribute cannot be %1. + L'URI de namespace dans le nom d'un attribut calculé ne peut pas être %1. + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + Le nom d'un attribut calculé ne peut pas avoir l'URI de namespace %1 avec le nom local %2. + + + Type error in cast, expected %1, received %2. + Erreur de type lors du cast, attendu %1 mais reçu %2. + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + En castant vers %1 ou des types dérivés, la valeur source doit être du même type ou une chaîne. Le type %2 n'est pas autorisé. + + + A comment cannot contain %1 + Un commentaire ne peut pas contenir %1 + + + A comment cannot end with a %1. + Un commentaire ne peut pas finir par %1. + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + Un noeuds attribut ne peut être un fils d'un noeuds document. C'est pourquoi l'attribut %1 est mal placé. + + + A library module cannot be evaluated directly. It must be imported from a main module. + Un module de bibliothèque ne peut pas être évalué directement. Il doit être importé d'un module principal. + + + No template by name %1 exists. + Aucun template nommé %1 n'existe. + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + Une valeur de type %1 ne peut être un prédicat. Un prédicat doit être de type numérique ou un Effective Boolean Value. + + + A positional predicate must evaluate to a single numeric value. + Un prédicat de position doit être évalué en une unique valeur numérique. + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + Le nom de destination dans une instruction de traitement ne peut être %1. %2 est invalide. + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 n'est pas un nom de destination valide dans une instruction de traitement. Ce doit être une valeur %2, par ex. %3. + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + La dernière étape dans un chemin doit contenir soit des noeuds soit des valeurs atomiques. Cela ne peut pas être un mélange des deux. + + + No namespace binding exists for the prefix %1 + Aucun lien de namespace n'existe pour le préfixe %1 + + + No namespace binding exists for the prefix %1 in %2 + Aucun lien de namespace n'existe pour le préfixe %1 dans %2 + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + Le premier argument de %1 ne peut être du type %2. Il doit être de type numérique, xs:yearMonthDuration ou xs:dayTimeDuration. + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Le premier argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5. + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Le deuxième argument de %1 ne peut être du type %2. Il doit être de type %3, %4 ou %5. + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + Si les deux valeurs ont des décalages de zone, elle doivent avoir le même. %1 et %2 sont différents. + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + %1 doit être suivi par %2 ou %3, et non à la fin de la chaîne de remplacement. + + + %1 and %2 match the start and end of a line. + %1 et %2 correspondent au début et à la fin d'une ligne. + + + Whitespace characters are removed, except when they appear in character classes + Les blancs sont supprimés excepté quand ils apparaissent dans les classes de caractère + + + %1 is an invalid flag for regular expressions. Valid flags are: + %1 est un flag invalide pour des expressions régulières. Les flags valides sont : + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + Si le premier argument est une sequence vide ou un chaîne vide (sans namespace), un préfixe ne peut être spécifié. Le préfixe %1 a été spécifié. + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + Le forme de normalisation %1 n'est pas supportée. Les formes supportées sont %2, %3, %4 et %5, et aucun, ie. une chaîne vide (pas de normalisation). + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + Un décalage de zone doit être dans l'intervalle %1..%2 inclus. %3 est hors de l'intervalle. + + + Required cardinality is %1; got cardinality %2. + La cardinalité requise est %1; reçu %2. + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + L'encodage %1 est invalide. Il doit contenir uniquement des caractères latins, sans blanc et doit être conforme à l'expression régulière %2. + + + The keyword %1 cannot occur with any other mode name. + Le mot-clé %1 ne peut pas apparaître avec un autre nom de mode. + + + No variable with name %1 exists + + + + The value of attribute %1 must be of type %2, which %3 isn't. + + + + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + + + + A variable with name %1 has already been declared. + + + + No value is available for the external variable with name %1. + + + + A stylesheet function must have a prefixed name. + Une fonction de feuille de style doit avoir un nom préfixé. + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + Le namespace %1 est réservé; c'est pourquoi les fonctions définies par l'utilisateur ne peuvent l'utiliser. Essayez le préfixe prédéfini %2 qui existe pour ces cas. + + + An argument with name %1 has already been declared. Every argument name must be unique. + + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + Quand la fonction %1 est utilisée pour vérifier la correspondance dans un pattern, l'argument doit être une référence de variable ou une chaîne de caractères. + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + Dans un pattern XSL-T, le premier argument à la fonction %1 doit être une chaîne de caractères quand utilisé pour correspondance. + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + Dans un pattern XSL-T, le premier argument à la fonction %1 doit être un litéral ou une référence de variable. + + + In an XSL-T pattern, function %1 cannot have a third argument. + Dans un pattern XSL-T, la fonction %1 ne peut pas avoir de 3e argument. + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + Dans un pattern XSL-T, seules les fonctions %1 et %2 (pas %3) peuvent être utilisées pour le matching. + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + Dans un pattern XSL-T, l'axe %1 ne peut pas être utilisé, seulement %2 ou %3 le peuvent. + + + %1 is an invalid template mode name. + %1 est un nom de mode de template invalide. + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + Le nom d'une variable liée dans un expression for doit être different de la variable positionnelle. Les deux variables appelées %1 sont en conflit. + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + La fonctionnalité "Schema Validation" n'est pas supportée. Les expressions %1 ne seront pas utilisées. + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + Aucune des expressions pragma n'est supportée. Une expression par défault doit être présente + + + Each name of a template parameter must be unique; %1 is duplicated. + Chaque nom d'un paramètre ede template doit être unique; %1 est dupliqué. + + + No function with name %1 is available. + + + + %1 is not a valid numeric literal. + %1 n'est pas une valeur numérique valide. + + + W3C XML Schema identity constraint selector + + + + W3C XML Schema identity constraint field + + + + A construct was encountered which is disallowed in the current language(%1). + + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + Le namespace %1 peut seulement être lié à %2 (et doit être pré-déclaré). + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + Le préfixe %1 peut seulement être lié à %2 (et doit être prédéclaré). + + + An attribute with name %1 has already appeared on this element. + + + + A direct element constructor is not well-formed. %1 is ended with %2. + Un constructeur direct d'élément est mal-formé. %1 est terminé par %2. + + + The name %1 does not refer to any schema type. + Le nom %1 ne se réfère à aucun type de schema. + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + %1 est une type complexe. Caster vers des types complexes n'est pas possible. Cependant, caster vers des types atomiques comme %2 marche. + + + %1 is not an atomic type. Casting is only possible to atomic types. + %1 n'est pas un type atomique. Il est uniquement possible de caster vers des types atomiques. + + + %1 is not a valid name for a processing-instruction. + %1 n'est pas un nom valide pour une instruction de traitement. + + + The name of an extension expression must be in a namespace. + Le nom d'une expression d'extension doit être dans un namespace. + + + Required type is %1, but %2 was found. + Le type requis est %1, mais %2 a été reçu. + + + Promoting %1 to %2 may cause loss of precision. + La Promotion de %1 vers %2 peut causer un perte de précision. + + + It's not possible to add attributes after any other kind of node. + Il est impossible d'ajouter des attributs après un autre type de noeuds. + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + Seule le Unicode CodepointCollation est supporté (%1), %2 n'est pas supporté. + + + Integer division (%1) by zero (%2) is undefined. + Division entière (%1) par zéro (%2) indéfinie. + + + Division (%1) by zero (%2) is undefined. + Division (%1) par zéro (%2) indéfinie. + + + Modulus division (%1) by zero (%2) is undefined. + Module division (%1) par zéro (%2) indéfinie. + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + %1 prend au maximum %n argument. %2 est donc invalide. + %1 prend au maximum %n arguments. %2 est donc invalide. + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 requiert au moins %n argument. %2 est donc invalide. + %1 requiert au moins %n arguments. %2 est donc invalide. + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + Le noeuds racine du deuxième argument à la fonction %1 doit être un noeuds document. %2 n'est pas un document. + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + Le namespace d'une fonction utilisateur ne peut pas être vide (essayez le préfixe prédéfini %1 qui existe pour ce genre de cas) + + + A default namespace declaration must occur before function, variable, and option declarations. + Un déclaration de namespace par défaut doit être placée avant toute fonction, variable ou declaration d'option. + + + Namespace declarations must occur before function, variable, and option declarations. + Les declarations de namespace doivent être placées avant tout fonction, variable ou déclaration d'option. + + + Module imports must occur before function, variable, and option declarations. + Les imports de module doivent être placés avant tout fonction, variable ou déclaration d'option. + + + %1 is not a whole number of minutes. + %1 n'est pas un nombre entier de minutes. + + + Attribute %1 can't be serialized because it appears at the top level. + L'attribut %1 ne peut pas être sérialisé car il apparaît à la racine. + + + %1 is an unsupported encoding. + %1 est un encodage non supporté. + + + %1 contains octets which are disallowed in the requested encoding %2. + %1 contient 'octets', qui n'est pas autorisé pour l'encodage %2. + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + Le codepoint %1 dans %2 et utilisant l'encodage %3 est un caractère XML invalide. + + + Ambiguous rule match. + Corresonpdance aux règles ambigüe. + + + In a namespace constructor, the value for a namespace cannot be an empty string. + Dans un constructeur d'espace de noms, la valeur pour un espace de noms ne peut pas être une chaîne vide. + + + The prefix must be a valid %1, which %2 is not. + Le préfixe doit être un valide %1; %2 n'e l'est pas. + + + The prefix %1 cannot be bound. + Le préfixe %1 ne peut être lié. + + + Only the prefix %1 can be bound to %2 and vice versa. + Seul le préfixe %1 peut être lié à %2, et vice versa. + + + The parameter %1 is required, but no corresponding %2 is supplied. + Le paramètre %1 est requis, mais aucun %2 correspondant n'est fourni. + + + The parameter %1 is passed, but no corresponding %2 exists. + Le paramètre %1 est passé mais aucun %2 correspondant n'existe. + + + The URI cannot have a fragment + L'URI ne peut pas avoir de fragments + + + Element %1 is not allowed at this location. + L'élément %1 n'est pas autorisé à cet emplacement. + + + Text nodes are not allowed at this location. + Les noeuds de texte ne sont pas autorisés à cet emplacement. + + + Parse error: %1 + Erreur: %1 + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + La valeur de l'attribut de version XSL-T doit être du type %1, et non %2. + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + Lancement d'une feuille de style XSL-T 1.0 avec un processeur 2.0. + + + Unknown XSL-T attribute %1. + Attribut XSL-T inconnu : %1. + + + Attribute %1 and %2 are mutually exclusive. + Les attributs %1 et %2 sont mutuellement exclusifs. + + + In a simplified stylesheet module, attribute %1 must be present. + Dans un module de feuille de style simplifié, l'attribut %1 doit être présent. + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + Si l'élément %1 n'a pas d'attribut %2, il ne peut pas avoir d'attribut %3 ou %4. + + + Element %1 must have at least one of the attributes %2 or %3. + L'élement %1 doit avoir au moins un des attributs %2 ou %3. + + + At least one mode must be specified in the %1-attribute on element %2. + Au moins un mode doit être spécifié dans l'attribut %1 sur l'élément %2. + + + Element %1 must come last. + L'élément %1 doit être le dernier. + + + At least one %1-element must occur before %2. + Au moins un élément %1 doit être placé avant %2. + + + Only one %1-element can appear. + Seulement un élément %1 peut apparaître. + + + At least one %1-element must occur inside %2. + Au moins un élément %1 doit apparaître dans %2. + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + Quand l'attribut %1 est présent sur %2, un constructeur de séquence ne peut pas être utilisé. + + + Element %1 must have either a %2-attribute or a sequence constructor. + L'élément %1 doit avoir un attribut %2 ou un constructeur de séquence. + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + Quand un paramètre est requis, un valeur par défault ne peut pas être fournie par un attribute %1 ou un constructeur de séquence. + + + Element %1 cannot have children. + L'élément %1 ne peut pas avoir de fils. + + + Element %1 cannot have a sequence constructor. + L'élément %1 ne peut pas avoir un constructuer de séquence. + + + The attribute %1 cannot appear on %2, when it is a child of %3. + L'attribut %1 ne peut pas apparaître sur %2 quand il est fils de %3. + + + A parameter in a function cannot be declared to be a tunnel. + Un paramètre de fonction ne peut pas être déclaré comme un tunnel. + + + This processor is not Schema-aware and therefore %1 cannot be used. + Ce processeur ne comprend pas les Schemas. C'est pourquoi %1 ne peut pas être utilisé. + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + Les élément d'une feuille de style de haut niveau doivent être dans un namespace non nul; %1 ne l'est pas. + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + La valeur de l'attribut %1 de l'élement %2 doit être %3 ou %4, et pas %5. + + + Attribute %1 cannot have the value %2. + L'attribut %1 ne peut avoir la valeur %2. + + + The attribute %1 can only appear on the first %2 element. + L'attribute %1 peut seulement apparaître sur le premier élément %2. + + + At least one %1 element must appear as child of %2. + Au moins un élément %1 doit apparaître comme fils de %2. + + + %1 has inheritance loop in its base type %2. + + + + Circular inheritance of base type %1. + + + + Circular inheritance of union %1. + + + + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + + + + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + + + + Base type of simple type %1 cannot be complex type %2. + + + + Simple type %1 cannot have direct base type %2. + + + + Simple type %1 is not allowed to have base type %2. + + + + Simple type %1 can only have simple atomic type as base type. + + + + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + + + + Variety of item type of %1 must be either atomic or union. + + + + Variety of member types of %1 must be atomic. + + + + %1 is not allowed to derive from %2 by list as the latter defines it as final. + + + + Simple type %1 is only allowed to have %2 facet. + + + + Base type of simple type %1 must have variety of type list. + + + + Base type of simple type %1 has defined derivation by restriction as final. + + + + Item type of base type does not match item type of %1. + + + + Simple type %1 contains not allowed facet type %2. + + + + %1 is not allowed to derive from %2 by union as the latter defines it as final. + + + + %1 is not allowed to have any facets. + + + + Base type %1 of simple type %2 must have variety of union. + + + + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + + + + Member type %1 cannot be derived from member type %2 of %3's base type %4. + + + + Derivation method of %1 must be extension because the base type %2 is a simple type. + + + + Complex type %1 has duplicated element %2 in its content model. + + + + Complex type %1 has non-deterministic content. + + + + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + + + + Content model of complex type %1 is not a valid extension of content model of %2. + + + + Complex type %1 must have simple content. + + + + Complex type %1 must have the same simple type as its base class %2. + + + + Complex type %1 cannot be derived from base type %2%3. + + + + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + + + + Complex type %1 with simple content cannot be derived from complex base type %2. + + + + Item type of simple type %1 cannot be a complex type. + + + + Member type of simple type %1 cannot be a complex type. + + + + %1 is not allowed to have a member type with the same name as itself. + + + + %1 facet collides with %2 facet. + + + + %1 facet must have the same value as %2 facet of base type. + + + + %1 facet must be equal or greater than %2 facet of base type. + + + + %1 facet must be less than or equal to %2 facet of base type. + + + + %1 facet contains invalid regular expression + + + + Unknown notation %1 used in %2 facet. + + + + %1 facet contains invalid value %2: %3. + + + + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + + + + %1 facet cannot be %2 if %3 facet of base type is %4. + + + + %1 facet must be less than or equal to %2 facet. + + + + %1 facet must be less than %2 facet of base type. + + + + %1 facet and %2 facet cannot appear together. + + + + %1 facet must be greater than %2 facet of base type. + + + + %1 facet must be less than %2 facet. + + + + %1 facet must be greater than or equal to %2 facet of base type. + + + + Simple type contains not allowed facet %1. + + + + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + + + + Only %1 and %2 facets are allowed when derived by union. + + + + %1 contains %2 facet with invalid data: %3. + + + + Attribute group %1 contains attribute %2 twice. + + + + Attribute group %1 contains two different attributes that both have types derived from %2. + + + + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + + Complex type %1 contains attribute %2 twice. + + + + Complex type %1 contains two different attributes that both have types derived from %2. + + + + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + + Element %1 is not allowed to have a value constraint if its base type is complex. + + + + Element %1 is not allowed to have a value constraint if its type is derived from %2. + + + + Value constraint of element %1 is not of elements type: %2. + + + + Element %1 is not allowed to have substitution group affiliation as it is no global element. + + + + Type of element %1 cannot be derived from type of substitution group affiliation. + + + + Value constraint of attribute %1 is not of attributes type: %2. + + + + Attribute %1 has value constraint but has type derived from %2. + + + + %1 attribute in derived complex type must be %2 like in base type. + + + + Attribute %1 in derived complex type must have %2 value constraint like in base type. + + + + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. + + + + Attribute %1 in derived complex type must have %2 value constraint. + + + + processContent of base wildcard must be weaker than derived wildcard. + + + + Element %1 exists twice with different types. + + + + Particle contains non-deterministic wildcards. + + + + Base attribute %1 is required but derived attribute is not. + + + + Type of derived attribute %1 cannot be validly derived from type of base attribute. + + + + Value constraint of derived attribute %1 does not match value constraint of base attribute. + + + + Derived attribute %1 does not exist in the base definition. + + + + Derived attribute %1 does not match the wildcard in the base definition. + + + + Base attribute %1 is required but missing in derived definition. + + + + Derived definition contains an %1 element that does not exists in the base definition + + + + Derived wildcard is not a subset of the base wildcard. + + + + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + + + + Attribute %1 from base type is missing in derived type. + + + + Type of derived attribute %1 differs from type of base attribute. + + + + Base definition contains an %1 element that is missing in the derived definition + + + + %1 references unknown %2 or %3 element %4. + + + + %1 references identity constraint %2 that is no %3 or %4 element. + + + + %1 has a different number of fields from the identity constraint %2 that it references. + + + + Base type %1 of %2 element cannot be resolved. + + + + Item type %1 of %2 element cannot be resolved. + + + + Member type %1 of %2 element cannot be resolved. + + + + Type %1 of %2 element cannot be resolved. + + + + Base type %1 of complex type cannot be resolved. + + + + %1 cannot have complex base type that has a %2. + + + + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. + + + + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. + + + + Type of %1 element must be a simple type, %2 is not. + + + + Substitution group %1 of %2 element cannot be resolved. + + + + Substitution group %1 has circular definition. + + + + Duplicated element names %1 in %2 element. + + + + Reference %1 of %2 element cannot be resolved. + + + + Circular group reference for %1. + + + + %1 element is not allowed in this scope + + + + %1 element cannot have %2 attribute with value other than %3. + + + + %1 element cannot have %2 attribute with value other than %3 or %4. + + + + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. + + + + Attribute group %1 has circular reference. + + + + %1 attribute in %2 must have %3 use like in base type %4. + + + + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. + + + + %1 has attribute wildcard but its base type %2 has not. + + + + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. + + + + Enumeration facet contains invalid content: {%1} is not a value of type %2. + + + + Namespace prefix of qualified name %1 is not defined. + + + + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. + + + + Empty particle cannot be derived from non-empty particle. + + + + Derived particle is missing element %1. + + + + Derived element %1 is missing value constraint as defined in base particle. + + + + Derived element %1 has weaker value constraint than base particle. + + + + Fixed value constraint of element %1 differs from value constraint in base particle. + + + + Derived element %1 cannot be nillable as base element is not nillable. + + + + Block constraints of derived element %1 must not be more weaker than in the base element. + + + + Simple type of derived element %1 cannot be validly derived from base element. + + + + Complex type of derived element %1 cannot be validly derived from base element. + + + + Element %1 is missing in derived particle. + + + + Element %1 does not match namespace constraint of wildcard in base particle. + + + + Wildcard in derived particle is not a valid subset of wildcard in base particle. + + + + processContent of wildcard in derived particle is weaker than wildcard in base particle. + + + + Derived particle allows content that is not allowed in the base particle. + + + + Can not process unknown element %1, expected elements are: %2. + + + + Element %1 is not allowed in this scope, possible elements are: %2. + + + + Child element is missing in that scope, possible child elements are: %1. + + + + Document is not a XML schema. + + + + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + + + + %1 attribute of %2 element contains invalid content: {%3}. + + + + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + + + + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + + + + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + + + + %1 element without %2 attribute is not allowed inside schema without target namespace. + + + + %1 element is not allowed inside %2 element if %3 attribute is present. + + + + %1 element has neither %2 attribute nor %3 child element. + + + + %1 element with %2 child element must not have a %3 attribute. + + + + %1 attribute of %2 element must be %3 or %4. + + + + %1 attribute of %2 element must have a value of %3. + + + + %1 attribute of %2 element must have a value of %3 or %4. + + + + %1 element must not have %2 and %3 attribute together. + + + + Content of %1 attribute of %2 element must not be from namespace %3. + + + + %1 attribute of %2 element must not be %3. + + + + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + + + + Specifying use='prohibited' inside an attribute group has no effect. + + + + %1 element must have either %2 or %3 attribute. + + + + %1 element must have either %2 attribute or %3 or %4 as child element. + + + + %1 element requires either %2 or %3 attribute. + + + + Text or entity references not allowed inside %1 element + + + + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + + + + %1 element is not allowed in this context. + + + + %1 attribute of %2 element has larger value than %3 attribute. + + + + Prefix of qualified name %1 is not defined. + + + + %1 attribute of %2 element must either contain %3 or the other values. + + + + Component with ID %1 has been defined previously. + + + + Element %1 already defined. + + + + Attribute %1 already defined. + + + + Type %1 already defined. + + + + Attribute group %1 already defined. + + + + Element group %1 already defined. + + + + Notation %1 already defined. + + + + Identity constraint %1 already defined. + + + + Duplicated facets in simple type %1. + + + + %1 is not valid according to %2. + + + + String content does not match the length facet. + + + + String content does not match the minLength facet. + + + + String content does not match the maxLength facet. + + + + String content does not match pattern facet. + + + + String content is not listed in the enumeration facet. + + + + Signed integer content does not match the maxInclusive facet. + + + + Signed integer content does not match the maxExclusive facet. + + + + Signed integer content does not match the minInclusive facet. + + + + Signed integer content does not match the minExclusive facet. + + + + Signed integer content is not listed in the enumeration facet. + + + + Signed integer content does not match pattern facet. + + + + Signed integer content does not match in the totalDigits facet. + + + + Unsigned integer content does not match the maxInclusive facet. + + + + Unsigned integer content does not match the maxExclusive facet. + + + + Unsigned integer content does not match the minInclusive facet. + + + + Unsigned integer content does not match the minExclusive facet. + + + + Unsigned integer content is not listed in the enumeration facet. + + + + Unsigned integer content does not match pattern facet. + + + + Unsigned integer content does not match in the totalDigits facet. + + + + Double content does not match the maxInclusive facet. + + + + Double content does not match the maxExclusive facet. + + + + Double content does not match the minInclusive facet. + + + + Double content does not match the minExclusive facet. + + + + Double content is not listed in the enumeration facet. + + + + Double content does not match pattern facet. + + + + Decimal content does not match in the fractionDigits facet. + + + + Decimal content does not match in the totalDigits facet. + + + + Date time content does not match the maxInclusive facet. + + + + Date time content does not match the maxExclusive facet. + + + + Date time content does not match the minInclusive facet. + + + + Date time content does not match the minExclusive facet. + + + + Date time content is not listed in the enumeration facet. + + + + Date time content does not match pattern facet. + + + + Duration content does not match the maxInclusive facet. + + + + Duration content does not match the maxExclusive facet. + + + + Duration content does not match the minInclusive facet. + + + + Duration content does not match the minExclusive facet. + + + + Duration content is not listed in the enumeration facet. + + + + Duration content does not match pattern facet. + + + + Boolean content does not match pattern facet. + + + + Binary content does not match the length facet. + + + + Binary content does not match the minLength facet. + + + + Binary content does not match the maxLength facet. + + + + Binary content is not listed in the enumeration facet. + + + + Invalid QName content: %1. + + + + QName content is not listed in the enumeration facet. + + + + QName content does not match pattern facet. + + + + Notation content is not listed in the enumeration facet. + + + + List content does not match length facet. + + + + List content does not match minLength facet. + + + + List content does not match maxLength facet. + + + + List content is not listed in the enumeration facet. + + + + List content does not match pattern facet. + + + + Union content is not listed in the enumeration facet. + + + + Union content does not match pattern facet. + + + + Data of type %1 are not allowed to be empty. + + + + Element %1 is missing child element. + + + + There is one IDREF value with no corresponding ID: %1. + + + + Loaded schema file is invalid. + + + + %1 contains invalid data. + + + + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + + + + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + + + + No schema defined for validation. + + + + No definition for element %1 available. + + + + Specified type %1 is not known to the schema. + + + + Element %1 is not defined in this scope. + + + + Declaration for element %1 does not exist. + + + + Element %1 contains invalid content. + + + + Element %1 is declared as abstract. + + + + Element %1 is not nillable. + + + + Attribute %1 contains invalid data: %2 + + + + Element contains content although it is nillable. + + + + Fixed value constraint not allowed if element is nillable. + + + + Element %1 cannot contain other elements, as it has a fixed content. + + + + Specified type %1 is not validly substitutable with element type %2. + + + + Complex type %1 is not allowed to be abstract. + + + + Element %1 contains not allowed attributes. + + + + Element %1 contains not allowed child element. + + + + Content of element %1 does not match its type definition: %2. + + + + Content of element %1 does not match defined value constraint. + + + + Element %1 contains not allowed child content. + + + + Element %1 contains not allowed text content. + + + + Element %1 is missing required attribute %2. + + + + Attribute %1 does not match the attribute wildcard. + + + + Declaration for attribute %1 does not exist. + + + + Element %1 contains two attributes of type %2. + + + + Attribute %1 contains invalid content. + + + + Element %1 contains unknown attribute %2. + + + + Content of attribute %1 does not match its type definition: %2. + + + + Content of attribute %1 does not match defined value constraint. + + + + Non-unique value found for constraint %1. + + + + Key constraint %1 contains absent fields. + + + + Key constraint %1 contains references nillable element %2. + + + + No referenced value found for key reference %1. + + + + More than one value found for field %1. + + + + Field %1 has no simple type. + + + + ID value '%1' is not unique. + + + + '%1' attribute contains invalid QName content: %2. + + + + diff --git a/config.profiles/symbian/translations/qt_he.ts b/config.profiles/symbian/translations/qt_he.ts new file mode 100644 index 0000000..72a6df9 --- /dev/null +++ b/config.profiles/symbian/translations/qt_he.ts @@ -0,0 +1,7781 @@ + + + + + AudioOutput + + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + + + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + + + + + Revert back to device '%1' + + + + + CloseButton + + + Close Tab + + + + + PPDOptionsModel + + Name + שם + + + + Phonon:: + + + Notifications + + + + + Music + + + + + Video + + + + + Communication + + + + + Games + + + + + Accessibility + + + + + Phonon::Gstreamer::Backend + + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + + + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + + + + + Phonon::Gstreamer::MediaObject + + + Cannot start playback. + +Check your Gstreamer installation and make sure you +have libgstreamer-plugins-base installed. + + + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + + + + + + + + + + + + Could not open media source. + + + + + Invalid source type. + + + + + Could not locate media source. + + + + + Could not open audio device. The device is already in use. + + + + + Could not decode media source. + + + + + Phonon::VolumeSlider + + + + Volume: %1% + + + + + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + + + + + Q3Accel + + + %1, %2 not defined + + + + + Ambiguous %1 not handled + + + + + Q3DataTable + + + True + אמת + + + + False + שקר + + + + Insert + הוסף + + + + Update + עדכן + + + + Delete + מחק + + + + Q3FileDialog + + + Copy or Move a File + העתק או העבר קובץ + + + + Read: %1 + קרא: %1 + + + + + Write: %1 + כתוב: %1 + + + + + Cancel + ביטול + + + + + + + All Files (*) + כל הקבצים (*) + + + + Name + שם + + + + Size + גודל + + + + Type + סוג + + + + Date + תאריך + + + + Attributes + מאפיינים + + + + + &OK + &אישור + + + + Look &in: + &חפש ב: + + + + + + File &name: + &שם הקובץ: + + + + File &type: + &סוג הקובץ: + + + + Back + אחורה + + + + One directory up + ספריה אחת למעלה + + + + Create New Folder + צור תיקיה חדשה + + + + List View + תצוגת רשימה + + + + Detail View + תצוגת פרטים + + + + Preview File Info + תצוגה מקדימה של פרטי הקובץ + + + + Preview File Contents + תצוגה מקדימה של תוכן הקובץ + + + + Read-write + קריאה-כתיבה + + + + Read-only + קריאה-בלבד + + + + Write-only + כתיבה-בלבד + + + + Inaccessible + לא נגיש + + + + Symlink to File + קישור סמלי לקובץ + + + + Symlink to Directory + קישור סמלי לספריה + + + + Symlink to Special + קישור סמלי לפריט מיוחד + + + + File + קובץ + + + + Dir + ספריה + + + + Special + מיוחד + + + + + + Open + פתח + + + + + Save As + שמירה בשם + + + + + + &Open + &פתח + + + + + &Save + &שמור + + + + &Rename + ש&נה שם + + + + &Delete + &מחק + + + + R&eload + &טען מחדש + + + + Sort by &Name + סדר לפי ש&ם + + + + Sort by &Size + סדר לפי &גודל + + + + Sort by &Date + סדר לפי &תאריך + + + + &Unsorted + &ללא סדר + + + + Sort + סדר + + + + Show &hidden files + הצג קבצים &מוסתרים + + + + the file + הקובץ + + + + the directory + הספריה + + + + the symlink + הקישור הסמלי + + + + Delete %1 + מחק את %1 + + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + <qt>האם אתה בטוח שברצונך למחוק %1 "%2"?</qt> + + + + &Yes + &כן + + + + &No + &לא + + + + New Folder 1 + תיקיה חדשה 1 + + + + New Folder + תיקיה חדשה + + + + New Folder %1 + תיקיה חדשה %1 + + + + Find Directory + חפש ספריה + + + + + Directories + ספריות + + + + Directory: + + + + + + Error + שגיאה + + + + %1 +File not found. +Check path and filename. + %1 +הקובץ לא נמצא. +בדוק את הנתיב ואת שם הקובץ. + + + + All Files (*.*) + כל הקבצים (*.*) + + + + Open + פתח + + + + Select a Directory + בחר ספריה + + + + Q3LocalFs + + + + Could not read directory +%1 + + + + + Could not create directory +%1 + + + + + Could not remove file or directory +%1 + + + + + Could not rename +%1 +to +%2 + לא ניתן לשנות את השם של +%1 +אל +%2 + + + + Could not open +%1 + לא ניתן לפתוח את +%1 + + + + Could not write +%1 + לא ניתן לכתוב את +%1 + + + + Q3MainWindow + + + Line up + סדר בשורה + + + + Customize... + התאמה אישית... + + + + Q3NetworkProtocol + + + Operation stopped by the user + הפעולה הופסקה על ידי המשתמש + + + + Q3ProgressDialog + + + + Cancel + ביטול + + + + Q3TabDialog + + + + OK + אישור + + + + Apply + החל + + + + Help + עזרה + + + + Defaults + ברירות מחדל + + + + Cancel + ביטול + + + + Q3TextEdit + + + &Undo + &בטל + + + + &Redo + בצע &שוב + + + + Cu&t + &גזור + + + + &Copy + הע&תק + + + + &Paste + ה&דבק + + + + Clear + נקה + + + + + Select All + בחר הכל + + + + Q3TitleBar + + + System + + + + + Restore up + + + + + Minimize + מזער + + + + Restore down + + + + + Maximize + הגדל + + + + Close + סגור + + + + Contains commands to manipulate the window + + + + + Puts a minimized back to normal + + + + + Moves the window out of the way + + + + + Puts a maximized window back to normal + + + + + Makes the window full screen + + + + + Closes the window + + + + + Displays the name of the window and contains controls to manipulate it + + + + + Q3ToolBar + + + More... + + + + + Q3UrlOperator + + + + + The protocol `%1' is not supported + הפרוטוקול "%1" אינו נתמך + + + + The protocol `%1' does not support listing directories + הפרוטוקול "%1" לא תומך בהצגת ספריות + + + + The protocol `%1' does not support creating new directories + הפרוטוקול "%1" לא תומך ביצירת ספריית חדשות + + + + The protocol `%1' does not support removing files or directories + הפרוטוקול "%1" לא תומך בהסרת קבצים או ספריות + + + + The protocol `%1' does not support renaming files or directories + הפרוטוקול "%1" לא תומך בשינוי שמותיהם של קבצים או ספריות + + + + The protocol `%1' does not support getting files + הפרוטוקול "%1" לא תומך בהורדת קבצים + + + + The protocol `%1' does not support putting files + הפרוטוקול "%1" לא תומך בהעלאת קבצים + + + + + The protocol `%1' does not support copying or moving files or directories + הפרוטוקול "%1" לא תומך בהעתקה או העברה של קבצים או ספריות + + + + + (unknown) + (לא ידוע) + + + + Q3Wizard + + + &Cancel + + + + + < &Back + + + + + &Next > + + + + + &Finish + + + + + &Help + + + + + QAbstractSocket + + + + + + Host not found + + + + + + + Connection refused + החיבור נדחה + + + + Connection timed out + + + + + + + Operation on socket is not supported + + + + + Socket operation timed out + + + + + Socket is not connected + + + + + Network unreachable + + + + + QAbstractSpinBox + + + &Step up + + + + + Step &down + + + + + &Select All + + + + + QApplication + + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + RTL + + + + Executable '%1' requires Qt %2, found Qt %3. + + + + + Incompatible Qt Library Error + + + + + Activate + + + + + Activates the program's main window + + + + + QAxSelect + + + Select ActiveX Control + + + + + OK + אישור + + + + &Cancel + + + + + COM &Object: + + + + + QCheckBox + + + Uncheck + + + + + Check + + + + + Toggle + + + + + QColorDialog + + + Hu&e: + &גוון: + + + + &Sat: + &הרוויה: + + + + &Val: + &ערך: + + + + &Red: + &אדום: + + + + &Green: + &ירוק: + + + + Bl&ue: + &כחול: + + + + A&lpha channel: + ע&רוץ אלפא: + + + + Select Color + + + + + &Basic colors + &צבעים בסיסיים + + + + &Custom colors + צבעים &מותאמים אישית + + + &Define Custom Colors >> + &הגדר צבעים מותאמים אישית >> + + + OK + אישור + + + Cancel + ביטול + + + + &Add to Custom Colors + ה&וסף לצבעים מותאמים אישית + + + Select color + בחירת צבע + + + + QComboBox + + + + Open + פתח + + + + False + שקר + + + + True + אמת + + + + Close + סגור + + + + QCoreApplication + + + %1: key is empty + QSystemSemaphore + + + + + %1: unable to make key + QSystemSemaphore + + + + + %1: ftok failed + QSystemSemaphore + + + + + QDB2Driver + + + Unable to connect + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + Unable to set autocommit + + + + + QDB2Result + + + + Unable to execute statement + + + + + Unable to prepare statement + + + + + Unable to bind variable + + + + + Unable to fetch record %1 + + + + + Unable to fetch next + + + + + Unable to fetch first + + + + + QDateTimeEdit + + + AM + + + + + am + + + + + PM + + + + + pm + + + + + QDial + + + QDial + + + + + SpeedoMeter + + + + + SliderHandle + + + + + QDialog + + + What's This? + מה זה? + + + + Done + + + + + QDialogButtonBox + + + + + OK + אישור + + + + Save + שמור + + + + &Save + &שמור + + + + Open + פתח + + + + Cancel + ביטול + + + + &Cancel + + + + + Close + סגור + + + + &Close + &סגור + + + + Apply + החל + + + + Reset + + + + + Help + עזרה + + + + Don't Save + + + + + Discard + + + + + &Yes + &כן + + + + Yes to &All + + + + + &No + &לא + + + + N&o to All + + + + + Save All + + + + + Abort + + + + + Retry + + + + + Ignore + + + + + Restore Defaults + + + + + Close without Saving + + + + + &OK + &אישור + + + + QDirModel + + + Name + שם + + + + Size + גודל + + + + Kind + Match OS X Finder + + + + + Type + All other platforms + סוג + + + + Date Modified + + + + + QDockWidget + + + Close + סגור + + + + Dock + + + + + Float + + + + + QDoubleSpinBox + + + More + + + + + Less + + + + + QErrorMessage + + + &Show this message again + &הצג הודעה זו שנית + + + + &OK + &אישור + + + + Debug Message: + + + + + Warning: + + + + + Fatal Error: + + + + + QFile + + + + Destination file exists + + + + + Cannot remove source file + + + + + Cannot open %1 for input + + + + + Cannot open for output + + + + + Failure to write block + + + + + Cannot create %1 for output + + + + + QFileDialog + + + + All Files (*) + כל הקבצים (*) + + + + + Back + אחורה + + + + + List View + תצוגת רשימה + + + + + Detail View + תצוגת פרטים + + + + + File + קובץ + + + + Open + פתח + + + + Save As + שמירה בשם + + + + + + + &Open + &פתח + + + + + &Save + &שמור + + + + &Rename + ש&נה שם + + + + &Delete + &מחק + + + + Show &hidden files + הצג קבצים &מוסתרים + + + + New Folder + תיקיה חדשה + + + + Find Directory + חפש ספריה + + + + Directories + ספריות + + + + All Files (*.*) + כל הקבצים (*.*) + + + + %1 already exists. +Do you want to replace it? + + + + + %1 +File not found. +Please verify the correct file name was given. + + + + + My Computer + + + + + + Parent Directory + + + + + + Files of type: + + + + + + Directory: + + + + + + %1 +Directory not found. +Please verify the correct directory name was given. + + + + + '%1' is write protected. +Do you want to delete it anyway? + + + + + Are sure you want to delete '%1'? + + + + + Could not delete directory. + + + + + Recent Places + + + + + Drive + + + + + Unknown + + + + + Show + + + + + + Forward + + + + + &New Folder + + + + + + &Choose + + + + + Remove + + + + + + File &name: + &שם הקובץ: + + + + + Look in: + + + + + + Create New Folder + צור תיקיה חדשה + + + + QFileSystemModel + + + %1 TB + + + + + %1 GB + + + + + %1 MB + + + + + %1 KB + + + + + %1 bytes + + + + + Invalid filename + + + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + + + + + Name + שם + + + + Size + גודל + + + + Kind + Match OS X Finder + + + + + Type + All other platforms + סוג + + + + Date Modified + + + + + My Computer + + + + + Computer + + + + + QFontDatabase + + + + Normal + + + + + + + Bold + + + + + + Demi Bold + + + + + + + Black + + + + + Demi + + + + + + Light + + + + + + Italic + + + + + + Oblique + + + + + Any + + + + + Latin + + + + + Greek + + + + + Cyrillic + + + + + Armenian + + + + + Hebrew + + + + + Arabic + + + + + Syriac + + + + + Thaana + + + + + Devanagari + + + + + Bengali + + + + + Gurmukhi + + + + + Gujarati + + + + + Oriya + + + + + Tamil + + + + + Telugu + + + + + Kannada + + + + + Malayalam + + + + + Sinhala + + + + + Thai + + + + + Lao + + + + + Tibetan + + + + + Myanmar + + + + + Georgian + + + + + Khmer + + + + + Simplified Chinese + + + + + Traditional Chinese + + + + + Japanese + + + + + Korean + + + + + Vietnamese + + + + + Symbol + + + + + Ogham + + + + + Runic + + + + + QFontDialog + + + &Font + &גופן + + + + Font st&yle + &סגנון גופן + + + + &Size + גו&דל + + + + Effects + אפקטים + + + + Stri&keout + קו &חוצה + + + + &Underline + קו &תחתי + + + + Sample + דוגמה + + + + + Select Font + בחר גופן + + + + Wr&iting System + + + + + QFtp + + + Host %1 found + המארח %1 נמצא + + + + Host found + המארח נמצא + + + + + + Connected to host %1 + מחובר למארח %1 + + + + Connected to host + מחובר למארח + + + + Connection to %1 closed + החיבור אל %1 נסגר + + + + + + Connection closed + החיבור נסגר + + + + + Host %1 not found + המארח %1 לא נמצא + + + + + Connection refused to host %1 + החיבור אל המארח %1 נדחה + + + + Connection timed out to host %1 + + + + + + + + Unknown error + + + + + + Connecting to host failed: +%1 + + + + + + Login failed: +%1 + + + + + + Listing directory failed: +%1 + + + + + + Changing directory failed: +%1 + + + + + + Downloading file failed: +%1 + + + + + + Uploading file failed: +%1 + + + + + + Removing file failed: +%1 + + + + + + Creating directory failed: +%1 + + + + + + Removing directory failed: +%1 + + + + + + Not connected + + + + + + Connection refused for data connection + + + + + QHostInfo + + + Unknown error + + + + + QHostInfoAgent + + + + + + + + + + Host not found + + + + + + + + Unknown address type + + + + + + + Unknown error + + + + + QHttp + + + + Connection refused + החיבור נדחה + + + + + + Host %1 not found + המארח %1 לא נמצא + + + + + Wrong content length + אורך תוכן שגוי + + + + HTTPS connection requested but SSL support not compiled in + + + + + + + + HTTP request failed + בקשת ה-HTTP נכשלה + + + + Host %1 found + המארח %1 נמצא + + + + Host found + המארח נמצא + + + + Connected to host %1 + מחובר למארח %1 + + + + Connected to host + מחובר למארח + + + + Connection to %1 closed + החיבור אל %1 נסגר + + + + + Connection closed + החיבור נסגר + + + + + + + Unknown error + + + + + + Request aborted + + + + + + No server set to connect to + + + + + + Server closed connection unexpectedly + + + + + + Invalid HTTP response header + + + + + Unknown authentication method + + + + + + + + Invalid HTTP chunked body + + + + + Error writing response to device + + + + + Proxy authentication required + + + + + Authentication required + + + + + Connection refused (or timed out) + + + + + Proxy requires authentication + + + + + Host requires authentication + + + + + Data corrupted + + + + + Unknown protocol specified + + + + + SSL handshake failed + + + + + QHttpSocketEngine + + + Did not receive HTTP response from proxy + + + + + Error parsing authentication request from proxy + + + + + Authentication required + + + + + Proxy denied connection + + + + + Error communicating with HTTP proxy + + + + + Proxy server not found + + + + + Proxy connection refused + + + + + Proxy server connection timed out + + + + + Proxy connection closed prematurely + + + + + QIBaseDriver + + + Error opening database + + + + + Could not start transaction + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + QIBaseResult + + + Unable to create BLOB + + + + + Unable to write BLOB + + + + + Unable to open BLOB + + + + + Unable to read BLOB + + + + + + Could not find array + + + + + Could not get array data + + + + + Could not get query info + + + + + Could not start transaction + + + + + Unable to commit transaction + + + + + Could not allocate statement + + + + + Could not prepare statement + + + + + + Could not describe input statement + + + + + Could not describe statement + + + + + Unable to close statement + + + + + Unable to execute query + + + + + Could not fetch next item + + + + + Could not get statement info + + + + + QIODevice + + + Permission denied + + + + + Too many open files + + + + + No such file or directory + + + + + No space left on device + + + + + Unknown error + + + + + QInputContext + + + XIM + + + + + XIM input method + + + + + Windows input method + + + + + Mac OS X input method + + + + + QInputDialog + + + Enter a value: + + + + + QLibrary + + + Could not mmap '%1': %2 + + + + + Plugin verification data mismatch in '%1' + + + + + Could not unmap '%1': %2 + + + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + + + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + + + + + Unknown error + + + + + + The shared library was not found. + + + + + The file '%1' is not a valid Qt plugin. + + + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + + + + + + Cannot load library %1: %2 + + + + + + Cannot unload library %1: %2 + + + + + + Cannot resolve symbol "%1" in %2: %3 + + + + + QLineEdit + + + &Undo + &בטל + + + + &Redo + בצע &שוב + + + + Cu&t + &גזור + + + + &Copy + הע&תק + + + + &Paste + ה&דבק + + + + Select All + בחר הכל + + + + Delete + מחק + + + + QLocalServer + + + + %1: Name error + + + + + %1: Permission denied + + + + + %1: Address in use + + + + + + %1: Unknown error %2 + + + + + QLocalSocket + + + + %1: Connection refused + + + + + + %1: Remote closed + + + + + + + + %1: Invalid name + + + + + + %1: Socket access error + + + + + + %1: Socket resource error + + + + + + %1: Socket operation timed out + + + + + + %1: Datagram too large + + + + + + + %1: Connection error + + + + + + %1: The socket operation is not supported + + + + + %1: Unknown error + + + + + + %1: Unknown error %2 + + + + + QMYSQLDriver + + + Unable to open database ' + + + + + Unable to connect + + + + + Unable to begin transaction + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + QMYSQLResult + + + Unable to fetch data + + + + + Unable to execute query + + + + + Unable to store result + + + + + + Unable to prepare statement + + + + + Unable to reset statement + + + + + Unable to bind value + + + + + Unable to execute statement + + + + + + Unable to bind outvalues + + + + + Unable to store statement results + + + + + Unable to execute next query + + + + + Unable to store next result + + + + + QMdiArea + + + (Untitled) + + + + + QMdiSubWindow + + + %1 - [%2] + %1 - [%2] + + + + Close + סגור + + + + Minimize + מזער + + + + Restore Down + שחזר למטה + + + + &Restore + ש&חזר + + + + &Move + ה&זז + + + + &Size + גו&דל + + + + Mi&nimize + &מזער + + + + Ma&ximize + &הגדל + + + + Stay on &Top + &תמיד עליון + + + + &Close + &סגור + + + + - [%1] + + + + + Maximize + הגדל + + + + Unshade + + + + + Shade + + + + + Restore + + + + + Help + עזרה + + + + Menu + + + + + QMenu + + + + Close + סגור + + + + + Open + פתח + + + + + + Execute + + + + + QMenuBar + + Options + אפשרויות + + + + QMessageBox + + + + + + OK + אישור + + + + About Qt + + + + + Help + עזרה + + + + Show Details... + + + + + Hide Details... + + + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p><p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + + + + + QMultiInputContext + + + Select IM + + + + + QMultiInputContextPlugin + + + Multiple input method switcher + + + + + Multiple input method switcher that uses the context menu of the text widgets + + + + + QNativeSocketEngine + + + The remote host closed the connection + + + + + Network operation timed out + + + + + Out of resources + + + + + Unsupported socket operation + + + + + Protocol type not supported + + + + + Invalid socket descriptor + + + + + Network unreachable + + + + + Permission denied + + + + + Connection timed out + + + + + Connection refused + החיבור נדחה + + + + The bound address is already in use + + + + + The address is not available + + + + + The address is protected + + + + + Unable to send a message + + + + + Unable to receive a message + + + + + Unable to write + + + + + Network error + + + + + Another socket is already listening on the same port + + + + + Unable to initialize non-blocking socket + + + + + Unable to initialize broadcast socket + + + + + Attempt to use IPv6 socket on a platform with no IPv6 support + + + + + Host unreachable + + + + + Datagram was too large to send + + + + + Operation on non-socket + + + + + Unknown error + + + + + The proxy type is invalid for this operation + + + + + QNetworkAccessCacheBackend + + + Error opening %1 + + + + + QNetworkAccessFileBackend + + + Request for opening non-local file %1 + + + + + Error opening %1: %2 + + + + + Write error writing to %1: %2 + + + + + Cannot open %1: Path is a directory + + + + + Read error reading from %1: %2 + + + + + QNetworkAccessFtpBackend + + + No suitable proxy found + + + + + Cannot open %1: is a directory + + + + + Logging in to %1 failed: authentication required + + + + + Error while downloading %1: %2 + + + + + Error while uploading %1: %2 + + + + + QNetworkAccessHttpBackend + + + No suitable proxy found + + + + + QNetworkReply + + + Error downloading %1 - server replied: %2 + + + + + Protocol "%1" is unknown + + + + + QNetworkReplyImpl + + + + Operation canceled + + + + + QOCIDriver + + + Unable to logon + + + + + Unable to initialize + QOCIDriver + + + + + Unable to begin transaction + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + QOCIResult + + + + + Unable to bind column for batch execute + + + + + Unable to execute batch statement + + + + + Unable to goto next + + + + + Unable to alloc statement + + + + + Unable to prepare statement + + + + + Unable to bind value + + + + + Unable to execute statement + + + + + QODBCDriver + + + Unable to connect + + + + + Unable to connect - Driver doesn't support all needed functionality + + + + + Unable to disable autocommit + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + Unable to enable autocommit + + + + + QODBCResult + + + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + + + + + + Unable to execute statement + + + + + Unable to fetch next + + + + + Unable to prepare statement + + + + + Unable to bind variable + + + + + + + Unable to fetch last + + + + + Unable to fetch + + + + + Unable to fetch first + + + + + Unable to fetch previous + + + + + QObject + + + Home + Home + + + + Operation not supported on %1 + + + + + Invalid URI: %1 + + + + + Write error writing to %1: %2 + + + + + Read error reading from %1: %2 + + + + + Socket error on %1: %2 + + + + + Remote host closed the connection prematurely on %1 + + + + + Protocol error: packet of size 0 received + + + + + + No host name given + + + + + QPPDOptionsModel + + + Name + שם + + + + Value + + + + + QPSQLDriver + + + Unable to connect + + + + + Could not begin transaction + + + + + Could not commit transaction + + + + + Could not rollback transaction + + + + + Unable to subscribe + + + + + Unable to unsubscribe + + + + + QPSQLResult + + + Unable to create query + + + + + Unable to prepare statement + + + + + QPageSetupWidget + + + Centimeters (cm) + + + + + Millimeters (mm) + + + + + Inches (in) + + + + + Points (pt) + + + + + Form + + + + + Paper + + + + + Page size: + + + + + Width: + + + + + Height: + + + + + Paper source: + + + + + Orientation + + + + + Portrait + לאורך + + + + Landscape + לרוחב + + + + Reverse landscape + + + + + Reverse portrait + + + + + Margins + + + + + top margin + + + + + left margin + + + + + right margin + + + + + bottom margin + + + + + QPluginLoader + + + Unknown error + + + + + The plugin was not loaded. + + + + + QPrintDialog + + + locally connected + מחוברת מקומית + + + + + Aliases: %1 + שמות נוספים: %1 + + + + + unknown + לא ידוע + + + + OK + אישור + + + Cancel + ביטול + + + Print in color if available + הדפס בצבע אם הדבר זמין + + + Printer + מדפסת + + + + Print all + הדפס הכל + + + + Print range + טווח הדפסה + + + Print last page first + הדפס את העמוד הראשון אחרון + + + Number of copies: + מספר עותקים: + + + Paper format + תבנית נייר + + + Portrait + לאורך + + + Landscape + לרוחב + + + + A0 (841 x 1189 mm) + A0 (841 x 1189 mm) + + + + A1 (594 x 841 mm) + A1 (594 x 841 mm) + + + + A2 (420 x 594 mm) + A2 (420 x 594 mm) + + + + A3 (297 x 420 mm) + A3 (297 x 420 mm) + + + + A5 (148 x 210 mm) + A5 (148 x 210 mm) + + + + A6 (105 x 148 mm) + A6 (105 x 148 mm) + + + + A7 (74 x 105 mm) + A7 (74 x 105 mm) + + + + A8 (52 x 74 mm) + A8 (52 x 74 mm) + + + + A9 (37 x 52 mm) + A9 (37 x 52 mm) + + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 mm) + + + + B1 (707 x 1000 mm) + B1 (707 x 1000 mm) + + + + B2 (500 x 707 mm) + B2 (500 x 707 mm) + + + + B3 (353 x 500 mm) + B3 (353 x 500 mm) + + + + B4 (250 x 353 mm) + B4 (250 x 353 mm) + + + + B6 (125 x 176 mm) + B6 (125 x 176 mm) + + + + B7 (88 x 125 mm) + B7 (88 x 125 mm) + + + + B8 (62 x 88 mm) + B8 (62 x 88 mm) + + + + B9 (44 x 62 mm) + B9 (44 x 62 mm) + + + + B10 (31 x 44 mm) + B10 (31 x 44 mm) + + + + C5E (163 x 229 mm) + C5E (163 x 229 mm) + + + + DLE (110 x 220 mm) + DLE (110 x 220 mm) + + + + Folio (210 x 330 mm) + Folio (210 x 330 mm) + + + + Ledger (432 x 279 mm) + Ledger (432 x 279 mm) + + + + Tabloid (279 x 432 mm) + Tabloid (279 x 432 mm) + + + + US Common #10 Envelope (105 x 241 mm) + US Common #10 Envelope (105 x 241 mm) + + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + + + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + + + + + Executive (7.5 x 10 inches, 191 x 254 mm) + + + + + Legal (8.5 x 14 inches, 216 x 356 mm) + + + + + Letter (8.5 x 11 inches, 216 x 279 mm) + + + + + + + Print + הדפס + + + File + קובץ + + + + Print To File ... + + + + Other + אחר + + + + File %1 is not writable. +Please choose a different file name. + + + + + %1 already exists. +Do you want to overwrite it? + + + + + File exists + + + + + <qt>Do you want to overwrite it?</qt> + + + + + Print selection + + + + + %1 is a directory. +Please choose a different file name. + + + + + A0 + + + + + A1 + + + + + A2 + + + + + A3 + + + + + A4 + + + + + A5 + + + + + A6 + + + + + A7 + + + + + A8 + + + + + A9 + + + + + B0 + + + + + B1 + + + + + B2 + + + + + B3 + + + + + B4 + + + + + B5 + + + + + B6 + + + + + B7 + + + + + B8 + + + + + B9 + + + + + B10 + + + + + C5E + + + + + DLE + + + + + Executive + + + + + Folio + + + + + Ledger + + + + + Legal + + + + + Letter + + + + + Tabloid + + + + + US Common #10 Envelope + + + + + Custom + + + + + + &Options >> + + + + + &Print + + + + + &Options << + + + + + Print to File (PDF) + + + + + Print to File (Postscript) + + + + + Local file + + + + + Write %1 file + + + + + The 'From' value cannot be greater than the 'To' value. + + + + + QPrintPreviewDialog + + + + Page Setup + + + + + %1% + + + + + Print Preview + + + + + Next page + + + + + Previous page + + + + + First page + + + + + Last page + + + + + Fit width + + + + + Fit page + + + + + Zoom in + + + + + Zoom out + + + + + Portrait + לאורך + + + + Landscape + לרוחב + + + + Show single page + + + + + Show facing pages + + + + + Show overview of all pages + + + + + Print + הדפס + + + + Page setup + + + + + Close + סגור + + + + Export to PDF + + + + + Export to PostScript + + + + + QPrintPropertiesDialog + + Save + שמור + + + OK + אישור + + + + QPrintPropertiesWidget + + + Form + + + + + Page + + + + + Advanced + + + + + QPrintSettingsOutput + + + Form + + + + + Copies + + + + + Print range + טווח הדפסה + + + + Print all + הדפס הכל + + + + Pages from + + + + + to + + + + + Selection + + + + + Output Settings + + + + + Copies: + + + + + Collate + + + + + Reverse + + + + + Options + אפשרויות + + + + Color Mode + + + + + Color + + + + + Grayscale + + + + + Duplex Printing + + + + + None + + + + + Long side + + + + + Short side + + + + + QPrintWidget + + + Form + + + + + Printer + מדפסת + + + + &Name: + + + + + P&roperties + + + + + Location: + + + + + Preview + + + + + Type: + + + + + Output &file: + + + + + ... + + + + + QProcess + + + + Could not open input redirection for reading + + + + + + Could not open output redirection for writing + + + + + Resource error (fork failure): %1 + + + + + + + + + + + + + Process operation timed out + + + + + + + + Error reading from process + + + + + + + Error writing to process + + + + + Process crashed + + + + + No program defined + + + + + Process failed to start + + + + + QProgressDialog + + + Cancel + ביטול + + + + QPushButton + + + Open + פתח + + + + QRadioButton + + + Check + + + + + QRegExp + + + no error occurred + לא אירעה כל שגיאה + + + + disabled feature used + + + + + bad char class syntax + + + + + bad lookahead syntax + + + + + bad repetition syntax + + + + + invalid octal value + + + + + missing left delim + + + + + unexpected end + + + + + met internal limit + + + + + QSQLite2Driver + + + Error to open database + + + + + Unable to begin transaction + + + + + Unable to commit transaction + + + + + Unable to rollback Transaction + + + + + QSQLite2Result + + + Unable to fetch results + + + + + Unable to execute statement + + + + + QSQLiteDriver + + + Error opening database + + + + + Error closing database + + + + + Unable to begin transaction + + + + + Unable to commit transaction + + + + + Unable to rollback transaction + + + + + QSQLiteResult + + + + + Unable to fetch row + + + + + Unable to execute statement + + + + + Unable to reset statement + + + + + Unable to bind parameters + + + + + Parameter count mismatch + + + + + No query + + + + + QScrollBar + + + Scroll here + + + + + Left edge + + + + + Top + + + + + Right edge + + + + + Bottom + + + + + Page left + + + + + + Page up + + + + + Page right + + + + + + Page down + + + + + Scroll left + + + + + Scroll up + + + + + Scroll right + + + + + Scroll down + + + + + Line up + סדר בשורה + + + + Position + + + + + Line down + + + + + QSharedMemory + + + %1: unable to set key on lock + + + + + %1: create size is less then 0 + + + + + + %1: unable to lock + + + + + %1: unable to unlock + + + + + + %1: permission denied + + + + + + %1: already exists + + + + + + %1: doesn't exists + + + + + + %1: out of resources + + + + + + %1: unknown error %2 + + + + + %1: key is empty + + + + + %1: unix key file doesn't exists + + + + + %1: ftok failed + + + + + + %1: unable to make key + + + + + %1: system-imposed size restrictions + + + + + %1: not attached + + + + + %1: invalid size + + + + + %1: key error + + + + + %1: size query failed + + + + + QShortcut + + + Space + רווח + + + + Esc + Esc + + + + Tab + Tab + + + + Backtab + Backtab + + + + Backspace + Backspace + + + + Return + Return + + + + Enter + Enter + + + + Ins + Ins + + + + Del + Del + + + + Pause + Pause + + + + Print + הדפס + + + + SysReq + SysReq + + + + Home + Home + + + + End + End + + + + Left + שמאלה + + + + Up + למעלה + + + + Right + ימינה + + + + Down + למטה + + + + PgUp + PgUp + + + + PgDown + PgDown + + + + CapsLock + CapsLock + + + + NumLock + NumLock + + + + ScrollLock + ScrollLock + + + + Menu + + + + + Help + עזרה + + + + Back + אחורה + + + + Forward + + + + + Stop + + + + + Refresh + + + + + Volume Down + + + + + Volume Mute + + + + + Volume Up + + + + + Bass Boost + + + + + Bass Up + + + + + Bass Down + + + + + Treble Up + + + + + Treble Down + + + + + Media Play + + + + + Media Stop + + + + + Media Previous + + + + + Media Next + + + + + Media Record + + + + + Favorites + + + + + Search + + + + + Standby + + + + + Open URL + + + + + Launch Mail + + + + + Launch Media + + + + + Launch (0) + + + + + Launch (1) + + + + + Launch (2) + + + + + Launch (3) + + + + + Launch (4) + + + + + Launch (5) + + + + + Launch (6) + + + + + Launch (7) + + + + + Launch (8) + + + + + Launch (9) + + + + + Launch (A) + + + + + Launch (B) + + + + + Launch (C) + + + + + Launch (D) + + + + + Launch (E) + + + + + Launch (F) + + + + + Print Screen + + + + + Page Up + + + + + Page Down + + + + + Caps Lock + + + + + Num Lock + + + + + Number Lock + + + + + Scroll Lock + + + + + Insert + הוסף + + + + Delete + מחק + + + + Escape + + + + + System Request + + + + + Select + + + + + Yes + כן + + + + No + לא + + + + Context1 + + + + + Context2 + + + + + Context3 + + + + + Context4 + + + + + Call + + + + + Hangup + + + + + Flip + + + + + + Ctrl + Ctrl + + + + + Shift + Shift + + + + + Alt + Alt + + + + + Meta + + + + + + + + + + + + F%1 + F%1 + + + + Home Page + + + + + QSlider + + + Page left + + + + + Page up + + + + + Position + + + + + Page right + + + + + Page down + + + + + QSocks5SocketEngine + + + Connection to proxy refused + + + + + Connection to proxy closed prematurely + + + + + Proxy host not found + + + + + Connection to proxy timed out + + + + + Proxy authentication failed + + + + + Proxy authentication failed: %1 + + + + + SOCKS version 5 protocol error + + + + + General SOCKSv5 server failure + + + + + Connection not allowed by SOCKSv5 server + + + + + TTL expired + + + + + SOCKSv5 command not supported + + + + + Address type not supported + + + + + Unknown SOCKSv5 proxy error code 0x%1 + + + + + Network operation timed out + + + + + QSpinBox + + + More + + + + + Less + + + + + QSql + + + Delete + מחק + + + + Delete this record? + האם למחוק רשומה זו? + + + + + + Yes + כן + + + + + + No + לא + + + + Insert + הוסף + + + + Update + עדכן + + + + Save edits? + האם לשמור את העריכה? + + + + Cancel + ביטול + + + + Confirm + אישור + + + + Cancel your edits? + האם לבטל את העריכה שלך? + + + + QSslSocket + + + Unable to write data: %1 + + + + + Error while reading: %1 + + + + + Error during SSL handshake: %1 + + + + + Error creating SSL context (%1) + + + + + Invalid or empty cipher list (%1) + + + + + Error creating SSL session, %1 + + + + + Error creating SSL session: %1 + + + + + Cannot provide a certificate with no key, %1 + + + + + Error loading local certificate, %1 + + + + + Error loading private key, %1 + + + + + Private key does not certificate public key, %1 + + + + + QSystemSemaphore + + + + %1: out of resources + + + + + + %1: permission denied + + + + + %1: already exists + + + + + %1: does not exist + + + + + + %1: unknown error %2 + + + + + QTDSDriver + + + Unable to open connection + + + + + Unable to use database + + + + + QTabBar + + + Scroll Left + + + + + Scroll Right + + + + + QTcpServer + + + Operation on socket is not supported + + + + + QTextControl + + + &Undo + &בטל + + + + &Redo + בצע &שוב + + + + Cu&t + &גזור + + + + &Copy + הע&תק + + + + Copy &Link Location + + + + + &Paste + ה&דבק + + + + Delete + מחק + + + + Select All + בחר הכל + + + + QToolButton + + + + Press + + + + + + Open + פתח + + + + QUdpSocket + + + This platform does not support IPv6 + + + + + QUndoGroup + + + Undo + בטל + + + + Redo + שחזר + + + + QUndoModel + + + <empty> + + + + + QUndoStack + + + Undo + בטל + + + + Redo + שחזר + + + + QUnicodeControlCharacterMenu + + + LRM Left-to-right mark + + + + + RLM Right-to-left mark + + + + + ZWJ Zero width joiner + + + + + ZWNJ Zero width non-joiner + + + + + ZWSP Zero width space + + + + + LRE Start of left-to-right embedding + + + + + RLE Start of right-to-left embedding + + + + + LRO Start of left-to-right override + + + + + RLO Start of right-to-left override + + + + + PDF Pop directional formatting + + + + + Insert Unicode control character + + + + + QWebFrame + + + Request cancelled + + + + + Request blocked + + + + + Cannot show URL + + + + + Frame load interruped by policy change + + + + + Cannot show mimetype + + + + + File does not exist + + + + + QWebPage + + + Bad HTTP request + + + + + Submit + default label for Submit buttons in forms on web pages + + + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + + + + + Reset + default label for Reset buttons in forms on web pages + + + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + + + + + Choose File + title for file button used in HTML forms + + + + + No file selected + text to display in file button used in HTML forms when no file is selected + + + + + Open in New Window + Open in New Window context menu item + + + + + Save Link... + Download Linked File context menu item + + + + + Copy Link + Copy Link context menu item + + + + + Open Image + Open Image in New Window context menu item + + + + + Save Image + Download Image context menu item + + + + + Copy Image + Copy Link context menu item + + + + + Open Frame + Open Frame in New Window context menu item + + + + + Copy + Copy context menu item + + + + + Go Back + Back context menu item + + + + + Go Forward + Forward context menu item + + + + + Stop + Stop context menu item + + + + + Reload + Reload context menu item + + + + + Cut + Cut context menu item + + + + + Paste + Paste context menu item + + + + + No Guesses Found + No Guesses Found context menu item + + + + + Ignore + Ignore Spelling context menu item + + + + + Add To Dictionary + Learn Spelling context menu item + + + + + Search The Web + Search The Web context menu item + + + + + Look Up In Dictionary + Look Up in Dictionary context menu item + + + + + Open Link + Open Link context menu item + + + + + Ignore + Ignore Grammar context menu item + + + + + Spelling + Spelling and Grammar context sub-menu item + + + + + Show Spelling and Grammar + menu item title + + + + + Hide Spelling and Grammar + menu item title + + + + + Check Spelling + Check spelling context menu item + + + + + Check Spelling While Typing + Check spelling while typing context menu item + + + + + Check Grammar With Spelling + Check grammar with spelling context menu item + + + + + Fonts + Font context sub-menu item + + + + + Bold + Bold context menu item + + + + + Italic + Italic context menu item + + + + + Underline + Underline context menu item + + + + + Outline + Outline context menu item + + + + + Direction + Writing direction context sub-menu item + + + + + Text Direction + Text direction context sub-menu item + + + + + Default + Default writing direction context menu item + + + + + LTR + Left to Right context menu item + + + + + RTL + Right to Left context menu item + + + + + Inspect + Inspect Element context menu item + + + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + + + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + + + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + + + + + Unknown + Unknown filesize FTP directory listing item + + + + + %1 (%2x%3 pixels) + Title string for images + + + + + Web Inspector - %2 + + + + + Scroll here + + + + + Left edge + + + + + Top + + + + + Right edge + + + + + Bottom + + + + + Page left + + + + + Page up + + + + + Page right + + + + + Page down + + + + + Scroll left + + + + + Scroll up + + + + + Scroll right + + + + + Scroll down + + + + + %n file(s) + number of chosen file + + + + + + + JavaScript Alert - %1 + + + + + JavaScript Confirm - %1 + + + + + JavaScript Prompt - %1 + + + + + Move the cursor to the next character + + + + + Move the cursor to the previous character + + + + + Move the cursor to the next word + + + + + Move the cursor to the previous word + + + + + Move the cursor to the next line + + + + + Move the cursor to the previous line + + + + + Move the cursor to the start of the line + + + + + Move the cursor to the end of the line + + + + + Move the cursor to the start of the block + + + + + Move the cursor to the end of the block + + + + + Move the cursor to the start of the document + + + + + Move the cursor to the end of the document + + + + + Select all + + + + + Select to the next character + + + + + Select to the previous character + + + + + Select to the next word + + + + + Select to the previous word + + + + + Select to the next line + + + + + Select to the previous line + + + + + Select to the start of the line + + + + + Select to the end of the line + + + + + Select to the start of the block + + + + + Select to the end of the block + + + + + Select to the start of the document + + + + + Select to the end of the document + + + + + Delete to the start of the word + + + + + Delete to the end of the word + + + + + Insert a new paragraph + + + + + Insert a new line + + + + + QWhatsThisAction + + + What's This? + מה זה? + + + + QWidget + + + * + + + + + QWizard + + + Cancel + ביטול + + + + Help + עזרה + + + + Go Back + + + + + Continue + + + + + Commit + + + + + Done + + + + + < &Back + + + + + &Finish + + + + + &Help + + + + + &Next + + + + + &Next > + + + + + QWorkspace + + + &Restore + ש&חזר + + + + &Move + ה&זז + + + + &Size + &שנה גודל + + + + Mi&nimize + &מזער + + + + Ma&ximize + &הגדל + + + + &Close + &סגור + + + + Stay on &Top + &תמיד עליון + + + + + Sh&ade + &גלול + + + + + %1 - [%2] + %1 - [%2] + + + + Minimize + מזער + + + + Restore Down + שחזר למטה + + + + Close + סגור + + + + &Unshade + &בטל גלילה + + + + QXml + + + no error occurred + לא אירעה כל שגיאה + + + + error triggered by consumer + נגרמה שגיאה על ידי הצרכן + + + + unexpected end of file + סוף קובץ לא צפוי + + + + more than one document type definition + יותר מהגדרה אחת של סוג מסמך + + + + error occurred while parsing element + אירעה שגיאה בעת עיבוד המרכיב + + + + tag mismatch + אי-התאמה בתגית + + + + error occurred while parsing content + אירעה שגיאה בעת עיבוד התוכן + + + + unexpected character + תו לא צפוי + + + + invalid name for processing instruction + שם לא תקף עבור הוראת העיבוד + + + + version expected while reading the XML declaration + הייתה צפויה גירסה בעת קריאה ההכרזה על XML + + + + wrong value for standalone declaration + ערך שגוי עבור ההגדרה העצמאית + + + + encoding declaration or standalone declaration expected while reading the XML declaration + הייתה צפויה הכרזה על קידוד או הכרזה עצמאית בעת קריאת ההכרזה על XML + + + + standalone declaration expected while reading the XML declaration + הייתה צפויה הכרזה עצמאית בעת קריאת ההכרזה על XML + + + + error occurred while parsing document type definition + אירעה שגיאה בעת עיבוד הגדרת סוג המסמך + + + + letter is expected + הייתה צפויה אות + + + + error occurred while parsing comment + אירעה שגיאה בעת עיבוד ההערה + + + + error occurred while parsing reference + אירעה שגיאה בעת עיבוד ההתייחסות + + + + internal general entity reference not allowed in DTD + התייחסות ליישות כללית פנימית אינה מותרת ב-DTD + + + + external parsed general entity reference not allowed in attribute value + התייחסות ליישות כללית מעובדת חיצונית אינה מותרת בערך המאפיין + + + + external parsed general entity reference not allowed in DTD + התייחסות ליישות כללית מעובדת חיצונית אינה מותרת ב-DTD + + + + unparsed entity reference in wrong context + התייחסות ליישות לא מעובדת בהקשר שגוי + + + + recursive entities + יישות רקורסיבית + + + + error in the text declaration of an external entity + שגיאה בהכרזת טקסט של יישות חיצונית + + + + QXmlStream + + + + Extra content at end of document. + + + + + Invalid entity value. + + + + + Invalid XML character. + + + + + Sequence ']]>' not allowed in content. + + + + + Namespace prefix '%1' not declared + + + + + Attribute redefined. + + + + + Unexpected character '%1' in public id literal. + + + + + Invalid XML version string. + + + + + Unsupported XML version. + + + + + %1 is an invalid encoding name. + + + + + Encoding %1 is unsupported + + + + + Standalone accepts only yes or no. + + + + + Invalid attribute in XML declaration. + + + + + Premature end of document. + + + + + Invalid document. + + + + + Expected + + + + + , but got ' + + + + + Unexpected ' + + + + + Expected character data. + + + + + Recursive entity detected. + + + + + Start tag expected. + + + + + XML declaration not at start of document. + + + + + NDATA in parameter entity declaration. + + + + + %1 is an invalid processing instruction name. + + + + + Invalid processing instruction name. + + + + + + + + Illegal namespace declaration. + + + + + Invalid XML name. + + + + + Opening and ending tag mismatch. + + + + + Reference to unparsed entity '%1'. + + + + + + + Entity '%1' not declared. + + + + + Reference to external entity '%1' in attribute value. + + + + + Invalid character reference. + + + + + + Encountered incorrectly encoded content. + + + + + The standalone pseudo attribute must appear after the encoding. + + + + + %1 is an invalid PUBLIC identifier. + + + + + QtXmlPatterns + + + An %1-attribute with value %2 has already been declared. + + + + + An %1-attribute must have a valid %2 as value, which %3 isn't. + + + + + Network timeout. + + + + + Element %1 can't be serialized because it appears outside the document element. + + + + + Attribute %1 can't be serialized because it appears at the top level. + + + + + Year %1 is invalid because it begins with %2. + + + + + Day %1 is outside the range %2..%3. + + + + + Month %1 is outside the range %2..%3. + + + + + Overflow: Can't represent date %1. + + + + + Day %1 is invalid for month %2. + + + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + + + + + Time %1:%2:%3.%4 is invalid. + + + + + Overflow: Date can't be represented. + + + + + + At least one component must be present. + + + + + At least one time component must appear after the %1-delimiter. + + + + + No operand in an integer division, %1, can be %2. + + + + + The first operand in an integer division, %1, cannot be infinity (%2). + + + + + The second operand in a division, %1, cannot be zero (%2). + + + + + %1 is not a valid value of type %2. + + + + + When casting to %1 from %2, the source value cannot be %3. + + + + + Integer division (%1) by zero (%2) is undefined. + + + + + Division (%1) by zero (%2) is undefined. + + + + + Modulus division (%1) by zero (%2) is undefined. + + + + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + + + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + + + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + + + + + A value of type %1 cannot have an Effective Boolean Value. + + + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + + + + + Value %1 of type %2 exceeds maximum (%3). + + + + + Value %1 of type %2 is below minimum (%3). + + + + + A value of type %1 must contain an even number of digits. The value %2 does not. + + + + + %1 is not valid as a value of type %2. + + + + + Operator %1 cannot be used on type %2. + + + + + Operator %1 cannot be used on atomic values of type %2 and %3. + + + + + The namespace URI in the name for a computed attribute cannot be %1. + + + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + + + + + Type error in cast, expected %1, received %2. + + + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + + + + + No casting is possible with %1 as the target type. + + + + + It is not possible to cast from %1 to %2. + + + + + Casting to %1 is not possible because it is an abstract type, and can therefore never be instantiated. + + + + + It's not possible to cast the value %1 of type %2 to %3 + + + + + Failure when casting from %1 to %2: %3 + + + + + A comment cannot contain %1 + + + + + A comment cannot end with a %1. + + + + + No comparisons can be done involving the type %1. + + + + + Operator %1 is not available between atomic values of type %2 and %3. + + + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + + + + + A library module cannot be evaluated directly. It must be imported from a main module. + + + + + No template by name %1 exists. + + + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + + + + + A positional predicate must evaluate to a single numeric value. + + + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, is %2 invalid. + + + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + + + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + + + + + The data of a processing instruction cannot contain the string %1 + + + + + No namespace binding exists for the prefix %1 + + + + + No namespace binding exists for the prefix %1 in %2 + + + + + + %1 is an invalid %2 + + + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + + + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + + + + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + + + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + + + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + + + + + %1 is not a valid XML 1.0 character. + + + + + The first argument to %1 cannot be of type %2. + + + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + + + + + %1 was called. + + + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + + + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + + + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + + + + + %1 matches newline characters + + + + + %1 and %2 match the start and end of a line. + + + + + Matches are case insensitive + + + + + Whitespace characters are removed, except when they appear in character classes + + + + + %1 is an invalid regular expression pattern: %2 + + + + + %1 is an invalid flag for regular expressions. Valid flags are: + + + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + + + + + It will not be possible to retrieve %1. + + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + + + + + The default collection is undefined + + + + + %1 cannot be retrieved + + + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + + + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + + + + + %1 is not a whole number of minutes. + + + + + Required cardinality is %1; got cardinality %2. + + + + + The item %1 did not match the required type %2. + + + + + + %1 is an unknown schema type. + + + + + Only one %1 declaration can occur in the query prolog. + + + + + The initialization of variable %1 depends on itself + + + + + No variable by name %1 exists + + + + + The variable %1 is unused + + + + + Version %1 is not supported. The supported XQuery version is 1.0. + + + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + + + + + No function with signature %1 is available + + + + + + A default namespace declaration must occur before function, variable, and option declarations. + + + + + Namespace declarations must occur before function, variable, and option declarations. + + + + + Module imports must occur before function, variable, and option declarations. + + + + + It is not possible to redeclare prefix %1. + + + + + Prefix %1 is already declared in the prolog. + + + + + The name of an option must have a prefix. There is no default namespace for options. + + + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + + + + + The target namespace of a %1 cannot be empty. + + + + + The module import feature is not supported + + + + + No value is available for the external variable by name %1. + + + + + A construct was encountered which only is allowed in XQuery. + + + + + A template by name %1 has already been declared. + + + + + The keyword %1 cannot occur with any other mode name. + + + + + The value of attribute %1 must of type %2, which %3 isn't. + + + + + The prefix %1 can not be bound. By default, it is already bound to the namespace %2. + + + + + A variable by name %1 has already been declared. + + + + + A stylesheet function must have a prefixed name. + + + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + + + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + + + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + + + + + A function already exists with the signature %1. + + + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + + + + + An argument by name %1 has already been declared. Every argument name must be unique. + + + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + + + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + + + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + + + + + In an XSL-T pattern, function %1 cannot have a third argument. + + + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + + + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + + + + + %1 is an invalid template mode name. + + + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + + + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + + + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + + + + + Each name of a template parameter must be unique; %1 is duplicated. + + + + + The %1-axis is unsupported in XQuery + + + + + %1 is not a valid name for a processing-instruction. + + + + + %1 is not a valid numeric literal. + + + + + No function by name %1 is available. + + + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + + + + + %1 is an invalid namespace URI. + + + + + It is not possible to bind to the prefix %1 + + + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + + + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + + + + + Two namespace declaration attributes have the same name: %1. + + + + + The namespace URI must be a constant and cannot use enclosed expressions. + + + + + An attribute by name %1 has already appeared on this element. + + + + + A direct element constructor is not well-formed. %1 is ended with %2. + + + + + The name %1 does not refer to any schema type. + + + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + + + + + %1 is not an atomic type. Casting is only possible to atomic types. + + + + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + + + + + The name of an extension expression must be in a namespace. + + + + + empty + + + + + zero or one + + + + + exactly one + + + + + one or more + + + + + zero or more + + + + + Required type is %1, but %2 was found. + + + + + Promoting %1 to %2 may cause loss of precision. + + + + + The focus is undefined. + + + + + It's not possible to add attributes after any other kind of node. + + + + + An attribute by name %1 has already been created. + + + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + + + + + %1 is an unsupported encoding. + + + + + %1 contains octets which are disallowed in the requested encoding %2. + + + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + + + + + Ambiguous rule match. + + + + + In a namespace constructor, the value for a namespace cannot be an empty string. + + + + + The prefix must be a valid %1, which %2 is not. + + + + + The prefix %1 cannot be bound. + + + + + Only the prefix %1 can be bound to %2 and vice versa. + + + + + Circularity detected + + + + + The parameter %1 is required, but no corresponding %2 is supplied. + + + + + The parameter %1 is passed, but no corresponding %2 exists. + + + + + The URI cannot have a fragment + + + + + Element %1 is not allowed at this location. + + + + + Text nodes are not allowed at this location. + + + + + Parse error: %1 + + + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + + + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + + + + + Unknown XSL-T attribute %1. + + + + + Attribute %1 and %2 are mutually exclusive. + + + + + In a simplified stylesheet module, attribute %1 must be present. + + + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + + + + + Element %1 must have at least one of the attributes %2 or %3. + + + + + At least one mode must be specified in the %1-attribute on element %2. + + + + + Attribute %1 cannot appear on the element %2. Only the standard attributes can appear. + + + + + Attribute %1 cannot appear on the element %2. Only %3 is allowed, and the standard attributes. + + + + + Attribute %1 cannot appear on the element %2. Allowed is %3, %4, and the standard attributes. + + + + + Attribute %1 cannot appear on the element %2. Allowed is %3, and the standard attributes. + + + + + XSL-T attributes on XSL-T elements must be in the null namespace, not in the XSL-T namespace which %1 is. + + + + + The attribute %1 must appear on element %2. + + + + + The element with local name %1 does not exist in XSL-T. + + + + + Element %1 must come last. + + + + + At least one %1-element must occur before %2. + + + + + Only one %1-element can appear. + + + + + At least one %1-element must occur inside %2. + + + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + + + + + Element %1 must have either a %2-attribute or a sequence constructor. + + + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + + + + + Element %1 cannot have children. + + + + + Element %1 cannot have a sequence constructor. + + + + + + The attribute %1 cannot appear on %2, when it is a child of %3. + + + + + A parameter in a function cannot be declared to be a tunnel. + + + + + This processor is not Schema-aware and therefore %1 cannot be used. + + + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + + + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + + + + + Attribute %1 cannot have the value %2. + + + + + The attribute %1 can only appear on the first %2 element. + + + + + At least one %1 element must appear as child of %2. + + + + + VolumeSlider + + + Muted + + + + + + Volume: %1% + + + + diff --git a/config.profiles/symbian/translations/qt_pl_symbian.ts b/config.profiles/symbian/translations/qt_pl_symbian.ts new file mode 100644 index 0000000..4208c55 --- /dev/null +++ b/config.profiles/symbian/translations/qt_pl_symbian.ts @@ -0,0 +1,8525 @@ + + + + + + CloseButton + + Close Tab + Zamknij kartę + + + + FakeReply + + Fake error ! + Fałszywy błąd! + + + Invalid URL + Niepoprawny URL + + + + Phonon:: + + Notifications + Powiadomienia + + + Music + Muzyka + + + Video + Wideo + + + Communication + Komunikacja + + + Games + Gry + + + Accessibility + Dostępność + + + + Phonon::AudioOutput + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + <html>Urządzenie dźwiękowe <b>%1</b> nie działa.<br/>Przywracanie do <b>%2</b>.</html> + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + <html>Przełączanie na urządzenie dźwiękowe <b>%1</b><br/>które właśnie stało się dostępne i ma wyższy priorytet.</html> + + + Revert back to device '%1' + Przywróć do urządzenia '%1' + + + + Phonon::Gstreamer::Backend + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + Ostrzeżenie: Wygląda na to, że pakiet gstreamer0.10-plugins-good nie jest zainstalowany w tym systemie. +Niektóre możliwości wideo zostały wyłączone. + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + Ostrzeżenie: Wygląda na to, że podstawowe wtyczki GStreamer nie są zainstalowane w tym systemie. +Obsługa dźwięku i wideo została wyłączona + + + + Phonon::Gstreamer::MediaObject + + Cannot start playback. + +Check your GStreamer installation and make sure you +have libgstreamer-plugins-base installed. + Nie można rozpocząć odtwarzania. + +Sprawdź instalację Gstreamer i upewnij się że +zainstalowałeś libgstreamer-plugins-base. + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + Brak wymaganego kodeka. Aby odtworzyć zawartość musisz zainstalować poniższy kodek: %0 + + + Could not open media source. + Nie można otworzyć źródła mediów. + + + Invalid source type. + Niepoprawny typ źródła. + + + Could not locate media source. + Nie można znaleźć źródła mediów. + + + Could not open audio device. The device is already in use. + Nie można otworzyć urządzenia dźwiękowego. Urządzenie jest już używane. + + + Could not decode media source. + Nie można zdekodować źródła mediów. + + + + Phonon::MMF + + Audio Output + Wyjście dźwięku + + + The audio output device + Wyjściowe urządzenie dźwiękowe + + + No error + Brak błędu + + + Not found + Nie znaleziono + + + Out of memory + Brak pamięci + + + Not supported + Nieobsługiwane + + + Overflow + Przepełnienie + + + Underflow + Niedopełnienie + + + Already exists + Już istnieje + + + Path not found + Nie znaleziono ścieżki + + + In use + W użyciu + + + Not ready + Brak gotowości + + + Access denied + Odmowa dostępu + + + Could not connect + Nie można połączyć + + + Disconnected + Rozłączono + + + Permission denied + Odmowa uprawnień + + + Insufficient bandwidth + Niewystarczająca szerokość pasma + + + Network unavailable + Sieć niedostępna + + + Network communication error + Błąd komunikacji sieciowej + + + Streaming not supported + Transmisje strumieniowe nieobsługiwane + + + Server alert + Sygnał serwera + + + Invalid protocol + Nieprawidłowy protokół + + + Invalid URL + Nieprawidłowy adres URL + + + Multicast error + Błąd multiemisji + + + Proxy server error + Błąd serwera proxy + + + Proxy server not supported + Serwer proxy nieobsługiwany + + + Audio output error + Błąd sygnału audio + + + Video output error + Błąd wyjścia wideo + + + Decoder error + Błąd dekodera + + + Audio or video components could not be played + Nie można odtworzyć składników dźwiękowych lub wideo + + + DRM error + Błąd DRM + + + Unknown error (%1) + Nieznany błąd (%1) + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + Brak gotowości do odtworzenia + + + Error opening file + Błąd podczas otwierania pliku + + + Error opening URL + Błąd podczas otwierania adresu URL + + + Setting volume failed + Ustawienie głośności nie powiodło się + + + Playback complete + Zakończono odtwarzanie + + + + Phonon::MMF::AudioEqualizer + + %1 Hz + %1 Hz + + + + Phonon::MMF::AudioPlayer + + Getting position failed + Ustalenie pozycji nie powiodło się + + + Opening clip failed + Otwieranie pliku nie powiodło się + + + + Phonon::MMF::EffectFactory + + Enabled + Włączono + + + + Phonon::MMF::EnvironmentalReverb + + Decay HF ratio (%) + Współczynnik HF zanikania (%) + + + Decay time (ms) + Czas zanikania (ms) + + + Density (%) + Gęstość (%) + + + Diffusion (%) + Rozpraszanie (%) + + + Reflections delay (ms) + Opóźnienie odbić (ms) + + + Reflections level (mB) + Poziom odbić (MB) + + + Reverb delay (ms) + Opóźnienie pogłosu (ms) + + + Reverb level (mB) + Poziom pogłosu (MB) + + + Room HF level + Poziom HF pomieszczenia + + + Room level (mB) + Poziom pomieszczenia (MB) + + + + Phonon::MMF::MediaObject + + Error opening source: type not supported + Błąd podczas otwierania źródła: nieobsługiwany typ + + + Error opening source: media type could not be determined + Błąd podczas otwierania źródła: nie można określić typu multimediów + + + + Phonon::MMF::StereoWidening + + Level (%) + Poziom (%) + + + + Phonon::MMF::VideoPlayer + + Pause failed + Wstrzymanie nie powiodło się + + + Seek failed + Wyszukiwanie nie powiodło się + + + Getting position failed + Ustalenie pozycji nie powiodło się + + + Opening clip failed + Otwieranie pliku nie powiodło się + + + Buffering clip failed + Buforowanie pliku nie powiodło się + + + Video display error + Błąd wyświetlacza wideo + + + + Phonon::VolumeSlider + + Volume: %1% + Głośność: %1% + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + Użyj tego suwaka aby zmienić głośność. Skrajnie lewa pozycja to 0%, skrajnie prawa to %1% + + + Muted + Wyciszony + + + + Q3Accel + + %1, %2 not defined + %1, %2 nie określone + + + Ambiguous %1 not handled + Niejednoznaczne %1, nie obsłużone + + + + Q3DataTable + + True + Prawda + + + False + Fałsz + + + Insert + Wstaw + + + Update + Uaktualnij + + + Delete + Skasuj + + + + Q3FileDialog + + Copy or Move a File + Skopiuj lub przenieś plik + + + Read: %1 + Czytaj: %1 + + + Write: %1 + Pisz: %1 + + + Cancel + Anuluj + + + All Files (*) + Wszystkie pliki (*) + + + Name + Nazwa + + + Size + Rozmiar + + + Type + Rodzaj + + + Date + Data + + + Attributes + Atrybuty + + + &OK + &OK + + + Look &in: + Sprawdź &w: + + + File &name: + Nazwa &pliku: + + + File &type: + &Rodzaj pliku: + + + Back + Powrót + + + One directory up + Katalog wyżej + + + Create New Folder + Utwórz nowy katalog + + + List View + Lista + + + Detail View + Szczegóły + + + Preview File Info + Podgląd informacji o pliku + + + Preview File Contents + Podgląd zawartości pliku + + + Read-write + Do zapisu i odczytu + + + Read-only + Tylko do odczytu + + + Write-only + Tylko do zapisu + + + Inaccessible + Niedostępny + + + Symlink to File + Dowiązanie symboliczne do pliku + + + Symlink to Directory + Dowiązanie symboliczne do katalogu + + + Symlink to Special + Specjalny dowiązanie symboliczne + + + File + Plik + + + Dir + Katalog + + + Special + Specjalny + + + Open + Otwórz + + + Save As + Zachowaj jako + + + &Open + &Otwórz + + + &Save + &Zachowaj + + + &Rename + &Zmień nazwę + + + &Delete + &Skasuj + + + R&eload + &Odśwież + + + Sort by &Name + Sortuj &po nazwie + + + Sort by &Size + Sortuj po &rozmiarze + + + Sort by &Date + Sortuj po &dacie + + + &Unsorted + &Bez sortowania + + + Sort + Sortuj + + + Show &hidden files + Pokaż &ukryte pliki + + + the file + plik + + + the directory + katalog + + + the symlink + dowiązanie symboliczne + + + Delete %1 + Skasuj %1 + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + <qt>Na pewno chcesz skasować %1 "%2"?</qt> + + + &Yes + &Tak + + + &No + &Nie + + + New Folder 1 + Nowy katalog 1 + + + New Folder + Nowy katalog + + + New Folder %1 + Nowy katalog %1 + + + Find Directory + Znajdź katalog + + + Directories + Katalogi + + + Directory: + Katalog: + + + Error + Błąd + + + %1 +File not found. +Check path and filename. + %1 +Plik nie znaleziony. +Sprawdź ścieżkę i nazwę pliku. + + + All Files (*.*) + Wszystkie pliki (*.*) + + + Open + Otwórz + + + Select a Directory + Wybierz katalog + + + + Q3LocalFs + + Could not read directory +%1 + Nie można czytać katalogu +%1 + + + Could not create directory +%1 + Nie można utworzyć katalogu +%1 + + + Could not remove file or directory +%1 + Nie można usunąć pliku lub katalogu +%1 + + + Could not rename +%1 +to +%2 + Nie można zmienić nazwy +%1 +na +%2 + + + Could not open +%1 + Nie można otworzyć +%1 + + + Could not write +%1 + Nie można zapisać +%1 + + + + Q3MainWindow + + Line up + Wyrównaj położenie + + + Customize... + Ustawienia użytkownika... + + + + Q3NetworkProtocol + + Operation stopped by the user + Operacja zatrzymana przez użytkownika + + + + Q3ProgressDialog + + Cancel + Anuluj + + + + Q3TabDialog + + OK + OK + + + Apply + Zatwierdź + + + Help + Pomoc + + + Defaults + Domyślne + + + Cancel + Anuluj + + + + Q3TextEdit + + &Undo + &Cofnij + + + &Redo + &Przywróć + + + Cu&t + W&ytnij + + + &Copy + S&kopiuj + + + &Paste + &Wklej + + + Clear + Wyczyść + + + Select All + Zaznacz wszystko + + + + Q3TitleBar + + System + System + + + Restore up + Przywróć na wierzch + + + Minimize + Zminimalizuj + + + Restore down + Przywróć pod spód + + + Maximize + Zmaksymalizuj + + + Close + Zamknij okno + + + Contains commands to manipulate the window + Zawiera polecenia zarządzające oknem + + + Puts a minimized window back to normal + Przywraca normalny rozmiar uprzednio zminimalizowanego okna + + + Moves the window out of the way + Przenosi okno w inne położenie + + + Puts a maximized window back to normal + Przywraca normalny rozmiar uprzednio zmaksymalizowanego okna + + + Makes the window full screen + Powiększa maksymalnie okno + + + Closes the window + Zamyka okno + + + Displays the name of the window and contains controls to manipulate it + Wyświetla nazwę okna i zawiera elementy do zarządzania nim + + + + Q3ToolBar + + More... + Więcej... + + + + Q3UrlOperator + + The protocol `%1' is not supported + Protokół '%1' nie jest obsługiwany + + + The protocol `%1' does not support listing directories + Protokół '%1' nie obsługuje pokazywania katalogów + + + The protocol `%1' does not support creating new directories + Protokół '%1' nie obsługuje tworzenia nowych katalogów + + + The protocol `%1' does not support removing files or directories + Protokół '%1' nie obsługuje usuwania plików lub katalogów + + + The protocol `%1' does not support renaming files or directories + Protokół '%1' nie obsługuje zmiany nazwy plików lub katalogów + + + The protocol `%1' does not support getting files + Protokół '%1' nie obsługuje pobierania plików + + + The protocol `%1' does not support putting files + Protokół '%1' nie obsługuje wysyłania plików + + + The protocol `%1' does not support copying or moving files or directories + Protokół '%1' nie obsługuje kopiowania lub przenoszenia plików lub katalogów + + + (unknown) + (nieznany) + + + + Q3Wizard + + &Cancel + &Anuluj + + + < &Back + < &Wstecz + + + &Next > + &Dalej > + + + &Finish + &Zakończ + + + &Help + &Pomoc + + + + QAbstractSocket + + Host not found + Host nie znaleziony + + + Connection refused + Połączenie odrzucone + + + Connection timed out + Przekroczony czas połączenia + + + Operation on socket is not supported + Operacja na gnieździe nieobsługiwana + + + Socket operation timed out + Przekroczony czas operacji gniazda + + + Socket is not connected + Gniazdo nie jest podłączone + + + Network unreachable + Sieć niedostępna + + + + QAbstractSpinBox + + &Step up + Krok do &góry + + + Step &down + Krok w &dół + + + &Select All + &Zaznacz wszystko + + + + QAccessibleButton + + Press + Wciśnij + + + + QApplication + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + LTR + + + Executable '%1' requires Qt %2, found Qt %3. + Program '%1' wymaga do uruchomienia Qt %2, znaleziono Qt %3. + + + Incompatible Qt Library Error + Niekompatybilność biblioteki Qt + + + Activate + Uaktywnij + + + Activates the program's main window + Uaktywnia główne okno programu + + + + QAxSelect + + Select ActiveX Control + Wybierz kontrolkę ActiveX + + + OK + OK + + + &Cancel + &Anuluj + + + COM &Object: + &Obiekt COM: + + + + QCheckBox + + Uncheck + Odznacz + + + Check + Zaznacz + + + Toggle + Przełącz + + + + QColorDialog + + Hu&e: + &Barwa: + + + &Sat: + &Nasycenie: + + + &Val: + &Wartość: + + + &Red: + &Czerwień: + + + &Green: + &Zieleń: + + + Bl&ue: + Błęki&t: + + + A&lpha channel: + Kanał &alfa: + + + Select Color + Wybierz kolor + + + &Basic colors + &Kolory podstawowe + + + &Custom colors + Wła&sne kolory + + + &Add to Custom Colors + &Dodaj do własnych kolorów + + + + QComboBox + + Open + Otwórz + + + False + Fałsz + + + True + Prawda + + + Close + Zamknij + + + + QCoreApplication + + %1: key is empty + QSystemSemaphore + %1: klucz jest pusty + + + %1: unable to make key + QSystemSemaphore + %1: nie można utworzyć klucza + + + %1: ftok failed + QSystemSemaphore + %1: wystąpił błąd w funkcji ftok() + + + %1: already exists + QSystemSemaphore + %1: już istnieje + + + %1: does not exist + QSystemSemaphore + %1: nie istnieje + + + %1: out of resources + QSystemSemaphore + %1: zasoby wyczerpane + + + %1: unknown error %2 + QSystemSemaphore + %1: nieznany błąd %2 + + + + QDB2Driver + + Unable to connect + Nie można nawiązać połączenia + + + Unable to commit transaction + Nie można dokonać transakcji + + + Unable to rollback transaction + Nie można wycofać transakcji + + + Unable to set autocommit + Nie można ustawić trybu automatycznego dokonywania transakcji + + + + QDB2Result + + Unable to execute statement + Nie można wykonać polecenia + + + Unable to prepare statement + Nie można przygotować polecenia + + + Unable to bind variable + Nie można powiązać zmiennej + + + Unable to fetch record %1 + Nie można pobrać rekordu %1 + + + Unable to fetch next + Nie można pobrać kolejnego wiersza danych + + + Unable to fetch first + Nie można pobrać pierwszego wiersza danych + + + + QDateTimeEdit + + AM + AM + + + am + am + + + PM + PM + + + pm + pm + + + + QDial + + QDial + QDial + + + SpeedoMeter + Miernik prędkości + + + SliderHandle + Uchwyt suwaka + + + + QDialog + + What's This? + Co to jest? + + + Done + Wykonano + + + + QDialogButtonBox + + OK + OK + + + Save + Zachowaj + + + &Save + &Zachowaj + + + Open + Otwórz + + + Cancel + Anuluj + + + &Cancel + &Anuluj + + + Close + Zamknij + + + &Close + &Zamknij + + + Apply + Zastosuj + + + Reset + Resetuj + + + Help + Pomoc + + + Don't Save + Nie zachowuj + + + Discard + Odrzuć + + + &Yes + &Tak + + + Yes to &All + Ta&k dla wszystkich + + + &No + &Nie + + + N&o to All + Ni&e dla wszystkich + + + Save All + Zachowaj wszystko + + + Abort + Przerwij + + + Retry + Ponów + + + Ignore + Zignoruj + + + Restore Defaults + Przywróć ustawienia + + + Close without Saving + Zamknij bez zapisywania + + + &OK + &OK + + + + QDirModel + + Name + Nazwa + + + Size + Rozmiar + + + Kind + Match OS X Finder + Typ + + + Type + All other platforms + Rodzaj + + + Date Modified + Data modyfikacji + + + + QDockWidget + + Close + Zamknij + + + Dock + Zadokuj + + + Float + Uwolnij + + + + QDoubleSpinBox + + More + Więcej + + + Less + Mniej + + + + QErrorMessage + + &Show this message again + &Pokaż ten komunikat ponownie + + + &OK + &OK + + + Debug Message: + Komunikat dla programisty: + + + Warning: + Ostrzeżenie: + + + Fatal Error: + Błąd krytyczny: + + + + QFile + + Destination file exists + Plik wyjściowy już istnieje + + + Will not rename sequential file using block copy + Nie można zmienić nazwy pliku sekwencyjnego używając kopiowania blokowego + + + Cannot remove source file + Nie można usunąć oryginalnego pliku + + + Cannot open %1 for input + Nie można otworzyć pliku wejściowego %1 + + + Cannot open for output + Nie można otworzyć pliku wyjściowego + + + Failure to write block + Nie można zapisać bloku + + + Cannot create %1 for output + Nie można utworzyć pliku wyjściowego %1 + + + + QFileDialog + + All Files (*) + Wszystkie pliki (*) + + + Back + Powrót + + + List View + Lista + + + Detail View + Szczegóły + + + File + Plik + + + Open + Otwórz + + + Save As + Zachowaj jako + + + &Open + &Otwórz + + + &Save + &Zachowaj + + + Recent Places + Ostatnie miejsca + + + &Rename + &Zmień nazwę + + + &Delete + &Skasuj + + + Show &hidden files + Pokaż &ukryte pliki + + + New Folder + Nowy katalog + + + Find Directory + Znajdź katalog + + + Directories + Katalogi + + + All Files (*.*) + Wszystkie pliki (*.*) + + + Directory: + Katalog: + + + %1 already exists. +Do you want to replace it? + %1 już istnieje. +Czy chcesz zamienić? + + + %1 +File not found. +Please verify the correct file name was given. + %1 +Plik nie znaleziony. +Proszę o sprawdzenie podanej nazwy pliku. + + + My Computer + Mój komputer + + + Parent Directory + Katalog wyżej + + + Files of type: + Pliki rodzaju: + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Katalog nie znaleziony. +Sprawdź podaną nazwę katalogu. + + + '%1' is write protected. +Do you want to delete it anyway? + '%1' jest zabezpieczony przed zapisem. +Czy na pewno chcesz go skasować? + + + Are sure you want to delete '%1'? + Czy na pewno chcesz skasować '%1'? + + + Could not delete directory. + Nie można skasować katalogu. + + + Drive + Urządzenie + + + File Folder + Match Windows Explorer + Katalog + + + Folder + All other platforms + Katalog + + + Alias + Mac OS X Finder + Alias + + + Shortcut + All other platforms + Skrót + + + Unknown + Nieznany + + + Show + Pokaż + + + Forward + Do przodu + + + &New Folder + &Nowy katalog + + + &Choose + &Wybierz + + + Remove + Usuń + + + File &name: + Nazwa &pliku: + + + Look in: + Szukaj w: + + + Create New Folder + Utwórz nowy katalog + + + + QFileSystemModel + + %1 TB + %1 TB + + + %1 GB + %1 GB + + + %1 MB + %1 MB + + + %1 KB + %1 KB + + + %1 bytes + %1 bajtów + + + Invalid filename + Niepoprawna nazwa pliku + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>Nazwa "%1" nie może zostać użyta.</b><p>Spróbuj użyć nowej nazwy z mniejszą liczbą znaków lub bez znaków przystankowych. + + + Name + Nazwa + + + Size + Rozmiar + + + Kind + Match OS X Finder + Typ + + + Type + All other platforms + Rodzaj + + + Date Modified + Data modyfikacji + + + My Computer + Mój komputer + + + Computer + Komputer + + + %1 byte(s) + %1 bajt(ów) + + + + QFontDatabase + + Normal + Normalny + + + Bold + Pogrubiony + + + Demi Bold + Na wpół pogrubiony + + + Black + Bardzo gruby + + + Demi + Na wpół + + + Light + Cienki + + + Italic + Kursywa + + + Oblique + Pochyły + + + Any + Każdy + + + Latin + Łaciński + + + Greek + Grecki + + + Cyrillic + Cyrylica + + + Armenian + Ormiański + + + Hebrew + Hebrajski + + + Arabic + Arabski + + + Syriac + Syryjski + + + Thaana + Thaana + + + Devanagari + Devanagari + + + Bengali + Bengalski + + + Gurmukhi + Gurmukhi + + + Gujarati + Gudżaracki + + + Oriya + Orija + + + Tamil + Tamilski + + + Telugu + Telugu + + + Kannada + Kannada + + + Malayalam + Malajalam + + + Sinhala + Syngaleski + + + Thai + Tajski + + + Lao + Laotański + + + Tibetan + Tybetański + + + Myanmar + Birmański + + + Georgian + Gruziński + + + Khmer + Khmerski + + + Simplified Chinese + Uproszczony chiński + + + Traditional Chinese + Tradycyjny chiński + + + Japanese + Japoński + + + Korean + Koreański + + + Vietnamese + Wietnamski + + + Symbol + Symboliczny + + + Ogham + Ogamiczny + + + Runic + Runiczny + + + N'Ko + N'Ko + + + + QFontDialog + + &Font + &Czcionka + + + Font st&yle + St&yl czcionki + + + &Size + &Rozmiar + + + Effects + Efekty + + + Stri&keout + Pr&zekreślenie + + + &Underline + &Podkreślenie + + + Sample + Przykład + + + Select Font + Wybierz czcionkę + + + Wr&iting System + Sys&tem pisania + + + + QFtp + + Host %1 found + Host %1 znaleziony + + + Host found + Host znaleziony + + + Connected to host %1 + Podłączony do hosta %1 + + + Connected to host + Podłączony do hosta + + + Connection to %1 closed + Połączenie do %1 zakończone + + + Connection closed + Połączenie zamknięte + + + Host %1 not found + Host %1 nie znaleziony + + + Connection refused to host %1 + Połączenie do hosta %1 odrzucone + + + Connection timed out to host %1 + Przekroczony czas połączenia do hosta %1 + + + Unknown error + Nieznany błąd + + + Connecting to host failed: +%1 + Podłączanie do hosta zakończone błędem: +%1 + + + Login failed: +%1 + Logowanie nie powiodło się: +%1 + + + Listing directory failed: +%1 + Listowanie katalogu zakończone błędem: +%1 + + + Changing directory failed: +%1 + Zmiana katalogu zakończona błędem: +%1 + + + Downloading file failed: +%1 + Pobieranie pliku zakończone błędem: +%1 + + + Uploading file failed: +%1 + Wysyłanie pliku zakończone błędem: +%1 + + + Removing file failed: +%1 + Usuwanie pliku zakończone błędem: +%1 + + + Creating directory failed: +%1 + Tworzenie katalogu zakończone błędem: +%1 + + + Removing directory failed: +%1 + Usuwanie katalogu zakończone błędem: +%1 + + + Not connected + Nie podłączony + + + Connection refused for data connection + Połączenie do przesyłu danych odrzucone + + + + QHostInfo + + Unknown error + Nieznany błąd + + + + QHostInfoAgent + + Host not found + Host nie znaleziony + + + Unknown address type + Nieznany typ adresu + + + Unknown error + Nieznany błąd + + + No host name given + Nie podano nazwy hosta + + + Invalid hostname + Niepoprawna nazwa hosta + + + + QHttp + + Connection refused + Połączenie odrzucone + + + Host %1 not found + Host %1 nie znaleziony + + + Wrong content length + Błędna długość zawartości + + + HTTP request failed + Komenda HTTP zakończona błędem + + + Host %1 found + Host %1 znaleziony + + + Host found + Host znaleziony + + + Connected to host %1 + Podłączony do hosta %1 + + + Connected to host + Podłączony do hosta + + + Connection to %1 closed + Połączenie do %1 zamknięte + + + Connection closed + Połączenie zakończone + + + Unknown error + Nieznany błąd + + + Request aborted + Komenda przerwana + + + No server set to connect to + Brak serwera do podłączenia + + + Server closed connection unexpectedly + Serwer niespodziewanie zakończył połączenie + + + Invalid HTTP response header + Niepoprawny nagłówek odpowiedzi HTTP + + + Unknown authentication method + Nieznana metoda autoryzacji + + + Invalid HTTP chunked body + Niepoprawne ciało HTTP + + + Error writing response to device + Błąd zapisywania odpowiedzi do urządzenia + + + Proxy authentication required + Wymagana autoryzacja pośrednika + + + Authentication required + Wymagana autoryzacja + + + Proxy requires authentication + Pośrednik wymaga autoryzacji + + + Host requires authentication + Host wymaga autoryzacji + + + Data corrupted + Dane uszkodzone + + + SSL handshake failed + Nawiązanie sesji SSL nie powiodło się + + + Unknown protocol specified + Podano nieznany protokół + + + Connection refused (or timed out) + Połączenie odrzucone (przekroczony czas połączenia) + + + HTTPS connection requested but SSL support not compiled in + Zażądano połączenia HTTPS lecz obsługa SSL nie jest wkompilowana + + + + QHttpSocketEngine + + Did not receive HTTP response from proxy + Nie odebrano odpowiedzi HTTP od pośrednika + + + Error parsing authentication request from proxy + Błąd parsowania żądania autoryzacji od pośrednika + + + Authentication required + Wymagana autoryzacja + + + Proxy denied connection + Pośrednik odmówił połączenia + + + Error communicating with HTTP proxy + Błąd podczas komunikacji z pośrednikiem HTTP + + + Proxy server not found + Nie znaleziono serwera pośredniczącego + + + Proxy connection refused + Odmowa połączenia z pośrednikiem + + + Proxy server connection timed out + Przekroczony czas połączenia do serwera pośredniczącego + + + Proxy connection closed prematurely + Przedwczesne zakończenie połączenia z pośrednikiem + + + + QIBaseDriver + + Error opening database + Błąd otwierania bazy danych + + + Could not start transaction + Nie można rozpocząć transakcji + + + Unable to commit transaction + Nie można dokonać transakcji + + + Unable to rollback transaction + Nie można wycofać transakcji + + + + QIBaseResult + + Unable to create BLOB + Nie można utworzyć obiektu typu BLOB + + + Unable to write BLOB + Nie można zapisać obiektu typu BLOB + + + Unable to open BLOB + Nie można otworzyć obiektu typu BLOB + + + Unable to read BLOB + Nie można odczytać obiektu typu BLOB + + + Could not find array + Nie można odnaleźć tablicy + + + Could not get array data + Nie można pobrać danych z tablicy + + + Could not get query info + Nie można pobrać informacji o zapytaniu + + + Could not start transaction + Nie można rozpocząć transakcji + + + Unable to commit transaction + Nie można dokonać transakcji + + + Could not allocate statement + Nie można zaallokować polecenia + + + Could not prepare statement + Nie można przygotować polecenia + + + Could not describe input statement + Nie można opisać polecenia wejściowego + + + Could not describe statement + Nie można opisać polecenia + + + Unable to close statement + Nie można zamknąć polecenia + + + Unable to execute query + Nie można wykonać zapytania + + + Could not fetch next item + Nie można pobrać kolejnego elementu + + + Could not get statement info + Nie można pobrać informacji o poleceniu + + + + QIODevice + + Permission denied + Brak dostępu + + + Too many open files + Zbyt wiele otwartych plików + + + No such file or directory + Brak pliku lub katalogu + + + No space left on device + Brak wolnego miejsca na urządzeniu + + + Unknown error + Nieznany błąd + + + + QInputContext + + XIM + XIM + + + FEP + FEP + + + XIM input method + Metoda wprowadzania XIM + + + Windows input method + Metoda wprowadzania Windows + + + Mac OS X input method + Metoda wprowadzania Mac OS X + + + S60 FEP input method + Metoda wprowadzania S60 FEP + + + + QInputDialog + + Enter a value: + Podaj wartość: + + + + QLibrary + + Could not mmap '%1': %2 + Nie można wykonać przypisania '%1': %2 + + + Plugin verification data mismatch in '%1' + Błąd podczas weryfikacji danych we wtyczce '%1' + + + Could not unmap '%1': %2 + Nie można usunąć przypisania '%1': %2 + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + Wtyczka '%1' używa niepoprawnej wersji biblioteki QT. (%2.%3.%4) [%5] + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + Wtyczka '%1' używa niepoprawnej wersji biblioteki QT. Oczekiwano klucza "%2", uzyskano "%3" + + + Unknown error + Nieznany błąd + + + The shared library was not found. + Biblioteka współdzielona niedostępna. + + + The file '%1' is not a valid Qt plugin. + Plik "%1" nie jest poprawną wtyczką Qt. + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + Wtyczka "%1" używa innej wersji biblioteki Qt. (Nie można łączyć bibliotek zwykłych i debugowych.) + + + Cannot load library %1: %2 + Nie można załadować biblioteki %1: %2 + + + Cannot unload library %1: %2 + Nie można zwolnić biblioteki %1: %2 + + + Cannot resolve symbol "%1" in %2: %3 + Nie można zidentyfikować symbolu "%1" w %2: %3 + + + + QLineEdit + + Select All + Zaznacz wszystko + + + &Undo + &Cofnij + + + &Redo + &Przywróć + + + Cu&t + W&ytnij + + + &Copy + S&kopiuj + + + &Paste + &Wklej + + + Delete + Skasuj + + + + QLocalServer + + %1: Name error + %1: Błąd nazwy + + + %1: Permission denied + %1: Brak dostępu + + + %1: Address in use + %1: Adres użyty + + + %1: Unknown error %2 + %1: Nieznany błąd %2 + + + + QLocalSocket + + %1: Connection refused + %1: Odmowa połączenia + + + %1: Remote closed + %1: Drugi koniec odłączony + + + %1: Invalid name + %1: Niepoprawna nazwa + + + %1: Socket access error + %1: Błąd dostępu do gniazda + + + %1: Socket resource error + %1: Błąd zasobów gniazda + + + %1: Socket operation timed out + %1: Przekroczony czas operacji gniazda + + + %1: Datagram too large + %1: Za duży datagram + + + %1: Connection error + %1: Błąd połączenia + + + %1: The socket operation is not supported + %1: Operacja nie jest obsługiwana przez gniazdo + + + %1: Unknown error + %1: Nieznany błąd + + + %1: Unknown error %2 + %1: Nieznany błąd %2 + + + + QMYSQLDriver + + Unable to open database ' + Nie można otworzyć bazy danych ' + + + Unable to connect + Nie można nawiązać połączenia + + + Unable to begin transaction + Nie można rozpocząć transakcji + + + Unable to commit transaction + Nie można potwierdzić transakcji + + + Unable to rollback transaction + Nie można wycofać transakcji + + + + QMYSQLResult + + Unable to fetch data + Nie można pobrać danych + + + Unable to execute query + Nie można wykonać zapytania + + + Unable to store result + Nie można zachować wyników + + + Unable to prepare statement + Nie można przygotować polecenia + + + Unable to reset statement + Nie można skasować polecenia + + + Unable to bind value + Nie można powiązać wartości + + + Unable to execute statement + Nie można wykonać polecenia + + + Unable to bind outvalues + Nie można powiązać wartości zewnętrznych + + + Unable to store statement results + Nie można zachować wyników polecenia + + + Unable to execute next query + Nie można wykonać następnego zapytania + + + Unable to store next result + Nie można zachować następnego wyniku + + + + QMdiArea + + (Untitled) + (Nienazwany) + + + + QMdiSubWindow + + %1 - [%2] + %1 - [%2] + + + Close + Zamknij + + + Minimize + Zminimalizuj + + + Restore Down + Przywróć pod spód + + + &Restore + &Przywróć + + + &Move + Prze&nieś + + + &Size + &Rozmiar + + + Mi&nimize + Zmi&nimalizuj + + + Ma&ximize + Zma&ksymalizuj + + + Stay on &Top + Pozostaw na &wierzchu + + + &Close + &Zamknij + + + Maximize + Zmaksymalizuj + + + Unshade + Rozwiń + + + Shade + Zwiń + + + Restore + Przywróć + + + Help + Pomoc + + + Menu + Menu + + + - [%1] + - [%1] + + + + QMenu + + Close + Zamknij + + + Open + Otwórz + + + Execute + Wykonaj + + + + QMenuBar + + Actions + Akcje + + + + QMessageBox + + OK + OK + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>Informacje o Qt</h3><p> Ten program używa Qt w wersji %1.</p> + + + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <p>Qt jest zestawem narzędzi programistycznych dedykowanym dla języka C++. Służy on do opracowywania aplikacji międzyplatformowych.</p><p>Qt umożliwia jednoźródłowe przenoszenie między systemami MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux i wszystkimi głównymi wersjami komercyjnymi systemu Unix. Środowisko Qt jest dostępne dla urządzeń wbudowanych opartych na systemie Linux ( Qt dla wbudowanego systemu Linux) oraz Windows CE.</p><p>Zestaw Qt jest dostępny w trzech różnych opcjach licencjonowania stworzonych w celu zadowolenia naszych różnych użytkowników.</p><p>Qt podlegający licencji zgodnie z naszą komercyjną umową licencyjną jest odpowiedni do opracowywania oprogramowań własnościowych/komercyjnych, dzięki czemu kod źródłowy nie jest udostępniany osobom trzecim. W przeciwnym razie zestaw Qt jest niezgodny z warunkami licencji GNU LGPL w wersji 2.1 lub GNU GPL w wersji 3.0.</p><p>Środowisko Qt objęte licencją GNU LGPL w wersji 2.1 nadaje się do tworzenia aplikacji Qt (własnościowych lub oprogramowań otwartych) tylko wtedy, gdy przestrzegane są warunki licencji GNU LGPL w wersji 2.1.</p><p>Qt objęty Powszechną Licencją Publiczną GNU w wersji 3.0 jest odpowiedni do opracowywania aplikacji QT, aby móc korzystać z aplikacji w połączeniu z oprogramowaniem podlegającym warunkom licencji GNU GPL w wersji 3.0 lub aby przestrzegać warunków licencji GNU GPL w wersji 3.0.</p><p>Więcej informacji na temat licencji Qt można znaleźć na stronie <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a>.</p><p>Copyright (C) 2010 Nokia Corporation i/lub oddziały firmy.</p><p>Qt jest produktem firmy Nokia. Dodatkowe informacje znajdują się na stronie <a href="http://qt.nokia.com/">qt.nokia.com</a> </p> + + + About Qt + Informacje o Qt + + + Help + Pomoc + + + Show Details... + Pokaż szczegóły... + + + Hide Details... + Ukryj szczegóły... + + + + QMultiInputContext + + Select IM + Wybierz metodę wprowadzania + + + + QMultiInputContextPlugin + + Multiple input method switcher + Przełącznik metody wprowadzania + + + Multiple input method switcher that uses the context menu of the text widgets + Przełącznik metody wprowadzania, który w widżetach tekstowych używa podręcznego menu + + + + QNativeSocketEngine + + The remote host closed the connection + Zdalny host zakończył połączenie + + + Network operation timed out + Przekroczony czas operacji sieciowej + + + Out of resources + Zasoby wyczerpane + + + Unsupported socket operation + Nieobsługiwana operacja gniazda + + + Protocol type not supported + Nieobsługiwany typ protokołu + + + Invalid socket descriptor + Niepoprawny opis gniazda + + + Network unreachable + Sieć niedostępna + + + Permission denied + Brak dostępu + + + Connection timed out + Przekroczony czas połączenia + + + Connection refused + Połączenie odrzucone + + + The bound address is already in use + Adres jest aktualnie w użyciu + + + The address is not available + Adres nie jest dostępny + + + The address is protected + Adres jest zabezpieczony + + + Unable to send a message + Nie można wysłać wiadomości + + + Unable to receive a message + Nie można odebrać wiadomości + + + Unable to write + Nie można zapisać + + + Network error + Błąd sieci + + + Another socket is already listening on the same port + Inne gniazdo nasłuchuje już na tym porcie + + + Unable to initialize non-blocking socket + Nie można uruchomić gniazda w nieblokującym trybie + + + Unable to initialize broadcast socket + Nie można uruchomić gniazda rozsyłającego + + + Attempt to use IPv6 socket on a platform with no IPv6 support + Próba użycia IPv6 na platformie bez obsługi IPv6 + + + Host unreachable + Komputer niedostępny + + + Datagram was too large to send + Datagram za długi do wysłania + + + Operation on non-socket + Nieprawidłowa operacja na gnieździe + + + Unknown error + Nieznany błąd + + + The proxy type is invalid for this operation + Typ pośrednika nie jest poprawny dla tej operacji + + + + QNetworkAccessCacheBackend + + Error opening %1 + Błąd otwierania %1 + + + + QNetworkAccessDebugPipeBackend + + Write error writing to %1: %2 + Błąd w trakcie zapisywania do %1: %2 + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + Żądanie otwarcia zdalnego pliku %1 + + + Error opening %1: %2 + Błąd otwierania %1: %2 + + + Write error writing to %1: %2 + Błąd w trakcie zapisywania do %1: %2 + + + Cannot open %1: Path is a directory + Nie można otworzyć %1: Ścieżka jest katalogiem + + + Read error reading from %1: %2 + Błąd w trakcie czytania z %1: %2 + + + + QNetworkAccessFtpBackend + + No suitable proxy found + Nie odnaleziono odpowiedniego pośrednika + + + Cannot open %1: is a directory + Nie można otworzyć %1: jest to katalog + + + Logging in to %1 failed: authentication required + Błąd podczas logowania do %1: wymagana autoryzacja + + + Error while downloading %1: %2 + Błąd podczas pobierania %1: %2 + + + Error while uploading %1: %2 + Błąd podczas wysyłania %1: %2 + + + + QNetworkAccessHttpBackend + + No suitable proxy found + Nie odnaleziono odpowiedniego pośrednika + + + + QNetworkReply + + Error downloading %1 - server replied: %2 + Błąd podczas pobierania %1 - odpowiedź serwera: %2 + + + Protocol "%1" is unknown + Protokół "%1" nie jest znany + + + + QNetworkReplyImpl + + Operation canceled + Operacja anulowana + + + + QOCIDriver + + Unable to logon + Nie można się zalogować + + + Unable to initialize + QOCIDriver + Nie można dokonać inicjalizacji + + + Unable to begin transaction + Nie można rozpocząć transakcji + + + Unable to commit transaction + Nie można dokonać transakcji + + + Unable to rollback transaction + Nie można wycofać transakcji + + + + QOCIResult + + Unable to bind column for batch execute + Nie można powiązać kolumny dla wykonania zestawu poleceń + + + Unable to execute batch statement + Nie można wykonać polecenia wsadowego + + + Unable to goto next + Nie można przejść do kolejnego wiersza danych + + + Unable to alloc statement + Nie można przydzielić miejsca na polecenie + + + Unable to prepare statement + Nie można przygotować polecenia + + + Unable to get statement type + Nie można pobrać typu polecenia + + + Unable to bind value + Nie można powiązać wartości + + + Unable to execute statement + Nie można wykonać polecenia + + + + QODBCDriver + + Unable to connect + Nie można nawiązać połączenia + + + Unable to disable autocommit + Nie można wyłączyć trybu automatycznego dokonywania transakcji + + + Unable to commit transaction + Nie można potwierdzić transakcji + + + Unable to rollback transaction + Nie można wycofać transakcji + + + Unable to enable autocommit + Nie można włączyć trybu automatycznego dokonywania transakcji + + + Unable to connect - Driver doesn't support all functionality required + Nie można nawiązać połączenia - sterownik nie obsługuje całej potrzebnej funkcjonalności + + + + QODBCResult + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: Nie można ustawić 'SQL_CURSOR_STATIC' jako atrybutu polecenia. Proszę sprawdzić konfiguracje sterownika ODBC + + + Unable to execute statement + Nie można wykonać polecenia + + + Unable to fetch next + Nie można pobrać kolejnych danych + + + Unable to prepare statement + Nie można przygotować polecenia + + + Unable to bind variable + Nie można powiązać zmiennej + + + Unable to fetch last + Nie można pobrać ostatnich danych + + + Unable to fetch + Nie można pobrać + + + Unable to fetch first + Nie można pobrać pierwszych danych + + + Unable to fetch previous + Nie można pobrać poprzednich danych + + + + QObject + + Invalid hostname + Niepoprawna nazwa hosta + + + Operation not supported on %1 + Operacja nieobsługiwana na %1 + + + Invalid URI: %1 + Niepoprawny URI: %1 + + + Socket error on %1: %2 + Błąd gniazda na %1: %2 + + + Remote host closed the connection prematurely on %1 + Zdalny host przedwcześnie zakończył połączenie na %1 + + + No host name given + Nie podano nazwy hosta + + + + QPPDOptionsModel + + Name + Nazwa + + + Value + Wartość + + + + QPSQLDriver + + Unable to connect + Nie można nawiązać połączenia + + + Could not begin transaction + Nie można rozpocząć transakcji + + + Could not commit transaction + Nie można potwierdzić transakcji + + + Could not rollback transaction + Nie można wycofać transakcji + + + Unable to subscribe + Nie można wykonać subskrypcji + + + Unable to unsubscribe + Nie można zrezygnować z subskrypcji + + + + QPSQLResult + + Unable to create query + Nie można utworzyć zapytania + + + Unable to prepare statement + Nie można przygotować polecenia + + + + QPageSetupWidget + + Centimeters (cm) + Centymetry (cm) + + + Millimeters (mm) + Milimetry (mm) + + + Inches (in) + Cale (in) + + + Points (pt) + Punkty (pt) + + + Form + Formularz + + + Paper + Papier + + + Page size: + Rozmiar strony: + + + Width: + Szerokość: + + + Height: + Wysokość: + + + Paper source: + Źródło papieru: + + + Orientation + Położenie + + + Portrait + Portret + + + Landscape + Pejzaż + + + Reverse landscape + Odwrócony pejzaż + + + Reverse portrait + Odwrócony portret + + + Margins + Marginesy + + + top margin + Górny margines + + + left margin + Lewy margines + + + right margin + Prawy margines + + + bottom margin + Dolny margines + + + + QPluginLoader + + Unknown error + Nieznany błąd + + + The plugin was not loaded. + Wtyczka nie została załadowana. + + + + QPrintDialog + + locally connected + podłączony lokalnie + + + Aliases: %1 + Aliasy: %1 + + + unknown + nieznany + + + OK + OK + + + Print all + Drukuj wszystko + + + Print range + Drukuj zakres + + + A0 (841 x 1189 mm) + A0 (841 x 1189 mm) + + + A1 (594 x 841 mm) + A1 (594 x 841 mm) + + + A2 (420 x 594 mm) + A2 (420 x 594 mm) + + + A3 (297 x 420 mm) + A3 (297 x 420 mm) + + + A5 (148 x 210 mm) + A5 (148 x 210 mm) + + + A6 (105 x 148 mm) + A6 (105 x 148 mm) + + + A7 (74 x 105 mm) + A7 (74 x 105 mm) + + + A8 (52 x 74 mm) + A8 (52 x 74 mm) + + + A9 (37 x 52 mm) + A9 (37 x 52 mm) + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 mm) + + + B1 (707 x 1000 mm) + B1 (707 x 1000 mm) + + + B2 (500 x 707 mm) + B2 (500 x 707 mm) + + + B3 (353 x 500 mm) + B3 (353 x 500 mm) + + + B4 (250 x 353 mm) + B4 (250 x 353 mm) + + + B6 (125 x 176 mm) + B6 (125 x 176 mm) + + + B7 (88 x 125 mm) + B7 (88 x 125 mm) + + + B8 (62 x 88 mm) + B8 (62 x 88 mm) + + + B9 (44 x 62 mm) + B9 (44 x 62 mm) + + + B10 (31 x 44 mm) + B10 (31 x 44 mm) + + + C5E (163 x 229 mm) + C5E (163 x 229 mm) + + + DLE (110 x 220 mm) + DLE (110 x 220 mm) + + + Folio (210 x 330 mm) + Folio (210 x 330 mm) + + + Ledger (432 x 279 mm) + Ledger (432 x 279 mm) + + + Tabloid (279 x 432 mm) + Tabloid (279 x 432 mm) + + + US Common #10 Envelope (105 x 241 mm) + US Common #10 Envelope (105 x 241 mm) + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 mm, 8.26 x 11.7 cali) + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 mm, 6.93 x 9.84 cali) + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (7.5 x 10 cali, 191 x 254 mm) + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8.5 x 14 cali, 216 x 356 mm) + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (8.5 x 11 cali, 216 x 279 mm) + + + Print selection + Drukuj zaznaczone + + + Print + Drukowanie + + + Print To File ... + Drukuj do pliku ... + + + File %1 is not writable. +Please choose a different file name. + Plik %1 jest plikiem tylko do odczytu. +Proszę wybrać inną nazwę pliku. + + + %1 already exists. +Do you want to overwrite it? + %1 już istnieje. +Czy chcesz nadpisać? + + + File exists + Plik istnieje + + + <qt>Do you want to overwrite it?</qt> + <qt>Czy chcesz nadpisać?</qt> + + + %1 is a directory. +Please choose a different file name. + %1 jest katalogiem. +Proszę wybrać inną nazwę pliku. + + + The 'From' value cannot be greater than the 'To' value. + Wartość "od" nie może być większa od wartości "do". + + + A0 + A0 + + + A1 + A1 + + + A2 + A2 + + + A3 + A3 + + + A4 + A4 + + + A5 + A5 + + + A6 + A6 + + + A7 + A7 + + + A8 + A8 + + + A9 + A9 + + + B0 + B0 + + + B1 + B1 + + + B2 + B2 + + + B3 + B3 + + + B4 + B4 + + + B5 + B5 + + + B6 + B6 + + + B7 + B7 + + + B8 + B8 + + + B9 + B9 + + + B10 + B10 + + + C5E + C5E + + + DLE + DLE + + + Executive + Executive + + + Folio + Folio + + + Ledger + Ledger + + + Legal + Legal + + + Letter + Letter + + + Tabloid + Tabloid + + + US Common #10 Envelope + US Common #10 Envelope + + + Custom + Niestandardowy + + + &Options >> + &Opcje >> + + + &Options << + &Opcje << + + + Print to File (PDF) + Drukuj do pliku (PDF) + + + Print to File (Postscript) + Drukuj do pliku (Postscript) + + + Local file + Plik lokalny + + + Write %1 file + Zapisz %1 plik + + + &Print + Wy&drukuj + + + + QPrintPreviewDialog + + %1% + %1% + + + Print Preview + Podgląd wydruku + + + Next page + Następna strona + + + Previous page + Poprzednia strona + + + First page + Pierwsza strona + + + Last page + Ostatnia strona + + + Fit width + Dopasuj szerokość + + + Fit page + Dopasuj stronę + + + Zoom in + Powiększ + + + Zoom out + Pomniejsz + + + Portrait + Portret + + + Landscape + Pejzaż + + + Show single page + Pokaż pojedynczą stronę + + + Show facing pages + Pokaż sąsiednie strony + + + Show overview of all pages + Pokaż wszystkie strony + + + Print + Wydrukuj + + + Page setup + Ustawienia strony + + + Close + + + + Export to PDF + Wyeksportuj do PDF + + + Export to PostScript + Wyeksportuj do PostScript + + + Page Setup + Ustawienia strony + + + + QPrintPropertiesWidget + + Form + Forma + + + Page + Strona + + + Advanced + Zaawansowane + + + + QPrintSettingsOutput + + Form + Forma + + + Copies + Liczba kopii + + + Print range + Zakres wydruku + + + Print all + Drukuj wszystko + + + Pages from + Strony od + + + to + do + + + Selection + Wybrane strony + + + Output Settings + Ustawienia wyjściowe + + + Copies: + Kopie: + + + Collate + Parami + + + Reverse + Odwróć + + + Options + Opcje + + + Color Mode + Tryb koloru + + + Color + Kolor + + + Grayscale + Skala szarości + + + Duplex Printing + Drukowanie dupleksowe + + + None + Brak + + + Long side + Długa strona + + + Short side + Krótka strona + + + + QPrintWidget + + Form + Forma + + + Printer + Drukarka + + + &Name: + &Nazwa: + + + P&roperties + &Właściwości + + + Location: + Położenie: + + + Preview + Podgląd + + + Type: + Typ: + + + Output &file: + &Plik wyjściowy: + + + ... + ... + + + + QProcess + + Could not open input redirection for reading + Nie można otworzyć wejściowego przekierowania do odczytu + + + Could not open output redirection for writing + Nie można otworzyć wyjściowego przekierowania do zapisu + + + Resource error (fork failure): %1 + Błąd zasobów (błąd forkowania): %1 + + + Process operation timed out + Przekroczony czas operacji procesu + + + Error reading from process + Błąd odczytywania z procesu + + + Error writing to process + Błąd zapisywania do procesu + + + Process crashed + Wystąpił błąd w procesie - proces zakończony + + + No program defined + Nie zdefiniowano programu + + + Process failed to start: %1 + Nie można rozpocząć procesu: %1 + + + + QProgressDialog + + Cancel + Anuluj + + + + QPushButton + + Open + Otwórz + + + + QRadioButton + + Check + Zaznacz + + + + QRegExp + + no error occurred + nie pojawił się żaden błąd + + + disabled feature used + użyta funkcja została wyłączona + + + bad char class syntax + niepoprawna składnia klasy znakowej + + + bad lookahead syntax + niepoprawna składnia "lookahead" + + + bad repetition syntax + niepoprawna składnia powtórzenia + + + invalid octal value + niepoprawna wartość ósemkowa + + + missing left delim + brakujący lewy separator + + + unexpected end + nieoczekiwany koniec + + + met internal limit + napotkano wewnętrzne ograniczenie + + + invalid interval + Niepoprawny interwał + + + invalid category + Niepoprawna kategoria + + + + QSQLite2Driver + + Error opening database + Błąd otwierania bazy danych + + + Unable to begin transaction + Nie można rozpocząć transakcji + + + Unable to commit transaction + Nie można dokonać transakcji + + + Unable to rollback transaction + Nie można wycofać transakcji + + + + QSQLite2Result + + Unable to fetch results + Nie można pobrać wyników + + + Unable to execute statement + Nie można wykonać polecenia + + + + QSQLiteDriver + + Error opening database + Błąd otwierania bazy danych + + + Error closing database + Błąd zamykania bazy danych + + + Unable to begin transaction + Nie można rozpocząć transakcji + + + Unable to commit transaction + Nie można dokonać transakcji + + + Unable to rollback transaction + Nie można wycofać transakcji + + + + QSQLiteResult + + Unable to fetch row + Nie można pobrać wiersza danych + + + Unable to execute statement + Nie można wykonać polecenia + + + Unable to reset statement + Nie można skasować polecenia + + + Unable to bind parameters + Nie można powiązać parametrów + + + Parameter count mismatch + Niezgodna liczba parametrów + + + No query + Brak zapytania + + + + QScriptBreakpointsModel + + ID + Identyfikator + + + Location + Położenie + + + Condition + Warunek + + + Ignore-count + Licznik pominięć + + + Single-shot + ## + + + Hit-count + Licznik trafień + + + + QScriptBreakpointsWidget + + New + Nowy + + + Delete + Skasuj + + + + QScriptDebugger + + Go to Line + Przejdź do linii + + + Line: + Linia: + + + Interrupt + Przerwij + + + Shift+F5 + Shift+F5 + + + Continue + Kontynuuj + + + F5 + F5 + + + Step Into + Wskocz do wnętrza + + + F11 + F11 + + + Step Over + Przeskocz + + + F10 + F10 + + + Step Out + Wyskocz na zewnątrz + + + Shift+F11 + Shift+F11 + + + Run to Cursor + Uruchom do kursora + + + Ctrl+F10 + Ctrl+F10 + + + Run to New Script + Uruchom do nowego skryptu + + + Toggle Breakpoint + Przełącz ustawienie pułapki + + + F9 + F9 + + + Clear Debug Output + Wyczyść wyjście debuggera + + + Clear Error Log + Wyczyść log z błędami + + + Clear Console + Wyczyść konsolę + + + &Find in Script... + &Znajdź w skrypcie... + + + Ctrl+F + Ctrl+F + + + Find &Next + Znajdź &następne + + + F3 + F3 + + + Find &Previous + Znajdź &poprzednie + + + Shift+F3 + Shift+F3 + + + Ctrl+G + Ctrl+G + + + Debug + Debuguj + + + + QScriptDebuggerCodeFinderWidget + + Close + Zamknij + + + Previous + Poprzednie + + + Next + Następne + + + Case Sensitive + Uwzględniaj wielkość liter + + + Whole words + Całe słowa + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Przeszukano od początku + + + + QScriptDebuggerLocalsModel + + Name + Nazwa + + + Value + Wartość + + + + QScriptDebuggerStackModel + + Level + Poziom + + + Name + Nazwa + + + Location + Położenie + + + + QScriptEdit + + Toggle Breakpoint + Przełącz ustawienie pułapki + + + Disable Breakpoint + Wyłącz pułapkę + + + Enable Breakpoint + Włącz pułapkę + + + Breakpoint Condition: + Warunek dla pułapki: + + + + QScriptEngineDebugger + + Loaded Scripts + Załadowane skrypty + + + Breakpoints + Pułapki + + + Stack + Stos + + + Locals + Zmienne lokalne + + + Console + Konsola + + + Debug Output + Wyjście debuggera + + + Error Log + Log z błędami + + + Search + Szukaj + + + View + Widok + + + Qt Script Debugger + Debugger Qt Script + + + + QScriptNewBreakpointWidget + + Close + Zamknij + + + + QScrollBar + + Scroll here + Przewiń tutaj + + + Left edge + Lewa krawędź + + + Top + Do góry + + + Right edge + Prawa krawędź + + + Bottom + W dół + + + Page left + Strona w lewo + + + Page up + Strona do góry + + + Page right + Strona w prawo + + + Page down + Strona w dół + + + Scroll left + Przewiń w lewo + + + Scroll up + Przewiń do góry + + + Scroll right + Przewiń w prawo + + + Scroll down + Przewiń w dół + + + Line up + Linia w górę + + + Position + Pozycja + + + Line down + Linia w dół + + + + QSharedMemory + + %1: create size is less then 0 + %1: rozmiar przy tworzeniu mniejszy od 0 + + + %1: unable to lock + %1: nie można zablokować + + + %1: unable to unlock + %1: nie można odblokować + + + %1: permission denied + %1: brak dostępu + + + %1: already exists + %1: już istnieje + + + %1: doesn't exists + %1: nie istnieje + + + %1: out of resources + %1: zasoby wyczerpane + + + %1: unknown error %2 + %1: nieznany błąd %2 + + + %1: key is empty + %1: klucz jest pusty + + + %1: ftok failed + %1: wystąpił błąd w funkcji ftok() + + + %1: unable to make key + %1: nie można utworzyć klucza + + + %1: doesn't exist + %1: nie istnieje + + + %1: UNIX key file doesn't exist + %1: unixowy plik z kluczem nie istnieje + + + %1: system-imposed size restrictions + %1: ograniczenia rozmiarów narzucone przez system + + + %1: not attached + %1: niedołączony + + + %1: invalid size + %1: niepoprawny rozmiar + + + %1: key error + %1: błąd klucza + + + %1: size query failed + %1: zapytanie o rozmiar nie powiodło się + + + %1: unable to set key on lock + %1: nie można ustawić klucza na zablokowanym segmencie pamięci współdzielonej + + + + QShortcut + + Space + Spacja + + + Esc + Esc + + + Tab + Tabulator + + + Backtab + Backtab + + + Backspace + Backspace + + + Return + Powrót + + + Enter + Enter + + + Ins + Ins + + + Del + Del + + + Pause + Pauza + + + Print + Wydrukuj + + + SysReq + SysReq + + + Home + Home + + + End + End + + + Left + Lewo + + + Up + Góra + + + Right + Prawo + + + Down + Dół + + + PgUp + PgUp + + + PgDown + PgDown + + + CapsLock + CapsLock + + + NumLock + NumLock + + + ScrollLock + ScrollLock + + + Menu + Menu + + + Help + Pomoc + + + Back + Back + + + Forward + Do przodu + + + Stop + Zatrzymaj + + + Refresh + Odśwież + + + Volume Down + Przycisz + + + Volume Mute + Wycisz + + + Volume Up + Zrób głośniej + + + Bass Boost + Wzmocnienie basów + + + Bass Up + Basy w górę + + + Bass Down + Basy w dół + + + Treble Up + Soprany w górę + + + Treble Down + Soprany w dół + + + Media Play + Odtwarzaj + + + Media Stop + Zatrzymaj + + + Media Previous + Poprzednia ścieżka + + + Media Next + Następna ścieżka + + + Media Record + Nagrywaj + + + Favorites + Ulubione + + + Search + Szukaj + + + Standby + Tryb oczekiwania + + + Open URL + Otwórz adres + + + Launch Mail + Uruchom program pocztowy + + + Launch Media + Uruchom przeglądarkę mediów + + + Launch (0) + Uruchom (0) + + + Launch (1) + Uruchom (1) + + + Launch (2) + Uruchom (2) + + + Launch (3) + Uruchom (3) + + + Launch (4) + Uruchom (4) + + + Launch (5) + Uruchom (5) + + + Launch (6) + Uruchom (6) + + + Launch (7) + Uruchom (7) + + + Launch (8) + Uruchom (8) + + + Launch (9) + Uruchom (9) + + + Launch (A) + Uruchom (A) + + + Launch (B) + Uruchom (B) + + + Launch (C) + Uruchom (C) + + + Launch (D) + Uruchom (D) + + + Launch (E) + Uruchom (E) + + + Launch (F) + Uruchom (F) + + + Monitor Brightness Up + Zwiększ jasność monitora + + + Monitor Brightness Down + Zmniejsz jasność monitora + + + Keyboard Light On/Off + Włącz/wyłącz podświetlenie klawiatury + + + Keyboard Brightness Up + Zwiększ jasność klawiatury + + + Keyboard Brightness Down + Zmniejsz jasność klawiatury + + + Power Off + Wyłączenie zasilania + + + Wake Up + ## + + + Eject + Wysuń + + + Screensaver + Wygaszacz ekranu + + + WWW + WWW + + + Sleep + ## + + + LightBulb + Żarówka + + + Shop + Sklep + + + History + Historia + + + Add Favorite + Dodaj do ulubionych + + + Hot Links + Popularne łącza + + + Adjust Brightness + Ustaw jasność + + + Finance + Finanse + + + Community + Społeczność + + + Audio Rewind + Przewijanie do tyłu + + + Back Forward + ## + + + Application Left + ## + + + Application Right + ## + + + Book + Książka + + + CD + CD + + + Calculator + Kalkulator + + + Clear + Wyczyść + + + Clear Grab + ## + + + Close + Zamknij + + + Copy + Skopiuj + + + Cut + Wytnij + + + Display + Wyświetlacz + + + DOS + DOS + + + Documents + Dokumenty + + + Spreadsheet + Arkusz kalkulacyjny + + + Browser + Przeglądarka + + + Game + Gra + + + Go + Przejdź + + + iTouch + iTouch + + + Logoff + Wyloguj + + + Market + Rynek + + + Meeting + Spotkanie + + + Keyboard Menu + Menu klawiatury + + + Menu PB + Menu PG + + + My Sites + Moje strony + + + News + Wiadomości + + + Home Office + ## + + + Option + Opcje + + + Paste + Wklej + + + Phone + Telefon + + + Reply + Odpowiedz + + + Reload + Przeładuj + + + Rotate Windows + Obróć okna + + + Rotation PB + Obrót PB + + + Rotation KB + Obrót KB + + + Save + Zachowaj + + + Send + Wyślij + + + Spellchecker + Funkcja sprawdzania pisowni + + + Split Screen + Podziel ekran + + + Support + Pomoc techniczna + + + Task Panel + Panel zadań + + + Terminal + Terminal + + + Tools + Narzędzia + + + Travel + Podróże + + + Video + Wideo + + + Word Processor + Edytor tekstów + + + XFer + XFer + + + Zoom In + Powiększ + + + Zoom Out + Pomniejsz + + + Away + ## + + + Messenger + Messenger + + + WebCam + WebCam + + + Mail Forward + Przesyłanie wiadomości + + + Pictures + Zdjęcia + + + Music + Muzyka + + + Battery + Bateria + + + Bluetooth + Bluetooth + + + Wireless + Bezprzewodowy + + + Ultra Wide Band + Ultraszerokie pasmo + + + Audio Forward + Przewijanie do przodu + + + Audio Repeat + Powtarzanie + + + Audio Random Play + Odtwarzanie losowe + + + Subtitle + Napisy + + + Audio Cycle Track + ## + + + Time + Czas + + + View + Widok + + + Top Menu + Menu główne + + + Suspend + Wstrzymaj + + + Hibernate + Hibernuj + + + Print Screen + Wydrukuj zawartość ekranu + + + Page Up + Strona w dół + + + Page Down + Strona do góry + + + Caps Lock + Caps Lock + + + Num Lock + Num Lock + + + Number Lock + Number Lock + + + Scroll Lock + Scroll Lock + + + Insert + Insert + + + Delete + Delete + + + Escape + Escape + + + System Request + Żądanie systemu + + + Select + Wybierz + + + Yes + Tak + + + No + Nie + + + Context1 + Kontekst1 + + + Context2 + Kontekst2 + + + Context3 + Kontekst3 + + + Context4 + Kontekst4 + + + Call + Wywołaj + + + Hangup + Zawieś + + + Flip + Odwróć + + + Ctrl + Ctrl + + + Shift + Shift + + + Alt + Alt + + + Meta + Meta + + + + + + + + + F%1 + F%1 + + + Home Page + Strona startowa + + + + QSlider + + Page left + Strona w lewo + + + Page up + Strona do góry + + + Position + Położenie + + + Page right + Strona w prawo + + + Page down + Strona w dół + + + + QSocks5SocketEngine + + Connection to proxy refused + Odmowa połączenia z pośrednikiem + + + Connection to proxy closed prematurely + Przedwczesne zakończenie połączenia z pośrednikiem + + + Proxy host not found + Nie odnaleziono hosta pośredniczącego + + + Connection to proxy timed out + Przekroczony czas połączenia do pośrednika + + + Proxy authentication failed + Autoryzacja pośrednika zakończona błędem + + + Proxy authentication failed: %1 + Autoryzacja pośrednika zakończona błędem: %1 + + + SOCKS version 5 protocol error + Błąd protokołu SOCKS wersji 5 + + + General SOCKSv5 server failure + Generalny błąd serwera SOCKS wersji 5 + + + Connection not allowed by SOCKSv5 server + Połączenie niedozwolone przez serwer SOCKS wersji 5 + + + TTL expired + TTL stracił ważność + + + SOCKSv5 command not supported + Nieobsługiwana komenda SOCKS wersji 5 + + + Address type not supported + Nieobsługiwany typ adresu + + + Unknown SOCKSv5 proxy error code 0x%1 + Nieznany kod błędu (0x%1) pośrednika SOCKS wersji 5 + + + Network operation timed out + Przekroczony czas operacji sieciowej + + + + QSoftKeyManager + + Ok + OK + + + Select + Wybierz + + + Done + Zrobione + + + Options + Opcje + + + Cancel + Anuluj + + + Exit + Wyjście + + + + QSpinBox + + More + Więcej + + + Less + Mniej + + + + QSql + + Delete + Skasuj + + + Delete this record? + Skasować ten rekord? + + + Yes + Tak + + + No + Nie + + + Insert + Wstaw + + + Update + Uaktualnij + + + Save edits? + Zachować zmiany? + + + Cancel + Anuluj + + + Confirm + Potwierdź + + + Cancel your edits? + Anulować zmiany? + + + + QSslSocket + + Unable to write data: %1 + + + + Unable to decrypt data: %1 + Nie można odszyfrować danych: %1 + + + Error while reading: %1 + Błąd podczas czytania: %1 + + + Error during SSL handshake: %1 + Błąd podczas nawiązania sesji SSL: %1 + + + Error creating SSL context (%1) + Błąd tworzenia kontekstu (%1) + + + Invalid or empty cipher list (%1) + Niepoprawna lub pusta lista szyfrów (%1) + + + Private key does not certify public key, %1 + Prywatny klucz nie uwiarygodnia publicznego, %1 + + + Error creating SSL session, %1 + Błąd tworzenia sesji SSL, %1 + + + Error creating SSL session: %1 + Błąd tworzenia sesji SSL: %1 + + + Cannot provide a certificate with no key, %1 + Nie można dostarczyć certyfikatu bez klucza, %1 + + + Error loading local certificate, %1 + Błąd ładowania lokalnego certyfikatu, %1 + + + Error loading private key, %1 + Błąd ładowania prywatnego klucza, %1 + + + No error + Brak błędu + + + The issuer certificate could not be found + Nie można odnaleźć wydawcy certyfikatu + + + The certificate signature could not be decrypted + Nie można odszyfrować podpisu certyfikatu + + + The public key in the certificate could not be read + Nie można odczytać publicznego klucza w certyfikacie + + + The signature of the certificate is invalid + Niepoprawny podpis certyfikatu + + + The certificate is not yet valid + Certyfikat nie jest jeszcze ważny + + + The certificate has expired + Certyfikat utracił ważność + + + The certificate's notBefore field contains an invalid time + Pole "notBefore" certyfikatu zawiera niepoprawną datę + + + The certificate's notAfter field contains an invalid time + Pole "notAfter" certyfikatu zawiera niepoprawną datę + + + The certificate is self-signed, and untrusted + Certyfikat z podpisem własnym, niezaufany + + + The root certificate of the certificate chain is self-signed, and untrusted + Główny certyfikat łańcucha certyfikatów ma własny podpis i jest niezaufany + + + The issuer certificate of a locally looked up certificate could not be found + Nie można znaleźć certyfikatu wydawcy wyszukanego lokalnie + + + No certificates could be verified + Nie można zweryfikować certyfikatów + + + One of the CA certificates is invalid + Jeden z certyfikatów urzędu certyfikacji jest nieprawidłowy + + + The basicConstraints path length parameter has been exceeded + Długość ścieżki określona w podstawowych warunkach ograniczających została przekroczona + + + The supplied certificate is unsuitable for this purpose + Dostarczony certyfikat jest nieodpowiedni do tego celu + + + The root CA certificate is not trusted for this purpose + Główny certyfikat urzędu certyfikacji nie jest zaufany do tego celu + + + The root CA certificate is marked to reject the specified purpose + Główny certyfikat urzędu certyfikacji jest wyznaczony do odrzucania określonego celu + + + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + Certyfikat wydawcy obecnego kandydata został odrzucony, ponieważ nazwa podmiotu nie odpowiadała nazwie wydawcy obecnego certyfikatu + + + The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate + Certyfikat wydawcy obecnego kandydata został odrzucony, ponieważ nazwa wydawcy i przedstawiony numer seryjny nie odpowiadały identyfikatorowi klucza urzędu certyfikacji obecnego certyfikatu + + + The peer did not present any certificate + Element równorzędny nie przedstawił żadnego certyfikatu + + + The host name did not match any of the valid hosts for this certificate + Nazwa hosta nie odpowiadała żadnemu z prawidłowych hostów tego certyfikatu + + + Unknown error + + + + + QStateMachine + + Missing initial state in compound state '%1' + + + + Missing default state in history state '%1' + + + + No common ancestor for targets and source of transition from state '%1' + + + + Unknown error + + + + + QSystemSemaphore + + %1: does not exist + + + + %1: out of resources + + + + %1: permission denied + + + + %1: already exists + + + + %1: unknown error %2 + + + + + QTDSDriver + + Unable to open connection + + + + Unable to use database + + + + + QTabBar + + Scroll Left + + + + Scroll Right + + + + + QTcpServer + + Operation on socket is not supported + + + + + QTextControl + + &Undo + + + + &Redo + + + + Cu&t + + + + &Copy + + + + Copy &Link Location + + + + &Paste + + + + Delete + + + + Select All + + + + + QToolButton + + Press + + + + Open + + + + + QUdpSocket + + This platform does not support IPv6 + Ta platforma nie obsługuje IPv6 + + + + QUndoGroup + + Undo + Cofnij + + + Redo + Przywróć + + + + QUndoModel + + <empty> + <pusty> + + + + QUndoStack + + Undo + Cofnij + + + Redo + Przywróć + + + + QUnicodeControlCharacterMenu + + LRM Left-to-right mark + LRM znacznik od prawej do lewej + + + RLM Right-to-left mark + RLM Znacznik od prawej do lewej + + + ZWJ Zero width joiner + ZWJ Łącznik zerowej długości + + + ZWNJ Zero width non-joiner + ZWNJ Rozdzielnik zerowej długości + + + ZWSP Zero width space + ZWSP Przerwa zerowej długości + + + LRE Start of left-to-right embedding + LRE Początek osadzania od lewej do prawej + + + RLE Start of right-to-left embedding + RLE Początek osadzania od prawej do lewej + + + LRO Start of left-to-right override + LRO Początek nadpisania od lewej do prawej + + + RLO Start of right-to-left override + RLO Początek nadpisania od prawej do lewej + + + PDF Pop directional formatting + PDF Formatowanie kierunkowe pop + + + Insert Unicode control character + Wstaw znak kontroli Unicode + + + + QWebFrame + + Request cancelled + Prośba anulowana + + + Request blocked + Prośba zablokowana + + + Cannot show URL + Nie można pokazać URL + + + Frame load interrupted by policy change + Ładowanie ramki przerwane przez zmianę strategii + + + Cannot show mimetype + Nie można pokazać typu MIME + + + File does not exist + Plik nie istnieje + + + + QWebPage + + Submit + default label for Submit buttons in forms on web pages + Wyślij + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + Wyślij + + + Reset + default label for Reset buttons in forms on web pages + Wyczyść + + + Choose File + title for file button used in HTML forms + Wybierz plik + + + No file selected + text to display in file button used in HTML forms when no file is selected + Nie zaznaczono pliku + + + Open in New Window + Open in New Window context menu item + Otwórz w nowym oknie + + + Save Link... + Download Linked File context menu item + Zachowaj odsyłacz... + + + Copy Link + Copy Link context menu item + Skopiuj odsyłacz + + + Open Image + Open Image in New Window context menu item + Otwórz obrazek + + + Save Image + Download Image context menu item + Zachowaj obrazek + + + Copy Image + Copy Link context menu item + Skopiuj obrazek + + + Open Frame + Open Frame in New Window context menu item + Otwórz ramkę + + + Copy + Copy context menu item + Skopiuj + + + Go Back + Back context menu item + Wróć + + + Go Forward + Forward context menu item + Idź dalej + + + Stop + Stop context menu item + Zatrzymaj + + + Reload + Reload context menu item + Przeładuj + + + Cut + Cut context menu item + Wytnij + + + Paste + Paste context menu item + Wklej + + + No Guesses Found + No Guesses Found context menu item + Nie odnaleziono podpowiedzi + + + Ignore + Ignore Spelling context menu item + Zignoruj + + + Add To Dictionary + Learn Spelling context menu item + Dodaj do słownika + + + Search The Web + Search The Web context menu item + Wyszukaj w sieci + + + Look Up In Dictionary + Look Up in Dictionary context menu item + Poszukaj w słowniku + + + Open Link + Open Link context menu item + Otwórz odsyłacz + + + Ignore + Ignore Grammar context menu item + Zignoruj + + + Spelling + Spelling and Grammar context sub-menu item + Pisownia + + + Show Spelling and Grammar + menu item title + Pokaż pisownię i gramatykę + + + Hide Spelling and Grammar + menu item title + Schowaj pisownię i gramatykę + + + Check Spelling + Check spelling context menu item + Sprawdź pisownię + + + Check Spelling While Typing + Check spelling while typing context menu item + Sprawdzaj pisownię podczas pisania + + + Check Grammar With Spelling + Check grammar with spelling context menu item + Sprawdzaj gramatykę wraz z pisownią + + + Fonts + Font context sub-menu item + Czcionki + + + Bold + Bold context menu item + Pogrubiony + + + Italic + Italic context menu item + Kursywa + + + Underline + Underline context menu item + Podkreślenie + + + Outline + Outline context menu item + Kontur + + + Direction + Writing direction context sub-menu item + Kierunek + + + Text Direction + Text direction context sub-menu item + Kierunek tekstu + + + Default + Default writing direction context menu item + Domyślny + + + Left to Right + Left to Right context menu item + Z lewej na prawą + + + Right to Left + Right to Left context menu item + Z prawej na lewą + + + Loading... + Media controller status message when the media is loading + Ładowanie... + + + Live Broadcast + Media controller status message when watching a live broadcast + Transmisja na żywo + + + Audio Element + Media controller element + Element dźwiękowy + + + Video Element + Media controller element + Element wideo + + + Mute Button + Media controller element + Przycisk wyłączania głosu + + + Unmute Button + Media controller element + Przycisk włączania głosu + + + Play Button + Media controller element + Przycisk odtwarzania + + + Pause Button + Media controller element + Przycisk pauzy + + + Slider + Media controller element + Suwak + + + Slider Thumb + Media controller element + Uchwyt suwaka + + + Rewind Button + Media controller element + Przycisk przewijania + + + Return to Real-time Button + Media controller element + Przycisk powrotu do czasu rzeczywistego + + + Elapsed Time + Media controller element + Czas który upłynął + + + Remaining Time + Media controller element + Czas który pozostał + + + Status Display + Media controller element + Wyświetlacz stanu + + + Fullscreen Button + Media controller element + Przycisk trybu pełnoekranowego + + + Seek Forward Button + Media controller element + Przycisk przeszukiwania do przodu + + + Seek Back Button + Media controller element + Przycisk przeszukiwania do tyłu + + + Audio element playback controls and status display + Media controller element + Kontrolki odtwarzania dźwięku i wyświetlacz stanu + + + Video element playback controls and status display + Media controller element + Kontrolki odtwarzania wideo i wyświetlacz stanu + + + Mute audio tracks + Media controller element + Wyłącz ścieżkę dźwiękową + + + Unmute audio tracks + Media controller element + Włącz ścieżkę dźwiękową + + + Begin playback + Media controller element + Rozpocznij odtwarzanie + + + Pause playback + Media controller element + Wstrzymaj odtwarzanie + + + Movie time scrubber + Media controller element + Suwak czasu + + + Movie time scrubber thumb + Media controller element + Uchwyt suwaka czasu + + + Rewind movie + Media controller element + Przewiń film + + + Return streaming movie to real-time + Media controller element + Przywróć przesyłanie filmu do czasu rzeczywistego + + + Current movie time + Media controller element + Czas bieżącego filmu + + + Remaining movie time + Media controller element + Czas do końca filmu + + + Current movie status + Media controller element + Stan bieżącego filmu + + + Play movie in full-screen mode + Media controller element + Odtwarzaj film w trybie pełnoekranowym + + + Seek quickly back + Media controller element + Przeszukaj szybko do tyłu + + + Seek quickly forward + Media controller element + Przeszukaj szybko do przodu + + + Indefinite time + Media time description + Nieokreślony czas + + + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1 dni %2 godzin %3 minut %4 sekund + + + %1 hours %2 minutes %3 seconds + Media time description + %1 godzin %2 minut %3 sekund + + + %1 minutes %2 seconds + Media time description + %1 minut %2 sekund + + + %1 seconds + Media time description + %1 sekund + + + Inspect + Inspect Element context menu item + Zwiedzaj + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + Brak ostatnich wyszukiwań + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + Ostatnie wyszukiwania + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + Wyczyść ostatnie wyszukiwania + + + Unknown + Unknown filesize FTP directory listing item + Nieznany + + + Web Inspector - %2 + Wizytator sieciowy - %2 + + + %1 (%2x%3 pixels) + Title string for images + %1 (%2x%3 piksli) + + + Bad HTTP request + Niepoprawna komenda HTTP + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + To jest indeks wyszukiwawczy. Podaj słowa do wyszukania: + + + Scroll here + Przewiń tutaj + + + Left edge + Lewa krawędź + + + Top + Do góry + + + Right edge + Prawa krawędź + + + Bottom + W dół + + + Page left + Strona w lewo + + + Page up + Strona do góry + + + Page right + Strona w prawo + + + Page down + Strona w dół + + + Scroll left + Przewiń w lewo + + + Scroll up + Przewiń do góry + + + Scroll right + Przewiń w prawo + + + Scroll down + Przewiń w dół + + + %n file(s) + number of chosen file + + %n plik + %n pliki + %n plików + + + + JavaScript Alert - %1 + Ostrzeżenie JavaScript - %1 + + + JavaScript Confirm - %1 + Potwierdzenie JavaScript - %1 + + + JavaScript Prompt - %1 + Zachęta JavaScript - %1 + + + JavaScript Problem - %1 + Problem JavaScript - %1 + + + The script on this page appears to have a problem. Do you want to stop the script? + Skrypt na tej stronie nie działa poprawnie. Czy chcesz przerwać ten skrypt? + + + Move the cursor to the next character + Przesuń kursor do następnego znaku + + + Move the cursor to the previous character + Przesuń kursor do poprzedniego znaku + + + Move the cursor to the next word + Przesuń kursor do następnego słowa + + + Move the cursor to the previous word + Przesuń kursor do poprzedniego słowa + + + Move the cursor to the next line + Przesuń kursor do następnej linii + + + Move the cursor to the previous line + Przesuń kursor do poprzedniej linii + + + Move the cursor to the start of the line + Przesuń kursor do początku linii + + + Move the cursor to the end of the line + Przesuń kursor do końca linii + + + Move the cursor to the start of the block + Przesuń kursor do początku bloku + + + Move the cursor to the end of the block + Przesuń kursor do końca bloku + + + Move the cursor to the start of the document + Przesuń kursor do początku dokumentu + + + Move the cursor to the end of the document + Przesuń kursor do końca dokumentu + + + Select all + Zaznacz wszystko + + + Select to the next character + Zaznacz do następnego znaku + + + Select to the previous character + Zaznacz do poprzedniego znaku + + + Select to the next word + Zaznacz do następnego słowa + + + Select to the previous word + Zaznacz do poprzedniego słowa + + + Select to the next line + Zaznacz do następnej linii + + + Select to the previous line + Zaznacz do poprzedniej linii + + + Select to the start of the line + Zaznacz do początku linii + + + Select to the end of the line + Zaznacz do końca linii + + + Select to the start of the block + Zaznacz do początku bloku + + + Select to the end of the block + Zaznacz do końca bloku + + + Select to the start of the document + Zaznacz do początku dokumentu + + + Select to the end of the document + Zaznacz do końca dokumentu + + + Delete to the start of the word + Skasuj do początku słowa + + + Delete to the end of the word + Skasuj do końca słowa + + + Insert a new paragraph + Wstaw nowy paragraf + + + Insert a new line + Wstaw nową linię + + + Paste and Match Style + Wklej i dopasuj styl + + + Remove formatting + Usuń formatowanie + + + Strikethrough + Przekreślenie + + + Subscript + Indeks dolny + + + Superscript + Indeks górny + + + Insert Bulleted List + Wstaw listę wypunktowaną + + + Insert Numbered List + Wstaw listę ponumerowaną + + + Indent + Zwiększ wcięcie + + + Outdent + Zmniejsz wcięcie + + + Center + Wyśrodkuj + + + Justify + Wyjustuj + + + Align Left + Wyrównaj do lewej + + + Align Right + Wyrównaj do prawej + + + + QWhatsThisAction + + What's This? + Co to jest? + + + + QWidget + + * + * + + + + QWizard + + Cancel + Anuluj + + + Help + Pomoc + + + < &Back + < &Wstecz + + + &Finish + &Zakończ + + + &Help + &Pomoc + + + Go Back + Wróć + + + Continue + Kontynuuj + + + Commit + Dokonaj + + + Done + Wykonano + + + &Next + &Dalej + + + &Next > + &Dalej > + + + + QWorkspace + + &Restore + &Przywróć + + + &Move + &Przenieś + + + &Size + &Rozmiar + + + Mi&nimize + Zmi&nimalizuj + + + Ma&ximize + Zma&ksymalizuj + + + &Close + &Zamknij + + + Stay on &Top + Pozostaw na &wierzchu + + + Minimize + Zminimalizuj + + + Restore Down + Przywróć pod spód + + + Close + Zamknij + + + Sh&ade + &Zwiń + + + %1 - [%2] + %1 - [%2] + + + &Unshade + R&ozwiń + + + + QXml + + no error occurred + nie pojawił się żaden błąd + + + error triggered by consumer + błąd wywołany przez konsumenta + + + unexpected end of file + nieoczekiwany koniec pliku + + + more than one document type definition + więcej niż jedna definicja typu dokumentu + + + error occurred while parsing element + wystąpił błąd podczas parsowania elementu + + + tag mismatch + niepoprawny tag + + + error occurred while parsing content + wystąpił błąd podczas parsowania zawartości + + + unexpected character + nieoczekiwany znak + + + invalid name for processing instruction + niepoprawna nazwa dla instrukcji przetwarzającej + + + version expected while reading the XML declaration + oczekiwana wersja podczas czytania deklaracji XML + + + wrong value for standalone declaration + błędna wartość dla deklaracji "standalone" + + + error occurred while parsing document type definition + wystąpił błąd podczas parsowania typu definicji dokumentu + + + letter is expected + oczekiwana jest litera + + + error occurred while parsing comment + wystąpił błąd podczas parsowania komentarza + + + error occurred while parsing reference + wystąpił błąd podczas parsowania odwołania + + + internal general entity reference not allowed in DTD + odwołanie do jednostki ogólnej wewnętrznej nie dozwolone w DTD + + + external parsed general entity reference not allowed in attribute value + odwołanie do jednostki ogólnej zewnętrznie przetworzonej nie dozwolone dla wartości atrybutu + + + external parsed general entity reference not allowed in DTD + odwołanie do jednostki ogólnej zewnętrznie przetworzonej nie dozwolone w DTD + + + unparsed entity reference in wrong context + odwołanie do jednostki nieprzetworzonej w złym kontekście + + + recursive entities + jednostki rekurencyjne + + + error in the text declaration of an external entity + błąd w deklaracji "text" zewnętrznej jednostki + + + encoding declaration or standalone declaration expected while reading the XML declaration + oczekiwano deklaracji "encoding" lub "standalone" podczas odczytywania deklaracji XML + + + standalone declaration expected while reading the XML declaration + deklaracja "standalone" oczekiwana podczas czytania deklaracji XML + + + + QXmlPatternistCLI + + Warning in %1, at line %2, column %3: %4 + Ostrzeżenie w %1, wiersz %2, kolumna %3: %4 + + + Warning in %1: %2 + Ostrzeżenie w %1: %2 + + + Unknown location + Nieznana lokalizacja + + + Error %1 in %2, at line %3, column %4: %5 + Błąd %1 w %2, wiersz %3, kolumna %4: %5 + + + Error %1 in %2: %3 + Błąd %1 w %2: %3 + + + + QXmlStream + + Extra content at end of document. + Dodatkowa treść na końcu dokumentu. + + + Invalid entity value. + Niepoprawna wartość jednostki. + + + Invalid XML character. + Niepoprawny znak XML. + + + Sequence ']]>' not allowed in content. + Ciąg ']]>' niedozwolony w treści. + + + Namespace prefix '%1' not declared + Przedrostek przestrzeni nazw '%1' nie został zadeklarowany + + + Attribute redefined. + Atrybut zdefiniowany wielokrotnie. + + + Unexpected character '%1' in public id literal. + Nieoczekiwany znak '%1' w publicznej stałej znakowej. + + + Invalid XML version string. + Niepoprawna wersja XML. + + + Unsupported XML version. + Nieobsługiwana wersja XML. + + + %1 is an invalid encoding name. + %1 jest niepoprawną nazwą kodowania. + + + Encoding %1 is unsupported + Kodowanie %1 jest nieobsługiwane + + + Standalone accepts only yes or no. + Tylko wartości "tak" lub "nie" są akceptowane przez "standalone". + + + Invalid attribute in XML declaration. + Niepoprawny atrybut w deklaracji XML. + + + Premature end of document. + Przedwczesne zakończenie dokumentu. + + + Invalid document. + Niepoprawny dokument. + + + Expected + Oczekiwano + + + , but got ' + , ale otrzymano ' + + + Unexpected ' + Nieoczekiwany ' + + + Expected character data. + Oczekiwana dana znakowa. + + + Recursive entity detected. + Wykryto jednostkę rekurencyjną. + + + Start tag expected. + Oczekiwano tagu start. + + + XML declaration not at start of document. + Deklaracja XML nie jest na początku dokumentu. + + + NDATA in parameter entity declaration. + NDATA w deklaracji parametru obiektu. + + + %1 is an invalid processing instruction name. + %1 jest niepoprawną nazwą instrukcji przetwarzającej. + + + Invalid processing instruction name. + Niepoprawna nazwa instrukcji przetwarzającej. + + + Illegal namespace declaration. + Niepoprawna deklaracja przestrzeni nazw. + + + Invalid XML name. + Niepoprawna nazwa XML. + + + Opening and ending tag mismatch. + Niezgodne tagi początku i końca. + + + Reference to unparsed entity '%1'. + Odwołanie do nieprzetworzonej jednostki '%1'. + + + Entity '%1' not declared. + Jednostka '%1' nie zadeklarowana. + + + Reference to external entity '%1' in attribute value. + Odwołanie do zewnętrznej jednostki '%1' jako wartość atrybutu. + + + Invalid character reference. + Niepoprawny znak odwołania. + + + Encountered incorrectly encoded content. + Natrafiono na niepoprawnie zakodowaną treść. + + + The standalone pseudo attribute must appear after the encoding. + Pseudo atrybut "standalone" musi pojawić się po "encoding". + + + %1 is an invalid PUBLIC identifier. + %1 jest niepoprawnym publicznym identyfikatorem. + + + + QtXmlPatterns + + At least one component must be present. + Przynajmniej jeden komponent musi być obecny. + + + %1 is not a valid value of type %2. + %1 nie jest poprawną wartością dla typu %2. + + + When casting to %1 from %2, the source value cannot be %3. + W rzutowaniu %1 na %2 wartość źródłowa nie może być %3. + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + Efektywna wartość boolowska (EBV) nie może być obliczona dla sekwencji zawierającej dwie lub więcej wartości atomowe. + + + The data of a processing instruction cannot contain the string %1 + Dane instrukcji przetwarzania nie mogą zawierać ciągu %1 + + + %1 is an invalid %2 + %1 jest niepoprawnym %2 + + + %1 is not a valid XML 1.0 character. + %1 nie jest poprawnym znakiem XML 1.0. + + + %1 was called. + Wywołano %1. + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + W ciągu zastępczym, po %1 musi następować przynajmniej jedna cyfra + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + W ciągu zastępczym, %1 może być użyte tylko do zabezpieczenia samej siebie lub %2, nigdy %3 + + + %1 matches newline characters + %1 dopasowało znak nowej linii + + + Matches are case insensitive + Dopasowania uwzględniają wielkość liter + + + %1 is an invalid regular expression pattern: %2 + %1 jest niepoprawnym wzorcem wyrażenia regularnego: %2 + + + It will not be possible to retrieve %1. + Nie będzie można odzyskać %1. + + + The default collection is undefined + Domyślna kolekcja jest niezdefiniowana + + + %1 cannot be retrieved + + + + The item %1 did not match the required type %2. + Element %1 nie został dopasowany do wymaganego typu %2. + + + %1 is an unknown schema type. + %1 jest nieznanym typem schematu. + + + A template with name %1 has already been declared. + Szablon o nazwie %1 został już zadeklarowany. + + + Only one %1 declaration can occur in the query prolog. + Tylko jedna deklaracja %1 może się pojawić w prologu zapytania. + + + The initialization of variable %1 depends on itself + Inicjalizacja zmiennej %1 zależy od niej samej + + + The variable %1 is unused + Zmienna %1 jest nieużywana + + + Version %1 is not supported. The supported XQuery version is 1.0. + Wersja %1 nie jest obsługiwana. Obsługiwaną wersją XQuery jest wersja 1.0. + + + No function with signature %1 is available + Żadna funkcja w postaci %1 nie jest dostępna + + + It is not possible to redeclare prefix %1. + Nie jest możliwe ponowne zadeklarowanie przedrostka %1. + + + Prefix %1 is already declared in the prolog. + Przedrostek %1 jest już zadeklarowany w prologu. + + + The name of an option must have a prefix. There is no default namespace for options. + Nazwa opcji musi posiadać przedrostek. Nie istnieje domyślna przestrzeń nazw dla opcji. + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + Cecha "Import schematu" nie jest obsługiwana, dlatego deklaracje %1 nie mogą pojawić. + + + The target namespace of a %1 cannot be empty. + Docelowa przestrzeń nazw dla %1 nie może być pusta. + + + The module import feature is not supported + Cecha "Import modułu" nie jest obsługiwana + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + Przestrzeń nazw dla funkcji zdefiniowanej przez użytkownika w module bibliotecznym musi odpowiadać przestrzeni nazw modułu. Powinna to być %1 zamiast %2 + + + A function already exists with the signature %1. + Funkcja w postaci %1 już istnieje. + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + Zewnętrzne funkcje nie są obsługiwane. Wszystkie obsługiwane funkcje mogą być używane bezpośrednio, bez ich uprzedniego deklarowania jako zewnętrzne + + + The %1-axis is unsupported in XQuery + Oś %1 nie jest obsługiwana w XQuery + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + Przestrzeń nazw URI nie może być pustym ciągiem w powiązaniu z przedrostkiem, %1. + + + %1 is an invalid namespace URI. + %1 jest niepoprawną przestrzenią nazw URI. + + + It is not possible to bind to the prefix %1 + Nie jest możliwe powiązanie z przedrostkiem %1 + + + Two namespace declaration attributes have the same name: %1. + Atrybuty deklaracji przestrzeni nazw mają tą samą nazwę: %1. + + + The namespace URI must be a constant and cannot use enclosed expressions. + Przestrzeń nazw URI nie może być stałą i nie może używać zawartych w niej wyrażeń. + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + %1 nie jest wewnątrz zakresu deklaracji atrybutów. Zwróć uwagę że importowanie schematów nie jest obsługiwane. + + + empty + pusty + + + zero or one + zero lub jeden + + + exactly one + dokładnie jeden + + + one or more + jeden lub więcej + + + zero or more + zero lub więcej + + + The focus is undefined. + Focus jest niezdefiniowany. + + + An attribute by name %1 has already been created. + Atrybut o nazwie %1 został już utworzony. + + + Network timeout. + Przekroczony czas połączenia. + + + Element %1 can't be serialized because it appears outside the document element. + Element %1 nie może być zserializowany ponieważ pojawił się poza elementem "document". + + + Year %1 is invalid because it begins with %2. + Rok %1 jest niepoprawny ponieważ rozpoczyna się: %2. + + + Day %1 is outside the range %2..%3. + Dzień %1 jest poza zakresem %2..%3. + + + Month %1 is outside the range %2..%3. + Miesiąc %1 jest poza zakresem %2..%3. + + + Overflow: Can't represent date %1. + Przepełnienie: Nie można wyrazić daty %1. + + + Day %1 is invalid for month %2. + Dzień %1 jest niepoprawny dla miesiąca %2. + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + Czas 24:%1:%2:%3 jest niepoprawny. Godzina jest 24, ale minuty, sekundy i milisekundy nie są równocześnie zerami; + + + Time %1:%2:%3.%4 is invalid. + Czas %1:%2:%3.%4 jest niepoprawny. + + + Overflow: Date can't be represented. + Przepełnienie: Data nie może być wyrażona. + + + At least one time component must appear after the %1-delimiter. + Przynajmniej jeden komponent musi wystąpić po nawiasie %1. + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + Dzielenie wartości typu %1 przez %2 (typ nienumeryczny) jest niedozwolone. + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + Dzielenie wartości typu %1 przez %2 lub %3 (plus lub minus zero) jest niedozwolone. + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + Mnożenie wartości typu %1 przez %2 lub %3 (plus lub minus nieskończoność) jest niedozwolone. + + + A value of type %1 cannot have an Effective Boolean Value. + Wartość typu %1 nie może posiadać efektywnej wartości boolowskiej (EBV). + + + Value %1 of type %2 exceeds maximum (%3). + Wartość %1 typu %2 przekracza maksimum (%3). + + + Value %1 of type %2 is below minimum (%3). + Wartość %1 typu %2 jest poniżej minimum (%3). + + + A value of type %1 must contain an even number of digits. The value %2 does not. + Wartość typu %1 musi zawierać parzystą liczbę cyfr. Wartość %2 nie zawiera. + + + %1 is not valid as a value of type %2. + Wartość %1 nie jest poprawna jako wartość typu %2. + + + Operator %1 cannot be used on type %2. + Operator %1 nie może być użyty dla typu %2. + + + Operator %1 cannot be used on atomic values of type %2 and %3. + Operator %1 nie może być użyty dla atomowych wartości typu %2 i %3. + + + The namespace URI in the name for a computed attribute cannot be %1. + Przestrzeń nazw URI nie może być %1 w nazwie dla obliczonego atrybutu. + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + Nazwa dla wyliczonego atrybutu nie może zawierać przestrzeni nazw URI %1 z lokalną nazwą %2. + + + Type error in cast, expected %1, received %2. + Błąd typów w rzutowaniu: spodziewano się %1, otrzymano %2. + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + Podczas rzutowania na %1 lub na typ pochodny, wartość źródłowa musi być tego samego typu lub musi być zapisem tekstowym. Typ %2 nie jest dozwolony. + + + A comment cannot contain %1 + Komentarz nie może zawierać %1 + + + A comment cannot end with a %1. + Komentarz nie może kończyć się: %1. + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + Węzeł "attribute" nie może być podelementem węzła "document". Dlatego atrybut %1 jest w złym miejscu. + + + A library module cannot be evaluated directly. It must be imported from a main module. + Moduł biblioteki nie może być bezpośrednio oceniony. On musi być zaimportowany z głównego modułu. + + + No template by name %1 exists. + Szablon o nazwie %1 nie istnieje. + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + Wartość typu %1 nie może być predykatem. Predykat musi być typu liczbowego lub Efektywną Wartość Logiczną. + + + A positional predicate must evaluate to a single numeric value. + Wynikiem predykatu pozycyjnego musi być pojedyncza wartość liczbowa. + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + Docelowa nazwa w instrukcji przetwarzania nie może być %1 w żadnej kombinacji wielkich i małych liter. Dlatego nazwa %2 jest niepoprawna. + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 nie jest poprawną nazwą docelową w instrukcji przetwarzania. Nazwa musi być wartością %2, np. %3. + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + Ostatni krok w ścieżce musi zawierać albo węzły albo wartości atomowe. Nie może zawierać obu jednocześnie. + + + No namespace binding exists for the prefix %1 + Żadna przestrzeń nazw nie jest powiązana z przedrostkiem %1 + + + No namespace binding exists for the prefix %1 in %2 + Żadna przestrzeń nazw nie jest powiązana z przedrostkiem %1 w %2 + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + Pierwszy argument w %1 nie może być typu %2. Musi on być typu liczbowego: xs:yearMonthDuration lub xs:dayTimeDuration. + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Pierwszy argument w %1 nie może być typu %2. Musi on być typu: %3, %4 lub %5. + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Drugi argument w %1 nie może być typu %2. Musi on być typu: %3, %4 lub %5. + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + Jeśli oba argumenty mają przesunięcia strefowe, muszą one być takie same. %1 i %2 nie są takie same. + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + Po %1 musi następować %2 lub %3, lecz nie na końcu zastępczego ciągu. + + + %1 and %2 match the start and end of a line. + + + + Whitespace characters are removed, except when they appear in character classes + Spacje są usuwane z wyjątkiem kiedy pojawią się w klasach znakowych + + + %1 is an invalid flag for regular expressions. Valid flags are: + %1 jest niepoprawną flagą dla wyrażeń regularnych. Poprawnymi flagami są: + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + Jeśli pierwszy argument jest pustą sekwencją lub zerowej długości ciągiem (przy braku przestrzeni nazw), przedrostek nie może wystąpić. Podano przedrostek %1. + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + Znormalizowana forma %1 nie jest obsługiwana. Obsługiwanymi formami są: %2, %3, %4 i %5 oraz pusta forma (brak normalizacji). + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + Przesunięcie strefowe musi być w zakresie %1..%2 włącznie. %3 jest poza tym zakresem. + + + Required cardinality is %1; got cardinality %2. + Wymagana liczność wynosi %1; otrzymano %2. + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + Enkodowanie %1 jest niepoprawne. Może ono zawierać jedynie znaki alfabetu łacińskiego, nie może zawierać spacji i musi być dopasowane do wyrażenia regularnego %2. + + + The keyword %1 cannot occur with any other mode name. + Słowo kluczowe %1 nie może wystąpić z inną nazwą trybu. + + + No variable with name %1 exists + Zmienna o nazwie %1 nie istnieje + + + The value of attribute %1 must be of type %2, which %3 isn't. + Wartość atrybutu %1 musi być typu %2, którym nie jest %3. + + + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + Przedrostek %1 nie może być powiązany. Jest on domyślnie powiązany z przestrzenią nazw %2. + + + A variable with name %1 has already been declared. + Zmienna o nazwie %1 została już zadeklarowana. + + + No value is available for the external variable with name %1. + Brak wartości dla zewnętrznej zmiennej o nazwie %1. + + + A stylesheet function must have a prefixed name. + Funkcja arkusza stylu musi zawierać nazwę z przedrostkiem. + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + Przestrzeń nazw %1 jest zarezerwowana, dlatego funkcje zdefiniowane przez użytkownika nie mogą jej użyć. Spróbuj predefiniowany przedrostek %2, który istnieje w takich przypadkach. + + + An argument with name %1 has already been declared. Every argument name must be unique. + Argument o nazwie %1 został już zadeklarowany. Każda nazwa argumentu musi być unikatowa. + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + Gdy funkcja %1 jest wykorzystana do dopasowania wewnątrz wzorca, jej argument musi być referencją do zmiennej lub napisem. + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + We wzorze XSL-T pierwszy argument w funkcji %1 musi być stałą znakową podczas dopasowywania. + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + We wzorze XSL-T pierwszy argument w funkcji %1 musi być stałą znakową lub nazwą zmiennej podczas dopasowywania. + + + In an XSL-T pattern, function %1 cannot have a third argument. + We wzorze XSL-T funkcja %1 nie może zawierać trzeciego argumentu. + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + We wzorze XSL-T tylko funkcje %1 i %2 mogą być użyte do dopasowania, zaś funkcja %3 nie. + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + We wzorze XSL-T tylko osie %2 i %3 mogą być użyte, zaś oś %1 nie. + + + %1 is an invalid template mode name. + %1 nie jest poprawną nazwa trybu szablonu. + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + Nazwa zmiennej powiązanej w wyrażeniu "for" musi być inna od zmiennej pozycjonującej. W związku z tym dwie zmienne o nazwie %1 kolidują ze sobą. + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + Cecha "Walidacja schematu" nie jest obsługiwana. Dlatego też wyrażenia %1 nie mogą być użyte. + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + Wyrażenia "pragma" nie są obsługiwane. Dlatego musi wystąpić wyrażenie zastępcze + + + Each name of a template parameter must be unique; %1 is duplicated. + Każda nazwa parametru szablonu musi być unikatowa; %1 się powtarza. + + + No function with name %1 is available. + Żadna funkcja o nazwie %1 nie jest dostępna. + + + %1 is not a valid numeric literal. + %1 nie jest poprawnym zapisem liczbowym. + + + W3C XML Schema identity constraint selector + Selektor narzucenia niepowtarzalności W3C XML Schema + + + W3C XML Schema identity constraint field + Pole narzucenia niepowtarzalności W3C XML Schema + + + A construct was encountered which is disallowed in the current language(%1). + Wystąpiła konstrukcja która jest niedozwolona w bieżącym języku (%1). + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + Przestrzeń nazw %1 może być jedynie powiązana z %2 (w przeciwnym wypadku jest ona domyślnie zadeklarowana). + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + Przedrostek %1 może być jedynie powiązany z %2 (w przeciwnym wypadku jest on domyślnie zadeklarowany). + + + An attribute with name %1 has already appeared on this element. + Atrybut o nazwie %1 już się pojawił w tym elemencie. + + + A direct element constructor is not well-formed. %1 is ended with %2. + Konstruktor elementu bezpośredniego nie jest dobrze sformatowany. %1 jest zakończony %2. + + + The name %1 does not refer to any schema type. + Nazwa %1 nie odpowiada żadnemu typowi schematu. + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + %1 jest typem złożonym. Rzutowanie na typy złożone nie jest możliwe. Jednakże rzutowanie na typy atomowe np.: %2 jest dozwolone. + + + %1 is not an atomic type. Casting is only possible to atomic types. + %1 nie jest typem atomowym. Możliwe jest rzutowanie tylko na typy atomowe. + + + %1 is not a valid name for a processing-instruction. + %1 nie jest poprawną nazwą dla instrukcji przetwarzającej. + + + The name of an extension expression must be in a namespace. + Nazwa dodatkowego wyrażenia musi znajdować sie w przestrzeni nazw. + + + Required type is %1, but %2 was found. + Odnaleziono typ %2, lecz wymaganym typem jest %1. + + + Promoting %1 to %2 may cause loss of precision. + Przekształcenie %1 do %2 może spowodować utratę precyzji. + + + It's not possible to add attributes after any other kind of node. + Dodanie atrybutu poza węzłami nie jest możliwe. + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + Obsługiwane jest jedynie "Unicode Codepoint Collation" (%1), %2 nie jest obsługiwane. + + + Integer division (%1) by zero (%2) is undefined. + Dzielenie w dziedzinie liczb całkowitych (%1) przez zero (%2) jest niezdefiniowane. + + + Division (%1) by zero (%2) is undefined. + Dzielenie (%1) przez zero (%2) jest niezdefiniowane. + + + Modulus division (%1) by zero (%2) is undefined. + Dzielenie modulo (%1) przez zero (%2) jest niezdefiniowane. + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + %1 przyjmuje co najwyżej %n argument. %2 jest dlatego niepoprawne. + %1 przyjmuje co najwyżej %n argumenty. %2 jest dlatego niepoprawne. + %1 przyjmuje co najwyżej %n argumentów. %2 jest dlatego niepoprawne. + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 wymaga przynajmniej %n argumentu. %2 jest dlatego niepoprawne. + %1 wymaga przynajmniej %n argumentów. %2 jest dlatego niepoprawne. + %1 wymaga przynajmniej %n argumentów. %2 jest dlatego niepoprawne. + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + Głównym węzłem drugiego argumentu w funkcji %1 musi być węzeł "document". %2 nie jest węzłem "document". + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + Przestrzeń nazw dla funkcji zdefiniowanej przez użytkownika nie może być pusta (spróbuj predefiniowany przedrostek %1, który stworzono specjalnie do takich sytuacji) + + + A default namespace declaration must occur before function, variable, and option declarations. + Domyślna deklaracja przestrzeni nazw musi pojawić się przed deklaracjami funkcji, zmiennych i opcji. + + + Namespace declarations must occur before function, variable, and option declarations. + Deklaracje przestrzeni nazw muszą pojawić się przed deklaracjami funkcji, zmiennych i opcji. + + + Module imports must occur before function, variable, and option declarations. + Importy modułów muszą pojawić się przed deklaracjami funkcji, zmiennych i opcji. + + + %1 is not a whole number of minutes. + %1 nie jest całkowitą liczbą minut. + + + Attribute %1 can't be serialized because it appears at the top level. + Atrybut %1 nie może być zserializowany ponieważ pojawił się na najwyższym poziomie. + + + %1 is an unsupported encoding. + Nieobsługiwane kodowanie %1. + + + %1 contains octets which are disallowed in the requested encoding %2. + + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + Kod %1 który pojawił się w %2 i który używa kodowania %3 jest niepoprawnym znakiem XML. + + + Ambiguous rule match. + Dopasowano niejednoznaczną regułę. + + + In a namespace constructor, the value for a namespace cannot be an empty string. + W konstruktorze przestrzeni nazw wartość przestrzeni nazw nie może być pustym ciągiem. + + + The prefix must be a valid %1, which %2 is not. + Przedrostek musi być poprawnym %1, którym %2 nie jest. + + + The prefix %1 cannot be bound. + Przedrostek %1 nie może być powiązany. + + + Only the prefix %1 can be bound to %2 and vice versa. + Tylko przedrostek %1 może być powiązany z %2 i vice versa. + + + The parameter %1 is required, but no corresponding %2 is supplied. + Wymagany jest parametr %1 lecz żaden odpowiadający mu %2 nie został dostarczony. + + + The parameter %1 is passed, but no corresponding %2 exists. + Przekazany jest parametr %1 lecz żaden odpowiadający mu %2 nie istnieje. + + + The URI cannot have a fragment + URI nie może posiadać fragmentu + + + Element %1 is not allowed at this location. + Element %1 jest niedozwolony w tym miejscu. + + + Text nodes are not allowed at this location. + Węzły tekstowe są niedozwolone w tym miejscu. + + + Parse error: %1 + Błąd parsowania: %1 + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + Wartość atrybutu wersji XSL-T musi być typu %1, którym %2 nie jest. + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + Przetwarzanie arkusza XSL-T w wersji 1.0 przez procesor w wersji 2.0. + + + Unknown XSL-T attribute %1. + Nieznany atrybut %1 XSL-T. + + + Attribute %1 and %2 are mutually exclusive. + Atrybuty %1 i %2 wzajemnie się wykluczającą. + + + In a simplified stylesheet module, attribute %1 must be present. + W uproszczonym module arkuszu stylu musi wystąpić atrybut %1. + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + Jeśli element %1 nie posiada atrybutu %2, nie może on również posiadać atrybutu %3 ani %4. + + + Element %1 must have at least one of the attributes %2 or %3. + Element %1 musi posiadać przynajmniej jeden z atrybutów: %2 lub %3. + + + At least one mode must be specified in the %1-attribute on element %2. + Przynajmniej jeden tryb musi być podany w atrybucie %1 elementu %2. + + + Element %1 must come last. + Element %1 musi wystąpić jako ostatni. + + + At least one %1-element must occur before %2. + Przynajmniej jeden element %1 musi wystąpić przed %2. + + + Only one %1-element can appear. + Może wystąpić tylko jeden element %1. + + + At least one %1-element must occur inside %2. + Przynajmniej jeden element %1 musi wystąpić wewnątrz %2. + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + Kiedy atrybut %1 występuje w %2 konstruktor sekwencyjny nie może być użyty. + + + Element %1 must have either a %2-attribute or a sequence constructor. + Element %1 musi posiadać albo atrybut %2 albo sekwencyjny konstruktor. + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + Kiedy wymagany jest parametr, domyślna wartość nie może być dostarczona przez atrybut %1 ani przez sekwencyjny konstruktor. + + + Element %1 cannot have children. + Element %1 nie może posiadać potomków. + + + Element %1 cannot have a sequence constructor. + Element %1 nie może posiadać sekwencyjnego konstruktora. + + + The attribute %1 cannot appear on %2, when it is a child of %3. + Atrybut %1 nie może wystąpić w %2 kiedy jest on potomkiem %3. + + + A parameter in a function cannot be declared to be a tunnel. + Parametr funkcji nie może być zadeklarowany jako tunelowy. + + + This processor is not Schema-aware and therefore %1 cannot be used. + Procesor nie obsługuje schematów, więc %1 nie może zostać użyte. + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + Elementy arkusza stylu najwyższego poziomu muszą być w niezerowej przestrzeni nazw, którą %1 nie jest. + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + Wartością atrybutu %1 w elemencie %2 musi być %3 albo %4, lecz nie %5. + + + Attribute %1 cannot have the value %2. + Atrybut %1 nie może posiadać wartości %2. + + + The attribute %1 can only appear on the first %2 element. + Atrybut %1 może wystąpić jedynie w pierwszym elemencie %2. + + + At least one %1 element must appear as child of %2. + Przynajmniej jeden element %1 musi wystąpić jako potomek %2. + + + %1 has inheritance loop in its base type %2. + %1 ma pętlę w dziedziczeniu w jego podstawowym typie %2. + + + Circular inheritance of base type %1. + Cykliczne dziedziczenie podstawowego typu %1. + + + Circular inheritance of union %1. + Cykliczne dziedziczenie unii %1. + + + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + Nie można wywieść %1 z %2 ograniczając go ponieważ jest on zdefiniowany jako końcowy. + + + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + Nie można wywieść %1 z %2 rozszerzając go ponieważ jest on zdefiniowany jako końcowy. + + + Base type of simple type %1 cannot be complex type %2. + Typ podstawowy dla typu prostego %1 nie może być typem złożonym %2. + + + Simple type %1 cannot have direct base type %2. + Typ prosty %1 nie może mieć bezpośredniego typu podstawowego %2. + + + Simple type %1 is not allowed to have base type %2. + Typ prosty %1 nie może mieć typu podstawowego %2. + + + Simple type %1 can only have simple atomic type as base type. + Typem podstawowym typu prostego %1 może być tylko typ atomowy. + + + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + Typ prosty %1 nie może wywodzić się z %2 ponieważ ten ostatni jest zdefiniowany jako końcowy. + + + Variety of item type of %1 must be either atomic or union. + Typem elementów listy %1 musi być albo typ atomowy albo unia. + + + Variety of member types of %1 must be atomic. + Typy składników %1 muszą być atomowe. + + + %1 is not allowed to derive from %2 by list as the latter defines it as final. + Nie można wywieść %1 z %2 poprzez listę ponieważ jest to zdefiniowane ostatecznie w typie podstawowym. + + + Simple type %1 is only allowed to have %2 facet. + Typ prosty %1 może jedynie posiadać aspekt %2. + + + Base type of simple type %1 must have variety of type list. + Typ podstawowy dla typu prostego %1 musi być listą typów. + + + Base type of simple type %1 has defined derivation by restriction as final. + Typ podstawowy dla typu prostego %1 ma zdefiniowane wywodzenie poprzez ograniczenie jako końcowe. + + + Item type of base type does not match item type of %1. + Typ elementów listy typu podstawowego nie pasuje do typu elementów listy %1. + + + Simple type %1 contains not allowed facet type %2. + Typ prosty %1 posiada niedozwolony aspekt %2. + + + %1 is not allowed to derive from %2 by union as the latter defines it as final. + Nie można wywieść %1 z %2 poprzez unię ponieważ jest to zdefiniowane ostatecznie w typie podstawowym. + + + %1 is not allowed to have any facets. + %1 nie może posiadać żadnych aspektów. + + + Base type %1 of simple type %2 must have variety of union. + Typ podstawowy %1 dla typu prostego %2 musi być unią. + + + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + Typ podstawowy %1 dla typu prostego %2 nie może posiadać ograniczenia dla atrybutu %3. + + + Member type %1 cannot be derived from member type %2 of %3's base type %4. + Typ %1 składnika nie może być wywiedziony z typu %2 który jest typem składnika %3 typu podstawowego %4. + + + Derivation method of %1 must be extension because the base type %2 is a simple type. + Metodą wywodzenia z %1 musi być rozszerzenie ponieważ typ podstawowy %2 jest typem prostym. + + + Complex type %1 has duplicated element %2 in its content model. + Typ złożony %1 posiada powielony element %2 w jego modelu zawartości. + + + Complex type %1 has non-deterministic content. + Typ złożony %1 posiada nieokreśloną zawartość. + + + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + Atrybuty typu złożonego %1 nie są poprawnym rozszerzeniem atrybutów typu podstawowego %2: %3. + + + Content model of complex type %1 is not a valid extension of content model of %2. + Model zawartości typu złożonego %1 nie jest poprawnym rozszerzeniem modelu zawartości %2. + + + Complex type %1 must have simple content. + Typ złożony %1 musi mieć prostą zawartość. + + + Complex type %1 must have the same simple type as its base class %2. + Typ złożony %1 musi posiadać ten sam prosty typ jaki posiada jego klasa podstawowa %2. + + + Complex type %1 cannot be derived from base type %2%3. + Typ złożony %1 nie może być wywiedziony z typu %2%3. + + + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + Atrybuty typu złożonego %1 nie są poprawnym ograniczeniem atrybutów typu podstawowego %2: %3. + + + Complex type %1 with simple content cannot be derived from complex base type %2. + Typ złożony %1 z prostą zawartością nie może być wywiedziony z podstawowego typu złożonego %2. + + + Item type of simple type %1 cannot be a complex type. + Typ elementów listy w prostym typie %1 nie może być typem złożonym. + + + Member type of simple type %1 cannot be a complex type. + Typ składnika typu prostego %1 nie może być typem złożonym. + + + %1 is not allowed to have a member type with the same name as itself. + %1 nie może posiadać typu składnika o tej samej nazwie jaką on sam posiada. + + + %1 facet collides with %2 facet. + + + + %1 facet must have the same value as %2 facet of base type. + Aspekt %1 musi mieć tą samą wartość jaką ma aspekt %2 typu podstawowego. + + + %1 facet must be equal or greater than %2 facet of base type. + Wartość aspektu %1 musi większa od lub równa wartości aspektu %2 typu podstawowego. + + + %1 facet must be less than or equal to %2 facet of base type. + Wartość aspektu %1 musi być mniejsza od lub równa wartości aspektu %2 typu podstawowego. + + + %1 facet contains invalid regular expression + Aspekt %1 zawiera niepoprawne wyrażenie regularne + + + Unknown notation %1 used in %2 facet. + Nieznany zapis %1 użyty w aspekcie %2. + + + %1 facet contains invalid value %2: %3. + Aspekt %1 zawiera niepoprawną wartość %2: %3. + + + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + + + + %1 facet cannot be %2 if %3 facet of base type is %4. + + + + %1 facet must be less than or equal to %2 facet. + Wartość aspektu %1 musi być mniejsza od lub równa wartości aspektu %2. + + + %1 facet must be less than %2 facet of base type. + Wartość aspektu %1 musi być mniejsza od wartości aspektu %2 typu podstawowego. + + + %1 facet and %2 facet cannot appear together. + + + + %1 facet must be greater than %2 facet of base type. + Wartość aspektu %1 musi być większa od wartości aspektu %2 typu podstawowego. + + + %1 facet must be less than %2 facet. + Wartość aspektu %1 musi być mniejsza od wartości aspektu %2. + + + %1 facet must be greater than or equal to %2 facet of base type. + Wartość aspektu %1 musi być większa od lub równa wartości aspektu %2 typu podstawowego. + + + Simple type contains not allowed facet %1. + Typ prosty zawiera niedozwolony aspekt %1. + + + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + + + + Only %1 and %2 facets are allowed when derived by union. + Dozwolone są jedynie aspekty %1 i %2 podczas wywodzenia z unii. + + + %1 contains %2 facet with invalid data: %3. + + + + Attribute group %1 contains attribute %2 twice. + Grupa atrybutów %1 zawiera dwukrotnie atrybut %2. + + + Attribute group %1 contains two different attributes that both have types derived from %2. + Grupa atrybutów %1 zawiera dwa różne atrybuty których typy są wywiedzione z %2. + + + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + Grupa atrybutów %1 zawiera atrybut %2 który ma ograniczenie wartości ale typ wywodzi się z %3. + + + Complex type %1 contains attribute %2 twice. + Typ złożony %1 zawiera atrybut %2 dwukrotnie. + + + Complex type %1 contains two different attributes that both have types derived from %2. + Typ złożony %1 zawiera dwa różne atrybuty których typy są wywiedzione z %2. + + + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. + Typ złożony %1 zawiera atrybut %2 który ma ograniczenie wartości ale typ wywodzi się z %3. + + + Element %1 is not allowed to have a value constraint if its base type is complex. + Element %1 nie może zawierać ograniczenia wartości gdy jego typ podstawowy jest złożony. + + + Element %1 is not allowed to have a value constraint if its type is derived from %2. + Element %1 nie może zawierać ograniczenia wartości gdy jego typ jest wywiedziony z %2. + + + Value constraint of element %1 is not of elements type: %2. + Ograniczenie wartości elementu %1 nie jest typu: %2. + + + Element %1 is not allowed to have substitution group affiliation as it is no global element. + Element %1 nie może przynależeć do grupy zastępującej ponieważ nie jest on elementem globalnym. + + + Type of element %1 cannot be derived from type of substitution group affiliation. + Typ elementu %1 nie może być wywiedziony z typu przynależnego do grupy zastępującej. + + + Value constraint of attribute %1 is not of attributes type: %2. + Ograniczenie wartości atrybutu %1 nie jest typu: %2. + + + Attribute %1 has value constraint but has type derived from %2. + Atrybut %1 posiada ograniczenie wartości lecz jego typ wywodzi się z %2. + + + %1 attribute in derived complex type must be %2 like in base type. + + + + Attribute %1 in derived complex type must have %2 value constraint like in base type. + Atrybut %1 w wywiedzionym typie złożonym musi zawierać ograniczenie wartości %2 jak w typie podstawowym. + + + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. + Atrybut %1 w wywiedzionym typie złożonym musi zawierać te same ograniczenie wartości %2 jak w typie podstawowym. + + + Attribute %1 in derived complex type must have %2 value constraint. + Atrybut %1 w wywiedzionym typie złożonym musi zawierać ograniczenie wartości %2. + + + processContent of base wildcard must be weaker than derived wildcard. + "processContent" podstawowego dżokera musi być słabszy od wywiedzionego dżokera. + + + Element %1 exists twice with different types. + Istnieją dwa elementy %1 o różnych typach. + + + Particle contains non-deterministic wildcards. + Element zawiera nieokreślone dżokery. + + + Base attribute %1 is required but derived attribute is not. + Wymagany jest bazowy atrybut %1, wywiedziony zaś nie. + + + Type of derived attribute %1 cannot be validly derived from type of base attribute. + Typ wywiedzionego atrybutu %1 nie może być poprawnie wywiedziony z typu podstawowego atrybutu. + + + Value constraint of derived attribute %1 does not match value constraint of base attribute. + Ograniczenie wartości wywiedzionego atrybutu %1 nie pasuje do ograniczenia wartości podstawowego atrybutu. + + + Derived attribute %1 does not exist in the base definition. + Wywiedziony atrybut %1 nie istnieje w podstawowej definicji. + + + Derived attribute %1 does not match the wildcard in the base definition. + Wywiedziony atrybut %1 nie pasuje do dżokera w podstawowej definicji. + + + Base attribute %1 is required but missing in derived definition. + Brak wymaganego bazowego atrybutu %1 w wywiedzionej definicji. + + + Derived definition contains an %1 element that does not exists in the base definition + Wywiedziona definicja zawiera element %1 który nie istnieje w definicji podstawowej + + + Derived wildcard is not a subset of the base wildcard. + Wywiedziony dżoker nie jest podzbiorem podstawowego dżokera. + + + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + %1 wywiedzionego dżokera nie jest poprawnym ograniczeniem %2 podstawowego dżokera + + + Attribute %1 from base type is missing in derived type. + Brak atrybutu %1 typu bazowego w wywiedzionej definicji. + + + Type of derived attribute %1 differs from type of base attribute. + Typ wywiedzionego atrybutu %1 różni się od typu podstawowego atrybutu. + + + Base definition contains an %1 element that is missing in the derived definition + Podstawowa definicja zawiera element %1 którego brakuje w wywiedzionej definicji + + + %1 references unknown %2 or %3 element %4. + %1 odwołuje się do nieznanego elementu %2 lub %3: %4. + + + %1 references identity constraint %2 that is no %3 or %4 element. + %1 odwołuje się do narzucenia niepowtarzalności %2 które nie jest elementem %3 ani %4. + + + %1 has a different number of fields from the identity constraint %2 that it references. + %1 posiada inna liczbę pól od narzucenia niepowtarzalności %2 które się do niego odwołuje. + + + Base type %1 of %2 element cannot be resolved. + Nie można rozwiązać typu podstawowego %1 elementu %2. + + + Item type %1 of %2 element cannot be resolved. + Nie można rozwiązać typu elementów listy %1 w elemencie %2. + + + Member type %1 of %2 element cannot be resolved. + Nie można rozwiązać typu %1 składnika elementu %2. + + + Type %1 of %2 element cannot be resolved. + Nie można rozwiązać typu %1 elementu %2. + + + Base type %1 of complex type cannot be resolved. + Nie można rozwiązać typu podstawowego %1 dla typu złożonego. + + + %1 cannot have complex base type that has a %2. + + + + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. + Model zawartości typu złożonego %1 posiada element %2 więc nie może być on wywiedziony poprzez rozszerzenie niepustego typu. + + + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. + Typ złożony %1 nie może być wywiedziony z %2 poprzez rozszerzenie ponieważ ten ostatni zawiera element %3 w jego modelu zawartości. + + + Type of %1 element must be a simple type, %2 is not. + Typem elementu %1 musi być typ prosty, %2 nim nie jest. + + + Substitution group %1 of %2 element cannot be resolved. + Nie można rozwiązać grupy zastępującej %1 elementu %2. + + + Substitution group %1 has circular definition. + Grupa zastępująca %1 posiada cykliczną definicję. + + + Duplicated element names %1 in %2 element. + Powielona nazwa elementu %1 w elemencie %2. + + + Reference %1 of %2 element cannot be resolved. + Nie można rozwiązać odwołania %1 do elementu %2. + + + Circular group reference for %1. + Cykliczne odwołanie do grupy dla %1. + + + %1 element is not allowed in this scope + + + + %1 element cannot have %2 attribute with value other than %3. + + + + %1 element cannot have %2 attribute with value other than %3 or %4. + + + + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. + Atrybut %1 lub %2 odwołania %3 nie pasuje do deklaracji atrybutu %4. + + + Attribute group %1 has circular reference. + Grupa atrybutów %1 posiada cykliczne odwołanie. + + + %1 attribute in %2 must have %3 use like in base type %4. + + + + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. + Atrybut dżokera %1 nie jest poprawnym ograniczeniem atrybutu dżokera typu podstawowego %2. + + + %1 has attribute wildcard but its base type %2 has not. + %1 posiada atrybut dżokera lecz jego typ podstawowy %2 go nie posiada. + + + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. + Nie można wyrazić unii atrybutu dżokera typu %1 i atrybutu dżokera jego typu podstawowego %2. + + + Enumeration facet contains invalid content: {%1} is not a value of type %2. + Aspekt "enumeration" posiada niepoprawną zawartość: {%1} nie jest wartością typu %2. + + + Namespace prefix of qualified name %1 is not defined. + Przedrostek przestrzeni nazw występujący w pełnej nazwie %1 nie jest zdefiniowany. + + + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. + + + + Empty particle cannot be derived from non-empty particle. + Pusty element nie może być wywiedziony z niepustego elementu. + + + Derived particle is missing element %1. + Brak elementu %1 w wywiedzionym elemencie. + + + Derived element %1 is missing value constraint as defined in base particle. + Brak ograniczenia wartości w wywiedzionym elemencie %1 takiego jak w podstawowym elemencie. + + + Derived element %1 has weaker value constraint than base particle. + Wywiedziony element %1 posiada słabsze ograniczenie wartości niż element podstawowy. + + + Fixed value constraint of element %1 differs from value constraint in base particle. + Ograniczenie stałej wartości elementu %1 różni się od ograniczenia wartości w podstawowym elemencie. + + + Derived element %1 cannot be nillable as base element is not nillable. + Wywiedziony element %1 może być zerowalny ponieważ element podstawowy nie jest zerowalny. + + + Block constraints of derived element %1 must not be more weaker than in the base element. + Ograniczenia blokujące dla wywiedzionego elementu %1 nie mogą być słabsze od ograniczeń w elemencie podstawowym. + + + Simple type of derived element %1 cannot be validly derived from base element. + Typ prosty w elemencie wywiedzionym %1 nie może być poprawnie wywiedziony z elementu podstawowego. + + + Complex type of derived element %1 cannot be validly derived from base element. + Typ złożony w elemencie wywiedzionym %1 nie może być poprawnie wywiedziony z elementu podstawowego. + + + Element %1 is missing in derived particle. + Brak elementu %1 w wywiedzionym elemencie. + + + Element %1 does not match namespace constraint of wildcard in base particle. + Element %1 nie pasuje do ograniczenia przestrzeni nazw dżokera w elemencie podstawowym. + + + Wildcard in derived particle is not a valid subset of wildcard in base particle. + Dżoker w wywiedzionym elemencie nie jest poprawnym podzbiorem dżokera w elemencie podstawowym. + + + processContent of wildcard in derived particle is weaker than wildcard in base particle. + "processContent" dżokera w wywiedzionym elemencie jest słabszy od dżokera w podstawowym elemencie. + + + Derived particle allows content that is not allowed in the base particle. + Wywiedziony element pozwala na zawartość która jest niedozwolona w podstawowym elemencie. + + + Can not process unknown element %1, expected elements are: %2. + Nie można przetworzyć nieznanego elementu %1, spodziewanymi elementami są: %2. + + + Element %1 is not allowed in this scope, possible elements are: %2. + Element %1 jest niedozwolony w tym zakresie, możliwymi elementami są: %2. + + + Child element is missing in that scope, possible child elements are: %1. + Brak podelementu w tym zakresie, możliwymi podelementami są: %1. + + + Document is not a XML schema. + Dokument nie jest schematem XML. + + + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + + + + %1 attribute of %2 element contains invalid content: {%3}. + + + + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + Docelowa przestrzeń nazw %1 załączonego schematu jest różna od docelowej przestrzeni nazw %2 która jest zdefiniowana w schemacie załączającym. + + + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + Docelowa przestrzeń nazw %1 zaimportowanego schematu jest różna od docelowej przestrzeni nazw %2 która jest zdefiniowana w schemacie importującym. + + + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + + + + %1 element without %2 attribute is not allowed inside schema without target namespace. + + + + %1 element is not allowed inside %2 element if %3 attribute is present. + + + + %1 element has neither %2 attribute nor %3 child element. + + + + %1 element with %2 child element must not have a %3 attribute. + + + + %1 attribute of %2 element must be %3 or %4. + + + + %1 attribute of %2 element must have a value of %3. + + + + %1 attribute of %2 element must have a value of %3 or %4. + + + + %1 element must not have %2 and %3 attribute together. + + + + Content of %1 attribute of %2 element must not be from namespace %3. + Zawartość atrybutu %1 elementu %2 nie może pochodzić z przestrzeni nazw %3. + + + %1 attribute of %2 element must not be %3. + + + + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + + + + Specifying use='prohibited' inside an attribute group has no effect. + Podawanie: use='prohibited' wewnątrz grupy atrybutów nie przynosi żadnego efektu. + + + %1 element must have either %2 or %3 attribute. + + + + %1 element must have either %2 attribute or %3 or %4 as child element. + + + + %1 element requires either %2 or %3 attribute. + + + + Text or entity references not allowed inside %1 element + Tekst ani odwołanie nie są dozwolone wewnątrz elementu %1 + + + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + + + + %1 element is not allowed in this context. + + + + %1 attribute of %2 element has larger value than %3 attribute. + + + + Prefix of qualified name %1 is not defined. + Przedrostek w pełnej nazwie %1 nie jest zdefiniowany. + + + %1 attribute of %2 element must either contain %3 or the other values. + + + + Component with ID %1 has been defined previously. + Komponent o identyfikatorze %1 został uprzednio zdefiniowany. + + + Element %1 already defined. + Element %1 jest już zdefiniowany. + + + Attribute %1 already defined. + Atrybut %1 jest już zdefiniowany. + + + Type %1 already defined. + Typ %1 jest już zdefiniowany. + + + Attribute group %1 already defined. + Grupa atrybutów %1 jest już zdefiniowana. + + + Element group %1 already defined. + Grupa elementów %1 jest już zdefiniowana. + + + Notation %1 already defined. + Zapis %1 jest już zdefiniowany. + + + Identity constraint %1 already defined. + Narzucenie niepowtarzalności %1 jest już zdefiniowane. + + + Duplicated facets in simple type %1. + Powielone aspekty w prostym typie %1. + + + %1 is not valid according to %2. + %1 nie jest poprawne według %2. + + + String content does not match the length facet. + Wartość ciągu koliduje z aspektem "length". + + + String content does not match the minLength facet. + Wartość ciągu koliduje z aspektem "minLength". + + + String content does not match the maxLength facet. + Wartość ciągu koliduje z aspektem "maxLength". + + + String content does not match pattern facet. + Wartość ciągu koliduje z aspektem "pattern". + + + String content is not listed in the enumeration facet. + Wartość ciągu nie widnieje na liście aspektu "enumeration". + + + Signed integer content does not match the maxInclusive facet. + Wartość liczby całkowitej koliduje z aspektem "maxInclusive". + + + Signed integer content does not match the maxExclusive facet. + Wartość liczby całkowitej koliduje z aspektem "maxExclusive". + + + Signed integer content does not match the minInclusive facet. + Wartość liczby całkowitej koliduje z aspektem "minInclusive". + + + Signed integer content does not match the minExclusive facet. + Wartość liczby całkowitej koliduje z aspektem "minExclusive". + + + Signed integer content is not listed in the enumeration facet. + Wartość liczby całkowitej nie widnieje na liście aspektu "enumeration". + + + Signed integer content does not match pattern facet. + Wartość liczby całkowitej koliduje z aspektem "pattern". + + + Signed integer content does not match in the totalDigits facet. + Wartość liczby całkowitej koliduje z aspektem "totalDigits". + + + Unsigned integer content does not match the maxInclusive facet. + Wartość liczby naturalnej koliduje z aspektem "maxInclusive". + + + Unsigned integer content does not match the maxExclusive facet. + Wartość liczby naturalnej koliduje z aspektem "maxExclusive". + + + Unsigned integer content does not match the minInclusive facet. + Wartość liczby naturalnej koliduje z aspektem "minInclusive". + + + Unsigned integer content does not match the minExclusive facet. + Wartość liczby naturalnej koliduje z aspektem "minExclusive". + + + Unsigned integer content is not listed in the enumeration facet. + Wartość liczby naturalnej nie widnieje na liście aspektu "enumeration". + + + Unsigned integer content does not match pattern facet. + Wartość liczby naturalnej koliduje z aspektem "pattern". + + + Unsigned integer content does not match in the totalDigits facet. + Wartość liczby naturalnej koliduje z aspektem "totalDigits". + + + Double content does not match the maxInclusive facet. + Wartość liczby rzeczywistej koliduje z aspektem "maxInclusive". + + + Double content does not match the maxExclusive facet. + Wartość liczby rzeczywistej koliduje z aspektem "maxExclusive". + + + Double content does not match the minInclusive facet. + Wartość liczby rzeczywistej koliduje z aspektem "minInclusive". + + + Double content does not match the minExclusive facet. + Wartość liczby rzeczywistej koliduje z aspektem "minExclusive". + + + Double content is not listed in the enumeration facet. + Wartość liczby rzeczywistej nie widnieje na liście aspektu "enumeration". + + + Double content does not match pattern facet. + Wartość liczby rzeczywistej koliduje z aspektem "pattern". + + + Decimal content does not match in the fractionDigits facet. + Wartość liczby rzeczywistej koliduje z aspektem "fractionDigits". + + + Decimal content does not match in the totalDigits facet. + Wartość liczby rzeczywistej koliduje z aspektem "totalDigits". + + + Date time content does not match the maxInclusive facet. + Zawartość daty i czasu koliduje z aspektem "maxInclusive". + + + Date time content does not match the maxExclusive facet. + Zawartość daty i czasu koliduje z aspektem "maxExclusive". + + + Date time content does not match the minInclusive facet. + Zawartość daty i czasu koliduje z aspektem "minInclusive". + + + Date time content does not match the minExclusive facet. + Zawartość daty i czasu koliduje z aspektem "minExclusive". + + + Date time content is not listed in the enumeration facet. + Zawartość daty i czasu nie widnieje na liście aspektu "enumeration". + + + Date time content does not match pattern facet. + Zawartość daty i czasu koliduje z aspektem "pattern". + + + Duration content does not match the maxInclusive facet. + Wartość długości okresu czasu koliduje z aspektem "maxInclusive". + + + Duration content does not match the maxExclusive facet. + Wartość długości okresu czasu koliduje z aspektem "maxExclusive". + + + Duration content does not match the minInclusive facet. + Wartość długości okresu czasu koliduje z aspektem "minInclusive". + + + Duration content does not match the minExclusive facet. + Wartość długości okresu czasu koliduje z aspektem "minExclusive". + + + Duration content is not listed in the enumeration facet. + Wartość długości okresu czasu nie widnieje na liście aspektu "enumeration". + + + Duration content does not match pattern facet. + Wartość długości okresu czasu koliduje z aspektem "pattern". + + + Boolean content does not match pattern facet. + Wartość boolowska koliduje z aspektem "pattern". + + + Binary content does not match the length facet. + Wartość binarna koliduje z aspektem "length". + + + Binary content does not match the minLength facet. + Wartość binarna koliduje z aspektem "minLength". + + + Binary content does not match the maxLength facet. + Wartość binarna koliduje z aspektem "maxLength". + + + Binary content is not listed in the enumeration facet. + Wartość binarna nie widnieje na liście aspektu "enumeration". + + + Invalid QName content: %1. + Niepoprawna zawartość QName: %1. + + + QName content is not listed in the enumeration facet. + Zawartość QName nie widnieje na liście aspektu "enumeration". + + + QName content does not match pattern facet. + Zawartość QName koliduje z aspektem "pattern". + + + Notation content is not listed in the enumeration facet. + Zapis zawartości nie widnieje na liście aspektu "enumeration". + + + List content does not match length facet. + Zawartość listy koliduje z aspektem "length". + + + List content does not match minLength facet. + Zawartość listy koliduje z aspektem "minLength". + + + List content does not match maxLength facet. + Zawartość listy koliduje z aspektem "maxLength". + + + List content is not listed in the enumeration facet. + Zawartość listy nie widnieje na liście aspektu "enumeration". + + + List content does not match pattern facet. + Zawartość listy koliduje z aspektem "pattern". + + + Union content is not listed in the enumeration facet. + Zawartość unii nie widnieje na liście aspektu "enumeration". + + + Union content does not match pattern facet. + Zawartość unii koliduje z aspektem "pattern". + + + Data of type %1 are not allowed to be empty. + Dane typu %1 nie mogą być puste. + + + Element %1 is missing child element. + Brak wymaganego podelementu w elemencie %1. + + + There is one IDREF value with no corresponding ID: %1. + Istnieje wartość IDREF bez odpowiadającej jej wartości ID: %1. + + + Loaded schema file is invalid. + Załadowany plik nie jest poprawnym plikiem ze schematem. + + + %1 contains invalid data. + + + + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + Przestrzeń nazw "xsi:schemaLocation" %1 wystąpiła już wcześniej w dokumencie. + + + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + "xsi:noNamespaceSchemaLocation" nie może wystąpić po pierwszym elemencie lub atrybucie który nie jest przestrzenią nazw. + + + No schema defined for validation. + Brak zdefiniowanego schematu dla walidacji. + + + No definition for element %1 available. + Brak dostępnej definicji dla elementu %1. + + + Specified type %1 is not known to the schema. + Podany typ %1 nie jest schematowi znany. + + + Element %1 is not defined in this scope. + Element %1 nie jest zdefiniowany w tym zakresie. + + + Declaration for element %1 does not exist. + Brak deklaracji dla elementu %1. + + + Element %1 contains invalid content. + Element %1 posiada niepoprawną zawartość. + + + Element %1 is declared as abstract. + Element %1 jest zadeklarowany jako abstrakcyjny. + + + Element %1 is not nillable. + Element %1 nie jest zerowalny. + + + Attribute %1 contains invalid data: %2 + Atrybut %1 zawiera niepoprawne dane: %2 + + + Element contains content although it is nillable. + Element posiada zawartość chociaż jest zerowalny. + + + Fixed value constraint not allowed if element is nillable. + Ograniczenie stałej wartości jest niedozwolone gdy element jest zerowalny. + + + Element %1 cannot contain other elements, as it has a fixed content. + Element %1 nie może zawierać innych elementów ponieważ posiada on stałą zawartość. + + + Specified type %1 is not validly substitutable with element type %2. + Podany typ %1 nie jest poprawnie zastępowalny typem elementu %2. + + + Complex type %1 is not allowed to be abstract. + Typ złożony %1 nie może być abstrakcyjny. + + + Element %1 contains not allowed attributes. + Element %1 zawiera niedozwolone atrybuty. + + + Element %1 contains not allowed child element. + Element %1 zawiera niedozwolony podelement. + + + Content of element %1 does not match its type definition: %2. + Zawartość elementu %1 nie pasuje do jego definicji typu: %2. + + + Content of element %1 does not match defined value constraint. + Zawartość elementu %1 nie pasuje do zdefiniowanego ograniczenia wartości. + + + Element %1 contains not allowed child content. + Element %1 zawiera niedozwolony podelement. + + + Element %1 contains not allowed text content. + Element %1 zawiera niedozwolony text. + + + Element %1 is missing required attribute %2. + Brak wymaganego atrybutu %2 w elemencie %1. + + + Attribute %1 does not match the attribute wildcard. + Atrybut %1 nie pasuje do atrybutu dżokera. + + + Declaration for attribute %1 does not exist. + Brak deklaracji atrybutu %1. + + + Element %1 contains two attributes of type %2. + Element %1 posiada dwa atrybuty typu %2. + + + Attribute %1 contains invalid content. + Atrybut %1 posiada niepoprawną zawartość. + + + Element %1 contains unknown attribute %2. + Element %1 posiada nieznany atrybut %2. + + + Content of attribute %1 does not match its type definition: %2. + Zawartość atrybutu %1 nie pasuje do jego definicji typu: %2. + + + Content of attribute %1 does not match defined value constraint. + Zawartość elementu %1 nie pasuje do zdefiniowanego ograniczenia wartości. + + + Non-unique value found for constraint %1. + Znaleziono nieunikatową wartość dla ograniczenia %1. + + + Key constraint %1 contains absent fields. + Ograniczenie klucza %1 zawiera nieobecne pola. + + + Key constraint %1 contains references nillable element %2. + + + + No referenced value found for key reference %1. + Brak wartości do której odwołuje się klucz %1. + + + More than one value found for field %1. + Znaleziono więcej niż jedną wartość dla pola %1. + + + Field %1 has no simple type. + Pole %1 nie posiada prostego typu. + + + ID value '%1' is not unique. + Wartość ID "%1" nie jest unikatowa. + + + '%1' attribute contains invalid QName content: %2. + + + + diff --git a/config.profiles/symbian/translations/qt_ru_symbian.ts b/config.profiles/symbian/translations/qt_ru_symbian.ts new file mode 100644 index 0000000..b7e69cb --- /dev/null +++ b/config.profiles/symbian/translations/qt_ru_symbian.ts @@ -0,0 +1,8522 @@ + + + + + + CloseButton + + Close Tab + Закрыть вкладку + + + + FakeReply + + Fake error ! + Ошибка: фальшивый! + + + Invalid URL + Некорректный URL + + + + Phonon:: + + Notifications + Уведомления + + + Music + Музыка + + + Video + Видео + + + Communication + Общение + + + Games + Игры + + + Accessibility + Специальные возможности + + + + Phonon::AudioOutput + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + <html>Звуковое устройство <b>%1</b> не работает.<br/>Будет использоваться <b>%2</b>.</html> + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + <html>Переключение на звуковое устройство <b>%1</b><br/>, которое доступно и имеет высший приоритет.</html> + + + Revert back to device '%1' + Возвращение к устройству '%1' + + + + Phonon::Gstreamer::Backend + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + Внимание: Похоже, пакет gstreamer0.10-plugins-good не установлен. + Некоторые возможности воспроизведения видео недоступны. + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + Внимание: Похоже, основной модуль GStreamer не установлен. + Поддержка видео и аудио отключена + + + + Phonon::Gstreamer::MediaObject + + Cannot start playback. + +Check your GStreamer installation and make sure you +have libgstreamer-plugins-base installed. + + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + Отсутствует необходимый кодек. Вам нужно установить следующие кодеки для воспроизведения данного содержимого: %0 + + + Could not open media source. + Не удалось открыть источник медиа-данных. + + + Invalid source type. + Неверный тип источника медиа-данных. + + + Could not locate media source. + Не удалось найти источник медиа-данных. + + + Could not open audio device. The device is already in use. + Не удалось открыть звуковое устройство. Устройство уже используется. + + + Could not decode media source. + Не удалось декодировать источник медиа-данных. + + + + Phonon::MMF + + Audio Output + Воспроизведение звука + + + The audio output device + Устройство воспроизведения звука + + + No error + Нет ошибки + + + Not found + Не найдено + + + Out of memory + Недостаточно памяти + + + Not supported + Не поддерживается + + + Overflow + Переполнение + + + Underflow + Потеря значимости + + + Already exists + Уже существует + + + Path not found + Путь не найден + + + In use + Используется + + + Not ready + Не готово + + + Access denied + Доступ запрещен + + + Could not connect + Подключение невозможно + + + Disconnected + Разъединено + + + Permission denied + Отказано в разрешении + + + Insufficient bandwidth + Недостаточная скорость передачи + + + Network unavailable + Сеть недоступна + + + Network communication error + Сетевая ошибка связи + + + Streaming not supported + Потоки не поддерживаются + + + Server alert + Сигнал сервера + + + Invalid protocol + Неверный протокол + + + Invalid URL + Неверный адрес URL + + + Multicast error + Ошибка групповой передачи + + + Proxy server error + Ошибка прокси-сервера + + + Proxy server not supported + Прокси-сервер не поддерживается + + + Audio output error + Ошибка вывода аудио + + + Video output error + Ошибка вывода видео + + + Decoder error + Ошибка декодера + + + Audio or video components could not be played + Невозможно воспроизвести аудио или видеокомпоненты + + + DRM error + Ошибка DRM + + + Unknown error (%1) + Неизвестная ошибка (%1) + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + Не готов к воспроизведению + + + Error opening file + Ошибка при открытии файла + + + Error opening URL + Ошибка при открытии адреса URL + + + Setting volume failed + Сбой при настройке громкости + + + Playback complete + Воспроизведение завершено + + + + Phonon::MMF::AudioEqualizer + + %1 Hz + %1 Гц + + + + Phonon::MMF::AudioPlayer + + Getting position failed + Сбой определения позиции + + + Opening clip failed + Сбой при открытии клипа + + + + Phonon::MMF::EffectFactory + + Enabled + Включено + + + + Phonon::MMF::EnvironmentalReverb + + Decay HF ratio (%) + Коэффициент затухания ВЧ (%) + + + Decay time (ms) + Время затухания (мс) + + + Density (%) + Плотность (%) + + + Diffusion (%) + Рассеяние (%) + + + Reflections delay (ms) + Затухание отражений (мс) + + + Reflections level (mB) + Уровень отражений (Мбит) + + + Reverb delay (ms) + Задержка реверберации (мс) + + + Reverb level (mB) + Уровень реверберации (Мбит) + + + Room HF level + Уровень ВЧ помещения + + + Room level (mB) + Уровень помещения (Мбит) + + + + Phonon::MMF::MediaObject + + Error opening source: type not supported + Ошибка при открытии источника: тип не поддерживается + + + Error opening source: media type could not be determined + Ошибка при открытии источника: тип носителя определить невозможно + + + + Phonon::MMF::StereoWidening + + Level (%) + Уровень (%) + + + + Phonon::MMF::VideoPlayer + + Pause failed + Сбой паузы + + + Seek failed + Сбой при поиске + + + Getting position failed + Сбой определения позиции + + + Opening clip failed + Сбой при открытии клипа + + + Buffering clip failed + Сбой при буферизации клипа + + + Video display error + Ошибка отображения видео + + + + Phonon::VolumeSlider + + Volume: %1% + Громкость: %1% + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + Используйте данный ползунок для настройки громкости. Крайнее левое положение соответствует 0%, крайнее правое - %1% + + + Muted + Без звука + + + + Q3Accel + + %1, %2 not defined + %1, %2 не определён + + + Ambiguous %1 not handled + + + + + Q3DataTable + + True + Да + + + False + Нет + + + Insert + Вставить + + + Update + Обновить + + + Delete + Удалить + + + + Q3FileDialog + + Copy or Move a File + Копировать или переместить файл + + + Read: %1 + Чтение: %1 + + + Write: %1 + Запись: %1 + + + Cancel + Отмена + + + All Files (*) + Все файлы (*) + + + Name + Имя + + + Size + Размер + + + Type + Тип + + + Date + Дата + + + Attributes + Атрибуты + + + &OK + &ОК + + + Look &in: + &Папка: + + + File &name: + &Имя файла: + + + File &type: + &Тип файла: + + + Back + Назад + + + One directory up + Вверх на один уровень + + + Create New Folder + Создать папку + + + List View + Список + + + Detail View + Подробный вид + + + Preview File Info + Предпросмотр информации о файле + + + Preview File Contents + Предпросмотр содержимого файла + + + Read-write + Чтение и запись + + + Read-only + Только чтение + + + Write-only + Только запись + + + Inaccessible + Нет доступа + + + Symlink to File + Ссылка на файл + + + Symlink to Directory + Ссылка на каталог + + + Symlink to Special + Ссылка на спецфайл + + + File + Файл + + + Dir + Каталог + + + Special + Спецфайл + + + Open + Открыть + + + Save As + Сохранить как + + + &Open + &Открыть + + + &Save + &Сохранить + + + &Rename + &Переименовать + + + &Delete + &Удалить + + + R&eload + О&бновить + + + Sort by &Name + По &имени + + + Sort by &Size + По &размеру + + + Sort by &Date + По &дате + + + &Unsorted + &Не упорядочивать + + + Sort + Упорядочить + + + Show &hidden files + Показать ск&рытые файлы + + + the file + файл + + + the directory + каталог + + + the symlink + ссылку + + + Delete %1 + Удалить %1 + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + <qt>Вы действительно хотите удалить %1 "%2"?</qt> + + + &Yes + &Да + + + &No + &Нет + + + New Folder 1 + Новая папка 1 + + + New Folder + Новая папка + + + New Folder %1 + Новая папка %1 + + + Find Directory + Найти каталог + + + Directories + Каталоги + + + Directory: + Каталог: + + + Error + Ошибка + + + %1 +File not found. +Check path and filename. + %1 +Файл не найден. +Проверьте правильность пути и имени файла. + + + All Files (*.*) + Все файлы (*.*) + + + Open + Открыть + + + Select a Directory + Выбрать каталог + + + + Q3LocalFs + + Could not read directory +%1 + Не удалось прочитать каталог +%1 + + + Could not create directory +%1 + Не удалось создать каталог +%1 + + + Could not remove file or directory +%1 + Не удалось удалить файл или каталог +%1 + + + Could not rename +%1 +to +%2 + Не удалось переименовать +%1 +в +%2 + + + Could not open +%1 + Не удалось открыть +%1 + + + Could not write +%1 + Не удалось записать +%1 + + + + Q3MainWindow + + Line up + Выровнять + + + Customize... + Настроить... + + + + Q3NetworkProtocol + + Operation stopped by the user + Операция остановлена пользователем + + + + Q3ProgressDialog + + Cancel + Отмена + + + + Q3TabDialog + + OK + ОК + + + Apply + Применить + + + Help + Справка + + + Defaults + По умолчанию + + + Cancel + Отмена + + + + Q3TextEdit + + &Undo + &Отменить действие + + + &Redo + &Повторить действие + + + Cu&t + &Вырезать + + + &Copy + &Копировать + + + &Paste + В&ставить + + + Clear + Очистить + + + Select All + Выделить всё + + + + Q3TitleBar + + System + Системное меню + + + Restore up + Восстановить + + + Minimize + Свернуть + + + Restore down + Восстановить + + + Maximize + Распахнуть + + + Close + Закрыть + + + Contains commands to manipulate the window + Содержит команды управления окном + + + Puts a minimized window back to normal + Возвращает свёрнутое окно в нормальное состояние + + + Moves the window out of the way + Сворачивает окно + + + Puts a maximized window back to normal + Возвращает распахнутое окно в нормальное состояние + + + Makes the window full screen + Разворачивает окно на весь экран + + + Closes the window + Зыкрывает окно + + + Displays the name of the window and contains controls to manipulate it + Отображает название окна и содержит команды управления им + + + + Q3ToolBar + + More... + Больше... + + + + Q3UrlOperator + + The protocol `%1' is not supported + Протокол '%1' не поддерживается + + + The protocol `%1' does not support listing directories + Протокол '%1' не поддерживает просмотр каталогов + + + The protocol `%1' does not support creating new directories + Протокол '%1' не поддерживает создание каталогов + + + The protocol `%1' does not support removing files or directories + Протокол '%1' не поддерживает удаление файлов или каталогов + + + The protocol `%1' does not support renaming files or directories + Протокол '%1' не поддерживает переименование файлов или каталогов + + + The protocol `%1' does not support getting files + Протокол '%1' не поддерживает доставку файлов + + + The protocol `%1' does not support putting files + Протокол '%1' не поддерживает отправку файлов + + + The protocol `%1' does not support copying or moving files or directories + Протокол '%1' не поддерживает копирование или перемещение файлов или каталогов + + + (unknown) + (неизвестно) + + + + Q3Wizard + + &Cancel + От&мена + + + < &Back + < &Назад + + + &Next > + &Далее > + + + &Finish + &Завершить + + + &Help + &Справка + + + + QAbstractSocket + + Host not found + Узел не найден + + + Connection refused + Отказано в соединении + + + Connection timed out + Время на соединение истекло + + + Operation on socket is not supported + Операция с сокетом не поддерживается + + + Socket operation timed out + Время на операцию с сокетом истекло + + + Socket is not connected + Сокет не подключён + + + Network unreachable + Сеть недоступна + + + + QAbstractSpinBox + + &Step up + Шаг вв&ерх + + + Step &down + Шаг вн&из + + + &Select All + &Выделить всё + + + + QAccessibleButton + + Press + Нажмите + + + + QApplication + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + LTR + + + Executable '%1' requires Qt %2, found Qt %3. + Программный модуль '%1' требует Qt %2, найдена версия %3. + + + Incompatible Qt Library Error + Ошибка совместимости библиотеки Qt + + + Activate + Активировать + + + Activates the program's main window + Активирует главное окно программы + + + + QAxSelect + + Select ActiveX Control + Выбор компоненты ActiveX + + + OK + Выбрать + + + &Cancel + От&мена + + + COM &Object: + &Объект COM: + + + + QCheckBox + + Uncheck + Снять отметку + + + Check + Отметить + + + Toggle + Переключить + + + + QColorDialog + + Hu&e: + &Тон: + + + &Sat: + &Нас: + + + &Val: + &Ярк: + + + &Red: + &Красный: + + + &Green: + &Зелёный: + + + Bl&ue: + С&иний: + + + A&lpha channel: + &Альфа-канал: + + + Select Color + Выбор цвета + + + &Basic colors + &Основные цвета + + + &Custom colors + &Пользовательские цвета + + + &Add to Custom Colors + &Добавить к пользовательским цветам + + + + QComboBox + + Open + Открыть + + + False + Нет + + + True + Да + + + Close + Закрыть + + + + QCoreApplication + + %1: key is empty + QSystemSemaphore + %1: пустой ключ + + + %1: unable to make key + QSystemSemaphore + %1: невозможно создать ключ + + + %1: ftok failed + QSystemSemaphore + %1: ошибка ftok + + + %1: already exists + QSystemSemaphore + %1: уже существует + + + %1: does not exist + QSystemSemaphore + %1: не существует + + + %1: out of resources + QSystemSemaphore + %1: недостаточно ресурсов + + + %1: unknown error %2 + QSystemSemaphore + %1: неизвестная ошибка %2 + + + + QDB2Driver + + Unable to connect + Невозможно соединиться + + + Unable to commit transaction + Невозможно завершить транзакцию + + + Unable to rollback transaction + Невозможно отозвать транзакцию + + + Unable to set autocommit + Невозможно установить автозавершение транзакций + + + + QDB2Result + + Unable to execute statement + Невозможно выполнить выражение + + + Unable to prepare statement + Невозможно подготовить выражение + + + Unable to bind variable + Невозможно привязать значение + + + Unable to fetch record %1 + Невозможно получить запись %1 + + + Unable to fetch next + Невозможно получить следующую строку + + + Unable to fetch first + Невозможно получить первую строку + + + + QDateTimeEdit + + AM + AM + + + am + am + + + PM + PM + + + pm + pm + + + + QDial + + QDial + QDial + + + SpeedoMeter + SpeedoMeter + + + SliderHandle + SliderHandle + + + + QDialog + + What's This? + Что это? + + + Done + Готово + + + + QDialogButtonBox + + OK + ОК + + + Save + Сохранить + + + &Save + &Сохранить + + + Open + Открыть + + + Cancel + Отмена + + + &Cancel + От&мена + + + Close + Закрыть + + + &Close + &Закрыть + + + Apply + Применить + + + Reset + Сбросить + + + Help + Справка + + + Don't Save + Не сохранять + + + Discard + Отклонить + + + &Yes + &Да + + + Yes to &All + Да для &всех + + + &No + &Нет + + + N&o to All + Н&ет для всех + + + Save All + Сохранить все + + + Abort + Прервать + + + Retry + Повторить + + + Ignore + Пропустить + + + Restore Defaults + Восстановить значения + + + Close without Saving + Закрыть без сохранения + + + &OK + &ОК + + + + QDirModel + + Name + Имя + + + Size + Размер + + + Kind + Match OS X Finder + Вид + + + Type + All other platforms + Тип + + + Date Modified + Дата изменения + + + + QDockWidget + + Close + Закрыть + + + Dock + Прикрепить + + + Float + Открепить + + + + QDoubleSpinBox + + More + Больше + + + Less + Меньше + + + + QErrorMessage + + &Show this message again + &Показывать это сообщение в дальнейшем + + + &OK + &Закрыть + + + Debug Message: + Отладочное сообщение: + + + Warning: + Предупреждение: + + + Fatal Error: + Критическая ошибка: + + + + QFile + + Destination file exists + Файл существует + + + Will not rename sequential file using block copy + Последовательный файл не будет переименован с использованием поблочного копирования + + + Cannot remove source file + Невозможно удалить исходный файл + + + Cannot open %1 for input + Невозможно открыть %1 для ввода + + + Cannot open for output + Невозможно открыть для вывода + + + Failure to write block + Сбой записи блока + + + Cannot create %1 for output + Невозможно создать %1 для вывода + + + + QFileDialog + + All Files (*) + Все файлы (*) + + + Back + Назад + + + List View + Список + + + Detail View + Подробный вид + + + File + Файл + + + Open + Открыть + + + Save As + Сохранить как + + + &Open + &Открыть + + + &Save + &Сохранить + + + Recent Places + Недавние документы + + + &Rename + &Переименовать + + + &Delete + &Удалить + + + Show &hidden files + Показать ск&рытые файлы + + + New Folder + Новая папка + + + Find Directory + Найти каталог + + + Directories + Каталоги + + + All Files (*.*) + Все файлы (*.*) + + + Directory: + Каталог: + + + %1 already exists. +Do you want to replace it? + %1 уже существует. +Хотите заменить его? + + + %1 +File not found. +Please verify the correct file name was given. + %1 +Файл не найден. +Проверьте правильность указанного имени файла. + + + My Computer + Мой компьютер + + + Parent Directory + Родительский каталог + + + Files of type: + Типы файлов: + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Каталог не найден. +Проверьте правильность указанного имени каталога. + + + '%1' is write protected. +Do you want to delete it anyway? + '%1' защищён от записи. +Всё-равно хотите удалить? + + + Are sure you want to delete '%1'? + Вы действительно хотите удалить '%1'? + + + Could not delete directory. + Не удалось удалить каталог. + + + Drive + Диск + + + File Folder + Match Windows Explorer + Папка с файлами + + + Folder + All other platforms + Папка + + + Alias + Mac OS X Finder + Псевдоним + + + Shortcut + All other platforms + Ярлык + + + Unknown + Неизвестный + + + Show + Показать + + + Forward + Вперёд + + + &New Folder + &Новая папка + + + &Choose + &Выбрать + + + Remove + Удалить + + + File &name: + &Имя файла: + + + Look in: + Перейти к: + + + Create New Folder + Создать папку + + + + QFileSystemModel + + %1 TB + %1 Тб + + + %1 GB + %1 Гб + + + %1 MB + %1 Мб + + + %1 KB + %1 Кб + + + %1 bytes + %1 байт + + + Invalid filename + Некорректное имя файла + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>Имя "%1" не может быть использовано.</b><p>Попробуйте использовать имя меньшей длины и/или без символов пунктуации. + + + Name + Имя + + + Size + Размер + + + Kind + Match OS X Finder + Вид + + + Type + All other platforms + Тип + + + Date Modified + Дата изменения + + + My Computer + Мой компьютер + + + Computer + Компьютер + + + %1 byte(s) + %1 байт(ов) + + + + QFontDatabase + + Normal + Обычный + + + Bold + Жирный + + + Demi Bold + Полужирный + + + Black + Чёрный + + + Demi + Средний + + + Light + Светлый + + + Italic + Курсив + + + Oblique + Наклонный + + + Any + Любая + + + Latin + Латиница + + + Greek + Греческая + + + Cyrillic + Кириллица + + + Armenian + Армянская + + + Hebrew + Иврит + + + Arabic + Арабская + + + Syriac + Сирийская + + + Thaana + Таана + + + Devanagari + Деванагири + + + Bengali + Бенгальская + + + Gurmukhi + Гурмукхи + + + Gujarati + Гуджарати + + + Oriya + Ория + + + Tamil + Тамильская + + + Telugu + Телугу + + + Kannada + Каннада + + + Malayalam + Малайялам + + + Sinhala + Сингальская + + + Thai + Тайская + + + Lao + Лаосская + + + Tibetan + Тибетская + + + Myanmar + Мьянма + + + Georgian + Грузинская + + + Khmer + Кхмерская + + + Simplified Chinese + Китайская упрощенная + + + Traditional Chinese + Китайская традиционная + + + Japanese + Японская + + + Korean + Корейская + + + Vietnamese + Вьетнамская + + + Symbol + Символьная + + + Ogham + Огамическая + + + Runic + Руническая + + + N'Ko + ## + + + + QFontDialog + + &Font + &Шрифт + + + Font st&yle + &Начертание + + + &Size + &Размер + + + Effects + Эффекты + + + Stri&keout + Зачёр&кнутый + + + &Underline + П&одчёркнутый + + + Sample + Пример + + + Select Font + Выбор шрифта + + + Wr&iting System + &Система письма + + + + QFtp + + Host %1 found + Узел %1 найден + + + Host found + Узел найден + + + Connected to host %1 + Установлено соединение с узлом %1 + + + Connected to host + Соединение с узлом установлено + + + Connection to %1 closed + Соединение с %1 закрыто + + + Connection closed + Соединение закрыто + + + Host %1 not found + Узел %1 не найден + + + Connection refused to host %1 + В соединении с узлом %1 отказано + + + Connection timed out to host %1 + Время на соединение с узлом %1 истекло + + + Unknown error + Неизвестная ошибка + + + Connecting to host failed: +%1 + Не удалось соединиться с узлом: +%1 + + + Login failed: +%1 + Не удалось авторизоваться: +%1 + + + Listing directory failed: +%1 + Не удалось прочитать каталог: +%1 + + + Changing directory failed: +%1 + Не удалось сменить каталог: +%1 + + + Downloading file failed: +%1 + Не удалось загрузить файл: +%1 + + + Uploading file failed: +%1 + Не удалось отгрузить файл: +%1 + + + Removing file failed: +%1 + Не удалось удалить файл: +%1 + + + Creating directory failed: +%1 + Не удалось создать каталог: +%1 + + + Removing directory failed: +%1 + Не удалось удалить каталог: +%1 + + + Not connected + Соединение не установлено + + + Connection refused for data connection + Отказ в соединении для передачи данных + + + + QHostInfo + + Unknown error + Неизвестная ошибка + + + + QHostInfoAgent + + Host not found + Узел не найден + + + Unknown address type + Неизвестный тип адреса + + + Unknown error + Неизвестная ошибка + + + No host name given + Имя узла не задано + + + Invalid hostname + Некорректное имя узла + + + + QHttp + + Connection refused + Отказано в соединении + + + Host %1 not found + Узел %1 не найден + + + Wrong content length + Неверная длина содержимого + + + HTTP request failed + HTTP-запрос не удался + + + Host %1 found + Узел %1 найден + + + Host found + Узел найден + + + Connected to host %1 + Установлено соединение с узлом %1 + + + Connected to host + Соединение с узлом установлено + + + Connection to %1 closed + Соединение с узлом %1 закрыто + + + Connection closed + Соединение закрыто + + + Unknown error + Неизвестная ошибка + + + Request aborted + Запрос прерван + + + No server set to connect to + Не указан сервер для подключения + + + Server closed connection unexpectedly + Сервер неожиданно разорвал соединение + + + Invalid HTTP response header + Некорректный HTTP-заголовок ответа + + + Unknown authentication method + Неизвестный метод авторизации + + + Invalid HTTP chunked body + Некорректное HTTP-фрагментирование данных + + + Error writing response to device + Ошибка записи ответа на устройство + + + Proxy authentication required + Требуется авторизация на прокси-сервере + + + Authentication required + Требуется авторизация + + + Proxy requires authentication + Прокси-сервер требует авторизацию + + + Host requires authentication + Узел требует авторизацию + + + Data corrupted + Данные повреждены + + + SSL handshake failed + Квитирование SSL не удалось + + + Unknown protocol specified + Указан неизвестный протокол + + + Connection refused (or timed out) + В соединении отказано (или время ожидания истекло) + + + HTTPS connection requested but SSL support not compiled in + Запрошено соединение по протоколу HTTPS, но поддержка SSL не скомпилирована + + + + QHttpSocketEngine + + Did not receive HTTP response from proxy + Не получен HTTP-ответ от прокси-сервера + + + Error parsing authentication request from proxy + Ошибка разбора запроса авторизации от прокси-сервера + + + Authentication required + Требуется авторизация + + + Proxy denied connection + Прокси-сервер запретил соединение + + + Error communicating with HTTP proxy + Ошибка обмена данными с прокси-сервером HTTP + + + Proxy server not found + Прокси-сервер не найден + + + Proxy connection refused + В соединении прокси-сервером отказано + + + Proxy server connection timed out + Время на соединение с прокси-сервером истекло + + + Proxy connection closed prematurely + Соединение с прокси-сервером неожиданно закрыто + + + + QIBaseDriver + + Error opening database + Ошибка открытия базы данных + + + Could not start transaction + Не удалось начать транзакцию + + + Unable to commit transaction + Невозможно завершить транзакцию + + + Unable to rollback transaction + Невозможно отозвать транзакцию + + + + QIBaseResult + + Unable to create BLOB + Невозможно создать BLOB + + + Unable to write BLOB + Невозможно записать BLOB + + + Unable to open BLOB + Невозможно открыть BLOB + + + Unable to read BLOB + Невозможно прочитать BLOB + + + Could not find array + Не удалось найти массив + + + Could not get array data + Не удалось найти данные массива + + + Could not get query info + Не удалось найти информацию о запросе + + + Could not start transaction + Не удалось начать транзакцию + + + Unable to commit transaction + Невозможно завершить транзакцию + + + Could not allocate statement + Не удалось получить ресурсы для создания выражения + + + Could not prepare statement + Не удалось подготовить выражение + + + Could not describe input statement + Не удалось описать входящее выражение + + + Could not describe statement + Не удалось описать выражение + + + Unable to close statement + Невозможно закрыть выражение + + + Unable to execute query + Невозможно выполнить запрос + + + Could not fetch next item + Не удалось получить следующий элемент + + + Could not get statement info + Не удалось найти информацию о выражении + + + + QIODevice + + Permission denied + Доступ запрещён + + + Too many open files + Слишком много открытых файлов + + + No such file or directory + Файл или каталог не существует + + + No space left on device + Нет свободного места на устройстве + + + Unknown error + Неизвестная ошибка + + + + QInputContext + + XIM + Метод ввода X-сервера + + + FEP + Метод ввода S60 FEP + + + XIM input method + Метод ввода X-сервера + + + Windows input method + Метод ввода Windows + + + Mac OS X input method + Метод ввода Mac OS X + + + S60 FEP input method + Метод ввода S60 FEP + + + + QInputDialog + + Enter a value: + Укажите значение: + + + + QLibrary + + Could not mmap '%1': %2 + Не удалось выполнить mmap '%1': %2 + + + Plugin verification data mismatch in '%1' + Проверочная информация для модуля '%1' не совпадает + + + Could not unmap '%1': %2 + Не удалось выполнить unmap '%1': %2 + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + Модуль '%1' использует несоместимую библиотеку Qt. (%2.%3.%4) [%5] + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + Модуль '%1' использует несоместимую библиотеку Qt. Ожидается ключ "%2", но получен ключ "%3" + + + Unknown error + Неизвестная ошибка + + + The shared library was not found. + Динамическая библиотека не найдена. + + + The file '%1' is not a valid Qt plugin. + Файл '%1' - не является корректным модулем Qt. + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + Модуль '%1' использует несоместимую библиотеку Qt. (Невозможно совместить релизные и отладочные библиотеки.) + + + Cannot load library %1: %2 + Невозможно загрузить библиотеку %1: %2 + + + Cannot unload library %1: %2 + Невозможно выгрузить библиотеку %1: %2 + + + Cannot resolve symbol "%1" in %2: %3 + Невозможно разрешить символ "%1" в %2: %3 + + + + QLineEdit + + Select All + Выделить всё + + + &Undo + &Отменить действие + + + &Redo + &Повторить действие + + + Cu&t + &Вырезать + + + &Copy + &Копировать + + + &Paste + В&ставить + + + Delete + Удалить + + + + QLocalServer + + %1: Name error + %1: Некорректное имя + + + %1: Permission denied + %1: Доступ запрещён + + + %1: Address in use + %1: Адрес используется + + + %1: Unknown error %2 + %1: Неизвестная ошибка %2 + + + + QLocalSocket + + %1: Connection refused + %1: Отказано в соединении + + + %1: Remote closed + %1: Закрыто удаленной стороной + + + %1: Invalid name + %1: Некорректное имя + + + %1: Socket access error + %1: Ошибка обращения к сокету + + + %1: Socket resource error + %1: Ошибка выделения ресурсов сокета + + + %1: Socket operation timed out + %1: Время на операцию с сокетом истекло + + + %1: Datagram too large + %1: Датаграмма слишком большая + + + %1: Connection error + %1: Ошибка соединения + + + %1: The socket operation is not supported + %1: Операция с сокетом не поддерживается + + + %1: Unknown error + %1: Неизвестная ошибка + + + %1: Unknown error %2 + %1: Неизвестная ошибка %2 + + + + QMYSQLDriver + + Unable to open database ' + Невозможно открыть базу данных ' + + + Unable to connect + Невозможно соединиться + + + Unable to begin transaction + Невозможно начать транзакцию + + + Unable to commit transaction + Невозможно завершить транзакцию + + + Unable to rollback transaction + Невозможно отозвать транзакцию + + + + QMYSQLResult + + Unable to fetch data + Невозможно получить данные + + + Unable to execute query + Невозможно выполнить запрос + + + Unable to store result + Невозможно сохранить результат + + + Unable to prepare statement + Невозможно подготовить выражение + + + Unable to reset statement + Невозможно сбросить выражение + + + Unable to bind value + Невозможно привязать значение + + + Unable to execute statement + Невозможно выполнить выражение + + + Unable to bind outvalues + Невозможно привязать результирующие значения + + + Unable to store statement results + Невозможно сохранить результаты выполнения выражения + + + Unable to execute next query + Невозможно выполнить следующий запрос + + + Unable to store next result + Невозможно сохранить следующий результат + + + + QMdiArea + + (Untitled) + (Неозаглавлено) + + + + QMdiSubWindow + + %1 - [%2] + %1 - [%2] + + + Close + Закрыть + + + Minimize + Свернуть + + + Restore Down + Восстановить + + + &Restore + &Восстановить + + + &Move + &Переместить + + + &Size + &Размер + + + Mi&nimize + &Свернуть + + + Ma&ximize + Р&аспахнуть + + + Stay on &Top + Оставаться &сверху + + + &Close + &Закрыть + + + Maximize + Распахнуть + + + Unshade + Восстановить из заголовка + + + Shade + Свернуть в заголовок + + + Restore + Восстановить + + + Help + Справка + + + Menu + Меню + + + - [%1] + - [%1] + + + + QMenu + + Close + Закрыть + + + Open + Открыть + + + Execute + Выполнить + + + + QMenuBar + + Actions + Действия + + + + QMessageBox + + OK + Закрыть + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>О Qt</h3><p>Данная программа использует Qt версии %1.</p> + + + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <p>Qt - это инструментарий для разработки кроссплатформенных приложений на C++.</p><p>Qt предоставляет совместимость на уровне исходных текстов между MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux и всеми популярными коммерческими вариантами Unix. Также Qt доступна для встраиваемых устройств в виде Qt для Embedded Linux и Qt для Windows CE.</p><p>Qt доступна под тремя различными лицензиями, разработанными для удовлетворения различных требований.</p><p>Qt под нашей коммерческой лицензией предназначена для развития проприетарного/коммерческого программного обеспечения, когда Вы не желаете предоставлять исходные тексты третьим сторонам, или в случае невозможности принятия условий лицензий GNU LGPL версии 2.1 или GNU GPL версии 3.0.</p><p>Qt под лицензией GNU LGPL версии 2.1 предназначена для разработки программного обеспечения с открытыми исходными текстами или коммерческого программного обеспечения при соблюдении условий лицензии GNU LGPL версии 2.1.</p><p>Qt под лицензией GNU General Public License версии 3.0 предназначена для разработки программных приложений в тех случаях, когда Вы хотели бы использовать такие приложения в сочетании с программным обеспечением на условиях лицензии GNU GPL с версии 3.0 или если Вы готовы соблюдать условия лицензии GNU GPL версии 3.0.</p><p>Обратитесь к <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> для обзора лицензий Qt.</p><p>Copyright (C) 2010 Корпорация Nokia и/или её дочерние подразделения.</p><p>Qt - продукт компании Nokia. Обратитесь к <a href="http://qt.nokia.com/">qt.nokia.com</a> для получения дополнительной информации.</p> + + + About Qt + О Qt + + + Help + Справка + + + Show Details... + Показать подробности... + + + Hide Details... + Скрыть подробности... + + + + QMultiInputContext + + Select IM + Выбор режима ввода + + + + QMultiInputContextPlugin + + Multiple input method switcher + Переключатель режима множественного ввода + + + Multiple input method switcher that uses the context menu of the text widgets + Переключатель режима множественного ввода, используемый в контекстном меню текстовых виджетов + + + + QNativeSocketEngine + + The remote host closed the connection + Удалённый узел закрыл соединение + + + Network operation timed out + Время на сетевую операцию истекло + + + Out of resources + Недостаточно ресурсов + + + Unsupported socket operation + Операция с сокетом не поддерживается + + + Protocol type not supported + Протокол не поддерживается + + + Invalid socket descriptor + Некорректный дескриптор сокета + + + Network unreachable + Сеть недоступна + + + Permission denied + Доступ запрещён + + + Connection timed out + Время на соединение истекло + + + Connection refused + Отказано в соединении + + + The bound address is already in use + Адрес уже используется + + + The address is not available + Адрес недоступен + + + The address is protected + Адрес защищён + + + Unable to send a message + Невозможно отправить сообщение + + + Unable to receive a message + Невозможно получить сообщение + + + Unable to write + Невозможно записать + + + Network error + Ошибка сети + + + Another socket is already listening on the same port + Другой сокет уже прослушивает этот порт + + + Unable to initialize non-blocking socket + Невозможно инициализировать не-блочный сокет + + + Unable to initialize broadcast socket + Невозможно инициализировать широковещательный сокет + + + Attempt to use IPv6 socket on a platform with no IPv6 support + Попытка использовать IPv6 на платформе, не поддерживающей IPv6 + + + Host unreachable + Узел недоступен + + + Datagram was too large to send + Датаграмма слишком большая для отправки + + + Operation on non-socket + Операция с не-сокетом + + + Unknown error + Неизвестная ошибка + + + The proxy type is invalid for this operation + Некорректный тип прокси-сервера для данной операции + + + + QNetworkAccessCacheBackend + + Error opening %1 + Ошибка открытия %1 + + + + QNetworkAccessDebugPipeBackend + + Write error writing to %1: %2 + Ошибка записи в %1: %2 + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + Запрос на открытие файла вне файловой системы %1 + + + Error opening %1: %2 + Ошибка открытия %1: %2 + + + Write error writing to %1: %2 + Ошибка записи в %1: %2 + + + Cannot open %1: Path is a directory + Невозможно открыть %1: Указан путь к каталогу + + + Read error reading from %1: %2 + Ошибка чтения из %1: %2 + + + + QNetworkAccessFtpBackend + + No suitable proxy found + Подходящий прокси-сервер не найден + + + Cannot open %1: is a directory + Невозможно открыть %1: Указан путь к каталогу + + + Logging in to %1 failed: authentication required + Соединение с %1 не удалось: требуется авторизация + + + Error while downloading %1: %2 + Ошибка в процессе загрузки %1: %2 + + + Error while uploading %1: %2 + Ошибка в процессе отгрузки %1: %2 + + + + QNetworkAccessHttpBackend + + No suitable proxy found + Подходящий прокси-сервер не найден + + + + QNetworkReply + + Error downloading %1 - server replied: %2 + Ошибка загрузки %1 - ответ сервера: %2 + + + Protocol "%1" is unknown + Неизвестный протокол "%1" + + + + QNetworkReplyImpl + + Operation canceled + Операция отменена + + + + QOCIDriver + + Unable to logon + Невозможно авторизоваться + + + Unable to initialize + QOCIDriver + Невозможно инициализировать + + + Unable to begin transaction + Невозможно начать транзакцию + + + Unable to commit transaction + Невозможно завершить транзакцию + + + Unable to rollback transaction + Невозможно отозвать транзакцию + + + + QOCIResult + + Unable to bind column for batch execute + Невозможно привязать столбец для пакетного выполнения + + + Unable to execute batch statement + Невозможно выполнить пакетное выражение + + + Unable to goto next + Невозможно перейти к следующей строке + + + Unable to alloc statement + Невозможно создать выражение + + + Unable to prepare statement + Невозможно подготовить выражение + + + Unable to get statement type + Невозможно определить тип выражения + + + Unable to bind value + Невозможно привязать результирующие значения + + + Unable to execute statement + Невозможно выполнить выражение + + + + QODBCDriver + + Unable to connect + Невозможно соединиться + + + Unable to disable autocommit + Невозможно отключить автозавершение транзакций + + + Unable to commit transaction + Невозможно завершить транзакцию + + + Unable to rollback transaction + Невозможно отозвать транзакцию + + + Unable to enable autocommit + Невозможно включить автозавершение транзакций + + + Unable to connect - Driver doesn't support all functionality required + Невозможно соединиться - Драйвер не поддерживает требуемый функционал + + + + QODBCResult + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: Невозможно установить 'SQL_CURSOR_STATIC' атрибутом выражение. Проверьте настройки драйвера ODBC + + + Unable to execute statement + Невозможно выполнить выражение + + + Unable to fetch next + Невозможно получить следующую строку + + + Unable to prepare statement + Невозможно подготовить выражение + + + Unable to bind variable + Невозможно привязать значение + + + Unable to fetch last + Невозможно получить последнюю строку + + + Unable to fetch + Невозможно получить данные + + + Unable to fetch first + Невозможно получить первую строку + + + Unable to fetch previous + Невозможно получить предыдущую строку + + + + QObject + + Invalid hostname + Некорректное имя узла + + + Operation not supported on %1 + Операция не поддерживается для %1 + + + Invalid URI: %1 + Некорректный URI: %1 + + + Socket error on %1: %2 + Ошика сокета для %1: %2 + + + Remote host closed the connection prematurely on %1 + Удалённый узел неожиданно прервал соединение для %1 + + + No host name given + Имя узла не задано + + + + QPPDOptionsModel + + Name + Имя + + + Value + Значение + + + + QPSQLDriver + + Unable to connect + Невозможно соединиться + + + Could not begin transaction + Не удалось начать транзакцию + + + Could not commit transaction + Не удалось завершить транзакцию + + + Could not rollback transaction + Не удалось отозвать транзакцию + + + Unable to subscribe + Невозможно подписаться + + + Unable to unsubscribe + Невозможно отписаться + + + + QPSQLResult + + Unable to create query + Невозможно создать запрос + + + Unable to prepare statement + Невозможно подготовить выражение + + + + QPageSetupWidget + + Centimeters (cm) + Сантиметры (cm) + + + Millimeters (mm) + Миллиметры (mm) + + + Inches (in) + Дюймы (in) + + + Points (pt) + Точки (pt) + + + Form + Форма + + + Paper + Бумага + + + Page size: + Размер страницы: + + + Width: + Ширина: + + + Height: + Высота: + + + Paper source: + Источник бумаги: + + + Orientation + Ориентация + + + Portrait + Книжная + + + Landscape + Альбомная + + + Reverse landscape + Перевёрнутая альбомная + + + Reverse portrait + Перевёрнутая книжная + + + Margins + Поля + + + top margin + верхнее поле + + + left margin + левое поле + + + right margin + правое поле + + + bottom margin + нижнее поле + + + + QPluginLoader + + Unknown error + Неизвестная ошибка + + + The plugin was not loaded. + Модуль не был загружен. + + + + QPrintDialog + + locally connected + соединено локально + + + Aliases: %1 + Псевдонимы: %1 + + + unknown + неизвестно + + + OK + Закрыть + + + Print all + Печатать все + + + Print range + Печатать диапазон + + + A0 (841 x 1189 mm) + A0 (841 x 1189 мм) + + + A1 (594 x 841 mm) + A1 (594 x 841 мм) + + + A2 (420 x 594 mm) + A2 (420 x 594 мм) + + + A3 (297 x 420 mm) + A3 (297 x 420 мм) + + + A5 (148 x 210 mm) + A5 (148 x 210 мм) + + + A6 (105 x 148 mm) + A6 (105 x 148 мм) + + + A7 (74 x 105 mm) + A7 (74 x 105 мм) + + + A8 (52 x 74 mm) + A8 (52 x 74 мм) + + + A9 (37 x 52 mm) + A9 (37 x 52 мм) + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 мм) + + + B1 (707 x 1000 mm) + B1 (707 x 1000 мм) + + + B2 (500 x 707 mm) + B2 (500 x 707 мм) + + + B3 (353 x 500 mm) + B3 (353 x 500 мм) + + + B4 (250 x 353 mm) + B4 (250 x 353 мм) + + + B6 (125 x 176 mm) + B6 (125 x 176 мм) + + + B7 (88 x 125 mm) + B7 (88 x 125 мм) + + + B8 (62 x 88 mm) + B8 (62 x 88 мм) + + + B9 (44 x 62 mm) + B9 (44 x 62 мм) + + + B10 (31 x 44 mm) + B10 (31 x 44 мм) + + + C5E (163 x 229 mm) + C5E (163 x 229 мм) + + + DLE (110 x 220 mm) + DLE (110 x 220 мм) + + + Folio (210 x 330 mm) + Folio (210 x 330 мм) + + + Ledger (432 x 279 mm) + Ledger (432 x 279 мм) + + + Tabloid (279 x 432 mm) + Tabloid (279 x 432 мм) + + + US Common #10 Envelope (105 x 241 mm) + Конверт US #10 (105x241 мм) + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 мм, 8.26 x 11.7 дюймов) + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 мм, 6.93 x 9.84 дюймов) + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (191 x 254 мм, 7.5 x 10 дюймов) + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (216 x 356 мм, 8.5 x 14 дюймов) + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (216 x 279 мм, 8.5 x 11 дюймов) + + + Print selection + Выделенный фрагмент + + + Print + Печать + + + Print To File ... + Печать в файл ... + + + File %1 is not writable. +Please choose a different file name. + %1 недоступен для записи. +Выберите другое имя файла. + + + %1 already exists. +Do you want to overwrite it? + %1 уже существует. +Хотите заменить его? + + + File exists + Файл существует + + + <qt>Do you want to overwrite it?</qt> + <qt>Хотите заменить?</qt> + + + %1 is a directory. +Please choose a different file name. + %1 - это каталог. +Выберите другое имя файла. + + + The 'From' value cannot be greater than the 'To' value. + Значение 'от' не может быть больше значения 'до'. + + + A0 + A0 + + + A1 + A1 + + + A2 + A2 + + + A3 + A3 + + + A4 + A4 + + + A5 + A5 + + + A6 + A6 + + + A7 + A7 + + + A8 + A8 + + + A9 + A9 + + + B0 + B0 + + + B1 + B1 + + + B2 + B2 + + + B3 + B3 + + + B4 + B4 + + + B5 + B5 + + + B6 + B6 + + + B7 + B7 + + + B8 + B8 + + + B9 + B9 + + + B10 + B10 + + + C5E + C5E + + + DLE + DLE + + + Executive + Executive + + + Folio + Folio + + + Ledger + Ledger + + + Legal + Legal + + + Letter + Letter + + + Tabloid + Tabloid + + + US Common #10 Envelope + US Common #10 Envelope + + + Custom + Пользовательский + + + &Options >> + &Параметры >> + + + &Options << + &Параметры << + + + Print to File (PDF) + Печать в файл (PDF) + + + Print to File (Postscript) + Печать в файл (Postscript) + + + Local file + Локальный файл + + + Write %1 file + Запись %1 файла + + + &Print + &Печать + + + + QPrintPreviewDialog + + %1% + %1% + + + Print Preview + Просмотр печати + + + Next page + Следующая страница + + + Previous page + Предыдущая страница + + + First page + Первая страница + + + Last page + Последняя страница + + + Fit width + По ширине + + + Fit page + На всю страницу + + + Zoom in + Увеличить + + + Zoom out + Уменьшить + + + Portrait + Книжная + + + Landscape + Альбомная + + + Show single page + Показать одну страницу + + + Show facing pages + Показать титульные страницы + + + Show overview of all pages + Показать обзор всех страниц + + + Print + Печать + + + Page setup + Параметры страницы + + + Close + + + + Export to PDF + Экспорт в PDF + + + Export to PostScript + Экспорт в Postscript + + + Page Setup + Параметры страницы + + + + QPrintPropertiesWidget + + Form + Форма + + + Page + Страница + + + Advanced + Дополнительно + + + + QPrintSettingsOutput + + Form + Форма + + + Copies + Копии + + + Print range + Диапазон печати + + + Print all + Все + + + Pages from + Страницы от + + + to + до + + + Selection + Выделенный фрагмент + + + Output Settings + Настройки вывода + + + Copies: + Количество копий: + + + Collate + Разобрать про копиям + + + Reverse + Обратный порядок + + + Options + Параметры + + + Color Mode + Режим цвета + + + Color + Цвет + + + Grayscale + Оттенки серого + + + Duplex Printing + Двусторонняя печать + + + None + Нет + + + Long side + По длинной стороне + + + Short side + По короткой стороне + + + + QPrintWidget + + Form + Форма + + + Printer + Принтер + + + &Name: + &Название: + + + P&roperties + С&войства + + + Location: + Расположение: + + + Preview + Просмотр + + + Type: + Тип: + + + Output &file: + Вывод в &файл: + + + ... + ... + + + + QProcess + + Could not open input redirection for reading + Не удалось открыть перенаправление ввода для чтения + + + Could not open output redirection for writing + Не удалось открыть перенаправление вывода для записи + + + Resource error (fork failure): %1 + Ошибка выделения ресурсов (сбой fork): %1 + + + Process operation timed out + Время на операцию с процессом истекло + + + Error reading from process + Ошибка получения данных от процесса + + + Error writing to process + Ошибка отправки данных процессу + + + Process crashed + Процесс завершился с ошибкой + + + No program defined + Программа не указана + + + Process failed to start: %1 + Не удалось запустить процесс: %1 + + + + QProgressDialog + + Cancel + Отмена + + + + QPushButton + + Open + Открыть + + + + QRadioButton + + Check + Отметить + + + + QRegExp + + no error occurred + ошибки отсутствуют + + + disabled feature used + использование отключённых возможностей + + + bad char class syntax + неправильный синтаксис класса символов + + + bad lookahead syntax + неправильный предварительный синтаксис + + + bad repetition syntax + неправильный синтаксис повторения + + + invalid octal value + некорректное восьмеричное значение + + + missing left delim + отсутствует левый разделитель + + + unexpected end + неожиданный конец + + + met internal limit + достигнуто внутреннее ограничение + + + invalid interval + некорректный интервал + + + invalid category + некорректная категория + + + + QSQLite2Driver + + Error opening database + Ошибка открытия базы данных + + + Unable to begin transaction + Невозможно начать транзакцию + + + Unable to commit transaction + Невозможно завершить транзакцию + + + Unable to rollback transaction + Невозможно отозвать транзакцию + + + + QSQLite2Result + + Unable to fetch results + Невозможно получить результаты + + + Unable to execute statement + Невозможно выполнить выражение + + + + QSQLiteDriver + + Error opening database + Ошибка открытия базы данных + + + Error closing database + Ошибка закрытия базы данных + + + Unable to begin transaction + Невозможно начать транзакцию + + + Unable to commit transaction + Невозможно завершить транзакцию + + + Unable to rollback transaction + Невозможно отозвать транзакцию + + + + QSQLiteResult + + Unable to fetch row + Невозможно получить строку + + + Unable to execute statement + Невозможно выполнить выражение + + + Unable to reset statement + Невозможно сбросить выражение + + + Unable to bind parameters + Невозможно привязать параметр + + + Parameter count mismatch + Количество параметров не совпадает + + + No query + Отсутствует запрос + + + + QScriptBreakpointsModel + + ID + ID + + + Location + Размещение + + + Condition + Условие + + + Ignore-count + Пропустить + + + Single-shot + Один раз + + + Hit-count + Попаданий + + + + QScriptBreakpointsWidget + + New + Новая + + + Delete + Удалить + + + + QScriptDebugger + + Go to Line + Перейти к строке + + + Line: + Строка: + + + Interrupt + Прервать + + + Shift+F5 + Shift+F5 + + + Continue + Продолжить + + + F5 + F5 + + + Step Into + Войти в + + + F11 + F11 + + + Step Over + Перейти через + + + F10 + F10 + + + Step Out + Выйти из функции + + + Shift+F11 + Shift+F11 + + + Run to Cursor + Выполнить до курсора + + + Ctrl+F10 + Ctrl+F10 + + + Run to New Script + Выполнить до нового сценария + + + Toggle Breakpoint + Установить/убрать точку останова + + + F9 + F9 + + + Clear Debug Output + Очистить отладочный вывод + + + Clear Error Log + Очистить журнал ошибок + + + Clear Console + Очистить консоль + + + &Find in Script... + &Найти в сценарии... + + + Ctrl+F + Ctrl+F + + + Find &Next + Найти &следующее + + + F3 + F3 + + + Find &Previous + Найти &предыдущее + + + Shift+F3 + Shift+F3 + + + Ctrl+G + Ctrl+G + + + Debug + Отладка + + + + QScriptDebuggerCodeFinderWidget + + Close + Закрыть + + + Previous + Предыдущий + + + Next + Следующий + + + Case Sensitive + Учитывать регистр + + + Whole words + Слова целиком + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Поиск с начала + + + + QScriptDebuggerLocalsModel + + Name + Название + + + Value + Значение + + + + QScriptDebuggerStackModel + + Level + Уровень + + + Name + Название + + + Location + Размещение + + + + QScriptEdit + + Toggle Breakpoint + Установить/убрать точку останова + + + Disable Breakpoint + Убрать точку останова + + + Enable Breakpoint + Установить точку останова + + + Breakpoint Condition: + Условие точки останова: + + + + QScriptEngineDebugger + + Loaded Scripts + Загруженные сценарии + + + Breakpoints + Точки останова + + + Stack + Стек + + + Locals + Локальные переменные + + + Console + Консоль + + + Debug Output + Отладочный вывод + + + Error Log + Журнал ошибок + + + Search + Поиск + + + View + Вид + + + Qt Script Debugger + Отладчик сценариев Qt + + + + QScriptNewBreakpointWidget + + Close + Закрыть + + + + QScrollBar + + Scroll here + Прокрутить сюда + + + Left edge + К левой границе + + + Top + Вверх + + + Right edge + К правой границе + + + Bottom + Вниз + + + Page left + На страницу влево + + + Page up + На страницу вверх + + + Page right + На страницу вправо + + + Page down + На страницу вниз + + + Scroll left + Прокрутить влево + + + Scroll up + Прокрутить вверх + + + Scroll right + Прокрутить вправо + + + Scroll down + Прокрутить вниз + + + Line up + На строку вверх + + + Position + Положение + + + Line down + На строку вниз + + + + QSharedMemory + + %1: create size is less then 0 + %1: размер меньше нуля + + + %1: unable to lock + %1: невозможно заблокировать + + + %1: unable to unlock + %1: невозможно разблокировать + + + %1: permission denied + %1: доступ запрещён + + + %1: already exists + %1: уже существует + + + %1: doesn't exists + %1: не существует + + + %1: out of resources + %1: недостаточно ресурсов + + + %1: unknown error %2 + %1: неизвестная ошибка %2 + + + %1: key is empty + %1: пустой ключ + + + %1: ftok failed + %1: ошибка ftok + + + %1: unable to make key + %1: невозможно создать ключ + + + %1: doesn't exist + %1: не существует + + + %1: UNIX key file doesn't exist + %1: специфический ключ UNIX не существует + + + %1: system-imposed size restrictions + %1: системой наложены ограничения на размер + + + %1: not attached + %1: не приложенный + + + %1: invalid size + %1: некорректный размер + + + %1: key error + %1: некорректный ключ + + + %1: size query failed + %1: не удалось запросить размер + + + %1: unable to set key on lock + %1: невозможно установить ключ на блокировку + + + + QShortcut + + Space + Пробел + + + Esc + Esc + + + Tab + Tab + + + Backtab + Обратная табуляция + + + Backspace + Backspace + + + Return + Возврат + + + Enter + Ввод + + + Ins + Ins + + + Del + Del + + + Pause + Пауза + + + Print + Распечатать + + + SysReq + SysReq + + + Home + Главный + + + End + Завершить + + + Left + Влево + + + Up + Вверх + + + Right + Вправо + + + Down + Вниз + + + PgUp + PgUp + + + PgDown + PgDown + + + CapsLock + CapsLock + + + NumLock + NumLock + + + ScrollLock + ScrollLock + + + Menu + Меню + + + Help + Справка + + + Back + Назад + + + Forward + Вперёд + + + Stop + Остановить + + + Refresh + Обновить + + + Volume Down + Тише + + + Volume Mute + Выключить звук + + + Volume Up + Громче + + + Bass Boost + Усиление басов + + + Bass Up + Увеличить басы + + + Bass Down + Уменьшить басы + + + Treble Up + Увеличить ВЧ + + + Treble Down + Уменьшить ВЧ + + + Media Play + Воспроизведение + + + Media Stop + Остановить воспроизведение + + + Media Previous + Воспроизвести предыдущее + + + Media Next + Воспроизвести следующее + + + Media Record + Запись + + + Favorites + Избранное + + + Search + Поиск + + + Standby + Режим ожидания + + + Open URL + Открыть URL + + + Launch Mail + Почта + + + Launch Media + Проигрыватель + + + Launch (0) + Запустить (0) + + + Launch (1) + Запустить (1) + + + Launch (2) + Запустить (2) + + + Launch (3) + Запустить (3) + + + Launch (4) + Запустить (4) + + + Launch (5) + Запустить (5) + + + Launch (6) + Запустить (6) + + + Launch (7) + Запустить (7) + + + Launch (8) + Запустить (8) + + + Launch (9) + Запустить (9) + + + Launch (A) + Запустить (A) + + + Launch (B) + Запустить (B) + + + Launch (C) + Запустить (C) + + + Launch (D) + Запустить (D) + + + Launch (E) + Запустить (E) + + + Launch (F) + Запустить (F) + + + Monitor Brightness Up + Увеличить яркость монитора + + + Monitor Brightness Down + Уменьшить яркость монитора + + + Keyboard Light On/Off + Вкл./Откл. подсветку клавиатуры + + + Keyboard Brightness Up + Увеличить яркость клавиатуры + + + Keyboard Brightness Down + Уменьшить яркость клавиатуры + + + Power Off + Откл. питание + + + Wake Up + Проснуться + + + Eject + Извлечь + + + Screensaver + Экранная заставка + + + WWW + WWW + + + Sleep + Спящий режим + + + LightBulb + Лампочка + + + Shop + Магазин + + + History + История + + + Add Favorite + Добавить избранные + + + Hot Links + Активные ссылки + + + Adjust Brightness + Настроить яркость + + + Finance + Финансы + + + Community + Сообщество + + + Audio Rewind + Перемотка аудио назад + + + Back Forward + ## + + + Application Left + Приложение слева + + + Application Right + Приложение справа + + + Book + Книга + + + CD + Компакт-диск + + + Calculator + Калькулятор + + + Clear + Очистить + + + Clear Grab + Очистить буфер + + + Close + Закрыть + + + Copy + Скопировать + + + Cut + Вырезать + + + Display + Дисплей + + + DOS + DOS + + + Documents + Документы + + + Spreadsheet + Электронная таблица + + + Browser + Браузер + + + Game + Игра + + + Go + Перейти + + + iTouch + iTouch + + + Logoff + Выйти + + + Market + Рынок + + + Meeting + Встреча + + + Keyboard Menu + Меню клавиатуры + + + Menu PB + Меню PB + + + My Sites + Мои сайты + + + News + Новости + + + Home Office + Домашний офис + + + Option + Функция + + + Paste + Вставить + + + Phone + Телефон + + + Reply + Ответить + + + Reload + Перезагрузить + + + Rotate Windows + Повернуть Windows + + + Rotation PB + Поворот PB + + + Rotation KB + Поворот KB + + + Save + Сохранить + + + Send + Передать + + + Spellchecker + Проверка правописания + + + Split Screen + Разделить экран + + + Support + Поддержка + + + Task Panel + Панель задач + + + Terminal + Терминал + + + Tools + Инструменты + + + Travel + ## + + + Video + Видео + + + Word Processor + Редактор текста + + + XFer + XFer + + + Zoom In + Увеличить + + + Zoom Out + Уменьшить + + + Away + Отсутствует + + + Messenger + Messenger + + + WebCam + WebCam + + + Mail Forward + Переслать почту + + + Pictures + Фотографии + + + Music + Музыка + + + Battery + Аккумулятор + + + Bluetooth + Bluetooth + + + Wireless + Беспроводной + + + Ultra Wide Band + Сверхширокий диапазон + + + Audio Forward + Перемотка аудио вперед + + + Audio Repeat + Повтор аудио + + + Audio Random Play + Воспроизведение аудио в случайном порядке + + + Subtitle + Подзаголовок + + + Audio Cycle Track + Повтор аудиодорожки + + + Time + Время + + + View + Вид + + + Top Menu + Верхнее меню + + + Suspend + Приостановить + + + Hibernate + Спящий режим + + + Print Screen + Печать экрана + + + Page Up + Страница вверх + + + Page Down + Страница вниз + + + Caps Lock + Caps Lock + + + Num Lock + Num Lock + + + Number Lock + Режим ввода цифр + + + Scroll Lock + Блокировка прокрутки + + + Insert + Вставить + + + Delete + Удалить + + + Escape + Выход + + + System Request + Системный запрос + + + Select + Выбрать + + + Yes + Да + + + No + Нет + + + Context1 + Контекст1 + + + Context2 + Контекст2 + + + Context3 + Контекст3 + + + Context4 + Контекст4 + + + Call + Вызов + + + Hangup + Завершить вызов + + + Flip + Перевернуть + + + Ctrl + Ctrl + + + Shift + Shift + + + Alt + Alt + + + Meta + ## + + + + + + + + + F%1 + F%1 + + + Home Page + Главная страница + + + + QSlider + + Page left + Страница влево + + + Page up + Страница вверх + + + Position + Положение + + + Page right + Страница вправо + + + Page down + Страница вниз + + + + QSocks5SocketEngine + + Connection to proxy refused + В соединении с прокси-сервером отказано + + + Connection to proxy closed prematurely + Соединение с прокси-сервером неожиданно закрыто + + + Proxy host not found + Прокси-сервер не найден + + + Connection to proxy timed out + Время на соединение с прокси-сервером истекло + + + Proxy authentication failed + Не удалось авторизоваться на прокси-сервере + + + Proxy authentication failed: %1 + Не удалось авторизоваться на прокси-сервере: %1 + + + SOCKS version 5 protocol error + Ошибка протокола SOCKSv5 + + + General SOCKSv5 server failure + Ошибка сервере SOCKSv5 + + + Connection not allowed by SOCKSv5 server + Соединение не разрешено сервером SOCKSv5 + + + TTL expired + TTL истекло + + + SOCKSv5 command not supported + Команда SOCKSv5 не поддерживается + + + Address type not supported + Тип адреса не поддерживается + + + Unknown SOCKSv5 proxy error code 0x%1 + Неизвестная ошибка SOCKSv5 прокси (код 0x%1) + + + Network operation timed out + Время на сетевую операцию истекло + + + + QSoftKeyManager + + Ok + ОК + + + Select + Выбрать + + + Done + Готово + + + Options + Параметры + + + Cancel + Отмена + + + Exit + Выход + + + + QSpinBox + + More + Больше + + + Less + Меньше + + + + QSql + + Delete + Удалить + + + Delete this record? + Удалить данную запись? + + + Yes + Да + + + No + Нет + + + Insert + Вставить + + + Update + Обновить + + + Save edits? + Сохранить изменения? + + + Cancel + Отмена + + + Confirm + Подтверждение + + + Cancel your edits? + Отменить изменения? + + + + QSslSocket + + Unable to write data: %1 + Невозможно записать данные: %1 + + + Unable to decrypt data: %1 + Невозможно расшифровать данные: %1 + + + Error while reading: %1 + Ошибка чтения: %1 + + + Error during SSL handshake: %1 + Ошибка квитирования SSL: %1 + + + Error creating SSL context (%1) + Ошибка создания контекста SSL: (%1) + + + Invalid or empty cipher list (%1) + Неправильный или пустой список шифров (%1) + + + Private key does not certify public key, %1 + Частный ключ не подтверждает общий ключ, %1 + + + Error creating SSL session, %1 + Ошибка создания сессии SSL, %1 + + + Error creating SSL session: %1 + Ошибка создания сессии SSL: %1 + + + Cannot provide a certificate with no key, %1 + Невозможно предоставить сертификат без ключа, %1 + + + Error loading local certificate, %1 + Ошибка загрузки локального сертификата, %1 + + + Error loading private key, %1 + Ошибка загрузки закрытого ключа, %1 + + + No error + Нет ошибки + + + The issuer certificate could not be found + Невозможно найти сертификат издателя + + + The certificate signature could not be decrypted + Невозможно расшифровать подпись сертификата + + + The public key in the certificate could not be read + Невозможно прочитать общий ключ сертификата + + + The signature of the certificate is invalid + Неверная подпись сертификата + + + The certificate is not yet valid + Сертификат еще не действует + + + The certificate has expired + Сертификат истек + + + The certificate's notBefore field contains an invalid time + Поле notBefore сертификата содержит неверное время + + + The certificate's notAfter field contains an invalid time + Поле notAfter сертификата содержит неверное время + + + The certificate is self-signed, and untrusted + Сертификаты с внутренней подписью и не проверены + + + The root certificate of the certificate chain is self-signed, and untrusted + Корневой сертификат цепочки сертификатов имеет внутреннюю подппись и не проверен + + + The issuer certificate of a locally looked up certificate could not be found + Невозможно найти сертификат издателя локального сертификата + + + No certificates could be verified + Невозможно проверить сертификаты + + + One of the CA certificates is invalid + Один из сертификатов центра сертификации неверный + + + The basicConstraints path length parameter has been exceeded + Превышено значение параметра длины пути basicConstraints + + + The supplied certificate is unsuitable for this purpose + Представленный сертификат непригоден для этой цели + + + The root CA certificate is not trusted for this purpose + Корневой сертификат ЦС не проверен для этой цели + + + The root CA certificate is marked to reject the specified purpose + Корневой сертификат ЦС отмечен для отклонения для указанной цели + + + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + Текущий кандидат сертификат издателя отклонен, так как название темы не совпадает с названием издателя текущего сертификата + + + The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate + Текущий кандидат сертификат издателя отклонен, так как его название издателя и серийный номер не совпадают с идентификатором ключа текущего сертификата + + + The peer did not present any certificate + Сертификат не представлен + + + The host name did not match any of the valid hosts for this certificate + Имя владельца не совпадает с допустимыми владельцами сертификата + + + Unknown error + Неизвестная ошибка + + + + QStateMachine + + Missing initial state in compound state '%1' + Отсутствует исходное состояние в составном состоянии '%1' + + + Missing default state in history state '%1' + Отсутствует состояние по умолчанию в историческом состоянии '%1' + + + No common ancestor for targets and source of transition from state '%1' + Нет общего предка для целей и источника перехода из состояния '%1' + + + Unknown error + Неизвестная ошибка + + + + QSystemSemaphore + + %1: does not exist + %1: не существует + + + %1: out of resources + %1: недостаточно ресурсов + + + %1: permission denied + %1: доступ запрещён + + + %1: already exists + %1: уже существует + + + %1: unknown error %2 + %1: неизвестная ошибка %2 + + + + QTDSDriver + + Unable to open connection + Невозможно открыть соединение + + + Unable to use database + Невозможно использовать базу данных + + + + QTabBar + + Scroll Left + Прокрутить влево + + + Scroll Right + Прокрутить вправо + + + + QTcpServer + + Operation on socket is not supported + Операция с сокетом не поддерживается + + + + QTextControl + + &Undo + &Отменить действие + + + &Redo + &Повторить действие + + + Cu&t + &Вырезать + + + &Copy + &Копировать + + + Copy &Link Location + Скопировать &адрес ссылки + + + &Paste + В&ставить + + + Delete + Удалить + + + Select All + Выделить всё + + + + QToolButton + + Press + Нажать + + + Open + Открыть + + + + QUdpSocket + + This platform does not support IPv6 + Данная платформа не поддерживает IPv6 + + + + QUndoGroup + + Undo + Отменить действие + + + Redo + Повторить действие + + + + QUndoModel + + <empty> + <пусто> + + + + QUndoStack + + Undo + Отменить действие + + + Redo + Повторить действие + + + + QUnicodeControlCharacterMenu + + LRM Left-to-right mark + LRM Признак письма слева направо + + + RLM Right-to-left mark + RLM Признак письма справа налево + + + ZWJ Zero width joiner + ZWJ Объединяющий символ нулевой ширины + + + ZWNJ Zero width non-joiner + ZWNJ Не объединяющий символ нулевой ширины + + + ZWSP Zero width space + ZWSP Пробел нулевой ширины + + + LRE Start of left-to-right embedding + LRE Начать встраивание слева направо + + + RLE Start of right-to-left embedding + RLE Начать встраивание справа налево + + + LRO Start of left-to-right override + LRE Начать замену слева направо + + + RLO Start of right-to-left override + RLE Начать замену справа налево + + + PDF Pop directional formatting + ## + + + Insert Unicode control character + Вставить управляющий символ Unicode + + + + QWebFrame + + Request cancelled + Запрос отменён + + + Request blocked + Запрос блокирован + + + Cannot show URL + Невозможно отобразить URL + + + Frame load interrupted by policy change + Загрузка фрейма прервана изменением политики + + + Cannot show mimetype + Невозможно отобразить тип MIME + + + File does not exist + Файл не существует + + + + QWebPage + + Submit + default label for Submit buttons in forms on web pages + Отправить + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + Отправить + + + Reset + default label for Reset buttons in forms on web pages + Сбросить + + + Choose File + title for file button used in HTML forms + Обзор... + + + No file selected + text to display in file button used in HTML forms when no file is selected + Файл не указан + + + Open in New Window + Open in New Window context menu item + Открыть в новом окне + + + Save Link... + Download Linked File context menu item + Сохранить по ссылке как... + + + Copy Link + Copy Link context menu item + Копировать адрес ссылки + + + Open Image + Open Image in New Window context menu item + Открыть изображение + + + Save Image + Download Image context menu item + Сохранить изображение + + + Copy Image + Copy Link context menu item + Копировать изображение в буффер обмена + + + Open Frame + Open Frame in New Window context menu item + Открыть фрейм + + + Copy + Copy context menu item + Копировать + + + Go Back + Back context menu item + Назад + + + Go Forward + Forward context menu item + Вперёд + + + Stop + Stop context menu item + Остановить + + + Reload + Reload context menu item + Обновить + + + Cut + Cut context menu item + Вырезать + + + Paste + Paste context menu item + Вставить + + + No Guesses Found + No Guesses Found context menu item + Неверное слово + + + Ignore + Ignore Spelling context menu item + Пропустить + + + Add To Dictionary + Learn Spelling context menu item + Добавить в словарь + + + Search The Web + Search The Web context menu item + Искать в Интернет + + + Look Up In Dictionary + Look Up in Dictionary context menu item + Искать в словаре + + + Open Link + Open Link context menu item + Открыть ссылку + + + Ignore + Ignore Grammar context menu item + Пропустить + + + Spelling + Spelling and Grammar context sub-menu item + Орфография + + + Show Spelling and Grammar + menu item title + Показать панель проверки правописания + + + Hide Spelling and Grammar + menu item title + Скрыть панель проверки правописания + + + Check Spelling + Check spelling context menu item + Проверка орфографии + + + Check Spelling While Typing + Check spelling while typing context menu item + Проверять орфографию при наборе текста + + + Check Grammar With Spelling + Check grammar with spelling context menu item + Проверять грамматику с орфографией + + + Fonts + Font context sub-menu item + Шрифты + + + Bold + Bold context menu item + Жирный + + + Italic + Italic context menu item + Курсив + + + Underline + Underline context menu item + Подчёркнутый + + + Outline + Outline context menu item + Перечёркнутый + + + Direction + Writing direction context sub-menu item + Направление письма + + + Text Direction + Text direction context sub-menu item + Направление текста + + + Default + Default writing direction context menu item + По умолчанию + + + Left to Right + Left to Right context menu item + Слева направо + + + Right to Left + Right to Left context menu item + Справа налево + + + Loading... + Media controller status message when the media is loading + Загрузка... + + + Live Broadcast + Media controller status message when watching a live broadcast + Потоковое вещание + + + Audio Element + Media controller element + Аудио-элемент + + + Video Element + Media controller element + Видеоэлемент + + + Mute Button + Media controller element + Кнопка "Отключить звук" + + + Unmute Button + Media controller element + Кнопка "Включить звук" + + + Play Button + Media controller element + Кнопка воспроизведения + + + Pause Button + Media controller element + Кнопка "Пауза" + + + Slider + Media controller element + Регулятор + + + Slider Thumb + Media controller element + Метка регулятора + + + Rewind Button + Media controller element + Кнопка "Перемотка назад" + + + Return to Real-time Button + Media controller element + Кнопка "Вернуть в реальное время" + + + Elapsed Time + Media controller element + Прошедшее время + + + Remaining Time + Media controller element + Оставшееся время + + + Status Display + Media controller element + Экран состояния + + + Fullscreen Button + Media controller element + Кнопка "На весь экран" + + + Seek Forward Button + Media controller element + Кнопка "Поиск вперед" + + + Seek Back Button + Media controller element + Кнопка "Поиск назад" + + + Audio element playback controls and status display + Media controller element + Органы управления воспроизведением аудио-элементов и отображением состояния + + + Video element playback controls and status display + Media controller element + Органы управления воспроизведением видеоэлементов и отображением состояния + + + Mute audio tracks + Media controller element + Отключить звук аудиодорожек + + + Unmute audio tracks + Media controller element + Включить звук аудиодорожек + + + Begin playback + Media controller element + Начать воспроизведение + + + Pause playback + Media controller element + Воспроизведение после паузы + + + Movie time scrubber + Media controller element + Очиститель времени фильма + + + Movie time scrubber thumb + Media controller element + Метка очистителя времени фильма + + + Rewind movie + Media controller element + Перемотать фильм назад + + + Return streaming movie to real-time + Media controller element + Вернуть потоковое воспроизведение фильма в реальное время + + + Current movie time + Media controller element + Время текущего фильма + + + Remaining movie time + Media controller element + Оставшееся время фильма + + + Current movie status + Media controller element + Состояние текущего фильма + + + Play movie in full-screen mode + Media controller element + Воспроизведение фильма в режиме отображения на весь экран + + + Seek quickly back + Media controller element + Быстрый поиск назад + + + Seek quickly forward + Media controller element + Быстрый поиск вперед + + + Indefinite time + Media time description + Неопределенное время + + + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1 дн. %2 ч. %3 мин. %4 сек. + + + %1 hours %2 minutes %3 seconds + Media time description + %1 ч. %2 мин. %3 сек. + + + %1 minutes %2 seconds + Media time description + %1 мин. %2 сек. + + + %1 seconds + Media time description + %1 сек. + + + Inspect + Inspect Element context menu item + Проверить + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + История поиска пуста + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + История поиска + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + Очистить историю поиска + + + Unknown + Unknown filesize FTP directory listing item + Неизвестно + + + Web Inspector - %2 + + + + %1 (%2x%3 pixels) + Title string for images + %1 (%2x%3 px) + + + Bad HTTP request + Некорректный HTTP-запрос + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + Индекс поиска. Введите ключевые слова для поиска: + + + Scroll here + Прокрутить сюда + + + Left edge + К левой границе + + + Top + Вверх + + + Right edge + К правой границе + + + Bottom + Вниз + + + Page left + На страницу влево + + + Page up + На страницу вверх + + + Page right + На страницу вправо + + + Page down + На страницу вниз + + + Scroll left + Прокрутить влево + + + Scroll up + Прокрутить вверх + + + Scroll right + Прокрутить вправо + + + Scroll down + Прокрутить вниз + + + %n file(s) + number of chosen file + + %n файл(а) + %n файла + %n файлов + + + + JavaScript Alert - %1 + JavaScript: Предупреждение - %1 + + + JavaScript Confirm - %1 + JavaScript: Подтверждение - %1 + + + JavaScript Prompt - %1 + JavaScript: Запрос - %1 + + + JavaScript Problem - %1 + JavaScript: Проблема - %1 + + + The script on this page appears to have a problem. Do you want to stop the script? + Сбой выполнения сценария на данной странице. Желаете остановить выполение сценария? + + + Move the cursor to the next character + Переместить указатель к следующему символу + + + Move the cursor to the previous character + Переместить указатель к предыдущему символу + + + Move the cursor to the next word + Переместить указатель к следующему слову + + + Move the cursor to the previous word + Переместить указатель к предыдущему слову + + + Move the cursor to the next line + Переместить указатель на следующую строку + + + Move the cursor to the previous line + Переместить указатель на предыдущую строку + + + Move the cursor to the start of the line + Переместить указатель в начало строки + + + Move the cursor to the end of the line + Переместить указатель в конец строки + + + Move the cursor to the start of the block + Переместить указатель в начало блока + + + Move the cursor to the end of the block + Переместить указатель в конец блока + + + Move the cursor to the start of the document + Переместить указатель в начало документа + + + Move the cursor to the end of the document + Переместить указатель в конец документа + + + Select all + Выделить всё + + + Select to the next character + Выделить до следующего символа + + + Select to the previous character + Выделить до предыдущего символа + + + Select to the next word + Выделить до следующего слова + + + Select to the previous word + Выделить до предыдущего слова + + + Select to the next line + Выделить до следующей строки + + + Select to the previous line + Выделить до предыдущей строки + + + Select to the start of the line + Выделить до начала строки + + + Select to the end of the line + Выделить до конца строки + + + Select to the start of the block + Выделить до начала блока + + + Select to the end of the block + Выделить до конца блока + + + Select to the start of the document + Выделить до начала документа + + + Select to the end of the document + Выделить до конца документа + + + Delete to the start of the word + Удалить до начала слова + + + Delete to the end of the word + Удалить до конца слова + + + Insert a new paragraph + Вставить новый параграф + + + Insert a new line + Вставить новую строку + + + Paste and Match Style + Вставить, сохранив стиль + + + Remove formatting + Удалить форматирование + + + Strikethrough + Зачёркнутый + + + Subscript + Подстрочный + + + Superscript + Надстрочный + + + Insert Bulleted List + Вставить маркированный список + + + Insert Numbered List + Вставить нумерованный список + + + Indent + Увеличить отступ + + + Outdent + Уменьшить отступ + + + Center + По центру + + + Justify + По ширине + + + Align Left + По левому краю + + + Align Right + По правому краю + + + + QWhatsThisAction + + What's This? + + + + + QWidget + + * + + + + + QWizard + + Cancel + + + + Help + + + + < &Back + + + + &Finish + + + + &Help + + + + Go Back + + + + Continue + + + + Commit + + + + Done + + + + &Next + + + + &Next > + + + + + QWorkspace + + &Restore + + + + &Move + + + + &Size + + + + Mi&nimize + + + + Ma&ximize + + + + &Close + + + + Stay on &Top + + + + Minimize + + + + Restore Down + + + + Close + + + + Sh&ade + + + + %1 - [%2] + + + + &Unshade + + + + + QXml + + no error occurred + + + + error triggered by consumer + + + + unexpected end of file + + + + more than one document type definition + + + + error occurred while parsing element + + + + tag mismatch + + + + error occurred while parsing content + + + + unexpected character + + + + invalid name for processing instruction + + + + version expected while reading the XML declaration + + + + wrong value for standalone declaration + + + + error occurred while parsing document type definition + + + + letter is expected + + + + error occurred while parsing comment + + + + error occurred while parsing reference + + + + internal general entity reference not allowed in DTD + + + + external parsed general entity reference not allowed in attribute value + + + + external parsed general entity reference not allowed in DTD + + + + unparsed entity reference in wrong context + + + + recursive entities + + + + error in the text declaration of an external entity + + + + encoding declaration or standalone declaration expected while reading the XML declaration + + + + standalone declaration expected while reading the XML declaration + + + + + QXmlPatternistCLI + + Warning in %1, at line %2, column %3: %4 + Предупреждение в %1, в строке %2, столбце%3: %4 + + + Warning in %1: %2 + Предупреждение в %1: %2 + + + Unknown location + Неизвестное местоположение + + + Error %1 in %2, at line %3, column %4: %5 + Ошибка %1 в %2, в строке %3, столбце %4: %5 + + + Error %1 in %2: %3 + Ошибка %1 в %2: %3 + + + + QXmlStream + + Extra content at end of document. + + + + Invalid entity value. + + + + Invalid XML character. + + + + Sequence ']]>' not allowed in content. + + + + Namespace prefix '%1' not declared + + + + Attribute redefined. + + + + Unexpected character '%1' in public id literal. + + + + Invalid XML version string. + + + + Unsupported XML version. + + + + %1 is an invalid encoding name. + + + + Encoding %1 is unsupported + + + + Standalone accepts only yes or no. + + + + Invalid attribute in XML declaration. + + + + Premature end of document. + + + + Invalid document. + + + + Expected + + + + , but got ' + + + + Unexpected ' + + + + Expected character data. + + + + Recursive entity detected. + + + + Start tag expected. + + + + XML declaration not at start of document. + + + + NDATA in parameter entity declaration. + + + + %1 is an invalid processing instruction name. + + + + Invalid processing instruction name. + + + + Illegal namespace declaration. + + + + Invalid XML name. + + + + Opening and ending tag mismatch. + + + + Reference to unparsed entity '%1'. + + + + Entity '%1' not declared. + + + + Reference to external entity '%1' in attribute value. + + + + Invalid character reference. + + + + Encountered incorrectly encoded content. + + + + The standalone pseudo attribute must appear after the encoding. + + + + %1 is an invalid PUBLIC identifier. + + + + + QtXmlPatterns + + At least one component must be present. + Должна присутствовать как минимум одна компонента. + + + %1 is not a valid value of type %2. + %1 не является правильным значением типа %2. + + + When casting to %1 from %2, the source value cannot be %3. + При преобразовании %2 в %1 исходное значение не может быть %3. + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + Булево значение не может быть вычислено для последовательностей, которые содержат два и более атомарных значения. + + + The data of a processing instruction cannot contain the string %1 + Данные обрабатываемой инструкции не могут содержать строку '%1' + + + %1 is an invalid %2 + %1 некоррекно для %2 + + + %1 is not a valid XML 1.0 character. + Символ %1 недопустим для XML 1.0. + + + %1 was called. + %1 было вызвано. + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + В замещаемой строке '%1' должно сопровождаться как минимум одной цифрой, если неэкранировано. + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + В замещаемой строке символ '%1' может использоваться только для экранирования самого себя или '%2', но не '%3' + + + %1 matches newline characters + %1 соответствует символам конца строки + + + Matches are case insensitive + Соответствия регистронезависимы + + + %1 is an invalid regular expression pattern: %2 + %1 - неверный шаблон регулярного выражения: %2 + + + It will not be possible to retrieve %1. + Будет невозможно восстановить %1. + + + The default collection is undefined + Набор по умолчанию не определён + + + %1 cannot be retrieved + %1 не может быть восстановлен + + + The item %1 did not match the required type %2. + Элемент %1 не соответствует необходимому типу %2. + + + %1 is an unknown schema type. + %1 является схемой неизвестного типа. + + + A template with name %1 has already been declared. + + + + Only one %1 declaration can occur in the query prolog. + Только одно объявление %1 может присутствовать в прологе запроса. + + + The initialization of variable %1 depends on itself + Инициализация переменной %1 зависит от себя самой + + + The variable %1 is unused + Переменная %1 не используется + + + Version %1 is not supported. The supported XQuery version is 1.0. + Версия %1 не поддерживается. Поддерживается XQuery версии 1.0. + + + No function with signature %1 is available + Функция с сигнатурой %1 отсутствует + + + It is not possible to redeclare prefix %1. + Невозможно переопределить префикс %1. + + + Prefix %1 is already declared in the prolog. + Префикс %1 уже объявлен в прологе. + + + The name of an option must have a prefix. There is no default namespace for options. + Название опции должно содержать префикс. Нет пространства имён по умолчанию для опций. + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + Возможность импорта схем не поддерживается, следовательно, объявлений %1 быть не должно. + + + The target namespace of a %1 cannot be empty. + Целевое пространство имён %1 не может быть пустым. + + + The module import feature is not supported + Возможность импорта модулей не поддерживается + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + Пространство имён пользовательской функции в модуле библиотеки должен соответствовать пространству имён модуля. Другими словами, он должен быть %1 вместо %2 + + + A function already exists with the signature %1. + Функция с сигнатурой %1 уже существует. + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + Внешние функции не поддерживаются. Все поддерживаемые функции могут использоваться напрямую без первоначального объявления их в качестве внешних + + + The %1-axis is unsupported in XQuery + Ось %1 не поддерживается в XQuery + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + URI пространства имён не может быть пустой строкой при связывании с префиксом %1. + + + %1 is an invalid namespace URI. + %1 - неверный URI пространства имён. + + + It is not possible to bind to the prefix %1 + Невозможно связать с префиксом %1 + + + Two namespace declaration attributes have the same name: %1. + Два атрибута объявления пространств имён имеют одинаковое имя: %1. + + + The namespace URI must be a constant and cannot use enclosed expressions. + URI пространства имён должно быть константой и не может содержать выражений. + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + %1 является объявлением атрибута вне области объявлений. Имейте в виду, возможность импорта схем не поддерживается. + + + empty + пусто + + + zero or one + нуль или один + + + exactly one + ровно один + + + one or more + один или более + + + zero or more + нуль или более + + + The focus is undefined. + Фокус не определён. + + + An attribute by name %1 has already been created. + Атрибут с именем %1 уже существует. + + + Network timeout. + Время ожидания сети истекло. + + + Element %1 can't be serialized because it appears outside the document element. + Элемент %1 не может быть сериализован, так как присутствует вне документа. + + + Year %1 is invalid because it begins with %2. + Год %1 неверен, так как начинается с %2. + + + Day %1 is outside the range %2..%3. + День %1 вне диапазона %2..%3. + + + Month %1 is outside the range %2..%3. + Месяц %1 вне диапазона %2..%3. + + + Overflow: Can't represent date %1. + Переполнение: Не удается представить дату %1. + + + Day %1 is invalid for month %2. + День %1 неверен для месяца %2. + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + Время 24:%1:%2.%3 неверно. 24 часа, но минуты, секунды и/или миллисекунды отличны от 0; + + + Time %1:%2:%3.%4 is invalid. + Время %1:%2:%3.%4 неверно. + + + Overflow: Date can't be represented. + Переполнение: невозможно представить дату. + + + At least one time component must appear after the %1-delimiter. + Как минимум одна компонента времени должна следовать за разделителем '%1'. + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + Деление числа типа %1 на %2 (не числовое выражение) недопустимо. + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + Деление числа типа %1 на %2 или %3 (плюс или минус нуль) недопустимо. + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + Умножение числа типа %1 на %2 или %3 (плюс-минус бесконечность) недопустимо. + + + A value of type %1 cannot have an Effective Boolean Value. + Значение типа %1 не может быть булевым значением. + + + Value %1 of type %2 exceeds maximum (%3). + Значение %1 типа %2 больше максимума (%3). + + + Value %1 of type %2 is below minimum (%3). + Значение %1 типа %2 меньше минимума (%3). + + + A value of type %1 must contain an even number of digits. The value %2 does not. + Значение типа %1 должно содержать четное количество цифр. Значение %2 этому требованию не удовлетворяет. + + + %1 is not valid as a value of type %2. + Значение %1 некорректно для типа %2. + + + Operator %1 cannot be used on type %2. + Оператор %1 не может использоваться для типа %2. + + + Operator %1 cannot be used on atomic values of type %2 and %3. + Оператор %1 не может использоваться для атомарных значений типов %2 и %3. + + + The namespace URI in the name for a computed attribute cannot be %1. + URI пространства имён в названии рассчитываемого атрибута не может быть %1. + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + Название расчитываемого атрибута не может иметь URI пространства имён %1 с локальным именем %2. + + + Type error in cast, expected %1, received %2. + Ошибка типов в преобразовании, ожидалось %1, получено %2. + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + При преобразовании в %1 или производные от него типы исходное значение должно быть того же типа или строковым литералом. Тип %2 недопустим. + + + A comment cannot contain %1 + Комментарий не может содержать %1 + + + A comment cannot end with a %1. + Комментарий не может оканчиваться на %1. + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + Узел-атрибут не может быть потомком узла-документа. Атрибут %1 неуместен. + + + A library module cannot be evaluated directly. It must be imported from a main module. + Модуль библиотеки не может использоваться напрямую. Он должен быть импортирован из основного модуля. + + + No template by name %1 exists. + Шаблон с именем %1 отсутствует. + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + Значение типа %1 не может быть условием. Условием могут являться числовой и булевый типы. + + + A positional predicate must evaluate to a single numeric value. + Позиционный предикат должен вычисляться как числовое выражение. + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + Целевое имя в обрабатываемой инструкции не может быть %1 в любой комбинации нижнего и верхнего регистров. Имя %2 некорректно. + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 некорректное целевое имя в обрабатываемой инструкции. Имя должно быть значением типа %2, например: %3. + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + Последняя часть пути должна содержать узлы или атомарные значения, но не может содержать и то, и другое одновременно. + + + No namespace binding exists for the prefix %1 + Отсутствует привязка к пространству имён для префикса %1 + + + No namespace binding exists for the prefix %1 in %2 + Отсутствует привязка к пространству имён для префикса %1 в %2 + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + Первый аргумент %1 не может быть типа %2. Он должен быть числового типа, типа xs:yearMonthDuration или типа xs:dayTimeDuration. + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Первый аргумент %1 не может быть типа %2. Он должен быть типа %3, %4 или %5. + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + Второй аргумент %1 не может быть типа %2. Он должен быть типа %3, %4 или %5. + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + Если оба значения имеют региональные смещения, смещения должны быть одинаковы. %1 и %2 не одинаковы. + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + '%1' должно сопровождаться '%2' или '%3', но не в конце замещаемой строки. + + + %1 and %2 match the start and end of a line. + %1 и %2 соответствуют началу и концу строки. + + + Whitespace characters are removed, except when they appear in character classes + Символы пробелов удалены, за исключением тех, что были в классах символов + + + %1 is an invalid flag for regular expressions. Valid flags are: + %1 - неверный флаг для регулярного выражения. Допустимые флаги: + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + Префикс не должен быть указан, если первый параметр - пустая последовательность или пустая строка (вне пространства имён). Был указан префикс %1. + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + Форма нормализации %1 не поддерживается. Поддерживаются только %2, %3, %4, %5 и пустая, т.е. пустая строка (без нормализации). + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + Региональное смещение должно быть в переделах от %1 до %2 включительно. %3 выходит за допустимые пределы. + + + Required cardinality is %1; got cardinality %2. + Необходимо %1 элементов, получено %2. + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + Кодировка %1 неверна. Имя кодировки должно содержать только символы латиницы без пробелов и должно удовлетворять регулярному выражению %2. + + + The keyword %1 cannot occur with any other mode name. + Ключевое слово %1 не может встречаться с любым другим названием режима. + + + No variable with name %1 exists + + + + The value of attribute %1 must be of type %2, which %3 isn't. + + + + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + + + + A variable with name %1 has already been declared. + + + + No value is available for the external variable with name %1. + + + + A stylesheet function must have a prefixed name. + Функция стилей должна иметь имя с префиксом. + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + Пространтсво имён %1 зарезервировано, поэтому пользовательские функции не могут его использовать. Попробуйте предопределённый префикс %2, который существует для подобных ситуаций. + + + An argument with name %1 has already been declared. Every argument name must be unique. + + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + Если функция %1 используется для сравнения внутри шаблона, аргумент должен быть ссылкой на переменную или строковым литералом. + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + В шаблоне XSL-T первый аргумент функции %1 должен быть строковым литералом, если функция используется для сравнения. + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + В шаблоне XSL-T первый аргумент функции %1 должен быть литералом или ссылкой на переменную, если функция используется для сравнения. + + + In an XSL-T pattern, function %1 cannot have a third argument. + В шаблоне XSL-T у функции %1 не должно быть третьего аргумента. + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + В шаблоне XSL-T только функции %1 и %2 могут использоваться для сравнения, но не %3. + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + В шаблоне XSL-T не может быть использована ось %1 - только оси %2 или %3. + + + %1 is an invalid template mode name. + %1 является неверным шаблоном имени режима. + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + Имя переменной, связанной с выражением for, должно отличаться от позиционной переменной. Две переменные с именем %1 конфликтуют. + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + Возможность проверки по схеме не поддерживается. Выражения %1 не могут использоваться. + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + Ни одно из выражений pragma не поддерживается. Должно существовать запасное выражение + + + Each name of a template parameter must be unique; %1 is duplicated. + Имя каждого параметра шаблона должно быть уникальным, но %1 повторяется. + + + No function with name %1 is available. + + + + %1 is not a valid numeric literal. + %1 является неверным числовым литералом. + + + W3C XML Schema identity constraint selector + + + + W3C XML Schema identity constraint field + + + + A construct was encountered which is disallowed in the current language(%1). + Встречена конструкция, запрещённая для текущего языка (%1). + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + Пространство имён %1 может быть связано только с %2 (в данном случае уже предопределено). + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + Префикс %1 может быть связан только с %2 (в данном случае уже предопределено). + + + An attribute with name %1 has already appeared on this element. + + + + A direct element constructor is not well-formed. %1 is ended with %2. + Прямой конструктор элемента составлен некорректно. %1 заканчивается на %2. + + + The name %1 does not refer to any schema type. + Название %1 не соответствует ни одному типу схемы. + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + %1 - сложный тип. Преобразование к сложным типам невозможно. Однако, преобразование к атомарным типам как %2 работает. + + + %1 is not an atomic type. Casting is only possible to atomic types. + %1 - не атомарный тип. Преобразование возможно только к атомарным типам. + + + %1 is not a valid name for a processing-instruction. + %1 является неверным названием для инструкции обработки. + + + The name of an extension expression must be in a namespace. + Название выражения расширения должно быть в пространстве имён. + + + Required type is %1, but %2 was found. + Требуется тип %1, но обнаружен %2. + + + Promoting %1 to %2 may cause loss of precision. + Преобразование %1 к %2 может снизить точность. + + + It's not possible to add attributes after any other kind of node. + Невозможно добавлять атрибуты после любого другого вида узла. + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + Поддерживается только Unicode Codepoint Collation (%1). %2 не поддерживается. + + + Integer division (%1) by zero (%2) is undefined. + Целочисленное деление (%1) на нуль (%2) не определено. + + + Division (%1) by zero (%2) is undefined. + Деление (%1) на нуль (%2) не определено. + + + Modulus division (%1) by zero (%2) is undefined. + Деление по модулю (%1) на нуль (%2) не определено. + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + %1 принимает не более %n аргумента. Следовательно, %2 неверно. + %1 принимает не более %n аргументов. Следовательно, %2 неверно. + %1 принимает не более %n аргументов. Следовательно, %2 неверно. + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 принимает не менее %n аргумента. Следовательно, %2 неверно. + %1 принимает не менее %n аргументов. Следовательно, %2 неверно. + %1 принимает не менее %n аргументов. Следовательно, %2 неверно. + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + Корневой узел второго аргумента функции %1 должен быть документом. %2 не является документом. + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + Пространство имён для пользовательских функций не может быть пустым (попробуйте предопределённый префикс %1, который существует для подобных ситуаций) + + + A default namespace declaration must occur before function, variable, and option declarations. + Объявление пространство имён по умолчанию должно быть до объявления функций, переменных и опций. + + + Namespace declarations must occur before function, variable, and option declarations. + Объявление пространства имён должно быть до объявления функций, переменных и опций. + + + Module imports must occur before function, variable, and option declarations. + Импортируемые модули должны быть указаны до объявления функций, переменных и опций. + + + %1 is not a whole number of minutes. + %1 не является полным количеством минут. + + + Attribute %1 can't be serialized because it appears at the top level. + Атрибут %1 не может быть сериализован, так как присутствует на верхнем уровне. + + + %1 is an unsupported encoding. + Кодировка %1 не поддерживается. + + + %1 contains octets which are disallowed in the requested encoding %2. + %1 содержит октеты, которые недопустимы в требуемой кодировке %2. + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + Символ с кодом %1, присутствующий в %2 при использовании кодировки %3, не является допустимым символом XML. + + + Ambiguous rule match. + Неоднозначное соответствие правилу. + + + In a namespace constructor, the value for a namespace cannot be an empty string. + В конструкторе пространства имён значение пространства имён не может быть пустой строкой. + + + The prefix must be a valid %1, which %2 is not. + Префикс должен быть корректным %1, но %2 им не является. + + + The prefix %1 cannot be bound. + Префикс%1 не может быть связан. + + + Only the prefix %1 can be bound to %2 and vice versa. + Только префикс %1 может быть связан с %2 и наоборот. + + + The parameter %1 is required, but no corresponding %2 is supplied. + Необходим параметр %1 , но соответствующего %2 не передано. + + + The parameter %1 is passed, but no corresponding %2 exists. + Передан параметр %1 , но соответствующего %2 не существует. + + + The URI cannot have a fragment + URI не может содержать фрагмент + + + Element %1 is not allowed at this location. + Элемент %1 недопустим в этом месте. + + + Text nodes are not allowed at this location. + Текстовые узлы недопустимы в этом месте. + + + Parse error: %1 + Ошибка разбора: %1 + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + Значение атрибута версии XSL-T должно быть типа %1, но %2 им не является. + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + Выполняется таблица стилей XSL-T 1.0 с обработчиком версии 2.0. + + + Unknown XSL-T attribute %1. + Неизвествный атрибут XSL-T %1. + + + Attribute %1 and %2 are mutually exclusive. + Атрибуты %1 и %2 взаимоисключающие. + + + In a simplified stylesheet module, attribute %1 must be present. + В модуле упрощённой таблицы стилей обязан присутствовать атрибут %1. + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + Если элемент %1 не имеет атрибут %2, у него не может быть атрибутов %3 и %4. + + + Element %1 must have at least one of the attributes %2 or %3. + Элемент %1 должен иметь как минимум один из атрибутов %2 или %3. + + + At least one mode must be specified in the %1-attribute on element %2. + Как минимум один режим должен быть указан в атрибуте %1 элемента %2. + + + Element %1 must come last. + Элемент %1 должен идти последним. + + + At least one %1-element must occur before %2. + Как минимум один элемент %1 должен быть перед %2. + + + Only one %1-element can appear. + Должен быть только один элемент %1. + + + At least one %1-element must occur inside %2. + Как минимум один элемент %1 должен быть внутри %2. + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + Если %2 содержит атрибут %1, конструктор последовательности не может быть использован. + + + Element %1 must have either a %2-attribute or a sequence constructor. + Элемент %1 должен иметь атрибут %2 или конструктор последовательности. + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + Если параметр необходим, значение по умолчание не может быть передано через атрибут %1 или конструктор последовательности. + + + Element %1 cannot have children. + У элемента %1 не может быть потомков. + + + Element %1 cannot have a sequence constructor. + У элемента %1 не может быть конструктора последовательности. + + + The attribute %1 cannot appear on %2, when it is a child of %3. + У %2 не может быть атрибута %1, когда он является потомком %3. + + + A parameter in a function cannot be declared to be a tunnel. + Параметр в функции не может быть объявлен туннелем. + + + This processor is not Schema-aware and therefore %1 cannot be used. + Данный обработчик не работает со схемами, следовательно, %1 не может использоваться. + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + Элементы верхнего уровня таблицы стилей должны быть в пространстве имен, которым %1 не является. + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + Значение атрибута %1 элемента %2 должно быть или %3, или %4, но не %5. + + + Attribute %1 cannot have the value %2. + Атрибут %1 не может принимать значение %2. + + + The attribute %1 can only appear on the first %2 element. + Атрибут %1 может быть только у первого элемента %2. + + + At least one %1 element must appear as child of %2. + Как минимум один элемент %1 должен быть в %2. + + + %1 has inheritance loop in its base type %2. + + + + Circular inheritance of base type %1. + + + + Circular inheritance of union %1. + + + + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + + + + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + + + + Base type of simple type %1 cannot be complex type %2. + + + + Simple type %1 cannot have direct base type %2. + + + + Simple type %1 is not allowed to have base type %2. + + + + Simple type %1 can only have simple atomic type as base type. + + + + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + + + + Variety of item type of %1 must be either atomic or union. + + + + Variety of member types of %1 must be atomic. + + + + %1 is not allowed to derive from %2 by list as the latter defines it as final. + + + + Simple type %1 is only allowed to have %2 facet. + + + + Base type of simple type %1 must have variety of type list. + + + + Base type of simple type %1 has defined derivation by restriction as final. + + + + Item type of base type does not match item type of %1. + + + + Simple type %1 contains not allowed facet type %2. + + + + %1 is not allowed to derive from %2 by union as the latter defines it as final. + + + + %1 is not allowed to have any facets. + + + + Base type %1 of simple type %2 must have variety of union. + + + + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + + + + Member type %1 cannot be derived from member type %2 of %3's base type %4. + + + + Derivation method of %1 must be extension because the base type %2 is a simple type. + + + + Complex type %1 has duplicated element %2 in its content model. + + + + Complex type %1 has non-deterministic content. + + + + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + + + + Content model of complex type %1 is not a valid extension of content model of %2. + + + + Complex type %1 must have simple content. + + + + Complex type %1 must have the same simple type as its base class %2. + + + + Complex type %1 cannot be derived from base type %2%3. + + + + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + + + + Complex type %1 with simple content cannot be derived from complex base type %2. + + + + Item type of simple type %1 cannot be a complex type. + + + + Member type of simple type %1 cannot be a complex type. + + + + %1 is not allowed to have a member type with the same name as itself. + + + + %1 facet collides with %2 facet. + + + + %1 facet must have the same value as %2 facet of base type. + + + + %1 facet must be equal or greater than %2 facet of base type. + + + + %1 facet must be less than or equal to %2 facet of base type. + + + + %1 facet contains invalid regular expression + + + + Unknown notation %1 used in %2 facet. + + + + %1 facet contains invalid value %2: %3. + + + + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + + + + %1 facet cannot be %2 if %3 facet of base type is %4. + + + + %1 facet must be less than or equal to %2 facet. + + + + %1 facet must be less than %2 facet of base type. + + + + %1 facet and %2 facet cannot appear together. + + + + %1 facet must be greater than %2 facet of base type. + + + + %1 facet must be less than %2 facet. + + + + %1 facet must be greater than or equal to %2 facet of base type. + + + + Simple type contains not allowed facet %1. + + + + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + + + + Only %1 and %2 facets are allowed when derived by union. + + + + %1 contains %2 facet with invalid data: %3. + + + + Attribute group %1 contains attribute %2 twice. + + + + Attribute group %1 contains two different attributes that both have types derived from %2. + + + + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + + Complex type %1 contains attribute %2 twice. + + + + Complex type %1 contains two different attributes that both have types derived from %2. + + + + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + + Element %1 is not allowed to have a value constraint if its base type is complex. + + + + Element %1 is not allowed to have a value constraint if its type is derived from %2. + + + + Value constraint of element %1 is not of elements type: %2. + + + + Element %1 is not allowed to have substitution group affiliation as it is no global element. + + + + Type of element %1 cannot be derived from type of substitution group affiliation. + + + + Value constraint of attribute %1 is not of attributes type: %2. + + + + Attribute %1 has value constraint but has type derived from %2. + + + + %1 attribute in derived complex type must be %2 like in base type. + + + + Attribute %1 in derived complex type must have %2 value constraint like in base type. + + + + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. + + + + Attribute %1 in derived complex type must have %2 value constraint. + + + + processContent of base wildcard must be weaker than derived wildcard. + + + + Element %1 exists twice with different types. + + + + Particle contains non-deterministic wildcards. + + + + Base attribute %1 is required but derived attribute is not. + + + + Type of derived attribute %1 cannot be validly derived from type of base attribute. + + + + Value constraint of derived attribute %1 does not match value constraint of base attribute. + + + + Derived attribute %1 does not exist in the base definition. + + + + Derived attribute %1 does not match the wildcard in the base definition. + + + + Base attribute %1 is required but missing in derived definition. + + + + Derived definition contains an %1 element that does not exists in the base definition + + + + Derived wildcard is not a subset of the base wildcard. + + + + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + + + + Attribute %1 from base type is missing in derived type. + + + + Type of derived attribute %1 differs from type of base attribute. + + + + Base definition contains an %1 element that is missing in the derived definition + + + + %1 references unknown %2 or %3 element %4. + + + + %1 references identity constraint %2 that is no %3 or %4 element. + + + + %1 has a different number of fields from the identity constraint %2 that it references. + + + + Base type %1 of %2 element cannot be resolved. + + + + Item type %1 of %2 element cannot be resolved. + + + + Member type %1 of %2 element cannot be resolved. + + + + Type %1 of %2 element cannot be resolved. + + + + Base type %1 of complex type cannot be resolved. + + + + %1 cannot have complex base type that has a %2. + + + + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. + + + + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. + + + + Type of %1 element must be a simple type, %2 is not. + + + + Substitution group %1 of %2 element cannot be resolved. + + + + Substitution group %1 has circular definition. + + + + Duplicated element names %1 in %2 element. + + + + Reference %1 of %2 element cannot be resolved. + + + + Circular group reference for %1. + + + + %1 element is not allowed in this scope + + + + %1 element cannot have %2 attribute with value other than %3. + + + + %1 element cannot have %2 attribute with value other than %3 or %4. + + + + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. + + + + Attribute group %1 has circular reference. + + + + %1 attribute in %2 must have %3 use like in base type %4. + + + + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. + + + + %1 has attribute wildcard but its base type %2 has not. + + + + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. + + + + Enumeration facet contains invalid content: {%1} is not a value of type %2. + + + + Namespace prefix of qualified name %1 is not defined. + + + + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. + + + + Empty particle cannot be derived from non-empty particle. + + + + Derived particle is missing element %1. + + + + Derived element %1 is missing value constraint as defined in base particle. + + + + Derived element %1 has weaker value constraint than base particle. + + + + Fixed value constraint of element %1 differs from value constraint in base particle. + + + + Derived element %1 cannot be nillable as base element is not nillable. + + + + Block constraints of derived element %1 must not be more weaker than in the base element. + + + + Simple type of derived element %1 cannot be validly derived from base element. + + + + Complex type of derived element %1 cannot be validly derived from base element. + + + + Element %1 is missing in derived particle. + + + + Element %1 does not match namespace constraint of wildcard in base particle. + + + + Wildcard in derived particle is not a valid subset of wildcard in base particle. + + + + processContent of wildcard in derived particle is weaker than wildcard in base particle. + + + + Derived particle allows content that is not allowed in the base particle. + + + + Can not process unknown element %1, expected elements are: %2. + + + + Element %1 is not allowed in this scope, possible elements are: %2. + + + + Child element is missing in that scope, possible child elements are: %1. + + + + Document is not a XML schema. + + + + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + + + + %1 attribute of %2 element contains invalid content: {%3}. + + + + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + + + + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + + + + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + + + + %1 element without %2 attribute is not allowed inside schema without target namespace. + + + + %1 element is not allowed inside %2 element if %3 attribute is present. + + + + %1 element has neither %2 attribute nor %3 child element. + + + + %1 element with %2 child element must not have a %3 attribute. + + + + %1 attribute of %2 element must be %3 or %4. + + + + %1 attribute of %2 element must have a value of %3. + + + + %1 attribute of %2 element must have a value of %3 or %4. + + + + %1 element must not have %2 and %3 attribute together. + + + + Content of %1 attribute of %2 element must not be from namespace %3. + + + + %1 attribute of %2 element must not be %3. + + + + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + + + + Specifying use='prohibited' inside an attribute group has no effect. + + + + %1 element must have either %2 or %3 attribute. + + + + %1 element must have either %2 attribute or %3 or %4 as child element. + + + + %1 element requires either %2 or %3 attribute. + + + + Text or entity references not allowed inside %1 element + + + + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + + + + %1 element is not allowed in this context. + + + + %1 attribute of %2 element has larger value than %3 attribute. + + + + Prefix of qualified name %1 is not defined. + + + + %1 attribute of %2 element must either contain %3 or the other values. + + + + Component with ID %1 has been defined previously. + + + + Element %1 already defined. + + + + Attribute %1 already defined. + + + + Type %1 already defined. + + + + Attribute group %1 already defined. + + + + Element group %1 already defined. + + + + Notation %1 already defined. + + + + Identity constraint %1 already defined. + + + + Duplicated facets in simple type %1. + + + + %1 is not valid according to %2. + + + + String content does not match the length facet. + + + + String content does not match the minLength facet. + + + + String content does not match the maxLength facet. + + + + String content does not match pattern facet. + + + + String content is not listed in the enumeration facet. + + + + Signed integer content does not match the maxInclusive facet. + + + + Signed integer content does not match the maxExclusive facet. + + + + Signed integer content does not match the minInclusive facet. + + + + Signed integer content does not match the minExclusive facet. + + + + Signed integer content is not listed in the enumeration facet. + + + + Signed integer content does not match pattern facet. + + + + Signed integer content does not match in the totalDigits facet. + + + + Unsigned integer content does not match the maxInclusive facet. + + + + Unsigned integer content does not match the maxExclusive facet. + + + + Unsigned integer content does not match the minInclusive facet. + + + + Unsigned integer content does not match the minExclusive facet. + + + + Unsigned integer content is not listed in the enumeration facet. + + + + Unsigned integer content does not match pattern facet. + + + + Unsigned integer content does not match in the totalDigits facet. + + + + Double content does not match the maxInclusive facet. + + + + Double content does not match the maxExclusive facet. + + + + Double content does not match the minInclusive facet. + + + + Double content does not match the minExclusive facet. + + + + Double content is not listed in the enumeration facet. + + + + Double content does not match pattern facet. + + + + Decimal content does not match in the fractionDigits facet. + + + + Decimal content does not match in the totalDigits facet. + + + + Date time content does not match the maxInclusive facet. + + + + Date time content does not match the maxExclusive facet. + + + + Date time content does not match the minInclusive facet. + + + + Date time content does not match the minExclusive facet. + + + + Date time content is not listed in the enumeration facet. + + + + Date time content does not match pattern facet. + + + + Duration content does not match the maxInclusive facet. + + + + Duration content does not match the maxExclusive facet. + + + + Duration content does not match the minInclusive facet. + + + + Duration content does not match the minExclusive facet. + + + + Duration content is not listed in the enumeration facet. + + + + Duration content does not match pattern facet. + + + + Boolean content does not match pattern facet. + + + + Binary content does not match the length facet. + + + + Binary content does not match the minLength facet. + + + + Binary content does not match the maxLength facet. + + + + Binary content is not listed in the enumeration facet. + + + + Invalid QName content: %1. + + + + QName content is not listed in the enumeration facet. + + + + QName content does not match pattern facet. + + + + Notation content is not listed in the enumeration facet. + + + + List content does not match length facet. + + + + List content does not match minLength facet. + + + + List content does not match maxLength facet. + + + + List content is not listed in the enumeration facet. + + + + List content does not match pattern facet. + + + + Union content is not listed in the enumeration facet. + + + + Union content does not match pattern facet. + + + + Data of type %1 are not allowed to be empty. + + + + Element %1 is missing child element. + + + + There is one IDREF value with no corresponding ID: %1. + + + + Loaded schema file is invalid. + + + + %1 contains invalid data. + + + + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + + + + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + + + + No schema defined for validation. + + + + No definition for element %1 available. + + + + Specified type %1 is not known to the schema. + + + + Element %1 is not defined in this scope. + + + + Declaration for element %1 does not exist. + + + + Element %1 contains invalid content. + + + + Element %1 is declared as abstract. + + + + Element %1 is not nillable. + + + + Attribute %1 contains invalid data: %2 + + + + Element contains content although it is nillable. + + + + Fixed value constraint not allowed if element is nillable. + + + + Element %1 cannot contain other elements, as it has a fixed content. + + + + Specified type %1 is not validly substitutable with element type %2. + + + + Complex type %1 is not allowed to be abstract. + + + + Element %1 contains not allowed attributes. + + + + Element %1 contains not allowed child element. + + + + Content of element %1 does not match its type definition: %2. + + + + Content of element %1 does not match defined value constraint. + + + + Element %1 contains not allowed child content. + + + + Element %1 contains not allowed text content. + + + + Element %1 is missing required attribute %2. + + + + Attribute %1 does not match the attribute wildcard. + + + + Declaration for attribute %1 does not exist. + + + + Element %1 contains two attributes of type %2. + + + + Attribute %1 contains invalid content. + + + + Element %1 contains unknown attribute %2. + + + + Content of attribute %1 does not match its type definition: %2. + + + + Content of attribute %1 does not match defined value constraint. + + + + Non-unique value found for constraint %1. + + + + Key constraint %1 contains absent fields. + + + + Key constraint %1 contains references nillable element %2. + + + + No referenced value found for key reference %1. + + + + More than one value found for field %1. + + + + Field %1 has no simple type. + + + + ID value '%1' is not unique. + + + + '%1' attribute contains invalid QName content: %2. + + + + diff --git a/config.profiles/symbian/translations/qt_ur.ts b/config.profiles/symbian/translations/qt_ur.ts new file mode 100644 index 0000000..13797d5 --- /dev/null +++ b/config.profiles/symbian/translations/qt_ur.ts @@ -0,0 +1,8507 @@ + + + + + + CloseButton + + Close Tab + + + + + FakeReply + + Fake error ! + + + + Invalid URL + + + + + Phonon:: + + Notifications + + + + Music + + + + Video + + + + Communication + + + + Games + + + + Accessibility + + + + + Phonon::AudioOutput + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + + + + Revert back to device '%1' + + + + + Phonon::Gstreamer::Backend + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + + + + + Phonon::Gstreamer::MediaObject + + Cannot start playback. + +Check your GStreamer installation and make sure you +have libgstreamer-plugins-base installed. + + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + + + + Could not open media source. + + + + Invalid source type. + + + + Could not locate media source. + + + + Could not open audio device. The device is already in use. + + + + Could not decode media source. + + + + + Phonon::MMF + + Audio Output + + + + The audio output device + + + + No error + + + + Not found + + + + Out of memory + + + + Not supported + + + + Overflow + + + + Underflow + + + + Already exists + + + + Path not found + + + + In use + + + + Not ready + + + + Access denied + + + + Could not connect + + + + Disconnected + + + + Permission denied + + + + Insufficient bandwidth + + + + Network unavailable + + + + Network communication error + + + + Streaming not supported + + + + Server alert + + + + Invalid protocol + + + + Invalid URL + + + + Multicast error + + + + Proxy server error + + + + Proxy server not supported + + + + Audio output error + + + + Video output error + + + + Decoder error + + + + Audio or video components could not be played + + + + DRM error + + + + Unknown error (%1) + + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + + + + Error opening file + + + + Error opening URL + + + + Setting volume failed + + + + Playback complete + + + + + Phonon::MMF::AudioEqualizer + + %1 Hz + + + + + Phonon::MMF::AudioPlayer + + Getting position failed + + + + Opening clip failed + + + + + Phonon::MMF::EffectFactory + + Enabled + + + + + Phonon::MMF::EnvironmentalReverb + + Decay HF ratio (%) + + + + Decay time (ms) + + + + Density (%) + + + + Diffusion (%) + + + + Reflections delay (ms) + + + + Reflections level (mB) + + + + Reverb delay (ms) + + + + Reverb level (mB) + + + + Room HF level + + + + Room level (mB) + + + + + Phonon::MMF::MediaObject + + Error opening source: type not supported + + + + Error opening source: media type could not be determined + + + + + Phonon::MMF::StereoWidening + + Level (%) + + + + + Phonon::MMF::VideoPlayer + + Pause failed + + + + Seek failed + + + + Getting position failed + + + + Opening clip failed + + + + Buffering clip failed + + + + Video display error + + + + + Phonon::VolumeSlider + + Volume: %1% + + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + + + + Muted + + + + + Q3Accel + + %1, %2 not defined + + + + Ambiguous %1 not handled + + + + + Q3DataTable + + True + + + + False + + + + Insert + + + + Update + + + + Delete + + + + + Q3FileDialog + + Copy or Move a File + + + + Read: %1 + + + + Write: %1 + + + + Cancel + + + + All Files (*) + + + + Name + + + + Size + + + + Type + + + + Date + + + + Attributes + + + + &OK + + + + Look &in: + + + + File &name: + + + + File &type: + + + + Back + + + + One directory up + + + + Create New Folder + + + + List View + + + + Detail View + + + + Preview File Info + + + + Preview File Contents + + + + Read-write + + + + Read-only + + + + Write-only + + + + Inaccessible + + + + Symlink to File + + + + Symlink to Directory + + + + Symlink to Special + + + + File + + + + Dir + + + + Special + + + + Open + + + + Save As + + + + &Open + + + + &Save + + + + &Rename + + + + &Delete + + + + R&eload + + + + Sort by &Name + + + + Sort by &Size + + + + Sort by &Date + + + + &Unsorted + + + + Sort + + + + Show &hidden files + + + + the file + + + + the directory + + + + the symlink + + + + Delete %1 + + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + + + + &Yes + + + + &No + + + + New Folder 1 + + + + New Folder + + + + New Folder %1 + + + + Find Directory + + + + Directories + + + + Directory: + + + + Error + + + + %1 +File not found. +Check path and filename. + + + + All Files (*.*) + + + + Open + + + + Select a Directory + + + + + Q3LocalFs + + Could not read directory +%1 + + + + Could not create directory +%1 + + + + Could not remove file or directory +%1 + + + + Could not rename +%1 +to +%2 + + + + Could not open +%1 + + + + Could not write +%1 + + + + + Q3MainWindow + + Line up + + + + Customize... + + + + + Q3NetworkProtocol + + Operation stopped by the user + + + + + Q3ProgressDialog + + Cancel + + + + + Q3TabDialog + + OK + + + + Apply + + + + Help + + + + Defaults + + + + Cancel + + + + + Q3TextEdit + + &Undo + + + + &Redo + + + + Cu&t + + + + &Copy + + + + &Paste + + + + Clear + + + + Select All + + + + + Q3TitleBar + + System + + + + Restore up + + + + Minimize + + + + Restore down + + + + Maximize + + + + Close + + + + Contains commands to manipulate the window + + + + Puts a minimized window back to normal + + + + Moves the window out of the way + + + + Puts a maximized window back to normal + + + + Makes the window full screen + + + + Closes the window + + + + Displays the name of the window and contains controls to manipulate it + + + + + Q3ToolBar + + More... + + + + + Q3UrlOperator + + The protocol `%1' is not supported + + + + The protocol `%1' does not support listing directories + + + + The protocol `%1' does not support creating new directories + + + + The protocol `%1' does not support removing files or directories + + + + The protocol `%1' does not support renaming files or directories + + + + The protocol `%1' does not support getting files + + + + The protocol `%1' does not support putting files + + + + The protocol `%1' does not support copying or moving files or directories + + + + (unknown) + + + + + Q3Wizard + + &Cancel + + + + < &Back + + + + &Next > + + + + &Finish + + + + &Help + + + + + QAbstractSocket + + Host not found + + + + Connection refused + + + + Connection timed out + + + + Operation on socket is not supported + + + + Socket operation timed out + + + + Socket is not connected + + + + Network unreachable + + + + + QAbstractSpinBox + + &Step up + + + + Step &down + + + + &Select All + + + + + QAccessibleButton + + Press + + + + + QApplication + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + RTL + + + Executable '%1' requires Qt %2, found Qt %3. + + + + Incompatible Qt Library Error + + + + Activate + + + + Activates the program's main window + + + + + QAxSelect + + Select ActiveX Control + + + + OK + + + + &Cancel + + + + COM &Object: + + + + + QCheckBox + + Uncheck + + + + Check + + + + Toggle + + + + + QColorDialog + + Hu&e: + Hu&e: + + + &Sat: + &Sat: + + + &Val: + &Val: + + + &Red: + &Red: + + + &Green: + + + + Bl&ue: + + + + A&lpha channel: + + + + Select Color + Select Color + + + &Basic colors + + + + &Custom colors + + + + &Add to Custom Colors + + + + + QComboBox + + Open + Open + + + False + False + + + True + True + + + Close + Close + + + + QCoreApplication + + %1: key is empty + QSystemSemaphore + %1: key is empty + + + %1: unable to make key + QSystemSemaphore + %1: unable to make key + + + %1: ftok failed + QSystemSemaphore + %1: ftok failed + + + %1: already exists + QSystemSemaphore + %1: already exists + + + %1: does not exist + QSystemSemaphore + %1: does not exist + + + %1: out of resources + QSystemSemaphore + %1: out of resources + + + %1: unknown error %2 + QSystemSemaphore + %1: unknown error %2 + + + + QDB2Driver + + Unable to connect + Unable to connect + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + Unable to set autocommit + Unable to set autocommit + + + + QDB2Result + + Unable to execute statement + Unable to execute statement + + + Unable to prepare statement + Unable to prepare statement + + + Unable to bind variable + Unable to bind variable + + + Unable to fetch record %1 + Unable to fetch record %1 + + + Unable to fetch next + Unable to fetch next + + + Unable to fetch first + Unable to fetch first + + + + QDateTimeEdit + + AM + AM + + + am + am + + + PM + PM + + + pm + pm + + + + QDial + + QDial + QDial + + + SpeedoMeter + SpeedoMeter + + + SliderHandle + SliderHandle + + + + QDialog + + What's This? + What's This? + + + Done + Done + + + + QDialogButtonBox + + OK + OK + + + Save + Save + + + &Save + &Save + + + Open + Open + + + Cancel + Cancel + + + &Cancel + &Cancel + + + Close + Close + + + &Close + &Close + + + Apply + Apply + + + Reset + Reset + + + Help + Help + + + Don't Save + Don't Save + + + Discard + Discard + + + &Yes + &Yes + + + Yes to &All + Yes to &All + + + &No + &No + + + N&o to All + N&o to All + + + Save All + Save All + + + Abort + Abort + + + Retry + Retry + + + Ignore + Ignore + + + Restore Defaults + Restore Defaults + + + Close without Saving + Close without Saving + + + &OK + &OK + + + + QDirModel + + Name + Name + + + Size + Size + + + Kind + Match OS X Finder + Kind + + + Type + All other platforms + Type + + + Date Modified + Date Modified + + + + QDockWidget + + Close + Close + + + Dock + Dock + + + Float + Float + + + + QDoubleSpinBox + + More + More + + + Less + Less + + + + QErrorMessage + + &Show this message again + &Show this message again + + + &OK + &OK + + + Debug Message: + Debug Message: + + + Warning: + Warning: + + + Fatal Error: + Fatal Error: + + + + QFile + + Destination file exists + Destination file exists + + + Will not rename sequential file using block copy + Will not rename sequential file using block copy + + + Cannot remove source file + Cannot remove source file + + + Cannot open %1 for input + Cannot open %1 for input + + + Cannot open for output + Cannot open for output + + + Failure to write block + Failure to write block + + + Cannot create %1 for output + Cannot create %1 for output + + + + QFileDialog + + All Files (*) + All Files (*) + + + Back + Back + + + List View + List View + + + Detail View + Detail View + + + File + File + + + Open + Open + + + Save As + Save As + + + &Open + &Open + + + &Save + &Save + + + Recent Places + Recent Places + + + &Rename + &Rename + + + &Delete + &Delete + + + Show &hidden files + Show &hidden files + + + New Folder + New Folder + + + Find Directory + Find Directory + + + Directories + Directories + + + All Files (*.*) + All Files (*.*) + + + Directory: + Directory: + + + %1 already exists. +Do you want to replace it? + %1 already exists. +Do you want to replace it? + + + %1 +File not found. +Please verify the correct file name was given. + %1 +File not found. +Please verify the correct file name was given. + + + My Computer + My Computer + + + Parent Directory + Parent Directory + + + Files of type: + Files of type: + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +Directory not found. +Please verify the correct directory name was given. + + + '%1' is write protected. +Do you want to delete it anyway? + '%1' is write protected. +Do you want to delete it anyway? + + + Are sure you want to delete '%1'? + Are sure you want to delete '%1'? + + + Could not delete directory. + Could not delete directory. + + + Drive + Drive + + + File Folder + Match Windows Explorer + File Folder + + + Folder + All other platforms + Folder + + + Alias + Mac OS X Finder + Alias + + + Shortcut + All other platforms + Shortcut + + + Unknown + Unknown + + + Show + Show + + + Forward + Forward + + + &New Folder + &New Folder + + + &Choose + &Choose + + + Remove + Remove + + + File &name: + File &name: + + + Look in: + Look in: + + + Create New Folder + Create New Folder + + + + QFileSystemModel + + %1 TB + %1 TB + + + %1 GB + %1 GB + + + %1 MB + %1 MB + + + %1 KB + %1 KB + + + %1 bytes + %1 bytes + + + Invalid filename + Invalid filename + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + + + Name + Name + + + Size + Size + + + Kind + Match OS X Finder + Kind + + + Type + All other platforms + Type + + + Date Modified + Date Modified + + + My Computer + My Computer + + + Computer + Computer + + + %1 byte(s) + %1 byte(s) + + + + QFontDatabase + + Normal + Normal + + + Bold + Bold + + + Demi Bold + Demi Bold + + + Black + Black + + + Demi + Demi + + + Light + Light + + + Italic + Italic + + + Oblique + Oblique + + + Any + Any + + + Latin + Latin + + + Greek + Greek + + + Cyrillic + Cyrillic + + + Armenian + Armenian + + + Hebrew + Hebrew + + + Arabic + Arabic + + + Syriac + Syriac + + + Thaana + Thaana + + + Devanagari + Devanagari + + + Bengali + Bengali + + + Gurmukhi + Gurmukhi + + + Gujarati + Gujarati + + + Oriya + Oriya + + + Tamil + Tamil + + + Telugu + Telugu + + + Kannada + Kannada + + + Malayalam + Malayalam + + + Sinhala + Sinhala + + + Thai + Thai + + + Lao + Lao + + + Tibetan + Tibetan + + + Myanmar + Myanmar + + + Georgian + Georgian + + + Khmer + Khmer + + + Simplified Chinese + Simplified Chinese + + + Traditional Chinese + Traditional Chinese + + + Japanese + Japanese + + + Korean + Korean + + + Vietnamese + Vietnamese + + + Symbol + Symbol + + + Ogham + Ogham + + + Runic + Runic + + + N'Ko + N'Ko + + + + QFontDialog + + &Font + &Font + + + Font st&yle + Font st&yle + + + &Size + &Size + + + Effects + Effects + + + Stri&keout + Stri&keout + + + &Underline + &Underline + + + Sample + Sample + + + Select Font + Select Font + + + Wr&iting System + Wr&iting System + + + + QFtp + + Host %1 found + Host %1 found + + + Host found + Host found + + + Connected to host %1 + Connected to host %1 + + + Connected to host + Connected to host + + + Connection to %1 closed + Connection to %1 closed + + + Connection closed + Connection closed + + + Host %1 not found + Host %1 not found + + + Connection refused to host %1 + Connection refused to host %1 + + + Connection timed out to host %1 + Connection timed out to host %1 + + + Unknown error + Unknown error + + + Connecting to host failed: +%1 + Connecting to host failed: +%1 + + + Login failed: +%1 + Login failed: +%1 + + + Listing directory failed: +%1 + Listing directory failed: +%1 + + + Changing directory failed: +%1 + Changing directory failed: +%1 + + + Downloading file failed: +%1 + Downloading file failed: +%1 + + + Uploading file failed: +%1 + Uploading file failed: +%1 + + + Removing file failed: +%1 + Removing file failed: +%1 + + + Creating directory failed: +%1 + Creating directory failed: +%1 + + + Removing directory failed: +%1 + Removing directory failed: +%1 + + + Not connected + Not connected + + + Connection refused for data connection + Connection refused for data connection + + + + QHostInfo + + Unknown error + Unknown error + + + + QHostInfoAgent + + Host not found + Host not found + + + Unknown address type + Unknown address type + + + Unknown error + Unknown error + + + No host name given + No host name given + + + Invalid hostname + Invalid hostname + + + + QHttp + + Connection refused + Connection refused + + + Host %1 not found + Host %1 not found + + + Wrong content length + Wrong content length + + + HTTP request failed + HTTP request failed + + + Host %1 found + Host %1 found + + + Host found + Host found + + + Connected to host %1 + Connected to host %1 + + + Connected to host + Connected to host + + + Connection to %1 closed + Connection to %1 closed + + + Connection closed + Connection closed + + + Unknown error + Unknown error + + + Request aborted + Request aborted + + + No server set to connect to + No server set to connect to + + + Server closed connection unexpectedly + Server closed connection unexpectedly + + + Invalid HTTP response header + Invalid HTTP response header + + + Unknown authentication method + Unknown authentication method + + + Invalid HTTP chunked body + Invalid HTTP chunked body + + + Error writing response to device + Error writing response to device + + + Proxy authentication required + Proxy authentication required + + + Authentication required + Authentication required + + + Proxy requires authentication + Proxy requires authentication + + + Host requires authentication + Host requires authentication + + + Data corrupted + Data corrupted + + + SSL handshake failed + SSL handshake failed + + + Unknown protocol specified + Unknown protocol specified + + + Connection refused (or timed out) + Connection refused (or timed out) + + + HTTPS connection requested but SSL support not compiled in + HTTPS connection requested but SSL support not compiled in + + + + QHttpSocketEngine + + Did not receive HTTP response from proxy + Did not receive HTTP response from proxy + + + Error parsing authentication request from proxy + Error parsing authentication request from proxy + + + Authentication required + Authentication required + + + Proxy denied connection + Proxy denied connection + + + Error communicating with HTTP proxy + Error communicating with HTTP proxy + + + Proxy server not found + Proxy server not found + + + Proxy connection refused + Proxy connection refused + + + Proxy server connection timed out + Proxy server connection timed out + + + Proxy connection closed prematurely + Proxy connection closed prematurely + + + + QIBaseDriver + + Error opening database + Error opening database + + + Could not start transaction + Could not start transaction + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + + QIBaseResult + + Unable to create BLOB + Unable to create BLOB + + + Unable to write BLOB + Unable to write BLOB + + + Unable to open BLOB + Unable to open BLOB + + + Unable to read BLOB + Unable to read BLOB + + + Could not find array + Could not find array + + + Could not get array data + Could not get array data + + + Could not get query info + Could not get query info + + + Could not start transaction + Could not start transaction + + + Unable to commit transaction + Unable to commit transaction + + + Could not allocate statement + Could not allocate statement + + + Could not prepare statement + Could not prepare statement + + + Could not describe input statement + Could not describe input statement + + + Could not describe statement + Could not describe statement + + + Unable to close statement + Unable to close statement + + + Unable to execute query + Unable to execute query + + + Could not fetch next item + Could not fetch next item + + + Could not get statement info + Could not get statement info + + + + QIODevice + + Permission denied + Permission denied + + + Too many open files + Too many open files + + + No such file or directory + No such file or directory + + + No space left on device + No space left on device + + + Unknown error + Unknown error + + + + QInputContext + + XIM + XIM + + + FEP + FEP + + + XIM input method + XIM input method + + + Windows input method + Windows input method + + + Mac OS X input method + Mac OS X input method + + + S60 FEP input method + S60 FEP input method + + + + QInputDialog + + Enter a value: + Enter a value: + + + + QLibrary + + Could not mmap '%1': %2 + Could not mmap '%1': %2 + + + Plugin verification data mismatch in '%1' + Plugin verification data mismatch in '%1' + + + Could not unmap '%1': %2 + Could not unmap '%1': %2 + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + + + Unknown error + Unknown error + + + The shared library was not found. + The shared library was not found. + + + The file '%1' is not a valid Qt plugin. + The file '%1' is not a valid Qt plugin. + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + + + Cannot load library %1: %2 + Cannot load library %1: %2 + + + Cannot unload library %1: %2 + Cannot unload library %1: %2 + + + Cannot resolve symbol "%1" in %2: %3 + Cannot resolve symbol "%1" in %2: %3 + + + + QLineEdit + + Select All + Select All + + + &Undo + &Undo + + + &Redo + &Redo + + + Cu&t + Cu&t + + + &Copy + &Copy + + + &Paste + &Paste + + + Delete + Delete + + + + QLocalServer + + %1: Name error + %1: Name error + + + %1: Permission denied + %1: Permission denied + + + %1: Address in use + %1: Address in use + + + %1: Unknown error %2 + %1: Unknown error %2 + + + + QLocalSocket + + %1: Connection refused + %1: Connection refused + + + %1: Remote closed + %1: Remote closed + + + %1: Invalid name + %1: Invalid name + + + %1: Socket access error + %1: Socket access error + + + %1: Socket resource error + %1: Socket resource error + + + %1: Socket operation timed out + %1: Socket operation timed out + + + %1: Datagram too large + %1: Datagram too large + + + %1: Connection error + %1: Connection error + + + %1: The socket operation is not supported + %1: The socket operation is not supported + + + %1: Unknown error + %1: Unknown error + + + %1: Unknown error %2 + %1: Unknown error %2 + + + + QMYSQLDriver + + Unable to open database ' + Unable to open database ' + + + Unable to connect + Unable to connect + + + Unable to begin transaction + Unable to begin transaction + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + + QMYSQLResult + + Unable to fetch data + Unable to fetch data + + + Unable to execute query + Unable to execute query + + + Unable to store result + Unable to store result + + + Unable to prepare statement + Unable to prepare statement + + + Unable to reset statement + Unable to reset statement + + + Unable to bind value + Unable to bind value + + + Unable to execute statement + Unable to execute statement + + + Unable to bind outvalues + Unable to bind outvalues + + + Unable to store statement results + Unable to store statement results + + + Unable to execute next query + Unable to execute next query + + + Unable to store next result + Unable to store next result + + + + QMdiArea + + (Untitled) + (Untitled) + + + + QMdiSubWindow + + %1 - [%2] + %1 - [%2] + + + Close + Close + + + Minimize + Minimize + + + Restore Down + Restore Down + + + &Restore + &Restore + + + &Move + &Move + + + &Size + &Size + + + Mi&nimize + Mi&nimize + + + Ma&ximize + Ma&ximize + + + Stay on &Top + Stay on &Top + + + &Close + &Close + + + Maximize + Maximize + + + Unshade + Unshade + + + Shade + Shade + + + Restore + Restore + + + Help + Help + + + Menu + Menu + + + - [%1] + - [%1] + + + + QMenu + + Close + Close + + + Open + Open + + + Execute + Execute + + + + QMenuBar + + Actions + Actions + + + + QMessageBox + + OK + OK + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + + + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + + + About Qt + About Qt + + + Help + Help + + + Show Details... + Show Details... + + + Hide Details... + Hide Details... + + + + QMultiInputContext + + Select IM + Select IM + + + + QMultiInputContextPlugin + + Multiple input method switcher + Multiple input method switcher + + + Multiple input method switcher that uses the context menu of the text widgets + Multiple input method switcher that uses the context menu of the text widgets + + + + QNativeSocketEngine + + The remote host closed the connection + The remote host closed the connection + + + Network operation timed out + Network operation timed out + + + Out of resources + Out of resources + + + Unsupported socket operation + Unsupported socket operation + + + Protocol type not supported + Protocol type not supported + + + Invalid socket descriptor + Invalid socket descriptor + + + Network unreachable + Network unreachable + + + Permission denied + Permission denied + + + Connection timed out + Connection timed out + + + Connection refused + Connection refused + + + The bound address is already in use + The bound address is already in use + + + The address is not available + The address is not available + + + The address is protected + The address is protected + + + Unable to send a message + Unable to send a message + + + Unable to receive a message + Unable to receive a message + + + Unable to write + Unable to write + + + Network error + Network error + + + Another socket is already listening on the same port + Another socket is already listening on the same port + + + Unable to initialize non-blocking socket + Unable to initialize non-blocking socket + + + Unable to initialize broadcast socket + Unable to initialize broadcast socket + + + Attempt to use IPv6 socket on a platform with no IPv6 support + Attempt to use IPv6 socket on a platform with no IPv6 support + + + Host unreachable + Host unreachable + + + Datagram was too large to send + Datagram was too large to send + + + Operation on non-socket + Operation on non-socket + + + Unknown error + Unknown error + + + The proxy type is invalid for this operation + The proxy type is invalid for this operation + + + + QNetworkAccessCacheBackend + + Error opening %1 + Error opening %1 + + + + QNetworkAccessDebugPipeBackend + + Write error writing to %1: %2 + Write error writing to %1: %2 + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + Request for opening non-local file %1 + + + Error opening %1: %2 + Error opening %1: %2 + + + Write error writing to %1: %2 + Write error writing to %1: %2 + + + Cannot open %1: Path is a directory + Cannot open %1: Path is a directory + + + Read error reading from %1: %2 + Read error reading from %1: %2 + + + + QNetworkAccessFtpBackend + + No suitable proxy found + No suitable proxy found + + + Cannot open %1: is a directory + Cannot open %1: is a directory + + + Logging in to %1 failed: authentication required + Logging in to %1 failed: authentication required + + + Error while downloading %1: %2 + Error while downloading %1: %2 + + + Error while uploading %1: %2 + Error while uploading %1: %2 + + + + QNetworkAccessHttpBackend + + No suitable proxy found + No suitable proxy found + + + + QNetworkReply + + Error downloading %1 - server replied: %2 + Error downloading %1 - server replied: %2 + + + Protocol "%1" is unknown + Protocol "%1" is unknown + + + + QNetworkReplyImpl + + Operation canceled + Operation canceled + + + + QOCIDriver + + Unable to logon + Unable to logon + + + Unable to initialize + QOCIDriver + Unable to initialize + + + Unable to begin transaction + Unable to begin transaction + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + + QOCIResult + + Unable to bind column for batch execute + Unable to bind column for batch execute + + + Unable to execute batch statement + Unable to execute batch statement + + + Unable to goto next + Unable to goto next + + + Unable to alloc statement + Unable to alloc statement + + + Unable to prepare statement + Unable to prepare statement + + + Unable to get statement type + Unable to get statement type + + + Unable to bind value + Unable to bind value + + + Unable to execute statement + Unable to execute statement + + + + QODBCDriver + + Unable to connect + Unable to connect + + + Unable to disable autocommit + Unable to disable autocommit + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + Unable to enable autocommit + Unable to enable autocommit + + + Unable to connect - Driver doesn't support all functionality required + Unable to connect - Driver doesn't support all functionality required + + + + QODBCResult + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + + + Unable to execute statement + Unable to execute statement + + + Unable to fetch next + Unable to fetch next + + + Unable to prepare statement + Unable to prepare statement + + + Unable to bind variable + Unable to bind variable + + + Unable to fetch last + Unable to fetch last + + + Unable to fetch + Unable to fetch + + + Unable to fetch first + Unable to fetch first + + + Unable to fetch previous + Unable to fetch previous + + + + QObject + + Invalid hostname + Invalid hostname + + + Operation not supported on %1 + Operation not supported on %1 + + + Invalid URI: %1 + Invalid URI: %1 + + + Socket error on %1: %2 + Socket error on %1: %2 + + + Remote host closed the connection prematurely on %1 + Remote host closed the connection prematurely on %1 + + + No host name given + No host name given + + + + QPPDOptionsModel + + Name + Name + + + Value + Value + + + + QPSQLDriver + + Unable to connect + Unable to connect + + + Could not begin transaction + Could not begin transaction + + + Could not commit transaction + Could not commit transaction + + + Could not rollback transaction + Could not rollback transaction + + + Unable to subscribe + Unable to subscribe + + + Unable to unsubscribe + Unable to unsubscribe + + + + QPSQLResult + + Unable to create query + Unable to create query + + + Unable to prepare statement + Unable to prepare statement + + + + QPageSetupWidget + + Centimeters (cm) + Centimeters (cm) + + + Millimeters (mm) + Millimeters (mm) + + + Inches (in) + Inches (in) + + + Points (pt) + Points (pt) + + + Form + Form + + + Paper + Paper + + + Page size: + Page size: + + + Width: + Width: + + + Height: + Height: + + + Paper source: + Paper source: + + + Orientation + Orientation + + + Portrait + Portrait + + + Landscape + Landscape + + + Reverse landscape + Reverse landscape + + + Reverse portrait + Reverse portrait + + + Margins + Margins + + + top margin + top margin + + + left margin + left margin + + + right margin + right margin + + + bottom margin + bottom margin + + + + QPluginLoader + + Unknown error + Unknown error + + + The plugin was not loaded. + The plugin was not loaded. + + + + QPrintDialog + + locally connected + locally connected + + + Aliases: %1 + Aliases: %1 + + + unknown + unknown + + + OK + OK + + + Print all + Print all + + + Print range + Print range + + + A0 (841 x 1189 mm) + A0 (841 x 1189 mm) + + + A1 (594 x 841 mm) + A1 (594 x 841 mm) + + + A2 (420 x 594 mm) + A2 (420 x 594 mm) + + + A3 (297 x 420 mm) + A3 (297 x 420 mm) + + + A5 (148 x 210 mm) + A5 (148 x 210 mm) + + + A6 (105 x 148 mm) + A6 (105 x 148 mm) + + + A7 (74 x 105 mm) + A7 (74 x 105 mm) + + + A8 (52 x 74 mm) + A8 (52 x 74 mm) + + + A9 (37 x 52 mm) + A9 (37 x 52 mm) + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 mm) + + + B1 (707 x 1000 mm) + B1 (707 x 1000 mm) + + + B2 (500 x 707 mm) + B2 (500 x 707 mm) + + + B3 (353 x 500 mm) + B3 (353 x 500 mm) + + + B4 (250 x 353 mm) + B4 (250 x 353 mm) + + + B6 (125 x 176 mm) + B6 (125 x 176 mm) + + + B7 (88 x 125 mm) + B7 (88 x 125 mm) + + + B8 (62 x 88 mm) + B8 (62 x 88 mm) + + + B9 (44 x 62 mm) + B9 (44 x 62 mm) + + + B10 (31 x 44 mm) + B10 (31 x 44 mm) + + + C5E (163 x 229 mm) + C5E (163 x 229 mm) + + + DLE (110 x 220 mm) + DLE (110 x 220 mm) + + + Folio (210 x 330 mm) + Folio (210 x 330 mm) + + + Ledger (432 x 279 mm) + Ledger (432 x 279 mm) + + + Tabloid (279 x 432 mm) + Tabloid (279 x 432 mm) + + + US Common #10 Envelope (105 x 241 mm) + US Common #10 Envelope (105 x 241 mm) + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 mm, 8.26 x 11.7 inches) + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 mm, 6.93 x 9.84 inches) + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (7.5 x 10 inches, 191 x 254 mm) + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8.5 x 14 inches, 216 x 356 mm) + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (8.5 x 11 inches, 216 x 279 mm) + + + Print selection + Print selection + + + Print + Print + + + Print To File ... + Print To File ... + + + File %1 is not writable. +Please choose a different file name. + File %1 is not writable. +Please choose a different file name. + + + %1 already exists. +Do you want to overwrite it? + %1 already exists. +Do you want to overwrite it? + + + File exists + File exists + + + <qt>Do you want to overwrite it?</qt> + <qt>Do you want to overwrite it?</qt> + + + %1 is a directory. +Please choose a different file name. + %1 is a directory. +Please choose a different file name. + + + The 'From' value cannot be greater than the 'To' value. + The 'From' value cannot be greater than the 'To' value. + + + A0 + A0 + + + A1 + A1 + + + A2 + A2 + + + A3 + A3 + + + A4 + A4 + + + A5 + A5 + + + A6 + A6 + + + A7 + A7 + + + A8 + A8 + + + A9 + A9 + + + B0 + B0 + + + B1 + B1 + + + B2 + B2 + + + B3 + B3 + + + B4 + B4 + + + B5 + B5 + + + B6 + B6 + + + B7 + B7 + + + B8 + B8 + + + B9 + B9 + + + B10 + B10 + + + C5E + C5E + + + DLE + DLE + + + Executive + Executive + + + Folio + Folio + + + Ledger + Ledger + + + Legal + Legal + + + Letter + Letter + + + Tabloid + Tabloid + + + US Common #10 Envelope + US Common #10 Envelope + + + Custom + Custom + + + &Options >> + &Options >> + + + &Options << + &Options << + + + Print to File (PDF) + Print to File (PDF) + + + Print to File (Postscript) + Print to File (Postscript) + + + Local file + Local file + + + Write %1 file + Write %1 file + + + &Print + &Print + + + + QPrintPreviewDialog + + %1% + %1% + + + Print Preview + Print Preview + + + Next page + Next page + + + Previous page + Previous page + + + First page + First page + + + Last page + Last page + + + Fit width + Fit width + + + Fit page + Fit page + + + Zoom in + Zoom in + + + Zoom out + Zoom out + + + Portrait + Portrait + + + Landscape + Landscape + + + Show single page + Show single page + + + Show facing pages + Show facing pages + + + Show overview of all pages + Show overview of all pages + + + Print + Print + + + Page setup + Page setup + + + Close + Close + + + Export to PDF + Export to PDF + + + Export to PostScript + Export to PostScript + + + Page Setup + Page Setup + + + + QPrintPropertiesWidget + + Form + Form + + + Page + Page + + + Advanced + Advanced + + + + QPrintSettingsOutput + + Form + Form + + + Copies + Copies + + + Print range + Print range + + + Print all + Print all + + + Pages from + Pages from + + + to + to + + + Selection + Selection + + + Output Settings + Output Settings + + + Copies: + Copies: + + + Collate + Collate + + + Reverse + Reverse + + + Options + Options + + + Color Mode + Color Mode + + + Color + Color + + + Grayscale + Grayscale + + + Duplex Printing + Duplex Printing + + + None + None + + + Long side + Long side + + + Short side + Short side + + + + QPrintWidget + + Form + Form + + + Printer + Printer + + + &Name: + &Name: + + + P&roperties + P&roperties + + + Location: + Location: + + + Preview + Preview + + + Type: + Type: + + + Output &file: + Output &file: + + + ... + ... + + + + QProcess + + Could not open input redirection for reading + Could not open input redirection for reading + + + Could not open output redirection for writing + Could not open output redirection for writing + + + Resource error (fork failure): %1 + Resource error (fork failure): %1 + + + Process operation timed out + Process operation timed out + + + Error reading from process + Error reading from process + + + Error writing to process + Error writing to process + + + Process crashed + Process crashed + + + No program defined + No program defined + + + Process failed to start: %1 + Process failed to start: %1 + + + + QProgressDialog + + Cancel + Cancel + + + + QPushButton + + Open + Open + + + + QRadioButton + + Check + Check + + + + QRegExp + + no error occurred + no error occurred + + + disabled feature used + disabled feature used + + + bad char class syntax + bad char class syntax + + + bad lookahead syntax + bad lookahead syntax + + + bad repetition syntax + bad repetition syntax + + + invalid octal value + invalid octal value + + + missing left delim + missing left delim + + + unexpected end + unexpected end + + + met internal limit + met internal limit + + + invalid interval + invalid interval + + + invalid category + invalid category + + + + QSQLite2Driver + + Error opening database + Error opening database + + + Unable to begin transaction + Unable to begin transaction + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + + QSQLite2Result + + Unable to fetch results + Unable to fetch results + + + Unable to execute statement + Unable to execute statement + + + + QSQLiteDriver + + Error opening database + Error opening database + + + Error closing database + Error closing database + + + Unable to begin transaction + Unable to begin transaction + + + Unable to commit transaction + Unable to commit transaction + + + Unable to rollback transaction + Unable to rollback transaction + + + + QSQLiteResult + + Unable to fetch row + Unable to fetch row + + + Unable to execute statement + Unable to execute statement + + + Unable to reset statement + Unable to reset statement + + + Unable to bind parameters + Unable to bind parameters + + + Parameter count mismatch + Parameter count mismatch + + + No query + No query + + + + QScriptBreakpointsModel + + ID + ID + + + Location + Location + + + Condition + Condition + + + Ignore-count + Ignore-count + + + Single-shot + Single-shot + + + Hit-count + Hit-count + + + + QScriptBreakpointsWidget + + New + New + + + Delete + Delete + + + + QScriptDebugger + + Go to Line + Go to Line + + + Line: + Line: + + + Interrupt + Interrupt + + + Shift+F5 + Shift+F5 + + + Continue + Continue + + + F5 + F5 + + + Step Into + Step Into + + + F11 + F11 + + + Step Over + Step Over + + + F10 + F10 + + + Step Out + Step Out + + + Shift+F11 + Shift+F11 + + + Run to Cursor + Run to Cursor + + + Ctrl+F10 + Ctrl+F10 + + + Run to New Script + Run to New Script + + + Toggle Breakpoint + Toggle Breakpoint + + + F9 + F9 + + + Clear Debug Output + Clear Debug Output + + + Clear Error Log + Clear Error Log + + + Clear Console + Clear Console + + + &Find in Script... + &Find in Script... + + + Ctrl+F + Ctrl+F + + + Find &Next + Find &Next + + + F3 + F3 + + + Find &Previous + Find &Previous + + + Shift+F3 + Shift+F3 + + + Ctrl+G + Ctrl+G + + + Debug + Debug + + + + QScriptDebuggerCodeFinderWidget + + Close + Close + + + Previous + Previous + + + Next + Next + + + Case Sensitive + Case Sensitive + + + Whole words + Whole words + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + + + + QScriptDebuggerLocalsModel + + Name + Name + + + Value + Value + + + + QScriptDebuggerStackModel + + Level + Level + + + Name + Name + + + Location + Location + + + + QScriptEdit + + Toggle Breakpoint + Toggle Breakpoint + + + Disable Breakpoint + Disable Breakpoint + + + Enable Breakpoint + Enable Breakpoint + + + Breakpoint Condition: + Breakpoint Condition: + + + + QScriptEngineDebugger + + Loaded Scripts + Loaded Scripts + + + Breakpoints + Breakpoints + + + Stack + Stack + + + Locals + Locals + + + Console + Console + + + Debug Output + Debug Output + + + Error Log + Error Log + + + Search + Search + + + View + View + + + Qt Script Debugger + Qt Script Debugger + + + + QScriptNewBreakpointWidget + + Close + Close + + + + QScrollBar + + Scroll here + Scroll here + + + Left edge + Left edge + + + Top + Top + + + Right edge + Right edge + + + Bottom + Bottom + + + Page left + Page left + + + Page up + Page up + + + Page right + Page right + + + Page down + Page down + + + Scroll left + Scroll left + + + Scroll up + Scroll up + + + Scroll right + Scroll right + + + Scroll down + Scroll down + + + Line up + Line up + + + Position + Position + + + Line down + Line down + + + + QSharedMemory + + %1: create size is less then 0 + %1: create size is less then 0 + + + %1: unable to lock + %1: unable to lock + + + %1: unable to unlock + %1: unable to unlock + + + %1: permission denied + %1: permission denied + + + %1: already exists + %1: already exists + + + %1: doesn't exists + %1: doesn't exists + + + %1: out of resources + %1: out of resources + + + %1: unknown error %2 + %1: unknown error %2 + + + %1: key is empty + %1: key is empty + + + %1: ftok failed + %1: ftok failed + + + %1: unable to make key + %1: unable to make key + + + %1: doesn't exist + %1: doesn't exist + + + %1: UNIX key file doesn't exist + %1: UNIX key file doesn't exist + + + %1: system-imposed size restrictions + %1: system-imposed size restrictions + + + %1: not attached + %1: not attached + + + %1: invalid size + %1: invalid size + + + %1: key error + %1: key error + + + %1: size query failed + %1: size query failed + + + %1: unable to set key on lock + %1: unable to set key on lock + + + + QShortcut + + Space + Space + + + Esc + Esc + + + Tab + Tab + + + Backtab + Backtab + + + Backspace + Backspace + + + Return + Return + + + Enter + Enter + + + Ins + Ins + + + Del + Del + + + Pause + Pause + + + Print + Print + + + SysReq + SysReq + + + Home + Home + + + End + End + + + Left + Left + + + Up + Up + + + Right + Right + + + Down + Down + + + PgUp + PgUp + + + PgDown + PgDown + + + CapsLock + CapsLock + + + NumLock + NumLock + + + ScrollLock + ScrollLock + + + Menu + Menu + + + Help + Help + + + Back + Back + + + Forward + Forward + + + Stop + Stop + + + Refresh + Refresh + + + Volume Down + Volume Down + + + Volume Mute + Volume Mute + + + Volume Up + Volume Up + + + Bass Boost + Bass Boost + + + Bass Up + Bass Up + + + Bass Down + Bass Down + + + Treble Up + Treble Up + + + Treble Down + Treble Down + + + Media Play + Media Play + + + Media Stop + Media Stop + + + Media Previous + Media Previous + + + Media Next + Media Next + + + Media Record + Media Record + + + Favorites + Favorites + + + Search + Search + + + Standby + Standby + + + Open URL + Open URL + + + Launch Mail + Launch Mail + + + Launch Media + Launch Media + + + Launch (0) + Launch (0) + + + Launch (1) + Launch (1) + + + Launch (2) + Launch (2) + + + Launch (3) + Launch (3) + + + Launch (4) + Launch (4) + + + Launch (5) + Launch (5) + + + Launch (6) + Launch (6) + + + Launch (7) + Launch (7) + + + Launch (8) + Launch (8) + + + Launch (9) + Launch (9) + + + Launch (A) + Launch (A) + + + Launch (B) + Launch (B) + + + Launch (C) + Launch (C) + + + Launch (D) + Launch (D) + + + Launch (E) + Launch (E) + + + Launch (F) + Launch (F) + + + Monitor Brightness Up + Monitor Brightness Up + + + Monitor Brightness Down + Monitor Brightness Down + + + Keyboard Light On/Off + Keyboard Light On/Off + + + Keyboard Brightness Up + Keyboard Brightness Up + + + Keyboard Brightness Down + Keyboard Brightness Down + + + Power Off + Power Off + + + Wake Up + Wake Up + + + Eject + Eject + + + Screensaver + Screensaver + + + WWW + WWW + + + Sleep + Sleep + + + LightBulb + LightBulb + + + Shop + Shop + + + History + History + + + Add Favorite + Add Favorite + + + Hot Links + Hot Links + + + Adjust Brightness + Adjust Brightness + + + Finance + Finance + + + Community + Community + + + Audio Rewind + Audio Rewind + + + Back Forward + Back Forward + + + Application Left + Application Left + + + Application Right + Application Right + + + Book + Book + + + CD + CD + + + Calculator + Calculator + + + Clear + Clear + + + Clear Grab + Clear Grab + + + Close + Close + + + Copy + Copy + + + Cut + Cut + + + Display + Display + + + DOS + DOS + + + Documents + Documents + + + Spreadsheet + Spreadsheet + + + Browser + Browser + + + Game + Game + + + Go + Go + + + iTouch + iTouch + + + Logoff + Logoff + + + Market + Market + + + Meeting + Meeting + + + Keyboard Menu + Keyboard Menu + + + Menu PB + Menu PB + + + My Sites + My Sites + + + News + News + + + Home Office + Home Office + + + Option + Option + + + Paste + Paste + + + Phone + Phone + + + Reply + Reply + + + Reload + Reload + + + Rotate Windows + Rotate Windows + + + Rotation PB + Rotation PB + + + Rotation KB + Rotation KB + + + Save + Save + + + Send + Send + + + Spellchecker + Spellchecker + + + Split Screen + Split Screen + + + Support + Support + + + Task Panel + Task Panel + + + Terminal + Terminal + + + Tools + Tools + + + Travel + Travel + + + Video + Video + + + Word Processor + Word Processor + + + XFer + XFer + + + Zoom In + Zoom In + + + Zoom Out + Zoom Out + + + Away + Away + + + Messenger + Messenger + + + WebCam + WebCam + + + Mail Forward + Mail Forward + + + Pictures + Pictures + + + Music + Music + + + Battery + Battery + + + Bluetooth + Bluetooth + + + Wireless + Wireless + + + Ultra Wide Band + Ultra Wide Band + + + Audio Forward + Audio Forward + + + Audio Repeat + Audio Repeat + + + Audio Random Play + Audio Random Play + + + Subtitle + Subtitle + + + Audio Cycle Track + Audio Cycle Track + + + Time + Time + + + View + View + + + Top Menu + Top Menu + + + Suspend + Suspend + + + Hibernate + Hibernate + + + Print Screen + Print Screen + + + Page Up + Page Up + + + Page Down + Page Down + + + Caps Lock + Caps Lock + + + Num Lock + Num Lock + + + Number Lock + Number Lock + + + Scroll Lock + Scroll Lock + + + Insert + Insert + + + Delete + Delete + + + Escape + Escape + + + System Request + System Request + + + Select + Select + + + Yes + Yes + + + No + No + + + Context1 + Context1 + + + Context2 + Context2 + + + Context3 + Context3 + + + Context4 + Context4 + + + Call + Call + + + Hangup + Hangup + + + Flip + Flip + + + Ctrl + Ctrl + + + Shift + Shift + + + Alt + Alt + + + Meta + Meta + + + + + + + + + F%1 + F%1 + + + Home Page + Home Page + + + + QSlider + + Page left + Page left + + + Page up + Page up + + + Position + Position + + + Page right + Page right + + + Page down + Page down + + + + QSocks5SocketEngine + + Connection to proxy refused + Connection to proxy refused + + + Connection to proxy closed prematurely + Connection to proxy closed prematurely + + + Proxy host not found + Proxy host not found + + + Connection to proxy timed out + Connection to proxy timed out + + + Proxy authentication failed + Proxy authentication failed + + + Proxy authentication failed: %1 + Proxy authentication failed: %1 + + + SOCKS version 5 protocol error + SOCKS version 5 protocol error + + + General SOCKSv5 server failure + General SOCKSv5 server failure + + + Connection not allowed by SOCKSv5 server + Connection not allowed by SOCKSv5 server + + + TTL expired + TTL expired + + + SOCKSv5 command not supported + SOCKSv5 command not supported + + + Address type not supported + Address type not supported + + + Unknown SOCKSv5 proxy error code 0x%1 + Unknown SOCKSv5 proxy error code 0x%1 + + + Network operation timed out + Network operation timed out + + + + QSoftKeyManager + + Ok + Ok + + + Select + Select + + + Done + Done + + + Options + Options + + + Cancel + Cancel + + + Exit + Exit + + + + QSpinBox + + More + More + + + Less + Less + + + + QSql + + Delete + Delete + + + Delete this record? + Delete this record? + + + Yes + Yes + + + No + No + + + Insert + Insert + + + Update + Update + + + Save edits? + Save edits? + + + Cancel + Cancel + + + Confirm + Confirm + + + Cancel your edits? + Cancel your edits? + + + + QSslSocket + + Unable to write data: %1 + Unable to write data: %1 + + + Unable to decrypt data: %1 + Unable to decrypt data: %1 + + + Error while reading: %1 + Error while reading: %1 + + + Error during SSL handshake: %1 + Error during SSL handshake: %1 + + + Error creating SSL context (%1) + Error creating SSL context (%1) + + + Invalid or empty cipher list (%1) + Invalid or empty cipher list (%1) + + + Private key does not certify public key, %1 + Private key does not certify public key, %1 + + + Error creating SSL session, %1 + Error creating SSL session, %1 + + + Error creating SSL session: %1 + Error creating SSL session: %1 + + + Cannot provide a certificate with no key, %1 + Cannot provide a certificate with no key, %1 + + + Error loading local certificate, %1 + Error loading local certificate, %1 + + + Error loading private key, %1 + Error loading private key, %1 + + + No error + No error + + + The issuer certificate could not be found + The issuer certificate could not be found + + + The certificate signature could not be decrypted + The certificate signature could not be decrypted + + + The public key in the certificate could not be read + The public key in the certificate could not be read + + + The signature of the certificate is invalid + The signature of the certificate is invalid + + + The certificate is not yet valid + The certificate is not yet valid + + + The certificate has expired + The certificate has expired + + + The certificate's notBefore field contains an invalid time + The certificate's notBefore field contains an invalid time + + + The certificate's notAfter field contains an invalid time + The certificate's notAfter field contains an invalid time + + + The certificate is self-signed, and untrusted + The certificate is self-signed, and untrusted + + + The root certificate of the certificate chain is self-signed, and untrusted + The root certificate of the certificate chain is self-signed, and untrusted + + + The issuer certificate of a locally looked up certificate could not be found + The issuer certificate of a locally looked up certificate could not be found + + + No certificates could be verified + No certificates could be verified + + + One of the CA certificates is invalid + One of the CA certificates is invalid + + + The basicConstraints path length parameter has been exceeded + The basicConstraints path length parameter has been exceeded + + + The supplied certificate is unsuitable for this purpose + The supplied certificate is unsuitable for this purpose + + + The root CA certificate is not trusted for this purpose + The root CA certificate is not trusted for this purpose + + + The root CA certificate is marked to reject the specified purpose + The root CA certificate is marked to reject the specified purpose + + + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + + + The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate + The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate + + + The peer did not present any certificate + The peer did not present any certificate + + + The host name did not match any of the valid hosts for this certificate + The host name did not match any of the valid hosts for this certificate + + + Unknown error + Unknown error + + + + QStateMachine + + Missing initial state in compound state '%1' + Missing initial state in compound state '%1' + + + Missing default state in history state '%1' + Missing default state in history state '%1' + + + No common ancestor for targets and source of transition from state '%1' + No common ancestor for targets and source of transition from state '%1' + + + Unknown error + Unknown error + + + + QSystemSemaphore + + %1: does not exist + %1: does not exist + + + %1: out of resources + %1: out of resources + + + %1: permission denied + %1: permission denied + + + %1: already exists + %1: already exists + + + %1: unknown error %2 + %1: unknown error %2 + + + + QTDSDriver + + Unable to open connection + Unable to open connection + + + Unable to use database + Unable to use database + + + + QTabBar + + Scroll Left + Scroll Left + + + Scroll Right + Scroll Right + + + + QTcpServer + + Operation on socket is not supported + Operation on socket is not supported + + + + QTextControl + + &Undo + &Undo + + + &Redo + &Redo + + + Cu&t + Cu&t + + + &Copy + &Copy + + + Copy &Link Location + Copy &Link Location + + + &Paste + &Paste + + + Delete + Delete + + + Select All + Select All + + + + QToolButton + + Press + Press + + + Open + Open + + + + QUdpSocket + + This platform does not support IPv6 + This platform does not support IPv6 + + + + QUndoGroup + + Undo + Undo + + + Redo + Redo + + + + QUndoModel + + <empty> + <empty> + + + + QUndoStack + + Undo + Undo + + + Redo + Redo + + + + QUnicodeControlCharacterMenu + + LRM Left-to-right mark + LRM Left-to-right mark + + + RLM Right-to-left mark + RLM Right-to-left mark + + + ZWJ Zero width joiner + ZWJ Zero width joiner + + + ZWNJ Zero width non-joiner + ZWNJ Zero width non-joiner + + + ZWSP Zero width space + ZWSP Zero width space + + + LRE Start of left-to-right embedding + LRE Start of left-to-right embedding + + + RLE Start of right-to-left embedding + RLE Start of right-to-left embedding + + + LRO Start of left-to-right override + LRO Start of left-to-right override + + + RLO Start of right-to-left override + RLO Start of right-to-left override + + + PDF Pop directional formatting + PDF Pop directional formatting + + + Insert Unicode control character + Insert Unicode control character + + + + QWebFrame + + Request cancelled + Request cancelled + + + Request blocked + Request blocked + + + Cannot show URL + Cannot show URL + + + Frame load interrupted by policy change + Frame load interrupted by policy change + + + Cannot show mimetype + Cannot show mimetype + + + File does not exist + File does not exist + + + + QWebPage + + Submit + default label for Submit buttons in forms on web pages + Submit + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + Submit + + + Reset + default label for Reset buttons in forms on web pages + Reset + + + Choose File + title for file button used in HTML forms + Choose File + + + No file selected + text to display in file button used in HTML forms when no file is selected + No file selected + + + Open in New Window + Open in New Window context menu item + Open in New Window + + + Save Link... + Download Linked File context menu item + Save Link... + + + Copy Link + Copy Link context menu item + Copy Link + + + Open Image + Open Image in New Window context menu item + Open Image + + + Save Image + Download Image context menu item + Save Image + + + Copy Image + Copy Link context menu item + Copy Image + + + Open Frame + Open Frame in New Window context menu item + Open Frame + + + Copy + Copy context menu item + Copy + + + Go Back + Back context menu item + Go Back + + + Go Forward + Forward context menu item + Go Forward + + + Stop + Stop context menu item + Stop + + + Reload + Reload context menu item + Reload + + + Cut + Cut context menu item + Cut + + + Paste + Paste context menu item + Paste + + + No Guesses Found + No Guesses Found context menu item + No Guesses Found + + + Ignore + Ignore Spelling context menu item + Ignore + + + Add To Dictionary + Learn Spelling context menu item + Add To Dictionary + + + Search The Web + Search The Web context menu item + Search The Web + + + Look Up In Dictionary + Look Up in Dictionary context menu item + Look Up In Dictionary + + + Open Link + Open Link context menu item + Open Link + + + Ignore + Ignore Grammar context menu item + Ignore + + + Spelling + Spelling and Grammar context sub-menu item + Spelling + + + Show Spelling and Grammar + menu item title + Show Spelling and Grammar + + + Hide Spelling and Grammar + menu item title + Hide Spelling and Grammar + + + Check Spelling + Check spelling context menu item + Check Spelling + + + Check Spelling While Typing + Check spelling while typing context menu item + Check Spelling While Typing + + + Check Grammar With Spelling + Check grammar with spelling context menu item + Check Grammar With Spelling + + + Fonts + Font context sub-menu item + Fonts + + + Bold + Bold context menu item + Bold + + + Italic + Italic context menu item + Italic + + + Underline + Underline context menu item + Underline + + + Outline + Outline context menu item + Outline + + + Direction + Writing direction context sub-menu item + Direction + + + Text Direction + Text direction context sub-menu item + Text Direction + + + Default + Default writing direction context menu item + Default + + + Left to Right + Left to Right context menu item + Left to Right + + + Right to Left + Right to Left context menu item + Right to Left + + + Loading... + Media controller status message when the media is loading + Loading... + + + Live Broadcast + Media controller status message when watching a live broadcast + Live Broadcast + + + Audio Element + Media controller element + Audio Element + + + Video Element + Media controller element + Video Element + + + Mute Button + Media controller element + Mute Button + + + Unmute Button + Media controller element + Unmute Button + + + Play Button + Media controller element + Play Button + + + Pause Button + Media controller element + Pause Button + + + Slider + Media controller element + Slider + + + Slider Thumb + Media controller element + Slider Thumb + + + Rewind Button + Media controller element + Rewind Button + + + Return to Real-time Button + Media controller element + Return to Real-time Button + + + Elapsed Time + Media controller element + Elapsed Time + + + Remaining Time + Media controller element + Remaining Time + + + Status Display + Media controller element + Status Display + + + Fullscreen Button + Media controller element + Fullscreen Button + + + Seek Forward Button + Media controller element + Seek Forward Button + + + Seek Back Button + Media controller element + Seek Back Button + + + Audio element playback controls and status display + Media controller element + Audio element playback controls and status display + + + Video element playback controls and status display + Media controller element + Video element playback controls and status display + + + Mute audio tracks + Media controller element + Mute audio tracks + + + Unmute audio tracks + Media controller element + Unmute audio tracks + + + Begin playback + Media controller element + Begin playback + + + Pause playback + Media controller element + Pause playback + + + Movie time scrubber + Media controller element + Movie time scrubber + + + Movie time scrubber thumb + Media controller element + Movie time scrubber thumb + + + Rewind movie + Media controller element + Rewind movie + + + Return streaming movie to real-time + Media controller element + Return streaming movie to real-time + + + Current movie time + Media controller element + Current movie time + + + Remaining movie time + Media controller element + Remaining movie time + + + Current movie status + Media controller element + Current movie status + + + Play movie in full-screen mode + Media controller element + Play movie in full-screen mode + + + Seek quickly back + Media controller element + Seek quickly back + + + Seek quickly forward + Media controller element + Seek quickly forward + + + Indefinite time + Media time description + Indefinite time + + + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1 days %2 hours %3 minutes %4 seconds + + + %1 hours %2 minutes %3 seconds + Media time description + %1 hours %2 minutes %3 seconds + + + %1 minutes %2 seconds + Media time description + %1 minutes %2 seconds + + + %1 seconds + Media time description + %1 seconds + + + Inspect + Inspect Element context menu item + Inspect + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + No recent searches + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + Recent searches + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + Clear recent searches + + + Unknown + Unknown filesize FTP directory listing item + Unknown + + + Web Inspector - %2 + Web Inspector - %2 + + + %1 (%2x%3 pixels) + Title string for images + %1 (%2x%3 pixels) + + + Bad HTTP request + Bad HTTP request + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + This is a searchable index. Enter search keywords: + + + Scroll here + Scroll here + + + Left edge + Left edge + + + Top + Top + + + Right edge + Right edge + + + Bottom + Bottom + + + Page left + Page left + + + Page up + Page up + + + Page right + Page right + + + Page down + Page down + + + Scroll left + Scroll left + + + Scroll up + Scroll up + + + Scroll right + Scroll right + + + Scroll down + Scroll down + + + %n file(s) + number of chosen file + + %n file(s) + %n file(s) + + + + JavaScript Alert - %1 + JavaScript Alert - %1 + + + JavaScript Confirm - %1 + JavaScript Confirm - %1 + + + JavaScript Prompt - %1 + JavaScript Prompt - %1 + + + JavaScript Problem - %1 + JavaScript Problem - %1 + + + The script on this page appears to have a problem. Do you want to stop the script? + The script on this page appears to have a problem. Do you want to stop the script? + + + Move the cursor to the next character + Move the cursor to the next character + + + Move the cursor to the previous character + Move the cursor to the previous character + + + Move the cursor to the next word + Move the cursor to the next word + + + Move the cursor to the previous word + Move the cursor to the previous word + + + Move the cursor to the next line + Move the cursor to the next line + + + Move the cursor to the previous line + Move the cursor to the previous line + + + Move the cursor to the start of the line + Move the cursor to the start of the line + + + Move the cursor to the end of the line + Move the cursor to the end of the line + + + Move the cursor to the start of the block + Move the cursor to the start of the block + + + Move the cursor to the end of the block + Move the cursor to the end of the block + + + Move the cursor to the start of the document + Move the cursor to the start of the document + + + Move the cursor to the end of the document + Move the cursor to the end of the document + + + Select all + Select all + + + Select to the next character + Select to the next character + + + Select to the previous character + Select to the previous character + + + Select to the next word + Select to the next word + + + Select to the previous word + Select to the previous word + + + Select to the next line + Select to the next line + + + Select to the previous line + Select to the previous line + + + Select to the start of the line + Select to the start of the line + + + Select to the end of the line + Select to the end of the line + + + Select to the start of the block + Select to the start of the block + + + Select to the end of the block + Select to the end of the block + + + Select to the start of the document + Select to the start of the document + + + Select to the end of the document + Select to the end of the document + + + Delete to the start of the word + Delete to the start of the word + + + Delete to the end of the word + Delete to the end of the word + + + Insert a new paragraph + Insert a new paragraph + + + Insert a new line + Insert a new line + + + Paste and Match Style + Paste and Match Style + + + Remove formatting + Remove formatting + + + Strikethrough + Strikethrough + + + Subscript + Subscript + + + Superscript + Superscript + + + Insert Bulleted List + Insert Bulleted List + + + Insert Numbered List + Insert Numbered List + + + Indent + Indent + + + Outdent + Outdent + + + Center + Center + + + Justify + Justify + + + Align Left + Align Left + + + Align Right + Align Right + + + + QWhatsThisAction + + What's This? + What's This? + + + + QWidget + + * + * + + + + QWizard + + Cancel + Cancel + + + Help + Help + + + < &Back + < &Back + + + &Finish + &Finish + + + &Help + &Help + + + Go Back + Go Back + + + Continue + Continue + + + Commit + Commit + + + Done + Done + + + &Next + &Next + + + &Next > + &Next > + + + + QWorkspace + + &Restore + &Restore + + + &Move + &Move + + + &Size + &Size + + + Mi&nimize + Mi&nimize + + + Ma&ximize + Ma&ximize + + + &Close + &Close + + + Stay on &Top + Stay on &Top + + + Minimize + Minimize + + + Restore Down + Restore Down + + + Close + Close + + + Sh&ade + Sh&ade + + + %1 - [%2] + %1 - [%2] + + + &Unshade + &Unshade + + + + QXml + + no error occurred + no error occurred + + + error triggered by consumer + error triggered by consumer + + + unexpected end of file + unexpected end of file + + + more than one document type definition + more than one document type definition + + + error occurred while parsing element + error occurred while parsing element + + + tag mismatch + tag mismatch + + + error occurred while parsing content + error occurred while parsing content + + + unexpected character + unexpected character + + + invalid name for processing instruction + invalid name for processing instruction + + + version expected while reading the XML declaration + version expected while reading the XML declaration + + + wrong value for standalone declaration + wrong value for standalone declaration + + + error occurred while parsing document type definition + error occurred while parsing document type definition + + + letter is expected + letter is expected + + + error occurred while parsing comment + error occurred while parsing comment + + + error occurred while parsing reference + error occurred while parsing reference + + + internal general entity reference not allowed in DTD + internal general entity reference not allowed in DTD + + + external parsed general entity reference not allowed in attribute value + external parsed general entity reference not allowed in attribute value + + + external parsed general entity reference not allowed in DTD + external parsed general entity reference not allowed in DTD + + + unparsed entity reference in wrong context + unparsed entity reference in wrong context + + + recursive entities + recursive entities + + + error in the text declaration of an external entity + error in the text declaration of an external entity + + + encoding declaration or standalone declaration expected while reading the XML declaration + encoding declaration or standalone declaration expected while reading the XML declaration + + + standalone declaration expected while reading the XML declaration + standalone declaration expected while reading the XML declaration + + + + QXmlPatternistCLI + + Warning in %1, at line %2, column %3: %4 + Warning in %1, at line %2, column %3: %4 + + + Warning in %1: %2 + Warning in %1: %2 + + + Unknown location + Unknown location + + + Error %1 in %2, at line %3, column %4: %5 + Error %1 in %2, at line %3, column %4: %5 + + + Error %1 in %2: %3 + Error %1 in %2: %3 + + + + QXmlStream + + Extra content at end of document. + Extra content at end of document. + + + Invalid entity value. + Invalid entity value. + + + Invalid XML character. + Invalid XML character. + + + Sequence ']]>' not allowed in content. + Sequence ']]>' not allowed in content. + + + Namespace prefix '%1' not declared + Namespace prefix '%1' not declared + + + Attribute redefined. + Attribute redefined. + + + Unexpected character '%1' in public id literal. + Unexpected character '%1' in public id literal. + + + Invalid XML version string. + Invalid XML version string. + + + Unsupported XML version. + Unsupported XML version. + + + %1 is an invalid encoding name. + %1 is an invalid encoding name. + + + Encoding %1 is unsupported + Encoding %1 is unsupported + + + Standalone accepts only yes or no. + Standalone accepts only yes or no. + + + Invalid attribute in XML declaration. + Invalid attribute in XML declaration. + + + Premature end of document. + Premature end of document. + + + Invalid document. + Invalid document. + + + Expected + Expected + + + , but got ' + , but got ' + + + Unexpected ' + Unexpected ' + + + Expected character data. + Expected character data. + + + Recursive entity detected. + Recursive entity detected. + + + Start tag expected. + Start tag expected. + + + XML declaration not at start of document. + XML declaration not at start of document. + + + NDATA in parameter entity declaration. + NDATA in parameter entity declaration. + + + %1 is an invalid processing instruction name. + %1 is an invalid processing instruction name. + + + Invalid processing instruction name. + Invalid processing instruction name. + + + Illegal namespace declaration. + Illegal namespace declaration. + + + Invalid XML name. + Invalid XML name. + + + Opening and ending tag mismatch. + Opening and ending tag mismatch. + + + Reference to unparsed entity '%1'. + Reference to unparsed entity '%1'. + + + Entity '%1' not declared. + Entity '%1' not declared. + + + Reference to external entity '%1' in attribute value. + Reference to external entity '%1' in attribute value. + + + Invalid character reference. + Invalid character reference. + + + Encountered incorrectly encoded content. + Encountered incorrectly encoded content. + + + The standalone pseudo attribute must appear after the encoding. + The standalone pseudo attribute must appear after the encoding. + + + %1 is an invalid PUBLIC identifier. + %1 is an invalid PUBLIC identifier. + + + + QtXmlPatterns + + At least one component must be present. + At least one component must be present. + + + %1 is not a valid value of type %2. + %1 is not a valid value of type %2. + + + When casting to %1 from %2, the source value cannot be %3. + When casting to %1 from %2, the source value cannot be %3. + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + + + The data of a processing instruction cannot contain the string %1 + The data of a processing instruction cannot contain the string %1 + + + %1 is an invalid %2 + %1 is an invalid %2 + + + %1 is not a valid XML 1.0 character. + %1 is not a valid XML 1.0 character. + + + %1 was called. + %1 was called. + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + In the replacement string, %1 must be followed by at least one digit when not escaped. + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + In the replacement string, %1 can only be used to escape itself or %2, not %3 + + + %1 matches newline characters + %1 matches newline characters + + + Matches are case insensitive + Matches are case insensitive + + + %1 is an invalid regular expression pattern: %2 + %1 is an invalid regular expression pattern: %2 + + + It will not be possible to retrieve %1. + It will not be possible to retrieve %1. + + + The default collection is undefined + The default collection is undefined + + + %1 cannot be retrieved + %1 cannot be retrieved + + + The item %1 did not match the required type %2. + The item %1 did not match the required type %2. + + + %1 is an unknown schema type. + %1 is an unknown schema type. + + + A template with name %1 has already been declared. + A template with name %1 has already been declared. + + + Only one %1 declaration can occur in the query prolog. + Only one %1 declaration can occur in the query prolog. + + + The initialization of variable %1 depends on itself + The initialization of variable %1 depends on itself + + + The variable %1 is unused + The variable %1 is unused + + + Version %1 is not supported. The supported XQuery version is 1.0. + Version %1 is not supported. The supported XQuery version is 1.0. + + + No function with signature %1 is available + No function with signature %1 is available + + + It is not possible to redeclare prefix %1. + It is not possible to redeclare prefix %1. + + + Prefix %1 is already declared in the prolog. + Prefix %1 is already declared in the prolog. + + + The name of an option must have a prefix. There is no default namespace for options. + The name of an option must have a prefix. There is no default namespace for options. + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + + + The target namespace of a %1 cannot be empty. + The target namespace of a %1 cannot be empty. + + + The module import feature is not supported + The module import feature is not supported + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + + + A function already exists with the signature %1. + A function already exists with the signature %1. + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + No external functions are supported. All supported functions can be used directly, without first declaring them as external + + + The %1-axis is unsupported in XQuery + The %1-axis is unsupported in XQuery + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + The namespace URI cannot be the empty string when binding to a prefix, %1. + + + %1 is an invalid namespace URI. + %1 is an invalid namespace URI. + + + It is not possible to bind to the prefix %1 + It is not possible to bind to the prefix %1 + + + Two namespace declaration attributes have the same name: %1. + Two namespace declaration attributes have the same name: %1. + + + The namespace URI must be a constant and cannot use enclosed expressions. + The namespace URI must be a constant and cannot use enclosed expressions. + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + + + empty + empty + + + zero or one + zero or one + + + exactly one + exactly one + + + one or more + one or more + + + zero or more + zero or more + + + The focus is undefined. + The focus is undefined. + + + An attribute by name %1 has already been created. + An attribute by name %1 has already been created. + + + Network timeout. + Network timeout. + + + Element %1 can't be serialized because it appears outside the document element. + Element %1 can't be serialized because it appears outside the document element. + + + Year %1 is invalid because it begins with %2. + Year %1 is invalid because it begins with %2. + + + Day %1 is outside the range %2..%3. + Day %1 is outside the range %2..%3. + + + Month %1 is outside the range %2..%3. + Month %1 is outside the range %2..%3. + + + Overflow: Can't represent date %1. + Overflow: Can't represent date %1. + + + Day %1 is invalid for month %2. + Day %1 is invalid for month %2. + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + + + Time %1:%2:%3.%4 is invalid. + Time %1:%2:%3.%4 is invalid. + + + Overflow: Date can't be represented. + Overflow: Date can't be represented. + + + At least one time component must appear after the %1-delimiter. + At least one time component must appear after the %1-delimiter. + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + + + A value of type %1 cannot have an Effective Boolean Value. + A value of type %1 cannot have an Effective Boolean Value. + + + Value %1 of type %2 exceeds maximum (%3). + Value %1 of type %2 exceeds maximum (%3). + + + Value %1 of type %2 is below minimum (%3). + Value %1 of type %2 is below minimum (%3). + + + A value of type %1 must contain an even number of digits. The value %2 does not. + A value of type %1 must contain an even number of digits. The value %2 does not. + + + %1 is not valid as a value of type %2. + %1 is not valid as a value of type %2. + + + Operator %1 cannot be used on type %2. + Operator %1 cannot be used on type %2. + + + Operator %1 cannot be used on atomic values of type %2 and %3. + Operator %1 cannot be used on atomic values of type %2 and %3. + + + The namespace URI in the name for a computed attribute cannot be %1. + The namespace URI in the name for a computed attribute cannot be %1. + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + + + Type error in cast, expected %1, received %2. + Type error in cast, expected %1, received %2. + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + + + A comment cannot contain %1 + A comment cannot contain %1 + + + A comment cannot end with a %1. + A comment cannot end with a %1. + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + + + A library module cannot be evaluated directly. It must be imported from a main module. + A library module cannot be evaluated directly. It must be imported from a main module. + + + No template by name %1 exists. + No template by name %1 exists. + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + + + A positional predicate must evaluate to a single numeric value. + A positional predicate must evaluate to a single numeric value. + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + + + No namespace binding exists for the prefix %1 + No namespace binding exists for the prefix %1 + + + No namespace binding exists for the prefix %1 in %2 + No namespace binding exists for the prefix %1 in %2 + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + %1 must be followed by %2 or %3, not at the end of the replacement string. + + + %1 and %2 match the start and end of a line. + %1 and %2 match the start and end of a line. + + + Whitespace characters are removed, except when they appear in character classes + Whitespace characters are removed, except when they appear in character classes + + + %1 is an invalid flag for regular expressions. Valid flags are: + %1 is an invalid flag for regular expressions. Valid flags are: + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + + + Required cardinality is %1; got cardinality %2. + Required cardinality is %1; got cardinality %2. + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + + + The keyword %1 cannot occur with any other mode name. + The keyword %1 cannot occur with any other mode name. + + + No variable with name %1 exists + No variable with name %1 exists + + + The value of attribute %1 must be of type %2, which %3 isn't. + The value of attribute %1 must be of type %2, which %3 isn't. + + + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + + + A variable with name %1 has already been declared. + A variable with name %1 has already been declared. + + + No value is available for the external variable with name %1. + No value is available for the external variable with name %1. + + + A stylesheet function must have a prefixed name. + A stylesheet function must have a prefixed name. + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + + + An argument with name %1 has already been declared. Every argument name must be unique. + An argument with name %1 has already been declared. Every argument name must be unique. + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + + + In an XSL-T pattern, function %1 cannot have a third argument. + In an XSL-T pattern, function %1 cannot have a third argument. + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + + + %1 is an invalid template mode name. + %1 is an invalid template mode name. + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + None of the pragma expressions are supported. Therefore, a fallback expression must be present + + + Each name of a template parameter must be unique; %1 is duplicated. + Each name of a template parameter must be unique; %1 is duplicated. + + + No function with name %1 is available. + No function with name %1 is available. + + + %1 is not a valid numeric literal. + %1 is not a valid numeric literal. + + + W3C XML Schema identity constraint selector + W3C XML Schema identity constraint selector + + + W3C XML Schema identity constraint field + W3C XML Schema identity constraint field + + + A construct was encountered which is disallowed in the current language(%1). + A construct was encountered which is disallowed in the current language(%1). + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + + + An attribute with name %1 has already appeared on this element. + An attribute with name %1 has already appeared on this element. + + + A direct element constructor is not well-formed. %1 is ended with %2. + A direct element constructor is not well-formed. %1 is ended with %2. + + + The name %1 does not refer to any schema type. + The name %1 does not refer to any schema type. + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + + + %1 is not an atomic type. Casting is only possible to atomic types. + %1 is not an atomic type. Casting is only possible to atomic types. + + + %1 is not a valid name for a processing-instruction. + %1 is not a valid name for a processing-instruction. + + + The name of an extension expression must be in a namespace. + The name of an extension expression must be in a namespace. + + + Required type is %1, but %2 was found. + Required type is %1, but %2 was found. + + + Promoting %1 to %2 may cause loss of precision. + Promoting %1 to %2 may cause loss of precision. + + + It's not possible to add attributes after any other kind of node. + It's not possible to add attributes after any other kind of node. + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + + + Integer division (%1) by zero (%2) is undefined. + Integer division (%1) by zero (%2) is undefined. + + + Division (%1) by zero (%2) is undefined. + Division (%1) by zero (%2) is undefined. + + + Modulus division (%1) by zero (%2) is undefined. + Modulus division (%1) by zero (%2) is undefined. + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + %1 takes at most %n argument(s). %2 is therefore invalid. + %1 takes at most %n argument(s). %2 is therefore invalid. + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 requires at least %n argument(s). %2 is therefore invalid. + %1 requires at least %n argument(s). %2 is therefore invalid. + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + + + A default namespace declaration must occur before function, variable, and option declarations. + A default namespace declaration must occur before function, variable, and option declarations. + + + Namespace declarations must occur before function, variable, and option declarations. + Namespace declarations must occur before function, variable, and option declarations. + + + Module imports must occur before function, variable, and option declarations. + Module imports must occur before function, variable, and option declarations. + + + %1 is not a whole number of minutes. + %1 is not a whole number of minutes. + + + Attribute %1 can't be serialized because it appears at the top level. + Attribute %1 can't be serialized because it appears at the top level. + + + %1 is an unsupported encoding. + %1 is an unsupported encoding. + + + %1 contains octets which are disallowed in the requested encoding %2. + %1 contains octets which are disallowed in the requested encoding %2. + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + + + Ambiguous rule match. + Ambiguous rule match. + + + In a namespace constructor, the value for a namespace cannot be an empty string. + In a namespace constructor, the value for a namespace cannot be an empty string. + + + The prefix must be a valid %1, which %2 is not. + The prefix must be a valid %1, which %2 is not. + + + The prefix %1 cannot be bound. + The prefix %1 cannot be bound. + + + Only the prefix %1 can be bound to %2 and vice versa. + Only the prefix %1 can be bound to %2 and vice versa. + + + The parameter %1 is required, but no corresponding %2 is supplied. + The parameter %1 is required, but no corresponding %2 is supplied. + + + The parameter %1 is passed, but no corresponding %2 exists. + The parameter %1 is passed, but no corresponding %2 exists. + + + The URI cannot have a fragment + The URI cannot have a fragment + + + Element %1 is not allowed at this location. + Element %1 is not allowed at this location. + + + Text nodes are not allowed at this location. + Text nodes are not allowed at this location. + + + Parse error: %1 + Parse error: %1 + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + + + Unknown XSL-T attribute %1. + Unknown XSL-T attribute %1. + + + Attribute %1 and %2 are mutually exclusive. + Attribute %1 and %2 are mutually exclusive. + + + In a simplified stylesheet module, attribute %1 must be present. + In a simplified stylesheet module, attribute %1 must be present. + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + + + Element %1 must have at least one of the attributes %2 or %3. + Element %1 must have at least one of the attributes %2 or %3. + + + At least one mode must be specified in the %1-attribute on element %2. + At least one mode must be specified in the %1-attribute on element %2. + + + Element %1 must come last. + Element %1 must come last. + + + At least one %1-element must occur before %2. + At least one %1-element must occur before %2. + + + Only one %1-element can appear. + Only one %1-element can appear. + + + At least one %1-element must occur inside %2. + At least one %1-element must occur inside %2. + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + When attribute %1 is present on %2, a sequence constructor cannot be used. + + + Element %1 must have either a %2-attribute or a sequence constructor. + Element %1 must have either a %2-attribute or a sequence constructor. + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + + + Element %1 cannot have children. + Element %1 cannot have children. + + + Element %1 cannot have a sequence constructor. + Element %1 cannot have a sequence constructor. + + + The attribute %1 cannot appear on %2, when it is a child of %3. + The attribute %1 cannot appear on %2, when it is a child of %3. + + + A parameter in a function cannot be declared to be a tunnel. + A parameter in a function cannot be declared to be a tunnel. + + + This processor is not Schema-aware and therefore %1 cannot be used. + This processor is not Schema-aware and therefore %1 cannot be used. + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + + + Attribute %1 cannot have the value %2. + Attribute %1 cannot have the value %2. + + + The attribute %1 can only appear on the first %2 element. + The attribute %1 can only appear on the first %2 element. + + + At least one %1 element must appear as child of %2. + At least one %1 element must appear as child of %2. + + + %1 has inheritance loop in its base type %2. + %1 has inheritance loop in its base type %2. + + + Circular inheritance of base type %1. + Circular inheritance of base type %1. + + + Circular inheritance of union %1. + Circular inheritance of union %1. + + + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + + + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + + + Base type of simple type %1 cannot be complex type %2. + Base type of simple type %1 cannot be complex type %2. + + + Simple type %1 cannot have direct base type %2. + Simple type %1 cannot have direct base type %2. + + + Simple type %1 is not allowed to have base type %2. + Simple type %1 is not allowed to have base type %2. + + + Simple type %1 can only have simple atomic type as base type. + Simple type %1 can only have simple atomic type as base type. + + + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + + + Variety of item type of %1 must be either atomic or union. + Variety of item type of %1 must be either atomic or union. + + + Variety of member types of %1 must be atomic. + Variety of member types of %1 must be atomic. + + + %1 is not allowed to derive from %2 by list as the latter defines it as final. + %1 is not allowed to derive from %2 by list as the latter defines it as final. + + + Simple type %1 is only allowed to have %2 facet. + Simple type %1 is only allowed to have %2 facet. + + + Base type of simple type %1 must have variety of type list. + Base type of simple type %1 must have variety of type list. + + + Base type of simple type %1 has defined derivation by restriction as final. + Base type of simple type %1 has defined derivation by restriction as final. + + + Item type of base type does not match item type of %1. + Item type of base type does not match item type of %1. + + + Simple type %1 contains not allowed facet type %2. + Simple type %1 contains not allowed facet type %2. + + + %1 is not allowed to derive from %2 by union as the latter defines it as final. + %1 is not allowed to derive from %2 by union as the latter defines it as final. + + + %1 is not allowed to have any facets. + %1 is not allowed to have any facets. + + + Base type %1 of simple type %2 must have variety of union. + Base type %1 of simple type %2 must have variety of union. + + + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + + + Member type %1 cannot be derived from member type %2 of %3's base type %4. + Member type %1 cannot be derived from member type %2 of %3's base type %4. + + + Derivation method of %1 must be extension because the base type %2 is a simple type. + Derivation method of %1 must be extension because the base type %2 is a simple type. + + + Complex type %1 has duplicated element %2 in its content model. + Complex type %1 has duplicated element %2 in its content model. + + + Complex type %1 has non-deterministic content. + Complex type %1 has non-deterministic content. + + + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + + + Content model of complex type %1 is not a valid extension of content model of %2. + Content model of complex type %1 is not a valid extension of content model of %2. + + + Complex type %1 must have simple content. + Complex type %1 must have simple content. + + + Complex type %1 must have the same simple type as its base class %2. + Complex type %1 must have the same simple type as its base class %2. + + + Complex type %1 cannot be derived from base type %2%3. + Complex type %1 cannot be derived from base type %2%3. + + + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + + + Complex type %1 with simple content cannot be derived from complex base type %2. + Complex type %1 with simple content cannot be derived from complex base type %2. + + + Item type of simple type %1 cannot be a complex type. + Item type of simple type %1 cannot be a complex type. + + + Member type of simple type %1 cannot be a complex type. + Member type of simple type %1 cannot be a complex type. + + + %1 is not allowed to have a member type with the same name as itself. + %1 is not allowed to have a member type with the same name as itself. + + + %1 facet collides with %2 facet. + %1 facet collides with %2 facet. + + + %1 facet must have the same value as %2 facet of base type. + %1 facet must have the same value as %2 facet of base type. + + + %1 facet must be equal or greater than %2 facet of base type. + %1 facet must be equal or greater than %2 facet of base type. + + + %1 facet must be less than or equal to %2 facet of base type. + %1 facet must be less than or equal to %2 facet of base type. + + + %1 facet contains invalid regular expression + %1 facet contains invalid regular expression + + + Unknown notation %1 used in %2 facet. + Unknown notation %1 used in %2 facet. + + + %1 facet contains invalid value %2: %3. + %1 facet contains invalid value %2: %3. + + + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + + + %1 facet cannot be %2 if %3 facet of base type is %4. + %1 facet cannot be %2 if %3 facet of base type is %4. + + + %1 facet must be less than or equal to %2 facet. + %1 facet must be less than or equal to %2 facet. + + + %1 facet must be less than %2 facet of base type. + %1 facet must be less than %2 facet of base type. + + + %1 facet and %2 facet cannot appear together. + %1 facet and %2 facet cannot appear together. + + + %1 facet must be greater than %2 facet of base type. + %1 facet must be greater than %2 facet of base type. + + + %1 facet must be less than %2 facet. + %1 facet must be less than %2 facet. + + + %1 facet must be greater than or equal to %2 facet of base type. + %1 facet must be greater than or equal to %2 facet of base type. + + + Simple type contains not allowed facet %1. + Simple type contains not allowed facet %1. + + + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + + + Only %1 and %2 facets are allowed when derived by union. + Only %1 and %2 facets are allowed when derived by union. + + + %1 contains %2 facet with invalid data: %3. + %1 contains %2 facet with invalid data: %3. + + + Attribute group %1 contains attribute %2 twice. + Attribute group %1 contains attribute %2 twice. + + + Attribute group %1 contains two different attributes that both have types derived from %2. + Attribute group %1 contains two different attributes that both have types derived from %2. + + + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + Complex type %1 contains attribute %2 twice. + Complex type %1 contains attribute %2 twice. + + + Complex type %1 contains two different attributes that both have types derived from %2. + Complex type %1 contains two different attributes that both have types derived from %2. + + + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + Element %1 is not allowed to have a value constraint if its base type is complex. + Element %1 is not allowed to have a value constraint if its base type is complex. + + + Element %1 is not allowed to have a value constraint if its type is derived from %2. + Element %1 is not allowed to have a value constraint if its type is derived from %2. + + + Value constraint of element %1 is not of elements type: %2. + Value constraint of element %1 is not of elements type: %2. + + + Element %1 is not allowed to have substitution group affiliation as it is no global element. + Element %1 is not allowed to have substitution group affiliation as it is no global element. + + + Type of element %1 cannot be derived from type of substitution group affiliation. + Type of element %1 cannot be derived from type of substitution group affiliation. + + + Value constraint of attribute %1 is not of attributes type: %2. + Value constraint of attribute %1 is not of attributes type: %2. + + + Attribute %1 has value constraint but has type derived from %2. + Attribute %1 has value constraint but has type derived from %2. + + + %1 attribute in derived complex type must be %2 like in base type. + %1 attribute in derived complex type must be %2 like in base type. + + + Attribute %1 in derived complex type must have %2 value constraint like in base type. + Attribute %1 in derived complex type must have %2 value constraint like in base type. + + + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. + + + Attribute %1 in derived complex type must have %2 value constraint. + Attribute %1 in derived complex type must have %2 value constraint. + + + processContent of base wildcard must be weaker than derived wildcard. + processContent of base wildcard must be weaker than derived wildcard. + + + Element %1 exists twice with different types. + Element %1 exists twice with different types. + + + Particle contains non-deterministic wildcards. + Particle contains non-deterministic wildcards. + + + Base attribute %1 is required but derived attribute is not. + Base attribute %1 is required but derived attribute is not. + + + Type of derived attribute %1 cannot be validly derived from type of base attribute. + Type of derived attribute %1 cannot be validly derived from type of base attribute. + + + Value constraint of derived attribute %1 does not match value constraint of base attribute. + Value constraint of derived attribute %1 does not match value constraint of base attribute. + + + Derived attribute %1 does not exist in the base definition. + Derived attribute %1 does not exist in the base definition. + + + Derived attribute %1 does not match the wildcard in the base definition. + Derived attribute %1 does not match the wildcard in the base definition. + + + Base attribute %1 is required but missing in derived definition. + Base attribute %1 is required but missing in derived definition. + + + Derived definition contains an %1 element that does not exists in the base definition + Derived definition contains an %1 element that does not exists in the base definition + + + Derived wildcard is not a subset of the base wildcard. + Derived wildcard is not a subset of the base wildcard. + + + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + + + Attribute %1 from base type is missing in derived type. + Attribute %1 from base type is missing in derived type. + + + Type of derived attribute %1 differs from type of base attribute. + Type of derived attribute %1 differs from type of base attribute. + + + Base definition contains an %1 element that is missing in the derived definition + Base definition contains an %1 element that is missing in the derived definition + + + %1 references unknown %2 or %3 element %4. + %1 references unknown %2 or %3 element %4. + + + %1 references identity constraint %2 that is no %3 or %4 element. + %1 references identity constraint %2 that is no %3 or %4 element. + + + %1 has a different number of fields from the identity constraint %2 that it references. + %1 has a different number of fields from the identity constraint %2 that it references. + + + Base type %1 of %2 element cannot be resolved. + Base type %1 of %2 element cannot be resolved. + + + Item type %1 of %2 element cannot be resolved. + Item type %1 of %2 element cannot be resolved. + + + Member type %1 of %2 element cannot be resolved. + Member type %1 of %2 element cannot be resolved. + + + Type %1 of %2 element cannot be resolved. + Type %1 of %2 element cannot be resolved. + + + Base type %1 of complex type cannot be resolved. + Base type %1 of complex type cannot be resolved. + + + %1 cannot have complex base type that has a %2. + %1 cannot have complex base type that has a %2. + + + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. + + + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. + + + Type of %1 element must be a simple type, %2 is not. + Type of %1 element must be a simple type, %2 is not. + + + Substitution group %1 of %2 element cannot be resolved. + Substitution group %1 of %2 element cannot be resolved. + + + Substitution group %1 has circular definition. + Substitution group %1 has circular definition. + + + Duplicated element names %1 in %2 element. + Duplicated element names %1 in %2 element. + + + Reference %1 of %2 element cannot be resolved. + Reference %1 of %2 element cannot be resolved. + + + Circular group reference for %1. + Circular group reference for %1. + + + %1 element is not allowed in this scope + %1 element is not allowed in this scope + + + %1 element cannot have %2 attribute with value other than %3. + %1 element cannot have %2 attribute with value other than %3. + + + %1 element cannot have %2 attribute with value other than %3 or %4. + %1 element cannot have %2 attribute with value other than %3 or %4. + + + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. + + + Attribute group %1 has circular reference. + Attribute group %1 has circular reference. + + + %1 attribute in %2 must have %3 use like in base type %4. + %1 attribute in %2 must have %3 use like in base type %4. + + + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. + + + %1 has attribute wildcard but its base type %2 has not. + %1 has attribute wildcard but its base type %2 has not. + + + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. + + + Enumeration facet contains invalid content: {%1} is not a value of type %2. + Enumeration facet contains invalid content: {%1} is not a value of type %2. + + + Namespace prefix of qualified name %1 is not defined. + Namespace prefix of qualified name %1 is not defined. + + + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. + + + Empty particle cannot be derived from non-empty particle. + Empty particle cannot be derived from non-empty particle. + + + Derived particle is missing element %1. + Derived particle is missing element %1. + + + Derived element %1 is missing value constraint as defined in base particle. + Derived element %1 is missing value constraint as defined in base particle. + + + Derived element %1 has weaker value constraint than base particle. + Derived element %1 has weaker value constraint than base particle. + + + Fixed value constraint of element %1 differs from value constraint in base particle. + Fixed value constraint of element %1 differs from value constraint in base particle. + + + Derived element %1 cannot be nillable as base element is not nillable. + Derived element %1 cannot be nillable as base element is not nillable. + + + Block constraints of derived element %1 must not be more weaker than in the base element. + Block constraints of derived element %1 must not be more weaker than in the base element. + + + Simple type of derived element %1 cannot be validly derived from base element. + Simple type of derived element %1 cannot be validly derived from base element. + + + Complex type of derived element %1 cannot be validly derived from base element. + Complex type of derived element %1 cannot be validly derived from base element. + + + Element %1 is missing in derived particle. + Element %1 is missing in derived particle. + + + Element %1 does not match namespace constraint of wildcard in base particle. + Element %1 does not match namespace constraint of wildcard in base particle. + + + Wildcard in derived particle is not a valid subset of wildcard in base particle. + Wildcard in derived particle is not a valid subset of wildcard in base particle. + + + processContent of wildcard in derived particle is weaker than wildcard in base particle. + processContent of wildcard in derived particle is weaker than wildcard in base particle. + + + Derived particle allows content that is not allowed in the base particle. + Derived particle allows content that is not allowed in the base particle. + + + Can not process unknown element %1, expected elements are: %2. + Can not process unknown element %1, expected elements are: %2. + + + Element %1 is not allowed in this scope, possible elements are: %2. + Element %1 is not allowed in this scope, possible elements are: %2. + + + Child element is missing in that scope, possible child elements are: %1. + Child element is missing in that scope, possible child elements are: %1. + + + Document is not a XML schema. + Document is not a XML schema. + + + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + + + %1 attribute of %2 element contains invalid content: {%3}. + %1 attribute of %2 element contains invalid content: {%3}. + + + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + + + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + + + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + + + %1 element without %2 attribute is not allowed inside schema without target namespace. + %1 element without %2 attribute is not allowed inside schema without target namespace. + + + %1 element is not allowed inside %2 element if %3 attribute is present. + %1 element is not allowed inside %2 element if %3 attribute is present. + + + %1 element has neither %2 attribute nor %3 child element. + %1 element has neither %2 attribute nor %3 child element. + + + %1 element with %2 child element must not have a %3 attribute. + %1 element with %2 child element must not have a %3 attribute. + + + %1 attribute of %2 element must be %3 or %4. + %1 attribute of %2 element must be %3 or %4. + + + %1 attribute of %2 element must have a value of %3. + %1 attribute of %2 element must have a value of %3. + + + %1 attribute of %2 element must have a value of %3 or %4. + %1 attribute of %2 element must have a value of %3 or %4. + + + %1 element must not have %2 and %3 attribute together. + %1 element must not have %2 and %3 attribute together. + + + Content of %1 attribute of %2 element must not be from namespace %3. + Content of %1 attribute of %2 element must not be from namespace %3. + + + %1 attribute of %2 element must not be %3. + %1 attribute of %2 element must not be %3. + + + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + + + Specifying use='prohibited' inside an attribute group has no effect. + Specifying use='prohibited' inside an attribute group has no effect. + + + %1 element must have either %2 or %3 attribute. + %1 element must have either %2 or %3 attribute. + + + %1 element must have either %2 attribute or %3 or %4 as child element. + %1 element must have either %2 attribute or %3 or %4 as child element. + + + %1 element requires either %2 or %3 attribute. + %1 element requires either %2 or %3 attribute. + + + Text or entity references not allowed inside %1 element + Text or entity references not allowed inside %1 element + + + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + + + %1 element is not allowed in this context. + %1 element is not allowed in this context. + + + %1 attribute of %2 element has larger value than %3 attribute. + %1 attribute of %2 element has larger value than %3 attribute. + + + Prefix of qualified name %1 is not defined. + Prefix of qualified name %1 is not defined. + + + %1 attribute of %2 element must either contain %3 or the other values. + %1 attribute of %2 element must either contain %3 or the other values. + + + Component with ID %1 has been defined previously. + Component with ID %1 has been defined previously. + + + Element %1 already defined. + Element %1 already defined. + + + Attribute %1 already defined. + Attribute %1 already defined. + + + Type %1 already defined. + Type %1 already defined. + + + Attribute group %1 already defined. + Attribute group %1 already defined. + + + Element group %1 already defined. + Element group %1 already defined. + + + Notation %1 already defined. + Notation %1 already defined. + + + Identity constraint %1 already defined. + Identity constraint %1 already defined. + + + Duplicated facets in simple type %1. + Duplicated facets in simple type %1. + + + %1 is not valid according to %2. + %1 is not valid according to %2. + + + String content does not match the length facet. + String content does not match the length facet. + + + String content does not match the minLength facet. + String content does not match the minLength facet. + + + String content does not match the maxLength facet. + String content does not match the maxLength facet. + + + String content does not match pattern facet. + String content does not match pattern facet. + + + String content is not listed in the enumeration facet. + String content is not listed in the enumeration facet. + + + Signed integer content does not match the maxInclusive facet. + Signed integer content does not match the maxInclusive facet. + + + Signed integer content does not match the maxExclusive facet. + Signed integer content does not match the maxExclusive facet. + + + Signed integer content does not match the minInclusive facet. + Signed integer content does not match the minInclusive facet. + + + Signed integer content does not match the minExclusive facet. + Signed integer content does not match the minExclusive facet. + + + Signed integer content is not listed in the enumeration facet. + Signed integer content is not listed in the enumeration facet. + + + Signed integer content does not match pattern facet. + Signed integer content does not match pattern facet. + + + Signed integer content does not match in the totalDigits facet. + Signed integer content does not match in the totalDigits facet. + + + Unsigned integer content does not match the maxInclusive facet. + Unsigned integer content does not match the maxInclusive facet. + + + Unsigned integer content does not match the maxExclusive facet. + Unsigned integer content does not match the maxExclusive facet. + + + Unsigned integer content does not match the minInclusive facet. + Unsigned integer content does not match the minInclusive facet. + + + Unsigned integer content does not match the minExclusive facet. + Unsigned integer content does not match the minExclusive facet. + + + Unsigned integer content is not listed in the enumeration facet. + Unsigned integer content is not listed in the enumeration facet. + + + Unsigned integer content does not match pattern facet. + Unsigned integer content does not match pattern facet. + + + Unsigned integer content does not match in the totalDigits facet. + Unsigned integer content does not match in the totalDigits facet. + + + Double content does not match the maxInclusive facet. + Double content does not match the maxInclusive facet. + + + Double content does not match the maxExclusive facet. + Double content does not match the maxExclusive facet. + + + Double content does not match the minInclusive facet. + Double content does not match the minInclusive facet. + + + Double content does not match the minExclusive facet. + Double content does not match the minExclusive facet. + + + Double content is not listed in the enumeration facet. + Double content is not listed in the enumeration facet. + + + Double content does not match pattern facet. + Double content does not match pattern facet. + + + Decimal content does not match in the fractionDigits facet. + Decimal content does not match in the fractionDigits facet. + + + Decimal content does not match in the totalDigits facet. + Decimal content does not match in the totalDigits facet. + + + Date time content does not match the maxInclusive facet. + Date time content does not match the maxInclusive facet. + + + Date time content does not match the maxExclusive facet. + Date time content does not match the maxExclusive facet. + + + Date time content does not match the minInclusive facet. + Date time content does not match the minInclusive facet. + + + Date time content does not match the minExclusive facet. + Date time content does not match the minExclusive facet. + + + Date time content is not listed in the enumeration facet. + Date time content is not listed in the enumeration facet. + + + Date time content does not match pattern facet. + Date time content does not match pattern facet. + + + Duration content does not match the maxInclusive facet. + Duration content does not match the maxInclusive facet. + + + Duration content does not match the maxExclusive facet. + Duration content does not match the maxExclusive facet. + + + Duration content does not match the minInclusive facet. + Duration content does not match the minInclusive facet. + + + Duration content does not match the minExclusive facet. + Duration content does not match the minExclusive facet. + + + Duration content is not listed in the enumeration facet. + Duration content is not listed in the enumeration facet. + + + Duration content does not match pattern facet. + Duration content does not match pattern facet. + + + Boolean content does not match pattern facet. + Boolean content does not match pattern facet. + + + Binary content does not match the length facet. + Binary content does not match the length facet. + + + Binary content does not match the minLength facet. + Binary content does not match the minLength facet. + + + Binary content does not match the maxLength facet. + Binary content does not match the maxLength facet. + + + Binary content is not listed in the enumeration facet. + Binary content is not listed in the enumeration facet. + + + Invalid QName content: %1. + Invalid QName content: %1. + + + QName content is not listed in the enumeration facet. + QName content is not listed in the enumeration facet. + + + QName content does not match pattern facet. + QName content does not match pattern facet. + + + Notation content is not listed in the enumeration facet. + Notation content is not listed in the enumeration facet. + + + List content does not match length facet. + List content does not match length facet. + + + List content does not match minLength facet. + List content does not match minLength facet. + + + List content does not match maxLength facet. + List content does not match maxLength facet. + + + List content is not listed in the enumeration facet. + List content is not listed in the enumeration facet. + + + List content does not match pattern facet. + List content does not match pattern facet. + + + Union content is not listed in the enumeration facet. + Union content is not listed in the enumeration facet. + + + Union content does not match pattern facet. + Union content does not match pattern facet. + + + Data of type %1 are not allowed to be empty. + Data of type %1 are not allowed to be empty. + + + Element %1 is missing child element. + Element %1 is missing child element. + + + There is one IDREF value with no corresponding ID: %1. + There is one IDREF value with no corresponding ID: %1. + + + Loaded schema file is invalid. + Loaded schema file is invalid. + + + %1 contains invalid data. + %1 contains invalid data. + + + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + + + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + + + No schema defined for validation. + No schema defined for validation. + + + No definition for element %1 available. + No definition for element %1 available. + + + Specified type %1 is not known to the schema. + Specified type %1 is not known to the schema. + + + Element %1 is not defined in this scope. + Element %1 is not defined in this scope. + + + Declaration for element %1 does not exist. + Declaration for element %1 does not exist. + + + Element %1 contains invalid content. + Element %1 contains invalid content. + + + Element %1 is declared as abstract. + Element %1 is declared as abstract. + + + Element %1 is not nillable. + Element %1 is not nillable. + + + Attribute %1 contains invalid data: %2 + Attribute %1 contains invalid data: %2 + + + Element contains content although it is nillable. + Element contains content although it is nillable. + + + Fixed value constraint not allowed if element is nillable. + Fixed value constraint not allowed if element is nillable. + + + Element %1 cannot contain other elements, as it has a fixed content. + Element %1 cannot contain other elements, as it has a fixed content. + + + Specified type %1 is not validly substitutable with element type %2. + Specified type %1 is not validly substitutable with element type %2. + + + Complex type %1 is not allowed to be abstract. + Complex type %1 is not allowed to be abstract. + + + Element %1 contains not allowed attributes. + Element %1 contains not allowed attributes. + + + Element %1 contains not allowed child element. + Element %1 contains not allowed child element. + + + Content of element %1 does not match its type definition: %2. + Content of element %1 does not match its type definition: %2. + + + Content of element %1 does not match defined value constraint. + Content of element %1 does not match defined value constraint. + + + Element %1 contains not allowed child content. + Element %1 contains not allowed child content. + + + Element %1 contains not allowed text content. + Element %1 contains not allowed text content. + + + Element %1 is missing required attribute %2. + Element %1 is missing required attribute %2. + + + Attribute %1 does not match the attribute wildcard. + Attribute %1 does not match the attribute wildcard. + + + Declaration for attribute %1 does not exist. + Declaration for attribute %1 does not exist. + + + Element %1 contains two attributes of type %2. + Element %1 contains two attributes of type %2. + + + Attribute %1 contains invalid content. + Attribute %1 contains invalid content. + + + Element %1 contains unknown attribute %2. + Element %1 contains unknown attribute %2. + + + Content of attribute %1 does not match its type definition: %2. + Content of attribute %1 does not match its type definition: %2. + + + Content of attribute %1 does not match defined value constraint. + Content of attribute %1 does not match defined value constraint. + + + Non-unique value found for constraint %1. + Non-unique value found for constraint %1. + + + Key constraint %1 contains absent fields. + Key constraint %1 contains absent fields. + + + Key constraint %1 contains references nillable element %2. + Key constraint %1 contains references nillable element %2. + + + No referenced value found for key reference %1. + No referenced value found for key reference %1. + + + More than one value found for field %1. + More than one value found for field %1. + + + Field %1 has no simple type. + Field %1 has no simple type. + + + ID value '%1' is not unique. + ID value '%1' is not unique. + + + '%1' attribute contains invalid QName content: %2. + '%1' attribute contains invalid QName content: %2. + + + diff --git a/config.profiles/symbian/translations/qt_zh_cn_symbian.ts b/config.profiles/symbian/translations/qt_zh_cn_symbian.ts new file mode 100644 index 0000000..b1b9941 --- /dev/null +++ b/config.profiles/symbian/translations/qt_zh_cn_symbian.ts @@ -0,0 +1,8517 @@ + + + + + + CloseButton + + Close Tab + 关闭标签页 + + + + FakeReply + + Fake error ! + 虚假错误! + + + Invalid URL + 无效URL + + + + Phonon:: + + Notifications + 通知 + + + Music + 音乐 + + + Video + 视频 + + + Communication + 通讯 + + + Games + 游戏 + + + Accessibility + 无障碍环境 + + + + Phonon::AudioOutput + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + <html>音频播放设备<b>%1</b>不工作。<br/>无法返回到<b>%2</b>。</html> + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + <html>切换到刚刚可用且较为<br/>偏爱的音频播放设备<b>%1</b>。</html> + + + Revert back to device '%1' + 回复到设备"%1" + + + + Phonon::Gstreamer::Backend + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + 警告:看起来,您没有安装 gstreamer0.10-plugins-good 包。 + 一些视频特性已经被关闭。 + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + 警告:看起来,您没有安装基础的 GStreamer 插件。 + 所有的音频和视频支持都已经被关闭。 + + + + Phonon::Gstreamer::MediaObject + + Cannot start playback. + +Check your GStreamer installation and make sure you +have libgstreamer-plugins-base installed. + + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + 缺少一个需要的解码器。您需要安装如下解码器来播放这个内容:%0 + + + Could not open media source. + 不能打开媒体源。 + + + Invalid source type. + 无效的源类型。 + + + Could not locate media source. + 不能定位媒体源。 + + + Could not open audio device. The device is already in use. + 不能打开音频设备。这个设备正在被使用。 + + + Could not decode media source. + 不能解码媒体源。 + + + + Phonon::MMF + + Audio Output + 音频输出 + + + The audio output device + 音频输出设备 + + + No error + 无错误 + + + Not found + 未找到 + + + Out of memory + 存储不足 + + + Not supported + 不支持 + + + Overflow + 溢出 + + + Underflow + 下溢 + + + Already exists + 已经存在 + + + Path not found + 未找到路径 + + + In use + 在使用中 + + + Not ready + 未就绪 + + + Access denied + 访问被拒绝 + + + Could not connect + 无法连接 + + + Disconnected + 已断开连接 + + + Permission denied + 权限被拒绝 + + + Insufficient bandwidth + 带宽不足 + + + Network unavailable + 网络不可用 + + + Network communication error + 网络通讯错误 + + + Streaming not supported + 不支持流 + + + Server alert + 服务器提示 + + + Invalid protocol + 无效协议 + + + Invalid URL + 无效URL + + + Multicast error + 组播错误 + + + Proxy server error + 代理服务器错误 + + + Proxy server not supported + 代理服务器不受支持 + + + Audio output error + 音频输出错误 + + + Video output error + 视频输出错误 + + + Decoder error + 解码器错误 + + + Audio or video components could not be played + 无法播放音频或视频组件 + + + DRM error + DRM错误 + + + Unknown error (%1) + 未知错误(%1) + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + 不准备播放 + + + Error opening file + 打开文件时出错 + + + Error opening URL + 打开URL时出错 + + + Setting volume failed + 设置卷失败 + + + Playback complete + 播放结束 + + + + Phonon::MMF::AudioEqualizer + + %1 Hz + %1赫兹 + + + + Phonon::MMF::AudioPlayer + + Getting position failed + 获取位置失败 + + + Opening clip failed + 打开片段失败 + + + + Phonon::MMF::EffectFactory + + Enabled + 已启用 + + + + Phonon::MMF::EnvironmentalReverb + + Decay HF ratio (%) + 高频衰减率(%) + + + Decay time (ms) + 衰减时间(毫秒) + + + Density (%) + 密度(%) + + + Diffusion (%) + 散射(%) + + + Reflections delay (ms) + 反映延迟(毫秒) + + + Reflections level (mB) + 反映级别(mB) + + + Reverb delay (ms) + 混响延迟(毫秒) + + + Reverb level (mB) + 混响级别(mB) + + + Room HF level + 高频室级别 + + + Room level (mB) + 室级别(mB) + + + + Phonon::MMF::MediaObject + + Error opening source: type not supported + 打开源时出错:类型不受支持 + + + Error opening source: media type could not be determined + 打开源时出错:无法判断多媒体类型 + + + + Phonon::MMF::StereoWidening + + Level (%) + 级别(%) + + + + Phonon::MMF::VideoPlayer + + Pause failed + 暂停失败 + + + Seek failed + 寻找失败 + + + Getting position failed + 获取位置失败 + + + Opening clip failed + 打开片段失败 + + + Buffering clip failed + 片段缓冲失败 + + + Video display error + 视频显示错误 + + + + Phonon::VolumeSlider + + Volume: %1% + 音量:%1% + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + 请使用这个滑块调节音量。最左为%0,最右为%1% + + + Muted + 已静音 + + + + Q3Accel + + %1, %2 not defined + %1,%2未定义 + + + Ambiguous %1 not handled + 不明确的%1没有被处理 + + + + Q3DataTable + + True + + + + False + + + + Insert + 插入 + + + Update + 更新 + + + Delete + 删除 + + + + Q3FileDialog + + Copy or Move a File + 复制或者移动一个文件 + + + Read: %1 + 读取:%1 + + + Write: %1 + 写入:%1 + + + Cancel + 取消 + + + All Files (*) + 所有文件 (*) + + + Name + 名称 + + + Size + 大小 + + + Type + 类型 + + + Date + 日期 + + + Attributes + 属性 + + + &OK + 确定(&O) + + + Look &in: + 查找范围(&I): + + + File &name: + 文件名称(&N): + + + File &type: + 文件类型(&T): + + + Back + 后退 + + + One directory up + 向上一级 + + + Create New Folder + 创建新文件夹 + + + List View + 列表视图 + + + Detail View + 详细视图 + + + Preview File Info + 预览文件信息 + + + Preview File Contents + 预览文件内容 + + + Read-write + 读写 + + + Read-only + 只读 + + + Write-only + 只写 + + + Inaccessible + 不可访问的 + + + Symlink to File + 文件的系统链接 + + + Symlink to Directory + 目录的系统链接 + + + Symlink to Special + 特殊的系统链接 + + + File + 文件 + + + Dir + 目录 + + + Special + 特殊 + + + Open + 打开 + + + Save As + 另存为 + + + &Open + 打开(&O) + + + &Save + 保存(&S) + + + &Rename + 重命名(&R) + + + &Delete + 删除(&D) + + + R&eload + 重新载入(&E) + + + Sort by &Name + 按名称排列(&N) + + + Sort by &Size + 按大小排列(&S) + + + Sort by &Date + 按日期排列(&D) + + + &Unsorted + 未排列的(&U) + + + Sort + 排列 + + + Show &hidden files + 显示隐藏文件(&H) + + + the file + 文件 + + + the directory + 目录 + + + the symlink + 系统链接 + + + Delete %1 + 删除%1 + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + <qt>你确认你想删除%1,“%2”?</qt> + + + &Yes + 是(&Y) + + + &No + 否(&N) + + + New Folder 1 + 新建文件夹1 + + + New Folder + 新建文件夹 + + + New Folder %1 + 新建文件夹%1 + + + Find Directory + 查找目录 + + + Directories + 目录 + + + Directory: + 目录: + + + Error + 错误 + + + %1 +File not found. +Check path and filename. + 文件%1 +未找到。 +请检查路径和文件名。 + + + + All Files (*.*) + 所有文件 (*.*) + + + Open + 打开 + + + Select a Directory + 选择一个目录 + + + + Q3LocalFs + + Could not read directory +%1 + 不能读取目录 +%1 + + + Could not create directory +%1 + 不能创建目录 +%1 + + + Could not remove file or directory +%1 + 不能移除文件或者目录 +%1 + + + Could not rename +%1 +to +%2 + 不能把 +%1 +重命名为 +%2 + + + Could not open +%1 + 不能打开 +%1 + + + Could not write +%1 + 不能写入 +%1 + + + + Q3MainWindow + + Line up + 排列 + + + Customize... + 自定义... + + + + Q3NetworkProtocol + + Operation stopped by the user + 操作被用户停止 + + + + Q3ProgressDialog + + Cancel + 取消 + + + + Q3TabDialog + + OK + 确认 + + + Apply + 应用 + + + Help + 帮助 + + + Defaults + 默认 + + + Cancel + 取消 + + + + Q3TextEdit + + &Undo + 撤消(&U) + + + &Redo + 恢复(&R) + + + Cu&t + 剪切(&T) + + + &Copy + 复制(&C) + + + &Paste + 粘贴(&P) + + + Clear + 清空 + + + Select All + 选择全部 + + + + Q3TitleBar + + System + 系统 + + + Restore up + 向上恢复 + + + Minimize + 最小化 + + + Restore down + 向下恢复 + + + Maximize + 最大化 + + + Close + 关闭 + + + Contains commands to manipulate the window + 包含操作窗口的命令。 + + + Puts a minimized window back to normal + + + + Moves the window out of the way + 把窗口移到外面 + + + Puts a maximized window back to normal + 把一个最大化窗口恢复为普通状态 + + + Makes the window full screen + 窗口全屏化 + + + Closes the window + 关闭窗口 + + + Displays the name of the window and contains controls to manipulate it + 显示窗口名称并且包含维护它的控件 + + + + Q3ToolBar + + More... + 更多... + + + + Q3UrlOperator + + The protocol `%1' is not supported + 协议“%1”不被支持 + + + The protocol `%1' does not support listing directories + 协议“%1”不支持列出目录 + + + The protocol `%1' does not support creating new directories + 协议“%1”不支持创建新目录 + + + The protocol `%1' does not support removing files or directories + 协议“%1”不支持移除文件或者目录 + + + The protocol `%1' does not support renaming files or directories + 协议“%1”不支持重命名文件或者目录 + + + The protocol `%1' does not support getting files + 协议“%1”不支持获取文件 + + + The protocol `%1' does not support putting files + 协议“%1”不支持上传文件 + + + The protocol `%1' does not support copying or moving files or directories + 协议“%1”不支持复制或者移动文件或者目录 + + + (unknown) + (未知的) + + + + Q3Wizard + + &Cancel + 取消(&C) + + + < &Back + < 上一步(&B) + + + &Next > + 下一步(&N) > + + + &Finish + 完成(&F) + + + &Help + 帮助(&H) + + + + QAbstractSocket + + Host not found + 主机未找到 + + + Connection refused + 连接被拒绝 + + + Connection timed out + 连接超时 + + + Operation on socket is not supported + Socket操作不被支持 + + + Socket operation timed out + 套接字操作超时 + + + Socket is not connected + 套接字没有被连接 + + + Network unreachable + 网络不能访问 + + + + QAbstractSpinBox + + &Step up + 增加(&S) + + + Step &down + 减少(&D) + + + &Select All + 选择关部(&S) + + + + QAccessibleButton + + Press + 按下 + + + + QApplication + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + LTR + + + Executable '%1' requires Qt %2, found Qt %3. + 执行“%1”需要Qt %2,只找到了Qt %3。 + + + Incompatible Qt Library Error + 不兼容的Qt错误 + + + Activate + 激活 + + + Activates the program's main window + 激活这个程序的主窗口 + + + + QAxSelect + + Select ActiveX Control + 选择ActiveX控件 + + + OK + 确定 + + + &Cancel + 取消(&C) + + + COM &Object: + COM对象(&O): + + + + QCheckBox + + Uncheck + 取消选中 + + + Check + 选中 + + + Toggle + 切换 + + + + QColorDialog + + Hu&e: + 色调(&E): + + + &Sat: + 饱和度(&S): + + + &Val: + 亮度(&V): + + + &Red: + 红色(&R): + + + &Green: + 绿色(&G): + + + Bl&ue: + 蓝色(&U): + + + A&lpha channel: + Alpha通道(&A): + + + Select Color + 选择颜色 + + + &Basic colors + 基本颜色(&B) + + + &Custom colors + 自定义颜色(&C) + + + &Add to Custom Colors + 添加到自定义颜色(&A) + + + + QComboBox + + Open + 打开 + + + False + + + + True + + + + Close + 关闭 + + + + QCoreApplication + + %1: key is empty + QSystemSemaphore + %1:键是空的 + + + %1: unable to make key + QSystemSemaphore + %1:不能制造键 + + + %1: ftok failed + QSystemSemaphore + %1:ftok 失败 + + + %1: already exists + QSystemSemaphore + %1:已经存在 + + + %1: does not exist + QSystemSemaphore + %1:不存在 + + + %1: out of resources + QSystemSemaphore + %1:资源耗尽了 + + + %1: unknown error %2 + QSystemSemaphore + %1:未知错误 %2 + + + + QDB2Driver + + Unable to connect + 不能连接 + + + Unable to commit transaction + 不能提交事务 + + + Unable to rollback transaction + 不能回滚事务 + + + Unable to set autocommit + 不能设置自动提交 + + + + QDB2Result + + Unable to execute statement + 不能执行语句 + + + Unable to prepare statement + 不能准备语句 + + + Unable to bind variable + 不能帮定变量 + + + Unable to fetch record %1 + 不能获取记录%1 + + + Unable to fetch next + 不能获取下一个 + + + Unable to fetch first + 不能获取第一个 + + + + QDateTimeEdit + + AM + AM + + + am + am + + + PM + PM + + + pm + pm + + + + QDial + + QDial + QDial + + + SpeedoMeter + SpeedoMeter + + + SliderHandle + SliderHandle + + + + QDialog + + What's This? + 这是什么? + + + Done + 完成 + + + + QDialogButtonBox + + OK + 确定 + + + Save + 保存 + + + &Save + 保存(&S) + + + Open + 打开 + + + Cancel + 取消 + + + &Cancel + 取消(&C) + + + Close + 关闭 + + + &Close + 关闭(&C) + + + Apply + 应用 + + + Reset + 重置 + + + Help + 帮助 + + + Don't Save + 不保存 + + + Discard + 抛弃 + + + &Yes + 是(&Y) + + + Yes to &All + 全部是(&A) + + + &No + 否(&N) + + + N&o to All + 全部否(&O) + + + Save All + 保存全部 + + + Abort + 放弃 + + + Retry + 重试 + + + Ignore + 忽略 + + + Restore Defaults + 恢复默认 + + + Close without Saving + 不保存关闭 + + + &OK + 确定(&O) + + + + QDirModel + + Name + 名称 + + + Size + 大小 + + + Kind + Match OS X Finder + 类型 + + + Type + All other platforms + 类型 + + + Date Modified + 日期被修改 + + + + QDockWidget + + Close + 关闭 + + + Dock + 锚接 + + + Float + 浮动 + + + + QDoubleSpinBox + + More + 更多 + + + Less + 更少 + + + + QErrorMessage + + &Show this message again + 再次显示这个消息(&S) + + + &OK + 确定(&O) + + + Debug Message: + 调试消息: + + + Warning: + 警告: + + + Fatal Error: + 致命错误: + + + + QFile + + Destination file exists + 目标文件已存在 + + + Will not rename sequential file using block copy + 将不使用块复制重命名顺序文件 + + + Cannot remove source file + 无法删除源文件 + + + Cannot open %1 for input + 无法输入 %1 + + + Cannot open for output + 无法输出 + + + Failure to write block + 写块失败 + + + Cannot create %1 for output + 无法创建 %1 + + + + QFileDialog + + All Files (*) + 所有文件 (*) + + + Back + 后退 + + + List View + 列表视图 + + + Detail View + 详细视图 + + + File + 文件 + + + Open + 打开 + + + Save As + 另存为 + + + &Open + 打开(&O) + + + &Save + 保存(&S) + + + Recent Places + 最近的地方 + + + &Rename + 重命名(&R) + + + &Delete + 删除(&D) + + + Show &hidden files + 显示隐藏文件(&H) + + + New Folder + 新建文件夹 + + + Find Directory + 查找目录 + + + Directories + 目录 + + + All Files (*.*) + 所有文件 (*.*) + + + Directory: + 目录: + + + %1 already exists. +Do you want to replace it? + %1已经存在。 +你想要替换它么? + + + %1 +File not found. +Please verify the correct file name was given. + 文件%1 +没有找到。 +请核实已给定正确文件名。 + + + My Computer + 我的计算机 + + + Parent Directory + 父目录 + + + Files of type: + 文件类型: + + + %1 +Directory not found. +Please verify the correct directory name was given. + 目录%1 +没有找到。 +请核实已给定正确目录名。 + + + '%1' is write protected. +Do you want to delete it anyway? + “%1“是写保护的。 +你还是想删除它么? + + + Are sure you want to delete '%1'? + 你确认你想删除“%1“? + + + Could not delete directory. + 不能删除目录。 + + + Drive + 驱动器 + + + File Folder + Match Windows Explorer + 文件文件夹 + + + Folder + All other platforms + 文件夹 + + + Alias + Mac OS X Finder + 别名 + + + Shortcut + All other platforms + 快捷方式 + + + Unknown + 未知的 + + + Show + 显示 + + + Forward + 前进 + + + &New Folder + 新建文件夹(&N) + + + &Choose + 选择(&C) + + + Remove + 移除 + + + File &name: + 文件名称(&N): + + + Look in: + 查看: + + + Create New Folder + 创建新文件夹 + + + + QFileSystemModel + + %1 TB + %1 TB + + + %1 GB + %1 GB + + + %1 MB + %1 MB + + + %1 KB + %1千字节 + + + %1 bytes + %1字节 + + + Invalid filename + 无效文件名 + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>名称“%1“不能被使用。</b><p>请使用另外一个包含更少字符或者不含有标点符号的名称。 + + + Name + 名称 + + + Size + 大小 + + + Kind + Match OS X Finder + 类型 + + + Type + All other platforms + 类型 + + + Date Modified + 日期被修改 + + + My Computer + 我的计算机 + + + Computer + 计算机 + + + %1 byte(s) + %1字节 + + + + QFontDatabase + + Normal + 普通 + + + Bold + 粗体 + + + Demi Bold + 半粗体 + + + Black + 黑体 + + + Demi + 半体 + + + Light + 轻体 + + + Italic + 意大利体 + + + Oblique + 斜体 + + + Any + 任意 + + + Latin + 拉丁文 + + + Greek + 希腊文 + + + Cyrillic + 西里尔文 + + + Armenian + 亚美尼亚文 + + + Hebrew + 希伯来文 + + + Arabic + 阿拉伯文 + + + Syriac + 叙利亚文 + + + Thaana + 马尔代夫文 + + + Devanagari + 梵文 + + + Bengali + 孟加拉文 + + + Gurmukhi + 旁遮普文 + + + Gujarati + 古吉拉特文 + + + Oriya + 奥里雅文 + + + Tamil + 泰米尔文 + + + Telugu + 泰卢固文 + + + Kannada + 埃纳德文 + + + Malayalam + 马拉亚拉姆文 + + + Sinhala + 僧伽罗文 + + + Thai + 泰国文 + + + Lao + 老挝文 + + + Tibetan + 藏文 + + + Myanmar + 缅甸文 + + + Georgian + 格鲁吉亚文 + + + Khmer + 谷美尔文 + + + Simplified Chinese + 简体中文 + + + Traditional Chinese + 繁体中文 + + + Japanese + 日文 + + + Korean + 韩文 + + + Vietnamese + 越南文 + + + Symbol + 符号 + + + Ogham + 欧甘文 + + + Runic + 古北欧文 + + + N'Ko + N'Ko + + + + QFontDialog + + &Font + 字体(&F) + + + Font st&yle + 字体风格(&Y) + + + &Size + 大小(&S) + + + Effects + 效果 + + + Stri&keout + 删除线(&K) + + + &Underline + 下划线(&U) + + + Sample + 实例 + + + Select Font + 选择字体 + + + Wr&iting System + 书写系统(&I) + + + + QFtp + + Host %1 found + 主机%1找到了 + + + Host found + 主机找到了 + + + Connected to host %1 + 连接到主机%1了 + + + Connected to host + 连接到主机了 + + + Connection to %1 closed + 到%1的连接关闭了 + + + Connection closed + 连接关闭了 + + + Host %1 not found + 主机%1没有找到 + + + Connection refused to host %1 + 连接被主机 %1 拒绝 + + + Connection timed out to host %1 + 主机%1连接超时 + + + Unknown error + 未知的错误 + + + Connecting to host failed: +%1 + 连接主机失败: +%1 + + + Login failed: +%1 + 登录失败: +%1 + + + Listing directory failed: +%1 + 列出目录失败: +%1 + + + Changing directory failed: +%1 + 改变目录失败: +%1 + + + Downloading file failed: +%1 + 下载文件失败: +%1 + + + Uploading file failed: +%1 + 上传文件失败: +%1 + + + Removing file failed: +%1 + 移除文件失败: +%1 + + + Creating directory failed: +%1 + 创建目录失败: +%1 + + + Removing directory failed: +%1 + 移除目录失败: +%1 + + + Not connected + 没有连接 + + + Connection refused for data connection + 因为数据连接而被拒绝连接 + + + + QHostInfo + + Unknown error + 未知的错误 + + + + QHostInfoAgent + + Host not found + 主机未找到 + + + Unknown address type + 未知的地址类型 + + + Unknown error + 未知的错误 + + + No host name given + 未给定主机名 + + + Invalid hostname + 无效主机名 + + + + QHttp + + Connection refused + 连接被拒绝 + + + Host %1 not found + 主机%1没有找到 + + + Wrong content length + 错误的内容长度 + + + HTTP request failed + HTTP请求失败 + + + Host %1 found + 主机%1找到了 + + + Host found + 主机找到了 + + + Connected to host %1 + 连接到%1主机了 + + + Connected to host + 连接到主机了 + + + Connection to %1 closed + 到%1的连接关闭了 + + + Connection closed + 连接关闭了 + + + Unknown error + 未知的错误 + + + Request aborted + 请求被放弃了 + + + No server set to connect to + 没有设置要连接的服务器 + + + Server closed connection unexpectedly + 服务器异常地关闭了连接 + + + Invalid HTTP response header + 无效的HTTP响应头 + + + Unknown authentication method + 未知鉴定方法 + + + Invalid HTTP chunked body + 无效的HTTP臃肿体 + + + Error writing response to device + 向设备中进行写回复时发生错误 + + + Proxy authentication required + 代理需要认证 + + + Authentication required + 需要认证 + + + Proxy requires authentication + 代理需要验证 + + + Host requires authentication + 主机需要验证 + + + Data corrupted + 数据错误 + + + SSL handshake failed + SSL 握手失败 + + + Unknown protocol specified + 所指定的协议是未知的 + + + Connection refused (or timed out) + 连接被拒绝(或者超时) + + + HTTPS connection requested but SSL support not compiled in + HTTPS 连接需要 SSL,但它没有被编译进来 + + + + QHttpSocketEngine + + Did not receive HTTP response from proxy + 未收到代理的HTTP响应 + + + Error parsing authentication request from proxy + 解析代理的认证请求出错 + + + Authentication required + 需要认证 + + + Proxy denied connection + 代理拒绝连接 + + + Error communicating with HTTP proxy + 和HTTP代理通讯时发生错误 + + + Proxy server not found + 未找到代理服务器 + + + Proxy connection refused + 代理连接被拒绝 + + + Proxy server connection timed out + 代理服务器连接超时 + + + Proxy connection closed prematurely + 代理连接过早关闭 + + + + QIBaseDriver + + Error opening database + 打开数据库错误 + + + Could not start transaction + 不能开始事务 + + + Unable to commit transaction + 不能提交事务 + + + Unable to rollback transaction + 不能回滚事务 + + + + QIBaseResult + + Unable to create BLOB + 不能创建BLOB + + + Unable to write BLOB + 不能写入BLOB + + + Unable to open BLOB + 不能打开BLOB + + + Unable to read BLOB + 不能读取BLOB + + + Could not find array + 不能找到数组 + + + Could not get array data + 不能得到数组数据 + + + Could not get query info + 不能得到查询信息 + + + Could not start transaction + 不能开始事务 + + + Unable to commit transaction + 不能提交事务 + + + Could not allocate statement + 不能分配语句 + + + Could not prepare statement + 不能准备语句 + + + Could not describe input statement + 不能描述输入语句 + + + Could not describe statement + 不能描述语句 + + + Unable to close statement + 不能关闭语句 + + + Unable to execute query + 不能执行查询 + + + Could not fetch next item + 不能获取下一项 + + + Could not get statement info + 不能得到语句信息 + + + + QIODevice + + Permission denied + 权限被拒绝 + + + Too many open files + 太多打开的文件 + + + No such file or directory + 没有这个文件或者目录 + + + No space left on device + 设备上没有空间了 + + + Unknown error + 未知的错误 + + + + QInputContext + + XIM + XIM + + + FEP + FEP + + + XIM input method + XIM输入法 + + + Windows input method + Windows输入法 + + + Mac OS X input method + Mac OS X输入法 + + + S60 FEP input method + S60 FEP输入法 + + + + QInputDialog + + Enter a value: + 输入一个值: + + + + QLibrary + + Could not mmap '%1': %2 + 不能映射”%1“:%2 + + + Plugin verification data mismatch in '%1' + “%1“中的插件验证数据不匹配 + + + Could not unmap '%1': %2 + 不能取消映射“%1“:%2 + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + 插件“%1”使用了不兼容的Qt库。(%2.%3.%4) [%5] + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + 插件“%1“使用了不兼容的Qt库。期待的构建键是“%2“,得到的却是”%3“ + + + Unknown error + 未知的错误 + + + The shared library was not found. + 共享库没有被找到。 + + + The file '%1' is not a valid Qt plugin. + 文件“%1“不是有效的Qt插件。 + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + 插件“%1“使用了不兼容的Qt库。(不能混合使用库的调试版本和发布版本。) + + + Cannot load library %1: %2 + 无法加载库%1:%2 + + + Cannot unload library %1: %2 + 无法卸载库%1:%2 + + + Cannot resolve symbol "%1" in %2: %3 + 无法解析%2中的符号“%2”:%3 + + + + QLineEdit + + Select All + 选择全部 + + + &Undo + 撤消(&U) + + + &Redo + 恢复(&R) + + + Cu&t + 剪切(&T) + + + &Copy + 复制(&C) + + + &Paste + 粘贴(&P) + + + Delete + 删除 + + + + QLocalServer + + %1: Name error + %1: 名称错误 + + + %1: Permission denied + %1:权限被拒绝 + + + %1: Address in use + %1:地址正在被使用 + + + %1: Unknown error %2 + %1:未知错误 %2 + + + + QLocalSocket + + %1: Connection refused + %1:连接被拒绝 + + + %1: Remote closed + %1:远程已关闭 + + + %1: Invalid name + %1:无效名称 + + + %1: Socket access error + %1:套接字访问错误 + + + %1: Socket resource error + %1:套接字资源错误 + + + %1: Socket operation timed out + %1:套接字操作超时 + + + %1: Datagram too large + %1:数据报太大 + + + %1: Connection error + %1:连接错误 + + + %1: The socket operation is not supported + %1:套接字操作不被支持 + + + %1: Unknown error + %1:未知错误 + + + %1: Unknown error %2 + %1:未知错误 %2 + + + + QMYSQLDriver + + Unable to open database ' + 不能打开数据库 + + + Unable to connect + 不能连接 + + + Unable to begin transaction + 不能开始事务 + + + Unable to commit transaction + 不能提交事务 + + + Unable to rollback transaction + 不能回滚事务 + + + + QMYSQLResult + + Unable to fetch data + 不能获取数据 + + + Unable to execute query + 不能执行查询 + + + Unable to store result + 不能存储结果 + + + Unable to prepare statement + 不能准备语句 + + + Unable to reset statement + 不能重置语句 + + + Unable to bind value + 不能绑定值 + + + Unable to execute statement + 不能执行语句 + + + Unable to bind outvalues + 不能绑定外值 + + + Unable to store statement results + 不能存储语句结果 + + + Unable to execute next query + 不能执行下一个查询 + + + Unable to store next result + 不能存储下一个结果 + + + + QMdiArea + + (Untitled) + (未命名的) + + + + QMdiSubWindow + + %1 - [%2] + %1 - [%2] + + + Close + 关闭 + + + Minimize + 最小化 + + + Restore Down + 向下恢复 + + + &Restore + 恢复(&R) + + + &Move + 移动(&M) + + + &Size + 大小(&S) + + + Mi&nimize + 最小化(&N) + + + Ma&ximize + 最大化(&X) + + + Stay on &Top + 总在最前(&T) + + + &Close + 关闭(&C) + + + Maximize + 最大化 + + + Unshade + 取消遮蔽 + + + Shade + 遮蔽 + + + Restore + 恢复 + + + Help + 帮助 + + + Menu + 菜单 + + + - [%1] + - [%1] + + + + QMenu + + Close + 关闭 + + + Open + 打开 + + + Execute + 执行 + + + + QMenuBar + + Actions + 操作 + + + + QMessageBox + + OK + 确定 + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>关于Qt</h3><p>此程序使用Qt版本%1。</p> + + + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <p>Qt是一个C++工具箱,用于跨平台应用程序开发。</p><p>Qt具有单一源跨可移植性,可跨越MS&nbsp;Windows、Mac&nbsp;OS&nbsp;X、Linux和所有主要的商业Unix类平台进行移植。Qt还适用于嵌入式设备,如Qt for Embedded Linux和Qt for Windows CE。</p><p>Qt有三种不同许可方式,以满足各种用户需求。</p><p>假如您要开发专利/商业软件,但不希望与第三方共享任何源代码,或者无法符合GNU LGPL版本2.1或GNU GPL版本3.0的条款,则按照我们的商业许可证协议授权的Qt非常适用。</p><p>假如您能够符合GNU LGPL版本2.1的条款和条件,则按照GNU LGPL版本2.1授权的Qt非常适合开发Qt应用程序(专有或开放源码)。</p><p>假如在开发Qt应用程序过程中,您希望这类应用程序能与遵循GNU GPL版本3.0的软件合用,或者您愿意符合GNU GPL版本3.0条款,则按照GNU通用公共许可证版本3.0授权的Qt非常适用。</p><p>请参阅<a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a>了解Qt授权概况。</p><p>版权所有 (C) 2010 诺基亚公司和/或附属公司。</p><p>Qt是一款诺基亚产品。请参阅<a href="http://qt.nokia.com/">qt.nokia.com</a>了解详情。</p> + + + About Qt + 关于Qt + + + Help + 帮助 + + + Show Details... + 显示细节…… + + + Hide Details... + 隐藏细节…… + + + + QMultiInputContext + + Select IM + 选择输入法 + + + + QMultiInputContextPlugin + + Multiple input method switcher + 多输入法切换器 + + + Multiple input method switcher that uses the context menu of the text widgets + 使用文本窗口部件上下文菜单的多输入法切换器 + + + + QNativeSocketEngine + + The remote host closed the connection + 远端主机关闭了这个连接 + + + Network operation timed out + 网络操作超时 + + + Out of resources + 资源耗尽了 + + + Unsupported socket operation + 不被支持的套接字操作 + + + Protocol type not supported + 协议类型不被支持 + + + Invalid socket descriptor + 无效的套接字描述符 + + + Network unreachable + 网络不能访问 + + + Permission denied + 权限被拒绝 + + + Connection timed out + 连接超时 + + + Connection refused + 连接被拒绝 + + + The bound address is already in use + 要启用的地址已经被使用 + + + The address is not available + 这个地址不可用 + + + The address is protected + 这个地址被保护了 + + + Unable to send a message + 不能发送一个消息 + + + Unable to receive a message + 不能接收一个消息 + + + Unable to write + 不能写入 + + + Network error + 网络错误 + + + Another socket is already listening on the same port + 另一个套接字已经正在监听同一端口 + + + Unable to initialize non-blocking socket + 不能初始化非阻塞套接字 + + + Unable to initialize broadcast socket + 不能初始化广播套接字 + + + Attempt to use IPv6 socket on a platform with no IPv6 support + 试图在不支持IPv6支持的平台上使用IPv6套接字 + + + Host unreachable + 主机不能访问 + + + Datagram was too large to send + 不能发送过大的数据报 + + + Operation on non-socket + 对非套接字操作 + + + Unknown error + 未知的错误 + + + The proxy type is invalid for this operation + 对于这个操作代理类型是无效的。 + + + + QNetworkAccessCacheBackend + + Error opening %1 + 打开%1发生错误 + + + + QNetworkAccessDebugPipeBackend + + Write error writing to %1: %2 + 写入%1时出错:%2 + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + 正在打开非本地文件 %1 的请求 + + + Error opening %1: %2 + 打开 %1 错误:%2 + + + Write error writing to %1: %2 + 写入 %1 错误:%2 + + + Cannot open %1: Path is a directory + 无法打开 %1:路径是一个目录 + + + Read error reading from %1: %2 + 读取 %1 错误:%2 + + + + QNetworkAccessFtpBackend + + No suitable proxy found + 未找到合适的代理 + + + Cannot open %1: is a directory + 无法读取 %1:是一个目录 + + + Logging in to %1 failed: authentication required + 登入 %1 失败:需要验证 + + + Error while downloading %1: %2 + 下载 %1 时错误:%2 + + + Error while uploading %1: %2 + 上载 %1 时错误:%2 + + + + QNetworkAccessHttpBackend + + No suitable proxy found + 未找到合适的代理 + + + + QNetworkReply + + Error downloading %1 - server replied: %2 + 下载 %1 错误 - 服务器回复:%2 + + + Protocol "%1" is unknown + 协议“%1”是未知的 + + + + QNetworkReplyImpl + + Operation canceled + 操作被取消 + + + + QOCIDriver + + Unable to logon + 不能登录 + + + Unable to initialize + QOCIDriver + 不能初始化 + + + Unable to begin transaction + 不能开始事务 + + + Unable to commit transaction + 不能提交事务 + + + Unable to rollback transaction + 不能回滚事务 + + + + QOCIResult + + Unable to bind column for batch execute + 不能绑定批处理执行的列 + + + Unable to execute batch statement + 不能执行批处理语句 + + + Unable to goto next + 不能进入下一个 + + + Unable to alloc statement + 不能分配语句 + + + Unable to prepare statement + 不能准备语句 + + + Unable to get statement type + + + + Unable to bind value + 不能绑定值 + + + Unable to execute statement + 不能执行语句 + + + + QODBCDriver + + Unable to connect + 不能连接 + + + Unable to disable autocommit + 不能禁止自动提交 + + + Unable to commit transaction + 不能提交事务 + + + Unable to rollback transaction + 不能回滚事务 + + + Unable to enable autocommit + 不能打开自动提交 + + + Unable to connect - Driver doesn't support all functionality required + + + + + QODBCResult + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: 不能把“SQL_CURSOR_STATIC”设置为语句属性。请检查你的ODBC驱动程序设置。 + + + Unable to execute statement + 不能执行语句 + + + Unable to fetch next + 不能获取下一个 + + + Unable to prepare statement + 不能准备语句 + + + Unable to bind variable + 不能帮定变量 + + + Unable to fetch last + 不能获取最后一个 + + + Unable to fetch + 不能获取 + + + Unable to fetch first + 不能获取第一个 + + + Unable to fetch previous + 不能获取上一个 + + + + QObject + + Invalid hostname + 无效主机名 + + + Operation not supported on %1 + 在 %1 上不被支持的操作 + + + Invalid URI: %1 + 无效的 URI:%1 + + + Socket error on %1: %2 + %1 上的套接字错误:%2 + + + Remote host closed the connection prematurely on %1 + 远程主机过早地关闭了在 %1 上的这个连接 + + + No host name given + 未指定主机名 + + + + QPPDOptionsModel + + Name + 名称 + + + Value + + + + + QPSQLDriver + + Unable to connect + 不能连接 + + + Could not begin transaction + 不能开始事务 + + + Could not commit transaction + 不能提交事务 + + + Could not rollback transaction + 不能回滚事务 + + + Unable to subscribe + 不能订阅 + + + Unable to unsubscribe + 不能取消订阅 + + + + QPSQLResult + + Unable to create query + 不能创建查询 + + + Unable to prepare statement + 不能准备语句 + + + + QPageSetupWidget + + Centimeters (cm) + 厘米 (cm) + + + Millimeters (mm) + 毫米 (mm) + + + Inches (in) + 英寸 (in) + + + Points (pt) + 点 (pt) + + + Form + 窗体 + + + Paper + 纸张 + + + Page size: + 纸张大小: + + + Width: + 宽度: + + + Height: + 高度: + + + Paper source: + 纸张源: + + + Orientation + 方向 + + + Portrait + 纵向 + + + Landscape + 横向 + + + Reverse landscape + 反向横向 + + + Reverse portrait + 反向纵向 + + + Margins + 边距 + + + top margin + 上边距 + + + left margin + 左边距 + + + right margin + 右边距 + + + bottom margin + 下边距 + + + + QPluginLoader + + Unknown error + 未知的错误 + + + The plugin was not loaded. + 插件没有被载入。 + + + + QPrintDialog + + locally connected + 本地已经连接的 + + + Aliases: %1 + 别名:%1 + + + unknown + 未知的 + + + OK + 确定 + + + Print all + 打印全部 + + + Print range + 打印范围 + + + A0 (841 x 1189 mm) + A0 (841 x 1189 毫米) + + + A1 (594 x 841 mm) + A1 (594 x 841 毫米) + + + A2 (420 x 594 mm) + A2 (420 x 594 毫米) + + + A3 (297 x 420 mm) + A3 (297 x 420 毫米) + + + A5 (148 x 210 mm) + A5 (148 x 210 毫米) + + + A6 (105 x 148 mm) + A6 (105 x 148 毫米) + + + A7 (74 x 105 mm) + A7 (74 x 105 毫米) + + + A8 (52 x 74 mm) + A8 (52 x 74 毫米) + + + A9 (37 x 52 mm) + A9 (37 x 52 毫米) + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 毫米) + + + B1 (707 x 1000 mm) + B1 (707 x 1000 毫米) + + + B2 (500 x 707 mm) + B2 (500 x 707 毫米) + + + B3 (353 x 500 mm) + B3 (353 x 500 毫米) + + + B4 (250 x 353 mm) + B4 (250 x 353 毫米) + + + B6 (125 x 176 mm) + B6 (125 x 176 毫米) + + + B7 (88 x 125 mm) + B7 (88 x 125 毫米) + + + B8 (62 x 88 mm) + B8 (62 x 88 毫米) + + + B9 (44 x 62 mm) + B9 (44 x 62 毫米) + + + B10 (31 x 44 mm) + B10 (31 x 44 毫米) + + + C5E (163 x 229 mm) + C5E (163 x 229 毫米) + + + DLE (110 x 220 mm) + DLE (110 x 220 毫米) + + + Folio (210 x 330 mm) + Folio (210 x 330 毫米) + + + Ledger (432 x 279 mm) + Ledger (432 x 279 毫米) + + + Tabloid (279 x 432 mm) + Tabloid (279 x 432 毫米) + + + US Common #10 Envelope (105 x 241 mm) + 美国普通10号信封 (105 x 241 毫米) + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 毫米,8.26 x 11.7 英寸) + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 毫米,6.93 x 9.84 英寸) + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (7.5 x 10 英寸,191 x 254 毫米) + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8.5 x 14 英寸,216 x 356 毫米) + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (8.5 x 11 英寸,216 x 279 毫米) + + + Print selection + 打印选择 + + + Print + 打印 + + + Print To File ... + 打印到文件…… + + + File %1 is not writable. +Please choose a different file name. + 文件%1不可写。 +请选择一个不同的文件名。 + + + %1 already exists. +Do you want to overwrite it? + %1已经存在。 +你想覆盖它么? + + + File exists + 文件存在 + + + <qt>Do you want to overwrite it?</qt> + <qt>你想覆盖它么?</qt> + + + %1 is a directory. +Please choose a different file name. + %1是目录。 +请选择一个不同的文件名。 + + + The 'From' value cannot be greater than the 'To' value. + “从”的数值不能大于“到”的数值。 + + + A0 + A0 + + + A1 + A1 + + + A2 + A2 + + + A3 + A3 + + + A4 + A4 + + + A5 + A5 + + + A6 + A6 + + + A7 + A7 + + + A8 + A8 + + + A9 + A9 + + + B0 + B0 + + + B1 + B1 + + + B2 + B2 + + + B3 + B3 + + + B4 + B4 + + + B5 + B5 + + + B6 + B6 + + + B7 + B7 + + + B8 + B8 + + + B9 + B9 + + + B10 + B10 + + + C5E + C5E + + + DLE + DLE + + + Executive + 决策文书 + + + Folio + 对开纸 + + + Ledger + 帐页 + + + Legal + 法律文书 + + + Letter + 信纸 + + + Tabloid + 小型报纸 + + + US Common #10 Envelope + 美国普通10号信封 + + + Custom + 自定义 + + + &Options >> + 选项(&O) >> + + + &Options << + 选项(&O) << + + + Print to File (PDF) + 打印到文件(PDF) + + + Print to File (Postscript) + 打印到文件(Postscript) + + + Local file + 本地文件 + + + Write %1 file + 写入 %1 文件 + + + &Print + 打印(&P) + + + + QPrintPreviewDialog + + %1% + %1% + + + Print Preview + 打印预览 + + + Next page + 下一页 + + + Previous page + 上一页 + + + First page + 第一页 + + + Last page + 最后一页 + + + Fit width + 适应宽度 + + + Fit page + 适应页面 + + + Zoom in + 放大 + + + Zoom out + 缩小 + + + Portrait + 纵向 + + + Landscape + 横向 + + + Show single page + 显示单页 + + + Show facing pages + 显示当前页 + + + Show overview of all pages + 显示所有页的概览 + + + Print + 打印 + + + Page setup + 打印设置 + + + Close + 关闭 + + + Export to PDF + 导出为PDF + + + Export to PostScript + 导出为PostScript + + + Page Setup + 页面设置 + + + + QPrintPropertiesWidget + + Form + 窗体 + + + Page + + + + Advanced + 高级 + + + + QPrintSettingsOutput + + Form + 窗体 + + + Copies + 拷贝 + + + Print range + 打印范围 + + + Print all + 打印全部 + + + Pages from + 页数从 + + + to + + + + Selection + 选择 + + + Output Settings + 输出设置 + + + Copies: + 备份: + + + Collate + 校对 + + + Reverse + 反向 + + + Options + 选项 + + + Color Mode + 彩色模式 + + + Color + 彩色 + + + Grayscale + 灰度 + + + Duplex Printing + 两部分打印 + + + None + + + + Long side + 长侧 + + + Short side + 短侧 + + + + QPrintWidget + + Form + 窗体 + + + Printer + 打印机 + + + &Name: + 名称(&N): + + + P&roperties + 属性(&R) + + + Location: + 位置: + + + Preview + 预览 + + + Type: + 类型: + + + Output &file: + 输出文件(&F): + + + ... + ... + + + + QProcess + + Could not open input redirection for reading + 无法打开用于读取的输入重定向 + + + Could not open output redirection for writing + 无法打开用于写入的输出重定向 + + + Resource error (fork failure): %1 + 资源错误(fork失败):%1 + + + Process operation timed out + 进程处理超时 + + + Error reading from process + 从进程中读取时发生错误 + + + Error writing to process + 向进程写入时发生错误 + + + Process crashed + 进程已崩溃 + + + No program defined + 未定义程序 + + + Process failed to start: %1 + 过程无法启动:%1 + + + + QProgressDialog + + Cancel + 撤消 + + + + QPushButton + + Open + 打开 + + + + QRadioButton + + Check + 选中 + + + + QRegExp + + no error occurred + 没有错误发生 + + + disabled feature used + 使用了失效的特效 + + + bad char class syntax + 错误的字符类语法 + + + bad lookahead syntax + 错误的预测语法 + + + bad repetition syntax + 错误的重复语法 + + + invalid octal value + 无效的八进制数值 + + + missing left delim + 找不到左分隔符 + + + unexpected end + 意外的终止 + + + met internal limit + 遇到内部限制 + + + invalid interval + 无效时间间隔 + + + invalid category + 无效类别 + + + + QSQLite2Driver + + Error opening database + 打开数据库时出错 + + + Unable to begin transaction + 不能开始事务 + + + Unable to commit transaction + 不能提交事务 + + + Unable to rollback transaction + 不能回滚事务 + + + + QSQLite2Result + + Unable to fetch results + 不能获取结果 + + + Unable to execute statement + 不能执行语句 + + + + QSQLiteDriver + + Error opening database + 打开数据库错误 + + + Error closing database + 关闭数据库错误 + + + Unable to begin transaction + 不能开始事务 + + + Unable to commit transaction + 不能提交事务 + + + Unable to rollback transaction + 不能回滚事务 + + + + QSQLiteResult + + Unable to fetch row + 不能获取行 + + + Unable to execute statement + 不能执行语句 + + + Unable to reset statement + 不能重置语句 + + + Unable to bind parameters + 不能绑定参数 + + + Parameter count mismatch + 参数数量不匹配 + + + No query + 没有查询 + + + + QScriptBreakpointsModel + + ID + ID + + + Location + 位置 + + + Condition + 条件 + + + Ignore-count + 忽略计数 + + + Single-shot + 单发 + + + Hit-count + 点击量 + + + + QScriptBreakpointsWidget + + New + 新建 + + + Delete + 删除 + + + + QScriptDebugger + + Go to Line + 转至行 + + + Line: + 行: + + + Interrupt + 中断 + + + Shift+F5 + Shift+F5 + + + Continue + 继续 + + + F5 + F5 + + + Step Into + 进入 + + + F11 + F11 + + + Step Over + 越过 + + + F10 + F10 + + + Step Out + 跳出 + + + Shift+F11 + Shift+F11 + + + Run to Cursor + 运行到光标 + + + Ctrl+F10 + Ctrl+F10 + + + Run to New Script + 运行到新脚本 + + + Toggle Breakpoint + 切换断点 + + + F9 + F9 + + + Clear Debug Output + 清除调试输出 + + + Clear Error Log + 清除错误日志 + + + Clear Console + 清除控制台 + + + &Find in Script... + 在脚本中查找(&F)... + + + Ctrl+F + Ctrl+F + + + Find &Next + 查找下一个(&N) + + + F3 + F3 + + + Find &Previous + 查找上一个(&P) + + + Shift+F3 + Shift+F3 + + + Ctrl+G + Ctrl+G + + + Debug + 调试 + + + + QScriptDebuggerCodeFinderWidget + + Close + 关闭 + + + Previous + 上一个 + + + Next + 下一个 + + + Case Sensitive + 区分大小写 + + + Whole words + 整个词 + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;搜索已完成 + + + + QScriptDebuggerLocalsModel + + Name + 名称 + + + Value + + + + + QScriptDebuggerStackModel + + Level + 级别 + + + Name + 名称 + + + Location + 位置 + + + + QScriptEdit + + Toggle Breakpoint + 切换断点 + + + Disable Breakpoint + 禁用断点 + + + Enable Breakpoint + 启用断点 + + + Breakpoint Condition: + 断点条件: + + + + QScriptEngineDebugger + + Loaded Scripts + 已加载的脚本 + + + Breakpoints + 断点 + + + Stack + 堆栈 + + + Locals + 区域设置 + + + Console + 控制台 + + + Debug Output + 调试输出 + + + Error Log + 错误日志 + + + Search + 搜索 + + + View + 查看 + + + Qt Script Debugger + Qt脚本调试器 + + + + QScriptNewBreakpointWidget + + Close + 关闭 + + + + QScrollBar + + Scroll here + 滚动到这里 + + + Left edge + 左边缘 + + + Top + 顶部 + + + Right edge + 右边缘 + + + Bottom + 底部 + + + Page left + 左一页 + + + Page up + 上一页 + + + Page right + 右一页 + + + Page down + 下一页 + + + Scroll left + 向左滚动 + + + Scroll up + 向上滚动 + + + Scroll right + 向右滚动 + + + Scroll down + 向下滚动 + + + Line up + 向上排列 + + + Position + 位置 + + + Line down + 向下排列 + + + + QSharedMemory + + %1: create size is less then 0 + %1:创建的大小小于 0 + + + %1: unable to lock + %1:无法锁定 + + + %1: unable to unlock + %1:无法取消锁定 + + + %1: permission denied + %1:权限被拒绝 + + + %1: already exists + %1:已经存在 + + + %1: doesn't exists + %1:不存在 + + + %1: out of resources + %1:资源耗尽了 + + + %1: unknown error %2 + %1:未知错误 %2 + + + %1: key is empty + %1:键是空的 + + + %1: ftok failed + %1:ftok 失败 + + + %1: unable to make key + %1:不能制造键 + + + %1: doesn't exist + %1:不存在 + + + %1: UNIX key file doesn't exist + %1:UNIX密钥文件不存在 + + + %1: system-imposed size restrictions + %1:系统预设大小限制 + + + %1: not attached + %1:没有附加 + + + %1: invalid size + %1:无效大小 + + + %1: key error + %1: 键错误 + + + %1: size query failed + %1:大小查询失败 + + + %1: unable to set key on lock + %1:无法设置锁定的键 + + + + QShortcut + + Space + 空格 + + + Esc + Esc + + + Tab + Tab + + + Backtab + Backtab + + + Backspace + Backspace + + + Return + Return + + + Enter + Enter + + + Ins + Ins + + + Del + Del + + + Pause + Pause + + + Print + Print + + + SysReq + SysReq + + + Home + Home + + + End + End + + + Left + Left + + + Up + Up + + + Right + Right + + + Down + Down + + + PgUp + PgUp + + + PgDown + PgDown + + + CapsLock + CapsLock + + + NumLock + NumLock + + + ScrollLock + ScrollLock + + + Menu + Menu + + + Help + Help + + + Back + 后退 + + + Forward + 前进 + + + Stop + 停止 + + + Refresh + 刷新 + + + Volume Down + 调小音量 + + + Volume Mute + 静音 + + + Volume Up + 调大音量 + + + Bass Boost + 低音增强 + + + Bass Up + 调大低音 + + + Bass Down + 调小低音 + + + Treble Up + 调大高音 + + + Treble Down + 调小高音 + + + Media Play + 多媒体播放 + + + Media Stop + 多媒体停止 + + + Media Previous + 上一个多媒体 + + + Media Next + 下一个多媒体 + + + Media Record + 多媒体记录 + + + Favorites + 最喜爱的 + + + Search + 搜索 + + + Standby + 等待 + + + Open URL + 打开URL + + + Launch Mail + 启动邮件 + + + Launch Media + 启动多媒体 + + + Launch (0) + 启动 (0) + + + Launch (1) + 启动 (1) + + + Launch (2) + 启动 (2) + + + Launch (3) + 启动 (3) + + + Launch (4) + 启动 (4) + + + Launch (5) + 启动 (5) + + + Launch (6) + 启动 (6) + + + Launch (7) + 启动 (7) + + + Launch (8) + 启动 (8) + + + Launch (9) + 启动 (9) + + + Launch (A) + 启动 (A) + + + Launch (B) + 启动 (B) + + + Launch (C) + 启动 (C) + + + Launch (D) + 启动 (D) + + + Launch (E) + 启动 (E) + + + Launch (F) + 启动 (F) + + + Monitor Brightness Up + 提高监视器亮度 + + + Monitor Brightness Down + 降低监视器亮度 + + + Keyboard Light On/Off + 键盘灯打开/关闭 + + + Keyboard Brightness Up + 提高键盘亮度 + + + Keyboard Brightness Down + 降低键盘亮度 + + + Power Off + 关机 + + + Wake Up + 唤醒 + + + Eject + 弹出 + + + Screensaver + 屏幕保护程序 + + + WWW + WWW + + + Sleep + 睡眠 + + + LightBulb + 灯泡 + + + Shop + 商店 + + + History + 历史记录 + + + Add Favorite + 添加收藏夹 + + + Hot Links + 热点链接 + + + Adjust Brightness + 调节亮度 + + + Finance + 财务 + + + Community + 社区 + + + Audio Rewind + 音频倒带 + + + Back Forward + 后倒 + + + Application Left + 应用程序偏左 + + + Application Right + 应用程序偏右 + + + Book + 书籍 + + + CD + CD + + + Calculator + 计算器 + + + Clear + 清除 + + + Clear Grab + 清除抓取 + + + Close + 关闭 + + + Copy + 复制 + + + Cut + 剪切 + + + Display + 显示 + + + DOS + DOS + + + Documents + 文档 + + + Spreadsheet + 电子表格 + + + Browser + 浏览器 + + + Game + 游戏 + + + Go + 转至 + + + iTouch + iTouch + + + Logoff + 注销 + + + Market + 市场 + + + Meeting + 会议 + + + Keyboard Menu + 键盘功能表 + + + Menu PB + 功能表PB + + + My Sites + 我的站点 + + + News + 新闻 + + + Home Office + 家庭办公 + + + Option + 选项 + + + Paste + 粘贴 + + + Phone + 手机 + + + Reply + 回复 + + + Reload + 重新加载 + + + Rotate Windows + 旋转视窗 + + + Rotation PB + 旋转PB + + + Rotation KB + 旋转KB + + + Save + 储存 + + + Send + 发送 + + + Spellchecker + 拼写检查程序 + + + Split Screen + 分屏 + + + Support + 支持 + + + Task Panel + 任务面板 + + + Terminal + 终端 + + + Tools + 工具 + + + Travel + 旅行 + + + Video + 视频 + + + Word Processor + 字处理器 + + + XFer + XFer + + + Zoom In + 放大 + + + Zoom Out + 缩小 + + + Away + 远离 + + + Messenger + ## + + + WebCam + WebCam + + + Mail Forward + 电子邮件转发 + + + Pictures + 图片 + + + Music + 音乐 + + + Battery + 电池 + + + Bluetooth + 蓝牙 + + + Wireless + 无线 + + + Ultra Wide Band + 超宽带 + + + Audio Forward + 音频前进 + + + Audio Repeat + 音频重复 + + + Audio Random Play + 音频随机播放 + + + Subtitle + 小标题 + + + Audio Cycle Track + 音频循环轨道 + + + Time + 时间 + + + View + 查看 + + + Top Menu + 顶端功能表 + + + Suspend + 挂起 + + + Hibernate + 休眠 + + + Print Screen + Print Screen + + + Page Up + Page Up + + + Page Down + Page Down + + + Caps Lock + Caps Lock + + + Num Lock + Num Lock + + + Number Lock + Number Lock + + + Scroll Lock + Scroll Lock + + + Insert + Insert + + + Delete + Delete + + + Escape + Escape + + + System Request + System Request + + + Select + 选择 + + + Yes + + + + No + + + + Context1 + 上下文1 + + + Context2 + 上下文2 + + + Context3 + 上下文3 + + + Context4 + 上下文4 + + + Call + 呼叫 + + + Hangup + 挂起 + + + Flip + 翻转 + + + Ctrl + Ctrl + + + Shift + Shift + + + Alt + Alt + + + Meta + Meta + + + + + + + + + F%1 + F%1 + + + Home Page + 主页 + + + + QSlider + + Page left + 左一页 + + + Page up + 上一页 + + + Position + 位置 + + + Page right + 右一页 + + + Page down + 下一页 + + + + QSocks5SocketEngine + + Connection to proxy refused + 代理拒绝连接 + + + Connection to proxy closed prematurely + 代理连接过早关闭 + + + Proxy host not found + 代理主机未找到 + + + Connection to proxy timed out + 代理连接超时 + + + Proxy authentication failed + 代理认证失败 + + + Proxy authentication failed: %1 + 代理认证失败: %1 + + + SOCKS version 5 protocol error + SOCKS版本5协议错误 + + + General SOCKSv5 server failure + 常规服务器失败 + + + Connection not allowed by SOCKSv5 server + 连接不被SOCKSv5服务器允许 + + + TTL expired + TTL已过期 + + + SOCKSv5 command not supported + 不支持的SOCKSv5命令 + + + Address type not supported + 不支持的地址类型 + + + Unknown SOCKSv5 proxy error code 0x%1 + 未知SOCKSv5代理,错误代码 0x%1 + + + Network operation timed out + 网络操作超时 + + + + QSoftKeyManager + + Ok + 确定 + + + Select + 选择 + + + Done + 完成 + + + Options + 选项 + + + Cancel + 取消 + + + Exit + 退出 + + + + QSpinBox + + More + 更多 + + + Less + 更少 + + + + QSql + + Delete + 删除 + + + Delete this record? + 删除这条记录? + + + Yes + + + + No + + + + Insert + 插入 + + + Update + 更新 + + + Save edits? + 保存编辑? + + + Cancel + 取消 + + + Confirm + 确认 + + + Cancel your edits? + 取消您的编辑? + + + + QSslSocket + + Unable to write data: %1 + 不能写入数据:%1 + + + Unable to decrypt data: %1 + 无法解密数据:%1 + + + Error while reading: %1 + 读取时错误:%1 + + + Error during SSL handshake: %1 + SSL握手错误:%1 + + + Error creating SSL context (%1) + 创建SSL上下文错误(%1) + + + Invalid or empty cipher list (%1) + 无效或者空白的密码列表(%1) + + + Private key does not certify public key, %1 + 私钥不能证明公钥,%1 + + + Error creating SSL session, %1 + 创建SSL会话错误,%1 + + + Error creating SSL session: %1 + 创建SSL会话错误:%1 + + + Cannot provide a certificate with no key, %1 + 不能提供没有键的证书,%1 + + + Error loading local certificate, %1 + 不能载入本地证书,%1 + + + Error loading private key, %1 + 不能载入私有键,%1 + + + No error + 无错误 + + + The issuer certificate could not be found + 找不到发行人证书 + + + The certificate signature could not be decrypted + 证书签名无法解密 + + + The public key in the certificate could not be read + 无法读取证书中的公钥 + + + The signature of the certificate is invalid + 证书签名无效 + + + The certificate is not yet valid + 证书不再失效 + + + The certificate has expired + 证书已过期 + + + The certificate's notBefore field contains an invalid time + 证书的notBefore字段包含无效时间 + + + The certificate's notAfter field contains an invalid time + 证书的notAfter字段包含无效时间 + + + The certificate is self-signed, and untrusted + 证书为自签名,因而不受信任 + + + The root certificate of the certificate chain is self-signed, and untrusted + 证书链的根证书为自签名,因而不受信任 + + + The issuer certificate of a locally looked up certificate could not be found + 无法找到在本地查找的证书的发行人证书 + + + No certificates could be verified + 无证书可验证 + + + One of the CA certificates is invalid + CA证书之一无效 + + + The basicConstraints path length parameter has been exceeded + 已超过basicConstraints路径长度参数 + + + The supplied certificate is unsuitable for this purpose + 提供的证书不适合此用途 + + + The root CA certificate is not trusted for this purpose + 此用途不信任根CA证书 + + + The root CA certificate is marked to reject the specified purpose + 已将根CA证书标记为拒绝用于指定用途 + + + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + 当前候选发行人证书被拒绝,因其持有人姓名与当前证书的发行人姓名不匹配 + + + The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate + 当前候选发行人证书被拒绝,因其发行人姓名和序列号虽存在,但与当前证书的权威密钥标识符不匹配 + + + The peer did not present any certificate + 对方没有提供任何证书 + + + The host name did not match any of the valid hosts for this certificate + 主机名与此证书的任何有效主机都不匹配 + + + Unknown error + 未知错误 + + + + QStateMachine + + Missing initial state in compound state '%1' + 复合状态“%1”缺少初始状态 + + + Missing default state in history state '%1' + 历史状态“%1”缺少预设状态 + + + No common ancestor for targets and source of transition from state '%1' + 从状态"%1"过渡,但源和目标无共同父辈 + + + Unknown error + 未知错误 + + + + QSystemSemaphore + + %1: does not exist + %1:不存在 + + + %1: out of resources + %1:资源耗尽了 + + + %1: permission denied + %1:权限被拒绝 + + + %1: already exists + %1:已经存在 + + + %1: unknown error %2 + %1:未知错误 %2 + + + + QTDSDriver + + Unable to open connection + 不能打开连接 + + + Unable to use database + 不能使用数据库 + + + + QTabBar + + Scroll Left + 向左滚动 + + + Scroll Right + 向右滚动 + + + + QTcpServer + + Operation on socket is not supported + socket操作不被支持 + + + + QTextControl + + &Undo + 撤消(&U) + + + &Redo + 恢复(&R) + + + Cu&t + 剪切(&T) + + + &Copy + 复制(&C) + + + Copy &Link Location + 复制链接位置(&L) + + + &Paste + 粘贴(&P) + + + Delete + 删除 + + + Select All + 选择全部 + + + + QToolButton + + Press + 按下 + + + Open + 打开 + + + + QUdpSocket + + This platform does not support IPv6 + 这个平台不支持IPv6 + + + + QUndoGroup + + Undo + 撤销 + + + Redo + 恢复 + + + + QUndoModel + + <empty> + <空白> + + + + QUndoStack + + Undo + 撤销 + + + Redo + 恢复 + + + + QUnicodeControlCharacterMenu + + LRM Left-to-right mark + LRM 从左到右标记 + + + RLM Right-to-left mark + RLM 从右向左标记 + + + ZWJ Zero width joiner + ZWJ 零宽度连接器 + + + ZWNJ Zero width non-joiner + ZWNJ 零宽度非连接器 + + + ZWSP Zero width space + ZWSP 零宽度空格 + + + LRE Start of left-to-right embedding + LRE 开始从左到右嵌入 + + + RLE Start of right-to-left embedding + RLE 开始从右向左嵌入 + + + LRO Start of left-to-right override + LRO 开始从左向右覆盖 + + + RLO Start of right-to-left override + RLO 开始从右向左覆盖 + + + PDF Pop directional formatting + PDF 弹出方向格式 + + + Insert Unicode control character + 插入Unicode控制字符 + + + + QWebFrame + + Request cancelled + 请求被取消了 + + + Request blocked + 请求被阻塞了 + + + Cannot show URL + 无法显示 URL + + + Frame load interrupted by policy change + 策略变化导致帧加载中断 + + + Cannot show mimetype + 无法显示 MIMETYPE + + + File does not exist + 文件不存在 + + + + QWebPage + + Submit + default label for Submit buttons in forms on web pages + + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + + + + Reset + default label for Reset buttons in forms on web pages + 重置 + + + Choose File + title for file button used in HTML forms + 选择文件 + + + No file selected + text to display in file button used in HTML forms when no file is selected + 没有文件被选择 + + + Open in New Window + Open in New Window context menu item + 在新窗口中打开 + + + Save Link... + Download Linked File context menu item + 保存链接... + + + Copy Link + Copy Link context menu item + 复制链接 + + + Open Image + Open Image in New Window context menu item + 打开图片 + + + Save Image + Download Image context menu item + 保存图片 + + + Copy Image + Copy Link context menu item + 复制图片 + + + Open Frame + Open Frame in New Window context menu item + 打开框架 + + + Copy + Copy context menu item + 复制 + + + Go Back + Back context menu item + 后退 + + + Go Forward + Forward context menu item + 前进 + + + Stop + Stop context menu item + + + + Reload + Reload context menu item + 重新载入 + + + Cut + Cut context menu item + 剪切 + + + Paste + Paste context menu item + 粘贴 + + + No Guesses Found + No Guesses Found context menu item + 没有找到猜测 + + + Ignore + Ignore Spelling context menu item + 忽略 + + + Add To Dictionary + Learn Spelling context menu item + 添加到字典 + + + Search The Web + Search The Web context menu item + 搜索网页 + + + Look Up In Dictionary + Look Up in Dictionary context menu item + 在字典中查找 + + + Open Link + Open Link context menu item + 打开链接 + + + Ignore + Ignore Grammar context menu item + 忽略 + + + Spelling + Spelling and Grammar context sub-menu item + + + + Show Spelling and Grammar + menu item title + + + + Hide Spelling and Grammar + menu item title + 隐藏拼写和语法 + + + Check Spelling + Check spelling context menu item + 检查拼写 + + + Check Spelling While Typing + Check spelling while typing context menu item + 在输入时检查拼写 + + + Check Grammar With Spelling + Check grammar with spelling context menu item + 检查语法和拼写 + + + Fonts + Font context sub-menu item + 字体 + + + Bold + Bold context menu item + 粗体 + + + Italic + Italic context menu item + 意大利体 + + + Underline + Underline context menu item + + + + Outline + Outline context menu item + 轮廓 + + + Direction + Writing direction context sub-menu item + 方向 + + + Text Direction + Text direction context sub-menu item + + + + Default + Default writing direction context menu item + 默认 + + + Left to Right + Left to Right context menu item + 左到右 + + + Right to Left + Right to Left context menu item + 右到左 + + + Loading... + Media controller status message when the media is loading + 正在加载... + + + Live Broadcast + Media controller status message when watching a live broadcast + 手机广播 + + + Audio Element + Media controller element + 音频元素 + + + Video Element + Media controller element + 视频元素 + + + Mute Button + Media controller element + 静音按钮 + + + Unmute Button + Media controller element + 取消静音按钮 + + + Play Button + Media controller element + 播放按钮 + + + Pause Button + Media controller element + 暂停按钮 + + + Slider + Media controller element + 滑块 + + + Slider Thumb + Media controller element + 滑块微缩图像 + + + Rewind Button + Media controller element + 倒带按钮 + + + Return to Real-time Button + Media controller element + 返回到实时按钮 + + + Elapsed Time + Media controller element + 耗时 + + + Remaining Time + Media controller element + 剩余时间 + + + Status Display + Media controller element + 状态显示 + + + Fullscreen Button + Media controller element + 全屏按钮 + + + Seek Forward Button + Media controller element + 向前寻找按钮 + + + Seek Back Button + Media controller element + 向后寻找按钮 + + + Audio element playback controls and status display + Media controller element + 音频元素播放控件和状态显示 + + + Video element playback controls and status display + Media controller element + 视频元素播放控件和状态显示 + + + Mute audio tracks + Media controller element + 静音音轨 + + + Unmute audio tracks + Media controller element + 取消静音音轨 + + + Begin playback + Media controller element + 开始播放 + + + Pause playback + Media controller element + 暂停播放 + + + Movie time scrubber + Media controller element + 影片时间刷新器 + + + Movie time scrubber thumb + Media controller element + 影片时间刷新器微缩图像 + + + Rewind movie + Media controller element + 影片倒带 + + + Return streaming movie to real-time + Media controller element + 将流式影片返回到实时 + + + Current movie time + Media controller element + 当前影片时间 + + + Remaining movie time + Media controller element + 影片剩余时间 + + + Current movie status + Media controller element + 当前影片状态 + + + Play movie in full-screen mode + Media controller element + 以全屏模式播放影片 + + + Seek quickly back + Media controller element + 快速向后寻找 + + + Seek quickly forward + Media controller element + 快速向前寻找 + + + Indefinite time + Media time description + 不定时间 + + + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1天%2小时%3分%4秒 + + + %1 hours %2 minutes %3 seconds + Media time description + %1小时%2分%3秒 + + + %1 minutes %2 seconds + Media time description + %1分%2秒 + + + %1 seconds + Media time description + %1秒 + + + Inspect + Inspect Element context menu item + 检查 + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + 没有最近的搜索 + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + 最近的搜索 + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + 清除最近的搜索 + + + Unknown + Unknown filesize FTP directory listing item + + + + Web Inspector - %2 + + + + %1 (%2x%3 pixels) + Title string for images + %1 (%2x%3 像素) + + + Bad HTTP request + 错误的 HTTP 请求 + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + + + + Scroll here + 滚动到这里 + + + Left edge + 左边缘 + + + Top + + + + Right edge + 右边缘 + + + Bottom + 底部 + + + Page left + 左一页 + + + Page up + 上一页 + + + Page right + 右一页 + + + Page down + 下一页 + + + Scroll left + 向左滚动 + + + Scroll up + 向上滚动 + + + Scroll right + 向右滚动 + + + Scroll down + 向下滚动 + + + %n file(s) + number of chosen file + + %n 个文件 + + + + JavaScript Alert - %1 + JavaScript警告 - %1 + + + JavaScript Confirm - %1 + JavaScript确认 - %1 + + + JavaScript Prompt - %1 + JavaScript提示 - %1 + + + JavaScript Problem - %1 + JavaScript问题 - %1 + + + The script on this page appears to have a problem. Do you want to stop the script? + 此页上的脚本似乎有问题。是否停止脚本? + + + Move the cursor to the next character + 移动光标到下一个字符 + + + Move the cursor to the previous character + 移动光标到上一个字符 + + + Move the cursor to the next word + 移动光标到下一个单词 + + + Move the cursor to the previous word + 移动光标到上一个单词 + + + Move the cursor to the next line + 移动光标到下一行 + + + Move the cursor to the previous line + 移动光标到上一行 + + + Move the cursor to the start of the line + 移动光标到行首 + + + Move the cursor to the end of the line + 移动光标到行尾 + + + Move the cursor to the start of the block + 移动光标到块首 + + + Move the cursor to the end of the block + 移动光标到块尾 + + + Move the cursor to the start of the document + 移动光标到文件开头 + + + Move the cursor to the end of the document + 移动光标到文件末尾 + + + Select all + 全选 + + + Select to the next character + + + + Select to the previous character + + + + Select to the next word + + + + Select to the previous word + + + + Select to the next line + + + + Select to the previous line + + + + Select to the start of the line + + + + Select to the end of the line + + + + Select to the start of the block + + + + Select to the end of the block + + + + Select to the start of the document + + + + Select to the end of the document + + + + Delete to the start of the word + 删除到单词首 + + + Delete to the end of the word + 删除到单词尾 + + + Insert a new paragraph + 插入新段落 + + + Insert a new line + 插入新行 + + + Paste and Match Style + 粘贴和匹配样式 + + + Remove formatting + 删除格式设置 + + + Strikethrough + 删除线 + + + Subscript + 下标 + + + Superscript + 上标 + + + Insert Bulleted List + 插入项目符号列表 + + + Insert Numbered List + 插入编号列表 + + + Indent + 缩进 + + + Outdent + 凸出 + + + Center + 中心 + + + Justify + 调整 + + + Align Left + 左对齐 + + + Align Right + 右对齐 + + + + QWhatsThisAction + + What's This? + + + + + QWidget + + * + + + + + QWizard + + Cancel + + + + Help + + + + < &Back + + + + &Finish + + + + &Help + + + + Go Back + + + + Continue + + + + Commit + + + + Done + + + + &Next + + + + &Next > + + + + + QWorkspace + + &Restore + + + + &Move + + + + &Size + + + + Mi&nimize + + + + Ma&ximize + + + + &Close + + + + Stay on &Top + + + + Minimize + + + + Restore Down + + + + Close + + + + Sh&ade + + + + %1 - [%2] + + + + &Unshade + + + + + QXml + + no error occurred + + + + error triggered by consumer + + + + unexpected end of file + + + + more than one document type definition + + + + error occurred while parsing element + + + + tag mismatch + + + + error occurred while parsing content + + + + unexpected character + + + + invalid name for processing instruction + + + + version expected while reading the XML declaration + + + + wrong value for standalone declaration + + + + error occurred while parsing document type definition + + + + letter is expected + + + + error occurred while parsing comment + + + + error occurred while parsing reference + + + + internal general entity reference not allowed in DTD + + + + external parsed general entity reference not allowed in attribute value + + + + external parsed general entity reference not allowed in DTD + + + + unparsed entity reference in wrong context + + + + recursive entities + + + + error in the text declaration of an external entity + + + + encoding declaration or standalone declaration expected while reading the XML declaration + + + + standalone declaration expected while reading the XML declaration + + + + + QXmlPatternistCLI + + Warning in %1, at line %2, column %3: %4 + %1中出现警告,位于%2行,%3列:%4 + + + Warning in %1: %2 + %1中出现警告:%2 + + + Unknown location + 未知位置 + + + Error %1 in %2, at line %3, column %4: %5 + %2中存在错误%1,位于%3行,%4列:%5 + + + Error %1 in %2: %3 + %2中存在错误%1:%3 + + + + QXmlStream + + Extra content at end of document. + + + + Invalid entity value. + + + + Invalid XML character. + + + + Sequence ']]>' not allowed in content. + + + + Namespace prefix '%1' not declared + + + + Attribute redefined. + + + + Unexpected character '%1' in public id literal. + + + + Invalid XML version string. + + + + Unsupported XML version. + + + + %1 is an invalid encoding name. + + + + Encoding %1 is unsupported + + + + Standalone accepts only yes or no. + + + + Invalid attribute in XML declaration. + + + + Premature end of document. + + + + Invalid document. + + + + Expected + + + + , but got ' + + + + Unexpected ' + + + + Expected character data. + + + + Recursive entity detected. + + + + Start tag expected. + + + + XML declaration not at start of document. + + + + NDATA in parameter entity declaration. + + + + %1 is an invalid processing instruction name. + + + + Invalid processing instruction name. + + + + Illegal namespace declaration. + + + + Invalid XML name. + + + + Opening and ending tag mismatch. + + + + Reference to unparsed entity '%1'. + + + + Entity '%1' not declared. + + + + Reference to external entity '%1' in attribute value. + + + + Invalid character reference. + + + + Encountered incorrectly encoded content. + + + + The standalone pseudo attribute must appear after the encoding. + + + + %1 is an invalid PUBLIC identifier. + + + + + QtXmlPatterns + + At least one component must be present. + 至少有一个组件被呈现。 + + + %1 is not a valid value of type %2. + %1 不是类型为 %2 的有效值。 + + + When casting to %1 from %2, the source value cannot be %3. + 当从 %2 抛出到 %1 时,源值不能是 %3。 + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + 有效的布尔值(Effective Boolean Value)不能被用于计算一个包含两个或者更多原子值的序列。 + + + The data of a processing instruction cannot contain the string %1 + 处理指令的数据不能包含字符串 %1 + + + %1 is an invalid %2 + %1 是一个无效的 %2。 + + + %1 is not a valid XML 1.0 character. + %1 不是一个有效的 XML 1.0 字符。 + + + %1 was called. + %1 被调用了。 + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + 在这个替换字符串中,%1 在没有被转义的时候必须被至少一个数字跟随。 + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + 在这个替换字符串中,%1 只能被用于转义它本身或者 %2,而不是 %3 + + + %1 matches newline characters + %1 匹配了换行符 + + + Matches are case insensitive + 匹配是大小写不敏感的 + + + %1 is an invalid regular expression pattern: %2 + %1 是正则表达式中的一个无效模式:%2 + + + It will not be possible to retrieve %1. + 将不能获取 %1。 + + + The default collection is undefined + 默认收集(collection)是未定义的 + + + %1 cannot be retrieved + 无法获取 %1 + + + The item %1 did not match the required type %2. + 项 %1 和所需的类型 %2 不匹配。 + + + %1 is an unknown schema type. + %1 是一个未知的方案类型。 + + + A template with name %1 has already been declared. + + + + Only one %1 declaration can occur in the query prolog. + 只有一个 %1 的声明可以出现在查询序言中。 + + + The initialization of variable %1 depends on itself + 变量 %1 的初始化依赖于它本身 + + + The variable %1 is unused + 变量 %1 没有被使用 + + + Version %1 is not supported. The supported XQuery version is 1.0. + 不支持版本 %1。被支持的 XQuery 版本是 1.0。 + + + No function with signature %1 is available + 没有签名为 %1 的可用函数。 + + + It is not possible to redeclare prefix %1. + 不能重复声明前缀 %1。 + + + Prefix %1 is already declared in the prolog. + 前缀 %1 在序言中已经声明过了。 + + + The name of an option must have a prefix. There is no default namespace for options. + 一个选项的名称必须带有前缀。对于选项没有默认命名空间。 + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + 不支持方案导入(Schema Import)特性,并且因此 %1 声明不能出现。 + + + The target namespace of a %1 cannot be empty. + %1 的目标命名空间不能为空。 + + + The module import feature is not supported + 不支持模块导入特性 + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + 用户在一个库模块中定义的函数的命名空间必须和这个模块的命名空间一致。也就是说,它应该是 %1,而不是 %2 + + + A function already exists with the signature %1. + 一个带有签名 %1 的函数已经存在。 + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + 不支持外部函数。所有支持的函数必须可以被直接使用,不能把它们声明为外部的 + + + The %1-axis is unsupported in XQuery + 这个 %1 轴在 XQuery 中是不被支持的。 + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + 当这个命名空间 URI 被绑定到一个前缀 %1 时,它不能是空字符串。 + + + %1 is an invalid namespace URI. + %1 是一个无效的命名空间 URI。 + + + It is not possible to bind to the prefix %1 + 无法绑定到这个前缀 %1。 + + + Two namespace declaration attributes have the same name: %1. + 两个命名空间声明属性使用了相同的名称:%1。 + + + The namespace URI must be a constant and cannot use enclosed expressions. + 命名空间 URI 必须是一个常量并且不能使用封闭的表达式。 + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + %1 不是范围内属性声明。注意方案导入特性是不被支持的。 + + + empty + 空白 + + + zero or one + 零或者一 + + + exactly one + 确切地一 + + + one or more + 一或者更多 + + + zero or more + 零或者更多 + + + The focus is undefined. + 焦点未定义。 + + + An attribute by name %1 has already been created. + 一个名称为 %1 的属性已经被创建。 + + + Network timeout. + 网络超时。 + + + Element %1 can't be serialized because it appears outside the document element. + 元素 %1 不能被串行化,因为它出现在文档元素之外。 + + + Year %1 is invalid because it begins with %2. + %1 年是无效的,因为应该从 %2 开始。 + + + Day %1 is outside the range %2..%3. + %1 日是在 %2...%3 范围之外的。 + + + Month %1 is outside the range %2..%3. + %1 月是在 %2...%3 范围之外的。 + + + Overflow: Can't represent date %1. + 溢出:无法呈现数据 %1。 + + + Day %1 is invalid for month %2. + %1 日对于 %2 月是无效的。 + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + 时间 24:%1:%2.%3 是无效的。小时是 24,但是分钟、秒和毫秒不全为 0; + + + Time %1:%2:%3.%4 is invalid. + 时间 %1:%2:%3.%4 是无效的。 + + + Overflow: Date can't be represented. + 溢出:数据无法被呈现。 + + + At least one time component must appear after the %1-delimiter. + 至少一个时间组件必须出现在这个 %1 界限之后。 + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + 一个类型为 %1 的值除以 %2(不是一个数值)是不允许的。 + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + 一个类型为 %1 的值除以 %2 或者 %3(正负零)是不允许的。 + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + 一个类型为 %1 的值乘以 %2 或者 %3(正负无穷)是不允许的。 + + + A value of type %1 cannot have an Effective Boolean Value. + 一个类型为 %1 的值不能是一个有效的布尔值(Effective Boolean Value)。 + + + Value %1 of type %2 exceeds maximum (%3). + 类型为 %2 的值 %1 超过了最大值(%3)。 + + + Value %1 of type %2 is below minimum (%3). + 类型为 %2 的值 %1 超过了最小值(%3)。 + + + A value of type %1 must contain an even number of digits. The value %2 does not. + 类型为 %1 的值必须包含偶数个数字。值 %2 不是这样的。 + + + %1 is not valid as a value of type %2. + %1 不是类型为 %2 的有效值。 + + + Operator %1 cannot be used on type %2. + 操作符 %1 不能被用于类型 %2。 + + + Operator %1 cannot be used on atomic values of type %2 and %3. + 操作符 %1 不能被用于类型为 %2 和 %3 的原子值。 + + + The namespace URI in the name for a computed attribute cannot be %1. + 一个被计算的属性的名称中的命名空间 URI 不能是 %1。 + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + 一个被计算的属性的名称不能使用带有本地名称 %2 的命名空间 URI %1。 + + + Type error in cast, expected %1, received %2. + 抛出类型错误,期望的是 %1,收到的是 %2。 + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + 当抛出到 %1 或者它的派生类时,源类型必须是同一类型,或者它必须是一个字符串类型。类型 %2 是不被允许的。 + + + A comment cannot contain %1 + 注释不能包含 %1 + + + A comment cannot end with a %1. + 注释不能以 %1 结尾。 + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + 一个属性节点不能是一个文档节点的子节点。因此,这个属性 %1 所在位置是不合适的。 + + + A library module cannot be evaluated directly. It must be imported from a main module. + 一个库模块不能被直接评估。它必须从一个主模块中导入。 + + + No template by name %1 exists. + 没有名为 %1 的模板存在。 + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + 类型为 %1 的值不能被判断。一个判断必须是数值类型或者一个有效的布尔值(Effective Boolean Value)类型。 + + + A positional predicate must evaluate to a single numeric value. + 一个定位判断必须评估一个单一数值。 + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + 一个处理指令中的目标名称不能是任何大小写混合的 %1。因此,%2 是无效的。 + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 不是处理指令的有效目标名称。它必须是值 %2,例如 %3。 + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + 一个路径中的最后一步必须包含节点或者原子值。它不能是两者的一个组合。 + + + No namespace binding exists for the prefix %1 + 对于前缀 %1,没有存在绑定的命名空间。 + + + No namespace binding exists for the prefix %1 in %2 + 对于 %2 中的前缀 %1,没有存在绑定的命名空间。 + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + %1 的第一个参数不能是类型 %2 的。它必须是数字类型的,xs:yearMonthDuration 或者 xs:dayTimeDuration。 + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + %1 的第一个参数不能是类型 %2 的。它必须是类型 %3、%4 或者 %5 的。 + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + %1 的第二个参数不能是类型 %2 的。它必须是类型 %3、%4 或者 %5 的。 + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + 如果两个值都有区偏移(zone offset),它们必须拥有相同的区偏移。%1 和 %2 的区偏移是不同的。 + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + %1 必须被 %2 或者 %3 跟随,不能在替换字符串的末尾。 + + + %1 and %2 match the start and end of a line. + %1 和 %2 匹配了一行的头和尾。 + + + Whitespace characters are removed, except when they appear in character classes + 空白字符被移除了,除非当它们出现在字符类中 + + + %1 is an invalid flag for regular expressions. Valid flags are: + %1 是正则表达式中的一个无效标记。有效标记为: + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + 如果第一个参数是空序列或者零长度字符串(无命名空间),那么就不能指定前缀。前缀 %1 被指定了。 + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + 不支持正规化(normalization)表单 %1。被支持的表单是 %2、%3、%4 和 %5,以及无,例如空字符串(无正规化)。 + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + 区偏移(zone offset)必须在 %1...%2 范围之内。%3 是在范围之外的。 + + + Required cardinality is %1; got cardinality %2. + 所需要的表间关系是 %1;得到的表间关系却是 %2。 + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + 编码方式 %1 是无效的。它必须只包含拉丁字符,必须不包含空白符号,并且必须和正则表达式 %2 匹配。 + + + The keyword %1 cannot occur with any other mode name. + 任何其他模式名称不能出现关键字%1。 + + + No variable with name %1 exists + + + + The value of attribute %1 must be of type %2, which %3 isn't. + + + + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + + + + A variable with name %1 has already been declared. + + + + No value is available for the external variable with name %1. + + + + A stylesheet function must have a prefixed name. + 样式表函数必须有一个前缀名。 + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + 命名空间 %1 是保留的;因此用户定义的函数不能使用它。请试试预定义的前缀 %2,它就是用于这种情况的。 + + + An argument with name %1 has already been declared. Every argument name must be unique. + + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + 当函数%1被用于样式匹配时,参数必须是变量参考或者字符串。 + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + 在XSL-T样式中,函数%1的第一个参数必须是字符串,以便用于匹配。 + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + 在XSL-T样式中,函数%1的第一个参数必须是文字或者变量参考,以便用于匹配。 + + + In an XSL-T pattern, function %1 cannot have a third argument. + 在XSL-T样式中,函数%1不能有第三个参数。 + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + 在XSL-T样式中,只用函数%1和%2可以用于匹配,%3不可以。 + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + 在XSL-T仰视中,不能使用%1轴,只能使用%2轴或者%3轴。 + + + %1 is an invalid template mode name. + %1不是一个合法的模板模式名称。 + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + 一个在 for 表达式中绑定的变量的名称必须和这个定位变量不同。因此,这两个名称为 %1 的变量冲突。 + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + 不支持方案验证特性(Schema Validation Feature)。因此,也许不能使用 %1 表达式。 + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + 不支持任何编译指示表达式(pragma expression)。因此,必须呈现一个回调表达式(fallback expression)。 + + + Each name of a template parameter must be unique; %1 is duplicated. + 每一个模板参数的名称都必须是唯一的;%2是重复的。 + + + No function with name %1 is available. + + + + %1 is not a valid numeric literal. + %1 不是一个有效的数字语义。 + + + W3C XML Schema identity constraint selector + + + + W3C XML Schema identity constraint field + + + + A construct was encountered which is disallowed in the current language(%1). + + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + 命名空间 %1 只能和 %2 绑定(并且如果是这种情况,需要提前声明)。 + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + 前缀 %1 只能和 %2 绑定(并且如果是这种情况,需要提前声明)。 + + + An attribute with name %1 has already appeared on this element. + + + + A direct element constructor is not well-formed. %1 is ended with %2. + 一个直接元素构造器没有很好地形成。%1 后面跟着 %2。 + + + The name %1 does not refer to any schema type. + 名称 %1 没有指向任何方案类型。 + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + %1 是一个复杂类型。无法抛出到复杂类型。因此,抛出到例如 %2 这样的原子类型是可以的。 + + + %1 is not an atomic type. Casting is only possible to atomic types. + %1 不是原子类型。只能抛出到原子类型。 + + + %1 is not a valid name for a processing-instruction. + %1不是一个处理指令的合法名称。 + + + The name of an extension expression must be in a namespace. + 一个扩展表达式的名称必须在一个命名空间中。 + + + Required type is %1, but %2 was found. + 需要的类型是 %1,但是找到的是 %2。 + + + Promoting %1 to %2 may cause loss of precision. + 把 %1 升级为 %2 会导致精度的损失。 + + + It's not possible to add attributes after any other kind of node. + 不能在任何其它类型节点后添加属性。 + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + 只支持 Unicode 代码点校验(Unicode Codepoint Collation)(%1)。%2 是不被支持的。 + + + Integer division (%1) by zero (%2) is undefined. + 整数除法(%1)除零(%2)是未定义的。 + + + Division (%1) by zero (%2) is undefined. + 除法(%1)除零(%2)是未定义的。 + + + Modulus division (%1) by zero (%2) is undefined. + 求模除法(%1)除零(%2)是未定义的。 + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + %1 最多可以有 %n 个参数。因此 %2 是无效的。 + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 需要至少 %n 个参数。因此 %2 是无效的。 + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + 函数 %1 的第二个参数的根节点必须是一个文档节点。%2 不是一个文档节点。 + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + 用户定义函数的名字空间不能为空(试用为这种情况而存在的预定义前缀%1) + + + A default namespace declaration must occur before function, variable, and option declarations. + 默认命名空间声明必须出现在函数、变量和选项声明之前。 + + + Namespace declarations must occur before function, variable, and option declarations. + 命名空间声明必须出现在函数、变量和选项声明之前。 + + + Module imports must occur before function, variable, and option declarations. + 模块导入不能出现在函数、变量和选项声明之前。 + + + %1 is not a whole number of minutes. + %1 不是分钟的整数。 + + + Attribute %1 can't be serialized because it appears at the top level. + 属性 %1 不能被串行化,因为它出现在最顶层。 + + + %1 is an unsupported encoding. + %1 是不被支持的编码。 + + + %1 contains octets which are disallowed in the requested encoding %2. + %1包含了在请求编码%2中不允许的八进位值。 + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + 在使用编码%3的%2中出现的代码点%1不是一个有效的XML字符。 + + + Ambiguous rule match. + 含糊规则匹配。 + + + In a namespace constructor, the value for a namespace cannot be an empty string. + + + + The prefix must be a valid %1, which %2 is not. + 前缀必须是有效的%1,而%2不是。 + + + The prefix %1 cannot be bound. + 前缀%1不能被绑定。 + + + Only the prefix %1 can be bound to %2 and vice versa. + 只有前缀%1可以绑定到%2,反之也一样 + + + The parameter %1 is required, but no corresponding %2 is supplied. + 需要参数%1,但是没有提供对应的%2。 + + + The parameter %1 is passed, but no corresponding %2 exists. + 参数%1已传递,但没有相应的%2存在。 + + + The URI cannot have a fragment + URI不能有片段 + + + Element %1 is not allowed at this location. + 元素%1不能在这个位置。 + + + Text nodes are not allowed at this location. + 文本节点不能在这个位置。 + + + Parse error: %1 + 解析错误:%1 + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + XSL-T版本属性的值必须是%1类型的值,而%2不是。 + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + 在XSL-T 2.0处理器中运行一个1.0的样式表。 + + + Unknown XSL-T attribute %1. + 未知的XSL-T属性%1。 + + + Attribute %1 and %2 are mutually exclusive. + 属性%1和%2彼此互斥。 + + + In a simplified stylesheet module, attribute %1 must be present. + 在一个简化样式表模块中,属性%1必须存在。 + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + 如果元素%1没有属性%2,那么它也不能有属性%3或者%4。 + + + Element %1 must have at least one of the attributes %2 or %3. + 元素%1必须至少有属性%2或者%3其中一个。 + + + At least one mode must be specified in the %1-attribute on element %2. + 在元素%2的%1属性中至少要指定一个模式。 + + + Element %1 must come last. + 元素%1必须最后出现。 + + + At least one %1-element must occur before %2. + 至少一个元素%1要出现在%2之前。 + + + Only one %1-element can appear. + 只能出现一个元素%1。 + + + At least one %1-element must occur inside %2. + 至少一个元素%1要出现在%2之内。 + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + 当属性%1出现在%2中时,不能使用顺序构造。 + + + Element %1 must have either a %2-attribute or a sequence constructor. + 元素%1必须有在一个%2属性或者顺序构造。 + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + 当需要参数时,不能通过属性%1或者顺序构造提供默认值。 + + + Element %1 cannot have children. + 元素%1不能有子元素。 + + + Element %1 cannot have a sequence constructor. + 元素%1不能有顺序构造。 + + + The attribute %1 cannot appear on %2, when it is a child of %3. + 属性%1不能出现在%2中,因为它是%3的子元素。 + + + A parameter in a function cannot be declared to be a tunnel. + 函数内的参数不能被声明为通道(tunnel)。 + + + This processor is not Schema-aware and therefore %1 cannot be used. + 这个处理器不能感知Schema,因此%1不能被使用。 + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + 顶级样式表元素必须是在非空命名空间中的,而%1不是。 + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + 元素%2中属性%1的值必须是%3或者%4,而不是%5。 + + + Attribute %1 cannot have the value %2. + 属性%1的值不能是%2。 + + + The attribute %1 can only appear on the first %2 element. + 属性%1只能出现在前%2个元素中。 + + + At least one %1 element must appear as child of %2. + %2必须至少又一个子元素%1。 + + + %1 has inheritance loop in its base type %2. + + + + Circular inheritance of base type %1. + + + + Circular inheritance of union %1. + + + + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + + + + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + + + + Base type of simple type %1 cannot be complex type %2. + + + + Simple type %1 cannot have direct base type %2. + + + + Simple type %1 is not allowed to have base type %2. + + + + Simple type %1 can only have simple atomic type as base type. + + + + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + + + + Variety of item type of %1 must be either atomic or union. + + + + Variety of member types of %1 must be atomic. + + + + %1 is not allowed to derive from %2 by list as the latter defines it as final. + + + + Simple type %1 is only allowed to have %2 facet. + + + + Base type of simple type %1 must have variety of type list. + + + + Base type of simple type %1 has defined derivation by restriction as final. + + + + Item type of base type does not match item type of %1. + + + + Simple type %1 contains not allowed facet type %2. + + + + %1 is not allowed to derive from %2 by union as the latter defines it as final. + + + + %1 is not allowed to have any facets. + + + + Base type %1 of simple type %2 must have variety of union. + + + + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + + + + Member type %1 cannot be derived from member type %2 of %3's base type %4. + + + + Derivation method of %1 must be extension because the base type %2 is a simple type. + + + + Complex type %1 has duplicated element %2 in its content model. + + + + Complex type %1 has non-deterministic content. + + + + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + + + + Content model of complex type %1 is not a valid extension of content model of %2. + + + + Complex type %1 must have simple content. + + + + Complex type %1 must have the same simple type as its base class %2. + + + + Complex type %1 cannot be derived from base type %2%3. + + + + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + + + + Complex type %1 with simple content cannot be derived from complex base type %2. + + + + Item type of simple type %1 cannot be a complex type. + + + + Member type of simple type %1 cannot be a complex type. + + + + %1 is not allowed to have a member type with the same name as itself. + + + + %1 facet collides with %2 facet. + + + + %1 facet must have the same value as %2 facet of base type. + + + + %1 facet must be equal or greater than %2 facet of base type. + + + + %1 facet must be less than or equal to %2 facet of base type. + + + + %1 facet contains invalid regular expression + + + + Unknown notation %1 used in %2 facet. + + + + %1 facet contains invalid value %2: %3. + + + + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + + + + %1 facet cannot be %2 if %3 facet of base type is %4. + + + + %1 facet must be less than or equal to %2 facet. + + + + %1 facet must be less than %2 facet of base type. + + + + %1 facet and %2 facet cannot appear together. + + + + %1 facet must be greater than %2 facet of base type. + + + + %1 facet must be less than %2 facet. + + + + %1 facet must be greater than or equal to %2 facet of base type. + + + + Simple type contains not allowed facet %1. + + + + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + + + + Only %1 and %2 facets are allowed when derived by union. + + + + %1 contains %2 facet with invalid data: %3. + + + + Attribute group %1 contains attribute %2 twice. + + + + Attribute group %1 contains two different attributes that both have types derived from %2. + + + + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + + Complex type %1 contains attribute %2 twice. + + + + Complex type %1 contains two different attributes that both have types derived from %2. + + + + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + + Element %1 is not allowed to have a value constraint if its base type is complex. + + + + Element %1 is not allowed to have a value constraint if its type is derived from %2. + + + + Value constraint of element %1 is not of elements type: %2. + + + + Element %1 is not allowed to have substitution group affiliation as it is no global element. + + + + Type of element %1 cannot be derived from type of substitution group affiliation. + + + + Value constraint of attribute %1 is not of attributes type: %2. + + + + Attribute %1 has value constraint but has type derived from %2. + + + + %1 attribute in derived complex type must be %2 like in base type. + + + + Attribute %1 in derived complex type must have %2 value constraint like in base type. + + + + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. + + + + Attribute %1 in derived complex type must have %2 value constraint. + + + + processContent of base wildcard must be weaker than derived wildcard. + + + + Element %1 exists twice with different types. + + + + Particle contains non-deterministic wildcards. + + + + Base attribute %1 is required but derived attribute is not. + + + + Type of derived attribute %1 cannot be validly derived from type of base attribute. + + + + Value constraint of derived attribute %1 does not match value constraint of base attribute. + + + + Derived attribute %1 does not exist in the base definition. + + + + Derived attribute %1 does not match the wildcard in the base definition. + + + + Base attribute %1 is required but missing in derived definition. + + + + Derived definition contains an %1 element that does not exists in the base definition + + + + Derived wildcard is not a subset of the base wildcard. + + + + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + + + + Attribute %1 from base type is missing in derived type. + + + + Type of derived attribute %1 differs from type of base attribute. + + + + Base definition contains an %1 element that is missing in the derived definition + + + + %1 references unknown %2 or %3 element %4. + + + + %1 references identity constraint %2 that is no %3 or %4 element. + + + + %1 has a different number of fields from the identity constraint %2 that it references. + + + + Base type %1 of %2 element cannot be resolved. + + + + Item type %1 of %2 element cannot be resolved. + + + + Member type %1 of %2 element cannot be resolved. + + + + Type %1 of %2 element cannot be resolved. + + + + Base type %1 of complex type cannot be resolved. + + + + %1 cannot have complex base type that has a %2. + + + + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. + + + + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. + + + + Type of %1 element must be a simple type, %2 is not. + + + + Substitution group %1 of %2 element cannot be resolved. + + + + Substitution group %1 has circular definition. + + + + Duplicated element names %1 in %2 element. + + + + Reference %1 of %2 element cannot be resolved. + + + + Circular group reference for %1. + + + + %1 element is not allowed in this scope + + + + %1 element cannot have %2 attribute with value other than %3. + + + + %1 element cannot have %2 attribute with value other than %3 or %4. + + + + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. + + + + Attribute group %1 has circular reference. + + + + %1 attribute in %2 must have %3 use like in base type %4. + + + + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. + + + + %1 has attribute wildcard but its base type %2 has not. + + + + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. + + + + Enumeration facet contains invalid content: {%1} is not a value of type %2. + + + + Namespace prefix of qualified name %1 is not defined. + + + + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. + + + + Empty particle cannot be derived from non-empty particle. + + + + Derived particle is missing element %1. + + + + Derived element %1 is missing value constraint as defined in base particle. + + + + Derived element %1 has weaker value constraint than base particle. + + + + Fixed value constraint of element %1 differs from value constraint in base particle. + + + + Derived element %1 cannot be nillable as base element is not nillable. + + + + Block constraints of derived element %1 must not be more weaker than in the base element. + + + + Simple type of derived element %1 cannot be validly derived from base element. + + + + Complex type of derived element %1 cannot be validly derived from base element. + + + + Element %1 is missing in derived particle. + + + + Element %1 does not match namespace constraint of wildcard in base particle. + + + + Wildcard in derived particle is not a valid subset of wildcard in base particle. + + + + processContent of wildcard in derived particle is weaker than wildcard in base particle. + + + + Derived particle allows content that is not allowed in the base particle. + + + + Can not process unknown element %1, expected elements are: %2. + + + + Element %1 is not allowed in this scope, possible elements are: %2. + + + + Child element is missing in that scope, possible child elements are: %1. + + + + Document is not a XML schema. + + + + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + + + + %1 attribute of %2 element contains invalid content: {%3}. + + + + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + + + + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + + + + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + + + + %1 element without %2 attribute is not allowed inside schema without target namespace. + + + + %1 element is not allowed inside %2 element if %3 attribute is present. + + + + %1 element has neither %2 attribute nor %3 child element. + + + + %1 element with %2 child element must not have a %3 attribute. + + + + %1 attribute of %2 element must be %3 or %4. + + + + %1 attribute of %2 element must have a value of %3. + + + + %1 attribute of %2 element must have a value of %3 or %4. + + + + %1 element must not have %2 and %3 attribute together. + + + + Content of %1 attribute of %2 element must not be from namespace %3. + + + + %1 attribute of %2 element must not be %3. + + + + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + + + + Specifying use='prohibited' inside an attribute group has no effect. + + + + %1 element must have either %2 or %3 attribute. + + + + %1 element must have either %2 attribute or %3 or %4 as child element. + + + + %1 element requires either %2 or %3 attribute. + + + + Text or entity references not allowed inside %1 element + + + + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + + + + %1 element is not allowed in this context. + + + + %1 attribute of %2 element has larger value than %3 attribute. + + + + Prefix of qualified name %1 is not defined. + + + + %1 attribute of %2 element must either contain %3 or the other values. + + + + Component with ID %1 has been defined previously. + + + + Element %1 already defined. + + + + Attribute %1 already defined. + + + + Type %1 already defined. + + + + Attribute group %1 already defined. + + + + Element group %1 already defined. + + + + Notation %1 already defined. + + + + Identity constraint %1 already defined. + + + + Duplicated facets in simple type %1. + + + + %1 is not valid according to %2. + + + + String content does not match the length facet. + + + + String content does not match the minLength facet. + + + + String content does not match the maxLength facet. + + + + String content does not match pattern facet. + + + + String content is not listed in the enumeration facet. + + + + Signed integer content does not match the maxInclusive facet. + + + + Signed integer content does not match the maxExclusive facet. + + + + Signed integer content does not match the minInclusive facet. + + + + Signed integer content does not match the minExclusive facet. + + + + Signed integer content is not listed in the enumeration facet. + + + + Signed integer content does not match pattern facet. + + + + Signed integer content does not match in the totalDigits facet. + + + + Unsigned integer content does not match the maxInclusive facet. + + + + Unsigned integer content does not match the maxExclusive facet. + + + + Unsigned integer content does not match the minInclusive facet. + + + + Unsigned integer content does not match the minExclusive facet. + + + + Unsigned integer content is not listed in the enumeration facet. + + + + Unsigned integer content does not match pattern facet. + + + + Unsigned integer content does not match in the totalDigits facet. + + + + Double content does not match the maxInclusive facet. + + + + Double content does not match the maxExclusive facet. + + + + Double content does not match the minInclusive facet. + + + + Double content does not match the minExclusive facet. + + + + Double content is not listed in the enumeration facet. + + + + Double content does not match pattern facet. + + + + Decimal content does not match in the fractionDigits facet. + + + + Decimal content does not match in the totalDigits facet. + + + + Date time content does not match the maxInclusive facet. + + + + Date time content does not match the maxExclusive facet. + + + + Date time content does not match the minInclusive facet. + + + + Date time content does not match the minExclusive facet. + + + + Date time content is not listed in the enumeration facet. + + + + Date time content does not match pattern facet. + + + + Duration content does not match the maxInclusive facet. + + + + Duration content does not match the maxExclusive facet. + + + + Duration content does not match the minInclusive facet. + + + + Duration content does not match the minExclusive facet. + + + + Duration content is not listed in the enumeration facet. + + + + Duration content does not match pattern facet. + + + + Boolean content does not match pattern facet. + + + + Binary content does not match the length facet. + + + + Binary content does not match the minLength facet. + + + + Binary content does not match the maxLength facet. + + + + Binary content is not listed in the enumeration facet. + + + + Invalid QName content: %1. + + + + QName content is not listed in the enumeration facet. + + + + QName content does not match pattern facet. + + + + Notation content is not listed in the enumeration facet. + + + + List content does not match length facet. + + + + List content does not match minLength facet. + + + + List content does not match maxLength facet. + + + + List content is not listed in the enumeration facet. + + + + List content does not match pattern facet. + + + + Union content is not listed in the enumeration facet. + + + + Union content does not match pattern facet. + + + + Data of type %1 are not allowed to be empty. + + + + Element %1 is missing child element. + + + + There is one IDREF value with no corresponding ID: %1. + + + + Loaded schema file is invalid. + + + + %1 contains invalid data. + + + + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + + + + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + + + + No schema defined for validation. + + + + No definition for element %1 available. + + + + Specified type %1 is not known to the schema. + + + + Element %1 is not defined in this scope. + + + + Declaration for element %1 does not exist. + + + + Element %1 contains invalid content. + + + + Element %1 is declared as abstract. + + + + Element %1 is not nillable. + + + + Attribute %1 contains invalid data: %2 + + + + Element contains content although it is nillable. + + + + Fixed value constraint not allowed if element is nillable. + + + + Element %1 cannot contain other elements, as it has a fixed content. + + + + Specified type %1 is not validly substitutable with element type %2. + + + + Complex type %1 is not allowed to be abstract. + + + + Element %1 contains not allowed attributes. + + + + Element %1 contains not allowed child element. + + + + Content of element %1 does not match its type definition: %2. + + + + Content of element %1 does not match defined value constraint. + + + + Element %1 contains not allowed child content. + + + + Element %1 contains not allowed text content. + + + + Element %1 is missing required attribute %2. + + + + Attribute %1 does not match the attribute wildcard. + + + + Declaration for attribute %1 does not exist. + + + + Element %1 contains two attributes of type %2. + + + + Attribute %1 contains invalid content. + + + + Element %1 contains unknown attribute %2. + + + + Content of attribute %1 does not match its type definition: %2. + + + + Content of attribute %1 does not match defined value constraint. + + + + Non-unique value found for constraint %1. + + + + Key constraint %1 contains absent fields. + + + + Key constraint %1 contains references nillable element %2. + + + + No referenced value found for key reference %1. + + + + More than one value found for field %1. + + + + Field %1 has no simple type. + + + + ID value '%1' is not unique. + + + + '%1' attribute contains invalid QName content: %2. + + + + diff --git a/config.profiles/symbian/translations/qt_zh_tw_symbian.ts b/config.profiles/symbian/translations/qt_zh_tw_symbian.ts new file mode 100644 index 0000000..3b1fb51 --- /dev/null +++ b/config.profiles/symbian/translations/qt_zh_tw_symbian.ts @@ -0,0 +1,8505 @@ + + + + + + CloseButton + + Close Tab + + + + + FakeReply + + Fake error ! + 假錯誤! + + + Invalid URL + URL無效 + + + + Phonon:: + + Notifications + + + + Music + + + + Video + + + + Communication + + + + Games + + + + Accessibility + + + + + Phonon::AudioOutput + + <html>The audio playback device <b>%1</b> does not work.<br/>Falling back to <b>%2</b>.</html> + <html>音訊播放裝置<b>%1</b>無法運作。<br/>正在切換回<b>%2</b>。</html> + + + <html>Switching to the audio playback device <b>%1</b><br/>which just became available and has higher preference.</html> + <html>正在切換到音訊播放裝置<b>%1</b>,<br/>該裝置剛變成可使用,而且優先順序較高。</html> + + + Revert back to device '%1' + 切換回裝置"%1" + + + + Phonon::Gstreamer::Backend + + Warning: You do not seem to have the package gstreamer0.10-plugins-good installed. + Some video features have been disabled. + + + + Warning: You do not seem to have the base GStreamer plugins installed. + All audio and video support has been disabled + + + + + Phonon::Gstreamer::MediaObject + + Cannot start playback. + +Check your GStreamer installation and make sure you +have libgstreamer-plugins-base installed. + + + + A required codec is missing. You need to install the following codec(s) to play this content: %0 + + + + Could not open media source. + + + + Invalid source type. + + + + Could not locate media source. + + + + Could not open audio device. The device is already in use. + + + + Could not decode media source. + + + + + Phonon::MMF + + Audio Output + 音訊輸出 + + + The audio output device + 音訊輸出裝置 + + + No error + 沒有錯誤 + + + Not found + 找不到 + + + Out of memory + 記憶體不足 + + + Not supported + 不支援 + + + Overflow + 溢位 + + + Underflow + 降位 + + + Already exists + 已經存在 + + + Path not found + 找不到路徑 + + + In use + 使用中 + + + Not ready + 未就緒 + + + Access denied + 拒絕存取 + + + Could not connect + 無法連線 + + + Disconnected + 已中斷連線 + + + Permission denied + 權限不足 + + + Insufficient bandwidth + 頻寬不足 + + + Network unavailable + 網路無法使用 + + + Network communication error + 網路通訊錯誤 + + + Streaming not supported + 不支援串流 + + + Server alert + 伺服器警告 + + + Invalid protocol + 通訊協定無效 + + + Invalid URL + URL無效 + + + Multicast error + 多點傳送錯誤 + + + Proxy server error + Proxy伺服器錯誤 + + + Proxy server not supported + 不支援的Proxy伺服器 + + + Audio output error + 音訊輸出錯誤 + + + Video output error + 視訊輸出錯誤 + + + Decoder error + 解碼器錯誤 + + + Audio or video components could not be played + 音訊或視訊元件無法播放 + + + DRM error + DRM錯誤 + + + Unknown error (%1) + 不明錯誤(%1) + + + + Phonon::MMF::AbstractMediaPlayer + + Not ready to play + 尚未準備好播放 + + + Error opening file + 開啟檔案時發生錯誤 + + + Error opening URL + 開啟URL時發生錯誤 + + + Setting volume failed + 音量設定失敗 + + + Playback complete + 播放完成 + + + + Phonon::MMF::AudioEqualizer + + %1 Hz + %1 Hz + + + + Phonon::MMF::AudioPlayer + + Getting position failed + 取得位置失敗 + + + Opening clip failed + 開啟檔案失敗 + + + + Phonon::MMF::EffectFactory + + Enabled + 已啟用 + + + + Phonon::MMF::EnvironmentalReverb + + Decay HF ratio (%) + 衰減HF比率(%) + + + Decay time (ms) + 衰減時間(ms) + + + Density (%) + 密度(%) + + + Diffusion (%) + 擴散(%) + + + Reflections delay (ms) + 反射延遲(ms) + + + Reflections level (mB) + 反射電平(mB) + + + Reverb delay (ms) + 殘響延遲(ms) + + + Reverb level (mB) + 殘響電平(mB) + + + Room HF level + 空間HF電平 + + + Room level (mB) + 空間電平(mB) + + + + Phonon::MMF::MediaObject + + Error opening source: type not supported + 開啟來源時發生錯誤:不支援的類型 + + + Error opening source: media type could not be determined + 開啟來源時發生錯誤:無法判斷媒體類型 + + + + Phonon::MMF::StereoWidening + + Level (%) + 電平(%) + + + + Phonon::MMF::VideoPlayer + + Pause failed + 暫停失敗 + + + Seek failed + 搜尋失敗 + + + Getting position failed + 取得位置失敗 + + + Opening clip failed + 開啟檔案失敗 + + + Buffering clip failed + 檔案緩衝處理失敗 + + + Video display error + 視訊顯示錯誤 + + + + Phonon::VolumeSlider + + Volume: %1% + + + + Use this slider to adjust the volume. The leftmost position is 0%, the rightmost is %1% + + + + Muted + 已靜音 + + + + Q3Accel + + %1, %2 not defined + + + + Ambiguous %1 not handled + + + + + Q3DataTable + + True + + + + False + + + + Insert + + + + Update + + + + Delete + + + + + Q3FileDialog + + Copy or Move a File + + + + Read: %1 + + + + Write: %1 + + + + Cancel + + + + All Files (*) + + + + Name + + + + Size + + + + Type + + + + Date + + + + Attributes + + + + &OK + + + + Look &in: + + + + File &name: + + + + File &type: + + + + Back + + + + One directory up + + + + Create New Folder + + + + List View + + + + Detail View + + + + Preview File Info + + + + Preview File Contents + + + + Read-write + + + + Read-only + + + + Write-only + + + + Inaccessible + + + + Symlink to File + + + + Symlink to Directory + + + + Symlink to Special + + + + File + + + + Dir + + + + Special + + + + Open + + + + Save As + + + + &Open + + + + &Save + + + + &Rename + + + + &Delete + + + + R&eload + + + + Sort by &Name + + + + Sort by &Size + + + + Sort by &Date + + + + &Unsorted + + + + Sort + + + + Show &hidden files + + + + the file + + + + the directory + + + + the symlink + + + + Delete %1 + + + + <qt>Are you sure you wish to delete %1 "%2"?</qt> + + + + &Yes + + + + &No + + + + New Folder 1 + + + + New Folder + 新資料夾 + + + New Folder %1 + 新資料夾 %1 + + + Find Directory + + + + Directories + + + + Directory: + + + + Error + + + + %1 +File not found. +Check path and filename. + + + + All Files (*.*) + + + + Open + + + + Select a Directory + + + + + Q3LocalFs + + Could not read directory +%1 + + + + Could not create directory +%1 + + + + Could not remove file or directory +%1 + + + + Could not rename +%1 +to +%2 + + + + Could not open +%1 + + + + Could not write +%1 + + + + + Q3MainWindow + + Line up + + + + Customize... + + + + + Q3NetworkProtocol + + Operation stopped by the user + + + + + Q3ProgressDialog + + Cancel + + + + + Q3TabDialog + + OK + + + + Apply + + + + Help + + + + Defaults + + + + Cancel + + + + + Q3TextEdit + + &Undo + + + + &Redo + + + + Cu&t + + + + &Copy + + + + &Paste + + + + Clear + + + + Select All + + + + + Q3TitleBar + + System + + + + Restore up + + + + Minimize + + + + Restore down + + + + Maximize + + + + Close + + + + Contains commands to manipulate the window + + + + Puts a minimized window back to normal + + + + Moves the window out of the way + + + + Puts a maximized window back to normal + + + + Makes the window full screen + + + + Closes the window + + + + Displays the name of the window and contains controls to manipulate it + + + + + Q3ToolBar + + More... + + + + + Q3UrlOperator + + The protocol `%1' is not supported + + + + The protocol `%1' does not support listing directories + + + + The protocol `%1' does not support creating new directories + + + + The protocol `%1' does not support removing files or directories + + + + The protocol `%1' does not support renaming files or directories + + + + The protocol `%1' does not support getting files + + + + The protocol `%1' does not support putting files + + + + The protocol `%1' does not support copying or moving files or directories + + + + (unknown) + + + + + Q3Wizard + + &Cancel + + + + < &Back + + + + &Next > + + + + &Finish + + + + &Help + + + + + QAbstractSocket + + Host not found + + + + Connection refused + + + + Connection timed out + + + + Operation on socket is not supported + + + + Socket operation timed out + + + + Socket is not connected + + + + Network unreachable + + + + + QAbstractSpinBox + + &Step up + + + + Step &down + + + + &Select All + + + + + QAccessibleButton + + Press + + + + + QApplication + + QT_LAYOUT_DIRECTION + Translate this string to the string 'LTR' in left-to-right languages or to 'RTL' in right-to-left languages (such as Hebrew and Arabic) to get proper widget layout. + + + + Executable '%1' requires Qt %2, found Qt %3. + + + + Incompatible Qt Library Error + + + + Activate + + + + Activates the program's main window + + + + + QAxSelect + + Select ActiveX Control + + + + OK + + + + &Cancel + + + + COM &Object: + + + + + QCheckBox + + Uncheck + + + + Check + + + + Toggle + + + + + QColorDialog + + Hu&e: + + + + &Sat: + + + + &Val: + + + + &Red: + + + + &Green: + + + + Bl&ue: + + + + A&lpha channel: + + + + Select Color + + + + &Basic colors + + + + &Custom colors + + + + &Add to Custom Colors + + + + + QComboBox + + Open + + + + False + + + + True + + + + Close + + + + + QCoreApplication + + %1: key is empty + QSystemSemaphore + + + + %1: unable to make key + QSystemSemaphore + + + + %1: ftok failed + QSystemSemaphore + + + + %1: already exists + QSystemSemaphore + + + + %1: does not exist + QSystemSemaphore + %1:不存在 + + + %1: out of resources + QSystemSemaphore + + + + %1: unknown error %2 + QSystemSemaphore + + + + + QDB2Driver + + Unable to connect + + + + Unable to commit transaction + + + + Unable to rollback transaction + + + + Unable to set autocommit + + + + + QDB2Result + + Unable to execute statement + + + + Unable to prepare statement + + + + Unable to bind variable + + + + Unable to fetch record %1 + + + + Unable to fetch next + + + + Unable to fetch first + + + + + QDateTimeEdit + + AM + + + + am + + + + PM + + + + pm + + + + + QDial + + QDial + + + + SpeedoMeter + + + + SliderHandle + + + + + QDialog + + What's This? + + + + Done + + + + + QDialogButtonBox + + OK + + + + Save + + + + &Save + + + + Open + + + + Cancel + + + + &Cancel + + + + Close + + + + &Close + + + + Apply + + + + Reset + + + + Help + + + + Don't Save + + + + Discard + + + + &Yes + + + + Yes to &All + + + + &No + + + + N&o to All + + + + Save All + + + + Abort + + + + Retry + + + + Ignore + + + + Restore Defaults + + + + Close without Saving + + + + &OK + + + + + QDirModel + + Name + + + + Size + + + + Kind + Match OS X Finder + + + + Type + All other platforms + + + + Date Modified + + + + + QDockWidget + + Close + + + + Dock + + + + Float + + + + + QDoubleSpinBox + + More + + + + Less + + + + + QErrorMessage + + &Show this message again + 再度顯示此訊息(&S) + + + &OK + + + + Debug Message: + + + + Warning: + 警告: + + + Fatal Error: + + + + + QFile + + Destination file exists + 目標檔已存在 + + + Will not rename sequential file using block copy + 使用區塊複製將不會重新命名循序檔 + + + Cannot remove source file + 無法移除來源檔 + + + Cannot open %1 for input + 無法開啟 %1 以輸入 + + + Cannot open for output + 無法開啟 %1 以輸出 + + + Failure to write block + 寫入區塊時失敗 + + + Cannot create %1 for output + 無法建立 %1 以輸出 + + + + QFileDialog + + All Files (*) + 所有檔案 (*) + + + Back + 返回 + + + List View + 列表檢視 + + + Detail View + 詳細檢視 + + + File + 檔案 + + + Open + 開啟 + + + Save As + 另存新檔 + + + &Open + 開啟(&O) + + + &Save + 儲存(&S) + + + Recent Places + 最近的地方 + + + &Rename + 重新命名(&R) + + + &Delete + 刪除(&D) + + + Show &hidden files + 顯示隱藏檔(&H) + + + New Folder + 新資料夾 + + + Find Directory + 尋找目錄 + + + Directories + 目錄 + + + All Files (*.*) + 所有檔案 (*.*) + + + Directory: + 目錄: + + + %1 already exists. +Do you want to replace it? + %1 已存在 +您要取代它嗎? + + + %1 +File not found. +Please verify the correct file name was given. + %1 +找不到檔案。 +請檢查檔名是否正確。 + + + My Computer + 我的電腦 + + + Parent Directory + 父目錄 + + + Files of type: + 檔案型態: + + + %1 +Directory not found. +Please verify the correct directory name was given. + %1 +找不到目錄。 +請檢查目錄名稱是否正確。 + + + '%1' is write protected. +Do you want to delete it anyway? + %1 有寫入保護。 +您確定要刪除它嗎? + + + Are sure you want to delete '%1'? + 您確定要刪除 %1 嗎? + + + Could not delete directory. + 無法刪除目錄。 + + + Drive + 磁碟 + + + File Folder + Match Windows Explorer + 檔案資料夾 + + + Folder + All other platforms + 資料夾 + + + Alias + Mac OS X Finder + 別名 + + + Shortcut + All other platforms + 捷徑 + + + Unknown + 未知 + + + Show + 顯示 + + + Forward + 往前 + + + &New Folder + 新增資料夾(&N) + + + &Choose + 選擇(&C) + + + Remove + 移除 + + + File &name: + 檔名(&N): + + + Look in: + 尋找於: + + + Create New Folder + 建立新資料夾 + + + + QFileSystemModel + + %1 TB + %1 TB + + + %1 GB + %1 GB + + + %1 MB + %1 MB + + + %1 KB + %1 KB + + + %1 bytes + %1 位元組 + + + Invalid filename + 不合法的檔名 + + + <b>The name "%1" can not be used.</b><p>Try using another name, with fewer characters or no punctuations marks. + <b>無法使用名稱 "%1"。</b><p>請使用其它名稱,字元數少一點,或是不要有標點符號。 + + + Name + 名稱 + + + Size + 大小 + + + Kind + Match OS X Finder + 種類 + + + Type + All other platforms + 型態 + + + Date Modified + 變更日期 + + + My Computer + 我的電腦 + + + Computer + 電腦 + + + %1 byte(s) + %1位元組 + + + + QFontDatabase + + Normal + 正常 + + + Bold + 粗體 + + + Demi Bold + 半粗體 + + + Black + 黑體 + + + Demi + 半體 + + + Light + 輕體 + + + Italic + 斜體 + + + Oblique + 傾斜體 + + + Any + 任何 + + + Latin + 拉丁 + + + Greek + 希臘 + + + Cyrillic + 斯拉夫 + + + Armenian + 亞美尼亞 + + + Hebrew + 希伯來 + + + Arabic + 阿拉伯 + + + Syriac + 敘利亞 + + + Thaana + Thaana + + + Devanagari + Devanagari + + + Bengali + 孟加拉 + + + Gurmukhi + Gurmukhi + + + Gujarati + Gujarati + + + Oriya + Oriya + + + Tamil + 坦米爾 + + + Telugu + Telugu + + + Kannada + 坎達那 + + + Malayalam + 馬來語 + + + Sinhala + 錫蘭 + + + Thai + 泰語 + + + Lao + 寮國 + + + Tibetan + 西藏 + + + Myanmar + 緬甸 + + + Georgian + 喬治亞 + + + Khmer + 高棉 + + + Simplified Chinese + 簡體中文 + + + Traditional Chinese + 繁體中文 + + + Japanese + 日語 + + + Korean + 韓語 + + + Vietnamese + 越南 + + + Symbol + 符號 + + + Ogham + 歐甘 + + + Runic + 盧恩 + + + N'Ko + N'Ko + + + + QFontDialog + + &Font + 字型(&F) + + + Font st&yle + 字型樣式(&Y) + + + &Size + 大小(&S) + + + Effects + 效果 + + + Stri&keout + 刪除線(&K) + + + &Underline + 底線(&U) + + + Sample + 範例 + + + Select Font + 選擇字型 + + + Wr&iting System + 寫入系統(&I) + + + + QFtp + + Host %1 found + 找到主機 %1 + + + Host found + 找到主機 + + + Connected to host %1 + 已連接到主機 %1 + + + Connected to host + 已連線到主機 + + + Connection to %1 closed + 到 %1 的連線已關閉 + + + Connection closed + 連線已關閉 + + + Host %1 not found + 找不到主機 %1 + + + Connection refused to host %1 + 連線到主機 %1 被拒 + + + Connection timed out to host %1 + 連線到主機 %1 逾時 + + + Unknown error + 未知的錯誤 + + + Connecting to host failed: +%1 + 連線到主機失敗: +%1 + + + Login failed: +%1 + 登入失敗: +%1 + + + Listing directory failed: +%1 + 列出目錄時失敗: +%1 + + + Changing directory failed: +%1 + 變更目錄時失敗: +%1 + + + Downloading file failed: +%1 + 下載檔案時失敗: +%1 + + + Uploading file failed: +%1 + 上傳檔案時失敗: +%1 + + + Removing file failed: +%1 + 移除檔案時失敗: +%1 + + + Creating directory failed: +%1 + 建立目錄時失敗: +%1 + + + Removing directory failed: +%1 + 移除目錄時失敗: +%1 + + + Not connected + 未連線 + + + Connection refused for data connection + 資料連線被拒 + + + + QHostInfo + + Unknown error + 未知的錯誤 + + + + QHostInfoAgent + + Host not found + 找不到主機 + + + Unknown address type + 未知的位址型態 + + + Unknown error + 未知的錯誤 + + + No host name given + 未提供主機名稱 + + + Invalid hostname + 主機名稱無效 + + + + QHttp + + Connection refused + 連線被拒 + + + Host %1 not found + 找不到主機 %1 + + + Wrong content length + 錯誤的內容長度 + + + HTTP request failed + HTTP 要求失敗 + + + Host %1 found + 找到主機 %1 + + + Host found + 找到主機 + + + Connected to host %1 + 已連接到主機 %1 + + + Connected to host + 已連線到主機 + + + Connection to %1 closed + 到 %1 的連線已關閉 + + + Connection closed + 連線已關閉 + + + Unknown error + 未知的錯誤 + + + Request aborted + 要求中止 + + + No server set to connect to + 沒有設定要連線到哪個伺服器 + + + Server closed connection unexpectedly + 伺服器無預警關閉連線 + + + Invalid HTTP response header + 不合法的 HTTP 回覆標頭 + + + Unknown authentication method + 不明的驗證方法 + + + Invalid HTTP chunked body + 不合法的 HTTP 區塊主體 + + + Error writing response to device + 寫入回應到裝置時發生錯誤 + + + Proxy authentication required + 代理伺服器需要認證 + + + Authentication required + 需要認證 + + + Proxy requires authentication + 代理伺服器需要認證 + + + Host requires authentication + 主機需要認證 + + + Data corrupted + 資料已損毀 + + + SSL handshake failed + SSL 溝通失敗 + + + Unknown protocol specified + 指定了未知的協定 + + + Connection refused (or timed out) + 連線被拒(或連線逾時) + + + HTTPS connection requested but SSL support not compiled in + HTTPS 連線需要的 SSL 支援並未編譯進來 + + + + QHttpSocketEngine + + Did not receive HTTP response from proxy + 未從代理伺服器接收到 HTTP 回應 + + + Error parsing authentication request from proxy + 剖析從代理伺服器傳來的認證要求時發生錯誤 + + + Authentication required + 需要認證 + + + Proxy denied connection + 代理伺服器拒絕連線 + + + Error communicating with HTTP proxy + 與 HTTP 代理伺服器聯繫時發生錯誤 + + + Proxy server not found + 找不到代理伺服器 + + + Proxy connection refused + 代理伺服器連線被拒 + + + Proxy server connection timed out + 代理伺服器連線逾時 + + + Proxy connection closed prematurely + 代理伺服器連線已不正常關閉 + + + + QIBaseDriver + + Error opening database + 開啟資料庫發生錯誤 + + + Could not start transaction + 無法開始事務 + + + Unable to commit transaction + 無法提交事務 + + + Unable to rollback transaction + 無法反轉事務 + + + + QIBaseResult + + Unable to create BLOB + 無法建立 BLOB + + + Unable to write BLOB + 無法寫入 BLOB + + + Unable to open BLOB + 無法開啟 BLOB + + + Unable to read BLOB + 無法讀取 BLOB + + + Could not find array + 找不到陣列 + + + Could not get array data + 無法取得陣列資料 + + + Could not get query info + 無法取得查詢資訊 + + + Could not start transaction + 無法開始事務 + + + Unable to commit transaction + 無法提交事務 + + + Could not allocate statement + 無法配置敘述 + + + Could not prepare statement + 無法準備敘述 + + + Could not describe input statement + 無法描述輸入敘述 + + + Could not describe statement + 無法描述敘述 + + + Unable to close statement + 無法關閉敘述 + + + Unable to execute query + 無法執行查詢 + + + Could not fetch next item + 無法抓取下一個項目 + + + Could not get statement info + 無法取得敘述資訊 + + + + QIODevice + + Permission denied + 權限不足 + + + Too many open files + 開啟過多檔案 + + + No such file or directory + 找不到該檔案或目錄 + + + No space left on device + 裝置上已無空間 + + + Unknown error + 未知的錯誤 + + + + QInputContext + + XIM + XIM + + + FEP + FEP + + + XIM input method + XIM 輸入法 + + + Windows input method + Windows 輸入法 + + + Mac OS X input method + Mac OS X 輸入法 + + + S60 FEP input method + S60 FEP輸入法 + + + + QInputDialog + + Enter a value: + 請輸入值: + + + + QLibrary + + Could not mmap '%1': %2 + 無法 mmap '%1':%2 + + + Plugin verification data mismatch in '%1' + 在 %1 中的外掛程式確認資料不符合 + + + Could not unmap '%1': %2 + 無法 unmap '%1':%2 + + + The plugin '%1' uses incompatible Qt library. (%2.%3.%4) [%5] + 外掛程式 %1 使用不相容的 Qt 函式庫(%2.%3.%4)【%5】 + + + The plugin '%1' uses incompatible Qt library. Expected build key "%2", got "%3" + 外掛程式 %1 使用不相容的 Qt 函式庫。預期建構鑰 %2,卻得到 %3 + + + Unknown error + 未知的錯誤 + + + The shared library was not found. + 找不到分享函式庫 + + + The file '%1' is not a valid Qt plugin. + 檔案 %1 不是合法的 Qt 外掛程式。 + + + The plugin '%1' uses incompatible Qt library. (Cannot mix debug and release libraries.) + 外掛程式 %1 使用不相容的 Qt 函式庫。(不能將除錯與釋出版的函式庫混在一起。) + + + Cannot load library %1: %2 + 無法載入函式庫 %1:%2 + + + Cannot unload library %1: %2 + 無法卸載函式庫 %1:%2 + + + Cannot resolve symbol "%1" in %2: %3 + 無法反解 %2 內的符號 %1:%3 + + + + QLineEdit + + Select All + 全部選擇 + + + &Undo + 復原(&U) + + + &Redo + 重做(&R) + + + Cu&t + 剪下(&T) + + + &Copy + 複製(&C) + + + &Paste + 貼上(&P) + + + Delete + 刪除 + + + + QLocalServer + + %1: Name error + %1:名稱錯誤 + + + %1: Permission denied + %1:存取被拒 + + + %1: Address in use + %1:位址使用中 + + + %1: Unknown error %2 + %1:未知的錯誤 %2 + + + + QLocalSocket + + %1: Connection refused + %1:連線被拒 + + + %1: Remote closed + %1:遠端已關閉 + + + %1: Invalid name + %1:不合法的名稱 + + + %1: Socket access error + %1:Socket 位址錯誤 + + + %1: Socket resource error + %1:Socket 資源錯誤 + + + %1: Socket operation timed out + %1:Socket 操作逾時 + + + %1: Datagram too large + %1:資料包過大 + + + %1: Connection error + %1:連線錯誤 + + + %1: The socket operation is not supported + %1:socket 操作未支援 + + + %1: Unknown error + %1:未知的錯誤 + + + %1: Unknown error %2 + %1:未知的錯誤 %2 + + + + QMYSQLDriver + + Unable to open database ' + 無法開啟資料庫 + + + Unable to connect + 無法連線 + + + Unable to begin transaction + 無法開始事務 + + + Unable to commit transaction + 無法提交事務 + + + Unable to rollback transaction + 無法反轉事務 + + + + QMYSQLResult + + Unable to fetch data + 無法抓取資料 + + + Unable to execute query + 無法執行查詢 + + + Unable to store result + 無法儲存結果 + + + Unable to prepare statement + 無法準備敘述 + + + Unable to reset statement + 無法重置敘述 + + + Unable to bind value + 無法結合數值 + + + Unable to execute statement + 無法執行敘述 + + + Unable to bind outvalues + 無法結合輸出值 + + + Unable to store statement results + 無法儲存敘述結果 + + + Unable to execute next query + 無法執行下一個查詢 + + + Unable to store next result + 無法儲存下一個結果 + + + + QMdiArea + + (Untitled) + (未命名) + + + + QMdiSubWindow + + %1 - [%2] + %1 - [%2] + + + Close + 關閉 + + + Minimize + 最小化 + + + Restore Down + 向下恢復 + + + &Restore + 回復(&R) + + + &Move + 移動(&M) + + + &Size + 大小(&S) + + + Mi&nimize + 最小化(&N) + + + Ma&ximize + 最大化(&X) + + + Stay on &Top + 留在頂端(&T) + + + &Close + 關閉(&C) + + + Maximize + 最大化 + + + Unshade + 取消遮蔽 + + + Shade + 遮蔽 + + + Restore + 回復 + + + Help + 說明 + + + Menu + 選單 + + + - [%1] + - [%1] + + + + QMenu + + Close + 關閉 + + + Open + 開啟 + + + Execute + 執行 + + + + QMenuBar + + Actions + 動作 + + + + QMessageBox + + OK + 確定 + + + <h3>About Qt</h3><p>This program uses Qt version %1.</p> + <h3>關於Qt</h3><p>本程式使用Qt %1版。</p> + + + <p>Qt is a C++ toolkit for cross-platform application development.</p><p>Qt provides single-source portability across MS&nbsp;Windows, Mac&nbsp;OS&nbsp;X, Linux, and all major commercial Unix variants. Qt is also available for embedded devices as Qt for Embedded Linux and Qt for Windows CE.</p><p>Qt is available under three different licensing options designed to accommodate the needs of our various users.</p><p>Qt licensed under our commercial license agreement is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 2.1 or GNU GPL version 3.0.</p><p>Qt licensed under the GNU LGPL version 2.1 is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions of the GNU LGPL version 2.1.</p><p>Qt licensed under the GNU General Public License version 3.0 is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU GPL version 3.0 or where you are otherwise willing to comply with the terms of the GNU GPL version 3.0.</p><p>Please see <a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a> for an overview of Qt licensing.</p><p>Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).</p><p>Qt is a Nokia product. See <a href="http://qt.nokia.com/">qt.nokia.com</a> for more information.</p> + <p>Qt是一套應用於跨平台應用程式開發的C++工具集。</p><p>Qt提供橫跨MS&nbsp;Windows、Mac&nbsp;OS&nbsp;X、Linux及各主要商業Unix系統的單一來源移植能力。Qt也提供適用於嵌入式裝置的版本,例如Qt for Embedded Linux和Qt for Windows CE。</p><p>針對不同使用者的需求,Qt有三種不同授權方式。</p><p>商業授權合約下的Qt授權適用於專利/商業軟體的開發,在這種情況中,您可能不想與第三方分享任何原始碼或無法遵從GNU LGPL 2.1版或GNU GPL 3.0版的條款。</p><p>GNU LGPL 2.1版下的Qt授權適用於開發Qt應用程式(專利或開放原始碼),您必須遵從GNU LGPL 2.1版的條款與條件。</p><p>GNU GPL 3.0版下的Qt授權適用於開發Qt應用程式,在這種情況中,您希望將此應用程式搭配基於GNU GPL 3.0版開發的軟體一起使用,或您樂意遵從GNU GPL 3.0版的條款。</p><p>請參閱<a href="http://qt.nokia.com/products/licensing">qt.nokia.com/products/licensing</a>,此頁面對於Qt授權會有概略的介紹。</p><p>Copyright (C) 2010 諾基亞公司及/或其子公司。</p><p>Qt是一項諾基亞產品。如需詳細資訊,請參閱<a href="http://qt.nokia.com/">qt.nokia.com</a>。</p> + + + About Qt + 關於 Qt + + + Help + 說明 + + + Show Details... + 顯示詳情... + + + Hide Details... + 隱藏詳情... + + + + QMultiInputContext + + Select IM + 選擇輸入法 + + + + QMultiInputContextPlugin + + Multiple input method switcher + 多重輸入法切換器 + + + Multiple input method switcher that uses the context menu of the text widgets + 使用文字元件中的內文選單的多重輸入法切換器 + + + + QNativeSocketEngine + + The remote host closed the connection + 遠端主機關閉了連線 + + + Network operation timed out + 網路操作逾時 + + + Out of resources + 資源不足 + + + Unsupported socket operation + 未支援的 socket 操作 + + + Protocol type not supported + 協定型態未支援 + + + Invalid socket descriptor + 不合法的 socket 描述子 + + + Network unreachable + 無法使用網路 + + + Permission denied + 權限不足 + + + Connection timed out + 連線逾時 + + + Connection refused + 連線被拒 + + + The bound address is already in use + 結合的位址已經在使用中 + + + The address is not available + 無法取得位址 + + + The address is protected + 此位址已被保護 + + + Unable to send a message + 無法送出訊息 + + + Unable to receive a message + 無法接收訊息 + + + Unable to write + 無法寫入 + + + Network error + 網路錯誤 + + + Another socket is already listening on the same port + 另一個 socket 已經在監聽同一個連接埠 + + + Unable to initialize non-blocking socket + 無法初始化非阻擋性 socket + + + Unable to initialize broadcast socket + 無法初始化廣播 socket + + + Attempt to use IPv6 socket on a platform with no IPv6 support + 試圖在沒有 IPv6 支援的平台上使用 IPv6 socket + + + Host unreachable + 無法連線到主機 + + + Datagram was too large to send + 資料過大無法送出 + + + Operation on non-socket + 對非 socket 操作 + + + Unknown error + 未知的錯誤 + + + The proxy type is invalid for this operation + 代理伺服器型態無法支援此操作 + + + + QNetworkAccessCacheBackend + + Error opening %1 + 開啟 %1 發生錯誤 + + + + QNetworkAccessDebugPipeBackend + + Write error writing to %1: %2 + 寫入%1時發生寫入錯誤:%2 + + + + QNetworkAccessFileBackend + + Request for opening non-local file %1 + 要求開啟非本地端檔案 %1 + + + Error opening %1: %2 + 開啟 %1 發生錯誤:%2 + + + Write error writing to %1: %2 + 寫入 %1 時發生錯誤:%2 + + + Cannot open %1: Path is a directory + 無法開啟 %1:此路徑是一個目錄 + + + Read error reading from %1: %2 + 從 %1 讀取錯誤:%2 + + + + QNetworkAccessFtpBackend + + No suitable proxy found + 找不到合適的代理伺服器 + + + Cannot open %1: is a directory + 無法開啟 %1:是一個目錄 + + + Logging in to %1 failed: authentication required + 登入 %1 失敗:需要認證 + + + Error while downloading %1: %2 + 下載 %1 時發生錯誤:%2 + + + Error while uploading %1: %2 + 上傳 %1 時發生錯誤:%2 + + + + QNetworkAccessHttpBackend + + No suitable proxy found + 找不到合適的代理伺服器 + + + + QNetworkReply + + Error downloading %1 - server replied: %2 + 下載 %1 時發生錯誤─伺服器回應:%2 + + + Protocol "%1" is unknown + 未知的協定 %1 + + + + QNetworkReplyImpl + + Operation canceled + 取消操作 + + + + QOCIDriver + + Unable to logon + 無法登入 + + + Unable to initialize + QOCIDriver + 無法初始化 + + + Unable to begin transaction + 無法開始事務 + + + Unable to commit transaction + 無法提交事務 + + + Unable to rollback transaction + 無法反轉事務 + + + + QOCIResult + + Unable to bind column for batch execute + 無法結合欄位以做批次執行 + + + Unable to execute batch statement + 無法執行批次敘述 + + + Unable to goto next + 無法跳到下一個 + + + Unable to alloc statement + 無法配置敘述 + + + Unable to prepare statement + 無法準備敘述 + + + Unable to get statement type + + + + Unable to bind value + 無法結合數值 + + + Unable to execute statement + 無法執行敘述 + + + + QODBCDriver + + Unable to connect + 無法連接 + + + Unable to disable autocommit + 無法關閉自動提交功能 + + + Unable to commit transaction + 無法提交事務 + + + Unable to rollback transaction + 無法反轉事務 + + + Unable to enable autocommit + 無法開啟自動提交功能 + + + Unable to connect - Driver doesn't support all functionality required + + + + + QODBCResult + + QODBCResult::reset: Unable to set 'SQL_CURSOR_STATIC' as statement attribute. Please check your ODBC driver configuration + QODBCResult::reset: 無法設定 SQL_CURSOR_STATIC 做為敘述屬性。請檢查您的 ODBC 驅動程式的設定 + + + Unable to execute statement + 無法執行敘述 + + + Unable to fetch next + 無法抓取下一筆 + + + Unable to prepare statement + 無法準備敘述 + + + Unable to bind variable + 無法結合變數 + + + Unable to fetch last + 無法抓取最後一筆 + + + Unable to fetch + 無法抓取 + + + Unable to fetch first + 無法抓取第一筆 + + + Unable to fetch previous + 無法抓取前一筆 + + + + QObject + + Invalid hostname + 主機名稱無效 + + + Operation not supported on %1 + 在 %1 上不支援此操作 + + + Invalid URI: %1 + 不合法的網址:%1 + + + Socket error on %1: %2 + %1 上發生 socket 錯誤:%2 + + + Remote host closed the connection prematurely on %1 + 於 %1 上遠端主機關閉了不正常的連線 + + + No host name given + 未指定主機 + + + + QPPDOptionsModel + + Name + 名稱 + + + Value + + + + + QPSQLDriver + + Unable to connect + 無法連線 + + + Could not begin transaction + 無法開始事務 + + + Could not commit transaction + 無法提交事務 + + + Could not rollback transaction + 無法反轉事務 + + + Unable to subscribe + 無法訂閱 + + + Unable to unsubscribe + 無法取消訂閱 + + + + QPSQLResult + + Unable to create query + 無法建立查詢 + + + Unable to prepare statement + 無法準備敘述 + + + + QPageSetupWidget + + Centimeters (cm) + 公分 + + + Millimeters (mm) + 公厘 + + + Inches (in) + 英吋 + + + Points (pt) + + + + Form + 表單 + + + Paper + 紙張 + + + Page size: + 紙張大小: + + + Width: + 寬度: + + + Height: + 高度: + + + Paper source: + 紙張來源: + + + Orientation + 方向 + + + Portrait + 縱向 + + + Landscape + 橫向 + + + Reverse landscape + 反序橫向 + + + Reverse portrait + 反序縱向 + + + Margins + 邊緣 + + + top margin + 上緣 + + + left margin + 左緣 + + + right margin + 右緣 + + + bottom margin + 下緣 + + + + QPluginLoader + + Unknown error + 未知的錯誤 + + + The plugin was not loaded. + 外掛程式未載入。 + + + + QPrintDialog + + locally connected + 本地連接 + + + Aliases: %1 + 別名:%1 + + + unknown + 未知 + + + OK + 確定 + + + Print all + 全部列印 + + + Print range + 列印範圍 + + + A0 (841 x 1189 mm) + A0 (841 x 1189 mm) + + + A1 (594 x 841 mm) + A1 (594 x 841 mm) + + + A2 (420 x 594 mm) + A2 (420 x 594 mm) + + + A3 (297 x 420 mm) + A3 (297 x 420 mm) + + + A5 (148 x 210 mm) + A5 (148 x 210 mm) + + + A6 (105 x 148 mm) + A6 (105 x 148 mm) + + + A7 (74 x 105 mm) + A7 (74 x 105 mm) + + + A8 (52 x 74 mm) + A8 (52 x 74 mm) + + + A9 (37 x 52 mm) + A9 (37 x 52 mm) + + + B0 (1000 x 1414 mm) + B0 (1000 x 1414 mm) + + + B1 (707 x 1000 mm) + B1 (707 x 1000 mm) + + + B2 (500 x 707 mm) + B2 (500 x 707 mm) + + + B3 (353 x 500 mm) + B3 (353 x 500 mm) + + + B4 (250 x 353 mm) + B4 (250 x 353 mm) + + + B6 (125 x 176 mm) + B6 (125 x 176 mm) + + + B7 (88 x 125 mm) + B7 (88 x 125 mm) + + + B8 (62 x 88 mm) + B8 (62 x 88 mm) + + + B9 (44 x 62 mm) + B9 (44 x 62 mm) + + + B10 (31 x 44 mm) + B10 (31 x 44 mm) + + + C5E (163 x 229 mm) + C5E (163 x 229 mm) + + + DLE (110 x 220 mm) + DLE (110 x 220 mm) + + + Folio (210 x 330 mm) + 對開 (210 x 330 mm) + + + Ledger (432 x 279 mm) + Ledger (432 x 279 mm) + + + Tabloid (279 x 432 mm) + Tabloid (279 x 432 mm) + + + US Common #10 Envelope (105 x 241 mm) + US 常用 10 號信封 (105x241 mm) + + + A4 (210 x 297 mm, 8.26 x 11.7 inches) + A4 (210 x 297 mm, 8.26 x 11.7 英吋) + + + B5 (176 x 250 mm, 6.93 x 9.84 inches) + B5 (176 x 250 mm, 6.93 x 9.84 英吋) + + + Executive (7.5 x 10 inches, 191 x 254 mm) + Executive (7.5 x 10 英吋, 191 x 254 mm) + + + Legal (8.5 x 14 inches, 216 x 356 mm) + Legal (8.5 x 14 英吋, 216 x 356 mm) + + + Letter (8.5 x 11 inches, 216 x 279 mm) + Letter (8.5 x 11 英吋, 216 x 279 mm) + + + Print selection + 列印選擇區 + + + Print + 列印 + + + Print To File ... + 列印到檔案... + + + File %1 is not writable. +Please choose a different file name. + 檔案 %1 無法寫入。 +請選擇其它檔名。 + + + %1 already exists. +Do you want to overwrite it? + %1 已存在。 +您要覆寫它嗎? + + + File exists + 檔案已存在 + + + <qt>Do you want to overwrite it?</qt> + <qt>您要覆寫它嗎?</qt> + + + %1 is a directory. +Please choose a different file name. + %1 是一個目錄。 +請選擇其他檔名。 + + + The 'From' value cannot be greater than the 'To' value. + 起始數值不能大於結束數值 + + + A0 + A0 + + + A1 + A1 + + + A2 + A2 + + + A3 + A3 + + + A4 + A4 + + + A5 + A5 + + + A6 + A6 + + + A7 + A7 + + + A8 + A8 + + + A9 + A9 + + + B0 + B0 + + + B1 + B1 + + + B2 + B2 + + + B3 + B3 + + + B4 + B4 + + + B5 + B5 + + + B6 + B6 + + + B7 + B7 + + + B8 + B8 + + + B9 + B9 + + + B10 + B10 + + + C5E + C5E + + + DLE + DLE + + + Executive + Executive + + + Folio + Folio + + + Ledger + Ledger + + + Legal + Legal + + + Letter + Letter + + + Tabloid + Tabloid + + + US Common #10 Envelope + US Common #10 Envelope + + + Custom + 自訂 + + + &Options >> + 操作 (&O) >> + + + &Options << + 操作 (&O) << + + + Print to File (PDF) + 列印到檔案(PDF) + + + Print to File (Postscript) + 列印到檔案(Postscript) + + + Local file + 本地端檔案 + + + Write %1 file + 寫入 %1 檔案 + + + &Print + 列印(&P) + + + + QPrintPreviewDialog + + %1% + %1% + + + Print Preview + 列印預覽 + + + Next page + 下一頁 + + + Previous page + 前一頁 + + + First page + 第一頁 + + + Last page + 最後一頁 + + + Fit width + 符合寬度 + + + Fit page + 符合頁面 + + + Zoom in + 放大 + + + Zoom out + 縮小 + + + Portrait + 縱向 + + + Landscape + 橫向 + + + Show single page + 顯示單一頁面 + + + Show facing pages + 顯示封面 + + + Show overview of all pages + 顯示所有頁面預覽 + + + Print + 列印 + + + Page setup + 列印設定 + + + Close + 關閉 + + + Export to PDF + 匯出到 PDF 檔 + + + Export to PostScript + 匯出到 PostScript 檔 + + + Page Setup + 頁面設定 + + + + QPrintPropertiesWidget + + Form + 表單 + + + Page + 頁面 + + + Advanced + 進階 + + + + QPrintSettingsOutput + + Form + 表單 + + + Copies + 份數 + + + Print range + 列印範圍 + + + Print all + 全部列印 + + + Pages from + 指定頁面:從 + + + to + + + + Selection + 選擇區 + + + Output Settings + 輸出設定 + + + Copies: + 份數: + + + Collate + 校對 + + + Reverse + 反向 + + + Options + 選項 + + + Color Mode + 顏色模式 + + + Color + 顏色 + + + Grayscale + 灰階 + + + Duplex Printing + 雙工列印 + + + None + + + + Long side + 長邊 + + + Short side + 短邊 + + + + QPrintWidget + + Form + 表單 + + + Printer + 印表機 + + + &Name: + 名稱(&N): + + + P&roperties + 屬性(&R) + + + Location: + 位置: + + + Preview + 預覽 + + + Type: + 型態: + + + Output &file: + 輸出檔案(&F): + + + ... + ... + + + + QProcess + + Could not open input redirection for reading + 無法開啟輸入導向以讀取 + + + Could not open output redirection for writing + 無法開啟輸出導向以寫入 + + + Resource error (fork failure): %1 + 資源錯誤(fork 失敗):%1 + + + Process operation timed out + 行程操作逾時 + + + Error reading from process + 從行程讀取時發生錯誤 + + + Error writing to process + 寫入行程時發生錯誤 + + + Process crashed + 行程已崩潰 + + + No program defined + 未定義程式 + + + Process failed to start: %1 + 處理序啟動失敗:%1 + + + + QProgressDialog + + Cancel + 取消 + + + + QPushButton + + Open + 開啟 + + + + QRadioButton + + Check + 勾選 + + + + QRegExp + + no error occurred + 沒有發生錯誤 + + + disabled feature used + 使用已關閉的功能 + + + bad char class syntax + 錯誤的字元類別語法 + + + bad lookahead syntax + 錯誤的 lookahead 語法 + + + bad repetition syntax + 錯誤的重覆語法 + + + invalid octal value + 不合法的八進位值 + + + missing left delim + 少了左方的區隔符 + + + unexpected end + 未預期遇到結尾 + + + met internal limit + 遇到內部限制 + + + invalid interval + 間隔無效 + + + invalid category + 類別無效 + + + + QSQLite2Driver + + Error opening database + 開啟資料庫時發生錯誤 + + + Unable to begin transaction + 無法開始事務 + + + Unable to commit transaction + 無法提交事務 + + + Unable to rollback transaction + 無法復原交易 + + + + QSQLite2Result + + Unable to fetch results + 無法抓取結果 + + + Unable to execute statement + 無法執行敘述 + + + + QSQLiteDriver + + Error opening database + 開啟資料庫發生錯誤 + + + Error closing database + 關閉資料庫發生錯誤 + + + Unable to begin transaction + 無法開始事務 + + + Unable to commit transaction + 無法提交事務 + + + Unable to rollback transaction + 無法反轉事務 + + + + QSQLiteResult + + Unable to fetch row + 無法抓取列 + + + Unable to execute statement + 無法執行敘述 + + + Unable to reset statement + 無法重置敘述 + + + Unable to bind parameters + 無法結合參數 + + + Parameter count mismatch + 參數數量不符合 + + + No query + 沒有查詢 + + + + QScriptBreakpointsModel + + ID + ID + + + Location + 位置 + + + Condition + 條件 + + + Ignore-count + 忽略次數 + + + Single-shot + 單次 + + + Hit-count + 叫用次數 + + + + QScriptBreakpointsWidget + + New + 新增 + + + Delete + 刪除 + + + + QScriptDebugger + + Go to Line + 跳至指定行 + + + Line: + 行: + + + Interrupt + 插斷 + + + Shift+F5 + Shift+F5 + + + Continue + 繼續 + + + F5 + F5 + + + Step Into + 逐步執行 + + + F11 + F11 + + + Step Over + 不進入函式 + + + F10 + F10 + + + Step Out + 跳出函式 + + + Shift+F11 + Shift+F11 + + + Run to Cursor + 執行至游標處 + + + Ctrl+F10 + Ctrl+F10 + + + Run to New Script + 執行至新指令碼 + + + Toggle Breakpoint + 切換中斷點 + + + F9 + F9 + + + Clear Debug Output + 清除偵錯輸出 + + + Clear Error Log + 清除錯誤記錄 + + + Clear Console + 清除主控台 + + + &Find in Script... + 在指令碼中尋找(&F)... + + + Ctrl+F + Ctrl+F + + + Find &Next + 尋找下一個(&N) + + + F3 + F3 + + + Find &Previous + 尋找上一個(&P) + + + Shift+F3 + Shift+F3 + + + Ctrl+G + Ctrl+G + + + Debug + 偵錯 + + + + QScriptDebuggerCodeFinderWidget + + Close + 關閉 + + + Previous + 上一個 + + + Next + 下一個 + + + Case Sensitive + 區分大小寫 + + + Whole words + 全字 + + + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;Search wrapped + <img src=":/qt/scripttools/debugging/images/wrap.png">&nbsp;搜尋已繞回 + + + + QScriptDebuggerLocalsModel + + Name + 名稱 + + + Value + + + + + QScriptDebuggerStackModel + + Level + 層級 + + + Name + 名稱 + + + Location + 位置 + + + + QScriptEdit + + Toggle Breakpoint + 切換中斷點 + + + Disable Breakpoint + 停用中斷點 + + + Enable Breakpoint + 啟用中斷點 + + + Breakpoint Condition: + 中斷點條件: + + + + QScriptEngineDebugger + + Loaded Scripts + 載入的指令碼 + + + Breakpoints + 中斷點 + + + Stack + 堆疊 + + + Locals + 區域變數 + + + Console + 主控台 + + + Debug Output + 偵錯輸出 + + + Error Log + 錯誤記錄 + + + Search + 搜尋 + + + View + 檢視 + + + Qt Script Debugger + Qt指令碼偵錯程式 + + + + QScriptNewBreakpointWidget + + Close + 關閉 + + + + QScrollBar + + Scroll here + 在此捲軸 + + + Left edge + 左邊緣 + + + Top + 頂端 + + + Right edge + 右邊緣 + + + Bottom + 底端 + + + Page left + 頁面左方 + + + Page up + 頁面上方 + + + Page right + 頁面右方 + + + Page down + 頁面下方 + + + Scroll left + 往左捲軸 + + + Scroll up + 往上捲軸 + + + Scroll right + 往右捲軸 + + + Scroll down + 往下捲軸 + + + Line up + 對上排列 + + + Position + 位置 + + + Line down + 對下排列 + + + + QSharedMemory + + %1: create size is less then 0 + %1:建立大小小於 0 + + + %1: unable to lock + %1:無法鎖定 + + + %1: unable to unlock + %1:無法解除鎖定 + + + %1: permission denied + %1:存取被拒 + + + %1: already exists + %1:已存在 + + + %1: doesn't exists + %1:不存在 + + + %1: out of resources + %1:資源不足 + + + %1: unknown error %2 + %1:未知的錯誤 %2 + + + %1: key is empty + %1:鍵值是空的 + + + %1: ftok failed + %1:ftok 失敗 + + + %1: unable to make key + %1:無法產生鍵值 + + + %1: doesn't exist + %1:不存在 + + + %1: UNIX key file doesn't exist + %1:UNIX金鑰檔不存在 + + + %1: system-imposed size restrictions + %1:系統大小限制 + + + %1: not attached + %1:未附加 + + + %1: invalid size + %1:不合法的大小 + + + %1: key error + %1:鍵值錯誤 + + + %1: size query failed + %1:大小查詢失敗 + + + %1: unable to set key on lock + %1:無法設定鍵值 + + + + QShortcut + + Space + 空白鍵 + + + Esc + Esc + + + Tab + Tab + + + Backtab + Backtab + + + Backspace + Backspace + + + Return + Return + + + Enter + Enter + + + Ins + Ins + + + Del + Del + + + Pause + Pause + + + Print + Print + + + SysReq + SysReq + + + Home + Home + + + End + End + + + Left + 左鍵 + + + Up + 上鍵 + + + Right + 右鍵 + + + Down + 下鍵 + + + PgUp + PgUp + + + PgDown + PgDown + + + CapsLock + 大寫鎖定 + + + NumLock + 數字鎖定 + + + ScrollLock + 捲軸鎖定 + + + Menu + 選單 + + + Help + 說明 + + + Back + 返回 + + + Forward + 往前 + + + Stop + 停止 + + + Refresh + 刷新 + + + Volume Down + 音量降低 + + + Volume Mute + 靜音 + + + Volume Up + 音量提高 + + + Bass Boost + 重低音 + + + Bass Up + Bass Up + + + Bass Down + Bass Down + + + Treble Up + Treble Up + + + Treble Down + Treble Down + + + Media Play + 媒體播放 + + + Media Stop + 媒體停止 + + + Media Previous + 媒體前一首 + + + Media Next + 媒體下一首 + + + Media Record + 媒體錄音 + + + Favorites + 我的最愛 + + + Search + 搜尋 + + + Standby + 待命 + + + Open URL + 開啟網址 + + + Launch Mail + 啟動郵件程式 + + + Launch Media + 啟動媒體程式 + + + Launch (0) + 啟動(0) + + + Launch (1) + 啟動(1) + + + Launch (2) + 啟動(2) + + + Launch (3) + 啟動(3) + + + Launch (4) + 啟動(4) + + + Launch (5) + 啟動(5) + + + Launch (6) + 啟動(6) + + + Launch (7) + 啟動(7) + + + Launch (8) + 啟動(8) + + + Launch (9) + 啟動(9) + + + Launch (A) + 啟動(A) + + + Launch (B) + 啟動(B) + + + Launch (C) + 啟動(C) + + + Launch (D) + 啟動(D) + + + Launch (E) + 啟動(E) + + + Launch (F) + 啟動(F) + + + Monitor Brightness Up + 螢幕亮度提高 + + + Monitor Brightness Down + 螢幕亮度降低 + + + Keyboard Light On/Off + 鍵盤燈光開/關 + + + Keyboard Brightness Up + 鍵盤亮度提高 + + + Keyboard Brightness Down + 鍵盤亮度降低 + + + Power Off + 關閉電源 + + + Wake Up + 喚醒 + + + Eject + 退出 + + + Screensaver + 螢幕保護 + + + WWW + WWW + + + Sleep + 睡眠 + + + LightBulb + 燈泡 + + + Shop + 商店 + + + History + 記錄 + + + Add Favorite + 加入我的最愛 + + + Hot Links + 熱門連結 + + + Adjust Brightness + 調整亮度 + + + Finance + 財務 + + + Community + 社群 + + + Audio Rewind + 音訊倒轉 + + + Back Forward + 上一個下一個 + + + Application Left + 應用程式靠左 + + + Application Right + 應用程式靠右 + + + Book + 書籍 + + + CD + CD + + + Calculator + 計算機 + + + Clear + 清除 + + + Clear Grab + 清除抓取內容 + + + Close + 關閉 + + + Copy + 複製 + + + Cut + 剪下 + + + Display + 顯示 + + + DOS + DOS + + + Documents + 文件 + + + Spreadsheet + 試算表 + + + Browser + 瀏覽器 + + + Game + 遊戲 + + + Go + + + + iTouch + iTouch + + + Logoff + 登出 + + + Market + 市場 + + + Meeting + 會議 + + + Keyboard Menu + 鍵盤功能表 + + + Menu PB + 功能表PB + + + My Sites + 我的網站 + + + News + 新聞 + + + Home Office + Home Office + + + Option + 選項 + + + Paste + 貼上 + + + Phone + 手機 + + + Reply + 回覆 + + + Reload + 重新載入 + + + Rotate Windows + 旋轉視窗 + + + Rotation PB + 循環PB + + + Rotation KB + 循環KB + + + Save + 儲存 + + + Send + 傳送 + + + Spellchecker + 拼字檢查 + + + Split Screen + 分割畫面 + + + Support + 支援 + + + Task Panel + 工作面板 + + + Terminal + 終端機 + + + Tools + 工具 + + + Travel + 旅行 + + + Video + 視訊 + + + Word Processor + 文字處理器 + + + XFer + XFer + + + Zoom In + 放大 + + + Zoom Out + 縮小 + + + Away + 離開 + + + Messenger + Messenger + + + WebCam + 網路攝影機 + + + Mail Forward + 郵件轉寄 + + + Pictures + 圖片 + + + Music + 音樂 + + + Battery + 電池 + + + Bluetooth + 藍牙 + + + Wireless + 無線 + + + Ultra Wide Band + 超寬頻 + + + Audio Forward + 音訊轉送 + + + Audio Repeat + 音訊重複 + + + Audio Random Play + 音訊機播放 + + + Subtitle + 副標題 + + + Audio Cycle Track + 音訊循環軌跡 + + + Time + 時間 + + + View + 檢視 + + + Top Menu + 上層功能表 + + + Suspend + 暫止 + + + Hibernate + 休眠 + + + Print Screen + 列印螢幕 + + + Page Up + 往上一頁 + + + Page Down + 往下一頁 + + + Caps Lock + 大寫鎖定 + + + Num Lock + 數字鎖定 + + + Number Lock + 數字鎖定 + + + Scroll Lock + 捲軸鎖定 + + + Insert + 插入 + + + Delete + 刪除 + + + Escape + Escape + + + System Request + 系統要求 SysRq + + + Select + 選擇 + + + Yes + + + + No + + + + Context1 + 內文1 + + + Context2 + 內文2 + + + Context3 + 內文3 + + + Context4 + 內文4 + + + Call + 呼叫 + + + Hangup + 掛斷 + + + Flip + 反轉 + + + Ctrl + Ctrl + + + Shift + Shift + + + Alt + Alt + + + Meta + Meta + + + + + + + + + F%1 + F%1 + + + Home Page + 首頁 + + + + QSlider + + Page left + 頁面左方 + + + Page up + 頁面上方 + + + Position + 位置 + + + Page right + 頁面右方 + + + Page down + 頁面下方 + + + + QSocks5SocketEngine + + Connection to proxy refused + 代理伺服器連線被拒 + + + Connection to proxy closed prematurely + 代理伺服器連線已不正常關閉 + + + Proxy host not found + 找不到代理伺服器 + + + Connection to proxy timed out + 代理伺服器連線逾時 + + + Proxy authentication failed + 代理伺服器認證失敗 + + + Proxy authentication failed: %1 + 代理伺服器認證失敗:%1 + + + SOCKS version 5 protocol error + SOCKS 5 的協定錯誤 + + + General SOCKSv5 server failure + 一般的 SOCKSv5 伺服器錯誤 + + + Connection not allowed by SOCKSv5 server + 連線未被 SOCKSv5 伺服器允許 + + + TTL expired + TTL 逾時 + + + SOCKSv5 command not supported + SOCKSv5 指令未被支援 + + + Address type not supported + 位址型態未被支援 + + + Unknown SOCKSv5 proxy error code 0x%1 + 未知的 SOCKSv5 代理伺服器錯誤代碼 0x%1 + + + Network operation timed out + 網路操作逾時 + + + + QSoftKeyManager + + Ok + 確定 + + + Select + 選取 + + + Done + 完成 + + + Options + 選項 + + + Cancel + 取消 + + + Exit + 退出 + + + + QSpinBox + + More + 更多 + + + Less + 較少 + + + + QSql + + Delete + 刪除 + + + Delete this record? + 要刪除這筆紀錄嗎? + + + Yes + + + + No + + + + Insert + 插入 + + + Update + 更新 + + + Save edits? + 要儲存編輯過的內容嗎? + + + Cancel + 取消 + + + Confirm + 確認 + + + Cancel your edits? + 要取消編輯嗎? + + + + QSslSocket + + Unable to write data: %1 + 無法寫入資料:%1 + + + Unable to decrypt data: %1 + 無法解密資料:%1 + + + Error while reading: %1 + 讀取時發生錯誤:%1 + + + Error during SSL handshake: %1 + SSL 同步時發生錯誤:%1 + + + Error creating SSL context (%1) + 建立 SSL 內文時發生錯誤(%1) + + + Invalid or empty cipher list (%1) + 不合法或空白的加密清單(%1) + + + Private key does not certify public key, %1 + 私密金鑰無法認證公開金鑰,%1 + + + Error creating SSL session, %1 + 建立 SSL 工作階段時發生錯誤:%1 + + + Error creating SSL session: %1 + 建立 SSL 工作階段時發生錯誤:%1 + + + Cannot provide a certificate with no key, %1 + 沒有金鑰無法提供憑證:%1 + + + Error loading local certificate, %1 + 載入本地憑證時發生錯誤:%1 + + + Error loading private key, %1 + 載入私鑰時發生錯誤:%1 + + + No error + 沒有錯誤 + + + The issuer certificate could not be found + 找不到發行者憑證 + + + The certificate signature could not be decrypted + 無法解密憑證簽名 + + + The public key in the certificate could not be read + 憑證中的公開金鑰無法讀取 + + + The signature of the certificate is invalid + 憑證的簽名無效 + + + The certificate is not yet valid + 憑證尚未生效 + + + The certificate has expired + 憑證已逾期 + + + The certificate's notBefore field contains an invalid time + 憑證的notBefore欄位包含無效的時間 + + + The certificate's notAfter field contains an invalid time + 憑證的notAfter欄位包含無效的時間 + + + The certificate is self-signed, and untrusted + 憑證是自我簽署的,而且不受信任 + + + The root certificate of the certificate chain is self-signed, and untrusted + 憑證鏈的根憑證是自我簽署的,而且不受信任 + + + The issuer certificate of a locally looked up certificate could not be found + 找不到本機查詢憑證的發行者憑證 + + + No certificates could be verified + 沒有可確認的憑證 + + + One of the CA certificates is invalid + CA憑證的其中之一無效 + + + The basicConstraints path length parameter has been exceeded + basicConstraints路徑長度參數已超出限制 + + + The supplied certificate is unsuitable for this purpose + 提供的憑證不適用於此目的 + + + The root CA certificate is not trusted for this purpose + 根CA憑證在此目的中不受信任 + + + The root CA certificate is marked to reject the specified purpose + 根CA憑證已註記拒絕該特定目的 + + + The current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate + 目前候選發行者的憑證已遭拒絕,因為其主旨名稱和目前憑證的發行者名稱不符 + + + The current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate + 目前候選發行者的憑證已遭拒絕,因為其發行者名稱及提出的序號和目前憑證的授權單位金鑰識別元不符 + + + The peer did not present any certificate + 對等節點未提出任何憑證 + + + The host name did not match any of the valid hosts for this certificate + 主機名稱不符合此憑證任何有效的主機 + + + Unknown error + 不明的錯誤 + + + + QStateMachine + + Missing initial state in compound state '%1' + 在複合狀態"%1"中遺失初始狀態 + + + Missing default state in history state '%1' + 在記錄狀態"%1"中遺失預設狀態 + + + No common ancestor for targets and source of transition from state '%1' + 從狀態"%1"的轉換中,目標和來源沒有共同的上階 + + + Unknown error + 不明的錯誤 + + + + QSystemSemaphore + + %1: does not exist + %1:不存在 + + + %1: out of resources + %1:資源不足 + + + %1: permission denied + %1:存取被拒 + + + %1: already exists + %1:已存在 + + + %1: unknown error %2 + %1:未知的錯誤 %2 + + + + QTDSDriver + + Unable to open connection + 無法開啟連線 + + + Unable to use database + 無法使用資料庫 + + + + QTabBar + + Scroll Left + 往左捲軸 + + + Scroll Right + 往右捲軸 + + + + QTcpServer + + Operation on socket is not supported + Socket 的操作未被支援 + + + + QTextControl + + &Undo + 復原(&U) + + + &Redo + 重做(&R) + + + Cu&t + 剪下(&T) + + + &Copy + 複製(&C) + + + Copy &Link Location + 複製連結位址(&L) + + + &Paste + 貼上(&P) + + + Delete + 刪除 + + + Select All + 全部選擇 + + + + QToolButton + + Press + 按下 + + + Open + 開啟 + + + + QUdpSocket + + This platform does not support IPv6 + 此平台不支援 IPv6 + + + + QUndoGroup + + Undo + 復原 + + + Redo + 重做 + + + + QUndoModel + + <empty> + <空白> + + + + QUndoStack + + Undo + 復原 + + + Redo + 重做 + + + + QUnicodeControlCharacterMenu + + LRM Left-to-right mark + LRM 左到右標記 + + + RLM Right-to-left mark + RLM 右到左標記 + + + ZWJ Zero width joiner + ZWJ 零寬度連接器 + + + ZWNJ Zero width non-joiner + ZWNJ 零寬度非連接器 + + + ZWSP Zero width space + ZWSP 零寬度空白 + + + LRE Start of left-to-right embedding + LRE 左到右嵌入起點 + + + RLE Start of right-to-left embedding + RLE 右到左嵌入起點 + + + LRO Start of left-to-right override + LRO 左到右覆寫起點 + + + RLO Start of right-to-left override + RLO 右到左覆寫起點 + + + PDF Pop directional formatting + PDF 彈出方向格式 + + + Insert Unicode control character + 插入萬國碼控制字元 + + + + QWebFrame + + Request cancelled + 請求已取消 + + + Request blocked + 請求已被阻擋 + + + Cannot show URL + 無法顯示網址 + + + Frame load interrupted by policy change + 框架載入因為原則變更而中斷 + + + Cannot show mimetype + 無法顯示 MIME 型態 + + + File does not exist + 檔案不存在 + + + + QWebPage + + Submit + default label for Submit buttons in forms on web pages + + + + Submit + Submit (input element) alt text for <input> elements with no alt, title, or value + + + + Reset + default label for Reset buttons in forms on web pages + 重置 + + + Choose File + title for file button used in HTML forms + 選擇檔案 + + + No file selected + text to display in file button used in HTML forms when no file is selected + 未選取任何檔案 + + + Open in New Window + Open in New Window context menu item + 在新視窗開啟 + + + Save Link... + Download Linked File context menu item + 儲存連結... + + + Copy Link + Copy Link context menu item + 複製連結 + + + Open Image + Open Image in New Window context menu item + 開啟影像 + + + Save Image + Download Image context menu item + 儲存影像 + + + Copy Image + Copy Link context menu item + 複製影像 + + + Open Frame + Open Frame in New Window context menu item + 開啟框架 + + + Copy + Copy context menu item + 複製 + + + Go Back + Back context menu item + 往回 + + + Go Forward + Forward context menu item + 往前 + + + Stop + Stop context menu item + + + + Reload + Reload context menu item + 重新載入 + + + Cut + Cut context menu item + 剪下 + + + Paste + Paste context menu item + 貼上 + + + No Guesses Found + No Guesses Found context menu item + 找不到可能的內容 + + + Ignore + Ignore Spelling context menu item + 忽略 + + + Add To Dictionary + Learn Spelling context menu item + 新增到字典 + + + Search The Web + Search The Web context menu item + 搜尋站台 + + + Look Up In Dictionary + Look Up in Dictionary context menu item + 在字典裡搜尋 + + + Open Link + Open Link context menu item + 開啟連結 + + + Ignore + Ignore Grammar context menu item + 忽略 + + + Spelling + Spelling and Grammar context sub-menu item + + + + Show Spelling and Grammar + menu item title + + + + Hide Spelling and Grammar + menu item title + 隱藏拼字與文法 + + + Check Spelling + Check spelling context menu item + 檢查拼字 + + + Check Spelling While Typing + Check spelling while typing context menu item + 打字時立即檢查拼字 + + + Check Grammar With Spelling + Check grammar with spelling context menu item + 檢查拼字與文法 + + + Fonts + Font context sub-menu item + 字型 + + + Bold + Bold context menu item + 粗體 + + + Italic + Italic context menu item + 斜體 + + + Underline + Underline context menu item + + + + Outline + Outline context menu item + 外框線 + + + Direction + Writing direction context sub-menu item + 方向 + + + Text Direction + Text direction context sub-menu item + + + + Default + Default writing direction context menu item + 預設 + + + Left to Right + Left to Right context menu item + 從左至右 + + + Right to Left + Right to Left context menu item + 從右至左 + + + Loading... + Media controller status message when the media is loading + 載入中... + + + Live Broadcast + Media controller status message when watching a live broadcast + 即時廣播 + + + Audio Element + Media controller element + 音訊元素 + + + Video Element + Media controller element + 視訊元素 + + + Mute Button + Media controller element + 靜音按鈕 + + + Unmute Button + Media controller element + 取消靜音按鈕 + + + Play Button + Media controller element + 播放按鈕 + + + Pause Button + Media controller element + 暫停按鈕 + + + Slider + Media controller element + 滑桿 + + + Slider Thumb + Media controller element + 滑桿縮圖 + + + Rewind Button + Media controller element + 倒轉按鈕 + + + Return to Real-time Button + Media controller element + 回復成即時按鈕 + + + Elapsed Time + Media controller element + 經過時間 + + + Remaining Time + Media controller element + 剩餘時間 + + + Status Display + Media controller element + 狀態顯示 + + + Fullscreen Button + Media controller element + 全螢幕按鈕 + + + Seek Forward Button + Media controller element + 往前搜尋按鈕 + + + Seek Back Button + Media controller element + 往回搜尋按鈕 + + + Audio element playback controls and status display + Media controller element + 音訊元素播放控制和狀態顯示 + + + Video element playback controls and status display + Media controller element + 視訊元素播放控制和狀態顯示 + + + Mute audio tracks + Media controller element + 音軌靜音 + + + Unmute audio tracks + Media controller element + 音軌取消靜音 + + + Begin playback + Media controller element + 開始播放 + + + Pause playback + Media controller element + 暫停播放 + + + Movie time scrubber + Media controller element + 影片時間清除器 + + + Movie time scrubber thumb + Media controller element + 影片時間清除器縮圖 + + + Rewind movie + Media controller element + 倒轉影片 + + + Return streaming movie to real-time + Media controller element + 串流影片回復成即時播放 + + + Current movie time + Media controller element + 目前的影片時間 + + + Remaining movie time + Media controller element + 剩餘的影片時間 + + + Current movie status + Media controller element + 目前的影片狀態 + + + Play movie in full-screen mode + Media controller element + 以全螢幕模式播放影片 + + + Seek quickly back + Media controller element + 快速往回搜尋 + + + Seek quickly forward + Media controller element + 快速往前搜尋 + + + Indefinite time + Media time description + 不限定時間 + + + %1 days %2 hours %3 minutes %4 seconds + Media time description + %1天%2小時%3分鐘%4秒鐘 + + + %1 hours %2 minutes %3 seconds + Media time description + %1小時%2分鐘%3秒鐘 + + + %1 minutes %2 seconds + Media time description + %1分鐘%2秒鐘 + + + %1 seconds + Media time description + %1秒鐘 + + + Inspect + Inspect Element context menu item + 查驗 + + + No recent searches + Label for only item in menu that appears when clicking on the search field image, when no searches have been performed + 沒有最近的搜尋 + + + Recent searches + label for first item in the menu that appears when clicking on the search field image, used as embedded menu title + 最近的搜尋 + + + Clear recent searches + menu item in Recent Searches menu that empties menu's contents + 清除最近的搜尋 + + + Unknown + Unknown filesize FTP directory listing item + + + + Web Inspector - %2 + + + + %1 (%2x%3 pixels) + Title string for images + %1(%2x%3 像素) + + + Bad HTTP request + 不良的 HTTP 請求 + + + This is a searchable index. Enter search keywords: + text that appears at the start of nearly-obsolete web pages in the form of a 'searchable index' + + + + Scroll here + 在此捲軸 + + + Left edge + 左邊緣 + + + Top + + + + Right edge + 右邊緣 + + + Bottom + 底端 + + + Page left + 頁面左方 + + + Page up + 頁面上方 + + + Page right + 頁面右方 + + + Page down + 頁面下方 + + + Scroll left + 往左捲軸 + + + Scroll up + 往上捲軸 + + + Scroll right + 往右捲軸 + + + Scroll down + 往下捲軸 + + + %n file(s) + number of chosen file + + %n 個檔案 + + + + JavaScript Alert - %1 + JavaScript 警告 ─ %1 + + + JavaScript Confirm - %1 + JavaScript 確認 ─ %1 + + + JavaScript Prompt - %1 + JavaScript 提示 ─ %1 + + + JavaScript Problem - %1 + JavaScript問題 - %1 + + + The script on this page appears to have a problem. Do you want to stop the script? + 此頁面上的指令碼似乎有問題。是否要停止指令碼? + + + Move the cursor to the next character + 移動游標到下一個字元 + + + Move the cursor to the previous character + 移動游標到前一個字元 + + + Move the cursor to the next word + 移動游標到下一個單字 + + + Move the cursor to the previous word + 移動游標到前一個單字 + + + Move the cursor to the next line + 移動游標到下一行 + + + Move the cursor to the previous line + 移動游標到前一行 + + + Move the cursor to the start of the line + 移動游標到這一行的起頭 + + + Move the cursor to the end of the line + 移動游標到這一行的結尾 + + + Move the cursor to the start of the block + 移動游標到這一個區塊的起頭 + + + Move the cursor to the end of the block + 移動游標到這一個區塊的結尾 + + + Move the cursor to the start of the document + 移動游標到這一個文件的起頭 + + + Move the cursor to the end of the document + 移動游標到這一個文件的結尾 + + + Select all + 全選 + + + Select to the next character + + + + Select to the previous character + + + + Select to the next word + + + + Select to the previous word + + + + Select to the next line + + + + Select to the previous line + + + + Select to the start of the line + + + + Select to the end of the line + + + + Select to the start of the block + + + + Select to the end of the block + + + + Select to the start of the document + + + + Select to the end of the document + + + + Delete to the start of the word + 刪除到此單字的起頭 + + + Delete to the end of the word + 刪除到此單字的結尾 + + + Insert a new paragraph + 插入新段落 + + + Insert a new line + 插入新行 + + + Paste and Match Style + 貼上並符合樣式 + + + Remove formatting + 移除格式設定 + + + Strikethrough + 刪除線 + + + Subscript + 下標 + + + Superscript + 上標 + + + Insert Bulleted List + 插入項目符號清單 + + + Insert Numbered List + 插入編號清單 + + + Indent + 縮排 + + + Outdent + 凸排 + + + Center + 置中 + + + Justify + 左右對齊 + + + Align Left + 靠左對齊 + + + Align Right + 靠右對齊 + + + + QWhatsThisAction + + What's This? + + + + + QWidget + + * + + + + + QWizard + + Cancel + + + + Help + + + + < &Back + + + + &Finish + + + + &Help + + + + Go Back + + + + Continue + + + + Commit + + + + Done + + + + &Next + + + + &Next > + + + + + QWorkspace + + &Restore + + + + &Move + + + + &Size + + + + Mi&nimize + + + + Ma&ximize + + + + &Close + + + + Stay on &Top + + + + Minimize + + + + Restore Down + + + + Close + + + + Sh&ade + + + + %1 - [%2] + + + + &Unshade + + + + + QXml + + no error occurred + + + + error triggered by consumer + + + + unexpected end of file + + + + more than one document type definition + + + + error occurred while parsing element + + + + tag mismatch + + + + error occurred while parsing content + + + + unexpected character + + + + invalid name for processing instruction + + + + version expected while reading the XML declaration + + + + wrong value for standalone declaration + + + + error occurred while parsing document type definition + + + + letter is expected + + + + error occurred while parsing comment + + + + error occurred while parsing reference + + + + internal general entity reference not allowed in DTD + + + + external parsed general entity reference not allowed in attribute value + + + + external parsed general entity reference not allowed in DTD + + + + unparsed entity reference in wrong context + + + + recursive entities + + + + error in the text declaration of an external entity + + + + encoding declaration or standalone declaration expected while reading the XML declaration + + + + standalone declaration expected while reading the XML declaration + + + + + QXmlPatternistCLI + + Warning in %1, at line %2, column %3: %4 + %1中的警告,位於行%2,欄%3:%4 + + + Warning in %1: %2 + %1中的警告:%2 + + + Unknown location + 不明的位置 + + + Error %1 in %2, at line %3, column %4: %5 + 在%2發生%1錯誤,位於行%3,欄%4:%5 + + + Error %1 in %2: %3 + 在%2發生%1錯誤:%3 + + + + QXmlStream + + Extra content at end of document. + + + + Invalid entity value. + + + + Invalid XML character. + + + + Sequence ']]>' not allowed in content. + + + + Namespace prefix '%1' not declared + + + + Attribute redefined. + + + + Unexpected character '%1' in public id literal. + + + + Invalid XML version string. + + + + Unsupported XML version. + + + + %1 is an invalid encoding name. + + + + Encoding %1 is unsupported + + + + Standalone accepts only yes or no. + + + + Invalid attribute in XML declaration. + + + + Premature end of document. + + + + Invalid document. + + + + Expected + + + + , but got ' + + + + Unexpected ' + + + + Expected character data. + + + + Recursive entity detected. + + + + Start tag expected. + + + + XML declaration not at start of document. + + + + NDATA in parameter entity declaration. + + + + %1 is an invalid processing instruction name. + + + + Invalid processing instruction name. + + + + Illegal namespace declaration. + + + + Invalid XML name. + + + + Opening and ending tag mismatch. + + + + Reference to unparsed entity '%1'. + + + + Entity '%1' not declared. + + + + Reference to external entity '%1' in attribute value. + + + + Invalid character reference. + + + + Encountered incorrectly encoded content. + + + + The standalone pseudo attribute must appear after the encoding. + + + + %1 is an invalid PUBLIC identifier. + + + + + QtXmlPatterns + + At least one component must be present. + 必須表達至少一個組件。 + + + %1 is not a valid value of type %2. + %1 不是合法的 %2 型態的值。 + + + When casting to %1 from %2, the source value cannot be %3. + 從 %2 轉換型態為 %1 的時候,來源數值不能是 %3。 + + + Effective Boolean Value cannot be calculated for a sequence containing two or more atomic values. + 實際布林值(Effective Boolean)無法用在兩個或兩個以上的原數值(atomic value)的計算。 + + + The data of a processing instruction cannot contain the string %1 + 處理指令的資料不能包含字串 %1 + + + %1 is an invalid %2 + %1 是不合法的 %2 + + + %1 is not a valid XML 1.0 character. + %1 不是合法的 XML 1.0 字元。 + + + %1 was called. + %1 已被呼叫。 + + + In the replacement string, %1 must be followed by at least one digit when not escaped. + 在取代字串中,在未脫逸的情形下 %1 必須至少跟著一位數字。 + + + In the replacement string, %1 can only be used to escape itself or %2, not %3 + 在取代字串中,%1 只能用於自身或 %2 的脫逸,而非 %3。 + + + %1 matches newline characters + %1 符合了換行字元 + + + Matches are case insensitive + 比對為區分大小寫 + + + %1 is an invalid regular expression pattern: %2 + %1 是不合法的正規表示式樣式:%2 + + + It will not be possible to retrieve %1. + 無法取得 %1。 + + + The default collection is undefined + 預設的收藏未定義 + + + %1 cannot be retrieved + %1 無法取得 + + + The item %1 did not match the required type %2. + 項目 %1 未符合需要的型態 %2。 + + + %1 is an unknown schema type. + %1 是未知的機制型態。 + + + A template with name %1 has already been declared. + + + + Only one %1 declaration can occur in the query prolog. + 只有一個 %1 宣告可以在查詢中。 + + + The initialization of variable %1 depends on itself + 變數 %1 的初始化與自身相依。 + + + The variable %1 is unused + 變數 %1 未使用 + + + Version %1 is not supported. The supported XQuery version is 1.0. + 版本 %1 未支援。支援的 XQuery 版本為 1.0。 + + + No function with signature %1 is available + 沒有簽章為 %1 的函式可使用 + + + It is not possible to redeclare prefix %1. + 無法重宣告前置字串 %1。 + + + Prefix %1 is already declared in the prolog. + 前置字串 %1 已在 prolog 中宣告。 + + + The name of an option must have a prefix. There is no default namespace for options. + 選項名稱必須有前置字串。沒有選項的預設命名空間。 + + + The Schema Import feature is not supported, and therefore %1 declarations cannot occur. + 機制匯入功能未支援,因此有 %1 個宣告無法達成。 + + + The target namespace of a %1 cannot be empty. + %1 的目標命名空間不能是空的。 + + + The module import feature is not supported + 模組匯入功能未支援。 + + + The namespace of a user defined function in a library module must be equivalent to the module namespace. In other words, it should be %1 instead of %2 + 在函式模組中的使用者定義函式的命名空間必須與模組的命名空間相同。也就是,應該為 %1 而不是 %2。 + + + A function already exists with the signature %1. + 已經有簽章為 %1 的函式存在。 + + + No external functions are supported. All supported functions can be used directly, without first declaring them as external + 未支援外部函式。所有支援的含式可以直接使用而不需要先宣告為外部函式。 + + + The %1-axis is unsupported in XQuery + XQuery 中未支援 %1 軸 + + + The namespace URI cannot be the empty string when binding to a prefix, %1. + 要與前置字串 %1 結合的命名空間網址不能是空字串。 + + + %1 is an invalid namespace URI. + %1 是不合法的命名空間網址。 + + + It is not possible to bind to the prefix %1 + 無法與前置字串 %1 結合。 + + + Two namespace declaration attributes have the same name: %1. + 有兩個命名空間宣告的屬性有相同的名稱:%1 + + + The namespace URI must be a constant and cannot use enclosed expressions. + 命名空間網址必須是常數,並且不能使用封閉敘述。 + + + %1 is not in the in-scope attribute declarations. Note that the schema import feature is not supported. + %1 不是範圍內屬性宣告。注意機制匯入功能未支援。 + + + empty + 空白 + + + zero or one + 0 或 1 個 + + + exactly one + 剛好一個 + + + one or more + 一個以上 + + + zero or more + 0 個以上 + + + The focus is undefined. + 焦點未定義。 + + + An attribute by name %1 has already been created. + 名為 %1 的屬性已被建立。 + + + Network timeout. + 網路逾時。 + + + Element %1 can't be serialized because it appears outside the document element. + 元素 %1 無法序列化,因為似乎是在文件元素之外。 + + + Year %1 is invalid because it begins with %2. + 年份 %1 不合法,因為是從 %2 開始的。 + + + Day %1 is outside the range %2..%3. + 日期 %1 已超出 %2 到 %3 的範圍。 + + + Month %1 is outside the range %2..%3. + 月份 %1 已超出 %2 到 %3 的範圍。 + + + Overflow: Can't represent date %1. + 溢位:無法表示日期 %1。 + + + Day %1 is invalid for month %2. + 月份 %2 中沒有日期 %1。 + + + Time 24:%1:%2.%3 is invalid. Hour is 24, but minutes, seconds, and milliseconds are not all 0; + 時間 24:%1:%2.%3 不合法。小時為 24 則分、秒與毫秒都必須是 0。 + + + + Time %1:%2:%3.%4 is invalid. + 時間 %1:%2:%3.%4 不合法。 + + + Overflow: Date can't be represented. + 溢位:無法表示日期。 + + + At least one time component must appear after the %1-delimiter. + 在分隔符 %1 後必須至少有一個時間組件。 + + + Dividing a value of type %1 by %2 (not-a-number) is not allowed. + 將型態 %1 除以 %2(非數值)是不允許的。 + + + Dividing a value of type %1 by %2 or %3 (plus or minus zero) is not allowed. + 將型態 %1 除以 %2 或 %3(正或負零)是不允許的。 + + + Multiplication of a value of type %1 by %2 or %3 (plus or minus infinity) is not allowed. + 將型態 %1 乘以 %2 或 %3(正或負無限大)是不允許的。 + + + A value of type %1 cannot have an Effective Boolean Value. + 型態 %1 不能有實際布林值。 + + + Value %1 of type %2 exceeds maximum (%3). + 型態 %2 的數值 %1 已超過最大值(%3)。 + + + Value %1 of type %2 is below minimum (%3). + 型態 %2 的數值 %1 已低過最小值(%3)。 + + + A value of type %1 must contain an even number of digits. The value %2 does not. + 型態 %1 的值必須包含偶數個數字。數值 %2 未符合此條件。 + + + %1 is not valid as a value of type %2. + %1 不是合法的 %2 型態的值。 + + + Operator %1 cannot be used on type %2. + 操作元 %1 不能用於型態 %2。 + + + Operator %1 cannot be used on atomic values of type %2 and %3. + 操作元 %1 不能用於型態 %2 與 %3 的原數值。 + + + The namespace URI in the name for a computed attribute cannot be %1. + 在已計算屬性的名稱的命名空間網址不能是 %1。 + + + The name for a computed attribute cannot have the namespace URI %1 with the local name %2. + 在已計算屬性的名稱不能同時有命名空間網址 %1 與本地端名稱 %2。 + + + Type error in cast, expected %1, received %2. + 轉換型態錯誤,應為 %1 但接收到 %2。 + + + When casting to %1 or types derived from it, the source value must be of the same type, or it must be a string literal. Type %2 is not allowed. + 轉換為型態 %1 或其衍生型態時,來源數值必須是相同型態,或者是字串。型態 %2 是不被允許的。 + + + A comment cannot contain %1 + 註解不能包含 %1 + + + A comment cannot end with a %1. + 註解不能以 %1 做結尾 + + + An attribute node cannot be a child of a document node. Therefore, the attribute %1 is out of place. + 屬性點不能做為文件點的子節點。因此,屬性 %1 的位置不合適。 + + + A library module cannot be evaluated directly. It must be imported from a main module. + 不能直接計算函式模組。必須要從主模組匯入。 + + + No template by name %1 exists. + 沒有名為 %1 的樣本存在。 + + + A value of type %1 cannot be a predicate. A predicate must have either a numeric type or an Effective Boolean Value type. + 型態 %1 的值不能是謂詞(predicate)。謂詞必須是數值型態,或是實際布林值。 + + + A positional predicate must evaluate to a single numeric value. + 位置謂詞必須能計算出單一的數值。 + + + The target name in a processing instruction cannot be %1 in any combination of upper and lower case. Therefore, %2 is invalid. + 處理指令的目標名稱不能是任何大小寫組合的 %1。因此,%2 是不合法的值。 + + + %1 is not a valid target name in a processing instruction. It must be a %2 value, e.g. %3. + %1 不是一個合法的處理指令的目標名稱。必須是 %2 的值,例如 %3。 + + + The last step in a path must contain either nodes or atomic values. It cannot be a mixture between the two. + 路徑的最後一步必須是節點或原值,而不能在兩者之間。 + + + No namespace binding exists for the prefix %1 + 前置字串 %1 沒有結合命名空間 + + + No namespace binding exists for the prefix %1 in %2 + 在 %2 的前置字串 %1 沒有結合命名空間 + + + The first argument to %1 cannot be of type %2. It must be a numeric type, xs:yearMonthDuration or xs:dayTimeDuration. + 呼叫 %1 的第一個參數不能是 %2 型態。必須是數值型態,xs.yearMonthDuration 或 xs.dayTimeDuration。 + + + The first argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + 呼叫 %1 的第一個參數不能是 %2 型態。必須是 %3、%4 或 %5 型態。 + + + The second argument to %1 cannot be of type %2. It must be of type %3, %4, or %5. + 呼叫 %1 的第二個參數不能是 %2 型態。必須是 %3、%4 或 %5 型態。 + + + If both values have zone offsets, they must have the same zone offset. %1 and %2 are not the same. + 如果兩個值都有區域位移,則必須是相同的區域位移。%1 與 %2 並不相同。 + + + %1 must be followed by %2 or %3, not at the end of the replacement string. + %1 後面必須跟著 %2 或 %3,而非取代字串的結尾。 + + + %1 and %2 match the start and end of a line. + %1 與 %2 符合了一行的開始與結尾。 + + + Whitespace characters are removed, except when they appear in character classes + 空白字元已移除,除非它們出現在字元類別 + + + %1 is an invalid flag for regular expressions. Valid flags are: + %1 是正規表示式中不合法的旗標。合法的旗標有: + + + If the first argument is the empty sequence or a zero-length string (no namespace), a prefix cannot be specified. Prefix %1 was specified. + 如果第一個參數是空序列,或是長度為 0 的字串(沒有命名空間),則無法指定前置字串。但是您指定了 %1。 + + + The normalization form %1 is unsupported. The supported forms are %2, %3, %4, and %5, and none, i.e. the empty string (no normalization). + 未支援常態化表單 %1。支援的表單有 %2、%3、%4、%5,以及無(也就是空字串,未常態化)。 + + + A zone offset must be in the range %1..%2 inclusive. %3 is out of range. + 區域位移必須是在 %1 到 %2 範圍之內。%3 已超出範圍。 + + + Required cardinality is %1; got cardinality %2. + 需要的基數為 %1;得到的是 %2。 + + + The encoding %1 is invalid. It must contain Latin characters only, must not contain whitespace, and must match the regular expression %2. + 編碼 %1 不合法。必須只能包含拉丁字元,不含空白,並且要符合正規表示式 %2。 + + + The keyword %1 cannot occur with any other mode name. + 關鍵字 %1 不能與任何其它模式名稱一起存在。 + + + No variable with name %1 exists + + + + The value of attribute %1 must be of type %2, which %3 isn't. + + + + The prefix %1 cannot be bound. By default, it is already bound to the namespace %2. + + + + A variable with name %1 has already been declared. + + + + No value is available for the external variable with name %1. + + + + A stylesheet function must have a prefixed name. + 樣式表函式必須有前置名稱。 + + + The namespace %1 is reserved; therefore user defined functions may not use it. Try the predefined prefix %2, which exists for these cases. + 命名空間 %1 已被保留,因此使用者定義函式不能使用它。請試試預定義前置字串 %2。 + + + An argument with name %1 has already been declared. Every argument name must be unique. + + + + When function %1 is used for matching inside a pattern, the argument must be a variable reference or a string literal. + 當函式 %1 用於樣式比對時,參數必須是變數參考或字串。 + + + In an XSL-T pattern, the first argument to function %1 must be a string literal, when used for matching. + 在 XSL-T 樣式內,函式 %1 的第一個參數必須是字串,以便用於比對。 + + + In an XSL-T pattern, the first argument to function %1 must be a literal or a variable reference, when used for matching. + 在 XSL-T 樣式內,函式 %1 的第一個參數必須是文字或變數參考,以便用於比對。 + + + In an XSL-T pattern, function %1 cannot have a third argument. + 在 XSL-T 樣式內,函式 %1 的不能有第三個參數。 + + + In an XSL-T pattern, only function %1 and %2, not %3, can be used for matching. + 在 XSL-T 樣式內,只有函式 %1,%2 可以用於比對。%3 不行。 + + + In an XSL-T pattern, axis %1 cannot be used, only axis %2 or %3 can. + 在 XSL-T 樣式內,不能用 %1 軸,只能用 %2 或 %3。 + + + %1 is an invalid template mode name. + %1 不是合法的樣本模式名稱。 + + + The name of a variable bound in a for-expression must be different from the positional variable. Hence, the two variables named %1 collide. + 與 for 敘述結合的變數名稱必須與位置變數不同。因此,有兩個名為 %1 的變數衝突了。 + + + The Schema Validation Feature is not supported. Hence, %1-expressions may not be used. + 未支援機制確認功能。%1 敘述無法使用。 + + + None of the pragma expressions are supported. Therefore, a fallback expression must be present + 未支援 pragma 敘述。因次,必須有預設的敘述。 + + + Each name of a template parameter must be unique; %1 is duplicated. + 每個樣本參數的名稱必須唯一;%1 已經被使用。 + + + No function with name %1 is available. + + + + %1 is not a valid numeric literal. + %1 不是合法的數值。 + + + W3C XML Schema identity constraint selector + + + + W3C XML Schema identity constraint field + + + + A construct was encountered which is disallowed in the current language(%1). + + + + Namespace %1 can only be bound to %2 (and it is, in either case, pre-declared). + 命名空間 %1 只能與 %2 結合(也就是說,要預先定義)。 + + + Prefix %1 can only be bound to %2 (and it is, in either case, pre-declared). + 前置字串 %1 只能與 %2 結合(也就是說,要預先定義)。 + + + An attribute with name %1 has already appeared on this element. + + + + A direct element constructor is not well-formed. %1 is ended with %2. + 直接元素建構器沒有完整產生。%1 以 %2 結束。 + + + The name %1 does not refer to any schema type. + 名稱 %1 未指向任何機制型態。 + + + %1 is an complex type. Casting to complex types is not possible. However, casting to atomic types such as %2 works. + %1 是複數型態,無法轉換成複數型態。然而,轉換為原型態,如 %2 是可行的。 + + + %1 is not an atomic type. Casting is only possible to atomic types. + %1 不是一個原型態。只能轉換為原型態。 + + + %1 is not a valid name for a processing-instruction. + %1 不是處理指令的合法名稱。 + + + The name of an extension expression must be in a namespace. + 延伸敘述的名稱必須在命名空間內。 + + + Required type is %1, but %2 was found. + 需要的型態為 %1,但找到 %2。 + + + Promoting %1 to %2 may cause loss of precision. + 將 %1 抬升為 %2 可能會失去精確度。 + + + It's not possible to add attributes after any other kind of node. + 不能在任何其它種類的節點後面加入屬性。 + + + Only the Unicode Codepoint Collation is supported(%1). %2 is unsupported. + 只支援 Unicode Codepoint Collation(%1)。%2 未支援。; + + + Integer division (%1) by zero (%2) is undefined. + 整數除法 %1 除以零(%2)的行為未定義。 + + + Division (%1) by zero (%2) is undefined. + 除法 %1 除以零(%2)的行為未定義。 + + + Modulus division (%1) by zero (%2) is undefined. + 餘數除法 %1 除以零(%2)的行為未定義。 + + + %1 takes at most %n argument(s). %2 is therefore invalid. + + %1 最多只能有 %n 個參數,因此 %2 是不合法的。 + + + + %1 requires at least %n argument(s). %2 is therefore invalid. + + %1 至少需要 %n 個參數,因此 %2 是不合法的。 + + + + The root node of the second argument to function %1 must be a document node. %2 is not a document node. + 函式 %1 的第二個參數的根節點必須是文件節點。%2 不是文件節點。 + + + The namespace for a user defined function cannot be empty (try the predefined prefix %1 which exists for cases like this) + 使用者定義函式的命名空間不能為空白(請試著用預先定義的前置字串 %1) + + + A default namespace declaration must occur before function, variable, and option declarations. + 預設的命名空間宣告必須在函式、變數與選項宣告之前。 + + + Namespace declarations must occur before function, variable, and option declarations. + 命名空間宣告必須在函式、變數與選項宣告之前。 + + + Module imports must occur before function, variable, and option declarations. + 模組匯入必須在函式、變數與選項宣告之前。 + + + %1 is not a whole number of minutes. + %1 不是分鐘的數值。 + + + Attribute %1 can't be serialized because it appears at the top level. + 屬性元素 %1 無法序列化,因為似乎是在頂層。 + + + %1 is an unsupported encoding. + %1 是個未被支援的編碼。 + + + %1 contains octets which are disallowed in the requested encoding %2. + %1 包含了在要求的編碼 %2 內不允許的八進位值。 + + + The codepoint %1, occurring in %2 using encoding %3, is an invalid XML character. + 在 %2 內的代碼點 %1(編碼 %3)是一個不合法的 XML 字元。 + + + Ambiguous rule match. + 不明確的規則符合。 + + + In a namespace constructor, the value for a namespace cannot be an empty string. + + + + The prefix must be a valid %1, which %2 is not. + 前置字串必須是合法的 %1,但 %2 不是。 + + + The prefix %1 cannot be bound. + 前置字串 %1 不能被結合。 + + + Only the prefix %1 can be bound to %2 and vice versa. + 只有前置字串 %1 能與 %2 結合。反之亦然。 + + + The parameter %1 is required, but no corresponding %2 is supplied. + 需要參數 %1,但是沒有提供相關的 %2。 + + + The parameter %1 is passed, but no corresponding %2 exists. + 參數 %1 已傳送,但找不到相關的 %2。 + + + The URI cannot have a fragment + URI 不能有片段。 + + + Element %1 is not allowed at this location. + 元素 %1 不能在此位置。 + + + Text nodes are not allowed at this location. + 文字節點不能在此位置。 + + + Parse error: %1 + 剖析錯誤:%1 + + + The value of the XSL-T version attribute must be a value of type %1, which %2 isn't. + XLS-T 版本屬性的值必須是型態 %1 的值,而 %2 不是。 + + + Running an XSL-T 1.0 stylesheet with a 2.0 processor. + 使用 2.0 處理器執行 XSL-T 1.0 樣式表中。 + + + Unknown XSL-T attribute %1. + 未知的 XSL-T 屬性 %1。 + + + Attribute %1 and %2 are mutually exclusive. + 屬性 %1 與 %2 彼此互斥。 + + + In a simplified stylesheet module, attribute %1 must be present. + 在簡化的樣式表模組中,屬性 %1 必須存在。 + + + If element %1 has no attribute %2, it cannot have attribute %3 or %4. + 若元素 %1 沒有屬性 %2,則也不能有屬性 %3 或 %4。 + + + Element %1 must have at least one of the attributes %2 or %3. + 元素 %1 必須至少有屬性 %2 或 %3 其中一個。 + + + At least one mode must be specified in the %1-attribute on element %2. + 在元素 %2 的 %1 屬性中至少要指定一個模式。 + + + Element %1 must come last. + 元素 %1 必須最後出現。 + + + At least one %1-element must occur before %2. + 至少一個元素 %1 要出現在 %2 之前。 + + + Only one %1-element can appear. + 只能出現一個元素 %1。 + + + At least one %1-element must occur inside %2. + 至少一個元素 %1 要出現在 %2 之內。 + + + When attribute %1 is present on %2, a sequence constructor cannot be used. + 當屬性 %1 出現在 %2 內時,不能使用序列建構子。 + + + Element %1 must have either a %2-attribute or a sequence constructor. + 元素 %1 必須至少有一個屬性 %2 或一個序列建構子。 + + + When a parameter is required, a default value cannot be supplied through a %1-attribute or a sequence constructor. + 當需要參數時,不能透過屬性 %1 或序列建構子提供預設值。 + + + Element %1 cannot have children. + 元素 %1 不能有子元素。 + + + Element %1 cannot have a sequence constructor. + 元素 %1不能有序列建構子。 + + + The attribute %1 cannot appear on %2, when it is a child of %3. + 屬性 %1 不能出現在 %2,因為它是 %3 的子元素。 + + + A parameter in a function cannot be declared to be a tunnel. + 函式內的參數不能被宣告為通道(tunnel)。 + + + This processor is not Schema-aware and therefore %1 cannot be used. + 此處理器不是 Schema-aware,因此不能使用 %1。 + + + Top level stylesheet elements must be in a non-null namespace, which %1 isn't. + 頂層樣式表元素必須是非空白的命名空間,而 %1 不是。 + + + The value for attribute %1 on element %2 must either be %3 or %4, not %5. + 元素 %2 內屬性 %1 的值必須是 %3 或 %4,而不是 %5。 + + + Attribute %1 cannot have the value %2. + 屬性 %1 的值不能為 %2。 + + + The attribute %1 can only appear on the first %2 element. + 屬性 %1 只能出現在前 %2 個元素內。 + + + At least one %1 element must appear as child of %2. + %2 必須至少有一個子元素 %1。 + + + %1 has inheritance loop in its base type %2. + + + + Circular inheritance of base type %1. + + + + Circular inheritance of union %1. + + + + %1 is not allowed to derive from %2 by restriction as the latter defines it as final. + + + + %1 is not allowed to derive from %2 by extension as the latter defines it as final. + + + + Base type of simple type %1 cannot be complex type %2. + + + + Simple type %1 cannot have direct base type %2. + + + + Simple type %1 is not allowed to have base type %2. + + + + Simple type %1 can only have simple atomic type as base type. + + + + Simple type %1 cannot derive from %2 as the latter defines restriction as final. + + + + Variety of item type of %1 must be either atomic or union. + + + + Variety of member types of %1 must be atomic. + + + + %1 is not allowed to derive from %2 by list as the latter defines it as final. + + + + Simple type %1 is only allowed to have %2 facet. + + + + Base type of simple type %1 must have variety of type list. + + + + Base type of simple type %1 has defined derivation by restriction as final. + + + + Item type of base type does not match item type of %1. + + + + Simple type %1 contains not allowed facet type %2. + + + + %1 is not allowed to derive from %2 by union as the latter defines it as final. + + + + %1 is not allowed to have any facets. + + + + Base type %1 of simple type %2 must have variety of union. + + + + Base type %1 of simple type %2 is not allowed to have restriction in %3 attribute. + + + + Member type %1 cannot be derived from member type %2 of %3's base type %4. + + + + Derivation method of %1 must be extension because the base type %2 is a simple type. + + + + Complex type %1 has duplicated element %2 in its content model. + + + + Complex type %1 has non-deterministic content. + + + + Attributes of complex type %1 are not a valid extension of the attributes of base type %2: %3. + + + + Content model of complex type %1 is not a valid extension of content model of %2. + + + + Complex type %1 must have simple content. + + + + Complex type %1 must have the same simple type as its base class %2. + + + + Complex type %1 cannot be derived from base type %2%3. + + + + Attributes of complex type %1 are not a valid restriction from the attributes of base type %2: %3. + + + + Complex type %1 with simple content cannot be derived from complex base type %2. + + + + Item type of simple type %1 cannot be a complex type. + + + + Member type of simple type %1 cannot be a complex type. + + + + %1 is not allowed to have a member type with the same name as itself. + + + + %1 facet collides with %2 facet. + + + + %1 facet must have the same value as %2 facet of base type. + + + + %1 facet must be equal or greater than %2 facet of base type. + + + + %1 facet must be less than or equal to %2 facet of base type. + + + + %1 facet contains invalid regular expression + + + + Unknown notation %1 used in %2 facet. + + + + %1 facet contains invalid value %2: %3. + + + + %1 facet cannot be %2 or %3 if %4 facet of base type is %5. + + + + %1 facet cannot be %2 if %3 facet of base type is %4. + + + + %1 facet must be less than or equal to %2 facet. + + + + %1 facet must be less than %2 facet of base type. + + + + %1 facet and %2 facet cannot appear together. + + + + %1 facet must be greater than %2 facet of base type. + + + + %1 facet must be less than %2 facet. + + + + %1 facet must be greater than or equal to %2 facet of base type. + + + + Simple type contains not allowed facet %1. + + + + %1, %2, %3, %4, %5 and %6 facets are not allowed when derived by list. + + + + Only %1 and %2 facets are allowed when derived by union. + + + + %1 contains %2 facet with invalid data: %3. + + + + Attribute group %1 contains attribute %2 twice. + + + + Attribute group %1 contains two different attributes that both have types derived from %2. + + + + Attribute group %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + + Complex type %1 contains attribute %2 twice. + + + + Complex type %1 contains two different attributes that both have types derived from %2. + + + + Complex type %1 contains attribute %2 that has value constraint but type that inherits from %3. + + + + Element %1 is not allowed to have a value constraint if its base type is complex. + + + + Element %1 is not allowed to have a value constraint if its type is derived from %2. + + + + Value constraint of element %1 is not of elements type: %2. + + + + Element %1 is not allowed to have substitution group affiliation as it is no global element. + + + + Type of element %1 cannot be derived from type of substitution group affiliation. + + + + Value constraint of attribute %1 is not of attributes type: %2. + + + + Attribute %1 has value constraint but has type derived from %2. + + + + %1 attribute in derived complex type must be %2 like in base type. + + + + Attribute %1 in derived complex type must have %2 value constraint like in base type. + + + + Attribute %1 in derived complex type must have the same %2 value constraint like in base type. + + + + Attribute %1 in derived complex type must have %2 value constraint. + + + + processContent of base wildcard must be weaker than derived wildcard. + + + + Element %1 exists twice with different types. + + + + Particle contains non-deterministic wildcards. + + + + Base attribute %1 is required but derived attribute is not. + + + + Type of derived attribute %1 cannot be validly derived from type of base attribute. + + + + Value constraint of derived attribute %1 does not match value constraint of base attribute. + + + + Derived attribute %1 does not exist in the base definition. + + + + Derived attribute %1 does not match the wildcard in the base definition. + + + + Base attribute %1 is required but missing in derived definition. + + + + Derived definition contains an %1 element that does not exists in the base definition + + + + Derived wildcard is not a subset of the base wildcard. + + + + %1 of derived wildcard is not a valid restriction of %2 of base wildcard + + + + Attribute %1 from base type is missing in derived type. + + + + Type of derived attribute %1 differs from type of base attribute. + + + + Base definition contains an %1 element that is missing in the derived definition + + + + %1 references unknown %2 or %3 element %4. + + + + %1 references identity constraint %2 that is no %3 or %4 element. + + + + %1 has a different number of fields from the identity constraint %2 that it references. + + + + Base type %1 of %2 element cannot be resolved. + + + + Item type %1 of %2 element cannot be resolved. + + + + Member type %1 of %2 element cannot be resolved. + + + + Type %1 of %2 element cannot be resolved. + + + + Base type %1 of complex type cannot be resolved. + + + + %1 cannot have complex base type that has a %2. + + + + Content model of complex type %1 contains %2 element so it cannot be derived by extension from a non-empty type. + + + + Complex type %1 cannot be derived by extension from %2 as the latter contains %3 element in its content model. + + + + Type of %1 element must be a simple type, %2 is not. + + + + Substitution group %1 of %2 element cannot be resolved. + + + + Substitution group %1 has circular definition. + + + + Duplicated element names %1 in %2 element. + + + + Reference %1 of %2 element cannot be resolved. + + + + Circular group reference for %1. + + + + %1 element is not allowed in this scope + + + + %1 element cannot have %2 attribute with value other than %3. + + + + %1 element cannot have %2 attribute with value other than %3 or %4. + + + + %1 or %2 attribute of reference %3 does not match with the attribute declaration %4. + + + + Attribute group %1 has circular reference. + + + + %1 attribute in %2 must have %3 use like in base type %4. + + + + Attribute wildcard of %1 is not a valid restriction of attribute wildcard of base type %2. + + + + %1 has attribute wildcard but its base type %2 has not. + + + + Union of attribute wildcard of type %1 and attribute wildcard of its base type %2 is not expressible. + + + + Enumeration facet contains invalid content: {%1} is not a value of type %2. + + + + Namespace prefix of qualified name %1 is not defined. + + + + %1 element %2 is not a valid restriction of the %3 element it redefines: %4. + + + + Empty particle cannot be derived from non-empty particle. + + + + Derived particle is missing element %1. + + + + Derived element %1 is missing value constraint as defined in base particle. + + + + Derived element %1 has weaker value constraint than base particle. + + + + Fixed value constraint of element %1 differs from value constraint in base particle. + + + + Derived element %1 cannot be nillable as base element is not nillable. + + + + Block constraints of derived element %1 must not be more weaker than in the base element. + + + + Simple type of derived element %1 cannot be validly derived from base element. + + + + Complex type of derived element %1 cannot be validly derived from base element. + + + + Element %1 is missing in derived particle. + + + + Element %1 does not match namespace constraint of wildcard in base particle. + + + + Wildcard in derived particle is not a valid subset of wildcard in base particle. + + + + processContent of wildcard in derived particle is weaker than wildcard in base particle. + + + + Derived particle allows content that is not allowed in the base particle. + + + + Can not process unknown element %1, expected elements are: %2. + + + + Element %1 is not allowed in this scope, possible elements are: %2. + + + + Child element is missing in that scope, possible child elements are: %1. + + + + Document is not a XML schema. + + + + %1 attribute of %2 element contains invalid content: {%3} is not a value of type %4. + + + + %1 attribute of %2 element contains invalid content: {%3}. + + + + Target namespace %1 of included schema is different from the target namespace %2 as defined by the including schema. + + + + Target namespace %1 of imported schema is different from the target namespace %2 as defined by the importing schema. + + + + %1 element is not allowed to have the same %2 attribute value as the target namespace %3. + + + + %1 element without %2 attribute is not allowed inside schema without target namespace. + + + + %1 element is not allowed inside %2 element if %3 attribute is present. + + + + %1 element has neither %2 attribute nor %3 child element. + + + + %1 element with %2 child element must not have a %3 attribute. + + + + %1 attribute of %2 element must be %3 or %4. + + + + %1 attribute of %2 element must have a value of %3. + + + + %1 attribute of %2 element must have a value of %3 or %4. + + + + %1 element must not have %2 and %3 attribute together. + + + + Content of %1 attribute of %2 element must not be from namespace %3. + + + + %1 attribute of %2 element must not be %3. + + + + %1 attribute of %2 element must have the value %3 because the %4 attribute is set. + + + + Specifying use='prohibited' inside an attribute group has no effect. + + + + %1 element must have either %2 or %3 attribute. + + + + %1 element must have either %2 attribute or %3 or %4 as child element. + + + + %1 element requires either %2 or %3 attribute. + + + + Text or entity references not allowed inside %1 element + + + + %1 attribute of %2 element must contain %3, %4 or a list of URIs. + + + + %1 element is not allowed in this context. + + + + %1 attribute of %2 element has larger value than %3 attribute. + + + + Prefix of qualified name %1 is not defined. + + + + %1 attribute of %2 element must either contain %3 or the other values. + + + + Component with ID %1 has been defined previously. + + + + Element %1 already defined. + + + + Attribute %1 already defined. + + + + Type %1 already defined. + + + + Attribute group %1 already defined. + + + + Element group %1 already defined. + + + + Notation %1 already defined. + + + + Identity constraint %1 already defined. + + + + Duplicated facets in simple type %1. + + + + %1 is not valid according to %2. + + + + String content does not match the length facet. + + + + String content does not match the minLength facet. + + + + String content does not match the maxLength facet. + + + + String content does not match pattern facet. + + + + String content is not listed in the enumeration facet. + + + + Signed integer content does not match the maxInclusive facet. + + + + Signed integer content does not match the maxExclusive facet. + + + + Signed integer content does not match the minInclusive facet. + + + + Signed integer content does not match the minExclusive facet. + + + + Signed integer content is not listed in the enumeration facet. + + + + Signed integer content does not match pattern facet. + + + + Signed integer content does not match in the totalDigits facet. + + + + Unsigned integer content does not match the maxInclusive facet. + + + + Unsigned integer content does not match the maxExclusive facet. + + + + Unsigned integer content does not match the minInclusive facet. + + + + Unsigned integer content does not match the minExclusive facet. + + + + Unsigned integer content is not listed in the enumeration facet. + + + + Unsigned integer content does not match pattern facet. + + + + Unsigned integer content does not match in the totalDigits facet. + + + + Double content does not match the maxInclusive facet. + + + + Double content does not match the maxExclusive facet. + + + + Double content does not match the minInclusive facet. + + + + Double content does not match the minExclusive facet. + + + + Double content is not listed in the enumeration facet. + + + + Double content does not match pattern facet. + + + + Decimal content does not match in the fractionDigits facet. + + + + Decimal content does not match in the totalDigits facet. + + + + Date time content does not match the maxInclusive facet. + + + + Date time content does not match the maxExclusive facet. + + + + Date time content does not match the minInclusive facet. + + + + Date time content does not match the minExclusive facet. + + + + Date time content is not listed in the enumeration facet. + + + + Date time content does not match pattern facet. + + + + Duration content does not match the maxInclusive facet. + + + + Duration content does not match the maxExclusive facet. + + + + Duration content does not match the minInclusive facet. + + + + Duration content does not match the minExclusive facet. + + + + Duration content is not listed in the enumeration facet. + + + + Duration content does not match pattern facet. + + + + Boolean content does not match pattern facet. + + + + Binary content does not match the length facet. + + + + Binary content does not match the minLength facet. + + + + Binary content does not match the maxLength facet. + + + + Binary content is not listed in the enumeration facet. + + + + Invalid QName content: %1. + + + + QName content is not listed in the enumeration facet. + + + + QName content does not match pattern facet. + + + + Notation content is not listed in the enumeration facet. + + + + List content does not match length facet. + + + + List content does not match minLength facet. + + + + List content does not match maxLength facet. + + + + List content is not listed in the enumeration facet. + + + + List content does not match pattern facet. + + + + Union content is not listed in the enumeration facet. + + + + Union content does not match pattern facet. + + + + Data of type %1 are not allowed to be empty. + + + + Element %1 is missing child element. + + + + There is one IDREF value with no corresponding ID: %1. + + + + Loaded schema file is invalid. + + + + %1 contains invalid data. + + + + xsi:schemaLocation namespace %1 has already appeared earlier in the instance document. + + + + xsi:noNamespaceSchemaLocation cannot appear after the first no-namespace element or attribute. + + + + No schema defined for validation. + + + + No definition for element %1 available. + + + + Specified type %1 is not known to the schema. + + + + Element %1 is not defined in this scope. + + + + Declaration for element %1 does not exist. + + + + Element %1 contains invalid content. + + + + Element %1 is declared as abstract. + + + + Element %1 is not nillable. + + + + Attribute %1 contains invalid data: %2 + + + + Element contains content although it is nillable. + + + + Fixed value constraint not allowed if element is nillable. + + + + Element %1 cannot contain other elements, as it has a fixed content. + + + + Specified type %1 is not validly substitutable with element type %2. + + + + Complex type %1 is not allowed to be abstract. + + + + Element %1 contains not allowed attributes. + + + + Element %1 contains not allowed child element. + + + + Content of element %1 does not match its type definition: %2. + + + + Content of element %1 does not match defined value constraint. + + + + Element %1 contains not allowed child content. + + + + Element %1 contains not allowed text content. + + + + Element %1 is missing required attribute %2. + + + + Attribute %1 does not match the attribute wildcard. + + + + Declaration for attribute %1 does not exist. + + + + Element %1 contains two attributes of type %2. + + + + Attribute %1 contains invalid content. + + + + Element %1 contains unknown attribute %2. + + + + Content of attribute %1 does not match its type definition: %2. + + + + Content of attribute %1 does not match defined value constraint. + + + + Non-unique value found for constraint %1. + + + + Key constraint %1 contains absent fields. + + + + Key constraint %1 contains references nillable element %2. + + + + No referenced value found for key reference %1. + + + + More than one value found for field %1. + + + + Field %1 has no simple type. + + + + ID value '%1' is not unique. + + + + '%1' attribute contains invalid QName content: %2. + + + + diff --git a/config.profiles/symbian/translations_symbian/translations.pro b/config.profiles/symbian/translations_symbian/translations.pro new file mode 100644 index 0000000..f304c1b --- /dev/null +++ b/config.profiles/symbian/translations_symbian/translations.pro @@ -0,0 +1,16 @@ +TEMPLATE = subdirs + + +symbian: { +SYMBIANTRANSLATIONSFILES = qt +SYMBIANTRANSLATIONS = ur fa ar he fr pl ru zh_cn zh_tw cs da de es gl hu ja pt sk sl sv uk + +CONFIG = loc + +for( FILE, SYMBIANTRANSLATIONSFILES ) { + for( LANGID, SYMBIANTRANSLATIONS ) { + TRANSLATIONS += $${EPOCROOT}epoc32/include/platform/qt/translations/$${FILE}_$${LANGID}.ts + } +} + +} \ No newline at end of file -- cgit v0.12 From 8a3c4c8283e4762744a29262ce507713565c1c0c Mon Sep 17 00:00:00 2001 From: Jens Bache-Wiig Date: Wed, 22 Dec 2010 17:13:30 +0100 Subject: Fix crash in indeterminate progressbars on windows Note that this is a surgical fix for 4.7 only. In 4.8 we will add these checks at the top of the styling functions or in the widgets instead. Task-number:QTBUG-15227 Reviewed-by:gabi --- src/gui/styles/qcommonstyle.cpp | 5 +++-- src/gui/styles/qwindowsstyle.cpp | 4 +++- tests/auto/qstyle/tst_qstyle.cpp | 7 +++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/gui/styles/qcommonstyle.cpp b/src/gui/styles/qcommonstyle.cpp index 039a6da..1d7c838 100644 --- a/src/gui/styles/qcommonstyle.cpp +++ b/src/gui/styles/qcommonstyle.cpp @@ -1403,8 +1403,9 @@ void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt, } break; case CE_ProgressBarGroove: - qDrawShadePanel(p, opt->rect, opt->palette, true, 1, - &opt->palette.brush(QPalette::Window)); + if (opt->rect.isValid()) + qDrawShadePanel(p, opt->rect, opt->palette, true, 1, + &opt->palette.brush(QPalette::Window)); break; case CE_ProgressBarLabel: if (const QStyleOptionProgressBar *pb = qstyleoption_cast(opt)) { diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp index 654be3c..32a6d8d 100644 --- a/src/gui/styles/qwindowsstyle.cpp +++ b/src/gui/styles/qwindowsstyle.cpp @@ -2397,8 +2397,10 @@ void QWindowsStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPai #ifndef QT_NO_PROGRESSBAR case CE_ProgressBarContents: if (const QStyleOptionProgressBar *pb = qstyleoption_cast(opt)) { - QRect rect = pb->rect; + if (!rect.isValid()) + return; + bool vertical = false; bool inverted = false; diff --git a/tests/auto/qstyle/tst_qstyle.cpp b/tests/auto/qstyle/tst_qstyle.cpp index ba24225..9c754d2 100644 --- a/tests/auto/qstyle/tst_qstyle.cpp +++ b/tests/auto/qstyle/tst_qstyle.cpp @@ -413,6 +413,13 @@ void tst_QStyle::testWindowsStyle() QWindowsStyle wstyle; testAllFunctions(&wstyle); lineUpLayoutTest(&wstyle); + + // Tests drawing indeterminate progress with 0 size: QTBUG-15973 + QStyleOptionProgressBar pb; + pb.rect = QRect(0,0,-9,0); + QPixmap surface(QSize(200, 200)); + QPainter painter(&surface); + wstyle.drawControl(QStyle::CE_ProgressBar, &pb, &painter, 0); } void tst_QStyle::testWindowsXPStyle() -- cgit v0.12 From 3c20105f2344172cb1dce95864c0c3b70497f029 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Wed, 22 Dec 2010 16:22:57 +0000 Subject: Fix qfile test crash with glibc The test was using a FILE* after closing it (which was a pointer to deleted memory). glibc detects and asserts on this. If the test failed, then file could be closed twice too, so I fixed that at the same time. (would have caused a double free) Reviewed-by: joao --- tests/auto/qfile/tst_qfile.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 4e18ec4..18478e3 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -75,6 +75,7 @@ #endif #include +#include #include "../network-settings.h" #if defined(Q_OS_SYMBIAN) @@ -3339,16 +3340,17 @@ void tst_QFile::autocloseHandle() { QFile file("readonlyfile"); QVERIFY(openFile(file, QIODevice::ReadOnly, OpenFd, QFile::AutoCloseHandle)); - QCOMPARE(file.handle(), fd_); + int fd = fd_; + QCOMPARE(file.handle(), fd); file.close(); + fd_ = -1; QCOMPARE(file.handle(), -1); AutoIgnoreInvalidParameter a; Q_UNUSED(a); //file is closed, read should fail char buf; - QCOMPARE(QT_READ(fd_, &buf, 1), -1); + QCOMPARE(QT_READ(fd, &buf, 1), -1); QVERIFY(errno = EBADF); - fd_ = -1; } { @@ -3367,15 +3369,16 @@ void tst_QFile::autocloseHandle() { QFile file("readonlyfile"); QVERIFY(openFile(file, QIODevice::ReadOnly, OpenStream, QFile::AutoCloseHandle)); - QCOMPARE(file.handle(), fileno(stream_)); + int fd = fileno(stream_); + QCOMPARE(file.handle(), fd); file.close(); + stream_ = 0; QCOMPARE(file.handle(), -1); AutoIgnoreInvalidParameter a; Q_UNUSED(a); //file is closed, read should fail char buf; - QCOMPARE(int(::fread(&buf, 1, 1, stream_)), 0); - stream_ = 0; + QCOMPARE(QT_READ(fd, &buf, 1), -1); //not using fread because the FILE* was freed by fclose } { -- cgit v0.12 From b461c315547b42293968219583187d83b2b25e0f Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 22 Dec 2010 09:23:48 +1000 Subject: Add additional QDeclarativeProperty autotests. --- .../tst_qdeclarativeproperty.cpp | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp b/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp index 3cc71bb..41f2b19 100644 --- a/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp +++ b/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp @@ -167,6 +167,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), false); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), false); QCOMPARE(prop.isValid(), false); QCOMPARE(prop.object(), (QObject *)0); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory); @@ -263,6 +264,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), false); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), false); QCOMPARE(prop.isValid(), false); QCOMPARE(prop.object(), (QObject *)0); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory); @@ -309,6 +311,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), true); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), false); QCOMPARE(prop.isValid(), true); QCOMPARE(prop.object(), qobject_cast(&dobject)); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::Normal); @@ -362,6 +365,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), false); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), false); QCOMPARE(prop.isValid(), false); QCOMPARE(prop.object(), (QObject *)0); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory); @@ -408,6 +412,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), true); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), false); QCOMPARE(prop.isValid(), true); QCOMPARE(prop.object(), qobject_cast(&dobject)); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::Normal); @@ -456,6 +461,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), false); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), true); QCOMPARE(prop.isValid(), true); QCOMPARE(prop.object(), qobject_cast(&dobject)); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory); @@ -503,6 +509,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), false); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), true); QCOMPARE(prop.isValid(), true); QCOMPARE(prop.object(), qobject_cast(&dobject)); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory); @@ -555,6 +562,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_context() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), false); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), false); QCOMPARE(prop.isValid(), false); QCOMPARE(prop.object(), (QObject *)0); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory); @@ -601,6 +609,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_context() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), true); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), false); QCOMPARE(prop.isValid(), true); QCOMPARE(prop.object(), qobject_cast(&dobject)); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::Normal); @@ -654,6 +663,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), false); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), false); QCOMPARE(prop.isValid(), false); QCOMPARE(prop.object(), (QObject *)0); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory); @@ -700,6 +710,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), true); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), false); QCOMPARE(prop.isValid(), true); QCOMPARE(prop.object(), qobject_cast(&dobject)); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::Normal); @@ -748,6 +759,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), false); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), true); QCOMPARE(prop.isValid(), true); QCOMPARE(prop.object(), qobject_cast(&dobject)); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory); @@ -795,6 +807,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context() QCOMPARE(prop.isWritable(), false); QCOMPARE(prop.isDesignable(), false); QCOMPARE(prop.isResettable(), false); + QCOMPARE(prop.isSignalProperty(), true); QCOMPARE(prop.isValid(), true); QCOMPARE(prop.object(), qobject_cast(&dobject)); QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory); @@ -922,6 +935,17 @@ void tst_qdeclarativeproperty::read() QCOMPARE(p.read(), QVariant("myName")); } + // Value prop by name (static) + { + QObject o; + + QCOMPARE(QDeclarativeProperty::read(&o, "objectName"), QVariant(QString())); + + o.setObjectName("myName"); + + QCOMPARE(QDeclarativeProperty::read(&o, "objectName"), QVariant("myName")); + } + // Value-type prop { PropertyObject o; @@ -994,6 +1018,16 @@ void tst_qdeclarativeproperty::read() QCOMPARE(qvariant_cast(v)->property("a").toInt(), 10); QCOMPARE(qvariant_cast(v)->property("b").toInt(), 19); } + { // static + QDeclarativeComponent component(&engine, TEST_FILE("readSynthesizedObject.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + QVariant v = QDeclarativeProperty::read(object, "test", &engine); + QVERIFY(v.userType() == QMetaType::QObjectStar); + QCOMPARE(qvariant_cast(v)->property("a").toInt(), 10); + QCOMPARE(qvariant_cast(v)->property("b").toInt(), 19); + } // Attached property { @@ -1026,6 +1060,15 @@ void tst_qdeclarativeproperty::read() QCOMPARE(p.read(), QVariant(10)); delete object; } + { // static + QDeclarativeComponent component(&engine); + component.setData("import Test 1.0 as Foo\nFoo.MyContainer { Foo.MyContainer.foo: 10 }", QUrl()); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(QDeclarativeProperty::read(object, "Foo.MyContainer.foo", qmlContext(object)), QVariant(10)); + delete object; + } } void tst_qdeclarativeproperty::write() @@ -1066,6 +1109,13 @@ void tst_qdeclarativeproperty::write() QCOMPARE(o.objectName(), QString("myName")); } + // Writable prop by name (static) + { + PropertyObject o; + QCOMPARE(QDeclarativeProperty::write(&o, QString("objectName"), QVariant(QString("myName"))), true); + QCOMPARE(o.objectName(), QString("myName")); + } + // Deleted object { PropertyObject *o = new PropertyObject; @@ -1138,6 +1188,18 @@ void tst_qdeclarativeproperty::write() QCOMPARE(p2.write(QUrl("main.qml")), true); QCOMPARE(o.url(), result); } + { // static + PropertyObject o; + + QCOMPARE(QDeclarativeProperty::write(&o, "url", QUrl("main.qml")), true); + QCOMPARE(o.url(), QUrl("main.qml")); + + QUrl result = engine.baseUrl().resolved(QUrl("main.qml")); + QVERIFY(result != QUrl("main.qml")); + + QCOMPARE(QDeclarativeProperty::write(&o, "url", QUrl("main.qml"), engine.rootContext()), true); + QCOMPARE(o.url(), result); + } // Attached property { -- cgit v0.12 From f360cc9b521e5e3e7d4b896627b3257365c6ad3c Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 22 Dec 2010 10:05:06 +1000 Subject: Improve QDeclarativeComponent test coverage. --- src/declarative/qml/qdeclarativecomponent.cpp | 11 ----------- src/declarative/qml/qdeclarativecomponent_p.h | 1 - .../qdeclarativecomponent/tst_qdeclarativecomponent.cpp | 15 +++++++++++++++ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp index 77fc925..ecb3bc5 100644 --- a/src/declarative/qml/qdeclarativecomponent.cpp +++ b/src/declarative/qml/qdeclarativecomponent.cpp @@ -699,17 +699,6 @@ QObject *QDeclarativeComponent::create(QDeclarativeContext *context) return rv; } -QObject *QDeclarativeComponentPrivate::create(QDeclarativeContextData *context, - const QBitField &bindings) -{ - if (!context) - context = QDeclarativeContextData::get(engine->rootContext()); - - QObject *rv = beginCreate(context, bindings); - completeCreate(); - return rv; -} - /*! This method provides more advanced control over component instance creation. In general, programmers should use QDeclarativeComponent::create() to create a diff --git a/src/declarative/qml/qdeclarativecomponent_p.h b/src/declarative/qml/qdeclarativecomponent_p.h index 7b30bad..daf1dcb 100644 --- a/src/declarative/qml/qdeclarativecomponent_p.h +++ b/src/declarative/qml/qdeclarativecomponent_p.h @@ -81,7 +81,6 @@ class Q_AUTOTEST_EXPORT QDeclarativeComponentPrivate : public QObjectPrivate, pu public: QDeclarativeComponentPrivate() : typeData(0), progress(0.), start(-1), count(-1), cc(0), engine(0), creationContext(0) {} - QObject *create(QDeclarativeContextData *, const QBitField &); QObject *beginCreate(QDeclarativeContextData *, const QBitField &); void completeCreate(); diff --git a/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp b/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp index 8a19b8b..60ce46d 100644 --- a/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp +++ b/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp @@ -57,6 +57,7 @@ public: tst_qdeclarativecomponent() { } private slots: + void null(); void loadEmptyUrl(); void qmlCreateObject(); @@ -64,6 +65,20 @@ private: QDeclarativeEngine engine; }; +void tst_qdeclarativecomponent::null() +{ + { + QDeclarativeComponent c; + QVERIFY(c.isNull()); + } + + { + QDeclarativeComponent c(&engine); + QVERIFY(c.isNull()); + } +} + + void tst_qdeclarativecomponent::loadEmptyUrl() { QDeclarativeComponent c(&engine); -- cgit v0.12 From 01fd44cd76f2da1dd1e39d7e5632b3274ca895a3 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 23 Dec 2010 10:20:23 +1000 Subject: Nested flickables would react alternately to flicks. The grab was not always kept by filtering Flickables, but would remain set next flick, resulting in toggling of flicking. Task-number: QTBUG-16177 Reviewed-by: Michael Brasser --- .../graphicsitems/qdeclarativeflickable.cpp | 6 +- .../data/flickable-nested.0.png | Bin 0 -> 1710 bytes .../data/flickable-nested.1.png | Bin 0 -> 1710 bytes .../data/flickable-nested.2.png | Bin 0 -> 1727 bytes .../data/flickable-nested.3.png | Bin 0 -> 1727 bytes .../data/flickable-nested.4.png | Bin 0 -> 1727 bytes .../data/flickable-nested.5.png | Bin 0 -> 1731 bytes .../data/flickable-nested.qml | 2159 ++++++++++++++++++++ .../qdeclarativeflickable/flickable-nested.qml | 50 + 9 files changed, 2213 insertions(+), 2 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-nested.qml diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp index f1d92c5..f5da491 100644 --- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp +++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp @@ -671,10 +671,12 @@ void QDeclarativeFlickable::setFlickableDirection(FlickableDirection direction) void QDeclarativeFlickablePrivate::handleMousePressEvent(QGraphicsSceneMouseEvent *event) { + Q_Q(QDeclarativeFlickable); if (interactive && timeline.isActive() && (qAbs(hData.velocity) > 10 || qAbs(vData.velocity) > 10)) stealMouse = true; // If we've been flicked then steal the click. else stealMouse = false; + q->setKeepMouseGrab(stealMouse); pressed = true; timeline.clear(); hData.velocity = 0; @@ -769,6 +771,8 @@ void QDeclarativeFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent } stealMouse = stealX || stealY; + if (stealMouse) + q->setKeepMouseGrab(true); if (!lastPos.isNull()) { qreal elapsed = qreal(QDeclarativeItemPrivate::restart(lastPosTime)) / 1000.; @@ -848,8 +852,6 @@ void QDeclarativeFlickable::mouseMoveEvent(QGraphicsSceneMouseEvent *event) Q_D(QDeclarativeFlickable); if (d->interactive) { d->handleMouseMoveEvent(event); - if (d->stealMouse) - setKeepMouseGrab(true); event->accept(); } else { QDeclarativeItem::mouseMoveEvent(event); diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.0.png new file mode 100644 index 0000000..464d913 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.1.png new file mode 100644 index 0000000..464d913 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.2.png new file mode 100644 index 0000000..b16b9f0 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.3.png new file mode 100644 index 0000000..c3d2a6f Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.4.png new file mode 100644 index 0000000..d074e73 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.5.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.5.png new file mode 100644 index 0000000..0cac34c Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.qml new file mode 100644 index 0000000..c418cc8 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.qml @@ -0,0 +1,2159 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "flickable-nested.0.png" + } + Frame { + msec: 32 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 48 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 64 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 80 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 96 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 112 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 128 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 144 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 160 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 176 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 192 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 208 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 224 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 240 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 256 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 272 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 288 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 304 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 320 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 336 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 352 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 368 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 384 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 400 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 416 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 432 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 448 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 464 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 480 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 496 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 512 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 528 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 544 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 560 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 576 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 592 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 608 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 624 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 640 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 656 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 672 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 688 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 704 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 720 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 736 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 752 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 768 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 784 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 800 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 816 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 832 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 848 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 864 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 880 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 896 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 912 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 928 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 206; y: 205 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 944 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Frame { + msec: 960 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 206; y: 204 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 976 + image: "flickable-nested.1.png" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 206; y: 203 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 206; y: 202 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 992 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 205; y: 201 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 205; y: 199 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1008 + hash: "7523750f0fd21aff13e6ab379e87640d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 204; y: 197 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 202; y: 196 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1024 + hash: "bddf8ca2638c9a04f7029d6982152d11" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 198; y: 191 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 197; y: 189 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1040 + hash: "bc15f1b562879d5058d3b1336fb9074e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 194; y: 185 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 194; y: 184 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1056 + hash: "3572c62d7d2b9b23a8d9d3e5037591dd" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 194; y: 182 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 194; y: 182 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1072 + hash: "ce9658887cca581a88e7db14b92d46f2" + } + Frame { + msec: 1088 + hash: "e1fe1a2e1669a200e20468b4aa98dd3d" + } + Frame { + msec: 1104 + hash: "b7582829bf01223e6641ce82f62047df" + } + Frame { + msec: 1120 + hash: "80bd41fe22fb84efb011acf50ec38574" + } + Frame { + msec: 1136 + hash: "04c8d6c3922ce9777ee27d8df59d4729" + } + Frame { + msec: 1152 + hash: "f84dba18e525f1c06548c0232a244b6d" + } + Frame { + msec: 1168 + hash: "26c74b95835e8e0da5aadc7c42cac81c" + } + Frame { + msec: 1184 + hash: "1b4fcb1f0bd83a683cfe0ac303be0033" + } + Frame { + msec: 1200 + hash: "1b4fcb1f0bd83a683cfe0ac303be0033" + } + Frame { + msec: 1216 + hash: "4df47f90656fff253883e3e2d33506dc" + } + Frame { + msec: 1232 + hash: "4df47f90656fff253883e3e2d33506dc" + } + Frame { + msec: 1248 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1264 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1280 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1296 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1312 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1328 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1344 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1360 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1376 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1392 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1408 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1424 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1440 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1456 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1472 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1488 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1504 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1520 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1536 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1552 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1568 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1584 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Frame { + msec: 1600 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 226; y: 218 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1616 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 225; y: 218 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1632 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 223; y: 217 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 222; y: 217 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1648 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 220; y: 216 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 218; y: 214 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1664 + hash: "7d0d94c4a7a9330f5bd17782ca484848" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 214; y: 212 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 212; y: 211 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1680 + hash: "54b41609ba43f710b08ba63f0b96df99" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 208; y: 208 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 207; y: 207 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1696 + hash: "8910b66b9eb1b2be80e36ed2824df1a0" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 205; y: 205 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 205; y: 205 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1712 + hash: "38df31933f34f961a9b7020ad0d469c2" + } + Frame { + msec: 1728 + hash: "7702a7f710991225d9f411e8f410b515" + } + Frame { + msec: 1744 + hash: "c90d402e68208ccfd2c7345a2bf650cd" + } + Frame { + msec: 1760 + hash: "2630ed37aaf37907d1ee48efb0239615" + } + Frame { + msec: 1776 + hash: "527725818699ce3425b5cb95a25610d5" + } + Frame { + msec: 1792 + hash: "7bd6e37853946a835973c3da213beddc" + } + Frame { + msec: 1808 + hash: "e3c5e113d992e5e50b6780185891edd7" + } + Frame { + msec: 1824 + hash: "e3c5e113d992e5e50b6780185891edd7" + } + Frame { + msec: 1840 + hash: "20ced2b9960931c4c0cbe8bcc1f9e52a" + } + Frame { + msec: 1856 + hash: "09710c8964c8b010a90c67f126acdefa" + } + Frame { + msec: 1872 + hash: "09710c8964c8b010a90c67f126acdefa" + } + Frame { + msec: 1888 + hash: "09710c8964c8b010a90c67f126acdefa" + } + Frame { + msec: 1904 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 1920 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 1936 + image: "flickable-nested.2.png" + } + Frame { + msec: 1952 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 1968 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 1984 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2000 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2016 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2032 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2048 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2064 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2080 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2096 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2112 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2128 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2144 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2160 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2176 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2192 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2208 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2224 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2240 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2256 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2272 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2288 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Frame { + msec: 2304 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 274; y: 218 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2320 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 273; y: 218 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 273; y: 217 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2336 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 272; y: 215 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 272; y: 213 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2352 + hash: "e80b03bd168ec62aba64cdf75dcd1d5f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 271; y: 210 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 270; y: 208 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2368 + hash: "79a132ab719ccdf48d367cca443cd835" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 269; y: 204 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 269; y: 202 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2384 + hash: "1f19e7d2c7494f5b603dee16e211d65d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 268; y: 196 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 268; y: 193 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2400 + hash: "64fd22407c77fac28d13035ce78c67b2" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 268; y: 186 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 266; y: 177 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2416 + hash: "f05a0f956b4964d4ebff056b63252297" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 265; y: 173 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 264; y: 167 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2432 + hash: "3de1e9a2b33e37b0fe3b799b68ec22d6" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 263; y: 164 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 263; y: 164 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2448 + hash: "71f115c60d4f20422e4ac3f319644c48" + } + Frame { + msec: 2464 + hash: "c3995ac89f0a4b3fb07401479538d338" + } + Frame { + msec: 2480 + hash: "950e83408adf55f4e7fc1c0c127caa89" + } + Frame { + msec: 2496 + hash: "5b335621a76a527d058708384c2e5635" + } + Frame { + msec: 2512 + hash: "a201ae31d5bb778bd44a49dd21951c1b" + } + Frame { + msec: 2528 + hash: "550e6708a8999d56d1f57c121228692f" + } + Frame { + msec: 2544 + hash: "d8eb4dd2b3cf50273cb7dfbb5bd658b9" + } + Frame { + msec: 2560 + hash: "aa1fd0a990e42175acc84de96b384e9d" + } + Frame { + msec: 2576 + hash: "0236fb15db30da5ec794444affee1169" + } + Frame { + msec: 2592 + hash: "a7445a70874a9767462e79e1dff88dbc" + } + Frame { + msec: 2608 + hash: "339ea6bd5b486ff85272e19e07669f0b" + } + Frame { + msec: 2624 + hash: "2b24d9d17c77cd0ac52989328dcf499b" + } + Frame { + msec: 2640 + hash: "2b24d9d17c77cd0ac52989328dcf499b" + } + Frame { + msec: 2656 + hash: "e2fcfe4f3e14e46404eb6955502180a1" + } + Frame { + msec: 2672 + hash: "5d0c9601b871690047f4df91723ccfb1" + } + Frame { + msec: 2688 + hash: "5d0c9601b871690047f4df91723ccfb1" + } + Frame { + msec: 2704 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2720 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2736 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2752 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2768 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2784 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2800 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2816 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2832 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2848 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2864 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2880 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2896 + image: "flickable-nested.3.png" + } + Frame { + msec: 2912 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2928 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2944 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Frame { + msec: 2960 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 268; y: 102 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2976 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 268; y: 103 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 268; y: 104 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2992 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 268; y: 105 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 269; y: 108 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3008 + hash: "5b5d7e880e9f4942f52a3cde738dc7fb" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 270; y: 111 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 270; y: 114 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3024 + hash: "2b24d9d17c77cd0ac52989328dcf499b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 271; y: 119 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 272; y: 122 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3040 + hash: "550e6708a8999d56d1f57c121228692f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 273; y: 130 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 274; y: 138 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3056 + hash: "57f3c0a49cef2137e3cfa435396c099e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 274; y: 142 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 274; y: 149 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3072 + hash: "0fffc659a270cc614d16ddf3fa2ab51d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 274; y: 153 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 274; y: 161 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3088 + hash: "a8d937c8379950299a6e3611ff313415" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 273; y: 165 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 272; y: 172 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3104 + hash: "46cfebbf821a08aa30055bfa8fffd137" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 271; y: 175 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 270; y: 180 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 270; y: 180 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3120 + hash: "20a32ee8ae2cf88a2cfdb2dd8552255a" + } + Frame { + msec: 3136 + hash: "20a32ee8ae2cf88a2cfdb2dd8552255a" + } + Frame { + msec: 3152 + hash: "20a32ee8ae2cf88a2cfdb2dd8552255a" + } + Frame { + msec: 3168 + hash: "20a32ee8ae2cf88a2cfdb2dd8552255a" + } + Frame { + msec: 3184 + hash: "20a32ee8ae2cf88a2cfdb2dd8552255a" + } + Frame { + msec: 3200 + hash: "20a32ee8ae2cf88a2cfdb2dd8552255a" + } + Frame { + msec: 3216 + hash: "20a32ee8ae2cf88a2cfdb2dd8552255a" + } + Frame { + msec: 3232 + hash: "20a32ee8ae2cf88a2cfdb2dd8552255a" + } + Frame { + msec: 3248 + hash: "20a32ee8ae2cf88a2cfdb2dd8552255a" + } + Frame { + msec: 3264 + hash: "20a32ee8ae2cf88a2cfdb2dd8552255a" + } + Frame { + msec: 3280 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3296 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3312 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3328 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3344 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3360 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3376 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3392 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3408 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3424 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3440 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3456 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3472 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3488 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3504 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3520 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3536 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3552 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3568 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 3584 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 352; y: 206 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3600 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 352; y: 205 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 352; y: 204 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3616 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 352; y: 201 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 352; y: 196 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3632 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 352; y: 193 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 352; y: 185 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3648 + hash: "eb718f97648438dae1440e2089434b0a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 352; y: 176 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 352; y: 172 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3664 + hash: "e4a2b82752939f351ac46032f2d3333e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 353; y: 163 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 354; y: 158 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3680 + hash: "ab1099a146433a5ec77b336673d0527c" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 356; y: 148 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 356; y: 142 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3696 + hash: "7e4ca5ba45d5de10d72ef5ab1171ead5" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 357; y: 130 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 357; y: 130 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3712 + hash: "417bb78fc4f255194a71193e388b752f" + } + Frame { + msec: 3728 + hash: "be63b1e57006d881a345db3ca66e7097" + } + Frame { + msec: 3744 + hash: "e1b96137c2cc0ef18e224a32f665de9d" + } + Frame { + msec: 3760 + hash: "6157ba3962fc7829e8693e2456fd6e8e" + } + Frame { + msec: 3776 + hash: "951ae231b7b18517f8d6504ce7f01b3d" + } + Frame { + msec: 3792 + hash: "57f60f9da1a204cc7eb930575de45ae4" + } + Frame { + msec: 3808 + hash: "008323603b48a55b589af7cbb2f1c8b0" + } + Frame { + msec: 3824 + hash: "b8447e994280cba5ccddc36e7ad3c927" + } + Frame { + msec: 3840 + hash: "98dfc2d6573e5cb7a56a893b8fecf422" + } + Frame { + msec: 3856 + image: "flickable-nested.4.png" + } + Frame { + msec: 3872 + hash: "09dabc3ef85dc857719e7d20111e6023" + } + Frame { + msec: 3888 + hash: "5864c4197fe3269c3f1ad05caf25832e" + } + Frame { + msec: 3904 + hash: "370a471a614d22d281d9987a5b6a42bf" + } + Frame { + msec: 3920 + hash: "36c74e2e325807c7c06e941581613f48" + } + Frame { + msec: 3936 + hash: "e1e2b69992294dc611e6eef7e259d4cd" + } + Frame { + msec: 3952 + hash: "e1e2b69992294dc611e6eef7e259d4cd" + } + Frame { + msec: 3968 + hash: "e1e2b69992294dc611e6eef7e259d4cd" + } + Frame { + msec: 3984 + hash: "36c74e2e325807c7c06e941581613f48" + } + Frame { + msec: 4000 + hash: "36c74e2e325807c7c06e941581613f48" + } + Frame { + msec: 4016 + hash: "bd8f39423d96fceaf577c7f792b61211" + } + Frame { + msec: 4032 + hash: "370a471a614d22d281d9987a5b6a42bf" + } + Frame { + msec: 4048 + hash: "c8fe4424d96460a2503632e3a54d4f6a" + } + Frame { + msec: 4064 + hash: "09dabc3ef85dc857719e7d20111e6023" + } + Frame { + msec: 4080 + hash: "22bff1406eba529d58320b8b19be76d9" + } + Frame { + msec: 4096 + hash: "478bc04322b93b75b5185d047c2898b7" + } + Frame { + msec: 4112 + hash: "98dfc2d6573e5cb7a56a893b8fecf422" + } + Frame { + msec: 4128 + hash: "03b96d3e148e86f1150b09696012d07c" + } + Frame { + msec: 4144 + hash: "735b24d2811beef969477c8b0f400d32" + } + Frame { + msec: 4160 + hash: "b8399d2a7a6de0b5f81e68e8f8825622" + } + Frame { + msec: 4176 + hash: "766a97e0881b623a0de93babfa841125" + } + Frame { + msec: 4192 + hash: "008323603b48a55b589af7cbb2f1c8b0" + } + Frame { + msec: 4208 + hash: "3da913235e4916b4691e3d089dc7b52f" + } + Frame { + msec: 4224 + hash: "3da913235e4916b4691e3d089dc7b52f" + } + Frame { + msec: 4240 + hash: "8c7f6ff7b3db65d7dd9ac4d18545f0d1" + } + Frame { + msec: 4256 + hash: "8c7f6ff7b3db65d7dd9ac4d18545f0d1" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 346; y: 95 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4272 + hash: "8c7f6ff7b3db65d7dd9ac4d18545f0d1" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 346; y: 98 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 346; y: 103 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4288 + hash: "951ae231b7b18517f8d6504ce7f01b3d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 348; y: 110 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 348; y: 115 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4304 + hash: "364283bbbcedabc87689ec174ae29818" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 351; y: 124 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 353; y: 129 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4320 + hash: "6a8a59ba8cf0539704fc035d7d5def41" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 358; y: 141 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 361; y: 145 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4336 + hash: "d4626b39fbf24cc6a4e23ef33a570add" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 370; y: 163 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4352 + hash: "255604ac684a18e272dccfa9a81fa1bb" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 376; y: 172 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4368 + hash: "2696641e48ea2a0ccfc65057b283814f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 377; y: 175 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 377; y: 175 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4384 + hash: "4ae011d8d81c57f9e2495d32a90fb5c0" + } + Frame { + msec: 4400 + hash: "c07f57059244b1164e698430b20aac8e" + } + Frame { + msec: 4416 + hash: "d39c21bc6fc079c76ea78d1a3fb0c974" + } + Frame { + msec: 4432 + hash: "f955985ee02fcb810ab8c5f4790f5c12" + } + Frame { + msec: 4448 + hash: "d06b83769bf0f0331e53c270f5dc294c" + } + Frame { + msec: 4464 + hash: "a49ef3866e3f71c26c57fcd616a6dc4c" + } + Frame { + msec: 4480 + hash: "086f4bb966b2076f51b1f615368afda5" + } + Frame { + msec: 4496 + hash: "898de0b200cb83c9724869dd2b74ed52" + } + Frame { + msec: 4512 + hash: "47833f93c5c55f57de5733950ba53714" + } + Frame { + msec: 4528 + hash: "0ced71db7e8c5b8ce8e195a7b821507d" + } + Frame { + msec: 4544 + hash: "84888b8748e297ed4e0525019865ea2b" + } + Frame { + msec: 4560 + hash: "0f62d1aaa0fec0dd90351258a3745869" + } + Frame { + msec: 4576 + hash: "e34a874942161ea830907f94040fc0a5" + } + Frame { + msec: 4592 + hash: "9031e4ad8ee57a8b826d6a6394f0feb9" + } + Frame { + msec: 4608 + hash: "9031e4ad8ee57a8b826d6a6394f0feb9" + } + Frame { + msec: 4624 + hash: "cc8a2477368001015b68c99db95ebaa1" + } + Frame { + msec: 4640 + hash: "01c0f4d5b155eb16ac364b24d5085bac" + } + Frame { + msec: 4656 + hash: "4c4f318b03e0da461bcecb61f43ef3cd" + } + Frame { + msec: 4672 + hash: "dffd22d719f18c943cd0c30afe272434" + } + Frame { + msec: 4688 + hash: "4f7ab0450512ae1319dad22a6e0400b7" + } + Frame { + msec: 4704 + hash: "ea29e23bdb49a30694640dfb078c796a" + } + Frame { + msec: 4720 + hash: "80739ed287906d0b55297be4b74a54cb" + } + Frame { + msec: 4736 + hash: "8d9117cf841c4b158f30b79ac8f2afb0" + } + Frame { + msec: 4752 + hash: "1850e9117160b2bd1865274092f9ec84" + } + Frame { + msec: 4768 + hash: "07945c8954860895f95f8e352c49e0a5" + } + Frame { + msec: 4784 + hash: "d0fa6087d2859446ff8f317c9d7dafe1" + } + Frame { + msec: 4800 + hash: "8ebba2084793d90a640ec2fb12dc0547" + } + Frame { + msec: 4816 + image: "flickable-nested.5.png" + } + Frame { + msec: 4832 + hash: "77d479675c36ecda0926061449f5a60b" + } + Frame { + msec: 4848 + hash: "77d479675c36ecda0926061449f5a60b" + } + Frame { + msec: 4864 + hash: "b968c1528ce7ecf80008fbd56f0ca9a9" + } + Frame { + msec: 4880 + hash: "b968c1528ce7ecf80008fbd56f0ca9a9" + } + Frame { + msec: 4896 + hash: "b968c1528ce7ecf80008fbd56f0ca9a9" + } + Frame { + msec: 4912 + hash: "b968c1528ce7ecf80008fbd56f0ca9a9" + } + Frame { + msec: 4928 + hash: "b968c1528ce7ecf80008fbd56f0ca9a9" + } + Frame { + msec: 4944 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 4960 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 4976 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 4992 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5008 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5024 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5040 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5056 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5072 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5088 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5104 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5120 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5136 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5152 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5168 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5184 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5200 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5216 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5232 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5248 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5264 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5280 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5296 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5312 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5328 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5344 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5360 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5376 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5392 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5408 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5424 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5440 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5456 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5472 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5488 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5504 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5520 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5536 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5552 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5568 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5584 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5600 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5616 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5632 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5648 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5664 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5680 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } + Frame { + msec: 5696 + hash: "38f29e86bd9bfe4df04c6411374f76ae" + } +} diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-nested.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-nested.qml new file mode 100644 index 0000000..9335b9e --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-nested.qml @@ -0,0 +1,50 @@ +import QtQuick 1.0 + +Item { + width: 640 + height: 400 + + Flickable { + objectName: "flick 1" + anchors.fill: parent + contentWidth: width + 100 + contentHeight: height + 100 + + Rectangle { + width: 300 + height: 300 + color: "blue" + + Flickable { + objectName: "flick 2" + width: 300 + height: 300 + clip: true + contentWidth: 400 + contentHeight: 400 + + Rectangle { + width: 100 + height: 100 + anchors.centerIn: parent + color: "yellow" + + Flickable { + objectName: "flick 3" + anchors.fill: parent + clip: true + contentWidth: 150 + contentHeight: 150 + Rectangle { + x: 80 + y: 80 + width: 50 + height: 50 + color: "green" + } + } + } + } + } + } +} -- cgit v0.12 From 1699e8240b8073241f1aaddc12ded6065ef520b9 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 23 Dec 2010 11:02:04 +1000 Subject: Ensure PathView doesn't jump when starting to drag. Task-number: QTBUG-16133 Reviewed-by: Bea Lam --- .../graphicsitems/qdeclarativepathview.cpp | 4 +- .../data/test-pathview-2.0.png | Bin 1114 -> 1114 bytes .../data/test-pathview-2.1.png | Bin 1105 -> 1119 bytes .../data/test-pathview-2.2.png | Bin 1088 -> 1102 bytes .../data/test-pathview-2.3.png | Bin 1096 -> 1092 bytes .../data/test-pathview-2.4.png | Bin 1143 -> 1143 bytes .../data/test-pathview-2.5.png | Bin 1143 -> 1143 bytes .../qdeclarativepathview/data/test-pathview-2.qml | 366 +++++------ .../qdeclarativepathview/data/test-pathview.0.png | Bin 1169 -> 1169 bytes .../qdeclarativepathview/data/test-pathview.1.png | Bin 1182 -> 1172 bytes .../qdeclarativepathview/data/test-pathview.2.png | Bin 1211 -> 1201 bytes .../qdeclarativepathview/data/test-pathview.3.png | Bin 1184 -> 1164 bytes .../qdeclarativepathview/data/test-pathview.4.png | Bin 1152 -> 1226 bytes .../qdeclarativepathview/data/test-pathview.5.png | Bin 1141 -> 1192 bytes .../qdeclarativepathview/data/test-pathview.6.png | Bin 1189 -> 1188 bytes .../qdeclarativepathview/data/test-pathview.qml | 672 ++++++++++----------- .../qdeclarativepathview/test-pathview.qml | 2 + 17 files changed, 524 insertions(+), 520 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index 87ea214..a6f44b3 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -1133,8 +1133,10 @@ void QDeclarativePathViewPrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent QPointF pathPoint = pointNear(event->pos(), &newPc); if (!stealMouse) { QPointF delta = pathPoint - startPoint; - if (qAbs(delta.x()) > QApplication::startDragDistance() || qAbs(delta.y()) > QApplication::startDragDistance()) + if (qAbs(delta.x()) > QApplication::startDragDistance() || qAbs(delta.y()) > QApplication::startDragDistance()) { stealMouse = true; + startPc = newPc; + } } if (stealMouse) { diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png index 699f83e..347e773 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png index a742a6a..370ca80 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png index 71abae2..97e3906 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png index a6e6b3e..5fa3c67 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png index 9f125c4..ce11c09 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png index 41d0cd5..d155742 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml index b75d140..304d5c7 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml @@ -222,7 +222,7 @@ VisualTest { } Frame { msec: 752 - hash: "e21cac055208e47e267ac906c7c2ca9c" + hash: "d2dda5bec262721d653e88ec3eaeca57" } Mouse { type: 5 @@ -234,7 +234,7 @@ VisualTest { } Frame { msec: 768 - hash: "131e094a79edbeea9a1b981592e55abf" + hash: "d61d21ab4d83b8578494720d9bfe6fa8" } Mouse { type: 5 @@ -254,7 +254,7 @@ VisualTest { } Frame { msec: 784 - hash: "73faabf52bd2af8d8b9d28ce21e5e77b" + hash: "0a178235529d721529e8dc3b439a64c9" } Mouse { type: 5 @@ -266,7 +266,7 @@ VisualTest { } Frame { msec: 800 - hash: "359554a95362db1734f606cf677001fc" + hash: "c800609ffea814ba7cc2441790157245" } Mouse { type: 5 @@ -286,43 +286,43 @@ VisualTest { } Frame { msec: 816 - hash: "8ef4ecc5c5ba578f0279dc57a6c17ccd" + hash: "afcb452d41c6e895309bb921a1ad1d31" } Frame { msec: 832 - hash: "69c3d9d2700dd395b656b0b09fa63511" + hash: "02d8f91c33f62aaf366bcfd03d232269" } Frame { msec: 848 - hash: "2bbcc36d72c3e9a4b672a46f2aae5076" + hash: "1ba9bc8c2b941fd0ec82f211eb559682" } Frame { msec: 864 - hash: "125a5f0c8efdf97676edbe379660dcce" + hash: "ee8680df3c58a48f3fff4a8fc221e38c" } Frame { msec: 880 - hash: "4347a02227207fbf870b6aed76131619" + hash: "36c04a2bd58124877a332bb6a262a7e5" } Frame { msec: 896 - hash: "e08b494c818669bfc48273598574d22e" + hash: "e6ea836d68c54a8308e10f33d4eb8b98" } Frame { msec: 912 - hash: "186cb5465f45c0df8082ec8cad6ee8b1" + hash: "f2400819feb116ae3b327284bbb292ff" } Frame { msec: 928 - hash: "91d04d4469492c3bb2a1ed415dcd904c" + hash: "5d9a3458cb59ede36e7b51bac869785a" } Frame { msec: 944 - hash: "8cc8ef251d68af926a8f300b8666ecfd" + hash: "b859b690c633a9fec87941e7c89f5d19" } Frame { msec: 960 - hash: "42f64722245f8519386e75ce7e3c0cd9" + hash: "ef0b66e789a8e88389e16bfa36b9f6e2" } Frame { msec: 976 @@ -330,195 +330,195 @@ VisualTest { } Frame { msec: 992 - hash: "058311da9dcf73a4b4928038334b04b5" + hash: "493e3c7b0de4a7b4b46678fe4ce9a763" } Frame { msec: 1008 - hash: "ea662934ee0c3c8d4dbde3ad49448922" + hash: "b7056d635c69b8e5bf98872f4c07ed43" } Frame { msec: 1024 - hash: "01991a871819e7bdbf817580f720ead6" + hash: "68aa8bd6709e1b49cfefc4594c236c46" } Frame { msec: 1040 - hash: "69a7fe47ae589bcc2607cc42fcea7451" + hash: "4b28ebf737b8c4228771122d844b8166" } Frame { msec: 1056 - hash: "8240d087b767311e00b7dd4b8726246c" + hash: "b04155316770a1265e5dc431e1b9a9a1" } Frame { msec: 1072 - hash: "cc70c8e79d68f09e6db0dd43b99906b7" + hash: "d540453541aba394b0958cdc48f91d48" } Frame { msec: 1088 - hash: "2bfabef74bc6e1dbf72111838a0e7557" + hash: "b3e7cbc83c65ec61c768757798b17c58" } Frame { msec: 1104 - hash: "66616f01553364c5bd589b781e22163a" + hash: "b12b31d4959a697fcc8e54f1c846eef9" } Frame { msec: 1120 - hash: "58b9de84ebdaabee3917608f2af3bbdb" + hash: "77c3bbb94471cfbfd23cc3914d796dfc" } Frame { msec: 1136 - hash: "964d96b9b783efb1053501f8a6931248" + hash: "41975592e60f08a0296a8babe1da2df3" } Frame { msec: 1152 - hash: "055b77b921a2bac71b6780ab3179f19f" + hash: "0a5eea8a11b15ee8583f187f336f56c7" } Frame { msec: 1168 - hash: "074904f31b4f7cf0679f0bf7bba30af2" + hash: "bf9c02945fdee4b06353f8f7f4fca2a3" } Frame { msec: 1184 - hash: "f020a490b6800d5b4402ecb9a8bcd436" + hash: "157c92d133a39a2b1d20a551303d2f6f" } Frame { msec: 1200 - hash: "1615bdedf92f91f089e494d893840c4b" + hash: "213716cad9fa2179a17a512e8c03c8f5" } Frame { msec: 1216 - hash: "b6892f6a5db6d211f0d1bb2bbe5045bf" + hash: "0ec517c50e9e36fef4fb14318e298723" } Frame { msec: 1232 - hash: "5f0d903ba682923ac69454026a359ed9" + hash: "bab010fe0f5d3b57fd556a9b709c285e" } Frame { msec: 1248 - hash: "da5bae496a9ad28585151f4c75ee0c9f" + hash: "b6bdf2f21c4137d4b5f25e0fe728bba5" } Frame { msec: 1264 - hash: "68f553248f7ca116671782d1c357b552" + hash: "c091e46064c8096568224ed7e4c8dc4f" } Frame { msec: 1280 - hash: "5503df04dd7f4c88314f9d309a5b36b4" + hash: "c0a6ede96566533ab35384afa535530f" } Frame { msec: 1296 - hash: "cc48c1f58b553adcb27d60f176e2b910" + hash: "f61f5c7617700b9aad71206cfc9e402e" } Frame { msec: 1312 - hash: "661f546199d8753a7b6f6ccea5928c12" + hash: "c70c106d128051c06da3acdf817f5ffb" } Frame { msec: 1328 - hash: "0fd70052c100f77bddbad177d9e5573d" + hash: "624d7c7fb2f39225d51d1a548aa186ed" } Frame { msec: 1344 - hash: "488e0652c0ed82a014de63a64145c34c" + hash: "f052610f17a7484bf6cb2bd07aa91af6" } Frame { msec: 1360 - hash: "8b6bf2519080a6e4a61fe216f72dfa09" + hash: "44cd80041a1965c8c60fdffd9ae19395" } Frame { msec: 1376 - hash: "4dab1827f6ce9561297fce8e067df1bd" + hash: "7597f86b537fbd70260908c973f9db21" } Frame { msec: 1392 - hash: "b3f4c5cd728eaf2b791612a7fea64e7b" + hash: "30cd60db9aa2df2adc7d01091c905cb4" } Frame { msec: 1408 - hash: "3d01abd0b8a5a62d58a4c09546f212d8" + hash: "8da4613759e9bcb926a0c84556213eb5" } Frame { msec: 1424 - hash: "e76796498cf595c60d4b60cc0e320601" + hash: "1085fcc81f0aed8508817839ca748359" } Frame { msec: 1440 - hash: "1b31e96f2823e78a0c4029e7bc45b9f2" + hash: "b87f002bf6fb0684f0b3cf565507e066" } Frame { msec: 1456 - hash: "f75c182dc24f4fabe1034ee494dba2ad" + hash: "b60916a57aec6ebbd8b69be7c8d66e19" } Frame { msec: 1472 - hash: "646c12edadf350405709860381cfced6" + hash: "a28e1538d18ccb7485d0306b9f7b18a6" } Frame { msec: 1488 - hash: "b6719406da9f2484fe55e3c69184f86c" + hash: "832c857f2e05f2f82308cbf91f7bf401" } Frame { msec: 1504 - hash: "5456857d6d48d064df1cb3f35d8447b5" + hash: "ca3e50cd337a07ef07f063be28fa6dc2" } Frame { msec: 1520 - hash: "8d1809b568345e1532fb6d9428fc9729" + hash: "3ecf7faa733653ef20e4a26eb47d63d1" } Frame { msec: 1536 - hash: "5cffa76fe09a771a9f62a9f0392f0431" + hash: "f17a6be2e183f4c87e31004458e5052c" } Frame { msec: 1552 - hash: "8de59915e874ce829c691a19ac930f28" + hash: "bfa62672ee7fcd9c3a75b63198a4c2bf" } Frame { msec: 1568 - hash: "9027bbf8121f70d26530f70423ec05b7" + hash: "cdaafe7f622c18c2409ac539649de1cd" } Frame { msec: 1584 - hash: "d3d1d8b9f7b4eb74a8b7ae5cf19a8e20" + hash: "c957f5c58e0a9b315b51ac1012709493" } Frame { msec: 1600 - hash: "81ffcc0147e3124a3015deb7c0dbfd90" + hash: "925c55a8564f2318f9de4bd406cb5b13" } Frame { msec: 1616 - hash: "ca0c96e908f05c4ee1af1f80d7b432aa" + hash: "466208a8f6ecf45393be01a6dd7f2b0f" } Frame { msec: 1632 - hash: "2bdb6fbf942623856a6963c335794dd2" + hash: "35cff8c0f4b503ba4948966079484feb" } Frame { msec: 1648 - hash: "18ac264d9ea9b592b0738f1cf732f678" + hash: "47472faf5e9bf4b4e514abe55f1e0b72" } Frame { msec: 1664 - hash: "1ee9adbbae7b97dc050c82b8ed7b0aad" + hash: "b699165e354bcadfd0d914d9ecb3d2aa" } Frame { msec: 1680 - hash: "b502390c452883ade550d2761bb09d3d" + hash: "e255c047ce78f5677ccec8bd9737201a" } Frame { msec: 1696 - hash: "31a6f573fbb3f545ee051e2290938004" + hash: "bd4f08095a9c546a42c85e6df6eaf655" } Frame { msec: 1712 - hash: "3be9788228d9e540313e75671319c5b7" + hash: "ca65869f48b169260c3756d846a12f36" } Frame { msec: 1728 - hash: "23cbd718154f939d8270674e8f7607f0" + hash: "1921889beb8e61c8b959d4affa814465" } Frame { msec: 1744 - hash: "5f7f49b894b80ddd7cdc544a49ec24a2" + hash: "a9dda9ebaa97133c671917473721272c" } Mouse { type: 2 @@ -538,11 +538,11 @@ VisualTest { } Frame { msec: 1760 - hash: "2a1ddee3d3a0c2a4fffab3988e35e274" + hash: "cab96d2118b31d43e85dc902df2ed8ed" } Frame { msec: 1776 - hash: "2a1ddee3d3a0c2a4fffab3988e35e274" + hash: "cab96d2118b31d43e85dc902df2ed8ed" } Mouse { type: 5 @@ -562,7 +562,7 @@ VisualTest { } Frame { msec: 1792 - hash: "5594b9139480ba1c814509a049f9b6c5" + hash: "d21c8af68b314800b86922493db6553e" } Mouse { type: 5 @@ -574,7 +574,7 @@ VisualTest { } Frame { msec: 1808 - hash: "d8729deb404f5b821264743943adb288" + hash: "a80c0f6f679ba5f1354f8e16677c1125" } Mouse { type: 5 @@ -586,7 +586,7 @@ VisualTest { } Frame { msec: 1824 - hash: "6de642baf7698ec65d48ccf0a1e8e7db" + hash: "d8729deb404f5b821264743943adb288" } Mouse { type: 5 @@ -606,7 +606,7 @@ VisualTest { } Frame { msec: 1840 - hash: "f6732999861d1f638484a5aaa9cf0550" + hash: "87d41239eb7e170fa7a1ed523a9af942" } Mouse { type: 5 @@ -618,7 +618,7 @@ VisualTest { } Frame { msec: 1856 - hash: "7cd7c1679838f35556bd4ee4565b7a86" + hash: "1c185649e08a54a6949409ed7ee5dc60" } Mouse { type: 5 @@ -638,7 +638,7 @@ VisualTest { } Frame { msec: 1872 - hash: "4276a4d9350503603b0c9c98552697b3" + hash: "d82969ef0f4baf3c51e112e049cb1334" } Mouse { type: 5 @@ -650,7 +650,7 @@ VisualTest { } Frame { msec: 1888 - hash: "954a47627aee0a1128a78191bf32d984" + hash: "e746a3eb8527036b09afb9cdd3d15648" } Mouse { type: 5 @@ -662,7 +662,7 @@ VisualTest { } Frame { msec: 1904 - hash: "360a47795f7f9389f82f2f55fa1fe83f" + hash: "e1d6c01f6cd66a5bcdb08ca810a07282" } Mouse { type: 5 @@ -674,7 +674,7 @@ VisualTest { } Frame { msec: 1920 - hash: "19d4284791d0031342ba995bd17a7833" + hash: "fd0e9cf835131ee6cc5ecf67c6724d73" } Mouse { type: 5 @@ -706,7 +706,7 @@ VisualTest { } Frame { msec: 1952 - hash: "e9cd8fb810ecf39a90af039ead97aaf1" + hash: "69c17a9c18795b1d8ae63d36d76af626" } Mouse { type: 5 @@ -726,7 +726,7 @@ VisualTest { } Frame { msec: 1968 - hash: "42df1a0fbbe7cce5f2359d9e02696299" + hash: "c7ca4762498af158a2f2da6f5ae560ce" } Mouse { type: 5 @@ -738,7 +738,7 @@ VisualTest { } Frame { msec: 1984 - hash: "cc71434d6bd162386b80cb3b7e387116" + hash: "f500232133ec07a3b833b06425379484" } Mouse { type: 5 @@ -758,7 +758,7 @@ VisualTest { } Frame { msec: 2000 - hash: "a130b471b3903f3f1d77f2306da2b92e" + hash: "0a0cd0433e206dfc923ec0d3617e04a1" } Mouse { type: 5 @@ -770,7 +770,7 @@ VisualTest { } Frame { msec: 2016 - hash: "5bdb7472e325651e891c115953afdb39" + hash: "1754875ee6a5712ffb8ce1bbae6d4ed1" } Mouse { type: 5 @@ -782,7 +782,7 @@ VisualTest { } Frame { msec: 2032 - hash: "ab3a64b41c67a0b8a6c0830c0e0cb797" + hash: "1e743264f0a312bc0d0a023fbc6db832" } Mouse { type: 5 @@ -794,7 +794,7 @@ VisualTest { } Frame { msec: 2048 - hash: "8eb1f2c8c02c2acf4262e05000045649" + hash: "ab3a64b41c67a0b8a6c0830c0e0cb797" } Mouse { type: 5 @@ -806,7 +806,7 @@ VisualTest { } Frame { msec: 2064 - hash: "514220d357c4a26e4aaf9ed20d3f4f33" + hash: "d05f721f1d7d23d6e0cc67993bf1fa8f" } Mouse { type: 5 @@ -818,7 +818,7 @@ VisualTest { } Frame { msec: 2080 - hash: "e44526ef273048028d5989fc662eb7e6" + hash: "419c09739f855c53be3427a71aa3faf9" } Mouse { type: 5 @@ -838,7 +838,7 @@ VisualTest { } Frame { msec: 2096 - hash: "29ac091428a89cfcb4c52c08e0e10327" + hash: "f0ae80ed5965d7531d6a653c80eed444" } Mouse { type: 5 @@ -858,7 +858,7 @@ VisualTest { } Frame { msec: 2112 - hash: "82beb845af88fc9432dc104ff805a146" + hash: "1419fe55cc28ce9690846d4c03275fe7" } Mouse { type: 5 @@ -870,7 +870,7 @@ VisualTest { } Frame { msec: 2128 - hash: "371392f267b2c1f4e29963506180e246" + hash: "2e22df53697a599b0e44fb2a3986dcd0" } Mouse { type: 5 @@ -882,11 +882,11 @@ VisualTest { } Frame { msec: 2144 - hash: "1da06d036cc0a2d2de34eee37b6981c0" + hash: "96f763c555b523d9b7ed7a0a159db368" } Frame { msec: 2160 - hash: "1da06d036cc0a2d2de34eee37b6981c0" + hash: "96f763c555b523d9b7ed7a0a159db368" } Mouse { type: 5 @@ -898,31 +898,31 @@ VisualTest { } Frame { msec: 2176 - hash: "4980de22342d1085e205401090777d24" + hash: "20f9cf7787c8cfd4843289f5ab2012e7" } Frame { msec: 2192 - hash: "4980de22342d1085e205401090777d24" + hash: "20f9cf7787c8cfd4843289f5ab2012e7" } Frame { msec: 2208 - hash: "4980de22342d1085e205401090777d24" + hash: "20f9cf7787c8cfd4843289f5ab2012e7" } Frame { msec: 2224 - hash: "4980de22342d1085e205401090777d24" + hash: "20f9cf7787c8cfd4843289f5ab2012e7" } Frame { msec: 2240 - hash: "4980de22342d1085e205401090777d24" + hash: "20f9cf7787c8cfd4843289f5ab2012e7" } Frame { msec: 2256 - hash: "4980de22342d1085e205401090777d24" + hash: "20f9cf7787c8cfd4843289f5ab2012e7" } Frame { msec: 2272 - hash: "4980de22342d1085e205401090777d24" + hash: "20f9cf7787c8cfd4843289f5ab2012e7" } Mouse { type: 5 @@ -934,7 +934,7 @@ VisualTest { } Frame { msec: 2288 - hash: "e0a52543b976dc998615704c63b1f3e9" + hash: "1241895174f4d8e4386c3957e3d2e292" } Mouse { type: 5 @@ -946,7 +946,7 @@ VisualTest { } Frame { msec: 2304 - hash: "82beb845af88fc9432dc104ff805a146" + hash: "1419fe55cc28ce9690846d4c03275fe7" } Mouse { type: 5 @@ -958,7 +958,7 @@ VisualTest { } Frame { msec: 2320 - hash: "e44526ef273048028d5989fc662eb7e6" + hash: "419c09739f855c53be3427a71aa3faf9" } Mouse { type: 5 @@ -978,7 +978,7 @@ VisualTest { } Frame { msec: 2336 - hash: "8eb1f2c8c02c2acf4262e05000045649" + hash: "ab3a64b41c67a0b8a6c0830c0e0cb797" } Mouse { type: 5 @@ -990,7 +990,7 @@ VisualTest { } Frame { msec: 2352 - hash: "442958c3a705745204db96ff9902b7fc" + hash: "a130b471b3903f3f1d77f2306da2b92e" } Mouse { type: 5 @@ -1002,31 +1002,31 @@ VisualTest { } Frame { msec: 2368 - hash: "a130b471b3903f3f1d77f2306da2b92e" + hash: "0a0cd0433e206dfc923ec0d3617e04a1" } Frame { msec: 2384 - hash: "a130b471b3903f3f1d77f2306da2b92e" + hash: "0a0cd0433e206dfc923ec0d3617e04a1" } Frame { msec: 2400 - hash: "a130b471b3903f3f1d77f2306da2b92e" + hash: "0a0cd0433e206dfc923ec0d3617e04a1" } Frame { msec: 2416 - hash: "a130b471b3903f3f1d77f2306da2b92e" + hash: "0a0cd0433e206dfc923ec0d3617e04a1" } Frame { msec: 2432 - hash: "a130b471b3903f3f1d77f2306da2b92e" + hash: "0a0cd0433e206dfc923ec0d3617e04a1" } Frame { msec: 2448 - hash: "a130b471b3903f3f1d77f2306da2b92e" + hash: "0a0cd0433e206dfc923ec0d3617e04a1" } Frame { msec: 2464 - hash: "a130b471b3903f3f1d77f2306da2b92e" + hash: "0a0cd0433e206dfc923ec0d3617e04a1" } Mouse { type: 5 @@ -1046,7 +1046,7 @@ VisualTest { } Frame { msec: 2480 - hash: "374dc7c3ea0c93ac93a857a4620bc031" + hash: "47e86b008567366f37ac043ed8802d53" } Mouse { type: 5 @@ -1058,7 +1058,7 @@ VisualTest { } Frame { msec: 2496 - hash: "0b943f48b39053bfc906a4a47a37d68a" + hash: "92e1d5dbc85e777785cc68171a0a3fbf" } Mouse { type: 5 @@ -1070,7 +1070,7 @@ VisualTest { } Frame { msec: 2512 - hash: "099fbdf1560dd79b700914863406c904" + hash: "360a47795f7f9389f82f2f55fa1fe83f" } Mouse { type: 5 @@ -1090,7 +1090,7 @@ VisualTest { } Frame { msec: 2528 - hash: "3aa1614cc49504d19e979ebf190f2970" + hash: "acefb43050e140d689f1d377f50f5c83" } Mouse { type: 5 @@ -1102,7 +1102,7 @@ VisualTest { } Frame { msec: 2544 - hash: "837420c71a5010f25cccd05e5e9b3eec" + hash: "4bc43ae81aac757c872157ac9b41a2d9" } Mouse { type: 5 @@ -1114,7 +1114,7 @@ VisualTest { } Frame { msec: 2560 - hash: "871349fc09f418717231b8f8e20a7fff" + hash: "41421089f087c54ebcd9fa44e95bd96e" } Mouse { type: 5 @@ -1134,7 +1134,7 @@ VisualTest { } Frame { msec: 2576 - hash: "9b6022024aae22ec1f522fd00ed29e9b" + hash: "db0f09393b5c9284142f9eb3cb5952ce" } Mouse { type: 5 @@ -1154,79 +1154,79 @@ VisualTest { } Frame { msec: 2592 - hash: "8d9410909ae259388fa94b3a60342608" + hash: "9491689e51ec46bec07fb8b280daef80" } Frame { msec: 2608 - hash: "0ceb355351ac99458ba75776c11b3039" + hash: "44a30531642ada65c052afe30874d7ba" } Frame { msec: 2624 - hash: "61ca917ecc8ad4c35b7f2a3b828542bf" + hash: "6bf415b82e7cfa68b8321571ab619c3f" } Frame { msec: 2640 - hash: "fd5db933d1d8684b15eb5239d19d8919" + hash: "645e43948279d528020070125b71c33b" } Frame { msec: 2656 - hash: "13f466a82ee22cabf5cbd2463f55b46a" + hash: "495d14df729eede7e560f2e841bae142" } Frame { msec: 2672 - hash: "3b7f7880f5b568a0e45cd0e268822f3a" + hash: "fa3b12e9869bf4254c8cdf6e5b10bb2d" } Frame { msec: 2688 - hash: "cca22501c3b5a2ed4264ba060eeb1a6e" + hash: "482ce41c4b918a71b803c5f521ea494e" } Frame { msec: 2704 - hash: "efe5258ac5962d1d2bfa4286c1621830" + hash: "79d70563c7e139d9f9785565219133c7" } Frame { msec: 2720 - hash: "141998cff765a4e90836b871f229a1ca" + hash: "0dc70772aa50445c1cb7dbd8ee0092b0" } Frame { msec: 2736 - hash: "9d684675fa883d5488194effcb1d8d0a" + hash: "222d638b8fb896563028f029e6fb3c49" } Frame { msec: 2752 - hash: "fa87f781048f264ddf447441a714ee50" + hash: "20b8fc718d9329c9c8901fdfe14557a2" } Frame { msec: 2768 - hash: "61b4992b9c52222345c9ada3148d50f9" + hash: "e3972b3244e4a98c9ee4df2d4b623c12" } Frame { msec: 2784 - hash: "3e255a634d215746cb95f5d765335ea2" + hash: "e3a4b357c00d3d49e4a7d90f6f57054c" } Frame { msec: 2800 - hash: "d64a755e47a502244e7f14f2091f0ca6" + hash: "44ad81d2ad0d502b003e148412871a41" } Frame { msec: 2816 - hash: "582562992b0652f995b439897182e0f8" + hash: "47d757dab5c72cad08cb8026631d67e6" } Frame { msec: 2832 - hash: "2d69b1a274c262faf5ce9ed3191c7d22" + hash: "8522a3b6202b303a9e65a9e136423e27" } Frame { msec: 2848 - hash: "36c04a2bd58124877a332bb6a262a7e5" + hash: "70e3cd650472d0e95f4d6ca9e34a2ce1" } Frame { msec: 2864 - hash: "798711925da8f5034039dad86cc1fad1" + hash: "19a7825cd8c0eaa6f313ec77fff9ec1b" } Frame { msec: 2880 - hash: "31495157a10c3bb4dd70cfd857fd07e6" + hash: "579688ff6ec910570c0c0c60fdf44cf6" } Frame { msec: 2896 @@ -1234,207 +1234,207 @@ VisualTest { } Frame { msec: 2912 - hash: "b81330eb50dbd39f1abcdb8ff1553d08" + hash: "7ab8cf0d0b650e8f994a9beed8be29fb" } Frame { msec: 2928 - hash: "ececcb86b76e9cd2f57585bd87e16bef" + hash: "92e9be6d36844bb475b861ba9c4bc3ff" } Frame { msec: 2944 - hash: "2c37e2c24cf22a334cfcc6f2691ad9fb" + hash: "08b9cce3b2071b328054af6bcb6755c7" } Frame { msec: 2960 - hash: "ad0572020d273dbca046357aa0f8bf3b" + hash: "b505d2f41a6db06d4ca03f5340800aa6" } Frame { msec: 2976 - hash: "51a469e059a5e1a3675db731f55209d3" + hash: "f0267f59e247e24e4cf9c56f8931112b" } Frame { msec: 2992 - hash: "dca7d50a3faab1f049bece34bd16b8c4" + hash: "ddbc73e2df4da11d5122539a00c126de" } Frame { msec: 3008 - hash: "86dc86bafb01fa086caa3b22f9d393d9" + hash: "8dd67df95fae14079ed5b83c421a5b6e" } Frame { msec: 3024 - hash: "05754bd86070a6f01bf90ca2b964f695" + hash: "7b217f7c51087a07e8922b0286b2c1dc" } Frame { msec: 3040 - hash: "911ec290ba303f0cac258cbb893bbf78" + hash: "e464b5121f3204c64cafe2f5e31cf497" } Frame { msec: 3056 - hash: "f27f29249426f46b8fb508372bcbb32d" + hash: "7fc2018f8db17b65fd01b2ddfa44f66d" } Frame { msec: 3072 - hash: "2f452e2d519f33ee03db67ebd7f69e3b" + hash: "a5d1871511eac7224292b3552da466a8" } Frame { msec: 3088 - hash: "35cf7747a75ea3f727c2fe1dae6136c5" + hash: "2f0a55cf3cd30da77fbb73e749b729a3" } Frame { msec: 3104 - hash: "6773187693f52a8f2c0e358e379b4d21" + hash: "9aab649b6664c179878d0ead438dd751" } Frame { msec: 3120 - hash: "abca1f00f7ec60c8c80ba5345898e54b" + hash: "2ad733363d239d9a3ea1c31427a3b3fe" } Frame { msec: 3136 - hash: "9bee1da64534da97de349e1ee973cc9c" + hash: "e73b4fd7cb6285df9a77d666f25ab245" } Frame { msec: 3152 - hash: "087df06ca720918482f2e29653c7fbac" + hash: "53b05d8be52a74c3a24b88779d4927bf" } Frame { msec: 3168 - hash: "5b08911bf0975bd6615bf29294e4b1f5" + hash: "04fc6aac5f090960cd87eefb4273fb0f" } Frame { msec: 3184 - hash: "dead4bb3768b65418f68bae7dd0bf004" + hash: "294c842a71b5e4927146952ce865c8a2" } Frame { msec: 3200 - hash: "6bfe4c866936d8ae509650419ae12455" + hash: "ac6f7afb4a5e67e2edd8300e7dfdff13" } Frame { msec: 3216 - hash: "7428bdd9609a2594be08fdeac6ff1e17" + hash: "8a7ab6dc549b247f3b897e098d784dd8" } Frame { msec: 3232 - hash: "d02f9f693e0ae8c7034bf727064ec28a" + hash: "0a3144254f66a6b005b95a026496cd32" } Frame { msec: 3248 - hash: "b6284efd849547bbfefc22ec77d61062" + hash: "ca457a1c503a980687926e31ac16995b" } Frame { msec: 3264 - hash: "4b78b647be8e918e85edab0c23b6f882" + hash: "c17922ca04f5ce9916e2907a6c28bf8b" } Frame { msec: 3280 - hash: "c4a02c18ce3574d057e6a54b30efadb3" + hash: "b2a071734226b905f6c6f5652f645517" } Frame { msec: 3296 - hash: "d1d190010239d0b02a697d1c63c748ab" + hash: "1f41a314699151771d7d1ca672aaba8f" } Frame { msec: 3312 - hash: "b198689d11aa59d937297e6fcf675c93" + hash: "de94c2ad2e74036d975e8402dd8b06e9" } Frame { msec: 3328 - hash: "218f3371beea895aefd28aa874012dcc" + hash: "9cfe0627852cefe67fc0b44b31085b4a" } Frame { msec: 3344 - hash: "1135de1b9a4ebf1d2829546d3c3f3903" + hash: "de7ab5230efb63264f76fa1f1b61dcfa" } Frame { msec: 3360 - hash: "773a64cc7bb8e99a25078f348986e28f" + hash: "5ad22cf9e1c9a02cfc570beaac55bee0" } Frame { msec: 3376 - hash: "e8ce58aeb18b3f56ebd3d6f61ac94657" + hash: "9e6210d9e6bfda4fe0695b75d03435e2" } Frame { msec: 3392 - hash: "6de92679c32c7f3e9d9b6ba3a47e65eb" + hash: "d3989a9fb7e99d16032fa1842364f2ed" } Frame { msec: 3408 - hash: "339b37207af10ad986269e21ab37ff6d" + hash: "2f3e7040a4966e56858312f6534e9e77" } Frame { msec: 3424 - hash: "ac01f0708800fdfdacec67ac9e80602f" + hash: "16bb17f511519337be2e60d8b9f95149" } Frame { msec: 3440 - hash: "9de89a748b1e18eb6ed94875af6f26de" + hash: "819250fd9899a9457a9300f942f4d8bf" } Frame { msec: 3456 - hash: "d091e4a93c2beafb0ce4b6dff6d5b05f" + hash: "6639a15d4d23540ccf63c9bea0e1689e" } Frame { msec: 3472 - hash: "9532271085864d2fde3aa6e572599588" + hash: "14b553132a86e57577c416e6f6c53433" } Frame { msec: 3488 - hash: "d00804b42ab1c1f082a9f394ff4d666e" + hash: "f7a95239db44b66698d29f0daae826f1" } Frame { msec: 3504 - hash: "2c745f007353e6f8a7195470ba9492c2" + hash: "b5a6abb5294fb9b069ab8a075003cb61" } Frame { msec: 3520 - hash: "b4e952acb734ab1a608297fcb44fbe46" + hash: "391c1c43ce893aeefc42d164e6e8aaac" } Frame { msec: 3536 - hash: "75ceed3c2ddd557866145393fa50a12f" + hash: "271addef36d51d904bc1d68f65b66de3" } Frame { msec: 3552 - hash: "8b83b80554dd4a1266184092d380554c" + hash: "73a23e56edcd64ac6147aff27b785ebb" } Frame { msec: 3568 - hash: "973bddb1b2f9dbadd40c0de3ca7c3510" + hash: "bd43145ae22086348cb5e68765a42ac1" } Frame { msec: 3584 - hash: "5691b5bf54b50d4ff0a717873e001c00" + hash: "4b2706d1215f2b5b08ac87e40ba8c21b" } Frame { msec: 3600 - hash: "8b26b0aa8b06da031354c59d7fb41bf0" + hash: "6420fd46fd8068010d3caaa68eea457e" } Frame { msec: 3616 - hash: "45786c39a10b8e1cf399df98f3fb7ffb" + hash: "188499a79313d984ed1d710329b0237f" } Frame { msec: 3632 - hash: "c6d0be03e167c16566372cc992604dfb" + hash: "12da197320858ea4f8a1437b7ceac95a" } Frame { msec: 3648 - hash: "8d6e057550632d143faf996a62bbd1cd" + hash: "14bdec5663d1a81fa617d3b81e19f8b4" } Frame { msec: 3664 - hash: "7e3a321b95d5f62f0da2b10324b485b6" + hash: "3430047eca214a217aca0bd71814f4db" } Frame { msec: 3680 - hash: "e842f18dfd36947b2fa086a4d0bb2ec5" + hash: "974c431fe7030990389c7fc719655cfd" } Frame { msec: 3696 - hash: "a9359e143dae4113437a43cc00493479" + hash: "d38f3153b3cf39a278dc6948ff9ef71d" } Frame { msec: 3712 - hash: "2eca61c837cca9beb6d1834eafe8c538" + hash: "0c6eec50abcf4afc20311ffa1326d4e8" } Frame { msec: 3728 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png index af0e781..da688c7 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png index 6f1878f..618d238 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png index 97f09f7..0688ed1 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png index 878875a..ec6e330 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png index cdbe606..1692d17 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png index 7b78f7a..d70704d 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png index d7b5943..f8f37c6 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml index bc900c6..3828e76 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml @@ -182,7 +182,7 @@ VisualTest { } Frame { msec: 592 - hash: "731c8547a72c64ac86aec87c0a9a12cb" + hash: "683d9f54c75f5b1ed082edb0b4559bc8" } Mouse { type: 5 @@ -202,7 +202,7 @@ VisualTest { } Frame { msec: 608 - hash: "d9d7dd7ea05499f028964fdd11af0fe6" + hash: "02e5238c0764f370d0f463cc3f477df7" } Mouse { type: 5 @@ -214,7 +214,7 @@ VisualTest { } Frame { msec: 624 - hash: "361879f350c448a484b71a9e7a42b87f" + hash: "02239cd84ce630a89b94dbcf469d9a70" } Mouse { type: 5 @@ -226,7 +226,7 @@ VisualTest { } Frame { msec: 640 - hash: "998da4b3e36ee3e17deb2b5a097661da" + hash: "6cdaa8ffc906ade671fe259711e76f24" } Mouse { type: 5 @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 656 - hash: "1b3f9758bd9842cc9545b494499f87c4" + hash: "db00a0d69efd43f69c83dafbf38a06a6" } Mouse { type: 5 @@ -258,7 +258,7 @@ VisualTest { } Frame { msec: 672 - hash: "7e87f7c233dad50549e4bdafe10bb48e" + hash: "76fdf4cb75376ec3a9e084d93765c5cb" } Mouse { type: 5 @@ -286,75 +286,75 @@ VisualTest { } Frame { msec: 688 - hash: "01ceb2fea81f2192ab11d7d6e1df879a" + hash: "b12e86c13e012c5992930b3e559c337c" } Frame { msec: 704 - hash: "9afa862248bd527e07374a5c2f2036a1" + hash: "4056e78a59e8f1e030f3e3a51c436b46" } Frame { msec: 720 - hash: "e06439495148bfbf059cfe2b5df22840" + hash: "c84781b7586943ef889b8911c23e91db" } Frame { msec: 736 - hash: "b206a28d6f3be8cba9595849328b27b8" + hash: "cd952ffa63dbcb772b666ce755c9a2f1" } Frame { msec: 752 - hash: "646e4529bf554dceee0140ec56a02d1c" + hash: "2a31778e3ab7c676ae82278948cef12a" } Frame { msec: 768 - hash: "31bdcf1f178d65e033e23dfbdcb9dc5f" + hash: "ef6319b262fc299b14b40d1521f9c9c3" } Frame { msec: 784 - hash: "b4e897356814ca2dddbc3644b1782f36" + hash: "05ccb24a2025df31188b413c8d837232" } Frame { msec: 800 - hash: "669e5d682aae8727640e0e0f4e855a60" + hash: "df31f9dba1a762397c0364d7e83052ef" } Frame { msec: 816 - hash: "892007b1a379c617412502499df92d01" + hash: "6eec07606ef320072ea23ceedb3f6b29" } Frame { msec: 832 - hash: "f4d66daa2d428aa712a73ded2de7a361" + hash: "e3502cb53c6e17373de3b718a8212f4d" } Frame { msec: 848 - hash: "0c21e69bed6dc2d6b7c23c20714aca67" + hash: "2e01e2e252ca9fb3e7107f04a3ba4031" } Frame { msec: 864 - hash: "189909bdbfeb1f02ad527fbc438d567d" + hash: "547a9f25404c2bf7737526faf67a459d" } Frame { msec: 880 - hash: "b2fcbc0657474e1b6d27e1f2f93be35b" + hash: "aa9c3122e3c2a7ed450a0afffbcf4e6a" } Frame { msec: 896 - hash: "4407d7ad1b6a40b2355145aee136ff15" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 912 - hash: "347ada687af0a97f0a862a1f3a1132be" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 928 - hash: "db6217ff0194c5a3f9ca9ea7e3b3dfd8" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 944 - hash: "8a94ca0ee93daaa1bdcdbfc8a80713c1" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 960 - hash: "ab24d0c8545518cbaff876976247be2c" + hash: "1535dea92038cf87395a616841fd9bf6" } Frame { msec: 976 @@ -450,7 +450,7 @@ VisualTest { } Frame { msec: 1216 - hash: "c612bb9906f18786ef7cc6f4e56de218" + hash: "aa9c3122e3c2a7ed450a0afffbcf4e6a" } Mouse { type: 5 @@ -470,7 +470,7 @@ VisualTest { } Frame { msec: 1232 - hash: "ffec210dd863ed32a780506f61b06056" + hash: "b889647c08af7db2e6582d9927cb1cf7" } Mouse { type: 5 @@ -490,7 +490,7 @@ VisualTest { } Frame { msec: 1248 - hash: "9613c658f267d19b84d6e7ef2a676fed" + hash: "ac97616fc3c54711bb067cc72c15d4c5" } Mouse { type: 5 @@ -510,7 +510,7 @@ VisualTest { } Frame { msec: 1264 - hash: "8c5dd8d0f9f434530b20e14a84af9f46" + hash: "b38c46d537e6e622c8a0ecae76dbe506" } Mouse { type: 5 @@ -530,7 +530,7 @@ VisualTest { } Frame { msec: 1280 - hash: "a956e8e9ca8958c387f8f5ce374cdec9" + hash: "6261f2f16bdd89142cfbf1de4ce64a32" } Mouse { type: 5 @@ -550,87 +550,87 @@ VisualTest { } Frame { msec: 1296 - hash: "712e865d894f179cfd9d86b08e60811a" + hash: "d4f8d57bae3d5bc888a4bbe2812b3fdf" } Frame { msec: 1312 - hash: "db5c1f2af2e72ff4edce83cb342b5263" + hash: "4e0a90dda433c1615ea367ec90917409" } Frame { msec: 1328 - hash: "834f0aa26c66234491468c1b27a2d329" + hash: "b20e244f27dae505568fcba25cccb5d8" } Frame { msec: 1344 - hash: "78a2a4b60db730a7367bc77e1dfc1a1b" + hash: "f31d264a002718787ea55a6312c7f9f2" } Frame { msec: 1360 - hash: "a8ff2277b5f7d515bc5a9af1f0e77197" + hash: "0abbf36b5e3f2db9288bde05825dc111" } Frame { msec: 1376 - hash: "e05d730624025000b831860f5b99e8ac" + hash: "64fc0f18174f5e8002cf79a908cc08df" } Frame { msec: 1392 - hash: "54aa124492ea742e4327f1d2b45ab620" + hash: "430d7719ebf3b5835af92683cff10e56" } Frame { msec: 1408 - hash: "bc700bee41ac384a2555723b010e9041" + hash: "411a8fe1ee3a0510574cbf6a69d23456" } Frame { msec: 1424 - hash: "26f66098c505cea4715a89b6a2232759" + hash: "47e431bf01575c44f7c1fa3e20409866" } Frame { msec: 1440 - hash: "00f3255a3ead315410d8c0d338779689" + hash: "d17b62a0b52b4a5220b29b55f764abc6" } Frame { msec: 1456 - hash: "154e7d86d7602ebba38a0d63b211894d" + hash: "9bd0d8dfbee424bd0ccf72703a7c51c2" } Frame { msec: 1472 - hash: "87cf2bff69ebd75af69d0a7c7f668b07" + hash: "8ef880c18ecd8adb66e7e0a2dceb61fc" } Frame { msec: 1488 - hash: "f221b870ecccb1669b6223e5431c31d1" + hash: "fcc1bc7f35342f595448ca2870478b50" } Frame { msec: 1504 - hash: "40a9d4c522d9fd831be2ca698ac10670" + hash: "cf360de1c6649e45beb974ddbe436ea9" } Frame { msec: 1520 - hash: "7ad47479d99fd4d9fde96fef242bdc20" + hash: "b2a6acf1fed92069fd2779b1fa236c95" } Frame { msec: 1536 - hash: "b91912801c790d849399306c693a4d33" + hash: "7128a442b6bb06038477d46ac3da5021" } Frame { msec: 1552 - hash: "e5c8d361abcbc15df0b0b82728cb5b84" + hash: "6a0ab3ccc3749b9a2b9a5b5851b0cf70" } Frame { msec: 1568 - hash: "3f2f82c925e93d4593581cdba16f361f" + hash: "18f6cdad215c55ea8335d06110715aa8" } Frame { msec: 1584 - hash: "7007fd0595c188a9a5b3ff31b0514aa5" + hash: "137420f4b1f51440c3aefd18dbdad71d" } Frame { msec: 1600 - hash: "118661091df765ae35c152c7fe818029" + hash: "faf898388f87948fbacd74589cb18af0" } Frame { msec: 1616 - hash: "0a8edd2a35f7921ced6e3aa7e571bc4b" + hash: "b818181b3fee6f5a35a0da6c0f8e240e" } Mouse { type: 2 @@ -650,7 +650,7 @@ VisualTest { } Frame { msec: 1632 - hash: "ef734ce4d7e1aee19a78b743c9923f90" + hash: "2e74cc22a4e5b20cc231bc08e15e662a" } Mouse { type: 5 @@ -670,7 +670,7 @@ VisualTest { } Frame { msec: 1648 - hash: "09a9925d5ec2fd03cfbf469bc22bf201" + hash: "27be226c985bb0143d1dca3e4be4b10a" } Mouse { type: 5 @@ -690,71 +690,71 @@ VisualTest { } Frame { msec: 1664 - hash: "6babcbf5582d5ed8f0cf52e233867055" + hash: "9384d46806b2a8091b6d16f7636d6ae4" } Frame { msec: 1680 - hash: "94dae9d52f3523e17f3f0e59ca24a069" + hash: "684a17820c3693d893f8199cd7c7076f" } Frame { msec: 1696 - hash: "0d417d25893a0454a729f5c23a2a6c28" + hash: "dc1facc91b6935983bbcd2eada452d4d" } Frame { msec: 1712 - hash: "afd1bbca1dcfea8d1f0a340d86b07fa8" + hash: "6bb08cc431a3ecca1a553ea10669bb0c" } Frame { msec: 1728 - hash: "97e98982742b94dba8b6cb59397bcb66" + hash: "1330640d4ca9ac69dd089cea34b7f61d" } Frame { msec: 1744 - hash: "a0ad8cbbd0daa0afd3831e8a071b9a0e" + hash: "95370207a55b56c41923937b40d5fe6b" } Frame { msec: 1760 - hash: "f71826bcd6ea91d2f64d627a390c379d" + hash: "c36b60f81e7de5c0e5a59655041adff2" } Frame { msec: 1776 - hash: "7699da01cf1ee9a7f404ab053241b530" + hash: "297abbc6b38a1909324fcee6d8b1d908" } Frame { msec: 1792 - hash: "6aba727ecc562d7b5555eae427e6978b" + hash: "0af89e3bab7c517f375897239ea35153" } Frame { msec: 1808 - hash: "ef9c6daa5b04b0be9159594e04524fba" + hash: "05109c3dfac7f65fe00e81d1a145f048" } Frame { msec: 1824 - hash: "6293ede5de83f3b01a3b4d8d87648089" + hash: "57e1e871cbbc627f2fb9bf5583c4f097" } Frame { msec: 1840 - hash: "c3b34d8592f88622cad0f9353d08e739" + hash: "5220aecdd1516d94f0698e79f17fee57" } Frame { msec: 1856 - hash: "880f3cb9d5dbe06cdf17e3a953d4562d" + hash: "f3d8c908e61e5d61bbeeb9c6b5e8a704" } Frame { msec: 1872 - hash: "ed381ce920863a5a6627f383a88ea2fe" + hash: "f27867aeb39ef64ebd50b5d79b69337e" } Frame { msec: 1888 - hash: "b5bc40b8c4abb6458aeb67eda73507b6" + hash: "b807b4e74a0f008df3f4534901debe38" } Frame { msec: 1904 - hash: "482cb61b7fac4b1654483f846b8b6717" + hash: "e19832a0a7fcd57efe46cb0102a8d418" } Frame { msec: 1920 - hash: "e1a4a16d2cf5132a9fbb0869ed6082d9" + hash: "f0dcfd9b22f385fedfde964774480f85" } Frame { msec: 1936 @@ -762,171 +762,171 @@ VisualTest { } Frame { msec: 1952 - hash: "f8874aaab1e65cf9b86d6b5174c3d2c8" + hash: "746c60e03c50dc2e28c62fe52a8dd9d2" } Frame { msec: 1968 - hash: "d8490adeaa793352b812e832f4cb079a" + hash: "27d6da44b605cb38552147fdf451ef45" } Frame { msec: 1984 - hash: "85fdb99926ba34a25fa964df11af9a5a" + hash: "c41d5491c417531ee86ac6ec8571c6a8" } Frame { msec: 2000 - hash: "ad137a75981c181838d97cbe313063ac" + hash: "ac57c578e7e2cbb57e982d6da5fb7268" } Frame { msec: 2016 - hash: "bfa5cecfc0058b56ca66aa816ea098dc" + hash: "db40e242fabf119f0e7187eeb96a34a5" } Frame { msec: 2032 - hash: "53fe3960c2f332eb099fedd8421fcc94" + hash: "0850d4b73a664ee0f1ed6d6e0615ea80" } Frame { msec: 2048 - hash: "61b99ff526560c1589d2fc8737af2af2" + hash: "ae6cb0bfda1cea70b3641251d0dc60c4" } Frame { msec: 2064 - hash: "f9dd63709bed985f5d691d27c0d32484" + hash: "67a28c2188aecfc5dcccedd257789dbc" } Frame { msec: 2080 - hash: "964c20ada9ad9e83edd9b429bf681b83" + hash: "4355f220c8a87ad981088fb23bb15f11" } Frame { msec: 2096 - hash: "997bc44a319c8ce8212387f7564c4005" + hash: "2081c1ffe35f20dd827b3d9f52be90b3" } Frame { msec: 2112 - hash: "892eda6e7446321483ffb1dbf44a0432" + hash: "ba13b0b4790aec7084b5553fe0b0d72b" } Frame { msec: 2128 - hash: "62068dca6da7227882b6c3bc147c6f24" + hash: "7f289e50f1bbd570b6bc2ca1998f8493" } Frame { msec: 2144 - hash: "2cd0c351c53234d4bbf4d2c74d313f59" + hash: "8bb3a37f416032d40cb5f919abb42e30" } Frame { msec: 2160 - hash: "cf812f971bb4f8ab3116cf2b14c325df" + hash: "bcc69f859b3bff759e0c732c7adc23f0" } Frame { msec: 2176 - hash: "be296bd9ab4c38d95e6d7d445d8c7f68" + hash: "d3e8aae08a2518c039d6bda80fc520a4" } Frame { msec: 2192 - hash: "536d0214c8c3f69ce8d4e1585128b2b8" + hash: "955212dc28a6f8fe59c658401284d3a3" } Frame { msec: 2208 - hash: "f71452a0a6ef80758800d67e601a162b" + hash: "8eebcff152288a4ab2a3e64fd7ba6f80" } Frame { msec: 2224 - hash: "e57c099beb70d0a4ca2cbc94a2c3887e" + hash: "85fe363271d480163fb7847a3501472f" } Frame { msec: 2240 - hash: "84cea22f64ff8b8838a7db0b19af1a4e" + hash: "23190380ddcc4e3afce2164a4743d179" } Frame { msec: 2256 - hash: "04aa0d5d089779977f569d0f849b97dd" + hash: "40ca7c3d24883a8d3457de934b247280" } Frame { msec: 2272 - hash: "85b52e125142d52d531132939930dd93" + hash: "299ed19fa4d213e0e9dd127e8799d5fc" } Frame { msec: 2288 - hash: "19bc7b318c21a6ce2be8ebde2e624fc3" + hash: "e39a067860fa7dcb4efba87aee58cc77" } Frame { msec: 2304 - hash: "9cc744249cb031f0400e87893c1642af" + hash: "a709045723c4a9a2e85295fcc360eea9" } Frame { msec: 2320 - hash: "a834706bbf573f37cf9f59c6c6cbbfa5" + hash: "029428301287e4c7cd2f8a1fa6a25381" } Frame { msec: 2336 - hash: "8db3eea9d47a162d8b0ee9cd18e194f3" + hash: "aef25177af3511dc99004a1e37f7f5d3" } Frame { msec: 2352 - hash: "29da9b8da8f572ace93250abb8626a90" + hash: "f9e11fd7023a72366dacaaf19b2eb81c" } Frame { msec: 2368 - hash: "179b74316d885f9ee41066b9c475b57f" + hash: "51f7c896d79c900a2b54a8c756228200" } Frame { msec: 2384 - hash: "35464509ef5a9919af46a30d40c3edc7" + hash: "28c18081813c801c6793873ec23e6c0c" } Frame { msec: 2400 - hash: "aadec42355d38d149421ef6c93783e69" + hash: "39df3050c4100e8a4f6e648b4aa16ba7" } Frame { msec: 2416 - hash: "cb8609791270e8e3c13da4579f85595f" + hash: "752cb6969fa8b76abf4bb229edb2c21f" } Frame { msec: 2432 - hash: "93e81e036a1bc30cc63ce703f8f43a34" + hash: "54d50f6c980cb04a1634622a29a6f0e9" } Frame { msec: 2448 - hash: "d08d18adf9ca92cd6597c2f51ae90383" + hash: "d510db233f025b026f896b760848cc07" } Frame { msec: 2464 - hash: "f54ec103787023647beaa4b992340385" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2480 - hash: "61c9f72d78fce0b966a278abacc97ce6" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2496 - hash: "5b0500ed0562b11280c3424412f74188" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2512 - hash: "b8ee7bc1e94ce35bf946ee71fa03d72c" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2528 - hash: "60ec6aceeaf82fc730c3df55b5c06f90" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2544 - hash: "01cc732bad8b28483e79115c117ee26d" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2560 - hash: "b39c8d373524ba679c8567d16e6c5fe0" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2576 - hash: "2474476dfd021ff485c3a127bd22367e" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2592 - hash: "1342a1a0f6bc02159de1be058cf2411b" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2608 - hash: "a9721b64b9a5526335937245302249ae" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Mouse { type: 2 @@ -938,15 +938,15 @@ VisualTest { } Frame { msec: 2624 - hash: "109dc503ee86e731f52d25908daf5d36" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2640 - hash: "94998dbab6792c518ca1f37f060f1d4b" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Frame { msec: 2656 - hash: "3146ba4e63fa74279939b8de935f067c" + hash: "e5c8d361abcbc15df0b0b82728cb5b84" } Mouse { type: 5 @@ -966,7 +966,7 @@ VisualTest { } Frame { msec: 2672 - hash: "1aaea4143076bf8ba8190d94fcc89e64" + hash: "f728208b0fc2f230313c86378cf7f419" } Mouse { type: 5 @@ -986,7 +986,7 @@ VisualTest { } Frame { msec: 2688 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Mouse { type: 5 @@ -1006,7 +1006,7 @@ VisualTest { } Frame { msec: 2704 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Mouse { type: 5 @@ -1026,7 +1026,7 @@ VisualTest { } Frame { msec: 2720 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Mouse { type: 5 @@ -1046,7 +1046,7 @@ VisualTest { } Frame { msec: 2736 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Mouse { type: 5 @@ -1066,39 +1066,39 @@ VisualTest { } Frame { msec: 2752 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2768 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2784 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2800 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2816 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2832 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2848 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2864 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2880 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2896 @@ -1106,51 +1106,51 @@ VisualTest { } Frame { msec: 2912 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2928 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2944 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2960 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2976 - hash: "a0d8bb20189c3c65e5e72671788d9493" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 2992 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3008 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3024 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3040 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3056 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3072 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3088 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Mouse { type: 2 @@ -1162,23 +1162,23 @@ VisualTest { } Frame { msec: 3104 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3120 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3136 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3152 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3168 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Mouse { type: 5 @@ -1190,11 +1190,11 @@ VisualTest { } Frame { msec: 3184 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Frame { msec: 3200 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Mouse { type: 5 @@ -1214,7 +1214,7 @@ VisualTest { } Frame { msec: 3216 - hash: "1236a317e60f7ae3d3fb2fb521bad2a2" + hash: "f728208b0fc2f230313c86378cf7f419" } Mouse { type: 5 @@ -1234,7 +1234,7 @@ VisualTest { } Frame { msec: 3232 - hash: "1b604ea70459a768fb37a6333000174b" + hash: "7d43010a9951054df82571936a04cc50" } Mouse { type: 5 @@ -1254,7 +1254,7 @@ VisualTest { } Frame { msec: 3248 - hash: "25e0aabe364085a61b4572ef015dac2c" + hash: "ab1980970c82238d2c37d61db4fc5153" } Mouse { type: 5 @@ -1274,7 +1274,7 @@ VisualTest { } Frame { msec: 3264 - hash: "ee6fc5c1de08e6f13f23b26829d2cba2" + hash: "849ffa1fdd718a48e9570b88987f9203" } Mouse { type: 5 @@ -1294,7 +1294,7 @@ VisualTest { } Frame { msec: 3280 - hash: "b077c59359d047738d9ba739f591393b" + hash: "d497eff3c8879d30619630e7ffcbf5c9" } Mouse { type: 5 @@ -1314,7 +1314,7 @@ VisualTest { } Frame { msec: 3296 - hash: "2cc0b8d7bd088f2277f5e939c234114c" + hash: "b0679dfe2f631e41f5cc269bd16d742c" } Mouse { type: 5 @@ -1334,7 +1334,7 @@ VisualTest { } Frame { msec: 3312 - hash: "64703db84cd5bda3109546293783804d" + hash: "ab2d88a4cd58d0064c32660272ff1dbd" } Mouse { type: 5 @@ -1354,7 +1354,7 @@ VisualTest { } Frame { msec: 3328 - hash: "137cd88932ad1fdbfdbf1a80cccf7b3f" + hash: "ea3cff28ff3be273332b19a2b8acb95e" } Mouse { type: 5 @@ -1374,7 +1374,7 @@ VisualTest { } Frame { msec: 3344 - hash: "ff9011d861c64bcad214b52cb4245583" + hash: "458decd62af57d333a07459c89e62393" } Mouse { type: 5 @@ -1394,7 +1394,7 @@ VisualTest { } Frame { msec: 3360 - hash: "c3f0132e472d29ddee95c7349243d33e" + hash: "1347a26241ed98d4913e1cb6cda58286" } Mouse { type: 5 @@ -1414,87 +1414,87 @@ VisualTest { } Frame { msec: 3376 - hash: "42ae9c21dce6a7cd59de228dac775dd5" + hash: "2efe07858c0c4de7fd3e339d7a24d5f5" } Frame { msec: 3392 - hash: "3f8631caf6a98d83356b188d6f94e9a6" + hash: "3edbe6755710ce148341faeb6980707a" } Frame { msec: 3408 - hash: "b2788cd1939a6dd42f12d8fd1282a122" + hash: "0f53231de64ac5b0503e92ad10155dea" } Frame { msec: 3424 - hash: "0d1ab6e9f2780be0c392d20f4b3b9619" + hash: "f2be693c23ea0885d6e8180c3062ba76" } Frame { msec: 3440 - hash: "03fdd91b352798b1ff958c23c0bc5f35" + hash: "207003ce6908f9707e9193a6c82a40c0" } Frame { msec: 3456 - hash: "028fee3630fdb3cf862213c0466a56fe" + hash: "ba86efade16e8965f59f6257ae90d131" } Frame { msec: 3472 - hash: "3ab76009ca029723e5cf0bf9bc154102" + hash: "1fdaaa68c4ed484536c207a0eacf6e72" } Frame { msec: 3488 - hash: "866c59b7dd545364b70ddbf21a8ee874" + hash: "d1223c8254f9e7e37c4e09628f38bce2" } Frame { msec: 3504 - hash: "9b4ff972b1055db38900fc0c5007e7b0" + hash: "c822447614f47b5e15ffad967964a061" } Frame { msec: 3520 - hash: "cbe0073c84617e23f0679a08c1a78492" + hash: "5eb2e64f11847cc9360291e14e866611" } Frame { msec: 3536 - hash: "374a5e6070dd628ed031e80d44be1f3f" + hash: "545dcc2645b50d78c84c658880d0500c" } Frame { msec: 3552 - hash: "4d16c81f877585a82549cfc4f68c574d" + hash: "9d984e07b99137b3cb57dd4df16b8237" } Frame { msec: 3568 - hash: "64b2b4c374a730b138b3573095f45d2c" + hash: "da27085e7a3cccde7cc3db2d9c6cc2cd" } Frame { msec: 3584 - hash: "26c59f4131fdb01ac4771231341c75c3" + hash: "8d8c117ca102cb93e752904fe3aee7bc" } Frame { msec: 3600 - hash: "bf6a3fdb7c516ca9cfc09f1059cc8cdf" + hash: "bfb5ed7b65f36d80e3156560a0ec58b7" } Frame { msec: 3616 - hash: "1bfb86796087cd293c68205cce6ac294" + hash: "bbd5f2b95325fde3b8759f2ef713c6bd" } Frame { msec: 3632 - hash: "e0f76f8fc7bd7756a4e004655f97f782" + hash: "1c36be8deb2079ed81f1718c92e44803" } Frame { msec: 3648 - hash: "61d3aa5f827452482d8a4a903fe64acc" + hash: "5a424e7e66d87d278483c43070920d56" } Frame { msec: 3664 - hash: "c8e42d3a5df195eaa091e50fc9dcd51e" + hash: "ae28bc20e20e022e1ac9bc2ddac0e134" } Frame { msec: 3680 - hash: "bb684dccf4c0a74dc091fb78c1be4f2b" + hash: "1551c4aae06a258bdadc9ef356724871" } Frame { msec: 3696 - hash: "54341e5a76fb4657021c41e6e3f3d496" + hash: "526aec43f710e524d247f8a4b08c261c" } Mouse { type: 2 @@ -1514,7 +1514,7 @@ VisualTest { } Frame { msec: 3712 - hash: "435ee710e108df42f659250ad7dbdb5e" + hash: "b50ef7198c1831623ed2210e651ac618" } Mouse { type: 5 @@ -1526,7 +1526,7 @@ VisualTest { } Frame { msec: 3728 - hash: "0c7078ec0d4a1dea84e0fba06323c533" + hash: "913269856c18d4f478eed1aa1d5ae293" } Mouse { type: 5 @@ -1546,7 +1546,7 @@ VisualTest { } Frame { msec: 3744 - hash: "854103790c02ca86fa011ef1b0f2be0a" + hash: "2c6a32e167bef4c3de0ca97e5764f31b" } Mouse { type: 5 @@ -1566,7 +1566,7 @@ VisualTest { } Frame { msec: 3760 - hash: "1a5995196e5bb4d1464ca76191af72d5" + hash: "88386cf4d982c5ca4e3fbd3519d9bd9c" } Mouse { type: 5 @@ -1586,7 +1586,7 @@ VisualTest { } Frame { msec: 3776 - hash: "397bbd080cae99790621642fab6ded91" + hash: "ecf04273061af5f881925f3a33015fbb" } Mouse { type: 5 @@ -1606,7 +1606,7 @@ VisualTest { } Frame { msec: 3792 - hash: "66ecad306911060329dcf7695c358e87" + hash: "b09c45ea79cd818bac6fe35e4167d4bd" } Mouse { type: 5 @@ -1626,7 +1626,7 @@ VisualTest { } Frame { msec: 3808 - hash: "c06da5f40f3f59f576a1d540d0b3244f" + hash: "4a1dbbac65a3caac16b38c45be61003c" } Mouse { type: 5 @@ -1646,7 +1646,7 @@ VisualTest { } Frame { msec: 3824 - hash: "a88d97691539dce19af4c14baf610275" + hash: "f4a805fc5c12cc3b2a22ef01050bf3aa" } Mouse { type: 5 @@ -1666,7 +1666,7 @@ VisualTest { } Frame { msec: 3840 - hash: "a07dca2c0014609ca5241612550992f5" + hash: "aa7805e4d806c4c56ded804145c44464" } Mouse { type: 5 @@ -1706,7 +1706,7 @@ VisualTest { } Frame { msec: 3872 - hash: "e5a4e76dd607ba1bae97aaf184ee009a" + hash: "fd2eab6b3a65713f057da22a412512c7" } Mouse { type: 5 @@ -1726,7 +1726,7 @@ VisualTest { } Frame { msec: 3888 - hash: "bb1d2614e590562479fc8d301bc7402f" + hash: "0dda191a66162db6365c663979b0990d" } Mouse { type: 5 @@ -1746,7 +1746,7 @@ VisualTest { } Frame { msec: 3904 - hash: "5d9fd2238666d3ae04613f1bba0fab05" + hash: "72a57fe4fc34a19040890a9e2a11dae5" } Mouse { type: 5 @@ -1766,7 +1766,7 @@ VisualTest { } Frame { msec: 3920 - hash: "b12a944cb5e593afbb21a10453879b52" + hash: "fd18bd5f8f09c995f122b8b4ecb80279" } Mouse { type: 5 @@ -1786,7 +1786,7 @@ VisualTest { } Frame { msec: 3936 - hash: "2f04c990978627b86fb2ad04579db0db" + hash: "8d33b6fa9d6525902e5611cf8ed2fa1f" } Mouse { type: 5 @@ -1798,7 +1798,7 @@ VisualTest { } Frame { msec: 3952 - hash: "e7ddf142fc36174fcaaa70b9340ef7a8" + hash: "d73a8eba0c43f214946052481f3db98f" } Mouse { type: 5 @@ -1818,7 +1818,7 @@ VisualTest { } Frame { msec: 3968 - hash: "4fce53c6f5347fe03ecf17b07fabe3ac" + hash: "c2f101636963ff5c61be2ad83c6b7ceb" } Mouse { type: 5 @@ -1846,111 +1846,111 @@ VisualTest { } Frame { msec: 3984 - hash: "75a0ec2c0158c55a90147c3f4afaa19c" + hash: "54630f489303c7ec2e94b4c941bd310f" } Frame { msec: 4000 - hash: "e89e98b7c1f36b74c664c77e121dedcb" + hash: "357106c752b13bcca047d55a3c7cd486" } Frame { msec: 4016 - hash: "f4c1e52a7b97a25fba640be2a1430d2d" + hash: "b00b78122721ddcded2c7131cfe40d53" } Frame { msec: 4032 - hash: "be58ca8f63dac8373825231512f483ca" + hash: "7da9e4197cb9be292e561790af1caa27" } Frame { msec: 4048 - hash: "755b16d4be00cb52595d42775d6227ac" + hash: "076fefc33455667af954dcc5a06017d3" } Frame { msec: 4064 - hash: "c62f1ebbb1e4ae4ca22c060078d6240b" + hash: "76edfedd2b9edcc5770dcce87b022427" } Frame { msec: 4080 - hash: "5f1187e9530584f9eb81ce1ce8267da0" + hash: "12e6711077da076b737aef1aaa336d42" } Frame { msec: 4096 - hash: "5dc9921e9ddf15ee0457fcdc834544c5" + hash: "1e19329fb839a00faa3b95d13b7a9015" } Frame { msec: 4112 - hash: "efacedc2782435ef4e269e6956fb3547" + hash: "7469fb57ce0b7ea9a7cc6da14f6a245a" } Frame { msec: 4128 - hash: "5b356dd3082f6b0920bb41d332595ce1" + hash: "17e3aca0838e2ba75cc9b869bb969220" } Frame { msec: 4144 - hash: "5d8afcc1abd890beb2badf85bcf02897" + hash: "32ebb24cee3ba65f9242708538203553" } Frame { msec: 4160 - hash: "03c56ab4fea11cce19fcbb62dccb7683" + hash: "948429b8ded1f688cd7e27e0f056f40c" } Frame { msec: 4176 - hash: "236254ce32a8e06dc42f2fd3c9ac6c7c" + hash: "c6fc2e8519a31bc18eb924ca98cd24be" } Frame { msec: 4192 - hash: "4beb33da77bc2b41eb882a2a5cdeb539" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4208 - hash: "b345470adead1ffb3af4d1091ffbd95c" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4224 - hash: "c2677f1653b08952338a5c26a724ebe7" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4240 - hash: "45b6633acf0ac28c5b5462920cf61282" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4256 - hash: "26a9a6609ce8eee1f744c2bd43494f22" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4272 - hash: "9373a8010a05d05cb5b3c2ec75359493" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4288 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4304 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4320 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4336 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4352 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4368 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4384 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 4400 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Mouse { type: 2 @@ -1962,7 +1962,7 @@ VisualTest { } Frame { msec: 4416 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Mouse { type: 5 @@ -1974,7 +1974,7 @@ VisualTest { } Frame { msec: 4432 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Mouse { type: 5 @@ -1994,7 +1994,7 @@ VisualTest { } Frame { msec: 4448 - hash: "d0c561761825512a02a9e3640139cadc" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Mouse { type: 5 @@ -2014,7 +2014,7 @@ VisualTest { } Frame { msec: 4464 - hash: "0e7554f077e2d6d8c6cf9496b20ab009" + hash: "d8f9d016318e0bd38d4654b4850da952" } Mouse { type: 5 @@ -2034,7 +2034,7 @@ VisualTest { } Frame { msec: 4480 - hash: "d6e78f43c971abcc1d2aadb96e8b80b0" + hash: "13a2382e08ab10ecb40f9c24c682a797" } Mouse { type: 5 @@ -2054,7 +2054,7 @@ VisualTest { } Frame { msec: 4496 - hash: "10d8e0ee5bd432c639963c9cedd25b85" + hash: "cef145c5d105466f3913bb81bb2b58df" } Mouse { type: 5 @@ -2074,7 +2074,7 @@ VisualTest { } Frame { msec: 4512 - hash: "53e142d6b0112644d75df29f7865fbb4" + hash: "9bc0a21266bebbf8fc3509e5f92dd77f" } Mouse { type: 5 @@ -2086,7 +2086,7 @@ VisualTest { } Frame { msec: 4528 - hash: "9609807e6c2a27a8b9f1d5c878c3dadf" + hash: "e419dbe857667b014e4dd9b57b01bbe4" } Mouse { type: 5 @@ -2098,7 +2098,7 @@ VisualTest { } Frame { msec: 4544 - hash: "a0a1e5fd37e9d8033f182f4f2b20fd26" + hash: "411cb7a7f331161059faba4ae6549229" } Mouse { type: 5 @@ -2110,7 +2110,7 @@ VisualTest { } Frame { msec: 4560 - hash: "b40e553dc373e4018488d5421b9a8914" + hash: "b008d6b2b444881c36521595f6b31539" } Mouse { type: 5 @@ -2122,7 +2122,7 @@ VisualTest { } Frame { msec: 4576 - hash: "22e36512a0af86fac12c09f735dcb1f7" + hash: "77fcc3c74c3832ae6b80aec420cb06e0" } Mouse { type: 5 @@ -2142,59 +2142,59 @@ VisualTest { } Frame { msec: 4592 - hash: "70e9ad0f56e4c37f8684e38f614b889d" + hash: "41d1c54bc76caeae057fb1bdb3b93843" } Frame { msec: 4608 - hash: "0754126f5738e3dcec35fc1ef65fdec3" + hash: "03fdd91b352798b1ff958c23c0bc5f35" } Frame { msec: 4624 - hash: "b3d84ceeecc294d21bc09a3197195c20" + hash: "2098ea8b55b54ca8dd648fb285c43ebf" } Frame { msec: 4640 - hash: "ce00501e194b1056edf1ebd43b954a70" + hash: "9929c509654819fd04da4e4b5c8e22b4" } Frame { msec: 4656 - hash: "793f41ac2568530e6d630446216833dc" + hash: "c470d3a57c6b56f9f56b176823b27d53" } Frame { msec: 4672 - hash: "e8573de724b653439bde85c15e9555ab" + hash: "37474b3a23f90dafee6b9e0043a702fa" } Frame { msec: 4688 - hash: "bfb3f3645c7b2425b686ac23bcef82b8" + hash: "0fbb6a9fded011b010fa6f3a2819630c" } Frame { msec: 4704 - hash: "faa78596e208c2cf4593ea25e31fabde" + hash: "6c5a7dad864999548257e4bf0ddc3687" } Frame { msec: 4720 - hash: "f1b0931bffce37abfe5a6d635f1f8454" + hash: "339bc42e559c66d07f37af5e06feacef" } Frame { msec: 4736 - hash: "0975630a55bfd56eb3e39426c1c3f1e5" + hash: "513dc773dc93275e32fa9ac61e6dcb46" } Frame { msec: 4752 - hash: "98f1d79153a8009123abc94141375779" + hash: "b725c84435b1f387dc3f375280e39de6" } Frame { msec: 4768 - hash: "d864817f877a9eeb44c665518ea19687" + hash: "f3d04b513df286aacb9ebdb107d7a0b4" } Frame { msec: 4784 - hash: "79745c267d14e7790e1bb3a7e76f20b4" + hash: "c22839005ed0cb6b2fa9c958d17fd948" } Frame { msec: 4800 - hash: "ec038d4cec64b847711fa221f808bead" + hash: "2fb9a2d5d22a6d0ed567328ffaa512f0" } Frame { msec: 4816 @@ -2202,239 +2202,239 @@ VisualTest { } Frame { msec: 4832 - hash: "ef7b3f93abbf210f8f0d38a58380dc8f" + hash: "ba13b0b4790aec7084b5553fe0b0d72b" } Frame { msec: 4848 - hash: "f0eea63127df25f7f818596fc034fef8" + hash: "2bc983733d4004cc67a56d77e9f48e5d" } Frame { msec: 4864 - hash: "8000dee3ea54522a8193a7f9f2e86023" + hash: "0f729cbe41b155b6eef20a4be207b853" } Frame { msec: 4880 - hash: "111485ebaf93aae4f5e0a83da898bbac" + hash: "c2ca47a7d70ef827029b32c11a052b83" } Frame { msec: 4896 - hash: "4b2dee1fd88dcaeabc8235f6a0e5c090" + hash: "803aefca7f1cbd494d2d2f7e7eea9a3f" } Frame { msec: 4912 - hash: "5e560c777d0294dfa8f249232bfcf3a2" + hash: "2641683e1fa9ed418ac89631be7922f1" } Frame { msec: 4928 - hash: "d8b490092ca5ce3ef9b078f4768c382a" + hash: "3d9370305ca147625828f7ee3b34ca33" } Frame { msec: 4944 - hash: "28b2bbc3fd19786dd9c0ab718141c525" + hash: "5cdfdd22a0dc1ed78035ae4b5e2e26a7" } Frame { msec: 4960 - hash: "d1a61000ebc5a475c0223dde649c8054" + hash: "2af663981b43dbe699849eff4731829a" } Frame { msec: 4976 - hash: "d3e8aae08a2518c039d6bda80fc520a4" + hash: "b159d3a09666327bd2d860bf56920734" } Frame { msec: 4992 - hash: "9f3bd8654adb9af0457dd50ff71fcd43" + hash: "a1ed6f686f4cda9aa59bfd49deb8a075" } Frame { msec: 5008 - hash: "befe00fef613b7616e2dc668a5ed59c7" + hash: "c5f1862e7cbb1dcd6b303e58c525ab5c" } Frame { msec: 5024 - hash: "24e84e6998389aa119d7d9e0ac2206ac" + hash: "3cc5e5d87067978961eee6e7b33ada06" } Frame { msec: 5040 - hash: "2d3d2b66bf016c8e499f527dbf8923db" + hash: "74f3b0eae443bd9f171020fd973ca960" } Frame { msec: 5056 - hash: "52d24673729dbd53d3227675b7001b24" + hash: "432037812ab1a09e0d0b32dfaf0f876e" } Frame { msec: 5072 - hash: "4e5c807682d7b6b7839c047a7fb4ad93" + hash: "0eec7146b8df3b4892e89abd13b8bc9d" } Frame { msec: 5088 - hash: "319affea47c4a0b0e2c3db51b85430bc" + hash: "a01dc5f4b4307aa66068d21159dd64d5" } Frame { msec: 5104 - hash: "344962f0b88c7e8a33df71b4708fd1c0" + hash: "11eefdf5b1be8493a6ed9aaf519c7e17" } Frame { msec: 5120 - hash: "ac099ba8a5639b9c83b6f58f2b5bcf93" + hash: "55ed797b82f5bca2ac2b5954c44c041e" } Frame { msec: 5136 - hash: "2f8e57c93289dcdc758281531300e949" + hash: "498d4ca9faabf8b59e2359b60dc1aff2" } Frame { msec: 5152 - hash: "e4cc3bdf6068064bcfdd0014cc301e65" + hash: "78895368b141ab6d3a16f65f4389b2d5" } Frame { msec: 5168 - hash: "598c8a33e2bbf47b21df8b0636e0f0bc" + hash: "c73b27167bad79f3f3c5ebb64fa579c2" } Frame { msec: 5184 - hash: "6aea67c85370eee8447a22e2b9e8c44c" + hash: "fb05312d65155f0300f456d727698b80" } Frame { msec: 5200 - hash: "39e27a3376f4aba8510f7b0d90ca0e33" + hash: "6e974736a0ecea6a71c1a7052a14fa20" } Frame { msec: 5216 - hash: "0ff93a16a07af43bd5e22a2b00fd2588" + hash: "f5daf5bec03d3e56c877e9b2dc5701b6" } Frame { msec: 5232 - hash: "8b6004368b9b0a766f6b519820fe1ff6" + hash: "29793d2147563feb9ed0ebff18b303cd" } Frame { msec: 5248 - hash: "5d92c0a12ff138d1b2c75bd042be4ea2" + hash: "5b63dfa3cb7ac0847f2e63f9d2a0b2b6" } Frame { msec: 5264 - hash: "4386b0abe49106a0174154c726c301f6" + hash: "cf2f42dd9830d80f50df30e93a0b1ad2" } Frame { msec: 5280 - hash: "832da8d2a86caa3ca96f33d2cd49178e" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5296 - hash: "efee6ab1ba4a1112f2129aad12825667" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5312 - hash: "f20a7e67a4789c559b0b0a7656bd89b1" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5328 - hash: "350cc8c0085a8f79c9ea8880737a0b75" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5344 - hash: "b19715b4029ea489debf7c5a269aca98" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5360 - hash: "f383fcaf603af41650c5622bfaf136b3" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5376 - hash: "0c62a442367fc0bac5117da1327ed39a" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5392 - hash: "323ba45d158d983f359211f1a87b7ebd" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5408 - hash: "aeed1a31b8b77dac2c2858969ff2d86c" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5424 - hash: "27a9357730a97846ffeddd18492df04d" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5440 - hash: "42f78593e64585b33c8854e8ea92710e" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5456 - hash: "064f5cec99b9a351bebe2088019f46d1" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5472 - hash: "d3669826f94aa2afc1069ab967f677a3" + hash: "8abb0aa8951612338c3bb87c7a0d2509" } Frame { msec: 5488 - hash: "a118cf8892d29e6b70b4e65e42380c15" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5504 - hash: "f254260f01ff4697e9e3146cc106140d" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5520 - hash: "ec062b2bb87444115c2e8744b7f80bde" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5536 - hash: "4d45522a4e4253c810cac9cbf24c9b76" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5552 - hash: "532c3d3ead73836948a1036e8e69cadf" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5568 - hash: "4debea14aeac85ff4e64387938d8b010" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5584 - hash: "d8940cf6e39a1bd5e7216a83ce87a676" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5600 - hash: "fba6485f8a60a38ce2f3110137b1f2df" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5616 - hash: "8a8909b114332dd932b784a2640e9ff4" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5632 - hash: "fd901422400333c137240ef5f91928a3" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5648 - hash: "97b84a957515d5823e381fdd86d31fb8" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5664 - hash: "f3547ea694b88dd7d2fb8b04d6bf76a9" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5680 - hash: "9eb0da29d0c323b45e62d31bee97ce8c" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5696 - hash: "9d814096d27e9fbcffdf7e29866e0059" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5712 - hash: "6087185e1e8bf17545a7372be2990ab2" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5728 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5744 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5760 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5776 @@ -2442,126 +2442,126 @@ VisualTest { } Frame { msec: 5792 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5808 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5824 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5840 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5856 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5872 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5888 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5904 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5920 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5936 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5952 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5968 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 5984 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6000 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6016 - hash: "82e534c416dfe884e5abc2f91d902484" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6032 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6048 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6064 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6080 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6096 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6112 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6128 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6144 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6160 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6176 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6192 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6208 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6224 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6240 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6256 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } Frame { msec: 6272 - hash: "6839b467f32eaa79d4c1ce4905145350" + hash: "a29d4b3fa16829823e63bf83e7b62aff" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml index 4374b84..08499e7 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml @@ -35,6 +35,8 @@ Rectangle { id: photoPathView; model: rssModel; delegate: photoDelegate anchors.fill: parent; z: 1 anchors.topMargin:40 + highlightMoveDuration: 200 + flickDeceleration: 200 path: Path { startX: -50; startY: 40; -- cgit v0.12 From e1ac82f713ab2a766ae518f3ec7a7f76689acb48 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Thu, 23 Dec 2010 13:14:06 +1000 Subject: Improve docs for QTEST_MAIN macro. The macro doesn't always create a QApplication, it depends on whether QT_GUI_LIB is defined. Task-number: QTBUG-3899 Reviewed-by: Rohan McGovern --- src/testlib/qtestcase.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index e3a8726..207873e 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -298,10 +298,14 @@ QT_BEGIN_NAMESPACE \relates QTest - Implements a main() function that instantiates a QApplication object and + Implements a main() function that instantiates an application object and the \a TestClass, and executes all tests in the order they were defined. Use this macro to build stand-alone executables. + If \c QT_GUI_LIB is defined, the application object will be a QApplication, + otherwise it will be a QCoreApplication. If qmake is used and the configuration + includes \c{QT += gui}, then \c QT_GUI_LIB will be defined automatically. + \bold {Note:} On platforms that have keypad navigation enabled by default (eg: Symbian), this macro will forcfully disable it to simplify the usage of key events when writing autotests. If you wish to write a test case that uses keypad navigation, you should -- cgit v0.12 From 34630042ded25177b49f8e54b41269db1be42935 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 23 Dec 2010 13:17:20 +1000 Subject: Try fixing build error on Windows --- .../declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro b/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro index 472cffb..efcea12 100644 --- a/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro +++ b/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro @@ -1,5 +1,5 @@ load(qttest_p4) -contains(QT_CONFIG,declarative): QT += declarative script gui +contains(QT_CONFIG,declarative): QT += declarative script gui network contains(QT_CONFIG,xmlpatterns) { QT += xmlpatterns DEFINES += QTEST_XMLPATTERNS -- cgit v0.12 From 16d08f97eaa7dd0469d7c9006546f86f1fd763f6 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 23 Dec 2010 13:13:36 +1000 Subject: Models which load incrementally via fetchMore() don't work. Call canFetchMore()/fetchMore() on setModel(), setRootIndex() and when the last item is created. Task-number: QTBUG-16039 Reviewed-by: Bea Lam --- .../graphicsitems/qdeclarativevisualitemmodel.cpp | 6 ++ .../qdeclarativelistview/incrementalmodel.cpp | 89 ++++++++++++++++++++++ .../qdeclarativelistview/incrementalmodel.h | 68 +++++++++++++++++ .../qdeclarativelistview/qdeclarativelistview.pro | 3 +- .../tst_qdeclarativelistview.cpp | 28 +++++++ 5 files changed, 193 insertions(+), 1 deletion(-) create mode 100644 tests/auto/declarative/qdeclarativelistview/incrementalmodel.cpp create mode 100644 tests/auto/declarative/qdeclarativelistview/incrementalmodel.h diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp index 4f5213a..bf9263b 100644 --- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp +++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp @@ -773,6 +773,8 @@ void QDeclarativeVisualDataModel::setModel(const QVariant &model) QObject::connect(d->m_abstractItemModel, SIGNAL(modelReset()), this, SLOT(_q_modelReset())); QObject::connect(d->m_abstractItemModel, SIGNAL(layoutChanged()), this, SLOT(_q_layoutChanged())); d->m_metaDataCacheable = true; + if (d->m_abstractItemModel->canFetchMore(d->m_root)) + d->m_abstractItemModel->fetchMore(d->m_root); return; } if ((d->m_visualItemModel = qvariant_cast(model))) { @@ -870,6 +872,8 @@ void QDeclarativeVisualDataModel::setRootIndex(const QVariant &root) if (d->m_root != modelIndex) { int oldCount = d->modelCount(); d->m_root = modelIndex; + if (d->m_abstractItemModel && d->m_abstractItemModel->canFetchMore(modelIndex)) + d->m_abstractItemModel->fetchMore(modelIndex); int newCount = d->modelCount(); if (d->m_delegate && oldCount) emit itemsRemoved(0, oldCount); @@ -1094,6 +1098,8 @@ QDeclarativeItem *QDeclarativeVisualDataModel::item(int index, const QByteArray d->m_delegateValidated = true; } } + if (d->modelCount()-1 == index && d->m_abstractItemModel && d->m_abstractItemModel->canFetchMore(d->m_root)) + d->m_abstractItemModel->fetchMore(d->m_root); return item; } diff --git a/tests/auto/declarative/qdeclarativelistview/incrementalmodel.cpp b/tests/auto/declarative/qdeclarativelistview/incrementalmodel.cpp new file mode 100644 index 0000000..b2c9df5 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelistview/incrementalmodel.cpp @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** 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 "incrementalmodel.h" +#include +#include + +IncrementalModel::IncrementalModel(QObject *parent) + : QAbstractListModel(parent), count(0) +{ + for (int i = 0; i < 100; ++i) + list.append("Item " + QString::number(i)); +} + +int IncrementalModel::rowCount(const QModelIndex & /* parent */) const +{ + return count; +} + +QVariant IncrementalModel::data(const QModelIndex &index, int role) const +{ + if (!index.isValid()) + return QVariant(); + + if (index.row() >= list.size() || index.row() < 0) + return QVariant(); + + if (role == Qt::DisplayRole) + return list.at(index.row()); + return QVariant(); +} + +bool IncrementalModel::canFetchMore(const QModelIndex & /* index */) const +{ + if (count < list.size()) + return true; + else + return false; +} + +void IncrementalModel::fetchMore(const QModelIndex & /* index */) +{ + int remainder = list.size() - count; + int itemsToFetch = qMin(5, remainder); + + beginInsertRows(QModelIndex(), count, count+itemsToFetch-1); + + count += itemsToFetch; + + endInsertRows(); +} diff --git a/tests/auto/declarative/qdeclarativelistview/incrementalmodel.h b/tests/auto/declarative/qdeclarativelistview/incrementalmodel.h new file mode 100644 index 0000000..b1f7407 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelistview/incrementalmodel.h @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** 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$ +** +****************************************************************************/ + +#ifndef IncrementalModel_H +#define IncrementalModel_H + +#include +#include +#include + +class IncrementalModel : public QAbstractListModel +{ + Q_OBJECT + +public: + IncrementalModel(QObject *parent = 0); + + int rowCount(const QModelIndex &parent = QModelIndex()) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + +protected: + bool canFetchMore(const QModelIndex &parent) const; + void fetchMore(const QModelIndex &parent); + +private: + QStringList list; + int count; +}; + +#endif diff --git a/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro b/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro index 2c5a859..8c99f08 100644 --- a/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro +++ b/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro @@ -2,7 +2,8 @@ load(qttest_p4) contains(QT_CONFIG,declarative): QT += declarative macx:CONFIG -= app_bundle -SOURCES += tst_qdeclarativelistview.cpp +HEADERS += incrementalmodel.h +SOURCES += tst_qdeclarativelistview.cpp incrementalmodel.cpp symbian: { importFiles.sources = data diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index dba0cc4..e76cb15 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -51,6 +51,7 @@ #include #include #include "../../../shared/util.h" +#include "incrementalmodel.h" #ifdef Q_OS_SYMBIAN // In Symbian OS test data is located in applications private dir @@ -106,6 +107,7 @@ private slots: void resizeDelegate(); void QTBUG_16037(); void indexAt(); + void incrementalModel(); private: template void items(); @@ -1998,6 +2000,32 @@ void tst_QDeclarativeListView::indexAt() delete canvas; } +void tst_QDeclarativeListView::incrementalModel() +{ + QDeclarativeView *canvas = createView(); + + IncrementalModel model; + QDeclarativeContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("testModel", &model); + + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/displaylist.qml")); + qApp->processEvents(); + + QDeclarativeListView *listview = findItem(canvas->rootObject(), "list"); + QTRY_VERIFY(listview != 0); + + QDeclarativeItem *contentItem = listview->contentItem(); + QTRY_VERIFY(contentItem != 0); + + QTRY_COMPARE(listview->count(), 20); + + listview->positionViewAtIndex(10, QDeclarativeListView::Beginning); + + QTRY_COMPARE(listview->count(), 25); + + delete canvas; +} + void tst_QDeclarativeListView::qListModelInterface_items() { items(); -- cgit v0.12 From 508d52477fe16f3b425e5d3ec65584e86ed939b3 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 23 Dec 2010 15:01:58 +1000 Subject: Improve docs on attached properties on view delegates. Clarify that the properties are attached to the root of the delegate, and must be accessed as such by child items. Task-number: QTBUG-16193 Reviewed-by: Bea Lam --- doc/src/snippets/declarative/gridview/gridview.qml | 26 ++++++++++++++++++++++ doc/src/snippets/declarative/listview/listview.qml | 14 ++++++++---- .../declarative/pathview/pathattributes.qml | 4 ++-- doc/src/snippets/declarative/pathview/pathview.qml | 14 ++++++++++-- .../graphicsitems/qdeclarativegridview.cpp | 9 ++++++++ .../graphicsitems/qdeclarativelistview.cpp | 7 ++++++ .../graphicsitems/qdeclarativepathview.cpp | 9 ++++++++ 7 files changed, 75 insertions(+), 8 deletions(-) diff --git a/doc/src/snippets/declarative/gridview/gridview.qml b/doc/src/snippets/declarative/gridview/gridview.qml index 73e58ec..87d70de 100644 --- a/doc/src/snippets/declarative/gridview/gridview.qml +++ b/doc/src/snippets/declarative/gridview/gridview.qml @@ -132,6 +132,32 @@ GridView { } //![highlightFollowsCurrentItem] +//![isCurrentItem] +GridView { + width: 300; height: 200 + cellWidth: 80; cellHeight: 80 + + Component { + id: contactsDelegate + Rectangle { + id: wrapper + width: 80 + height: 80 + color: GridView.isCurrentItem ? "black" : "red" + Text { + id: contactInfo + text: name + ": " + number + color: wrapper.GridView.isCurrentItem ? "red" : "black" + } + } + } + + model: ContactModel {} + delegate: contactsDelegate + focus: true +} +//![isCurrentItem] + } } diff --git a/doc/src/snippets/declarative/listview/listview.qml b/doc/src/snippets/declarative/listview/listview.qml index 8ba47a8..370429e 100644 --- a/doc/src/snippets/declarative/listview/listview.qml +++ b/doc/src/snippets/declarative/listview/listview.qml @@ -127,10 +127,16 @@ ListView { Component { id: contactsDelegate - Text { - id: contactInfo - text: name + ": " + number - color: contactInfo.ListView.isCurrentItem ? "red" : "black" + Rectangle { + id: wrapper + width: 180 + height: contactInfo.height + color: ListView.isCurrentItem ? "black" : "red" + Text { + id: contactInfo + text: name + ": " + number + color: wrapper.ListView.isCurrentItem ? "red" : "black" + } } } diff --git a/doc/src/snippets/declarative/pathview/pathattributes.qml b/doc/src/snippets/declarative/pathview/pathattributes.qml index d6dacdb..be933e0 100644 --- a/doc/src/snippets/declarative/pathview/pathattributes.qml +++ b/doc/src/snippets/declarative/pathview/pathattributes.qml @@ -52,8 +52,8 @@ Rectangle { scale: PathView.iconScale opacity: PathView.iconOpacity Column { - Image { anchors.horizontalCenter: name.horizontalCenter; width: 64; height: 64; source: icon } - Text { text: name; font.pointSize: 16} + Image { anchors.horizontalCenter: nameText.horizontalCenter; width: 64; height: 64; source: icon } + Text { id: nameText; text: name; font.pointSize: 16 } } } } diff --git a/doc/src/snippets/declarative/pathview/pathview.qml b/doc/src/snippets/declarative/pathview/pathview.qml index 93298c4..e5e90a4 100644 --- a/doc/src/snippets/declarative/pathview/pathview.qml +++ b/doc/src/snippets/declarative/pathview/pathview.qml @@ -48,8 +48,18 @@ Rectangle { Component { id: delegate Column { - Image { anchors.horizontalCenter: name.horizontalCenter; width: 64; height: 64; source: icon } - Text { text: name; font.pointSize: 16 } + id: wrapper + Image { + anchors.horizontalCenter: nameText.horizontalCenter + width: 64; height: 64 + source: icon + } + Text { + id: nameText + text: name + font.pointSize: 16 + color: wrapper.PathView.isCurrentItem ? "red" : "black" + } } } //! [1] diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp index 4a6a9dc..7ddf6a2 100644 --- a/src/declarative/graphicsitems/qdeclarativegridview.cpp +++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp @@ -1131,6 +1131,13 @@ void QDeclarativeGridViewPrivate::flick(AxisData &data, qreal minExtent, qreal m Delegates are instantiated as needed and may be destroyed at any time. State should \e never be stored in a delegate. + GridView attaches a number of properties to the root item of the delegate, for example + \c {GridView.isCurrentItem}. In the following example, the root delegate item can access + this attached property directly as \c GridView.isCurrentItem, while the child + \c contactInfo object must refer to this property as \c wrapper.GridView.isCurrentItem. + + \snippet doc/src/snippets/declarative/gridview/gridview.qml isCurrentItem + \note Views do not set the \l{Item::}{clip} property automatically. If the view is not clipped by another item or the screen, it will be necessary to set this property to true in order to clip the items that are partially or @@ -1167,6 +1174,8 @@ QDeclarativeGridView::~QDeclarativeGridView() This attached property holds the view that manages this delegate instance. It is attached to each instance of the delegate. + + \snippet doc/src/snippets/declarative/gridview/gridview.qml isCurrentItem */ /*! diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index 86c8756..702442b 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -1416,6 +1416,13 @@ void QDeclarativeListViewPrivate::flick(AxisData &data, qreal minExtent, qreal m Delegates are instantiated as needed and may be destroyed at any time. State should \e never be stored in a delegate. + ListView attaches a number of properties to the root item of the delegate, for example + \c {ListView.isCurrentItem}. In the following example, the root delegate item can access + this attached property directly as \c ListView.isCurrentItem, while the child + \c contactInfo object must refer to this property as \c wrapper.ListView.isCurrentItem. + + \snippet doc/src/snippets/declarative/listview/listview.qml isCurrentItem + \note Views do not enable \e clip automatically. If the view is not clipped by another item or the screen, it will be necessary to set \e {clip: true} in order to have the out of view items clipped diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index a6f44b3..e3987d0 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -393,6 +393,13 @@ void QDeclarativePathViewPrivate::regenerate() Delegates are instantiated as needed and may be destroyed at any time. State should \e never be stored in a delegate. + PathView attaches a number of properties to the root item of the delegate, for example + \c {PathView.isCurrentItem}. In the following example, the root delegate item can access + this attached property directly as \c PathView.isCurrentItem, while the child + \c nameText object must refer to this property as \c wrapper.PathView.isCurrentItem. + + \snippet doc/src/snippets/declarative/pathview/pathview.qml 1 + \bold Note that views do not enable \e clip automatically. If the view is not clipped by another item or the screen, it will be necessary to set \e {clip: true} in order to have the out of view items clipped @@ -452,6 +459,8 @@ QDeclarativePathView::~QDeclarativePathView() It is attached to each instance of the delegate. This property may be used to adjust the appearance of the current item. + + \snippet doc/src/snippets/declarative/pathview/pathview.qml 1 */ /*! -- cgit v0.12 From 93edc0680b8ca9cccefa31f8d2df08b0fc8f32f8 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 23 Dec 2010 15:21:32 +1000 Subject: More docs for FolderListModel --- .../qdeclarativefolderlistmodel.cpp | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp index 9c71004..7b05bc5 100644 --- a/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp +++ b/src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp @@ -190,6 +190,12 @@ QVariant QDeclarativeFolderListModel::data(const QModelIndex &index, int role) c return rv; } +/*! + \qmlproperty int FolderListModel::count + + Returns the number of items in the current folder that match the + filter criteria. +*/ int QDeclarativeFolderListModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent); @@ -225,6 +231,11 @@ void QDeclarativeFolderListModel::setFolder(const QUrl &folder) } } +/*! + \qmlproperty url FolderListModel::parentFolder + + Returns the URL of the parent of of the current \l folder. +*/ QUrl QDeclarativeFolderListModel::parentFolder() const { QString localFile = d->folder.toLocalFile(); @@ -286,6 +297,21 @@ void QDeclarativeFolderListModel::componentComplete() QMetaObject::invokeMethod(this, "refresh", Qt::QueuedConnection); } +/*! + \qmlproperty enumeration FolderListModel::sortField + + The \a sortField property contains field to use for sorting. sortField + may be one of: + \list + \o Unsorted - no sorting is applied. The order is system default. + \o Name - sort by filename + \o Time - sort by time modified + \o Size - sort by file size + \o Type - sort by file type (extension) + \endlist + + \sa sortReversed +*/ QDeclarativeFolderListModel::SortField QDeclarativeFolderListModel::sortField() const { return d->sortField; @@ -299,6 +325,13 @@ void QDeclarativeFolderListModel::setSortField(SortField field) } } +/*! + \qmlproperty bool FolderListModel::sortReversed + + If set to true, reverses the sort order. The default is false. + + \sa sortField +*/ bool QDeclarativeFolderListModel::sortReversed() const { return d->sortReversed; -- cgit v0.12 From eb395badcba6eada75ad5e6a72b74f5204170ed9 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 23 Dec 2010 15:41:09 +1000 Subject: WorkerScript could starve image loading of CPU. We use idle priority for image loading and XmlListModel in order to keep the UI responsive, but WorkerScript used LowPriority which would significantly reduce CPU available for image loading. Task-number: QTBUG-16167 --- src/declarative/qml/qdeclarativeworkerscript.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp index 4b78020..9dc214f 100644 --- a/src/declarative/qml/qdeclarativeworkerscript.cpp +++ b/src/declarative/qml/qdeclarativeworkerscript.cpp @@ -458,7 +458,7 @@ QDeclarativeWorkerScriptEngine::QDeclarativeWorkerScriptEngine(QDeclarativeEngin { d->m_lock.lock(); connect(d, SIGNAL(stopThread()), this, SLOT(quit()), Qt::DirectConnection); - start(QThread::LowPriority); + start(QThread::IdlePriority); d->m_wait.wait(&d->m_lock); d->moveToThread(this); d->m_lock.unlock(); -- cgit v0.12 From 03f94089a16cf6b6a3b533ba1f90444eb18c29ab Mon Sep 17 00:00:00 2001 From: Charles Yin Date: Thu, 4 Nov 2010 15:38:57 +1000 Subject: Add Postgresql 8.x and 9 supports Change-Id: Ic740686ead768cc3e106703049d878549dfd3c6a Task-number:QTBUG-14206 Reviewed-by: Michael Goddard --- src/sql/drivers/psql/qsql_psql.cpp | 116 ++++++++++++++++++++++---------- src/sql/drivers/psql/qsql_psql.h | 6 +- tests/auto/qsqldatabase/tst_databases.h | 2 + 3 files changed, 88 insertions(+), 36 deletions(-) diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp index 2a4e595..bf9685f 100644 --- a/src/sql/drivers/psql/qsql_psql.cpp +++ b/src/sql/drivers/psql/qsql_psql.cpp @@ -54,7 +54,6 @@ #include #include - #include #include @@ -619,6 +618,50 @@ static void setDatestyle(PGconn* connection) PQclear(result); } +static QPSQLDriver::Protocol qMakePSQLVersion(int vMaj, int vMin) +{ + switch (vMaj) { + case 6: + return QPSQLDriver::Version6; + case 7: + { + switch (vMin) { + case 1: + return QPSQLDriver::Version71; + case 3: + return QPSQLDriver::Version73; + case 4: + return QPSQLDriver::Version74; + default: + return QPSQLDriver::Version7; + } + break; + } + case 8: + { + switch (vMin) { + case 1: + return QPSQLDriver::Version81; + case 2: + return QPSQLDriver::Version82; + case 3: + return QPSQLDriver::Version83; + case 4: + return QPSQLDriver::Version84; + default: + return QPSQLDriver::Version8; + } + break; + } + case 9: + return QPSQLDriver::Version9; + break; + default: + break; + } + return QPSQLDriver::VersionUnknown; +} + static QPSQLDriver::Protocol getPSQLVersion(PGconn* connection) { QPSQLDriver::Protocol serverVersion = QPSQLDriver::Version6; @@ -626,50 +669,44 @@ static QPSQLDriver::Protocol getPSQLVersion(PGconn* connection) int status = PQresultStatus(result); if (status == PGRES_COMMAND_OK || status == PGRES_TUPLES_OK) { QString val = QString::fromAscii(PQgetvalue(result, 0, 0)); + QRegExp rx(QLatin1String("(\\d+)\\.(\\d+)")); rx.setMinimal(true); // enforce non-greedy RegExp + if (rx.indexIn(val) != -1) { int vMaj = rx.cap(1).toInt(); int vMin = rx.cap(2).toInt(); - - switch (vMaj) { - case 7: - switch (vMin) { - case 0: - serverVersion = QPSQLDriver::Version7; - break; - case 1: - case 2: - serverVersion = QPSQLDriver::Version71; - break; - default: - serverVersion = QPSQLDriver::Version73; - break; - } - break; - case 8: - switch (vMin) { - case 0: - serverVersion = QPSQLDriver::Version8; - break; - case 1: - serverVersion = QPSQLDriver::Version81; - break; - case 2: - default: - serverVersion = QPSQLDriver::Version82; - break; - } - break; - default: - break; + serverVersion = qMakePSQLVersion(vMaj, vMin); +#ifdef PG_MAJORVERSION + if (rx.indexIn(QLatin1String(PG_MAJORVERSION)) != -1) { + vMaj = rx.cap(1).toInt(); + vMin = rx.cap(2).toInt(); + } + QPSQLDriver::Protocol clientVersion = qMakePSQLVersion(vMaj, vMin); + + if (serverVersion >= QPSQLDriver::Version9 && clientVersion < QPSQLDriver::Version9) { + //Client version before QPSQLDriver::Version9 only supports escape mode for bytea type, + //but bytea format is set to hex by default in PSQL 9 and above. So need to force the + //server use the old escape mode when connects to the new server with old client library. + result = PQexec(connection, "SET bytea_output=escape; "); + status = PQresultStatus(result); + } else if (serverVersion == QPSQLDriver::VersionUnknown) { + serverVersion = clientVersion; + if (serverVersion != QPSQLDriver::VersionUnknown) + qWarning("The server version of this PostgreSQL is unknown, falling back to the client version."); } +#endif } } PQclear(result); - if (serverVersion < QPSQLDriver::Version71) + //keep the old behavior unchanged + if (serverVersion == QPSQLDriver::VersionUnknown) + serverVersion = QPSQLDriver::Version6; + + if (serverVersion < QPSQLDriver::Version71) { qWarning("This version of PostgreSQL is not supported and may not work."); + } return serverVersion; } @@ -852,7 +889,10 @@ bool QPSQLDriver::commitTransaction() // This hack can dissapear once there is an API to query this sort of information. if (d->pro == QPSQLDriver::Version8 || d->pro == QPSQLDriver::Version81 || - d->pro == QPSQLDriver::Version82) { + d->pro == QPSQLDriver::Version82 || + d->pro == QPSQLDriver::Version83 || + d->pro == QPSQLDriver::Version84 || + d->pro == QPSQLDriver::Version9) { transaction_failed = qstrcmp(PQcmdStatus(res), "ROLLBACK") == 0; } @@ -963,6 +1003,9 @@ QSqlIndex QPSQLDriver::primaryIndex(const QString& tablename) const case QPSQLDriver::Version8: case QPSQLDriver::Version81: case QPSQLDriver::Version82: + case QPSQLDriver::Version83: + case QPSQLDriver::Version84: + case QPSQLDriver::Version9: stmt = QLatin1String("SELECT pg_attribute.attname, pg_attribute.atttypid::int, " "pg_class.relname " "FROM pg_attribute, pg_class " @@ -1046,6 +1089,9 @@ QSqlRecord QPSQLDriver::record(const QString& tablename) const case QPSQLDriver::Version8: case QPSQLDriver::Version81: case QPSQLDriver::Version82: + case QPSQLDriver::Version83: + case QPSQLDriver::Version84: + case QPSQLDriver::Version9: stmt = QLatin1String("select pg_attribute.attname, pg_attribute.atttypid::int, " "pg_attribute.attnotnull, pg_attribute.attlen, pg_attribute.atttypmod, " "pg_attrdef.adsrc " diff --git a/src/sql/drivers/psql/qsql_psql.h b/src/sql/drivers/psql/qsql_psql.h index 22871ff..107da87 100644 --- a/src/sql/drivers/psql/qsql_psql.h +++ b/src/sql/drivers/psql/qsql_psql.h @@ -97,6 +97,7 @@ class Q_EXPORT_SQLDRIVER_PSQL QPSQLDriver : public QSqlDriver Q_OBJECT public: enum Protocol { + VersionUnknown = -1, Version6 = 6, Version7 = 7, Version71 = 8, @@ -104,7 +105,10 @@ public: Version74 = 10, Version8 = 11, Version81 = 12, - Version82 = 13 + Version82 = 13, + Version83 = 14, + Version84 = 15, + Version9 = 16, }; explicit QPSQLDriver(QObject *parent=0); diff --git a/tests/auto/qsqldatabase/tst_databases.h b/tests/auto/qsqldatabase/tst_databases.h index 80535df..82ee41a 100644 --- a/tests/auto/qsqldatabase/tst_databases.h +++ b/tests/auto/qsqldatabase/tst_databases.h @@ -235,6 +235,8 @@ public: // addDb( "QPSQL7", "testdb", "testuser", "Ee4Gabf6_", "postgres74-nokia.trolltech.com.au" ); // Version 7.4.19-1.el4_6.1 // addDb( "QPSQL7", "testdb", "testuser", "Ee4Gabf6_", "bq-pgsql81.apac.nokia.com" ); // Version 8.1.11-1.el5_1.1 // addDb( "QPSQL7", "testdb", "testuser", "Ee4Gabf6_", "bq-pgsql84.apac.nokia.com" ); // Version 8.4.1-2.1.i586 +// addDb( "QPSQL7", "testdb", "testuser", "Ee4Gabf6_", "bq-pgsql90.apac.nokia.com" ); // Version 9.0.0 + // addDb( "QDB2", "testdb", "troll", "trond", "silence.nokia.troll.no" ); // DB2 v9.1 on silence -- cgit v0.12 From 26d2580daab37f4a6ff595a5f18b8a49249b5da1 Mon Sep 17 00:00:00 2001 From: Milian Wolff Date: Thu, 23 Dec 2010 14:31:54 +0100 Subject: improve performance of QTextEngine, esp. setBoundary by using non-detaching operator[] Improves scrolling in testfile content.xml attached to QTBUG-9549. According to callgrind, the improvement is nearly 35% (comparing total incl. cost of QTextEngine::setBoundary) total incl cost / calls to setBoundary = before: 6.0883269E9 / 46520 = approx. 130875.47 after: 2.4834313E9 / 29370 = approx. 84556.733 in relation this gives us: 84556.733 / 130875.47 = approx. 0.64608542 Merge-request: 975 Reviewed-by: Harald Fernengel --- src/gui/text/qtextengine.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 3bd6122..17d5fc1 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -894,16 +894,16 @@ void QTextEngine::shapeText(int item) const if (letterSpacingIsAbsolute) glyphs.advances_x[i-1] += letterSpacing; else { - const QFixed advance = glyphs.advances_x[i-1]; - glyphs.advances_x[i-1] += (letterSpacing - 100) * advance / 100; + QFixed &advance = glyphs.advances_x[i-1]; + advance += (letterSpacing - 100) * advance / 100; } } } if (letterSpacingIsAbsolute) glyphs.advances_x[si.num_glyphs-1] += letterSpacing; else { - const QFixed advance = glyphs.advances_x[si.num_glyphs-1]; - glyphs.advances_x[si.num_glyphs-1] += (letterSpacing - 100) * advance / 100; + QFixed &advance = glyphs.advances_x[si.num_glyphs-1]; + advance += (letterSpacing - 100) * advance / 100; } } if (wordSpacing != 0) { @@ -2521,14 +2521,14 @@ void QTextEngine::setBoundary(int strPos) const return; int itemToSplit = 0; - while (itemToSplit < layoutData->items.size() && layoutData->items[itemToSplit].position <= strPos) + while (itemToSplit < layoutData->items.size() && layoutData->items.at(itemToSplit).position <= strPos) itemToSplit++; itemToSplit--; - if (layoutData->items[itemToSplit].position == strPos) { + if (layoutData->items.at(itemToSplit).position == strPos) { // already a split at the requested position return; } - splitItem(itemToSplit, strPos - layoutData->items[itemToSplit].position); + splitItem(itemToSplit, strPos - layoutData->items.at(itemToSplit).position); } void QTextEngine::splitItem(int item, int pos) const -- cgit v0.12 From 4d81f771f513a9911a4812b47c6479c85eff0628 Mon Sep 17 00:00:00 2001 From: Niklas Kurkisuo Date: Thu, 23 Dec 2010 14:48:10 +0100 Subject: Fix resource leak in QCLuceneStopAnalyzer::QCLuceneStopAnalyzer. CID 22164. Merge-request: 2534 Reviewed-by: Harald Fernengel --- tools/assistant/lib/fulltextsearch/qanalyzer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/assistant/lib/fulltextsearch/qanalyzer.cpp b/tools/assistant/lib/fulltextsearch/qanalyzer.cpp index 835b72e..23a9f14 100644 --- a/tools/assistant/lib/fulltextsearch/qanalyzer.cpp +++ b/tools/assistant/lib/fulltextsearch/qanalyzer.cpp @@ -147,6 +147,12 @@ QCLuceneStopAnalyzer::QCLuceneStopAnalyzer(const QStringList &stopWords) tArray[stopWords.count()] = 0; d->analyzer = new lucene::analysis::StopAnalyzer(tArray); + + // free memory + for(int i = 0; i < stopWords.count(); ++i) { + delete [] tArray[i]; + } + delete [] tArray; } QStringList QCLuceneStopAnalyzer::englishStopWords() const -- cgit v0.12 From e18dfbc2f5cc99aca1ff7abbab5f9b3be2bfed73 Mon Sep 17 00:00:00 2001 From: Niklas Kurkisuo Date: Thu, 23 Dec 2010 14:48:12 +0100 Subject: Fix resource leak in QCLuceneStandardAnalyzer::QCLuceneStandardAnalyzer. CID 22165. Merge-request: 2534 Reviewed-by: Harald Fernengel --- tools/assistant/lib/fulltextsearch/qanalyzer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/assistant/lib/fulltextsearch/qanalyzer.cpp b/tools/assistant/lib/fulltextsearch/qanalyzer.cpp index 23a9f14..db2f06c 100644 --- a/tools/assistant/lib/fulltextsearch/qanalyzer.cpp +++ b/tools/assistant/lib/fulltextsearch/qanalyzer.cpp @@ -96,6 +96,12 @@ QCLuceneStandardAnalyzer::QCLuceneStandardAnalyzer(const QStringList &stopWords) tArray[stopWords.count()] = 0; d->analyzer = new lucene::analysis::standard::StandardAnalyzer(tArray); + + // free memory + for(int i = 0; i < stopWords.count(); ++i) { + delete [] tArray[i]; + } + delete [] tArray; } -- cgit v0.12 From d2f87812095d658bceea9287543a7f3d52e18944 Mon Sep 17 00:00:00 2001 From: Juuso Pakarinen Date: Thu, 23 Dec 2010 14:48:13 +0100 Subject: Fix for coding conventions. Merge-request: 2534 Reviewed-by: Harald Fernengel --- tools/assistant/lib/fulltextsearch/qanalyzer.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tools/assistant/lib/fulltextsearch/qanalyzer.cpp b/tools/assistant/lib/fulltextsearch/qanalyzer.cpp index db2f06c..c974fa6 100644 --- a/tools/assistant/lib/fulltextsearch/qanalyzer.cpp +++ b/tools/assistant/lib/fulltextsearch/qanalyzer.cpp @@ -97,10 +97,9 @@ QCLuceneStandardAnalyzer::QCLuceneStandardAnalyzer(const QStringList &stopWords) d->analyzer = new lucene::analysis::standard::StandardAnalyzer(tArray); - // free memory - for(int i = 0; i < stopWords.count(); ++i) { + for (int i = 0; i < stopWords.count(); ++i) delete [] tArray[i]; - } + delete [] tArray; } @@ -154,10 +153,9 @@ QCLuceneStopAnalyzer::QCLuceneStopAnalyzer(const QStringList &stopWords) d->analyzer = new lucene::analysis::StopAnalyzer(tArray); - // free memory - for(int i = 0; i < stopWords.count(); ++i) { + for (int i = 0; i < stopWords.count(); ++i) delete [] tArray[i]; - } + delete [] tArray; } -- cgit v0.12 From 1c5a9b8d80b9dfe26b2d669e081d9a461c181222 Mon Sep 17 00:00:00 2001 From: Harald Fernengel Date: Thu, 23 Dec 2010 14:49:52 +0100 Subject: Whitespace change Since I can't touch merge requests, this is a separate commit to fix whitespace errors in code. --- tools/assistant/lib/fulltextsearch/qanalyzer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/assistant/lib/fulltextsearch/qanalyzer.cpp b/tools/assistant/lib/fulltextsearch/qanalyzer.cpp index c974fa6..56eae69 100644 --- a/tools/assistant/lib/fulltextsearch/qanalyzer.cpp +++ b/tools/assistant/lib/fulltextsearch/qanalyzer.cpp @@ -99,7 +99,7 @@ QCLuceneStandardAnalyzer::QCLuceneStandardAnalyzer(const QStringList &stopWords) for (int i = 0; i < stopWords.count(); ++i) delete [] tArray[i]; - + delete [] tArray; } @@ -155,7 +155,7 @@ QCLuceneStopAnalyzer::QCLuceneStopAnalyzer(const QStringList &stopWords) for (int i = 0; i < stopWords.count(); ++i) delete [] tArray[i]; - + delete [] tArray; } -- cgit v0.12 From 15f6124da9c2cf70e74a1e0e6f89c27d17ec9d29 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 23 Dec 2010 15:53:43 +0200 Subject: Fix fullscreen/Maximized dialog misplacement in Symbian Task-number: QTBUG-16277 Reviewed-by: Sami Merila --- src/gui/dialogs/qdialog.cpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/gui/dialogs/qdialog.cpp b/src/gui/dialogs/qdialog.cpp index 16ea045..bcf952c 100644 --- a/src/gui/dialogs/qdialog.cpp +++ b/src/gui/dialogs/qdialog.cpp @@ -899,9 +899,21 @@ bool QDialog::symbianAdjustedPosition() { #if defined(Q_WS_S60) QPoint p; - const bool doS60Positioning = !(isFullScreen()||isMaximized()); - if (doS60Positioning) { - QPoint oldPos = pos(); + QPoint oldPos = pos(); + if (isFullScreen()) { + p.setX(0); + p.setY(0); + } else if (isMaximized()) { + TRect statusPaneRect = TRect(); + if (S60->screenHeightInPixels > S60->screenWidthInPixels) { + AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EStatusPane, statusPaneRect); + } else { + AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EStaconTop, statusPaneRect); + } + + p.setX(0); + p.setY(statusPaneRect.Height()); + } else { // naive way to deduce screen orientation if (S60->screenHeightInPixels > S60->screenWidthInPixels) { int cbaHeight; @@ -937,10 +949,10 @@ bool QDialog::symbianAdjustedPosition() p.setX(qMax(0,S60->screenWidthInPixels - width())); } } - if (oldPos != p || p.y() < 0) - move(p); } - return doS60Positioning; + if (oldPos != p || p.y() < 0) + move(p); + return true; #else // TODO - check positioning requirement for Symbian, non-s60 return false; -- cgit v0.12 From c168138195b623afc523ddd647dcfb690106c845 Mon Sep 17 00:00:00 2001 From: axis Date: Thu, 23 Dec 2010 15:07:21 +0100 Subject: Fixed several compile and deployment issues in the mmf phonon plugin. RevBy: Trust me Conflicts: src/plugins/phonon/mmf/mmf.pro src/s60installs/s60installs.pro --- src/plugins/phonon/mmf/mmf.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/phonon/mmf/mmf.pro b/src/plugins/phonon/mmf/mmf.pro index e546d83..9dccc4f 100644 --- a/src/plugins/phonon/mmf/mmf.pro +++ b/src/plugins/phonon/mmf/mmf.pro @@ -128,7 +128,7 @@ symbian { is_using_gnupoc { LIBS += -laudioequalizereffect -lbassboosteffect -ldistanceattenuationeffect -ldopplerbase -leffectbase -lenvironmentalreverbeffect -llistenerdopplereffect -llistenerlocationeffect -llistenerorientationeffect -llocationbase -lloudnesseffect -lorientationbase -lsourcedopplereffect -lsourcelocationeffect -lsourceorientationeffect -lstereowideningeffect } else { - LIBS += -lAudioEqualizerEffect -lBassBoostEffect -lDistanceAttenuationEffect -lDopplerBase -lEffectBase -lEnvironmentalReverbEffect -lListenerDopplerEffect -lListenerLocationEffect -lListenerOrientationEffect -lLocationBase -lLoudnessEffect -lOrientationBase -lSourceDopplerEffect -lSourceLocationEffect -lSourceOrientationEffect -lStereoWideningEffect + LIBS += -lAudioEqualizerEffect -lBassBoostEffect -lDistanceAttenuationEffect -lDopplerbase -lEffectBase -lEnvironmentalReverbEffect -lListenerDopplerEffect -lListenerLocationEffect -lListenerOrientationEffect -lLocationBase -lLoudnessEffect -lOrientationBase -lSourceDopplerEffect -lSourceLocationEffect -lSourceOrientationEffect -lStereoWideningEffect } # This is needed for having the .qtplugin file properly created on Symbian. -- cgit v0.12 From 76c1492a51746730c1b51539b87f8d8c810f44ff Mon Sep 17 00:00:00 2001 From: axis Date: Thu, 23 Dec 2010 15:52:38 +0100 Subject: Fixed a bug in elf2e32_qtwrapper regarding spaces in def files. It would not parse the line correctly if a space was missing between the "@" and the ordinal number. RevBy: Trust me --- bin/elf2e32_qtwrapper.pl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/elf2e32_qtwrapper.pl b/bin/elf2e32_qtwrapper.pl index d91be14..a90877e 100755 --- a/bin/elf2e32_qtwrapper.pl +++ b/bin/elf2e32_qtwrapper.pl @@ -146,7 +146,7 @@ while (1) { $origDefLine = <$origDefFile>; if (defined($origDefLine)) { $origDefLine =~ s/[\n\r]//; - if ($origDefLine =~ /([a-z0-9_]+) +\@ ([0-9]+) (.*)/i) { + if ($origDefLine =~ /([a-z0-9_]+) +\@ *([0-9]+) (.*)/i) { $origSym = $1; $origOrdinal = $2; $origExtraData = $3; @@ -161,7 +161,7 @@ while (1) { if ($savedNewDefFileLine) { # This happens if the new def file was missing an entry. $newDefLine = $savedNewDefFileLine; - $newDefLine =~ /([a-z0-9_]+) +\@ ([0-9]+) (.*)/i or die("$0: Shouldn't happen"); + $newDefLine =~ /([a-z0-9_]+) +\@ *([0-9]+) (.*)/i or die("$0: Shouldn't happen"); $newSym = $1; $newOrdinal = $2; $newExtraData = $3; @@ -171,7 +171,7 @@ while (1) { $newDefLine = <$newDefFile>; if (defined($newDefLine)) { $newDefLine =~ s/[\n\r]//; - if ($newDefLine =~ /([a-z0-9_]+) +\@ ([0-9]+) (.*)/i) { + if ($newDefLine =~ /([a-z0-9_]+) +\@ *([0-9]+) (.*)/i) { $newSym = $1; $newOrdinal = $2; $newExtraData = $3; -- cgit v0.12 From b7ac9ed56ff8bfb3158d115ea7c6e3eef250f4bc Mon Sep 17 00:00:00 2001 From: Kent Hansen Date: Tue, 28 Dec 2010 14:19:18 +0100 Subject: Add compiler optimization for QtScript/JSC on Symbian Ported from http://trac.webkit.org/changeset/73126. This gives a ~70% performance improvement for the SunSpider and V8 benchmarks. Task-number: QTBUG-15847 Reviewed-by: Simon Hausmann --- src/script/script.pro | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/script/script.pro b/src/script/script.pro index 4ee86d7..d1633d8 100644 --- a/src/script/script.pro +++ b/src/script/script.pro @@ -84,5 +84,15 @@ symbian { LIBS += -lhal } +symbian { + symbian-abld|symbian-sbsv2 { + MMP_RULES += ALWAYS_BUILD_AS_ARM + } else { + QMAKE_CFLAGS -= --thumb + QMAKE_CXXFLAGS -= --thumb + } + QMAKE_CXXFLAGS.ARMCC += -OTime -O3 +} + # WebKit doesn't compile in C++0x mode *-g++*:QMAKE_CXXFLAGS -= -std=c++0x -std=gnu++0x -- cgit v0.12 From ef96a142f790152524248b4dd0f24e3126ef871e Mon Sep 17 00:00:00 2001 From: Jason Barron Date: Wed, 29 Dec 2010 19:15:03 +0200 Subject: Clear WSERV content when a native child receives an "expose" Native child windows on Symbian can cause composition artifacts on S^3 because they own a visible RWindow instance, but the RWindow technically has no content because child windows paint their content to their parent's backing store. In the event that a native child widget completely obscures a top level, the composition engine does not understand that the child is "empty" and should clear the UI surface to let the top level "shine through". The result is that articacts can remain on the UI surface after a transition from a WSERV drawing app to a Qt (EGL rendering) app. To fix this issue, we call CWindowGc::Clear() when the native child widget receives an "expose" event. This clears the UI surface content and ensures the top level is visible even though it is technically below another RWindow. Task-number: QTMOBILITY-484 Reviewed-by: Jani Hautakangas --- src/gui/kernel/qapplication_s60.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp index 181fcc7..691c02a 100644 --- a/src/gui/kernel/qapplication_s60.cpp +++ b/src/gui/kernel/qapplication_s60.cpp @@ -1071,6 +1071,14 @@ void QSymbianControl::Draw(const TRect& controlRect) const Q_ASSERT(topExtra); if (!topExtra->inExpose) { topExtra->inExpose = true; + if (!qwidget->isWindow()) { + // If we get here, then it means we have a native child window + // Since no content should ever be painted to these windows, we + // erase them with a transparent brush when they get an expose. + CWindowGc &gc = SystemGc(); + gc.SetBrushColor(TRgb(0, 0, 0, 0)); + gc.Clear(controlRect); + } QRect exposeRect = qt_TRect2QRect(controlRect); qwidget->d_func()->syncBackingStore(exposeRect); topExtra->inExpose = false; -- cgit v0.12 From a31d271bdd4594ea455736a0000cd3493b0efc93 Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Thu, 30 Dec 2010 10:36:06 +1000 Subject: tst_qmessagebox: simulate key events more robustly Don't use QTimer::singleShot because it provides no method of cancelling the event when failures occur. Always verify that the simulated key event is consumed as expected. --- tests/auto/qmessagebox/tst_qmessagebox.cpp | 103 ++++++++++++++++++++--------- 1 file changed, 71 insertions(+), 32 deletions(-) diff --git a/tests/auto/qmessagebox/tst_qmessagebox.cpp b/tests/auto/qmessagebox/tst_qmessagebox.cpp index f6ee764..a39d458 100644 --- a/tests/auto/qmessagebox/tst_qmessagebox.cpp +++ b/tests/auto/qmessagebox/tst_qmessagebox.cpp @@ -107,7 +107,7 @@ class tst_QMessageBox : public QObject public: tst_QMessageBox(); int exec(QMessageBox *msgBox, int key = -1); - int sendReturn(); + void sendKeySoon(); public slots: void sendKey(); @@ -136,8 +136,12 @@ private slots: void setInformativeText(); void iconPixmap(); + void init(); + void initTestCase(); + private: int keyToSend; + QTimer keySendTimer; }; tst_QMessageBox::tst_QMessageBox() : keyToSend(-1) @@ -152,22 +156,16 @@ int tst_QMessageBox::exec(QMessageBox *msgBox, int key) QTimer::singleShot(1000, msgBox, SLOT(close())); } else { keyToSend = key; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); } return msgBox->exec(); } -int tst_QMessageBox::sendReturn() -{ - keyToSend = Qt::Key_Return; - QTimer::singleShot(1000, this, SLOT(sendKey())); - return 0; -} - void tst_QMessageBox::sendKey() { if (keyToSend == -2) { QApplication::activeModalWidget()->close(); + keyToSend = -1; return; } if (keyToSend == -1) @@ -177,6 +175,24 @@ void tst_QMessageBox::sendKey() keyToSend = -1; } +void tst_QMessageBox::sendKeySoon() +{ + keySendTimer.start(); +} + +void tst_QMessageBox::init() +{ + // if there is any pending key send from the last test, cancel it. + keySendTimer.stop(); +} + +void tst_QMessageBox::initTestCase() +{ + keySendTimer.setInterval(1000); + keySendTimer.setSingleShot(true); + QVERIFY(QObject::connect(&keySendTimer, SIGNAL(timeout()), this, SLOT(sendKey()))); +} + void tst_QMessageBox::sanityTest() { QMessageBox msgBox; @@ -317,32 +333,36 @@ void tst_QMessageBox::statics() for (int i = 0; i < 4; i++) { keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); QMessageBox::StandardButton sb = (*statics[i])(0, "caption", "text", QMessageBox::Yes | QMessageBox::No | QMessageBox::Help | QMessageBox::Cancel, QMessageBox::NoButton); QCOMPARE(sb, QMessageBox::Cancel); + QCOMPARE(keyToSend, -1); keyToSend = -2; // close() - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); sb = (*statics[i])(0, "caption", "text", QMessageBox::Yes | QMessageBox::No | QMessageBox::Help | QMessageBox::Cancel, QMessageBox::NoButton); QCOMPARE(sb, QMessageBox::Cancel); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Enter; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); sb = (*statics[i])(0, "caption", "text", QMessageBox::Yes | QMessageBox::No | QMessageBox::Help, QMessageBox::Yes); QCOMPARE(sb, QMessageBox::Yes); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Enter; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); sb = (*statics[i])(0, "caption", "text", QMessageBox::Yes | QMessageBox::No | QMessageBox::Help, QMessageBox::No); QCOMPARE(sb, QMessageBox::No); + QCOMPARE(keyToSend, -1); } } @@ -361,16 +381,18 @@ void tst_QMessageBox::shortcut() void tst_QMessageBox::about() { keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); QMessageBox::about(0, "Caption", "This is an auto test"); + QCOMPARE(keyToSend, -1); #if !defined(Q_OS_WINCE) keyToSend = Qt::Key_Enter; #else keyToSend = Qt::Key_Escape; #endif - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); QMessageBox::aboutQt(0, "Caption"); + QCOMPARE(keyToSend, -1); } // Old message box enums @@ -392,7 +414,7 @@ void tst_QMessageBox::staticSourceCompat() // source compat tests for < 4.2 keyToSend = Qt::Key_Enter; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", QMessageBox::Yes, QMessageBox::No); int expectedButton = int(QMessageBox::Yes); #if defined(Q_WS_MAC) && !defined(QT_NO_STYLE_MAC) @@ -403,43 +425,51 @@ void tst_QMessageBox::staticSourceCompat() expectedButton = int(QMessageBox::No); #endif QCOMPARE(ret, expectedButton); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Enter; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", QMessageBox::Yes | QMessageBox::Default, QMessageBox::No); QCOMPARE(ret, int(QMessageBox::Yes)); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Enter; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", QMessageBox::Yes, QMessageBox::No | QMessageBox::Default); QCOMPARE(ret, int(QMessageBox::No)); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Enter; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", QMessageBox::Yes | QMessageBox::Default, QMessageBox::No | QMessageBox::Escape); QCOMPARE(ret, int(QMessageBox::Yes)); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Enter; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", QMessageBox::Yes | QMessageBox::Escape, QMessageBox::No | QMessageBox::Default); QCOMPARE(ret, int(QMessageBox::No)); + QCOMPARE(keyToSend, -1); // the button text versions keyToSend = Qt::Key_Enter; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", "Yes", "No", QString(), 1); QCOMPARE(ret, 1); + QCOMPARE(keyToSend, -1); if (0) { // dont run these tests since the dialog wont close! keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", "Yes", "No", QString(), 1); QCOMPARE(ret, -1); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", "Yes", "No", QString(), 0, 1); QCOMPARE(ret, 1); + QCOMPARE(keyToSend, -1); } } @@ -472,7 +502,7 @@ void tst_QMessageBox::staticBinaryCompat() // binary compat tests for < 4.2 keyToSend = Qt::Key_Enter; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", Old_Yes, Old_No, 0); int expectedButton = int(Old_Yes); #if defined(Q_WS_MAC) && !defined(QT_NO_STYLE_MAC) @@ -483,33 +513,39 @@ void tst_QMessageBox::staticBinaryCompat() expectedButton = int(Old_No); #endif QCOMPARE(ret, expectedButton); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", Old_Yes | Old_Escape, Old_No, 0); QCOMPARE(ret, int(Old_Yes)); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Enter; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", Old_Yes | Old_Default, Old_No, 0); QCOMPARE(ret, int(Old_Yes)); + QCOMPARE(keyToSend, -1); #if 0 keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", Old_Yes, Old_No | Old_Default, 0); QCOMPARE(ret, -1); + QCOMPARE(keyToSend, -1); #endif keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", Old_Yes | Old_Escape, Old_No | Old_Default, 0); QCOMPARE(ret, Old_Yes); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); ret = QMessageBox::information(0, "title", "text", Old_Yes | Old_Default, Old_No | Old_Escape, 0); QCOMPARE(ret, Old_No); + QCOMPARE(keyToSend, -1); } @@ -688,22 +724,25 @@ void tst_QMessageBox::detailsButtonText() void tst_QMessageBox::incorrectDefaultButton() { keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); //Do not crash here QTest::ignoreMessage(QtWarningMsg, "QDialogButtonBox::createButton: Invalid ButtonRole, button not added"); QMessageBox::question( 0, "", "I've been hit!",QMessageBox::Ok | QMessageBox::Cancel,QMessageBox::Save ); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); QTest::ignoreMessage(QtWarningMsg, "QDialogButtonBox::createButton: Invalid ButtonRole, button not added"); QMessageBox::question( 0, "", "I've been hit!",QFlag(QMessageBox::Ok | QMessageBox::Cancel),QMessageBox::Save ); + QCOMPARE(keyToSend, -1); keyToSend = Qt::Key_Escape; - QTimer::singleShot(1000, this, SLOT(sendKey())); + sendKeySoon(); QTest::ignoreMessage(QtWarningMsg, "QDialogButtonBox::createButton: Invalid ButtonRole, button not added"); QTest::ignoreMessage(QtWarningMsg, "QDialogButtonBox::createButton: Invalid ButtonRole, button not added"); //do not crash here -> call old function of QMessageBox in this case QMessageBox::question( 0, "", "I've been hit!",QMessageBox::Ok | QMessageBox::Cancel,QMessageBox::Save | QMessageBox::Cancel,QMessageBox::Ok); + QCOMPARE(keyToSend, -1); } void tst_QMessageBox::updateSize() -- cgit v0.12 From 6981c17455f949fd4fccbaf1bd42ab48f95d4212 Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Thu, 30 Dec 2010 10:46:05 +1000 Subject: tst_qmessagebox: make the failure message better for detailsButtonText --- tests/auto/qmessagebox/tst_qmessagebox.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/auto/qmessagebox/tst_qmessagebox.cpp b/tests/auto/qmessagebox/tst_qmessagebox.cpp index a39d458..9e497fa 100644 --- a/tests/auto/qmessagebox/tst_qmessagebox.cpp +++ b/tests/auto/qmessagebox/tst_qmessagebox.cpp @@ -714,8 +714,7 @@ void tst_QMessageBox::detailsButtonText() foreach(btn, list) { if (btn && (btn->inherits("QPushButton"))) { if (btn->text() != QMessageBox::tr("OK") && btn->text() != QMessageBox::tr("Show Details...")) { - qDebug() << btn->text(); - QFAIL("Incorrect messagebox button text!"); + QFAIL(qPrintable(QString("Unexpected messagebox button text: %1").arg(btn->text()))); } } } -- cgit v0.12 From 89866e1112bba004847573c5494aa3b6ec75049f Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Thu, 30 Dec 2010 15:25:38 +1000 Subject: tst_qmessagebox: fix `about' test on mac QMessageBox::about and aboutQt are modeless on Mac (only). This means that if we simulate key events, we need to explicitly run the event loop until they are consumed. Prior to a31d271bdd4594ea455736a0000cd3493b0efc93, this buggy test was causing detailsButtonText to fail. --- tests/auto/qmessagebox/tst_qmessagebox.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/auto/qmessagebox/tst_qmessagebox.cpp b/tests/auto/qmessagebox/tst_qmessagebox.cpp index 9e497fa..4bc1a28 100644 --- a/tests/auto/qmessagebox/tst_qmessagebox.cpp +++ b/tests/auto/qmessagebox/tst_qmessagebox.cpp @@ -55,6 +55,8 @@ #include #endif +#include "../../shared/util.h" + //TESTED_CLASS= //TESTED_FILES= @@ -383,7 +385,13 @@ void tst_QMessageBox::about() keyToSend = Qt::Key_Escape; sendKeySoon(); QMessageBox::about(0, "Caption", "This is an auto test"); + // On Mac, about and aboutQt are not modal, so we need to + // explicitly run the event loop +#ifdef Q_WS_MAC + QTRY_COMPARE(keyToSend, -1); +#else QCOMPARE(keyToSend, -1); +#endif #if !defined(Q_OS_WINCE) keyToSend = Qt::Key_Enter; @@ -392,7 +400,11 @@ void tst_QMessageBox::about() #endif sendKeySoon(); QMessageBox::aboutQt(0, "Caption"); +#ifdef Q_WS_MAC + QTRY_COMPARE(keyToSend, -1); +#else QCOMPARE(keyToSend, -1); +#endif } // Old message box enums -- cgit v0.12 From 8365b863419ad68f7dde7b7595e1b943ad9670ca Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Fri, 31 Dec 2010 08:20:39 +1000 Subject: Fixed networkselftest failing to resolve hostname The logic here was the opposite from what was intended. Note that this bug was hidden under normal circumstances when running the entire testcase. It only appeared when one of the following was true: (1) httpProxy or socks5Proxy was run on its own, or (2) the dnsResolution test failed. --- tests/auto/networkselftest/tst_networkselftest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/networkselftest/tst_networkselftest.cpp b/tests/auto/networkselftest/tst_networkselftest.cpp index 752e368..5e9c50e 100644 --- a/tests/auto/networkselftest/tst_networkselftest.cpp +++ b/tests/auto/networkselftest/tst_networkselftest.cpp @@ -337,7 +337,7 @@ QHostAddress tst_NetworkSelfTest::serverIpAddress() // need resolving QHostInfo resolved = QHostInfo::fromName(QtNetworkSettings::serverName()); if(resolved.error() != QHostInfo::NoError || - !resolved.addresses().isEmpty()) { + resolved.addresses().isEmpty()) { qWarning("QHostInfo::fromName failed (%d).", resolved.error()); return QHostAddress(QHostAddress::Null); } -- cgit v0.12 From 5d18d393808d7a4be56eb00ab9f1e9cda9e211c9 Mon Sep 17 00:00:00 2001 From: Ville Pernu Date: Fri, 31 Dec 2010 12:48:09 +0200 Subject: Fix QNetworkReply autotest cases for QT-3494 These fixes add a new QTest columns to cases tst_QNetworkReply:: ioGetFromHttpStatus100_data and tst_QNetworkReply::ioGetFromHttpNoHeaders. Each test row now has an expected error message per input data string. Task-Number: QT-3494 Reviewed-By: Perttu Pohjonen --- tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index cff0ae9..6cd9d3c 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -2585,17 +2585,19 @@ void tst_QNetworkReply::ioGetFromHttpBrokenServer() void tst_QNetworkReply::ioGetFromHttpStatus100_data() { QTest::addColumn("dataToSend"); - QTest::newRow("normal") << QByteArray("HTTP/1.1 100 Continue\r\n\r\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"); - QTest::newRow("minimal") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"); - QTest::newRow("minimal2") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.0 200 OK\r\n\r\n"); - QTest::newRow("minimal3") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.0 200 OK\n\n"); - QTest::newRow("with_headers") << QByteArray("HTTP/1.1 100 Continue\r\nBla: x\r\n\r\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"); - QTest::newRow("with_headers2") << QByteArray("HTTP/1.1 100 Continue\nBla: x\n\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"); + QTest::addColumn("expectedError"); + QTest::newRow("normal") << QByteArray("HTTP/1.1 100 Continue\r\n\r\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n") << QNetworkReply::NoError; + QTest::newRow("minimal") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n") << QNetworkReply::NoError; + QTest::newRow("minimal2") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.0 200 OK\r\n\r\n") << QNetworkReply::RemoteHostClosedError; + QTest::newRow("minimal3") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.0 200 OK\n\n") << QNetworkReply::RemoteHostClosedError; + QTest::newRow("with_headers") << QByteArray("HTTP/1.1 100 Continue\r\nBla: x\r\n\r\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n") << QNetworkReply::NoError; + QTest::newRow("with_headers2") << QByteArray("HTTP/1.1 100 Continue\nBla: x\n\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n") << QNetworkReply::NoError; } void tst_QNetworkReply::ioGetFromHttpStatus100() { QFETCH(QByteArray, dataToSend); + QFETCH(QNetworkReply::NetworkError, expectedError); MiniHttpServer server(dataToSend); server.doClose = true; @@ -2607,7 +2609,7 @@ void tst_QNetworkReply::ioGetFromHttpStatus100() QVERIFY(!QTestEventLoop::instance().timeout()); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->error(), expectedError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QVERIFY(reply->rawHeader("bla").isNull()); } @@ -2615,12 +2617,14 @@ void tst_QNetworkReply::ioGetFromHttpStatus100() void tst_QNetworkReply::ioGetFromHttpNoHeaders_data() { QTest::addColumn("dataToSend"); - QTest::newRow("justStatus+noheaders+disconnect") << QByteArray("HTTP/1.0 200 OK\r\n\r\n"); + QTest::addColumn("expectedError"); + QTest::newRow("justStatus+noheaders+disconnect") << QByteArray("HTTP/1.0 200 OK\r\n\r\n") << QNetworkReply::RemoteHostClosedError; } void tst_QNetworkReply::ioGetFromHttpNoHeaders() { QFETCH(QByteArray, dataToSend); + QFETCH(QNetworkReply::NetworkError, expectedError); MiniHttpServer server(dataToSend); server.doClose = true; @@ -2632,7 +2636,7 @@ void tst_QNetworkReply::ioGetFromHttpNoHeaders() QVERIFY(!QTestEventLoop::instance().timeout()); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), QNetworkReply::NoError); + QCOMPARE(reply->error(), expectedError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); } -- cgit v0.12 From 1f24941131a7ab62969265f1e29ef990dbc60ff5 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 3 Jan 2011 12:35:16 +0200 Subject: Ignore static_and_shared in Symbian builds. The function addExclusiveBuilds doesn't work on Symbian and is unlikely to ever work due to build system mandated target directories, so ignore static_and_shared in Symbian builds that rely on Symbian toolchains. Task-number: QTBUG-16298 Reviewed-by: axis --- mkspecs/features/static_and_shared.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/features/static_and_shared.prf b/mkspecs/features/static_and_shared.prf index f586bdd..39a9a1f 100644 --- a/mkspecs/features/static_and_shared.prf +++ b/mkspecs/features/static_and_shared.prf @@ -1,3 +1,3 @@ -!contains(TEMPLATE, subdirs):!macx-xcode { +!contains(TEMPLATE, subdirs):!macx-xcode:!symbian-abld:!symbian-sbsv2 { addExclusiveBuilds(static, Static, shared, Shared) } -- cgit v0.12 From 00cf748fa3d241e52dc0908da90864ea397dab8a Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Mon, 3 Jan 2011 15:08:22 +0100 Subject: Fix crash when closing QFontDialog::getFont() dialog Unfortunately, given the large number of ways of showing a QFontDialog, it's possible that we try to close the dialog before its event loop is finished. Setting the Cocoa font panel's isReleaseOnClose property to FALSE ensures the panel is still around when we effectively exit the dialog's event loop. Reviewed-by: Richard Task-number: QTBUG-15666 --- src/gui/dialogs/qfontdialog_mac.mm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gui/dialogs/qfontdialog_mac.mm b/src/gui/dialogs/qfontdialog_mac.mm index 9c63dfa..e2c0ef5 100644 --- a/src/gui/dialogs/qfontdialog_mac.mm +++ b/src/gui/dialogs/qfontdialog_mac.mm @@ -116,6 +116,7 @@ const int StyleMask = NSTitledWindowMask | NSClosableWindowMask | NSResizableWin - (void)showModelessPanel; - (void)showWindowModalSheet:(QWidget *)docWidget; - (void)runApplicationModalPanel; +- (BOOL)isAppModal; - (void)changeFont:(id)sender; - (void)changeAttributes:(id)sender; - (BOOL)windowShouldClose:(id)window; @@ -226,6 +227,7 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont) QBoolBlocker nativeDialogOnTop(QApplicationPrivate::native_modal_dialog_active); mAppModal = true; NSWindow *ourPanel = [mStolenContentView window]; + [ourPanel setReleasedWhenClosed:NO]; [NSApp runModalForWindow:ourPanel]; QAbstractEventDispatcher::instance()->interrupt(); @@ -235,6 +237,11 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont) mPriv->fontDialog()->reject(); } +- (BOOL)isAppModal +{ + return mAppModal; +} + - (void)showWindowModalSheet:(QWidget *)docWidget { #ifdef QT_MAC_USE_COCOA @@ -485,6 +492,8 @@ void QFontDialogPrivate::closeCocoaFontPanel() QT_MANGLE_NAMESPACE(QCocoaFontPanelDelegate) *theDelegate = static_cast(delegate); NSWindow *ourPanel = [theDelegate actualPanel]; [ourPanel close]; + if ([theDelegate isAppModal]) + [ourPanel release]; [theDelegate cleanUpAfterMyself]; [theDelegate release]; this->delegate = 0; -- cgit v0.12 From e21f066df7017e8cb8e50a387b3bf952cf497602 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 4 Jan 2011 11:12:30 +1000 Subject: Update visual tests Minor changes in flickable and rectangle radius behaviours have led to some altered pixels here and there. Task-number: QTBUG-14792 --- .../qmlvisual/ListView/data/listview.5.png | Bin 1661 -> 1663 bytes .../qmlvisual/ListView/data/listview.6.png | Bin 1674 -> 1666 bytes .../qmlvisual/ListView/data/listview.qml | 234 ++--- .../data/flickable-horizontal.0.png | Bin 1439 -> 1436 bytes .../data/flickable-horizontal.1.png | Bin 1424 -> 1426 bytes .../data/flickable-horizontal.2.png | Bin 1428 -> 1429 bytes .../data/flickable-horizontal.3.png | Bin 1397 -> 1395 bytes .../data/flickable-horizontal.4.png | Bin 1454 -> 1450 bytes .../data/flickable-horizontal.qml | 578 +++++------ .../data/flickable-vertical.0.png | Bin 1073 -> 1070 bytes .../data/flickable-vertical.1.png | Bin 1063 -> 1064 bytes .../data/flickable-vertical.2.png | Bin 1080 -> 1079 bytes .../data/flickable-vertical.3.png | Bin 1080 -> 1079 bytes .../data/flickable-vertical.4.png | Bin 1056 -> 1057 bytes .../data/flickable-vertical.5.png | Bin 1075 -> 1080 bytes .../data/flickable-vertical.6.png | Bin 1029 -> 1030 bytes .../data/flickable-vertical.7.png | Bin 1073 -> 1070 bytes .../data/flickable-vertical.8.png | Bin 1053 -> 1055 bytes .../data/flickable-vertical.qml | 1034 ++++++++++---------- .../qmlvisual/rect/data/rect-painting.0.png | Bin 15272 -> 15366 bytes 20 files changed, 923 insertions(+), 923 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png index 63a594e..d1f06fa 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png and b/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png index 05e24c6..9e6e29c 100644 Binary files a/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png and b/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png differ diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.qml b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml index 059128d..b1ffe8f 100644 --- a/tests/auto/declarative/qmlvisual/ListView/data/listview.qml +++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml @@ -1550,7 +1550,7 @@ VisualTest { } Frame { msec: 4240 - hash: "84b477b46c313d6dcb0a77628182905b" + hash: "ad913e53e63c030ffdf4560766722760" } Mouse { type: 5 @@ -1570,7 +1570,7 @@ VisualTest { } Frame { msec: 4256 - hash: "281c0499db31ca78175ca7af6292b853" + hash: "ef31f8a4d5bde5a2e308d19ee6d5e759" } Mouse { type: 5 @@ -1582,7 +1582,7 @@ VisualTest { } Frame { msec: 4272 - hash: "5c29d61f037e4636988fdc99ee2ed8a4" + hash: "3ba07527f66e8bea5a8fb7647b0b4f3f" } Mouse { type: 5 @@ -1594,7 +1594,7 @@ VisualTest { } Frame { msec: 4288 - hash: "a18f5e9f7be932dcd1bcb4c7fe0797e8" + hash: "70e5fe656f5fd843383964825690b678" } Mouse { type: 5 @@ -1614,7 +1614,7 @@ VisualTest { } Frame { msec: 4304 - hash: "85a4130b4a57ef79e90d350cf4816801" + hash: "b7d8738be4cd6caa63dbecdb0f810a2f" } Mouse { type: 5 @@ -1626,7 +1626,7 @@ VisualTest { } Frame { msec: 4320 - hash: "364dd89fd6f96e1c77723436c7078a7b" + hash: "d6312191f9d7bbddc07f9253d8a93469" } Mouse { type: 5 @@ -1638,7 +1638,7 @@ VisualTest { } Frame { msec: 4336 - hash: "3e37312c45aa92de34d9661f9b482c48" + hash: "b182da64886cf4f444296e5fde26701e" } Mouse { type: 5 @@ -1650,7 +1650,7 @@ VisualTest { } Frame { msec: 4352 - hash: "dc2d63ad430ea6214f962629793925f3" + hash: "ebefef14b6fb990e0c6900884528bbd3" } Mouse { type: 5 @@ -1662,7 +1662,7 @@ VisualTest { } Frame { msec: 4368 - hash: "188fe1e6af9d02b2680426127ef1d39e" + hash: "9a3451ed091b1bb6b975a9c5506b1ea4" } Mouse { type: 5 @@ -1674,7 +1674,7 @@ VisualTest { } Frame { msec: 4384 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Mouse { type: 5 @@ -1686,7 +1686,7 @@ VisualTest { } Frame { msec: 4400 - hash: "bb74813667f49b15978aa78843436205" + hash: "eaaf9ea1d7fcf4a2a9dd58b1b5bb3cae" } Mouse { type: 5 @@ -1698,7 +1698,7 @@ VisualTest { } Frame { msec: 4416 - hash: "8e88500470517ed1d7c3ca10edd4e230" + hash: "7ca8e3d76cf913d85f84f0b96acde829" } Mouse { type: 5 @@ -1710,7 +1710,7 @@ VisualTest { } Frame { msec: 4432 - hash: "614dc45593db51f467adeda87d84f9a4" + hash: "7cfef56b24a552c6d4ecb3d0b88a1d08" } Mouse { type: 5 @@ -1730,7 +1730,7 @@ VisualTest { } Frame { msec: 4448 - hash: "b170583b9b284debdd04af643752aa6b" + hash: "d032b257259810b4fe514c63ca5c9e4b" } Mouse { type: 5 @@ -1742,7 +1742,7 @@ VisualTest { } Frame { msec: 4464 - hash: "dba0394b92f3ee166bc397439a86e6dc" + hash: "568f6a57e6f1644b0dc245d03a1d7b85" } Mouse { type: 5 @@ -1754,87 +1754,87 @@ VisualTest { } Frame { msec: 4480 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4496 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4512 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4528 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4544 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4560 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4576 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4592 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4608 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4624 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4640 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4656 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4672 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4688 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4704 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4720 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4736 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4752 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4768 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4784 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4800 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4816 @@ -1842,11 +1842,11 @@ VisualTest { } Frame { msec: 4832 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Frame { msec: 4848 - hash: "74b499d5d764bf53efbee8932bab3cc3" + hash: "5cb4cf2c527d821db2a5072dd3702653" } Mouse { type: 5 @@ -1866,7 +1866,7 @@ VisualTest { } Frame { msec: 4864 - hash: "95ab953fc04389396da9a38d97262d98" + hash: "d48ecbd0661e08b2117fe2fd96ffeb2c" } Mouse { type: 5 @@ -1878,7 +1878,7 @@ VisualTest { } Frame { msec: 4880 - hash: "614dc45593db51f467adeda87d84f9a4" + hash: "7cfef56b24a552c6d4ecb3d0b88a1d08" } Mouse { type: 5 @@ -1890,7 +1890,7 @@ VisualTest { } Frame { msec: 4896 - hash: "0d884cdb22e3668203d07c72055bcb85" + hash: "5b12e9d17d9d464b055601db9cf0da44" } Mouse { type: 5 @@ -1902,7 +1902,7 @@ VisualTest { } Frame { msec: 4912 - hash: "23bd71236829253fb3ef18ebc9dd3136" + hash: "25333e1f0cc9cfc664fd7369af544c06" } Mouse { type: 5 @@ -1914,39 +1914,39 @@ VisualTest { } Frame { msec: 4928 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 4944 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 4960 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 4976 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 4992 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5008 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5024 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5040 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5056 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Mouse { type: 3 @@ -1958,179 +1958,179 @@ VisualTest { } Frame { msec: 5072 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5088 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5104 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5120 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5136 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5152 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5168 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5184 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5200 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5216 - hash: "bdb784f5ccf428f8b8a9d29310069808" + hash: "04290d8d62436c8a812f886e0a56ec1b" } Frame { msec: 5232 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5248 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5264 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5280 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5296 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5312 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5328 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5344 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5360 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5376 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5392 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5408 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5424 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5440 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5456 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5472 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5488 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5504 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5520 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5536 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5552 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5568 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5584 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5600 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5616 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5632 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5648 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5664 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5680 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5696 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5712 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5728 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5744 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5760 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5776 @@ -2138,90 +2138,90 @@ VisualTest { } Frame { msec: 5792 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5808 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5824 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5840 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5856 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5872 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5888 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5904 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5920 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5936 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5952 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5968 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 5984 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6000 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6016 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6032 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6048 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6064 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6080 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6096 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6112 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } Frame { msec: 6128 - hash: "9ba43cbdd92c077f64e4a59c6c1c42ac" + hash: "dbd87bf02d698b7f053d307ef0c98452" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png index e1b0967..968a78f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png index c7d4e1d..55ab3b7 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png index 9373fae..a6ec6d1 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png index 7a30196..e6755ac 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.4.png index 4c4d17c..bc65634 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml index a94aca8..106d108 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml @@ -10,179 +10,179 @@ VisualTest { } Frame { msec: 32 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 48 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 64 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 80 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 96 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 112 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 128 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 144 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 160 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 176 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 192 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 208 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 224 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 240 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 256 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 272 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 288 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 304 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 320 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 336 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 352 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 368 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 384 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 400 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 416 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 432 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 448 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 464 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 480 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 496 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 512 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 528 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 544 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 560 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 576 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 592 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 608 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 624 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 640 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 656 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 672 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 688 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 704 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 720 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Mouse { type: 2 @@ -194,15 +194,15 @@ VisualTest { } Frame { msec: 736 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 752 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 768 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Mouse { type: 5 @@ -214,7 +214,7 @@ VisualTest { } Frame { msec: 784 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Mouse { type: 5 @@ -226,7 +226,7 @@ VisualTest { } Frame { msec: 800 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Mouse { type: 5 @@ -246,7 +246,7 @@ VisualTest { } Frame { msec: 816 - hash: "c92e345e4ffdb30c28d9d5aa5400bd30" + hash: "49372aa66b86904d587b72c6c2cfd467" } Mouse { type: 5 @@ -258,7 +258,7 @@ VisualTest { } Frame { msec: 832 - hash: "90f94986ab44ab59618e9a5da17b8cc9" + hash: "06519aabcc86c5fd961c80a65d2cf67c" } Mouse { type: 5 @@ -270,7 +270,7 @@ VisualTest { } Frame { msec: 848 - hash: "0154a65f8693b98576101ac1c2fc8761" + hash: "c3b182c37393ea0468c06474e84f127f" } Mouse { type: 5 @@ -290,31 +290,31 @@ VisualTest { } Frame { msec: 864 - hash: "792c1b5267f14c891dae2348a8188a92" + hash: "dce4bcca20e89c40a603394515f679b1" } Frame { msec: 880 - hash: "15ce9e88d4ad2e698bf167d1432c0b8a" + hash: "dabf2b63bedd0073f761a858f048df5a" } Frame { msec: 896 - hash: "8f4109ef4c24d286d73f689565a0d056" + hash: "c51ca7786b7346b3e62b774c01a67f98" } Frame { msec: 912 - hash: "f5728190bf5c94742686f063b4a4b09b" + hash: "d1628aa2fd1ec92021fa37f9960fb06a" } Frame { msec: 928 - hash: "a38c7527a9a818b7bc25466b0e4939f9" + hash: "4e571776c8a01d1ab79ff1c3affc0474" } Frame { msec: 944 - hash: "ed3902455fc31a4e3232308b815a4daa" + hash: "85a3c22ecaed87c119202b76e22f2b2e" } Frame { msec: 960 - hash: "a2093589363ac2d50491412e99e0193a" + hash: "42d345e97b0a8e5cbcfdf4243ccafcdc" } Frame { msec: 976 @@ -322,227 +322,227 @@ VisualTest { } Frame { msec: 992 - hash: "c32349580e3a9586cc1133c935607cf0" + hash: "1a651405076d8980b03cc8279a379fff" } Frame { msec: 1008 - hash: "cd2068492e346eb20d50aee69e3a3559" + hash: "8c4f3c6a4c67c76fe92ff401114892e7" } Frame { msec: 1024 - hash: "f43a1a38894b8ffad009ba995d84b0ee" + hash: "447a817e33cd8213e362192ffe663272" } Frame { msec: 1040 - hash: "2d5c4a73df2a054801571f1ce119e31f" + hash: "eed6ba9be5f7869101068afd1d46cb69" } Frame { msec: 1056 - hash: "b8825cc6bdca8102a655d797ea41b5b1" + hash: "15ae5acff4211f97802c6c50649ad487" } Frame { msec: 1072 - hash: "3f0be15b85220743d004f2d54b6e137c" + hash: "e30b0a23e215c0b9b71b083381a8523e" } Frame { msec: 1088 - hash: "4b0952d33149b44ffa0a06723a4116c7" + hash: "6fad48a7d3a2480468aca07e6760de94" } Frame { msec: 1104 - hash: "9056bda43259e92cfe56fdf394e2ca54" + hash: "998bd191ac5bac1f300e247514a112d7" } Frame { msec: 1120 - hash: "82ec9f09d2303e5b0b9c05b9a10a84db" + hash: "9245e8bf2fb38f491aa7f0da4400e190" } Frame { msec: 1136 - hash: "751a9b3054c09d900364d7c9cac8bc2b" + hash: "7565ea1f01cd9ad5d92e2a0ee7fc947d" } Frame { msec: 1152 - hash: "17dfdfef20f9da7e8b6f16df974baea9" + hash: "898c6e226787391340099910ee128ed6" } Frame { msec: 1168 - hash: "108e6d9a5a81df32823bfd7a90a000a7" + hash: "bafd74d70e99cf4053d3c00d18915762" } Frame { msec: 1184 - hash: "71dd0d55a3e837d3a8e4b4e318579ade" + hash: "6456a5ca9bb90b2d0fb99bae63a8db35" } Frame { msec: 1200 - hash: "8013cdb2615bca89134ea040409af509" + hash: "2b34216c9f7c76133ef4889b74df7ad9" } Frame { msec: 1216 - hash: "4b2826ad4c755690bd837994133f5fac" + hash: "cbc75068017b378f277c2692f2cb1709" } Frame { msec: 1232 - hash: "52d0da7f138bd37ac587a448d6402aca" + hash: "8c72d80a5a2776ee2d805c089f5c534d" } Frame { msec: 1248 - hash: "e634724c5bb294d338210845bf64d2cf" + hash: "d5a248b9177e078cad40af72b3cbceb5" } Frame { msec: 1264 - hash: "59bc5f0d057ee431f289806377f19213" + hash: "1a9b246f8223bbcf6421a22e8a1fb50e" } Frame { msec: 1280 - hash: "6ef2c5f7766c2cc77b30d636bfaa4422" + hash: "ea9b292eb000a9e4c5b46a8d94b8e80e" } Frame { msec: 1296 - hash: "578d056c3db094420dbaa51bd08ced20" + hash: "ac059cd45cd1936a7ff3fd0fc9fa688b" } Frame { msec: 1312 - hash: "14c6f7a04a52caffefa07af556ccb262" + hash: "fda383d47ffb1e2fd633793594831cfb" } Frame { msec: 1328 - hash: "7cb63d56fec144d0509ce219fc6fe459" + hash: "a4c7709f3642088e4be48ec607d0a0fe" } Frame { msec: 1344 - hash: "462dafa7f6427aecf6c28a5dcf5a10cc" + hash: "08d0268402d4a410f5f8c9bb8ba7b306" } Frame { msec: 1360 - hash: "45360814f985ed780a443568a91fc170" + hash: "ecc8f3c4faf86362e45b465b0f4d6dc2" } Frame { msec: 1376 - hash: "0d18ceb2436e4f7eb56a3443fab706e6" + hash: "3107a4b522744a643dd107da5e5e13c2" } Frame { msec: 1392 - hash: "1d83f367ba9f7f1d4496208271e925ed" + hash: "44c1731d0433aac53edc2e88a38c66b0" } Frame { msec: 1408 - hash: "fdbd00ee4c122aef779df42ea53f403a" + hash: "d86e9dfb38be51b2fa9cf44271eddc3e" } Frame { msec: 1424 - hash: "bedd1cb304efd4851813b39a746198a4" + hash: "0c33ce00df6fbb848d300aa510ad80d9" } Frame { msec: 1440 - hash: "9aa7bed86efa9634466736f20ee0ab5b" + hash: "48ff92aaa0c797c10ca8dbc5b2240736" } Frame { msec: 1456 - hash: "00fc8186a7ae44e10195a7b13defa0d2" + hash: "8582fd8c3643d9a5c1993e1607c6fae8" } Frame { msec: 1472 - hash: "42d6e8e0bbed879ed63644c83e61e7bd" + hash: "2390e374160ec5bc99613a463aa98fb2" } Frame { msec: 1488 - hash: "df074f8c210249e5ef652349479b6325" + hash: "369a11c32596b668a4f275232c45ac68" } Frame { msec: 1504 - hash: "4f94020437e35cf44dd3576997990ab7" + hash: "0b0d82d523a77a925ee00cf457326034" } Frame { msec: 1520 - hash: "8ca6c3b4fa3be73ac35073356b680a35" + hash: "48e7a92905761d7f0b8b9ac95bb5ff45" } Frame { msec: 1536 - hash: "c25eee1c5791383ebc59974e7754eacb" + hash: "2cdccfd2cdf56728fa07a49de34142d9" } Frame { msec: 1552 - hash: "f4917ada78942428cc6b9aa5e56c013d" + hash: "83a8166805523ee8426d88ef80c8f3a9" } Frame { msec: 1568 - hash: "23e1e607101fc7260a4ac841344f5fe0" + hash: "20ac2e68a5c733dc6128921c34f033e5" } Frame { msec: 1584 - hash: "2dcc7d187d8e0493e5766efbf09ef37c" + hash: "836963a1ed3084606b80b7f82fee09ef" } Frame { msec: 1600 - hash: "c1e5602753e80cf44d7b330140c6912e" + hash: "ee49c684d788558e20a10899ebe0b6c2" } Frame { msec: 1616 - hash: "febaf72d01a3763461b4b7d2ddd7a23e" + hash: "e00c0b340165d335cb49730890eca301" } Frame { msec: 1632 - hash: "071262b911b61576f451be25691a57cf" + hash: "fba2c2adeef04e6c1a764c4d8a1a97bc" } Frame { msec: 1648 - hash: "44705db9289fd8753b9d63e8bc963b38" + hash: "8160bd2a6daa2757b948d038fa754c77" } Frame { msec: 1664 - hash: "0c41d7b7d36bd083abfc0b83b862cad9" + hash: "10130d0b75ce420f5c9af6f181500783" } Frame { msec: 1680 - hash: "0c41d7b7d36bd083abfc0b83b862cad9" + hash: "10130d0b75ce420f5c9af6f181500783" } Frame { msec: 1696 - hash: "071262b911b61576f451be25691a57cf" + hash: "fba2c2adeef04e6c1a764c4d8a1a97bc" } Frame { msec: 1712 - hash: "a00aa90e894b48203b0446ca287ee712" + hash: "fec5477699ba60da129866e1c3727e08" } Frame { msec: 1728 - hash: "26c9ca53ee4b084c6595ad65bf4880df" + hash: "12076b96a177bd24be8ad4a3dc179d79" } Frame { msec: 1744 - hash: "f4917ada78942428cc6b9aa5e56c013d" + hash: "83a8166805523ee8426d88ef80c8f3a9" } Frame { msec: 1760 - hash: "ffedee7bf2d8099e361b8b1706b03f88" + hash: "e9016d43624060ef4efbad2b7bc53b1b" } Frame { msec: 1776 - hash: "1778ef1629ce977015b641448b46634f" + hash: "483700c4ba07a9f01d2a226a3efde15f" } Frame { msec: 1792 - hash: "42d6e8e0bbed879ed63644c83e61e7bd" + hash: "2390e374160ec5bc99613a463aa98fb2" } Frame { msec: 1808 - hash: "99e843ec69b79b79b0792e0a2f28cd1b" + hash: "094df49593f0cd1d6de4a0b91c459d15" } Frame { msec: 1824 - hash: "8b3ebca70b50a6a93823e015ea80f0f9" + hash: "0a60ed609c7fcb2d485f393ea309527a" } Frame { msec: 1840 - hash: "8eaa7f076064ce55051237b04861e408" + hash: "d4e0f07c2f298626ae800d5d7b5f098b" } Frame { msec: 1856 - hash: "6acc0ca5e5808d911287edfa78c8ac02" + hash: "ff249c1301704da0b82b023558512c6a" } Frame { msec: 1872 - hash: "e9f05899e0b53c21f6efe834095a3ea4" + hash: "42883458efeb17ff1e52296ae7228fb2" } Mouse { type: 2 @@ -562,7 +562,7 @@ VisualTest { } Frame { msec: 1888 - hash: "e9f05899e0b53c21f6efe834095a3ea4" + hash: "42883458efeb17ff1e52296ae7228fb2" } Mouse { type: 5 @@ -582,7 +582,7 @@ VisualTest { } Frame { msec: 1904 - hash: "d2dece405f5f6ed1de2acb6615a931de" + hash: "36a4b0d745ee8fa53e906b7a23b7ab88" } Mouse { type: 5 @@ -594,7 +594,7 @@ VisualTest { } Frame { msec: 1920 - hash: "21e0f21edc77424e8327c9a3350ecc1d" + hash: "826187b1a24fd09e1abcb6a01c59c059" } Mouse { type: 5 @@ -626,7 +626,7 @@ VisualTest { } Frame { msec: 1952 - hash: "c10c8b0c94f899414d8b3ef0b7c97646" + hash: "426f9459ac16c2903f85d618b366a475" } Mouse { type: 5 @@ -646,235 +646,235 @@ VisualTest { } Frame { msec: 1968 - hash: "807aff4e6c96a9d0de7fa55e233446b1" + hash: "d43dc1cfeaac1da281f2cdbffda93d17" } Frame { msec: 1984 - hash: "dbd02848cefacbb26f4bcb7d8f073d6c" + hash: "766dd54cdb6253ead664b6ab852e934b" } Frame { msec: 2000 - hash: "9a60608d8ea1b39fa2d3851873f2f08e" + hash: "1db59868779a357917a5d4859130108e" } Frame { msec: 2016 - hash: "e7b3e3a40281f63889808211d6746374" + hash: "1da33a5f6a001915464f34799a651f7a" } Frame { msec: 2032 - hash: "188c225c46ec00105df230bfeea09974" + hash: "868a6e445623378b6590789156e4b7e0" } Frame { msec: 2048 - hash: "e2e977b42e91d8c5dee57fd8245692eb" + hash: "46ae42a4b7f00e24a10ffdfd7a076b68" } Frame { msec: 2064 - hash: "ca2f12fb173c405f95e608858ab982ad" + hash: "2a91ffdfec461f573784cfaed2150e33" } Frame { msec: 2080 - hash: "fa86ee5f25fa425cf2569c8ef570b9d8" + hash: "2cbaa11e8589c806e65e52ce59ad1c42" } Frame { msec: 2096 - hash: "9b74656866fb8c7394bbbecec6414aca" + hash: "3b93b1e1fa7963d5a75103814f93a0a2" } Frame { msec: 2112 - hash: "87147326d1baab174c0f9a5ccdc2cb84" + hash: "a2e59dc9459a7afb6916638d08330dff" } Frame { msec: 2128 - hash: "c0d00f98c71bf3f8e5954b45fbab95a8" + hash: "cb3e8334babe3abffa202c2ba2d3b21f" } Frame { msec: 2144 - hash: "c087d1d62e56e573b55c1d8599bba8a6" + hash: "07882f5f098e59c479f089dbc74612bf" } Frame { msec: 2160 - hash: "dd5a94c6febdee58e8f115cb75131aaa" + hash: "e9ad84bf0c7f83bfe1bff3afed591bfd" } Frame { msec: 2176 - hash: "a7465d6137f865f512ce65ceb29533b4" + hash: "1839c26fda8710dc3fa7f5abd8136eee" } Frame { msec: 2192 - hash: "409086f6bb661aab8b548fea56d7e6b1" + hash: "15e3bdd811c390ad3a9cf22949568ed7" } Frame { msec: 2208 - hash: "6a22911e0fb58df31271baa463ff599d" + hash: "61ede9a7ef29997627bb08070fea65a4" } Frame { msec: 2224 - hash: "c4f6dd30d5fdfcf91a8b29cf5c622423" + hash: "fac89040e757522117e3792625ca6a19" } Frame { msec: 2240 - hash: "5a95b83f237c7243a198a43e9a587179" + hash: "1dc01a1118681f8606768fcf246397f7" } Frame { msec: 2256 - hash: "d79ed290efc6dbd976d574bf0b14a6a3" + hash: "2b243094b7f25368a8fb4a9014968cad" } Frame { msec: 2272 - hash: "a7bcb436e96d7c981852239462573495" + hash: "c6677acf9b9d632bc99caa8626448c49" } Frame { msec: 2288 - hash: "f63cc82e351daab503e316f8b516990f" + hash: "9035988b0dc0b7065fe4f1d1a4737801" } Frame { msec: 2304 - hash: "4ea63cd25a1424042ffc60549a78563c" + hash: "cd34e7118d43968cfcf52ed9ce58fc0a" } Frame { msec: 2320 - hash: "ef0fb776012575b3b0dbf6e5f4dee571" + hash: "7142aeaed61722424e184c55bb8d047c" } Frame { msec: 2336 - hash: "e2508faec7737be2666d87ad715b5f74" + hash: "9113c68cf5689e1f4690e58bbf824ae6" } Frame { msec: 2352 - hash: "9fe4e897c6b853f774d11817a0eb53bf" + hash: "2f9ec963d6f06f8252a69760965df2ee" } Frame { msec: 2368 - hash: "c122ce2e73cbfedcc99d649c21d91f9d" + hash: "07373282f0337437944dc8fff1e32343" } Frame { msec: 2384 - hash: "883b8b180853f1f432ae98ddfe1b6ce3" + hash: "4769fa4ba0c08baefa431b94b47a7ffc" } Frame { msec: 2400 - hash: "d0808284e431da60f61d571c257a3011" + hash: "390cd7786aa1989b590033682472f604" } Frame { msec: 2416 - hash: "df90f19450bf4d9496aab987a89e3a02" + hash: "482e2969bc1a877ba63c3df65ec04b7e" } Frame { msec: 2432 - hash: "5640c1e64556b90e7fbd4448fa9db462" + hash: "e3dc252a3a0b35398bf3d91c37d6b5e9" } Frame { msec: 2448 - hash: "6d9b5c2f7d0dedbbc444e69bb39fed08" + hash: "5bce3aac5cc049d81a74e7f71e2cf522" } Frame { msec: 2464 - hash: "485c4a8049068cf73bf22db5fd3618be" + hash: "390edc00756c4e92e94a7a75f3d65c45" } Frame { msec: 2480 - hash: "9e25da59c9e7e4cf7796902e8e2ff92a" + hash: "285397b2ff5a64d2a112c458d6ec5aba" } Frame { msec: 2496 - hash: "bd45e8f2442d7c1a1b16a762bc29e7cf" + hash: "ed0889dc439d66e6b5a81059956ef564" } Frame { msec: 2512 - hash: "ec1013d23e581dbb39b1549d2e1b3b32" + hash: "cb804da0db92d879a5cb8f138c546f88" } Frame { msec: 2528 - hash: "1ea3c2fde8ee3a14406e027f2124d793" + hash: "523fe4d3d9c11631f41d96bcc604103b" } Frame { msec: 2544 - hash: "3c3f31a05fb2f32538872c9fa158aaab" + hash: "cc4717c4233f9a2f2380bfad6dc89075" } Frame { msec: 2560 - hash: "05a84d9c55e634ec01edd2a63e13613b" + hash: "65c4171ff3e98aa04667606d9f6bd9b3" } Frame { msec: 2576 - hash: "0f7ccd2da58e2e73b0ab18bb681dafd5" + hash: "b2994136a603206c8013158fd67ca6bd" } Frame { msec: 2592 - hash: "e481ff78029f8bc4bf7c697db6824f6a" + hash: "44ad0d4645a01243b9d9be0faaf6d6ee" } Frame { msec: 2608 - hash: "efb92b8b7a90acabeb4a8d5cae52fe3c" + hash: "3b7b06f5f3f028fbae21dfedf821e696" } Frame { msec: 2624 - hash: "4728dd0fac4edf40cfd5ef5a422b4ed9" + hash: "b86466e530c3bd51353074cbb9da9ec3" } Frame { msec: 2640 - hash: "27641dcd772c979ae22d12bfbadbb67f" + hash: "2528deb04bae8b89a85dc6fcea05dbbd" } Frame { msec: 2656 - hash: "26268714105bc4832d336a38a859fc50" + hash: "e0ff5e36bff2b9e08244fc7f79cecee6" } Frame { msec: 2672 - hash: "caf0d351d3b6914ca52853a30643ea48" + hash: "34ca311d2e3462da3779324419c027e7" } Frame { msec: 2688 - hash: "319824b1143925162f04aaddcfaa65d9" + hash: "75aae68f21f68364a897c504f26ee655" } Frame { msec: 2704 - hash: "73aa36815f34bf5e005000e7da38555e" + hash: "8039e52e7f1977433596c1a34a41cc9f" } Frame { msec: 2720 - hash: "73aa36815f34bf5e005000e7da38555e" + hash: "8039e52e7f1977433596c1a34a41cc9f" } Frame { msec: 2736 - hash: "319824b1143925162f04aaddcfaa65d9" + hash: "75aae68f21f68364a897c504f26ee655" } Frame { msec: 2752 - hash: "caf0d351d3b6914ca52853a30643ea48" + hash: "34ca311d2e3462da3779324419c027e7" } Frame { msec: 2768 - hash: "c87ba4dda0a5c931d0c7ae74a0fb2896" + hash: "d3649eb8f8232b0e64b0cb476313b63c" } Frame { msec: 2784 - hash: "ab551561ad8a3937558afc080b3e6130" + hash: "cdb30549933d3778e74dbd419b474a5f" } Frame { msec: 2800 - hash: "474d8b566b9e4ef7dc125a8df30ccbb1" + hash: "3a43d652bb85d3f562bd5eaec386107f" } Frame { msec: 2816 - hash: "cc7dfbcfafa12d40210a4d5fa7f60862" + hash: "df6771eb2afa24b6e3250b05b180fa4d" } Frame { msec: 2832 - hash: "3c3f31a05fb2f32538872c9fa158aaab" + hash: "cc4717c4233f9a2f2380bfad6dc89075" } Frame { msec: 2848 - hash: "9705c0dd30c3f381084ec29242bebb2f" + hash: "76e04278dab430d5860306830b73ab6f" } Frame { msec: 2864 - hash: "917579854722d6e6711811e10cbe229f" + hash: "8f70f69731fe8b8f4aa397a667f4c5c0" } Frame { msec: 2880 - hash: "43fa578250e214ed9ad6894329a27c54" + hash: "25b72be5ca16c246bfc6adc4bf19871c" } Frame { msec: 2896 @@ -882,79 +882,79 @@ VisualTest { } Frame { msec: 2912 - hash: "5640c1e64556b90e7fbd4448fa9db462" + hash: "e3dc252a3a0b35398bf3d91c37d6b5e9" } Frame { msec: 2928 - hash: "88cef15940302e2b8b43e73234fd7b9c" + hash: "ce0d8b3f0f0b235eaedc932f4514ea00" } Frame { msec: 2944 - hash: "041aecec2b0b0d59a56e1dd26b45cab1" + hash: "f6b030effcca891ab20073f106b22d73" } Frame { msec: 2960 - hash: "0d519463c713f3da46ecacd155e1a0f3" + hash: "2cfafd1f686f5794d5bf99ec4aaa1d08" } Frame { msec: 2976 - hash: "5dd0c855b97d298244fb599c9f781651" + hash: "502a23fd9a3bcccb29c496e7edeb5d66" } Frame { msec: 2992 - hash: "bfc51621e9bc95d2d46cec632a3fae12" + hash: "82ac348a63a4e358a877a2e45d48e2b1" } Frame { msec: 3008 - hash: "b05fb6e798ab3fed940b5ac4d88ca378" + hash: "0d321f4ca15f09d849c4a28f032cc1cc" } Frame { msec: 3024 - hash: "6bc9cc0d3b11ea91856296b0ec934a8b" + hash: "5c995f84415ea7a260647f946b8963ee" } Frame { msec: 3040 - hash: "f4e63f3af69dacbf2d1d719d4d03a266" + hash: "ee4ecac449c4a2ad4e11ad1d560b3ec3" } Frame { msec: 3056 - hash: "31ab08997eb86fab062a3128aecbccb5" + hash: "0bc3d5b91d781bcf10041eb1557f0d6a" } Frame { msec: 3072 - hash: "90736b240ba1e634bd0ea86423908e16" + hash: "321297177b354e0cc435b3eae49331a3" } Frame { msec: 3088 - hash: "90736b240ba1e634bd0ea86423908e16" + hash: "321297177b354e0cc435b3eae49331a3" } Frame { msec: 3104 - hash: "e74982557dc06aac572078840c7e889a" + hash: "de00148fe89be44237af32d929432655" } Frame { msec: 3120 - hash: "e74982557dc06aac572078840c7e889a" + hash: "de00148fe89be44237af32d929432655" } Frame { msec: 3136 - hash: "ca30c14c7344d1711a35c707f8804f6e" + hash: "756c8068009e9780428bd3ae35df19fe" } Frame { msec: 3152 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 3168 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 3184 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 3200 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Mouse { type: 2 @@ -966,15 +966,15 @@ VisualTest { } Frame { msec: 3216 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 3232 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 3248 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Mouse { type: 5 @@ -994,7 +994,7 @@ VisualTest { } Frame { msec: 3264 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "96a78749a57bdb87cf28a3804b63793f" } Mouse { type: 5 @@ -1006,7 +1006,7 @@ VisualTest { } Frame { msec: 3280 - hash: "1991cbb0fb053937f922731d5716032c" + hash: "b8f158a8694f2b922faf818d469230e4" } Mouse { type: 5 @@ -1018,7 +1018,7 @@ VisualTest { } Frame { msec: 3296 - hash: "df447575a4734bb5bd9badc6e27d98e4" + hash: "257a298bec9589037e3022cc2fe7a775" } Mouse { type: 5 @@ -1030,7 +1030,7 @@ VisualTest { } Frame { msec: 3312 - hash: "0fbfe1e0d7fb54450188398aa40690cd" + hash: "391d17c09dd33b3dcfc9a619fbb500dc" } Mouse { type: 5 @@ -1042,7 +1042,7 @@ VisualTest { } Frame { msec: 3328 - hash: "cb62e60296046c73d301d7186e14faed" + hash: "b645a1808de7a5d2ce7944ab66a7c233" } Mouse { type: 5 @@ -1054,7 +1054,7 @@ VisualTest { } Frame { msec: 3344 - hash: "909cbd1292476584554e22232cb43639" + hash: "54ddfe85ca8923bcf7f3b6ccab0560de" } Mouse { type: 5 @@ -1066,7 +1066,7 @@ VisualTest { } Frame { msec: 3360 - hash: "e63b7e502dfb2834c06a969b683b9bd3" + hash: "5c1169e17ee96b817e66b4a6097f790c" } Mouse { type: 5 @@ -1078,7 +1078,7 @@ VisualTest { } Frame { msec: 3376 - hash: "4ea63cd25a1424042ffc60549a78563c" + hash: "cd34e7118d43968cfcf52ed9ce58fc0a" } Mouse { type: 5 @@ -1090,7 +1090,7 @@ VisualTest { } Frame { msec: 3392 - hash: "77e39d2d4bfcacecdae4f014e4506d71" + hash: "f3d9d5cd228914b2e1323f19c22aa6f9" } Mouse { type: 5 @@ -1102,7 +1102,7 @@ VisualTest { } Frame { msec: 3408 - hash: "db576eca8bad67cb8b994f12fc448969" + hash: "10e63c46f4b970a9c997126906c01cf9" } Mouse { type: 5 @@ -1114,7 +1114,7 @@ VisualTest { } Frame { msec: 3424 - hash: "efeb3f616da9d78505c3c82fc34ee31c" + hash: "c9b412087f7b744096bf995c6a9ddf15" } Mouse { type: 5 @@ -1126,7 +1126,7 @@ VisualTest { } Frame { msec: 3440 - hash: "e4f8bb02f8ac6bc40e1801cc8f360078" + hash: "70cdc34e22c7a031c2e28898f7edea72" } Mouse { type: 5 @@ -1138,7 +1138,7 @@ VisualTest { } Frame { msec: 3456 - hash: "82118ef71809e3867717232c4d9c5518" + hash: "d0ea5c1f9050499d944ba7e61d354e40" } Mouse { type: 5 @@ -1150,7 +1150,7 @@ VisualTest { } Frame { msec: 3472 - hash: "5363451c696f6c6eb792b23d086243d7" + hash: "d9fc23e14a170b68264721dc18be4fb1" } Mouse { type: 5 @@ -1162,7 +1162,7 @@ VisualTest { } Frame { msec: 3488 - hash: "fe6afe8ae8a7c216a1cffc5515f273d5" + hash: "d59ccdfdb179f2c8c2636a64aecf2a6a" } Mouse { type: 5 @@ -1174,7 +1174,7 @@ VisualTest { } Frame { msec: 3504 - hash: "9b165741d86c70380c15e15cff3fabb6" + hash: "6d21752283210371faf2f757c7a972b3" } Mouse { type: 5 @@ -1186,7 +1186,7 @@ VisualTest { } Frame { msec: 3520 - hash: "f5e176355468f4fa224d4dfcdd7525a3" + hash: "1338a54d3b980a6868ba7d167cfdbdf7" } Mouse { type: 5 @@ -1198,27 +1198,27 @@ VisualTest { } Frame { msec: 3536 - hash: "8c5a14a76e052cc6503a3e78245d1da3" + hash: "0be430c9e6058be2aee599d4182bc0d0" } Frame { msec: 3552 - hash: "8c5a14a76e052cc6503a3e78245d1da3" + hash: "0be430c9e6058be2aee599d4182bc0d0" } Frame { msec: 3568 - hash: "8c5a14a76e052cc6503a3e78245d1da3" + hash: "0be430c9e6058be2aee599d4182bc0d0" } Frame { msec: 3584 - hash: "8c5a14a76e052cc6503a3e78245d1da3" + hash: "0be430c9e6058be2aee599d4182bc0d0" } Frame { msec: 3600 - hash: "8c5a14a76e052cc6503a3e78245d1da3" + hash: "0be430c9e6058be2aee599d4182bc0d0" } Frame { msec: 3616 - hash: "8c5a14a76e052cc6503a3e78245d1da3" + hash: "0be430c9e6058be2aee599d4182bc0d0" } Mouse { type: 5 @@ -1230,7 +1230,7 @@ VisualTest { } Frame { msec: 3632 - hash: "f5e176355468f4fa224d4dfcdd7525a3" + hash: "1338a54d3b980a6868ba7d167cfdbdf7" } Mouse { type: 5 @@ -1242,7 +1242,7 @@ VisualTest { } Frame { msec: 3648 - hash: "acf538fce5f1b90b83474d9898b7cdd7" + hash: "b58a71e761abe238de0e90c1c756cd37" } Mouse { type: 5 @@ -1254,7 +1254,7 @@ VisualTest { } Frame { msec: 3664 - hash: "5a0ee016b8732fbc36064e8a35d91215" + hash: "3383dc4a9b1f8267d145d22f9d825dc0" } Mouse { type: 5 @@ -1266,7 +1266,7 @@ VisualTest { } Frame { msec: 3680 - hash: "8fd06a14c1de175813845ce8f07db6ec" + hash: "95df7fbe18630d9b8ffa83850bc5bec5" } Mouse { type: 5 @@ -1278,7 +1278,7 @@ VisualTest { } Frame { msec: 3696 - hash: "26b0ff6ffda0725e0800f7ea3af510ef" + hash: "96c625b6854a862c83ead3fbb32df3b0" } Mouse { type: 5 @@ -1290,7 +1290,7 @@ VisualTest { } Frame { msec: 3712 - hash: "80443f134511be0356a687c9b542b3e7" + hash: "f48f12540c60bc7b60279db8e67ff91b" } Mouse { type: 5 @@ -1302,7 +1302,7 @@ VisualTest { } Frame { msec: 3728 - hash: "3eeb98a829d29b3dc52f3d145ac49d58" + hash: "98353745244809a583c93c1fd87b9a56" } Mouse { type: 5 @@ -1314,7 +1314,7 @@ VisualTest { } Frame { msec: 3744 - hash: "f4d43069b16f41a30e5549aae911d4cd" + hash: "09a1bb3238282c80cc40fccb6e45ba28" } Mouse { type: 5 @@ -1326,7 +1326,7 @@ VisualTest { } Frame { msec: 3760 - hash: "661c89fa832f0abdcf4ae0c9e8e2d18f" + hash: "9e50b6fc980c66698a35178e2520e13c" } Mouse { type: 3 @@ -1338,23 +1338,23 @@ VisualTest { } Frame { msec: 3776 - hash: "661c89fa832f0abdcf4ae0c9e8e2d18f" + hash: "9e50b6fc980c66698a35178e2520e13c" } Frame { msec: 3792 - hash: "1520f54b6c8606b9e8372c5c06180453" + hash: "006c37d9d6b5a8470d74909b9646d5f1" } Frame { msec: 3808 - hash: "0fcf5e2ce47348cbb5bb485f101fe5ac" + hash: "24cf52f7c3cf095be20393757dfaaa6b" } Frame { msec: 3824 - hash: "2eb070e69de07c89830543e0475fc110" + hash: "2189799d060770928f1feaaa44728ec8" } Frame { msec: 3840 - hash: "d73c1059219c0655968af268d22e2c18" + hash: "b8a6375f0303ec8b66cf14f59888c273" } Frame { msec: 3856 @@ -1362,214 +1362,214 @@ VisualTest { } Frame { msec: 3872 - hash: "cc969b2c64839ca6d3b5069c0ed938d0" + hash: "1fd391b060c84ac99c6e94d2d3647c31" } Frame { msec: 3888 - hash: "1f819e18d1297a1c7eeebb7b040bdef8" + hash: "8b594f115e8158b931a9da42fa6829a5" } Frame { msec: 3904 - hash: "3643b99afbd8af0953cb39b2c8c04b9f" + hash: "8f93fdffed4bfd31f9f5977b09074f6a" } Frame { msec: 3920 - hash: "713fd2e2fa38ab27604cb9cae59f1777" + hash: "d0f3eae785732bf24c363fd189672eb2" } Frame { msec: 3936 - hash: "e2508faec7737be2666d87ad715b5f74" + hash: "9113c68cf5689e1f4690e58bbf824ae6" } Frame { msec: 3952 - hash: "fc33b1c7479caeff676ffd885a18d618" + hash: "44dd376f3d5f61ec71b7c488c3a6ee58" } Frame { msec: 3968 - hash: "aca01143db4f870a56bb7546e84cbc5e" + hash: "4555e295bd6de22abcbaecf797ec8902" } Frame { msec: 3984 - hash: "442b58c39fd3745c61a1eb5043fcbb53" + hash: "eb343f3e69f205a240c0425873ea6db1" } Frame { msec: 4000 - hash: "7983d7183cc11d6819fa0a006c2d67b4" + hash: "37a5b81894c16cacd13312f7113a5445" } Frame { msec: 4016 - hash: "9fe4e897c6b853f774d11817a0eb53bf" + hash: "2f9ec963d6f06f8252a69760965df2ee" } Frame { msec: 4032 - hash: "43f528c81ccfa5b9921dfa3564a24c68" + hash: "dec984b2a5cdd85f2dfb8983da5cdee4" } Frame { msec: 4048 - hash: "dfe04ff0b3ccf205bb38beeab58a4411" + hash: "a95f51c3e172ee76b5b74e94532cdfaf" } Frame { msec: 4064 - hash: "32ff30b50b500e9feb51e8eef205783c" + hash: "62d73e875875329c886d2eb540a9c2d9" } Frame { msec: 4080 - hash: "7d83ab4c336b05bcf2cde4e7d8031f6c" + hash: "63c70a0ea1f43d92c717ff23dcfebe81" } Frame { msec: 4096 - hash: "c92e345e4ffdb30c28d9d5aa5400bd30" + hash: "49372aa66b86904d587b72c6c2cfd467" } Frame { msec: 4112 - hash: "02eec604d0c00965aae4ac61b91bdc22" + hash: "523c18f3c7bbaaf9c625835ddf0d8435" } Frame { msec: 4128 - hash: "df447575a4734bb5bd9badc6e27d98e4" + hash: "257a298bec9589037e3022cc2fe7a775" } Frame { msec: 4144 - hash: "bac10d8f94a39573313b3b8b2f871c49" + hash: "d777e4b06791bda82cf1e8e84b1cff5c" } Frame { msec: 4160 - hash: "e5944c5dc6dec8f0c28b7ec3cd58723d" + hash: "c31de5bfff431b13dcbf2b8b4c503bc3" } Frame { msec: 4176 - hash: "1991cbb0fb053937f922731d5716032c" + hash: "b8f158a8694f2b922faf818d469230e4" } Frame { msec: 4192 - hash: "50d6538bcaffc343f6626635a3e5899c" + hash: "5fd4cd0c335cecc7468d44d188e1669d" } Frame { msec: 4208 - hash: "f3613f57cdb9ed38d8e3fa636962aa99" + hash: "77b003c8f72498ed295678158adf417c" } Frame { msec: 4224 - hash: "10a89da9887cb4bbd812c090a8a56797" + hash: "96a78749a57bdb87cf28a3804b63793f" } Frame { msec: 4240 - hash: "89ba74d46970ad2edff701475c059ec8" + hash: "f497ed7bc98daea35a9ae4838427207e" } Frame { msec: 4256 - hash: "6e8b84c70e81578a2216e9e975b35434" + hash: "35a7221f2888ab3afec443b2c1060c80" } Frame { msec: 4272 - hash: "6e8b84c70e81578a2216e9e975b35434" + hash: "35a7221f2888ab3afec443b2c1060c80" } Frame { msec: 4288 - hash: "883b8b180853f1f432ae98ddfe1b6ce3" + hash: "4769fa4ba0c08baefa431b94b47a7ffc" } Frame { msec: 4304 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4320 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4336 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4352 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4368 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4384 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4400 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4416 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4432 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4448 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4464 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4480 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4496 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4512 - hash: "e616110d39009f0d636b816828cc0ccb" + hash: "afec5604967bc19a2bb8fc7e899c1e11" } Frame { msec: 4528 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4544 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4560 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4576 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4592 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4608 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4624 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4640 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4656 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4672 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4688 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } Frame { msec: 4704 - hash: "244c12e82ee0b2528a0dbb02a8b8134a" + hash: "66d988259c52db9bd85f60ed598469f7" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png index 2af1a3e..5af9306 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png index 8334a3f..61acc87 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png index c705849..bc6ac34 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png index c705849..bc6ac34 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png index 349dca2..c970488 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png index a0e84e3..0af1424 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png index e5c1583..c826907 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png index 2af1a3e..5af9306 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png index 06468e4..f714fa5 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png and b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml index 920a48f..8ad3029 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml @@ -10,71 +10,71 @@ VisualTest { } Frame { msec: 32 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 48 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 64 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 80 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 96 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 112 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 128 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 144 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 160 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 176 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 192 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 208 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 224 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 240 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 256 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 272 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 288 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Mouse { type: 2 @@ -86,7 +86,7 @@ VisualTest { } Frame { msec: 304 - hash: "3d1b648229210ae5b57a0be51cc02f67" + hash: "71a0273e7582419e07937fe701d8e027" } Mouse { type: 5 @@ -98,7 +98,7 @@ VisualTest { } Frame { msec: 320 - hash: "3d1b648229210ae5b57a0be51cc02f67" + hash: "71a0273e7582419e07937fe701d8e027" } Mouse { type: 5 @@ -118,7 +118,7 @@ VisualTest { } Frame { msec: 336 - hash: "3d1b648229210ae5b57a0be51cc02f67" + hash: "71a0273e7582419e07937fe701d8e027" } Mouse { type: 5 @@ -138,7 +138,7 @@ VisualTest { } Frame { msec: 352 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Mouse { type: 5 @@ -158,7 +158,7 @@ VisualTest { } Frame { msec: 368 - hash: "57fa1d842d37df12004b493c1c5761f3" + hash: "a8d53f622836800e43157685ce21fad4" } Mouse { type: 5 @@ -178,7 +178,7 @@ VisualTest { } Frame { msec: 384 - hash: "521a8188877551a97cd3ea82d209e8ae" + hash: "99c8215fbd87e45836908a85748dccc7" } Mouse { type: 5 @@ -198,7 +198,7 @@ VisualTest { } Frame { msec: 400 - hash: "ce126aaade1532e22a35416fd7203dde" + hash: "d56ff1a2994f1acb5ad06b0468672a29" } Mouse { type: 5 @@ -218,119 +218,119 @@ VisualTest { } Frame { msec: 416 - hash: "aa9c4301332240ccc00ec99a05b7f9c9" + hash: "85ba01e36cc978459451887facbc3260" } Frame { msec: 432 - hash: "db0a670d61133a3420a3581ecb532773" + hash: "958d223a6b27ecc87febd860168d5aa5" } Frame { msec: 448 - hash: "b34de164d5ec0294ca27281e1e5e3cd6" + hash: "851ef5f56b7b05d3feb0a1a357f96007" } Frame { msec: 464 - hash: "8636af4591c61c4b4a548f3a38749413" + hash: "4d90460d3b6c46075ffda426bc6ceaa6" } Frame { msec: 480 - hash: "eee4fa336149528dfb16565b856ca692" + hash: "bb67acd602414cf59e27b5ff19f69169" } Frame { msec: 496 - hash: "85eeaeaf359ed87417be68dc18c06d0c" + hash: "acce28653f8bf46c09067254774fb126" } Frame { msec: 512 - hash: "d5db4af6cf35c61146bd24646d82ab83" + hash: "91ea2538dfe0f9af7b4732cb4474215b" } Frame { msec: 528 - hash: "2189fc03c337fe41f3d9f51929c9860f" + hash: "e7fd52f25a4a9c31a2f2fabd59c31160" } Frame { msec: 544 - hash: "4e3e283fb402dc4ec79f65878a513747" + hash: "6acdb4852ef9091382030998e28d02a5" } Frame { msec: 560 - hash: "62f4281d8e049bc12b636b7ebe3862df" + hash: "10c7eaab96a538a7111b054a403132a3" } Frame { msec: 576 - hash: "cf9a0a968459a1283fff91102eb29ba3" + hash: "4ebb31f7945bb5542f9e5146888b1065" } Frame { msec: 592 - hash: "c432221928096cff3b76c8034db26b43" + hash: "b98d594580ad701afb4d2ef186853bc4" } Frame { msec: 608 - hash: "3df59808e56955c3c161609b72d93c7f" + hash: "2700eb44f9b7400f3c1bd11d878e078d" } Frame { msec: 624 - hash: "c497bcbe500905b8a69fd310fd7c7e1a" + hash: "b8a8c4db8325b3e0292e6473084347d9" } Frame { msec: 640 - hash: "7dceef52fab6dc38d140e3097e39a271" + hash: "88ff05697e82e78847794b153be12c46" } Frame { msec: 656 - hash: "c7bbd81b452db98fb8fd892762a23df6" + hash: "06970943c3cd12f07b1d661de0ab730f" } Frame { msec: 672 - hash: "17efc9793ef2966722544d561312b17a" + hash: "5804b412094ab17424de4ba12b2e2e32" } Frame { msec: 688 - hash: "1bf05b272ad6b8e5d134c94d9ba62030" + hash: "8ff038b364f065e67430b2a312a10101" } Frame { msec: 704 - hash: "cad61ba68fdfb26cfb136f22a2f8cc0c" + hash: "8a9a1c725b80af8fd3ffb9d8bc7328ac" } Frame { msec: 720 - hash: "0ce5ff1a1d9a6193ef763affa39cb790" + hash: "83c3481ec7a1dddcbc36d6fb9b7d6149" } Frame { msec: 736 - hash: "880bce9130454aaf1261842b8f9b9a57" + hash: "abf102e5d88bef8ed429c222284907da" } Frame { msec: 752 - hash: "ab78cadac88156d9755d8b70d26384e8" + hash: "e9bcb3268f705e708ffbcf707c78c889" } Frame { msec: 768 - hash: "4a22e502c105a7df0845ca75cbdfb0ec" + hash: "918c60c1ed90f5803d24ea515f21f8fa" } Frame { msec: 784 - hash: "d6209a0b9b9e0f2072179a4623c70fbd" + hash: "f3064485083025aba09224faafcede14" } Frame { msec: 800 - hash: "85e85567831cf57df1f013f5bf3beb86" + hash: "9f36e5b91e6abc9f991625cc52afdd4e" } Frame { msec: 816 - hash: "602d2e02029178faeb99748e2f70827e" + hash: "70a50039fbd67d4b56c0c7ec3d7aecd1" } Frame { msec: 832 - hash: "fd4dbb6f47f6681af98eb6781ae7de58" + hash: "90bbef58e2e59021f68b878db477f74b" } Frame { msec: 848 - hash: "faf3be40e402768724703f5d0051249f" + hash: "21480d7b949acba033f4686c666d3f85" } Frame { msec: 864 - hash: "bc650ca5b7a3bdc1f0f051b9481faf29" + hash: "b622d2cea2428fb92a8e37715a60f195" } Mouse { type: 2 @@ -342,7 +342,7 @@ VisualTest { } Frame { msec: 880 - hash: "bc650ca5b7a3bdc1f0f051b9481faf29" + hash: "b622d2cea2428fb92a8e37715a60f195" } Mouse { type: 5 @@ -362,7 +362,7 @@ VisualTest { } Frame { msec: 896 - hash: "bc650ca5b7a3bdc1f0f051b9481faf29" + hash: "b622d2cea2428fb92a8e37715a60f195" } Mouse { type: 5 @@ -382,7 +382,7 @@ VisualTest { } Frame { msec: 912 - hash: "f2a679f2b7585245d4f1896fed4e0d1e" + hash: "8b537cd0481c1a9bf84f4855ae5697ad" } Mouse { type: 5 @@ -402,7 +402,7 @@ VisualTest { } Frame { msec: 928 - hash: "721b5fa42f583c1e1e1a751fc8aad270" + hash: "f5aba503b2c155401d26be068724e28a" } Mouse { type: 5 @@ -422,7 +422,7 @@ VisualTest { } Frame { msec: 944 - hash: "7e3ddefca9a99d6b9103ffd4524bc593" + hash: "1aca5a9415dd669a0ff76ef4da9c9a56" } Mouse { type: 5 @@ -442,7 +442,7 @@ VisualTest { } Frame { msec: 960 - hash: "7858d23cb4c206676eca51c1c09802b5" + hash: "b046e18396cd3d2da6505fa783bd2b89" } Mouse { type: 5 @@ -474,171 +474,171 @@ VisualTest { } Frame { msec: 992 - hash: "e723da5ecaffe31f03b1d5ca6765229b" + hash: "c4506098417f905871a43d183cd5904d" } Frame { msec: 1008 - hash: "73d169bf6bdfce801b824b7b560c3fad" + hash: "fe8014819e6fe41fa109f5b0ff2e9764" } Frame { msec: 1024 - hash: "4e3e283fb402dc4ec79f65878a513747" + hash: "6acdb4852ef9091382030998e28d02a5" } Frame { msec: 1040 - hash: "38c2e2835c20dbee55c69d0211a0be2d" + hash: "d5a9739669a9a641c0c1f44b777cb9b8" } Frame { msec: 1056 - hash: "84e668ba374ff0004dd7222933a635cf" + hash: "a4006cb90c69313b9b04a6b7b8734855" } Frame { msec: 1072 - hash: "349c7a84ff8f9b52d39dba1282353167" + hash: "23b447e486a6354354505171cf3c45ec" } Frame { msec: 1088 - hash: "b63218110c65b6d7b4bc2d63155204cd" + hash: "ad172b89d9764bd568d9127c91547c0b" } Frame { msec: 1104 - hash: "aad65a7070aa668dd8ce4a3cc0f0f117" + hash: "0003fb6329e0bf293d56af63265bf0ca" } Frame { msec: 1120 - hash: "c4ae97e1d1f2efbc998f9b57c2373201" + hash: "dd62960e62800219c179fcd481e4504d" } Frame { msec: 1136 - hash: "94701ffaa4f45924ad89f92a30157c7d" + hash: "7fe6c7bd1bc9e46d3e520178a2309e87" } Frame { msec: 1152 - hash: "eee4fa336149528dfb16565b856ca692" + hash: "bb67acd602414cf59e27b5ff19f69169" } Frame { msec: 1168 - hash: "ff1a053c0af99c51353503002515843d" + hash: "3170c18b8dd74429b0f366ec07f4870b" } Frame { msec: 1184 - hash: "118494c60034b0e265e28b34e3128d00" + hash: "249e4e489236e3f0748ba63c7a105b33" } Frame { msec: 1200 - hash: "bf693bffb37d7554a437eca21bdec7c1" + hash: "bd2fb97c583e6fe653a32fa610d6ac83" } Frame { msec: 1216 - hash: "880f60263cd79fb6a1bff7252d2373bb" + hash: "95ca2f988370075070c6a98e5e680206" } Frame { msec: 1232 - hash: "b34de164d5ec0294ca27281e1e5e3cd6" + hash: "851ef5f56b7b05d3feb0a1a357f96007" } Frame { msec: 1248 - hash: "e1609c4e40fb9e043a9fff683b94c6c4" + hash: "80f599f50af9e601536f62ea93f4e429" } Frame { msec: 1264 - hash: "2450b61b84c24727232c779114e6a474" + hash: "485d719d81429e63be4de1ba81d53996" } Frame { msec: 1280 - hash: "cf5ac4a5e3d42b3d4e171ed3227cfa85" + hash: "745f3c2e0baede59a52805eddac5b01f" } Frame { msec: 1296 - hash: "5cb5576ab347647ca881d4d450732df3" + hash: "fea3fa6e26eb150ab37fe96a34d3be3b" } Frame { msec: 1312 - hash: "34dc672ebfd75ec017d0c2f0bd435cd8" + hash: "29c8004517294539adf3243533381436" } Frame { msec: 1328 - hash: "aa9c4301332240ccc00ec99a05b7f9c9" + hash: "85ba01e36cc978459451887facbc3260" } Frame { msec: 1344 - hash: "3f98121997a1613bd49d22003d1a1887" + hash: "deedb9ddcc2f5354a2356178db54d971" } Frame { msec: 1360 - hash: "86732d3e900877ae7a8615b7448afaaa" + hash: "9e1fb461c13b4affa39e5909d3ade168" } Frame { msec: 1376 - hash: "7e2f2786d3c0540a0b6559fffe06ad3c" + hash: "684a543d7afc5a5cac2bb823bbb94893" } Frame { msec: 1392 - hash: "79e00bbe77f0a178e8db30023a881c3f" + hash: "636f04661a0418c1fdcaaaba28092671" } Frame { msec: 1408 - hash: "5f611226b3aa38f9aa3cd6a2dbd01f12" + hash: "89cac82b6751208654d1e4ef4df8ef28" } Frame { msec: 1424 - hash: "4f4cd776b76272cfe79b86a108bd6b6e" + hash: "a974415dcf31bee79874c4a6e84cf796" } Frame { msec: 1440 - hash: "a746404a1a26e2a25b8d364dbef46eef" + hash: "f74c075e8cf2aef501b7115427b3b221" } Frame { msec: 1456 - hash: "9124d97d120de1806d86c8f437ec4ed2" + hash: "7efcd27e34db1d3adc3d31e0b9ebe432" } Frame { msec: 1472 - hash: "4fda328eafe6ec2d02d939517d6d82e3" + hash: "c8747327ae3370b04a996aa6b5e373c6" } Frame { msec: 1488 - hash: "6afb6abe291c9e9628fd0b8c3da5d9db" + hash: "b7b32b5e782f8f5b1cbd6f581f90004a" } Frame { msec: 1504 - hash: "cb5962fe94c5d3ef754ff45f905a5c88" + hash: "5fda56f77948e183557ff54690030746" } Frame { msec: 1520 - hash: "57b5fc47ed700831b3dc3f2afbb1c3ed" + hash: "6e43987a8db7a6231887cf5883d381bf" } Frame { msec: 1536 - hash: "38793fb8a19c9566c8dd9d23c9a15b5d" + hash: "901e1f9851d05ff300fa2d52a38829ec" } Frame { msec: 1552 - hash: "2e311a5dc484e9f4bc7bd85d32a693b1" + hash: "abda2edf3c9f1aa28f41bf28083d081f" } Frame { msec: 1568 - hash: "69d1eed68fba918e831899c8b84374a1" + hash: "5e324e90e4056f59730db9fbc941609a" } Frame { msec: 1584 - hash: "c872391012e6ab2a6d1eb98c7f47f9e8" + hash: "d98ec6ad7e6f2df6796f975cdf06ea2c" } Frame { msec: 1600 - hash: "cf12f90835d823550cd83d472b4f022f" + hash: "fa62c8154b5aba9fa6daa0a50229e752" } Frame { msec: 1616 - hash: "fbb2f03ddbd87ed419386eb2942bccac" + hash: "c03b7e52c7da4f1cb6a4a2cab119a1a1" } Frame { msec: 1632 - hash: "0788a0fdb51cedba0f8b597a4cc38ebe" + hash: "57c1149d35ed84de63bac7accdb30c77" } Frame { msec: 1648 - hash: "b6595edf06fba22f3258c9b433af6ab8" + hash: "48823d7e5b72ff6e11bbe877962c9884" } Mouse { type: 2 @@ -650,19 +650,19 @@ VisualTest { } Frame { msec: 1664 - hash: "521a8188877551a97cd3ea82d209e8ae" + hash: "99c8215fbd87e45836908a85748dccc7" } Frame { msec: 1680 - hash: "4d923cd520c00f5cd985283d62cf17ec" + hash: "45e2cf43322f038d2b322dea82e829f1" } Frame { msec: 1696 - hash: "7ccff14d344c7090fa634f6defd6511e" + hash: "6473a0dc426bf118674d09b281fb6c38" } Frame { msec: 1712 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 3 @@ -674,55 +674,55 @@ VisualTest { } Frame { msec: 1728 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1744 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1760 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1776 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1792 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1808 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1824 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1840 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1856 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1872 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1888 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1904 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1920 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1936 @@ -730,39 +730,39 @@ VisualTest { } Frame { msec: 1952 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1968 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 1984 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2000 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2016 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2032 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2048 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2064 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2080 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 2 @@ -782,7 +782,7 @@ VisualTest { } Frame { msec: 2096 - hash: "888c68103c4eef2f65ef32a93be8286a" + hash: "5f6ed58401fddd692503810f22b23e93" } Mouse { type: 5 @@ -802,7 +802,7 @@ VisualTest { } Frame { msec: 2112 - hash: "888c68103c4eef2f65ef32a93be8286a" + hash: "5f6ed58401fddd692503810f22b23e93" } Mouse { type: 5 @@ -822,7 +822,7 @@ VisualTest { } Frame { msec: 2128 - hash: "888c68103c4eef2f65ef32a93be8286a" + hash: "5f6ed58401fddd692503810f22b23e93" } Mouse { type: 5 @@ -842,7 +842,7 @@ VisualTest { } Frame { msec: 2144 - hash: "888c68103c4eef2f65ef32a93be8286a" + hash: "5f6ed58401fddd692503810f22b23e93" } Mouse { type: 5 @@ -862,7 +862,7 @@ VisualTest { } Frame { msec: 2160 - hash: "888c68103c4eef2f65ef32a93be8286a" + hash: "5f6ed58401fddd692503810f22b23e93" } Mouse { type: 5 @@ -882,7 +882,7 @@ VisualTest { } Frame { msec: 2176 - hash: "888c68103c4eef2f65ef32a93be8286a" + hash: "5f6ed58401fddd692503810f22b23e93" } Mouse { type: 5 @@ -902,7 +902,7 @@ VisualTest { } Frame { msec: 2192 - hash: "888c68103c4eef2f65ef32a93be8286a" + hash: "5f6ed58401fddd692503810f22b23e93" } Mouse { type: 5 @@ -922,7 +922,7 @@ VisualTest { } Frame { msec: 2208 - hash: "888c68103c4eef2f65ef32a93be8286a" + hash: "5f6ed58401fddd692503810f22b23e93" } Mouse { type: 5 @@ -942,7 +942,7 @@ VisualTest { } Frame { msec: 2224 - hash: "888c68103c4eef2f65ef32a93be8286a" + hash: "5f6ed58401fddd692503810f22b23e93" } Mouse { type: 5 @@ -970,79 +970,79 @@ VisualTest { } Frame { msec: 2240 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2256 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2272 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2288 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2304 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2320 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2336 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2352 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2368 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2384 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2400 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2416 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2432 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2448 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2464 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2480 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2496 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2512 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2528 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 2 @@ -1054,7 +1054,7 @@ VisualTest { } Frame { msec: 2544 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1066,7 +1066,7 @@ VisualTest { } Frame { msec: 2560 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1086,7 +1086,7 @@ VisualTest { } Frame { msec: 2576 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1106,7 +1106,7 @@ VisualTest { } Frame { msec: 2592 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1126,7 +1126,7 @@ VisualTest { } Frame { msec: 2608 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1146,7 +1146,7 @@ VisualTest { } Frame { msec: 2624 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1166,7 +1166,7 @@ VisualTest { } Frame { msec: 2640 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1186,7 +1186,7 @@ VisualTest { } Frame { msec: 2656 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1206,7 +1206,7 @@ VisualTest { } Frame { msec: 2672 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1226,7 +1226,7 @@ VisualTest { } Frame { msec: 2688 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1246,7 +1246,7 @@ VisualTest { } Frame { msec: 2704 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1266,7 +1266,7 @@ VisualTest { } Frame { msec: 2720 - hash: "0d3bac7463b5fe7f585997e35f179122" + hash: "defd2e26ba579dffd2273bcc86c54a94" } Mouse { type: 5 @@ -1286,43 +1286,43 @@ VisualTest { } Frame { msec: 2736 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2752 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2768 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2784 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2800 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2816 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2832 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2848 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2864 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2880 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2896 @@ -1330,63 +1330,63 @@ VisualTest { } Frame { msec: 2912 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2928 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2944 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2960 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2976 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 2992 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3008 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3024 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3040 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3056 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3072 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3088 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3104 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3120 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3136 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 2 @@ -1398,23 +1398,23 @@ VisualTest { } Frame { msec: 3152 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3168 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3184 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3200 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3216 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 3 @@ -1426,67 +1426,67 @@ VisualTest { } Frame { msec: 3232 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3248 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3264 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3280 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3296 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3312 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3328 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3344 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3360 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3376 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3392 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3408 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3424 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3440 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3456 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3472 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 2 @@ -1498,19 +1498,19 @@ VisualTest { } Frame { msec: 3488 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3504 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3520 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3536 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 3 @@ -1522,55 +1522,55 @@ VisualTest { } Frame { msec: 3552 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3568 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3584 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3600 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3616 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3632 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3648 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3664 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3680 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3696 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3712 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3728 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Frame { msec: 3744 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 2 @@ -1582,7 +1582,7 @@ VisualTest { } Frame { msec: 3760 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 5 @@ -1602,7 +1602,7 @@ VisualTest { } Frame { msec: 3776 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 5 @@ -1622,7 +1622,7 @@ VisualTest { } Frame { msec: 3792 - hash: "998cb23307a61afefb59c8b9e361a89f" + hash: "8caa38000edef97a8276022b5da19ecc" } Mouse { type: 5 @@ -1642,7 +1642,7 @@ VisualTest { } Frame { msec: 3808 - hash: "2e311a5dc484e9f4bc7bd85d32a693b1" + hash: "abda2edf3c9f1aa28f41bf28083d081f" } Mouse { type: 5 @@ -1662,7 +1662,7 @@ VisualTest { } Frame { msec: 3824 - hash: "cbfcb7b986b0c51828473d98ca9fee03" + hash: "1a0305de0a8156f3f059d74891b71846" } Mouse { type: 5 @@ -1682,7 +1682,7 @@ VisualTest { } Frame { msec: 3840 - hash: "389b514c4cd4a4d65388608643d08c04" + hash: "04c2fbbb1df6ca9d03c105fcfa5c0770" } Mouse { type: 5 @@ -1722,7 +1722,7 @@ VisualTest { } Frame { msec: 3872 - hash: "cf9a0a968459a1283fff91102eb29ba3" + hash: "4ebb31f7945bb5542f9e5146888b1065" } Mouse { type: 5 @@ -1742,139 +1742,139 @@ VisualTest { } Frame { msec: 3888 - hash: "77c86fb26126825cfd5b6ba21b903808" + hash: "2a731429c6d5c4ee1f1fa8f3ca07f0c2" } Frame { msec: 3904 - hash: "c497bcbe500905b8a69fd310fd7c7e1a" + hash: "b8a8c4db8325b3e0292e6473084347d9" } Frame { msec: 3920 - hash: "95bffb4d4aff1603e96af55cbc2dc3f2" + hash: "fae53bd8bc9d05f343968c7006723207" } Frame { msec: 3936 - hash: "6fa87a7136528b688069fe1c4bd94043" + hash: "fe2fc28a79609af32ea1043f3c988b08" } Frame { msec: 3952 - hash: "602c16e1382d810f853d647e531b4e8a" + hash: "18f77a48b14347b2ab41eb39c9de3be4" } Frame { msec: 3968 - hash: "01d1227e4f5b95f8b0c6a57a4b2314c4" + hash: "93e83c35d34715ee703a0d79d51bc145" } Frame { msec: 3984 - hash: "1db6401af45574b7453ad57766e60e6f" + hash: "4ae9d80d6079b92be66fcc099209d779" } Frame { msec: 4000 - hash: "067a1bef3df5d1c40842f28885d60250" + hash: "bd8c0a924552cb4dfc5ddc1451931b01" } Frame { msec: 4016 - hash: "5fba31051e05ec00c0d68b8e8af94132" + hash: "6a1874cdac6f754b36f022c583834d32" } Frame { msec: 4032 - hash: "d6209a0b9b9e0f2072179a4623c70fbd" + hash: "f3064485083025aba09224faafcede14" } Frame { msec: 4048 - hash: "ec30f07ab0056a45954c07ecdfa1401a" + hash: "8e82568ac62969dfedbf1c2082101661" } Frame { msec: 4064 - hash: "fef6c7767970a283bb3b13826f71bdac" + hash: "4e447efea0dd139787c7aa9018327206" } Frame { msec: 4080 - hash: "29621938e96be0d11c95fd1e4ca37631" + hash: "ed23778ce6843053cd4af6df7262bdd0" } Frame { msec: 4096 - hash: "8103c96ac90ddf52056d7e8b32e4ae9e" + hash: "fe1118cc51b4cd25d775b5d1c1d66540" } Frame { msec: 4112 - hash: "d72bf8b88efe603050ad038380173969" + hash: "02a59ccc15df26abe5612f13ce926286" } Frame { msec: 4128 - hash: "4438b56eb6aa800602634db6016caa50" + hash: "71c43a208e3dfbce6cb461f8ff0d2f17" } Frame { msec: 4144 - hash: "44674f7a874023c3932d698344ccda0e" + hash: "404b8155f17dff084c2da1407d6915a9" } Frame { msec: 4160 - hash: "155a834ddaa7128b6f5a2a406b340315" + hash: "ab0dba54c469dea461cd1619161edd82" } Frame { msec: 4176 - hash: "3886efa510581ee5b6c4a2ed76aeb42d" + hash: "e6f158712a7afe1844acc1a1cd9385ec" } Frame { msec: 4192 - hash: "094954e8d10b85d3941626dec4fb36af" + hash: "b9d8fcc3d68ebc6d4d4f60e4652befe3" } Frame { msec: 4208 - hash: "b597aeb20a8630e4b1dfd0a7be383e4d" + hash: "9005a49b3ac2ef2344d78ef68595ea26" } Frame { msec: 4224 - hash: "abc58e74ab197a2d7c243ddd67442e53" + hash: "aad3dd90f766320ad68b62b97559ec02" } Frame { msec: 4240 - hash: "b6ec106d39af13492c3d43bf006b7b15" + hash: "a39008d78d188e8bd3571f80f679a915" } Frame { msec: 4256 - hash: "d80211f898473a01e0c0641b96bc92f4" + hash: "cedc580acc63d6a069442bb83f17b6f8" } Frame { msec: 4272 - hash: "5010579fcd925e65c778c2e9cf0317de" + hash: "f63f5d20e3b5a4b6247339d0ec518449" } Frame { msec: 4288 - hash: "5010579fcd925e65c778c2e9cf0317de" + hash: "f63f5d20e3b5a4b6247339d0ec518449" } Frame { msec: 4304 - hash: "d80211f898473a01e0c0641b96bc92f4" + hash: "cedc580acc63d6a069442bb83f17b6f8" } Frame { msec: 4320 - hash: "27cfc811f62029df48ea7f371ff5654b" + hash: "bccf94c11e92af36f418dbee1b797a86" } Frame { msec: 4336 - hash: "b6ec106d39af13492c3d43bf006b7b15" + hash: "a39008d78d188e8bd3571f80f679a915" } Frame { msec: 4352 - hash: "28c8e3f08f46bf13cc52a7d6a31a7cf1" + hash: "02d38396737a262fa983511a40514b38" } Frame { msec: 4368 - hash: "b597aeb20a8630e4b1dfd0a7be383e4d" + hash: "9005a49b3ac2ef2344d78ef68595ea26" } Frame { msec: 4384 - hash: "a3a3682ce0d2a2d57457458b13645afa" + hash: "c05dad606a9b5b501a201bfead974f03" } Frame { msec: 4400 - hash: "98bf25cbb8202fe1576ac15bac7b9e65" + hash: "27846f086c13e1b06e89a8a395802678" } Frame { msec: 4416 - hash: "16b99c9cf5297a5251869a3935084cf7" + hash: "f919b09b6f7f4f09b5d9b123b686a442" } Mouse { type: 2 @@ -1886,11 +1886,11 @@ VisualTest { } Frame { msec: 4432 - hash: "16b99c9cf5297a5251869a3935084cf7" + hash: "f919b09b6f7f4f09b5d9b123b686a442" } Frame { msec: 4448 - hash: "16b99c9cf5297a5251869a3935084cf7" + hash: "f919b09b6f7f4f09b5d9b123b686a442" } Mouse { type: 5 @@ -1902,7 +1902,7 @@ VisualTest { } Frame { msec: 4464 - hash: "16b99c9cf5297a5251869a3935084cf7" + hash: "f919b09b6f7f4f09b5d9b123b686a442" } Mouse { type: 5 @@ -1922,7 +1922,7 @@ VisualTest { } Frame { msec: 4480 - hash: "16b99c9cf5297a5251869a3935084cf7" + hash: "ab0dba54c469dea461cd1619161edd82" } Mouse { type: 5 @@ -1942,7 +1942,7 @@ VisualTest { } Frame { msec: 4496 - hash: "abc58e74ab197a2d7c243ddd67442e53" + hash: "aad3dd90f766320ad68b62b97559ec02" } Mouse { type: 5 @@ -1962,7 +1962,7 @@ VisualTest { } Frame { msec: 4512 - hash: "e5c5b741da7c028ec77f52016675c1ca" + hash: "09e110197afc9350dbbaf3e19e24dbe8" } Mouse { type: 5 @@ -1982,7 +1982,7 @@ VisualTest { } Frame { msec: 4528 - hash: "12481bcccb524a478851a57d4db6cf8d" + hash: "c50fa7aa75b947d065109c97a0db4c02" } Mouse { type: 5 @@ -2002,7 +2002,7 @@ VisualTest { } Frame { msec: 4544 - hash: "a49985bd332cd3376986d379c474a3de" + hash: "e701f8ef23f576f10c286191ea4caaf1" } Mouse { type: 5 @@ -2030,51 +2030,51 @@ VisualTest { } Frame { msec: 4560 - hash: "cd4e55b15e9df7fee1862180fddec0ca" + hash: "c24daebe9c5ba9bd46ef674c49edd160" } Frame { msec: 4576 - hash: "64ff54775d198b616597f4539de90bd8" + hash: "fc762235395c772666d2529a5e9bff98" } Frame { msec: 4592 - hash: "2b188745bfff51f9d3af90b7ad9c8d77" + hash: "7f4f4420fde62e6126f0c3bf604425dc" } Frame { msec: 4608 - hash: "2dde7d565f92f22c6524448f97107e35" + hash: "0e9978b0f60cba7bf599571b97f2f751" } Frame { msec: 4624 - hash: "897a454ac464008d6dd7864eb608ae65" + hash: "ff19d1b0a0d7d0cc5dd8919606c17fc8" } Frame { msec: 4640 - hash: "269df4f1aca4f0cdbd5c86c2e115bd3c" + hash: "7c61e0a6c354b4f30db6c861b9250be2" } Frame { msec: 4656 - hash: "ec0ebdbd3f4665fba7f6a523a82a5071" + hash: "bd1196ce51f5abd53f6052f17d926a81" } Frame { msec: 4672 - hash: "c1ac6a385f580f23b3486c643d276e33" + hash: "ab2b1c33a5f60690fe2724a0ddd3bb67" } Frame { msec: 4688 - hash: "3de0d147a6a3c1382ec64a80996bb4f4" + hash: "0a0709d2649d649ab52eaddbe60c1dc9" } Frame { msec: 4704 - hash: "8db942b5909f63d4369ad5b29938ef49" + hash: "ef3b3099811cc2e26d823d94c5b66f1d" } Frame { msec: 4720 - hash: "f7840636f2d01c25be8e9c77230cca53" + hash: "522683305b2706b6e22d0e1770f285d6" } Frame { msec: 4736 - hash: "d315f82e175361fed83193ce550cb6e9" + hash: "c08d933b3dbda5fc476ed673cd7a2e4a" } Mouse { type: 2 @@ -2086,7 +2086,7 @@ VisualTest { } Frame { msec: 4752 - hash: "d315f82e175361fed83193ce550cb6e9" + hash: "c08d933b3dbda5fc476ed673cd7a2e4a" } Mouse { type: 5 @@ -2106,7 +2106,7 @@ VisualTest { } Frame { msec: 4768 - hash: "d315f82e175361fed83193ce550cb6e9" + hash: "ab0dba54c469dea461cd1619161edd82" } Mouse { type: 5 @@ -2126,7 +2126,7 @@ VisualTest { } Frame { msec: 4784 - hash: "00b072a0adbfcd520d495ef6540f5680" + hash: "d23653a4e1651babdbb3561fb7029df2" } Mouse { type: 5 @@ -2146,7 +2146,7 @@ VisualTest { } Frame { msec: 4800 - hash: "fb605e95988a6110384671e7f3f18ad8" + hash: "702d94cbca1ba235a5a2cc30c552d8b7" } Mouse { type: 5 @@ -2186,7 +2186,7 @@ VisualTest { } Frame { msec: 4832 - hash: "4d1eb644b592a693b13fe14377aeed97" + hash: "f53134176897d55299ab723ab20ba3fc" } Mouse { type: 5 @@ -2206,7 +2206,7 @@ VisualTest { } Frame { msec: 4848 - hash: "00eb1d3b016eb0220461074ce81b1aef" + hash: "84146c913b41215c4bab1f36471f2b7b" } Mouse { type: 5 @@ -2234,231 +2234,231 @@ VisualTest { } Frame { msec: 4864 - hash: "77c86fb26126825cfd5b6ba21b903808" + hash: "2a731429c6d5c4ee1f1fa8f3ca07f0c2" } Frame { msec: 4880 - hash: "e80f024bbdce0ceeae137e347abc95a4" + hash: "a1e960ffef391daecb52d31698c7b06c" } Frame { msec: 4896 - hash: "bb189f39a836b9a2aa68f4535ed1d6fb" + hash: "adca54c132f170c517f1ef17c45006c8" } Frame { msec: 4912 - hash: "cf9a0a968459a1283fff91102eb29ba3" + hash: "4ebb31f7945bb5542f9e5146888b1065" } Frame { msec: 4928 - hash: "27130e7f6b853a287a7bdd8608628a4f" + hash: "c43ebd04137e379216c94b4c57cab3d9" } Frame { msec: 4944 - hash: "231c7b7078af00a36cfee3d5e43a4021" + hash: "c0218c548f5e3eb74ef33cb2921dbc96" } Frame { msec: 4960 - hash: "d8ffc8cc9cecc25cb9b4e7990fb7b8e7" + hash: "e6a15947574c7ac8e5a2454a5f8b043d" } Frame { msec: 4976 - hash: "fb5db5dafdb375132f1f1a461193bc60" + hash: "ec9aca63b61a8c3beb4ad476d4e38568" } Frame { msec: 4992 - hash: "64100f9f102ffc9415e306c087547709" + hash: "28f0447e8107d7fac9ec29b83808d2cb" } Frame { msec: 5008 - hash: "6960e5c4feb55043ff91934fc934734e" + hash: "74e28cddf8dd7bd7593c7185e09ea752" } Frame { msec: 5024 - hash: "349c7a84ff8f9b52d39dba1282353167" + hash: "23b447e486a6354354505171cf3c45ec" } Frame { msec: 5040 - hash: "bb41010df844312fc15bb5b42712619a" + hash: "3e3948addc7236ff8638863786dfe045" } Frame { msec: 5056 - hash: "63a3e18670bb2a5e7edfe3b752c0a1b5" + hash: "49885ec2f3242fc3ba9c9b808b3bb491" } Frame { msec: 5072 - hash: "92b1d0fbadbefe9f122b14903a5e0ee9" + hash: "0c12fc65a0298af1a1ec3bccfcdb20ab" } Frame { msec: 5088 - hash: "6b979e1a4bc7226a89ffb97be2f08147" + hash: "49c71089343b963fd8b3587eb1d5d457" } Frame { msec: 5104 - hash: "7b783908e0b10d329a7d3172f2302a85" + hash: "f083682e9bce74022baeafcb26870adb" } Frame { msec: 5120 - hash: "41d5ef3390cfc0d806825fc0cd033be6" + hash: "5bd49eab3fd8b246659b51d4602ea391" } Frame { msec: 5136 - hash: "ff1a053c0af99c51353503002515843d" + hash: "3170c18b8dd74429b0f366ec07f4870b" } Frame { msec: 5152 - hash: "63b26ecde2a2a9ce36884191304352ed" + hash: "d82de8b7c5a144b20085f447cf041350" } Frame { msec: 5168 - hash: "bdcff2f9f2c376974211ea6ad5c4961f" + hash: "60e520c52c5b87c686294a23d96dbd11" } Frame { msec: 5184 - hash: "00ffef1a1d4341ac1c7f43d493a9e826" + hash: "bb5b6cb5862e28a7f309ef5c7cf2b5dd" } Frame { msec: 5200 - hash: "65dcbb543656f65267c7d32dcd644e56" + hash: "b9e255376ad0b74b2c9be6e694f84d90" } Frame { msec: 5216 - hash: "38b49419b7103d76da2b6d7101d63d88" + hash: "e7527c7c8cb2f8c9e5ce32be98612837" } Frame { msec: 5232 - hash: "de39f6bf64745054cbee30ddf306f641" + hash: "8f8547a6508b156d514c6d4a61d18424" } Frame { msec: 5248 - hash: "d6b5ceca4aa48a7d4fd901d44c151b53" + hash: "99b4220101d400b49346ca023799c8fe" } Frame { msec: 5264 - hash: "876e6eee8a35c34e2dd5269f86a9ab3a" + hash: "2d83cf7c5f93aad4f9dcadcfdbb08fa3" } Frame { msec: 5280 - hash: "f94219306eac2e678881d0b607d15a1e" + hash: "c9ea64aa7000008ad9032cddd898767c" } Frame { msec: 5296 - hash: "c9184196ef45c985f08f80435492641d" + hash: "4c37b188261e927f72725484d08ac9e1" } Frame { msec: 5312 - hash: "34dc672ebfd75ec017d0c2f0bd435cd8" + hash: "29c8004517294539adf3243533381436" } Frame { msec: 5328 - hash: "4daf1c730fdf13e0a87b28208f2b6dd1" + hash: "b5126298ebb61d6ab5ae58822c9380ca" } Frame { msec: 5344 - hash: "c28d5d7d9d3a86e5bbf6ad48331f9c61" + hash: "7b546c089dca57353b4867af724ea370" } Frame { msec: 5360 - hash: "3f98121997a1613bd49d22003d1a1887" + hash: "deedb9ddcc2f5354a2356178db54d971" } Frame { msec: 5376 - hash: "86732d3e900877ae7a8615b7448afaaa" + hash: "9e1fb461c13b4affa39e5909d3ade168" } Frame { msec: 5392 - hash: "9f3da7ebaeb319c9fec0abdd6bd76ee2" + hash: "dbb54d7d203c99d466b1a173fb90c148" } Frame { msec: 5408 - hash: "326563c2c812a74c7f1fa5e9da0c2369" + hash: "0a67ef028264551c1122f4d8a0b07c20" } Frame { msec: 5424 - hash: "79e00bbe77f0a178e8db30023a881c3f" + hash: "636f04661a0418c1fdcaaaba28092671" } Frame { msec: 5440 - hash: "e624204566550e928ab2a2c54113d217" + hash: "de8946eb6317277b580cbf6a38a85a29" } Frame { msec: 5456 - hash: "b95bf705b81544b05f560c54dec56ff1" + hash: "45dd5e856c10ef2e5a9b968044802096" } Frame { msec: 5472 - hash: "4f4cd776b76272cfe79b86a108bd6b6e" + hash: "a974415dcf31bee79874c4a6e84cf796" } Frame { msec: 5488 - hash: "ec2eb1b39a252bd9b37d12ede3d231ce" + hash: "58dab05300d4c83ba084c8bef6a04958" } Frame { msec: 5504 - hash: "a746404a1a26e2a25b8d364dbef46eef" + hash: "f74c075e8cf2aef501b7115427b3b221" } Frame { msec: 5520 - hash: "17d190465ee0d348d9b67a748626d99e" + hash: "7fd3e958115134b2f15cc6d3e01cbcfe" } Frame { msec: 5536 - hash: "9124d97d120de1806d86c8f437ec4ed2" + hash: "7efcd27e34db1d3adc3d31e0b9ebe432" } Frame { msec: 5552 - hash: "ea746de2380835d299c56bb01f0aa83c" + hash: "2229621b9ad55dddce371061584a4dfd" } Frame { msec: 5568 - hash: "4fda328eafe6ec2d02d939517d6d82e3" + hash: "c8747327ae3370b04a996aa6b5e373c6" } Frame { msec: 5584 - hash: "9c6f671def0b1f5d780024a9dad439e6" + hash: "677f52c273dda1f878bfea43b6353aaa" } Frame { msec: 5600 - hash: "b7d441d0bb27ed6d1984f324b6e02548" + hash: "d29de2f0505bdaca1e3443812a588fb1" } Frame { msec: 5616 - hash: "3042a62a1125171d9530b696f4b36e19" + hash: "71f3088ea8794a232ee08c6b0ad72e98" } Frame { msec: 5632 - hash: "4534f40cf6bb7f402d7252c474629664" + hash: "3733ba52e740ea8438967cb03c619368" } Frame { msec: 5648 - hash: "cb5962fe94c5d3ef754ff45f905a5c88" + hash: "5fda56f77948e183557ff54690030746" } Frame { msec: 5664 - hash: "b5a5f9f3aa0948f0bd8d9b4a3fceae50" + hash: "5996c2fc31ff3a13e1f3a23a230aad9a" } Frame { msec: 5680 - hash: "2e0605899abb5725cf22561ec9293879" + hash: "90b9b19f9f6aef7279b1199ca7b34b07" } Frame { msec: 5696 - hash: "1f260f1d931326be7e398f7c87e44735" + hash: "05b4559167ff77d07bb3063b87c4e621" } Frame { msec: 5712 - hash: "57b5fc47ed700831b3dc3f2afbb1c3ed" + hash: "6e43987a8db7a6231887cf5883d381bf" } Frame { msec: 5728 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5744 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5760 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5776 @@ -2474,19 +2474,19 @@ VisualTest { } Frame { msec: 5792 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5808 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5824 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5840 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Mouse { type: 3 @@ -2498,59 +2498,59 @@ VisualTest { } Frame { msec: 5856 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5872 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5888 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5904 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5920 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5936 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5952 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5968 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 5984 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6000 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6016 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6032 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6048 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6064 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Mouse { type: 2 @@ -2562,23 +2562,23 @@ VisualTest { } Frame { msec: 6080 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6096 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6112 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6128 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6144 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Mouse { type: 3 @@ -2590,63 +2590,63 @@ VisualTest { } Frame { msec: 6160 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6176 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6192 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6208 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6224 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6240 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6256 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6272 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6288 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6304 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6320 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6336 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6352 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6368 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Frame { msec: 6384 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Mouse { type: 2 @@ -2658,11 +2658,11 @@ VisualTest { } Frame { msec: 6400 - hash: "c18aeb6fb3914a0be2d34ff76249ed8e" + hash: "9b748b3b85f63d7f62cd916b0bf4357c" } Frame { msec: 6416 - hash: "c18aeb6fb3914a0be2d34ff76249ed8e" + hash: "9b748b3b85f63d7f62cd916b0bf4357c" } Mouse { type: 5 @@ -2682,7 +2682,7 @@ VisualTest { } Frame { msec: 6432 - hash: "c18aeb6fb3914a0be2d34ff76249ed8e" + hash: "9b748b3b85f63d7f62cd916b0bf4357c" } Mouse { type: 5 @@ -2702,7 +2702,7 @@ VisualTest { } Frame { msec: 6448 - hash: "8b9167c04a8acc7f8ade258a3e58893b" + hash: "351d95ba7bc01ea8d4991883885ca537" } Mouse { type: 5 @@ -2722,7 +2722,7 @@ VisualTest { } Frame { msec: 6464 - hash: "a5daa2f6c932fa38038639bdc8231c5d" + hash: "2c84bdd7066c8fd8c66b022783c6fcfe" } Mouse { type: 5 @@ -2742,7 +2742,7 @@ VisualTest { } Frame { msec: 6480 - hash: "f342612efcd5e0820b44bd788ec52d7a" + hash: "ffe18300d9ce72e2d4e191c473a6973c" } Mouse { type: 5 @@ -2762,7 +2762,7 @@ VisualTest { } Frame { msec: 6496 - hash: "9a66e65c69ec833a36cce5cbd7d8257f" + hash: "427720fdd38ff4310c8040b1a5a5f84f" } Mouse { type: 5 @@ -2782,7 +2782,7 @@ VisualTest { } Frame { msec: 6512 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Mouse { type: 5 @@ -2802,7 +2802,7 @@ VisualTest { } Frame { msec: 6528 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Mouse { type: 5 @@ -2822,7 +2822,7 @@ VisualTest { } Frame { msec: 6544 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Mouse { type: 5 @@ -2842,7 +2842,7 @@ VisualTest { } Frame { msec: 6560 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Mouse { type: 5 @@ -2862,7 +2862,7 @@ VisualTest { } Frame { msec: 6576 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Mouse { type: 5 @@ -2882,7 +2882,7 @@ VisualTest { } Frame { msec: 6592 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Mouse { type: 5 @@ -2910,35 +2910,35 @@ VisualTest { } Frame { msec: 6608 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6624 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6640 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6656 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6672 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6688 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6704 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6720 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6736 @@ -2946,67 +2946,67 @@ VisualTest { } Frame { msec: 6752 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6768 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6784 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6800 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6816 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6832 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6848 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6864 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6880 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6896 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6912 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6928 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6944 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6960 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6976 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Frame { msec: 6992 - hash: "bca482a77823f03e8fb4170ee329fc0e" + hash: "08a827d109c78ff0d82ed7b6ef8d55b9" } Mouse { type: 2 @@ -3018,7 +3018,7 @@ VisualTest { } Frame { msec: 7008 - hash: "9ed65a21e4aaedf9c48a38324b3f5480" + hash: "ff198f6b27379e64b901b37e0cf1e98b" } Mouse { type: 5 @@ -3038,7 +3038,7 @@ VisualTest { } Frame { msec: 7024 - hash: "9ed65a21e4aaedf9c48a38324b3f5480" + hash: "ff198f6b27379e64b901b37e0cf1e98b" } Mouse { type: 5 @@ -3058,7 +3058,7 @@ VisualTest { } Frame { msec: 7040 - hash: "9ed65a21e4aaedf9c48a38324b3f5480" + hash: "ff198f6b27379e64b901b37e0cf1e98b" } Mouse { type: 5 @@ -3078,7 +3078,7 @@ VisualTest { } Frame { msec: 7056 - hash: "c4925926f64b852ff6c8d07e1c70ead5" + hash: "61d410fdbe0ee8a41e9c7b25eb2901a7" } Mouse { type: 5 @@ -3098,7 +3098,7 @@ VisualTest { } Frame { msec: 7072 - hash: "da771cedad067b8f25c100613b6a14f2" + hash: "8e27d1db841047a115561861a1c20e67" } Mouse { type: 5 @@ -3118,7 +3118,7 @@ VisualTest { } Frame { msec: 7088 - hash: "c8862bf76a431edc1cf04f4114fa859f" + hash: "7599e2f206da8b46dcaf35a4a7858747" } Mouse { type: 5 @@ -3138,7 +3138,7 @@ VisualTest { } Frame { msec: 7104 - hash: "4d923cd520c00f5cd985283d62cf17ec" + hash: "45e2cf43322f038d2b322dea82e829f1" } Mouse { type: 5 @@ -3158,7 +3158,7 @@ VisualTest { } Frame { msec: 7120 - hash: "76b0d1c77ba29bad836673b1b79de911" + hash: "0170b6aff2eab67213fc4f2883be1db9" } Mouse { type: 5 @@ -3178,7 +3178,7 @@ VisualTest { } Frame { msec: 7136 - hash: "3f9c5686f0a9ef5ecf2b8338ef2e7933" + hash: "23ef985de50ae4600d8f62ed4c91edc9" } Mouse { type: 5 @@ -3198,7 +3198,7 @@ VisualTest { } Frame { msec: 7152 - hash: "799d83eedefa0a56f37a83404c59ad4f" + hash: "a69e534df84e406e06ca94e2221c97f1" } Mouse { type: 5 @@ -3226,79 +3226,79 @@ VisualTest { } Frame { msec: 7168 - hash: "d6b5ceca4aa48a7d4fd901d44c151b53" + hash: "99b4220101d400b49346ca023799c8fe" } Frame { msec: 7184 - hash: "e1609c4e40fb9e043a9fff683b94c6c4" + hash: "80f599f50af9e601536f62ea93f4e429" } Frame { msec: 7200 - hash: "ea457fc4d4065d2ed0e9f6efc47a06ee" + hash: "e211b4a9e0059eaf7a3654121ed6b7a4" } Frame { msec: 7216 - hash: "b7f4319aa9c21640a697ee89f162bb49" + hash: "ef0997291fb3323c877b65847905f7c3" } Frame { msec: 7232 - hash: "880f60263cd79fb6a1bff7252d2373bb" + hash: "95ca2f988370075070c6a98e5e680206" } Frame { msec: 7248 - hash: "00ffef1a1d4341ac1c7f43d493a9e826" + hash: "bb5b6cb5862e28a7f309ef5c7cf2b5dd" } Frame { msec: 7264 - hash: "c949fe87ba91e08f26a1c4d90028513f" + hash: "958e9074dfa2392db05fb3f532573519" } Frame { msec: 7280 - hash: "8636af4591c61c4b4a548f3a38749413" + hash: "4d90460d3b6c46075ffda426bc6ceaa6" } Frame { msec: 7296 - hash: "63b26ecde2a2a9ce36884191304352ed" + hash: "d82de8b7c5a144b20085f447cf041350" } Frame { msec: 7312 - hash: "843f7263f63442f0041bf2c1a6fae400" + hash: "4d5d1c8470df16097c51517e750ef6be" } Frame { msec: 7328 - hash: "ff1a053c0af99c51353503002515843d" + hash: "3170c18b8dd74429b0f366ec07f4870b" } Frame { msec: 7344 - hash: "47aea3ac4ea935d43f731a258287c2e8" + hash: "35b4e282089b4f7e8cc60aaf6635a0f7" } Frame { msec: 7360 - hash: "eee4fa336149528dfb16565b856ca692" + hash: "bb67acd602414cf59e27b5ff19f69169" } Frame { msec: 7376 - hash: "bb94493c25c56c41e81ef1e390adf63d" + hash: "0135220633c5aebe964b596f3c1bae27" } Frame { msec: 7392 - hash: "2915f455a5e1e8c6b8cc78309c5e84d9" + hash: "b4a996bdc1ccae96f84e285b212a19a3" } Frame { msec: 7408 - hash: "94701ffaa4f45924ad89f92a30157c7d" + hash: "7fe6c7bd1bc9e46d3e520178a2309e87" } Frame { msec: 7424 - hash: "92fae8cf4b8d8404b26a31f995860b95" + hash: "b803764915a58bd59aed1223bd7c67d7" } Frame { msec: 7440 - hash: "6b979e1a4bc7226a89ffb97be2f08147" + hash: "49c71089343b963fd8b3587eb1d5d457" } Frame { msec: 7456 - hash: "dd94beeb0b4933a9ac2236a9abe630ff" + hash: "d2e577eecdf6fc9ecadf500896e0ff46" } Mouse { type: 2 @@ -3310,11 +3310,11 @@ VisualTest { } Frame { msec: 7472 - hash: "dd94beeb0b4933a9ac2236a9abe630ff" + hash: "d2e577eecdf6fc9ecadf500896e0ff46" } Frame { msec: 7488 - hash: "dd94beeb0b4933a9ac2236a9abe630ff" + hash: "d2e577eecdf6fc9ecadf500896e0ff46" } Mouse { type: 5 @@ -3334,7 +3334,7 @@ VisualTest { } Frame { msec: 7504 - hash: "dd94beeb0b4933a9ac2236a9abe630ff" + hash: "d2e577eecdf6fc9ecadf500896e0ff46" } Mouse { type: 5 @@ -3354,7 +3354,7 @@ VisualTest { } Frame { msec: 7520 - hash: "34c7ed1c072d84626a8a64f7db02f71d" + hash: "21bf0affeaf1033e59a99bed9efeb80d" } Mouse { type: 5 @@ -3374,7 +3374,7 @@ VisualTest { } Frame { msec: 7536 - hash: "e723da5ecaffe31f03b1d5ca6765229b" + hash: "c4506098417f905871a43d183cd5904d" } Mouse { type: 5 @@ -3394,7 +3394,7 @@ VisualTest { } Frame { msec: 7552 - hash: "a85128cae494abeb5d45ab8df0d127a6" + hash: "fdf8dfa53431f930b01e667b3b86c7a1" } Mouse { type: 5 @@ -3414,7 +3414,7 @@ VisualTest { } Frame { msec: 7568 - hash: "3599a92966c27321e9f702f3428b9b00" + hash: "a94e05f80f0f8d3af13678318fd91416" } Mouse { type: 5 @@ -3434,31 +3434,31 @@ VisualTest { } Frame { msec: 7584 - hash: "067a1bef3df5d1c40842f28885d60250" + hash: "bd8c0a924552cb4dfc5ddc1451931b01" } Frame { msec: 7600 - hash: "82f818ed44a191fb51e637b8068786dc" + hash: "ed5bab2126fb459989b7ea0e44da6776" } Frame { msec: 7616 - hash: "f408f59707195549ba61f030a3f020cd" + hash: "756fc80a88e6f5d28f9c6bba771355c5" } Frame { msec: 7632 - hash: "66e79c8b2f8e3a57c3bc14935c5df7d1" + hash: "640c092db0d2a523ce0cdc961e64124a" } Frame { msec: 7648 - hash: "4341c6b7b0d2e8021b51cb1abab85e10" + hash: "097582f1b42c16d41f4413755ac15c3e" } Frame { msec: 7664 - hash: "5ec8ee5ccecac1787b2f5e99268e810d" + hash: "67ef5e3297fe5605bd41a72681899f48" } Frame { msec: 7680 - hash: "1fae7b735ff6e88abfb1423f8960da4f" + hash: "91452c52c309b7d90c7ccca3fc9ae8b2" } Frame { msec: 7696 @@ -3466,182 +3466,182 @@ VisualTest { } Frame { msec: 7712 - hash: "dce74ff07eb37c82a38b3e515f9a43f2" + hash: "ebef3c7095abadf45855fe75cbf3d358" } Frame { msec: 7728 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7744 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7760 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7776 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7792 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7808 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7824 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7840 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7856 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7872 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7888 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7904 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7920 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7936 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7952 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7968 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 7984 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8000 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8016 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8032 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8048 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8064 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8080 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8096 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8112 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8128 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8144 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8160 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8176 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8192 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8208 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8224 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8240 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8256 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8272 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8288 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8304 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8320 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8336 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8352 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8368 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8384 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8400 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } Frame { msec: 8416 - hash: "ba2c06129f17fde474427859d66ecd23" + hash: "97b167a5a76d6b71713d25508ed360f0" } } diff --git a/tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png b/tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png index 1dc9372..3556dce 100644 Binary files a/tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png and b/tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png differ -- cgit v0.12 From cb470a33bf85cf15b9df57e3ade27c6a0720d138 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Tue, 4 Jan 2011 08:39:22 +0100 Subject: Fixed first element being a LineToElement in QPainterPath::connectPath() This would produce an invalid path, causing potential crashes in various parts of Qt. Task-number: QTBUG-16377 Reviewed-by: Gunnar Sletta --- src/gui/painting/qpainterpath.cpp | 3 ++- tests/auto/qpainterpath/tst_qpainterpath.cpp | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/gui/painting/qpainterpath.cpp b/src/gui/painting/qpainterpath.cpp index ffd0d5c..94e2cd4 100644 --- a/src/gui/painting/qpainterpath.cpp +++ b/src/gui/painting/qpainterpath.cpp @@ -1196,7 +1196,8 @@ void QPainterPath::connectPath(const QPainterPath &other) int first = d->elements.size(); d->elements += other.d_func()->elements; - d->elements[first].type = LineToElement; + if (first != 0) + d->elements[first].type = LineToElement; // avoid duplicate points if (first > 0 && QPointF(d->elements[first]) == QPointF(d->elements[first - 1])) { diff --git a/tests/auto/qpainterpath/tst_qpainterpath.cpp b/tests/auto/qpainterpath/tst_qpainterpath.cpp index d0cddda..66e6d10 100644 --- a/tests/auto/qpainterpath/tst_qpainterpath.cpp +++ b/tests/auto/qpainterpath/tst_qpainterpath.cpp @@ -107,6 +107,7 @@ private slots: void operators(); void connectPathDuplicatePoint(); + void connectPathMoveTo(); void translate(); }; @@ -1169,6 +1170,31 @@ void tst_QPainterPath::connectPathDuplicatePoint() QCOMPARE(c, a); } +void tst_QPainterPath::connectPathMoveTo() +{ + QPainterPath path1; + QPainterPath path2; + QPainterPath path3; + QPainterPath path4; + + path1.moveTo(1,1); + + path2.moveTo(4,4); + path2.lineTo(5,6); + path2.lineTo(6,7); + + path3.connectPath(path2); + + path4.lineTo(5,5); + + path1.connectPath(path2); + + QVERIFY(path1.elementAt(0).type == QPainterPath::MoveToElement); + QVERIFY(path2.elementAt(0).type == QPainterPath::MoveToElement); + QVERIFY(path3.elementAt(0).type == QPainterPath::MoveToElement); + QVERIFY(path4.elementAt(0).type == QPainterPath::MoveToElement); +} + void tst_QPainterPath::translate() { QPainterPath path; -- cgit v0.12 From 7fec0ddfae9e7c79d904c87e7726991a306f5ab3 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Tue, 4 Jan 2011 09:29:06 +0100 Subject: QMeeGoSwitchEvent exported and static. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 1009 Reviewed-by: Samuel Rødal --- tools/qmeegographicssystemhelper/qmeegoswitchevent.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/qmeegographicssystemhelper/qmeegoswitchevent.h b/tools/qmeegographicssystemhelper/qmeegoswitchevent.h index 0ddbd3d..462182f 100644 --- a/tools/qmeegographicssystemhelper/qmeegoswitchevent.h +++ b/tools/qmeegographicssystemhelper/qmeegoswitchevent.h @@ -52,7 +52,7 @@ when going to software mode. */ -class QMeeGoSwitchEvent : public QEvent +class Q_DECL_EXPORT QMeeGoSwitchEvent : public QEvent { public: @@ -83,7 +83,7 @@ public: The type is registered on first access. Use this to detect incoming QMeeGoSwitchEvents. */ - QEvent::Type eventNumber(); + static QEvent::Type eventNumber(); private: QString name; -- cgit v0.12 From 3ad35ffdbfcbd2db5e8aac95fa0cc9f80e372128 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Tue, 4 Jan 2011 10:28:20 +0100 Subject: Pre-create the GL share widget before window surface creation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not pixmap creation. Merge-request: 988 Reviewed-by: Samuel Rødal --- src/plugins/graphicssystems/meego/qmeegographicssystem.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp index 4a86082..b1a8f5f7 100644 --- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp +++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp @@ -75,6 +75,8 @@ QMeeGoGraphicsSystem::~QMeeGoGraphicsSystem() QWindowSurface* QMeeGoGraphicsSystem::createWindowSurface(QWidget *widget) const { + QGLShareContextScope ctx(qt_gl_share_widget()->context()); + QMeeGoGraphicsSystem::surfaceWasCreated = true; QWindowSurface *surface = new QGLWindowSurface(widget); return surface; @@ -82,12 +84,6 @@ QWindowSurface* QMeeGoGraphicsSystem::createWindowSurface(QWidget *widget) const QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData::PixelType type) const { - // Long story short: without this it's possible to hit an - // uninitialized paintDevice due to a Qt bug too complex to even - // explain here... not to mention fix without going crazy. - // MDK - QGLShareContextScope ctx(qt_gl_share_widget()->context()); - return new QRasterPixmapData(type); } -- cgit v0.12 From b5acfc61f3989ab8b72f784431fc5ab168ffb975 Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Tue, 4 Jan 2011 10:53:57 +0100 Subject: Support for swap modes in QGLWindowSurface. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit AlwaysFull and AlwaysPartial implemented in ES only for now. By default do automatic. Merge-request: 993 Reviewed-by: Samuel Rødal --- src/opengl/qwindowsurface_gl.cpp | 13 ++++++++++++- src/opengl/qwindowsurface_gl_p.h | 3 +++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp index 7dc7dc7..b8716ce 100644 --- a/src/opengl/qwindowsurface_gl.cpp +++ b/src/opengl/qwindowsurface_gl.cpp @@ -284,6 +284,7 @@ struct QGLWindowSurfacePrivate }; QGLFormat QGLWindowSurface::surfaceFormat; +QGLWindowSurface::SwapMode QGLWindowSurface::swapBehavior = QGLWindowSurface::AutomaticSwap; void QGLWindowSurfaceGLPaintDevice::endPaint() { @@ -541,6 +542,9 @@ void QGLWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint & const GLenum target = GL_TEXTURE_2D; Q_UNUSED(target); + if (QGLWindowSurface::swapBehavior == QGLWindowSurface::KillSwap) + return; + if (context()) { context()->makeCurrent(); @@ -588,7 +592,14 @@ void QGLWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint & } } #endif - bool doingPartialUpdate = hasPartialUpdateSupport() && br.width() * br.height() < parent->geometry().width() * parent->geometry().height() * 0.2; + bool doingPartialUpdate = false; + if (QGLWindowSurface::swapBehavior == QGLWindowSurface::AutomaticSwap) + doingPartialUpdate = hasPartialUpdateSupport() && br.width() * br.height() < parent->geometry().width() * parent->geometry().height() * 0.2; + else if (QGLWindowSurface::swapBehavior == QGLWindowSurface::AlwaysFullSwap) + doingPartialUpdate = false; + else if (QGLWindowSurface::swapBehavior == QGLWindowSurface::AlwaysPartialSwap) + doingPartialUpdate = hasPartialUpdateSupport(); + QGLContext *ctx = reinterpret_cast(parent->d_func()->extraData()->glContext); if (widget != window()) { if (initializeOffscreenTexture(window()->size())) diff --git a/src/opengl/qwindowsurface_gl_p.h b/src/opengl/qwindowsurface_gl_p.h index 6906f35..9b0bee3 100644 --- a/src/opengl/qwindowsurface_gl_p.h +++ b/src/opengl/qwindowsurface_gl_p.h @@ -102,6 +102,9 @@ public: static QGLFormat surfaceFormat; + enum SwapMode { AutomaticSwap, AlwaysFullSwap, AlwaysPartialSwap, KillSwap }; + static SwapMode swapBehavior; + private slots: void deleted(QObject *object); -- cgit v0.12 From 177f2a2f17251c22f57944e9dd100ec8515b891a Mon Sep 17 00:00:00 2001 From: Michael Dominic K Date: Tue, 4 Jan 2011 10:53:58 +0100 Subject: QMeeGoGraphicsSystemHelper::setSwapBehavior implementation. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Merge-request: 993 Reviewed-by: Samuel Rødal --- .../qmeegographicssystemhelper.cpp | 15 +++++++++++++++ .../qmeegographicssystemhelper.h | 18 ++++++++++++++++++ .../qmeegographicssystemhelper.pro | 2 +- 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp index b660eb3..37cc417 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #include "qmeegoruntime.h" #include "qmeegoswitchevent.h" @@ -153,3 +154,17 @@ void QMeeGoGraphicsSystemHelper::setTranslucent(bool translucent) ENSURE_RUNNING_MEEGO; QMeeGoRuntime::setTranslucent(translucent); } + +void QMeeGoGraphicsSystemHelper::setSwapBehavior(SwapMode mode) +{ + ENSURE_RUNNING_MEEGO; + + if (mode == AutomaticSwap) + QGLWindowSurface::swapBehavior = QGLWindowSurface::AutomaticSwap; + else if (mode == AlwaysFullSwap) + QGLWindowSurface::swapBehavior = QGLWindowSurface::AlwaysFullSwap; + else if (mode == AlwaysPartialSwap) + QGLWindowSurface::swapBehavior = QGLWindowSurface::AlwaysPartialSwap; + else if (mode == KillSwap) + QGLWindowSurface::swapBehavior = QGLWindowSurface::KillSwap; +} diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h index 6df3c22..c8dccc2 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h @@ -186,6 +186,24 @@ public: on the top-level widget *before* you show it instead. */ static void setTranslucent(bool translucent); + + //! Used to specify the mode for swapping buffers in double-buffered GL rendering. + enum SwapMode { + AutomaticSwap, /**< Automatically choose netween full and partial updates (25% threshold) */ + AlwaysFullSwap, /**< Always do a full swap even if partial updates support present */ + AlwaysPartialSwap, /**< Always do a partial swap (if support present) no matter what threshold */ + KillSwap /**< Do not perform buffer swapping at all (no picture) */ + }; + + //! Sets the buffer swapping mode. + /*! + This can be only called when running with the meego graphics system. + The KillSwap mode can be specififed to effectively block painting. + + This functionality should be used only by applications counting on a specific behavior. + Most applications should use the default automatic behavior. + */ + static void setSwapBehavior(SwapMode mode); }; #endif diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro index 360847e..7639ad7 100644 --- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro +++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro @@ -3,7 +3,7 @@ TARGET = QtMeeGoGraphicsSystemHelper include(../../src/qbase.pri) -QT += gui +QT += gui opengl INCLUDEPATH += '../../src/plugins/graphicssystems/meego' HEADERS = qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h qmeegoswitchevent.h -- cgit v0.12 From 254281dae38b932998eb8014a55177948842b78d Mon Sep 17 00:00:00 2001 From: Joshua Grauman Date: Tue, 4 Jan 2011 11:03:32 +0100 Subject: Add line spacing to QTextBlockFormat, get/set functions, CSS support The patch adds line spacing options to Qt, as in all modern word processors. I primarily checked OpenOffice as a reference for how to position the lines based on the various types of line spacing as well as where to do the page breaks. The following functions were added: void QTextBlockFormat::setLineHeight(qreal height, int heightType) qreal QTextBlockFormat::lineHeight() int QTextBlockFormat::lineHeightType() qreal QTextBlockFormat::lineHeight(qreal scriptLineHeight, qreal scaling) Here are the HeightTypes available: QTextBlockFormat::SingleHeight QTextBlockFormat::ProportionalHeight QTextBlockFormat::FixedHeight QTextBlockFormat::AtLeastHeight QTextBlockFormat::LineDistanceHeight The following CSS syntax was added: line-height:150% line-height:40px line-height:normal line-height:40al line-height:40ld Merge-request: 2305 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/gui/text/qcssparser.cpp | 1 + src/gui/text/qcssparser_p.h | 1 + src/gui/text/qtextdocumentlayout.cpp | 38 ++++++++++++++++---- src/gui/text/qtextformat.cpp | 67 ++++++++++++++++++++++++++++++++++++ src/gui/text/qtextformat.h | 35 +++++++++++++++++++ src/gui/text/qtexthtmlparser.cpp | 18 ++++++++++ 6 files changed, 154 insertions(+), 6 deletions(-) diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp index dafc8e7..edb08ae 100644 --- a/src/gui/text/qcssparser.cpp +++ b/src/gui/text/qcssparser.cpp @@ -122,6 +122,7 @@ static const QCssKnownValue properties[NumProperties - 1] = { { "image", QtImage }, { "image-position", QtImageAlignment }, { "left", Left }, + { "line-height", LineHeight }, { "list-style", ListStyle }, { "list-style-type", ListStyleType }, { "margin" , Margin }, diff --git a/src/gui/text/qcssparser_p.h b/src/gui/text/qcssparser_p.h index ca9688e..6bcbdab 100644 --- a/src/gui/text/qcssparser_p.h +++ b/src/gui/text/qcssparser_p.h @@ -180,6 +180,7 @@ enum Property { TextTransform, QtListNumberPrefix, QtListNumberSuffix, + LineHeight, NumProperties }; diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index ff14490..5334ae8 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -2506,6 +2506,23 @@ void QTextDocumentLayoutPrivate::layoutFlow(QTextFrame::Iterator it, QTextLayout fd->currentLayoutStruct = 0; } +static inline void getLineHeightParams(const QTextBlockFormat &blockFormat, const QTextLine &line, qreal scaling, + QFixed *lineAdjustment, QFixed *lineBreakHeight, QFixed *lineHeight) +{ + *lineHeight = QFixed::fromReal(blockFormat.lineHeight(line.height(), scaling)); + if (blockFormat.lineHeightType() == QTextBlockFormat::FixedHeight || blockFormat.lineHeightType() == QTextBlockFormat::AtLeastHeight) { + *lineBreakHeight = *lineHeight; + if (blockFormat.lineHeightType() == QTextBlockFormat::FixedHeight) + *lineAdjustment = QFixed::fromReal(line.ascent() + qMax(line.leading(), 0.0)) - ((*lineHeight * 4) / 5); + else + *lineAdjustment = QFixed::fromReal(line.height()) - *lineHeight; + } + else { + *lineBreakHeight = QFixed::fromReal(line.height()); + *lineAdjustment = 0; + } +} + void QTextDocumentLayoutPrivate::layoutBlock(const QTextBlock &bl, int blockPosition, const QTextBlockFormat &blockFormat, QTextLayoutStruct *layoutStruct, int layoutFrom, int layoutTo, const QTextBlockFormat *previousBlockFormat) { @@ -2639,8 +2656,12 @@ void QTextDocumentLayoutPrivate::layoutBlock(const QTextBlock &bl, int blockPosi } - QFixed lineHeight = QFixed::fromReal(line.height()); - if (layoutStruct->pageHeight > 0 && layoutStruct->absoluteY() + lineHeight > layoutStruct->pageBottom) { + QFixed lineBreakHeight, lineHeight, lineAdjustment; + qreal scaling = (q->paintDevice() && q->paintDevice()->logicalDpiY() != qt_defaultDpi()) ? + qreal(q->paintDevice()->logicalDpiY()) / qreal(qt_defaultDpi()) : 1; + getLineHeightParams(blockFormat, line, scaling, &lineAdjustment, &lineBreakHeight, &lineHeight); + + if (layoutStruct->pageHeight > 0 && layoutStruct->absoluteY() + lineBreakHeight > layoutStruct->pageBottom) { layoutStruct->newPage(); floatMargins(layoutStruct->y, layoutStruct, &left, &right); @@ -2652,7 +2673,7 @@ void QTextDocumentLayoutPrivate::layoutBlock(const QTextBlock &bl, int blockPosi right -= text_indent; } - line.setPosition(QPointF((left - layoutStruct->x_left).toReal(), (layoutStruct->y - cy).toReal())); + line.setPosition(QPointF((left - layoutStruct->x_left).toReal(), (layoutStruct->y - cy - lineAdjustment).toReal())); layoutStruct->y += lineHeight; layoutStruct->contentsWidth = qMax(layoutStruct->contentsWidth, QFixed::fromReal(line.x() + line.naturalTextWidth()) + totalRightMargin); @@ -2672,11 +2693,16 @@ void QTextDocumentLayoutPrivate::layoutBlock(const QTextBlock &bl, int blockPosi QTextLine line = tl->lineAt(i); layoutStruct->contentsWidth = qMax(layoutStruct->contentsWidth, QFixed::fromReal(line.x() + tl->lineAt(i).naturalTextWidth()) + totalRightMargin); - const QFixed lineHeight = QFixed::fromReal(line.height()); + + QFixed lineBreakHeight, lineHeight, lineAdjustment; + qreal scaling = (q->paintDevice() && q->paintDevice()->logicalDpiY() != qt_defaultDpi()) ? + qreal(q->paintDevice()->logicalDpiY()) / qreal(qt_defaultDpi()) : 1; + getLineHeightParams(blockFormat, line, scaling, &lineAdjustment, &lineBreakHeight, &lineHeight); + if (layoutStruct->pageHeight != QFIXED_MAX) { - if (layoutStruct->absoluteY() + lineHeight > layoutStruct->pageBottom) + if (layoutStruct->absoluteY() + lineBreakHeight > layoutStruct->pageBottom) layoutStruct->newPage(); - line.setPosition(QPointF(line.position().x(), layoutStruct->y.toReal() - tl->position().y())); + line.setPosition(QPointF(line.position().x(), (layoutStruct->y - lineAdjustment).toReal() - tl->position().y())); } layoutStruct->y += lineHeight; } diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp index 945b012..719db7a 100644 --- a/src/gui/text/qtextformat.cpp +++ b/src/gui/text/qtextformat.cpp @@ -541,6 +541,8 @@ Q_GUI_EXPORT QDataStream &operator>>(QDataStream &stream, QTextFormat &fmt) \value TabPositions Specifies the tab positions. The tab positions are structs of QTextOption::Tab which are stored in a QList (internally, in a QList). \value BlockIndent + \value LineHeight + \value LineHeightType \value BlockNonBreakableLines \value BlockTrailingHorizontalRulerWidth The width of a horizontal ruler element. @@ -1856,6 +1858,10 @@ QFont QTextCharFormat::font() const indentation is set with setIndent(), the indentation of the first line with setTextIndent(). + Line spacing is set with setLineHeight() and retreived via lineHeight() + and lineHeightType(). The types of line spacing available are in the + LineHeightTypes enum. + Line breaking can be enabled and disabled with setNonBreakableLines(). The brush used to paint the paragraph's background @@ -1872,6 +1878,22 @@ QFont QTextCharFormat::font() const */ /*! + \since 4.7 + \enum QTextBlockFormat::LineHeightTypes + + This enum describes the various types of line spacing support paragraphs can have. + + \value SingleHeight This is the default line height: single spacing. + \value ProportionalHeight This sets the spacing proportional to the line (in percentage). + For example, set to 200 for double spacing. + \value FixedHeight This sets the line height to a fixed line height (in pixels). + \value AtLeastHeight This sets the minimum line height (in pixels). + \value LineDistanceHeight This adds the specified height between lines (in pixels). + + \sa lineHeight(), lineHeightType(), setLineHeight() +*/ + +/*! \fn QTextBlockFormat::QTextBlockFormat() Constructs a new QTextBlockFormat. @@ -2089,6 +2111,51 @@ QList QTextBlockFormat::tabPositions() const /*! + \fn void QTextBlockFormat::setLineHeight(qreal height, int heightType) + \since 4.7 + + This sets the line height for the paragraph to the value in height + which is dependant on heightType, described by the LineHeightTypes enum. + + \sa LineHeightTypes, lineHeight(), lineHeightType() +*/ + + +/*! + \fn qreal QTextBlockFormat::lineHeight(qreal scriptLineHeight, qreal scaling) const + \since 4.7 + + This returns what the height of the lines in the paragraph will be depending + on the given height of the script line and the scaling. The value that is returned + is also dependant on the given LineHeightType of the paragraph as well as the LineHeight + setting that has been set for the paragraph. The scaling is needed for the heights + that include a fixed number of pixels, to scale them appropriately for printing. + + \sa LineHeightTypes, setLineHeight(), lineHeightType() +*/ + + +/*! + \fn qreal QTextBlockFormat::lineHeight() const + \since 4.7 + + This returns the LineHeight property for the paragraph. + + \sa LineHeightTypes, setLineHeight(), lineHeightType() +*/ + + +/*! + \fn qreal QTextBlockFormat::lineHeightType() const + \since 4.7 + + This returns the LineHeightType property of the paragraph. + + \sa LineHeightTypes, setLineHeight(), lineHeight() +*/ + + +/*! \fn void QTextBlockFormat::setNonBreakableLines(bool b) If \a b is true, the lines in the paragraph are treated as diff --git a/src/gui/text/qtextformat.h b/src/gui/text/qtextformat.h index bb6e71d..41cc1d9 100644 --- a/src/gui/text/qtextformat.h +++ b/src/gui/text/qtextformat.h @@ -164,6 +164,8 @@ public: TextIndent = 0x1034, TabPositions = 0x1035, BlockIndent = 0x1040, + LineHeight = 0x1048, + LineHeightType = 0x1049, BlockNonBreakableLines = 0x1050, BlockTrailingHorizontalRulerWidth = 0x1060, @@ -531,6 +533,14 @@ inline void QTextCharFormat::setTableCellColumnSpan(int _tableCellColumnSpan) class Q_GUI_EXPORT QTextBlockFormat : public QTextFormat { public: + enum LineHeightTypes { + SingleHeight = 0, + ProportionalHeight = 1, + FixedHeight = 2, + AtLeastHeight = 3, + LineDistanceHeight = 4 + }; + QTextBlockFormat(); bool isValid() const { return isBlockFormat(); } @@ -568,6 +578,14 @@ public: inline int indent() const { return intProperty(BlockIndent); } + inline void setLineHeight(qreal height, int heightType) + { setProperty(LineHeight, height); setProperty(LineHeightType, heightType); } + inline qreal lineHeight(qreal scriptLineHeight, qreal scaling) const; + inline qreal lineHeight() const + { return doubleProperty(LineHeight); } + inline int lineHeightType() const + { return intProperty(LineHeightType); } + inline void setNonBreakableLines(bool b) { setProperty(BlockNonBreakableLines, b); } inline bool nonBreakableLines() const @@ -592,6 +610,23 @@ inline void QTextBlockFormat::setAlignment(Qt::Alignment aalignment) inline void QTextBlockFormat::setIndent(int aindent) { setProperty(BlockIndent, aindent); } +inline qreal QTextBlockFormat::lineHeight(qreal scriptLineHeight, qreal scaling = 1.0) const +{ + switch(intProperty(LineHeightType)) { + case SingleHeight: + return(scriptLineHeight); + case ProportionalHeight: + return(scriptLineHeight * doubleProperty(LineHeight) / 100.0); + case FixedHeight: + return(doubleProperty(LineHeight) * scaling); + case AtLeastHeight: + return(qMax(scriptLineHeight, doubleProperty(LineHeight) * scaling)); + case LineDistanceHeight: + return(scriptLineHeight + doubleProperty(LineHeight) * scaling); + } + return(0); +} + class Q_GUI_EXPORT QTextListFormat : public QTextFormat { public: diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp index 5b9ab90..769a509 100644 --- a/src/gui/text/qtexthtmlparser.cpp +++ b/src/gui/text/qtexthtmlparser.cpp @@ -1250,6 +1250,24 @@ void QTextHtmlParserNode::applyCssDeclarations(const QVector case QCss::QtBlockIndent: blockFormat.setIndent(decl.d->values.first().variant.toInt()); break; + case QCss::LineHeight: { + qreal lineHeight; + if (decl.realValue(&lineHeight, "px")) + blockFormat.setLineHeight(lineHeight, QTextBlockFormat::FixedHeight); + else if (decl.realValue(&lineHeight, "al")) + blockFormat.setLineHeight(lineHeight, QTextBlockFormat::AtLeastHeight); + else if (decl.realValue(&lineHeight, "ld")) + blockFormat.setLineHeight(lineHeight, QTextBlockFormat::LineDistanceHeight); + else { + bool ok; + QString value = decl.d->values.first().toString(); + lineHeight = value.toDouble(&ok); + if (ok) + blockFormat.setLineHeight(lineHeight, QTextBlockFormat::ProportionalHeight); + else + blockFormat.setLineHeight(0, QTextBlockFormat::SingleHeight); + } + break; } case QCss::TextIndent: { qreal indent = 0; if (decl.realValue(&indent, "px")) -- cgit v0.12 From 09b06552f98f8ee8be4d156049a6a37a4abed6bd Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 4 Jan 2011 11:09:38 +0100 Subject: Rename QTextBlockFormat::AtLeastHeight -> MinimumHeight Make some alterations to merge request 2305: 1. Rename enum for consistency with other APIs in Qt. 2. Correct documentation with actual version number of features. 3. Remove unstandard css syntax in line-height specification. Reviewed-by: Jiang Jiang --- src/gui/text/qtextdocumentlayout.cpp | 2 +- src/gui/text/qtextformat.cpp | 12 ++++++------ src/gui/text/qtextformat.h | 4 ++-- src/gui/text/qtexthtmlparser.cpp | 8 ++------ 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index 5334ae8..22c6b8c 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -2510,7 +2510,7 @@ static inline void getLineHeightParams(const QTextBlockFormat &blockFormat, cons QFixed *lineAdjustment, QFixed *lineBreakHeight, QFixed *lineHeight) { *lineHeight = QFixed::fromReal(blockFormat.lineHeight(line.height(), scaling)); - if (blockFormat.lineHeightType() == QTextBlockFormat::FixedHeight || blockFormat.lineHeightType() == QTextBlockFormat::AtLeastHeight) { + if (blockFormat.lineHeightType() == QTextBlockFormat::FixedHeight || blockFormat.lineHeightType() == QTextBlockFormat::MinimumHeight) { *lineBreakHeight = *lineHeight; if (blockFormat.lineHeightType() == QTextBlockFormat::FixedHeight) *lineAdjustment = QFixed::fromReal(line.ascent() + qMax(line.leading(), 0.0)) - ((*lineHeight * 4) / 5); diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp index 719db7a..b05a830 100644 --- a/src/gui/text/qtextformat.cpp +++ b/src/gui/text/qtextformat.cpp @@ -1878,7 +1878,7 @@ QFont QTextCharFormat::font() const */ /*! - \since 4.7 + \since 4.8 \enum QTextBlockFormat::LineHeightTypes This enum describes the various types of line spacing support paragraphs can have. @@ -1887,7 +1887,7 @@ QFont QTextCharFormat::font() const \value ProportionalHeight This sets the spacing proportional to the line (in percentage). For example, set to 200 for double spacing. \value FixedHeight This sets the line height to a fixed line height (in pixels). - \value AtLeastHeight This sets the minimum line height (in pixels). + \value MinimumHeight This sets the minimum line height (in pixels). \value LineDistanceHeight This adds the specified height between lines (in pixels). \sa lineHeight(), lineHeightType(), setLineHeight() @@ -2112,7 +2112,7 @@ QList QTextBlockFormat::tabPositions() const /*! \fn void QTextBlockFormat::setLineHeight(qreal height, int heightType) - \since 4.7 + \since 4.8 This sets the line height for the paragraph to the value in height which is dependant on heightType, described by the LineHeightTypes enum. @@ -2123,7 +2123,7 @@ QList QTextBlockFormat::tabPositions() const /*! \fn qreal QTextBlockFormat::lineHeight(qreal scriptLineHeight, qreal scaling) const - \since 4.7 + \since 4.8 This returns what the height of the lines in the paragraph will be depending on the given height of the script line and the scaling. The value that is returned @@ -2137,7 +2137,7 @@ QList QTextBlockFormat::tabPositions() const /*! \fn qreal QTextBlockFormat::lineHeight() const - \since 4.7 + \since 4.8 This returns the LineHeight property for the paragraph. @@ -2147,7 +2147,7 @@ QList QTextBlockFormat::tabPositions() const /*! \fn qreal QTextBlockFormat::lineHeightType() const - \since 4.7 + \since 4.8 This returns the LineHeightType property of the paragraph. diff --git a/src/gui/text/qtextformat.h b/src/gui/text/qtextformat.h index 41cc1d9..81b053b 100644 --- a/src/gui/text/qtextformat.h +++ b/src/gui/text/qtextformat.h @@ -537,7 +537,7 @@ public: SingleHeight = 0, ProportionalHeight = 1, FixedHeight = 2, - AtLeastHeight = 3, + MinimumHeight = 3, LineDistanceHeight = 4 }; @@ -619,7 +619,7 @@ inline qreal QTextBlockFormat::lineHeight(qreal scriptLineHeight, qreal scaling return(scriptLineHeight * doubleProperty(LineHeight) / 100.0); case FixedHeight: return(doubleProperty(LineHeight) * scaling); - case AtLeastHeight: + case MinimumHeight: return(qMax(scriptLineHeight, doubleProperty(LineHeight) * scaling)); case LineDistanceHeight: return(scriptLineHeight + doubleProperty(LineHeight) * scaling); diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp index 769a509..5d5e2b6 100644 --- a/src/gui/text/qtexthtmlparser.cpp +++ b/src/gui/text/qtexthtmlparser.cpp @@ -1252,13 +1252,9 @@ void QTextHtmlParserNode::applyCssDeclarations(const QVector break; case QCss::LineHeight: { qreal lineHeight; - if (decl.realValue(&lineHeight, "px")) + if (decl.realValue(&lineHeight, "px")) { blockFormat.setLineHeight(lineHeight, QTextBlockFormat::FixedHeight); - else if (decl.realValue(&lineHeight, "al")) - blockFormat.setLineHeight(lineHeight, QTextBlockFormat::AtLeastHeight); - else if (decl.realValue(&lineHeight, "ld")) - blockFormat.setLineHeight(lineHeight, QTextBlockFormat::LineDistanceHeight); - else { + } else { bool ok; QString value = decl.d->values.first().toString(); lineHeight = value.toDouble(&ok); -- cgit v0.12 From f2e3ef4e1eb656e1ce9f980a7d7bf63444b02504 Mon Sep 17 00:00:00 2001 From: Pierre Rossi Date: Wed, 29 Dec 2010 18:12:30 +0100 Subject: Set no brush when the brush is a solid patern transparent color. Fix a bug in pdf print engine that was noticeable when printing a webpage: the missing image graphic didn't appear in the pdf. Task-number: QTBUG-16435 Reviewed-by: sroedal --- src/gui/painting/qpdf.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/painting/qpdf.cpp b/src/gui/painting/qpdf.cpp index f5f7c3c..29e6a88 100644 --- a/src/gui/painting/qpdf.cpp +++ b/src/gui/painting/qpdf.cpp @@ -1156,6 +1156,8 @@ void QPdfBaseEngine::updateState(const QPaintEngineState &state) } if (flags & DirtyBrush) { d->brush = state.brush(); + if (d->brush.color().alpha() == 0 && d->brush.style() == Qt::SolidPattern) + d->brush.setStyle(Qt::NoBrush); d->hasBrush = d->brush.style() != Qt::NoBrush; } if (flags & DirtyBrushOrigin) { -- cgit v0.12 From 7008c516cda01a24d034a1d44dfaab03be4bfdb9 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Tue, 4 Jan 2011 12:03:37 +0100 Subject: Allow QWidget with size larger than 16383 on Mac OS X (Cocoa) The restriction in place seems to be from the carbon ages, this is not required for cocoa, so removing it. QWidget autotests runs as before. Task-number: QTBUG-11415 Reviewed-by: Joao --- src/gui/kernel/qwidget_mac.mm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm index 059140e..3c5c458 100644 --- a/src/gui/kernel/qwidget_mac.mm +++ b/src/gui/kernel/qwidget_mac.mm @@ -4224,6 +4224,7 @@ void QWidgetPrivate::setWSGeometry(bool dontShow, const QRect &oldRect) } } +#ifndef QT_MAC_USE_COCOA const QRect validRange(-XCOORD_MAX,-XCOORD_MAX, 2*XCOORD_MAX, 2*XCOORD_MAX); if (!validRange.contains(xrect)) { // we are too big, and must clip @@ -4242,6 +4243,7 @@ void QWidgetPrivate::setWSGeometry(bool dontShow, const QRect &oldRect) wrect = xrect; wrect.translate(-data.crect.topLeft()); // translate wrect in my Qt coordinates } +#endif //QT_MAC_USE_COCOA } // unmap if we are outside the valid window system coord system -- cgit v0.12 From 7acf710d661fbd57bf4054681a2a743c2ced8037 Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Tue, 4 Jan 2011 14:27:41 +0000 Subject: Fix link error on MacOS --- tests/auto/qfile/tst_qfile.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp index 18478e3..c7d6fab 100644 --- a/tests/auto/qfile/tst_qfile.cpp +++ b/tests/auto/qfile/tst_qfile.cpp @@ -3349,7 +3349,7 @@ void tst_QFile::autocloseHandle() Q_UNUSED(a); //file is closed, read should fail char buf; - QCOMPARE(QT_READ(fd, &buf, 1), -1); + QCOMPARE((int)QT_READ(fd, &buf, 1), -1); QVERIFY(errno = EBADF); } @@ -3361,7 +3361,7 @@ void tst_QFile::autocloseHandle() QCOMPARE(file.handle(), -1); //file is not closed, read should succeed char buf; - QCOMPARE(QT_READ(fd_, &buf, 1), 1); + QCOMPARE((int)QT_READ(fd_, &buf, 1), 1); ::close(fd_); fd_ = -1; } @@ -3378,7 +3378,7 @@ void tst_QFile::autocloseHandle() Q_UNUSED(a); //file is closed, read should fail char buf; - QCOMPARE(QT_READ(fd, &buf, 1), -1); //not using fread because the FILE* was freed by fclose + QCOMPARE((int)QT_READ(fd, &buf, 1), -1); //not using fread because the FILE* was freed by fclose } { -- cgit v0.12 From ca87617ed4ba05a2ee1428616d1758ac6a05a26f Mon Sep 17 00:00:00 2001 From: Eckhart Koppen Date: Tue, 4 Jan 2011 16:34:27 +0200 Subject: Fixed broken configuration step for Symbian builds Non-existing exports were removed, and errors caused by whitespace conversion in the FLM used for configuration were corrected. Reviewed-by: TrustMe --- config.profiles/symbian/bld.inf | 9 ++----- config.profiles/symbian/qtconfig.flm | 46 ++++++++++++++++++------------------ 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/config.profiles/symbian/bld.inf b/config.profiles/symbian/bld.inf index d3958dd..d2d959b 100644 --- a/config.profiles/symbian/bld.inf +++ b/config.profiles/symbian/bld.inf @@ -34,11 +34,13 @@ environment.prf /epoc32/tools/qt/mkspecs/features/environment.prf //for loc loc.prf /epoc32/tools/qt/mkspecs/features/loc.prf +#ifdef FF_QT_IN_UDA //For UDA image confml/qt.confml CONFML_EXPORT_PATH(qt.confml,uda_content) implml/qt_copy.implml CRML_EXPORT_PATH(qt_copy.implml,uda_content) content/apps/qt.sisx CRML_EXPORT_PATH(../content/sis/,uda_content) content/apps/qt_stub.sis /epoc32/data/z/system/install/qt_stub.sis +#endif //tools ../../bin/createpackage.bat /epoc32/tools/createpackage.bat @@ -73,13 +75,6 @@ translations/qt_zh_tw_symbian.ts /epoc32/include/platform/qt/translations/qt_zh_ ../../translations/qt_sv.ts /epoc32/include/platform/qt/translations/ ../../translations/qt_uk.ts /epoc32/include/platform/qt/translations/ - -PRJ_MMPFILES - - -PRJ_TESTMMPFILES - - PRJ_EXTENSIONS START EXTENSION qt/qtconfig OPTION QT_ROOT .. diff --git a/config.profiles/symbian/qtconfig.flm b/config.profiles/symbian/qtconfig.flm index 61ee6e6..03f860f 100644 --- a/config.profiles/symbian/qtconfig.flm +++ b/config.profiles/symbian/qtconfig.flm @@ -33,38 +33,38 @@ $(TARGET_TOOLS): $(QT_TOOLS) else $(TARGET_TOOLS): $(SOURCEDIR)/qmake$(DOTEXE) endif - $(call startrule,qtconf_deploy) \ - $(GNUCP) $(SOURCEDIR)/$$(notdir $$@) $$@ \ - $(call endrule,qtconf_deploy) + $(call startrule,qtconf_deploy) \ + $(GNUCP) $(SOURCEDIR)/$$(notdir $$@) $$@ \ + $(call endrule,qtconf_deploy) ifneq ($(filter linux,$(HOSTPLATFORM)),) $(QT_TOOLS): $(TOOLSSRCDIR)/bootstrap - $(call startrule,qtconf_tools_build) \ - cd $$@; \ - $(GNUMAKE38); \ - cd .. \ - $(call endrule,qtconf_tools_build) + $(call startrule,qtconf_tools_build) \ + cd $$@; \ + $(GNUMAKE38); \ + cd .. \ + $(call endrule,qtconf_tools_build) $(TOOLSSRCDIR)/bootstrap:$(SOURCEDIR)/qmake$(DOTEXE) - $(call startrule,qtconf_bootstrap_build) \ - cd $(TOOLSSRCDIR)/bootstrap; \ - $(GNUMAKE38); \ - cd .. \ - $(call endrule,qtconf_bootstrap_build) + $(call startrule,qtconf_bootstrap_build) \ + cd $(TOOLSSRCDIR)/bootstrap; \ + $(GNUMAKE38); \ + cd .. \ + $(call endrule,qtconf_bootstrap_build) endif $(SOURCEDIR)/qmake$(DOTEXE): $(EXTENSION_ROOT)/$(QT_ROOT)/$(CONFIGURE_APP) - $(call startrule,qtconf) \ - cd $(EXTENSION_ROOT)/$(QT_ROOT) && unset INCLUDE && unset LIB && $(EXTENSION_ROOT)/$(QT_ROOT)/$(CONFIGURE_APP) -platform $(PLATFORM) -xplatform $(XPLATFORM) $(OPTIONS) \ - $(call endrule,qtconf) - $(call startrule,headerexport) \ - cd $(EXTENSION_ROOT)/$(QT_ROOT)/config.profiles/symbian && \ - perl headerexport -base-dir $(EXTENSION_ROOT)/$(QT_ROOT) -copy -oneway -outdir $(EPOCROOT)/epoc32/include/ -outsubdir mw - $(call endrule,headerexport) - $(call startrule,mkspecexport) \ - $(GNUCP) -R $(EXTENSION_ROOT)/$(QT_ROOT)/mkspecs $(MKSPECDIR) - $(call endrule,mkspecexport) + $(call startrule,qtconf) \ + cd $(EXTENSION_ROOT)/$(QT_ROOT) && unset INCLUDE && unset LIB && $(EXTENSION_ROOT)/$(QT_ROOT)/$(CONFIGURE_APP) -platform $(PLATFORM) -xplatform $(XPLATFORM) $(OPTIONS) \ + $(call endrule,qtconf) + $(call startrule,headerexport) \ + cd $(EXTENSION_ROOT)/$(QT_ROOT)/config.profiles/symbian && \ + perl headerexport -base-dir $(EXTENSION_ROOT)/$(QT_ROOT) -copy -oneway -outdir $(EPOCROOT)/epoc32/include/ -outsubdir mw + $(call endrule,headerexport) + $(call startrule,mkspecexport) \ + $(GNUCP) -R $(EXTENSION_ROOT)/$(QT_ROOT)/mkspecs $(MKSPECDIR) + $(call endrule,mkspecexport) endef # Here a variable named "done_" gets created -- cgit v0.12 From 91e127444f1b217525263b26f44fb566b9067d75 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 4 Jan 2011 16:20:55 +0200 Subject: Generate freeze targets in Symbian Make it possible to freeze def files via makefile targets. Task-number: QTBUG-13769 Reviewed-by: Janne Koskinen --- qmake/generators/symbian/symmake_abld.cpp | 21 +++++++++++++++++++++ qmake/generators/symbian/symmake_sbsv2.cpp | 29 +++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp index eb39d36..94cb22e 100644 --- a/qmake/generators/symbian/symmake_abld.cpp +++ b/qmake/generators/symbian/symmake_abld.cpp @@ -406,6 +406,27 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool t << "\t$(ABLD)" << testClause << " reallyclean " << item << " urel" << endl; } t << endl; + + t << "freeze: $(ABLD)" << endl; + t << "\t$(ABLD)" << testClause << " freeze" << endl; + t << endl; + + // Abld toolchain doesn't differentiate between freezing release or debug + t << "freeze-debug: freeze" << endl << endl; + t << "freeze-release: freeze" << endl << endl; + + // For more specific builds, targets are in this form: freeze-build-platform, e.g. freeze-release-armv5, + // though note that debug and release targets of each platform are identical in symbian-abld. + foreach(QString item, debugPlatforms) { + t << "freeze-debug-" << item << ": $(ABLD)" << endl; + t << "\t$(ABLD)" << testClause << " freeze " << item << endl; + } + foreach(QString item, releasePlatforms) { + t << "freeze-release-" << item << ": $(ABLD)" << endl; + t << "\t$(ABLD)" << testClause << " freeze " << item << endl; + } + + t << endl; } void SymbianAbldMakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t, const QString &iconTargetFile) diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp index c219f1d..c6dec6d 100644 --- a/qmake/generators/symbian/symmake_sbsv2.cpp +++ b/qmake/generators/symbian/symmake_sbsv2.cpp @@ -391,6 +391,14 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo t << clause; } t << endl; + + t << "freeze-debug: " << BLD_INF_FILENAME << endl; + t << "\t$(SBS) freeze"; + foreach(QString clause, debugClauses) { + t << clause; + } + t << endl; + t << "release: " << locFileDep << BLD_INF_FILENAME << endl; t << "\t$(SBS)"; foreach(QString clause, releaseClauses) { @@ -402,6 +410,13 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo foreach(QString clause, releaseClauses) { t << clause; } + t << endl; + + t << "freeze-release: " << BLD_INF_FILENAME << endl; + t << "\t$(SBS) freeze"; + foreach(QString clause, releaseClauses) { + t << clause; + } t << endl << endl; QString defaultGcceArmVersion; @@ -427,6 +442,8 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo t << "\t$(SBS)" << clause << endl; t << "clean-debug-" << item << ": " << BLD_INF_FILENAME << endl; t << "\t$(SBS) reallyclean" << clause << endl; + t << "freeze-debug-" << item << ": " << BLD_INF_FILENAME << endl; + t << "\t$(SBS) freeze" << clause << endl; } foreach(QString item, releasePlatforms) { @@ -440,6 +457,8 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo t << "\t$(SBS)" << clause << endl; t << "clean-release-" << item << ": " << BLD_INF_FILENAME << endl; t << "\t$(SBS) reallyclean" << clause << endl; + t << "freeze-release-" << item << ": " << BLD_INF_FILENAME << endl; + t << "\t$(SBS) freeze" << clause << endl; } foreach(QString item, armPlatforms) { @@ -450,10 +469,14 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo t << "\t$(SBS)" << debugClause << endl; t << "clean-debug-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl; t << "\t$(SBS) reallyclean" << debugClause << endl; + t << "freeze-debug-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl; + t << "\t$(SBS) freeze" << debugClause << endl; t << "release-" << item << "-" << compilerVersion << ": " << locFileDep << BLD_INF_FILENAME << endl; t << "\t$(SBS)" << releaseClause << endl; t << "clean-release-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl; t << "\t$(SBS) reallyclean" << releaseClause << endl; + t << "freeze-release-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl; + t << "\t$(SBS) freeze" << releaseClause << endl; } } @@ -471,6 +494,12 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo t << clause; } t << endl << endl; + + // Typically one wants to freeze release binaries, so make plain freeze target equal to + // freeze-release. If freezing of debug binaries is needed for some reason, then + // freeze-debug target should be used. There is no point to try freezing both with one + // target as both produce the same def file. + t << "freeze: freeze-release" << endl << endl; } // Add all extra targets including extra compiler targets also to wrapper makefile, -- cgit v0.12 From c981098ea0353aead43c93ac81835451515b63d0 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 4 Jan 2011 17:16:03 +0200 Subject: Fix def file names for libinfixed testlib Reviewed-by: Janne Koskinen --- mkspecs/features/symbian/def_files.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/features/symbian/def_files.prf b/mkspecs/features/symbian/def_files.prf index f243878..4a59116 100644 --- a/mkspecs/features/symbian/def_files.prf +++ b/mkspecs/features/symbian/def_files.prf @@ -4,7 +4,7 @@ CONFIG -= def_files_disabled # We need a target name without the INFIX'ed part, since DEF files are not infixed. -equals(QMAKE_TARGET_PRODUCT, Qt4):clean_TARGET = $$replace(TARGET, "$${QT_LIBINFIX}$", "") +equals(QMAKE_TARGET_PRODUCT, Qt4)|equals(QMAKE_TARGET_PRODUCT, QTestLib):clean_TARGET = $$replace(TARGET, "$${QT_LIBINFIX}$", "") else:clean_TARGET = $$TARGET symbian-abld|symbian-sbsv2 { -- cgit v0.12 From 572598884de78c5026694843473122487269a244 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 5 Jan 2011 15:41:56 +1000 Subject: Fix outdated tests selftest_noimages and qdeclarativespringanimation were correct, updating test scripts to match. Task-number: QTBUG-14792 --- .../data-X11/follow.0.png | Bin 0 -> 950 bytes .../data-X11/follow.1.png | Bin 0 -> 983 bytes .../data-X11/follow.2.png | Bin 0 -> 1243 bytes .../data-X11/follow.3.png | Bin 0 -> 1235 bytes .../data-X11/follow.4.png | Bin 0 -> 1253 bytes .../data-X11/follow.5.png | Bin 0 -> 1249 bytes .../data-X11/follow.6.png | Bin 0 -> 1241 bytes .../data-X11/follow.7.png | Bin 0 -> 1251 bytes .../data-X11/follow.qml | 1763 ++++++++++++++++++++ .../selftest_noimages/data/selftest_noimages.qml | 146 +- 10 files changed, 1779 insertions(+), 130 deletions(-) create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.qml diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.0.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.0.png new file mode 100644 index 0000000..6525dbb Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.1.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.1.png new file mode 100644 index 0000000..5b8d209 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.2.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.2.png new file mode 100644 index 0000000..cf012ba Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.3.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.3.png new file mode 100644 index 0000000..57e77a4 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.4.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.4.png new file mode 100644 index 0000000..24d26bd Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.5.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.5.png new file mode 100644 index 0000000..a540734 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.6.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.6.png new file mode 100644 index 0000000..17da643 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.7.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.7.png new file mode 100644 index 0000000..e03cfe4 Binary files /dev/null and b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.7.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.qml new file mode 100644 index 0000000..98cd12c --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.qml @@ -0,0 +1,1763 @@ +import Qt.VisualTest 4.7 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + image: "follow.0.png" + } + Frame { + msec: 32 + hash: "2ddcb50f5d285eb80a8136f0cf4cf85a" + } + Frame { + msec: 48 + hash: "519d93a844e05f8215139d91c9aef58b" + } + Frame { + msec: 64 + hash: "9f075a5547e4dc67cbe2ace2766395bb" + } + Frame { + msec: 80 + hash: "8fc48f74a51d45b4ea1fb7bd1d48002f" + } + Frame { + msec: 96 + hash: "a28fc4be5a5bb9ff36f796d9b071f02c" + } + Frame { + msec: 112 + hash: "ebc14c2905f3596ec451dd96409e6001" + } + Frame { + msec: 128 + hash: "4f270bdcff44006a56055edb1cda522a" + } + Frame { + msec: 144 + hash: "571f347e764bf38985768c85c2a13ba1" + } + Frame { + msec: 160 + hash: "b1aa23268167b7e2a1190288926f52c0" + } + Frame { + msec: 176 + hash: "06d548aef9a678edbf3ab4d3ce62a647" + } + Frame { + msec: 192 + hash: "daf6af0ae78f39566913c656450a66e5" + } + Frame { + msec: 208 + hash: "f101cd0c026ee0ed6ccef7a4aed302a0" + } + Frame { + msec: 224 + hash: "b3caa673f072c53d31d71109c9b33357" + } + Frame { + msec: 240 + hash: "8596f1d305d6b8f97b9feda9e69bdefe" + } + Frame { + msec: 256 + hash: "23c23df2c130aafb2092fe47a958a4cd" + } + Frame { + msec: 272 + hash: "66a4f2d8213264437a5f4d6cf10cd442" + } + Frame { + msec: 288 + hash: "6392490111813bad0a9467cc0c1746ed" + } + Frame { + msec: 304 + hash: "c115a47e0ecab63b881e2ec492d24e68" + } + Frame { + msec: 320 + hash: "c2a2b57e6f9ea2975c0846124d2dbc66" + } + Frame { + msec: 336 + hash: "8286c315dfda4241607b2de1154f869d" + } + Frame { + msec: 352 + hash: "3f0f7cae80357176892ff7628ec3153a" + } + Frame { + msec: 368 + hash: "d13bde4a5b5ed8202f92ae33913166c9" + } + Frame { + msec: 384 + hash: "b70cc32134b1b0d31a5e7f145af09495" + } + Frame { + msec: 400 + hash: "03ebc2ff317ac840f4508e8701d66955" + } + Frame { + msec: 416 + hash: "8dff08e72365e8e2fee8088c386dedca" + } + Frame { + msec: 432 + hash: "720f3bbaf3fa3e3a064747d5689e47a0" + } + Frame { + msec: 448 + hash: "350e3ebfcfef96969ef5b8d5944f7e62" + } + Frame { + msec: 464 + hash: "1e4e6e68b3a8eac0c5cd039164eec166" + } + Frame { + msec: 480 + hash: "62a10c4250ad025139a3f9e72109e8e1" + } + Frame { + msec: 496 + hash: "23cfd643adfc98f6a06c7e7b15dac954" + } + Frame { + msec: 512 + hash: "3a78930d5b86b886723fad85e77dd075" + } + Frame { + msec: 528 + hash: "64dc878e2f527e80403c766e61fe14a6" + } + Frame { + msec: 544 + hash: "d79160989d2584044042271e79a88e69" + } + Frame { + msec: 560 + hash: "22cbaea4affc88433834c7d0dc1f1644" + } + Frame { + msec: 576 + hash: "77cb616902257e1f239a0e6bfaabb33c" + } + Frame { + msec: 592 + hash: "a2fe73dced03b23c4acb9aae9b774b41" + } + Frame { + msec: 608 + hash: "230e21d3a9ed0e185593677233af1275" + } + Frame { + msec: 624 + hash: "4e10ecffac4e06d624855d3f8917f76c" + } + Frame { + msec: 640 + hash: "84f49d56baace4a02e50d3eafaea04ec" + } + Frame { + msec: 656 + hash: "e3cd0b334551a9f91723eb2c876d335a" + } + Frame { + msec: 672 + hash: "259330f3ec390c9926d9c2ddc2d77319" + } + Frame { + msec: 688 + hash: "cc659623bfa385d282d608684d7cdc2b" + } + Frame { + msec: 704 + hash: "47ed75d077143a6bfa0e10158550c542" + } + Frame { + msec: 720 + hash: "0de93bbd9f9ee63e97968089321003e1" + } + Frame { + msec: 736 + hash: "b33d867d4399879256a01344ce0b81f2" + } + Frame { + msec: 752 + hash: "97c31fce937d11f62bebc6169b464a42" + } + Frame { + msec: 768 + hash: "ea4166b8a4001bca3f27af30f251267f" + } + Frame { + msec: 784 + hash: "b56d270b7893565f8d7ed2a0bfe10d60" + } + Frame { + msec: 800 + hash: "88a42559fe22b45cff379258dd40ced9" + } + Frame { + msec: 816 + hash: "4ee1a711cb8d26087e1b75a3166ca5f0" + } + Frame { + msec: 832 + hash: "9b88a00d041092e79b4a08bccbaca0e1" + } + Frame { + msec: 848 + hash: "afea397b3d740dc42f0313624fc10efd" + } + Frame { + msec: 864 + hash: "39fd8e4cefbd9fed283d62a7aecded22" + } + Frame { + msec: 880 + hash: "916b783d2379ac054c749e7b6eae7ddf" + } + Frame { + msec: 896 + hash: "fccd44740ff7ffb0f2adccf00a7588bd" + } + Frame { + msec: 912 + hash: "c064f20703a13543e8273d251fd645fe" + } + Frame { + msec: 928 + hash: "1b9b0755101841e3d1cbe208d81575d5" + } + Frame { + msec: 944 + hash: "1eb5e4a301b565012bc8f6af8e879eb9" + } + Frame { + msec: 960 + hash: "032db65eb5c405e433f88df3975c322b" + } + Frame { + msec: 976 + image: "follow.1.png" + } + Frame { + msec: 992 + hash: "fdb67e11d7cc767b2389a8bbef752c7e" + } + Frame { + msec: 1008 + hash: "ed89cb161336c61b13e3514fdf816023" + } + Frame { + msec: 1024 + hash: "331b873c5367e0aaa62af85cb54a6a96" + } + Frame { + msec: 1040 + hash: "cde4503f02f0c3732e310a7d0418cd1e" + } + Frame { + msec: 1056 + hash: "f8c028c591fc1495d5bec8763da6f011" + } + Frame { + msec: 1072 + hash: "9dc68483218335afe41aa3cd052a98b5" + } + Frame { + msec: 1088 + hash: "31105c455418a3284700cf9c88571507" + } + Frame { + msec: 1104 + hash: "72724947167a1ac600aaa1d7f331f7ec" + } + Frame { + msec: 1120 + hash: "a4a1243326de6b9e93948fcb22fecac4" + } + Frame { + msec: 1136 + hash: "c3e26e62f12dd658f21a0330fefb0533" + } + Frame { + msec: 1152 + hash: "15d85b4a9ad761a911bbaa3e0c4b2b61" + } + Frame { + msec: 1168 + hash: "bce1400b437cc43b8ff57b1a5fbc9551" + } + Frame { + msec: 1184 + hash: "5d05848afcd8f697c1b3762f00a759f6" + } + Frame { + msec: 1200 + hash: "6c83f68ea72cd54793149f4c9e759d44" + } + Frame { + msec: 1216 + hash: "5206b93666e51cee3e25a7a85e27b5b8" + } + Frame { + msec: 1232 + hash: "a3ef5c76efece4455e5ad12bcc8bd8f5" + } + Frame { + msec: 1248 + hash: "c36c6ee7b6c8074f5dc1af7446fad1ad" + } + Frame { + msec: 1264 + hash: "bb0887f1f10548bb53f0dc1ffeec25ee" + } + Frame { + msec: 1280 + hash: "ebffe547a7c3528e5deddc590510506d" + } + Frame { + msec: 1296 + hash: "18962faef1a1a1207a3c6783116154a2" + } + Frame { + msec: 1312 + hash: "8aaa876e4a6c4de04e557f35ddd4fb61" + } + Frame { + msec: 1328 + hash: "c66123bb4e01ce267629f5b50d147db1" + } + Frame { + msec: 1344 + hash: "334e5acf84d90e70ca3085b9d5e057a7" + } + Frame { + msec: 1360 + hash: "9bb49ddcc775307c3c1159908323e010" + } + Frame { + msec: 1376 + hash: "1b3cfb8b6b6c39a34ea86a66ea1cc6b1" + } + Frame { + msec: 1392 + hash: "d2a68c6eb2b05390ab1049137f96f227" + } + Frame { + msec: 1408 + hash: "91e254fd2376ba35a283b18b947ca1a8" + } + Frame { + msec: 1424 + hash: "fe94e2e8b4978390e9e8cbfe77dfc241" + } + Frame { + msec: 1440 + hash: "e3d32b73c5c50e7aa59f4e4725de170e" + } + Frame { + msec: 1456 + hash: "a73b90254d7da5557cc3941db0017a65" + } + Frame { + msec: 1472 + hash: "9aa49cce5d63f8dd6409995ac6d91d63" + } + Frame { + msec: 1488 + hash: "0ba674df46accec28a3c1b81e656adc7" + } + Frame { + msec: 1504 + hash: "025a45417b8c75d47b5dac6c5ef913e9" + } + Frame { + msec: 1520 + hash: "742527b97c7f580b0b7ff9d6aa105d31" + } + Frame { + msec: 1536 + hash: "965ec8315d45894e704fcc5a3efc8c55" + } + Frame { + msec: 1552 + hash: "6abdd59e6bd2c31124eab254418a5322" + } + Frame { + msec: 1568 + hash: "9f6d06b176c55fa292e7f0ef4b5cd1cb" + } + Frame { + msec: 1584 + hash: "05eba8c6e02c0d4af49e59b3346c9e68" + } + Frame { + msec: 1600 + hash: "3c4215f6253aba836516cd51368bc471" + } + Frame { + msec: 1616 + hash: "c6339a290007c0106cb18ecef5b7392b" + } + Frame { + msec: 1632 + hash: "39a4bcd2ce84035f9db70f196ca00971" + } + Frame { + msec: 1648 + hash: "b75a4be472583c3b893fc894ebe7d4d8" + } + Frame { + msec: 1664 + hash: "d1efebbe748c43b3c1241753612e100d" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 195; y: 95 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1680 + hash: "f6f3ad64fb71ffb68a5ea0375cc94bae" + } + Frame { + msec: 1696 + hash: "778ecbafb5d235edde1683cabe3c3cfe" + } + Frame { + msec: 1712 + hash: "5a41b9196fe4a97e6ba2400806299bd8" + } + Frame { + msec: 1728 + hash: "1c8ddbc5910e35be389a1cb34fab9dec" + } + Frame { + msec: 1744 + hash: "5e8b236c00087a067d366afde67184f3" + } + Frame { + msec: 1760 + hash: "b7308837c5d7950dc81abec1340b4582" + } + Frame { + msec: 1776 + hash: "bbe9f0b030efa716f34a05f0af929c66" + } + Frame { + msec: 1792 + hash: "cd393fc19a30d896bfe62aa0000308f8" + } + Frame { + msec: 1808 + hash: "c390f5b1bcff54de203490d8f2616fcd" + } + Frame { + msec: 1824 + hash: "b5da2ea467c334dd13c75b811b94efb1" + } + Frame { + msec: 1840 + hash: "49887c9312c3a4dfc2d9719f47c83a15" + } + Frame { + msec: 1856 + hash: "7f077703e49f154d01c12a44f53469c5" + } + Frame { + msec: 1872 + hash: "7be4130ed767f0e0bf41c3bebf050cac" + } + Frame { + msec: 1888 + hash: "cc1590486c172000557b76c6eadb51e0" + } + Frame { + msec: 1904 + hash: "7ccd05236d9c1f8af0e9645404326122" + } + Frame { + msec: 1920 + hash: "2da165bf7e868b53b85bb630649ddc3e" + } + Frame { + msec: 1936 + image: "follow.2.png" + } + Frame { + msec: 1952 + hash: "2b6a24b6ceeaa956527c872af70fb5f9" + } + Frame { + msec: 1968 + hash: "8c882de21f4ed0fb68433c19b114c3f8" + } + Frame { + msec: 1984 + hash: "f75226c58726a687079d0d24e865ee6f" + } + Frame { + msec: 2000 + hash: "2fa9b69fe85b4e1361ba260545c10e06" + } + Frame { + msec: 2016 + hash: "6d513bc03f2798fbce1a0790969da6b5" + } + Frame { + msec: 2032 + hash: "7e359e605483493e9a865f6eb912c394" + } + Frame { + msec: 2048 + hash: "497c7c82c24408dcaff5ec981d3d4f35" + } + Frame { + msec: 2064 + hash: "8738b024cf75ef970ffe20166e85141c" + } + Frame { + msec: 2080 + hash: "014b805eb1ecf2ea1cd61727bfd1ca08" + } + Frame { + msec: 2096 + hash: "a81cde60979300f397054ea017382114" + } + Frame { + msec: 2112 + hash: "c46183b5224e762335eea98d9da65465" + } + Frame { + msec: 2128 + hash: "11afbb88994f298a1fed6575fae3d7fd" + } + Frame { + msec: 2144 + hash: "0195fa503143561d9ae3ffe68739ca3f" + } + Frame { + msec: 2160 + hash: "6d298df37d2116eb9a62b58853cb3344" + } + Frame { + msec: 2176 + hash: "1660865f00ea9adf94c8e56c7a8a73b2" + } + Frame { + msec: 2192 + hash: "9835b5527b84e8e8a8fea2bdf9653a99" + } + Frame { + msec: 2208 + hash: "ec1158b83daa9e98437abc9ce90b70f0" + } + Frame { + msec: 2224 + hash: "11ce5e37747e05ff5f5071b13324ce9e" + } + Frame { + msec: 2240 + hash: "6d7d427d5a15a31fd395f26c94ea455e" + } + Frame { + msec: 2256 + hash: "828949e0fbdb7c79719fb533febb5b35" + } + Frame { + msec: 2272 + hash: "7ef7f73ef6a59c9210cfa37df3894cb1" + } + Frame { + msec: 2288 + hash: "e74bec397b32ba2934ffdde23a3d60c6" + } + Frame { + msec: 2304 + hash: "09c2ca9c22e9b77bc166b4567b29bca7" + } + Frame { + msec: 2320 + hash: "44d87983f33c4e03f4be70b406bb9bd9" + } + Frame { + msec: 2336 + hash: "92844b36c2f30e618f04bfbc5cfbcad6" + } + Frame { + msec: 2352 + hash: "0245f39a8966c4addb3f8dbcee93cd3f" + } + Frame { + msec: 2368 + hash: "eb1e81cfa29295d4b1522c69d4501f51" + } + Frame { + msec: 2384 + hash: "2af9c3bea11b25c0f6c2b780d533a968" + } + Frame { + msec: 2400 + hash: "5062e9ab29c4a7a9657a4d29249ca822" + } + Frame { + msec: 2416 + hash: "d7652ddc85d3be3bb3a2fc268ae9bc29" + } + Frame { + msec: 2432 + hash: "7c924bf2ad6167db439723679b373a3a" + } + Frame { + msec: 2448 + hash: "a93b61dd26a2ca72100b747ac3ed81b6" + } + Frame { + msec: 2464 + hash: "5fedc849d3d21e0acf0ab4a4815a1285" + } + Frame { + msec: 2480 + hash: "4313d2458f4bede8d3b02ac60135e728" + } + Frame { + msec: 2496 + hash: "0f09e81d89262b569c56a9c876f3898d" + } + Frame { + msec: 2512 + hash: "ea932789ded14fc5c8bae565b67d004c" + } + Frame { + msec: 2528 + hash: "fd1f7b9b51f1284fee4d777ef83bba3f" + } + Frame { + msec: 2544 + hash: "e98b884a1ec8ce4b4dc20749b85b571e" + } + Frame { + msec: 2560 + hash: "d144072bb87bb88750b9df9cd92f7a4b" + } + Frame { + msec: 2576 + hash: "9d8ad80d3367292d7e89d67cf49862b8" + } + Frame { + msec: 2592 + hash: "c09b89e71e862da15d2b9edb0e00aa7b" + } + Frame { + msec: 2608 + hash: "551277add3f8f09951d9c8f55ccd40f7" + } + Frame { + msec: 2624 + hash: "1d0be0e7108516869374a9b985fd7543" + } + Frame { + msec: 2640 + hash: "12e7cfb6c4a26af54c4b35182294a7b7" + } + Frame { + msec: 2656 + hash: "a666a5a59d5854973668798eb8d508ba" + } + Frame { + msec: 2672 + hash: "420d2e21461dc45f134b7dfa11d04d25" + } + Frame { + msec: 2688 + hash: "95f848874899fb58a81c62b5921cf857" + } + Frame { + msec: 2704 + hash: "fa3ea7a0f90ca549cc9a857f0647b061" + } + Frame { + msec: 2720 + hash: "cbc5338de6157cd5dad511b246f5093b" + } + Frame { + msec: 2736 + hash: "e26b43c83197abab3746830bbfacc0f4" + } + Frame { + msec: 2752 + hash: "5225e854ff2763e562dee2810331d560" + } + Frame { + msec: 2768 + hash: "a1d114ea67233ac4c6351e18e3afa64e" + } + Frame { + msec: 2784 + hash: "bc9f12af2d0816bb84fd5040ed29bdad" + } + Frame { + msec: 2800 + hash: "d9337da38caa4ad3385249602a830df3" + } + Frame { + msec: 2816 + hash: "6ce20e0c89181b0f11e609b248da71d7" + } + Frame { + msec: 2832 + hash: "bbc8337950a78c7bfa48aab2635120a8" + } + Frame { + msec: 2848 + hash: "0e28ade7f52f3c27e1dbdd6e98be8c7d" + } + Frame { + msec: 2864 + hash: "0e28ade7f52f3c27e1dbdd6e98be8c7d" + } + Frame { + msec: 2880 + hash: "b496af17513d60d4028bd7402fbfba93" + } + Frame { + msec: 2896 + image: "follow.3.png" + } + Frame { + msec: 2912 + hash: "29aa7ce0fb1aa350753d3ec6da05bdf9" + } + Frame { + msec: 2928 + hash: "fde474797d8105d9d004a7020e010fa4" + } + Frame { + msec: 2944 + hash: "5a553d9a4bd2ef5d86f5eb37a863d28f" + } + Frame { + msec: 2960 + hash: "2dcbf6c84abd49529f0b5d85bfb74808" + } + Frame { + msec: 2976 + hash: "e96ec3b7d37bbf4c9ca297ad5afde31c" + } + Frame { + msec: 2992 + hash: "9d824068affe32c143226b0b530206fc" + } + Frame { + msec: 3008 + hash: "3e85f0ace68cffed47f4c9b00145f0f0" + } + Frame { + msec: 3024 + hash: "540b8e1e2bee7d2ba5e29fd3b1086cd1" + } + Frame { + msec: 3040 + hash: "0786585d11934c5e4a7e965eaac9a152" + } + Frame { + msec: 3056 + hash: "8271705df2ca697f4343007a7810d4ac" + } + Frame { + msec: 3072 + hash: "b98e1cd20ab2e4239f35d04df5e5175a" + } + Frame { + msec: 3088 + hash: "ab1a7eaa5c5d919ee76cba405d0dd4cd" + } + Frame { + msec: 3104 + hash: "52682386448379a395dc6c541224b7d4" + } + Frame { + msec: 3120 + hash: "31dffcb9da94dfc085ab8c561404c248" + } + Frame { + msec: 3136 + hash: "f3703eed8ebf9ece776ebe51e4c60ae6" + } + Frame { + msec: 3152 + hash: "1126b90345bb42691cd17f37ecec6bdb" + } + Frame { + msec: 3168 + hash: "7a63ab96d1c8d4992c03a6f59bba4e7e" + } + Frame { + msec: 3184 + hash: "91f4a00c9a7ea6164b334aa4b90da862" + } + Frame { + msec: 3200 + hash: "485471140f6a5336837377612e7a85bf" + } + Frame { + msec: 3216 + hash: "96881b4021aff05020e0a9342fbae75d" + } + Frame { + msec: 3232 + hash: "9891326646c3da4ff250aab69c862f96" + } + Frame { + msec: 3248 + hash: "f00f36bbb5a828824c596ee6f85bec2f" + } + Frame { + msec: 3264 + hash: "f00f36bbb5a828824c596ee6f85bec2f" + } + Frame { + msec: 3280 + hash: "f00f36bbb5a828824c596ee6f85bec2f" + } + Frame { + msec: 3296 + hash: "f00f36bbb5a828824c596ee6f85bec2f" + } + Frame { + msec: 3312 + hash: "9891326646c3da4ff250aab69c862f96" + } + Frame { + msec: 3328 + hash: "c766238db55f4704c2f29a6be6ee6907" + } + Frame { + msec: 3344 + hash: "0254665427dcbd1c155bc954cc7aa7cd" + } + Frame { + msec: 3360 + hash: "33ae1012816b997ef5c61c03ccfcc590" + } + Frame { + msec: 3376 + hash: "4c7857bbbcb9aa812fc2503af2b395cf" + } + Frame { + msec: 3392 + hash: "3a570e4af992d35e55923cea23c3c11b" + } + Frame { + msec: 3408 + hash: "533ef554538005512ce37c73c6def722" + } + Frame { + msec: 3424 + hash: "f863fa215d0642708bfa82780c766dc4" + } + Frame { + msec: 3440 + hash: "fcca3ec34521c4b9087a102ba1e47293" + } + Frame { + msec: 3456 + hash: "47d67cd74cb96b12801842b288a8b9ff" + } + Frame { + msec: 3472 + hash: "34c5ea76f297ec68cba70521caa468e4" + } + Frame { + msec: 3488 + hash: "7be247cc7a4032ff0478fca1a2aace8a" + } + Frame { + msec: 3504 + hash: "3ade2a1a48edef15f522b9fc016e137e" + } + Frame { + msec: 3520 + hash: "8b37b9d123504931d82bb06f6981bade" + } + Frame { + msec: 3536 + hash: "5eb39825003f405f353f629e236b3395" + } + Frame { + msec: 3552 + hash: "c4550722260c4a30ab1176c7e5cb62bf" + } + Frame { + msec: 3568 + hash: "bd33e3ecd4b59cd659588c0298b61095" + } + Frame { + msec: 3584 + hash: "4b3a62bff0019df7412aa2e1c07c0a23" + } + Frame { + msec: 3600 + hash: "a9b98adcc3350febbb89dbf725b81436" + } + Frame { + msec: 3616 + hash: "66eb8c84e75141d1575caf7d3cbc1ceb" + } + Frame { + msec: 3632 + hash: "238f2b1dc5bf5b65e827c860f9ee76b5" + } + Frame { + msec: 3648 + hash: "6d1fed0697370b2a2163c369fe559739" + } + Frame { + msec: 3664 + hash: "04ea478c785586d900bbe3472371bbc7" + } + Frame { + msec: 3680 + hash: "ba429e711c9363eebfb20e641fa44c84" + } + Frame { + msec: 3696 + hash: "0129dfba166ffcbaa15087467c864068" + } + Frame { + msec: 3712 + hash: "3fb340c874eee94e8baa1453b37c3fb5" + } + Frame { + msec: 3728 + hash: "068c51d99c458f3edefe3371f46de260" + } + Frame { + msec: 3744 + hash: "dd1e04ed3d610c2712158d73ee2c5b9d" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 195; y: 95 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 3760 + hash: "840154afb9e7e0c859c66667bb6944b6" + } + Frame { + msec: 3776 + hash: "239c2e33800e386b468a95341d0e23f4" + } + Frame { + msec: 3792 + hash: "0a00515f2d297362862c1a5cf6519845" + } + Frame { + msec: 3808 + hash: "f855df3495e44291aed8f085163c804b" + } + Frame { + msec: 3824 + hash: "b4eb31e48c65550bb78d175b48e0e9fb" + } + Frame { + msec: 3840 + hash: "70243664f9db83614e5972fc18ee81a1" + } + Frame { + msec: 3856 + image: "follow.4.png" + } + Frame { + msec: 3872 + hash: "c48ce2a4cf28ab706b9c097bddc74c27" + } + Frame { + msec: 3888 + hash: "754a957e0df02839dd2fe33fefb7a721" + } + Frame { + msec: 3904 + hash: "ec3ebe7b941af9bf2163634d7f15e8aa" + } + Frame { + msec: 3920 + hash: "a76423ff2184cd9dac47abf7ae52ce5a" + } + Frame { + msec: 3936 + hash: "559bec54f51c36c6e90004ca5e77c23c" + } + Frame { + msec: 3952 + hash: "dc6fdd6a867a675afcb58f7052605614" + } + Frame { + msec: 3968 + hash: "b2fb0dbbec01490243f37fe5f80ab6c7" + } + Frame { + msec: 3984 + hash: "2bc1df7a913b1948ee7bb77eeaa55aa2" + } + Frame { + msec: 4000 + hash: "82c6430d85c6a94c4b55a9529d2bc78f" + } + Frame { + msec: 4016 + hash: "463e70dc9a9bdabdc158199bdcd7d2fa" + } + Frame { + msec: 4032 + hash: "c1e9553327f060b70caa713bf3015342" + } + Frame { + msec: 4048 + hash: "42f7f505d4e5ef316240e4f287a039bf" + } + Frame { + msec: 4064 + hash: "200500f600ffe43c5ad4d057bcfc0831" + } + Frame { + msec: 4080 + hash: "22e78edb813f7830776b2603b0aaae5c" + } + Frame { + msec: 4096 + hash: "32ebf3490832fd0693b1b922b4501251" + } + Frame { + msec: 4112 + hash: "1be622caa5ef94f87e2ec8297b6e1caa" + } + Frame { + msec: 4128 + hash: "d1480529e0cb94c51c412109663e5fab" + } + Frame { + msec: 4144 + hash: "e55e627d6d13b647f35233f18f0cbe89" + } + Frame { + msec: 4160 + hash: "87d7b349cd2898de7686e5f1a14f6338" + } + Frame { + msec: 4176 + hash: "2ac974836ee5e6092b55fcda20d7c35d" + } + Frame { + msec: 4192 + hash: "53867256c1dac4de2f02af1ae000b49f" + } + Frame { + msec: 4208 + hash: "08623509e9e5089fdaa1af2bf9a77eb1" + } + Frame { + msec: 4224 + hash: "e4692f42c12593ee865048aef00cbeb2" + } + Frame { + msec: 4240 + hash: "981ad6459e3e7483bb323ab4bc514630" + } + Frame { + msec: 4256 + hash: "79e8adfcdc9d6dae0d2b6a69e8e322fa" + } + Frame { + msec: 4272 + hash: "58f967a607972faa9daa13402eeb9912" + } + Frame { + msec: 4288 + hash: "1fd5b002b049132565b6a963fb7b3bb6" + } + Frame { + msec: 4304 + hash: "a16c96598f47404ec5f4ef55e87a1e70" + } + Frame { + msec: 4320 + hash: "3c632899804812c93c7edd3e3f3d2bac" + } + Frame { + msec: 4336 + hash: "af0eb810e0273f9bacb082d9f90612df" + } + Frame { + msec: 4352 + hash: "728d7ac4a5410482c7d86d03c2d8a996" + } + Frame { + msec: 4368 + hash: "416e76064f2be71a03eddddf61a33cb0" + } + Frame { + msec: 4384 + hash: "c41f20b4ac9a7b34eefd066f77ea351a" + } + Frame { + msec: 4400 + hash: "821d51db415a210b09ebdf8d861aadf2" + } + Frame { + msec: 4416 + hash: "9394266815a52f1779858bb088d557dc" + } + Frame { + msec: 4432 + hash: "cc475d1589665414e5aef051ec237ef4" + } + Frame { + msec: 4448 + hash: "a95f3b8128faa7820f36391fa9bd579f" + } + Frame { + msec: 4464 + hash: "d52687293a11891c364de52525039203" + } + Frame { + msec: 4480 + hash: "5333dc4f65b2f1e066edcd23f7621bd7" + } + Frame { + msec: 4496 + hash: "797bb5e27b2fe2b733a54402433901b4" + } + Frame { + msec: 4512 + hash: "84c610cdff7f8b04a34977216e37847d" + } + Frame { + msec: 4528 + hash: "0317f0406a566b2851c8bda62900e40c" + } + Frame { + msec: 4544 + hash: "6538ecd7abd35234c5cc5c2a17249fc1" + } + Frame { + msec: 4560 + hash: "f9019150a132eb5f5cfafcd5337aff7a" + } + Frame { + msec: 4576 + hash: "0f0136fffbc65c02cee249ece4c8c0ef" + } + Frame { + msec: 4592 + hash: "0027e0d236b8b33a451a0cc35e81b4ce" + } + Frame { + msec: 4608 + hash: "ac2f86b2d4f29f223fb78440d67ccd31" + } + Frame { + msec: 4624 + hash: "a6eb112a10c849e337f816ee408f22a6" + } + Frame { + msec: 4640 + hash: "dafbb01f2615a2513310478ebe484a05" + } + Frame { + msec: 4656 + hash: "17c400c4c29652dc278980ab578b75b3" + } + Frame { + msec: 4672 + hash: "48696c02a2a4839b893a4c0b431b78a3" + } + Frame { + msec: 4688 + hash: "04e05c7e722e53299d24cd0f1b7d17ee" + } + Frame { + msec: 4704 + hash: "55d158f13ffc7ccde5ee368656d2830b" + } + Frame { + msec: 4720 + hash: "fa478e1575acedae023322a520171a5b" + } + Frame { + msec: 4736 + hash: "e2147ddd6e19fde80bb76da24011400c" + } + Frame { + msec: 4752 + hash: "44ee0144db4c55aa90d2a931d83a895e" + } + Frame { + msec: 4768 + hash: "552e87bbce4ad48006c899052a2c8cad" + } + Frame { + msec: 4784 + hash: "3b6efe225303566f751c3f884ac8c069" + } + Frame { + msec: 4800 + hash: "3a7175916d1dc103506061607b910550" + } + Frame { + msec: 4816 + image: "follow.5.png" + } + Frame { + msec: 4832 + hash: "b2e5d5c14b02a13bca62673f87e85627" + } + Frame { + msec: 4848 + hash: "bd89a911d6fb13e4e841f8ee5b8b42af" + } + Frame { + msec: 4864 + hash: "89795784185e83d0299e656f2eec73c8" + } + Frame { + msec: 4880 + hash: "5b6d6fe78f341bdf0eb4bedfe3d975d0" + } + Frame { + msec: 4896 + hash: "e246bc451ee48e16ef6dee20d6256e9c" + } + Frame { + msec: 4912 + hash: "8c1bc37b1b268743aa314247ea949ef5" + } + Frame { + msec: 4928 + hash: "04f34203c34dc87efc708bfb232663df" + } + Frame { + msec: 4944 + hash: "d37a48545e81970d16951e3388f0ff8c" + } + Frame { + msec: 4960 + hash: "9411e846c9f59cc915288efb59d4c9de" + } + Frame { + msec: 4976 + hash: "6ee179741ac74837708afb55943f15bd" + } + Frame { + msec: 4992 + hash: "f626fc3166bd5b01171271ae9bfa9b22" + } + Frame { + msec: 5008 + hash: "e22898b2c0c566bbf531223234f98327" + } + Frame { + msec: 5024 + hash: "1343d90c5eae70713cd49110fe61237b" + } + Frame { + msec: 5040 + hash: "493d9322da6d01979a3f1a120c265f8c" + } + Frame { + msec: 5056 + hash: "defccc76caf3a7c7c67e8abf5ccc2def" + } + Frame { + msec: 5072 + hash: "fe3cad9227fcfa7ba2238465078f2ac7" + } + Frame { + msec: 5088 + hash: "66ebfeee3a63323c7d8b949db9aafd7e" + } + Frame { + msec: 5104 + hash: "805820b382d005894f9a615004b97b0d" + } + Frame { + msec: 5120 + hash: "eee1620f47bb071de8a9c788d1fd258e" + } + Frame { + msec: 5136 + hash: "f5a7d9a81fcfc8cfb9e7cc8ead0f1ff8" + } + Frame { + msec: 5152 + hash: "249903ee123090b27019350f120c8b79" + } + Frame { + msec: 5168 + hash: "019793a363c905809af32bf34ef52ec0" + } + Frame { + msec: 5184 + hash: "4f5ad5a3ebb6eca73dd7567199d07b08" + } + Frame { + msec: 5200 + hash: "fdc1b42d50c7a5c45458498788ff0abd" + } + Frame { + msec: 5216 + hash: "cc091469598cad28d0a00690f1acb412" + } + Frame { + msec: 5232 + hash: "5c8757e1f8f34a31d8b3717b64b84c07" + } + Frame { + msec: 5248 + hash: "5da75559f60eac1b9f518ed55a174e5b" + } + Frame { + msec: 5264 + hash: "1214c08daec4dcfb27690fdc18f2ac28" + } + Frame { + msec: 5280 + hash: "87d92c1ba694d0cf187d8616b0f622f0" + } + Frame { + msec: 5296 + hash: "d4af63638fe69b6c4f087a935351057e" + } + Frame { + msec: 5312 + hash: "0573c41f34c2c117cada987e4ee813a5" + } + Frame { + msec: 5328 + hash: "f179ef4b7bf0f915e25ffd8168a9126f" + } + Frame { + msec: 5344 + hash: "1618bf7c94e7898392eb5ffbf44b8aff" + } + Frame { + msec: 5360 + hash: "5af24b902e3729d544f70c77e189b8a7" + } + Frame { + msec: 5376 + hash: "4e5789404e58113cc2d8aa737a03ab58" + } + Frame { + msec: 5392 + hash: "e4bf91a249e47597e959bbaf25f0724d" + } + Frame { + msec: 5408 + hash: "39a3e3d6269522ed57a0e37319ab94d5" + } + Frame { + msec: 5424 + hash: "f2e2e47922e7e058e14537a0455cd77f" + } + Frame { + msec: 5440 + hash: "64abb3f2c9e05fd1dd7490d11c74f06a" + } + Frame { + msec: 5456 + hash: "a9bf45c29536ca34c42aa916747b485b" + } + Frame { + msec: 5472 + hash: "da21839b6635e5c4e0a589d163e62752" + } + Frame { + msec: 5488 + hash: "f31e49258bcbb2a144daa320e4567df1" + } + Frame { + msec: 5504 + hash: "f96c5b39f94bf2ac1e3f4de96767d720" + } + Frame { + msec: 5520 + hash: "281b90d1056803093cc37f30465f0e73" + } + Frame { + msec: 5536 + hash: "d63a2424e1947328957ad8f5f0bec043" + } + Frame { + msec: 5552 + hash: "bd510a0de7df02b1b5741824b6f90944" + } + Frame { + msec: 5568 + hash: "47dc4e5ff91cb84c89dd0fc0459f75f2" + } + Frame { + msec: 5584 + hash: "4bc46b5e116dd30e1db4d4bb650ed6ed" + } + Frame { + msec: 5600 + hash: "c6964b89f1962f120028057d1c588694" + } + Frame { + msec: 5616 + hash: "39a77544a1c88b68cb63da9a8910a35e" + } + Frame { + msec: 5632 + hash: "bd8ac21d7a507a8e195437ccac254ecc" + } + Frame { + msec: 5648 + hash: "7b39b2667a8f8efae20ec8696e35dbc4" + } + Frame { + msec: 5664 + hash: "7b39b2667a8f8efae20ec8696e35dbc4" + } + Frame { + msec: 5680 + hash: "8628f4f24670d17965fec40a02e0196f" + } + Frame { + msec: 5696 + hash: "515903d9896a853cb18cc7b7c45c1cce" + } + Frame { + msec: 5712 + hash: "b7a3f70bedcb3f90a2e294b447e05f70" + } + Frame { + msec: 5728 + hash: "8e8b104ef82b1e219021aa38276f8b45" + } + Frame { + msec: 5744 + hash: "70abe79da860bebd2d17a8c7abb20b4e" + } + Frame { + msec: 5760 + hash: "d99af176fb6cf9d9cbcf7cf4286a165c" + } + Frame { + msec: 5776 + image: "follow.6.png" + } + Frame { + msec: 5792 + hash: "67809c7daad6716d0a664c52de9906ce" + } + Frame { + msec: 5808 + hash: "29a27fd59b7316ce305803482686ea58" + } + Frame { + msec: 5824 + hash: "25b9ca40d1d6208d026e5c965923f8fb" + } + Frame { + msec: 5840 + hash: "126b1542415aea11dbb35492be4f66aa" + } + Frame { + msec: 5856 + hash: "26ca7034536e0e690236797df740f19a" + } + Frame { + msec: 5872 + hash: "fec9db60af63a4712b0da037cf1d89cd" + } + Frame { + msec: 5888 + hash: "d9b7e2729c75ca0c0f33b542525c4880" + } + Frame { + msec: 5904 + hash: "89149d16b893ea432b6d0fb05ead48cb" + } + Frame { + msec: 5920 + hash: "8e389d2ca706277ce06e1da557e2e6c1" + } + Frame { + msec: 5936 + hash: "fc5c74473410da1ddd451c5901572172" + } + Frame { + msec: 5952 + hash: "54514970eadff9362d31499a737e4c95" + } + Frame { + msec: 5968 + hash: "d5953bc29532ec49c20ee552c8756ba1" + } + Frame { + msec: 5984 + hash: "5f03be3ed5824e6a6f8f371ce6a47997" + } + Frame { + msec: 6000 + hash: "0431e2ec4765167d0099c59df400f3fd" + } + Frame { + msec: 6016 + hash: "0431e2ec4765167d0099c59df400f3fd" + } + Frame { + msec: 6032 + hash: "403e1f235770f2b7c8b1b2e86aea69a5" + } + Frame { + msec: 6048 + hash: "403e1f235770f2b7c8b1b2e86aea69a5" + } + Frame { + msec: 6064 + hash: "32ff9f959598972f5a264418587dca1f" + } + Frame { + msec: 6080 + hash: "b4c7c07e52a684f7ce21e47a4d66356a" + } + Frame { + msec: 6096 + hash: "e0f214bed2c3a31f473952929b8f3ea9" + } + Frame { + msec: 6112 + hash: "15328b8a205965f3f29fc63a6a8ac8ed" + } + Frame { + msec: 6128 + hash: "72c46ed63633e6879373f4783df25d8b" + } + Frame { + msec: 6144 + hash: "3f2570289df823446f85bbd8d620db4d" + } + Frame { + msec: 6160 + hash: "df9451c6634d72e6f794e962b3591086" + } + Frame { + msec: 6176 + hash: "773e10bbd133e64457e7ddbc73a10fc2" + } + Frame { + msec: 6192 + hash: "c79abb97eb86761b69053d77156dffd4" + } + Frame { + msec: 6208 + hash: "d927934b19ffd55ea7cea1916983351a" + } + Frame { + msec: 6224 + hash: "ae5058d935c1e44d103be66921b19e77" + } + Frame { + msec: 6240 + hash: "b6a1446b6be054d5785ba52ac23f8aa8" + } + Frame { + msec: 6256 + hash: "3dffbffded44249fdbe58aecd24ab97f" + } + Frame { + msec: 6272 + hash: "56445ab8554a23a786b70e4fd9f40451" + } + Frame { + msec: 6288 + hash: "56445ab8554a23a786b70e4fd9f40451" + } + Frame { + msec: 6304 + hash: "257ce16f529b99f28beb2e57625f52ee" + } + Frame { + msec: 6320 + hash: "257ce16f529b99f28beb2e57625f52ee" + } + Frame { + msec: 6336 + hash: "257ce16f529b99f28beb2e57625f52ee" + } + Frame { + msec: 6352 + hash: "257ce16f529b99f28beb2e57625f52ee" + } + Frame { + msec: 6368 + hash: "257ce16f529b99f28beb2e57625f52ee" + } + Frame { + msec: 6384 + hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e" + } + Frame { + msec: 6400 + hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e" + } + Frame { + msec: 6416 + hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e" + } + Frame { + msec: 6432 + hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e" + } + Frame { + msec: 6448 + hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e" + } + Frame { + msec: 6464 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6480 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6496 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6512 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6528 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6544 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6560 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6576 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6592 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6608 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6624 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6640 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6656 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6672 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6688 + hash: "fa87436d5e51122022a005d815f97c32" + } + Frame { + msec: 6704 + hash: "da52e87ccd157c0330c07e480b8b0c06" + } + Frame { + msec: 6720 + hash: "da52e87ccd157c0330c07e480b8b0c06" + } + Frame { + msec: 6736 + image: "follow.7.png" + } + Frame { + msec: 6752 + hash: "da52e87ccd157c0330c07e480b8b0c06" + } + Frame { + msec: 6768 + hash: "da52e87ccd157c0330c07e480b8b0c06" + } + Frame { + msec: 6784 + hash: "da52e87ccd157c0330c07e480b8b0c06" + } + Frame { + msec: 6800 + hash: "da52e87ccd157c0330c07e480b8b0c06" + } + Frame { + msec: 6816 + hash: "da52e87ccd157c0330c07e480b8b0c06" + } + Frame { + msec: 6832 + hash: "257ce16f529b99f28beb2e57625f52ee" + } + Key { + type: 6 + key: 16777249 + modifiers: 67108864 + text: "" + autorep: false + count: 1 + } + Frame { + msec: 6848 + hash: "56445ab8554a23a786b70e4fd9f40451" + } + Frame { + msec: 6864 + hash: "56445ab8554a23a786b70e4fd9f40451" + } + Frame { + msec: 6880 + hash: "56445ab8554a23a786b70e4fd9f40451" + } + Frame { + msec: 6896 + hash: "56445ab8554a23a786b70e4fd9f40451" + } + Frame { + msec: 6912 + hash: "56445ab8554a23a786b70e4fd9f40451" + } + Frame { + msec: 6928 + hash: "56445ab8554a23a786b70e4fd9f40451" + } +} diff --git a/tests/auto/declarative/qmlvisual/selftest_noimages/data/selftest_noimages.qml b/tests/auto/declarative/qmlvisual/selftest_noimages/data/selftest_noimages.qml index 70ee988..ccadea0 100644 --- a/tests/auto/declarative/qmlvisual/selftest_noimages/data/selftest_noimages.qml +++ b/tests/auto/declarative/qmlvisual/selftest_noimages/data/selftest_noimages.qml @@ -196,6 +196,14 @@ VisualTest { Frame { msec: 1024 } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 53; y: 47 + modifiers: 0 + sendToViewport: true + } Frame { msec: 1040 } @@ -214,6 +222,14 @@ VisualTest { Frame { msec: 1120 } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 53; y: 47 + modifiers: 0 + sendToViewport: true + } Frame { msec: 1136 } @@ -259,14 +275,6 @@ VisualTest { Frame { msec: 1360 } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 77; y: 7 - modifiers: 0 - sendToViewport: true - } Frame { msec: 1376 } @@ -282,14 +290,6 @@ VisualTest { Frame { msec: 1440 } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 77; y: 7 - modifiers: 0 - sendToViewport: true - } Frame { msec: 1456 } @@ -353,118 +353,4 @@ VisualTest { Frame { msec: 1776 } - Frame { - msec: 1792 - } - Frame { - msec: 1808 - } - Frame { - msec: 1824 - } - Frame { - msec: 1840 - } - Frame { - msec: 1856 - } - Frame { - msec: 1872 - } - Frame { - msec: 1888 - } - Frame { - msec: 1904 - } - Frame { - msec: 1920 - } - Frame { - msec: 1936 - } - Frame { - msec: 1952 - } - Frame { - msec: 1968 - } - Frame { - msec: 1984 - } - Frame { - msec: 2000 - } - Frame { - msec: 2016 - } - Frame { - msec: 2032 - } - Frame { - msec: 2048 - } - Frame { - msec: 2064 - } - Frame { - msec: 2080 - } - Frame { - msec: 2096 - } - Frame { - msec: 2112 - } - Frame { - msec: 2128 - } - Frame { - msec: 2144 - } - Frame { - msec: 2160 - } - Frame { - msec: 2176 - } - Frame { - msec: 2192 - } - Frame { - msec: 2208 - } - Frame { - msec: 2224 - } - Frame { - msec: 2240 - } - Frame { - msec: 2256 - } - Frame { - msec: 2272 - } - Frame { - msec: 2288 - } - Frame { - msec: 2304 - } - Frame { - msec: 2320 - } - Frame { - msec: 2336 - } - Frame { - msec: 2352 - } - Frame { - msec: 2368 - } - Frame { - msec: 2384 - } } -- cgit v0.12 From 077f0cc4ebcacd130a4710a4d510ace18b383fb0 Mon Sep 17 00:00:00 2001 From: Eckhart Koppen Date: Wed, 5 Jan 2011 10:55:04 +0200 Subject: Added patch for temporary support for --listgen option in qmake The --listgen option is needed in qmake for Symbian platform builds to list the files generated by qmake. This patch enables qmake to recognize this option, but is not functional, just to allow builds to succeed. This patch is not applied to qmake directly, but only made available in the source tree for usage in the build setup. Reviewed-by: TrustMe --- .../symbian/patches/qmake_listgen.patch | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 config.profiles/symbian/patches/qmake_listgen.patch diff --git a/config.profiles/symbian/patches/qmake_listgen.patch b/config.profiles/symbian/patches/qmake_listgen.patch new file mode 100644 index 0000000..b6224ce --- /dev/null +++ b/config.profiles/symbian/patches/qmake_listgen.patch @@ -0,0 +1,47 @@ +commit b2d4d498faa3c532372838ffa287906fdafdc3c6 +Author: Eckhart Koppen +Date: Fri Nov 19 17:31:36 2010 +0200 + + Added -listgen option (not functional!) temporarily + +diff --git a/qmake/option.cpp b/qmake/option.cpp +index 27e7c18..1c52d0f 100644 +--- a/qmake/option.cpp ++++ b/qmake/option.cpp +@@ -112,6 +112,7 @@ QString Option::mkfile::qmakespec; + int Option::mkfile::cachefile_depth = -1; + bool Option::mkfile::do_deps = true; + bool Option::mkfile::do_mocs = true; ++bool Option::mkfile::listgen = false; + bool Option::mkfile::do_dep_heuristics = true; + bool Option::mkfile::do_preprocess = false; + bool Option::mkfile::do_stub_makefile = false; +@@ -198,6 +199,7 @@ bool usage(const char *a0) + " -nocache Don't use a cache file [makefile mode only]\n" + " -nodepend Don't generate dependencies [makefile mode only]\n" + " -nomoc Don't generate moc targets [makefile mode only]\n" ++ " -listgen Lists generated files [makefile mode only]\n" + " -nopwd Don't look for files in pwd [project mode only]\n" + ,a0, + default_mode(a0) == Option::QMAKE_GENERATE_PROJECT ? " (default)" : "", project_builtin_regx().toLatin1().constData(), +@@ -297,6 +299,8 @@ Option::parseCommandLine(int argc, char **argv, int skip) + Option::mkfile::do_deps = false; + } else if(opt == "nomoc") { + Option::mkfile::do_mocs = false; ++ } else if(opt == "listgen") { ++ Option::mkfile::listgen = true; + } else if(opt == "nocache") { + Option::mkfile::do_cache = false; + } else if(opt == "createstub") { +diff --git a/qmake/option.h b/qmake/option.h +index b09ead2..a46d7fb 100644 +--- a/qmake/option.h ++++ b/qmake/option.h +@@ -179,6 +179,7 @@ struct Option + static bool do_cache; + static bool do_deps; + static bool do_mocs; ++ static bool listgen; + static bool do_dep_heuristics; + static bool do_preprocess; + static bool do_stub_makefile; -- cgit v0.12 From 7a54885b1df9baf793374e3cb9fdf8be93ee7c80 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 4 Jan 2011 15:35:58 +0100 Subject: Fix regression in text rendering in OpenGL2 engine Change 532115bcaa370af827a5cbad017b272842c5aacf introduced a regression by fixing a typo in the QT_OPENGL_ES_2 macro. This caused a broken and untested code path to be used in the GLES2 case. Since the QImage scanlines are 32 bit aligned, QImage::width() cannot be used when copying the data. Rather than pass in bytesPerLine() to the GL function, I opted to revert to the proven behavior, where the pad bytes are never read by GL but each scanline is copied separately, to avoid further regressions on different hardware. This also seems like the more correct approach, as the pad bytes should ideally not be copied into the cache texture. Reviewed-by: Samuel --- src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp index 1b879c3..ad1bf31 100644 --- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp +++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp @@ -293,9 +293,6 @@ void QGLTextureGlyphCache::fillTexture(const Coord &c, glyph_t glyph) if (mask.format() == QImage::Format_RGB32) { glTexSubImage2D(GL_TEXTURE_2D, 0, c.x, c.y, maskWidth, maskHeight, GL_BGRA, GL_UNSIGNED_BYTE, mask.bits()); } else { -#ifdef QT_OPENGL_ES_2 - glTexSubImage2D(GL_TEXTURE_2D, 0, c.x, c.y, maskWidth, maskHeight, GL_ALPHA, GL_UNSIGNED_BYTE, mask.bits()); -#else // glTexSubImage2D() might cause some garbage to appear in the texture if the mask width is // not a multiple of four bytes. The bug appeared on a computer with 32-bit Windows Vista // and nVidia GeForce 8500GT. GL_UNPACK_ALIGNMENT is set to four bytes, 'mask' has a @@ -307,7 +304,6 @@ void QGLTextureGlyphCache::fillTexture(const Coord &c, glyph_t glyph) for (int i = 0; i < maskHeight; ++i) glTexSubImage2D(GL_TEXTURE_2D, 0, c.x, c.y + i, maskWidth, 1, GL_ALPHA, GL_UNSIGNED_BYTE, mask.scanLine(i)); -#endif } } -- cgit v0.12 From 17e6529f7ff18c6f47f1fcc35379addd78d7156e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 5 Jan 2011 12:14:38 +0100 Subject: Added warning if is included when GLEW is present. GLEW can not be used in combination with . Reviewed-by: Eskil Abrahamsen Blomfeldt --- dist/changes-4.8.0 | 2 ++ src/opengl/qglfunctions.h | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/dist/changes-4.8.0 b/dist/changes-4.8.0 index c55faf6..fa50f24 100644 --- a/dist/changes-4.8.0 +++ b/dist/changes-4.8.0 @@ -51,6 +51,8 @@ QtGui - Removed dependency of OpenGL Utility Library (GLU) - Added QGLFunctions, which provides cross-platform access to the OpenGL/ES 2.0 API. + - Including will not work in combination with GLEW, as + QGLFunctions will undefine GLEW's defines. **************************************************************************** diff --git a/src/opengl/qglfunctions.h b/src/opengl/qglfunctions.h index e06de7f..88f43c0 100644 --- a/src/opengl/qglfunctions.h +++ b/src/opengl/qglfunctions.h @@ -42,6 +42,11 @@ #ifndef QGLFUNCTIONS_H #define QGLFUNCTIONS_H +#ifdef __GLEW_H__ +#warning qglfunctions.h is not compatible with GLEW, GLEW defines will be undefined +#warning To use GLEW with Qt, do not include or after glew.h +#endif + #include QT_BEGIN_HEADER -- cgit v0.12 From 4836d809f5dc3fc9e978ef630c0e5c8847c171a7 Mon Sep 17 00:00:00 2001 From: Prasanth Ullattil Date: Wed, 5 Jan 2011 15:19:07 +0100 Subject: Add support for QMetaType::QVariant in ActiveQt Previously when we convert the typename "QVariant" to QVaraint::Type, it returns QVariant::Invalid. From Qt 4.7 onwards, it will return QVariant::UserType. Task-number: QTBUG-15157 Reviewed-by: Martin Petersson --- src/activeqt/container/qaxbase.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/activeqt/container/qaxbase.cpp b/src/activeqt/container/qaxbase.cpp index 7692749..c29eac6 100644 --- a/src/activeqt/container/qaxbase.cpp +++ b/src/activeqt/container/qaxbase.cpp @@ -1671,12 +1671,11 @@ private: QVariant::Type vartype = QVariant::nameToType(prop.type); switch(vartype) { case QVariant::Invalid: + case QVariant::UserType: if (prop.type == "QVariant") { prop.typeId |= 0xff << 24; break; } - // fall through - case QVariant::UserType: if (QMetaType::type(prop.type) == -1) qWarning("QAxBase: Unsupported property type: %s", prop.type.data()); break; -- cgit v0.12 From 0c07af230d016aab6e416ae57594189ab9953101 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Fri, 19 Nov 2010 15:24:35 +0100 Subject: cookie jar code: enhance security by keeping track of effective TLDs The problem was the following: According to the cookie RFC, domains must have at least one dot in their name for setting a cookie (e.g. domain example.com can set a cookie for ".example.com" but not for ".com"). The problem is: Following this rule, one could still set "supercookies" for e.g. ".co.uk". The solution is to generate a table from http://publicsuffix.org which maintains a list of all "effective" TLDs like e.g. ".co.uk". Reviewed-by: Olivier Goffart Task-number: QTBUG-14706 --- src/network/access/access.pri | 1 + src/network/access/qnetworkcookiejar.cpp | 63 +- src/network/access/qnetworkcookiejar_p.h | 3 + src/network/access/qnetworkcookiejartlds_p.h | 6479 ++++++++++++++++++++ src/network/access/qnetworkcookiejartlds_p.h.INFO | 17 + .../qnetworkcookiejar/tst_qnetworkcookiejar.cpp | 104 + .../cookiejar-generateTLDs.pro | 9 + util/network/cookiejar-generateTLDs/main.cpp | 161 + 8 files changed, 6825 insertions(+), 12 deletions(-) create mode 100644 src/network/access/qnetworkcookiejartlds_p.h create mode 100644 src/network/access/qnetworkcookiejartlds_p.h.INFO create mode 100644 util/network/cookiejar-generateTLDs/cookiejar-generateTLDs.pro create mode 100644 util/network/cookiejar-generateTLDs/main.cpp diff --git a/src/network/access/access.pri b/src/network/access/access.pri index 6a0cd32..ce79b06 100644 --- a/src/network/access/access.pri +++ b/src/network/access/access.pri @@ -23,6 +23,7 @@ HEADERS += \ access/qnetworkcookie_p.h \ access/qnetworkcookiejar.h \ access/qnetworkcookiejar_p.h \ + access/qnetworkcookiejartlds_p.h \ access/qnetworkrequest.h \ access/qnetworkrequest_p.h \ access/qnetworkreply.h \ diff --git a/src/network/access/qnetworkcookiejar.cpp b/src/network/access/qnetworkcookiejar.cpp index 0b3a918..9cbeafe 100644 --- a/src/network/access/qnetworkcookiejar.cpp +++ b/src/network/access/qnetworkcookiejar.cpp @@ -40,6 +40,7 @@ ****************************************************************************/ #include "qnetworkcookiejar.h" +#include "qnetworkcookiejartlds_p.h" #include "qnetworkcookiejar_p.h" #include "QtNetwork/qnetworkcookie.h" @@ -157,7 +158,8 @@ static inline bool isParentDomain(QString domain, QString reference) jar. Default values for path and domain are taken from the \a url object. - Returns true if one or more cookes are set for url otherwise false. + Returns true if one or more cookies are set for \a url, + otherwise false. If a cookie already exists in the cookie jar, it will be overridden by those in \a cookieList. @@ -208,16 +210,14 @@ bool QNetworkCookieJar::setCookiesFromUrl(const QList &cookieLis QString domain = cookie.domain(); if (!(isParentDomain(domain, defaultDomain) - || isParentDomain(defaultDomain, domain))) { - continue; // not accepted - } - - // reject if domain is like ".com" - // (i.e., reject if domain does not contain embedded dots, see RFC 2109 section 4.3.2) - // this is just a rudimentary check and does not cover all cases - if (domain.lastIndexOf(QLatin1Char('.')) == 0) - continue; // not accepted - + || isParentDomain(defaultDomain, domain))) + continue; // not accepted + + // the check for effective TLDs makes the "embedded dot" rule from RFC 2109 section 4.3.2 + // redundant; the "leading dot" rule has been relaxed anyway, see above + // we remove the leading dot for this check + if (QNetworkCookieJarPrivate::isEffectiveTLD(domain.remove(0, 1))) + continue; // not accepted } QList::Iterator it = d->allCookies.begin(), @@ -250,7 +250,7 @@ bool QNetworkCookieJar::setCookiesFromUrl(const QList &cookieLis If more than one cookie with the same name is found, but with differing paths, the one with longer path is returned before the one with shorter path. In other words, this function returns - cookies sorted by path length. + cookies sorted decreasingly by path length. The default QNetworkCookieJar class implements only a very basic security policy (it makes sure that the cookies' domain and path @@ -304,4 +304,43 @@ QList QNetworkCookieJar::cookiesForUrl(const QUrl &url) const return result; } +bool QNetworkCookieJarPrivate::isEffectiveTLD(const QString &domain) +{ + // for domain 'foo.bar.com': + // 1. return if TLD table contains 'foo.bar.com' + if (containsTLDEntry(domain)) + return true; + + if (domain.contains(QLatin1Char('.'))) { + int count = domain.size() - domain.indexOf(QLatin1Char('.')); + QString wildCardDomain; + wildCardDomain.reserve(count + 1); + wildCardDomain.append(QLatin1Char('*')); + wildCardDomain.append(domain.right(count)); + // 2. if table contains '*.bar.com', + // test if table contains '!foo.bar.com' + if (containsTLDEntry(wildCardDomain)) { + QString exceptionDomain; + exceptionDomain.reserve(domain.size() + 1); + exceptionDomain.append(QLatin1Char('!')); + exceptionDomain.append(domain); + return (! containsTLDEntry(exceptionDomain)); + } + } + return false; +} + +bool QNetworkCookieJarPrivate::containsTLDEntry(const QString &entry) +{ + int index = qHash(entry) % tldCount; + int currentDomainIndex = tldIndices[index]; + while (currentDomainIndex < tldIndices[index+1]) { + QString currentEntry = QString::fromUtf8(tldData + currentDomainIndex); + if (currentEntry == entry) + return true; + currentDomainIndex += qstrlen(tldData + currentDomainIndex) + 1; // +1 for the ending \0 + } + return false; +} + QT_END_NAMESPACE diff --git a/src/network/access/qnetworkcookiejar_p.h b/src/network/access/qnetworkcookiejar_p.h index 5802115..74870be 100644 --- a/src/network/access/qnetworkcookiejar_p.h +++ b/src/network/access/qnetworkcookiejar_p.h @@ -63,6 +63,9 @@ class QNetworkCookieJarPrivate: public QObjectPrivate public: QList allCookies; + static bool Q_AUTOTEST_EXPORT isEffectiveTLD(const QString &domain); + static bool containsTLDEntry(const QString &entry); + Q_DECLARE_PUBLIC(QNetworkCookieJar) }; diff --git a/src/network/access/qnetworkcookiejartlds_p.h b/src/network/access/qnetworkcookiejartlds_p.h new file mode 100644 index 0000000..fc1c75f --- /dev/null +++ b/src/network/access/qnetworkcookiejartlds_p.h @@ -0,0 +1,6479 @@ +// Version: MPL 1.1/GPL 2.0/LGPL 2.1 +// +// The contents of this file are subject to the Mozilla Public License Version +// 1.1 (the "License"); you may not use this file except in compliance with +// the License. You may obtain a copy of the License at +// http://www.mozilla.org/MPL/ +// +// Software distributed under the License is distributed on an "AS IS" basis, +// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +// for the specific language governing rights and limitations under the +// License. +// +// The Original Code is the Public Suffix List. +// +// The Initial Developer of the Original Code is +// Jo Hermans . +// Portions created by the Initial Developer are Copyright (C) 2007 +// the Initial Developer. All Rights Reserved. +// +// Contributor(s): +// Ruben Arakelyan +// Gervase Markham +// Pamela Greene +// David Triendl +// Jothan Frakes +// The kind representatives of many TLD registries +// +// Alternatively, the contents of this file may be used under the terms of +// either the GNU General Public License Version 2 or later (the "GPL"), or +// the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +// in which case the provisions of the GPL or the LGPL are applicable instead +// of those above. If you wish to allow use of your version of this file only +// under the terms of either the GPL or the LGPL, and not to allow others to +// use your version of this file under the terms of the MPL, indicate your +// decision by deleting the provisions above and replace them with the notice +// and other provisions required by the GPL or the LGPL. If you do not delete +// the provisions above, a recipient may use your version of this file under +// the terms of any one of the MPL, the GPL or the LGPL. +// + +#ifndef QNETWORKCOOKIEJARTLD_P_H +#define QNETWORKCOOKIEJARTLD_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of the Network Access framework. This header file may change from +// version to version without notice, or even be removed. +// +// We mean it. +// + +QT_BEGIN_NAMESPACE + +// note to maintainer: +// this file should be updated before each release -> +// for instructions see the program at +// util/network/cookiejar-generateTLDs + +static const quint16 tldCount = 3949; +static const quint16 tldIndices[] = { +0, +7, +14, +14, +20, +51, +61, +93, +100, +100, +116, +159, +167, +180, +180, +193, +234, +234, +234, +255, +255, +255, +280, +280, +287, +287, +295, +303, +313, +326, +326, +380, +393, +413, +419, +419, +419, +424, +438, +438, +469, +515, +515, +515, +534, +534, +557, +557, +557, +557, +572, +572, +572, +579, +587, +597, +612, +612, +624, +636, +648, +662, +687, +709, +714, +740, +766, +789, +789, +805, +805, +810, +815, +815, +824, +824, +831, +857, +869, +891, +891, +916, +916, +916, +927, +934, +964, +971, +987, +987, +987, +1008, +1008, +1016, +1016, +1030, +1030, +1052, +1075, +1075, +1082, +1087, +1115, +1135, +1135, +1135, +1172, +1178, +1178, +1178, +1202, +1207, +1220, +1220, +1266, +1266, +1266, +1266, +1272, +1290, +1316, +1316, +1332, +1332, +1339, +1339, +1352, +1352, +1389, +1389, +1408, +1415, +1437, +1444, +1489, +1489, +1502, +1502, +1512, +1518, +1539, +1555, +1562, +1584, +1598, +1607, +1607, +1607, +1632, +1652, +1652, +1658, +1658, +1675, +1682, +1709, +1733, +1748, +1776, +1783, +1783, +1790, +1797, +1826, +1850, +1850, +1856, +1880, +1887, +1901, +1921, +1947, +1961, +1967, +1967, +1967, +1972, +1986, +1986, +1986, +2009, +2029, +2029, +2047, +2061, +2075, +2075, +2075, +2075, +2075, +2075, +2082, +2082, +2124, +2124, +2129, +2162, +2162, +2162, +2236, +2256, +2263, +2276, +2283, +2313, +2313, +2347, +2380, +2387, +2387, +2387, +2431, +2438, +2445, +2452, +2459, +2459, +2469, +2490, +2516, +2527, +2540, +2540, +2586, +2610, +2630, +2630, +2653, +2660, +2669, +2693, +2693, +2710, +2710, +2719, +2719, +2734, +2740, +2740, +2753, +2753, +2763, +2770, +2775, +2782, +2789, +2802, +2820, +2827, +2827, +2841, +2855, +2855, +2865, +2872, +2884, +2884, +2919, +2937, +2955, +2962, +3012, +3042, +3073, +3083, +3083, +3100, +3105, +3112, +3131, +3131, +3166, +3180, +3187, +3194, +3211, +3218, +3223, +3233, +3249, +3259, +3268, +3314, +3314, +3324, +3324, +3336, +3336, +3336, +3336, +3350, +3363, +3376, +3398, +3416, +3445, +3464, +3488, +3488, +3497, +3545, +3552, +3552, +3552, +3566, +3573, +3573, +3573, +3581, +3581, +3603, +3603, +3615, +3621, +3621, +3683, +3683, +3710, +3710, +3716, +3716, +3748, +3770, +3791, +3803, +3810, +3817, +3833, +3846, +3846, +3852, +3876, +3876, +3882, +3903, +3910, +3939, +3939, +3939, +3947, +3962, +3962, +3981, +3994, +4021, +4030, +4042, +4085, +4085, +4096, +4096, +4104, +4123, +4123, +4123, +4143, +4154, +4164, +4194, +4194, +4194, +4205, +4205, +4222, +4238, +4301, +4309, +4322, +4331, +4331, +4331, +4331, +4331, +4347, +4365, +4375, +4375, +4385, +4398, +4412, +4430, +4430, +4437, +4447, +4463, +4472, +4472, +4472, +4484, +4484, +4484, +4484, +4484, +4490, +4490, +4511, +4511, +4522, +4522, +4522, +4522, +4528, +4528, +4534, +4551, +4551, +4551, +4564, +4583, +4583, +4611, +4611, +4611, +4622, +4622, +4649, +4668, +4677, +4692, +4692, +4692, +4705, +4723, +4723, +4723, +4729, +4729, +4743, +4743, +4750, +4750, +4763, +4770, +4776, +4776, +4776, +4793, +4811, +4811, +4811, +4821, +4821, +4841, +4857, +4891, +4897, +4903, +4903, +4903, +4919, +4935, +4942, +4958, +4958, +4975, +4975, +4975, +4985, +4985, +5020, +5032, +5032, +5040, +5053, +5068, +5079, +5079, +5101, +5115, +5115, +5135, +5154, +5161, +5161, +5168, +5168, +5184, +5210, +5210, +5238, +5255, +5278, +5285, +5308, +5318, +5327, +5327, +5333, +5333, +5340, +5348, +5355, +5366, +5377, +5384, +5408, +5415, +5422, +5435, +5442, +5482, +5482, +5482, +5482, +5498, +5527, +5534, +5541, +5572, +5572, +5572, +5579, +5591, +5602, +5602, +5621, +5621, +5646, +5664, +5671, +5671, +5681, +5696, +5707, +5716, +5716, +5723, +5723, +5732, +5742, +5742, +5763, +5770, +5776, +5790, +5790, +5797, +5806, +5816, +5832, +5882, +5882, +5882, +5882, +5893, +5934, +5934, +5965, +5965, +5980, +5980, +5980, +5980, +6007, +6017, +6034, +6051, +6065, +6075, +6075, +6091, +6097, +6097, +6109, +6109, +6109, +6122, +6147, +6168, +6168, +6191, +6191, +6191, +6191, +6191, +6198, +6217, +6224, +6224, +6231, +6245, +6252, +6252, +6270, +6270, +6284, +6305, +6315, +6322, +6322, +6322, +6329, +6329, +6329, +6353, +6361, +6361, +6375, +6391, +6405, +6405, +6415, +6431, +6431, +6431, +6431, +6458, +6475, +6475, +6475, +6482, +6489, +6496, +6496, +6503, +6520, +6520, +6520, +6527, +6527, +6544, +6561, +6573, +6573, +6580, +6580, +6587, +6587, +6592, +6592, +6592, +6592, +6599, +6599, +6612, +6633, +6649, +6649, +6669, +6676, +6683, +6683, +6713, +6720, +6727, +6736, +6736, +6746, +6770, +6807, +6814, +6827, +6846, +6846, +6864, +6864, +6864, +6864, +6881, +6888, +6888, +6888, +6914, +6935, +6935, +6935, +6953, +6959, +6966, +6983, +6983, +6983, +7013, +7023, +7023, +7023, +7023, +7037, +7044, +7058, +7079, +7086, +7123, +7134, +7155, +7168, +7178, +7203, +7227, +7236, +7258, +7265, +7274, +7274, +7303, +7303, +7314, +7314, +7345, +7352, +7367, +7377, +7388, +7388, +7402, +7402, +7409, +7421, +7421, +7467, +7484, +7484, +7484, +7491, +7532, +7532, +7539, +7546, +7546, +7553, +7573, +7573, +7573, +7580, +7587, +7594, +7594, +7594, +7606, +7606, +7637, +7637, +7637, +7664, +7664, +7664, +7677, +7684, +7701, +7723, +7723, +7723, +7723, +7734, +7734, +7734, +7748, +7748, +7748, +7748, +7759, +7759, +7775, +7775, +7782, +7789, +7817, +7824, +7831, +7836, +7865, +7865, +7876, +7901, +7901, +7908, +7918, +7938, +7945, +7945, +7957, +7964, +7979, +7986, +7994, +8007, +8007, +8014, +8021, +8061, +8061, +8071, +8088, +8131, +8138, +8153, +8160, +8160, +8160, +8175, +8183, +8197, +8211, +8211, +8211, +8243, +8243, +8243, +8243, +8259, +8259, +8259, +8259, +8259, +8266, +8275, +8281, +8281, +8281, +8281, +8288, +8288, +8309, +8309, +8309, +8330, +8330, +8330, +8330, +8337, +8343, +8343, +8360, +8370, +8370, +8380, +8380, +8386, +8386, +8397, +8415, +8415, +8428, +8454, +8460, +8475, +8492, +8526, +8554, +8554, +8583, +8583, +8583, +8598, +8607, +8617, +8617, +8642, +8652, +8652, +8652, +8662, +8688, +8688, +8704, +8704, +8747, +8765, +8775, +8783, +8811, +8835, +8835, +8835, +8850, +8859, +8884, +8910, +8919, +8952, +8978, +8978, +8991, +8991, +8991, +8999, +8999, +8999, +9030, +9030, +9030, +9030, +9030, +9041, +9048, +9048, +9054, +9054, +9054, +9086, +9108, +9108, +9119, +9119, +9130, +9144, +9152, +9161, +9174, +9194, +9207, +9207, +9207, +9232, +9242, +9242, +9271, +9290, +9308, +9308, +9308, +9308, +9320, +9333, +9343, +9356, +9379, +9379, +9379, +9395, +9395, +9406, +9419, +9419, +9419, +9419, +9450, +9485, +9485, +9497, +9497, +9505, +9517, +9528, +9528, +9551, +9564, +9586, +9586, +9608, +9608, +9626, +9626, +9626, +9653, +9653, +9681, +9681, +9681, +9698, +9698, +9698, +9714, +9729, +9737, +9737, +9765, +9765, +9765, +9765, +9765, +9825, +9844, +9866, +9880, +9880, +9880, +9880, +9886, +9895, +9895, +9895, +9895, +9895, +9913, +9913, +9924, +9958, +9958, +9967, +9975, +9975, +9975, +9981, +9998, +9998, +9998, +10012, +10036, +10036, +10066, +10079, +10097, +10121, +10133, +10142, +10142, +10142, +10156, +10173, +10173, +10173, +10196, +10205, +10205, +10205, +10205, +10218, +10234, +10240, +10240, +10240, +10264, +10273, +10286, +10286, +10286, +10286, +10299, +10299, +10309, +10309, +10339, +10358, +10358, +10374, +10374, +10390, +10390, +10413, +10413, +10439, +10461, +10467, +10467, +10467, +10492, +10492, +10501, +10528, +10528, +10528, +10539, +10583, +10583, +10583, +10613, +10613, +10619, +10628, +10645, +10645, +10645, +10650, +10671, +10687, +10709, +10709, +10709, +10709, +10709, +10727, +10727, +10727, +10727, +10733, +10733, +10768, +10768, +10773, +10780, +10788, +10788, +10797, +10797, +10835, +10835, +10845, +10852, +10861, +10861, +10861, +10861, +10861, +10861, +10861, +10875, +10888, +10907, +10907, +10907, +10920, +10920, +10932, +10946, +10977, +10977, +10997, +11008, +11037, +11059, +11059, +11059, +11067, +11067, +11067, +11067, +11067, +11077, +11091, +11102, +11102, +11112, +11125, +11129, +11129, +11154, +11154, +11154, +11164, +11164, +11189, +11189, +11189, +11189, +11189, +11196, +11196, +11227, +11238, +11247, +11256, +11265, +11265, +11286, +11307, +11330, +11337, +11378, +11378, +11389, +11413, +11454, +11469, +11475, +11475, +11475, +11475, +11503, +11503, +11503, +11503, +11534, +11534, +11550, +11550, +11557, +11557, +11557, +11557, +11574, +11585, +11585, +11603, +11626, +11643, +11643, +11643, +11643, +11663, +11663, +11682, +11696, +11696, +11696, +11696, +11706, +11706, +11706, +11706, +11723, +11723, +11757, +11757, +11773, +11795, +11813, +11836, +11836, +11883, +11903, +11952, +11965, +11965, +11984, +11997, +12008, +12008, +12008, +12024, +12043, +12065, +12071, +12099, +12129, +12140, +12140, +12146, +12161, +12161, +12161, +12161, +12167, +12167, +12180, +12186, +12208, +12226, +12243, +12243, +12252, +12252, +12274, +12289, +12302, +12302, +12313, +12313, +12313, +12313, +12358, +12358, +12358, +12369, +12375, +12391, +12391, +12391, +12391, +12405, +12410, +12416, +12416, +12436, +12436, +12436, +12443, +12443, +12462, +12477, +12492, +12492, +12503, +12519, +12525, +12531, +12571, +12571, +12591, +12591, +12601, +12641, +12641, +12641, +12657, +12657, +12657, +12699, +12699, +12699, +12712, +12728, +12744, +12761, +12769, +12782, +12793, +12823, +12836, +12851, +12863, +12890, +12900, +12900, +12900, +12910, +12910, +12924, +12924, +12924, +12924, +12924, +12952, +12984, +13003, +13038, +13038, +13056, +13056, +13056, +13056, +13074, +13081, +13093, +13103, +13103, +13112, +13119, +13132, +13132, +13132, +13141, +13151, +13183, +13193, +13206, +13206, +13206, +13236, +13252, +13267, +13267, +13294, +13307, +13307, +13307, +13343, +13349, +13349, +13349, +13375, +13375, +13375, +13384, +13384, +13384, +13393, +13393, +13393, +13402, +13414, +13425, +13445, +13467, +13485, +13499, +13509, +13528, +13528, +13549, +13549, +13559, +13570, +13570, +13570, +13570, +13598, +13637, +13647, +13647, +13661, +13673, +13682, +13687, +13694, +13694, +13720, +13733, +13742, +13748, +13771, +13795, +13795, +13814, +13821, +13821, +13855, +13862, +13862, +13862, +13874, +13874, +13897, +13909, +13909, +13947, +13947, +13952, +13952, +13970, +13979, +13979, +13979, +14008, +14049, +14049, +14049, +14049, +14049, +14049, +14060, +14083, +14083, +14091, +14101, +14101, +14101, +14101, +14118, +14136, +14195, +14195, +14195, +14213, +14213, +14232, +14232, +14253, +14253, +14258, +14275, +14275, +14304, +14311, +14311, +14318, +14318, +14318, +14318, +14318, +14318, +14325, +14325, +14345, +14345, +14379, +14389, +14422, +14422, +14422, +14422, +14435, +14441, +14441, +14460, +14460, +14471, +14471, +14481, +14495, +14495, +14495, +14502, +14502, +14502, +14502, +14524, +14533, +14541, +14552, +14552, +14552, +14552, +14563, +14563, +14568, +14568, +14585, +14595, +14602, +14628, +14628, +14645, +14672, +14678, +14697, +14697, +14734, +14757, +14764, +14771, +14771, +14771, +14796, +14815, +14822, +14845, +14861, +14861, +14861, +14873, +14873, +14873, +14902, +14920, +14920, +14926, +14926, +14926, +14941, +14949, +14949, +14949, +14949, +14949, +14960, +14960, +14971, +14971, +14998, +15003, +15003, +15003, +15013, +15013, +15027, +15027, +15027, +15043, +15053, +15063, +15074, +15083, +15093, +15093, +15121, +15121, +15128, +15128, +15144, +15144, +15144, +15144, +15165, +15170, +15170, +15170, +15170, +15170, +15170, +15170, +15186, +15206, +15206, +15206, +15224, +15236, +15236, +15252, +15258, +15258, +15258, +15258, +15264, +15277, +15288, +15307, +15307, +15318, +15328, +15328, +15334, +15334, +15363, +15399, +15399, +15422, +15438, +15447, +15447, +15456, +15456, +15456, +15495, +15495, +15495, +15495, +15511, +15511, +15530, +15557, +15566, +15582, +15590, +15590, +15604, +15604, +15625, +15635, +15655, +15655, +15655, +15655, +15655, +15665, +15675, +15675, +15675, +15675, +15675, +15682, +15682, +15682, +15694, +15719, +15749, +15749, +15794, +15794, +15837, +15854, +15854, +15861, +15861, +15861, +15861, +15884, +15900, +15911, +15931, +15931, +15931, +15931, +15931, +15963, +15963, +15996, +16006, +16013, +16024, +16034, +16049, +16049, +16049, +16059, +16059, +16059, +16059, +16059, +16059, +16059, +16064, +16075, +16104, +16104, +16117, +16124, +16124, +16124, +16124, +16130, +16145, +16159, +16190, +16193, +16196, +16210, +16224, +16243, +16255, +16261, +16280, +16283, +16292, +16295, +16295, +16301, +16304, +16322, +16325, +16328, +16349, +16355, +16382, +16408, +16414, +16414, +16414, +16458, +16477, +16480, +16485, +16488, +16514, +16520, +16530, +16530, +16546, +16562, +16597, +16603, +16622, +16622, +16646, +16669, +16672, +16715, +16715, +16715, +16718, +16718, +16727, +16733, +16752, +16770, +16787, +16794, +16810, +16827, +16840, +16850, +16876, +16901, +16901, +16901, +16916, +16919, +16926, +16943, +16972, +16978, +16978, +16978, +16981, +17008, +17008, +17016, +17053, +17053, +17053, +17053, +17072, +17086, +17105, +17139, +17153, +17162, +17162, +17177, +17177, +17177, +17177, +17195, +17218, +17221, +17221, +17237, +17276, +17276, +17300, +17319, +17339, +17357, +17370, +17383, +17400, +17407, +17419, +17439, +17439, +17449, +17465, +17475, +17504, +17527, +17527, +17534, +17548, +17564, +17564, +17598, +17598, +17601, +17630, +17649, +17669, +17669, +17679, +17686, +17757, +17776, +17796, +17810, +17840, +17840, +17877, +17884, +17884, +17911, +17936, +17970, +17980, +17995, +17995, +18008, +18011, +18036, +18075, +18097, +18097, +18104, +18115, +18115, +18129, +18134, +18141, +18141, +18157, +18180, +18190, +18217, +18224, +18252, +18284, +18284, +18296, +18299, +18312, +18322, +18338, +18348, +18348, +18363, +18372, +18387, +18387, +18390, +18402, +18445, +18445, +18445, +18466, +18479, +18479, +18498, +18508, +18511, +18511, +18511, +18511, +18511, +18526, +18558, +18586, +18622, +18643, +18670, +18686, +18710, +18720, +18739, +18739, +18742, +18745, +18771, +18774, +18777, +18791, +18813, +18816, +18822, +18839, +18845, +18851, +18854, +18878, +18881, +18896, +18896, +18899, +18926, +18937, +18940, +18953, +18963, +19010, +19010, +19017, +19046, +19060, +19060, +19087, +19095, +19101, +19101, +19128, +19146, +19157, +19157, +19188, +19198, +19205, +19223, +19230, +19255, +19280, +19280, +19283, +19292, +19301, +19320, +19323, +19323, +19341, +19341, +19365, +19378, +19381, +19394, +19423, +19433, +19440, +19466, +19490, +19490, +19490, +19497, +19504, +19511, +19511, +19518, +19545, +19568, +19575, +19575, +19583, +19586, +19592, +19592, +19609, +19622, +19629, +19641, +19641, +19656, +19673, +19700, +19723, +19733, +19746, +19759, +19769, +19782, +19789, +19795, +19831, +19834, +19841, +19851, +19854, +19880, +19895, +19898, +19898, +19911, +19922, +19950, +20020, +20030, +20059, +20062, +20089, +20107, +20151, +20154, +20175, +20205, +20208, +20229, +20229, +20255, +20261, +20261, +20283, +20335, +20362, +20385, +20392, +20392, +20392, +20392, +20418, +20418, +20418, +20418, +20443, +20446, +20446, +20452, +20452, +20467, +20467, +20489, +20489, +20498, +20525, +20554, +20560, +20575, +20589, +20589, +20589, +20614, +20652, +20659, +20659, +20668, +20679, +20679, +20679, +20685, +20685, +20685, +20685, +20685, +20685, +20696, +20733, +20760, +20766, +20769, +20792, +20792, +20792, +20792, +20813, +20813, +20813, +20813, +20826, +20826, +20846, +20862, +20880, +20887, +20901, +20908, +20933, +20938, +20958, +20969, +20978, +20978, +20978, +20985, +20985, +20985, +21000, +21010, +21010, +21014, +21026, +21033, +21041, +21041, +21051, +21051, +21064, +21071, +21113, +21120, +21120, +21127, +21134, +21142, +21164, +21164, +21164, +21188, +21195, +21208, +21215, +21226, +21226, +21226, +21238, +21249, +21255, +21255, +21265, +21279, +21296, +21301, +21315, +21321, +21331, +21331, +21331, +21337, +21343, +21343, +21351, +21351, +21361, +21368, +21383, +21383, +21389, +21413, +21437, +21449, +21462, +21478, +21506, +21534, +21546, +21546, +21557, +21580, +21595, +21595, +21595, +21595, +21626, +21626, +21646, +21670, +21676, +21688, +21688, +21716, +21731, +21762, +21762, +21762, +21762, +21762, +21783, +21789, +21799, +21828, +21828, +21837, +21845, +21868, +21874, +21874, +21880, +21880, +21889, +21901, +21910, +21941, +21941, +21959, +21959, +21959, +21966, +21966, +21972, +21972, +21995, +22011, +22043, +22043, +22051, +22051, +22060, +22060, +22060, +22074, +22086, +22086, +22099, +22099, +22120, +22120, +22134, +22144, +22150, +22158, +22164, +22164, +22171, +22199, +22210, +22210, +22210, +22220, +22228, +22228, +22239, +22261, +22304, +22304, +22312, +22349, +22349, +22349, +22357, +22381, +22381, +22390, +22390, +22390, +22390, +22402, +22413, +22413, +22422, +22422, +22445, +22445, +22445, +22456, +22456, +22469, +22479, +22501, +22512, +22528, +22528, +22528, +22528, +22528, +22528, +22528, +22540, +22540, +22546, +22546, +22546, +22546, +22569, +22591, +22591, +22591, +22591, +22610, +22655, +22655, +22667, +22667, +22677, +22677, +22692, +22692, +22702, +22702, +22702, +22717, +22736, +22750, +22755, +22780, +22785, +22822, +22844, +22859, +22871, +22909, +22949, +22962, +22973, +22979, +22988, +23007, +23027, +23035, +23072, +23082, +23082, +23109, +23116, +23130, +23158, +23166, +23166, +23172, +23177, +23189, +23219, +23219, +23250, +23273, +23281, +23281, +23281, +23281, +23281, +23287, +23287, +23299, +23305, +23315, +23315, +23321, +23328, +23334, +23355, +23355, +23355, +23355, +23355, +23366, +23390, +23396, +23396, +23396, +23396, +23402, +23418, +23424, +23424, +23438, +23446, +23446, +23446, +23500, +23525, +23569, +23592, +23592, +23592, +23605, +23614, +23614, +23614, +23627, +23633, +23657, +23673, +23673, +23673, +23689, +23689, +23701, +23701, +23701, +23713, +23713, +23713, +23738, +23758, +23775, +23775, +23794, +23794, +23803, +23803, +23803, +23803, +23813, +23826, +23845, +23845, +23845, +23845, +23872, +23872, +23872, +23888, +23888, +23900, +23900, +23906, +23906, +23906, +23906, +23906, +23924, +23924, +23924, +23930, +23930, +23939, +23949, +23971, +23971, +23971, +24000, +24012, +24042, +24042, +24042, +24042, +24042, +24070, +24076, +24094, +24094, +24094, +24123, +24123, +24123, +24134, +24150, +24150, +24150, +24150, +24150, +24150, +24155, +24179, +24179, +24189, +24189, +24189, +24198, +24198, +24218, +24218, +24218, +24234, +24251, +24257, +24276, +24305, +24321, +24321, +24321, +24334, +24334, +24334, +24349, +24356, +24361, +24372, +24372, +24372, +24388, +24396, +24396, +24402, +24410, +24410, +24428, +24428, +24450, +24450, +24467, +24485, +24495, +24495, +24495, +24507, +24507, +24514, +24531, +24531, +24531, +24531, +24531, +24537, +24537, +24558, +24572, +24584, +24584, +24601, +24601, +24607, +24615, +24615, +24632, +24632, +24632, +24632, +24661, +24676, +24676, +24724, +24751, +24751, +24774, +24774, +24783, +24793, +24793, +24793, +24813, +24819, +24819, +24826, +24826, +24842, +24858, +24872, +24872, +24890, +24890, +24890, +24890, +24890, +24890, +24890, +24890, +24890, +24906, +24906, +24917, +24928, +24947, +24947, +24947, +24947, +24947, +24947, +24947, +24947, +24947, +24963, +24983, +24991, +24991, +24991, +24991, +24991, +24991, +24991, +24991, +25007, +25007, +25007, +25007, +25007, +25007, +25007, +25030, +25040, +25040, +25040, +25040, +25040, +25059, +25097, +25132, +25149, +25159, +25169, +25169, +25169, +25192, +25192, +25192, +25192, +25205, +25205, +25216, +25221, +25221, +25233, +25233, +25240, +25250, +25256, +25273, +25273, +25303, +25321, +25321, +25321, +25333, +25333, +25333, +25333, +25370, +25370, +25402, +25418, +25418, +25439, +25439, +25454, +25454, +25454, +25463, +25477, +25526, +25526, +25526, +25526, +25545, +25562, +25572, +25572, +25582, +25582, +25582, +25597, +25610, +25634, +25641, +25641, +25641, +25668, +25668, +25675, +25707, +25727, +25727, +25741, +25756, +25756, +25779, +25811, +25811, +25811, +25817, +25817, +25817, +25827, +25827, +25827, +25827, +25827, +25836, +25836, +25836, +25836, +25850, +25850, +25860, +25884, +25901, +25922, +25936, +25946, +25969, +25969, +25969, +25969, +25975, +25975, +25987, +25987, +26065, +26065, +26065, +26084, +26084, +26103, +26128, +26141, +26151, +26169, +26169, +26169, +26180, +26191, +26191, +26191, +26197, +26197, +26205, +26211, +26235, +26235, +26235, +26235, +26235, +26235, +26245, +26245, +26259, +26259, +26259, +26259, +26284, +26284, +26325, +26325, +26355, +26364, +26364, +26402, +26418, +26418, +26425, +26432, +26432, +26454, +26504, +26513, +26525, +26525, +26525, +26525, +26525, +26545, +26545, +26571, +26590, +26597, +26597, +26597, +26597, +26597, +26639, +26648, +26659, +26666, +26672, +26672, +26672, +26672, +26672, +26694, +26701, +26701, +26701, +26724, +26724, +26746, +26753, +26774, +26774, +26774, +26774, +26806, +26824, +26824, +26830, +26852, +26882, +26882, +26889, +26889, +26889, +26889, +26889, +26889, +26903, +26911, +26918, +26918, +26928, +26948, +26948, +26970, +26970, +26985, +26996, +27045, +27045, +27058, +27058, +27068, +27068, +27104, +27155, +27155, +27155, +27155, +27155, +27172, +27172, +27172, +27172, +27189, +27195, +27195, +27223, +27223, +27223, +27223, +27244, +27290, +27322, +27332, +27364, +27371, +27371, +27371, +27401, +27401, +27417, +27417, +27431, +27470, +27470, +27470, +27470, +27484, +27484, +27484, +27484, +27484, +27496, +27496, +27515, +27515, +27543, +27560, +27576, +27604, +27622, +27631, +27631, +27638, +27649, +27672, +27682, +27682, +27682, +27707, +27717, +27724, +27732, +27755, +27755, +27755, +27768, +27768, +27783, +27789, +27799, +27799, +27799, +27818, +27826, +27838, +27848, +27848, +27848, +27855, +27862, +27862, +27896, +27921, +27921, +27943, +27954, +27954, +27976, +27976, +27976, +27985, +28002, +28012, +28019, +28034, +28034, +28046, +28068, +28097, +28122, +28122, +28131, +28137, +28151, +28151, +28172, +28190, +28196, +28211, +28211, +28264, +28273, +28286, +28324, +28324, +28324, +28354, +28354, +28361, +28397, +28417, +28417, +28424, +28435, +28461, +28461, +28470, +28483, +28483, +28483, +28483, +28483, +28483, +28483, +28515, +28531, +28531, +28549, +28575, +28575, +28575, +28582, +28599, +28615, +28630, +28630, +28672, +28711, +28723, +28723, +28731, +28752, +28752, +28752, +28763, +28763, +28775, +28775, +28775, +28775, +28775, +28775, +28805, +28814, +28830, +28861, +28882, +28882, +28902, +28918, +28937, +28952, +28959, +28998, +29009, +29009, +29009, +29009, +29019, +29019, +29019, +29019, +29019, +29057, +29069, +29076, +29076, +29076, +29076, +29076, +29082, +29082, +29082, +29117, +29117, +29117, +29117, +29134, +29134, +29159, +29159, +29185, +29185, +29196, +29196, +29242, +29248, +29256, +29280, +29301, +29307, +29307, +29307, +29314, +29314, +29338, +29356, +29367, +29367, +29381, +29391, +29399, +29399, +29414, +29434, +29434, +29441, +29473, +29484, +29503, +29520, +29520, +29548, +29565, +29572, +29572, +29572, +29572, +29572, +29597, +29597, +29620, +29655, +29660, +29660, +29660, +29667, +29674, +29688, +29698, +29705, +29728, +29740, +29740, +29761, +29761, +29767, +29780, +29787, +29794, +29794, +29807, +29820, +29820, +29820, +29820, +29832, +29844, +29855, +29855, +29855, +29867, +29867, +29867, +29867, +29881, +29881, +29905, +29905, +29905, +29923, +29923, +29948, +29948, +29948, +29976, +29986, +29996, +29996, +30030, +30030, +30054, +30054, +30070, +30070, +30070, +30077, +30077, +30087, +30107, +30107, +30115, +30141, +30178, +30178, +30201, +30201, +30201, +30207, +30229, +30239, +30254, +30268, +30277, +30311, +30323, +30323, +30331, +30331, +30331, +30331, +30331, +30353, +30365, +30374, +30374, +30374, +30380, +30380, +30380, +30380, +30410, +30410, +30410, +30443, +30443, +30453, +30462, +30472, +30472, +30472, +30472, +30472, +30472, +30489, +30500, +30500, +30500, +30532, +30532, +30553, +30577, +30599, +30599, +30609, +30640, +30640, +30640, +30664, +30676, +30676, +30676, +30692, +30719, +30728, +30728, +30742, +30742, +30749, +30749, +30760, +30770, +30770, +30783, +30783, +30783, +30804, +30847, +30847, +30847, +30847, +30857, +30857, +30857, +30857, +30875, +30875, +30895, +30895, +30921, +30926, +30926, +30926, +30945, +30945, +30945, +30945, +30959, +30959, +30959, +30959, +30972, +30972, +30984, +31011, +31011, +31048, +31056, +31056, +31070, +31077, +31077, +31110, +31110, +31115, +31122, +31139, +31159, +31159, +31165, +31171, +31171, +31197, +31204, +31211, +31211, +31221, +31228, +31228, +31245, +31245, +31245, +31252, +31265, +31265, +31265, +31265, +31294, +31305, +31320, +31333, +31333, +31333, +31343, +31350, +31357, +31369, +31369, +31379, +31385, +31391, +31407, +31407, +31407, +31423, +31423, +31423, +31434, +31454, +31470, +31511, +31521, +31521, +31521, +31542, +31582, +31582, +31597, +31597, +31597, +31614, +31623, +31645, +31645, +31661, +31661, +31669, +31669, +31676, +31676, +31706, +31720, +31726, +31743, +31785, +31804, +31817, +31817, +31835, +31846, +31863, +31885, +31885, +31896, +31907, +31907, +31907, +31922, +31922, +31929, +31929, +31929, +31936, +31943, +31949, +31949, +31949, +31959, +32006, +32024, +32031, +32031, +32038, +32063, +32095, +32095, +32105, +32105, +32105, +32105, +32105, +32125, +32134, +32140, +32176, +32185, +32195, +32195, +32195, +32195, +32202, +32202, +32218, +32236, +32259, +32294, +32300, +32305, +32305, +32305, +32323, +32337, +32352, +32359, +32374, +32381, +32388, +32388, +32388, +32402, +32402, +32402, +32402, +32418, +32428, +32428, +32428, +32450, +32450, +32450, +32462, +32467, +32480, +32480, +32480, +32487, +32502, +32509, +32525, +32560, +32570, +32583, +32597, +32623, +32637, +32644, +32667, +32707, +32725, +32725, +32747, +32747, +32751, +32758, +32789, +32807, +32824, +32824, +32824, +32824, +32843, +32843, +32850, +32876, +32908, +32915, +32946, +32965, +32965, +32982, +33002, +33009, +33029, +33064, +33084, +33098, +33098, +33098, +33098, +33110, +33110, +33151, +33158, +33180, +33198, +33205, +33227, +33227, +33237, +33237, +33253, +33258, +33277, +33292, +33315, +33315, +33333, +33348, +33348, +33348, +33348, +33348, +33348, +33348, +33355, +33355, +33355, +33390, +33408, +33423, +33437, +33452, +33458, +33465, +33480, +33480, +33487, +33494, +33504, +33511, +33551, +33551, +33558, +33589, +33595, +33595, +33602, +33627, +33644, +33668, +33668, +33668, +33676, +33676, +33716, +33728, +33747, +33747, +33769, +33775, +33789, +33803, +33803, +33810, +33810, +33810, +33820, +33820, +33820, +33820, +33843, +33843, +33843, +33879, +33889, +33889, +33889, +33903, +33917, +33931, +33959, +33993, +34000, +34014, +34037, +34043, +34055, +34055, +34077, +34083, +34090, +34099, +34099, +34115, +34115, +34133, +34140, +34167, +34172, +34184, +34221, +34245, +34252, +34252, +34259, +34318, +34318, +34325, +34325, +34352, +34400, +34415, +34422, +34422, +34431, +34438, +34445, +34445, +34473, +34473, +34489, +34489, +34489, +34489, +34499, +34499, +34499, +34516, +34536, +34551, +34564, +34580, +34580, +34580, +34589, +34589, +34589, +34613, +34648, +34648, +34648, +34655, +34664, +34681, +34681, +34698, +34698, +34720, +34736, +34749, +34749, +34765, +34778, +34785, +34795, +34819, +34819, +34829, +34841, +34848, +34854, +34854, +34854, +34878, +34894, +34894, +34900, +34917, +34934, +34940, +34970, +34998, +34998, +35004, +35004, +35012, +35012, +35012, +35020, +35020, +35032, +35038, +35062, +35062, +35062, +35068, +35068, +35082, +35092, +35096, +35107, +35118, +35134, +35155, +35155, +35166, +35178, +35178, +35195, +35201, +35201, +35201, +35226, +35226, +35226, +35226, +35256, +35262, +35272, +35280, +35299, +35332, +35354, +35354, +35354, +35370, +35386, +35417, +35417, +35460, +35473, +35478, +35495, +35504, +35504, +35518, +35552, +35589, +35624, +35624, +35637, +35637, +35643, +35643, +35669, +35682, +35695, +35702, +35709, +35709, +35726, +35739, +35749, +35756, +35756, +35778, +35803, +35810, +35829, +35883, +35899, +35905, +35911, +35911, +35923, +35947, +35954, +35980, +35987, +36034, +36052, +36063, +36095, +36106, +36106, +36113, +36120, +36140, +36140, +36153, +36160, +36160, +36167, +36203, +36203, +36218, +36218, +36225, +36253, +36259, +36284, +36296, +36310, +36324, +36331, +36344, +36367, +36367, +36367, +36412, +36412, +36422, +36463, +36463, +36463, +36479, +36490, +36513, +36520, +36520, +36527, +36527, +36527, +36540, +36574, +36594, +36594, +36605, +36621, +36621, +36641, +36641, +36641, +36659, +36682, +36682, +36682, +36682, +36705, +36705, +36705, +36720, +36720, +36755, +36755, +36771, +36771, +36771, +36788, +36806, +36835, +36845, +36875, +36875, +36903, +36921, +36928, +36928, +36940, +36940, +36940, +36966, +36966, +36973, +36983, +36998, +37004, +37014, +37024, +37024, +37032, +37038, +37038, +37061, +37074, +37074, +37091, +37098, +37105, +37105, +37133, +37141, +37141, +37148, +37191, +37191, +37197, +37197, +37210, +37224, +37224, +37231, +37250, +37257, +37273, +37273, +37280, +37287, +37294, +37300, +37307, +37330, +37348, +37348, +37359, +37359, +37359, +37377, +37392, +37398, +37412, +37431, +37469, +37486, +37508, +37517, +37535, +37535, +37542, +37542, +37549, +37549, +37549, +37549, +37556, +37576, +37576, +37583, +37590, +37597, +37604, +37604, +37621, +37635, +37676, +37676, +37704, +37711, +37728, +37728, +37737, +37737, +37737, +37750, +37757, +37778, +37785, +37785, +37819, +37826, +37833, +37843, +37850, +37869, +37914, +37921, +37935, +37942, +37949, +37982, +38013, +38013, +38013, +38023, +38057, +38077, +38097, +38110, +38117, +38123, +38133, +38133, +38133, +38140, +38140, +38148, +38159, +38179, +38192, +38205, +38218, +38218, +38218, +38218, +38218, +38218, +38218, +38218, +38218, +38218, +38218, +38218, +38225, +38225, +38230, +38246, +38258, +38280, +38287, +38294, +38294, +38294, +38301, +38318, +38318, +38340, +38371, +38371, +38384, +38420, +38440, +38453, +38481, +38506, +38522, +38534, +38559, +38559, +38559, +38564, +38564, +38581, +38604, +38604, +38611, +38620, +38626, +38635, +38635, +38635, +38666, +38674, +38688, +38693, +38710, +38722, +38722, +38722, +38729, +38734, +38752, +38792, +38818, +38825, +38861, +38902, +38934, +38949, +38949, +38960, +38969, +38985, +38985, +38996, +39013, +39024, +39024, +39032, +39061, +39074, +39089, +39123, +39123, +39123, +39140, +39161, +39180, +39206, +39215, +39254, +39261, +39277, +39284, +39314, +39314, +39330, +39340, +39340, +39371, +39371, +39392, +39430, +39430, +39437, +39444, +39461, +39468, +39468, +39485, +39517, +39524, +39538, +39543, +39548, +39555, +39581, +39588, +39588, +39609, +39609, +39616, +39652, +39670, +39677, +39677, +39684, +39691, +39702, +39717, +39717, +39717, +39724, +39749, +39760, +39766, +39775, +39791, +39791, +39814, +39827, +39827, +39837, +39859}; + +static const char tldData[] = { +"com.cn\0" +"com.co\0" +"hb.cn\0" +"med.br\0conf.lv\0wallonie.museum\0" +"namsos.no\0" +"\xe7\xb6\xb2\xe7\xbb\x9c.hk\0farmers.museum\0rel.pl\0" +"com.cu\0" +"military.museum\0" +"*.jm\0convent.museum\0cymru.museum\0malvik.no\0" +"univ.sn\0" +"gliding.aero\0" +"wodzislaw.pl\0" +"com.dm\0!pref.iwate.jp\0tran\xc3\xb8y.no\0pila.pl\0" +"mb.it\0*.ke\0lib.ri.us\0" +"com.ec\0*.kh\0tr\xc3\xb8gstad.no\0" +"com.ee\0" +"mobi.gp\0" +"gran.no\0" +"wa.gov.au\0" +"com.dz\0kg.kr\0" +"zoological.museum\0gjerstad.no\0haugesund.no\0kharkov.ua\0" +"walbrzych.pl\0" +"civilization.museum\0" +"ha.no\0" +"*.kw\0" +"med.ec\0com.es\0" +"med.ee\0otago.museum\0svelvik.no\0" +"art.ht\0amber.museum\0elvendrell.museum\0rost.no\0" +"jx.cn\0gratangen.no\0" +"association.aero\0ca.it\0" +"zaporizhzhe.ua\0" +"com.fr\0" +"szex.hu\0" +"e-burg.ru\0" +"com.ge\0bokn.no\0" +"mordovia.ru\0" +"com.gh\0*.mm\0" +"com.gi\0z.se\0" +"cahcesuolo.no\0" +"hurdal.no\0joshkar-ola.ru\0" +"cadaques.museum\0ma.us\0" +"a.bg\0" +"com.gn\0bozen.it\0tambov.ru\0" +"*.gifu.jp\0*.tokyo.jp\0*.mt\0" +"com.gp\0travel\0cc.tx.us\0" +"com.gr\0hemne.no\0" +"*.ni\0" +"*.mz\0" +"cc.il.us\0" +"com.gy\0" +"zj.cn\0oksnes.no\0museum.tt\0" +"com.hk\0*.np\0" +"rc.it\0baseball.museum\0" +"com.hn\0exhibition.museum\0" +"h\xc3\xa1""bmer.no\0" +"com.hr\0" +"fg.it\0stathelle.no\0defense.tn\0" +"com.ht\0" +"qld.gov.au\0*.nz\0" +"davvenj\xc3\xa1rga.no\0*.om\0" +"vang.no\0" +"*.kumamoto.jp\0" +"vercelli.it\0usenet.pl\0" +"com.io\0stalbans.museum\0" +"com.iq\0" +"*.pg\0" +"com.is\0klabu.no\0skiptvet.no\0" +"med.ht\0field.museum\0" +"gr.it\0gj\xc3\xb8vik.no\0tromsa.no\0lib.mi.us\0" +"ca.na\0" +"hagebostad.no\0k12.ma.us\0" +"*.qa\0" +"*.niigata.jp\0" +"monzaebrianza.it\0com.jo\0comunica\xc3\xa7\xc3\xb5""es.museum\0" +"gr.jp\0" +"ballangen.no\0*.py\0" +"scienceandindustry.museum\0" +"nuoro.it\0com.kg\0" +"com.ki\0" +"im.it\0idv.tw\0" +"*.akita.jp\0com.km\0r\xc3\xb8ros.no\0sopot.pl\0" +"!pref.yamanashi.jp\0" +"com.kp\0" +"!pref.kochi.jp\0com.la\0" +"com.lb\0" +"com.lc\0stjordalshalsen.no\0sigdal.no\0cc.nm.us\0" +"samnanger.no\0" +"drobak.no\0" +"vt.it\0" +"catering.aero\0com.ky\0" +"com.kz\0cc.ca.us\0" +"com.lk\0" +"grosseto.it\0mosvik.no\0" +"namsskogan.no\0" +"loten.no\0" +"chirurgiens-dentistes.fr\0" +"com.lr\0bremanger.no\0" +"gs.cn\0" +"com.lv\0lib.co.us\0" +"com.mg\0" +"passenger-association.aero\0" +"com.ly\0yekaterinburg.ru\0" +"vladivostok.ru\0" +"com.mk\0beeldengeluid.museum\0" +"com.ml\0" +"art.pl\0" +"com.mo\0" +"britishcolumbia.museum\0tx.us\0" +"com.na\0sakhalin.ru\0*.sv\0" +"mc.it\0" +"amsterdam.museum\0udm.ru\0" +"com.mu\0" +"com.mv\0com.nf\0" +"com.mw\0com.ng\0il.us\0" +"geometre-expert.fr\0com.mx\0" +"med.ly\0com.my\0" +"ag.it\0" +"*.tr\0" +"!pref.oita.jp\0" +"hoyanger.no\0skedsmo.no\0" +"com.nr\0turystyka.pl\0" +"koebenhavn.museum\0" +"quebec.museum\0" +"stord.no\0*.uk\0" +"act.au\0" +"br.it\0cb.it\0gyeonggi.kr\0jobs.tt\0lib.hi.us\0" +"*.ve\0" +"*.saga.jp\0wildlife.museum\0com.pa\0" +"monzabrianza.it\0sciencehistory.museum\0stange.no\0oskol.ru\0principe.st\0*.uy\0" +"plaza.museum\0com.pe\0" +"com.pf\0" +"eigersund.no\0" +"com.ph\0" +"manx.museum\0marylhurst.museum\0" +"md.ci\0pi.it\0schweiz.museum\0com.pk\0" +"grp.lk\0fr\xc3\xb8ya.no\0com.pl\0press.se\0" +"us.com\0" +"b.bg\0cremona.it\0communication.museum\0art.sn\0" +"med.pa\0" +"com.pr\0" +"com.ps\0" +"com.pt\0" +"k12.in.us\0" +"ah.cn\0bahcavuotna.no\0" +"sondrio.it\0arkhangelsk.ru\0" +"cargo.aero\0" +"council.aero\0" +"museum.mv\0hattfjelldal.no\0spydeberg.no\0med.pl\0" +"niepce.museum\0museum.mw\0" +"anthropology.museum\0" +"pharmacien.fr\0smola.no\0" +"fin.ec\0" +"selbu.no\0" +"workinggroup.aero\0nm.us\0" +"museum.no\0com.re\0" +"cc.vt.us\0" +"village.museum\0" +"ca.us\0" +"*.sapporo.jp\0" +"teramo.it\0" +"com.ro\0" +"*.ye\0" +"com.sa\0" +"com.sb\0" +"so.it\0com.sc\0" +"jolster.no\0com.sd\0" +"com.ru\0" +"com.rw\0com.sg\0" +"sydney.museum\0" +"sa.edu.au\0" +"tom.ru\0" +"com.sl\0*.za\0" +"\xe7\xbd\x91\xe7\xb5\xa1.hk\0naturbruksgymn.se\0com.sn\0" +"assedic.fr\0com.so\0" +"!pref.mie.jp\0*.yu\0" +"med.sa\0" +"newspaper.museum\0holmestrand.no\0dnepropetrovsk.ua\0" +"christiansburg.museum\0roan.no\0" +"pesaro-urbino.it\0med.sd\0com.st\0" +"s\xc3\xb8gne.no\0" +"nuernberg.museum\0" +"*.zm\0" +"com.sy\0" +"*.nagano.jp\0com.tj\0" +"nt.gov.au\0news.hu\0paderborn.museum\0" +"boston.museum\0" +"com.tn\0" +"com.to\0" +"broadcast.museum\0" +"com.ua\0" +"*.zw\0" +"baikal.ru\0" +"bykle.no\0com.tt\0" +"verdal.no\0" +"roros.no\0" +"fi.cr\0carboniaiglesias.it\0chuvashia.ru\0com.tw\0" +"k12.ca.us\0" +"eidsvoll.no\0" +"*.ishikawa.jp\0" +"dolls.museum\0" +"naval.museum\0" +"karasjok.no\0tysvar.no\0" +"bielawa.pl\0com.vc\0" +"svalbard.no\0deatnu.no\0rnd.ru\0" +"grandrapids.museum\0" +"bauern.museum\0k12.pr.us\0" +"press.ma\0" +"*.kagawa.jp\0fribourg.museum\0przeworsk.pl\0com.vi\0" +"com.uz\0" +"babia-gora.pl\0" +"com.vn\0" +"med.pro\0" +"suedtirol.it\0kursk.ru\0" +"bonn.museum\0" +"lt.it\0" +"design.aero\0microlight.aero\0americanantiques.museum\0meland.no\0" +"insurance.aero\0aarborte.no\0" +"kh.ua\0" +"macerata.it\0architecture.museum\0" +"rovigo.it\0rawa-maz.pl\0" +"store.nf\0levanger.no\0" +"b\xc3\xa1jddar.no\0" +"not.br\0" +"com.ws\0" +"!pref.kagawa.jp\0" +"!omanpost.om\0" +"vt.us\0" +"gs.ah.no\0vladikavkaz.ru\0" +"no.it\0" +"in.na\0szkola.pl\0a.se\0" +"aid.pl\0" +"workshop.museum\0vegarshei.no\0" +"sund.no\0" +"bs.it\0flora.no\0" +"agriculture.museum\0" +"koeln.museum\0" +"minnesota.museum\0k12.il.us\0" +"froya.no\0" +"aeroport.fr\0" +"davvenjarga.no\0zgora.pl\0ivano-frankivsk.ua\0" +"*.gunma.jp\0" +"amot.no\0" +"mus.br\0chungbuk.kr\0" +"ggf.br\0lorenskog.no\0" +"jeonbuk.kr\0" +"k12.vi.us\0" +"c.bg\0sande.more-og-romsdal.no\0" +"perugia.it\0" +"massa-carrara.it\0" +"michigan.museum\0" +"archaeology.museum\0mosj\xc3\xb8""en.no\0czest.pl\0koenig.ru\0\xe0\xb6\xbd\xe0\xb6\x82\xe0\xb6\x9a\xe0\xb7\x8f\0" +"mobi.tt\0" +"kraanghke.no\0" +"cc.in.us\0" +"re.it\0lib.vt.us\0" +"dell-ogliastra.it\0" +"s\xc3\xb8mna.no\0" +"k12.wv.us\0" +"gok.pk\0fh.se\0" +"luzern.museum\0" +"fi.it\0swidnica.pl\0" +"cbg.ru\0" +"latina.it\0" +"vibovalentia.it\0" +"modum.no\0" +"safety.aero\0" +"sp.it\0" +"science.museum\0ah.no\0" +"norddal.no\0" +"cc.na\0" +"re.kr\0" +"dielddanuorri.no\0" +"force.museum\0" +"torino.it\0cc.md.us\0" +"artanddesign.museum\0pisz.pl\0" +"olsztyn.pl\0" +"unsa.ba\0rade.no\0vinnica.ua\0" +"in.rs\0astrakhan.ru\0" +"sogne.no\0" +"homebuilt.aero\0" +"polkowice.pl\0" +"hole.no\0health.vn\0" +"fj.cn\0" +"davvesiida.no\0" +"vic.au\0" +"kongsberg.no\0" +"pub.sa\0" +"vv.it\0" +"!pref.tottori.jp\0" +"*.sendai.jp\0in.th\0" +"lib.pa.us\0" +"chiropractic.museum\0" +"mobi.na\0aca.pro\0" +"konyvelo.hu\0sciencecenters.museum\0" +"he.cn\0" +"in.ua\0" +"!city.nagoya.jp\0" +"muenchen.museum\0" +"psi.br\0" +"maryland.museum\0" +"!statecouncil.om\0" +"tr\xc3\xa6na.no\0" +"!pref.yamagata.jp\0jewishart.museum\0" +"lu.it\0me.it\0" +"chel.ru\0" +"tatarstan.ru\0" +"adult.ht\0in.us\0" +"kafjord.no\0" +"\xd7\x99\xd7\xa8\xd7\x95\xd7\xa9\xd7\x9c\xd7\x99\xd7\x9d.museum\0" +"net.ac\0k12.ec\0" +"net.ae\0bashkiria.ru\0" +"net.af\0!omantel.om\0" +"net.ag\0" +"net.ai\0" +"!pref.toyama.jp\0" +"net.al\0timekeeping.museum\0" +"net.an\0design.museum\0fin.tn\0" +"ethnology.museum\0" +"perso.ht\0asker.no\0b.se\0" +"net.ba\0" +"net.bb\0flanders.museum\0" +"mincom.tn\0" +"frana.no\0" +"bt.it\0" +"net.bh\0" +"auto.pl\0" +"net.az\0" +"treviso.it\0" +"war.museum\0" +"net.bm\0" +"langevag.no\0m\xc3\xa5lselv.no\0" +"net.bo\0" +"gol.no\0" +"folkebibl.no\0" +"net.br\0" +"net.bs\0troandin.no\0saotome.st\0lib.tn.us\0" +"md.us\0k12.ut.us\0" +"d.bg\0cambridge.museum\0\xc3\xa5s.no\0" +"net.ci\0" +"net.bz\0" +"sch.ae\0undersea.museum\0odda.no\0" +"net.cn\0" +"net.co\0c.la\0" +"gliwice.pl\0" +"aurskog-h\xc3\xb8land.no\0" +"andria-trani-barletta.it\0" +"net.cu\0loab\xc3\xa1t.no\0" +"rep.kp\0" +"\xe7\xbb\x84\xe7\xb9\x94.hk\0" +"gallery.museum\0" +"\xc3\xb8rland.no\0" +"store.ro\0" +"net.dm\0" +"somna.no\0" +"hemnes.no\0" +"ringebu.no\0k12.ky.us\0" +"net.ec\0" +"dn.ua\0" +"tarnobrzeg.pl\0" +"soc.lk\0" +"romsa.no\0" +"bamble.no\0" +"net.dz\0lutsk.ua\0" +"barlettatraniandria.it\0ta.it\0countryestate.museum\0" +"kaszuby.pl\0" +"*.yamaguchi.jp\0cranbrook.museum\0store.st\0" +"southcarolina.museum\0lib.md.us\0" +"textile.museum\0" +"cheltenham.museum\0hurum.no\0" +"*.oita.jp\0" +"shop.ht\0cc.me.us\0" +"shop.hu\0turin.it\0" +"louvre.museum\0" +"k12.ar.us\0" +"consulting.aero\0" +"gv.ao\0" +"sauherad.no\0" +"gv.at\0net.ge\0" +"ostre-toten.no\0lib.ok.us\0" +"net.gg\0pilots.museum\0" +"2000.hu\0geology.museum\0" +"net.gn\0" +"mazowsze.pl\0bir.ru\0" +"net.gp\0" +"net.gr\0" +"oxford.museum\0" +"per.la\0" +"eastafrica.museum\0" +"meeres.museum\0" +"net.gy\0*.shizuoka.jp\0" +"\xe5\x95\x86\xe6\xa5\xad.tw\0" +"net.hk\0" +"net.hn\0" +"philadelphiaarea.museum\0" +"osen.no\0" +"net.ht\0net.id\0" +"fundacio.museum\0" +"j\xc3\xb8rpeland.no\0" +"\xe6\x95\x99\xe8\x82\xb2.hk\0" +"divtasvuodna.no\0" +"student.aero\0sch.gg\0net.im\0" +"\xe7\xbd\x91\xe7\xbb\x9c.cn\0net.in\0" +"net.iq\0" +"net.ir\0" +"net.is\0" +"net.je\0" +"kepno.pl\0lapy.pl\0" +"per.nf\0" +"gov\0*.shimane.jp\0" +"artcenter.museum\0" +"k\xc3\xa5""fjord.no\0" +"net.jo\0" +"eu.int\0" +"c.se\0" +"net.kg\0" +"ce.it\0net.ki\0" +"sch.id\0os.hedmark.no\0" +"columbus.museum\0" +"arteducation.museum\0" +"net.kn\0" +"kr.com\0" +"net.la\0bushey.museum\0cc.gu.us\0" +"net.lb\0" +"net.lc\0" +"gs.bu.no\0" +"e164.arpa\0" +"chieti.it\0labour.museum\0" +"sch.ir\0creation.museum\0krodsherad.no\0" +"net.ky\0" +"net.kz\0me.us\0" +"e.bg\0sch.je\0net.lk\0" +"zlg.br\0suwalki.pl\0" +"\xe5\x80\x8b\xe4\xba\xba.hk\0net.ma\0" +"net.lr\0" +"sch.jo\0notaires.km\0net.me\0" +"net.lv\0karate.museum\0" +"net.ly\0karm\xc3\xb8y.no\0" +"rg.it\0" +"net.mk\0" +"net.ml\0evenes.no\0" +"ngo.lk\0net.mo\0egyptian.museum\0" +"marine.ru\0" +"realestate.pl\0" +"net.mu\0" +"net.mv\0net.nf\0" +"net.mw\0net.ng\0gda.pl\0" +"net.mx\0" +"freemasonry.museum\0net.my\0enebakk.no\0" +"karlsoy.no\0" +"\xe7\xbd\x91\xe7\xbb\x9c.hk\0\xc3\xb8rskog.no\0" +"randaberg.no\0" +"club.aero\0" +"certification.aero\0sr.it\0" +"center.museum\0so.gov.pl\0" +"caa.aero\0" +"sch.lk\0tvedestrand.no\0" +"net.nr\0" +"luroy.no\0" +"aukra.no\0s\xc3\xa1lat.no\0lib.me.us\0" +"ddr.museum\0" +"york.museum\0stryn.no\0k12.nm.us\0" +"per.sg\0" +"judaica.museum\0" +"verona.it\0" +"agdenes.no\0" +"cng.br\0sch.ly\0" +"net.pa\0" +"author.aero\0" +"naturalhistory.museum\0steiermark.museum\0bu.no\0" +"sn\xc3\xa5sa.no\0net.pe\0" +"net.ph\0" +"savannahga.museum\0batsfjord.no\0lib.oh.us\0" +"net.pk\0" +"net.pl\0" +"net.pn\0" +"washingtondc.museum\0" +"net.pr\0" +"net.ps\0" +"net.pt\0" +"nordkapp.no\0" +"emergency.aero\0krokstadelva.no\0" +"satx.museum\0ngo.ph\0omsk.ru\0" +"texas.museum\0" +"ngo.pl\0" +"mantova.it\0gu.us\0" +"!pref.shiga.jp\0isa.us\0" +"usa.museum\0" +"gb.net\0k12.vi\0" +"iveland.no\0" +"tempio-olbia.it\0" +"net.sa\0" +"net.sb\0" +"works.aero\0net.sc\0komvux.se\0" +"net.sd\0" +"net.ru\0" +"0.bg\0" +"forlicesena.it\0net.rw\0net.sg\0" +"klodzko.pl\0" +"detroit.museum\0wegrow.pl\0" +"net.sl\0" +"glogow.pl\0" +"store.bb\0air.museum\0" +"net.so\0" +"katowice.pl\0" +"nsk.ru\0" +"pisa.it\0eid.no\0" +"net.st\0" +"film.hu\0" +"tuva.ru\0d.se\0" +"net.th\0" +"net.sy\0" +"viterbo.it\0tsaritsyn.ru\0perso.sn\0net.tj\0" +"lib.gu.us\0" +"plc.co.im\0sec.ps\0" +"r\xc3\xa1hkker\xc3\xa1vju.no\0kazimierz-dolny.pl\0net.tn\0" +"net.to\0" +"veterinaire.km\0" +"net.ua\0" +"info.ht\0net.tt\0" +"info.hu\0" +"exchange.aero\0" +"sch.sa\0net.tw\0" +"andriatranibarletta.it\0perso.tn\0" +"f.bg\0malselv.no\0" +"net.vc\0" +"trana.no\0" +"ns.ca\0" +"net.vi\0" +"lucca.it\0oristano.it\0" +"usarts.museum\0net.vn\0" +"gon.pk\0" +"pl.ua\0" +"eastcoast.museum\0" +"novara.it\0" +"k12.ks.us\0" +"dp.ua\0" +"nesseby.no\0" +"!pref.wakayama.jp\0" +"repbody.aero\0" +"jamison.museum\0lugansk.ua\0" +"ss.it\0" +"alessandria.it\0" +"hadsel.no\0net.ws\0" +"\xe0\xae\x9a\xe0\xae\xbf\xe0\xae\x99\xe0\xaf\x8d\xe0\xae\x95\xe0\xae\xaa\xe0\xaf\x8d\xe0\xae\xaa\xe0\xaf\x82\xe0\xae\xb0\xe0\xaf\x8d\0" +"veterinaire.fr\0leirfjord.no\0" +"massacarrara.it\0north.museum\0" +"project.museum\0" +"other.nf\0" +"k12.nh.us\0" +"mat.br\0artgallery.museum\0" +"sr.gov.pl\0" +"gamvik.no\0" +"info.ec\0lancashire.museum\0" +"fm.br\0ltd.co.im\0" +"americana.museum\0southwest.museum\0cc.ak.us\0" +"enna.it\0lunner.no\0" +"v\xc3\xa5gan.no\0" +"mari.ru\0" +"accident-investigation.aero\0" +"sor-aurdal.no\0lib.ny.us\0" +"novosibirsk.ru\0" +"bjugn.no\0" +"n\xc3\xa6r\xc3\xb8y.no\0ostrowwlkp.pl\0" +"info.bb\0foundation.museum\0" +"brand.se\0" +"info.at\0!pref.akita.jp\0l\xc3\xb8ten.no\0" +"coal.museum\0miners.museum\0" +"glass.museum\0" +"info.az\0" +"frog.museum\0szczytno.pl\0nov.ru\0" +"sunndal.no\0" +"gen.in\0" +"gx.cn\0" +"web.co\0*.mie.jp\0hobol.no\0\xe5\x8f\xb0\xe6\xb9\xbe\0" +"logistics.aero\0plo.ps\0" +"erotika.hu\0" +"torsken.no\0" +"exeter.museum\0" +"info.co\0" +"selje.no\0" +"storfjord.no\0" +"barum.no\0lind\xc3\xa5s.no\0" +"leasing.aero\0" +"championship.aero\0fst.br\0" +"lierne.no\0" +"!gobiernoelectronico.ar\0""1.bg\0" +"corporation.museum\0" +"al.it\0*.miyagi.jp\0" +"*.aomori.jp\0" +"\xd8\xa7\xd9\x84\xd8\xa7\xd8\xb1\xd8\xaf\xd9\x86\0" +"amursk.ru\0" +"vestvagoy.no\0" +"\xd8\xa7\xdb\x8c\xd8\xb1\xd8\xa7\xd9\x86.ir\0cc.fl.us\0" +"os.hordaland.no\0" +"pistoia.it\0" +"tver.ru\0e.se\0" +"res.in\0*.yamagata.jp\0syzran.ru\0" +"capebreton.museum\0sandnessj\xc3\xb8""en.no\0" +"ternopil.ua\0" +"shop.pl\0" +"tank.museum\0" +"m\xc3\xa5s\xc3\xb8y.no\0" +"potenza.it\0time.museum\0" +"mjondalen.no\0" +"eng.br\0nedre-eiker.no\0" +"air-surveillance.aero\0" +"nt.au\0am.br\0pn.it\0" +"oystre-slidre.no\0ug.gov.pl\0" +"g.bg\0nesodden.no\0vologda.ru\0" +"parma.it\0tula.ru\0" +"*.nara.jp\0ak.us\0" +"nt.ca\0konin.pl\0" +"kiev.ua\0" +"skierv\xc3\xa1.no\0vestre-toten.no\0" +"ri.it\0botanical.museum\0farsund.no\0veg\xc3\xa5rshei.no\0dagestan.ru\0" +"ind.br\0k-uralsk.ru\0" +"rahkkeravju.no\0cmw.ru\0" +"canada.museum\0" +"fm.it\0" +"cc.wi.us\0" +"web.id\0aver\xc3\xb8y.no\0" +"dudinka.ru\0" +"baghdad.museum\0fitjar.no\0grane.no\0" +"gs.fm.no\0" +"sumy.ua\0" +"al.no\0" +"westfalen.museum\0" +"oregon.museum\0" +"bruxelles.museum\0elk.pl\0" +"planetarium.museum\0sn\xc3\xa5""ase.no\0" +"s\xc3\xb8rreisa.no\0" +"gs.st.no\0skien.no\0" +"bible.museum\0ivanovo.ru\0" +"avellino.it\0" +"tgory.pl\0" +"family.museum\0" +"ppg.br\0k12.as.us\0" +"trader.aero\0gorlice.pl\0" +"cc.al.us\0" +"ogliastra.it\0" +"is.it\0lib.nv.us\0" +"dr.na\0" +"media.hu\0nesna.no\0fl.us\0" +"uri.arpa\0" +"bjerkreim.no\0" +"charter.aero\0" +"genova.it\0" +"it.ao\0botany.museum\0hapmir.no\0" +"educational.museum\0" +"helsinki.museum\0" +"memorial.museum\0" +"web.lk\0pharmacy.museum\0" +"aircraft.aero\0appspot.com\0" +"ferrara.it\0beskidy.pl\0" +"hi.cn\0" +"taxi.aero\0flekkefjord.no\0" +"varoy.no\0" +"ragusa.it\0ambulance.museum\0" +"can.museum\0" +"*.osaka.jp\0isleofman.museum\0fm.no\0warmia.pl\0" +"educator.aero\0asmatart.museum\0" +"mi.it\0" +"kutno.pl\0" +"skedsmokorset.no\0" +"2.bg\0" +"*.kagoshima.jp\0km.ua\0" +"!city.sendai.jp\0" +"web.nf\0st.no\0cc.ri.us\0" +"reggiocalabria.it\0" +"wi.us\0" +"ancona.it\0newjersey.museum\0nnov.ru\0" +"f.se\0" +"ind.in\0" +"info.vn\0" +"andoy.no\0" +"ch.it\0fredrikstad.no\0guovdageaidnu.no\0" +"fjaler.no\0" +"sa.com\0" +"gs.nt.no\0" +"masfjorden.no\0" +"pordenone.it\0" +"po.it\0basel.museum\0" +"chambagri.fr\0" +"h.bg\0web.pk\0" +"london.museum\0" +"sciencecenter.museum\0\xe0\xb9\x84\xe0\xb8\x97\xe0\xb8\xa2\0" +"unbi.ba\0augustow.pl\0" +"wolomin.pl\0" +"notaires.fr\0tcm.museum\0al.us\0" +"nu.ca\0!pref.nagano.jp\0" +"info.tn\0" +"lib.wa.us\0" +"ed.ao\0info.tt\0" +"barreau.bj\0" +"k12.wy.us\0" +"pp.az\0gop.pk\0" +"int\0" +"l\xc3\xb8renskog.no\0podhale.pl\0" +"voagat.no\0" +"telekommunikation.museum\0" +"qld.au\0" +"te.it\0freiburg.museum\0snasa.no\0" +"gjemnes.no\0" +"sejny.pl\0" +"media.pl\0" +"skjak.no\0" +"watchandclock.museum\0" +"ed.ci\0pacific.museum\0" +"theater.museum\0info.ro\0" +"uk.com\0" +"campobasso.it\0aquarium.museum\0tysv\xc3\xa6r.no\0" +"kragero.no\0" +"windmill.museum\0info.sd\0" +"sologne.museum\0sande.m\xc3\xb8re-og-romsdal.no\0" +"nt.no\0cc.mi.us\0" +"ed.cr\0" +"academy.museum\0zachpomor.pl\0" +"tananger.no\0v\xc3\xa1rgg\xc3\xa1t.no\0ri.us\0" +"federation.aero\0" +"web.tj\0" +"matta-varjjat.no\0" +"steigen.no\0" +"local\0akrehamn.no\0" +"!pref.chiba.jp\0info.pk\0" +"info.pl\0""6bone.pl\0" +"klepp.no\0kherson.ua\0" +"ketrzyn.pl\0info.pr\0" +"sweden.museum\0" +"lardal.no\0" +"!retina.ar\0gz.cn\0" +"barletta-trani-andria.it\0vikna.no\0" +"bearalv\xc3\xa1hki.no\0" +"broker.aero\0gov.nc.tr\0" +"info.na\0k12.fl.us\0" +"hembygdsforbund.museum\0" +"entertainment.aero\0jerusalem.museum\0l\xc3\xa6rdal.no\0" +"hitra.no\0sogndal.no\0" +"farmequipment.museum\0info.mv\0info.nf\0\xc3\xa5lg\xc3\xa5rd.no\0" +"la-spezia.it\0" +"skanland.no\0fam.pk\0" +"skole.museum\0" +"art.museum\0" +"presidio.museum\0" +"3.bg\0public.museum\0" +"h\xc3\xb8yanger.no\0zagan.pl\0" +"an.it\0" +"philadelphia.museum\0info.nr\0" +"pesarourbino.it\0g\xc3\xa1ivuotna.no\0" +"poltava.ua\0" +"nt.ro\0" +"station.museum\0" +"mi.th\0" +"altoadige.it\0" +"nu.it\0" +"usculture.museum\0g.se\0" +"h\xc3\xa1mm\xc3\xa1rfeasta.no\0" +"daegu.kr\0info.la\0" +"dovre.no\0" +"ci.it\0horology.museum\0" +"bergbau.museum\0" +"press.museum\0" +"gangwon.kr\0" +"!city.kitakyushu.jp\0sor-varanger.no\0cc.hi.us\0" +"fuossko.no\0" +"zp.ua\0" +"american.museum\0" +"fl\xc3\xa5.no\0mi.us\0" +"i.bg\0" +"od.ua\0" +"encyclopedic.museum\0" +"ind.tn\0" +"midatlantic.museum\0" +"newyork.museum\0" +"castres.museum\0" +"act.edu.au\0" +"topology.museum\0" +"ed.jp\0" +"of.by\0" +"iris.arpa\0inf.br\0askim.no\0pyatigorsk.ru\0" +"nord-fron.no\0nsn.us\0" +"beardu.no\0" +"agrar.hu\0corvette.museum\0chtr.k12.ma.us\0" +"figueres.museum\0" +"!pref.gunma.jp\0medizinhistorisches.museum\0" +"tjeldsund.no\0" +"nebraska.museum\0" +"bellevue.museum\0" +"abo.pa\0k12.al.us\0" +"info.ki\0" +"inf.cu\0sv.it\0" +"jfk.museum\0" +"!city.osaka.jp\0swinoujscie.pl\0" +"bydgoszcz.pl\0" +"!city.kyoto.jp\0" +"uvic.museum\0" +"madrid.museum\0steinkjer.no\0" +"lib.ma.us\0" +"sirdal.no\0" +"n\xc3\xb8tter\xc3\xb8y.no\0" +"taranto.it\0starnberg.museum\0" +"vic.gov.au\0pvt.ge\0pors\xc3\xa1\xc5\x8bgu.no\0" +"naroy.no\0ris\xc3\xb8r.no\0" +"va.it\0salem.museum\0starachowice.pl\0" +"!nawrastelecom.om\0" +"town.museum\0te.ua\0" +"se.net\0" +"kemerovo.ru\0" +"lerdal.no\0" +"gs.va.no\0" +"kms.ru\0" +"consulado.st\0" +"haram.no\0" +"tysnes.no\0" +"!pref.ibaraki.jp\0hamburg.museum\0" +"\xc3\xa5rdal.no\0" +"airline.aero\0" +"crew.aero\0newhampshire.museum\0" +"muenster.museum\0" +"aerodrome.aero\0" +"heroy.nordland.no\0belau.pw\0" +"kamchatka.ru\0" +"b\xc3\xa5""d\xc3\xa5""ddj\xc3\xa5.no\0lillehammer.no\0hi.us\0" +"hk.cn\0" +"!city.kobe.jp\0berlevag.no\0" +"ardal.no\0" +"askoy.no\0" +"vardo.no\0" +"fyresdal.no\0" +"sassari.it\0" +"video.hu\0drammen.no\0" +"lyngen.no\0nakhodka.ru\0" +"ip6.arpa\0games.hu\0" +"online.museum\0" +"k12.sd.us\0" +"4.bg\0sebastopol.ua\0" +"ao.it\0atlanta.museum\0" +"lebork.pl\0" +"ravenna.it\0" +"railway.museum\0songdalen.no\0" +"!pref.shimane.jp\0delaware.museum\0ed.pw\0" +"f\xc3\xb8rde.no\0" +"living.museum\0" +"juif.museum\0" +"lomza.pl\0" +"h.se\0" +"!bl.uk\0" +"portland.museum\0\xe7\xb5\x84\xe7\xb9\x94.tw\0" +"stj\xc3\xb8rdal.no\0" +"lecce.it\0" +"bz.it\0" +"farmstead.museum\0va.no\0" +"express.aero\0!nacion.ar\0" +"presse.km\0gs.of.no\0" +"\xe5\x8f\xb0\xe7\x81\xa3\0" +"og.ao\0gyeongbuk.kr\0vestv\xc3\xa5g\xc3\xb8y.no\0" +"prd.fr\0" +"pp.ru\0pp.se\0" +"forum.hu\0!pref.saga.jp\0" +"kvalsund.no\0" +"!city.kawasaki.jp\0n\xc3\xa5\xc3\xa5mesjevuemie.no\0" +"j.bg\0" +"vlaanderen.museum\0" +"cc.va.us\0" +"\xd8\xa7\xd9\x8a\xd8\xb1\xd8\xa7\xd9\x86.ir\0alabama.museum\0" +"school.museum\0her\xc3\xb8y.m\xc3\xb8re-og-romsdal.no\0" +"\xc3\xa5seral.no\0" +"traniandriabarletta.it\0" +"flog.br\0" +"presse.ml\0" +"k\xc3\xa1r\xc3\xa1\xc5\xa1johka.no\0" +"historisch.museum\0" +"farm.museum\0palmsprings.museum\0oslo.no\0dyroy.no\0stranda.no\0" +"gs.rl.no\0r\xc3\xa5""de.no\0" +"bomlo.no\0s\xc3\xb8rum.no\0" +"jan-mayen.no\0ivgu.no\0" +"coop\0" +"agr.br\0k12.ak.us\0" +"!nic.ar\0catanzaro.it\0fusa.no\0" +"hu.com\0" +"inf.mk\0" +"vet.br\0" +"k12.mt.us\0k12.nd.us\0" +"vlog.br\0\xe5\x85\xac\xe5\x8f\xb8.cn\0sandnessjoen.no\0" +"lib.az.us\0" +"nsw.edu.au\0of.no\0\xc3\xb8stre-toten.no\0" +"*.okinawa.jp\0" +"vb.it\0" +"asso.fr\0firenze.it\0" +"trieste.it\0" +"\xe5\x85\xac\xe5\x8f\xb8.hk\0" +"museet.museum\0" +"prd.km\0" +"navuotna.no\0lib.ca.us\0" +"cc.nv.us\0" +"asso.gp\0" +"meraker.no\0" +"h\xc3\xa1pmir.no\0" +"i.ph\0" +"sx.cn\0jeonnam.kr\0" +"halden.no\0" +"fed.us\0" +"medio-campidano.it\0tsk.ru\0" +"barcelona.museum\0" +"giessen.museum\0roma.museum\0" +"hl.cn\0" +"\xe0\xae\x87\xe0\xae\xb2\xe0\xae\x99\xe0\xaf\x8d\xe0\xae\x95\xe0\xaf\x88\0" +"biz.bb\0benevento.it\0rl.no\0bygland.no\0" +"port.fr\0asso.ht\0prd.mg\0" +"biz.at\0" +"tra.kp\0" +"*.aichi.jp\0khabarovsk.ru\0" +"campidano-medio.it\0" +"biz.az\0" +"newmexico.museum\0va.us\0" +"finearts.museum\0" +"murmansk.ru\0" +"\xc3\xb8rsta.no\0radom.pl\0k12.sc.us\0" +"5.bg\0kvinesdal.no\0" +"ap.it\0" +"*.fukushima.jp\0" +"asso.bj\0" +"mad.museum\0" +"lebesby.no\0" +"og.it\0glas.museum\0sauda.no\0" +"i.se\0" +"k12.tx.us\0" +"asso.ci\0mk.ua\0" +"cesena-forli.it\0" +"lowicz.pl\0" +"k12.id.us\0" +"tas.gov.au\0" +"lukow.pl\0" +"utazas.hu\0" +"maritimo.museum\0bjark\xc3\xb8y.no\0" +"adm.br\0" +"pr.it\0lib.vi.us\0" +"bergamo.it\0k12.va.us\0" +"k.bg\0" +"railroad.museum\0" +"!british-library.uk\0" +"cincinnati.museum\0" +"sorreisa.no\0" +"asso.dz\0!nel.uk\0" +"rm.it\0" +"nv.us\0" +"nx.cn\0gos.pk\0" +"vic.edu.au\0" +"biella.it\0tjome.no\0" +"r\xc3\xb8yken.no\0" +"beiarn.no\0" +"qc.ca\0" +"georgia.museum\0square.museum\0" +"labor.museum\0omasvuotna.no\0cc.la.us\0" +"br.com\0reggioemilia.it\0" +"kristiansund.no\0" +"sorum.no\0" +"orsta.no\0" +"furniture.museum\0surrey.museum\0eng.pro\0" +"asn.lv\0balat.no\0" +"lavangen.no\0sld.pa\0" +"fla.no\0k12.ms.us\0k12.nc.us\0" +"bardu.no\0" +"donostia.museum\0" +"club.tw\0" +"elburg.museum\0" +"gs.hl.no\0lodingen.no\0" +"samara.ru\0" +"vc.it\0*.nagasaki.jp\0" +"fosnes.no\0" +"fuel.aero\0" +"qc.com\0" +"skjervoy.no\0" +"bill.museum\0kv\xc3\xa6""fjord.no\0" +"skydiving.aero\0*.tokushima.jp\0" +"!congresodelalengua3.ar\0laquila.it\0k12.ct.us\0" +"gorge.museum\0linz.museum\0sherbrooke.museum\0" +"tranoy.no\0ing.pa\0" +"ptz.ru\0" +"kr.it\0prato.it\0stat.no\0" +"\xd0\xb8\xd0\xba\xd0\xbe\xd0\xbc.museum\0" +"cosenza.it\0" +"stj\xc3\xb8rdalshalsen.no\0" +"finland.museum\0leka.no\0cc.pr.us\0" +"historichouses.museum\0s\xc3\xa1l\xc3\xa1t.no\0" +"venice.it\0" +"biz.ki\0" +"g\xc3\xa1ls\xc3\xa1.no\0" +"\xe7\xbb\x84\xe7\xbb\x87.hk\0" +"*.yamanashi.jp\0" +"rad\xc3\xb8y.no\0" +"6.bg\0" +"fareast.ru\0" +"paragliding.aero\0ba.it\0aq.it\0" +"sk\xc3\xa5nland.no\0" +"its.me\0" +"us.na\0" +"hl.no\0cc.ga.us\0" +"ac\0granvin.no\0" +"ad\0qld.edu.au\0!city.sapporo.jp\0" +"ae\0" +"af\0" +"ag\0crotone.it\0" +"dallas.museum\0" +"ai\0brussels.museum\0" +"dali.museum\0" +"la.us\0" +"al\0salzburg.museum\0" +"am\0" +"an\0cl.it\0" +"ao\0" +"aq\0ba\0" +"bb\0" +"as\0lajolla.museum\0" +"at\0" +"be\0" +"bf\0inderoy.no\0snz.ru\0" +"aw\0bg\0" +"ax\0bh\0cim.br\0ltd.gi\0biz.mv\0" +"bi\0xz.cn\0\xe7\xb5\x84\xe7\xb9\x94.hk\0biz.mw\0" +"az\0bj\0" +"bm\0tranibarlettaandria.it\0naamesjevuemie.no\0" +"chattanooga.museum\0" +"bo\0" +"l.bg\0" +"ca\0" +"br\0stateofdelaware.museum\0" +"bs\0cc\0" +"cd\0biz.nr\0" +"cf\0berlev\xc3\xa5g.no\0" +"bw\0cg\0snaase.no\0" +"ch\0harvestcelebration.museum\0ck.ua\0" +"by\0ci\0" +"bz\0bahccavuotna.no\0" +"cl\0yuzhno-sakhalinsk.ru\0" +"cm\0halsa.no\0lyngdal.no\0" +"cn\0" +"co\0rn.it\0childrens.museum\0frankfurt.museum\0" +"cr\0" +"pskov.ru\0" +"cu\0de\0" +"cv\0fr.it\0lib.ky.us\0" +"aseral.no\0kvam.no\0" +"cx\0hellas.museum\0" +"hof.no\0" +"cz\0dj\0k12.la.us\0" +"dk\0moscow.museum\0" +"sosnowiec.pl\0" +"dm\0biz.pk\0" +"schokoladen.museum\0biz.pl\0" +"far.br\0arna.no\0tynset.no\0" +"even\xc3\xa1\xc5\xa1\xc5\xa1i.no\0" +"ec\0" +"biz.pr\0" +"ee\0celtic.museum\0" +"scientist.aero\0modern.museum\0" +"pr.us\0" +"dz\0" +"mj\xc3\xb8ndalen.no\0s\xc3\xb8r-odal.no\0" +"!nic.tr\0" +"conference.aero\0vestnes.no\0k12.mn.us\0" +"!pref.hiroshima.jp\0" +"es\0trapani.it\0" +"fermo.it\0vard\xc3\xb8.no\0" +"eu\0gs.hm.no\0r\xc3\xb8""d\xc3\xb8y.no\0stordal.no\0" +"gc.ca\0!nhs.uk\0" +"jgora.pl\0" +"fi\0stjordal.no\0" +"fm\0!mediaphone.om\0" +"kirov.ru\0pvt.k12.ma.us\0" +"fo\0" +"ga\0hyllestad.no\0" +"gov.ac\0fr\0andriabarlettatrani.it\0ga.us\0" +"gov.ae\0gd\0estate.museum\0" +"gov.af\0ge\0tolga.no\0" +"gf\0asso.re\0cc.oh.us\0" +"gg\0florida.museum\0" +"presse.ci\0gh\0" +"gi\0k12.dc.us\0" +"ltd.lk\0orland.no\0" +"gov.al\0" +"gl\0tokke.no\0" +"hanggliding.aero\0gm\0" +"hareid.no\0" +"gov.ba\0tj.cn\0gp\0" +"gov.bb\0gq\0" +"gov.as\0gr\0agrigento.it\0lc.it\0" +"gs\0kalmykia.ru\0aero.tt\0" +"gov.bf\0" +"county.museum\0" +"gov.bh\0hn.cn\0gw\0" +"gov.az\0gy\0assn.lk\0guernsey.museum\0" +"hk\0" +"gov.bm\0h\xc3\xa6gebostad.no\0biz.tj\0" +"hm\0computer.museum\0" +"gov.bo\0hn\0kl\xc3\xa6""bu.no\0" +"pulawy.pl\0" +"gov.br\0" +"trd.br\0gov.bs\0hr\0reggio-calabria.it\0historyofscience.museum\0lipetsk.ru\0" +"gov.cd\0*.nagoya.jp\0" +"ht\0id\0spjelkavik.no\0" +"hu\0ie\0aero.mv\0" +"marketplace.aero\0mn.it\0biz.tt\0" +"gov.by\0saintlouis.museum\0mer\xc3\xa5ker.no\0" +"gov.bz\0" +"7.bg\0gov.cl\0virtual.museum\0" +"gov.cm\0vennesla.no\0kr.ua\0" +"gov.cn\0im\0ar.it\0galsa.no\0rovno.ua\0" +"gov.co\0in\0" +"io\0limanowa.pl\0" +"iq\0k12.ga.us\0" +"ir\0" +"riik.ee\0is\0\xc3\xa1laheadju.no\0" +"gov.cu\0it\0hawaii.museum\0seaport.museum\0" +"je\0pubol.museum\0hm.no\0" +"gov.cx\0" +"*.chiba.jp\0" +"*.kawasaki.jp\0" +"k.se\0" +"gov.dm\0" +"aland.fi\0vik.no\0" +"yk.ca\0jo\0kobierzyce.pl\0" +"jp\0biz.vn\0" +"presse.fr\0lib.il.us\0\xe9\xa6\x99\xe6\xb8\xaf\0" +"gov.ec\0" +"transport.museum\0bronnoy.no\0" +"slg.br\0gov.ee\0asso.nc\0bievat.no\0" +"nyny.museum\0" +"kg\0" +"mo-i-rana.no\0" +"gov.dz\0ki\0" +"monmouth.museum\0" +"suldal.no\0" +"bc.ca\0km\0zt.ua\0" +"pt.it\0kn\0" +"fineart.museum\0" +"la\0" +"kr\0gulen.no\0" +"m.bg\0mo.cn\0lc\0alaheadju.no\0g\xc3\xa1\xc5\x8bgaviika.no\0" +"nowaruda.pl\0cc.ut.us\0" +"br\xc3\xb8nn\xc3\xb8y.no\0" +"ky\0li\0overhalla.no\0" +"kz\0khv.ru\0" +"lk\0" +"artdeco.museum\0" +"ma\0fortworth.museum\0kostroma.ru\0" +"ro.it\0kirkenes.no\0vestby.no\0" +"urbino-pesaro.it\0ls\0mc\0alstahaug.no\0" +"blog.br\0gov.ge\0lt\0md\0" +"lu\0me\0botanicgarden.museum\0" +"gov.gg\0lv\0oh.us\0" +"gov.gh\0mg\0valley.museum\0" +"gov.gi\0mh\0" +"ly\0sandiego.museum\0" +"mk\0" +"ml\0" +"gov.gn\0rollag.no\0naklo.pl\0" +"mn\0" +"mo\0" +"mp\0leirvik.no\0" +"gov.gr\0mq\0na\0cc.ks.us\0" +"mr\0" +"ms\0nc\0" +"valer.hedmark.no\0" +"mu\0ne\0" +"mv\0nf\0" +"mw\0" +"mx\0nord-odal.no\0jur.pro\0" +"my\0" +"gov.hk\0name.hr\0" +"nl\0" +"astronomy.museum\0lib.nm.us\0" +"catania.it\0" +"no\0" +"skjerv\xc3\xb8y.no\0" +"k12.ne.us\0" +"monza-e-della-brianza.it\0!pref.fukushima.jp\0nr\0" +"gov.ie\0" +"stuttgart.museum\0nu\0cc.mn.us\0" +"karasjohka.no\0" +"engine.aero\0bearalvahki.no\0" +"oyer.no\0" +"ve.it\0" +"gov.im\0froland.no\0cc.ar.us\0" +"gov.in\0magadan.ru\0" +"pescara.it\0" +"gov.iq\0usdecorativearts.museum\0" +"gov.ir\0pa\0" +"gov.is\0" +"gov.it\0lavagis.no\0" +"gov.je\0" +"naustdal.no\0pe\0k12.or.us\0" +"gd.cn\0carraramassa.it\0pf\0" +"ph\0" +"cc.ny.us\0" +"rissa.no\0" +"info\0pk\0pomorze.pl\0" +"pl\0" +"gov.jo\0asso.km\0pn\0" +"*.okayama.jp\0cieszyn.pl\0" +"freight.aero\0" +"pr\0" +"narvik.no\0ps\0" +"!pref.aichi.jp\0elverum.no\0pt\0" +"edunet.tn\0" +"gov.kg\0" +"flatanger.no\0marker.no\0pw\0" +"gov.ki\0nuremberg.museum\0" +"aip.ee\0" +"gov.km\0" +"gov.kn\0" +"gov.kp\0" +"rieti.it\0gov.la\0bajddar.no\0" +"gov.lb\0aviation.museum\0" +"gov.lc\0" +"asso.mc\0" +"re\0" +"ut.us\0" +"sa.gov.au\0gov.ky\0" +"mo.it\0gov.kz\0" +"gov.lk\0" +"iraq.museum\0" +"badajoz.museum\0" +"8.bg\0inder\xc3\xb8y.no\0" +"monticello.museum\0ro\0ks.ua\0" +"gov.ma\0svizzera.museum\0" +"gov.lr\0sa\0" +"matera.it\0sb\0" +"gov.lt\0rs\0sc\0" +"gov.me\0sd\0" +"gov.lv\0ru\0se\0" +"gov.mg\0" +"rw\0sg\0" +"gov.ly\0assisi.museum\0kids.museum\0sh\0" +"si\0" +"gov.mk\0" +"gov.ml\0sk\0" +"sl\0" +"gov.mn\0airguard.museum\0sm\0" +"gov.mo\0l.se\0sn\0" +"so\0" +"gov.mr\0ks.us\0" +"name.az\0sr\0" +"naturhistorisches.museum\0tc\0" +"trainer.aero\0cn.it\0urbinopesaro.it\0gov.mu\0nativeamerican.museum\0st\0td\0" +"gov.mv\0su\0" +"trentino.it\0gov.mw\0gov.ng\0tf\0" +"tg\0" +"co.ae\0venezia.it\0gov.my\0th\0" +"!pref.ehime.jp\0sy\0" +"co.ag\0lewismiller.museum\0ostrowiec.pl\0sz\0tj\0" +"tk\0" +"motorcycle.museum\0tl\0" +"birdart.museum\0trogstad.no\0tm\0" +"tn\0" +"humanities.museum\0to\0" +"pu.it\0gov.nr\0ua\0lib.ut.us\0" +"co.ao\0" +"co.ba\0trondheim.no\0tt\0" +"in-addr.arpa\0tempioolbia.it\0!city.yokohama.jp\0mn.us\0" +"n.bg\0schoenbrunn.museum\0tv\0" +"co.at\0aremark.no\0tw\0ug\0" +"jus.br\0" +"co.bi\0bialowieza.pl\0ar.us\0" +"audnedaln.no\0kustanai.ru\0" +"va\0" +"us\0vc\0" +"newport.museum\0" +"kopervik.no\0gov.ph\0vg\0" +"ny.us\0vi\0" +"co.bw\0finn\xc3\xb8y.no\0gov.pk\0uz\0" +"honefoss.no\0gov.pl\0lanbib.se\0" +"co.ci\0" +"gov.pn\0intl.tn\0" +"act.gov.au\0vn\0" +"television.museum\0gov.pr\0" +"sykkylven.no\0v\xc3\xa5ler.hedmark.no\0gov.ps\0" +"gov.pt\0" +"co.cr\0vu\0" +"legnica.pl\0" +"sa.au\0" +"bjarkoy.no\0" +"openair.museum\0birkenes.no\0lib.nj.us\0" +"fylkesbibl.no\0holt\xc3\xa5len.no\0" +"iz.hr\0" +"ws\0" +"oceanographique.museum\0" +"b\xc3\xa1id\xc3\xa1r.no\0cc.mo.us\0" +"\xc3\xb8ygarden.no\0" +"contemporary.museum\0" +"gb.com\0cc.as.us\0" +"belluno.it\0gov.sa\0" +"gov.sb\0" +"gov.rs\0gov.sc\0" +"gov.sd\0" +"!pref.nagasaki.jp\0gov.ru\0" +"asia\0" +"sa.cr\0gov.rw\0gov.sg\0" +"kuzbass.ru\0" +"gs.vf.no\0" +"gov.sl\0" +"norfolk.museum\0" +"k12.de.us\0" +"mil\0" +"rendalen.no\0" +"gov.st\0" +"agro.pl\0" +"orkdal.no\0" +"le.it\0gov.sy\0" +"gov.tj\0" +"co.gg\0nore-og-uvdal.no\0v\xc3\xa5ler.\xc3\xb8stfold.no\0" +"gov.tl\0" +"gov.tn\0" +"gov.to\0" +"kids.us\0" +"equipment.aero\0gov.ua\0" +"!city.niigata.jp\0gov.tt\0" +"sel.no\0" +"l\xc3\xa4ns.museum\0" +"gov.tw\0" +"rennebu.no\0" +"egersund.no\0" +"medecin.km\0" +"co.gy\0" +"!mecon.ar\0" +"berlin.museum\0" +"carrara-massa.it\0" +"9.bg\0" +"pri.ee\0gov.vc\0" +"at.it\0" +"muosat.no\0" +"co.id\0" +"co.hu\0" +"etne.no\0" +"\xc3\xa1lt\xc3\xa1.no\0" +"gov.vn\0" +"modelling.aero\0" +"co.im\0" +"co.in\0\xc3\xa5krehamn.no\0m.se\0" +"gouv.fr\0*.kitakyushu.jp\0" +"narviika.no\0" +"rennes\xc3\xb8y.no\0" +"co.ir\0afjord.no\0" +"lea\xc5\x8bgaviika.no\0buryatia.ru\0" +"co.it\0coastaldefence.museum\0" +"co.je\0vf.no\0" +"osteroy.no\0" +"uslivinghistory.museum\0" +"aerobatic.aero\0" +"mesaverde.museum\0mining.museum\0" +"a\xc3\xa9roport.ci\0gov.ws\0" +"co.jp\0copenhagen.museum\0" +"pv.it\0" +"r\xc3\xb8mskog.no\0" +"vossevangen.no\0porsanger.no\0" +"salat.no\0mo.us\0" +"o.bg\0imperia.it\0carrier.museum\0" +"carbonia-iglesias.it\0" +"as.us\0" +"alvdal.no\0" +"state.museum\0mandal.no\0cn.ua\0" +"cuneo.it\0" +"gouv.ht\0" +"!city.okayama.jp\0co.kr\0" +"co.lc\0" +"sa.it\0" +"donna.no\0" +"sortland.no\0" +"tomsk.ru\0" +"birthplace.museum\0l\xc3\xb8""dingen.no\0" +"ge.it\0orenburg.ru\0" +"cn.com\0" +"co.ma\0" +"co.ls\0skaun.no\0name.vn\0" +"navigation.aero\0" +"cagliari.it\0co.me\0portal.museum\0" +"gouv.bj\0" +"udine.it\0" +"engineer.aero\0" +"szczecin.pl\0" +"wales.museum\0" +"co.na\0bo.telemark.no\0" +"austin.museum\0" +"k12.mo.us\0" +"co.mu\0" +"gouv.ci\0" +"co.mw\0" +"esp.br\0" +"naturalhistorymuseum.museum\0" +"mosjoen.no\0" +"solund.no\0" +"name.tj\0" +"sand\xc3\xb8y.no\0" +"kunstunddesign.museum\0" +"cartoonart.museum\0collection.museum\0gsm.pl\0" +"aure.no\0" +"!pref.yamaguchi.jp\0historical.museum\0" +"name.tt\0" +"england.museum\0valle.no\0" +"cc.ok.us\0" +"salangen.no\0" +"gloppen.no\0" +"cc.co.us\0" +"contemporaryart.museum\0" +"tas.edu.au\0" +"trading.aero\0" +"mazury.pl\0" +"!pref.aomori.jp\0co.pl\0" +"opoczno.pl\0" +"*.kobe.jp\0co.pn\0" +"oppegard.no\0" +"co.pw\0" +"saltdal.no\0smolensk.ru\0" +"na.it\0\xc4\x8d\xc3\xa1hcesuolo.no\0" +"vgs.no\0evenassi.no\0" +"parachuting.aero\0jl.cn\0maritime.museum\0bd.se\0" +"badaddja.no\0" +"bergen.no\0" +"brussel.museum\0" +"avoues.fr\0" +"cesenaforli.it\0" +"oregontrail.museum\0" +"ullensaker.no\0" +"jobs\0" +"accident-prevention.aero\0" +"n.se\0" +"association.museum\0california.museum\0" +"cultural.museum\0co.rs\0" +"zoology.museum\0" +"pruszkow.pl\0" +"control.aero\0nt.edu.au\0net\0komforb.se\0" +"lincoln.museum\0aurland.no\0name.pr\0co.rw\0" +"ostroleka.pl\0" +"isernia.it\0" +"tm.fr\0" +"gs.ol.no\0" +"nb.ca\0marnardal.no\0" +"williamsburg.museum\0" +"!jet.uk\0" +"suisse.museum\0\xc3\xa5""fjord.no\0flakstad.no\0" +"karmoy.no\0" +"yn.cn\0chesapeakebay.museum\0" +"nsw.au\0" +"amur.ru\0co.st\0" +"imb.br\0siellak.no\0\xe7\xb6\xb2\xe8\xb7\xaf.tw\0" +"name.na\0" +"co.th\0" +"p.bg\0" +"co.sz\0co.tj\0" +"name.mv\0\xc3\xa5lesund.no\0lib.in.us\0" +"lucerne.museum\0naumburg.museum\0" +"society.museum\0name.my\0" +"tinn.no\0" +"co.tt\0" +"unj\xc3\xa1rga.no\0" +"co.ug\0" +"lib.wy.us\0" +"co.tz\0" +"ass.km\0" +"ok.us\0" +"tm.hu\0kongsvinger.no\0" +"ibestad.no\0" +"juedisches.museum\0co.us\0" +"cq.cn\0" +"rs.ba\0" +"wa.edu.au\0co.vi\0" +"co.uz\0" +"health.museum\0" +"grue.no\0" +"automotive.museum\0journalism.museum\0settlement.museum\0" +"qh.cn\0interactive.museum\0" +"snillfjord.no\0!national-library-scotland.uk\0" +"balsfjord.no\0lib.nh.us\0" +"kolobrzeg.pl\0" +"gs.tm.no\0" +"h\xc3\xb8nefoss.no\0" +"ol.no\0" +"music.museum\0moareke.no\0" +"b\xc3\xb8.nordland.no\0" +"name.mk\0lier.no\0" +"eidfjord.no\0" +"sc.cn\0tm.km\0" +"jelenia-gora.pl\0sanok.pl\0" +"intelligence.museum\0" +"srv.br\0elblag.pl\0" +"judygarland.museum\0" +"padua.it\0" +"k12.co.us\0" +"lindesnes.no\0" +"name.jo\0izhevsk.ru\0" +"yorkshire.museum\0mel\xc3\xb8y.no\0" +"tm.mc\0lib.pr.us\0" +"hjartdal.no\0" +"tm.mg\0" +"bari.it\0milano.it\0" +"lg.jp\0" +"zgrad.ru\0" +"sm\xc3\xb8la.no\0" +"communications.museum\0" +"arts.co\0seoul.kr\0engerdal.no\0" +"oster\xc3\xb8y.no\0" +"\xe6\x95\x8e\xe8\x82\xb2.hk\0foggia.it\0verran.no\0" +"orskog.no\0voronezh.ru\0kv.ua\0" +"av.it\0" +"tm.no\0nissedal.no\0" +"historisches.museum\0gs.mr.no\0" +"medecin.fr\0" +"montreal.museum\0" +"o.se\0" +"!metro.tokyo.jp\0sola.no\0" +"k12.tn.us\0" +"floro.no\0" +"milan.it\0*.shiga.jp\0" +"berkeley.museum\0" +"maintenance.aero\0" +"ws.na\0" +"lindas.no\0cc.ia.us\0" +"brescia.it\0embroidery.museum\0" +"arezzo.it\0tm.pl\0" +"r\xc3\xa6lingen.no\0" +"burghof.museum\0" +"rec.br\0" +"q.bg\0" +"!nawras.om\0" +"hammarfeasta.no\0" +"moss.no\0" +"on.ca\0" +"gouv.rw\0" +"luxembourg.museum\0" +"rec.co\0british.museum\0" +"reggio-emilia.it\0" +"gouv.sn\0lib.wv.us\0" +"avocat.fr\0" +"simbirsk.ru\0" +"jar.ru\0" +"monza-brianza.it\0" +"tm.ro\0" +"imageandsound.museum\0" +"jpn.com\0mr.no\0" +"siracusa.it\0" +"norilsk.ru\0tm.se\0" +"tn.it\0" +"jeju.kr\0" +"!pref.fukuoka.jp\0" +"*.hyogo.jp\0portlligat.museum\0" +"!pref.osaka.jp\0" +"siena.it\0sc.kr\0omaha.museum\0saskatchewan.museum\0" +"phoenix.museum\0vanylven.no\0" +"botanicalgarden.museum\0" +"turek.pl\0" +"vagsoy.no\0" +"riodejaneiro.museum\0" +"vi.it\0" +"uy.com\0" +"kristiansand.no\0" +"sd.cn\0trento.it\0" +"muncie.museum\0" +"berg.no\0meldal.no\0" +"nes.buskerud.no\0" +"saratov.ru\0" +"gs.oslo.no\0" +"harstad.no\0vaga.no\0" +"research.museum\0" +"brunel.museum\0ia.us\0" +"test.tj\0" +"columbia.museum\0" +"ms.it\0stockholm.museum\0" +"reklam.hu\0" +"pomorskie.pl\0lg.ua\0" +"bg.it\0historicalsociety.museum\0rns.tn\0" +"mallorca.museum\0surgut.ru\0cc.sc.us\0" +"ushistory.museum\0" +"palana.ru\0" +"snoasa.no\0" +"naturalsciences.museum\0" +"yaroslavl.ru\0" +"unjarga.no\0" +"p.se\0" +"ingatlan.hu\0" +"irc.pl\0" +"savona.it\0" +"cr.it\0" +"test.ru\0cc.tn.us\0" +"ms.kr\0museumvereniging.museum\0" +"time.no\0k12.ia.us\0" +"vladimir.ru\0" +"correios-e-telecomunica\xc3\xa7\xc3\xb5""es.museum\0" +"gouv.km\0nationalfirearms.museum\0" +"m\xc3\xa1latvuopmi.no\0" +"aero\0yosemite.museum\0" +"r.bg\0school.na\0" +"cc.vi.us\0" +"*.wakayama.jp\0" +"beauxarts.museum\0averoy.no\0ullensvang.no\0bar.pro\0" +"!city.hiroshima.jp\0" +"b\xc3\xa1hccavuotna.no\0" +"frosta.no\0" +"gdynia.pl\0" +"medical.museum\0" +"embaixada.st\0" +"balsan.it\0vantaa.museum\0" +"za.net\0" +"!city.saitama.jp\0lib.ks.us\0" +"fnd.br\0" +"ru.com\0se.com\0hol.no\0modalen.no\0" +"gouv.ml\0chukotka.ru\0" +"malopolska.pl\0" +"mansion.museum\0" +"iki.fi\0children.museum\0" +"cyber.museum\0rec.nf\0mo\xc3\xa5reke.no\0" +"to.it\0" +"hasvik.no\0" +"\xc3\xb8yer.no\0" +"arts.ro\0sc.ug\0" +"lib.ar.us\0" +"sc.tz\0cc.ms.us\0cc.nc.us\0" +"etc.br\0poznan.pl\0" +"cnt.br\0viking.museum\0" +"*.miyazaki.jp\0" +"melhus.no\0" +"skodje.no\0vevelstad.no\0" +"sc.us\0" +"upow.gov.pl\0" +"!city.fukuoka.jp\0brandywinevalley.museum\0natuurwetenschappen.museum\0tranby.no\0" +"bahn.museum\0msk.ru\0" +"delmenhorst.museum\0" +"russia.museum\0fuoisku.no\0" +"shell.museum\0" +"r\xc3\xa1isa.no\0" +"hs.kr\0udmurtia.ru\0" +"palermo.it\0" +"pilot.aero\0" +"tn.us\0" +"priv.hu\0" +"li.it\0" +"kr\xc3\xa5""anghke.no\0mosreg.ru\0" +"lib.fl.us\0" +"plants.museum\0" +"ulsan.kr\0national.museum\0" +"mil.ac\0!pref.nara.jp\0surgeonshall.museum\0" +"mil.ae\0santacruz.museum\0vi.us\0" +"wlocl.pl\0" +"mt.it\0napoli.it\0alaska.museum\0arts.nf\0" +"missoula.museum\0" +"rec.ro\0" +"mil.al\0" +"marburg.museum\0waw.pl\0" +"pharmaciens.km\0indianapolis.museum\0larsson.museum\0" +"cc.sd.us\0" +"mil.ba\0mobi\0" +"indianmarket.museum\0" +"recreation.aero\0padova.it\0" +"varese.it\0parti.se\0" +"mil.az\0" +"mil.bo\0!pref.kagoshima.jp\0khmelnitskiy.ua\0" +"rygge.no\0" +"os\xc3\xb8yro.no\0" +"mil.br\0" +"cs.it\0" +"austevoll.no\0fjell.no\0" +"mil.by\0" +"!pref.tokushima.jp\0org\0" +"mil.cn\0gs.svalbard.no\0" +"mil.co\0" +"pz.it\0lib.va.us\0\xd1\x80\xd1\x84\0" +"\xe4\xb8\xaa\xe4\xba\xba.hk\0ms.us\0nc.us\0k12.wi.us\0" +"s.bg\0drangedal.no\0" +"en.it\0" +"culturalcenter.museum\0" +"house.museum\0divttasvuotna.no\0" +"fhs.no\0" +"circus.museum\0" +"priv.at\0" +"mil.ec\0" +"ruovat.no\0" +"midsund.no\0vagan.no\0" +"casadelamoneda.museum\0" +"bristol.museum\0" +"and.museum\0" +"ascolipiceno.it\0computerhistory.museum\0vyatka.ru\0" +"uhren.museum\0" +"lahppi.no\0" +"*.yokohama.jp\0cody.museum\0lib.al.us\0" +"colonialwilliamsburg.museum\0indian.museum\0cc.ky.us\0" +"tp.it\0biev\xc3\xa1t.no\0" +"can.br\0royken.no\0" +"id.ir\0" +"mediocampidano.it\0tromso.no\0" +"kartuzy.pl\0k12.ok.us\0" +"*.saitama.jp\0stjohn.museum\0m\xc3\xa1tta-v\xc3\xa1rjjat.no\0" +"mil.ge\0trani-barletta-andria.it\0" +"lib.as.us\0" +"swiebodzin.pl\0cc.mt.us\0cc.nd.us\0" +"mil.gh\0" +"science-fiction.museum\0\xd9\x82\xd8\xb7\xd8\xb1\0" +"airtraffic.aero\0" +"konskowola.pl\0" +"scienceandhistory.museum\0nysa.pl\0sd.us\0" +"balestrand.no\0" +"oygarden.no\0" +"her\xc3\xb8y.nordland.no\0" +"!pref.ishikawa.jp\0strand.no\0" +"\xe7\xb5\x84\xe7\xbb\x87.hk\0mil.hn\0" +"gob.bo\0volda.no\0" +"losangeles.museum\0larvik.no\0" +"university.museum\0" +"cc.dc.us\0" +"mil.id\0" +"sorfold.no\0" +"watch-and-clock.museum\0" +"flor\xc3\xb8.no\0" +"nittedal.no\0oppeg\xc3\xa5rd.no\0" +"k12.ri.us\0" +"gob.cl\0" +"komi.ru\0" +"government.aero\0mil.in\0" +"mil.iq\0id.lv\0" +"culture.museum\0" +"id.ly\0" +"raholt.no\0" +"lubin.pl\0grozny.ru\0" +"kchr.ru\0" +"nikolaev.ua\0" +"lib.sd.us\0" +"de.com\0" +"mil.jo\0" +"*.kanagawa.jp\0gaular.no\0miasta.pl\0" +"bi.it\0rnu.tn\0uzhgorod.ua\0" +"idrett.no\0v\xc3\xa5gs\xc3\xb8y.no\0" +"wroclaw.pl\0" +"res.aero\0ne.jp\0mil.kg\0" +"\xc3\xa5mli.no\0" +"education.museum\0" +"dgca.aero\0" +"mil.km\0" +"trolley.museum\0" +"cci.fr\0r.se\0" +"archaeological.museum\0" +"monzaedellabrianza.it\0mil.kr\0" +"gob.es\0kvafjord.no\0ky.us\0" +"lecco.it\0" +"ct.it\0" +"magazine.aero\0" +"operaunite.com\0ne.kr\0" +"mil.kz\0skoczow.pl\0" +"nf.ca\0" +"western.museum\0" +"kunst.museum\0gaivuotna.no\0karpacz.pl\0spb.ru\0cc.id.us\0" +"slask.pl\0" +"youth.museum\0" +"adv.br\0campidanomedio.it\0!songfest.om\0" +"geelvinck.museum\0\xd8\xa7\xd9\x85\xd8\xa7\xd8\xb1\xd8\xa7\xd8\xaa\0" +"mil.lv\0" +"fie.ee\0mil.mg\0mt.us\0nd.us\0k12.vt.us\0" +"t.bg\0ushuaia.museum\0" +"off.ai\0" +"irkutsk.ru\0" +"stor-elvdal.no\0tourism.tn\0" +"penza.ru\0" +"bj.cn\0\xe4\xb8\xad\xe5\x9b\xbd\0" +"civilwar.museum\0mil.mv\0opole.pl\0" +"nes.akershus.no\0" +"mil.my\0karelia.ru\0" +"como.it\0sande.vestfold.no\0" +"\xe4\xb8\xad\xe5\x9c\x8b\0" +"gob.hn\0lib.la.us\0" +"mil.no\0cc.wv.us\0" +"boleslawiec.pl\0" +"!pref.niigata.jp\0gs.sf.no\0dc.us\0k12.mi.us\0" +"museum\0dep.no\0kv\xc3\xa6nangen.no\0l\xc3\xa1hppi.no\0" +"film.museum\0" +"frei.no\0" +"notodden.no\0risor.no\0" +"messina.it\0" +"eidsberg.no\0" +"krakow.pl\0lib.mt.us\0lib.nd.us\0" +"rauma.no\0" +"mulhouse.museum\0" +"sibenik.museum\0grong.no\0mil.pe\0" +"budejju.no\0k12.nv.us\0" +"stavanger.no\0mil.ph\0" +"forli-cesena.it\0" +"naples.it\0cc.ne.us\0" +"s\xc3\xb8r-aurdal.no\0" +"mil.pl\0" +"vibo-valentia.it\0ski.museum\0siedlce.pl\0" +"bus.museum\0" +"tozsde.hu\0" +"!pref.shizuoka.jp\0santabarbara.museum\0" +"zhitomir.ua\0" +"pro.az\0" +"ne.pw\0" +"pro.br\0orkanger.no\0b\xc3\xb8.telemark.no\0" +"roma.it\0cc.ct.us\0" +"heritage.museum\0giske.no\0" +"!pref.kumamoto.jp\0prof.pr\0" +"*.kochi.jp\0" +"andria-barletta-trani.it\0*.toyama.jp\0sveio.no\0" +"id.us\0" +"bolt.hu\0" +"fetsund.no\0porsgrunn.no\0" +"iglesias-carbonia.it\0" +"sf.no\0" +"mil.ru\0" +"from.hr\0asnes.no\0mil.rw\0" +"alesund.no\0sos.pl\0" +"livorno.it\0" +"crafts.museum\0" +"aquila.it\0" +"vega.no\0" +"jewelry.museum\0" +"sk\xc3\xa1nit.no\0chita.ru\0" +"pro.ec\0" +"fortmissoula.museum\0j\xc3\xb8lster.no\0" +"pro\0mil.st\0" +"busan.kr\0lib.ga.us\0" +"dellogliastra.it\0" +"aosta.it\0chungnam.kr\0gob.mx\0" +"mil.sy\0k12.hi.us\0" +"mil.tj\0" +"ulan-ude.ru\0mil.to\0wv.us\0" +"luster.no\0volgograd.ru\0" +"pa.it\0kommunalforbund.se\0lib.tx.us\0" +"s.se\0" +"qsl.br\0" +"mil.tw\0" +"est.pr\0ens.tn\0" +"lib.id.us\0" +"mil.tz\0" +"uscountryestate.museum\0" +"agents.aero\0" +"\xc3\xb8vre-eiker.no\0ne.ug\0" +"pb.ao\0" +"gob.pa\0ne.tz\0" +"tur.br\0" +"mil.vc\0" +"or.at\0gob.pe\0" +"s\xc3\xb8r-fron.no\0" +"or.bi\0ne.us\0" +"u.bg\0gob.pk\0" +"stavern.no\0" +"brindisi.it\0" +"aknoluokta.no\0" +"!pref.kyoto.jp\0tydal.no\0" +"plc.ly\0muos\xc3\xa1t.no\0" +"or.ci\0hamaroy.no\0priv.pl\0" +"vestre-slidre.no\0gniezno.pl\0" +"\xe7\xae\x87\xe4\xba\xba.hk\0" +"andebu.no\0" +"nieruchomosci.pl\0\xd8\xa7\xd9\x84\xd8\xb3\xd8\xb9\xd9\x88\xd8\xaf\xd9\x8a\xd8\xa9\0" +"or.cr\0pro.ht\0bolzano.it\0" +"ct.us\0k12.md.us\0" +"za.org\0" +"!icnet.uk\0" +"localhistory.museum\0" +"firm.ht\0" +"lel.br\0tr.it\0kvanangen.no\0" +"sondre-land.no\0t\xc3\xb8nsberg.no\0vefsn.no\0" +"nature.museum\0yamal.ru\0" +"rv.ua\0" +"lans.museum\0lib.ne.us\0" +"lur\xc3\xb8y.no\0" +"eu.com\0firm.in\0" +"hjelmeland.no\0" +"gs.tr.no\0" +"casino.hu\0essex.museum\0tourism.pl\0" +"rennesoy.no\0" +"priv.no\0" +"baths.museum\0mytis.ru\0" +"tingvoll.no\0" +"cc.az.us\0" +"sh.cn\0" +"!pref.miyazaki.jp\0s\xc3\xb8rfold.no\0" +"aurskog-holand.no\0malatvuopmi.no\0" +"lib.ct.us\0" +"cc.pa.us\0" +"pa.gov.pl\0" +"firm.co\0cc.de.us\0" +"nrw.museum\0" +"daejeon.kr\0livinghistory.museum\0" +"gildeskal.no\0lund.no\0" +"\xc3\xb8ksnes.no\0stavropol.ru\0" +"b\xc3\xa6rum.no\0r\xc3\xb8yrvik.no\0" +"osoyro.no\0" +"priv.me\0sula.no\0!parliament.uk\0" +"nationalheritage.museum\0" +"jaworzno.pl\0" +"dinosaur.museum\0" +"garden.museum\0trust.museum\0" +"turen.tn\0" +"kautokeino.no\0" +"pro.na\0" +"gorizia.it\0" +"siljan.no\0" +"or.id\0pro.mv\0" +"bieszczady.pl\0www.ro\0" +"lib.ee\0antiques.museum\0brasil.museum\0tr.no\0" +"aejrie.no\0" +"!pref.hokkaido.jp\0" +"schlesisches.museum\0" +"huissier-justice.fr\0or.it\0" +"t.se\0" +"environment.museum\0" +"vindafjord.no\0" +"edu.ac\0or.jp\0" +"tree.museum\0" +"groundhandling.aero\0edu.af\0" +"rochester.museum\0sanfrancisco.museum\0" +"ebiz.tw\0" +"kirovograd.ua\0" +"edu.al\0" +"edu.an\0\xc3\xa1k\xc5\x8boluokta.no\0v\xc3\xa5g\xc3\xa5.no\0" +"v.bg\0" +"edu.ba\0" +"edu.bb\0nesset.no\0" +"hornindal.no\0pro.pr\0" +"or.kr\0" +"az.us\0" +"edu.bh\0volkenkunde.museum\0" +"edu.bi\0" +"edu.az\0" +"b\xc3\xb8mlo.no\0" +"edu.bm\0" +"edu.bo\0tyumen.ru\0" +"edu.br\0" +"edu.bs\0pa.us\0" +"alto-adige.it\0whaling.museum\0" +"*.iwate.jp\0" +"edu.ci\0law.pro\0" +"edu.bz\0de.us\0" +"lib.ak.us\0" +"edu.cn\0" +"edu.co\0" +"laspezia.it\0" +"baidar.no\0" +"ts.it\0" +"or.na\0" +"edu.cu\0hotel.lk\0" +"show.aero\0or.mu\0" +"sandnes.no\0" +"museumcenter.museum\0" +"edu.dm\0kazan.ru\0" +"biz\0caltanissetta.it\0odessa.ua\0k12.oh.us\0" +"crimea.ua\0" +"research.aero\0lom.no\0" +"edu.ec\0florence.it\0clock.museum\0sshn.se\0" +"edu.ee\0game.tw\0" +"!pref.okinawa.jp\0" +"ilawa.pl\0" +"edu.dz\0indiana.museum\0" +"gs.jan-mayen.no\0" +"publ.pt\0" +"nom.ad\0" +"skanit.no\0gdansk.pl\0k12.pa.us\0" +"nom.ag\0edu.es\0" +"if.ua\0" +"pro.tt\0lib.de.us\0" +"environmentalconservation.museum\0cc.or.us\0" +"bern.museum\0nat.tn\0" +"rubtsovsk.ru\0" +"!educ.ar\0masoy.no\0" +"bologna.it\0" +"\xc3\xa5snes.no\0fhv.se\0" +"*.tottori.jp\0radoy.no\0" +"romskog.no\0" +"malbork.pl\0" +"olbiatempio.it\0" +"edu.ge\0" +"edu.gh\0" +"edu.gi\0" +"or.pw\0" +"hob\xc3\xb8l.no\0" +"nom.br\0edu.gn\0virginia.museum\0mbone.pl\0!nls.uk\0" +"seljord.no\0pro.vn\0" +"edu.gp\0" +"edu.gr\0" +"!uba.ar\0!pref.saitama.jp\0" +"greta.fr\0gs.aa.no\0kvinnherad.no\0" +"lib.sc.us\0" +"js.cn\0nom.co\0edu.hk\0" +"lesja.no\0" +"bl.it\0" +"edu.hn\0\xc3\xb8ystre-slidre.no\0mari-el.ru\0" +"hotel.hu\0" +"rindal.no\0" +"edu.ht\0" +"!pref.miyagi.jp\0" +"midtre-gauldal.no\0" +"xj.cn\0australia.museum\0" +"ab.ca\0salvadordali.museum\0olawa.pl\0" +"pc.it\0" +"u.se\0" +"edu.in\0b\xc3\xa1l\xc3\xa1t.no\0" +"ln.cn\0alta.no\0" +"chelyabinsk.ru\0" +"edu.iq\0" +"ontario.museum\0" +"edu.is\0" +"edu.it\0" +"b\xc3\xa5tsfjord.no\0" +"trysil.no\0or.th\0" +"utsira.no\0" +"nom.es\0edu.jo\0fhsk.se\0" +"bale.museum\0" +"w.bg\0" +"lillesand.no\0" +"edu.kg\0" +"amusement.aero\0" +"edu.ki\0" +"fauske.no\0or.ug\0" +"int.az\0askvoll.no\0eidskog.no\0cv.ua\0" +"algard.no\0" +"edu.km\0or.tz\0" +"nom.fr\0edu.kn\0" +"*.ibaraki.jp\0hoylandet.no\0" +"int.bo\0edu.kp\0" +"edu.la\0" +"si.it\0edu.lb\0travel.pl\0" +"edu.lc\0mx.na\0n\xc3\xa1vuotna.no\0ovre-eiker.no\0" +"aa.no\0!siemens.om\0" +"sciences.museum\0or.us\0" +"cat\0" +"edu.ky\0" +"int.ci\0edu.kz\0firm.ro\0cc.wy.us\0" +"edu.lk\0vaapste.no\0" +"!pref.tochigi.jp\0" +"int.co\0podlasie.pl\0" +"edu.lr\0" +"karikatur.museum\0jamal.ru\0" +"gjovik.no\0krager\xc3\xb8.no\0k12.az.us\0" +"edu.me\0" +"ud.it\0edu.lv\0entomology.museum\0" +"edu.mg\0moskenes.no\0" +"\xe6\x94\xbf\xe5\xba\x9c.hk\0edu.ly\0" +"stpetersburg.museum\0" +"edu.mk\0" +"edu.ml\0nordreisa.no\0" +"!pref.fukui.jp\0lib.ms.us\0lib.nc.us\0" +"edu.mn\0\xd9\x81\xd9\x84\xd8\xb3\xd8\xb7\xd9\x8a\xd9\x86\0" +"fot.br\0edu.mo\0" +"iron.museum\0" +"asti.it\0annefrank.museum\0stv.ru\0cc.nh.us\0" +"edu.mv\0" +"lodi.it\0edu.mw\0edu.ng\0" +"gwangju.kr\0edu.mx\0" +"edu.my\0" +"soundandvision.museum\0" +"lenvik.no\0" +"ballooning.aero\0" +"name\0" +"jogasz.hu\0frogn.no\0" +"history.museum\0" +"consultant.aero\0edu.nr\0" +"manchester.museum\0" +"*.hiroshima.jp\0" +"pol.dz\0" +"*.tochigi.jp\0heimatunduhren.museum\0" +"!pref.kanagawa.jp\0" +"firm.nf\0edu.pa\0" +"coop.ht\0pc.pl\0" +"chicago.museum\0" +"vn.ua\0" +"edu.pe\0" +"tana.no\0edu.pf\0" +"edu.ph\0" +"nom.km\0" +"travel.tt\0" +"edu.pk\0" +"experts-comptables.fr\0edu.pl\0bryansk.ru\0" +"edu.pn\0" +"evje-og-hornnes.no\0warszawa.pl\0" +"ac.ae\0" +"edu.pr\0" +"vaksdal.no\0edu.ps\0dni.us\0" +"po.gov.pl\0edu.pt\0" +"nordre-land.no\0vadso.no\0" +"rnrt.tn\0" +"sport.hu\0!pref.gifu.jp\0voss.no\0targi.pl\0" +"flesberg.no\0" +"photography.museum\0" +"modena.it\0tonsberg.no\0" +"ac.at\0" +"ac.be\0coop.br\0" +"services.aero\0" +"nom.mg\0" +"wielun.pl\0" +"jefferson.museum\0wy.us\0" +"pd.it\0ot.it\0neues.museum\0slattum.no\0" +"vdonsk.ru\0" +"ar.com\0edu.sa\0" +"\xc3\xa5l.no\0edu.sb\0" +"edu.rs\0edu.sc\0" +"ac.ci\0int.is\0edu.sd\0!tsk.tr\0" +"br\xc3\xb8nn\xc3\xb8ysund.no\0and\xc3\xb8y.no\0edu.ru\0" +"pol.ht\0" +"edu.rw\0edu.sg\0" +"gyeongnam.kr\0olecko.pl\0" +"ac.cn\0" +"graz.museum\0" +"coldwar.museum\0edu.sl\0" +"ac.cr\0" +"edu.sn\0" +"hamar.no\0" +"histoire.museum\0" +"!city.shizuoka.jp\0" +"edu.st\0" +"oceanographic.museum\0nh.us\0" +"x.bg\0" +"surnadal.no\0" +"fc.it\0costume.museum\0stalowa-wola.pl\0" +"valer.ostfold.no\0edu.sy\0" +"edu.tj\0" +"arq.br\0" +"aeroclub.aero\0odo.br\0pe.ca\0\xe7\xb6\xb2\xe7\xb5\xa1.cn\0bronnoysund.no\0nom.pa\0" +"edu.to\0" +"paleo.museum\0nom.pe\0edu.ua\0" +"int.la\0trustee.museum\0forsand.no\0krasnoyarsk.ru\0" +"!pref.hyogo.jp\0" +"edu.tt\0" +"zarow.pl\0" +"edu.tw\0" +"nom.pl\0" +"community.museum\0kvitsoy.no\0" +"int.lk\0tychy.pl\0" +"k12.me.us\0" +"jondal.no\0edu.vc\0" +"illustration.museum\0" +"clinton.museum\0" +"tas.au\0es.kr\0" +"production.aero\0" +"rodoy.no\0" +"database.museum\0bodo.no\0" +"anthro.museum\0landes.museum\0edu.vn\0" +"nom.re\0" +"altai.ru\0" +"filatelia.museum\0" +"sk.ca\0lezajsk.pl\0" +"rockart.museum\0int.mv\0" +"int.mw\0herad.no\0" +"eti.br\0ac.gn\0" +"fedje.no\0nom.ro\0" +"money.museum\0" +"\xd9\x85\xd8\xb5\xd8\xb1\0" +"horten.no\0" +"gangaviika.no\0mielec.pl\0" +"uw.gov.pl\0" +"moma.museum\0" +"edu.ws\0" +"go.ci\0" +"tv.bo\0technology.museum\0" +"s\xc3\xb8ndre-land.no\0" +"tv.br\0" +"jor.br\0lib.dc.us\0" +"arboretum.museum\0" +"go.cr\0" +"artsandcrafts.museum\0\xd8\xaa\xd9\x88\xd9\x86\xd8\xb3\0" +"psc.br\0ac.id\0!city.chiba.jp\0" +"wa.au\0" +"rome.it\0" +"amli.no\0" +"ac.im\0lo.it\0" +"ac.in\0" +"\xe7\xb6\xb2\xe7\xb5\xa1.hk\0durham.museum\0" +"ac.ir\0" +"torino.museum\0" +"loabat.no\0" +"com\0" +"nalchik.ru\0" +"yakutia.ru\0" +"settlers.museum\0" +"!promocion.ar\0int.pt\0" +"union.aero\0" +"utah.museum\0" +"giehtavuoatna.no\0" +"ac.jp\0" +"air-traffic-control.aero\0" +"silk.museum\0usantiques.museum\0" +"bn.it\0" +"kalisz.pl\0" +"perm.ru\0" +"aoste.it\0bindal.no\0" +"coloradoplateau.museum\0k12.gu.us\0" +"frosinone.it\0forde.no\0" +"epilepsy.museum\0" +"olbia-tempio.it\0" +"journalist.aero\0ac.kr\0*.sch.uk\0" +"nic.im\0sciencesnaturelles.museum\0bedzin.pl\0" +"nic.in\0pe.it\0" +"w.se\0" +"!pref.okayama.jp\0" +"urn.arpa\0" +"cinema.museum\0" +"monza.it\0versailles.museum\0int.ru\0" +"andasuolo.no\0skj\xc3\xa5k.no\0chernovtsy.ua\0" +"nyc.museum\0int.rw\0paroch.k12.ma.us\0" +"ringerike.no\0" +"ac.ma\0" +"org.ac\0civilaviation.aero\0" +"rakkestad.no\0" +"org.ae\0ac.me\0" +"org.af\0" +"org.ag\0" +"org.ai\0stokke.no\0" +"airport.aero\0" +"finnoy.no\0" +"org.al\0" +"org.an\0y.bg\0habmer.no\0" +"stadt.museum\0holtalen.no\0" +"int.tj\0" +"org.ba\0gjerdrum.no\0" +"org.bb\0ascoli-piceno.it\0molde.no\0r\xc3\xb8st.no\0tysfjord.no\0" +"pe.kr\0rybnik.pl\0" +"go.id\0" +"ac.mu\0" +"ac.mw\0ac.ng\0" +"org.bh\0\xc3\xa5mot.no\0rana.no\0" +"org.bi\0" +"org.az\0belgorod.ru\0int.tt\0" +"ae.org\0" +"group.aero\0posts-and-telecommunications.museum\0" +"org.bm\0salerno.it\0" +"etnedal.no\0" +"org.bo\0*.hokkaido.jp\0donetsk.ua\0" +"ostroda.pl\0" +"org.br\0" +"org.bs\0" +"go.it\0h\xc3\xb8ylandet.no\0" +"zgorzelec.pl\0" +"org.bw\0" +"org.ci\0" +"org.bz\0vicenza.it\0resistance.museum\0" +"missile.museum\0" +"org.cn\0" +"org.co\0assassination.museum\0" +"go.jp\0" +"tv.it\0austrheim.no\0ac.pa\0" +"verbania.it\0" +"palace.museum\0" +"tmp.br\0int.vn\0" +"org.cu\0" +"paris.museum\0" +"media.aero\0hokksund.no\0" +"arts.museum\0gemological.museum\0hammerfest.no\0" +"k12.ny.us\0" +"org.dm\0hemsedal.no\0ringsaker.no\0sklep.pl\0" +"h\xc3\xa5.no\0cc.nj.us\0" +"rzeszow.pl\0" +"go.kr\0gjesdal.no\0ac.pr\0" +"org.ec\0" +"org.ee\0" +"media.museum\0" +"terni.it\0touch.museum\0zakopane.pl\0" +"journal.aero\0org.dz\0" +"incheon.kr\0" +"b\xc3\xa1hcavuotna.no\0" +"leksvik.no\0ulvik.no\0" +"plantation.museum\0" +"org.es\0loyalist.museum\0" +"gildesk\xc3\xa5l.no\0bytom.pl\0" +"bo.nordland.no\0" +"ambulance.aero\0iglesiascarbonia.it\0" +"tw.cn\0\xe6\x96\xb0\xe5\x8a\xa0\xe5\x9d\xa1\0" +"chocolate.museum\0" +"pittsburgh.museum\0" +"royrvik.no\0sor-odal.no\0ac.rs\0" +"kaluga.ru\0" +"org.ge\0erotica.hu\0ac.ru\0ac.se\0" +"org.gg\0leangaviika.no\0ac.rw\0" +"org.gh\0v\xc3\xa6r\xc3\xb8y.no\0" +"org.gi\0" +"jevnaker.no\0" +"org.gn\0tv.na\0leikanger.no\0" +"org.gp\0" +"ask\xc3\xb8y.no\0" +"org.gr\0wroc.pl\0" +"ad.jp\0" +"powiat.pl\0" +"tj\xc3\xb8me.no\0" +"coop.tt\0" +"ac.th\0" +"mragowo.pl\0ac.sz\0ac.tj\0" +"org.hk\0bo.it\0" +"philately.museum\0" +"org.hn\0" +"fet.no\0" +"axis.museum\0mansions.museum\0" +"wiki.br\0" +"org.ht\0" +"org.hu\0piacenza.it\0scotland.museum\0cpa.pro\0" +"ac.ug\0" +"coop.mv\0x.se\0" +"coop.mw\0ac.tz\0" +"bmd.br\0" +"org.im\0ralingen.no\0" +"org.in\0" +"cz.it\0lib.ia.us\0" +"org.iq\0" +"org.ir\0" +"org.is\0" +"nl.ca\0" +"org.je\0" +"childrensgarden.museum\0" +"kvits\xc3\xb8y.no\0go.pw\0" +"sokndal.no\0" +"ra.it\0grimstad.no\0" +"denmark.museum\0" +"ac.vn\0" +"ecn.br\0org.jo\0" +"bialystok.pl\0nj.us\0" +"z.bg\0bilbao.museum\0stargard.pl\0nic.tj\0" +"eisenbahn.museum\0" +"fe.it\0bryne.no\0vrn.ru\0" +"cc.wa.us\0" +"sex.hu\0skierva.no\0" +"org.kg\0" +"org.ki\0" +"org.km\0" +"org.kn\0khakassia.ru\0" +"org.kp\0" +"org.la\0" +"org.lb\0" +"org.lc\0" +"francaise.museum\0" +"panama.museum\0" +"rotorcraft.aero\0gateway.museum\0olkusz.pl\0" +"org.ky\0czeladz.pl\0ryazan.ru\0" +"org.kz\0" +"org.lk\0dyr\xc3\xb8y.no\0" +"raisa.no\0" +"dlugoleka.pl\0" +"org.ma\0" +"org.lr\0prochowice.pl\0" +"org.ls\0" +"org.me\0sandoy.no\0s\xc3\xb8r-varanger.no\0" +"org.lv\0" +"org.mg\0" +"tel\0go.th\0" +"org.ly\0" +"steam.museum\0go.tj\0" +"org.mk\0pasadena.museum\0jessheim.no\0lib.mn.us\0" +"org.ml\0" +"software.aero\0" +"org.mn\0" +"org.mo\0" +"*.fukui.jp\0decorativearts.museum\0" +"spy.museum\0org.na\0jorpeland.no\0" +"vads\xc3\xb8.no\0" +"org.mu\0building.museum\0gausdal.no\0" +"org.mv\0nannestad.no\0" +"org.mw\0org.ng\0go.ug\0" +"vr.it\0org.mx\0" +"org.my\0" +"go.tz\0" +"oppdal.no\0" +"uk.net\0" +"coop.km\0" +"*.kyoto.jp\0" +"sarpsborg.no\0org.nr\0" +"chernigov.ua\0" +"ha.cn\0no.com\0" +"space.museum\0" +"org.pa\0" +"*.ar\0" +"usgarden.museum\0" +"*.bd\0org.pe\0" +"*.au\0org.pf\0um.gov.pl\0" +"bio.br\0" +"org.ph\0" +"org.pk\0" +"fr\xc3\xa6na.no\0org.pl\0" +"nord-aurdal.no\0org.pn\0" +"*.bn\0handson.museum\0agrinet.tn\0" +"kviteseid.no\0" +"rel.ht\0virtuel.museum\0atm.pl\0org.pr\0" +"org.ps\0cherkassy.ua\0" +"org.pt\0wa.us\0" +"*.bt\0arendal.no\0magnitka.ru\0" +"depot.museum\0porsangu.no\0" +"laakesvuemie.no\0" +"sor-fron.no\0" +"heroy.more-og-romsdal.no\0" +"*.ck\0" +"!rakpetroleum.om\0" +"kr\xc3\xb8""dsherad.no\0mail.pl\0" +"mod.gi\0" +"gs.nl.no\0" +"mb.ca\0" +"pavia.it\0" +"civilisation.museum\0folldal.no\0" +"suli.hu\0" +"brumunddal.no\0" +"*.cy\0" +"pg.it\0troms\xc3\xb8.no\0" +"sex.pl\0y.se\0" +"org.ro\0" +"*.do\0" +"caserta.it\0org.sa\0" +"za.com\0halloffame.museum\0org.sb\0lviv.ua\0" +"mill.museum\0org.rs\0org.sc\0" +"org.sd\0" +"idv.hk\0!omanmobile.om\0org.ru\0org.se\0" +"langev\xc3\xa5g.no\0r\xc3\xa5holt.no\0starostwo.gov.pl\0" +"trani-andria-barletta.it\0org.sg\0" +"*.eg\0hvaler.no\0" +"*.ehime.jp\0" +"gmina.pl\0" +"bod\xc3\xb8.no\0org.sl\0" +"edu\0org.sn\0" +"org.so\0lib.wi.us\0" +"kommune.no\0" +"nome.pt\0" +"*.er\0namdalseid.no\0k12.wa.us\0" +"nm.cn\0org.st\0" +"*.et\0d\xc3\xb8nna.no\0" +"jewish.museum\0preservation.museum\0" +"slupsk.pl\0org.sy\0" +"art.br\0org.sz\0org.tj\0" +"ntr.br\0*.fj\0ski.no\0" +"*.fk\0rimini.it\0grajewo.pl\0" +"loppa.no\0" +"franziskaner.museum\0notteroy.no\0org.tn\0" +"org.to\0" +"nesoddtangen.no\0" +"org.ua\0" +"discovery.museum\0wloclawek.pl\0" +"lakas.hu\0org.tt\0" +"kurgan.ru\0" +"baltimore.museum\0nkz.ru\0org.tw\0" +"com.ac\0castle.museum\0" +"*.fukuoka.jp\0sandefjord.no\0varggat.no\0" +"com.af\0" +"com.ag\0" +"ato.br\0k12.nj.us\0" +"com.ai\0" +"city.hu\0oryol.ru\0" +"com.al\0nl.no\0mielno.pl\0cc.ma.us\0" +"org.vc\0" +"com.an\0g12.br\0" +"*.gt\0" +"*.gu\0" +"com.ba\0" +"com.bb\0americanart.museum\0" +"org.vi\0" +"kunstsammlung.museum\0" +"com.aw\0" +"flight.aero\0com.bh\0lib.mo.us\0org.vn\0" +"com.bi\0adygeya.ru\0" +"com.az\0" +"art.dz\0" +"com.bm\0" +"dr\xc3\xb8""bak.no\0" +"com.bo\0isla.pr\0" +"com.br\0" +"com.bs\0ustka.pl\0kuban.ru\0" +"press.aero\0" +"vs.it\0" +"meloy.no\0" +"*.il\0ulm.museum\0" +"com.by\0com.ci\0genoa.it\0" +"com.bz\0sn.cn\0" +"lib.or.us\0" +"santafe.museum\0org.ws\0" +}; + +#endif // QNETWORKCOOKIEJARTLD_P_H diff --git a/src/network/access/qnetworkcookiejartlds_p.h.INFO b/src/network/access/qnetworkcookiejartlds_p.h.INFO new file mode 100644 index 0000000..57a8d0e --- /dev/null +++ b/src/network/access/qnetworkcookiejartlds_p.h.INFO @@ -0,0 +1,17 @@ +The file qnetworkcookiejartlds_p.h is generated from the Public Suffix +List (see [1] and [2]), by the program residing at +util/network/cookiejar-generateTLDs in the Qt source tree. + +That program generates a character array and an index array from the +list to provide fast lookups of elements within C++. + +Those arrays in qnetworkcookiejartlds_p.h are derived from the Public +Suffix List ([2]), which was originally provided by +Jo Hermans . + +The file qnetworkcookiejartlds_p.h was last generated Friday, +November 19th 15:24 2010. + +---- +[1] list: http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1 +[2] homepage: http://publicsuffix.org/ diff --git a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp index 01b9c0c..6548158 100644 --- a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp +++ b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp @@ -42,6 +42,7 @@ #include #include +#include "private/qnetworkcookiejar_p.h" class tst_QNetworkCookieJar: public QObject { @@ -53,6 +54,8 @@ private slots: void setCookiesFromUrl(); void cookiesForUrl_data(); void cookiesForUrl(); + void effectiveTLDs_data(); + void effectiveTLDs(); }; QT_BEGIN_NAMESPACE @@ -174,6 +177,31 @@ void tst_QNetworkCookieJar::setCookiesFromUrl_data() result += cookie; QTest::newRow("security-path-1") << preset << cookie << "http://www.foo.tld" << result << true; + // check effective TLDs + // 1. co.uk is an effective TLD, should be denied + result.clear(); + preset.clear(); + cookie.setPath("/"); + cookie.setDomain(".co.uk"); + QTest::newRow("effective-tld1-denied") << preset << cookie << "http://something.co.uk" << result << false; + cookie.setDomain("co.uk"); + QTest::newRow("effective-tld1-denied2") << preset << cookie << "http://something.co.uk" << result << false; + cookie.setDomain(".something.co.uk"); + result += cookie; + QTest::newRow("effective-tld1-accepted") << preset << cookie << "http://something.co.uk" << result << true; + + // 2. anything .ar is an effective TLD ('*.ar'), but 'gobiernoelectronico.ar' is an exception + result.clear(); + preset.clear(); + cookie.setDomain(".farmacia.ar"); + QTest::newRow("effective-tld2-denied") << preset << cookie << "http://farmacia.ar" << result << false; + QTest::newRow("effective-tld2-denied2") << preset << cookie << "http://www.farmacia.ar" << result << false; + QTest::newRow("effective-tld2-denied3") << preset << cookie << "http://www.anything.farmacia.ar" << result << false; + cookie.setDomain(".gobiernoelectronico.ar"); + result += cookie; + QTest::newRow("effective-tld2-accepted") << preset << cookie << "http://www.gobiernoelectronico.ar" << result << true; + + // setting the defaults: finalCookie = cookie; finalCookie.setPath("/something/"); @@ -334,6 +362,82 @@ void tst_QNetworkCookieJar::cookiesForUrl() QCOMPARE(result, expectedResult); } +void tst_QNetworkCookieJar::effectiveTLDs_data() +{ + QTest::addColumn("domain"); + QTest::addColumn("isTLD"); + + QTest::newRow("yes1") << "com" << true; + QTest::newRow("yes2") << "de" << true; + QTest::newRow("yes3") << "ulm.museum" << true; + QTest::newRow("yes4") << "krodsherad.no" << true; + QTest::newRow("yes5") << "1.bg" << true; + QTest::newRow("yes6") << "com.cn" << true; + QTest::newRow("yes7") << "org.ws" << true; + QTest::newRow("yes8") << "co.uk" << true; + QTest::newRow("yes9") << "wallonie.museum" << true; + + QTest::newRow("no1") << "anything.com" << false; + QTest::newRow("no2") << "anything.de" << false; + QTest::newRow("no3") << "eselsberg.ulm.museum" << false; + QTest::newRow("no4") << "noe.krodsherad.no" << false; + QTest::newRow("no5") << "2.1.bg" << false; + QTest::newRow("no6") << "foo.com.cn" << false; + QTest::newRow("no7") << "something.org.ws" << false; + QTest::newRow("no8") << "teatime.co.uk" << false; + QTest::newRow("no9") << "bla" << false; + QTest::newRow("no10") << "bla.bla" << false; + + const ushort s1[] = {0x74, 0x72, 0x61, 0x6e, 0xf8, 0x79, 0x2e, 0x6e, 0x6f, 0x00}; // xn--trany-yua.no + const ushort s2[] = {0x5d9, 0x5e8, 0x5d5, 0x5e9, 0x5dc, 0x5d9, 0x5dd, 0x2e, 0x6d, 0x75, 0x73, 0x65, 0x75, 0x6d, 0x00}; // xn--9dbhblg6di.museum + const ushort s3[] = {0x7ec4, 0x7e54, 0x2e, 0x68, 0x6b, 0x00}; // xn--mk0axi.hk + const ushort s4[] = {0x7f51, 0x7edc, 0x2e, 0x63, 0x6e, 0x00}; // xn--io0a7i.cn + const ushort s5[] = {0x72, 0xe1, 0x68, 0x6b, 0x6b, 0x65, 0x72, 0xe1, 0x76, 0x6a, 0x75, 0x2e, 0x6e, 0x6f, 0x00}; // xn--rhkkervju-01af.no + const ushort s6[] = {0xb9a, 0xbbf, 0xb99, 0xbcd, 0xb95, 0xbaa, 0xbcd, 0xbaa, 0xbc2, 0xbb0, 0xbcd, 0x00}; // xn--clchc0ea0b2g2a9gcd + const ushort s7[] = {0x627, 0x644, 0x627, 0x631, 0x62f, 0x646, 0x00}; // xn--mgbayh7gpa + const ushort s8[] = {0x63, 0x6f, 0x72, 0x72, 0x65, 0x69, 0x6f, 0x73, 0x2d, 0x65, 0x2d, 0x74, 0x65, 0x6c, 0x65, + 0x63, 0x6f, 0x6d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0xe7, 0xf5, 0x65, 0x73, 0x2e, 0x6d, 0x75, + 0x73, 0x65, 0x75, 0x6d, 0x00}; // xn--correios-e-telecomunicaes-ghc29a.museum + QTest::newRow("yes-specialchars1") << QString::fromUtf16(s1) << true; + QTest::newRow("yes-specialchars2") << QString::fromUtf16(s2) << true; + QTest::newRow("yes-specialchars3") << QString::fromUtf16(s3) << true; + QTest::newRow("yes-specialchars4") << QString::fromUtf16(s4) << true; + QTest::newRow("yes-specialchars5") << QString::fromUtf16(s5) << true; + QTest::newRow("yes-specialchars6") << QString::fromUtf16(s6) << true; + QTest::newRow("yes-specialchars7") << QString::fromUtf16(s7) << true; + QTest::newRow("yes-specialchars8") << QString::fromUtf16(s8) << true; + + QTest::newRow("no-specialchars1") << QString::fromUtf16(s1).prepend("something") << false; + QTest::newRow("no-specialchars2") << QString::fromUtf16(s2).prepend(QString::fromUtf16(s2)) << false; + QTest::newRow("no-specialchars2.5") << QString::fromUtf16(s2).prepend("whatever") << false; + QTest::newRow("no-specialchars3") << QString::fromUtf16(s3).prepend("foo") << false; + QTest::newRow("no-specialchars4") << QString::fromUtf16(s4).prepend("bar") << false; + QTest::newRow("no-specialchars5") << QString::fromUtf16(s5).prepend(QString::fromUtf16(s2)) << false; + QTest::newRow("no-specialchars6") << QString::fromUtf16(s6).prepend(QLatin1Char('.') + QString::fromUtf16(s6)) << false; + QTest::newRow("no-specialchars7") << QString::fromUtf16(s7).prepend("bla") << false; + QTest::newRow("no-specialchars8") << QString::fromUtf16(s8).append("foo") << false; + + QTest::newRow("exception1") << "pref.iwate.jp" << false; + QTest::newRow("exception2") << "omanpost.om" << false; + QTest::newRow("exception3") << "omantel.om" << false; + QTest::newRow("exception4") << "gobiernoelectronico.ar" << false; + QTest::newRow("exception5") << "pref.ishikawa.jp" << false; + + QTest::newRow("yes-wildcard1") << "*.jm" << true; + QTest::newRow("yes-wildcard1.5") << "anything.jm" << true; + QTest::newRow("yes-wildcard2") << "something.kh" << true; + QTest::newRow("yes-wildcard3") << "whatever.uk" << true; + QTest::newRow("yes-wildcard4") << "anything.shizuoka.jp" << true; + QTest::newRow("yes-wildcard5") << "foo.sch.uk" << true; +} + +void tst_QNetworkCookieJar::effectiveTLDs() +{ + QFETCH(QString, domain); + QFETCH(bool, isTLD); + QCOMPARE(QNetworkCookieJarPrivate::isEffectiveTLD(domain), isTLD); +} + QTEST_MAIN(tst_QNetworkCookieJar) #include "tst_qnetworkcookiejar.moc" diff --git a/util/network/cookiejar-generateTLDs/cookiejar-generateTLDs.pro b/util/network/cookiejar-generateTLDs/cookiejar-generateTLDs.pro new file mode 100644 index 0000000..9d5f1cf --- /dev/null +++ b/util/network/cookiejar-generateTLDs/cookiejar-generateTLDs.pro @@ -0,0 +1,9 @@ +TEMPLATE = app +TARGET = +DEPENDPATH += . +INCLUDEPATH += . + +QT = core + +# Input +SOURCES += main.cpp diff --git a/util/network/cookiejar-generateTLDs/main.cpp b/util/network/cookiejar-generateTLDs/main.cpp new file mode 100644 index 0000000..fad2c71 --- /dev/null +++ b/util/network/cookiejar-generateTLDs/main.cpp @@ -0,0 +1,161 @@ +/**************************************************************************** +** +** 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 utils 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 + +static QString utf8encode(const QByteArray &array) // turns e.g. tranøy.no to tran\xc3\xb8y.no +{ + QString result; + result.reserve(array.length() + array.length() / 3); + for (int i = 0; i < array.length(); ++i) { + char c = array.at(i); + // if char is non-ascii, escape it + if (c < 0x20 || uchar(c) >= 0x7f) { + result += "\\x" + QString::number(uchar(c), 16); + } else { + // if previous char was escaped, we need to make sure the next char is not + // interpreted as part of the hex value, e.g. "äc.com" -> "\xabc.com"; this + // should be "\xab""c.com" + QRegExp hexEscape("\\\\x[a-fA-F0-9][a-fA-F0-9]$"); + bool isHexChar = ((c >= '0' && c <= '9') || + (c >= 'a' && c <= 'f') || + (c >= 'A' && c <= 'F')); + if (result.contains(hexEscape) && isHexChar) + result += "\"\""; + result += c; + } + } + return result; +} + +int main(int argc, char **argv) { + + QCoreApplication app(argc, argv); + if (argc < 3) { + printf("\nusage: %s inputFile outputFile\n\n", argv[0]); + printf("'inputFile' should be a list of effective TLDs, one per line,\n"); + printf("as obtained from http://publicsuffix.org . To create indices and data file\n"); + printf("file, do the following:\n\n"); + printf(" wget http://mxr.mozilla.org/mozilla-central/source/netwerk/dns/effective_tld_names.dat?raw=1 -O effective_tld_names.dat\n"); + printf(" grep '^[^\\/\\/]' effective_tld_names.dat > effective_tld_names.dat.trimmed\n"); + printf(" %s effective_tld_names.dat.trimmed effective_tld_names.dat.qt\n\n", argv[0]); + printf("Now copy the data from effective_tld_names.dat.qt to the file src/network/access/qnetworkcookiejartlds_p.h in your Qt repo\n\n"); + exit(1); + } + QFile file(argv[1]); + QFile outFile(argv[2]); + file.open(QIODevice::ReadOnly); + outFile.open(QIODevice::WriteOnly); + + QByteArray outIndicesBufferBA; + QBuffer outIndicesBuffer(&outIndicesBufferBA); + outIndicesBuffer.open(QIODevice::WriteOnly); + + QByteArray outDataBufferBA; + QBuffer outDataBuffer(&outDataBufferBA); + outDataBuffer.open(QIODevice::WriteOnly); + + int lineCount = 0; + while (!file.atEnd()) { + file.readLine(); + lineCount++; + } + file.reset(); + QVector strings(lineCount); + while (!file.atEnd()) { + QString s = QString::fromUtf8(file.readLine()); + QString st = s.trimmed(); + int num = qHash(st) % lineCount; + + QString utf8String = utf8encode(st.toUtf8()); + + // for domain 1.com, we could get something like + // a.com\01.com, which would be interpreted as octal 01, + // so we need to separate those strings with quotes + QRegExp regexpOctalEscape(QLatin1String("^[0-9]")); + if (!strings.at(num).isEmpty() && st.contains(regexpOctalEscape)) + strings[num].append("\"\""); + + strings[num].append(utf8String); + strings[num].append("\\0"); + } + + outIndicesBuffer.write("static const quint16 tldCount = "); + outIndicesBuffer.write(QByteArray::number(lineCount)); + outIndicesBuffer.write(";\n"); + outIndicesBuffer.write("static const quint16 tldIndices["); +// outIndicesBuffer.write(QByteArray::number(lineCount+1)); // not needed + outIndicesBuffer.write("] = {\n"); + + int utf8Size = 0; +// int charSize = 0; + for (int a = 0; a < lineCount; a++) { + bool lineIsEmpty = strings.at(a).isEmpty(); + if (!lineIsEmpty) { + strings[a].prepend("\""); + strings[a].append("\""); + } + int zeroCount = strings.at(a).count(QLatin1String("\\0")); + int utf8CharsCount = strings.at(a).count(QLatin1String("\\x")); + int quoteCount = strings.at(a).count('"'); + outDataBuffer.write(strings.at(a).toUtf8()); + if (!lineIsEmpty) + outDataBuffer.write("\n"); + outIndicesBuffer.write(QByteArray::number(utf8Size)); + outIndicesBuffer.write(",\n"); + utf8Size += strings.at(a).count() - (zeroCount + quoteCount + utf8CharsCount * 3); +// charSize += strings.at(a).count(); + } + outIndicesBuffer.write(QByteArray::number(utf8Size)); + outIndicesBuffer.write("};\n"); + outIndicesBuffer.close(); + outFile.write(outIndicesBufferBA); + + outDataBuffer.close(); + outFile.write("\nstatic const char tldData["); +// outFile.write(QByteArray::number(charSize)); // not needed + outFile.write("] = {\n"); + outFile.write(outDataBufferBA); + outFile.write("};\n"); + outFile.close(); + printf("data generated to %s . Now copy the data from this file to src/network/access/qnetworkcookiejartlds_p.h in your Qt repo\n", argv[2]); + exit(0); +} -- cgit v0.12 From 16cc5a4de47c13e90a341356090dbccbc8c3fe07 Mon Sep 17 00:00:00 2001 From: Eckhart Koppen Date: Wed, 5 Jan 2011 21:59:25 +0200 Subject: Updated DEF files for QtOpenGL for WINSCW and ARMV5 Marked QGLContextResource::value absent Reviewed-by: TrustMe --- src/s60installs/bwins/QtOpenGLu.def | 2 +- src/s60installs/eabi/QtOpenGLu.def | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/s60installs/bwins/QtOpenGLu.def b/src/s60installs/bwins/QtOpenGLu.def index 620fcb9..490eaf3 100644 --- a/src/s60installs/bwins/QtOpenGLu.def +++ b/src/s60installs/bwins/QtOpenGLu.def @@ -365,7 +365,7 @@ EXPORTS ?samples@QGLFramebufferObjectFormat@@QBEHXZ @ 364 NONAME ; int QGLFramebufferObjectFormat::samples(void) const ?setInactive@QGLCustomShaderStage@@QAEXXZ @ 365 NONAME ; void QGLCustomShaderStage::setInactive(void) ?extensionFuncs@QGLContextPrivate@@SAAAUQGLExtensionFuncs@@PBVQGLContext@@@Z @ 366 NONAME ; struct QGLExtensionFuncs & QGLContextPrivate::extensionFuncs(class QGLContext const *) - ?value@QGLContextResource@@QAEPAXPBVQGLContext@@@Z @ 367 NONAME ; void * QGLContextResource::value(class QGLContext const *) + ?value@QGLContextResource@@QAEPAXPBVQGLContext@@@Z @ 367 NONAME ABSENT ; void * QGLContextResource::value(class QGLContext const *) ?majorVersion@QGLFormat@@QBEHXZ @ 368 NONAME ; int QGLFormat::majorVersion(void) const ?rgba@QGLFormat@@QBE_NXZ @ 369 NONAME ; bool QGLFormat::rgba(void) const ?paintDevice@QGLWindowSurface@@UAEPAVQPaintDevice@@XZ @ 370 NONAME ; class QPaintDevice * QGLWindowSurface::paintDevice(void) diff --git a/src/s60installs/eabi/QtOpenGLu.def b/src/s60installs/eabi/QtOpenGLu.def index c92d99e..61e968c 100644 --- a/src/s60installs/eabi/QtOpenGLu.def +++ b/src/s60installs/eabi/QtOpenGLu.def @@ -293,7 +293,7 @@ EXPORTS _ZN17QGLContextPrivate14extensionFuncsEPK10QGLContext @ 292 NONAME _ZN17QGLGraphicsSystemC1Eb @ 293 NONAME _ZN17QGLGraphicsSystemC2Eb @ 294 NONAME - _ZN18QGLContextResource5valueEPK10QGLContext @ 295 NONAME + _ZN18QGLContextResource5valueEPK10QGLContext @ 295 NONAME ABSENT _ZN18QGLContextResource6insertEPK10QGLContextPv @ 296 NONAME _ZN18QGLContextResource7cleanupEPK10QGLContextPv @ 297 NONAME _ZN18QGLContextResourceC1EPFvPvE @ 298 NONAME -- cgit v0.12 From 57a3d4250ea438b2607d7f62ef26b8b83eb0f66c Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 6 Jan 2011 11:16:49 +1000 Subject: Doc fixes for introduction page and Item docs Moved 'Identity' and 'Property Change Signals' sections from Item docs to the intro page, which previously had a section on ids but this has been moved out of the 'Properties' section since an id isn't an ordinary property. --- doc/src/declarative/qdeclarativeintro.qdoc | 213 +++++++++++++-------- src/declarative/graphicsitems/qdeclarativeitem.cpp | 28 --- 2 files changed, 130 insertions(+), 111 deletions(-) diff --git a/doc/src/declarative/qdeclarativeintro.qdoc b/doc/src/declarative/qdeclarativeintro.qdoc index 4e41fda..20db248 100644 --- a/doc/src/declarative/qdeclarativeintro.qdoc +++ b/doc/src/declarative/qdeclarativeintro.qdoc @@ -37,7 +37,7 @@ interface is specified as a tree of objects with properties. This introduction is meant for those with little or no programming experience. JavaScript is used as a scripting language in QML, so you may want -to learn a bit more about it (\l{Javascript Guide}) before diving +to learn a bit more about it (see the \l{Javascript Guide}) before diving deeper into QML. It's also helpful to have a basic understanding of other web technologies like HTML and CSS, but it's not required. @@ -60,13 +60,13 @@ Rectangle { } \endcode -Objects are specified by their type, followed by a pair of braces. Object -types always begin with a capital letter. In the above example, there are -two objects, a \l Rectangle, and an \l Image. Between the braces, we can specify -information about the object, such as its properties. +Here we create two objects, a \l Rectangle object and its child +\l Image object. Objects are specified by their type, followed by a pair of +braces in between which additional data can be defined for the object, such as +its property values and any child objects. -Properties are specified as \c {property: value}. In the above example, we -can see the Image has a property named \c source, which has been assigned the +Properties are specified with a \c {property: value} syntax. In the above example, we +can see the \l Image object has a property named \c source, which has been assigned the value \c "pics/logo.png". The property and its value are separated by a colon. Properties can be specified one-per-line: @@ -87,45 +87,13 @@ Rectangle { width: 100; height: 100 } When multiple property/value pairs are specified on a single line, they must be separated by a semicolon. -The \c import statement imports the \c Qt \l{QML Modules}{module}, which contains all of the +The \c import statement imports the \c QtQuick \l{QML Modules}{module}, which contains all of the standard \l {QML Elements}. Without this import statement, the \l Rectangle and \l Image elements would not be available. -\section1 Expressions - -In addition to assigning values to properties, you can also assign -expressions written in JavaScript. - -\code -Rotation { - angle: 360 * 3 -} -\endcode - -These expressions can include references to other objects and properties, in which case -a \e binding is established: when the value of the expression changes, the property the -expression has been assigned to is automatically updated to that value. - -\code -Item { - Text { - id: text1 - text: "Hello World" - } - Text { - id: text2 - text: text1.text - } -} -\endcode - -In the example above, the \c text2 object will display the same text as \c text1. If \c text1 is changed, -\c text2 is automatically changed to the same value. -Note that to refer to other objects, we use their \e id values. (See below for more -information on the \e id property.) -\section1 QML Comments +\section1 Comments Commenting in QML is similar to JavaScript. \list @@ -149,27 +117,95 @@ Text { } \endcode -In the above example, the Text object will have normal opacity, since the +In the above example, the \l Text object will have normal opacity, since the line opacity: 0.5 has been turned into a comment. -\section1 Properties -\target intro-properties -\section2 Property naming -Properties begin with a lowercase letter (with the exception of \l{Attached Properties}). +\section1 Object identifiers + +Each object can be given a special \e id value that allows the object to be identified +and referred to by other objects. + +For example, below we have two \l Text objects. The first \l Text object +has an \c id value of "text1". The second \l Text object can now set its own +\c text property value to be the same as that of the first object, by referring to +\c text1.text: + +\qml +import QtQuick 1.0 + +Row { + Text { + id: text1 + text: "Hello World" + } + + Text { text: text1.text } +} +\endqml + +An object can be referred to by its \c id from anywhere within the \l {QML Documents}{component} +in which it is declared. Therefore, an \c id value must always be unique within a single component. + +The \c id value is a special value for a QML object and should not be thought of as an +ordinary object property; for example, it is not possible to access \c text1.id in the +above example. Once an object is created, its \c id cannot be changed. + +Note that an \c id must begin with a lower-case letter or an underscore, and cannot contain +characters other than letters, numbers and underscores. + + + +\section1 Expressions + +JavaScript expressions can be used to assign property values. For example: + +\code +Item { + width: 100 * 3 + height: 50 + 22 +} +\endcode + +These expressions can include references to other objects and properties, in which case +a \l{Property Binding}{binding} is established: when the value of the expression changes, +the property to which the expression is assigned is automatically updated to the +new value. For example: + +\code +Item { + width: 300 + height: 300 + + Rectangle { + width: parent.width - 50 + height: 100 + color: "yellow" + } +} +\endcode + +Here, the \l Rectangle object's \c width property is set relative to the width +of its parent. Whenever the parent's width changes, the width of the \l Rectangle is +automatically updated. -\section2 Property types -QML supports properties of many types (see \l{QML Basic Types}). The basic types include int, -real, bool, string, color, and lists. + +\section1 Properties +\target intro-properties + +\section2 Basic property types + +QML supports properties of many types (see \l{QML Basic Types}). The basic types include \c int, +\c real, \c bool, \c string and \c color. \code Item { x: 10.5 // a 'real' property - ... state: "details" // a 'string' property focus: true // a 'bool' property + ... } \endcode @@ -183,31 +219,30 @@ Item { } \endcode -\section3 The \c id property +Note that with the exception of \l {Attached Properties}, properties always begin with a lowercase +letter. -Each object can be given a special unique property called an \e id. No other object within the -same QML component (see \l{QML Documents}) can have the same \c id value. Assigning an id enables the object -to be referred to by other objects and scripts. -The first Rectangle element below has an \e id, "myRect". The second Rectangle element defines its -own width by referring to \tt myRect.width, which means it will have the same \tt width -value as the first Rectangle element. +\section2 Property change notifications -\code -Item { - Rectangle { - id: myRect - width: 100 - height: 100 - } - Rectangle { - width: myRect.width - height: 200 - } +When a property changes value, it can send a signal to notify others of this change. + +To receive these signals, simply create a \e {signal handler} named with an \c onChanged +syntax. For example, the \l Rectangle element has \l {Item::}{width} and \l {Rectangle::}{color} +properties. Below, we have a \l Rectangle object that has defined two signal handlers, +\c onWidthChanged and \c onColorChanged, which will automaticallly be called whenever these +properties are modified: + +\qml +Rectangle { + width: 100; height: 100 + + onWidthChanged: console.log("Width has changed to:", width) + onColorChanged: console.log("Color has changed to:", color) } -\endcode +\endqml -Note that an \e id must begin with a lower-case letter or an underscore, and cannot contain characters other than letters, numbers and underscores. +Signal handlers are explained further \l {Signal Handlers}{below}. \section2 List properties @@ -293,7 +328,9 @@ Some objects attach properties to another object. Attached Properties are of the form \e {Type.property} where \e Type is the type of the element that attaches \e property. -For example: +For example, the \l ListView element attaches the \e ListView.isCurrentItem property +to each delegate it creates: + \code Component { id: myDelegate @@ -307,9 +344,6 @@ ListView { } \endcode -The \l ListView element attaches the \e ListView.isCurrentItem property -to each delegate it creates. - Another example of attached properties is the \l Keys element which attaches properties for handling key presses to any visual Item, for example: @@ -321,27 +355,40 @@ Item { } \endcode -\section2 Signal Handlers +\section1 Signal Handlers -Signal handlers allow actions to be taken in response to an event. For instance, -the \l MouseArea element has signal handlers to handle mouse press, release -and click: +Signal handlers allow JavaScript code to be executed in response to an event. For +example, the \l MouseArea element has an \l {MouseArea::}{onClicked} handler that can +be used to respond to a mouse click. Below, we use this handler to print a +message whenever the mouse is clicked: \code -MouseArea { - onPressed: console.log("mouse button pressed") +Item { + width: 100; height: 100 + + MouseArea { + anchors.fill: parent + onClicked: { + console.log("mouse button clicked") + } + } } \endcode All signal handlers begin with \e "on". -Some signal handlers include an optional parameter, for example -the MouseArea onPressed signal handler has a \e mouse parameter: +Some signal handlers include an optional parameter. For example +the MouseArea \l{MouseArea::}{onPressed} signal handler has a \c mouse parameter +that contains information about the mouse press. This parameter can be referred to in +the JavaScript code, as below: \code MouseArea { acceptedButtons: Qt.LeftButton | Qt.RightButton - onPressed: if (mouse.button == Qt.RightButton) console.log("Right mouse button pressed") + onPressed: { + if (mouse.button == Qt.RightButton) + console.log("Right mouse button pressed") + } } \endcode diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp index 24d9b03..922fa8f 100644 --- a/src/declarative/graphicsitems/qdeclarativeitem.cpp +++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp @@ -1333,23 +1333,6 @@ QDeclarativeKeysAttached *QDeclarativeKeysAttached::qmlAttachedProperties(QObjec } \endqml - \section1 Identity - - Each item has an "id" - the identifier of the Item. - - The identifier can be used in bindings and other expressions to - refer to the item. For example: - - \qml - Text { id: myText; ... } - Text { text: myText.text } - \endqml - - The identifier is available throughout to the \l {components}{component} - where it is declared. The identifier must be unique in the component. - - The id should not be thought of as a "property" - it makes no sense - to write \c myText.id, for example. \section1 Key Handling @@ -1376,17 +1359,6 @@ QDeclarativeKeysAttached *QDeclarativeKeysAttached::qmlAttachedProperties(QObjec \endqml See the \l {Keys}{Keys} attached property for detailed documentation. - - \section1 Property Change Signals - - Most properties on Item and Item derivatives have a signal - emitted when they change. By convention, the signals are - named Changed, e.g. xChanged will be emitted when an item's - x property changes. Note that these also have signal handers e.g. - the onXChanged signal handler will be called when an item's x property - changes. For many properties in Item or Item derivatives this can be used - to add a touch of imperative logic to your application (when absolutely - necessary). */ /*! -- cgit v0.12 From 1d7b672fd46abab51a0124ad19aad18e5d14f1a8 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 6 Jan 2011 14:10:35 +1000 Subject: Update docs - calling overloaded functions from QML is now supported --- doc/src/declarative/qtbinding.qdoc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index 04b8ca6..8ee7247 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -96,7 +96,7 @@ There are a number of ways to extend your QML application through C++. For examp \list \o Load a QML component and manipulate it (or its children) from C++ \o Embed a C++ object and its properties directly into a QML component (for example, to make a -particular C++ object callable from QML, or to replace a dummy list model data with a real data set) +particular C++ object callable from QML, or to replace a dummy list model with a real data set) \o Define new QML elements (through QObject-based C++ classes) and create them directly from your QML code \endlist @@ -297,17 +297,20 @@ methods on the \c myObject object, which has been set using QDeclarativeContext: \snippet doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp 0 \endtable -Note that QML does not support overloaded functions. If a C++ has more than one function with the -same name, there is no guarantee which overloaded function will be called from QML. +QML supports the calling of overloaded C++ functions. If there are multiple C++ functions with the +same name but different arguments, the correct function will be called according to the number and +the types of arguments that are provided. \section2 Receiving signals All QML signals are automatically available to C++, and can be connected to using QObject::connect() -like any ordinary Qt C++ signal. +like any ordinary Qt C++ signal. In return, any C++ signal can be received by a QML object using +\l {Signal Handlers}{signal handlers}. Here is a QML component with a signal named \c qmlSignal. This signal is connected to a C++ object's -slot using QObject::connect(): +slot using QObject::connect(), so that the \c cppSlot() method is called whenever the \c qmlSignal +is emitted: \table \row -- cgit v0.12 From 1ba3e41f09ea719249286fede5d3fe96621ccb61 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 6 Jan 2011 15:48:52 +1000 Subject: PathView: update modelCount before attempting to regenerate delegates. If the model is a VisualDataModel, the count will initally be zero and modelCount is not updated due to itemsInserted() before the component is completed. Task-number: QTBUG-16357 Reviewed-by: Bea Lam --- .../graphicsitems/qdeclarativepathview.cpp | 4 +++- .../declarative/qdeclarativepathview/data/vdm.qml | 28 ++++++++++++++++++++++ .../tst_qdeclarativepathview.cpp | 14 +++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 tests/auto/declarative/qdeclarativepathview/data/vdm.qml diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp index e3987d0..74d3418 100644 --- a/src/declarative/graphicsitems/qdeclarativepathview.cpp +++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp @@ -1318,8 +1318,10 @@ void QDeclarativePathView::componentComplete() // It is possible that a refill has already happended to to Path // bindings being handled in the componentComplete(). If so // don't do it again. - if (d->items.count() == 0) + if (d->items.count() == 0 && d->model) { + d->modelCount = d->model->count(); d->regenerate(); + } d->updateHighlight(); } diff --git a/tests/auto/declarative/qdeclarativepathview/data/vdm.qml b/tests/auto/declarative/qdeclarativepathview/data/vdm.qml new file mode 100644 index 0000000..012db3f --- /dev/null +++ b/tests/auto/declarative/qdeclarativepathview/data/vdm.qml @@ -0,0 +1,28 @@ +import QtQuick 1.0 + +PathView { + id: pathView + width: 240; height: 320 + + pathItemCount: 4 + preferredHighlightBegin : 0.5 + preferredHighlightEnd : 0.5 + + path: Path { + startX: 120; startY: 20; + PathLine { x: 120; y: 300 } + } + + ListModel { + id: mo + ListElement { value: "one" } + ListElement { value: "two" } + ListElement { value: "three" } + } + + model: VisualDataModel { + delegate: Text { text: model.value } + model : mo + } +} + diff --git a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp index 9193707..90b1056 100644 --- a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp +++ b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp @@ -87,6 +87,7 @@ private slots: void emptyModel(); void closed(); void pathUpdate(); + void visualDataModel(); private: QDeclarativeView *createView(); @@ -839,6 +840,19 @@ void tst_QDeclarativePathView::pathUpdate() delete canvas; } +void tst_QDeclarativePathView::visualDataModel() +{ + QDeclarativeEngine engine; + QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/vdm.qml")); + + QDeclarativePathView *obj = qobject_cast(c.create()); + QVERIFY(obj != 0); + + QCOMPARE(obj->count(), 3); + + delete obj; +} + QDeclarativeView *tst_QDeclarativePathView::createView() { QDeclarativeView *canvas = new QDeclarativeView(0); -- cgit v0.12 From 05b9137fe1974aa123ce6d9c16b733e1f77d8269 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Thu, 6 Jan 2011 16:57:06 +1000 Subject: PathView crashed when the path is provided with undefined values. Task-number: QTBUG-16356 Reviewed-by: Bea Lam --- src/declarative/graphicsitems/qdeclarativepath.cpp | 8 +++++++- .../qdeclarativepathview/data/undefinedpath.qml | 17 +++++++++++++++++ .../qdeclarativepathview/tst_qdeclarativepathview.cpp | 14 ++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tests/auto/declarative/qdeclarativepathview/data/undefinedpath.qml diff --git a/src/declarative/graphicsitems/qdeclarativepath.cpp b/src/declarative/graphicsitems/qdeclarativepath.cpp index 966c51b..e63a2c3 100644 --- a/src/declarative/graphicsitems/qdeclarativepath.cpp +++ b/src/declarative/graphicsitems/qdeclarativepath.cpp @@ -46,6 +46,8 @@ #include #include +#include +#include QT_BEGIN_NAMESPACE @@ -367,9 +369,11 @@ void QDeclarativePath::createPointCache() const { Q_D(const QDeclarativePath); qreal pathLength = d->_path.length(); + if (pathLength <= 0 || qIsNaN(pathLength)) + return; // more points means less jitter between items as they move along the // path, but takes longer to generate - const int points = int(pathLength*5); + const int points = qCeil(pathLength*5); const int lastElement = d->_path.elementCount() - 1; d->_pointCache.resize(points+1); @@ -418,6 +422,8 @@ QPointF QDeclarativePath::pointAt(qreal p) const Q_D(const QDeclarativePath); if (d->_pointCache.isEmpty()) { createPointCache(); + if (d->_pointCache.isEmpty()) + return QPointF(); } int idx = qRound(p*d->_pointCache.size()); if (idx >= d->_pointCache.size()) diff --git a/tests/auto/declarative/qdeclarativepathview/data/undefinedpath.qml b/tests/auto/declarative/qdeclarativepathview/data/undefinedpath.qml new file mode 100644 index 0000000..5a647cb --- /dev/null +++ b/tests/auto/declarative/qdeclarativepathview/data/undefinedpath.qml @@ -0,0 +1,17 @@ +import QtQuick 1.0 + +PathView { + id: pathView + width: 240; height: 200 + path: Path { + startX: pathView.undef/2.0; startY: 0 + PathLine { x: pathView.undef/2.0; y: 0 } + } + + delegate: Text { text: value } + model: ListModel { + ListElement { value: "one" } + ListElement { value: "two" } + ListElement { value: "three" } + } +} diff --git a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp index 90b1056..bd8baab 100644 --- a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp +++ b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp @@ -88,6 +88,7 @@ private slots: void closed(); void pathUpdate(); void visualDataModel(); + void undefinedPath(); private: QDeclarativeView *createView(); @@ -853,6 +854,19 @@ void tst_QDeclarativePathView::visualDataModel() delete obj; } +void tst_QDeclarativePathView::undefinedPath() +{ + QDeclarativeEngine engine; + QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/undefinedpath.qml")); + + QDeclarativePathView *obj = qobject_cast(c.create()); + QVERIFY(obj != 0); + + QCOMPARE(obj->count(), 3); + + delete obj; +} + QDeclarativeView *tst_QDeclarativePathView::createView() { QDeclarativeView *canvas = new QDeclarativeView(0); -- cgit v0.12 From 70d96d5d17c62fb97ce15967012527dd8b292316 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Thu, 6 Jan 2011 09:51:29 +0100 Subject: fix build with namespaces in new cookie jar table forgot the QT_END_NAMESPACE macro. --- src/network/access/qnetworkcookiejartlds_p.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/network/access/qnetworkcookiejartlds_p.h b/src/network/access/qnetworkcookiejartlds_p.h index fc1c75f..b06d881 100644 --- a/src/network/access/qnetworkcookiejartlds_p.h +++ b/src/network/access/qnetworkcookiejartlds_p.h @@ -6476,4 +6476,6 @@ static const char tldData[] = { "santafe.museum\0org.ws\0" }; +QT_END_NAMESPACE + #endif // QNETWORKCOOKIEJARTLD_P_H -- cgit v0.12 From 574c5ae30b126f1b94d04f97d0605862e07f7860 Mon Sep 17 00:00:00 2001 From: Eckhart Koppen Date: Thu, 6 Jan 2011 11:10:41 +0200 Subject: Updated QTOpenGL DEF files for WINSCW and ARMV5 Marked more functions absent Reviewed-by: TrustMe --- src/s60installs/bwins/QtOpenGLu.def | 157 ++++++++++++++++++++++++++++++++---- src/s60installs/eabi/QtOpenGLu.def | 44 +++++----- 2 files changed, 162 insertions(+), 39 deletions(-) diff --git a/src/s60installs/bwins/QtOpenGLu.def b/src/s60installs/bwins/QtOpenGLu.def index 490eaf3..68dfe91 100644 --- a/src/s60installs/bwins/QtOpenGLu.def +++ b/src/s60installs/bwins/QtOpenGLu.def @@ -98,7 +98,7 @@ EXPORTS ?metaObject@QGLWindowSurface@@UBEPBUQMetaObject@@XZ @ 97 NONAME ; struct QMetaObject const * QGLWindowSurface::metaObject(void) const ?setAttributeBuffer@QGLShaderProgram@@QAEXHIHHH@Z @ 98 NONAME ; void QGLShaderProgram::setAttributeBuffer(int, unsigned int, int, int, int) ?getProcAddress@QGLContext@@QBEPAXABVQString@@@Z @ 99 NONAME ; void * QGLContext::getProcAddress(class QString const &) const - ?qt_metacall@QGLTextureGlyphCache@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 100 NONAME ; int QGLTextureGlyphCache::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QGLTextureGlyphCache@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 100 NONAME ABSENT ; int QGLTextureGlyphCache::qt_metacall(enum QMetaObject::Call, int, void * *) ??1QGLPixelBuffer@@UAE@XZ @ 101 NONAME ; QGLPixelBuffer::~QGLPixelBuffer(void) ?setUniformValueArray@QGLShaderProgram@@QAEXHPBVQVector4D@@H@Z @ 102 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QVector4D const *, int) ?releaseFromDynamicTexture@QGLPixelBuffer@@QAEXXZ @ 103 NONAME ; void QGLPixelBuffer::releaseFromDynamicTexture(void) @@ -115,7 +115,7 @@ EXPORTS ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$01$02M@@@Z @ 114 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<2, 3, float> const &) ?useCorrectShaderProg@QGLEngineShaderManager@@QAE_NXZ @ 115 NONAME ; bool QGLEngineShaderManager::useCorrectShaderProg(void) ?setAlphaBufferSize@QGLFormat@@QAEXH@Z @ 116 NONAME ; void QGLFormat::setAlphaBufferSize(int) - ??0QGLContextResource@@QAE@P6AXPAX@Z@Z @ 117 NONAME ; QGLContextResource::QGLContextResource(void (*)(void *)) + ??0QGLContextResource@@QAE@P6AXPAX@Z@Z @ 117 NONAME ABSENT ; QGLContextResource::QGLContextResource(void (*)(void *)) ?tr@QGLEngineShaderManager@@SA?AVQString@@PBD0H@Z @ 118 NONAME ; class QString QGLEngineShaderManager::tr(char const *, char const *, int) ?setUniformValue@QGLShaderProgram@@QAEXHABVQVector4D@@@Z @ 119 NONAME ; void QGLShaderProgram::setUniformValue(int, class QVector4D const &) ?d_func@QGLContext@@ABEPBVQGLContextPrivate@@XZ @ 120 NONAME ; class QGLContextPrivate const * QGLContext::d_func(void) const @@ -125,7 +125,7 @@ EXPORTS ?bindTexture@QGLWidget@@QAEIABVQImage@@IHV?$QFlags@W4BindOption@QGLContext@@@@@Z @ 124 NONAME ; unsigned int QGLWidget::bindTexture(class QImage const &, unsigned int, int, class QFlags) ?ensureCreated@QGLPixmapData@@ABEXXZ @ 125 NONAME ; void QGLPixmapData::ensureCreated(void) const ?setSource@QGLCustomShaderStage@@IAEXABVQByteArray@@@Z @ 126 NONAME ; void QGLCustomShaderStage::setSource(class QByteArray const &) - ?trUtf8@QGLTextureGlyphCache@@SA?AVQString@@PBD0@Z @ 127 NONAME ; class QString QGLTextureGlyphCache::trUtf8(char const *, char const *) + ?trUtf8@QGLTextureGlyphCache@@SA?AVQString@@PBD0@Z @ 127 NONAME ABSENT ; class QString QGLTextureGlyphCache::trUtf8(char const *, char const *) ?removeFromPainter@QGLCustomShaderStage@@QAEXPAVQPainter@@@Z @ 128 NONAME ; void QGLCustomShaderStage::removeFromPainter(class QPainter *) ?qt_metacall@QGLWindowSurface@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 129 NONAME ; int QGLWindowSurface::qt_metacall(enum QMetaObject::Call, int, void * *) ??0QGLBuffer@@QAE@W4Type@0@@Z @ 130 NONAME ; QGLBuffer::QGLBuffer(enum QGLBuffer::Type) @@ -207,7 +207,7 @@ EXPORTS ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$02$02M@@@Z @ 206 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<3, 3, float> const &) ?setUniformValue@QGLShaderProgram@@QAEXPBDMMMM@Z @ 207 NONAME ; void QGLShaderProgram::setUniformValue(char const *, float, float, float, float) ?requestedFormat@QGLContext@@QBE?AVQGLFormat@@XZ @ 208 NONAME ; class QGLFormat QGLContext::requestedFormat(void) const - ?fillTexture@QGLTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@I@Z @ 209 NONAME ; void QGLTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int) + ?fillTexture@QGLTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@I@Z @ 209 NONAME ABSENT ; void QGLTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int) ?isNativePaintingActive@QGL2PaintEngineEx@@QBE_NXZ @ 210 NONAME ; bool QGL2PaintEngineEx::isNativePaintingActive(void) const ?accumBufferSize@QGLFormat@@QBEHXZ @ 211 NONAME ; int QGLFormat::accumBufferSize(void) const ?setAttributeValue@QGLShaderProgram@@QAEXHPBMHH@Z @ 212 NONAME ; void QGLShaderProgram::setAttributeValue(int, float const *, int, int) @@ -231,7 +231,7 @@ EXPORTS ??1QGLPaintDevice@@UAE@XZ @ 230 NONAME ; QGLPaintDevice::~QGLPaintDevice(void) ?setGeometryInputType@QGLShaderProgram@@QAEXI@Z @ 231 NONAME ; void QGLShaderProgram::setGeometryInputType(unsigned int) ?isValid@QGLPixmapData@@ABE_NXZ @ 232 NONAME ; bool QGLPixmapData::isValid(void) const - ?cleanup@QGLContextResource@@QAEXPBVQGLContext@@PAX@Z @ 233 NONAME ; void QGLContextResource::cleanup(class QGLContext const *, void *) + ?cleanup@QGLContextResource@@QAEXPBVQGLContext@@PAX@Z @ 233 NONAME ABSENT ; void QGLContextResource::cleanup(class QGLContext const *, void *) ?context@QGLWidget@@QBEPBVQGLContext@@XZ @ 234 NONAME ; class QGLContext const * QGLWidget::context(void) const ?tr@QGLShaderProgram@@SA?AVQString@@PBD0H@Z @ 235 NONAME ; class QString QGLShaderProgram::tr(char const *, char const *, int) ??0QGLPixelBuffer@@QAE@HHABVQGLFormat@@PAVQGLWidget@@@Z @ 236 NONAME ; QGLPixelBuffer::QGLPixelBuffer(int, int, class QGLFormat const &, class QGLWidget *) @@ -282,13 +282,13 @@ EXPORTS ??0QGLShaderProgram@@QAE@PBVQGLContext@@PAVQObject@@@Z @ 281 NONAME ; QGLShaderProgram::QGLShaderProgram(class QGLContext const *, class QObject *) ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBV?$QGenericMatrix@$03$02M@@H@Z @ 282 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QGenericMatrix<4, 3, float> const *, int) ??0QGLShaderProgram@@QAE@PAVQObject@@@Z @ 283 NONAME ; QGLShaderProgram::QGLShaderProgram(class QObject *) - ?qt_metacast@QGLTextureGlyphCache@@UAEPAXPBD@Z @ 284 NONAME ; void * QGLTextureGlyphCache::qt_metacast(char const *) + ?qt_metacast@QGLTextureGlyphCache@@UAEPAXPBD@Z @ 284 NONAME ABSENT ; void * QGLTextureGlyphCache::qt_metacast(char const *) ?staticMetaObject@QGLEngineShaderManager@@2UQMetaObject@@B @ 285 NONAME ; struct QMetaObject const QGLEngineShaderManager::staticMetaObject ?setDevice@QGLContext@@IAEXPAVQPaintDevice@@@Z @ 286 NONAME ; void QGLContext::setDevice(class QPaintDevice *) ?setUniformValueArray@QGLShaderProgram@@QAEXHPBV?$QGenericMatrix@$02$01M@@H@Z @ 287 NONAME ; void QGLShaderProgram::setUniformValueArray(int, class QGenericMatrix<3, 2, float> const *, int) ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$03$02M@@@Z @ 288 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<4, 3, float> const &) ?setAttributeArray@QGLShaderProgram@@QAEXHIPBXHH@Z @ 289 NONAME ; void QGLShaderProgram::setAttributeArray(int, unsigned int, void const *, int, int) - ?tr@QGLTextureGlyphCache@@SA?AVQString@@PBD0H@Z @ 290 NONAME ; class QString QGLTextureGlyphCache::tr(char const *, char const *, int) + ?tr@QGLTextureGlyphCache@@SA?AVQString@@PBD0H@Z @ 290 NONAME ABSENT ; class QString QGLTextureGlyphCache::tr(char const *, char const *, int) ?setDefaultOverlayFormat@QGLFormat@@SAXABV1@@Z @ 291 NONAME ; void QGLFormat::setDefaultOverlayFormat(class QGLFormat const &) ?qt_gl_share_widget@@YAPAVQGLWidget@@XZ @ 292 NONAME ; class QGLWidget * qt_gl_share_widget(void) ?initializeOverlayGL@QGLWidget@@MAEXXZ @ 293 NONAME ; void QGLWidget::initializeOverlayGL(void) @@ -401,7 +401,7 @@ EXPORTS ?isValid@QGLWidget@@QBE_NXZ @ 400 NONAME ; bool QGLWidget::isValid(void) const ?shared_null@QGLColormap@@0UQGLColormapData@1@A @ 401 NONAME ; struct QGLColormap::QGLColormapData QGLColormap::shared_null ?setUniformValue@QGLShaderProgram@@QAEXPBDQAY01M@Z @ 402 NONAME ; void QGLShaderProgram::setUniformValue(char const *, float [2] * const) - ?insert@QGLContextResource@@QAEXPBVQGLContext@@PAX@Z @ 403 NONAME ; void QGLContextResource::insert(class QGLContext const *, void *) + ?insert@QGLContextResource@@QAEXPBVQGLContext@@PAX@Z @ 403 NONAME ABSENT ; void QGLContextResource::insert(class QGLContext const *, void *) ??0QGLCustomShaderStage@@QAE@XZ @ 404 NONAME ; QGLCustomShaderStage::QGLCustomShaderStage(void) ?setDefaultFormat@QGLFormat@@SAXABV1@@Z @ 405 NONAME ; void QGLFormat::setDefaultFormat(class QGLFormat const &) ?sourceCode@QGLShader@@QBE?AVQByteArray@@XZ @ 406 NONAME ; class QByteArray QGLShader::sourceCode(void) const @@ -421,7 +421,7 @@ EXPORTS ??_EQGLShaderProgram@@UAE@I@Z @ 420 NONAME ; QGLShaderProgram::~QGLShaderProgram(unsigned int) ?pixmapFilter@QGL2PaintEngineEx@@UAEPAVQPixmapFilter@@HPBV2@@Z @ 421 NONAME ; class QPixmapFilter * QGL2PaintEngineEx::pixmapFilter(int, class QPixmapFilter const *) ?scroll@QGLPixmapData@@UAE_NHHABVQRect@@@Z @ 422 NONAME ; bool QGLPixmapData::scroll(int, int, class QRect const &) - ?contextDestroyed@QGLTextureGlyphCache@@QAEXPBVQGLContext@@@Z @ 423 NONAME ; void QGLTextureGlyphCache::contextDestroyed(class QGLContext const *) + ?contextDestroyed@QGLTextureGlyphCache@@QAEXPBVQGLContext@@@Z @ 423 NONAME ABSENT ; void QGLTextureGlyphCache::contextDestroyed(class QGLContext const *) ??0QGLColormap@@QAE@XZ @ 424 NONAME ; QGLColormap::QGLColormap(void) ?metric@QGLFramebufferObject@@MBEHW4PaintDeviceMetric@QPaintDevice@@@Z @ 425 NONAME ; int QGLFramebufferObject::metric(enum QPaintDevice::PaintDeviceMetric) const ?devType@QGLFramebufferObject@@MBEHXZ @ 426 NONAME ; int QGLFramebufferObject::devType(void) const @@ -468,7 +468,7 @@ EXPORTS ?d_func@QGL2PaintEngineEx@@AAEPAVQGL2PaintEngineExPrivate@@XZ @ 467 NONAME ; class QGL2PaintEngineExPrivate * QGL2PaintEngineEx::d_func(void) ?resize@QGLPixmapData@@UAEXHH@Z @ 468 NONAME ; void QGLPixmapData::resize(int, int) ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$01$01M@@@Z @ 469 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<2, 2, float> const &) - ?trUtf8@QGLTextureGlyphCache@@SA?AVQString@@PBD0H@Z @ 470 NONAME ; class QString QGLTextureGlyphCache::trUtf8(char const *, char const *, int) + ?trUtf8@QGLTextureGlyphCache@@SA?AVQString@@PBD0H@Z @ 470 NONAME ABSENT ; class QString QGLTextureGlyphCache::trUtf8(char const *, char const *, int) ?begin@QGL2PaintEngineEx@@UAE_NPAVQPaintDevice@@@Z @ 471 NONAME ; bool QGL2PaintEngineEx::begin(class QPaintDevice *) ?samples@QGLFormat@@QBEHXZ @ 472 NONAME ; int QGLFormat::samples(void) const ?setFormat@QGLContext@@QAEXABVQGLFormat@@@Z @ 473 NONAME ; void QGLContext::setFormat(class QGLFormat const &) @@ -495,7 +495,7 @@ EXPORTS ?setGeometryOutputVertexCount@QGLShaderProgram@@QAEXH@Z @ 494 NONAME ; void QGLShaderProgram::setGeometryOutputVertexCount(int) ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQSize@@@Z @ 495 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QSize const &) ?convertToGLFormat@QGLWidget@@SA?AVQImage@@ABV2@@Z @ 496 NONAME ; class QImage QGLWidget::convertToGLFormat(class QImage const &) - ?staticMetaObject@QGLTextureGlyphCache@@2UQMetaObject@@B @ 497 NONAME ; struct QMetaObject const QGLTextureGlyphCache::staticMetaObject + ?staticMetaObject@QGLTextureGlyphCache@@2UQMetaObject@@B @ 497 NONAME ABSENT ; struct QMetaObject const QGLTextureGlyphCache::staticMetaObject ??_EQGLContextResource@@QAE@I@Z @ 498 NONAME ABSENT ; QGLContextResource::~QGLContextResource(unsigned int) ?handle@QGLColormap@@IAEKXZ @ 499 NONAME ; unsigned long QGLColormap::handle(void) ?isCreated@QGLBuffer@@QBE_NXZ @ 500 NONAME ; bool QGLBuffer::isCreated(void) const @@ -549,7 +549,7 @@ EXPORTS ?setUniformValue@QGLShaderProgram@@QAEXPBDABVQPointF@@@Z @ 548 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QPointF const &) ?getDevice@QGLPaintDevice@@SAPAV1@PAVQPaintDevice@@@Z @ 549 NONAME ; class QGLPaintDevice * QGLPaintDevice::getDevice(class QPaintDevice *) ?setUniformValue@QGLShaderProgram@@QAEXHQAY02M@Z @ 550 NONAME ; void QGLShaderProgram::setUniformValue(int, float [3] * const) - ?getStaticMetaObject@QGLTextureGlyphCache@@SAABUQMetaObject@@XZ @ 551 NONAME ; struct QMetaObject const & QGLTextureGlyphCache::getStaticMetaObject(void) + ?getStaticMetaObject@QGLTextureGlyphCache@@SAABUQMetaObject@@XZ @ 551 NONAME ABSENT ; struct QMetaObject const & QGLTextureGlyphCache::getStaticMetaObject(void) ?swapBuffers@QGLContext@@UBEXXZ @ 552 NONAME ; void QGLContext::swapBuffers(void) const ?renderText@QGLWidget@@QAEXHHABVQString@@ABVQFont@@H@Z @ 553 NONAME ; void QGLWidget::renderText(int, int, class QString const &, class QFont const &, int) ?defaultFormat@QGLFormat@@SA?AV1@XZ @ 554 NONAME ; class QGLFormat QGLFormat::defaultFormat(void) @@ -558,7 +558,7 @@ EXPORTS ?bindTexture@QGLContext@@QAEIABVQImage@@IHV?$QFlags@W4BindOption@QGLContext@@@@@Z @ 557 NONAME ; unsigned int QGLContext::bindTexture(class QImage const &, unsigned int, int, class QFlags) ?initialized@QGLContext@@IBE_NXZ @ 558 NONAME ; bool QGLContext::initialized(void) const ?cleanup@QGLColormap@@CAXPAUQGLColormapData@1@@Z @ 559 NONAME ; void QGLColormap::cleanup(struct QGLColormap::QGLColormapData *) - ??1QGLContextResource@@QAE@XZ @ 560 NONAME ; QGLContextResource::~QGLContextResource(void) + ??1QGLContextResource@@QAE@XZ @ 560 NONAME ABSENT ; QGLContextResource::~QGLContextResource(void) ?bindTexture@QGLWidget@@QAEIABVQPixmap@@IHV?$QFlags@W4BindOption@QGLContext@@@@@Z @ 561 NONAME ; unsigned int QGLWidget::bindTexture(class QPixmap const &, unsigned int, int, class QFlags) ?setUniformValue@QGLShaderProgram@@QAEXPBDABV?$QGenericMatrix@$02$01M@@@Z @ 562 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QGenericMatrix<3, 2, float> const &) ?setUniformValueArray@QGLShaderProgram@@QAEXHPBMHH@Z @ 563 NONAME ; void QGLShaderProgram::setUniformValueArray(int, float const *, int, int) @@ -589,7 +589,7 @@ EXPORTS ?setUniforms@QGraphicsShaderEffect@@MAEXPAVQGLShaderProgram@@@Z @ 588 NONAME ; void QGraphicsShaderEffect::setUniforms(class QGLShaderProgram *) ?drawImage@QGL2PaintEngineEx@@UAEXABVQRectF@@ABVQImage@@0V?$QFlags@W4ImageConversionFlag@Qt@@@@@Z @ 589 NONAME ; void QGL2PaintEngineEx::drawImage(class QRectF const &, class QImage const &, class QRectF const &, class QFlags) ?flush@QGLWindowSurface@@UAEXPAVQWidget@@ABVQRegion@@ABVQPoint@@@Z @ 590 NONAME ; void QGLWindowSurface::flush(class QWidget *, class QRegion const &, class QPoint const &) - ??0QGLTextureGlyphCache@@QAE@PAVQGLContext@@W4Type@QFontEngineGlyphCache@@ABVQTransform@@@Z @ 591 NONAME ; QGLTextureGlyphCache::QGLTextureGlyphCache(class QGLContext *, enum QFontEngineGlyphCache::Type, class QTransform const &) + ??0QGLTextureGlyphCache@@QAE@PAVQGLContext@@W4Type@QFontEngineGlyphCache@@ABVQTransform@@@Z @ 591 NONAME ABSENT ; QGLTextureGlyphCache::QGLTextureGlyphCache(class QGLContext *, enum QFontEngineGlyphCache::Type, class QTransform const &) ??_EQGLTextureGlyphCache@@UAE@I@Z @ 592 NONAME ; QGLTextureGlyphCache::~QGLTextureGlyphCache(unsigned int) ??1QGLShareContextScope@@QAE@XZ @ 593 NONAME ; QGLShareContextScope::~QGLShareContextScope(void) ?alpha@QGLFormat@@QBE_NXZ @ 594 NONAME ; bool QGLFormat::alpha(void) const @@ -633,8 +633,8 @@ EXPORTS ?qt_metacast@QGLEngineShaderManager@@UAEPAXPBD@Z @ 632 NONAME ; void * QGLEngineShaderManager::qt_metacast(char const *) ?sampleBuffers@QGLFormat@@QBE_NXZ @ 633 NONAME ; bool QGLFormat::sampleBuffers(void) const ?trUtf8@QGLWindowSurface@@SA?AVQString@@PBD0H@Z @ 634 NONAME ; class QString QGLWindowSurface::trUtf8(char const *, char const *, int) - ?shaderProgNeedsChangingSlot@QGLEngineShaderManager@@AAEXXZ @ 635 NONAME ; void QGLEngineShaderManager::shaderProgNeedsChangingSlot(void) - ?metaObject@QGLTextureGlyphCache@@UBEPBUQMetaObject@@XZ @ 636 NONAME ; struct QMetaObject const * QGLTextureGlyphCache::metaObject(void) const + ?shaderProgNeedsChangingSlot@QGLEngineShaderManager@@AAEXXZ @ 635 NONAME ABSENT ; void QGLEngineShaderManager::shaderProgNeedsChangingSlot(void) + ?metaObject@QGLTextureGlyphCache@@UBEPBUQMetaObject@@XZ @ 636 NONAME ABSENT ; struct QMetaObject const * QGLTextureGlyphCache::metaObject(void) const ?paintEvent@QGLWidget@@MAEXPAVQPaintEvent@@@Z @ 637 NONAME ; void QGLWidget::paintEvent(class QPaintEvent *) ?uniformLocation@QGLShaderProgram@@QBEHABVQByteArray@@@Z @ 638 NONAME ; int QGLShaderProgram::uniformLocation(class QByteArray const &) const ?currentContext@QGLContext@@SAPBV1@XZ @ 639 NONAME ; class QGLContext const * QGLContext::currentContext(void) @@ -643,7 +643,7 @@ EXPORTS ?setUniformValueArray@QGLShaderProgram@@QAEXPBDPBV?$QGenericMatrix@$01$01M@@H@Z @ 642 NONAME ; void QGLShaderProgram::setUniformValueArray(char const *, class QGenericMatrix<2, 2, float> const *, int) ?drawStaticTextItem@QGL2PaintEngineEx@@UAEXPAVQStaticTextItem@@@Z @ 643 NONAME ; void QGL2PaintEngineEx::drawStaticTextItem(class QStaticTextItem *) ?metaObject@QGLShader@@UBEPBUQMetaObject@@XZ @ 644 NONAME ; struct QMetaObject const * QGLShader::metaObject(void) const - ?tr@QGLTextureGlyphCache@@SA?AVQString@@PBD0@Z @ 645 NONAME ; class QString QGLTextureGlyphCache::tr(char const *, char const *) + ?tr@QGLTextureGlyphCache@@SA?AVQString@@PBD0@Z @ 645 NONAME ABSENT ; class QString QGLTextureGlyphCache::tr(char const *, char const *) ?drawTexture@QGLFramebufferObject@@QAEXABVQRectF@@II@Z @ 646 NONAME ; void QGLFramebufferObject::drawTexture(class QRectF const &, unsigned int, unsigned int) ?openGLVersionFlags@QGLFormat@@SA?AV?$QFlags@W4OpenGLVersionFlag@QGLFormat@@@@XZ @ 647 NONAME ; class QFlags QGLFormat::openGLVersionFlags(void) ?setRedBufferSize@QGLFormat@@QAEXH@Z @ 648 NONAME ; void QGLFormat::setRedBufferSize(int) @@ -703,4 +703,127 @@ EXPORTS ?maxTextureWidth@QGLTextureGlyphCache@@UBEHXZ @ 702 NONAME ; int QGLTextureGlyphCache::maxTextureWidth(void) const ?filterMode@QGLTextureGlyphCache@@QBE?AW4FilterMode@1@XZ @ 703 NONAME ; enum QGLTextureGlyphCache::FilterMode QGLTextureGlyphCache::filterMode(void) const ?setFilterMode@QGLTextureGlyphCache@@QAEXW4FilterMode@1@@Z @ 704 NONAME ; void QGLTextureGlyphCache::setFilterMode(enum QGLTextureGlyphCache::FilterMode) + ?glVertexAttrib3f@QGLFunctions@@QAEXIMMM@Z @ 705 NONAME ; void QGLFunctions::glVertexAttrib3f(unsigned int, float, float, float) + ?glVertexAttrib1fv@QGLFunctions@@QAEXIPBM@Z @ 706 NONAME ; void QGLFunctions::glVertexAttrib1fv(unsigned int, float const *) + ?glIsBuffer@QGLFunctions@@QAEEI@Z @ 707 NONAME ; unsigned char QGLFunctions::glIsBuffer(unsigned int) + ?glGetActiveAttrib@QGLFunctions@@QAEXIIHPAH0PAIPAD@Z @ 708 NONAME ; void QGLFunctions::glGetActiveAttrib(unsigned int, unsigned int, int, int *, int *, unsigned int *, char *) + ?glBindFramebuffer@QGLFunctions@@QAEXII@Z @ 709 NONAME ; void QGLFunctions::glBindFramebuffer(unsigned int, unsigned int) + ?glBufferData@QGLFunctions@@QAEXIHPBXI@Z @ 710 NONAME ; void QGLFunctions::glBufferData(unsigned int, int, void const *, unsigned int) + ?glValidateProgram@QGLFunctions@@QAEXI@Z @ 711 NONAME ; void QGLFunctions::glValidateProgram(unsigned int) + ?glUniform1f@QGLFunctions@@QAEXHM@Z @ 712 NONAME ; void QGLFunctions::glUniform1f(int, float) + ?glDetachShader@QGLFunctions@@QAEXII@Z @ 713 NONAME ; void QGLFunctions::glDetachShader(unsigned int, unsigned int) + ?glDeleteProgram@QGLFunctions@@QAEXI@Z @ 714 NONAME ; void QGLFunctions::glDeleteProgram(unsigned int) + ??_EQGLContextResourceBase@@UAE@I@Z @ 715 NONAME ; QGLContextResourceBase::~QGLContextResourceBase(unsigned int) + ?glUniform2f@QGLFunctions@@QAEXHMM@Z @ 716 NONAME ; void QGLFunctions::glUniform2f(int, float, float) + ?glIsProgram@QGLFunctions@@QAEEI@Z @ 717 NONAME ; unsigned char QGLFunctions::glIsProgram(unsigned int) + ?openGLFeatures@QGLFunctions@@QBE?AV?$QFlags@W4OpenGLFeature@QGLFunctions@@@@XZ @ 718 NONAME ; class QFlags QGLFunctions::openGLFeatures(void) const + ?glReleaseShaderCompiler@QGLFunctions@@QAEXXZ @ 719 NONAME ; void QGLFunctions::glReleaseShaderCompiler(void) + ??0QGLTextureGlyphCache@@QAE@PBVQGLContext@@W4Type@QFontEngineGlyphCache@@ABVQTransform@@@Z @ 720 NONAME ; QGLTextureGlyphCache::QGLTextureGlyphCache(class QGLContext const *, enum QFontEngineGlyphCache::Type, class QTransform const &) + ?context@QGLTextureGlyphCache@@QBEPBVQGLContext@@XZ @ 721 NONAME ; class QGLContext const * QGLTextureGlyphCache::context(void) const + ?glGenRenderbuffers@QGLFunctions@@QAEXHPAI@Z @ 722 NONAME ; void QGLFunctions::glGenRenderbuffers(int, unsigned int *) + ?glBindBuffer@QGLFunctions@@QAEXII@Z @ 723 NONAME ; void QGLFunctions::glBindBuffer(unsigned int, unsigned int) + ?glUniformMatrix3fv@QGLFunctions@@QAEXHHEPBM@Z @ 724 NONAME ; void QGLFunctions::glUniformMatrix3fv(int, int, unsigned char, float const *) + ?glGenerateMipmap@QGLFunctions@@QAEXI@Z @ 725 NONAME ; void QGLFunctions::glGenerateMipmap(unsigned int) + ?hasOpenGLFeature@QGLFunctions@@QBE_NW4OpenGLFeature@1@@Z @ 726 NONAME ; bool QGLFunctions::hasOpenGLFeature(enum QGLFunctions::OpenGLFeature) const + ?glGetAttachedShaders@QGLFunctions@@QAEXIHPAHPAI@Z @ 727 NONAME ; void QGLFunctions::glGetAttachedShaders(unsigned int, int, int *, unsigned int *) + ?glDeleteShader@QGLFunctions@@QAEXI@Z @ 728 NONAME ; void QGLFunctions::glDeleteShader(unsigned int) + ?glLinkProgram@QGLFunctions@@QAEXI@Z @ 729 NONAME ; void QGLFunctions::glLinkProgram(unsigned int) + ?glUseProgram@QGLFunctions@@QAEXI@Z @ 730 NONAME ; void QGLFunctions::glUseProgram(unsigned int) + ??0QGLFunctions@@QAE@PBVQGLContext@@@Z @ 731 NONAME ; QGLFunctions::QGLFunctions(class QGLContext const *) + ?glGetBufferParameteriv@QGLFunctions@@QAEXIIPAH@Z @ 732 NONAME ; void QGLFunctions::glGetBufferParameteriv(unsigned int, unsigned int, int *) + ?glGenBuffers@QGLFunctions@@QAEXHPAI@Z @ 733 NONAME ; void QGLFunctions::glGenBuffers(int, unsigned int *) + ?glGetShaderiv@QGLFunctions@@QAEXIIPAH@Z @ 734 NONAME ; void QGLFunctions::glGetShaderiv(unsigned int, unsigned int, int *) + ?fillTexture@QGLTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@IUQFixed@@@Z @ 735 NONAME ; void QGLTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int, struct QFixed) + ?glUniform2fv@QGLFunctions@@QAEXHHPBM@Z @ 736 NONAME ; void QGLFunctions::glUniform2fv(int, int, float const *) + ??0QGLContextGroupResourceBase@@QAE@XZ @ 737 NONAME ; QGLContextGroupResourceBase::QGLContextGroupResourceBase(void) + ?glGetFramebufferAttachmentParameteriv@QGLFunctions@@QAEXIIIPAH@Z @ 738 NONAME ; void QGLFunctions::glGetFramebufferAttachmentParameteriv(unsigned int, unsigned int, unsigned int, int *) + ?cleanup@QGLContextGroupResourceBase@@QAEXPBVQGLContext@@PAX@Z @ 739 NONAME ; void QGLContextGroupResourceBase::cleanup(class QGLContext const *, void *) + ?glUniform2iv@QGLFunctions@@QAEXHHPBH@Z @ 740 NONAME ; void QGLFunctions::glUniform2iv(int, int, int const *) + ?glCompileShader@QGLFunctions@@QAEXI@Z @ 741 NONAME ; void QGLFunctions::glCompileShader(unsigned int) + ?glGetProgramiv@QGLFunctions@@QAEXIIPAH@Z @ 742 NONAME ; void QGLFunctions::glGetProgramiv(unsigned int, unsigned int, int *) + ?glClearDepthf@QGLFunctions@@QAEXM@Z @ 743 NONAME ; void QGLFunctions::glClearDepthf(float) + ?glIsFramebuffer@QGLFunctions@@QAEEI@Z @ 744 NONAME ; unsigned char QGLFunctions::glIsFramebuffer(unsigned int) + ?glUniform4f@QGLFunctions@@QAEXHMMMM@Z @ 745 NONAME ; void QGLFunctions::glUniform4f(int, float, float, float, float) + ?glUniform3f@QGLFunctions@@QAEXHMMM@Z @ 746 NONAME ; void QGLFunctions::glUniform3f(int, float, float, float) + ?glDeleteRenderbuffers@QGLFunctions@@QAEXHPBI@Z @ 747 NONAME ; void QGLFunctions::glDeleteRenderbuffers(int, unsigned int const *) + ?glVertexAttrib1f@QGLFunctions@@QAEXIM@Z @ 748 NONAME ; void QGLFunctions::glVertexAttrib1f(unsigned int, float) + ?glVertexAttrib4f@QGLFunctions@@QAEXIMMMM@Z @ 749 NONAME ; void QGLFunctions::glVertexAttrib4f(unsigned int, float, float, float, float) + ?glSampleCoverage@QGLFunctions@@QAEXME@Z @ 750 NONAME ; void QGLFunctions::glSampleCoverage(float, unsigned char) + ?glGetActiveUniform@QGLFunctions@@QAEXIIHPAH0PAIPAD@Z @ 751 NONAME ; void QGLFunctions::glGetActiveUniform(unsigned int, unsigned int, int, int *, int *, unsigned int *, char *) + ??_EQGLContextGroupResourceBase@@UAE@I@Z @ 752 NONAME ; QGLContextGroupResourceBase::~QGLContextGroupResourceBase(unsigned int) + ?glStencilOpSeparate@QGLFunctions@@QAEXIIII@Z @ 753 NONAME ; void QGLFunctions::glStencilOpSeparate(unsigned int, unsigned int, unsigned int, unsigned int) + ?glCheckFramebufferStatus@QGLFunctions@@QAEII@Z @ 754 NONAME ; unsigned int QGLFunctions::glCheckFramebufferStatus(unsigned int) + ?glDepthRangef@QGLFunctions@@QAEXMM@Z @ 755 NONAME ; void QGLFunctions::glDepthRangef(float, float) + ??1QGLFunctions@@QAE@XZ @ 756 NONAME ; QGLFunctions::~QGLFunctions(void) + ?glStencilMaskSeparate@QGLFunctions@@QAEXII@Z @ 757 NONAME ; void QGLFunctions::glStencilMaskSeparate(unsigned int, unsigned int) + ?glBlendColor@QGLFunctions@@QAEXMMMM@Z @ 758 NONAME ; void QGLFunctions::glBlendColor(float, float, float, float) + ?glUniform1fv@QGLFunctions@@QAEXHHPBM@Z @ 759 NONAME ; void QGLFunctions::glUniform1fv(int, int, float const *) + ??1QGLContextResourceBase@@UAE@XZ @ 760 NONAME ; QGLContextResourceBase::~QGLContextResourceBase(void) + ?glCreateProgram@QGLFunctions@@QAEIXZ @ 761 NONAME ; unsigned int QGLFunctions::glCreateProgram(void) + ?glVertexAttrib2f@QGLFunctions@@QAEXIMM@Z @ 762 NONAME ; void QGLFunctions::glVertexAttrib2f(unsigned int, float, float) + ?glUniformMatrix2fv@QGLFunctions@@QAEXHHEPBM@Z @ 763 NONAME ; void QGLFunctions::glUniformMatrix2fv(int, int, unsigned char, float const *) + ?glBufferSubData@QGLFunctions@@QAEXIHHPBX@Z @ 764 NONAME ; void QGLFunctions::glBufferSubData(unsigned int, int, int, void const *) + ?glUniform1iv@QGLFunctions@@QAEXHHPBH@Z @ 765 NONAME ; void QGLFunctions::glUniform1iv(int, int, int const *) + ?qt_resolve_buffer_extensions@@YA_NPAVQGLContext@@@Z @ 766 NONAME ; bool qt_resolve_buffer_extensions(class QGLContext *) + ?glUniform1i@QGLFunctions@@QAEXHH@Z @ 767 NONAME ; void QGLFunctions::glUniform1i(int, int) + ?glVertexAttrib4fv@QGLFunctions@@QAEXIPBM@Z @ 768 NONAME ; void QGLFunctions::glVertexAttrib4fv(unsigned int, float const *) + ?glDeleteFramebuffers@QGLFunctions@@QAEXHPBI@Z @ 769 NONAME ; void QGLFunctions::glDeleteFramebuffers(int, unsigned int const *) + ?glGetVertexAttribfv@QGLFunctions@@QAEXIIPAM@Z @ 770 NONAME ; void QGLFunctions::glGetVertexAttribfv(unsigned int, unsigned int, float *) + ?glGetProgramInfoLog@QGLFunctions@@QAEXIHPAHPAD@Z @ 771 NONAME ; void QGLFunctions::glGetProgramInfoLog(unsigned int, int, int *, char *) + ?glGetShaderInfoLog@QGLFunctions@@QAEXIHPAHPAD@Z @ 772 NONAME ; void QGLFunctions::glGetShaderInfoLog(unsigned int, int, int *, char *) + ?glEnableVertexAttribArray@QGLFunctions@@QAEXI@Z @ 773 NONAME ; void QGLFunctions::glEnableVertexAttribArray(unsigned int) + ?glGetVertexAttribiv@QGLFunctions@@QAEXIIPAH@Z @ 774 NONAME ; void QGLFunctions::glGetVertexAttribiv(unsigned int, unsigned int, int *) + ?glCompressedTexImage2D@QGLFunctions@@QAEXIHIHHHHPBX@Z @ 775 NONAME ; void QGLFunctions::glCompressedTexImage2D(unsigned int, int, unsigned int, int, int, int, int, void const *) + ?glGetAttribLocation@QGLFunctions@@QAEHIPBD@Z @ 776 NONAME ; int QGLFunctions::glGetAttribLocation(unsigned int, char const *) + ?glActiveTexture@QGLFunctions@@QAEXI@Z @ 777 NONAME ; void QGLFunctions::glActiveTexture(unsigned int) + ?glUniform4fv@QGLFunctions@@QAEXHHPBM@Z @ 778 NONAME ; void QGLFunctions::glUniform4fv(int, int, float const *) + ?glCreateShader@QGLFunctions@@QAEII@Z @ 779 NONAME ; unsigned int QGLFunctions::glCreateShader(unsigned int) + ?glAttachShader@QGLFunctions@@QAEXII@Z @ 780 NONAME ; void QGLFunctions::glAttachShader(unsigned int, unsigned int) + ?glRenderbufferStorage@QGLFunctions@@QAEXIIHH@Z @ 781 NONAME ; void QGLFunctions::glRenderbufferStorage(unsigned int, unsigned int, int, int) + ?glVertexAttribPointer@QGLFunctions@@QAEXIHIEHPBX@Z @ 782 NONAME ; void QGLFunctions::glVertexAttribPointer(unsigned int, int, unsigned int, unsigned char, int, void const *) + ?glUniform4iv@QGLFunctions@@QAEXHHPBH@Z @ 783 NONAME ; void QGLFunctions::glUniform4iv(int, int, int const *) + ?glDisableVertexAttribArray@QGLFunctions@@QAEXI@Z @ 784 NONAME ; void QGLFunctions::glDisableVertexAttribArray(unsigned int) + ?glIsShader@QGLFunctions@@QAEEI@Z @ 785 NONAME ; unsigned char QGLFunctions::glIsShader(unsigned int) + ?glShaderBinary@QGLFunctions@@QAEXHPBIIPBXH@Z @ 786 NONAME ; void QGLFunctions::glShaderBinary(int, unsigned int const *, unsigned int, void const *, int) + ?glGenFramebuffers@QGLFunctions@@QAEXHPAI@Z @ 787 NONAME ; void QGLFunctions::glGenFramebuffers(int, unsigned int *) + ?glVertexAttrib3fv@QGLFunctions@@QAEXIPBM@Z @ 788 NONAME ; void QGLFunctions::glVertexAttrib3fv(unsigned int, float const *) + ?glGetVertexAttribPointerv@QGLFunctions@@QAEXIIPAPAX@Z @ 789 NONAME ; void QGLFunctions::glGetVertexAttribPointerv(unsigned int, unsigned int, void * *) + ?glUniformMatrix4fv@QGLFunctions@@QAEXHHEPBM@Z @ 790 NONAME ; void QGLFunctions::glUniformMatrix4fv(int, int, unsigned char, float const *) + ?setContext@QGLTextureGlyphCache@@QAEXPBVQGLContext@@@Z @ 791 NONAME ; void QGLTextureGlyphCache::setContext(class QGLContext const *) + ?glDeleteBuffers@QGLFunctions@@QAEXHPBI@Z @ 792 NONAME ; void QGLFunctions::glDeleteBuffers(int, unsigned int const *) + ?glBindRenderbuffer@QGLFunctions@@QAEXII@Z @ 793 NONAME ; void QGLFunctions::glBindRenderbuffer(unsigned int, unsigned int) + ?glStencilFuncSeparate@QGLFunctions@@QAEXIIHI@Z @ 794 NONAME ; void QGLFunctions::glStencilFuncSeparate(unsigned int, unsigned int, int, unsigned int) + ?glGetUniformLocation@QGLFunctions@@QAEHIPBD@Z @ 795 NONAME ; int QGLFunctions::glGetUniformLocation(unsigned int, char const *) + ?glGetRenderbufferParameteriv@QGLFunctions@@QAEXIIPAH@Z @ 796 NONAME ; void QGLFunctions::glGetRenderbufferParameteriv(unsigned int, unsigned int, int *) + ?glBindAttribLocation@QGLFunctions@@QAEXIIPBD@Z @ 797 NONAME ; void QGLFunctions::glBindAttribLocation(unsigned int, unsigned int, char const *) + ?glGetShaderSource@QGLFunctions@@QAEXIHPAHPAD@Z @ 798 NONAME ; void QGLFunctions::glGetShaderSource(unsigned int, int, int *, char *) + ?setMipmap@QGLFramebufferObjectFormat@@QAEX_N@Z @ 799 NONAME ; void QGLFramebufferObjectFormat::setMipmap(bool) + ??1QGLContextGroupResourceBase@@UAE@XZ @ 800 NONAME ; QGLContextGroupResourceBase::~QGLContextGroupResourceBase(void) + ?glFramebufferTexture2D@QGLFunctions@@QAEXIIIIH@Z @ 801 NONAME ; void QGLFunctions::glFramebufferTexture2D(unsigned int, unsigned int, unsigned int, unsigned int, int) + ?glBlendEquationSeparate@QGLFunctions@@QAEXII@Z @ 802 NONAME ; void QGLFunctions::glBlendEquationSeparate(unsigned int, unsigned int) + ?insert@QGLContextResourceBase@@QAEXPBVQGLContext@@PAX@Z @ 803 NONAME ; void QGLContextResourceBase::insert(class QGLContext const *, void *) + ?glUniform2i@QGLFunctions@@QAEXHHH@Z @ 804 NONAME ; void QGLFunctions::glUniform2i(int, int, int) + ?glGetUniformfv@QGLFunctions@@QAEXIHPAM@Z @ 805 NONAME ; void QGLFunctions::glGetUniformfv(unsigned int, int, float *) + ?glUniform3i@QGLFunctions@@QAEXHHHH@Z @ 806 NONAME ; void QGLFunctions::glUniform3i(int, int, int, int) + ?glIsRenderbuffer@QGLFunctions@@QAEEI@Z @ 807 NONAME ; unsigned char QGLFunctions::glIsRenderbuffer(unsigned int) + ?initializeGLFunctions@QGLFunctions@@QAEXPBVQGLContext@@@Z @ 808 NONAME ; void QGLFunctions::initializeGLFunctions(class QGLContext const *) + ??0QGLFunctions@@QAE@XZ @ 809 NONAME ; QGLFunctions::QGLFunctions(void) + ?glVertexAttrib2fv@QGLFunctions@@QAEXIPBM@Z @ 810 NONAME ; void QGLFunctions::glVertexAttrib2fv(unsigned int, float const *) + ?isInitialized@QGLFunctions@@CA_NPBUQGLFunctionsPrivate@@@Z @ 811 NONAME ; bool QGLFunctions::isInitialized(struct QGLFunctionsPrivate const *) + ?glGetUniformiv@QGLFunctions@@QAEXIHPAH@Z @ 812 NONAME ; void QGLFunctions::glGetUniformiv(unsigned int, int, int *) + ?glBlendEquation@QGLFunctions@@QAEXI@Z @ 813 NONAME ; void QGLFunctions::glBlendEquation(unsigned int) + ?glFramebufferRenderbuffer@QGLFunctions@@QAEXIIII@Z @ 814 NONAME ; void QGLFunctions::glFramebufferRenderbuffer(unsigned int, unsigned int, unsigned int, unsigned int) + ?glUniform4i@QGLFunctions@@QAEXHHHHH@Z @ 815 NONAME ; void QGLFunctions::glUniform4i(int, int, int, int, int) + ?glUniform3fv@QGLFunctions@@QAEXHHPBM@Z @ 816 NONAME ; void QGLFunctions::glUniform3fv(int, int, float const *) + ?value@QGLContextResourceBase@@QAEPAXPBVQGLContext@@@Z @ 817 NONAME ; void * QGLContextResourceBase::value(class QGLContext const *) + ?glBlendFuncSeparate@QGLFunctions@@QAEXIIII@Z @ 818 NONAME ; void QGLFunctions::glBlendFuncSeparate(unsigned int, unsigned int, unsigned int, unsigned int) + ?glCompressedTexSubImage2D@QGLFunctions@@QAEXIHHHHHIHPBX@Z @ 819 NONAME ; void QGLFunctions::glCompressedTexSubImage2D(unsigned int, int, int, int, int, int, unsigned int, int, void const *) + ?freeResource@QGLTextureGlyphCache@@UAEXPAX@Z @ 820 NONAME ; void QGLTextureGlyphCache::freeResource(void *) + ?value@QGLContextGroupResourceBase@@QAEPAXPBVQGLContext@@@Z @ 821 NONAME ; void * QGLContextGroupResourceBase::value(class QGLContext const *) + ?glUniform3iv@QGLFunctions@@QAEXHHPBH@Z @ 822 NONAME ; void QGLFunctions::glUniform3iv(int, int, int const *) + ?mipmap@QGLFramebufferObjectFormat@@QBE_NXZ @ 823 NONAME ; bool QGLFramebufferObjectFormat::mipmap(void) const + ?qt_extensionFuncs@QGLContextPrivate@@2UQGLExtensionFuncs@@A @ 824 NONAME ; struct QGLExtensionFuncs QGLContextPrivate::qt_extensionFuncs + ?glShaderSource@QGLFunctions@@QAEXIHPAPBDPBH@Z @ 825 NONAME ; void QGLFunctions::glShaderSource(unsigned int, int, char const * *, int const *) + ?glGetShaderPrecisionFormat@QGLFunctions@@QAEXIIPAH0@Z @ 826 NONAME ; void QGLFunctions::glGetShaderPrecisionFormat(unsigned int, unsigned int, int *, int *) + ?insert@QGLContextGroupResourceBase@@QAEXPBVQGLContext@@PAX@Z @ 827 NONAME ; void QGLContextGroupResourceBase::insert(class QGLContext const *, void *) diff --git a/src/s60installs/eabi/QtOpenGLu.def b/src/s60installs/eabi/QtOpenGLu.def index 61e968c..794d43d 100644 --- a/src/s60installs/eabi/QtOpenGLu.def +++ b/src/s60installs/eabi/QtOpenGLu.def @@ -294,12 +294,12 @@ EXPORTS _ZN17QGLGraphicsSystemC1Eb @ 293 NONAME _ZN17QGLGraphicsSystemC2Eb @ 294 NONAME _ZN18QGLContextResource5valueEPK10QGLContext @ 295 NONAME ABSENT - _ZN18QGLContextResource6insertEPK10QGLContextPv @ 296 NONAME - _ZN18QGLContextResource7cleanupEPK10QGLContextPv @ 297 NONAME - _ZN18QGLContextResourceC1EPFvPvE @ 298 NONAME - _ZN18QGLContextResourceC2EPFvPvE @ 299 NONAME - _ZN18QGLContextResourceD1Ev @ 300 NONAME - _ZN18QGLContextResourceD2Ev @ 301 NONAME + _ZN18QGLContextResource6insertEPK10QGLContextPv @ 296 NONAME ABSENT + _ZN18QGLContextResource7cleanupEPK10QGLContextPv @ 297 NONAME ABSENT + _ZN18QGLContextResourceC1EPFvPvE @ 298 NONAME ABSENT + _ZN18QGLContextResourceC2EPFvPvE @ 299 NONAME ABSENT + _ZN18QGLContextResourceD1Ev @ 300 NONAME ABSENT + _ZN18QGLContextResourceD2Ev @ 301 NONAME ABSENT _ZN20QGLCustomShaderStage11setInactiveEv @ 302 NONAME _ZN20QGLCustomShaderStage12setOnPainterEP8QPainter @ 303 NONAME _ZN20QGLCustomShaderStage16setUniformsDirtyEv @ 304 NONAME @@ -333,15 +333,15 @@ EXPORTS _ZN20QGLFramebufferObjectD0Ev @ 332 NONAME _ZN20QGLFramebufferObjectD1Ev @ 333 NONAME _ZN20QGLFramebufferObjectD2Ev @ 334 NONAME - _ZN20QGLTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 335 NONAME - _ZN20QGLTextureGlyphCache11qt_metacallEN11QMetaObject4CallEiPPv @ 336 NONAME - _ZN20QGLTextureGlyphCache11qt_metacastEPKc @ 337 NONAME - _ZN20QGLTextureGlyphCache16staticMetaObjectE @ 338 NONAME DATA 16 + _ZN20QGLTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 335 NONAME ABSENT + _ZN20QGLTextureGlyphCache11qt_metacallEN11QMetaObject4CallEiPPv @ 336 NONAME ABSENT + _ZN20QGLTextureGlyphCache11qt_metacastEPKc @ 337 NONAME ABSENT + _ZN20QGLTextureGlyphCache16staticMetaObjectE @ 338 NONAME DATA 16 ABSENT _ZN20QGLTextureGlyphCache17createTextureDataEii @ 339 NONAME _ZN20QGLTextureGlyphCache17resizeTextureDataEii @ 340 NONAME - _ZN20QGLTextureGlyphCache19getStaticMetaObjectEv @ 341 NONAME - _ZN20QGLTextureGlyphCacheC1EP10QGLContextN21QFontEngineGlyphCache4TypeERK10QTransform @ 342 NONAME - _ZN20QGLTextureGlyphCacheC2EP10QGLContextN21QFontEngineGlyphCache4TypeERK10QTransform @ 343 NONAME + _ZN20QGLTextureGlyphCache19getStaticMetaObjectEv @ 341 NONAME ABSENT + _ZN20QGLTextureGlyphCacheC1EP10QGLContextN21QFontEngineGlyphCache4TypeERK10QTransform @ 342 NONAME ABSENT + _ZN20QGLTextureGlyphCacheC2EP10QGLContextN21QFontEngineGlyphCache4TypeERK10QTransform @ 343 NONAME ABSENT _ZN20QGLTextureGlyphCacheD0Ev @ 344 NONAME _ZN20QGLTextureGlyphCacheD1Ev @ 345 NONAME _ZN20QGLTextureGlyphCacheD2Ev @ 346 NONAME @@ -601,7 +601,7 @@ EXPORTS _ZNK20QGLFramebufferObject7isValidEv @ 600 NONAME _ZNK20QGLFramebufferObject7textureEv @ 601 NONAME _ZNK20QGLFramebufferObject7toImageEv @ 602 NONAME - _ZNK20QGLTextureGlyphCache10metaObjectEv @ 603 NONAME + _ZNK20QGLTextureGlyphCache10metaObjectEv @ 603 NONAME ABSENT _ZNK20QGLTextureGlyphCache12glyphPaddingEv @ 604 NONAME _ZNK21QGraphicsShaderEffect10metaObjectEv @ 605 NONAME _ZNK21QGraphicsShaderEffect19pixelShaderFragmentEv @ 606 NONAME @@ -690,14 +690,14 @@ EXPORTS _ZThn8_N16QGLWindowSurface8endPaintERK7QRegion @ 689 NONAME _ZThn8_N16QGLWindowSurfaceD0Ev @ 690 NONAME _ZThn8_N16QGLWindowSurfaceD1Ev @ 691 NONAME - _ZThn8_N20QGLTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 692 NONAME - _ZThn8_N20QGLTextureGlyphCache17createTextureDataEii @ 693 NONAME - _ZThn8_N20QGLTextureGlyphCache17resizeTextureDataEii @ 694 NONAME - _ZThn8_N20QGLTextureGlyphCacheD0Ev @ 695 NONAME - _ZThn8_N20QGLTextureGlyphCacheD1Ev @ 696 NONAME + _ZThn8_N20QGLTextureGlyphCache11fillTextureERKN18QTextureGlyphCache5CoordEj @ 692 NONAME ABSENT + _ZThn8_N20QGLTextureGlyphCache17createTextureDataEii @ 693 NONAME ABSENT + _ZThn8_N20QGLTextureGlyphCache17resizeTextureDataEii @ 694 NONAME ABSENT + _ZThn8_N20QGLTextureGlyphCacheD0Ev @ 695 NONAME ABSENT + _ZThn8_N20QGLTextureGlyphCacheD1Ev @ 696 NONAME ABSENT _ZThn8_N9QGLWidgetD0Ev @ 697 NONAME _ZThn8_N9QGLWidgetD1Ev @ 698 NONAME - _ZThn8_NK20QGLTextureGlyphCache12glyphPaddingEv @ 699 NONAME + _ZThn8_NK20QGLTextureGlyphCache12glyphPaddingEv @ 699 NONAME ABSENT _ZThn8_NK9QGLWidget11paintEngineEv @ 700 NONAME _ZeqRK9QGLFormatS1_ @ 701 NONAME _Zls6QDebugRK9QGLFormat @ 702 NONAME @@ -705,6 +705,6 @@ EXPORTS _ZN16QGLWindowSurface26initializeOffscreenTextureERK5QSize @ 704 NONAME _ZNK20QGLTextureGlyphCache15maxTextureWidthEv @ 705 NONAME _ZNK20QGLTextureGlyphCache16maxTextureHeightEv @ 706 NONAME - _ZThn8_NK20QGLTextureGlyphCache15maxTextureWidthEv @ 707 NONAME - _ZThn8_NK20QGLTextureGlyphCache16maxTextureHeightEv @ 708 NONAME + _ZThn8_NK20QGLTextureGlyphCache15maxTextureWidthEv @ 707 NONAME ABSENT + _ZThn8_NK20QGLTextureGlyphCache16maxTextureHeightEv @ 708 NONAME ABSENT -- cgit v0.12 From 48fdd3facb4d67b29452281c2d43577a2f0cdac3 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Thu, 6 Jan 2011 09:44:22 +0100 Subject: Cocoa: add support for QEventLoop::ExcludeUserInputEvents Seems like this was just missing when used together with the DialogExec/EventLoopExec flags. This patch avoid using cocoas own run methods for dispatching events when we want to exclude user input events, and instead do it ourselves. This patch will only fix this issue when no modal windows are showing. For modal windows, a bit more research is needed. --- src/gui/kernel/qeventdispatcher_mac.mm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qeventdispatcher_mac.mm b/src/gui/kernel/qeventdispatcher_mac.mm index dc926e0..62c22a5 100644 --- a/src/gui/kernel/qeventdispatcher_mac.mm +++ b/src/gui/kernel/qeventdispatcher_mac.mm @@ -588,7 +588,10 @@ bool QEventDispatcherMac::processEvents(QEventLoop::ProcessEventsFlags flags) // manually (rather than from a QEventLoop), we cannot enter a tight // loop and block this call, but instead we need to return after one flush: const bool canExec_3rdParty = d->nsAppRunCalledByQt || ![NSApp isRunning]; - const bool canExec_Qt = flags & QEventLoop::DialogExec || flags & QEventLoop::EventLoopExec; + const bool canExec_Qt = + (flags & QEventLoop::DialogExec || flags & QEventLoop::EventLoopExec) + && !(flags & QEventLoop::ExcludeUserInputEvents); + if (canExec_Qt && canExec_3rdParty) { // We can use exec-mode, meaning that we can stay in a tight loop until -- cgit v0.12 From 6b47f5586e172693defdf38a530604d111263332 Mon Sep 17 00:00:00 2001 From: Eckhart Koppen Date: Thu, 6 Jan 2011 11:44:36 +0200 Subject: Remove unnecessarily frozen functions from QtOpenGL WINSCW DEF file Reviewed-by: TrustMe --- src/s60installs/bwins/QtOpenGLu.def | 124 ------------------------------------ 1 file changed, 124 deletions(-) diff --git a/src/s60installs/bwins/QtOpenGLu.def b/src/s60installs/bwins/QtOpenGLu.def index 68dfe91..6ea8635 100644 --- a/src/s60installs/bwins/QtOpenGLu.def +++ b/src/s60installs/bwins/QtOpenGLu.def @@ -703,127 +703,3 @@ EXPORTS ?maxTextureWidth@QGLTextureGlyphCache@@UBEHXZ @ 702 NONAME ; int QGLTextureGlyphCache::maxTextureWidth(void) const ?filterMode@QGLTextureGlyphCache@@QBE?AW4FilterMode@1@XZ @ 703 NONAME ; enum QGLTextureGlyphCache::FilterMode QGLTextureGlyphCache::filterMode(void) const ?setFilterMode@QGLTextureGlyphCache@@QAEXW4FilterMode@1@@Z @ 704 NONAME ; void QGLTextureGlyphCache::setFilterMode(enum QGLTextureGlyphCache::FilterMode) - ?glVertexAttrib3f@QGLFunctions@@QAEXIMMM@Z @ 705 NONAME ; void QGLFunctions::glVertexAttrib3f(unsigned int, float, float, float) - ?glVertexAttrib1fv@QGLFunctions@@QAEXIPBM@Z @ 706 NONAME ; void QGLFunctions::glVertexAttrib1fv(unsigned int, float const *) - ?glIsBuffer@QGLFunctions@@QAEEI@Z @ 707 NONAME ; unsigned char QGLFunctions::glIsBuffer(unsigned int) - ?glGetActiveAttrib@QGLFunctions@@QAEXIIHPAH0PAIPAD@Z @ 708 NONAME ; void QGLFunctions::glGetActiveAttrib(unsigned int, unsigned int, int, int *, int *, unsigned int *, char *) - ?glBindFramebuffer@QGLFunctions@@QAEXII@Z @ 709 NONAME ; void QGLFunctions::glBindFramebuffer(unsigned int, unsigned int) - ?glBufferData@QGLFunctions@@QAEXIHPBXI@Z @ 710 NONAME ; void QGLFunctions::glBufferData(unsigned int, int, void const *, unsigned int) - ?glValidateProgram@QGLFunctions@@QAEXI@Z @ 711 NONAME ; void QGLFunctions::glValidateProgram(unsigned int) - ?glUniform1f@QGLFunctions@@QAEXHM@Z @ 712 NONAME ; void QGLFunctions::glUniform1f(int, float) - ?glDetachShader@QGLFunctions@@QAEXII@Z @ 713 NONAME ; void QGLFunctions::glDetachShader(unsigned int, unsigned int) - ?glDeleteProgram@QGLFunctions@@QAEXI@Z @ 714 NONAME ; void QGLFunctions::glDeleteProgram(unsigned int) - ??_EQGLContextResourceBase@@UAE@I@Z @ 715 NONAME ; QGLContextResourceBase::~QGLContextResourceBase(unsigned int) - ?glUniform2f@QGLFunctions@@QAEXHMM@Z @ 716 NONAME ; void QGLFunctions::glUniform2f(int, float, float) - ?glIsProgram@QGLFunctions@@QAEEI@Z @ 717 NONAME ; unsigned char QGLFunctions::glIsProgram(unsigned int) - ?openGLFeatures@QGLFunctions@@QBE?AV?$QFlags@W4OpenGLFeature@QGLFunctions@@@@XZ @ 718 NONAME ; class QFlags QGLFunctions::openGLFeatures(void) const - ?glReleaseShaderCompiler@QGLFunctions@@QAEXXZ @ 719 NONAME ; void QGLFunctions::glReleaseShaderCompiler(void) - ??0QGLTextureGlyphCache@@QAE@PBVQGLContext@@W4Type@QFontEngineGlyphCache@@ABVQTransform@@@Z @ 720 NONAME ; QGLTextureGlyphCache::QGLTextureGlyphCache(class QGLContext const *, enum QFontEngineGlyphCache::Type, class QTransform const &) - ?context@QGLTextureGlyphCache@@QBEPBVQGLContext@@XZ @ 721 NONAME ; class QGLContext const * QGLTextureGlyphCache::context(void) const - ?glGenRenderbuffers@QGLFunctions@@QAEXHPAI@Z @ 722 NONAME ; void QGLFunctions::glGenRenderbuffers(int, unsigned int *) - ?glBindBuffer@QGLFunctions@@QAEXII@Z @ 723 NONAME ; void QGLFunctions::glBindBuffer(unsigned int, unsigned int) - ?glUniformMatrix3fv@QGLFunctions@@QAEXHHEPBM@Z @ 724 NONAME ; void QGLFunctions::glUniformMatrix3fv(int, int, unsigned char, float const *) - ?glGenerateMipmap@QGLFunctions@@QAEXI@Z @ 725 NONAME ; void QGLFunctions::glGenerateMipmap(unsigned int) - ?hasOpenGLFeature@QGLFunctions@@QBE_NW4OpenGLFeature@1@@Z @ 726 NONAME ; bool QGLFunctions::hasOpenGLFeature(enum QGLFunctions::OpenGLFeature) const - ?glGetAttachedShaders@QGLFunctions@@QAEXIHPAHPAI@Z @ 727 NONAME ; void QGLFunctions::glGetAttachedShaders(unsigned int, int, int *, unsigned int *) - ?glDeleteShader@QGLFunctions@@QAEXI@Z @ 728 NONAME ; void QGLFunctions::glDeleteShader(unsigned int) - ?glLinkProgram@QGLFunctions@@QAEXI@Z @ 729 NONAME ; void QGLFunctions::glLinkProgram(unsigned int) - ?glUseProgram@QGLFunctions@@QAEXI@Z @ 730 NONAME ; void QGLFunctions::glUseProgram(unsigned int) - ??0QGLFunctions@@QAE@PBVQGLContext@@@Z @ 731 NONAME ; QGLFunctions::QGLFunctions(class QGLContext const *) - ?glGetBufferParameteriv@QGLFunctions@@QAEXIIPAH@Z @ 732 NONAME ; void QGLFunctions::glGetBufferParameteriv(unsigned int, unsigned int, int *) - ?glGenBuffers@QGLFunctions@@QAEXHPAI@Z @ 733 NONAME ; void QGLFunctions::glGenBuffers(int, unsigned int *) - ?glGetShaderiv@QGLFunctions@@QAEXIIPAH@Z @ 734 NONAME ; void QGLFunctions::glGetShaderiv(unsigned int, unsigned int, int *) - ?fillTexture@QGLTextureGlyphCache@@UAEXABUCoord@QTextureGlyphCache@@IUQFixed@@@Z @ 735 NONAME ; void QGLTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &, unsigned int, struct QFixed) - ?glUniform2fv@QGLFunctions@@QAEXHHPBM@Z @ 736 NONAME ; void QGLFunctions::glUniform2fv(int, int, float const *) - ??0QGLContextGroupResourceBase@@QAE@XZ @ 737 NONAME ; QGLContextGroupResourceBase::QGLContextGroupResourceBase(void) - ?glGetFramebufferAttachmentParameteriv@QGLFunctions@@QAEXIIIPAH@Z @ 738 NONAME ; void QGLFunctions::glGetFramebufferAttachmentParameteriv(unsigned int, unsigned int, unsigned int, int *) - ?cleanup@QGLContextGroupResourceBase@@QAEXPBVQGLContext@@PAX@Z @ 739 NONAME ; void QGLContextGroupResourceBase::cleanup(class QGLContext const *, void *) - ?glUniform2iv@QGLFunctions@@QAEXHHPBH@Z @ 740 NONAME ; void QGLFunctions::glUniform2iv(int, int, int const *) - ?glCompileShader@QGLFunctions@@QAEXI@Z @ 741 NONAME ; void QGLFunctions::glCompileShader(unsigned int) - ?glGetProgramiv@QGLFunctions@@QAEXIIPAH@Z @ 742 NONAME ; void QGLFunctions::glGetProgramiv(unsigned int, unsigned int, int *) - ?glClearDepthf@QGLFunctions@@QAEXM@Z @ 743 NONAME ; void QGLFunctions::glClearDepthf(float) - ?glIsFramebuffer@QGLFunctions@@QAEEI@Z @ 744 NONAME ; unsigned char QGLFunctions::glIsFramebuffer(unsigned int) - ?glUniform4f@QGLFunctions@@QAEXHMMMM@Z @ 745 NONAME ; void QGLFunctions::glUniform4f(int, float, float, float, float) - ?glUniform3f@QGLFunctions@@QAEXHMMM@Z @ 746 NONAME ; void QGLFunctions::glUniform3f(int, float, float, float) - ?glDeleteRenderbuffers@QGLFunctions@@QAEXHPBI@Z @ 747 NONAME ; void QGLFunctions::glDeleteRenderbuffers(int, unsigned int const *) - ?glVertexAttrib1f@QGLFunctions@@QAEXIM@Z @ 748 NONAME ; void QGLFunctions::glVertexAttrib1f(unsigned int, float) - ?glVertexAttrib4f@QGLFunctions@@QAEXIMMMM@Z @ 749 NONAME ; void QGLFunctions::glVertexAttrib4f(unsigned int, float, float, float, float) - ?glSampleCoverage@QGLFunctions@@QAEXME@Z @ 750 NONAME ; void QGLFunctions::glSampleCoverage(float, unsigned char) - ?glGetActiveUniform@QGLFunctions@@QAEXIIHPAH0PAIPAD@Z @ 751 NONAME ; void QGLFunctions::glGetActiveUniform(unsigned int, unsigned int, int, int *, int *, unsigned int *, char *) - ??_EQGLContextGroupResourceBase@@UAE@I@Z @ 752 NONAME ; QGLContextGroupResourceBase::~QGLContextGroupResourceBase(unsigned int) - ?glStencilOpSeparate@QGLFunctions@@QAEXIIII@Z @ 753 NONAME ; void QGLFunctions::glStencilOpSeparate(unsigned int, unsigned int, unsigned int, unsigned int) - ?glCheckFramebufferStatus@QGLFunctions@@QAEII@Z @ 754 NONAME ; unsigned int QGLFunctions::glCheckFramebufferStatus(unsigned int) - ?glDepthRangef@QGLFunctions@@QAEXMM@Z @ 755 NONAME ; void QGLFunctions::glDepthRangef(float, float) - ??1QGLFunctions@@QAE@XZ @ 756 NONAME ; QGLFunctions::~QGLFunctions(void) - ?glStencilMaskSeparate@QGLFunctions@@QAEXII@Z @ 757 NONAME ; void QGLFunctions::glStencilMaskSeparate(unsigned int, unsigned int) - ?glBlendColor@QGLFunctions@@QAEXMMMM@Z @ 758 NONAME ; void QGLFunctions::glBlendColor(float, float, float, float) - ?glUniform1fv@QGLFunctions@@QAEXHHPBM@Z @ 759 NONAME ; void QGLFunctions::glUniform1fv(int, int, float const *) - ??1QGLContextResourceBase@@UAE@XZ @ 760 NONAME ; QGLContextResourceBase::~QGLContextResourceBase(void) - ?glCreateProgram@QGLFunctions@@QAEIXZ @ 761 NONAME ; unsigned int QGLFunctions::glCreateProgram(void) - ?glVertexAttrib2f@QGLFunctions@@QAEXIMM@Z @ 762 NONAME ; void QGLFunctions::glVertexAttrib2f(unsigned int, float, float) - ?glUniformMatrix2fv@QGLFunctions@@QAEXHHEPBM@Z @ 763 NONAME ; void QGLFunctions::glUniformMatrix2fv(int, int, unsigned char, float const *) - ?glBufferSubData@QGLFunctions@@QAEXIHHPBX@Z @ 764 NONAME ; void QGLFunctions::glBufferSubData(unsigned int, int, int, void const *) - ?glUniform1iv@QGLFunctions@@QAEXHHPBH@Z @ 765 NONAME ; void QGLFunctions::glUniform1iv(int, int, int const *) - ?qt_resolve_buffer_extensions@@YA_NPAVQGLContext@@@Z @ 766 NONAME ; bool qt_resolve_buffer_extensions(class QGLContext *) - ?glUniform1i@QGLFunctions@@QAEXHH@Z @ 767 NONAME ; void QGLFunctions::glUniform1i(int, int) - ?glVertexAttrib4fv@QGLFunctions@@QAEXIPBM@Z @ 768 NONAME ; void QGLFunctions::glVertexAttrib4fv(unsigned int, float const *) - ?glDeleteFramebuffers@QGLFunctions@@QAEXHPBI@Z @ 769 NONAME ; void QGLFunctions::glDeleteFramebuffers(int, unsigned int const *) - ?glGetVertexAttribfv@QGLFunctions@@QAEXIIPAM@Z @ 770 NONAME ; void QGLFunctions::glGetVertexAttribfv(unsigned int, unsigned int, float *) - ?glGetProgramInfoLog@QGLFunctions@@QAEXIHPAHPAD@Z @ 771 NONAME ; void QGLFunctions::glGetProgramInfoLog(unsigned int, int, int *, char *) - ?glGetShaderInfoLog@QGLFunctions@@QAEXIHPAHPAD@Z @ 772 NONAME ; void QGLFunctions::glGetShaderInfoLog(unsigned int, int, int *, char *) - ?glEnableVertexAttribArray@QGLFunctions@@QAEXI@Z @ 773 NONAME ; void QGLFunctions::glEnableVertexAttribArray(unsigned int) - ?glGetVertexAttribiv@QGLFunctions@@QAEXIIPAH@Z @ 774 NONAME ; void QGLFunctions::glGetVertexAttribiv(unsigned int, unsigned int, int *) - ?glCompressedTexImage2D@QGLFunctions@@QAEXIHIHHHHPBX@Z @ 775 NONAME ; void QGLFunctions::glCompressedTexImage2D(unsigned int, int, unsigned int, int, int, int, int, void const *) - ?glGetAttribLocation@QGLFunctions@@QAEHIPBD@Z @ 776 NONAME ; int QGLFunctions::glGetAttribLocation(unsigned int, char const *) - ?glActiveTexture@QGLFunctions@@QAEXI@Z @ 777 NONAME ; void QGLFunctions::glActiveTexture(unsigned int) - ?glUniform4fv@QGLFunctions@@QAEXHHPBM@Z @ 778 NONAME ; void QGLFunctions::glUniform4fv(int, int, float const *) - ?glCreateShader@QGLFunctions@@QAEII@Z @ 779 NONAME ; unsigned int QGLFunctions::glCreateShader(unsigned int) - ?glAttachShader@QGLFunctions@@QAEXII@Z @ 780 NONAME ; void QGLFunctions::glAttachShader(unsigned int, unsigned int) - ?glRenderbufferStorage@QGLFunctions@@QAEXIIHH@Z @ 781 NONAME ; void QGLFunctions::glRenderbufferStorage(unsigned int, unsigned int, int, int) - ?glVertexAttribPointer@QGLFunctions@@QAEXIHIEHPBX@Z @ 782 NONAME ; void QGLFunctions::glVertexAttribPointer(unsigned int, int, unsigned int, unsigned char, int, void const *) - ?glUniform4iv@QGLFunctions@@QAEXHHPBH@Z @ 783 NONAME ; void QGLFunctions::glUniform4iv(int, int, int const *) - ?glDisableVertexAttribArray@QGLFunctions@@QAEXI@Z @ 784 NONAME ; void QGLFunctions::glDisableVertexAttribArray(unsigned int) - ?glIsShader@QGLFunctions@@QAEEI@Z @ 785 NONAME ; unsigned char QGLFunctions::glIsShader(unsigned int) - ?glShaderBinary@QGLFunctions@@QAEXHPBIIPBXH@Z @ 786 NONAME ; void QGLFunctions::glShaderBinary(int, unsigned int const *, unsigned int, void const *, int) - ?glGenFramebuffers@QGLFunctions@@QAEXHPAI@Z @ 787 NONAME ; void QGLFunctions::glGenFramebuffers(int, unsigned int *) - ?glVertexAttrib3fv@QGLFunctions@@QAEXIPBM@Z @ 788 NONAME ; void QGLFunctions::glVertexAttrib3fv(unsigned int, float const *) - ?glGetVertexAttribPointerv@QGLFunctions@@QAEXIIPAPAX@Z @ 789 NONAME ; void QGLFunctions::glGetVertexAttribPointerv(unsigned int, unsigned int, void * *) - ?glUniformMatrix4fv@QGLFunctions@@QAEXHHEPBM@Z @ 790 NONAME ; void QGLFunctions::glUniformMatrix4fv(int, int, unsigned char, float const *) - ?setContext@QGLTextureGlyphCache@@QAEXPBVQGLContext@@@Z @ 791 NONAME ; void QGLTextureGlyphCache::setContext(class QGLContext const *) - ?glDeleteBuffers@QGLFunctions@@QAEXHPBI@Z @ 792 NONAME ; void QGLFunctions::glDeleteBuffers(int, unsigned int const *) - ?glBindRenderbuffer@QGLFunctions@@QAEXII@Z @ 793 NONAME ; void QGLFunctions::glBindRenderbuffer(unsigned int, unsigned int) - ?glStencilFuncSeparate@QGLFunctions@@QAEXIIHI@Z @ 794 NONAME ; void QGLFunctions::glStencilFuncSeparate(unsigned int, unsigned int, int, unsigned int) - ?glGetUniformLocation@QGLFunctions@@QAEHIPBD@Z @ 795 NONAME ; int QGLFunctions::glGetUniformLocation(unsigned int, char const *) - ?glGetRenderbufferParameteriv@QGLFunctions@@QAEXIIPAH@Z @ 796 NONAME ; void QGLFunctions::glGetRenderbufferParameteriv(unsigned int, unsigned int, int *) - ?glBindAttribLocation@QGLFunctions@@QAEXIIPBD@Z @ 797 NONAME ; void QGLFunctions::glBindAttribLocation(unsigned int, unsigned int, char const *) - ?glGetShaderSource@QGLFunctions@@QAEXIHPAHPAD@Z @ 798 NONAME ; void QGLFunctions::glGetShaderSource(unsigned int, int, int *, char *) - ?setMipmap@QGLFramebufferObjectFormat@@QAEX_N@Z @ 799 NONAME ; void QGLFramebufferObjectFormat::setMipmap(bool) - ??1QGLContextGroupResourceBase@@UAE@XZ @ 800 NONAME ; QGLContextGroupResourceBase::~QGLContextGroupResourceBase(void) - ?glFramebufferTexture2D@QGLFunctions@@QAEXIIIIH@Z @ 801 NONAME ; void QGLFunctions::glFramebufferTexture2D(unsigned int, unsigned int, unsigned int, unsigned int, int) - ?glBlendEquationSeparate@QGLFunctions@@QAEXII@Z @ 802 NONAME ; void QGLFunctions::glBlendEquationSeparate(unsigned int, unsigned int) - ?insert@QGLContextResourceBase@@QAEXPBVQGLContext@@PAX@Z @ 803 NONAME ; void QGLContextResourceBase::insert(class QGLContext const *, void *) - ?glUniform2i@QGLFunctions@@QAEXHHH@Z @ 804 NONAME ; void QGLFunctions::glUniform2i(int, int, int) - ?glGetUniformfv@QGLFunctions@@QAEXIHPAM@Z @ 805 NONAME ; void QGLFunctions::glGetUniformfv(unsigned int, int, float *) - ?glUniform3i@QGLFunctions@@QAEXHHHH@Z @ 806 NONAME ; void QGLFunctions::glUniform3i(int, int, int, int) - ?glIsRenderbuffer@QGLFunctions@@QAEEI@Z @ 807 NONAME ; unsigned char QGLFunctions::glIsRenderbuffer(unsigned int) - ?initializeGLFunctions@QGLFunctions@@QAEXPBVQGLContext@@@Z @ 808 NONAME ; void QGLFunctions::initializeGLFunctions(class QGLContext const *) - ??0QGLFunctions@@QAE@XZ @ 809 NONAME ; QGLFunctions::QGLFunctions(void) - ?glVertexAttrib2fv@QGLFunctions@@QAEXIPBM@Z @ 810 NONAME ; void QGLFunctions::glVertexAttrib2fv(unsigned int, float const *) - ?isInitialized@QGLFunctions@@CA_NPBUQGLFunctionsPrivate@@@Z @ 811 NONAME ; bool QGLFunctions::isInitialized(struct QGLFunctionsPrivate const *) - ?glGetUniformiv@QGLFunctions@@QAEXIHPAH@Z @ 812 NONAME ; void QGLFunctions::glGetUniformiv(unsigned int, int, int *) - ?glBlendEquation@QGLFunctions@@QAEXI@Z @ 813 NONAME ; void QGLFunctions::glBlendEquation(unsigned int) - ?glFramebufferRenderbuffer@QGLFunctions@@QAEXIIII@Z @ 814 NONAME ; void QGLFunctions::glFramebufferRenderbuffer(unsigned int, unsigned int, unsigned int, unsigned int) - ?glUniform4i@QGLFunctions@@QAEXHHHHH@Z @ 815 NONAME ; void QGLFunctions::glUniform4i(int, int, int, int, int) - ?glUniform3fv@QGLFunctions@@QAEXHHPBM@Z @ 816 NONAME ; void QGLFunctions::glUniform3fv(int, int, float const *) - ?value@QGLContextResourceBase@@QAEPAXPBVQGLContext@@@Z @ 817 NONAME ; void * QGLContextResourceBase::value(class QGLContext const *) - ?glBlendFuncSeparate@QGLFunctions@@QAEXIIII@Z @ 818 NONAME ; void QGLFunctions::glBlendFuncSeparate(unsigned int, unsigned int, unsigned int, unsigned int) - ?glCompressedTexSubImage2D@QGLFunctions@@QAEXIHHHHHIHPBX@Z @ 819 NONAME ; void QGLFunctions::glCompressedTexSubImage2D(unsigned int, int, int, int, int, int, unsigned int, int, void const *) - ?freeResource@QGLTextureGlyphCache@@UAEXPAX@Z @ 820 NONAME ; void QGLTextureGlyphCache::freeResource(void *) - ?value@QGLContextGroupResourceBase@@QAEPAXPBVQGLContext@@@Z @ 821 NONAME ; void * QGLContextGroupResourceBase::value(class QGLContext const *) - ?glUniform3iv@QGLFunctions@@QAEXHHPBH@Z @ 822 NONAME ; void QGLFunctions::glUniform3iv(int, int, int const *) - ?mipmap@QGLFramebufferObjectFormat@@QBE_NXZ @ 823 NONAME ; bool QGLFramebufferObjectFormat::mipmap(void) const - ?qt_extensionFuncs@QGLContextPrivate@@2UQGLExtensionFuncs@@A @ 824 NONAME ; struct QGLExtensionFuncs QGLContextPrivate::qt_extensionFuncs - ?glShaderSource@QGLFunctions@@QAEXIHPAPBDPBH@Z @ 825 NONAME ; void QGLFunctions::glShaderSource(unsigned int, int, char const * *, int const *) - ?glGetShaderPrecisionFormat@QGLFunctions@@QAEXIIPAH0@Z @ 826 NONAME ; void QGLFunctions::glGetShaderPrecisionFormat(unsigned int, unsigned int, int *, int *) - ?insert@QGLContextGroupResourceBase@@QAEXPBVQGLContext@@PAX@Z @ 827 NONAME ; void QGLContextGroupResourceBase::insert(class QGLContext const *, void *) - -- cgit v0.12 From bbf604d11d707f10337cab5b955388e95c180805 Mon Sep 17 00:00:00 2001 From: Niklas Kurkisuo Date: Thu, 6 Jan 2011 10:39:14 +0200 Subject: QHostInfoCache: Use QElapsedTime instead of QTime Use QElapsedTime instead of QTime for performance gain. See QT-2965 for more info. Task-number: QTBUG-16468 Reviewed-by: Markus Goetz --- src/network/kernel/qhostinfo.cpp | 2 +- src/network/kernel/qhostinfo_p.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/network/kernel/qhostinfo.cpp b/src/network/kernel/qhostinfo.cpp index c8fc45e..0c734d5 100644 --- a/src/network/kernel/qhostinfo.cpp +++ b/src/network/kernel/qhostinfo.cpp @@ -720,7 +720,7 @@ void QHostInfoCache::put(const QString &name, const QHostInfo &info) QHostInfoCacheElement* element = new QHostInfoCacheElement(); element->info = info; - element->age = QTime(); + element->age = QElapsedTimer(); element->age.start(); QMutexLocker locker(&this->mutex); diff --git a/src/network/kernel/qhostinfo_p.h b/src/network/kernel/qhostinfo_p.h index 134335f..80d8e14 100644 --- a/src/network/kernel/qhostinfo_p.h +++ b/src/network/kernel/qhostinfo_p.h @@ -66,7 +66,7 @@ #include "QtCore/qrunnable.h" #include "QtCore/qlist.h" #include "QtCore/qqueue.h" -#include +#include #include @@ -132,7 +132,7 @@ private: bool enabled; struct QHostInfoCacheElement { QHostInfo info; - QTime age; + QElapsedTimer age; }; QCache cache; QMutex mutex; -- cgit v0.12 From c5efe77d3051424db631fc9aa54cee1f735bceb8 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 6 Jan 2011 13:16:37 +0100 Subject: tst_qscriptclass: backport test from the v8 branch From commit 4e39278225 Add test coverage to match 4.7 behaviour regarding original properties --- tests/auto/qscriptclass/tst_qscriptclass.cpp | 246 +++++++++++++++++++++++++++ 1 file changed, 246 insertions(+) diff --git a/tests/auto/qscriptclass/tst_qscriptclass.cpp b/tests/auto/qscriptclass/tst_qscriptclass.cpp index 20d62b4..12ee178 100644 --- a/tests/auto/qscriptclass/tst_qscriptclass.cpp +++ b/tests/auto/qscriptclass/tst_qscriptclass.cpp @@ -69,6 +69,10 @@ private slots: void getProperty_invalidValue(); void enumerate(); void extension(); + void originalProperties1(); + void originalProperties2(); + void originalProperties3(); + void originalProperties4(); void defaultImplementations(); }; @@ -1050,6 +1054,248 @@ void tst_QScriptClass::extension() } } +// tests made to match Qt 4.7 (JSC) behaviour +void tst_QScriptClass::originalProperties1() +{ + QScriptEngine eng; + + QScriptString orig1 = eng.toStringHandle("orig1"); + QScriptString orig2 = eng.toStringHandle("orig2"); + QScriptString orig3 = eng.toStringHandle("orig3"); + QScriptString new1 = eng.toStringHandle("new1"); + QScriptString new2 = eng.toStringHandle("new2"); + + { + TestClass cls1(&eng); + cls1.addCustomProperty(orig2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, 89); + cls1.addCustomProperty(new1, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, "hello"); + + TestClass cls2(&eng); + cls2.addCustomProperty(orig2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, 59); + cls2.addCustomProperty(new2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, "world"); + + QScriptValue obj1 = eng.newObject(); + obj1.setProperty(orig1 , 42); + obj1.setProperty(orig2 , "foo"); + obj1.prototype().setProperty(orig3, "bar"); + + QCOMPARE(obj1.property(orig1).toInt32(), 42); + QCOMPARE(obj1.property(orig2).toString(), QString::fromLatin1("foo")); + QCOMPARE(obj1.property(orig3).toString(), QString::fromLatin1("bar")); + QVERIFY(!obj1.property(new1).isValid()); + QVERIFY(!obj1.property(new2).isValid()); + + eng.globalObject().setProperty("obj" , obj1); + + obj1.setScriptClass(&cls1); + QCOMPARE(obj1.property(orig1).toInt32(), 42); + QCOMPARE(obj1.property(orig2).toString(), QString::fromLatin1("foo")); + QCOMPARE(obj1.property(orig3).toString(), QString::fromLatin1("bar")); + QCOMPARE(obj1.property(new1).toString(), QString::fromLatin1("hello")); + QVERIFY(!obj1.property(new2).isValid()); + + QScriptValue obj2 = eng.evaluate("obj"); + QCOMPARE(obj2.scriptClass(), &cls1); + QCOMPARE(obj2.property(orig1).toInt32(), 42); + QCOMPARE(obj2.property(orig2).toString(), QString::fromLatin1("foo")); + QCOMPARE(obj2.property(orig3).toString(), QString::fromLatin1("bar")); + QCOMPARE(obj2.property(new1).toString(), QString::fromLatin1("hello")); + QVERIFY(!obj2.property(new2).isValid()); + + obj1.setScriptClass(&cls2); + QCOMPARE(obj1.property(orig1).toInt32(), 42); + QCOMPARE(obj1.property(orig2).toString(), QString::fromLatin1("foo")); + QCOMPARE(obj1.property(orig3).toString(), QString::fromLatin1("bar")); + QVERIFY(!obj1.property(new1).isValid()); + QCOMPARE(obj1.property(new2).toString(), QString::fromLatin1("world")); + + QCOMPARE(obj2.scriptClass(), &cls2); + QCOMPARE(obj2.property(orig1).toInt32(), 42); + QCOMPARE(obj2.property(orig2).toString(), QString::fromLatin1("foo")); + QCOMPARE(obj2.property(orig3).toString(), QString::fromLatin1("bar")); + QVERIFY(!obj2.property(new1).isValid()); + QCOMPARE(obj2.property(new2).toString(), QString::fromLatin1("world")); + + obj1.setScriptClass(0); + QCOMPARE(obj1.property(orig1).toInt32(), 42); + QCOMPARE(obj1.property(orig2).toString(), QString::fromLatin1("foo")); + QCOMPARE(obj1.property(orig3).toString(), QString::fromLatin1("bar")); + QVERIFY(!obj1.property(new1).isValid()); + QVERIFY(!obj1.property(new2).isValid()); + } +} + +void tst_QScriptClass::originalProperties2() +{ + QScriptEngine eng; + + QScriptString orig1 = eng.toStringHandle("orig1"); + QScriptString orig2 = eng.toStringHandle("orig2"); + QScriptString orig3 = eng.toStringHandle("orig3"); + QScriptString new1 = eng.toStringHandle("new1"); + QScriptString new2 = eng.toStringHandle("new2"); + + { + TestClass cls1(&eng); + cls1.addCustomProperty(orig2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, 89); + cls1.addCustomProperty(new1, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, "hello"); + + TestClass cls2(&eng); + cls2.addCustomProperty(orig2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, 59); + cls2.addCustomProperty(new2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, "world"); + + QScriptValue obj1 = eng.newObject(); + obj1.setProperty(orig1 , 42); + obj1.setProperty(orig2 , "foo"); + obj1.prototype().setProperty(orig3, "bar"); + + QCOMPARE(obj1.property(orig1).toInt32(), 42); + QCOMPARE(obj1.property(orig2).toString(), QString::fromLatin1("foo")); + QCOMPARE(obj1.property(orig3).toString(), QString::fromLatin1("bar")); + QVERIFY(!obj1.property(new1).isValid()); + QVERIFY(!obj1.property(new2).isValid()); + + obj1.setScriptClass(&cls1); + obj1.setProperty(orig1 , QScriptValue(&eng, 852)); + obj1.setProperty(orig2 , "oli"); + obj1.setProperty(orig3 , "fu*c"); + obj1.setProperty(new1 , "moo"); + obj1.setProperty(new2 , "allo?"); + QCOMPARE(obj1.property(orig1).toInt32(), 852); + QCOMPARE(obj1.property(orig2).toString(), QString::fromLatin1("foo")); + QCOMPARE(obj1.property(orig3).toString(), QString::fromLatin1("fu*c")); + QCOMPARE(obj1.property(new1).toString(), QString::fromLatin1("moo")); + QCOMPARE(obj1.property(new2).toString(), QString::fromLatin1("allo?")); + + obj1.setScriptClass(&cls2); + QCOMPARE(obj1.property(orig1).toInt32(), 852); + QCOMPARE(obj1.property(orig2).toString(), QString::fromLatin1("foo")); + QCOMPARE(obj1.property(orig3).toString(), QString::fromLatin1("fu*c")); + QVERIFY(!obj1.property(new1).isValid()); + QCOMPARE(obj1.property(new2).toString(), QString::fromLatin1("allo?")); + + obj1.setScriptClass(0); + QCOMPARE(obj1.property(orig1).toInt32(), 852); + QCOMPARE(obj1.property(orig2).toString(), QString::fromLatin1("foo")); + QCOMPARE(obj1.property(orig3).toString(), QString::fromLatin1("fu*c")); + QVERIFY(!obj1.property(new1).isValid()); + QCOMPARE(obj1.property(new2).toString(), QString::fromLatin1("allo?")); + } +} + +void tst_QScriptClass::originalProperties3() +{ + QScriptEngine eng; + + QScriptString orig1 = eng.toStringHandle("orig1"); + QScriptString orig2 = eng.toStringHandle("orig2"); + QScriptString orig3 = eng.toStringHandle("orig3"); + QScriptString new1 = eng.toStringHandle("new1"); + QScriptString new2 = eng.toStringHandle("new2"); + + { + TestClass cls1(&eng); + cls1.addCustomProperty(orig2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, 89); + cls1.addCustomProperty(new1, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, "hello"); + + TestClass cls2(&eng); + cls2.addCustomProperty(orig2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, 59); + cls2.addCustomProperty(new2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, "world"); + + QScriptValue obj1 = eng.newObject(&cls1); + QVERIFY(!obj1.property(orig1).isValid()); + QCOMPARE(obj1.property(orig2).toInt32(), 89); + QCOMPARE(obj1.property(new1).toString(), QString::fromLatin1("hello")); + QVERIFY(!obj1.property(new2).isValid()); + obj1.setProperty(orig1, 42); + QCOMPARE(obj1.property(orig1).toInt32(), 42); + + eng.globalObject().setProperty("obj" , obj1); + obj1.setScriptClass(&cls2); + QCOMPARE(obj1.property(orig1).toInt32(), 42); + QCOMPARE(obj1.property(orig2).toInt32(), 59); + QVERIFY(!obj1.property(new1).isValid()); + QCOMPARE(obj1.property(new2).toString(), QString::fromLatin1("world")); + + QScriptValue obj2 = eng.evaluate("obj"); + QCOMPARE(obj2.scriptClass(), &cls2); + QCOMPARE(obj2.property(orig1).toInt32(), 42); + QCOMPARE(obj2.property(orig2).toInt32(), 59); + QVERIFY(!obj2.property(new1).isValid()); + QCOMPARE(obj2.property(new2).toString(), QString::fromLatin1("world")); + + obj1.setScriptClass(0); + QCOMPARE(obj1.property(orig1).toInt32(), 42); + QVERIFY(!obj1.property(orig2).isValid()); + QVERIFY(!obj1.property(new1).isValid()); + QVERIFY(!obj1.property(new2).isValid()); + + QCOMPARE(obj2.scriptClass(), (QScriptClass *)0); + QCOMPARE(obj2.property(orig1).toInt32(), 42); + QVERIFY(!obj2.property(orig2).isValid()); + QVERIFY(!obj2.property(new1).isValid()); + QVERIFY(!obj2.property(new2).isValid()); + } +} + +void tst_QScriptClass::originalProperties4() +{ + QScriptEngine eng; + + QScriptString orig1 = eng.toStringHandle("orig1"); + QScriptString orig2 = eng.toStringHandle("orig2"); + QScriptString orig3 = eng.toStringHandle("orig3"); + QScriptString new1 = eng.toStringHandle("new1"); + QScriptString new2 = eng.toStringHandle("new2"); + + { + TestClass cls1(&eng); + cls1.addCustomProperty(orig2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, 89); + cls1.addCustomProperty(new1, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, "hello"); + + TestClass cls2(&eng); + cls2.addCustomProperty(orig2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, 59); + cls2.addCustomProperty(new2, QScriptClass::HandlesReadAccess | QScriptClass::HandlesWriteAccess, 1, 0, "world"); + + QScriptValue obj1 = eng.newObject(&cls1); + QVERIFY(!obj1.property(orig1).isValid()); + QCOMPARE(obj1.property(orig2).toInt32(), 89); + QCOMPARE(obj1.property(new1).toString(), QString::fromLatin1("hello")); + QVERIFY(!obj1.property(new2).isValid()); + + eng.globalObject().setProperty("obj" , obj1); + + obj1.setScriptClass(0); + QVERIFY(obj1.isObject()); + QVERIFY(!obj1.property(orig1).isValid()); + QVERIFY(!obj1.property(orig2).isValid()); + QVERIFY(!obj1.property(new1).isValid()); + QVERIFY(!obj1.property(new2).isValid()); + obj1.setProperty(orig1, 42); + QCOMPARE(obj1.property(orig1).toInt32(), 42); + + QScriptValue obj2 = eng.evaluate("obj"); + QCOMPARE(obj2.scriptClass(), (QScriptClass *)0); + QVERIFY(obj2.isObject()); + QCOMPARE(obj2.property(orig1).toInt32(), 42); + QVERIFY(!obj2.property(orig2).isValid()); + QVERIFY(!obj2.property(new1).isValid()); + QVERIFY(!obj2.property(new2).isValid()); + + obj1.setScriptClass(&cls2); + QCOMPARE(obj1.property(orig1).toInt32(), 42); + QCOMPARE(obj1.property(orig2).toInt32(), 59); + QVERIFY(!obj1.property(new1).isValid()); + QCOMPARE(obj1.property(new2).toString(), QString::fromLatin1("world")); + + QCOMPARE(obj2.scriptClass(), (QScriptClass *)(&cls2)); + QCOMPARE(obj2.property(orig1).toInt32(), 42); + QCOMPARE(obj2.property(orig2).toInt32(), 59); + QVERIFY(!obj2.property(new1).isValid()); + QCOMPARE(obj2.property(new2).toString(), QString::fromLatin1("world")); + } +} + void tst_QScriptClass::defaultImplementations() { QScriptEngine eng; -- cgit v0.12 From 18447df1d021cfed69472b867cb7593401be27a6 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Wed, 5 Jan 2011 19:39:00 +0100 Subject: Make application font family names locale sensitive in X11 So that they will match the family names returned by QFontDatabase::families. Because the family names returned by FcFreeTypeQueryFace are not sorted with locale as the names returned by FcFontList, we have to find out the family name matching the system language in the former case. Task-number: QTBUG-14269 Reviewed-by: Eskil --- src/gui/text/qfontdatabase.cpp | 3 +++ src/gui/text/qfontdatabase_x11.cpp | 23 +++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp index bae2a20..ec94de9 100644 --- a/src/gui/text/qfontdatabase.cpp +++ b/src/gui/text/qfontdatabase.cpp @@ -664,6 +664,9 @@ public: } int count; +#if defined(Q_WS_X11) && !defined(QT_NO_FONTCONFIG) + QString systemLang; +#endif QtFontFamily **families; struct ApplicationFont { diff --git a/src/gui/text/qfontdatabase_x11.cpp b/src/gui/text/qfontdatabase_x11.cpp index 635d2cf..c67558b 100644 --- a/src/gui/text/qfontdatabase_x11.cpp +++ b/src/gui/text/qfontdatabase_x11.cpp @@ -1018,6 +1018,13 @@ static void loadFontConfig() QFontDatabasePrivate *db = privateDb(); FcFontSet *fonts; + FcPattern *pattern = FcPatternCreate(); + FcDefaultSubstitute(pattern); + FcChar8 *lang = 0; + if (FcPatternGetString(pattern, FC_LANG, 0, &lang) == FcResultMatch) + db->systemLang = QString::fromUtf8((const char *) lang); + FcPatternDestroy(pattern); + QString familyName; FcChar8 *value = 0; int weight_value; @@ -2037,6 +2044,7 @@ static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt) int count = 0; QStringList families; + QFontDatabasePrivate *db = privateDb(); FcPattern *pattern = 0; do { @@ -2048,8 +2056,19 @@ static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt) FcPatternDel(pattern, FC_FILE); FcPatternAddString(pattern, FC_FILE, (const FcChar8 *)fnt->fileName.toUtf8().constData()); - FcChar8 *fam = 0; - if (FcPatternGetString(pattern, FC_FAMILY, 0, &fam) == FcResultMatch) { + FcChar8 *fam = 0, *familylang = 0; + int i, n = 0; + for (i = 0; ; i++) { + if (FcPatternGetString(pattern, FC_FAMILYLANG, i, &familylang) != FcResultMatch) + break; + QString familyLang = QString::fromUtf8((const char *) familylang); + if (familyLang.compare(db->systemLang, Qt::CaseInsensitive) == 0) { + n = i; + break; + } + } + + if (FcPatternGetString(pattern, FC_FAMILY, n, &fam) == FcResultMatch) { QString family = QString::fromUtf8(reinterpret_cast(fam)); families << family; } -- cgit v0.12 From 7ee36ca4cf6359ade995e974abd2adfcf4dc7612 Mon Sep 17 00:00:00 2001 From: Mark Brand Date: Thu, 6 Jan 2011 13:51:55 +0100 Subject: fix include path In many situations building succeeds without explicity including this dir in the include path, probably due to a side-effect of calling uic on the form in this project. However, it is known to fail at least on mingw-cross-env. Anyway, it makes sense to explcitly add this dir to the include path since a needed header resides here. Merge-request: 1016 Reviewed-by: Oswald Buddenhagen --- examples/painting/svggenerator/svggenerator.pro | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/painting/svggenerator/svggenerator.pro b/examples/painting/svggenerator/svggenerator.pro index e0e4895..2e67372 100644 --- a/examples/painting/svggenerator/svggenerator.pro +++ b/examples/painting/svggenerator/svggenerator.pro @@ -8,6 +8,8 @@ SOURCES = displaywidget.cpp \ QT += svg +INCLUDEPATH += $$PWD + # install target.path = $$[QT_INSTALL_EXAMPLES]/painting/svggenerator sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS svggenerator.pro -- cgit v0.12 From 5c3010cf467d437ccfc8a263bed167e979614504 Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 6 Jan 2011 14:01:53 +0100 Subject: qkeymapper_x11.cpp: fix compilation with LSB and without XKB Task-number: QTBUG-16312 Reviewed-by: Marius Storm-Olsen --- src/gui/kernel/qkeymapper_x11.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp index 825edbc..e085d11 100644 --- a/src/gui/kernel/qkeymapper_x11.cpp +++ b/src/gui/kernel/qkeymapper_x11.cpp @@ -61,13 +61,6 @@ #include -QT_BEGIN_NAMESPACE - -#ifndef QT_NO_XKB - -// bring in the auto-generated xkbLayoutData -#include "qkeymapper_x11_p.cpp" - #ifdef QT_LINUXBASE // LSB's IsKeypadKey define is wrong - see // http://bugs.linuxbase.org/show_bug.cgi?id=2521 @@ -80,6 +73,13 @@ QT_BEGIN_NAMESPACE (((KeySym)(keysym) >= 0x11000000) && ((KeySym)(keysym) <= 0x1100FFFF)) #endif +QT_BEGIN_NAMESPACE + +#ifndef QT_NO_XKB + +// bring in the auto-generated xkbLayoutData +#include "qkeymapper_x11_p.cpp" + QLocale q_getKeyboardLocale(const QByteArray &layoutName, const QByteArray &variantName) { int i = 0; @@ -92,7 +92,6 @@ QLocale q_getKeyboardLocale(const QByteArray &layoutName, const QByteArray &vari } #endif // QT_NO_XKB - // from qapplication_x11.cpp extern uchar qt_alt_mask; extern uchar qt_meta_mask; -- cgit v0.12 From 91596c9c08208690894ec11a3a99eac57ad17f2b Mon Sep 17 00:00:00 2001 From: Olivier Goffart Date: Thu, 6 Jan 2011 14:51:04 +0100 Subject: QUrl::setUrl should call detach Task-number: QTBUG-16425 Reviewed-by: Gabriel Reviewed-by: Markus Goetz --- src/corelib/io/qurl.cpp | 1 + tests/auto/qurl/tst_qurl.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index 6a3037d..45f908d 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -4262,6 +4262,7 @@ void QUrl::setUrl(const QString &url) */ void QUrl::setUrl(const QString &url, ParsingMode parsingMode) { + detach(); // escape all reserved characters and delimiters // reserved = gen-delims / sub-delims if (parsingMode != TolerantMode) { diff --git a/tests/auto/qurl/tst_qurl.cpp b/tests/auto/qurl/tst_qurl.cpp index 63f9721..4354ffb 100644 --- a/tests/auto/qurl/tst_qurl.cpp +++ b/tests/auto/qurl/tst_qurl.cpp @@ -675,6 +675,14 @@ void tst_QUrl::setUrl() QCOMPARE(url.encodedPath().constData(), "text/javascript,d5%20%3D%20'five%5Cu0027s'%3B"); } + { //check it calls detach + QUrl u1("http://aaa.com"); + QUrl u2 = u1; + u2.setUrl("http://bbb.com"); + QCOMPARE(u1.host(), QString::fromLatin1("aaa.com")); + QCOMPARE(u2.host(), QString::fromLatin1("bbb.com")); + } + /* The tests below are copied from kdelibs/kdecore/tests/kurltest.cpp (an old version of) -- cgit v0.12 From 6d331b6ee7711cde2bf9adc1a584a45875c07983 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 6 Jan 2011 15:34:48 +0100 Subject: Designer: Block QEvent::WinIdChange. As it causes an obscure deletion crash related to the formeditor rubberband on Mac. Reviewed-by: con --- tools/designer/src/components/formeditor/formwindowmanager.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/designer/src/components/formeditor/formwindowmanager.cpp b/tools/designer/src/components/formeditor/formwindowmanager.cpp index ce809ff..ed854cf 100644 --- a/tools/designer/src/components/formeditor/formwindowmanager.cpp +++ b/tools/designer/src/components/formeditor/formwindowmanager.cpp @@ -192,6 +192,7 @@ bool FormWindowManager::eventFilter(QObject *o, QEvent *e) case QEvent::ToolTip: case QEvent::WhatsThis: case QEvent::WhatsThisClicked: + case QEvent::WinIdChange: case QEvent::DynamicPropertyChange: case QEvent::HoverEnter: case QEvent::HoverLeave: -- cgit v0.12 From 66cfe2a776b7542fe1d8bae9c0d7bb5be79406fd Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Thu, 6 Jan 2011 15:16:03 +0000 Subject: Fix KERN-EXEC 0 panic on exit when bearer is searching for WLANs The access point scanner cancels itself in the destructor. This requires the handle to be valid, but it was closed in the symbian engine destructor immediately before deleting the AP scanner. Because of the way symbian active objects work, the crashing function is only called if there was an asynchronous request in progress. So it could be missed in cases where the scan completes faster than the test case. Task-number: QTBUG-16484 Reviewed-by: Markus Goetz --- src/plugins/bearer/symbian/symbianengine.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/bearer/symbian/symbianengine.cpp b/src/plugins/bearer/symbian/symbianengine.cpp index f025d86..a370d78 100644 --- a/src/plugins/bearer/symbian/symbianengine.cpp +++ b/src/plugins/bearer/symbian/symbianengine.cpp @@ -144,6 +144,10 @@ SymbianEngine::~SymbianEngine() { Cancel(); + //The scanner may be using the connection monitor so it needs to be + //deleted first while the handle is still valid. + delete ipAccessPointsAvailabilityScanner; + iConnectionMonitor.CancelNotifications(); iConnectionMonitor.Close(); @@ -151,8 +155,6 @@ SymbianEngine::~SymbianEngine() iCmManager.Close(); #endif - delete ipAccessPointsAvailabilityScanner; - // CCommsDatabase destructor uses cleanup stack. Since QNetworkConfigurationManager // is a global static, but the time we are here, E32Main() has been exited already and // the thread's default cleanup stack has been deleted. Without this line, a -- cgit v0.12 From 273cc18e59af6b495462cbe101652a444a2cc8f4 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Thu, 6 Jan 2011 17:04:37 +0100 Subject: licensing: exclude generated cookie jar table from license check This file is generated from the Public Suffix List, and thus under a different license. Reviewed-by: Markus Goetz --- tests/auto/headers/tst_headers.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/auto/headers/tst_headers.cpp b/tests/auto/headers/tst_headers.cpp index 8c8bc2c..b889a37 100644 --- a/tests/auto/headers/tst_headers.cpp +++ b/tests/auto/headers/tst_headers.cpp @@ -176,7 +176,9 @@ void tst_Headers::allSourceFilesData() || sourceFile.endsWith(".ui.h") || sourceFile.endsWith("/src/corelib/global/qconfig.h") || sourceFile.endsWith("/src/corelib/global/qconfig.cpp") - || sourceFile.endsWith("/src/tools/uic/qclass_lib_map.h")) + || sourceFile.endsWith("/src/tools/uic/qclass_lib_map.h") + || sourceFile.endsWith("src/network/access/qnetworkcookiejartlds_p.h") + ) continue; QTest::newRow(qPrintable(sourceFile)) << sourceFile; -- cgit v0.12 From e185e5f008f6852bd7a79d74262717c8e377b918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 5 Jan 2011 08:25:56 +0100 Subject: Restored old flushing behavior in -graphicssystem opengl on desktop. Change 284211ccbd2cbd recently introduced a fix for EGL, to prevent flushing when nothing has been rendered into the back buffer. However, the skip should only be done when there's no partial update support in the window surface. If there is partial update support we can still flush as usual. Reviewed-by: Gunnar Sletta --- src/opengl/qwindowsurface_gl.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp index b8716ce..7243f02 100644 --- a/src/opengl/qwindowsurface_gl.cpp +++ b/src/opengl/qwindowsurface_gl.cpp @@ -520,9 +520,10 @@ void QGLWindowSurface::flush(QWidget *widget, const QRegion &rgn, const QPoint & // did_paint is set to true in ::beginPaint. ::beginPaint means that we // at least cleared the background (= painted something). In EGL API it's a - // mistakte to call swapBuffers if nothing was painted. This check protects - // the flush func from being executed if it's for nothing. - if (!d_ptr->did_paint) + // mistake to call swapBuffers if nothing was painted unless + // EGL_BUFFER_PRESERVED is set. This check protects the flush func from + // being executed if it's for nothing. + if (!hasPartialUpdateSupport() && !d_ptr->did_paint) return; QWidget *parent = widget->internalWinId() ? widget : widget->nativeParentWidget(); -- cgit v0.12 From 84658ec4e650b12dcea6f886b530e66a195465cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Thu, 6 Jan 2011 13:09:14 +0100 Subject: Fixed bug and performance problem in windowsstyle. QImage::fill(Qt::transparent) pre-4.8 is a bug, also using Format_ARGB32 is very unoptimal compared to Format_ARGB32_Premultiplied. Task-number: QTBUG-16439 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/gui/styles/qwindowsstyle.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/styles/qwindowsstyle.cpp b/src/gui/styles/qwindowsstyle.cpp index 32a6d8d..4144b80 100644 --- a/src/gui/styles/qwindowsstyle.cpp +++ b/src/gui/styles/qwindowsstyle.cpp @@ -1395,8 +1395,8 @@ void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, if (!QPixmapCache::find(pixmapName, pixmap)) { int border = size/5; int sqsize = 2*(size/2); - QImage image(sqsize, sqsize, QImage::Format_ARGB32); - image.fill(Qt::transparent); + QImage image(sqsize, sqsize, QImage::Format_ARGB32_Premultiplied); + image.fill(0); QPainter imagePainter(&image); QPolygon a; -- cgit v0.12 From 5780ff75c1e63322f3edd6158c08f1d944919cce Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Fri, 7 Jan 2011 08:47:51 +0100 Subject: QmlViewer: Remove unused class variables --- tools/qml/qmlruntime.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/tools/qml/qmlruntime.h b/tools/qml/qmlruntime.h index b43aa54..a70ffc9 100644 --- a/tools/qml/qmlruntime.h +++ b/tools/qml/qmlruntime.h @@ -188,8 +188,6 @@ private: ScriptOptions m_scriptOptions; QDeclarativeTester *tester; - QNetworkReply *wgtreply; - QString wgtdir; NetworkAccessManagerFactory *namFactory; bool useQmlFileBrowser; -- cgit v0.12 From ec46ec7d5d4783fb450ed75e2f6a2ae3edca918e Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Fri, 7 Jan 2011 11:26:52 +0100 Subject: Revert "QNAM HTTP: Fix missing error() signal" We don't think this is the right solution. This reverts commit de72670c620e1193fa875bf1a4adee553700bacb. --- src/network/access/qhttpnetworkconnectionchannel.cpp | 20 +------------------- src/network/access/qhttpnetworkconnectionchannel_p.h | 1 - 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp index c4471eb..c8caad4 100644 --- a/src/network/access/qhttpnetworkconnectionchannel.cpp +++ b/src/network/access/qhttpnetworkconnectionchannel.cpp @@ -66,7 +66,6 @@ QHttpNetworkConnectionChannel::QHttpNetworkConnectionChannel() , bytesTotal(0) , resendCurrent(false) , lastStatus(0) - , unhandledError(QNetworkReply::NoError) , pendingEncrypt(false) , reconnectAttempts(2) , authMethod(QAuthenticatorPrivate::None) @@ -643,23 +642,7 @@ void QHttpNetworkConnectionChannel::allDone() // slot connected to it. The socket will not fire readyRead signal, if we are already // in the slot connected to readyRead if (emitFinished) - { - // Check whether _q_error was invoked previously and if it left a socket - // error unhandled AND that there are no http errors. - // In case there are both socket errors and http errors, the socket error is suppressed. - // Http errors are handled in the QNetworkAccessHttpBackend. - if(unhandledError != QNetworkReply::NoError && reply->statusCode() == 200) { - QString errorString = connection->d_func()->errorDetail(unhandledError, socket, socket->errorString()); - qRegisterMetaType("QNetworkReply::NetworkError"); - QMetaObject::invokeMethod(reply, "finishedWithError", - Qt::QueuedConnection, - Q_ARG(QNetworkReply::NetworkError, unhandledError), - Q_ARG(QString, errorString)); - } else { - QMetaObject::invokeMethod(reply, "finished", Qt::QueuedConnection); - } - unhandledError = QNetworkReply::NoError; // Reset the value - } + QMetaObject::invokeMethod(reply, "finished", Qt::QueuedConnection); // reset the reconnection attempts after we receive a complete reply. // in case of failures, each channel will attempt two reconnects before emitting error. reconnectAttempts = 2; @@ -981,7 +964,6 @@ void QHttpNetworkConnectionChannel::_q_error(QAbstractSocket::SocketError socket errorCode = QNetworkReply::RemoteHostClosedError; } } else { - unhandledError = QNetworkReply::RemoteHostClosedError; return; } break; diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h index e1d42fb..fd18042 100644 --- a/src/network/access/qhttpnetworkconnectionchannel_p.h +++ b/src/network/access/qhttpnetworkconnectionchannel_p.h @@ -105,7 +105,6 @@ public: qint64 bytesTotal; bool resendCurrent; int lastStatus; // last status received on this channel - QNetworkReply::NetworkError unhandledError; // Stored code of an unhandled error. bool pendingEncrypt; // for https (send after encrypted) int reconnectAttempts; // maximum 2 reconnection attempts QAuthenticatorPrivate::Method authMethod; -- cgit v0.12 From 0d6eb2b59f626dbcb51209cc98ef74878fdf5437 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Fri, 7 Jan 2011 11:31:20 +0100 Subject: Revert "Fix QNetworkReply autotest cases for QT-3494" We don't think this is the right fix. This reverts commit 5d18d393808d7a4be56eb00ab9f1e9cda9e211c9. --- tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index 6cd9d3c..cff0ae9 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -2585,19 +2585,17 @@ void tst_QNetworkReply::ioGetFromHttpBrokenServer() void tst_QNetworkReply::ioGetFromHttpStatus100_data() { QTest::addColumn("dataToSend"); - QTest::addColumn("expectedError"); - QTest::newRow("normal") << QByteArray("HTTP/1.1 100 Continue\r\n\r\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n") << QNetworkReply::NoError; - QTest::newRow("minimal") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n") << QNetworkReply::NoError; - QTest::newRow("minimal2") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.0 200 OK\r\n\r\n") << QNetworkReply::RemoteHostClosedError; - QTest::newRow("minimal3") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.0 200 OK\n\n") << QNetworkReply::RemoteHostClosedError; - QTest::newRow("with_headers") << QByteArray("HTTP/1.1 100 Continue\r\nBla: x\r\n\r\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n") << QNetworkReply::NoError; - QTest::newRow("with_headers2") << QByteArray("HTTP/1.1 100 Continue\nBla: x\n\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n") << QNetworkReply::NoError; + QTest::newRow("normal") << QByteArray("HTTP/1.1 100 Continue\r\n\r\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"); + QTest::newRow("minimal") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"); + QTest::newRow("minimal2") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.0 200 OK\r\n\r\n"); + QTest::newRow("minimal3") << QByteArray("HTTP/1.1 100 Continue\n\nHTTP/1.0 200 OK\n\n"); + QTest::newRow("with_headers") << QByteArray("HTTP/1.1 100 Continue\r\nBla: x\r\n\r\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"); + QTest::newRow("with_headers2") << QByteArray("HTTP/1.1 100 Continue\nBla: x\n\nHTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n"); } void tst_QNetworkReply::ioGetFromHttpStatus100() { QFETCH(QByteArray, dataToSend); - QFETCH(QNetworkReply::NetworkError, expectedError); MiniHttpServer server(dataToSend); server.doClose = true; @@ -2609,7 +2607,7 @@ void tst_QNetworkReply::ioGetFromHttpStatus100() QVERIFY(!QTestEventLoop::instance().timeout()); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), expectedError); + QCOMPARE(reply->error(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); QVERIFY(reply->rawHeader("bla").isNull()); } @@ -2617,14 +2615,12 @@ void tst_QNetworkReply::ioGetFromHttpStatus100() void tst_QNetworkReply::ioGetFromHttpNoHeaders_data() { QTest::addColumn("dataToSend"); - QTest::addColumn("expectedError"); - QTest::newRow("justStatus+noheaders+disconnect") << QByteArray("HTTP/1.0 200 OK\r\n\r\n") << QNetworkReply::RemoteHostClosedError; + QTest::newRow("justStatus+noheaders+disconnect") << QByteArray("HTTP/1.0 200 OK\r\n\r\n"); } void tst_QNetworkReply::ioGetFromHttpNoHeaders() { QFETCH(QByteArray, dataToSend); - QFETCH(QNetworkReply::NetworkError, expectedError); MiniHttpServer server(dataToSend); server.doClose = true; @@ -2636,7 +2632,7 @@ void tst_QNetworkReply::ioGetFromHttpNoHeaders() QVERIFY(!QTestEventLoop::instance().timeout()); QCOMPARE(reply->url(), request.url()); - QCOMPARE(reply->error(), expectedError); + QCOMPARE(reply->error(), QNetworkReply::NoError); QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); } -- cgit v0.12 From 2371b6570ee4fa6296bb05e577c160bbab92e0b1 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Fri, 7 Jan 2011 11:41:19 +0100 Subject: tst_qnetworkreply: Add EXPECT_FAIL for ioGetFromBuiltinHttp Reviewed-by: Peter Hartmann --- tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index cff0ae9..5ac34ad 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -3795,6 +3795,8 @@ void tst_QNetworkReply::ioGetFromBuiltinHttp() const int maxRate = rate * 1024 * (100+allowedDeviation) / 100; qDebug() << minRate << "<="<< server.transferRate << "<=" << maxRate << "?"; QVERIFY(server.transferRate >= minRate); + QEXPECT_FAIL("http+limited", "Limiting is broken right now", Continue); + QEXPECT_FAIL("https+limited", "Limiting is broken right now", Continue); QVERIFY(server.transferRate <= maxRate); } } -- cgit v0.12 From 67267842ce658d956f11d52194566b6de1f84f9a Mon Sep 17 00:00:00 2001 From: Sergio Ahumada Date: Fri, 7 Jan 2011 12:37:12 +0100 Subject: Doc: Fixing typo --- src/gui/painting/qdrawhelper_ssse3.cpp | 2 +- src/gui/painting/qdrawingprimitive_sse2_p.h | 4 ++-- src/gui/painting/qpaintengine.cpp | 2 +- src/gui/painting/qpaintengine_raster.cpp | 4 ++-- src/gui/painting/qpainter.cpp | 2 +- src/gui/painting/qprintengine_ps.cpp | 2 +- src/gui/text/qfontengine_p.h | 2 +- src/gui/text/qtextdocument_p.cpp | 2 +- src/gui/text/qtextdocumentlayout.cpp | 2 +- src/gui/text/qtextengine.cpp | 2 +- src/gui/text/qtextlist.cpp | 2 +- src/gui/text/qzip.cpp | 2 +- src/gui/widgets/qabstractscrollarea.cpp | 2 +- src/gui/widgets/qabstractslider.cpp | 2 +- src/gui/widgets/qdatetimeedit.cpp | 2 +- src/gui/widgets/qdockarealayout.cpp | 2 +- src/gui/widgets/qdockarealayout_p.h | 2 +- src/gui/widgets/qdockwidget_p.h | 2 +- src/gui/widgets/qlinecontrol_p.h | 2 +- src/gui/widgets/qscrollarea.cpp | 2 +- src/gui/widgets/qsplitter.cpp | 2 +- 21 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/gui/painting/qdrawhelper_ssse3.cpp b/src/gui/painting/qdrawhelper_ssse3.cpp index fb5602e..01e0ccf 100644 --- a/src/gui/painting/qdrawhelper_ssse3.cpp +++ b/src/gui/painting/qdrawhelper_ssse3.cpp @@ -80,7 +80,7 @@ inline static void blend_pixel(quint32 &dst, const quint32 src) // Basically blend src over dst with the const alpha defined as constAlphaVector. -// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as: +// nullVector, half, one, colorMask are constant across the whole image/texture, and should be defined as: //const __m128i nullVector = _mm_set1_epi32(0); //const __m128i half = _mm_set1_epi16(0x80); //const __m128i one = _mm_set1_epi16(0xff); diff --git a/src/gui/painting/qdrawingprimitive_sse2_p.h b/src/gui/painting/qdrawingprimitive_sse2_p.h index d8f6bf5..a4614ad 100644 --- a/src/gui/painting/qdrawingprimitive_sse2_p.h +++ b/src/gui/painting/qdrawingprimitive_sse2_p.h @@ -129,7 +129,7 @@ QT_BEGIN_NAMESPACE } // Basically blend src over dst with the const alpha defined as constAlphaVector. -// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as: +// nullVector, half, one, colorMask are constant across the whole image/texture, and should be defined as: //const __m128i nullVector = _mm_set1_epi32(0); //const __m128i half = _mm_set1_epi16(0x80); //const __m128i one = _mm_set1_epi16(0xff); @@ -186,7 +186,7 @@ QT_BEGIN_NAMESPACE } // Basically blend src over dst with the const alpha defined as constAlphaVector. -// nullVector, half, one, colorMask are constant accross the whole image/texture, and should be defined as: +// nullVector, half, one, colorMask are constant across the whole image/texture, and should be defined as: //const __m128i nullVector = _mm_set1_epi32(0); //const __m128i half = _mm_set1_epi16(0x80); //const __m128i one = _mm_set1_epi16(0xff); diff --git a/src/gui/painting/qpaintengine.cpp b/src/gui/painting/qpaintengine.cpp index a2d0337..58bba35 100644 --- a/src/gui/painting/qpaintengine.cpp +++ b/src/gui/painting/qpaintengine.cpp @@ -992,7 +992,7 @@ void QPaintEngine::setSystemRect(const QRect &rect) /*! \internal - Retreives the rect for drawing within the backing store. This + Retrieves the rect for drawing within the backing store. This function should ONLY be used by the backing store. */ QRect QPaintEngine::systemRect() const diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index 4d06c9f..a5d647d 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -1815,7 +1815,7 @@ void QRasterPaintEngine::fill(const QVectorPath &path, const QBrush &brush) ensureState(); if (s->flags.tx_noshear) { d->initializeRasterizer(&s->brushData); - // ### Is normalizing really nessesary here? + // ### Is normalizing really necessary here? const qreal *p = path.points(); QRectF r = QRectF(p[0], p[1], p[2] - p[0], p[7] - p[1]).normalized(); if (!r.isEmpty()) { @@ -3193,7 +3193,7 @@ void QRasterPaintEngine::drawGlyphsS60(const QPointF &p, const QTextItemInt &ti) #endif // Q_OS_SYMBIAN && QT_NO_FREETYPE /*! - * Returns true if the rectangle is completly within the current clip + * Returns true if the rectangle is completely within the current clip * state of the paint engine. */ bool QRasterPaintEnginePrivate::isUnclipped_normalized(const QRect &r) const diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index ab9707d..3f6586d 100644 --- a/src/gui/painting/qpainter.cpp +++ b/src/gui/painting/qpainter.cpp @@ -9085,7 +9085,7 @@ void QPainter::drawPixmapFragments(const PixmapFragment *fragments, int fragment QPainter::drawPixmapFragments() function. The variables \a x, \a y, \a width and \a height are used to calculate the target rectangle that is drawn. \a x and \a y denotes the center of the target rectangle. The \a - width and \a heigth in the target rectangle is scaled by the \a scaleX and + width and \a height in the target rectangle is scaled by the \a scaleX and \a scaleY values. The resulting target rectangle is then rotated \a rotation degrees around the \a x, \a y center point. diff --git a/src/gui/painting/qprintengine_ps.cpp b/src/gui/painting/qprintengine_ps.cpp index ca694ae..6fb2db5 100644 --- a/src/gui/painting/qprintengine_ps.cpp +++ b/src/gui/painting/qprintengine_ps.cpp @@ -908,7 +908,7 @@ void QPSPrintEngine::drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, con if (d->clipEnabled && d->allClipped) return; - // ### Optimise implementation! + // ### Optimize implementation! qreal yPos = r.y(); qreal yOff = p.y(); while(yPos < r.y() + r.height()) { diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h index fc26eef..c9dd5bc 100644 --- a/src/gui/text/qfontengine_p.h +++ b/src/gui/text/qfontengine_p.h @@ -180,7 +180,7 @@ public: void addBitmapFontToPath(qreal x, qreal y, const QGlyphLayout &, QPainterPath *, QTextItem::RenderFlags); /** * Create a qimage with the alpha values for the glyph. - * Returns an image indexed_8 with index values ranging from 0=fully transparant to 255=opaque + * Returns an image indexed_8 with index values ranging from 0=fully transparent to 255=opaque */ virtual QImage alphaMapForGlyph(glyph_t); virtual QImage alphaMapForGlyph(glyph_t, const QTransform &t); diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp index 0bdd20d..14d85b7 100644 --- a/src/gui/text/qtextdocument_p.cpp +++ b/src/gui/text/qtextdocument_p.cpp @@ -91,7 +91,7 @@ QT_BEGIN_NAMESPACE END_OF_PARA/START_OF_FRAME/END_OF_FRAME (see below). Lists are not in here, as they are treated specially. A list is just - a collection of (not neccessarily connected) blocks, that share the + a collection of (not necessarily connected) blocks, that share the same objectIndex() in the format that refers to the list format and object. diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index ff14490..a1bea12 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -327,7 +327,7 @@ static inline bool isLineSeparatorBlockAfterTable(const QTextBlock &block, const /* -Optimisation strategies: +Optimization strategies: HTML layout: diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 3bd6122..75dcf57 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -1879,7 +1879,7 @@ void QTextEngine::justify(const QScriptLine &line) if (end == layoutData->string.length()) return; // no justification at end of paragraph if (end && layoutData->items[findItem(end-1)].analysis.flags == QScriptAnalysis::LineOrParagraphSeparator) - return; // no justification at the end of an explicitely separated line + return; // no justification at the end of an explicitly separated line } // justify line diff --git a/src/gui/text/qtextlist.cpp b/src/gui/text/qtextlist.cpp index a0ff520..b66766e 100644 --- a/src/gui/text/qtextlist.cpp +++ b/src/gui/text/qtextlist.cpp @@ -235,7 +235,7 @@ QString QTextList::itemText(const QTextBlock &blockIt) const if (i % 4) { // c[i] == 4|5|9|40|50|90|400|500|900 if ((i-2) % 4) { - // c[i] == 4|9|40|90|400|900 => with substraction (IV, IX, XL, XC, ...) + // c[i] == 4|9|40|90|400|900 => with subtraction (IV, IX, XL, XC, ...) numDigits = 2; } else { diff --git a/src/gui/text/qzip.cpp b/src/gui/text/qzip.cpp index 6f099a9..c449588 100644 --- a/src/gui/text/qzip.cpp +++ b/src/gui/text/qzip.cpp @@ -825,7 +825,7 @@ int QZipReader::count() const /*! Returns a FileInfo of an entry in the zipfile. - The \a index is the index into the directoy listing of the zipfile. + The \a index is the index into the directory listing of the zipfile. Returns an invalid FileInfo if \a index is out of boundaries. \sa fileInfoList() diff --git a/src/gui/widgets/qabstractscrollarea.cpp b/src/gui/widgets/qabstractscrollarea.cpp index 30ce23b..4edbf2d 100644 --- a/src/gui/widgets/qabstractscrollarea.cpp +++ b/src/gui/widgets/qabstractscrollarea.cpp @@ -1012,7 +1012,7 @@ bool QAbstractScrollArea::event(QEvent *e) You can reimplement this function in a subclass, but we recommend using one of the specialized event handlers instead. - Specialised handlers for viewport events are: paintEvent(), + Specialized handlers for viewport events are: paintEvent(), mousePressEvent(), mouseReleaseEvent(), mouseDoubleClickEvent(), mouseMoveEvent(), wheelEvent(), dragEnterEvent(), dragMoveEvent(), dragLeaveEvent(), dropEvent(), contextMenuEvent(), and diff --git a/src/gui/widgets/qabstractslider.cpp b/src/gui/widgets/qabstractslider.cpp index a8b39f4..ee9a861 100644 --- a/src/gui/widgets/qabstractslider.cpp +++ b/src/gui/widgets/qabstractslider.cpp @@ -717,7 +717,7 @@ bool QAbstractSliderPrivate::scrollByDelta(Qt::Orientation orientation, Qt::Keyb offset_accumulated += stepsToScrollF; #ifndef Q_WS_MAC - // Dont't scroll more than one page in any case: + // Don't scroll more than one page in any case: stepsToScroll = qBound(-pageStep, int(offset_accumulated), pageStep); #else // Native UI-elements on Mac can scroll hundreds of lines at a time as diff --git a/src/gui/widgets/qdatetimeedit.cpp b/src/gui/widgets/qdatetimeedit.cpp index 8043747..4d52e38 100644 --- a/src/gui/widgets/qdatetimeedit.cpp +++ b/src/gui/widgets/qdatetimeedit.cpp @@ -902,7 +902,7 @@ void QDateTimeEdit::setDisplayFormat(const QString &format) /*! \property QDateTimeEdit::calendarPopup - \brief the current calender pop-up showing mode. + \brief the current calendar pop-up showing mode. \since 4.2 The calendar pop-up will be shown upon clicking the arrow button. diff --git a/src/gui/widgets/qdockarealayout.cpp b/src/gui/widgets/qdockarealayout.cpp index b540e76..867e5a3 100644 --- a/src/gui/widgets/qdockarealayout.cpp +++ b/src/gui/widgets/qdockarealayout.cpp @@ -3163,7 +3163,7 @@ int QDockAreaLayout::separatorMove(const QList &separator, const QPoint &or } #ifndef QT_NO_TABBAR -// Sets the correct positions for the seperator widgets +// Sets the correct positions for the separator widgets // Allocates new sepearator widgets with getSeparatorWidget void QDockAreaLayout::updateSeparatorWidgets() const { diff --git a/src/gui/widgets/qdockarealayout_p.h b/src/gui/widgets/qdockarealayout_p.h index 9cb77ba..37f3783 100644 --- a/src/gui/widgets/qdockarealayout_p.h +++ b/src/gui/widgets/qdockarealayout_p.h @@ -83,7 +83,7 @@ class QTabBar; // which then has one QDockAreaLayoutInfo as a child. (QDockAreaLayoutItem::subInfo) or // a widgetItem if this is a node of the tree (QDockAreaLayoutItem::widgetItem) // -// A path indetifies uniquely one object in this tree, the first number beeing the side and all the following +// A path indetifies uniquely one object in this tree, the first number being the side and all the following // indexes into the QDockAreaLayoutInfo::item_list. struct QDockAreaLayoutItem diff --git a/src/gui/widgets/qdockwidget_p.h b/src/gui/widgets/qdockwidget_p.h index d272b2c..655e216 100644 --- a/src/gui/widgets/qdockwidget_p.h +++ b/src/gui/widgets/qdockwidget_p.h @@ -169,7 +169,7 @@ private: QRect _titleArea; }; -/* The size hints of a QDockWidget will depend on wether it is docked or not. +/* The size hints of a QDockWidget will depend on whether it is docked or not. This layout item always returns the size hints as if the dock widget was docked. */ class QDockWidgetItem : public QWidgetItem diff --git a/src/gui/widgets/qlinecontrol_p.h b/src/gui/widgets/qlinecontrol_p.h index d881acf..dd8fb97 100644 --- a/src/gui/widgets/qlinecontrol_p.h +++ b/src/gui/widgets/qlinecontrol_p.h @@ -239,7 +239,7 @@ public: #ifndef QT_NO_COMPLETER QCompleter *completer() const { return m_completer; } - /* Note that you must set the widget for the completer seperately */ + /* Note that you must set the widget for the completer separately */ void setCompleter(const QCompleter *c) { m_completer = const_cast(c); } void complete(int key); #endif diff --git a/src/gui/widgets/qscrollarea.cpp b/src/gui/widgets/qscrollarea.cpp index 38e799e..64a0049 100644 --- a/src/gui/widgets/qscrollarea.cpp +++ b/src/gui/widgets/qscrollarea.cpp @@ -121,7 +121,7 @@ QT_BEGIN_NAMESPACE If a scroll area is used to display the contents of a widget that contains child widgets arranged in a layout, it is important to - realise that the size policy of the layout will also determine the + realize that the size policy of the layout will also determine the size of the widget. This is especially useful to know if you intend to dynamically change the contents of the layout. In such cases, setting the layout's \l{QLayout::sizeConstraint}{size constraint} diff --git a/src/gui/widgets/qsplitter.cpp b/src/gui/widgets/qsplitter.cpp index 88b7517..7775f39 100644 --- a/src/gui/widgets/qsplitter.cpp +++ b/src/gui/widgets/qsplitter.cpp @@ -124,7 +124,7 @@ QSplitterHandle::QSplitterHandle(Qt::Orientation orientation, QSplitter *parent) /*! Sets the orientation of the splitter handle to \a orientation. - This is usually propogated from the QSplitter. + This is usually propagated from the QSplitter. \sa QSplitter::setOrientation() */ -- cgit v0.12 From dc11a951d30ce1c668550ab5e7b487f00cca7f1a Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 7 Jan 2011 11:56:33 +0100 Subject: Assistant: Don't tabify "Open Pages" dock widget by default. The user is likely to always want to see it plus one of the others. --- tools/assistant/tools/assistant/mainwindow.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/assistant/tools/assistant/mainwindow.cpp b/tools/assistant/tools/assistant/mainwindow.cpp index d7d01da..d6b9e24 100644 --- a/tools/assistant/tools/assistant/mainwindow.cpp +++ b/tools/assistant/tools/assistant/mainwindow.cpp @@ -106,7 +106,7 @@ MainWindow::MainWindow(CmdLineParser *cmdLine, QWidget *parent) TRACE_OBJ setToolButtonStyle(Qt::ToolButtonFollowStyle); - setDockOptions(ForceTabbedDocks); // Has no effect; Qt bug? + setDockOptions(dockOptions() | AllowNestedDocks); QString collectionFile; if (usesDefaultCollection()) { @@ -218,8 +218,7 @@ MainWindow::MainWindow(CmdLineParser *cmdLine, QWidget *parent) } else { tabifyDockWidget(contentDock, indexDock); tabifyDockWidget(indexDock, bookmarkDock); - tabifyDockWidget(bookmarkDock, openPagesDock); - tabifyDockWidget(openPagesDock, searchDock); + tabifyDockWidget(bookmarkDock, searchDock); contentDock->raise(); const QRect screen = QApplication::desktop()->screenGeometry(); resize(4*screen.width()/5, 4*screen.height()/5); -- cgit v0.12 From 9fd43b8bc40e3b7657dc7eba2dccff95f0d0077a Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 7 Jan 2011 14:03:52 +0100 Subject: Assistant: Fix warnings. --- .../tools/assistant/bookmarkfiltermodel.cpp | 37 +++++++++++----------- tools/assistant/tools/assistant/mainwindow.cpp | 5 +-- 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/tools/assistant/tools/assistant/bookmarkfiltermodel.cpp b/tools/assistant/tools/assistant/bookmarkfiltermodel.cpp index fe510a5..d60e537 100644 --- a/tools/assistant/tools/assistant/bookmarkfiltermodel.cpp +++ b/tools/assistant/tools/assistant/bookmarkfiltermodel.cpp @@ -54,25 +54,24 @@ void BookmarkFilterModel::setSourceModel(QAbstractItemModel *_sourceModel) { beginResetModel(); - disconnect(sourceModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)), this, - SLOT(changed(QModelIndex, QModelIndex))); - - disconnect(sourceModel, SIGNAL(rowsInserted(QModelIndex, int, int)), - this, SLOT(rowsInserted(QModelIndex, int, int))); - - disconnect(sourceModel, SIGNAL(rowsAboutToBeRemoved(QModelIndex, int, int)), - this, SLOT(rowsAboutToBeRemoved(QModelIndex, int, int))); - disconnect(sourceModel, SIGNAL(rowsRemoved(QModelIndex, int, int)), this, - SLOT(rowsRemoved(QModelIndex, int, int))); - - disconnect(sourceModel, SIGNAL(layoutAboutToBeChanged()), this, - SLOT(layoutAboutToBeChanged())); - disconnect(sourceModel, SIGNAL(layoutChanged()), this, - SLOT(layoutChanged())); - - disconnect(sourceModel, SIGNAL(modelAboutToBeReset()), this, - SLOT(modelAboutToBeReset())); - disconnect(sourceModel, SIGNAL(modelReset()), this, SLOT(modelReset())); + if (sourceModel) { + disconnect(sourceModel, SIGNAL(dataChanged(QModelIndex, QModelIndex)), + this, SLOT(changed(QModelIndex, QModelIndex))); + disconnect(sourceModel, SIGNAL(rowsInserted(QModelIndex, int, int)), + this, SLOT(rowsInserted(QModelIndex, int, int))); + disconnect(sourceModel, + SIGNAL(rowsAboutToBeRemoved(QModelIndex, int, int)), this, + SLOT(rowsAboutToBeRemoved(QModelIndex, int, int))); + disconnect(sourceModel, SIGNAL(rowsRemoved(QModelIndex, int, int)), + this, SLOT(rowsRemoved(QModelIndex, int, int))); + disconnect(sourceModel, SIGNAL(layoutAboutToBeChanged()), this, + SLOT(layoutAboutToBeChanged())); + disconnect(sourceModel, SIGNAL(layoutChanged()), this, + SLOT(layoutChanged())); + disconnect(sourceModel, SIGNAL(modelAboutToBeReset()), this, + SLOT(modelAboutToBeReset())); + disconnect(sourceModel, SIGNAL(modelReset()), this, SLOT(modelReset())); + } QAbstractProxyModel::setSourceModel(sourceModel); sourceModel = qobject_cast (_sourceModel); diff --git a/tools/assistant/tools/assistant/mainwindow.cpp b/tools/assistant/tools/assistant/mainwindow.cpp index d6b9e24..7852104 100644 --- a/tools/assistant/tools/assistant/mainwindow.cpp +++ b/tools/assistant/tools/assistant/mainwindow.cpp @@ -199,6 +199,7 @@ MainWindow::MainWindow(CmdLineParser *cmdLine, QWidget *parent) } QToolBar *toolBar = addToolBar(tr("Bookmark Toolbar")); + toolBar->setObjectName(QLatin1String("Bookmark Toolbar")); bookMarkManager->setBookmarksToolbar(toolBar); // Show the widget here, otherwise the restore geometry and state won't work @@ -459,10 +460,6 @@ void MainWindow::setupActions() menu->addAction(globalActions->printAction()); menu->addSeparator(); - m_closeTabAction = menu->addAction(tr("&Close Tab"), m_centralWidget, - SLOT(closeTab())); - m_closeTabAction->setShortcuts(QKeySequence::Close); - QIcon appExitIcon = QIcon::fromTheme("application-exit"); QAction *tmp; #ifdef Q_OS_WIN -- cgit v0.12 From 8ffb49a4ac68b1c243b25343053e6e99f97ec2e7 Mon Sep 17 00:00:00 2001 From: Yoann Lopes Date: Fri, 7 Jan 2011 14:29:38 +0100 Subject: Fixes crash in QGraphicsItem's destructor. Crash introduced by 783a278f243c6411f5f32d11f2165b9eed9b6f8c. Autotest written by Niklas Kurkisuo Task-number: QTBUG-16374 Reviewed-by: TrustMe --- src/gui/graphicsview/qgraphicsitem.cpp | 4 +- tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 53 ++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 94e1a72..e52c970 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -5589,9 +5589,11 @@ void QGraphicsItemPrivate::clearSubFocus(QGraphicsItem *rootItem, QGraphicsItem // Reset sub focus chain. QGraphicsItem *parent = rootItem ? rootItem : q_ptr; do { - if (parent->d_ptr->subFocusItem != q_ptr || parent == stopItem) + if (parent->d_ptr->subFocusItem != q_ptr) break; parent->d_ptr->subFocusItem = 0; + if (parent == stopItem) + break; parent->d_ptr->subFocusItemChange(); } while (!parent->isPanel() && (parent = parent->d_ptr->parent)); } diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index 0b29410..5daafd8 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -65,6 +65,7 @@ #include #include #include +#include #include "../../shared/util.h" @@ -469,6 +470,7 @@ private slots: void itemDiesDuringDraggingOperation(); void QTBUG_12112_focusItem(); void QTBUG_13473_sceneposchange(); + void QTBUG_16374_crashInDestructor(); private: QList paintedItems; @@ -11077,5 +11079,56 @@ void tst_QGraphicsItem::QTBUG_13473_sceneposchange() QCOMPARE(child->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 2); } +class MyGraphicsWidget : public QGraphicsWidget { +Q_OBJECT +public: + MyGraphicsWidget() + : QGraphicsWidget(0) + { + QGraphicsLinearLayout *lay = new QGraphicsLinearLayout(Qt::Vertical); + QLatin1String wiseWords("AZ BUKI VEDI"); + QString sentence(wiseWords); + QStringList words = sentence.split(QLatin1Char(' '), QString::SkipEmptyParts); + for (int i = 0; i < words.count(); ++i) { + QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget(this); + QLabel *label = new QLabel(words.at(i)); + proxy->setWidget(label); + proxy->setFocusPolicy(Qt::StrongFocus); + proxy->setFlag(QGraphicsItem::ItemAcceptsInputMethod, true); + if (i%2 == 0) + proxy->setVisible(false); + proxy->setFocus(); + lay->addItem(proxy); + } + setLayout(lay); + } + +}; + +class MyWidgetWindow : public QGraphicsWidget +{ +public: + MyWidgetWindow() + : QGraphicsWidget(0, Qt::Window) + { + QGraphicsLinearLayout *lay = new QGraphicsLinearLayout(Qt::Vertical); + MyGraphicsWidget *widget = new MyGraphicsWidget(); + lay->addItem(widget); + setLayout(lay); + } +}; + +void tst_QGraphicsItem::QTBUG_16374_crashInDestructor() +{ + QGraphicsScene scene; + QGraphicsView view(&scene); + + MyWidgetWindow win; + scene.addItem(&win); + + view.show(); + QTest::qWaitForWindowShown(&view); +} + QTEST_MAIN(tst_QGraphicsItem) #include "tst_qgraphicsitem.moc" -- cgit v0.12 From 362a61cd821144141324d99cdbaf1ddd858076d9 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Fri, 7 Jan 2011 16:17:13 +0100 Subject: fix build with QT_NO_BEARERMANAGEMENT start() is only defined when using bearer management; that method calls open(), which we just call directly if not using bearer. Reviewed-by: Markus Goetz Task-number: QTBUG-16477 --- src/network/access/qnetworkaccessdatabackend.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/network/access/qnetworkaccessdatabackend.cpp b/src/network/access/qnetworkaccessdatabackend.cpp index 74aebdb..d2db2f2 100644 --- a/src/network/access/qnetworkaccessdatabackend.cpp +++ b/src/network/access/qnetworkaccessdatabackend.cpp @@ -124,7 +124,11 @@ bool QNetworkAccessDataBackend::waitForUpstreamBytesWritten(int) bool QNetworkAccessDataBackend::processRequestSynchronously() { +#ifndef QT_NO_BEARERMANAGEMENT start(); +#else + open(); +#endif return true; } -- cgit v0.12 From 64852122ba71bbb297b4f1e440f6fabee16ca2fe Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Fri, 7 Jan 2011 16:15:25 +0100 Subject: Fix crash in QTextBlock::next()/previous() We should check not just p but also n in next()/previous(), which is what isValid() does. Otherwise n == 0 will cause crash in QFragmentMap. Task-number: QTBUG-16279 Reviewed-by: Eskil --- src/gui/text/qtextobject.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gui/text/qtextobject.cpp b/src/gui/text/qtextobject.cpp index ea2ef2d..4b92379 100644 --- a/src/gui/text/qtextobject.cpp +++ b/src/gui/text/qtextobject.cpp @@ -1488,7 +1488,7 @@ QTextBlock::iterator QTextBlock::end() const */ QTextBlock QTextBlock::next() const { - if (!p) + if (!isValid()) return QTextBlock(); return QTextBlock(p, p->blockMap().next(n)); @@ -1504,7 +1504,7 @@ QTextBlock QTextBlock::next() const */ QTextBlock QTextBlock::previous() const { - if (!p) + if (!isValid()) return QTextBlock(); return QTextBlock(p, p->blockMap().previous(n)); -- cgit v0.12 From 55b0db65877ef5cfb6616f11988c990e2c207bd6 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 7 Jan 2011 16:42:16 +0100 Subject: Examples: Fix compilation with namespace. --- examples/webkit/imageanalyzer/imageanalyzer.h | 6 +++--- examples/webkit/imageanalyzer/mainwindow.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/webkit/imageanalyzer/imageanalyzer.h b/examples/webkit/imageanalyzer/imageanalyzer.h index 1bb25dc..265a0c5 100644 --- a/examples/webkit/imageanalyzer/imageanalyzer.h +++ b/examples/webkit/imageanalyzer/imageanalyzer.h @@ -44,9 +44,9 @@ #include #include -class QNetworkAccessManager; -class QNetworkReply; -class QNetworkDiskCache; +QT_FORWARD_DECLARE_CLASS(QNetworkAccessManager) +QT_FORWARD_DECLARE_CLASS(QNetworkReply) +QT_FORWARD_DECLARE_CLASS(QNetworkDiskCache) //! [ ImageAnalyzer - public interface ] class ImageAnalyzer : public QObject diff --git a/examples/webkit/imageanalyzer/mainwindow.h b/examples/webkit/imageanalyzer/mainwindow.h index 076e586..dac7c56 100644 --- a/examples/webkit/imageanalyzer/mainwindow.h +++ b/examples/webkit/imageanalyzer/mainwindow.h @@ -45,7 +45,7 @@ #include class ImageAnalyzer; -class QNetworkDiskCache; +QT_FORWARD_DECLARE_CLASS(QNetworkDiskCache) class MainWin : public QWebView { -- cgit v0.12 From eab9b566d8e7cd98dd69cbcfc39393192a9e6efa Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Fri, 7 Jan 2011 16:43:46 +0100 Subject: CLucene: Use the right delete operator. Task-number: QTBUG-15787 Task-number: QTBUG-15788 --- tools/assistant/lib/fulltextsearch/qindexwriter.cpp | 2 +- tools/assistant/lib/fulltextsearch/qsort.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/assistant/lib/fulltextsearch/qindexwriter.cpp b/tools/assistant/lib/fulltextsearch/qindexwriter.cpp index 357569c..ee1c2dc 100644 --- a/tools/assistant/lib/fulltextsearch/qindexwriter.cpp +++ b/tools/assistant/lib/fulltextsearch/qindexwriter.cpp @@ -88,7 +88,7 @@ void QCLuceneIndexWriter::addIndexes(const QList &readers) readerArray[i] = (readers.at(i))->d->reader; d->writer->addIndexes(readerArray); - delete readerArray; + delete [] readerArray; } void QCLuceneIndexWriter::addDocument(QCLuceneDocument &doc, diff --git a/tools/assistant/lib/fulltextsearch/qsort.cpp b/tools/assistant/lib/fulltextsearch/qsort.cpp index d9375bf..3263195 100644 --- a/tools/assistant/lib/fulltextsearch/qsort.cpp +++ b/tools/assistant/lib/fulltextsearch/qsort.cpp @@ -84,7 +84,7 @@ void QCLuceneSort::setSort(const QStringList &fieldNames) for (int i = 0; i < fieldNames.count(); ++i) delete [] nameArray[i]; - delete nameArray; + delete [] nameArray; } void QCLuceneSort::setSort(const QString &field, bool reverse) -- cgit v0.12 From 33379f4a8b27ee37321c4e51f0d2f75f0eedd854 Mon Sep 17 00:00:00 2001 From: aavit Date: Fri, 7 Jan 2011 16:47:04 +0100 Subject: Added api for efficient data driven baseline testing --- tests/arthur/common/qbaselinetest.cpp | 133 ++++++++++++++++----- tests/arthur/common/qbaselinetest.h | 13 ++ tests/auto/baselineexample/tst_baselineexample.cpp | 50 +++----- 3 files changed, 133 insertions(+), 63 deletions(-) diff --git a/tests/arthur/common/qbaselinetest.cpp b/tests/arthur/common/qbaselinetest.cpp index e95b510..79241d5 100644 --- a/tests/arthur/common/qbaselinetest.cpp +++ b/tests/arthur/common/qbaselinetest.cpp @@ -44,56 +44,45 @@ namespace QBaselineTest { +BaselineProtocol proto; bool connected = false; bool triedConnecting = false; -BaselineProtocol proto; - -bool checkImage(const QImage& img, const char *name, quint16 checksum, QByteArray *msg, bool *error) -{ - QByteArray itemName; - bool hasName = qstrlen(name); - const char *tag = QTest::currentDataTag(); - if (qstrlen(tag)) { - itemName = tag; - if (hasName) - itemName.append('_').append(name); - } else { - itemName = hasName ? name : "default_name"; - } +QByteArray curFunction; +ImageItemList itemList; +bool gotBaselines; - *msg = "Baseline check of image '" + itemName + "': "; +bool connect(QByteArray *msg, bool *error) +{ if (!triedConnecting) { triedConnecting = true; if (!proto.connect(QTest::testObject()->metaObject()->className())) { *msg += "Failed to connect to baseline server: " + proto.errorMessage().toLatin1(); *error = true; - return true; + return false; } connected = true; } if (!connected) { *msg = "Not connected to baseline server."; *error = true; - return true; + return false; } + return true; +} - ImageItem item; - item.itemName = QLatin1String(itemName); - item.itemChecksum = checksum; - item.testFunction = QLatin1String(QTest::currentTestFunction()); - ImageItemList list; - list.append(item); - if (!proto.requestBaselineChecksums(QLatin1String(QTest::currentTestFunction()), &list) || list.isEmpty()) { - *msg = "Communication with baseline server failed: " + proto.errorMessage().toLatin1(); - *error = true; - return true; - } + +bool compareItem(const ImageItem &baseline, const QImage &img, QByteArray *msg, bool *error) +{ + ImageItem item = baseline; item.image = img; + item.imageChecksums.clear(); item.imageChecksums.prepend(ImageItem::computeChecksum(img)); QByteArray srvMsg; - switch (list.at(0).status) { + switch (baseline.status) { + case ImageItem::Ok: + break; case ImageItem::IgnoreItem : qDebug() << msg->constData() << "Ignored, blacklisted on server."; return true; @@ -105,8 +94,6 @@ bool checkImage(const QImage& img, const char *name, quint16 checksum, QByteArra qDebug() << msg->constData() << "Baseline not found on server. Uploading of new baseline failed:" << srvMsg; return true; break; - case ImageItem::Ok: - break; default: qWarning() << "Unexpected reply from baseline server."; return true; @@ -114,11 +101,93 @@ bool checkImage(const QImage& img, const char *name, quint16 checksum, QByteArra } *error = false; // The actual comparison of the given image with the baseline: - if (list.at(0).imageChecksums.contains(item.imageChecksums.at(0))) + if (baseline.imageChecksums.contains(item.imageChecksums.at(0))) return true; proto.submitMismatch(item, &srvMsg); *msg += "Mismatch. See report:\n " + srvMsg; return false; } +bool checkImage(const QImage &img, const char *name, quint16 checksum, QByteArray *msg, bool *error) +{ + if (!connected && !connect(msg, error)) + return true; + + QByteArray itemName; + bool hasName = qstrlen(name); + const char *tag = QTest::currentDataTag(); + if (qstrlen(tag)) { + itemName = tag; + if (hasName) + itemName.append('_').append(name); + } else { + itemName = hasName ? name : "default_name"; + } + + *msg = "Baseline check of image '" + itemName + "': "; + + + ImageItem item; + item.itemName = QString::fromLatin1(itemName); + item.itemChecksum = checksum; + item.testFunction = QString::fromLatin1(QTest::currentTestFunction()); + ImageItemList list; + list.append(item); + if (!proto.requestBaselineChecksums(QLatin1String(QTest::currentTestFunction()), &list) || list.isEmpty()) { + *msg = "Communication with baseline server failed: " + proto.errorMessage().toLatin1(); + *error = true; + return true; + } + + return compareItem(list.at(0), img, msg, error); +} + + +QTestData &newRow(const char *dataTag, quint16 checksum) +{ + if (QTest::currentTestFunction() != curFunction) { + curFunction = QTest::currentTestFunction(); + itemList.clear(); + gotBaselines = false; + } + ImageItem item; + item.itemName = QString::fromLatin1(dataTag); + item.itemChecksum = checksum; + item.testFunction = QString::fromLatin1(QTest::currentTestFunction()); + itemList.append(item); + + return QTest::newRow(dataTag); +} + + +bool testImage(const QImage& img, QByteArray *msg, bool *error) +{ + if (!connected && !connect(msg, error)) + return true; + + if (QTest::currentTestFunction() != curFunction || itemList.isEmpty()) { + qWarning() << "Usage error: QBASELINE_TEST used without corresponding QBaselineTest::newRow()"; + return true; + } + + if (!gotBaselines) { + if (!proto.requestBaselineChecksums(QString::fromLatin1(QTest::currentTestFunction()), &itemList) || itemList.isEmpty()) { + *msg = "Communication with baseline server failed: " + proto.errorMessage().toLatin1(); + *error = true; + return true; + } + gotBaselines = true; + } + + QString curTag = QString::fromLatin1(QTest::currentDataTag()); + ImageItemList::const_iterator it = itemList.constBegin(); + while (it != itemList.constEnd() && it->itemName != curTag) + ++it; + if (it == itemList.constEnd()) { + qWarning() << "Usage error: QBASELINE_TEST used without corresponding QBaselineTest::newRow() for row" << curTag; + return true; + } + return compareItem(*it, img, msg, error); +} + } diff --git a/tests/arthur/common/qbaselinetest.h b/tests/arthur/common/qbaselinetest.h index 3445c72..e27cda2 100644 --- a/tests/arthur/common/qbaselinetest.h +++ b/tests/arthur/common/qbaselinetest.h @@ -46,6 +46,8 @@ namespace QBaselineTest { bool checkImage(const QImage& img, const char *name, quint16 checksum, QByteArray *msg, bool *error); +bool testImage(const QImage& img, QByteArray *msg, bool *error); +QTestData &newRow(const char *dataTag, quint16 checksum = 0); } #define QBASELINE_CHECK_SUM(image, name, checksum)\ @@ -61,4 +63,15 @@ do {\ #define QBASELINE_CHECK(image, name) QBASELINE_CHECK_SUM(image, name, 0) +#define QBASELINE_TEST(image)\ +do {\ + QByteArray _msg;\ + bool _err = false;\ + if (!QBaselineTest::testImage((image), &_msg, &_err)) {\ + QFAIL(_msg.constData());\ + } else if (_err) {\ + QSKIP(_msg.constData(), SkipSingle);\ + }\ +} while (0) + #endif // BASELINETEST_H diff --git a/tests/auto/baselineexample/tst_baselineexample.cpp b/tests/auto/baselineexample/tst_baselineexample.cpp index 28cbec5..b97cc63 100644 --- a/tests/auto/baselineexample/tst_baselineexample.cpp +++ b/tests/auto/baselineexample/tst_baselineexample.cpp @@ -54,10 +54,8 @@ private Q_SLOTS: void testMultipleImages(); void testDataDriven_data(); void testDataDriven(); - void testDataDrivenMultiple_data(); - void testDataDrivenMultiple(); - void testChecksum_data(); - void testChecksum(); + void testDataDrivenChecksum_data(); + void testDataDrivenChecksum(); }; @@ -98,9 +96,11 @@ void tst_BaselineExample::testMultipleImages() void tst_BaselineExample::testDataDriven_data() { QTest::addColumn("label"); - QTest::newRow("short") << "Ok!"; - QTest::newRow("long") << "A really long button text that just does not seem to end"; - QTest::newRow("empty") << ""; + QBaselineTest::newRow("short") << "Ok!"; + QBaselineTest::newRow("long") << "A really long button text that just does not seem to end"; + QBaselineTest::newRow("empty") << ""; + QBaselineTest::newRow("signs") << "!@#$%^&*()_"; + QBaselineTest::newRow("html") << "BOLD"; } @@ -111,45 +111,33 @@ void tst_BaselineExample::testDataDriven() b.resize(100, 50); b.show(); QTest::qWaitForWindowShown(&b); - QBASELINE_CHECK(QPixmap::grabWidget(&b).toImage(), 0); + QBASELINE_TEST(QPixmap::grabWidget(&b).toImage()); } -void tst_BaselineExample::testDataDrivenMultiple_data() +void tst_BaselineExample::testDataDrivenChecksum_data() { - testDataDriven_data(); -} - - -void tst_BaselineExample::testDataDrivenMultiple() -{ - QFETCH(QString, label); - QPushButton b(label); - b.resize(100, 50); - b.show(); - QTest::qWaitForWindowShown(&b); - QBASELINE_CHECK(QPixmap::grabWidget(&b).toImage(), "normal"); - - b.setText(label.prepend('&')); - QTest::qWait(50); - QBASELINE_CHECK(QPixmap::grabWidget(&b).toImage(), "shortcut"); -} + QTest::addColumn("label"); + const int numItems = 5; + const char *tags[numItems] = {"short", "long", "empty", "signs", "html"}; + const char *labels[numItems] = {"Ok!", "A really long button text that just does not seem to end", "", "!@#$%^&*()_", "BOLD"}; -void tst_BaselineExample::testChecksum_data() -{ - testDataDriven_data(); + for (int i = 0; i Date: Wed, 5 Jan 2011 15:24:50 +0100 Subject: Check elapsed time only once Task-number: QTBUG-16262 Reviewed-by: Bradley T. Hughes --- src/corelib/thread/qsemaphore.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/corelib/thread/qsemaphore.cpp b/src/corelib/thread/qsemaphore.cpp index 8e8a88a..15f45b6 100644 --- a/src/corelib/thread/qsemaphore.cpp +++ b/src/corelib/thread/qsemaphore.cpp @@ -223,8 +223,9 @@ bool QSemaphore::tryAcquire(int n, int timeout) QElapsedTimer timer; timer.start(); while (n > d->avail) { - if (timer.hasExpired(timeout) - || !d->cond.wait(locker.mutex(), timeout - timer.elapsed())) + const qint64 elapsed = timer.elapsed(); + if (timeout - elapsed > 0 + || !d->cond.wait(locker.mutex(), timeout - elapsed)) return false; } } -- cgit v0.12 From 1638129ccbe9680a41859dc48d063a63ae103b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Thu, 6 Jan 2011 17:16:20 +0100 Subject: Fix compilation error on Solaris d_type in dirent is a non-standard extension to POSIX available on some platforms (namely BSDs, Mac, Linux, Symbian). Taking the conservative approach and using this information only on platforms known to support it. Reviewed-by: Shane Kearns --- src/corelib/io/qfilesystemengine.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/corelib/io/qfilesystemengine.cpp b/src/corelib/io/qfilesystemengine.cpp index d9d802e..9446ebb 100644 --- a/src/corelib/io/qfilesystemengine.cpp +++ b/src/corelib/io/qfilesystemengine.cpp @@ -289,6 +289,9 @@ void QFileSystemMetaData::fillFromStatBuf(const QT_STATBUF &statBuffer) void QFileSystemMetaData::fillFromDirEnt(const QT_DIRENT &entry) { +#if defined(_DIRENT_HAVE_D_TYPE) || defined(Q_OS_BSD4) || defined(Q_OS_SYMBIAN) + // BSD4 includes Mac OS X + // ### This will clear all entry flags and knownFlagsMask switch (entry.d_type) { @@ -344,6 +347,9 @@ void QFileSystemMetaData::fillFromDirEnt(const QT_DIRENT &entry) default: clear(); } +#else + Q_UNUSED(entry) +#endif } #endif -- cgit v0.12 From 6e3ae781a7bd3b5ae2143ef60f969d89663508e3 Mon Sep 17 00:00:00 2001 From: miniak Date: Fri, 7 Jan 2011 19:16:33 +0100 Subject: Add /DYNAMICBASE /NXCOMPAT to linker options in Visual Studio 2005 and higher Native Win32 C++ projects created in Visual Studio have this enabled in the default configuration in order to increase security. Merge-request: 2539 Reviewed-by: Oswald Buddenhagen --- mkspecs/win32-msvc2005/qmake.conf | 2 +- mkspecs/win32-msvc2008/qmake.conf | 2 +- mkspecs/win32-msvc2010/qmake.conf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mkspecs/win32-msvc2005/qmake.conf b/mkspecs/win32-msvc2005/qmake.conf index 0c79561..63bef80 100644 --- a/mkspecs/win32-msvc2005/qmake.conf +++ b/mkspecs/win32-msvc2005/qmake.conf @@ -53,7 +53,7 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $< QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<< QMAKE_LINK = link -QMAKE_LFLAGS = /NOLOGO \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" +QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF QMAKE_LFLAGS_DEBUG = /DEBUG diff --git a/mkspecs/win32-msvc2008/qmake.conf b/mkspecs/win32-msvc2008/qmake.conf index 24a0486..9f9c919 100644 --- a/mkspecs/win32-msvc2008/qmake.conf +++ b/mkspecs/win32-msvc2008/qmake.conf @@ -55,7 +55,7 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $< QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<< QMAKE_LINK = link -QMAKE_LFLAGS = /NOLOGO \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" +QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF QMAKE_LFLAGS_DEBUG = /DEBUG diff --git a/mkspecs/win32-msvc2010/qmake.conf b/mkspecs/win32-msvc2010/qmake.conf index c08a74d..9471034 100644 --- a/mkspecs/win32-msvc2010/qmake.conf +++ b/mkspecs/win32-msvc2010/qmake.conf @@ -55,7 +55,7 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ $< QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<< QMAKE_LINK = link -QMAKE_LFLAGS = /NOLOGO \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" +QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\" QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF QMAKE_LFLAGS_DEBUG = /DEBUG -- cgit v0.12 From 272a144ed06a4c11e058404f872609f0b43b4dd6 Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Fri, 31 Dec 2010 11:44:38 +1000 Subject: tst_networkselftest: add checks for echo, daytime --- tests/auto/networkselftest/tst_networkselftest.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/auto/networkselftest/tst_networkselftest.cpp b/tests/auto/networkselftest/tst_networkselftest.cpp index 5e9c50e..90387d0 100644 --- a/tests/auto/networkselftest/tst_networkselftest.cpp +++ b/tests/auto/networkselftest/tst_networkselftest.cpp @@ -398,6 +398,8 @@ void tst_NetworkSelfTest::serverReachability() void tst_NetworkSelfTest::remotePortsOpen_data() { QTest::addColumn("portNumber"); + QTest::newRow("echo") << 7; + QTest::newRow("daytime") << 13; QTest::newRow("ftp") << 21; QTest::newRow("ssh") << 22; QTest::newRow("imap") << 143; -- cgit v0.12 From e6286c54bd66c2db06687127fea69fcc398ffbde Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Tue, 4 Jan 2011 14:30:19 +1000 Subject: Remove garbage empty test. --- tests/auto/gui.pro | 1 - tests/auto/qtwidgets/.gitignore | 1 - tests/auto/qtwidgets/advanced.ui | 319 --------- tests/auto/qtwidgets/icons/big.png | Bin 1323 -> 0 bytes tests/auto/qtwidgets/icons/folder.png | Bin 4069 -> 0 bytes tests/auto/qtwidgets/icons/icon.bmp | Bin 246 -> 0 bytes tests/auto/qtwidgets/icons/icon.png | Bin 344 -> 0 bytes tests/auto/qtwidgets/mainwindow.cpp | 314 --------- tests/auto/qtwidgets/mainwindow.h | 80 --- tests/auto/qtwidgets/qtstyles.qrc | 8 - tests/auto/qtwidgets/qtwidgets.pro | 10 - tests/auto/qtwidgets/standard.ui | 1207 -------------------------------- tests/auto/qtwidgets/system.ui | 658 ----------------- tests/auto/qtwidgets/tst_qtwidgets.cpp | 112 --- 14 files changed, 2710 deletions(-) delete mode 100644 tests/auto/qtwidgets/.gitignore delete mode 100644 tests/auto/qtwidgets/advanced.ui delete mode 100644 tests/auto/qtwidgets/icons/big.png delete mode 100644 tests/auto/qtwidgets/icons/folder.png delete mode 100644 tests/auto/qtwidgets/icons/icon.bmp delete mode 100644 tests/auto/qtwidgets/icons/icon.png delete mode 100644 tests/auto/qtwidgets/mainwindow.cpp delete mode 100644 tests/auto/qtwidgets/mainwindow.h delete mode 100644 tests/auto/qtwidgets/qtstyles.qrc delete mode 100644 tests/auto/qtwidgets/qtwidgets.pro delete mode 100644 tests/auto/qtwidgets/standard.ui delete mode 100644 tests/auto/qtwidgets/system.ui delete mode 100644 tests/auto/qtwidgets/tst_qtwidgets.cpp diff --git a/tests/auto/gui.pro b/tests/auto/gui.pro index 2d9ea93..802e74a 100644 --- a/tests/auto/gui.pro +++ b/tests/auto/gui.pro @@ -197,7 +197,6 @@ SUBDIRS=\ qtreeview \ qtreewidget \ qtreewidgetitemiterator \ - qtwidgets \ qudpsocket \ qundogroup \ qundostack \ diff --git a/tests/auto/qtwidgets/.gitignore b/tests/auto/qtwidgets/.gitignore deleted file mode 100644 index d8e55c3..0000000 --- a/tests/auto/qtwidgets/.gitignore +++ /dev/null @@ -1 +0,0 @@ -tst_qtwidgets diff --git a/tests/auto/qtwidgets/advanced.ui b/tests/auto/qtwidgets/advanced.ui deleted file mode 100644 index ce27374..0000000 --- a/tests/auto/qtwidgets/advanced.ui +++ /dev/null @@ -1,319 +0,0 @@ - - - - - Advanced - - - Advanced - - - - 0 - 0 - 400 - 300 - - - - - - - - 9 - - - 6 - - - - - - - - 1 - - - 6 - - - - - pushButton - - - - 1 - 1 - 80 - 23 - - - - - - - - - - - pushButton_2 - - - - 87 - 1 - 80 - 23 - - - - Text - - - - - - - checkBox - - - - 173 - 6 - 23 - 13 - - - - - - - - - - - - - - radioButton - - - - 202 - 6 - 22 - 12 - - - - - - - - - - - - - - checkBox_2 - - - - 230 - 3 - 44 - 18 - - - - Text - - - - - - - radioButton_2 - - - - 280 - 3 - 43 - 18 - - - - Text - - - - - - - - - - - - 1 - - - 6 - - - - - listWidget - - - - 1 - 1 - 186 - 91 - - - - - - - - listWidget_3 - - - - 193 - 96 - 188 - 60 - - - - - - - - treeWidget_2 - - - - 1 - 96 - 186 - 60 - - - - - - - - - - - 1 - - - 6 - - - - - listWidget_2 - - - - 1 - 1 - 186 - 43 - - - - - - - - treeWidget - - - - 1 - 48 - 186 - 43 - - - - - - - - - - - - tabWidget - - - - 9 - 201 - 382 - 90 - - - - - 0 - 90 - - - - QTabWidget::North - - - QTabWidget::Rounded - - - - widget - - - - 0 - 0 - 380 - 63 - - - - Tab Page 1 - - - - - widget - - - - 0 - 0 - 459 - 66 - - - - Tab Page 2 - - - - - - - - - diff --git a/tests/auto/qtwidgets/icons/big.png b/tests/auto/qtwidgets/icons/big.png deleted file mode 100644 index 6032804..0000000 Binary files a/tests/auto/qtwidgets/icons/big.png and /dev/null differ diff --git a/tests/auto/qtwidgets/icons/folder.png b/tests/auto/qtwidgets/icons/folder.png deleted file mode 100644 index 981a25d..0000000 Binary files a/tests/auto/qtwidgets/icons/folder.png and /dev/null differ diff --git a/tests/auto/qtwidgets/icons/icon.bmp b/tests/auto/qtwidgets/icons/icon.bmp deleted file mode 100644 index 196de6a..0000000 Binary files a/tests/auto/qtwidgets/icons/icon.bmp and /dev/null differ diff --git a/tests/auto/qtwidgets/icons/icon.png b/tests/auto/qtwidgets/icons/icon.png deleted file mode 100644 index 8f9c562..0000000 Binary files a/tests/auto/qtwidgets/icons/icon.png and /dev/null differ diff --git a/tests/auto/qtwidgets/mainwindow.cpp b/tests/auto/qtwidgets/mainwindow.cpp deleted file mode 100644 index 341c416..0000000 --- a/tests/auto/qtwidgets/mainwindow.cpp +++ /dev/null @@ -1,314 +0,0 @@ -/**************************************************************************** -** -** 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 "mainwindow.h" -#include -#include - -StyleWidget::StyleWidget(QWidget *parent, Qt::WFlags f) - : QWidget(parent, f) -{ - QHBoxLayout *hbox = new QHBoxLayout(this); - QSplitter *spl = new QSplitter(this); - - // standard widgets - QWidget *leftWidget = new QWidget(this); - m_staWidget.setupUi(leftWidget); - - // advanced/system widgets - QGroupBox *rightWidget = new QGroupBox("Advanced", this); - QVBoxLayout *vbox = new QVBoxLayout(rightWidget); - QWidget *adv = new QWidget(rightWidget); - m_advWidget.setupUi(adv); - QWidget *sys = new QWidget(rightWidget); - m_sysWidget.setupUi(sys); - vbox->addWidget(adv); - vbox->addWidget(sys); - - spl->addWidget(leftWidget); - spl->addWidget(rightWidget); - - hbox->setMargin(4); - hbox->addWidget(spl); - - m_small1 = QIcon(":/icons/icon.bmp"); - m_small2 = QIcon(":/icons/icon.png"); - m_big = QIcon(":/icons/big.png"); - - addComboBoxItems(); - addTreeItems(); - addTreeListItems(); - addListItems(); - addTextEdit(); - setupOtherWidgets(); - setupButtons(); - - foreach(QWidget *w, qFindChildren(parentWidget())) - w->setWhatsThis(w->metaObject()->className()); -} - -StyleWidget::~StyleWidget() -{ - -} - -void StyleWidget::addTextEdit() -{ - m_staWidget.textEdit->setPlainText( - "Some Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text"); - m_staWidget.textEdit_2->setPlainText( - "Some Text, Some Text, Some Text, Some Text, Some Text, Some Text, Some Text, Some Text"); - m_staWidget.textEdit_3->setPlainText( - "Some Text, Some Text, Some Text, Some Text, Some Text, Some Text, Some Text, Some Text" \ - "Some Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text\nSome Text\n"); -} - -void StyleWidget::addComboBoxItems() -{ - m_staWidget.comboBox->addItem("Item 1"); - m_staWidget.comboBox->addItem("Item 2"); - m_staWidget.comboBox->addItem("Item 3"); - m_staWidget.comboBox->addItem("Item 4"); - m_staWidget.comboBox->addItem("Item 5"); -} - -void StyleWidget::addListItems() -{ - m_staWidget.listWidget->addItem("Item 1"); - m_staWidget.listWidget->addItem("Item 2"); - m_staWidget.listWidget->addItem("Item 3"); - m_staWidget.listWidget->addItem("Item 4"); - m_staWidget.listWidget->addItem("Item 5"); - - QListWidgetItem *tmp = new QListWidgetItem("Item 1", m_staWidget.listWidget_2); - tmp->setCheckState(Qt::Checked); - tmp = new QListWidgetItem("Item 2", m_staWidget.listWidget_2); - tmp->setCheckState(Qt::Checked); - tmp = new QListWidgetItem("Item 3", m_staWidget.listWidget_2); - tmp->setCheckState(Qt::Checked); - tmp = new QListWidgetItem("Item 4", m_staWidget.listWidget_2); - tmp->setCheckState(Qt::Checked); - tmp = new QListWidgetItem("Item 5", m_staWidget.listWidget_2); - tmp->setCheckState(Qt::Checked); - - tmp = new QListWidgetItem("Item 1", m_advWidget.listWidget_3); - tmp->setCheckState(Qt::Checked); - tmp->setIcon(m_small1); - tmp = new QListWidgetItem("Item 2", m_advWidget.listWidget_3); - tmp->setCheckState(Qt::Checked); - tmp->setIcon(m_small1); - tmp = new QListWidgetItem("Item 3", m_advWidget.listWidget_3); - tmp->setCheckState(Qt::Checked); - tmp->setIcon(m_small1); - tmp = new QListWidgetItem("Item 4", m_advWidget.listWidget_3); - tmp->setCheckState(Qt::Checked); - tmp->setIcon(m_small1); - tmp = new QListWidgetItem("Item 5", m_advWidget.listWidget_3); - tmp->setCheckState(Qt::Checked); - tmp->setIcon(m_small1); - - m_advWidget.listWidget->setViewMode(QListView::IconMode); - QIcon folder(":/icons/folder.png"); - tmp = new QListWidgetItem("Item 1", m_advWidget.listWidget); - tmp->setIcon(folder); - tmp = new QListWidgetItem("Item 2", m_advWidget.listWidget); - tmp->setIcon(folder); - tmp = new QListWidgetItem("Item 3", m_advWidget.listWidget); - tmp->setIcon(folder); - tmp = new QListWidgetItem("Item 4", m_advWidget.listWidget); - tmp->setIcon(folder); - tmp = new QListWidgetItem("Item 5", m_advWidget.listWidget); - tmp->setIcon(folder); - - tmp = new QListWidgetItem("Item 1", m_advWidget.listWidget_2); - tmp->setIcon(m_small1); - tmp = new QListWidgetItem("Item 2", m_advWidget.listWidget_2); - tmp->setIcon(m_small1); - tmp = new QListWidgetItem("Item 3", m_advWidget.listWidget_2); - tmp->setIcon(m_small1); - tmp = new QListWidgetItem("Item 4", m_advWidget.listWidget_2); - tmp->setIcon(m_small1); - tmp = new QListWidgetItem("Item 5", m_advWidget.listWidget_2); - tmp->setIcon(m_small1); -} - -void StyleWidget::setupOtherWidgets() -{ - m_sysWidget.tableWidget->setRowCount(100); - m_sysWidget.tableWidget->setColumnCount(100); -} - -void StyleWidget::addTreeItems() -{ - //standard tree - m_staWidget.treeWidget_2->setColumnCount(1); - m_staWidget.treeWidget_2->header()->hide(); - - QTreeWidgetItem *tmp; - QTreeWidgetItem *subtmp; - QTreeWidgetItem *root1 = new QTreeWidgetItem(m_staWidget.treeWidget_2); - root1->setText(0, "Root 1"); - QTreeWidgetItem *root2 = new QTreeWidgetItem(m_staWidget.treeWidget_2); - root2->setText(0, "Root 2"); - - for (int i=1; i<=10; ++i) - { - tmp = new QTreeWidgetItem(root1); - tmp->setText(0, QString("Item %1").arg(i)); - for (int j=1; j<=5; ++j) - { - subtmp = new QTreeWidgetItem(tmp); - subtmp->setText(0, QString("Sub Item %1").arg(j)); - } - } - - // standard checked tree - m_staWidget.treeWidget_4->setColumnCount(1); - m_staWidget.treeWidget_4->header()->hide(); - - root1 = new QTreeWidgetItem(m_staWidget.treeWidget_4); - root1->setText(0, "Root 1"); - root1->setCheckState(0, Qt::Checked); - root2 = new QTreeWidgetItem(m_staWidget.treeWidget_4); - root2->setText(0, "Root 2"); - root2->setCheckState(0, Qt::Checked); - - for (int i=1; i<=10; ++i) - { - tmp = new QTreeWidgetItem(root1); - tmp->setText(0, QString("Item %1").arg(i)); - tmp->setCheckState(0, Qt::Checked); - for (int j=1; j<=5; ++j) - { - subtmp = new QTreeWidgetItem(tmp); - subtmp->setText(0, QString("Sub Item %1").arg(j)); - subtmp->setCheckState(0, Qt::Checked); - } - } - - // advanced (images) tree - m_advWidget.treeWidget_2->setColumnCount(1); - m_advWidget.treeWidget_2->header()->hide(); - - root1 = new QTreeWidgetItem(m_advWidget.treeWidget_2); - root1->setText(0, "Root 1"); - root1->setIcon(0, m_small1); - root2 = new QTreeWidgetItem(m_advWidget.treeWidget_2); - root2->setText(0, "Root 2"); - root2->setIcon(0, m_small1); - - for (int i=1; i<=10; ++i) - { - tmp = new QTreeWidgetItem(root1); - tmp->setText(0, QString("Item %1").arg(i)); - tmp->setIcon(0, m_small2); - for (int j=1; j<=5; ++j) - { - subtmp = new QTreeWidgetItem(tmp); - subtmp->setText(0, QString("Sub Item %1").arg(j)); - tmp->setIcon(0, m_small1); - } - } - -} - -void StyleWidget::addTreeListItems() -{ - //standard list - QTreeWidgetItem *tmp; - m_staWidget.treeWidget->setColumnCount(3); - m_staWidget.treeWidget->headerItem()->setText(0, "Col1"); - m_staWidget.treeWidget->headerItem()->setText(1, "Col2"); - m_staWidget.treeWidget->headerItem()->setText(2, "Col3"); - - for (int i=1; i<10; ++i) - { - tmp = new QTreeWidgetItem(m_staWidget.treeWidget); - tmp->setText(0, QString("Item%1").arg(i)); - tmp->setText(1, QString("Item%11").arg(i)); - tmp->setText(2, QString("Item%12").arg(i)); - } - - //standard checked list - m_staWidget.treeWidget_3->setColumnCount(3); - m_staWidget.treeWidget_3->headerItem()->setText(0, "Col1"); - m_staWidget.treeWidget_3->headerItem()->setText(1, "Col2"); - m_staWidget.treeWidget_3->headerItem()->setText(2, "Col3"); - - for (int i=1; i<10; ++i) - { - tmp = new QTreeWidgetItem(m_staWidget.treeWidget_3); - tmp->setText(0, QString("Item%1").arg(i)); - tmp->setCheckState(0, Qt::Checked); - tmp->setText(1, QString("Item%11").arg(i)); - tmp->setText(2, QString("Item%12").arg(i)); - } - - //with images - m_advWidget.treeWidget->setColumnCount(2); - m_advWidget.treeWidget->headerItem()->setText(0, "Col1"); - m_advWidget.treeWidget->headerItem()->setIcon(0, m_small2); - m_advWidget.treeWidget->headerItem()->setText(1, "Col2"); - m_advWidget.treeWidget->headerItem()->setIcon(1, m_small2); - - for (int i=1; i<10; ++i) - { - tmp = new QTreeWidgetItem(m_advWidget.treeWidget); - tmp->setText(0, QString("Item%1").arg(i)); - tmp->setIcon(0, m_small1); - tmp->setText(1, QString("Item%11").arg(i)); - } -} - -void StyleWidget::setupButtons() -{ - m_advWidget.pushButton->setIcon(m_small1); - m_advWidget.pushButton_2->setIcon(m_small1); - m_advWidget.checkBox->setIcon(m_small2); - m_advWidget.checkBox_2->setIcon(m_small2); - m_advWidget.radioButton->setIcon(m_small2); - m_advWidget.radioButton_2->setIcon(m_small2); - - // tab page images - m_advWidget.tabWidget->setTabIcon(0, m_small2); - m_advWidget.tabWidget->setTabIcon(1, m_small2); -} diff --git a/tests/auto/qtwidgets/mainwindow.h b/tests/auto/qtwidgets/mainwindow.h deleted file mode 100644 index 8a4521a..0000000 --- a/tests/auto/qtwidgets/mainwindow.h +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include -#include -#include "ui_standard.h" -#include "ui_advanced.h" -#include "ui_system.h" - -class StyleWidget : public QWidget -{ - Q_OBJECT - -public: - StyleWidget(QWidget *parent = 0, Qt::WFlags f = 0); - ~StyleWidget(); - -public slots: - void onWhatsThis() { QWhatsThis::enterWhatsThisMode(); } - -private: - void addComboBoxItems(); - void addListItems(); - void addTextEdit(); - void setupOtherWidgets(); - void setupButtons(); - void addTreeItems(); - void addTreeListItems(); - - Ui::Standard m_staWidget; - Ui::Advanced m_advWidget; - Ui::System m_sysWidget; - - QIcon m_small1; - QIcon m_small2; - QIcon m_big; -}; - -#endif //MAINWINDOW_H - diff --git a/tests/auto/qtwidgets/qtstyles.qrc b/tests/auto/qtwidgets/qtstyles.qrc deleted file mode 100644 index 772891d..0000000 --- a/tests/auto/qtwidgets/qtstyles.qrc +++ /dev/null @@ -1,8 +0,0 @@ - - - ./icons/icon.png - ./icons/icon.bmp - ./icons/big.png - ./icons/folder.png - - diff --git a/tests/auto/qtwidgets/qtwidgets.pro b/tests/auto/qtwidgets/qtwidgets.pro deleted file mode 100644 index 9c33cd1..0000000 --- a/tests/auto/qtwidgets/qtwidgets.pro +++ /dev/null @@ -1,10 +0,0 @@ -load(qttest_p4) -symbian:TARGET.EPOCHEAPSIZE=0x200000 0xa00000 - -SOURCES += tst_qtwidgets.cpp mainwindow.cpp -HEADERS += mainwindow.h -QT += network -RESOURCES = qtstyles.qrc -FORMS += advanced.ui system.ui standard.ui - - diff --git a/tests/auto/qtwidgets/standard.ui b/tests/auto/qtwidgets/standard.ui deleted file mode 100644 index 9764a66..0000000 --- a/tests/auto/qtwidgets/standard.ui +++ /dev/null @@ -1,1207 +0,0 @@ - - - - - Standard - - - Standard - - - - 0 - 0 - 400 - 300 - - - - - - - - 0 - - - 0 - - - - - groupBox - - - - 0 - 0 - 400 - 300 - - - - Standard - - - - - - - 9 - - - 6 - - - - - - - - 1 - - - 6 - - - - - - - - 1 - - - 6 - - - - - - - - 1 - - - 6 - - - - - checkBox - - - - 1 - 1 - 114 - 3 - - - - Enabled &CheckBox - - - - - - - checkBox_2 - - - false - - - - 121 - 1 - 116 - 3 - - - - Disabled Check&Box - - - - - - - - - - - 243 - 1 - 80 - 3 - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 1 - - - 6 - - - - - comboBox - - - - 1 - 1 - 41 - 3 - - - - - - - - comboBox_2 - - - - 48 - 1 - 41 - 3 - - - - - - - - comboBox_3 - - - false - - - - 95 - 1 - 41 - 3 - - - - - - - - - - - - - 1 - - - 6 - - - - - pushButton - - - - 1 - 1 - 80 - 3 - - - - &Enabled - - - - - - - pushButton_2 - - - false - - - - 87 - 1 - 80 - 3 - - - - Di&sabled - - - - - - - - - - - 173 - 1 - 150 - 3 - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 1 - - - 6 - - - - - label - - - - 1 - 1 - 99 - 3 - - - - QFrame::NoFrame - - - QFrame::Plain - - - Label with some text. - - - Qt::AutoText - - - - - - - label_2 - - - false - - - - 106 - 1 - 139 - 3 - - - - QFrame::NoFrame - - - QFrame::Plain - - - Disabled label with some text. - - - Qt::AutoText - - - - - - - - - - - 251 - 1 - 72 - 3 - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 1 - - - 6 - - - - - lineEdit - - - - 1 - 1 - 135 - 3 - - - - Enabled - - - QLineEdit::Normal - - - - - - - lineEdit_2 - - - false - - - - 142 - 1 - 134 - 3 - - - - Disabled - - - QLineEdit::Normal - - - - - - - spinBox - - - - 282 - 1 - 41 - 3 - - - - QAbstractSpinBox::UpDownArrows - - - - - - - - - - - - 1 - - - 6 - - - - - radioButton - - - - 1 - 1 - 123 - 3 - - - - Enabled RadioButton - - - - - - - radioButton_2 - - - false - - - - 130 - 1 - 125 - 3 - - - - Disabled RadioButton - - - - - - - - - - - 261 - 1 - 62 - 3 - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 1 - - - 6 - - - - - horizontalScrollBar - - - - 1 - 1 - 90 - 3 - - - - - 0 - 0 - 0 - 0 - - - - - 90 - 0 - - - - Qt::Horizontal - - - - - - - horizontalScrollBar_2 - - - - 97 - 1 - 30 - 3 - - - - Qt::Horizontal - - - - - - - - - - - verticalScrollBar - - - - 333 - 1 - 17 - 37 - - - - - 0 - 1 - 0 - 0 - - - - Qt::Vertical - - - - - - - slider - - - - 356 - 1 - 21 - 37 - - - - - 0 - 1 - 0 - 0 - - - - Qt::Vertical - - - QSlider::TicksBelow - - - 0 - - - - - - - - - - - - 1 - - - 6 - - - - - slider_2 - - - - 1 - 6 - 90 - 16 - - - - Qt::Horizontal - - - QSlider::NoTicks - - - - - - - slider_3 - - - - 97 - 3 - 89 - 21 - - - - Qt::Horizontal - - - QSlider::TicksBelow - - - - - - - slider_4 - - - - 192 - 3 - 90 - 21 - - - - Qt::Horizontal - - - QSlider::TicksAbove - - - - - - - slider_5 - - - - 288 - 1 - 89 - 26 - - - - Qt::Horizontal - - - QSlider::TicksBothSides - - - - - - - - - - - - 1 - - - 6 - - - - - textEdit - - - - 1 - 1 - 89 - 37 - - - - QFrame::StyledPanel - - - QFrame::Sunken - - - Qt::ScrollBarAlwaysOn - - - Qt::ScrollBarAlwaysOff - - - - - - - textEdit_2 - - - - 96 - 1 - 90 - 37 - - - - QFrame::StyledPanel - - - QFrame::Sunken - - - Qt::ScrollBarAlwaysOff - - - Qt::ScrollBarAlwaysOn - - - - - - - textEdit_3 - - - - 192 - 1 - 89 - 100 - - - - - 0 - 100 - - - - QFrame::StyledPanel - - - QFrame::Sunken - - - Qt::ScrollBarAlwaysOn - - - Qt::ScrollBarAlwaysOn - - - - - - - textEdit_4 - - - - 287 - 1 - 90 - 37 - - - - QFrame::StyledPanel - - - QFrame::Sunken - - - Qt::ScrollBarAsNeeded - - - Qt::ScrollBarAsNeeded - - - - - - - - - groupBox_2 - - - - 11 - 132 - 378 - 39 - - - - GroupBox - - - - - - - 9 - - - 6 - - - - - progressBar - - - - 11 - 20 - 356 - 8 - - - - 50 - - - false - - - - - - - - - - - - - 1 - - - 6 - - - - - listWidget - - - - 1 - 1 - 107 - 37 - - - - - - - - listWidget_2 - - - - 114 - 1 - 107 - 37 - - - - - - - - tabWidget - - - - 227 - 1 - 150 - 37 - - - - - 150 - 0 - - - - QTabWidget::North - - - QTabWidget::Rounded - - - - - - - - 0 - 0 - 148 - 10 - - - - Tab Page 1 - - - - - - - - - 0 - 0 - 116 - 56 - - - - Tab Page 2 - - - - - widget - - - - 0 - 0 - 116 - 56 - - - - Tab Page 3 - - - - - widget - - - - 0 - 0 - 146 - 36 - - - - Tab Page 4 - - - - - - - - - - tabWidget_2 - - - - 11 - 214 - 378 - 90 - - - - - 0 - 90 - - - - QTabWidget::North - - - QTabWidget::Rounded - - - - widget - - - - 0 - 0 - 376 - 63 - - - - Tab Page 1 - - - - - widget - - - - 0 - 0 - 424 - 66 - - - - Tab Page 2 - - - - - - - - - - - 1 - - - 6 - - - - - treeWidget_2 - - - - 192 - 1 - 185 - 18 - - - - - - - - treeWidget_3 - - - - 1 - 20 - 185 - 18 - - - - - - - - treeWidget - - - - 1 - 1 - 185 - 18 - - - - - - - - treeWidget_4 - - - - 192 - 20 - 185 - 18 - - - - - - - - - - - - - - diff --git a/tests/auto/qtwidgets/system.ui b/tests/auto/qtwidgets/system.ui deleted file mode 100644 index a641e0e..0000000 --- a/tests/auto/qtwidgets/system.ui +++ /dev/null @@ -1,658 +0,0 @@ - - - - - System - - - System - - - - 0 - 0 - 400 - 604 - - - - - - - - 9 - - - 6 - - - - - - - - 1 - - - 6 - - - - - toolButton - - - - 340 - 138 - 15 - 19 - - - - ... - - - - - - - horizontalLine - - - - 1 - 146 - 333 - 3 - - - - QFrame::HLine - - - QFrame::Sunken - - - - - - - verticalLine - - - - 361 - 1 - 3 - 131 - - - - QFrame::VLine - - - QFrame::Sunken - - - - - - - - - - 1 - - - 6 - - - - - dateTimeEdit_2 - - - false - - - - 1 - 108 - 113 - 20 - - - - QAbstractSpinBox::UpDownArrows - - - - - - - dateTimeEdit - - - - 1 - 41 - 113 - 20 - - - - QAbstractSpinBox::UpDownArrows - - - - - - - dial - - - - 120 - 1 - 114 - 100 - - - - Qt::Horizontal - - - - - - - lcdNumber - - - - 120 - 107 - 114 - 23 - - - - QFrame::Box - - - QFrame::Raised - - - QLCDNumber::Dec - - - QLCDNumber::Outline - - - - - - - lcdNumber_2 - - - false - - - - 240 - 107 - 113 - 23 - - - - QFrame::Box - - - QFrame::Raised - - - QLCDNumber::Dec - - - QLCDNumber::Outline - - - - - - - dial_2 - - - false - - - - 240 - 1 - 113 - 100 - - - - Qt::Horizontal - - - - - - - - - - - - - - 1 - - - 6 - - - - - tableWidget - - - - 1 - 1 - 256 - 193 - - - - - - - - toolBox - - - - 263 - 1 - 118 - 193 - - - - QFrame::Box - - - QFrame::Plain - - - 0 - - - - widget - - - - 0 - 0 - 98 - 119 - - - - Tool Page 1 - - - - - widget - - - - 0 - 0 - 115 - 56 - - - - Tool Page 2 - - - - - - - - - - tabWidget - - - - 9 - 375 - 382 - 220 - - - - QTabWidget::Rounded - - - - widget - - - - 0 - 0 - 378 - 196 - - - - Tab Page 1 - - - - - - - 9 - - - 6 - - - - - - - - 1 - - - 6 - - - - - comboBox_3 - - - - 1 - 1 - 332 - 20 - - - - - - - - - - - 1 - - - 6 - - - - - pushButton_5 - - - - 1 - 1 - 80 - 23 - - - - &Enabled - - - - - - - pushButton_6 - - - - 87 - 1 - 80 - 23 - - - - Di&sabled - - - - - - - - - - - 173 - 1 - 158 - 23 - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 1 - - - 6 - - - - - radioButton_3 - - - - 1 - 2 - 123 - 18 - - - - Enabled RadioButton - - - - - - - radioButton_4 - - - - 130 - 2 - 125 - 18 - - - - Disabled RadioButton - - - - - - - - - - - 261 - 1 - 70 - 20 - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - progressBar - - - - 1 - 86 - 332 - 22 - - - - 24 - - - - - - - horizontalScrollBar - - - - 1 - 114 - 332 - 17 - - - - Qt::Horizontal - - - - - - - - - verticalScrollBar - - - - 349 - 9 - 17 - 132 - - - - - 0 - 1 - 0 - 0 - - - - Qt::Vertical - - - - - - - - - - - 9 - 147 - 334 - 40 - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - widget - - - - 0 - 0 - 377 - 187 - - - - Tab Page 2 - - - - - - - - - diff --git a/tests/auto/qtwidgets/tst_qtwidgets.cpp b/tests/auto/qtwidgets/tst_qtwidgets.cpp deleted file mode 100644 index 501402b..0000000 --- a/tests/auto/qtwidgets/tst_qtwidgets.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/**************************************************************************** -** -** 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 -#include - -#include - - -#include "mainwindow.h" -#include "../network-settings.h" - -class tst_QtWidgets: public QObject -{ - Q_OBJECT - -public: - tst_QtWidgets(); - virtual ~tst_QtWidgets(); - -private slots: - void snapshot(); -}; - -tst_QtWidgets::tst_QtWidgets() -{ - Q_SET_DEFAULT_IAP -} - -tst_QtWidgets::~tst_QtWidgets() -{ -} - -void tst_QtWidgets::snapshot() -{ - QSKIP("Jesper will fix this test when he has time.", SkipAll); -#if 0 - StyleWidget widget(0, Qt::X11BypassWindowManagerHint); - widget.show(); - - QPixmap pix = QPixmap::grabWidget(&widget); - - QVERIFY(!pix.isNull()); - - QBuffer buf; - pix.save(&buf, "PNG"); - QVERIFY(buf.size() > 0); - - QString filename = "qtwidgets_" + QHostInfo::localHostName() + "_" + QDateTime::currentDateTime().toString("yyyy.MM.dd_hh.mm.ss") + ".png"; - - QFtp ftp; - ftp.connectToHost("qt-test-server.qt-test-net"); - ftp.login("ftptest", "password"); - ftp.cd("qtest/pics"); - ftp.put(buf.data(), filename, QFtp::Binary); - ftp.close(); - - int i = 0; - while (i < 100 && ftp.hasPendingCommands()) { - QCoreApplication::instance()->processEvents(); - QTest::qWait(250); - ++i; - } - QVERIFY2(ftp.error() == QFtp::NoError, ftp.errorString().toLocal8Bit().constData()); - QVERIFY(!ftp.hasPendingCommands()); -#endif -} - - - -QTEST_MAIN(tst_QtWidgets) - -#include "tst_qtwidgets.moc" -- cgit v0.12 From 026a24855ec16626ab101007719a836f5a4e3c47 Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Thu, 6 Jan 2011 13:39:14 +1000 Subject: network tests: make IMAP, FTP testdata more flexible. Move all hardcoded IMAP/FTP fixtures into network-settings.h. Make it work with new and old network test server. Reviewed-by: Markus Goetz Task: QTBUG-15114 --- tests/auto/network-settings.h | 79 ++++++++++++++++---- .../qhttpsocketengine/tst_qhttpsocketengine.cpp | 10 +-- .../tst_qnativesocketengine.cpp | 2 +- .../tst_qsocks5socketengine.cpp | 12 +-- tests/auto/qsslsocket/tst_qsslsocket.cpp | 3 +- tests/auto/qtcpsocket/tst_qtcpsocket.cpp | 87 ++++++++++++++++------ 6 files changed, 142 insertions(+), 51 deletions(-) diff --git a/tests/auto/network-settings.h b/tests/auto/network-settings.h index 6730946..0cb8e3a 100644 --- a/tests/auto/network-settings.h +++ b/tests/auto/network-settings.h @@ -64,6 +64,7 @@ //#define SYMBIAN_WINSOCK_CONNECTIVITY #endif // Q_CC_NOKIAX86 +// FIXME: any reason we do this for symbian only, and not other platforms? class QtNetworkSettingsRecord { public: QtNetworkSettingsRecord() { } @@ -128,7 +129,6 @@ public: static QString wildcardServerName() { return "qt-test-server.wildcard.dev." + serverDomainName(); - //return "qttest.wildcard.dev." + serverDomainName(); } #ifdef QT_NETWORK_LIB @@ -149,8 +149,10 @@ public: } #endif - static QByteArray expectedReplyIMAP() + static bool compareReplyIMAP(QByteArray const& actual) { + QList expected; + #ifdef Q_OS_SYMBIAN loadTestSettings(); @@ -160,17 +162,35 @@ public: imapExpectedReply = entry->recordValue().toAscii(); imapExpectedReply.append('\r').append('\n'); } - return imapExpectedReply.data(); + expected << imapExpectedReply.data(); } #endif - QByteArray expected( "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] " ); - expected = expected.append(QtNetworkSettings::serverName().toAscii()); - expected = expected.append(" Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); - return expected; + + // Mandriva; old test server + expected << QByteArray( "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] " ) + .append(QtNetworkSettings::serverName().toAscii()) + .append(" Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); + + // Ubuntu 10.04; new test server + expected << QByteArray( "* OK " ) + .append(QtNetworkSettings::serverLocalName().toAscii()) + .append(" Cyrus IMAP4 v2.2.13-Debian-2.2.13-19 server ready\r\n"); + + // Feel free to add more as needed + + Q_FOREACH (QByteArray const& ba, expected) { + if (ba == actual) { + return true; + } + } + + return false; } - static QByteArray expectedReplySSL() + static bool compareReplyIMAPSSL(QByteArray const& actual) { + QList expected; + #ifdef Q_OS_SYMBIAN loadTestSettings(); @@ -180,19 +200,46 @@ public: imapExpectedReplySsl = entry->recordValue().toAscii(); imapExpectedReplySsl.append('\r').append('\n'); } - return imapExpectedReplySsl.data(); + expected << imapExpectedReplySsl.data(); } #endif - QByteArray expected( "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID AUTH=PLAIN SASL-IR] " ); - expected = expected.append(QtNetworkSettings::serverName().toAscii()); - expected = expected.append(" Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); - return expected; + // Mandriva; old test server + expected << QByteArray( "* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID AUTH=PLAIN SASL-IR] " ) + .append(QtNetworkSettings::serverName().toAscii()) + .append(" Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); + + // Ubuntu 10.04; new test server + expected << QByteArray( "* OK " ) + .append(QtNetworkSettings::serverLocalName().toAscii()) + .append(" Cyrus IMAP4 v2.2.13-Debian-2.2.13-19 server ready\r\n"); + + // Feel free to add more as needed + + Q_FOREACH (QByteArray const& ba, expected) { + if (ba == actual) { + return true; + } + } + + return false; } - static QByteArray expectedReplyFtp() + static bool compareReplyFtp(QByteArray const& actual) { - QByteArray expected( "220 (vsFTPd 2.0.5)\r\n221 Goodbye.\r\n" ); - return expected; + QList expected; + + // A few different vsFTPd versions. + // Feel free to add more as needed + expected << QByteArray( "220 (vsFTPd 2.0.5)\r\n221 Goodbye.\r\n" ); + expected << QByteArray( "220 (vsFTPd 2.2.2)\r\n221 Goodbye.\r\n" ); + + Q_FOREACH (QByteArray const& ba, expected) { + if (ba == actual) { + return true; + } + } + + return false; } #ifdef Q_OS_SYMBIAN diff --git a/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp b/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp index f86ba63..972185b 100644 --- a/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp +++ b/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp @@ -325,7 +325,7 @@ void tst_QHttpSocketEngine::simpleConnectToIMAP() QVERIFY(socketDevice.read(array.data(), array.size()) == available); // Check that the greeting is what we expect it to be - QCOMPARE(array.constData(), QtNetworkSettings::expectedReplyIMAP().constData()); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(array), array.constData()); // Write a logout message @@ -455,7 +455,7 @@ void tst_QHttpSocketEngine::tcpSocketBlockingTest() // Read greeting QVERIFY(socket.waitForReadyRead(5000)); QString s = socket.readLine(); - QCOMPARE(s.toLatin1().constData(), QtNetworkSettings::expectedReplyIMAP().constData()); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(s.toLatin1()), qPrintable(s)); // Write NOOP QCOMPARE((int) socket.write("1 NOOP\r\n", 8), 8); @@ -530,8 +530,8 @@ void tst_QHttpSocketEngine::tcpSocketNonBlockingTest() // Read greeting QVERIFY(!tcpSocketNonBlocking_data.isEmpty()); - QCOMPARE(tcpSocketNonBlocking_data.at(0).toLatin1().constData(), - QtNetworkSettings::expectedReplyIMAP().constData()); + QByteArray data = tcpSocketNonBlocking_data.at(0).toLatin1(); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(data), data.constData()); tcpSocketNonBlocking_data.clear(); @@ -713,7 +713,7 @@ void tst_QHttpSocketEngine::passwordAuth() QVERIFY(socketDevice.read(array.data(), array.size()) == available); // Check that the greeting is what we expect it to be - QCOMPARE(array.constData(), QtNetworkSettings::expectedReplyIMAP().constData()); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(array), array.constData()); // Write a logout message diff --git a/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp b/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp index 2b0b632..782c2f0 100644 --- a/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp +++ b/tests/auto/qnativesocketengine/tst_qnativesocketengine.cpp @@ -173,7 +173,7 @@ void tst_QNativeSocketEngine::simpleConnectToIMAP() QVERIFY(socketDevice.read(array.data(), array.size()) == available); // Check that the greeting is what we expect it to be - QCOMPARE(array.constData(), QtNetworkSettings::expectedReplyIMAP().constData()); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(array), array.constData()); // Write a logout message QByteArray array2 = "ZZZ LOGOUT\r\n"; diff --git a/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp b/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp index 8f0cbc3..9da7197 100644 --- a/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp +++ b/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp @@ -336,7 +336,7 @@ void tst_QSocks5SocketEngine::simpleConnectToIMAP() QVERIFY(socketDevice.read(array.data(), array.size()) == available); // Check that the greeting is what we expect it to be - QCOMPARE(array.constData(), QtNetworkSettings::expectedReplyIMAP().constData()); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(array), array.constData()); // Write a logout message QByteArray array2 = "XXXX LOGOUT\r\n"; @@ -596,7 +596,7 @@ void tst_QSocks5SocketEngine::tcpSocketBlockingTest() // Read greeting QVERIFY(socket.waitForReadyRead(5000)); QString s = socket.readLine(); - QCOMPARE(s.toLatin1().constData(), QtNetworkSettings::expectedReplyIMAP().constData()); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(s.toLatin1()), s.toLatin1().constData()); // Write NOOP QCOMPARE((int) socket.write("1 NOOP\r\n", 8), 8); @@ -671,8 +671,8 @@ void tst_QSocks5SocketEngine::tcpSocketNonBlockingTest() // Read greeting QVERIFY(!tcpSocketNonBlocking_data.isEmpty()); - QCOMPARE(tcpSocketNonBlocking_data.at(0).toLatin1().constData(), - QtNetworkSettings::expectedReplyIMAP().constData()); + QByteArray data = tcpSocketNonBlocking_data.at(0).toLatin1(); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(data), data.constData()); tcpSocketNonBlocking_data.clear(); @@ -859,7 +859,7 @@ void tst_QSocks5SocketEngine::passwordAuth() QVERIFY(socketDevice.read(array.data(), array.size()) == available); // Check that the greeting is what we expect it to be - QCOMPARE(array.constData(), QtNetworkSettings::expectedReplyIMAP().constData()); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(array), array.constData()); // Write a logout message QByteArray array2 = "XXXX LOGOUT\r\n"; @@ -927,7 +927,7 @@ void tst_QSocks5SocketEngine::passwordAuth2() QVERIFY(socketDevice.read(array.data(), array.size()) == available); // Check that the greeting is what we expect it to be - QCOMPARE(array.constData(), QtNetworkSettings::expectedReplyIMAP().constData()); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(array), array.constData()); // Write a logout message QByteArray array2 = "XXXX LOGOUT\r\n"; diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp index d6a7a01..3223006 100644 --- a/tests/auto/qsslsocket/tst_qsslsocket.cpp +++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp @@ -502,8 +502,9 @@ void tst_QSslSocket::simpleConnectWithIgnore() if (!socket.canReadLine()) enterLoop(10); - QCOMPARE(socket.readAll(), QtNetworkSettings::expectedReplySSL()); + QByteArray data = socket.readAll(); socket.disconnectFromHost(); + QVERIFY2(QtNetworkSettings::compareReplyIMAPSSL(data), data.constData()); } void tst_QSslSocket::sslErrors_data() diff --git a/tests/auto/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/qtcpsocket/tst_qtcpsocket.cpp index 2dbe5b7..86069cd 100644 --- a/tests/auto/qtcpsocket/tst_qtcpsocket.cpp +++ b/tests/auto/qtcpsocket/tst_qtcpsocket.cpp @@ -95,6 +95,7 @@ #include "private/qhostinfo_p.h" #include "../network-settings.h" +#include "../../shared/util.h" Q_DECLARE_METATYPE(QAbstractSocket::SocketError) Q_DECLARE_METATYPE(QAbstractSocket::SocketState) @@ -222,6 +223,8 @@ protected slots: void proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *auth); private: + QByteArray expectedReplyIMAP(); + void fetchExpectedReplyIMAP(); QTcpSocket *newSocket() const; QTcpSocket *nonBlockingIMAP_socket; QStringList nonBlockingIMAP_data; @@ -233,6 +236,8 @@ private: bool readingBody; QTime timer; + QByteArray expectedReplyIMAP_cached; + mutable int proxyAuthCalled; bool gotClosedSignal; @@ -658,8 +663,6 @@ void tst_QTcpSocket::nonBlockingIMAP() // Read greeting QVERIFY(!nonBlockingIMAP_data.isEmpty()); -// QCOMPARE(nonBlockingIMAP_data.at(0).toLatin1().constData(), -// "* OK fluke Cyrus IMAP4 v2.2.12 server ready\r\n"); QCOMPARE(nonBlockingIMAP_data.at(0).left(4).toLatin1().constData(), "* OK"); nonBlockingIMAP_data.clear(); @@ -787,6 +790,36 @@ void tst_QTcpSocket::delayedClose() delete socket; } + +//---------------------------------------------------------------------------------- + +QByteArray tst_QTcpSocket::expectedReplyIMAP() +{ + if (expectedReplyIMAP_cached.isEmpty()) { + fetchExpectedReplyIMAP(); + } + + return expectedReplyIMAP_cached; +} + +// Figure out how the current IMAP server responds +void tst_QTcpSocket::fetchExpectedReplyIMAP() +{ + QTcpSocket *socket = newSocket(); + socket->connectToHost(QtNetworkSettings::serverName(), 143); + QVERIFY2(socket->waitForConnected(10000), qPrintable(socket->errorString())); + QVERIFY2(socket->state() == QTcpSocket::ConnectedState, qPrintable(socket->errorString())); + + QTRY_VERIFY(socket->canReadLine()); + + QByteArray greeting = socket->readLine(); + delete socket; + + QVERIFY2(QtNetworkSettings::compareReplyIMAP(greeting), greeting.constData()); + + expectedReplyIMAP_cached = greeting; +} + //---------------------------------------------------------------------------------- void tst_QTcpSocket::partialRead() @@ -797,8 +830,8 @@ void tst_QTcpSocket::partialRead() QVERIFY(socket->state() == QTcpSocket::ConnectedState); char buf[512]; -// QByteArray greeting = "* OK fluke Cyrus IMAP4 v2.2.12 server ready"; - QByteArray greeting = "* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE"; + QByteArray greeting = expectedReplyIMAP(); + QVERIFY(!greeting.isEmpty()); for (int i = 0; i < 10; i += 2) { while (socket->bytesAvailable() < 2) @@ -821,8 +854,8 @@ void tst_QTcpSocket::unget() QVERIFY(socket->state() == QTcpSocket::ConnectedState); char buf[512]; -// QByteArray greeting = "* OK fluke Cyrus IMAP4 v2.2.12 server ready"; - QByteArray greeting = "* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE"; + QByteArray greeting = expectedReplyIMAP(); + QVERIFY(!greeting.isEmpty()); for (int i = 0; i < 10; i += 2) { while (socket->bytesAvailable() < 2) @@ -1244,13 +1277,17 @@ void tst_QTcpSocket::readLine() QVERIFY(socket->waitForReadyRead(10000)); char buffer[1024]; - int expectedReplySize = QtNetworkSettings::expectedReplyIMAP().size(); - Q_ASSERT(expectedReplySize >= 3); - QCOMPARE(socket->readLine(buffer, sizeof(buffer)), qint64(expectedReplySize)); - QCOMPARE((int) buffer[expectedReplySize-2], (int) '\r'); - QCOMPARE((int) buffer[expectedReplySize-1], (int) '\n'); - QCOMPARE((int) buffer[expectedReplySize], (int) '\0'); + qint64 linelen = socket->readLine(buffer, sizeof(buffer)); + QVERIFY(linelen >= 3); + QVERIFY(linelen < 1024); + + QByteArray reply = QByteArray::fromRawData(buffer, linelen); + QCOMPARE((int) buffer[linelen-2], (int) '\r'); + QCOMPARE((int) buffer[linelen-1], (int) '\n'); + QCOMPARE((int) buffer[linelen], (int) '\0'); + + QVERIFY2(QtNetworkSettings::compareReplyIMAP(reply), reply.constData()); QCOMPARE(socket->write("1 NOOP\r\n"), qint64(8)); @@ -1282,13 +1319,11 @@ void tst_QTcpSocket::readLine() void tst_QTcpSocket::readLineString() { QTcpSocket *socket = newSocket(); -// QByteArray expected("* OK fluke Cyrus IMAP4 v2.2.12 server ready\r\n"); - QByteArray expected("* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS LOGINDISABLED] qt-test-server.qt-test-net Cyrus IMAP4 v2.3.11-Mandriva-RPM-2.3.11-6mdv2008.1 server ready\r\n"); socket->connectToHost(QtNetworkSettings::serverName(), 143); QVERIFY(socket->waitForReadyRead(10000)); QByteArray arr = socket->readLine(); - QCOMPARE(arr, QtNetworkSettings::expectedReplyIMAP()); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(arr), arr.constData()); delete socket; } @@ -1456,8 +1491,11 @@ void tst_QTcpSocket::atEnd() QVERIFY(!stream.atEnd()); QString greeting = stream.readLine(); QVERIFY(stream.atEnd()); -// QCOMPARE(greeting, QString("220 (vsFTPd 2.0.4)")); - QCOMPARE(greeting, QString("220 (vsFTPd 2.0.5)")); + + // Test server must use some vsFTPd 2.x.x version + QVERIFY2(greeting.length() == sizeof("220 (vsFTPd 2.x.x)")-1, qPrintable(greeting)); + QVERIFY2(greeting.startsWith("220 (vsFTPd 2."), qPrintable(greeting)); + QVERIFY2(greeting.endsWith(")"), qPrintable(greeting)); delete socket; } @@ -1522,7 +1560,8 @@ void tst_QTcpSocket::socketInAThread() TestThread thread; thread.start(); QVERIFY(thread.wait(15000)); - QCOMPARE(thread.data(), QtNetworkSettings::expectedReplyFtp()); + QByteArray data = thread.data(); + QVERIFY2(QtNetworkSettings::compareReplyFtp(data), data.constData()); } } @@ -1542,9 +1581,13 @@ void tst_QTcpSocket::socketsInThreads() QVERIFY(thread3.wait(15000)); QVERIFY(thread1.wait(15000)); - QCOMPARE(thread1.data(),QtNetworkSettings::expectedReplyFtp()); - QCOMPARE(thread2.data(),QtNetworkSettings::expectedReplyFtp()); - QCOMPARE(thread3.data(),QtNetworkSettings::expectedReplyFtp()); + QByteArray data1 = thread1.data(); + QByteArray data2 = thread2.data(); + QByteArray data3 = thread3.data(); + + QVERIFY2(QtNetworkSettings::compareReplyFtp(data1), data1.constData()); + QVERIFY2(QtNetworkSettings::compareReplyFtp(data2), data2.constData()); + QVERIFY2(QtNetworkSettings::compareReplyFtp(data3), data3.constData()); } } @@ -1846,7 +1889,7 @@ void tst_QTcpSocket::readyReadSignalsAfterWaitForReadyRead() QCOMPARE(readyReadSpy.count(), 1); QString s = socket->readLine(); - QCOMPARE(s.toLatin1().constData(), QtNetworkSettings::expectedReplyIMAP().constData()); + QVERIFY2(QtNetworkSettings::compareReplyIMAP(s.toLatin1()), s.toLatin1().constData()); QCOMPARE(socket->bytesAvailable(), qint64(0)); QCoreApplication::instance()->processEvents(); -- cgit v0.12 From 82ff3f484c7ec49e60b7fddf23794937974a6768 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Mon, 10 Jan 2011 12:13:00 +1000 Subject: Fix loaded() signal to be emitted only once Task-number: QTBUG-16319 Reviewed-by: Martin Jones --- .../graphicsitems/qdeclarativeloader.cpp | 60 +++++++------- .../graphicsitems/qdeclarativeloader_p_p.h | 2 + .../qdeclarativeloader/tst_qdeclarativeloader.cpp | 94 +++++++++++++--------- 3 files changed, 89 insertions(+), 67 deletions(-) diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp index 1119b92..22ec019 100644 --- a/src/declarative/graphicsitems/qdeclarativeloader.cpp +++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp @@ -48,7 +48,7 @@ QT_BEGIN_NAMESPACE QDeclarativeLoaderPrivate::QDeclarativeLoaderPrivate() - : item(0), component(0), ownComponent(false) + : item(0), component(0), ownComponent(false), isComponentComplete(false) { } @@ -262,6 +262,7 @@ void QDeclarativeLoader::setSource(const QUrl &url) d->clear(); d->source = url; + if (d->source.isEmpty()) { emit sourceChanged(); emit statusChanged(); @@ -272,18 +273,9 @@ void QDeclarativeLoader::setSource(const QUrl &url) d->component = new QDeclarativeComponent(qmlEngine(this), d->source, this); d->ownComponent = true; - if (!d->component->isLoading()) { - d->_q_sourceLoaded(); - } else { - connect(d->component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), - this, SLOT(_q_sourceLoaded())); - connect(d->component, SIGNAL(progressChanged(qreal)), - this, SIGNAL(progressChanged())); - emit statusChanged(); - emit progressChanged(); - emit sourceChanged(); - emit itemChanged(); - } + + if (d->isComponentComplete) + d->load(); } /*! @@ -324,6 +316,7 @@ void QDeclarativeLoader::setSourceComponent(QDeclarativeComponent *comp) d->component = comp; d->ownComponent = false; + if (!d->component) { emit sourceChanged(); emit statusChanged(); @@ -332,18 +325,8 @@ void QDeclarativeLoader::setSourceComponent(QDeclarativeComponent *comp) return; } - if (!d->component->isLoading()) { - d->_q_sourceLoaded(); - } else { - connect(d->component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), - this, SLOT(_q_sourceLoaded())); - connect(d->component, SIGNAL(progressChanged(qreal)), - this, SIGNAL(progressChanged())); - emit progressChanged(); - emit sourceChanged(); - emit statusChanged(); - emit itemChanged(); - } + if (d->isComponentComplete) + d->load(); } void QDeclarativeLoader::resetSourceComponent() @@ -351,6 +334,27 @@ void QDeclarativeLoader::resetSourceComponent() setSourceComponent(0); } +void QDeclarativeLoaderPrivate::load() +{ + Q_Q(QDeclarativeLoader); + + if (!isComponentComplete || !component) + return; + + if (!component->isLoading()) { + _q_sourceLoaded(); + } else { + QObject::connect(component, SIGNAL(statusChanged(QDeclarativeComponent::Status)), + q, SLOT(_q_sourceLoaded())); + QObject::connect(component, SIGNAL(progressChanged(qreal)), + q, SIGNAL(progressChanged())); + emit q->statusChanged(); + emit q->progressChanged(); + emit q->sourceChanged(); + emit q->itemChanged(); + } +} + void QDeclarativeLoaderPrivate::_q_sourceLoaded() { Q_Q(QDeclarativeLoader); @@ -465,9 +469,11 @@ QDeclarativeLoader::Status QDeclarativeLoader::status() const void QDeclarativeLoader::componentComplete() { + Q_D(QDeclarativeLoader); + QDeclarativeItem::componentComplete(); - if (status() == Ready) - emit loaded(); + d->isComponentComplete = true; + d->load(); } diff --git a/src/declarative/graphicsitems/qdeclarativeloader_p_p.h b/src/declarative/graphicsitems/qdeclarativeloader_p_p.h index 0d4c4d0..bc65781 100644 --- a/src/declarative/graphicsitems/qdeclarativeloader_p_p.h +++ b/src/declarative/graphicsitems/qdeclarativeloader_p_p.h @@ -72,11 +72,13 @@ public: void itemGeometryChanged(QDeclarativeItem *item, const QRectF &newGeometry, const QRectF &oldGeometry); void clear(); void initResize(); + void load(); QUrl source; QGraphicsObject *item; QDeclarativeComponent *component; bool ownComponent : 1; + bool isComponentComplete : 1; void _q_sourceLoaded(); void _q_updateSize(bool loaderGeometryChanged = true); diff --git a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp index 1bde55b..f6244e4 100644 --- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp +++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp @@ -69,9 +69,8 @@ public: tst_QDeclarativeLoader(); private slots: - void url(); - void invalidUrl(); - void component(); + void sourceOrComponent(); + void sourceOrComponent_data(); void clear(); void urlToComponent(); void componentToUrl(); @@ -100,56 +99,71 @@ tst_QDeclarativeLoader::tst_QDeclarativeLoader() { } -void tst_QDeclarativeLoader::url() +void tst_QDeclarativeLoader::sourceOrComponent() { + QFETCH(QString, sourceDefinition); + QFETCH(QUrl, sourceUrl); + QFETCH(QString, errorString); + + bool error = !errorString.isEmpty(); + if (error) + QTest::ignoreMessage(QtWarningMsg, errorString.toUtf8().constData()); + QDeclarativeComponent component(&engine); - component.setData(QByteArray("import QtQuick 1.0\nLoader { property int did_load: 0; onLoaded: did_load=123; source: \"Rect120x60.qml\" }"), TEST_FILE("")); + component.setData(QByteArray( + "import QtQuick 1.0\n" + "Loader {\n" + " property int onItemChangedCount: 0\n" + " property int onSourceChangedCount: 0\n" + " property int onStatusChangedCount: 0\n" + " property int onProgressChangedCount: 0\n" + " property int onLoadedCount: 0\n") + + sourceDefinition.toUtf8() + + QByteArray( + " onItemChanged: onItemChangedCount += 1\n" + " onSourceChanged: onSourceChangedCount += 1\n" + " onStatusChanged: onStatusChangedCount += 1\n" + " onProgressChanged: onProgressChangedCount += 1\n" + " onLoaded: onLoadedCount += 1\n" + "}") + , TEST_FILE("")); + QDeclarativeLoader *loader = qobject_cast(component.create()); QVERIFY(loader != 0); - QVERIFY(loader->item()); - QVERIFY(loader->source() == QUrl::fromLocalFile(SRCDIR "/data/Rect120x60.qml")); + QCOMPARE(loader->item() == 0, error); + QCOMPARE(loader->source(), sourceUrl); QCOMPARE(loader->progress(), 1.0); - QCOMPARE(loader->status(), QDeclarativeLoader::Ready); - QCOMPARE(loader->property("did_load").toInt(), 123); - QCOMPARE(static_cast(loader)->children().count(), 1); - delete loader; -} + QCOMPARE(loader->status(), error ? QDeclarativeLoader::Error : QDeclarativeLoader::Ready); + QCOMPARE(static_cast(loader)->children().count(), error ? 0: 1); -void tst_QDeclarativeLoader::component() -{ - QDeclarativeComponent component(&engine, TEST_FILE("/SetSourceComponent.qml")); - QDeclarativeItem *item = qobject_cast(component.create()); - QVERIFY(item); + if (!error) { + QDeclarativeComponent *c = qobject_cast(loader->QGraphicsObject::children().at(0)); + QVERIFY(c); + QCOMPARE(loader->sourceComponent(), c); + } - QDeclarativeLoader *loader = qobject_cast(item->QGraphicsObject::children().at(1)); - QVERIFY(loader); - QVERIFY(loader->item()); - QCOMPARE(loader->progress(), 1.0); - QCOMPARE(loader->status(), QDeclarativeLoader::Ready); - QCOMPARE(static_cast(loader)->children().count(), 1); + QCOMPARE(loader->property("onSourceChangedCount").toInt(), 1); + QCOMPARE(loader->property("onStatusChangedCount").toInt(), 1); + QCOMPARE(loader->property("onProgressChangedCount").toInt(), 1); - QDeclarativeComponent *c = qobject_cast(item->QGraphicsObject::children().at(0)); - QVERIFY(c); - QCOMPARE(loader->sourceComponent(), c); + QCOMPARE(loader->property("onItemChangedCount").toInt(), error ? 0 : 1); + QCOMPARE(loader->property("onLoadedCount").toInt(), error ? 0 : 1); - delete item; + delete loader; } -void tst_QDeclarativeLoader::invalidUrl() +void tst_QDeclarativeLoader::sourceOrComponent_data() { - QTest::ignoreMessage(QtWarningMsg, QString(QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString() + ": File not found").toUtf8().constData()); + QTest::addColumn("sourceDefinition"); + QTest::addColumn("sourceUrl"); + QTest::addColumn("errorString"); - QDeclarativeComponent component(&engine); - component.setData(QByteArray("import QtQuick 1.0\nLoader { source: \"IDontExist.qml\" }"), TEST_FILE("")); - QDeclarativeLoader *loader = qobject_cast(component.create()); - QVERIFY(loader != 0); - QVERIFY(loader->item() == 0); - QCOMPARE(loader->progress(), 1.0); - QCOMPARE(loader->status(), QDeclarativeLoader::Error); - QCOMPARE(static_cast(loader)->children().count(), 0); + QTest::newRow("source") << "source: 'Rect120x60.qml'\n" << QUrl::fromLocalFile(SRCDIR "/data/Rect120x60.qml") << ""; + QTest::newRow("sourceComponent") << "Component { id: comp; Rectangle { width: 100; height: 50 } }\n sourceComponent: comp\n" << QUrl() << ""; - delete loader; + QTest::newRow("invalid source") << "source: 'IDontExist.qml'\n" << QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml") + << QString(QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString() + ": File not found"); } void tst_QDeclarativeLoader::clear() @@ -446,7 +460,7 @@ void tst_QDeclarativeLoader::networkRequestUrl() server.serveDirectory(SRCDIR "/data"); QDeclarativeComponent component(&engine); - component.setData(QByteArray("import QtQuick 1.0\nLoader { property int did_load : 0; source: \"http://127.0.0.1:14450/Rect120x60.qml\"; onLoaded: did_load=123 }"), QUrl::fromLocalFile(SRCDIR "/dummy.qml")); + component.setData(QByteArray("import QtQuick 1.0\nLoader { property int signalCount : 0; source: \"http://127.0.0.1:14450/Rect120x60.qml\"; onLoaded: signalCount += 1 }"), QUrl::fromLocalFile(SRCDIR "/dummy.qml")); if (component.isError()) qDebug() << component.errors(); QDeclarativeLoader *loader = qobject_cast(component.create()); @@ -456,7 +470,7 @@ void tst_QDeclarativeLoader::networkRequestUrl() QVERIFY(loader->item()); QCOMPARE(loader->progress(), 1.0); - QCOMPARE(loader->property("did_load").toInt(), 123); + QCOMPARE(loader->property("signalCount").toInt(), 1); QCOMPARE(static_cast(loader)->children().count(), 1); delete loader; -- cgit v0.12 From 279f701c7fd988a5dec4abca8e9da01dc629672b Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Mon, 10 Jan 2011 14:32:41 +1000 Subject: Update pathview test This updates the tests to match the correct behaviour as of 1ba3e41f09ea719249286fede5d3fe96621ccb61 Task-number: QTBUG-16357 --- .../data/test-pathview-2.0.png | Bin 1114 -> 1114 bytes .../data/test-pathview-2.1.png | Bin 1119 -> 1119 bytes .../data/test-pathview-2.2.png | Bin 1102 -> 1102 bytes .../data/test-pathview-2.3.png | Bin 1092 -> 1092 bytes .../data/test-pathview-2.4.png | Bin 1143 -> 1140 bytes .../data/test-pathview-2.5.png | Bin 1143 -> 1140 bytes .../qdeclarativepathview/data/test-pathview-2.qml | 394 ++++++++++----------- .../qdeclarativepathview/data/test-pathview.0.png | Bin 1169 -> 1169 bytes .../qdeclarativepathview/data/test-pathview.1.png | Bin 1172 -> 1172 bytes .../qdeclarativepathview/data/test-pathview.2.png | Bin 1201 -> 1201 bytes .../qdeclarativepathview/data/test-pathview.3.png | Bin 1164 -> 1164 bytes .../qdeclarativepathview/data/test-pathview.4.png | Bin 1226 -> 1227 bytes .../qdeclarativepathview/data/test-pathview.5.png | Bin 1192 -> 1184 bytes .../qdeclarativepathview/data/test-pathview.6.png | Bin 1188 -> 1188 bytes .../qdeclarativepathview/data/test-pathview.qml | 242 ++++++------- 15 files changed, 318 insertions(+), 318 deletions(-) diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png index 347e773..1b87edb 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png index 370ca80..4fc12d6 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png index 97e3906..d761a0c 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png index 5fa3c67..e22464f 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png index ce11c09..14f07be 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png index d155742..ba1ad34 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml index 304d5c7..9eaff18 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml @@ -10,171 +10,171 @@ VisualTest { } Frame { msec: 32 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 48 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 64 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 80 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 96 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 112 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 128 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 144 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 160 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 176 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 192 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 208 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 224 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 240 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 256 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 272 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 288 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 304 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 320 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 336 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 352 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 368 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 384 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 400 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 416 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 432 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 448 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 464 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 480 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 496 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 512 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 528 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 544 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 560 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 576 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 592 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 608 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 624 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 640 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 656 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 672 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 688 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Mouse { type: 2 @@ -186,11 +186,11 @@ VisualTest { } Frame { msec: 704 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Frame { msec: 720 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Mouse { type: 5 @@ -202,7 +202,7 @@ VisualTest { } Frame { msec: 736 - hash: "fe6d7d28dbeef3cfbac3ac3c3e909216" + hash: "cc72b488dcdfa7c251782cbcae7ab1d5" } Mouse { type: 5 @@ -222,7 +222,7 @@ VisualTest { } Frame { msec: 752 - hash: "d2dda5bec262721d653e88ec3eaeca57" + hash: "ae9028c15de8ba4b02c733212d521c29" } Mouse { type: 5 @@ -254,7 +254,7 @@ VisualTest { } Frame { msec: 784 - hash: "0a178235529d721529e8dc3b439a64c9" + hash: "6a6c5551e3a5a08f5505eb0f61d9df36" } Mouse { type: 5 @@ -294,11 +294,11 @@ VisualTest { } Frame { msec: 848 - hash: "1ba9bc8c2b941fd0ec82f211eb559682" + hash: "a1e475643d0871bb7d63f8cf2e0b780d" } Frame { msec: 864 - hash: "ee8680df3c58a48f3fff4a8fc221e38c" + hash: "ba429e0c1a7f1624973813ae8be6b090" } Frame { msec: 880 @@ -310,11 +310,11 @@ VisualTest { } Frame { msec: 912 - hash: "f2400819feb116ae3b327284bbb292ff" + hash: "1910f67eb9180a866924fa8567afbdf5" } Frame { msec: 928 - hash: "5d9a3458cb59ede36e7b51bac869785a" + hash: "68c60f1bc67a1d1117be7ed305b61ae1" } Frame { msec: 944 @@ -330,7 +330,7 @@ VisualTest { } Frame { msec: 992 - hash: "493e3c7b0de4a7b4b46678fe4ce9a763" + hash: "2bcde5c7b2e1aac1439b379ed729f6e1" } Frame { msec: 1008 @@ -342,11 +342,11 @@ VisualTest { } Frame { msec: 1040 - hash: "4b28ebf737b8c4228771122d844b8166" + hash: "e615b8648d5449535b1f47ab770db423" } Frame { msec: 1056 - hash: "b04155316770a1265e5dc431e1b9a9a1" + hash: "877e6357cc9a183a0288aa1551e26179" } Frame { msec: 1072 @@ -354,7 +354,7 @@ VisualTest { } Frame { msec: 1088 - hash: "b3e7cbc83c65ec61c768757798b17c58" + hash: "d15e299030bc08097c3b9b4bbaace558" } Frame { msec: 1104 @@ -362,7 +362,7 @@ VisualTest { } Frame { msec: 1120 - hash: "77c3bbb94471cfbfd23cc3914d796dfc" + hash: "937c7e346463c58c909795fa382761d9" } Frame { msec: 1136 @@ -374,7 +374,7 @@ VisualTest { } Frame { msec: 1168 - hash: "bf9c02945fdee4b06353f8f7f4fca2a3" + hash: "5872891af6953f07a635698581695c58" } Frame { msec: 1184 @@ -394,7 +394,7 @@ VisualTest { } Frame { msec: 1248 - hash: "b6bdf2f21c4137d4b5f25e0fe728bba5" + hash: "d8de3485eb7fb1f3675a25d7f807d08e" } Frame { msec: 1264 @@ -422,7 +422,7 @@ VisualTest { } Frame { msec: 1360 - hash: "44cd80041a1965c8c60fdffd9ae19395" + hash: "ee9ac101215923305fa75ab4c99c8f36" } Frame { msec: 1376 @@ -434,11 +434,11 @@ VisualTest { } Frame { msec: 1408 - hash: "8da4613759e9bcb926a0c84556213eb5" + hash: "a9012dc82230c791bda1a7e6b7741896" } Frame { msec: 1424 - hash: "1085fcc81f0aed8508817839ca748359" + hash: "78774bdff6cef175dcb7a190e5f1bcab" } Frame { msec: 1440 @@ -454,11 +454,11 @@ VisualTest { } Frame { msec: 1488 - hash: "832c857f2e05f2f82308cbf91f7bf401" + hash: "d74aa07d0b66a5f2be42b9868d3cd8f2" } Frame { msec: 1504 - hash: "ca3e50cd337a07ef07f063be28fa6dc2" + hash: "ea4c8f35367ee6f7631aa6e6d8aead03" } Frame { msec: 1520 @@ -470,11 +470,11 @@ VisualTest { } Frame { msec: 1552 - hash: "bfa62672ee7fcd9c3a75b63198a4c2bf" + hash: "5361d1f1100c4815dca1b49046b44593" } Frame { msec: 1568 - hash: "cdaafe7f622c18c2409ac539649de1cd" + hash: "5cd97dc8a237fa92373eb50de8a3bd7b" } Frame { msec: 1584 @@ -482,15 +482,15 @@ VisualTest { } Frame { msec: 1600 - hash: "925c55a8564f2318f9de4bd406cb5b13" + hash: "7b3cd8f583e6045d2e923a34abfc3aeb" } Frame { msec: 1616 - hash: "466208a8f6ecf45393be01a6dd7f2b0f" + hash: "2146e67d469f1eb2071a1f04d8e9fc4e" } Frame { msec: 1632 - hash: "35cff8c0f4b503ba4948966079484feb" + hash: "26839de649101c7b3bc6d9b1131325e6" } Frame { msec: 1648 @@ -498,7 +498,7 @@ VisualTest { } Frame { msec: 1664 - hash: "b699165e354bcadfd0d914d9ecb3d2aa" + hash: "30bc1d78a0cbd29813ad9504b1f0864b" } Frame { msec: 1680 @@ -518,7 +518,7 @@ VisualTest { } Frame { msec: 1744 - hash: "a9dda9ebaa97133c671917473721272c" + hash: "864a4d26e719dd9fc0e3ce5c28d7726a" } Mouse { type: 2 @@ -638,7 +638,7 @@ VisualTest { } Frame { msec: 1872 - hash: "d82969ef0f4baf3c51e112e049cb1334" + hash: "57d5b71d5ff16f986c7df8d8405822b6" } Mouse { type: 5 @@ -650,7 +650,7 @@ VisualTest { } Frame { msec: 1888 - hash: "e746a3eb8527036b09afb9cdd3d15648" + hash: "6fd4123cfc8998cfc7716f3d928fb03f" } Mouse { type: 5 @@ -738,7 +738,7 @@ VisualTest { } Frame { msec: 1984 - hash: "f500232133ec07a3b833b06425379484" + hash: "d823492036431e23d8b6876baccec263" } Mouse { type: 5 @@ -758,7 +758,7 @@ VisualTest { } Frame { msec: 2000 - hash: "0a0cd0433e206dfc923ec0d3617e04a1" + hash: "11d77567aeff20d8f62f2e4100603de3" } Mouse { type: 5 @@ -770,7 +770,7 @@ VisualTest { } Frame { msec: 2016 - hash: "1754875ee6a5712ffb8ce1bbae6d4ed1" + hash: "f87df2e12dfe2ebb5b093e21970885b4" } Mouse { type: 5 @@ -794,7 +794,7 @@ VisualTest { } Frame { msec: 2048 - hash: "ab3a64b41c67a0b8a6c0830c0e0cb797" + hash: "ba9d1850c5c43c9aec5660601ba21d2f" } Mouse { type: 5 @@ -806,7 +806,7 @@ VisualTest { } Frame { msec: 2064 - hash: "d05f721f1d7d23d6e0cc67993bf1fa8f" + hash: "8eb1f2c8c02c2acf4262e05000045649" } Mouse { type: 5 @@ -838,7 +838,7 @@ VisualTest { } Frame { msec: 2096 - hash: "f0ae80ed5965d7531d6a653c80eed444" + hash: "c55a189b05d87e8937d272f32bdc2481" } Mouse { type: 5 @@ -858,7 +858,7 @@ VisualTest { } Frame { msec: 2112 - hash: "1419fe55cc28ce9690846d4c03275fe7" + hash: "bb1515904f9b299402d1141445154430" } Mouse { type: 5 @@ -870,7 +870,7 @@ VisualTest { } Frame { msec: 2128 - hash: "2e22df53697a599b0e44fb2a3986dcd0" + hash: "93363142c5a05c52c21e771b2bce71f6" } Mouse { type: 5 @@ -946,7 +946,7 @@ VisualTest { } Frame { msec: 2304 - hash: "1419fe55cc28ce9690846d4c03275fe7" + hash: "bb1515904f9b299402d1141445154430" } Mouse { type: 5 @@ -978,7 +978,7 @@ VisualTest { } Frame { msec: 2336 - hash: "ab3a64b41c67a0b8a6c0830c0e0cb797" + hash: "ba9d1850c5c43c9aec5660601ba21d2f" } Mouse { type: 5 @@ -1002,31 +1002,31 @@ VisualTest { } Frame { msec: 2368 - hash: "0a0cd0433e206dfc923ec0d3617e04a1" + hash: "11d77567aeff20d8f62f2e4100603de3" } Frame { msec: 2384 - hash: "0a0cd0433e206dfc923ec0d3617e04a1" + hash: "11d77567aeff20d8f62f2e4100603de3" } Frame { msec: 2400 - hash: "0a0cd0433e206dfc923ec0d3617e04a1" + hash: "11d77567aeff20d8f62f2e4100603de3" } Frame { msec: 2416 - hash: "0a0cd0433e206dfc923ec0d3617e04a1" + hash: "11d77567aeff20d8f62f2e4100603de3" } Frame { msec: 2432 - hash: "0a0cd0433e206dfc923ec0d3617e04a1" + hash: "11d77567aeff20d8f62f2e4100603de3" } Frame { msec: 2448 - hash: "0a0cd0433e206dfc923ec0d3617e04a1" + hash: "11d77567aeff20d8f62f2e4100603de3" } Frame { msec: 2464 - hash: "0a0cd0433e206dfc923ec0d3617e04a1" + hash: "11d77567aeff20d8f62f2e4100603de3" } Mouse { type: 5 @@ -1070,7 +1070,7 @@ VisualTest { } Frame { msec: 2512 - hash: "360a47795f7f9389f82f2f55fa1fe83f" + hash: "2234e44042daf277bd5307635155117f" } Mouse { type: 5 @@ -1158,7 +1158,7 @@ VisualTest { } Frame { msec: 2608 - hash: "44a30531642ada65c052afe30874d7ba" + hash: "398e4a0ebc812b779b38c4541d33424c" } Frame { msec: 2624 @@ -1166,7 +1166,7 @@ VisualTest { } Frame { msec: 2640 - hash: "645e43948279d528020070125b71c33b" + hash: "0d09a6a0cce6d22c14bc41b8465e8ba0" } Frame { msec: 2656 @@ -1174,7 +1174,7 @@ VisualTest { } Frame { msec: 2672 - hash: "fa3b12e9869bf4254c8cdf6e5b10bb2d" + hash: "5329441c12424e5aa69ee0c5cff5926d" } Frame { msec: 2688 @@ -1182,11 +1182,11 @@ VisualTest { } Frame { msec: 2704 - hash: "79d70563c7e139d9f9785565219133c7" + hash: "aa8b21cdea3d0ae6a2e59a1b318da842" } Frame { msec: 2720 - hash: "0dc70772aa50445c1cb7dbd8ee0092b0" + hash: "dd142875acafdc8591a29bcd9f871dab" } Frame { msec: 2736 @@ -1198,7 +1198,7 @@ VisualTest { } Frame { msec: 2768 - hash: "e3972b3244e4a98c9ee4df2d4b623c12" + hash: "36217f04f3b1b70a9cf3fa4881b2def7" } Frame { msec: 2784 @@ -1210,11 +1210,11 @@ VisualTest { } Frame { msec: 2816 - hash: "47d757dab5c72cad08cb8026631d67e6" + hash: "7313fc37802c462ddd324a13c8fcdc9c" } Frame { msec: 2832 - hash: "8522a3b6202b303a9e65a9e136423e27" + hash: "961e84cbb3591cebdb5b83c2aa83887c" } Frame { msec: 2848 @@ -1226,7 +1226,7 @@ VisualTest { } Frame { msec: 2880 - hash: "579688ff6ec910570c0c0c60fdf44cf6" + hash: "943dfcee3f04c77fba2cec289a288c4b" } Frame { msec: 2896 @@ -1234,7 +1234,7 @@ VisualTest { } Frame { msec: 2912 - hash: "7ab8cf0d0b650e8f994a9beed8be29fb" + hash: "36be9a0d4376ece0b279a118a3fab364" } Frame { msec: 2928 @@ -1250,11 +1250,11 @@ VisualTest { } Frame { msec: 2976 - hash: "f0267f59e247e24e4cf9c56f8931112b" + hash: "b17faafb59a9d182faf00495736a7fac" } Frame { msec: 2992 - hash: "ddbc73e2df4da11d5122539a00c126de" + hash: "549eb98193f0e81aee716239f872a21c" } Frame { msec: 3008 @@ -1286,7 +1286,7 @@ VisualTest { } Frame { msec: 3120 - hash: "2ad733363d239d9a3ea1c31427a3b3fe" + hash: "9506c95e1febf3d781e6b1dbbaf640d3" } Frame { msec: 3136 @@ -1294,7 +1294,7 @@ VisualTest { } Frame { msec: 3152 - hash: "53b05d8be52a74c3a24b88779d4927bf" + hash: "adef134dc735305b673c6fa47a3d1a34" } Frame { msec: 3168 @@ -1310,11 +1310,11 @@ VisualTest { } Frame { msec: 3216 - hash: "8a7ab6dc549b247f3b897e098d784dd8" + hash: "036d247dd83e0fbfe4f65cbd79e9ab57" } Frame { msec: 3232 - hash: "0a3144254f66a6b005b95a026496cd32" + hash: "959270d536187e6b669263a57b260e78" } Frame { msec: 3248 @@ -1322,7 +1322,7 @@ VisualTest { } Frame { msec: 3264 - hash: "c17922ca04f5ce9916e2907a6c28bf8b" + hash: "42a9b43e2c66a5ef32c8b6564235c623" } Frame { msec: 3280 @@ -1330,11 +1330,11 @@ VisualTest { } Frame { msec: 3296 - hash: "1f41a314699151771d7d1ca672aaba8f" + hash: "cf5c7868e399fadac1642f47a0b4dbd2" } Frame { msec: 3312 - hash: "de94c2ad2e74036d975e8402dd8b06e9" + hash: "9c689254f44a6ced1c4962400613d4da" } Frame { msec: 3328 @@ -1358,7 +1358,7 @@ VisualTest { } Frame { msec: 3408 - hash: "2f3e7040a4966e56858312f6534e9e77" + hash: "f65c57211997139ae1473951333d7b35" } Frame { msec: 3424 @@ -1370,7 +1370,7 @@ VisualTest { } Frame { msec: 3456 - hash: "6639a15d4d23540ccf63c9bea0e1689e" + hash: "191115950915abcb338c3f4c17595840" } Frame { msec: 3472 @@ -1402,7 +1402,7 @@ VisualTest { } Frame { msec: 3584 - hash: "4b2706d1215f2b5b08ac87e40ba8c21b" + hash: "e9de53c430f9de55146ac6606d55d427" } Frame { msec: 3600 @@ -1418,19 +1418,19 @@ VisualTest { } Frame { msec: 3648 - hash: "14bdec5663d1a81fa617d3b81e19f8b4" + hash: "a44936319089e2379de34edf58b453c1" } Frame { msec: 3664 - hash: "3430047eca214a217aca0bd71814f4db" + hash: "c894ceaf318dd1afe29dcfe171aadf0f" } Frame { msec: 3680 - hash: "974c431fe7030990389c7fc719655cfd" + hash: "deea3a520f3fe43bf92f05a25f791458" } Frame { msec: 3696 - hash: "d38f3153b3cf39a278dc6948ff9ef71d" + hash: "176381c4acfacecd0d203b7ad8fbd7d4" } Frame { msec: 3712 @@ -1438,35 +1438,35 @@ VisualTest { } Frame { msec: 3728 - hash: "bf2de49dc940043a955a075dcda1b52b" + hash: "21f2e0c3ba2142d1baae9406858f1cea" } Frame { msec: 3744 - hash: "bf2de49dc940043a955a075dcda1b52b" + hash: "21f2e0c3ba2142d1baae9406858f1cea" } Frame { msec: 3760 - hash: "bf2de49dc940043a955a075dcda1b52b" + hash: "21f2e0c3ba2142d1baae9406858f1cea" } Frame { msec: 3776 - hash: "bf2de49dc940043a955a075dcda1b52b" + hash: "21f2e0c3ba2142d1baae9406858f1cea" } Frame { msec: 3792 - hash: "bf2de49dc940043a955a075dcda1b52b" + hash: "21f2e0c3ba2142d1baae9406858f1cea" } Frame { msec: 3808 - hash: "bf2de49dc940043a955a075dcda1b52b" + hash: "21f2e0c3ba2142d1baae9406858f1cea" } Frame { msec: 3824 - hash: "bf2de49dc940043a955a075dcda1b52b" + hash: "21f2e0c3ba2142d1baae9406858f1cea" } Frame { msec: 3840 - hash: "bf2de49dc940043a955a075dcda1b52b" + hash: "21f2e0c3ba2142d1baae9406858f1cea" } Frame { msec: 3856 @@ -1474,7 +1474,7 @@ VisualTest { } Frame { msec: 3872 - hash: "bf2de49dc940043a955a075dcda1b52b" + hash: "21f2e0c3ba2142d1baae9406858f1cea" } Mouse { type: 2 @@ -1486,11 +1486,11 @@ VisualTest { } Frame { msec: 3888 - hash: "cf72e9ae81dcf833f7a48ffa348b8966" + hash: "e66b75e5644018aecd321e498de08ca1" } Frame { msec: 3904 - hash: "cf72e9ae81dcf833f7a48ffa348b8966" + hash: "e66b75e5644018aecd321e498de08ca1" } Mouse { type: 5 @@ -1502,7 +1502,7 @@ VisualTest { } Frame { msec: 3920 - hash: "cf72e9ae81dcf833f7a48ffa348b8966" + hash: "eb346d68bd5b51a31ee2f5d807970d96" } Mouse { type: 5 @@ -1522,7 +1522,7 @@ VisualTest { } Frame { msec: 3936 - hash: "1cea11ee435caa8515797ee5c4fb79cb" + hash: "ffd30479d99b19926072fa94cdec6195" } Mouse { type: 5 @@ -1534,7 +1534,7 @@ VisualTest { } Frame { msec: 3952 - hash: "0da1743b066a73dd19aff6b60ef76830" + hash: "207efe4cbcebaedca1d2fc6726d46543" } Mouse { type: 5 @@ -1554,7 +1554,7 @@ VisualTest { } Frame { msec: 3968 - hash: "ddace1df123421675bc9153c4017cdd0" + hash: "f011a043293362d5affcbcdfe3c93131" } Mouse { type: 5 @@ -1566,7 +1566,7 @@ VisualTest { } Frame { msec: 3984 - hash: "0c57fe8eef4e41e326dbc82f7b6ae87b" + hash: "934ed8956abae51fd19352f23ef9a16a" } Mouse { type: 5 @@ -1586,151 +1586,151 @@ VisualTest { } Frame { msec: 4000 - hash: "53968b4b57c09fe0b47e720031c1eed7" + hash: "0daf00b242485319f5c9050b9cdb6775" } Frame { msec: 4016 - hash: "2ab593b498892bf8bacef875e524284f" + hash: "8111f56ae5cfcf1d6c934e134602a8dc" } Frame { msec: 4032 - hash: "da77708f525ab9d1d3f760595a1f9efa" + hash: "6f3f6c2ae3c36401d1d96a37bbd62c52" } Frame { msec: 4048 - hash: "ce73ecb012139dda8e21cb0dce95582a" + hash: "11cde9b9369addaa5ff140e3a0bbf9ac" } Frame { msec: 4064 - hash: "086754b023addbbecf3b361382133279" + hash: "fefd7d44805c330c606fcc23b691832e" } Frame { msec: 4080 - hash: "adcb9881f246993ff35af24f8750ea2f" + hash: "b9eb8f8a78485deafc04a9bac39e5c31" } Frame { msec: 4096 - hash: "974b423c99316c9a5b2e097bb3a42fcc" + hash: "f0be22ea55a6a9621718cb5e1b55e6f7" } Frame { msec: 4112 - hash: "e37263abe79b203cfc4306aa7e5c4853" + hash: "cb0d62b8c16406a0ff35feea3ff074b9" } Frame { msec: 4128 - hash: "0136eaf2704a5af80f8ba26bbb7f51da" + hash: "15bf986b1e4072ce48ef40651e11a93a" } Frame { msec: 4144 - hash: "55fe0338e24aa91790f2cd466464acae" + hash: "d29f81f0c8468ea045f1c21adca8c0e6" } Frame { msec: 4160 - hash: "9fa5eaebd34e2af136a2894f360301a5" + hash: "577f27fd6212bbb7394b64b0872d7e6e" } Frame { msec: 4176 - hash: "c48822e620b788947d8a5ec850d6313b" + hash: "f26c83a4ede9e04ceabf276fd2eeaa4d" } Frame { msec: 4192 - hash: "ec763070f81e115a5e471923aa539683" + hash: "34f449f3c29c4b0bb0972e8d3510452c" } Frame { msec: 4208 - hash: "2aa84ad9ef88313a4c63e91bba959920" + hash: "5cf950b9f0bb8c851a2865718bd3e6ec" } Frame { msec: 4224 - hash: "14cf7ba825d704c4acc72670fd868d6c" + hash: "202b5c9cd1717dfef0d1f667ca115571" } Frame { msec: 4240 - hash: "987bf945cd9c1cfe5bbb17442daa4f26" + hash: "5d703db8af0eeba0327177f79b0fd85b" } Frame { msec: 4256 - hash: "5d4d80565bf4f522c79044d0df55a1fd" + hash: "69e4fdbaba2ad4983edcbaad0ccfa905" } Frame { msec: 4272 - hash: "d0a5ec7ff2c5b64c6691888412d0cc6d" + hash: "c91389bd9e9c7fce2a8e5ffca851cf89" } Frame { msec: 4288 - hash: "93750528b6f27df22423eb957a07b55f" + hash: "5e2b94dda5af845a368032cc85e3167f" } Frame { msec: 4304 - hash: "65fd0474f918bac61b46fde8ed8e3b59" + hash: "5946e2bd9a32130fed9612d6152b7ddd" } Frame { msec: 4320 - hash: "cd15f6499863ef84f0ad3b2ff48d6406" + hash: "74f13b9111005e610028ea252132c1fc" } Frame { msec: 4336 - hash: "65101124208b062de9718b34fb43425b" + hash: "ba2a587b26fd3d92a368e3b63513e145" } Frame { msec: 4352 - hash: "cb42d683dc5e4020891601afb0a77947" + hash: "2047ecb0be3173846b7c09b7054bad07" } Frame { msec: 4368 - hash: "88fdddbf2f766ffff7e77c7612d9cfee" + hash: "db6993dfaad694f812130c112e9c78b6" } Frame { msec: 4384 - hash: "776c63f1bbc40624d7fedd6141fbdd97" + hash: "aea54cad7368b8511412f4d9fd1e8b07" } Frame { msec: 4400 - hash: "24f11b5abb33d8f180a56fca6f15ef45" + hash: "431d140c8e9a61f6c1fe7a044900b4b7" } Frame { msec: 4416 - hash: "71d9ab083d15b57336ee278793815713" + hash: "ed80bccd69ebd4326b01fdf46b56dd52" } Frame { msec: 4432 - hash: "b48e64cb1b8b39e7001af4e7c7d22098" + hash: "edd82b44bd2813f2bf20bbf8be4ad10d" } Frame { msec: 4448 - hash: "587ef2440cd021038cc902a3b1839ff4" + hash: "527b3fb45d585f70ef2ef2e78d2fff05" } Frame { msec: 4464 - hash: "99e0485247c907c5b6e0f8d5dc7b8977" + hash: "00b68c12c6cef0b523eeef8c7556a26c" } Frame { msec: 4480 - hash: "3b2496d61eefaa413f0688afed150749" + hash: "37c62b1c2c3d70220b1d7b28a57de0a5" } Frame { msec: 4496 - hash: "0144d27095182c58e50ae1ccdbfaa05e" + hash: "e73843907eb7ee18c59b5fe98022f542" } Frame { msec: 4512 - hash: "06237be375826d2434dc564dd2eaf165" + hash: "139d84bfdefd825a89ddd4150a72fa9f" } Frame { msec: 4528 - hash: "7235d512503b134ac267b7128163eea2" + hash: "779690a2e5291b7d64ceed193bf8e572" } Frame { msec: 4544 - hash: "5d5f7ff9bd0a4aa316b764bec8524fe0" + hash: "4ffd9beb48bd769d9e3b8ad3aedff08b" } Frame { msec: 4560 - hash: "9be01e649140f950cd882af2e8e1e27c" + hash: "b1edf784de34b42bd74390836db976b9" } Frame { msec: 4576 - hash: "0773e5d219d6fc4f2d385fd1bcd17f93" + hash: "78327706741822e6ba8b0b88be469422" } Frame { msec: 4592 @@ -1738,55 +1738,55 @@ VisualTest { } Frame { msec: 4608 - hash: "6f87571a59aa358755d80e94894fe7a9" + hash: "8274a35f384478ca2f018c5d914d428d" } Frame { msec: 4624 - hash: "0e31c55386e8838f52024c49d4929710" + hash: "70f4b77c65450eddfa61ebdf2dc75985" } Frame { msec: 4640 - hash: "7d6c89f5fae7990643687512f2294449" + hash: "2f95623085afc48094f122c290566440" } Frame { msec: 4656 - hash: "f8542ff33dbad93ed51a0801bd8af778" + hash: "8f671bd7878b897593eb8ae0358c8a01" } Frame { msec: 4672 - hash: "8bed907fe5b04eec118ac4e7759386ae" + hash: "64cf5c749c85d0e42b6c99f31da955b8" } Frame { msec: 4688 - hash: "d84facac927215d8d83bd9e375fbace1" + hash: "22e3394e779e25cc0d6c05bd2c6159d5" } Frame { msec: 4704 - hash: "f1c8b7dc9897713487fcc62c697f41ff" + hash: "42bc5633692228e48aa3ce3e3d8a7bbe" } Frame { msec: 4720 - hash: "611c45384b2abd883a4e3ec3bb30ebd3" + hash: "4dd05fce6984dbc6b6764b5e4189fd94" } Frame { msec: 4736 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4752 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4768 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4784 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4800 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4816 @@ -1794,62 +1794,62 @@ VisualTest { } Frame { msec: 4832 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4848 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4864 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4880 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4896 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4912 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4928 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4944 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4960 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4976 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 4992 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 5008 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 5024 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 5040 - hash: "63e075c2cac3770e657217989cc7d80f" + hash: "ca7b9bc30c728268b338848230a5a859" } Frame { msec: 5056 - hash: "34967fb7248c860643bdc01e0135309f" + hash: "d30be31c0f9d92aeba83ce345551005a" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png index da688c7..af0e781 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png index 618d238..d3e98dc 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png index 0688ed1..9c6c1c3 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png index ec6e330..fc1574a 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png index 1692d17..f76ae14 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png index d70704d..f6b8e83 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png index f8f37c6..be041d8 100644 Binary files a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png and b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png differ diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml index 3828e76..32c2a15 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml @@ -226,7 +226,7 @@ VisualTest { } Frame { msec: 640 - hash: "6cdaa8ffc906ade671fe259711e76f24" + hash: "51c14d87d2cf89aaece5bd682008f67f" } Mouse { type: 5 @@ -258,7 +258,7 @@ VisualTest { } Frame { msec: 672 - hash: "76fdf4cb75376ec3a9e084d93765c5cb" + hash: "1bfd848a89a0477596b77903a173f728" } Mouse { type: 5 @@ -286,15 +286,15 @@ VisualTest { } Frame { msec: 688 - hash: "b12e86c13e012c5992930b3e559c337c" + hash: "f66f04b42b0db33b852a82030d647886" } Frame { msec: 704 - hash: "4056e78a59e8f1e030f3e3a51c436b46" + hash: "e1573c6fd92f0fc4e267a37f417d0bc0" } Frame { msec: 720 - hash: "c84781b7586943ef889b8911c23e91db" + hash: "017044987c781ad8bb4cd8242f9091ed" } Frame { msec: 736 @@ -306,7 +306,7 @@ VisualTest { } Frame { msec: 768 - hash: "ef6319b262fc299b14b40d1521f9c9c3" + hash: "cb9e1ef51c8367e0b8c71cfdb70906fa" } Frame { msec: 784 @@ -326,11 +326,11 @@ VisualTest { } Frame { msec: 848 - hash: "2e01e2e252ca9fb3e7107f04a3ba4031" + hash: "c684dc3153314fe3a73fa0dd09f27695" } Frame { msec: 864 - hash: "547a9f25404c2bf7737526faf67a459d" + hash: "f1d5e911a68f9922f29bb6ae14234da9" } Frame { msec: 880 @@ -490,7 +490,7 @@ VisualTest { } Frame { msec: 1248 - hash: "ac97616fc3c54711bb067cc72c15d4c5" + hash: "1cea77e58dbf1c9f321eab2f01f37be0" } Mouse { type: 5 @@ -554,7 +554,7 @@ VisualTest { } Frame { msec: 1312 - hash: "4e0a90dda433c1615ea367ec90917409" + hash: "11717eaf13ac83760984afa47bbd52f7" } Frame { msec: 1328 @@ -566,7 +566,7 @@ VisualTest { } Frame { msec: 1360 - hash: "0abbf36b5e3f2db9288bde05825dc111" + hash: "514d400cdc9c356a0de3c04649d885dc" } Frame { msec: 1376 @@ -574,11 +574,11 @@ VisualTest { } Frame { msec: 1392 - hash: "430d7719ebf3b5835af92683cff10e56" + hash: "ab04af0d0f0f0d4538ec58841306cea7" } Frame { msec: 1408 - hash: "411a8fe1ee3a0510574cbf6a69d23456" + hash: "5cbc813c467b453c3e8de177aaede5b6" } Frame { msec: 1424 @@ -602,7 +602,7 @@ VisualTest { } Frame { msec: 1504 - hash: "cf360de1c6649e45beb974ddbe436ea9" + hash: "24421668a7814c3db8b7d1e50d2e9137" } Frame { msec: 1520 @@ -626,11 +626,11 @@ VisualTest { } Frame { msec: 1600 - hash: "faf898388f87948fbacd74589cb18af0" + hash: "a4a436b32e96fe5f9c3309bd1cabe65a" } Frame { msec: 1616 - hash: "b818181b3fee6f5a35a0da6c0f8e240e" + hash: "cb801c9d2b7f04a0413898ea74c61f80" } Mouse { type: 2 @@ -694,7 +694,7 @@ VisualTest { } Frame { msec: 1680 - hash: "684a17820c3693d893f8199cd7c7076f" + hash: "38e396c6fa5754d0070e4fd17ab2dc8b" } Frame { msec: 1696 @@ -714,15 +714,15 @@ VisualTest { } Frame { msec: 1760 - hash: "c36b60f81e7de5c0e5a59655041adff2" + hash: "ba1a6b8e55d7c5d73b371c8821f8caa2" } Frame { msec: 1776 - hash: "297abbc6b38a1909324fcee6d8b1d908" + hash: "ec19910e0f7b3e218d5a1992a7d00c4a" } Frame { msec: 1792 - hash: "0af89e3bab7c517f375897239ea35153" + hash: "7ca87adb6f69c5530be9da6df6b1d9a9" } Frame { msec: 1808 @@ -730,27 +730,27 @@ VisualTest { } Frame { msec: 1824 - hash: "57e1e871cbbc627f2fb9bf5583c4f097" + hash: "3da4fe69c1d6904a36d95bcd43f52195" } Frame { msec: 1840 - hash: "5220aecdd1516d94f0698e79f17fee57" + hash: "3cdb89ceb3ee66349b8a19301cc58e3d" } Frame { msec: 1856 - hash: "f3d8c908e61e5d61bbeeb9c6b5e8a704" + hash: "98088442867a0f1ec90144c531c9c5fb" } Frame { msec: 1872 - hash: "f27867aeb39ef64ebd50b5d79b69337e" + hash: "22d87a7d6409e2ce659a869dce57eef8" } Frame { msec: 1888 - hash: "b807b4e74a0f008df3f4534901debe38" + hash: "c1466f188c724c889017db70e2d60153" } Frame { msec: 1904 - hash: "e19832a0a7fcd57efe46cb0102a8d418" + hash: "e5392d308078449277be8d2f57561551" } Frame { msec: 1920 @@ -762,15 +762,15 @@ VisualTest { } Frame { msec: 1952 - hash: "746c60e03c50dc2e28c62fe52a8dd9d2" + hash: "8d6a232f303e48c9366dbf265cedf958" } Frame { msec: 1968 - hash: "27d6da44b605cb38552147fdf451ef45" + hash: "c6bc2031a4c59eb7a5b34e663252e91c" } Frame { msec: 1984 - hash: "c41d5491c417531ee86ac6ec8571c6a8" + hash: "bf8be42cdcdcfd205c8cb7e937ff5d0d" } Frame { msec: 2000 @@ -782,11 +782,11 @@ VisualTest { } Frame { msec: 2032 - hash: "0850d4b73a664ee0f1ed6d6e0615ea80" + hash: "9a2c8dd1883824415f5825a2a5cf3d09" } Frame { msec: 2048 - hash: "ae6cb0bfda1cea70b3641251d0dc60c4" + hash: "78e31d9b30619ee5774d3cf10b5af762" } Frame { msec: 2064 @@ -798,7 +798,7 @@ VisualTest { } Frame { msec: 2096 - hash: "2081c1ffe35f20dd827b3d9f52be90b3" + hash: "6a2f7dde022d4044e8772b8fcc28b02e" } Frame { msec: 2112 @@ -806,11 +806,11 @@ VisualTest { } Frame { msec: 2128 - hash: "7f289e50f1bbd570b6bc2ca1998f8493" + hash: "662402cd180eb325c174b6935a9d3f0a" } Frame { msec: 2144 - hash: "8bb3a37f416032d40cb5f919abb42e30" + hash: "8eb192c9d01fe205ddcba2d5cadab65f" } Frame { msec: 2160 @@ -818,7 +818,7 @@ VisualTest { } Frame { msec: 2176 - hash: "d3e8aae08a2518c039d6bda80fc520a4" + hash: "bc0ee50215b6b31422ee423f7955770c" } Frame { msec: 2192 @@ -826,11 +826,11 @@ VisualTest { } Frame { msec: 2208 - hash: "8eebcff152288a4ab2a3e64fd7ba6f80" + hash: "0ce5216f041f657a96ae4693319bfad3" } Frame { msec: 2224 - hash: "85fe363271d480163fb7847a3501472f" + hash: "0370a09ab78439e9df487ea55853ef98" } Frame { msec: 2240 @@ -854,15 +854,15 @@ VisualTest { } Frame { msec: 2320 - hash: "029428301287e4c7cd2f8a1fa6a25381" + hash: "44ecad3423a36882755fad6fb79bc2c8" } Frame { msec: 2336 - hash: "aef25177af3511dc99004a1e37f7f5d3" + hash: "b3eaadeb9d3b008fcf21c58158e8b028" } Frame { msec: 2352 - hash: "f9e11fd7023a72366dacaaf19b2eb81c" + hash: "110b000fa3e122560480d466fe231b21" } Frame { msec: 2368 @@ -874,7 +874,7 @@ VisualTest { } Frame { msec: 2400 - hash: "39df3050c4100e8a4f6e648b4aa16ba7" + hash: "65c1f85d2086f5e6d95d9b99a84281a5" } Frame { msec: 2416 @@ -882,7 +882,7 @@ VisualTest { } Frame { msec: 2432 - hash: "54d50f6c980cb04a1634622a29a6f0e9" + hash: "f00ea591d697546b5afe4420b702db49" } Frame { msec: 2448 @@ -1274,7 +1274,7 @@ VisualTest { } Frame { msec: 3264 - hash: "849ffa1fdd718a48e9570b88987f9203" + hash: "dc7f5231d844b36e1429f1072080a60c" } Mouse { type: 5 @@ -1294,7 +1294,7 @@ VisualTest { } Frame { msec: 3280 - hash: "d497eff3c8879d30619630e7ffcbf5c9" + hash: "161410fe9eb458c717cfbb9ef0626535" } Mouse { type: 5 @@ -1314,7 +1314,7 @@ VisualTest { } Frame { msec: 3296 - hash: "b0679dfe2f631e41f5cc269bd16d742c" + hash: "91a884de3e19dc6ca7fcde32492b3ff1" } Mouse { type: 5 @@ -1354,7 +1354,7 @@ VisualTest { } Frame { msec: 3328 - hash: "ea3cff28ff3be273332b19a2b8acb95e" + hash: "ed299cd4ef2364ab1d7b702e2b0a7233" } Mouse { type: 5 @@ -1374,7 +1374,7 @@ VisualTest { } Frame { msec: 3344 - hash: "458decd62af57d333a07459c89e62393" + hash: "4346ad16720e853154bfc1a22d9e7f55" } Mouse { type: 5 @@ -1422,11 +1422,11 @@ VisualTest { } Frame { msec: 3408 - hash: "0f53231de64ac5b0503e92ad10155dea" + hash: "fb7b31720b9de8d820ce29d9861482dd" } Frame { msec: 3424 - hash: "f2be693c23ea0885d6e8180c3062ba76" + hash: "4bb82c8b498b41e0785bea6b2c52b5e6" } Frame { msec: 3440 @@ -1434,7 +1434,7 @@ VisualTest { } Frame { msec: 3456 - hash: "ba86efade16e8965f59f6257ae90d131" + hash: "04f3c7a5cb270405446cbb85da8c1c16" } Frame { msec: 3472 @@ -1446,23 +1446,23 @@ VisualTest { } Frame { msec: 3504 - hash: "c822447614f47b5e15ffad967964a061" + hash: "3b0dce0a781799bd24073a6dc9717f68" } Frame { msec: 3520 - hash: "5eb2e64f11847cc9360291e14e866611" + hash: "1f6fc9f37a02e54418d90307f06c5b6f" } Frame { msec: 3536 - hash: "545dcc2645b50d78c84c658880d0500c" + hash: "a1116c06874af67ff54d69009f78d4da" } Frame { msec: 3552 - hash: "9d984e07b99137b3cb57dd4df16b8237" + hash: "4717c402fc7ad0d3f44b9944672d2746" } Frame { msec: 3568 - hash: "da27085e7a3cccde7cc3db2d9c6cc2cd" + hash: "7a180273295e9a30f5e26cdb080b87f2" } Frame { msec: 3584 @@ -1470,7 +1470,7 @@ VisualTest { } Frame { msec: 3600 - hash: "bfb5ed7b65f36d80e3156560a0ec58b7" + hash: "3cee427f42e8ccd33e9fccd903ae6f1d" } Frame { msec: 3616 @@ -1478,7 +1478,7 @@ VisualTest { } Frame { msec: 3632 - hash: "1c36be8deb2079ed81f1718c92e44803" + hash: "25779cf68847c0a132ea4aed6a5ef4d3" } Frame { msec: 3648 @@ -1490,11 +1490,11 @@ VisualTest { } Frame { msec: 3680 - hash: "1551c4aae06a258bdadc9ef356724871" + hash: "9f3c20980b481806ce7c1b33c177a049" } Frame { msec: 3696 - hash: "526aec43f710e524d247f8a4b08c261c" + hash: "5fb403dc08f95fb0651dcd33d32ef6c0" } Mouse { type: 2 @@ -1514,7 +1514,7 @@ VisualTest { } Frame { msec: 3712 - hash: "b50ef7198c1831623ed2210e651ac618" + hash: "c6422e39ed268dd67846e55908bc6f21" } Mouse { type: 5 @@ -1586,7 +1586,7 @@ VisualTest { } Frame { msec: 3776 - hash: "ecf04273061af5f881925f3a33015fbb" + hash: "8c30751e1d1e443b5ad217151e8e8fc8" } Mouse { type: 5 @@ -1626,7 +1626,7 @@ VisualTest { } Frame { msec: 3808 - hash: "4a1dbbac65a3caac16b38c45be61003c" + hash: "e621e9486e10332d937417a0b6be6be7" } Mouse { type: 5 @@ -1706,7 +1706,7 @@ VisualTest { } Frame { msec: 3872 - hash: "fd2eab6b3a65713f057da22a412512c7" + hash: "f6495f86ae29c7a996b3302300e98f75" } Mouse { type: 5 @@ -1766,7 +1766,7 @@ VisualTest { } Frame { msec: 3920 - hash: "fd18bd5f8f09c995f122b8b4ecb80279" + hash: "3a303646ea0fd126ee00c847efa48d0c" } Mouse { type: 5 @@ -1854,7 +1854,7 @@ VisualTest { } Frame { msec: 4016 - hash: "b00b78122721ddcded2c7131cfe40d53" + hash: "3cc1355449b8ec7209537fedb0af43b1" } Frame { msec: 4032 @@ -1862,7 +1862,7 @@ VisualTest { } Frame { msec: 4048 - hash: "076fefc33455667af954dcc5a06017d3" + hash: "2f4e6b57c6a4fa1689e585214f35702a" } Frame { msec: 4064 @@ -1870,19 +1870,19 @@ VisualTest { } Frame { msec: 4080 - hash: "12e6711077da076b737aef1aaa336d42" + hash: "68165bd37b4cb1609d686a361ae54e06" } Frame { msec: 4096 - hash: "1e19329fb839a00faa3b95d13b7a9015" + hash: "436e81734e23502ef8604145d5892c41" } Frame { msec: 4112 - hash: "7469fb57ce0b7ea9a7cc6da14f6a245a" + hash: "93f005a5a6a989db3e1702fa4f11f6ee" } Frame { msec: 4128 - hash: "17e3aca0838e2ba75cc9b869bb969220" + hash: "7d00d2a606d92cb8c0726c14cba0f989" } Frame { msec: 4144 @@ -1994,7 +1994,7 @@ VisualTest { } Frame { msec: 4448 - hash: "a29d4b3fa16829823e63bf83e7b62aff" + hash: "96815da788d9968a173e7005d3ca8bff" } Mouse { type: 5 @@ -2014,7 +2014,7 @@ VisualTest { } Frame { msec: 4464 - hash: "d8f9d016318e0bd38d4654b4850da952" + hash: "6949c70729c3e43bc59cc12d4bb82d8f" } Mouse { type: 5 @@ -2034,7 +2034,7 @@ VisualTest { } Frame { msec: 4480 - hash: "13a2382e08ab10ecb40f9c24c682a797" + hash: "26ce66ebfa6eec9eab4d987ef4ec5d5f" } Mouse { type: 5 @@ -2054,7 +2054,7 @@ VisualTest { } Frame { msec: 4496 - hash: "cef145c5d105466f3913bb81bb2b58df" + hash: "46e206837a34ba4d418c4e1098b49fd8" } Mouse { type: 5 @@ -2074,7 +2074,7 @@ VisualTest { } Frame { msec: 4512 - hash: "9bc0a21266bebbf8fc3509e5f92dd77f" + hash: "ac7451dcd3f1359ca2850bd986c22994" } Mouse { type: 5 @@ -2086,7 +2086,7 @@ VisualTest { } Frame { msec: 4528 - hash: "e419dbe857667b014e4dd9b57b01bbe4" + hash: "f9179ba9c011bc1492daf0d22f7e85e0" } Mouse { type: 5 @@ -2098,7 +2098,7 @@ VisualTest { } Frame { msec: 4544 - hash: "411cb7a7f331161059faba4ae6549229" + hash: "8db5ba9548ecad76b889d9024f59b5cf" } Mouse { type: 5 @@ -2110,7 +2110,7 @@ VisualTest { } Frame { msec: 4560 - hash: "b008d6b2b444881c36521595f6b31539" + hash: "30375b9f69ca4ac1b67ff208fd18817f" } Mouse { type: 5 @@ -2122,7 +2122,7 @@ VisualTest { } Frame { msec: 4576 - hash: "77fcc3c74c3832ae6b80aec420cb06e0" + hash: "3ba2bd45231cdea3bd9f868c9d35f91e" } Mouse { type: 5 @@ -2142,59 +2142,59 @@ VisualTest { } Frame { msec: 4592 - hash: "41d1c54bc76caeae057fb1bdb3b93843" + hash: "50646478058ada031f29b5df661e734e" } Frame { msec: 4608 - hash: "03fdd91b352798b1ff958c23c0bc5f35" + hash: "ab6f2fb209650dbf83710f3299db8907" } Frame { msec: 4624 - hash: "2098ea8b55b54ca8dd648fb285c43ebf" + hash: "dbec24d44d19b834e9a4936c960c4295" } Frame { msec: 4640 - hash: "9929c509654819fd04da4e4b5c8e22b4" + hash: "09c41872193e4a6eab37b35ef4e90465" } Frame { msec: 4656 - hash: "c470d3a57c6b56f9f56b176823b27d53" + hash: "1778dc99de59e28a730a1439a7576abb" } Frame { msec: 4672 - hash: "37474b3a23f90dafee6b9e0043a702fa" + hash: "6dbbdb5b4e6c6870b5dd62b1b94f9dd3" } Frame { msec: 4688 - hash: "0fbb6a9fded011b010fa6f3a2819630c" + hash: "3b5cf826c12339c0c635ae1ffcd431e7" } Frame { msec: 4704 - hash: "6c5a7dad864999548257e4bf0ddc3687" + hash: "6d6068c26eea67214fd3529ab84ab5b5" } Frame { msec: 4720 - hash: "339bc42e559c66d07f37af5e06feacef" + hash: "54cbc4842acb46254746984936656c5b" } Frame { msec: 4736 - hash: "513dc773dc93275e32fa9ac61e6dcb46" + hash: "10707bae5274ad29ac3e4aea320a30bf" } Frame { msec: 4752 - hash: "b725c84435b1f387dc3f375280e39de6" + hash: "ad288c8afc21a87077bae47cbaed1a46" } Frame { msec: 4768 - hash: "f3d04b513df286aacb9ebdb107d7a0b4" + hash: "bc1c391b0d7a56276b7c082aa2882e47" } Frame { msec: 4784 - hash: "c22839005ed0cb6b2fa9c958d17fd948" + hash: "c62341687ca048da1551eb708c7e8a19" } Frame { msec: 4800 - hash: "2fb9a2d5d22a6d0ed567328ffaa512f0" + hash: "1a4e3bb688d6fcfe937f53f8179b21e0" } Frame { msec: 4816 @@ -2202,115 +2202,115 @@ VisualTest { } Frame { msec: 4832 - hash: "ba13b0b4790aec7084b5553fe0b0d72b" + hash: "0646877fe2f6935ca4b34495abed5919" } Frame { msec: 4848 - hash: "2bc983733d4004cc67a56d77e9f48e5d" + hash: "46899d9c0a188671d9b7ec01c827ad03" } Frame { msec: 4864 - hash: "0f729cbe41b155b6eef20a4be207b853" + hash: "85cd8aa6dfa28c5d2e10f1ff83644d8f" } Frame { msec: 4880 - hash: "c2ca47a7d70ef827029b32c11a052b83" + hash: "323711ddd10147f51d903f524195b9fe" } Frame { msec: 4896 - hash: "803aefca7f1cbd494d2d2f7e7eea9a3f" + hash: "ba6b46ac25a4f111c926522fc47d7367" } Frame { msec: 4912 - hash: "2641683e1fa9ed418ac89631be7922f1" + hash: "5dab5804d66b6aa8e4f73246c3b19557" } Frame { msec: 4928 - hash: "3d9370305ca147625828f7ee3b34ca33" + hash: "2cac21d8e33bc01431a6aedabba3ce18" } Frame { msec: 4944 - hash: "5cdfdd22a0dc1ed78035ae4b5e2e26a7" + hash: "e1edf4268e206a40543d1a6caa4d0b43" } Frame { msec: 4960 - hash: "2af663981b43dbe699849eff4731829a" + hash: "4989e920c0d173e68c3de730a5f4f877" } Frame { msec: 4976 - hash: "b159d3a09666327bd2d860bf56920734" + hash: "9840b722350840b56b096fda3a70f8e8" } Frame { msec: 4992 - hash: "a1ed6f686f4cda9aa59bfd49deb8a075" + hash: "261b7a66300ff2a9b761dd70d02ed490" } Frame { msec: 5008 - hash: "c5f1862e7cbb1dcd6b303e58c525ab5c" + hash: "7b6ffb01c050c31bfb433077c8336ed9" } Frame { msec: 5024 - hash: "3cc5e5d87067978961eee6e7b33ada06" + hash: "f8a20f8fe943b498dae9ba8fed113496" } Frame { msec: 5040 - hash: "74f3b0eae443bd9f171020fd973ca960" + hash: "e66b0f50bae2d0bba73f415af2c8dba1" } Frame { msec: 5056 - hash: "432037812ab1a09e0d0b32dfaf0f876e" + hash: "c82bb5035ff84c955f34f1189dcdbda4" } Frame { msec: 5072 - hash: "0eec7146b8df3b4892e89abd13b8bc9d" + hash: "8fce2628032b2a1f16373e721671ab8c" } Frame { msec: 5088 - hash: "a01dc5f4b4307aa66068d21159dd64d5" + hash: "e260e978d88301448eb56145e0fdfd07" } Frame { msec: 5104 - hash: "11eefdf5b1be8493a6ed9aaf519c7e17" + hash: "7c5d5bfdabf8b7f1d01fb1761ec976b3" } Frame { msec: 5120 - hash: "55ed797b82f5bca2ac2b5954c44c041e" + hash: "eeb8f15a4cbecf4013f48015ebb1840d" } Frame { msec: 5136 - hash: "498d4ca9faabf8b59e2359b60dc1aff2" + hash: "fb7bbed845f6fd5648c73431b0e4f65a" } Frame { msec: 5152 - hash: "78895368b141ab6d3a16f65f4389b2d5" + hash: "6e944ef5057031fc6a56ea27036c953a" } Frame { msec: 5168 - hash: "c73b27167bad79f3f3c5ebb64fa579c2" + hash: "0f96b7d876cb893081606ff93f7cf5c7" } Frame { msec: 5184 - hash: "fb05312d65155f0300f456d727698b80" + hash: "5904e4105e1108427a2826f24f82b293" } Frame { msec: 5200 - hash: "6e974736a0ecea6a71c1a7052a14fa20" + hash: "79a79fd11348a5a250d132a151446711" } Frame { msec: 5216 - hash: "f5daf5bec03d3e56c877e9b2dc5701b6" + hash: "edfed341f047b923aea434a3c31c8c27" } Frame { msec: 5232 - hash: "29793d2147563feb9ed0ebff18b303cd" + hash: "06e8e9e202b395dc3b230b1b7a982bf8" } Frame { msec: 5248 - hash: "5b63dfa3cb7ac0847f2e63f9d2a0b2b6" + hash: "d2ba2520683cdb64d366ab44a54b4668" } Frame { msec: 5264 - hash: "cf2f42dd9830d80f50df30e93a0b1ad2" + hash: "94b1e8a018f17f761de164a8acf4d68a" } Frame { msec: 5280 -- cgit v0.12 From 0faab4442040fdfe3790e3c02808fd45993f0265 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Mon, 10 Jan 2011 10:25:42 +0100 Subject: Compile when qreal != double Compile fix for devices where qreals are floats. Reviewed-by: Fabien Freling --- src/gui/text/qtextdocumentlayout.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index 22c6b8c..c0f3fb4 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -2513,7 +2513,7 @@ static inline void getLineHeightParams(const QTextBlockFormat &blockFormat, cons if (blockFormat.lineHeightType() == QTextBlockFormat::FixedHeight || blockFormat.lineHeightType() == QTextBlockFormat::MinimumHeight) { *lineBreakHeight = *lineHeight; if (blockFormat.lineHeightType() == QTextBlockFormat::FixedHeight) - *lineAdjustment = QFixed::fromReal(line.ascent() + qMax(line.leading(), 0.0)) - ((*lineHeight * 4) / 5); + *lineAdjustment = QFixed::fromReal(line.ascent() + qMax(line.leading(), qreal(0.0))) - ((*lineHeight * 4) / 5); else *lineAdjustment = QFixed::fromReal(line.height()) - *lineHeight; } -- cgit v0.12 From 963ada5805d61e318a04295b6d06e527b49cdb7a Mon Sep 17 00:00:00 2001 From: Jerome Pasion Date: Mon, 10 Jan 2011 11:06:48 +0100 Subject: Fix for qtdemo bug Task-number: QTBUG-15931 Reviewed-by: Kevin Wright --- tools/qdoc3/test/qt-html-templates.qdocconf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/qdoc3/test/qt-html-templates.qdocconf b/tools/qdoc3/test/qt-html-templates.qdocconf index 698164d..ff45451 100644 --- a/tools/qdoc3/test/qt-html-templates.qdocconf +++ b/tools/qdoc3/test/qt-html-templates.qdocconf @@ -74,8 +74,8 @@ HTML.postheader = "
\n" \ " \n" \ "
\n" \ " Close \n" \ - "

All | API | Articles | Examples

\n" \ - "

 results:

\n" \ + " \n" \ "
    \n" \ "
\n" \ "
\n" \ @@ -183,4 +183,4 @@ HTML.footer = "" \ " \n" \ "
\n" \ "
\n" \ - "
\n" \ No newline at end of file + " \n" -- cgit v0.12 From 2b1b617664bfc78f6e95e53dc0f9749bd1f2d27a Mon Sep 17 00:00:00 2001 From: Shane Kearns Date: Fri, 7 Jan 2011 15:57:28 +0000 Subject: Fix handle leak in symbian QTimer implementation The timer handle was only being closed when a timer was cancelled, which resulted in a leak for one shot timers that have completed normally. Instead the timer is now closed in a destructor (closing null handles is safe, so it doesn't matter if the handle was never created - e.g. in the case of a zero timer) Also added a handle check before creating a timer to prevent a leak in case the start function is called twice in the backend. Task-number: QTBUG-16380 Reviewed-by: mread --- src/corelib/kernel/qeventdispatcher_symbian.cpp | 6 ++-- tests/auto/qtimer/tst_qtimer.cpp | 38 +++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp index bb9bd01..99c4087 100644 --- a/src/corelib/kernel/qeventdispatcher_symbian.cpp +++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp @@ -217,13 +217,13 @@ QTimerActiveObject::QTimerActiveObject(QEventDispatcherSymbian *dispatcher, Symb QTimerActiveObject::~QTimerActiveObject() { Cancel(); + m_rTimer.Close(); //close of null handle is safe } void QTimerActiveObject::DoCancel() { if (m_timerInfo->interval > 0) { m_rTimer.Cancel(); - m_rTimer.Close(); } else { if (iStatus.Int() == KRequestPending) { TRequestStatus *status = &iStatus; @@ -302,7 +302,9 @@ void QTimerActiveObject::Start() CActiveScheduler::Add(this); m_timerInfo->msLeft = m_timerInfo->interval; if (m_timerInfo->interval > 0) { - m_rTimer.CreateLocal(); + if (!m_rTimer.Handle()) { + qt_symbian_throwIfError(m_rTimer.CreateLocal()); + } StartTimer(); } else { iStatus = KRequestPending; diff --git a/tests/auto/qtimer/tst_qtimer.cpp b/tests/auto/qtimer/tst_qtimer.cpp index 102308e..e964728 100644 --- a/tests/auto/qtimer/tst_qtimer.cpp +++ b/tests/auto/qtimer/tst_qtimer.cpp @@ -90,6 +90,9 @@ private slots: void QTBUG13633_dontBlockEvents(); void postedEventsShouldNotStarveTimers(); +#ifdef Q_OS_SYMBIAN + void handleLeaks(); +#endif }; class TimerHelper : public QObject @@ -750,5 +753,40 @@ void tst_QTimer::postedEventsShouldNotStarveTimers() QVERIFY(timerHelper.count > 5); } +#ifdef Q_OS_SYMBIAN +void tst_QTimer::handleLeaks() +{ + const int timercount = 5; + int processhandles_start; + int threadhandles_start; + RThread().HandleCount(processhandles_start, threadhandles_start); + { + TimerHelper timerHelper; + QList timers; + for (int i=0;isetSingleShot(true); + timer->start(i); //test both zero and normal timeouts + } + int processhandles_mid; + int threadhandles_mid; + RThread().HandleCount(processhandles_mid, threadhandles_mid); + qDebug() << threadhandles_mid - threadhandles_start << "new thread owned handles"; + QTest::qWait(100); + QCOMPARE(timerHelper.count, timercount); + qDeleteAll(timers); + } + int processhandles_end; + int threadhandles_end; + RThread().HandleCount(processhandles_end, threadhandles_end); + QCOMPARE(threadhandles_end, threadhandles_start); //RTimer::CreateLocal creates a thread owned handle + //Can not verify process handles because QObject::connect may create up to 2 mutexes + //from a QMutexPool (4 process owned handles with open C imp.) + //QCOMPARE(processhandles_end, processhandles_start); +} +#endif + QTEST_MAIN(tst_QTimer) #include "tst_qtimer.moc" -- cgit v0.12 From 7471178137e6fcc193ba55acdfb2bbeed33f8e7a Mon Sep 17 00:00:00 2001 From: Niklas Kurkisuo Date: Mon, 10 Jan 2011 12:17:27 +0100 Subject: Change QHostInfoCache to use QElapsedTime instead of QTime. Use QElapsedTime instead of QTime for performance gain. See QT-2965 for more info. Task-number: QTBUG-16468 Reviewed-by: Markus Goetz --- src/network/kernel/qhostinfo.cpp | 2 +- src/network/kernel/qhostinfo_p.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/network/kernel/qhostinfo.cpp b/src/network/kernel/qhostinfo.cpp index f984cf8..0c0e1cd 100644 --- a/src/network/kernel/qhostinfo.cpp +++ b/src/network/kernel/qhostinfo.cpp @@ -740,7 +740,7 @@ void QHostInfoCache::put(const QString &name, const QHostInfo &info) QHostInfoCacheElement* element = new QHostInfoCacheElement(); element->info = info; - element->age = QTime(); + element->age = QElapsedTimer(); element->age.start(); QMutexLocker locker(&this->mutex); diff --git a/src/network/kernel/qhostinfo_p.h b/src/network/kernel/qhostinfo_p.h index 85d14c2..8814bd8 100644 --- a/src/network/kernel/qhostinfo_p.h +++ b/src/network/kernel/qhostinfo_p.h @@ -68,7 +68,7 @@ #include "QtCore/qrunnable.h" #include "QtCore/qlist.h" #include "QtCore/qqueue.h" -#include +#include #include #endif @@ -135,7 +135,7 @@ private: bool enabled; struct QHostInfoCacheElement { QHostInfo info; - QTime age; + QElapsedTimer age; }; QCache cache; QMutex mutex; -- cgit v0.12 From 13370ead4e9184fd82c08c060dbb1ea29a51cc7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Abecasis?= Date: Mon, 10 Jan 2011 12:39:16 +0100 Subject: Fix reversed condition introduced in 9a6cfc07e5 Reviewed-by: Bradley T. Hughes --- src/corelib/thread/qsemaphore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/thread/qsemaphore.cpp b/src/corelib/thread/qsemaphore.cpp index 15f45b6..5fa41f1 100644 --- a/src/corelib/thread/qsemaphore.cpp +++ b/src/corelib/thread/qsemaphore.cpp @@ -224,7 +224,7 @@ bool QSemaphore::tryAcquire(int n, int timeout) timer.start(); while (n > d->avail) { const qint64 elapsed = timer.elapsed(); - if (timeout - elapsed > 0 + if (timeout - elapsed <= 0 || !d->cond.wait(locker.mutex(), timeout - elapsed)) return false; } -- cgit v0.12 From 2c0f568061b3377ee55ff423c70d67a6341615ba Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Mon, 10 Jan 2011 14:00:59 +0100 Subject: tst_qhttpnetworkconnection: Compile fix --- .../qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp b/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp index 4a32a5a..321b787 100644 --- a/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp +++ b/tests/auto/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp @@ -178,7 +178,7 @@ void tst_QHttpNetworkConnection::head() QHttpNetworkConnection connection(host, port, encrypt); QCOMPARE(connection.port(), port); QCOMPARE(connection.hostName(), host); - QCOMPARE(connection.isEncrypted(), encrypt); + QCOMPARE(connection.isSsl(), encrypt); QHttpNetworkRequest request(protocol + host + path, QHttpNetworkRequest::Head); QHttpNetworkReply *reply = connection.sendRequest(request); @@ -236,7 +236,7 @@ void tst_QHttpNetworkConnection::get() QHttpNetworkConnection connection(host, port, encrypt); QCOMPARE(connection.port(), port); QCOMPARE(connection.hostName(), host); - QCOMPARE(connection.isEncrypted(), encrypt); + QCOMPARE(connection.isSsl(), encrypt); QHttpNetworkRequest request(protocol + host + path); QHttpNetworkReply *reply = connection.sendRequest(request); @@ -314,7 +314,7 @@ void tst_QHttpNetworkConnection::put() QHttpNetworkConnection connection(host, port, encrypt); QCOMPARE(connection.port(), port); QCOMPARE(connection.hostName(), host); - QCOMPARE(connection.isEncrypted(), encrypt); + QCOMPARE(connection.isSsl(), encrypt); QHttpNetworkRequest request(protocol + host + path, QHttpNetworkRequest::Put); @@ -402,7 +402,7 @@ void tst_QHttpNetworkConnection::post() QHttpNetworkConnection connection(host, port, encrypt); QCOMPARE(connection.port(), port); QCOMPARE(connection.hostName(), host); - QCOMPARE(connection.isEncrypted(), encrypt); + QCOMPARE(connection.isSsl(), encrypt); QHttpNetworkRequest request(protocol + host + path, QHttpNetworkRequest::Post); @@ -539,7 +539,7 @@ void tst_QHttpNetworkConnection::get401() QHttpNetworkConnection connection(host, port, encrypt); QCOMPARE(connection.port(), port); QCOMPARE(connection.hostName(), host); - QCOMPARE(connection.isEncrypted(), encrypt); + QCOMPARE(connection.isSsl(), encrypt); connection.setProperty("setCredentials", setCredentials); connection.setProperty("username", username); connection.setProperty("password", password); @@ -609,7 +609,7 @@ void tst_QHttpNetworkConnection::compression() QHttpNetworkConnection connection(host, port, encrypt); QCOMPARE(connection.port(), port); QCOMPARE(connection.hostName(), host); - QCOMPARE(connection.isEncrypted(), encrypt); + QCOMPARE(connection.isSsl(), encrypt); QHttpNetworkRequest request(protocol + host + path); if (!autoCompress) @@ -701,7 +701,7 @@ void tst_QHttpNetworkConnection::ignoresslerror() QCOMPARE(connection.hostName(), host); if (ignoreInit) connection.ignoreSslErrors(); - QCOMPARE(connection.isEncrypted(), encrypt); + QCOMPARE(connection.isSsl(), encrypt); connection.setProperty("ignoreFromSignal", ignoreFromSignal); QHttpNetworkRequest request(protocol + host + path); -- cgit v0.12 From 7b49c37db01ca8f6308cead2b7209a7b480a5446 Mon Sep 17 00:00:00 2001 From: Adrian Constantin Date: Mon, 10 Jan 2011 12:27:35 +0200 Subject: For non-developer builds, skip test that requires private API Fix build break on harmattan. Reviewed-by: Lucian Varlan --- tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp index 6548158..0003eb6 100644 --- a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp +++ b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp @@ -433,6 +433,9 @@ void tst_QNetworkCookieJar::effectiveTLDs_data() void tst_QNetworkCookieJar::effectiveTLDs() { +#ifndef QT_BUILD_INTERNAL + QSKIP("Test requires private API", SkipAll); +#endif QFETCH(QString, domain); QFETCH(bool, isTLD); QCOMPARE(QNetworkCookieJarPrivate::isEffectiveTLD(domain), isTLD); -- cgit v0.12 From d62e9f4a6fe199ae790b1561fd4ba9ea84bd4d1e Mon Sep 17 00:00:00 2001 From: Jani Hautakangas Date: Mon, 10 Jan 2011 13:22:15 +0200 Subject: Setting WA_TranslucentBackground after winid() is ineffective on Symbian. Currently Symbian doesn't support semi-transparent EGL surfaces. WA_TranslucentBackground attribute is ineffective if set after EGL surface creation. To enable translucency in this case we need to recreate backing store to get raster surface which supports translucency. Task-number: QT-4416 Reviewed-by: Jason Barron --- src/gui/kernel/qwidget_s60.cpp | 8 ++++++++ src/gui/painting/qgraphicssystem_runtime.cpp | 3 ++- src/plugins/graphicssystems/openvg/qgraphicssystem_vg.cpp | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp index d6ad3c3..d55c21e 100644 --- a/src/gui/kernel/qwidget_s60.cpp +++ b/src/gui/kernel/qwidget_s60.cpp @@ -780,6 +780,14 @@ void QWidgetPrivate::s60UpdateIsOpaque() if (window->SetTransparencyAlphaChannel() == KErrNone) { window->SetBackgroundColor(TRgb(255, 255, 255, 0)); extra->topextra->nativeWindowTransparencyEnabled = 1; + + if (extra->topextra->backingStore.data() && + QApplicationPrivate::graphics_system_name == QLatin1String("openvg")) { + // Semi-transparent EGL surfaces aren't supported. We need to + // recreate backing store to get translucent surface (raster surface). + extra->topextra->backingStore.create(q); + extra->topextra->backingStore.registerWidget(q); + } } } else if (extra->topextra->nativeWindowTransparencyEnabled) { window->SetTransparentRegion(TRegionFix<1>()); diff --git a/src/gui/painting/qgraphicssystem_runtime.cpp b/src/gui/painting/qgraphicssystem_runtime.cpp index a9fbbee..db3b0d8 100644 --- a/src/gui/painting/qgraphicssystem_runtime.cpp +++ b/src/gui/painting/qgraphicssystem_runtime.cpp @@ -322,7 +322,6 @@ QRuntimeGraphicsSystem::QRuntimeGraphicsSystem() : m_windowSurfaceDestroyPolicy(DestroyImmediately), m_graphicsSystem(0) { - QApplicationPrivate::graphics_system_name = QLatin1String("runtime"); QApplicationPrivate::runtime_graphics_system = true; #ifdef QT_DEFAULT_RUNTIME_SYSTEM @@ -336,6 +335,8 @@ QRuntimeGraphicsSystem::QRuntimeGraphicsSystem() #endif m_graphicsSystem = QGraphicsSystemFactory::create(m_graphicsSystemName); + + QApplicationPrivate::graphics_system_name = QLatin1String("runtime"); } diff --git a/src/plugins/graphicssystems/openvg/qgraphicssystem_vg.cpp b/src/plugins/graphicssystems/openvg/qgraphicssystem_vg.cpp index 9674233..5f4941f 100644 --- a/src/plugins/graphicssystems/openvg/qgraphicssystem_vg.cpp +++ b/src/plugins/graphicssystems/openvg/qgraphicssystem_vg.cpp @@ -45,11 +45,13 @@ #if defined(Q_OS_SYMBIAN) && !defined(Q_SYMBIAN_SEMITRANSPARENT_BG_SURFACE) #include #endif +#include QT_BEGIN_NAMESPACE QVGGraphicsSystem::QVGGraphicsSystem() { + QApplicationPrivate::graphics_system_name = QLatin1String("openvg"); } QPixmapData *QVGGraphicsSystem::createPixmapData(QPixmapData::PixelType type) const -- cgit v0.12 From ac5c099cc3c5b8c7eec7a49fdeb8a21037230350 Mon Sep 17 00:00:00 2001 From: Jason McDonald Date: Tue, 11 Jan 2011 01:31:53 +1000 Subject: Update copyright year to 2011. Reviewed-by: Trust Me --- LICENSE.LGPL | 2 +- bin/createpackage.bat | 2 +- bin/createpackage.pl | 2 +- bin/patch_capabilities.pl | 2 +- bin/setcepaths.bat | 2 +- bin/syncqt | 2 +- bin/syncqt.bat | 2 +- config.tests/mac/corewlan/corewlantest.mm | 2 +- config.tests/mac/crc/main.cpp | 2 +- config.tests/mac/xcodeversion.cpp | 2 +- config.tests/qws/ahi/ahi.cpp | 2 +- config.tests/qws/directfb/directfb.cpp | 2 +- config.tests/qws/sound/sound.cpp | 2 +- config.tests/qws/svgalib/svgalib.cpp | 2 +- config.tests/symbian/audio/audio.cpp | 2 +- config.tests/symbian/simple/main.cpp | 2 +- config.tests/unix/3dnow/3dnow.cpp | 2 +- config.tests/unix/alsa/alsatest.cpp | 2 +- config.tests/unix/avx/avx.cpp | 2 +- config.tests/unix/clock-gettime/clock-gettime.cpp | 2 +- .../unix/clock-monotonic/clock-monotonic.cpp | 2 +- config.tests/unix/cups/cups.cpp | 2 +- config.tests/unix/db2/db2.cpp | 2 +- config.tests/unix/dbus/dbus.cpp | 2 +- .../unix/doubleformat/doubleformattest.cpp | 2 +- config.tests/unix/egl/egl.cpp | 2 +- config.tests/unix/egl4gles1/egl4gles1.cpp | 2 +- config.tests/unix/endian/endiantest.cpp | 2 +- config.tests/unix/floatmath/floatmath.cpp | 2 +- config.tests/unix/freetype/freetype.cpp | 2 +- config.tests/unix/getaddrinfo/getaddrinfotest.cpp | 2 +- config.tests/unix/getifaddrs/getifaddrs.cpp | 2 +- config.tests/unix/glib/glib.cpp | 2 +- config.tests/unix/gnu-libiconv/gnu-libiconv.cpp | 2 +- config.tests/unix/gstreamer/gstreamer.cpp | 2 +- config.tests/unix/ibase/ibase.cpp | 2 +- config.tests/unix/icd/icd.cpp | 2 +- config.tests/unix/iconv/iconv.cpp | 2 +- config.tests/unix/inotify/inotifytest.cpp | 2 +- config.tests/unix/iodbc/iodbc.cpp | 2 +- config.tests/unix/ipv6/ipv6test.cpp | 2 +- config.tests/unix/ipv6ifname/ipv6ifname.cpp | 2 +- config.tests/unix/iwmmxt/iwmmxt.cpp | 2 +- .../unix/javascriptcore-jit/hwcap_test.cpp | 2 +- config.tests/unix/libjpeg/libjpeg.cpp | 2 +- config.tests/unix/libmng/libmng.cpp | 2 +- config.tests/unix/libpng/libpng.cpp | 2 +- config.tests/unix/libtiff/libtiff.cpp | 2 +- config.tests/unix/mmx/mmx.cpp | 2 +- config.tests/unix/mremap/mremap.cpp | 2 +- config.tests/unix/mysql/mysql.cpp | 2 +- config.tests/unix/neon/neon.cpp | 2 +- config.tests/unix/nis/nis.cpp | 2 +- config.tests/unix/oci/oci.cpp | 2 +- config.tests/unix/odbc/odbc.cpp | 2 +- config.tests/unix/opengles1/opengles1.cpp | 2 +- config.tests/unix/opengles2/opengles2.cpp | 2 +- config.tests/unix/openssl/openssl.cpp | 2 +- config.tests/unix/openvg/openvg.cpp | 2 +- config.tests/unix/psql/psql.cpp | 2 +- config.tests/unix/ptrsize/ptrsizetest.cpp | 2 +- config.tests/unix/pulseaudio/pulseaudio.cpp | 2 +- config.tests/unix/shivavg/shivavg.cpp | 2 +- config.tests/unix/sqlite/sqlite.cpp | 2 +- config.tests/unix/sqlite2/sqlite2.cpp | 2 +- config.tests/unix/sse/sse.cpp | 2 +- config.tests/unix/sse2/sse2.cpp | 2 +- config.tests/unix/sse3/sse3.cpp | 2 +- config.tests/unix/sse4_1/sse4_1.cpp | 2 +- config.tests/unix/sse4_2/sse4_2.cpp | 2 +- config.tests/unix/ssse3/ssse3.cpp | 2 +- config.tests/unix/stdint/main.cpp | 2 +- config.tests/unix/stl/stltest.cpp | 2 +- config.tests/unix/tds/tds.cpp | 2 +- config.tests/unix/tslib/tslib.cpp | 2 +- config.tests/unix/zlib/zlib.cpp | 2 +- config.tests/x11/fontconfig/fontconfig.cpp | 2 +- config.tests/x11/glxfbconfig/glxfbconfig.cpp | 2 +- config.tests/x11/mitshm/mitshm.cpp | 2 +- config.tests/x11/notype/notypetest.cpp | 2 +- config.tests/x11/opengl/opengl.cpp | 2 +- config.tests/x11/sm/sm.cpp | 2 +- config.tests/x11/xcursor/xcursor.cpp | 2 +- config.tests/x11/xfixes/xfixes.cpp | 2 +- config.tests/x11/xinerama/xinerama.cpp | 2 +- config.tests/x11/xinput/xinput.cpp | 2 +- config.tests/x11/xkb/xkb.cpp | 2 +- config.tests/x11/xlib/xlib.cpp | 2 +- config.tests/x11/xrandr/xrandr.cpp | 2 +- config.tests/x11/xrender/xrender.cpp | 2 +- config.tests/x11/xshape/xshape.cpp | 2 +- config.tests/x11/xsync/xsync.cpp | 2 +- config.tests/x11/xvideo/xvideo.cpp | 2 +- configure | 2 +- demos/affine/main.cpp | 2 +- demos/affine/xform.cpp | 2 +- demos/affine/xform.h | 2 +- demos/arthurplugin/plugin.cpp | 2 +- demos/books/bookdelegate.cpp | 2 +- demos/books/bookdelegate.h | 2 +- demos/books/bookwindow.cpp | 2 +- demos/books/bookwindow.h | 2 +- demos/books/initdb.h | 2 +- demos/books/main.cpp | 2 +- demos/boxes/basic.fsh | 2 +- demos/boxes/basic.vsh | 2 +- demos/boxes/dotted.fsh | 2 +- demos/boxes/fresnel.fsh | 2 +- demos/boxes/glass.fsh | 2 +- demos/boxes/glbuffers.cpp | 2 +- demos/boxes/glbuffers.h | 2 +- demos/boxes/glextensions.cpp | 2 +- demos/boxes/glextensions.h | 2 +- demos/boxes/gltrianglemesh.h | 2 +- demos/boxes/granite.fsh | 2 +- demos/boxes/main.cpp | 2 +- demos/boxes/marble.fsh | 2 +- demos/boxes/qtbox.cpp | 2 +- demos/boxes/qtbox.h | 2 +- demos/boxes/reflection.fsh | 2 +- demos/boxes/refraction.fsh | 2 +- demos/boxes/roundedbox.cpp | 2 +- demos/boxes/roundedbox.h | 2 +- demos/boxes/scene.cpp | 2 +- demos/boxes/scene.h | 2 +- demos/boxes/trackball.cpp | 2 +- demos/boxes/trackball.h | 2 +- demos/boxes/wood.fsh | 2 +- demos/browser/autosaver.cpp | 2 +- demos/browser/autosaver.h | 2 +- demos/browser/bookmarks.cpp | 2 +- demos/browser/bookmarks.h | 2 +- demos/browser/browserapplication.cpp | 2 +- demos/browser/browserapplication.h | 2 +- demos/browser/browsermainwindow.cpp | 2 +- demos/browser/browsermainwindow.h | 2 +- demos/browser/chasewidget.cpp | 2 +- demos/browser/chasewidget.h | 2 +- demos/browser/cookiejar.cpp | 2 +- demos/browser/cookiejar.h | 2 +- demos/browser/data/browser.svg | 2 +- demos/browser/downloadmanager.cpp | 2 +- demos/browser/downloadmanager.h | 2 +- demos/browser/edittableview.cpp | 2 +- demos/browser/edittableview.h | 2 +- demos/browser/edittreeview.cpp | 2 +- demos/browser/edittreeview.h | 2 +- demos/browser/history.cpp | 2 +- demos/browser/history.h | 2 +- demos/browser/main.cpp | 2 +- demos/browser/modelmenu.cpp | 2 +- demos/browser/modelmenu.h | 2 +- demos/browser/networkaccessmanager.cpp | 2 +- demos/browser/networkaccessmanager.h | 2 +- demos/browser/searchlineedit.cpp | 2 +- demos/browser/searchlineedit.h | 2 +- demos/browser/settings.cpp | 2 +- demos/browser/settings.h | 2 +- demos/browser/squeezelabel.cpp | 2 +- demos/browser/squeezelabel.h | 2 +- demos/browser/tabwidget.cpp | 2 +- demos/browser/tabwidget.h | 2 +- demos/browser/toolbarsearch.cpp | 2 +- demos/browser/toolbarsearch.h | 2 +- demos/browser/urllineedit.cpp | 2 +- demos/browser/urllineedit.h | 2 +- demos/browser/webview.cpp | 2 +- demos/browser/webview.h | 2 +- demos/browser/xbel.cpp | 2 +- demos/browser/xbel.h | 2 +- demos/chip/chip.cpp | 2 +- demos/chip/chip.h | 2 +- demos/chip/main.cpp | 2 +- demos/chip/mainwindow.cpp | 2 +- demos/chip/mainwindow.h | 2 +- demos/chip/view.cpp | 2 +- demos/chip/view.h | 2 +- demos/composition/composition.cpp | 2 +- demos/composition/composition.h | 2 +- demos/composition/main.cpp | 2 +- demos/declarative/calculator/Core/Button.qml | 2 +- demos/declarative/calculator/Core/Display.qml | 2 +- demos/declarative/calculator/calculator.qml | 2 +- demos/declarative/flickr/common/Progress.qml | 2 +- demos/declarative/flickr/common/RssModel.qml | 2 +- demos/declarative/flickr/common/ScrollBar.qml | 2 +- demos/declarative/flickr/common/Slider.qml | 2 +- demos/declarative/flickr/flickr-90.qml | 2 +- demos/declarative/flickr/flickr.qml | 2 +- demos/declarative/flickr/mobile/Button.qml | 2 +- demos/declarative/flickr/mobile/GridDelegate.qml | 2 +- demos/declarative/flickr/mobile/ImageDetails.qml | 2 +- demos/declarative/flickr/mobile/ListDelegate.qml | 2 +- demos/declarative/flickr/mobile/TitleBar.qml | 2 +- demos/declarative/flickr/mobile/ToolBar.qml | 2 +- .../minehunt/MinehuntCore/Explosion.qml | 2 +- demos/declarative/minehunt/MinehuntCore/Tile.qml | 2 +- demos/declarative/minehunt/main.cpp | 2 +- demos/declarative/minehunt/minehunt.cpp | 2 +- demos/declarative/minehunt/minehunt.h | 2 +- demos/declarative/minehunt/minehunt.qml | 2 +- .../photoviewer/PhotoViewerCore/AlbumDelegate.qml | 2 +- .../photoviewer/PhotoViewerCore/BusyIndicator.qml | 2 +- .../photoviewer/PhotoViewerCore/Button.qml | 2 +- .../photoviewer/PhotoViewerCore/EditableButton.qml | 2 +- .../photoviewer/PhotoViewerCore/PhotoDelegate.qml | 2 +- .../photoviewer/PhotoViewerCore/ProgressBar.qml | 2 +- .../photoviewer/PhotoViewerCore/RssModel.qml | 2 +- .../photoviewer/PhotoViewerCore/Tag.qml | 2 +- demos/declarative/photoviewer/photoviewer.qml | 2 +- .../declarative/rssnews/content/BusyIndicator.qml | 2 +- .../rssnews/content/CategoryDelegate.qml | 2 +- demos/declarative/rssnews/content/NewsDelegate.qml | 2 +- demos/declarative/rssnews/content/RssFeeds.qml | 2 +- demos/declarative/rssnews/content/ScrollBar.qml | 2 +- demos/declarative/rssnews/rssnews.qml | 2 +- .../samegame/SamegameCore/BoomBlock.qml | 2 +- demos/declarative/samegame/SamegameCore/Button.qml | 2 +- demos/declarative/samegame/SamegameCore/Dialog.qml | 2 +- demos/declarative/samegame/samegame.qml | 2 +- demos/declarative/snake/content/Button.qml | 2 +- demos/declarative/snake/content/Cookie.qml | 2 +- demos/declarative/snake/content/HighScoreModel.qml | 2 +- demos/declarative/snake/content/Link.qml | 2 +- demos/declarative/snake/content/Skull.qml | 2 +- demos/declarative/snake/snake.qml | 2 +- demos/declarative/twitter/TwitterCore/Button.qml | 2 +- .../twitter/TwitterCore/FatDelegate.qml | 2 +- demos/declarative/twitter/TwitterCore/Input.qml | 2 +- demos/declarative/twitter/TwitterCore/Loading.qml | 2 +- .../twitter/TwitterCore/MultiTitleBar.qml | 2 +- demos/declarative/twitter/TwitterCore/RssModel.qml | 2 +- .../declarative/twitter/TwitterCore/SearchView.qml | 2 +- demos/declarative/twitter/TwitterCore/TitleBar.qml | 2 +- demos/declarative/twitter/TwitterCore/ToolBar.qml | 2 +- .../declarative/twitter/TwitterCore/UserModel.qml | 2 +- demos/declarative/twitter/twitter.qml | 2 +- demos/declarative/webbrowser/content/Button.qml | 2 +- .../webbrowser/content/FlickableWebView.qml | 2 +- demos/declarative/webbrowser/content/Header.qml | 2 +- demos/declarative/webbrowser/content/ScrollBar.qml | 2 +- demos/declarative/webbrowser/content/UrlInput.qml | 2 +- demos/declarative/webbrowser/webbrowser.qml | 2 +- demos/deform/main.cpp | 2 +- demos/deform/pathdeform.cpp | 2 +- demos/deform/pathdeform.h | 2 +- demos/embedded/anomaly/src/AddressBar.cpp | 2 +- demos/embedded/anomaly/src/AddressBar.h | 2 +- demos/embedded/anomaly/src/BookmarksView.cpp | 2 +- demos/embedded/anomaly/src/BookmarksView.h | 2 +- demos/embedded/anomaly/src/BrowserView.cpp | 2 +- demos/embedded/anomaly/src/BrowserView.h | 2 +- demos/embedded/anomaly/src/BrowserWindow.cpp | 2 +- demos/embedded/anomaly/src/BrowserWindow.h | 2 +- demos/embedded/anomaly/src/ControlStrip.cpp | 2 +- demos/embedded/anomaly/src/ControlStrip.h | 2 +- demos/embedded/anomaly/src/HomeView.cpp | 2 +- demos/embedded/anomaly/src/HomeView.h | 2 +- demos/embedded/anomaly/src/Main.cpp | 2 +- demos/embedded/anomaly/src/TitleBar.cpp | 2 +- demos/embedded/anomaly/src/TitleBar.h | 2 +- demos/embedded/anomaly/src/ZoomStrip.cpp | 2 +- demos/embedded/anomaly/src/ZoomStrip.h | 2 +- demos/embedded/anomaly/src/flickcharm.cpp | 2 +- demos/embedded/anomaly/src/flickcharm.h | 2 +- demos/embedded/anomaly/src/webview.cpp | 2 +- demos/embedded/anomaly/src/webview.h | 2 +- demos/embedded/desktopservices/contenttab.cpp | 2 +- demos/embedded/desktopservices/contenttab.h | 2 +- demos/embedded/desktopservices/desktopwidget.cpp | 2 +- demos/embedded/desktopservices/desktopwidget.h | 2 +- demos/embedded/desktopservices/linktab.cpp | 2 +- demos/embedded/desktopservices/linktab.h | 2 +- demos/embedded/desktopservices/main.cpp | 2 +- demos/embedded/digiflip/digiflip.cpp | 2 +- .../embeddedsvgviewer/embeddedsvgviewer.cpp | 2 +- .../embedded/embeddedsvgviewer/embeddedsvgviewer.h | 2 +- demos/embedded/embeddedsvgviewer/main.cpp | 2 +- demos/embedded/flickable/flickable.cpp | 2 +- demos/embedded/flickable/flickable.h | 2 +- demos/embedded/flickable/main.cpp | 2 +- demos/embedded/flightinfo/flightinfo.cpp | 2 +- demos/embedded/fluidlauncher/demoapplication.cpp | 2 +- demos/embedded/fluidlauncher/demoapplication.h | 2 +- demos/embedded/fluidlauncher/fluidlauncher.cpp | 2 +- demos/embedded/fluidlauncher/fluidlauncher.h | 2 +- demos/embedded/fluidlauncher/main.cpp | 2 +- demos/embedded/fluidlauncher/pictureflow.cpp | 2 +- demos/embedded/fluidlauncher/pictureflow.h | 2 +- demos/embedded/fluidlauncher/slideshow.cpp | 2 +- demos/embedded/fluidlauncher/slideshow.h | 2 +- demos/embedded/lightmaps/lightmaps.cpp | 2 +- demos/embedded/qmlcalculator/qmlcalculator.cpp | 2 +- demos/embedded/qmlclocks/qmlclocks.cpp | 2 +- demos/embedded/qmldialcontrol/qmldialcontrol.cpp | 2 +- demos/embedded/qmleasing/qmleasing.cpp | 2 +- demos/embedded/qmlflickr/qmlflickr.cpp | 2 +- demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp | 2 +- demos/embedded/qmltwitter/qmltwitter.cpp | 2 +- demos/embedded/raycasting/raycasting.cpp | 2 +- demos/embedded/styledemo/main.cpp | 2 +- demos/embedded/styledemo/stylewidget.cpp | 2 +- demos/embedded/styledemo/stylewidget.h | 2 +- demos/embedded/weatherinfo/weatherinfo.cpp | 2 +- demos/embeddeddialogs/customproxy.cpp | 2 +- demos/embeddeddialogs/customproxy.h | 2 +- demos/embeddeddialogs/embeddeddialog.cpp | 2 +- demos/embeddeddialogs/embeddeddialog.h | 2 +- demos/embeddeddialogs/main.cpp | 2 +- demos/gradients/gradients.cpp | 2 +- demos/gradients/gradients.h | 2 +- demos/gradients/main.cpp | 2 +- demos/interview/main.cpp | 2 +- demos/interview/model.cpp | 2 +- demos/interview/model.h | 2 +- demos/macmainwindow/macmainwindow.h | 2 +- demos/macmainwindow/macmainwindow.mm | 2 +- demos/macmainwindow/main.cpp | 2 +- demos/mainwindow/colorswatch.cpp | 2 +- demos/mainwindow/colorswatch.h | 2 +- demos/mainwindow/main.cpp | 2 +- demos/mainwindow/mainwindow.cpp | 2 +- demos/mainwindow/mainwindow.h | 2 +- demos/mainwindow/toolbar.cpp | 2 +- demos/mainwindow/toolbar.h | 2 +- demos/pathstroke/main.cpp | 2 +- demos/pathstroke/pathstroke.cpp | 2 +- demos/pathstroke/pathstroke.h | 2 +- demos/qmediaplayer/main.cpp | 2 +- demos/qmediaplayer/mediaplayer.cpp | 2 +- demos/qmediaplayer/mediaplayer.h | 2 +- demos/qtdemo/colors.cpp | 2 +- demos/qtdemo/colors.h | 2 +- demos/qtdemo/demoitem.cpp | 2 +- demos/qtdemo/demoitem.h | 2 +- demos/qtdemo/demoitemanimation.cpp | 2 +- demos/qtdemo/demoitemanimation.h | 2 +- demos/qtdemo/demoscene.cpp | 2 +- demos/qtdemo/demoscene.h | 2 +- demos/qtdemo/demotextitem.cpp | 2 +- demos/qtdemo/demotextitem.h | 2 +- demos/qtdemo/dockitem.cpp | 2 +- demos/qtdemo/dockitem.h | 2 +- demos/qtdemo/examplecontent.cpp | 2 +- demos/qtdemo/examplecontent.h | 2 +- demos/qtdemo/guide.cpp | 2 +- demos/qtdemo/guide.h | 2 +- demos/qtdemo/guidecircle.cpp | 2 +- demos/qtdemo/guidecircle.h | 2 +- demos/qtdemo/guideline.cpp | 2 +- demos/qtdemo/guideline.h | 2 +- demos/qtdemo/headingitem.cpp | 2 +- demos/qtdemo/headingitem.h | 2 +- demos/qtdemo/imageitem.cpp | 2 +- demos/qtdemo/imageitem.h | 2 +- demos/qtdemo/itemcircleanimation.cpp | 2 +- demos/qtdemo/itemcircleanimation.h | 2 +- demos/qtdemo/letteritem.cpp | 2 +- demos/qtdemo/letteritem.h | 2 +- demos/qtdemo/main.cpp | 2 +- demos/qtdemo/mainwindow.cpp | 2 +- demos/qtdemo/mainwindow.h | 2 +- demos/qtdemo/menucontent.cpp | 2 +- demos/qtdemo/menucontent.h | 2 +- demos/qtdemo/menumanager.cpp | 2 +- demos/qtdemo/menumanager.h | 2 +- demos/qtdemo/qmlShell.qml | 2 +- demos/qtdemo/qtdemo.rc | 2 +- demos/qtdemo/scanitem.cpp | 2 +- demos/qtdemo/scanitem.h | 2 +- demos/qtdemo/score.cpp | 2 +- demos/qtdemo/score.h | 2 +- demos/qtdemo/textbutton.cpp | 2 +- demos/qtdemo/textbutton.h | 2 +- demos/shared/arthurstyle.cpp | 2 +- demos/shared/arthurstyle.h | 2 +- demos/shared/arthurwidgets.cpp | 2 +- demos/shared/arthurwidgets.h | 2 +- demos/shared/hoverpoints.cpp | 2 +- demos/shared/hoverpoints.h | 2 +- .../spectrum/3rdparty/fftreal/fftreal_wrapper.cpp | 2 +- demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h | 2 +- demos/spectrum/app/engine.cpp | 2 +- demos/spectrum/app/engine.h | 2 +- demos/spectrum/app/frequencyspectrum.cpp | 2 +- demos/spectrum/app/frequencyspectrum.h | 2 +- demos/spectrum/app/levelmeter.cpp | 2 +- demos/spectrum/app/levelmeter.h | 2 +- demos/spectrum/app/main.cpp | 2 +- demos/spectrum/app/mainwidget.cpp | 2 +- demos/spectrum/app/mainwidget.h | 2 +- demos/spectrum/app/progressbar.cpp | 2 +- demos/spectrum/app/progressbar.h | 2 +- demos/spectrum/app/settingsdialog.cpp | 2 +- demos/spectrum/app/settingsdialog.h | 2 +- demos/spectrum/app/spectrograph.cpp | 2 +- demos/spectrum/app/spectrograph.h | 2 +- demos/spectrum/app/spectrum.h | 2 +- demos/spectrum/app/spectrumanalyser.cpp | 2 +- demos/spectrum/app/spectrumanalyser.h | 2 +- demos/spectrum/app/tonegenerator.cpp | 2 +- demos/spectrum/app/tonegenerator.h | 2 +- demos/spectrum/app/tonegeneratordialog.cpp | 2 +- demos/spectrum/app/tonegeneratordialog.h | 2 +- demos/spectrum/app/utils.cpp | 2 +- demos/spectrum/app/utils.h | 2 +- demos/spectrum/app/waveform.cpp | 2 +- demos/spectrum/app/waveform.h | 2 +- demos/spectrum/app/wavfile.cpp | 2 +- demos/spectrum/app/wavfile.h | 2 +- demos/spreadsheet/main.cpp | 2 +- demos/spreadsheet/printview.cpp | 2 +- demos/spreadsheet/printview.h | 2 +- demos/spreadsheet/spreadsheet.cpp | 2 +- demos/spreadsheet/spreadsheet.h | 2 +- demos/spreadsheet/spreadsheetdelegate.cpp | 2 +- demos/spreadsheet/spreadsheetdelegate.h | 2 +- demos/spreadsheet/spreadsheetitem.cpp | 2 +- demos/spreadsheet/spreadsheetitem.h | 2 +- demos/sqlbrowser/browser.cpp | 2 +- demos/sqlbrowser/browser.h | 2 +- demos/sqlbrowser/connectionwidget.cpp | 2 +- demos/sqlbrowser/connectionwidget.h | 2 +- demos/sqlbrowser/main.cpp | 2 +- demos/sqlbrowser/qsqlconnectiondialog.cpp | 2 +- demos/sqlbrowser/qsqlconnectiondialog.h | 2 +- demos/sub-attaq/animationmanager.cpp | 2 +- demos/sub-attaq/animationmanager.h | 2 +- demos/sub-attaq/boat.cpp | 2 +- demos/sub-attaq/boat.h | 2 +- demos/sub-attaq/boat_p.h | 2 +- demos/sub-attaq/bomb.cpp | 2 +- demos/sub-attaq/bomb.h | 2 +- demos/sub-attaq/graphicsscene.cpp | 2 +- demos/sub-attaq/graphicsscene.h | 2 +- demos/sub-attaq/main.cpp | 2 +- demos/sub-attaq/mainwindow.cpp | 2 +- demos/sub-attaq/mainwindow.h | 2 +- demos/sub-attaq/pixmapitem.cpp | 2 +- demos/sub-attaq/pixmapitem.h | 2 +- demos/sub-attaq/progressitem.cpp | 2 +- demos/sub-attaq/progressitem.h | 2 +- demos/sub-attaq/qanimationstate.cpp | 2 +- demos/sub-attaq/qanimationstate.h | 2 +- demos/sub-attaq/states.cpp | 2 +- demos/sub-attaq/states.h | 2 +- demos/sub-attaq/submarine.cpp | 2 +- demos/sub-attaq/submarine.h | 2 +- demos/sub-attaq/submarine_p.h | 2 +- demos/sub-attaq/textinformationitem.cpp | 2 +- demos/sub-attaq/textinformationitem.h | 2 +- demos/sub-attaq/torpedo.cpp | 2 +- demos/sub-attaq/torpedo.h | 2 +- demos/textedit/main.cpp | 2 +- demos/textedit/textedit.cpp | 2 +- demos/textedit/textedit.h | 2 +- demos/textedit/textedit.qdoc | 2 +- demos/undo/commands.cpp | 2 +- demos/undo/commands.h | 2 +- demos/undo/document.cpp | 2 +- demos/undo/document.h | 2 +- demos/undo/main.cpp | 2 +- demos/undo/mainwindow.cpp | 2 +- demos/undo/mainwindow.h | 2 +- doc/src/bughowto.qdoc | 2 +- doc/src/classes.qdoc | 2 +- doc/src/classes/exportedfunctions.qdoc | 2 +- doc/src/classes/phonon-api.qdoc | 2 +- doc/src/classes/phonon-namespace.qdoc | 2 +- doc/src/classes/qpatternistdummy.cpp | 2 +- doc/src/credits.qdoc | 2 +- doc/src/declarative/advtutorial.qdoc | 2 +- doc/src/declarative/anchor-layout.qdoc | 2 +- doc/src/declarative/animation.qdoc | 2 +- doc/src/declarative/basictypes.qdoc | 2 +- doc/src/declarative/codingconventions.qdoc | 2 +- doc/src/declarative/declarativeui.qdoc | 2 +- doc/src/declarative/dynamicobjects.qdoc | 2 +- doc/src/declarative/elements.qdoc | 2 +- doc/src/declarative/example-slideswitch.qdoc | 2 +- doc/src/declarative/examples.qdoc | 2 +- doc/src/declarative/extending-tutorial.qdoc | 2 +- doc/src/declarative/extending.qdoc | 2 +- doc/src/declarative/focus.qdoc | 2 +- doc/src/declarative/globalobject.qdoc | 2 +- doc/src/declarative/integrating.qdoc | 2 +- doc/src/declarative/javascriptblocks.qdoc | 2 +- doc/src/declarative/modules.qdoc | 2 +- doc/src/declarative/network.qdoc | 2 +- doc/src/declarative/pics/flipable.gif | Bin 131710 -> 131710 bytes doc/src/declarative/positioners.qdoc | 2 +- doc/src/declarative/propertybinding.qdoc | 2 +- doc/src/declarative/qdeclarativedebugging.qdoc | 2 +- doc/src/declarative/qdeclarativedocument.qdoc | 2 +- doc/src/declarative/qdeclarativei18n.qdoc | 2 +- doc/src/declarative/qdeclarativeintro.qdoc | 2 +- doc/src/declarative/qdeclarativemodels.qdoc | 2 +- doc/src/declarative/qdeclarativeperformance.qdoc | 2 +- doc/src/declarative/qdeclarativesecurity.qdoc | 2 +- doc/src/declarative/qdeclarativestates.qdoc | 2 +- doc/src/declarative/qml-intro.qdoc | 2 +- doc/src/declarative/qmlinuse.qdoc | 2 +- doc/src/declarative/qmlruntime.qdoc | 2 +- doc/src/declarative/qmlviewer.qdoc | 2 +- doc/src/declarative/qtbinding.qdoc | 2 +- doc/src/declarative/qtdeclarative.qdoc | 2 +- doc/src/declarative/qtprogrammers.qdoc | 2 +- doc/src/declarative/scope.qdoc | 2 +- doc/src/declarative/tutorial.qdoc | 2 +- doc/src/declarative/whatsnew.qdoc | 2 +- doc/src/demos/affine.qdoc | 2 +- doc/src/demos/anomaly.qdoc | 2 +- doc/src/demos/arthurplugin.qdoc | 2 +- doc/src/demos/books.qdoc | 2 +- doc/src/demos/boxes.qdoc | 2 +- doc/src/demos/browser.qdoc | 2 +- doc/src/demos/chip.qdoc | 2 +- doc/src/demos/composition.qdoc | 2 +- doc/src/demos/deform.qdoc | 2 +- doc/src/demos/desktopservices.qdoc | 2 +- doc/src/demos/digiflip.qdoc | 2 +- doc/src/demos/embeddeddialogs.qdoc | 2 +- doc/src/demos/embeddedsvgviewer.qdoc | 2 +- doc/src/demos/flickable.qdoc | 2 +- doc/src/demos/flightinfo.qdoc | 2 +- doc/src/demos/fluidlauncher.qdoc | 2 +- doc/src/demos/gradients.qdoc | 2 +- doc/src/demos/interview.qdoc | 2 +- doc/src/demos/lightmaps.qdoc | 2 +- doc/src/demos/macmainwindow.qdoc | 2 +- doc/src/demos/mainwindow.qdoc | 2 +- doc/src/demos/mediaplayer.qdoc | 2 +- doc/src/demos/pathstroke.qdoc | 2 +- doc/src/demos/qtdemo.qdoc | 2 +- doc/src/demos/raycasting.qdoc | 2 +- doc/src/demos/spectrum.qdoc | 2 +- doc/src/demos/spreadsheet.qdoc | 2 +- doc/src/demos/sqlbrowser.qdoc | 2 +- doc/src/demos/styledemo.qdoc | 2 +- doc/src/demos/sub-attaq.qdoc | 2 +- doc/src/demos/textedit.qdoc | 2 +- doc/src/demos/undo.qdoc | 2 +- doc/src/demos/weatherinfo.qdoc | 2 +- doc/src/deployment/deployment-plugins.qdoc | 2 +- doc/src/deployment/deployment.qdoc | 2 +- doc/src/deployment/qt-conf.qdoc | 2 +- doc/src/deployment/qtconfig.qdoc | 2 +- doc/src/development/activeqt-dumpcpp.qdoc | 2 +- doc/src/development/activeqt-dumpdoc.qdoc | 2 +- doc/src/development/activeqt-idc.qdoc | 2 +- doc/src/development/activeqt-testcon.qdoc | 2 +- doc/src/development/assistant-manual.qdoc | 2 +- doc/src/development/debug.qdoc | 2 +- doc/src/development/designer-manual.qdoc | 4 ++-- doc/src/development/developing-on-mac.qdoc | 2 +- doc/src/development/developing-with-qt.qdoc | 2 +- doc/src/development/moc.qdoc | 2 +- doc/src/development/qmake-manual.qdoc | 2 +- doc/src/development/qmsdev.qdoc | 2 +- doc/src/development/qtestlib.qdoc | 2 +- doc/src/development/rcc.qdoc | 2 +- doc/src/development/tools-list.qdoc | 2 +- doc/src/development/uic.qdoc | 2 +- .../diagrams/contentspropagation/customwidget.py | 2 +- .../contentspropagation/standardwidgets.py | 2 +- doc/src/diagrams/programs/easingcurve/main.cpp | 2 +- doc/src/diagrams/programs/mdiarea.py | 2 +- doc/src/diagrams/programs/qpen-dashpattern.py | 2 +- doc/src/diagrams/programs/standard_views.py | 2 +- doc/src/examples/2dpainting.qdoc | 2 +- doc/src/examples/activeqt/comapp.qdoc | 2 +- doc/src/examples/activeqt/dotnet.qdoc | 2 +- doc/src/examples/activeqt/hierarchy.qdoc | 2 +- doc/src/examples/activeqt/menus.qdoc | 2 +- doc/src/examples/activeqt/multiple.qdoc | 2 +- doc/src/examples/activeqt/opengl.qdoc | 2 +- doc/src/examples/activeqt/qutlook.qdoc | 2 +- doc/src/examples/activeqt/simple.qdoc | 2 +- doc/src/examples/activeqt/webbrowser.qdoc | 2 +- doc/src/examples/activeqt/wrapper.qdoc | 2 +- doc/src/examples/addressbook.qdoc | 2 +- doc/src/examples/analogclock.qdoc | 2 +- doc/src/examples/animatedtiles.qdoc | 2 +- doc/src/examples/appchooser.qdoc | 2 +- doc/src/examples/application.qdoc | 2 +- doc/src/examples/arrowpad.qdoc | 2 +- doc/src/examples/audiodevices.qdoc | 2 +- doc/src/examples/audioinput.qdoc | 2 +- doc/src/examples/audiooutput.qdoc | 2 +- doc/src/examples/basicdrawing.qdoc | 2 +- doc/src/examples/basicgraphicslayouts.qdoc | 2 +- doc/src/examples/basiclayouts.qdoc | 2 +- doc/src/examples/basicsortfiltermodel.qdoc | 2 +- doc/src/examples/bearercloud.qdoc | 2 +- doc/src/examples/bearermonitor.qdoc | 2 +- doc/src/examples/blockingfortuneclient.qdoc | 2 +- doc/src/examples/blurpicker.qdoc | 2 +- doc/src/examples/borderlayout.qdoc | 2 +- doc/src/examples/broadcastreceiver.qdoc | 2 +- doc/src/examples/broadcastsender.qdoc | 2 +- doc/src/examples/cachedtable.qdoc | 2 +- doc/src/examples/calculator.qdoc | 2 +- doc/src/examples/calculatorbuilder.qdoc | 2 +- doc/src/examples/calculatorform.qdoc | 2 +- doc/src/examples/calendar.qdoc | 2 +- doc/src/examples/calendarwidget.qdoc | 2 +- doc/src/examples/capabilitiesexample.qdoc | 2 +- doc/src/examples/charactermap.qdoc | 2 +- doc/src/examples/chart.qdoc | 2 +- doc/src/examples/classwizard.qdoc | 2 +- doc/src/examples/codecs.qdoc | 2 +- doc/src/examples/codeeditor.qdoc | 2 +- doc/src/examples/collidingmice-example.qdoc | 2 +- doc/src/examples/coloreditorfactory.qdoc | 2 +- doc/src/examples/combowidgetmapper.qdoc | 2 +- doc/src/examples/completer.qdoc | 2 +- doc/src/examples/complexpingpong.qdoc | 2 +- doc/src/examples/concentriccircles.qdoc | 2 +- doc/src/examples/configdialog.qdoc | 2 +- doc/src/examples/containerextension.qdoc | 2 +- doc/src/examples/context2d.qdoc | 2 +- doc/src/examples/contextsensitivehelp.qdoc | 2 +- doc/src/examples/contiguouscache.qdoc | 2 +- doc/src/examples/customcompleter.qdoc | 2 +- doc/src/examples/customsortfiltermodel.qdoc | 2 +- doc/src/examples/customtype.qdoc | 2 +- doc/src/examples/customtypesending.qdoc | 2 +- doc/src/examples/customwidgetplugin.qdoc | 2 +- doc/src/examples/dbscreen.qdoc | 2 +- doc/src/examples/dbus-chat.qdoc | 2 +- doc/src/examples/dbus-listnames.qdoc | 2 +- doc/src/examples/dbus-pingpong.qdoc | 2 +- doc/src/examples/dbus-remotecontrolledcar.qdoc | 2 +- doc/src/examples/defaultprototypes.qdoc | 2 +- doc/src/examples/delayedencoding.qdoc | 2 +- doc/src/examples/diagramscene.qdoc | 2 +- doc/src/examples/digitalclock.qdoc | 2 +- doc/src/examples/dirview.qdoc | 2 +- doc/src/examples/dockwidgets.qdoc | 2 +- doc/src/examples/dombookmarks.qdoc | 2 +- doc/src/examples/domtraversal.qdoc | 2 +- doc/src/examples/draganddroppuzzle.qdoc | 2 +- doc/src/examples/dragdroprobot.qdoc | 2 +- doc/src/examples/draggableicons.qdoc | 2 +- doc/src/examples/draggabletext.qdoc | 2 +- doc/src/examples/drilldown.qdoc | 2 +- doc/src/examples/dropsite.qdoc | 2 +- doc/src/examples/dynamiclayouts.qdoc | 2 +- doc/src/examples/easing.qdoc | 2 +- doc/src/examples/echoplugin.qdoc | 2 +- doc/src/examples/editabletreemodel.qdoc | 2 +- doc/src/examples/elasticnodes.qdoc | 2 +- doc/src/examples/eventtransitions.qdoc | 2 +- doc/src/examples/extension.qdoc | 2 +- doc/src/examples/factorial.qdoc | 2 +- doc/src/examples/fademessage.qdoc | 2 +- doc/src/examples/fancybrowser.qdoc | 2 +- doc/src/examples/fetchmore.qdoc | 2 +- doc/src/examples/filetree.qdoc | 2 +- doc/src/examples/findfiles.qdoc | 2 +- doc/src/examples/fingerpaint.qdoc | 2 +- doc/src/examples/flowlayout.qdoc | 2 +- doc/src/examples/fontsampler.qdoc | 2 +- doc/src/examples/formextractor.qdoc | 2 +- doc/src/examples/fortuneclient.qdoc | 2 +- doc/src/examples/fortuneserver.qdoc | 2 +- doc/src/examples/framebufferobject.qdoc | 2 +- doc/src/examples/framebufferobject2.qdoc | 2 +- doc/src/examples/fridgemagnets.qdoc | 2 +- doc/src/examples/frozencolumn.qdoc | 2 +- doc/src/examples/ftp.qdoc | 2 +- doc/src/examples/globalVariables.qdoc | 2 +- doc/src/examples/googlechat.qdoc | 2 +- doc/src/examples/googlesuggest.qdoc | 2 +- doc/src/examples/grabber.qdoc | 2 +- doc/src/examples/graphicsview-anchorlayout.qdoc | 2 +- doc/src/examples/graphicsview-flowlayout.qdoc | 2 +- .../examples/graphicsview-simpleanchorlayout.qdoc | 2 +- .../examples/graphicsview-weatheranchorlayout.qdoc | 2 +- doc/src/examples/groupbox.qdoc | 2 +- doc/src/examples/hellogl.qdoc | 2 +- doc/src/examples/hellogl_es.qdoc | 2 +- doc/src/examples/helloscript.qdoc | 2 +- doc/src/examples/hellotr.qdoc | 2 +- doc/src/examples/htmlinfo.qdoc | 2 +- doc/src/examples/http.qdoc | 2 +- doc/src/examples/i18n.qdoc | 2 +- doc/src/examples/icons.qdoc | 2 +- doc/src/examples/imagecomposition.qdoc | 2 +- doc/src/examples/imagegestures.qdoc | 2 +- doc/src/examples/imageviewer.qdoc | 2 +- doc/src/examples/inputpanel.qdoc | 2 +- doc/src/examples/itemviewspuzzle.qdoc | 2 +- doc/src/examples/licensewizard.qdoc | 2 +- doc/src/examples/lighting.qdoc | 2 +- doc/src/examples/lineedits.qdoc | 2 +- doc/src/examples/localfortuneclient.qdoc | 2 +- doc/src/examples/localfortuneserver.qdoc | 2 +- doc/src/examples/loopback.qdoc | 2 +- doc/src/examples/mandelbrot.qdoc | 2 +- doc/src/examples/masterdetail.qdoc | 2 +- doc/src/examples/mdi.qdoc | 2 +- doc/src/examples/menus.qdoc | 2 +- doc/src/examples/mousecalibration.qdoc | 2 +- doc/src/examples/moveblocks.qdoc | 2 +- doc/src/examples/movie.qdoc | 2 +- doc/src/examples/multipleinheritance.qdoc | 2 +- doc/src/examples/musicplayerexample.qdoc | 2 +- doc/src/examples/network-chat.qdoc | 2 +- doc/src/examples/network-download.qdoc | 2 +- doc/src/examples/network-downloadmanager.qdoc | 2 +- doc/src/examples/openvg-star.qdoc | 2 +- doc/src/examples/orderform.qdoc | 2 +- doc/src/examples/overpainting.qdoc | 2 +- doc/src/examples/padnavigator.qdoc | 2 +- doc/src/examples/painterpaths.qdoc | 2 +- doc/src/examples/pbuffers.qdoc | 2 +- doc/src/examples/pbuffers2.qdoc | 2 +- doc/src/examples/pinchzoom.qdoc | 2 +- doc/src/examples/pingpong.qdoc | 2 +- doc/src/examples/pixelator.qdoc | 2 +- doc/src/examples/plugandpaint.qdoc | 2 +- doc/src/examples/portedasteroids.qdoc | 2 +- doc/src/examples/portedcanvas.qdoc | 2 +- doc/src/examples/previewer.qdoc | 2 +- doc/src/examples/qml-calculator.qdoc | 2 +- doc/src/examples/qml-examples.qdoc | 2 +- doc/src/examples/qml-extending.qdoc | 2 +- doc/src/examples/qml-flickr.qdoc | 2 +- doc/src/examples/qml-folderlistmodel.qdoc | 2 +- doc/src/examples/qml-minehunt.qdoc | 2 +- doc/src/examples/qml-photoviewer.qdoc | 2 +- doc/src/examples/qml-rssnews.qdoc | 2 +- doc/src/examples/qml-samegame.qdoc | 2 +- doc/src/examples/qml-snake.qdoc | 2 +- doc/src/examples/qml-twitter.qdoc | 2 +- doc/src/examples/qml-webbrowser.qdoc | 2 +- doc/src/examples/qobjectxmlmodel.qdoc | 2 +- doc/src/examples/qtconcurrent-imagescaling.qdoc | 2 +- doc/src/examples/qtconcurrent-map.qdoc | 2 +- doc/src/examples/qtconcurrent-progressdialog.qdoc | 2 +- doc/src/examples/qtconcurrent-runfunction.qdoc | 2 +- doc/src/examples/qtconcurrent-wordcount.qdoc | 2 +- doc/src/examples/qtscriptcalculator.qdoc | 2 +- doc/src/examples/qtscriptcustomclass.qdoc | 2 +- doc/src/examples/qtscripttetrix.qdoc | 2 +- doc/src/examples/querymodel.qdoc | 2 +- doc/src/examples/queuedcustomtype.qdoc | 2 +- doc/src/examples/qxmlstreambookmarks.qdoc | 2 +- doc/src/examples/recentfiles.qdoc | 2 +- doc/src/examples/recipes.qdoc | 2 +- doc/src/examples/regexp.qdoc | 2 +- doc/src/examples/relationaltablemodel.qdoc | 2 +- doc/src/examples/remotecontrol.qdoc | 2 +- doc/src/examples/rogue.qdoc | 2 +- doc/src/examples/rsslisting.qdoc | 2 +- doc/src/examples/samplebuffers.qdoc | 2 +- doc/src/examples/saxbookmarks.qdoc | 2 +- doc/src/examples/schema.qdoc | 2 +- doc/src/examples/screenshot.qdoc | 2 +- doc/src/examples/scribble.qdoc | 2 +- doc/src/examples/script-marshal.qdoc | 2 +- doc/src/examples/script-qscript.qdoc | 2 +- doc/src/examples/script-qsdbg.qdoc | 2 +- doc/src/examples/sdi.qdoc | 2 +- doc/src/examples/securesocketclient.qdoc | 2 +- doc/src/examples/semaphores.qdoc | 2 +- doc/src/examples/settingseditor.qdoc | 2 +- doc/src/examples/shapedclock.qdoc | 2 +- doc/src/examples/sharedmemory.qdoc | 2 +- doc/src/examples/simpledecoration.qdoc | 2 +- doc/src/examples/simpledommodel.qdoc | 2 +- doc/src/examples/simpleselector.qdoc | 2 +- doc/src/examples/simpletextviewer.qdoc | 2 +- doc/src/examples/simpletreemodel.qdoc | 2 +- doc/src/examples/simplewidgetmapper.qdoc | 2 +- doc/src/examples/sipdialog.qdoc | 2 +- doc/src/examples/sliders.qdoc | 2 +- doc/src/examples/spinboxdelegate.qdoc | 2 +- doc/src/examples/spinboxes.qdoc | 2 +- doc/src/examples/sqlwidgetmapper.qdoc | 2 +- doc/src/examples/standarddialogs.qdoc | 2 +- doc/src/examples/stardelegate.qdoc | 2 +- doc/src/examples/states.qdoc | 2 +- doc/src/examples/stickman.qdoc | 2 +- doc/src/examples/styleplugin.qdoc | 2 +- doc/src/examples/styles.qdoc | 2 +- doc/src/examples/stylesheet.qdoc | 2 +- doc/src/examples/svgalib.qdoc | 2 +- doc/src/examples/svggenerator.qdoc | 2 +- doc/src/examples/svgviewer.qdoc | 2 +- doc/src/examples/syntaxhighlighter.qdoc | 2 +- doc/src/examples/systray.qdoc | 2 +- doc/src/examples/tabdialog.qdoc | 2 +- doc/src/examples/tablemodel.qdoc | 2 +- doc/src/examples/tablet.qdoc | 2 +- doc/src/examples/taskmenuextension.qdoc | 2 +- doc/src/examples/tetrix.qdoc | 2 +- doc/src/examples/textfinder.qdoc | 2 +- doc/src/examples/textobject.qdoc | 2 +- doc/src/examples/textures.qdoc | 2 +- doc/src/examples/threadedfortuneserver.qdoc | 2 +- doc/src/examples/tooltips.qdoc | 2 +- doc/src/examples/torrent.qdoc | 2 +- doc/src/examples/touch-dials.qdoc | 2 +- doc/src/examples/touch-knobs.qdoc | 2 +- doc/src/examples/trafficinfo.qdoc | 2 +- doc/src/examples/trafficlight.qdoc | 2 +- doc/src/examples/transformations.qdoc | 2 +- doc/src/examples/treemodelcompleter.qdoc | 2 +- doc/src/examples/trivialwizard.qdoc | 2 +- doc/src/examples/trollprint.qdoc | 2 +- doc/src/examples/twowaybutton.qdoc | 2 +- doc/src/examples/undoframework.qdoc | 2 +- doc/src/examples/videographicsitem.qdoc | 2 +- doc/src/examples/videowidget.qdoc | 2 +- doc/src/examples/waitconditions.qdoc | 2 +- doc/src/examples/webkit-bridge-imageanalyzer.qdoc | 2 +- doc/src/examples/webkit-framecapture.qdoc | 2 +- doc/src/examples/widgets-softkeys.qdoc | 2 +- doc/src/examples/widgets-validators.qdoc | 2 +- doc/src/examples/wiggly.qdoc | 2 +- doc/src/examples/windowflags.qdoc | 2 +- doc/src/examples/worldtimeclockbuilder.qdoc | 2 +- doc/src/examples/worldtimeclockplugin.qdoc | 2 +- doc/src/examples/xmlstreamlint.qdoc | 2 +- doc/src/external-resources.qdoc | 2 +- doc/src/files-and-resources/datastreamformat.qdoc | 2 +- doc/src/files-and-resources/resources.qdoc | 2 +- doc/src/frameworks-technologies/accessible.qdoc | 2 +- .../activeqt-container.qdoc | 2 +- .../frameworks-technologies/activeqt-server.qdoc | 2 +- doc/src/frameworks-technologies/activeqt.qdoc | 2 +- doc/src/frameworks-technologies/animation.qdoc | 2 +- doc/src/frameworks-technologies/containers.qdoc | 2 +- doc/src/frameworks-technologies/dbus-adaptors.qdoc | 2 +- doc/src/frameworks-technologies/dbus-intro.qdoc | 2 +- .../desktop-integration.qdoc | 2 +- doc/src/frameworks-technologies/dnd.qdoc | 2 +- .../frameworks-technologies/eventsandfilters.qdoc | 2 +- doc/src/frameworks-technologies/gestures.qdoc | 2 +- doc/src/frameworks-technologies/graphicsview.qdoc | 2 +- .../frameworks-technologies/implicit-sharing.qdoc | 2 +- doc/src/frameworks-technologies/ipc.qdoc | 2 +- .../model-view-programming.qdoc | 2 +- doc/src/frameworks-technologies/phonon.qdoc | 2 +- doc/src/frameworks-technologies/plugins-howto.qdoc | 2 +- doc/src/frameworks-technologies/qthelp.qdoc | 2 +- doc/src/frameworks-technologies/qundo.qdoc | 2 +- doc/src/frameworks-technologies/richtext.qdoc | 2 +- doc/src/frameworks-technologies/statemachine.qdoc | 2 +- doc/src/frameworks-technologies/templates.qdoc | 2 +- doc/src/frameworks-technologies/threads.qdoc | 2 +- doc/src/frameworks-technologies/unicode.qdoc | 2 +- doc/src/getting-started/demos.qdoc | 2 +- doc/src/getting-started/examples.qdoc | 2 +- doc/src/getting-started/gettingstarted.qdoc | 2 +- doc/src/getting-started/gettingstartedqml.qdoc | 2 +- doc/src/getting-started/gettingstartedqt.qdoc | 2 +- doc/src/getting-started/how-to-learn-qt.qdoc | 2 +- doc/src/getting-started/installation.qdoc | 2 +- doc/src/getting-started/known-issues.qdoc | 2 +- doc/src/getting-started/tutorials.qdoc | 2 +- doc/src/howtos/HWacceleration.qdoc | 2 +- doc/src/howtos/accelerators.qdoc | 2 +- doc/src/howtos/appicon.qdoc | 2 +- doc/src/howtos/custom-types.qdoc | 2 +- doc/src/howtos/exceptionsafety.qdoc | 2 +- doc/src/howtos/guibooks.qdoc | 2 +- doc/src/howtos/openvg.qdoc | 2 +- doc/src/howtos/qtdesigner.qdoc | 2 +- doc/src/howtos/restoring-geometry.qdoc | 2 +- doc/src/howtos/session.qdoc | 2 +- doc/src/howtos/sharedlibrary.qdoc | 2 +- doc/src/howtos/timers.qdoc | 2 +- doc/src/howtos/unix-signal-handlers.qdoc | 2 +- doc/src/index.qdoc | 2 +- doc/src/internationalization/i18n.qdoc | 2 +- doc/src/internationalization/linguist-manual.qdoc | 2 +- doc/src/ja_JP/development/designer-manual.qdoc | 2 +- doc/src/ja_JP/development/qmake-manual.qdoc | 2 +- doc/src/ja_JP/development/qtestlib.qdoc | 2 +- doc/src/ja_JP/examples/arrowpad.qdoc | 2 +- doc/src/ja_JP/examples/hellotr.qdoc | 2 +- doc/src/ja_JP/examples/trollprint.qdoc | 2 +- doc/src/ja_JP/getting-started/tutorials.qdoc | 2 +- .../snippets/code/doc_src_examples_hellotr.qdoc | 2 +- doc/src/ja_JP/tutorials/addressbook.qdoc | 2 +- doc/src/ja_JP/tutorials/widgets-tutorial.qdoc | 2 +- doc/src/legal/3rdparty.qdoc | 2 +- doc/src/legal/commercialeditions.qdoc | 2 +- doc/src/legal/editions.qdoc | 2 +- doc/src/legal/gpl.qdoc | 6 +++--- doc/src/legal/licenses.qdoc | 2 +- doc/src/legal/opensourceedition.qdoc | 2 +- doc/src/legal/trademarks.qdoc | 2 +- doc/src/modules.qdoc | 14 +++++++------- doc/src/network-programming/bearermanagement.qdoc | 2 +- doc/src/network-programming/qtnetwork.qdoc | 2 +- doc/src/network-programming/ssl.qdoc | 2 +- doc/src/objectmodel/metaobjects.qdoc | 2 +- doc/src/objectmodel/object.qdoc | 2 +- doc/src/objectmodel/objecttrees.qdoc | 2 +- doc/src/objectmodel/properties.qdoc | 2 +- doc/src/objectmodel/signalsandslots.qdoc | 2 +- doc/src/overviews.qdoc | 2 +- doc/src/painting-and-printing/coordsys.qdoc | 2 +- doc/src/painting-and-printing/paintsystem.qdoc | 2 +- doc/src/painting-and-printing/printing.qdoc | 2 +- doc/src/platforms/atomic-operations.qdoc | 2 +- doc/src/platforms/compiler-notes.qdoc | 2 +- doc/src/platforms/emb-HwAcc-LinuxEmbedded.qdoc | 2 +- doc/src/platforms/emb-HwAcc-WinCE.qdoc | 2 +- doc/src/platforms/emb-accel.qdoc | 2 +- doc/src/platforms/emb-architecture.qdoc | 2 +- doc/src/platforms/emb-charinput.qdoc | 2 +- doc/src/platforms/emb-crosscompiling.qdoc | 2 +- doc/src/platforms/emb-deployment.qdoc | 2 +- doc/src/platforms/emb-differences.qdoc | 2 +- doc/src/platforms/emb-directfb-EmbLinux.qdoc | 2 +- doc/src/platforms/emb-displaymanagement.qdoc | 2 +- doc/src/platforms/emb-envvars.qdoc | 2 +- doc/src/platforms/emb-features.qdoc | 2 +- doc/src/platforms/emb-fonts.qdoc | 2 +- doc/src/platforms/emb-framebuffer-howto.qdoc | 2 +- doc/src/platforms/emb-install.qdoc | 2 +- doc/src/platforms/emb-kmap2qmap.qdoc | 2 +- doc/src/platforms/emb-makeqpf.qdoc | 2 +- doc/src/platforms/emb-opengl-EmbLinux.qdoc | 2 +- doc/src/platforms/emb-openvg-EmbLinux.qdoc | 2 +- doc/src/platforms/emb-performance.qdoc | 2 +- doc/src/platforms/emb-pointer.qdoc | 2 +- doc/src/platforms/emb-porting.qdoc | 2 +- doc/src/platforms/emb-qvfb.qdoc | 2 +- doc/src/platforms/emb-running.qdoc | 2 +- doc/src/platforms/emb-vnc.qdoc | 2 +- doc/src/platforms/mac-differences.qdoc | 2 +- doc/src/platforms/platform-notes-rtos.qdoc | 2 +- doc/src/platforms/platform-notes.qdoc | 2 +- doc/src/platforms/qt-embedded-linux.qdoc | 2 +- doc/src/platforms/qt-embedded.qdoc | 2 +- doc/src/platforms/qtmac-as-native.qdoc | 2 +- doc/src/platforms/supported-platforms.qdoc | 2 +- doc/src/platforms/symbian-exceptionsafety.qdoc | 2 +- doc/src/platforms/symbian-introduction.qdoc | 2 +- doc/src/platforms/wince-customization.qdoc | 2 +- doc/src/platforms/wince-introduction.qdoc | 2 +- doc/src/platforms/wince-opengl.qdoc | 2 +- doc/src/platforms/wince-openvg.qdoc | 2 +- doc/src/platforms/wince-signing.qdoc | 2 +- doc/src/platforms/winsystem.qdoc | 2 +- doc/src/platforms/x11overlays.qdoc | 2 +- doc/src/porting/porting-qsa.qdoc | 2 +- doc/src/porting/porting4-canvas.qdoc | 2 +- doc/src/porting/porting4-designer.qdoc | 2 +- doc/src/porting/porting4-dnd.qdoc | 2 +- doc/src/porting/porting4-overview.qdoc | 2 +- doc/src/porting/porting4.qdoc | 2 +- doc/src/porting/qt3to4.qdoc | 4 ++-- doc/src/porting/qt4-accessibility.qdoc | 2 +- doc/src/porting/qt4-arthur.qdoc | 2 +- doc/src/porting/qt4-designer.qdoc | 2 +- doc/src/porting/qt4-interview.qdoc | 2 +- doc/src/porting/qt4-mainwindow.qdoc | 2 +- doc/src/porting/qt4-network.qdoc | 2 +- doc/src/porting/qt4-scribe.qdoc | 2 +- doc/src/porting/qt4-sql.qdoc | 2 +- doc/src/porting/qt4-styles.qdoc | 2 +- doc/src/porting/qt4-threads.qdoc | 2 +- doc/src/porting/qt4-tulip.qdoc | 2 +- doc/src/qt-resources.qdoc | 2 +- doc/src/qt-webpages.qdoc | 2 +- doc/src/qt4-intro.qdoc | 2 +- doc/src/scripting/ecmascript.qdoc | 2 +- doc/src/scripting/qtscriptdebugger-manual.qdoc | 2 +- doc/src/scripting/qtscriptextensions.qdoc | 2 +- doc/src/scripting/scripting.qdoc | 2 +- doc/src/snippets/accessibilityfactorysnippet.cpp | 2 +- doc/src/snippets/accessibilitypluginsnippet.cpp | 2 +- doc/src/snippets/accessibilityslidersnippet.cpp | 2 +- doc/src/snippets/alphachannel.cpp | 2 +- doc/src/snippets/animation/sequential/main.cpp | 2 +- doc/src/snippets/animation/sequential/tracer.cpp | 2 +- doc/src/snippets/animation/sequential/tracer.h | 2 +- doc/src/snippets/audio/main.cpp | 2 +- doc/src/snippets/audioeffects.cpp | 2 +- doc/src/snippets/brush/brush.cpp | 2 +- doc/src/snippets/brush/gradientcreationsnippet.cpp | 2 +- doc/src/snippets/brushstyles/main.cpp | 2 +- doc/src/snippets/brushstyles/renderarea.cpp | 2 +- doc/src/snippets/brushstyles/renderarea.h | 2 +- doc/src/snippets/brushstyles/stylewidget.cpp | 2 +- doc/src/snippets/brushstyles/stylewidget.h | 2 +- doc/src/snippets/buffer/buffer.cpp | 2 +- doc/src/snippets/clipboard/clipwindow.cpp | 2 +- doc/src/snippets/clipboard/clipwindow.h | 2 +- doc/src/snippets/clipboard/main.cpp | 2 +- doc/src/snippets/code/doc.src.qtscripttools.qdoc | 2 +- .../snippets/code/doc_src_activeqt-dumpcpp.qdoc | 2 +- doc/src/snippets/code/doc_src_appicon.qdoc | 2 +- .../snippets/code/doc_src_assistant-manual.qdoc | 2 +- .../snippets/code/doc_src_atomic-operations.qdoc | 2 +- doc/src/snippets/code/doc_src_compiler-notes.qdoc | 2 +- doc/src/snippets/code/doc_src_containers.qdoc | 2 +- doc/src/snippets/code/doc_src_coordsys.qdoc | 2 +- doc/src/snippets/code/doc_src_debug.qdoc | 2 +- doc/src/snippets/code/doc_src_deployment.qdoc | 2 +- doc/src/snippets/code/doc_src_designer-manual.qdoc | 2 +- doc/src/snippets/code/doc_src_dnd.qdoc | 2 +- doc/src/snippets/code/doc_src_emb-charinput.qdoc | 2 +- .../snippets/code/doc_src_emb-crosscompiling.qdoc | 2 +- doc/src/snippets/code/doc_src_emb-envvars.qdoc | 2 +- doc/src/snippets/code/doc_src_emb-features.qdoc | 2 +- doc/src/snippets/code/doc_src_emb-fonts.qdoc | 2 +- doc/src/snippets/code/doc_src_emb-install.qdoc | 2 +- doc/src/snippets/code/doc_src_emb-performance.qdoc | 2 +- doc/src/snippets/code/doc_src_emb-pointer.qdoc | 2 +- doc/src/snippets/code/doc_src_emb-qvfb.qdoc | 2 +- doc/src/snippets/code/doc_src_emb-running.qdoc | 2 +- doc/src/snippets/code/doc_src_emb-vnc.qdoc | 2 +- .../code/doc_src_examples_activeqt_comapp.qdoc | 2 +- .../code/doc_src_examples_activeqt_dotnet.qdoc | 2 +- .../code/doc_src_examples_activeqt_menus.qdoc | 2 +- .../code/doc_src_examples_application.qdoc | 2 +- .../snippets/code/doc_src_examples_arrowpad.qdoc | 2 +- .../code/doc_src_examples_containerextension.qdoc | 2 +- .../code/doc_src_examples_customwidgetplugin.qdoc | 2 +- .../snippets/code/doc_src_examples_dropsite.qdoc | 2 +- .../code/doc_src_examples_editabletreemodel.qdoc | 2 +- .../snippets/code/doc_src_examples_hellotr.qdoc | 2 +- doc/src/snippets/code/doc_src_examples_icons.qdoc | 2 +- .../code/doc_src_examples_imageviewer.qdoc | 2 +- .../code/doc_src_examples_qtscriptcustomclass.qdoc | 2 +- .../code/doc_src_examples_simpledommodel.qdoc | 2 +- .../code/doc_src_examples_simpletreemodel.qdoc | 2 +- .../snippets/code/doc_src_examples_svgalib.qdoc | 2 +- .../code/doc_src_examples_taskmenuextension.qdoc | 2 +- .../snippets/code/doc_src_examples_textfinder.qdoc | 2 +- .../snippets/code/doc_src_examples_trollprint.qdoc | 2 +- .../snippets/code/doc_src_examples_tutorial.qdoc | 2 +- .../doc_src_examples_worldtimeclockplugin.qdoc | 2 +- .../snippets/code/doc_src_exportedfunctions.qdoc | 2 +- doc/src/snippets/code/doc_src_fdl.qdoc | 2 +- doc/src/snippets/code/doc_src_gpl.qdoc | 2 +- doc/src/snippets/code/doc_src_graphicsview.qdoc | 2 +- doc/src/snippets/code/doc_src_groups.qdoc | 2 +- doc/src/snippets/code/doc_src_i18n.qdoc | 2 +- doc/src/snippets/code/doc_src_installation.qdoc | 2 +- doc/src/snippets/code/doc_src_introtodbus.qdoc | 2 +- doc/src/snippets/code/doc_src_layout.qdoc | 2 +- doc/src/snippets/code/doc_src_lgpl.qdoc | 2 +- doc/src/snippets/code/doc_src_licenses.qdoc | 2 +- doc/src/snippets/code/doc_src_linguist-manual.qdoc | 2 +- doc/src/snippets/code/doc_src_mac-differences.qdoc | 2 +- doc/src/snippets/code/doc_src_moc.qdoc | 2 +- .../code/doc_src_model-view-programming.qdoc | 2 +- doc/src/snippets/code/doc_src_modules.qdoc | 2 +- doc/src/snippets/code/doc_src_objecttrees.qdoc | 2 +- doc/src/snippets/code/doc_src_phonon-api.qdoc | 2 +- doc/src/snippets/code/doc_src_phonon.qdoc | 2 +- doc/src/snippets/code/doc_src_platform-notes.qdoc | 2 +- doc/src/snippets/code/doc_src_plugins-howto.qdoc | 2 +- doc/src/snippets/code/doc_src_porting-qsa.qdoc | 2 +- doc/src/snippets/code/doc_src_porting4-canvas.qdoc | 2 +- .../snippets/code/doc_src_porting4-designer.qdoc | 2 +- doc/src/snippets/code/doc_src_porting4.qdoc | 2 +- doc/src/snippets/code/doc_src_properties.qdoc | 2 +- doc/src/snippets/code/doc_src_q3asciidict.qdoc | 2 +- doc/src/snippets/code/doc_src_q3dict.qdoc | 2 +- doc/src/snippets/code/doc_src_q3intdict.qdoc | 2 +- doc/src/snippets/code/doc_src_q3memarray.qdoc | 2 +- doc/src/snippets/code/doc_src_q3ptrdict.qdoc | 2 +- doc/src/snippets/code/doc_src_q3ptrlist.qdoc | 2 +- doc/src/snippets/code/doc_src_q3valuelist.qdoc | 2 +- doc/src/snippets/code/doc_src_q3valuestack.qdoc | 2 +- doc/src/snippets/code/doc_src_q3valuevector.qdoc | 2 +- doc/src/snippets/code/doc_src_qalgorithms.qdoc | 2 +- doc/src/snippets/code/doc_src_qaxcontainer.qdoc | 2 +- doc/src/snippets/code/doc_src_qaxserver.qdoc | 2 +- doc/src/snippets/code/doc_src_qcache.qdoc | 2 +- doc/src/snippets/code/doc_src_qdbusadaptors.qdoc | 2 +- doc/src/snippets/code/doc_src_qiterator.qdoc | 2 +- doc/src/snippets/code/doc_src_qmake-manual.qdoc | 2 +- doc/src/snippets/code/doc_src_qnamespace.qdoc | 2 +- doc/src/snippets/code/doc_src_qpair.qdoc | 2 +- doc/src/snippets/code/doc_src_qplugin.qdoc | 2 +- doc/src/snippets/code/doc_src_qset.qdoc | 2 +- doc/src/snippets/code/doc_src_qsignalspy.qdoc | 2 +- doc/src/snippets/code/doc_src_qt-conf.qdoc | 2 +- .../doc_src_qt-embedded-displaymanagement.qdoc | 2 +- doc/src/snippets/code/doc_src_qt3support.qdoc | 2 +- doc/src/snippets/code/doc_src_qt3to4.qdoc | 2 +- .../snippets/code/doc_src_qt4-accessibility.qdoc | 2 +- doc/src/snippets/code/doc_src_qt4-arthur.qdoc | 2 +- doc/src/snippets/code/doc_src_qt4-intro.qdoc | 2 +- doc/src/snippets/code/doc_src_qt4-mainwindow.qdoc | 2 +- doc/src/snippets/code/doc_src_qt4-sql.qdoc | 2 +- doc/src/snippets/code/doc_src_qt4-styles.qdoc | 2 +- doc/src/snippets/code/doc_src_qt4-tulip.qdoc | 2 +- doc/src/snippets/code/doc_src_qtcore.qdoc | 2 +- doc/src/snippets/code/doc_src_qtdbus.qdoc | 2 +- doc/src/snippets/code/doc_src_qtdesigner.qdoc | 2 +- doc/src/snippets/code/doc_src_qtestevent.qdoc | 2 +- doc/src/snippets/code/doc_src_qtestlib.qdoc | 2 +- doc/src/snippets/code/doc_src_qtgui.qdoc | 2 +- doc/src/snippets/code/doc_src_qthelp.qdoc | 2 +- doc/src/snippets/code/doc_src_qtmac-as-native.qdoc | 2 +- doc/src/snippets/code/doc_src_qtmultimedia.qdoc | 2 +- doc/src/snippets/code/doc_src_qtnetwork.qdoc | 2 +- doc/src/snippets/code/doc_src_qtopengl.qdoc | 2 +- doc/src/snippets/code/doc_src_qtscript.qdoc | 2 +- .../snippets/code/doc_src_qtscriptextensions.qdoc | 2 +- doc/src/snippets/code/doc_src_qtsql.qdoc | 2 +- doc/src/snippets/code/doc_src_qtsvg.qdoc | 2 +- doc/src/snippets/code/doc_src_qttest.qdoc | 2 +- doc/src/snippets/code/doc_src_qtuiloader.qdoc | 2 +- doc/src/snippets/code/doc_src_qtxml.qdoc | 2 +- doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc | 2 +- doc/src/snippets/code/doc_src_qvarlengtharray.qdoc | 2 +- doc/src/snippets/code/doc_src_rcc.qdoc | 2 +- doc/src/snippets/code/doc_src_resources.qdoc | 2 +- doc/src/snippets/code/doc_src_richtext.qdoc | 2 +- doc/src/snippets/code/doc_src_session.qdoc | 2 +- doc/src/snippets/code/doc_src_sql-driver.qdoc | 2 +- doc/src/snippets/code/doc_src_styles.qdoc | 2 +- doc/src/snippets/code/doc_src_stylesheet.qdoc | 2 +- .../code/doc_src_symbian-introduction.qdoc | 2 +- doc/src/snippets/code/doc_src_uic.qdoc | 2 +- doc/src/snippets/code/doc_src_unicode.qdoc | 2 +- .../code/doc_src_unix-signal-handlers.qdoc | 2 +- .../snippets/code/doc_src_wince-customization.qdoc | 2 +- .../snippets/code/doc_src_wince-introduction.qdoc | 2 +- doc/src/snippets/code/doc_src_wince-opengl.qdoc | 2 +- .../code/src.gui.text.qtextdocumentwriter.cpp | 2 +- .../snippets/code/src.qdbus.qdbuspendingcall.cpp | 2 +- .../snippets/code/src.qdbus.qdbuspendingreply.cpp | 2 +- .../code/src.scripttools.qscriptenginedebugger.cpp | 2 +- .../code/src_activeqt_container_qaxbase.cpp | 2 +- .../code/src_activeqt_container_qaxscript.cpp | 2 +- .../code/src_activeqt_control_qaxbindable.cpp | 2 +- .../code/src_activeqt_control_qaxfactory.cpp | 2 +- .../code/src_corelib_codecs_qtextcodec.cpp | 2 +- .../code/src_corelib_codecs_qtextcodecplugin.cpp | 2 +- .../code/src_corelib_concurrent_qfuture.cpp | 2 +- .../src_corelib_concurrent_qfuturesynchronizer.cpp | 2 +- .../code/src_corelib_concurrent_qfuturewatcher.cpp | 2 +- ...rc_corelib_concurrent_qtconcurrentexception.cpp | 2 +- .../src_corelib_concurrent_qtconcurrentfilter.cpp | 2 +- .../src_corelib_concurrent_qtconcurrentmap.cpp | 2 +- .../src_corelib_concurrent_qtconcurrentrun.cpp | 2 +- .../code/src_corelib_concurrent_qthreadpool.cpp | 2 +- .../snippets/code/src_corelib_global_qglobal.cpp | 2 +- .../code/src_corelib_io_qabstractfileengine.cpp | 2 +- .../snippets/code/src_corelib_io_qdatastream.cpp | 2 +- doc/src/snippets/code/src_corelib_io_qdir.cpp | 2 +- .../snippets/code/src_corelib_io_qdiriterator.cpp | 2 +- doc/src/snippets/code/src_corelib_io_qfile.cpp | 2 +- doc/src/snippets/code/src_corelib_io_qfileinfo.cpp | 2 +- doc/src/snippets/code/src_corelib_io_qiodevice.cpp | 2 +- doc/src/snippets/code/src_corelib_io_qprocess.cpp | 2 +- doc/src/snippets/code/src_corelib_io_qsettings.cpp | 2 +- .../code/src_corelib_io_qtemporaryfile.cpp | 2 +- .../snippets/code/src_corelib_io_qtextstream.cpp | 2 +- doc/src/snippets/code/src_corelib_io_qurl.cpp | 2 +- ...src_corelib_kernel_qabstracteventdispatcher.cpp | 2 +- .../code/src_corelib_kernel_qabstractitemmodel.cpp | 2 +- .../code/src_corelib_kernel_qcoreapplication.cpp | 2 +- .../code/src_corelib_kernel_qmetaobject.cpp | 2 +- .../snippets/code/src_corelib_kernel_qmetatype.cpp | 2 +- .../snippets/code/src_corelib_kernel_qmimedata.cpp | 2 +- .../snippets/code/src_corelib_kernel_qobject.cpp | 2 +- .../code/src_corelib_kernel_qsystemsemaphore.cpp | 2 +- .../snippets/code/src_corelib_kernel_qtimer.cpp | 2 +- .../snippets/code/src_corelib_kernel_qvariant.cpp | 2 +- .../snippets/code/src_corelib_plugin_qlibrary.cpp | 2 +- doc/src/snippets/code/src_corelib_plugin_quuid.cpp | 2 +- .../src_corelib_statemachine_qstatemachine.cpp | 2 +- .../snippets/code/src_corelib_thread_qatomic.cpp | 2 +- .../snippets/code/src_corelib_thread_qmutex.cpp | 2 +- .../code/src_corelib_thread_qmutexpool.cpp | 2 +- .../code/src_corelib_thread_qreadwritelock.cpp | 2 +- .../code/src_corelib_thread_qsemaphore.cpp | 2 +- .../snippets/code/src_corelib_thread_qthread.cpp | 2 +- .../src_corelib_thread_qwaitcondition_unix.cpp | 2 +- .../snippets/code/src_corelib_tools_qbitarray.cpp | 2 +- .../snippets/code/src_corelib_tools_qbytearray.cpp | 2 +- .../snippets/code/src_corelib_tools_qdatetime.cpp | 2 +- .../code/src_corelib_tools_qeasingcurve.cpp | 2 +- doc/src/snippets/code/src_corelib_tools_qhash.cpp | 2 +- .../code/src_corelib_tools_qlinkedlist.cpp | 2 +- .../snippets/code/src_corelib_tools_qlistdata.cpp | 2 +- .../snippets/code/src_corelib_tools_qlocale.cpp | 2 +- doc/src/snippets/code/src_corelib_tools_qmap.cpp | 2 +- doc/src/snippets/code/src_corelib_tools_qpoint.cpp | 2 +- doc/src/snippets/code/src_corelib_tools_qqueue.cpp | 2 +- doc/src/snippets/code/src_corelib_tools_qrect.cpp | 2 +- .../snippets/code/src_corelib_tools_qregexp.cpp | 2 +- .../code/src_corelib_tools_qscopedpointer.cpp | 2 +- doc/src/snippets/code/src_corelib_tools_qsize.cpp | 2 +- .../snippets/code/src_corelib_tools_qstring.cpp | 2 +- .../snippets/code/src_corelib_tools_qtimeline.cpp | 2 +- .../snippets/code/src_corelib_tools_qvector.cpp | 2 +- .../snippets/code/src_corelib_xml_qxmlstream.cpp | 2 +- .../code/src_gui_accessible_qaccessible.cpp | 2 +- .../code/src_gui_dialogs_qabstractprintdialog.cpp | 2 +- .../snippets/code/src_gui_dialogs_qfiledialog.cpp | 2 +- .../snippets/code/src_gui_dialogs_qfontdialog.cpp | 2 +- .../snippets/code/src_gui_dialogs_qmessagebox.cpp | 2 +- doc/src/snippets/code/src_gui_dialogs_qwizard.cpp | 2 +- .../code/src_gui_effects_qgraphicseffect.cpp | 2 +- .../code/src_gui_embedded_qcopchannel_qws.cpp | 2 +- .../snippets/code/src_gui_embedded_qmouse_qws.cpp | 2 +- .../code/src_gui_embedded_qmousetslib_qws.cpp | 2 +- .../snippets/code/src_gui_embedded_qscreen_qws.cpp | 2 +- .../code/src_gui_embedded_qtransportauth_qws.cpp | 2 +- .../code/src_gui_embedded_qwindowsystem_qws.cpp | 2 +- .../src_gui_graphicsview_qgraphicsgridlayout.cpp | 2 +- .../code/src_gui_graphicsview_qgraphicsitem.cpp | 2 +- .../src_gui_graphicsview_qgraphicslinearlayout.cpp | 2 +- .../src_gui_graphicsview_qgraphicsproxywidget.cpp | 2 +- .../code/src_gui_graphicsview_qgraphicsscene.cpp | 2 +- .../src_gui_graphicsview_qgraphicssceneevent.cpp | 2 +- .../code/src_gui_graphicsview_qgraphicsview.cpp | 2 +- .../code/src_gui_graphicsview_qgraphicswidget.cpp | 2 +- doc/src/snippets/code/src_gui_image_qbitmap.cpp | 2 +- doc/src/snippets/code/src_gui_image_qicon.cpp | 2 +- doc/src/snippets/code/src_gui_image_qimage.cpp | 2 +- .../snippets/code/src_gui_image_qimagereader.cpp | 2 +- .../snippets/code/src_gui_image_qimagewriter.cpp | 2 +- doc/src/snippets/code/src_gui_image_qmovie.cpp | 2 +- doc/src/snippets/code/src_gui_image_qpixmap.cpp | 2 +- .../snippets/code/src_gui_image_qpixmapcache.cpp | 2 +- .../snippets/code/src_gui_image_qpixmapfilter.cpp | 2 +- .../code/src_gui_itemviews_qabstractitemview.cpp | 2 +- .../code/src_gui_itemviews_qdatawidgetmapper.cpp | 2 +- .../code/src_gui_itemviews_qitemeditorfactory.cpp | 2 +- .../code/src_gui_itemviews_qitemselectionmodel.cpp | 2 +- .../code/src_gui_itemviews_qstandarditemmodel.cpp | 2 +- .../code/src_gui_itemviews_qtablewidget.cpp | 2 +- .../code/src_gui_itemviews_qtreewidget.cpp | 2 +- doc/src/snippets/code/src_gui_kernel_qaction.cpp | 2 +- .../snippets/code/src_gui_kernel_qapplication.cpp | 2 +- .../code/src_gui_kernel_qapplication_x11.cpp | 2 +- .../snippets/code/src_gui_kernel_qclipboard.cpp | 2 +- doc/src/snippets/code/src_gui_kernel_qevent.cpp | 2 +- .../snippets/code/src_gui_kernel_qformlayout.cpp | 2 +- .../snippets/code/src_gui_kernel_qkeysequence.cpp | 2 +- doc/src/snippets/code/src_gui_kernel_qlayout.cpp | 2 +- .../snippets/code/src_gui_kernel_qlayoutitem.cpp | 2 +- doc/src/snippets/code/src_gui_kernel_qshortcut.cpp | 2 +- .../snippets/code/src_gui_kernel_qshortcutmap.cpp | 2 +- doc/src/snippets/code/src_gui_kernel_qsound.cpp | 2 +- doc/src/snippets/code/src_gui_kernel_qwidget.cpp | 2 +- doc/src/snippets/code/src_gui_painting_qbrush.cpp | 2 +- doc/src/snippets/code/src_gui_painting_qcolor.cpp | 2 +- .../snippets/code/src_gui_painting_qdrawutil.cpp | 2 +- doc/src/snippets/code/src_gui_painting_qmatrix.cpp | 2 +- .../snippets/code/src_gui_painting_qpainter.cpp | 2 +- .../code/src_gui_painting_qpainterpath.cpp | 2 +- doc/src/snippets/code/src_gui_painting_qpen.cpp | 2 +- doc/src/snippets/code/src_gui_painting_qregion.cpp | 2 +- .../code/src_gui_painting_qregion_unix.cpp | 2 +- .../snippets/code/src_gui_painting_qtransform.cpp | 2 +- doc/src/snippets/code/src_gui_qproxystyle.cpp | 2 +- doc/src/snippets/code/src_gui_styles_qstyle.cpp | 2 +- .../snippets/code/src_gui_styles_qstyleoption.cpp | 2 +- doc/src/snippets/code/src_gui_text_qfont.cpp | 2 +- .../snippets/code/src_gui_text_qfontmetrics.cpp | 2 +- .../code/src_gui_text_qsyntaxhighlighter.cpp | 2 +- doc/src/snippets/code/src_gui_text_qtextcursor.cpp | 2 +- .../snippets/code/src_gui_text_qtextdocument.cpp | 2 +- doc/src/snippets/code/src_gui_text_qtextlayout.cpp | 2 +- doc/src/snippets/code/src_gui_util_qcompleter.cpp | 2 +- .../code/src_gui_util_qdesktopservices.cpp | 2 +- doc/src/snippets/code/src_gui_util_qundostack.cpp | 2 +- .../code/src_gui_widgets_qabstractbutton.cpp | 2 +- .../code/src_gui_widgets_qabstractspinbox.cpp | 2 +- .../code/src_gui_widgets_qcalendarwidget.cpp | 2 +- .../snippets/code/src_gui_widgets_qcheckbox.cpp | 2 +- .../code/src_gui_widgets_qdatetimeedit.cpp | 2 +- .../snippets/code/src_gui_widgets_qdockwidget.cpp | 2 +- doc/src/snippets/code/src_gui_widgets_qframe.cpp | 2 +- .../snippets/code/src_gui_widgets_qgroupbox.cpp | 2 +- doc/src/snippets/code/src_gui_widgets_qlabel.cpp | 2 +- .../snippets/code/src_gui_widgets_qlineedit.cpp | 2 +- .../snippets/code/src_gui_widgets_qmainwindow.cpp | 2 +- doc/src/snippets/code/src_gui_widgets_qmenu.cpp | 2 +- doc/src/snippets/code/src_gui_widgets_qmenubar.cpp | 2 +- .../code/src_gui_widgets_qplaintextedit.cpp | 2 +- .../snippets/code/src_gui_widgets_qpushbutton.cpp | 2 +- .../snippets/code/src_gui_widgets_qradiobutton.cpp | 2 +- .../snippets/code/src_gui_widgets_qrubberband.cpp | 2 +- .../snippets/code/src_gui_widgets_qscrollarea.cpp | 2 +- doc/src/snippets/code/src_gui_widgets_qspinbox.cpp | 2 +- .../code/src_gui_widgets_qsplashscreen.cpp | 2 +- .../snippets/code/src_gui_widgets_qsplitter.cpp | 2 +- .../snippets/code/src_gui_widgets_qstatusbar.cpp | 2 +- .../snippets/code/src_gui_widgets_qtextbrowser.cpp | 2 +- .../snippets/code/src_gui_widgets_qtextedit.cpp | 2 +- .../snippets/code/src_gui_widgets_qvalidator.cpp | 2 +- .../snippets/code/src_gui_widgets_qworkspace.cpp | 2 +- doc/src/snippets/code/src_network_access_qftp.cpp | 2 +- doc/src/snippets/code/src_network_access_qhttp.cpp | 2 +- .../src_network_access_qnetworkaccessmanager.cpp | 2 +- .../code/src_network_access_qnetworkdiskcache.cpp | 2 +- .../code/src_network_access_qnetworkreply.cpp | 2 +- .../code/src_network_access_qnetworkrequest.cpp | 2 +- .../src_network_bearer_qnetworkconfigmanager.cpp | 2 +- .../code/src_network_kernel_qhostaddress.cpp | 2 +- .../snippets/code/src_network_kernel_qhostinfo.cpp | 2 +- .../code/src_network_kernel_qnetworkproxy.cpp | 2 +- .../code/src_network_socket_qabstractsocket.cpp | 2 +- .../code/src_network_socket_qlocalsocket_unix.cpp | 2 +- .../src_network_socket_qnativesocketengine.cpp | 2 +- .../code/src_network_socket_qtcpserver.cpp | 2 +- .../code/src_network_socket_qudpsocket.cpp | 2 +- .../code/src_network_ssl_qsslcertificate.cpp | 2 +- .../code/src_network_ssl_qsslconfiguration.cpp | 2 +- .../snippets/code/src_network_ssl_qsslsocket.cpp | 2 +- doc/src/snippets/code/src_opengl_qgl.cpp | 2 +- doc/src/snippets/code/src_opengl_qglcolormap.cpp | 2 +- .../snippets/code/src_opengl_qglpixelbuffer.cpp | 2 +- .../snippets/code/src_opengl_qglshaderprogram.cpp | 2 +- .../code/src_qdbus_qdbusabstractinterface.cpp | 2 +- doc/src/snippets/code/src_qdbus_qdbusargument.cpp | 2 +- doc/src/snippets/code/src_qdbus_qdbuscontext.cpp | 2 +- doc/src/snippets/code/src_qdbus_qdbusinterface.cpp | 2 +- doc/src/snippets/code/src_qdbus_qdbusmetatype.cpp | 2 +- doc/src/snippets/code/src_qdbus_qdbusreply.cpp | 2 +- .../code/src_qt3support_canvas_q3canvas.cpp | 2 +- .../code/src_qt3support_dialogs_q3filedialog.cpp | 2 +- .../src_qt3support_dialogs_q3progressdialog.cpp | 2 +- .../code/src_qt3support_itemviews_q3iconview.cpp | 2 +- .../code/src_qt3support_itemviews_q3listview.cpp | 2 +- .../code/src_qt3support_itemviews_q3table.cpp | 2 +- .../snippets/code/src_qt3support_network_q3dns.cpp | 2 +- .../snippets/code/src_qt3support_network_q3ftp.cpp | 2 +- .../code/src_qt3support_network_q3http.cpp | 2 +- .../code/src_qt3support_network_q3localfs.cpp | 2 +- .../src_qt3support_network_q3networkprotocol.cpp | 2 +- .../code/src_qt3support_network_q3socket.cpp | 2 +- .../code/src_qt3support_network_q3socketdevice.cpp | 2 +- .../snippets/code/src_qt3support_network_q3url.cpp | 2 +- .../code/src_qt3support_network_q3urloperator.cpp | 2 +- .../snippets/code/src_qt3support_other_q3accel.cpp | 2 +- .../code/src_qt3support_other_q3mimefactory.cpp | 2 +- .../code/src_qt3support_other_q3process.cpp | 2 +- .../code/src_qt3support_other_q3process_unix.cpp | 2 +- ...rc_qt3support_painting_q3paintdevicemetrics.cpp | 2 +- .../code/src_qt3support_painting_q3painter.cpp | 2 +- .../code/src_qt3support_painting_q3picture.cpp | 2 +- .../code/src_qt3support_sql_q3databrowser.cpp | 2 +- .../code/src_qt3support_sql_q3datatable.cpp | 2 +- .../code/src_qt3support_sql_q3dataview.cpp | 2 +- .../code/src_qt3support_sql_q3sqlcursor.cpp | 2 +- .../snippets/code/src_qt3support_sql_q3sqlform.cpp | 2 +- .../code/src_qt3support_sql_q3sqlmanager_p.cpp | 2 +- .../code/src_qt3support_sql_q3sqlpropertymap.cpp | 2 +- .../code/src_qt3support_sql_q3sqlselectcursor.cpp | 2 +- .../code/src_qt3support_text_q3simplerichtext.cpp | 2 +- .../code/src_qt3support_text_q3textbrowser.cpp | 2 +- .../code/src_qt3support_text_q3textedit.cpp | 2 +- .../code/src_qt3support_text_q3textstream.cpp | 2 +- .../code/src_qt3support_tools_q3cstring.cpp | 2 +- .../code/src_qt3support_tools_q3deepcopy.cpp | 2 +- .../code/src_qt3support_tools_q3garray.cpp | 2 +- .../code/src_qt3support_tools_q3signal.cpp | 2 +- .../code/src_qt3support_widgets_q3combobox.cpp | 2 +- .../code/src_qt3support_widgets_q3datetimeedit.cpp | 2 +- .../code/src_qt3support_widgets_q3dockarea.cpp | 2 +- .../code/src_qt3support_widgets_q3dockwindow.cpp | 2 +- .../code/src_qt3support_widgets_q3gridview.cpp | 2 +- .../code/src_qt3support_widgets_q3header.cpp | 2 +- .../code/src_qt3support_widgets_q3mainwindow.cpp | 2 +- .../code/src_qt3support_widgets_q3scrollview.cpp | 2 +- .../code/src_qt3support_widgets_q3whatsthis.cpp | 2 +- doc/src/snippets/code/src_qtestlib_qtestcase.cpp | 2 +- doc/src/snippets/code/src_script_qscriptable.cpp | 2 +- doc/src/snippets/code/src_script_qscriptclass.cpp | 2 +- .../snippets/code/src_script_qscriptcontext.cpp | 2 +- doc/src/snippets/code/src_script_qscriptengine.cpp | 2 +- .../code/src_script_qscriptengineagent.cpp | 2 +- doc/src/snippets/code/src_script_qscriptvalue.cpp | 2 +- .../code/src_script_qscriptvalueiterator.cpp | 2 +- .../snippets/code/src_sql_kernel_qsqldatabase.cpp | 2 +- .../snippets/code/src_sql_kernel_qsqldriver.cpp | 2 +- doc/src/snippets/code/src_sql_kernel_qsqlerror.cpp | 2 +- doc/src/snippets/code/src_sql_kernel_qsqlindex.cpp | 2 +- doc/src/snippets/code/src_sql_kernel_qsqlquery.cpp | 2 +- .../snippets/code/src_sql_kernel_qsqlresult.cpp | 2 +- .../code/src_sql_models_qsqlquerymodel.cpp | 2 +- doc/src/snippets/code/src_svg_qgraphicssvgitem.cpp | 2 +- doc/src/snippets/code/src_xml_dom_qdom.cpp | 2 +- doc/src/snippets/code/src_xml_sax_qxml.cpp | 2 +- .../src_xmlpatterns_api_qabstracturiresolver.cpp | 2 +- ...xmlpatterns_api_qabstractxmlforwarditerator.cpp | 2 +- .../src_xmlpatterns_api_qabstractxmlnodemodel.cpp | 2 +- .../src_xmlpatterns_api_qabstractxmlreceiver.cpp | 2 +- .../src_xmlpatterns_api_qsimplexmlnodemodel.cpp | 2 +- .../code/src_xmlpatterns_api_qxmlformatter.cpp | 2 +- .../snippets/code/src_xmlpatterns_api_qxmlname.cpp | 2 +- .../code/src_xmlpatterns_api_qxmlquery.cpp | 2 +- .../code/src_xmlpatterns_api_qxmlresultitems.cpp | 2 +- .../code/src_xmlpatterns_api_qxmlserializer.cpp | 2 +- ...tools_assistant_compat_lib_qassistantclient.cpp | 2 +- ..._src_lib_extension_default_extensionfactory.cpp | 2 +- .../tools_designer_src_lib_extension_extension.cpp | 2 +- ...esigner_src_lib_extension_qextensionmanager.cpp | 2 +- ...ols_designer_src_lib_sdk_abstractformeditor.cpp | 2 +- ...ols_designer_src_lib_sdk_abstractformwindow.cpp | 2 +- ...signer_src_lib_sdk_abstractformwindowcursor.cpp | 2 +- ...igner_src_lib_sdk_abstractformwindowmanager.cpp | 2 +- ...esigner_src_lib_sdk_abstractobjectinspector.cpp | 2 +- ...designer_src_lib_sdk_abstractpropertyeditor.cpp | 2 +- ...ools_designer_src_lib_sdk_abstractwidgetbox.cpp | 2 +- ..._designer_src_lib_uilib_abstractformbuilder.cpp | 2 +- .../tools_designer_src_lib_uilib_formbuilder.cpp | 2 +- ...tools_patternist_qapplicationargumentparser.cpp | 2 +- ...ls_shared_qtgradienteditor_qtgradientdialog.cpp | 2 +- ..._shared_qtpropertybrowser_qtpropertybrowser.cpp | 2 +- ..._shared_qtpropertybrowser_qtvariantproperty.cpp | 2 +- ...ools_shared_qttoolbardialog_qttoolbardialog.cpp | 2 +- doc/src/snippets/colors/main.cpp | 2 +- doc/src/snippets/colors/window.cpp | 2 +- doc/src/snippets/colors/window.h | 2 +- doc/src/snippets/coordsys/coordsys.cpp | 2 +- doc/src/snippets/customstyle/customstyle.cpp | 2 +- doc/src/snippets/customstyle/customstyle.h | 2 +- doc/src/snippets/customstyle/main.cpp | 2 +- doc/src/snippets/customviewstyle.cpp | 2 +- .../snippets/declarative/SelfDestroyingRect.qml | 2 +- doc/src/snippets/declarative/Sprite.qml | 2 +- doc/src/snippets/declarative/anchoranimation.qml | 2 +- doc/src/snippets/declarative/anchorchanges.qml | 2 +- doc/src/snippets/declarative/animatedimage.qml | 2 +- .../snippets/declarative/animation-behavioral.qml | 2 +- doc/src/snippets/declarative/animation-easing.qml | 2 +- .../snippets/declarative/animation-elements.qml | 2 +- doc/src/snippets/declarative/animation-groups.qml | 2 +- .../declarative/animation-propertyvaluesource.qml | 2 +- .../declarative/animation-signalhandler.qml | 2 +- .../snippets/declarative/animation-standalone.qml | 2 +- .../snippets/declarative/animation-transitions.qml | 2 +- doc/src/snippets/declarative/behavior.qml | 2 +- .../borderimage/borderimage-defaults.qml | 2 +- .../declarative/borderimage/borderimage-scaled.qml | 2 +- .../declarative/borderimage/borderimage-tiled.qml | 2 +- .../declarative/borderimage/normal-image.qml | 2 +- .../codingconventions/dotproperties.qml | 2 +- .../codingconventions/javascript-imports.qml | 2 +- .../declarative/codingconventions/javascript.qml | 2 +- .../declarative/codingconventions/lists.qml | 2 +- .../declarative/codingconventions/photo.qml | 2 +- .../declarative/codingconventions/private.qml | 2 +- doc/src/snippets/declarative/coloranimation.qml | 2 +- doc/src/snippets/declarative/column/column.qml | 2 +- .../column/vertical-positioner-transition.qml | 2 +- .../declarative/column/vertical-positioner.qml | 2 +- doc/src/snippets/declarative/comments.qml | 2 +- doc/src/snippets/declarative/component.qml | 2 +- .../declarative/createComponent-simple.qml | 2 +- doc/src/snippets/declarative/createComponent.qml | 2 +- doc/src/snippets/declarative/createQmlObject.qml | 2 +- .../declarative/dynamicObjects-destroy.qml | 2 +- doc/src/snippets/declarative/flickable.qml | 2 +- .../snippets/declarative/flickableScrollbar.qml | 2 +- doc/src/snippets/declarative/flipable/flipable.qml | 2 +- doc/src/snippets/declarative/flow-diagram.qml | 2 +- doc/src/snippets/declarative/flow.qml | 2 +- .../snippets/declarative/focus/advancedFocus.qml | 2 +- doc/src/snippets/declarative/focus/basicwidget.qml | 2 +- .../snippets/declarative/focus/clickablewidget.qml | 2 +- doc/src/snippets/declarative/focus/focusColumn.qml | 2 +- .../declarative/focus/focusscopewidget.qml | 2 +- .../declarative/focus/myclickablewidget.qml | 2 +- .../declarative/focus/myfocusscopewidget.qml | 2 +- doc/src/snippets/declarative/focus/mywidget.qml | 2 +- doc/src/snippets/declarative/focus/rectangle.qml | 2 +- doc/src/snippets/declarative/focus/widget.qml | 2 +- doc/src/snippets/declarative/focusscopes.qml | 2 +- doc/src/snippets/declarative/folderlistmodel.qml | 2 +- doc/src/snippets/declarative/gradient.qml | 2 +- doc/src/snippets/declarative/grid/grid-items.qml | 2 +- .../snippets/declarative/grid/grid-no-spacing.qml | 2 +- doc/src/snippets/declarative/grid/grid-spacing.qml | 2 +- doc/src/snippets/declarative/grid/grid.qml | 2 +- .../snippets/declarative/gridview/ContactModel.qml | 2 +- doc/src/snippets/declarative/gridview/gridview.qml | 2 +- doc/src/snippets/declarative/image.qml | 2 +- .../integrating-javascript/connectjs.qml | 2 +- .../integrating-javascript/includejs/app.qml | 2 +- .../integrating-javascript/includejs/factorial.js | 2 +- .../integrating-javascript/includejs/script.js | 2 +- .../declarative/integrating-javascript/script.js | 2 +- doc/src/snippets/declarative/keynavigation.qml | 2 +- doc/src/snippets/declarative/keys/keys-handler.qml | 2 +- doc/src/snippets/declarative/keys/keys-pressed.qml | 2 +- doc/src/snippets/declarative/listmodel-modify.qml | 2 +- doc/src/snippets/declarative/listmodel-nested.qml | 2 +- doc/src/snippets/declarative/listmodel-simple.qml | 2 +- doc/src/snippets/declarative/listmodel.qml | 2 +- .../snippets/declarative/listview/ContactModel.qml | 2 +- .../declarative/listview/listview-snippet.qml | 2 +- doc/src/snippets/declarative/listview/listview.qml | 2 +- doc/src/snippets/declarative/loader/KeyReader.qml | 2 +- doc/src/snippets/declarative/loader/MyItem.qml | 2 +- .../snippets/declarative/loader/connections.qml | 2 +- doc/src/snippets/declarative/loader/focus.qml | 2 +- doc/src/snippets/declarative/loader/simple.qml | 2 +- doc/src/snippets/declarative/loader/sizeitem.qml | 2 +- doc/src/snippets/declarative/loader/sizeloader.qml | 2 +- .../declarative/mousearea/mousearea-snippet.qml | 2 +- .../snippets/declarative/mousearea/mousearea.qml | 2 +- .../declarative/mousearea/mouseareadragfilter.qml | 2 +- doc/src/snippets/declarative/numberanimation.qml | 2 +- doc/src/snippets/declarative/parallelanimation.qml | 2 +- doc/src/snippets/declarative/parentanimation.qml | 2 +- doc/src/snippets/declarative/parentchange.qml | 2 +- .../snippets/declarative/pathview/ContactModel.qml | 2 +- .../declarative/pathview/pathattributes.qml | 2 +- doc/src/snippets/declarative/pathview/pathview.qml | 2 +- doc/src/snippets/declarative/propertyaction.qml | 2 +- doc/src/snippets/declarative/propertyanimation.qml | 2 +- doc/src/snippets/declarative/propertychanges.qml | 2 +- .../qml-data-models/dynamic-listmodel.qml | 2 +- .../declarative/qml-data-models/listelements.qml | 2 +- .../qml-data-models/listmodel-listview.qml | 2 +- .../declarative/qml-documents/inline-component.qml | 2 +- .../qml-documents/inline-text-component.qml | 2 +- .../declarative/qml-documents/non-trivial.qml | 2 +- .../declarative/qml-documents/qmldocuments.qml | 2 +- .../qml-extending-types/components/Button.qml | 2 +- .../qml-extending-types/components/application.qml | 2 +- .../qml-extending-types/methods/app.qml | 2 +- .../qml-extending-types/properties/ImageViewer.qml | 2 +- .../properties/alias-override.qml | 2 +- .../qml-extending-types/properties/alias.qml | 2 +- .../properties/alias/ImageViewer.qml | 2 +- .../properties/alias/application.qml | 2 +- .../qml-extending-types/properties/application.qml | 2 +- .../properties/property-signals.qml | 2 +- .../qml-extending-types/signals/Button.qml | 2 +- .../qml-extending-types/signals/basic.qml | 2 +- .../qml-extending-types/signals/connectdynamic.qml | 2 +- .../qml-extending-types/signals/connectslots.qml | 2 +- .../qml-extending-types/signals/no-parameters.qml | 2 +- .../qml-extending-types/signals/parameters.qml | 2 +- .../snippets/declarative/qml-intro/anchors1.qml | 2 +- .../snippets/declarative/qml-intro/anchors2.qml | 2 +- .../snippets/declarative/qml-intro/anchors3.qml | 2 +- .../declarative/qml-intro/hello-world1.qml | 2 +- .../declarative/qml-intro/hello-world2.qml | 2 +- .../declarative/qml-intro/hello-world3.qml | 2 +- .../declarative/qml-intro/hello-world4.qml | 2 +- .../declarative/qml-intro/hello-world5.qml | 2 +- .../declarative/qml-intro/number-animation1.qml | 2 +- .../declarative/qml-intro/number-animation2.qml | 2 +- .../snippets/declarative/qml-intro/rectangle.qml | 2 +- .../qml-intro/sequential-animation1.qml | 2 +- .../qml-intro/sequential-animation2.qml | 2 +- .../qml-intro/sequential-animation3.qml | 2 +- doc/src/snippets/declarative/qml-intro/states1.qml | 2 +- .../declarative/qml-intro/transformations1.qml | 2 +- .../qtbinding/context-advanced/MyItem.qml | 2 +- .../qtbinding/context-advanced/applicationdata.h | 2 +- .../qtbinding/context-advanced/connections.qml | 2 +- .../qtbinding/context-advanced/main.cpp | 2 +- .../declarative/qtbinding/context/MyItem.qml | 2 +- .../declarative/qtbinding/context/main.cpp | 2 +- .../declarative/qtbinding/enums/imageviewer.h | 2 +- .../snippets/declarative/qtbinding/enums/main.cpp | 2 +- .../declarative/qtbinding/enums/standalone.qml | 2 +- .../declarative/qtbinding/functions-cpp/MyItem.qml | 2 +- .../declarative/qtbinding/functions-cpp/main.cpp | 2 +- .../declarative/qtbinding/functions-cpp/myclass.h | 2 +- .../declarative/qtbinding/functions-qml/MyItem.qml | 2 +- .../declarative/qtbinding/functions-qml/main.cpp | 2 +- .../declarative/qtbinding/loading/MyItem.qml | 2 +- .../declarative/qtbinding/loading/main.cpp | 2 +- .../qtbinding/newelements/imageviewer.h | 2 +- .../declarative/qtbinding/newelements/main.cpp | 2 +- .../qtbinding/newelements/standalone.qml | 2 +- .../qtbinding/properties-cpp/MyItem.qml | 2 +- .../qtbinding/properties-cpp/applicationdata.h | 2 +- .../declarative/qtbinding/properties-cpp/main.cpp | 2 +- .../qtbinding/properties-qml/MyItem.qml | 2 +- .../declarative/qtbinding/properties-qml/main.cpp | 2 +- .../declarative/qtbinding/resources/main.cpp | 2 +- .../declarative/qtbinding/resources/main.qml | 2 +- .../declarative/qtbinding/signals-cpp/MyItem.qml | 2 +- .../qtbinding/signals-cpp/imageviewer.h | 2 +- .../declarative/qtbinding/signals-cpp/main.cpp | 2 +- .../qtbinding/signals-cpp/standalone.qml | 2 +- .../declarative/qtbinding/signals-qml/MyItem.qml | 2 +- .../declarative/qtbinding/signals-qml/main.cpp | 2 +- .../declarative/qtbinding/signals-qml/myclass.h | 2 +- .../qtbinding/variantlistmap/MyItem.qml | 2 +- .../declarative/qtbinding/variantlistmap/main.cpp | 2 +- doc/src/snippets/declarative/qtobject.qml | 2 +- .../declarative/rectangle/rect-border-width.qml | 2 +- .../declarative/rectangle/rectangle-colors.qml | 2 +- .../declarative/rectangle/rectangle-gradient.qml | 2 +- .../declarative/rectangle/rectangle-smooth.qml | 2 +- .../snippets/declarative/rectangle/rectangle.qml | 2 +- .../declarative/repeaters/repeater-grid-index.qml | 2 +- .../snippets/declarative/repeaters/repeater.qml | 2 +- doc/src/snippets/declarative/rotation.qml | 2 +- doc/src/snippets/declarative/rotationanimation.qml | 2 +- doc/src/snippets/declarative/row.qml | 2 +- doc/src/snippets/declarative/row/row.qml | 2 +- .../snippets/declarative/sequentialanimation.qml | 2 +- doc/src/snippets/declarative/smoothedanimation.qml | 2 +- doc/src/snippets/declarative/springanimation.qml | 2 +- doc/src/snippets/declarative/state-when.qml | 2 +- doc/src/snippets/declarative/state.qml | 2 +- doc/src/snippets/declarative/states.qml | 2 +- doc/src/snippets/declarative/systempalette.qml | 2 +- .../snippets/declarative/text/onLinkActivated.qml | 2 +- doc/src/snippets/declarative/texteditor.qml | 2 +- .../snippets/declarative/transition-from-to.qml | 2 +- .../snippets/declarative/transition-reversible.qml | 2 +- doc/src/snippets/declarative/transition.qml | 2 +- doc/src/snippets/declarative/visualdatamodel.qml | 2 +- .../declarative/visualdatamodel_rootindex/main.cpp | 2 +- .../declarative/visualdatamodel_rootindex/view.qml | 2 +- doc/src/snippets/declarative/workerscript.qml | 2 +- doc/src/snippets/declarative/xmlrole.qml | 2 +- .../designer/autoconnection/imagedialog.cpp | 2 +- .../snippets/designer/autoconnection/imagedialog.h | 2 +- doc/src/snippets/designer/autoconnection/main.cpp | 2 +- doc/src/snippets/designer/imagedialog/main.cpp | 2 +- .../designer/multipleinheritance/imagedialog.cpp | 2 +- .../designer/multipleinheritance/imagedialog.h | 2 +- .../snippets/designer/multipleinheritance/main.cpp | 2 +- .../designer/noautoconnection/imagedialog.cpp | 2 +- .../designer/noautoconnection/imagedialog.h | 2 +- .../snippets/designer/noautoconnection/main.cpp | 2 +- .../designer/singleinheritance/imagedialog.cpp | 2 +- .../designer/singleinheritance/imagedialog.h | 2 +- .../snippets/designer/singleinheritance/main.cpp | 2 +- doc/src/snippets/dialogs/dialogs.cpp | 2 +- doc/src/snippets/dockwidgets/main.cpp | 2 +- doc/src/snippets/dockwidgets/mainwindow.cpp | 2 +- doc/src/snippets/dockwidgets/mainwindow.h | 2 +- doc/src/snippets/draganddrop/dragwidget.cpp | 2 +- doc/src/snippets/draganddrop/dragwidget.h | 2 +- doc/src/snippets/draganddrop/main.cpp | 2 +- doc/src/snippets/draganddrop/mainwindow.cpp | 2 +- doc/src/snippets/draganddrop/mainwindow.h | 2 +- doc/src/snippets/dragging/main.cpp | 2 +- doc/src/snippets/dragging/mainwindow.cpp | 2 +- doc/src/snippets/dragging/mainwindow.h | 2 +- doc/src/snippets/dropactions/main.cpp | 2 +- doc/src/snippets/dropactions/window.cpp | 2 +- doc/src/snippets/dropactions/window.h | 2 +- doc/src/snippets/droparea.cpp | 2 +- doc/src/snippets/dropevents/main.cpp | 2 +- doc/src/snippets/dropevents/window.cpp | 2 +- doc/src/snippets/dropevents/window.h | 2 +- doc/src/snippets/droprectangle/main.cpp | 2 +- doc/src/snippets/droprectangle/window.cpp | 2 +- doc/src/snippets/droprectangle/window.h | 2 +- doc/src/snippets/eventfilters/filterobject.cpp | 2 +- doc/src/snippets/eventfilters/filterobject.h | 2 +- doc/src/snippets/eventfilters/main.cpp | 2 +- doc/src/snippets/events/events.cpp | 2 +- .../snippets/explicitlysharedemployee/employee.cpp | 2 +- .../snippets/explicitlysharedemployee/employee.h | 2 +- doc/src/snippets/explicitlysharedemployee/main.cpp | 2 +- doc/src/snippets/file/file.cpp | 2 +- doc/src/snippets/filedialogurls.cpp | 2 +- doc/src/snippets/fileinfo/main.cpp | 2 +- doc/src/snippets/graphicssceneadditemsnippet.cpp | 2 +- doc/src/snippets/i18n-non-qt-class/main.cpp | 2 +- doc/src/snippets/i18n-non-qt-class/myclass.cpp | 2 +- doc/src/snippets/i18n-non-qt-class/myclass.h | 2 +- doc/src/snippets/image/image.cpp | 2 +- doc/src/snippets/image/supportedformat.cpp | 2 +- doc/src/snippets/inherited-slot/button.cpp | 2 +- doc/src/snippets/inherited-slot/button.h | 2 +- doc/src/snippets/inherited-slot/main.cpp | 2 +- doc/src/snippets/itemselection/main.cpp | 2 +- doc/src/snippets/itemselection/model.cpp | 2 +- doc/src/snippets/itemselection/model.h | 2 +- doc/src/snippets/javastyle.cpp | 2 +- doc/src/snippets/layouts/layouts.cpp | 2 +- doc/src/snippets/mainwindowsnippet.cpp | 2 +- doc/src/snippets/matrix/matrix.cpp | 2 +- doc/src/snippets/mdiareasnippets.cpp | 2 +- doc/src/snippets/medianodesnippet.cpp | 2 +- doc/src/snippets/moc/main.cpp | 2 +- doc/src/snippets/moc/myclass1.h | 2 +- doc/src/snippets/moc/myclass2.h | 2 +- doc/src/snippets/moc/myclass3.h | 2 +- doc/src/snippets/modelview-subclasses/main.cpp | 2 +- doc/src/snippets/modelview-subclasses/model.cpp | 2 +- doc/src/snippets/modelview-subclasses/model.h | 2 +- doc/src/snippets/modelview-subclasses/view.cpp | 2 +- doc/src/snippets/modelview-subclasses/view.h | 2 +- doc/src/snippets/modelview-subclasses/window.cpp | 2 +- doc/src/snippets/modelview-subclasses/window.h | 2 +- doc/src/snippets/myscrollarea.cpp | 2 +- doc/src/snippets/network/tcpwait.cpp | 2 +- doc/src/snippets/ntfsp.cpp | 2 +- doc/src/snippets/painterpath/painterpath.cpp | 2 +- doc/src/snippets/persistentindexes/main.cpp | 2 +- doc/src/snippets/persistentindexes/mainwindow.cpp | 2 +- doc/src/snippets/persistentindexes/mainwindow.h | 2 +- doc/src/snippets/persistentindexes/model.cpp | 2 +- doc/src/snippets/persistentindexes/model.h | 2 +- doc/src/snippets/phonon.cpp | 2 +- doc/src/snippets/phonon/samplebackend/main.cpp | 2 +- doc/src/snippets/phononeffectparameter.cpp | 2 +- doc/src/snippets/phononobjectdescription.cpp | 2 +- doc/src/snippets/picture/picture.cpp | 2 +- doc/src/snippets/plaintextlayout/main.cpp | 2 +- doc/src/snippets/plaintextlayout/window.cpp | 2 +- doc/src/snippets/plaintextlayout/window.h | 2 +- doc/src/snippets/pointer/pointer.cpp | 2 +- doc/src/snippets/polygon/polygon.cpp | 2 +- doc/src/snippets/porting4-dropevents/main.cpp | 2 +- doc/src/snippets/porting4-dropevents/window.cpp | 2 +- doc/src/snippets/porting4-dropevents/window.h | 2 +- doc/src/snippets/printing-qprinter/errors.cpp | 2 +- doc/src/snippets/printing-qprinter/main.cpp | 2 +- doc/src/snippets/printing-qprinter/object.cpp | 2 +- doc/src/snippets/printing-qprinter/object.h | 2 +- doc/src/snippets/process/process.cpp | 2 +- doc/src/snippets/qabstractsliderisnippet.cpp | 2 +- doc/src/snippets/qcalendarwidget/main.cpp | 2 +- doc/src/snippets/qcolumnview/main.cpp | 2 +- .../snippets/qdbusextratypes/qdbusextratypes.cpp | 2 +- doc/src/snippets/qdebug/qdebugsnippet.cpp | 2 +- doc/src/snippets/qdir-filepaths/main.cpp | 2 +- doc/src/snippets/qdir-listfiles/main.cpp | 2 +- doc/src/snippets/qdir-namefilters/main.cpp | 2 +- doc/src/snippets/qelapsedtimer/main.cpp | 2 +- doc/src/snippets/qfontdatabase/main.cpp | 2 +- doc/src/snippets/qgl-namespace/main.cpp | 2 +- doc/src/snippets/qlabel/main.cpp | 2 +- doc/src/snippets/qlineargradient/main.cpp | 2 +- doc/src/snippets/qlineargradient/paintwidget.cpp | 2 +- doc/src/snippets/qlineargradient/paintwidget.h | 2 +- doc/src/snippets/qlistview-dnd/main.cpp | 2 +- doc/src/snippets/qlistview-dnd/mainwindow.cpp | 2 +- doc/src/snippets/qlistview-dnd/mainwindow.h | 2 +- doc/src/snippets/qlistview-dnd/model.cpp | 4 ++-- doc/src/snippets/qlistview-dnd/model.h | 4 ++-- doc/src/snippets/qlistview-using/main.cpp | 2 +- doc/src/snippets/qlistview-using/mainwindow.cpp | 2 +- doc/src/snippets/qlistview-using/mainwindow.h | 2 +- doc/src/snippets/qlistview-using/model.cpp | 4 ++-- doc/src/snippets/qlistview-using/model.h | 4 ++-- doc/src/snippets/qlistwidget-dnd/main.cpp | 2 +- doc/src/snippets/qlistwidget-dnd/mainwindow.cpp | 2 +- doc/src/snippets/qlistwidget-dnd/mainwindow.h | 2 +- doc/src/snippets/qlistwidget-using/main.cpp | 2 +- doc/src/snippets/qlistwidget-using/mainwindow.cpp | 2 +- doc/src/snippets/qlistwidget-using/mainwindow.h | 2 +- doc/src/snippets/qmacnativewidget/main.mm | 2 +- doc/src/snippets/qmake/delegate.h | 2 +- doc/src/snippets/qmake/main.cpp | 2 +- doc/src/snippets/qmake/model.cpp | 2 +- doc/src/snippets/qmake/model.h | 2 +- doc/src/snippets/qmake/paintwidget_mac.cpp | 2 +- doc/src/snippets/qmake/paintwidget_unix.cpp | 2 +- doc/src/snippets/qmake/paintwidget_win.cpp | 2 +- doc/src/snippets/qmake/view.h | 2 +- doc/src/snippets/qmetaobject-invokable/main.cpp | 2 +- doc/src/snippets/qmetaobject-invokable/window.cpp | 2 +- doc/src/snippets/qmetaobject-invokable/window.h | 2 +- doc/src/snippets/qprocess-environment/main.cpp | 2 +- .../snippets/qprocess/qprocess-simpleexecution.cpp | 2 +- doc/src/snippets/qsignalmapper/buttonwidget.cpp | 2 +- doc/src/snippets/qsignalmapper/buttonwidget.h | 2 +- doc/src/snippets/qsignalmapper/main.cpp | 2 +- doc/src/snippets/qsignalmapper/mainwindow.h | 2 +- .../qsortfilterproxymodel-details/main.cpp | 2 +- doc/src/snippets/qsortfilterproxymodel/main.cpp | 2 +- doc/src/snippets/qsplashscreen/main.cpp | 2 +- doc/src/snippets/qsplashscreen/mainwindow.cpp | 2 +- doc/src/snippets/qsplashscreen/mainwindow.h | 2 +- doc/src/snippets/qsql-namespace/main.cpp | 2 +- doc/src/snippets/qstack/main.cpp | 2 +- doc/src/snippets/qstackedlayout/main.cpp | 2 +- doc/src/snippets/qstackedwidget/main.cpp | 2 +- doc/src/snippets/qstandarditemmodel/main.cpp | 2 +- doc/src/snippets/qstatustipevent/main.cpp | 2 +- doc/src/snippets/qstring/main.cpp | 2 +- doc/src/snippets/qstring/stringbuilder.cpp | 2 +- doc/src/snippets/qstringlist/main.cpp | 2 +- doc/src/snippets/qstringlistmodel/main.cpp | 2 +- doc/src/snippets/qstyleoption/main.cpp | 2 +- doc/src/snippets/qstyleplugin/main.cpp | 2 +- doc/src/snippets/qsvgwidget/main.cpp | 2 +- doc/src/snippets/qt-namespace/main.cpp | 2 +- doc/src/snippets/qtablewidget-dnd/main.cpp | 2 +- doc/src/snippets/qtablewidget-dnd/mainwindow.cpp | 2 +- doc/src/snippets/qtablewidget-dnd/mainwindow.h | 2 +- doc/src/snippets/qtablewidget-resizing/main.cpp | 2 +- .../snippets/qtablewidget-resizing/mainwindow.cpp | 2 +- .../snippets/qtablewidget-resizing/mainwindow.h | 2 +- doc/src/snippets/qtablewidget-using/main.cpp | 2 +- doc/src/snippets/qtablewidget-using/mainwindow.cpp | 2 +- doc/src/snippets/qtablewidget-using/mainwindow.h | 2 +- doc/src/snippets/qtcast/qtcast.cpp | 2 +- doc/src/snippets/qtcast/qtcast.h | 2 +- doc/src/snippets/qtest-namespace/main.cpp | 2 +- doc/src/snippets/qtreeview-dnd/dragdropmodel.cpp | 4 ++-- doc/src/snippets/qtreeview-dnd/dragdropmodel.h | 4 ++-- doc/src/snippets/qtreeview-dnd/main.cpp | 2 +- doc/src/snippets/qtreeview-dnd/mainwindow.cpp | 2 +- doc/src/snippets/qtreeview-dnd/mainwindow.h | 2 +- doc/src/snippets/qtreeview-dnd/treeitem.cpp | 2 +- doc/src/snippets/qtreeview-dnd/treeitem.h | 2 +- doc/src/snippets/qtreeview-dnd/treemodel.cpp | 2 +- doc/src/snippets/qtreeview-dnd/treemodel.h | 2 +- doc/src/snippets/qtreewidget-using/main.cpp | 2 +- doc/src/snippets/qtreewidget-using/mainwindow.cpp | 2 +- doc/src/snippets/qtreewidget-using/mainwindow.h | 2 +- .../qtreewidgetitemiterator-using/main.cpp | 2 +- .../qtreewidgetitemiterator-using/mainwindow.cpp | 2 +- .../qtreewidgetitemiterator-using/mainwindow.h | 2 +- doc/src/snippets/qtscript/evaluation/main.cpp | 2 +- .../snippets/qtscript/registeringobjects/main.cpp | 2 +- .../qtscript/registeringobjects/myobject.cpp | 2 +- .../qtscript/registeringobjects/myobject.h | 2 +- .../snippets/qtscript/registeringvalues/main.cpp | 2 +- doc/src/snippets/qtscript/scriptedslot/main.cpp | 2 +- doc/src/snippets/quiloader/main.cpp | 2 +- doc/src/snippets/quiloader/mywidget.cpp | 2 +- doc/src/snippets/quiloader/mywidget.h | 2 +- doc/src/snippets/qx11embedcontainer/main.cpp | 2 +- doc/src/snippets/qx11embedwidget/embedwidget.cpp | 2 +- doc/src/snippets/qx11embedwidget/embedwidget.h | 2 +- doc/src/snippets/qx11embedwidget/main.cpp | 2 +- doc/src/snippets/qxmlquery/bindingExample.cpp | 2 +- doc/src/snippets/qxmlschema/main.cpp | 2 +- doc/src/snippets/qxmlschemavalidator/main.cpp | 2 +- doc/src/snippets/qxmlstreamwriter/main.cpp | 2 +- doc/src/snippets/reading-selections/main.cpp | 2 +- doc/src/snippets/reading-selections/model.cpp | 2 +- doc/src/snippets/reading-selections/model.h | 2 +- doc/src/snippets/reading-selections/window.cpp | 2 +- doc/src/snippets/reading-selections/window.h | 2 +- doc/src/snippets/scribe-overview/main.cpp | 2 +- doc/src/snippets/scriptdebugger.cpp | 2 +- doc/src/snippets/seekslider.cpp | 2 +- doc/src/snippets/separations/finalwidget.cpp | 2 +- doc/src/snippets/separations/finalwidget.h | 2 +- doc/src/snippets/separations/main.cpp | 2 +- doc/src/snippets/separations/screenwidget.cpp | 2 +- doc/src/snippets/separations/screenwidget.h | 2 +- doc/src/snippets/separations/separations.qdoc | 2 +- doc/src/snippets/separations/viewer.cpp | 2 +- doc/src/snippets/separations/viewer.h | 2 +- doc/src/snippets/settings/settings.cpp | 2 +- doc/src/snippets/shareddirmodel/main.cpp | 2 +- doc/src/snippets/sharedemployee/employee.cpp | 2 +- doc/src/snippets/sharedemployee/employee.h | 2 +- doc/src/snippets/sharedemployee/main.cpp | 2 +- doc/src/snippets/sharedtablemodel/main.cpp | 2 +- doc/src/snippets/sharedtablemodel/model.cpp | 2 +- doc/src/snippets/sharedtablemodel/model.h | 2 +- doc/src/snippets/signalmapper/filereader.cpp | 2 +- doc/src/snippets/signalmapper/filereader.h | 2 +- doc/src/snippets/signalmapper/main.cpp | 2 +- doc/src/snippets/signalsandslots/lcdnumber.cpp | 2 +- doc/src/snippets/signalsandslots/lcdnumber.h | 2 +- .../snippets/signalsandslots/signalsandslots.cpp | 2 +- doc/src/snippets/signalsandslots/signalsandslots.h | 2 +- doc/src/snippets/simplemodel-use/main.cpp | 2 +- doc/src/snippets/splitter/splitter.cpp | 2 +- doc/src/snippets/splitterhandle/main.cpp | 2 +- doc/src/snippets/splitterhandle/splitter.cpp | 2 +- doc/src/snippets/splitterhandle/splitter.h | 2 +- doc/src/snippets/sqldatabase/sqldatabase.cpp | 2 +- doc/src/snippets/statemachine/eventtest.cpp | 2 +- doc/src/snippets/statemachine/main.cpp | 2 +- doc/src/snippets/statemachine/main2.cpp | 2 +- doc/src/snippets/statemachine/main3.cpp | 2 +- doc/src/snippets/statemachine/main4.cpp | 2 +- doc/src/snippets/statemachine/main5.cpp | 2 +- doc/src/snippets/streaming/main.cpp | 2 +- doc/src/snippets/stringlistmodel/main.cpp | 2 +- doc/src/snippets/stringlistmodel/model.cpp | 2 +- doc/src/snippets/stringlistmodel/model.h | 2 +- doc/src/snippets/styles/styles.cpp | 2 +- doc/src/snippets/stylesheet/common-mistakes.cpp | 2 +- doc/src/snippets/textblock-formats/main.cpp | 2 +- doc/src/snippets/textblock-fragments/main.cpp | 2 +- .../snippets/textblock-fragments/mainwindow.cpp | 2 +- doc/src/snippets/textblock-fragments/mainwindow.h | 2 +- doc/src/snippets/textblock-fragments/xmlwriter.cpp | 2 +- doc/src/snippets/textblock-fragments/xmlwriter.h | 2 +- doc/src/snippets/textdocument-blocks/main.cpp | 2 +- .../snippets/textdocument-blocks/mainwindow.cpp | 2 +- doc/src/snippets/textdocument-blocks/mainwindow.h | 2 +- doc/src/snippets/textdocument-blocks/xmlwriter.cpp | 2 +- doc/src/snippets/textdocument-blocks/xmlwriter.h | 2 +- doc/src/snippets/textdocument-charformats/main.cpp | 2 +- doc/src/snippets/textdocument-css/main.cpp | 2 +- doc/src/snippets/textdocument-cursors/main.cpp | 2 +- doc/src/snippets/textdocument-find/main.cpp | 2 +- doc/src/snippets/textdocument-frames/main.cpp | 2 +- .../snippets/textdocument-frames/mainwindow.cpp | 2 +- doc/src/snippets/textdocument-frames/mainwindow.h | 2 +- doc/src/snippets/textdocument-frames/xmlwriter.cpp | 2 +- doc/src/snippets/textdocument-frames/xmlwriter.h | 2 +- doc/src/snippets/textdocument-imagedrop/main.cpp | 2 +- .../snippets/textdocument-imagedrop/textedit.cpp | 2 +- doc/src/snippets/textdocument-imagedrop/textedit.h | 2 +- doc/src/snippets/textdocument-imageformat/main.cpp | 2 +- doc/src/snippets/textdocument-images/main.cpp | 2 +- doc/src/snippets/textdocument-listitems/main.cpp | 2 +- .../snippets/textdocument-listitems/mainwindow.cpp | 2 +- .../snippets/textdocument-listitems/mainwindow.h | 2 +- doc/src/snippets/textdocument-lists/main.cpp | 2 +- doc/src/snippets/textdocument-lists/mainwindow.cpp | 2 +- doc/src/snippets/textdocument-lists/mainwindow.h | 2 +- doc/src/snippets/textdocument-printing/main.cpp | 2 +- .../snippets/textdocument-printing/mainwindow.cpp | 2 +- .../snippets/textdocument-printing/mainwindow.h | 2 +- doc/src/snippets/textdocument-resources/main.cpp | 2 +- doc/src/snippets/textdocument-selections/main.cpp | 2 +- .../textdocument-selections/mainwindow.cpp | 2 +- .../snippets/textdocument-selections/mainwindow.h | 2 +- doc/src/snippets/textdocument-tables/main.cpp | 2 +- .../snippets/textdocument-tables/mainwindow.cpp | 2 +- doc/src/snippets/textdocument-tables/mainwindow.h | 2 +- doc/src/snippets/textdocument-tables/xmlwriter.cpp | 2 +- doc/src/snippets/textdocument-tables/xmlwriter.h | 2 +- doc/src/snippets/textdocument-texttable/main.cpp | 2 +- doc/src/snippets/textdocumentendsnippet.cpp | 2 +- doc/src/snippets/threads/threads.cpp | 2 +- doc/src/snippets/threads/threads.h | 2 +- doc/src/snippets/timeline/main.cpp | 2 +- doc/src/snippets/timers/timers.cpp | 2 +- doc/src/snippets/transform/main.cpp | 2 +- doc/src/snippets/uitools/calculatorform/main.cpp | 2 +- doc/src/snippets/updating-selections/main.cpp | 2 +- doc/src/snippets/updating-selections/model.cpp | 2 +- doc/src/snippets/updating-selections/model.h | 2 +- doc/src/snippets/updating-selections/window.cpp | 2 +- doc/src/snippets/updating-selections/window.h | 2 +- doc/src/snippets/videomedia.cpp | 2 +- doc/src/snippets/volumeslider.cpp | 2 +- doc/src/snippets/whatsthis/whatsthis.cpp | 2 +- doc/src/snippets/widget-mask/main.cpp | 2 +- doc/src/snippets/widgetdelegate.cpp | 2 +- doc/src/snippets/widgetprinting.cpp | 2 +- .../snippets/widgets-tutorial/childwidget/main.cpp | 2 +- .../widgets-tutorial/nestedlayouts/main.cpp | 2 +- doc/src/snippets/widgets-tutorial/template.cpp | 2 +- .../snippets/widgets-tutorial/toplevel/main.cpp | 2 +- .../widgets-tutorial/windowlayout/main.cpp | 2 +- doc/src/snippets/xml/prettyprint/main.cpp | 2 +- doc/src/snippets/xml/rsslisting/handler.cpp | 2 +- doc/src/snippets/xml/rsslisting/handler.h | 2 +- doc/src/snippets/xml/rsslisting/main.cpp | 2 +- doc/src/snippets/xml/rsslisting/rsslisting.cpp | 2 +- doc/src/snippets/xml/rsslisting/rsslisting.h | 2 +- doc/src/snippets/xml/simpleparse/handler.cpp | 2 +- doc/src/snippets/xml/simpleparse/handler.h | 2 +- doc/src/snippets/xml/simpleparse/main.cpp | 2 +- doc/src/sql-programming/qsqldatatype-table.qdoc | 2 +- doc/src/sql-programming/sql-driver.qdoc | 2 +- doc/src/sql-programming/sql-programming.qdoc | 2 +- doc/src/tutorials/addressbook-fr.qdoc | 2 +- doc/src/tutorials/addressbook.qdoc | 2 +- doc/src/tutorials/modelview.qdoc | 2 +- doc/src/tutorials/widgets-tutorial.qdoc | 2 +- doc/src/widgets-and-layouts/focus.qdoc | 2 +- doc/src/widgets-and-layouts/gallery-cde.qdoc | 2 +- .../widgets-and-layouts/gallery-cleanlooks.qdoc | 2 +- doc/src/widgets-and-layouts/gallery-gtk.qdoc | 2 +- doc/src/widgets-and-layouts/gallery-macintosh.qdoc | 2 +- doc/src/widgets-and-layouts/gallery-motif.qdoc | 2 +- doc/src/widgets-and-layouts/gallery-plastique.qdoc | 2 +- doc/src/widgets-and-layouts/gallery-windows.qdoc | 2 +- .../widgets-and-layouts/gallery-windowsvista.qdoc | 2 +- doc/src/widgets-and-layouts/gallery-windowsxp.qdoc | 2 +- doc/src/widgets-and-layouts/gallery.qdoc | 2 +- doc/src/widgets-and-layouts/layout.qdoc | 2 +- doc/src/widgets-and-layouts/styles.qdoc | 2 +- doc/src/widgets-and-layouts/stylesheet.qdoc | 2 +- doc/src/widgets-and-layouts/widgets.qdoc | 2 +- doc/src/windows-and-dialogs/dialogs.qdoc | 2 +- doc/src/windows-and-dialogs/mainwindow.qdoc | 2 +- doc/src/xml-processing/xml-patterns.qdoc | 2 +- doc/src/xml-processing/xml-processing.qdoc | 2 +- doc/src/xml-processing/xquery-introduction.qdoc | 2 +- doc/src/zh_CN/bughowto.qdoc | 2 +- doc/src/zh_CN/getting-started/how-to-learn-qt.qdoc | 2 +- doc/src/zh_CN/getting-started/tutorials.qdoc | 2 +- doc/src/zh_CN/tutorials/addressbook.qdoc | 2 +- doc/src/zh_CN/tutorials/widgets-tutorial.qdoc | 2 +- examples/activeqt/comapp/main.cpp | 2 +- examples/activeqt/dotnet/wrapper/lib/networker.cpp | 2 +- examples/activeqt/dotnet/wrapper/lib/networker.h | 2 +- examples/activeqt/dotnet/wrapper/lib/tools.cpp | 2 +- examples/activeqt/dotnet/wrapper/lib/tools.h | 2 +- examples/activeqt/dotnet/wrapper/lib/worker.cpp | 2 +- examples/activeqt/dotnet/wrapper/lib/worker.h | 2 +- examples/activeqt/hierarchy/main.cpp | 2 +- examples/activeqt/hierarchy/objects.cpp | 2 +- examples/activeqt/hierarchy/objects.h | 2 +- examples/activeqt/menus/main.cpp | 2 +- examples/activeqt/menus/menus.cpp | 2 +- examples/activeqt/menus/menus.h | 2 +- examples/activeqt/multiple/ax1.h | 2 +- examples/activeqt/multiple/ax2.h | 2 +- examples/activeqt/multiple/main.cpp | 2 +- examples/activeqt/multiple/multipleax.rc | 2 +- examples/activeqt/opengl/glbox.cpp | 2 +- examples/activeqt/opengl/glbox.h | 2 +- examples/activeqt/opengl/globjwin.cpp | 2 +- examples/activeqt/opengl/globjwin.h | 2 +- examples/activeqt/opengl/main.cpp | 2 +- examples/activeqt/qutlook/addressview.cpp | 2 +- examples/activeqt/qutlook/addressview.h | 2 +- examples/activeqt/qutlook/main.cpp | 2 +- examples/activeqt/simple/main.cpp | 2 +- examples/activeqt/webbrowser/main.cpp | 2 +- examples/activeqt/webbrowser/webaxwidget.h | 2 +- examples/activeqt/wrapper/main.cpp | 2 +- examples/activeqt/wrapper/wrapperax.rc | 2 +- examples/animation/animatedtiles/main.cpp | 2 +- examples/animation/appchooser/main.cpp | 2 +- examples/animation/easing/animation.h | 2 +- examples/animation/easing/main.cpp | 2 +- examples/animation/easing/window.cpp | 2 +- examples/animation/easing/window.h | 2 +- examples/animation/moveblocks/main.cpp | 2 +- examples/animation/states/main.cpp | 2 +- examples/animation/stickman/animation.cpp | 2 +- examples/animation/stickman/animation.h | 2 +- examples/animation/stickman/graphicsview.cpp | 2 +- examples/animation/stickman/graphicsview.h | 2 +- examples/animation/stickman/lifecycle.cpp | 2 +- examples/animation/stickman/lifecycle.h | 2 +- examples/animation/stickman/main.cpp | 2 +- examples/animation/stickman/node.cpp | 2 +- examples/animation/stickman/node.h | 2 +- examples/animation/stickman/stickman.cpp | 2 +- examples/animation/stickman/stickman.h | 2 +- examples/dbus/complexpingpong/complexping.cpp | 2 +- examples/dbus/complexpingpong/complexping.h | 2 +- examples/dbus/complexpingpong/complexpong.cpp | 2 +- examples/dbus/complexpingpong/complexpong.h | 2 +- examples/dbus/complexpingpong/ping-common.h | 2 +- examples/dbus/dbus-chat/chat.cpp | 2 +- examples/dbus/dbus-chat/chat.h | 2 +- examples/dbus/dbus-chat/chat_adaptor.cpp | 4 ++-- examples/dbus/dbus-chat/chat_adaptor.h | 4 ++-- examples/dbus/dbus-chat/chat_interface.cpp | 4 ++-- examples/dbus/dbus-chat/chat_interface.h | 4 ++-- examples/dbus/listnames/listnames.cpp | 2 +- examples/dbus/pingpong/ping-common.h | 2 +- examples/dbus/pingpong/ping.cpp | 2 +- examples/dbus/pingpong/pong.cpp | 2 +- examples/dbus/pingpong/pong.h | 2 +- examples/dbus/remotecontrolledcar/car/car.cpp | 2 +- examples/dbus/remotecontrolledcar/car/car.h | 2 +- .../dbus/remotecontrolledcar/car/car_adaptor.cpp | 4 ++-- .../dbus/remotecontrolledcar/car/car_adaptor.h | 4 ++-- examples/dbus/remotecontrolledcar/car/main.cpp | 2 +- .../controller/car_interface.cpp | 4 ++-- .../remotecontrolledcar/controller/car_interface.h | 4 ++-- .../remotecontrolledcar/controller/controller.cpp | 2 +- .../remotecontrolledcar/controller/controller.h | 2 +- .../dbus/remotecontrolledcar/controller/main.cpp | 2 +- .../animation/basics/color-animation.qml | 2 +- .../animation/basics/property-animation.qml | 2 +- .../declarative/animation/behaviors/SideRect.qml | 2 +- .../animation/behaviors/behavior-example.qml | 2 +- .../declarative/animation/behaviors/wigglytext.qml | 2 +- .../animation/easing/content/QuitButton.qml | 2 +- examples/declarative/animation/easing/easing.qml | 2 +- examples/declarative/animation/states/states.qml | 2 +- .../declarative/animation/states/transitions.qml | 2 +- .../imageprovider/imageprovider-example.qml | 2 +- .../cppextensions/imageprovider/imageprovider.cpp | 2 +- .../networkaccessmanagerfactory/main.cpp | 2 +- .../networkaccessmanagerfactory/view.qml | 2 +- .../plugins/com/nokia/TimeExample/Clock.qml | 2 +- .../declarative/cppextensions/plugins/plugin.cpp | 2 +- .../declarative/cppextensions/plugins/plugins.qml | 2 +- .../qgraphicslayouts/layoutitem/layoutitem.qml | 2 +- .../qgraphicslayouts/layoutitem/main.cpp | 2 +- .../qgraphicsgridlayout/gridlayout.cpp | 2 +- .../qgraphicsgridlayout/gridlayout.h | 2 +- .../qgraphicsgridlayout/qgraphicsgridlayout.qml | 2 +- .../qgraphicslinearlayout/linearlayout.cpp | 2 +- .../qgraphicslinearlayout/linearlayout.h | 2 +- .../qgraphicslinearlayout.qml | 2 +- .../cppextensions/qwidgets/qwidgets.cpp | 2 +- .../cppextensions/qwidgets/qwidgets.qml | 2 +- .../referenceexamples/adding/example.qml | 2 +- .../referenceexamples/adding/main.cpp | 2 +- .../referenceexamples/adding/person.cpp | 2 +- .../referenceexamples/adding/person.h | 2 +- .../referenceexamples/attached/birthdayparty.cpp | 2 +- .../referenceexamples/attached/birthdayparty.h | 2 +- .../referenceexamples/attached/example.qml | 2 +- .../referenceexamples/attached/main.cpp | 2 +- .../referenceexamples/attached/person.cpp | 2 +- .../referenceexamples/attached/person.h | 2 +- .../referenceexamples/binding/birthdayparty.cpp | 2 +- .../referenceexamples/binding/birthdayparty.h | 2 +- .../referenceexamples/binding/example.qml | 2 +- .../binding/happybirthdaysong.cpp | 2 +- .../referenceexamples/binding/happybirthdaysong.h | 2 +- .../referenceexamples/binding/main.cpp | 2 +- .../referenceexamples/binding/person.cpp | 2 +- .../referenceexamples/binding/person.h | 2 +- .../referenceexamples/coercion/birthdayparty.cpp | 2 +- .../referenceexamples/coercion/birthdayparty.h | 2 +- .../referenceexamples/coercion/example.qml | 2 +- .../referenceexamples/coercion/main.cpp | 2 +- .../referenceexamples/coercion/person.cpp | 2 +- .../referenceexamples/coercion/person.h | 2 +- .../referenceexamples/default/birthdayparty.cpp | 2 +- .../referenceexamples/default/birthdayparty.h | 2 +- .../referenceexamples/default/example.qml | 2 +- .../referenceexamples/default/main.cpp | 2 +- .../referenceexamples/default/person.cpp | 2 +- .../referenceexamples/default/person.h | 2 +- .../referenceexamples/extended/example.qml | 2 +- .../referenceexamples/extended/lineedit.cpp | 2 +- .../referenceexamples/extended/lineedit.h | 2 +- .../referenceexamples/extended/main.cpp | 2 +- .../referenceexamples/grouped/birthdayparty.cpp | 2 +- .../referenceexamples/grouped/birthdayparty.h | 2 +- .../referenceexamples/grouped/example.qml | 2 +- .../referenceexamples/grouped/main.cpp | 2 +- .../referenceexamples/grouped/person.cpp | 2 +- .../referenceexamples/grouped/person.h | 2 +- .../referenceexamples/methods/birthdayparty.cpp | 2 +- .../referenceexamples/methods/birthdayparty.h | 2 +- .../referenceexamples/methods/example.qml | 2 +- .../referenceexamples/methods/main.cpp | 2 +- .../referenceexamples/methods/person.cpp | 2 +- .../referenceexamples/methods/person.h | 2 +- .../referenceexamples/properties/birthdayparty.cpp | 2 +- .../referenceexamples/properties/birthdayparty.h | 2 +- .../referenceexamples/properties/example.qml | 2 +- .../referenceexamples/properties/main.cpp | 2 +- .../referenceexamples/properties/person.cpp | 2 +- .../referenceexamples/properties/person.h | 2 +- .../referenceexamples/signal/birthdayparty.cpp | 2 +- .../referenceexamples/signal/birthdayparty.h | 2 +- .../referenceexamples/signal/example.qml | 2 +- .../referenceexamples/signal/main.cpp | 2 +- .../referenceexamples/signal/person.cpp | 2 +- .../referenceexamples/signal/person.h | 2 +- .../valuesource/birthdayparty.cpp | 2 +- .../referenceexamples/valuesource/birthdayparty.h | 2 +- .../referenceexamples/valuesource/example.qml | 2 +- .../valuesource/happybirthdaysong.cpp | 2 +- .../valuesource/happybirthdaysong.h | 2 +- .../referenceexamples/valuesource/main.cpp | 2 +- .../referenceexamples/valuesource/person.cpp | 2 +- .../referenceexamples/valuesource/person.h | 2 +- examples/declarative/i18n/i18n.qml | 2 +- .../imageelements/borderimage/borderimage.qml | 2 +- .../borderimage/content/MyBorderImage.qml | 2 +- .../borderimage/content/ShadowRectangle.qml | 2 +- .../imageelements/borderimage/shadows.qml | 2 +- .../declarative/imageelements/image/ImageCell.qml | 2 +- examples/declarative/imageelements/image/image.qml | 2 +- .../keyinteraction/focus/Core/ContextMenu.qml | 2 +- .../keyinteraction/focus/Core/GridMenu.qml | 2 +- .../keyinteraction/focus/Core/ListMenu.qml | 2 +- .../keyinteraction/focus/Core/ListViewDelegate.qml | 2 +- .../declarative/keyinteraction/focus/focus.qml | 2 +- .../modelviews/abstractitemmodel/main.cpp | 2 +- .../modelviews/abstractitemmodel/model.cpp | 2 +- .../modelviews/abstractitemmodel/model.h | 2 +- .../modelviews/abstractitemmodel/view.qml | 2 +- .../modelviews/gridview/gridview-example.qml | 2 +- .../modelviews/listview/content/PetsModel.qml | 2 +- .../listview/content/PressAndHoldButton.qml | 2 +- .../modelviews/listview/content/RecipesModel.qml | 2 +- .../modelviews/listview/content/TextButton.qml | 2 +- .../modelviews/listview/dynamiclist.qml | 2 +- .../modelviews/listview/expandingdelegates.qml | 2 +- .../declarative/modelviews/listview/highlight.qml | 2 +- .../modelviews/listview/highlightranges.qml | 2 +- .../declarative/modelviews/listview/sections.qml | 2 +- .../modelviews/objectlistmodel/dataobject.cpp | 2 +- .../modelviews/objectlistmodel/dataobject.h | 2 +- .../modelviews/objectlistmodel/main.cpp | 2 +- .../modelviews/objectlistmodel/view.qml | 2 +- .../declarative/modelviews/package/Delegate.qml | 2 +- examples/declarative/modelviews/package/view.qml | 2 +- .../declarative/modelviews/parallax/parallax.qml | 2 +- .../modelviews/parallax/qml/ParallaxView.qml | 2 +- .../declarative/modelviews/parallax/qml/Smiley.qml | 2 +- .../modelviews/pathview/pathview-example.qml | 2 +- .../modelviews/stringlistmodel/main.cpp | 2 +- .../modelviews/stringlistmodel/view.qml | 2 +- .../modelviews/visualitemmodel/visualitemmodel.qml | 2 +- examples/declarative/modelviews/webview/alerts.qml | 2 +- .../declarative/modelviews/webview/autosize.qml | 2 +- .../modelviews/webview/content/Mapping/Map.qml | 2 +- .../declarative/modelviews/webview/googlemaps.qml | 2 +- .../declarative/modelviews/webview/inlinehtml.qml | 2 +- .../declarative/modelviews/webview/newwindows.qml | 2 +- examples/declarative/positioners/Button.qml | 2 +- examples/declarative/positioners/positioners.qml | 2 +- .../declarative/screenorientation/Core/Bubble.qml | 2 +- .../declarative/screenorientation/Core/Button.qml | 2 +- .../screenorientation/Core/screenorientation.js | 2 +- .../screenorientation/screenorientation.qml | 2 +- examples/declarative/sqllocalstorage/hello.qml | 2 +- examples/declarative/text/fonts/availableFonts.qml | 2 +- examples/declarative/text/fonts/banner.qml | 2 +- examples/declarative/text/fonts/fonts.qml | 2 +- examples/declarative/text/fonts/hello.qml | 2 +- .../text/textselection/textselection.qml | 2 +- .../threading/threadedlistmodel/dataloader.js | 2 +- .../threadedlistmodel/threadedlistmodel.qmlproject | 2 +- .../threading/threadedlistmodel/timedisplay.qml | 2 +- .../threading/workerscript/workerscript.qml | 2 +- .../gestures/experimental-gestures.qml | 2 +- .../mousearea/mousearea-example.qml | 2 +- examples/declarative/toys/clocks/clocks.qml | 2 +- examples/declarative/toys/clocks/content/Clock.qml | 2 +- .../declarative/toys/clocks/content/QuitButton.qml | 2 +- examples/declarative/toys/corkboards/Day.qml | 2 +- .../declarative/toys/corkboards/corkboards.qml | 2 +- .../declarative/toys/dynamicscene/dynamicscene.qml | 2 +- .../declarative/toys/dynamicscene/qml/Button.qml | 2 +- .../toys/dynamicscene/qml/GenericSceneItem.qml | 2 +- .../toys/dynamicscene/qml/PaletteItem.qml | 2 +- .../toys/dynamicscene/qml/PerspectiveItem.qml | 2 +- examples/declarative/toys/dynamicscene/qml/Sun.qml | 2 +- .../toys/tic-tac-toe/content/Button.qml | 2 +- .../toys/tic-tac-toe/content/TicTac.qml | 2 +- .../declarative/toys/tic-tac-toe/tic-tac-toe.qml | 2 +- examples/declarative/toys/tvtennis/tvtennis.qml | 2 +- .../tutorials/extending/chapter1-basics/app.qml | 2 +- .../tutorials/extending/chapter1-basics/main.cpp | 2 +- .../extending/chapter1-basics/piechart.cpp | 2 +- .../tutorials/extending/chapter1-basics/piechart.h | 2 +- .../tutorials/extending/chapter2-methods/app.qml | 2 +- .../tutorials/extending/chapter2-methods/main.cpp | 2 +- .../extending/chapter2-methods/piechart.cpp | 2 +- .../extending/chapter2-methods/piechart.h | 2 +- .../tutorials/extending/chapter3-bindings/app.qml | 2 +- .../tutorials/extending/chapter3-bindings/main.cpp | 2 +- .../extending/chapter3-bindings/piechart.cpp | 2 +- .../extending/chapter3-bindings/piechart.h | 2 +- .../extending/chapter4-customPropertyTypes/app.qml | 2 +- .../chapter4-customPropertyTypes/main.cpp | 2 +- .../chapter4-customPropertyTypes/piechart.cpp | 2 +- .../chapter4-customPropertyTypes/piechart.h | 2 +- .../chapter4-customPropertyTypes/pieslice.cpp | 2 +- .../chapter4-customPropertyTypes/pieslice.h | 2 +- .../extending/chapter5-listproperties/app.qml | 2 +- .../extending/chapter5-listproperties/main.cpp | 2 +- .../extending/chapter5-listproperties/piechart.cpp | 2 +- .../extending/chapter5-listproperties/piechart.h | 2 +- .../extending/chapter5-listproperties/pieslice.cpp | 2 +- .../extending/chapter5-listproperties/pieslice.h | 2 +- .../tutorials/extending/chapter6-plugins/app.qml | 2 +- .../extending/chapter6-plugins/chartsplugin.cpp | 2 +- .../extending/chapter6-plugins/chartsplugin.h | 2 +- .../extending/chapter6-plugins/piechart.cpp | 2 +- .../extending/chapter6-plugins/piechart.h | 2 +- .../extending/chapter6-plugins/pieslice.cpp | 2 +- .../extending/chapter6-plugins/pieslice.h | 2 +- examples/declarative/tutorials/helloworld/Cell.qml | 2 +- .../declarative/tutorials/helloworld/tutorial1.qml | 2 +- .../declarative/tutorials/helloworld/tutorial2.qml | 2 +- .../declarative/tutorials/helloworld/tutorial3.qml | 2 +- .../tutorials/samegame/samegame1/Block.qml | 2 +- .../tutorials/samegame/samegame1/Button.qml | 2 +- .../tutorials/samegame/samegame1/samegame.qml | 2 +- .../tutorials/samegame/samegame2/Block.qml | 2 +- .../tutorials/samegame/samegame2/Button.qml | 2 +- .../tutorials/samegame/samegame2/samegame.qml | 2 +- .../tutorials/samegame/samegame3/Block.qml | 2 +- .../tutorials/samegame/samegame3/Button.qml | 2 +- .../tutorials/samegame/samegame3/Dialog.qml | 2 +- .../tutorials/samegame/samegame3/samegame.qml | 2 +- .../samegame/samegame4/content/BoomBlock.qml | 2 +- .../samegame/samegame4/content/Button.qml | 2 +- .../samegame/samegame4/content/Dialog.qml | 2 +- .../tutorials/samegame/samegame4/samegame.qml | 2 +- .../ui-components/dialcontrol/content/Dial.qml | 2 +- .../dialcontrol/content/QuitButton.qml | 2 +- .../ui-components/dialcontrol/dialcontrol.qml | 2 +- .../ui-components/flipable/content/Card.qml | 2 +- .../ui-components/flipable/flipable.qml | 2 +- .../progressbar/content/ProgressBar.qml | 2 +- .../declarative/ui-components/progressbar/main.qml | 2 +- .../ui-components/scrollbar/ScrollBar.qml | 2 +- .../declarative/ui-components/scrollbar/main.qml | 2 +- .../ui-components/searchbox/SearchBox.qml | 2 +- .../declarative/ui-components/searchbox/main.qml | 2 +- .../ui-components/slideswitch/content/Switch.qml | 2 +- .../ui-components/slideswitch/slideswitch.qml | 2 +- .../ui-components/spinner/content/Spinner.qml | 2 +- .../declarative/ui-components/spinner/main.qml | 2 +- .../ui-components/tabwidget/TabWidget.qml | 2 +- .../declarative/ui-components/tabwidget/main.qml | 2 +- .../xml/xmlhttprequest/xmlhttprequest-example.qml | 2 +- .../designer/calculatorbuilder/calculatorform.cpp | 2 +- .../designer/calculatorbuilder/calculatorform.h | 2 +- examples/designer/calculatorbuilder/main.cpp | 2 +- .../designer/calculatorform/calculatorform.cpp | 2 +- examples/designer/calculatorform/calculatorform.h | 2 +- examples/designer/calculatorform/main.cpp | 2 +- .../containerextension/multipagewidget.cpp | 2 +- .../designer/containerextension/multipagewidget.h | 2 +- .../multipagewidgetcontainerextension.cpp | 2 +- .../multipagewidgetcontainerextension.h | 2 +- .../multipagewidgetextensionfactory.cpp | 2 +- .../multipagewidgetextensionfactory.h | 2 +- .../containerextension/multipagewidgetplugin.cpp | 2 +- .../containerextension/multipagewidgetplugin.h | 2 +- .../designer/customwidgetplugin/analogclock.cpp | 2 +- examples/designer/customwidgetplugin/analogclock.h | 2 +- .../customwidgetplugin/customwidgetplugin.cpp | 2 +- .../customwidgetplugin/customwidgetplugin.h | 2 +- examples/designer/taskmenuextension/tictactoe.cpp | 2 +- examples/designer/taskmenuextension/tictactoe.h | 2 +- .../designer/taskmenuextension/tictactoedialog.cpp | 2 +- .../designer/taskmenuextension/tictactoedialog.h | 2 +- .../designer/taskmenuextension/tictactoeplugin.cpp | 2 +- .../designer/taskmenuextension/tictactoeplugin.h | 2 +- .../taskmenuextension/tictactoetaskmenu.cpp | 2 +- .../designer/taskmenuextension/tictactoetaskmenu.h | 2 +- examples/designer/worldtimeclockbuilder/main.cpp | 2 +- .../worldtimeclockplugin/worldtimeclock.cpp | 2 +- .../designer/worldtimeclockplugin/worldtimeclock.h | 2 +- .../worldtimeclockplugin/worldtimeclockplugin.cpp | 2 +- .../worldtimeclockplugin/worldtimeclockplugin.h | 2 +- examples/desktop/screenshot/main.cpp | 2 +- examples/desktop/screenshot/screenshot.cpp | 2 +- examples/desktop/screenshot/screenshot.h | 2 +- examples/desktop/systray/main.cpp | 2 +- examples/desktop/systray/window.cpp | 2 +- examples/desktop/systray/window.h | 2 +- examples/dialogs/classwizard/classwizard.cpp | 2 +- examples/dialogs/classwizard/classwizard.h | 2 +- examples/dialogs/classwizard/main.cpp | 2 +- examples/dialogs/configdialog/configdialog.cpp | 2 +- examples/dialogs/configdialog/configdialog.h | 2 +- examples/dialogs/configdialog/main.cpp | 2 +- examples/dialogs/configdialog/pages.cpp | 2 +- examples/dialogs/configdialog/pages.h | 2 +- examples/dialogs/extension/finddialog.cpp | 2 +- examples/dialogs/extension/finddialog.h | 2 +- examples/dialogs/extension/main.cpp | 2 +- examples/dialogs/findfiles/main.cpp | 2 +- examples/dialogs/findfiles/window.cpp | 2 +- examples/dialogs/findfiles/window.h | 2 +- examples/dialogs/licensewizard/licensewizard.cpp | 2 +- examples/dialogs/licensewizard/licensewizard.h | 2 +- examples/dialogs/licensewizard/main.cpp | 2 +- examples/dialogs/sipdialog/dialog.cpp | 2 +- examples/dialogs/sipdialog/dialog.h | 2 +- examples/dialogs/sipdialog/main.cpp | 2 +- examples/dialogs/standarddialogs/dialog.cpp | 2 +- examples/dialogs/standarddialogs/dialog.h | 2 +- examples/dialogs/standarddialogs/main.cpp | 2 +- examples/dialogs/tabdialog/main.cpp | 2 +- examples/dialogs/tabdialog/tabdialog.cpp | 2 +- examples/dialogs/tabdialog/tabdialog.h | 2 +- examples/dialogs/trivialwizard/trivialwizard.cpp | 2 +- .../draganddrop/delayedencoding/images/example.svg | 2 +- examples/draganddrop/delayedencoding/main.cpp | 2 +- examples/draganddrop/delayedencoding/mimedata.cpp | 2 +- examples/draganddrop/delayedencoding/mimedata.h | 2 +- .../draganddrop/delayedencoding/sourcewidget.cpp | 2 +- .../draganddrop/delayedencoding/sourcewidget.h | 2 +- examples/draganddrop/draggableicons/dragwidget.cpp | 2 +- examples/draganddrop/draggableicons/dragwidget.h | 2 +- examples/draganddrop/draggableicons/main.cpp | 2 +- examples/draganddrop/draggabletext/draglabel.cpp | 2 +- examples/draganddrop/draggabletext/draglabel.h | 2 +- examples/draganddrop/draggabletext/dragwidget.cpp | 2 +- examples/draganddrop/draggabletext/dragwidget.h | 2 +- examples/draganddrop/draggabletext/main.cpp | 2 +- examples/draganddrop/dropsite/droparea.cpp | 2 +- examples/draganddrop/dropsite/droparea.h | 2 +- examples/draganddrop/dropsite/dropsitewindow.cpp | 2 +- examples/draganddrop/dropsite/dropsitewindow.h | 2 +- examples/draganddrop/dropsite/main.cpp | 2 +- examples/draganddrop/fridgemagnets/draglabel.cpp | 2 +- examples/draganddrop/fridgemagnets/draglabel.h | 2 +- examples/draganddrop/fridgemagnets/dragwidget.cpp | 2 +- examples/draganddrop/fridgemagnets/dragwidget.h | 2 +- examples/draganddrop/fridgemagnets/main.cpp | 2 +- examples/draganddrop/puzzle/main.cpp | 2 +- examples/draganddrop/puzzle/mainwindow.cpp | 2 +- examples/draganddrop/puzzle/mainwindow.h | 2 +- examples/draganddrop/puzzle/pieceslist.cpp | 2 +- examples/draganddrop/puzzle/pieceslist.h | 2 +- examples/draganddrop/puzzle/puzzlewidget.cpp | 2 +- examples/draganddrop/puzzle/puzzlewidget.h | 2 +- examples/effects/blurpicker/blureffect.cpp | 2 +- examples/effects/blurpicker/blureffect.h | 2 +- examples/effects/blurpicker/blurpicker.cpp | 2 +- examples/effects/blurpicker/blurpicker.h | 2 +- examples/effects/blurpicker/main.cpp | 2 +- examples/effects/fademessage/fademessage.cpp | 2 +- examples/effects/fademessage/fademessage.h | 2 +- examples/effects/fademessage/main.cpp | 2 +- examples/effects/lighting/lighting.cpp | 2 +- examples/effects/lighting/lighting.h | 2 +- examples/effects/lighting/main.cpp | 2 +- examples/gestures/imagegestures/imagewidget.cpp | 2 +- examples/gestures/imagegestures/imagewidget.h | 2 +- examples/gestures/imagegestures/main.cpp | 2 +- examples/gestures/imagegestures/mainwidget.cpp | 2 +- examples/gestures/imagegestures/mainwidget.h | 2 +- examples/graphicsview/anchorlayout/main.cpp | 2 +- .../basicgraphicslayouts/layoutitem.cpp | 2 +- .../graphicsview/basicgraphicslayouts/layoutitem.h | 2 +- .../graphicsview/basicgraphicslayouts/main.cpp | 2 +- .../graphicsview/basicgraphicslayouts/window.cpp | 2 +- .../graphicsview/basicgraphicslayouts/window.h | 2 +- examples/graphicsview/collidingmice/main.cpp | 2 +- examples/graphicsview/collidingmice/mouse.cpp | 2 +- examples/graphicsview/collidingmice/mouse.h | 2 +- examples/graphicsview/diagramscene/arrow.cpp | 2 +- examples/graphicsview/diagramscene/arrow.h | 2 +- examples/graphicsview/diagramscene/diagramitem.cpp | 2 +- examples/graphicsview/diagramscene/diagramitem.h | 2 +- .../graphicsview/diagramscene/diagramscene.cpp | 2 +- examples/graphicsview/diagramscene/diagramscene.h | 2 +- .../graphicsview/diagramscene/diagramtextitem.cpp | 2 +- .../graphicsview/diagramscene/diagramtextitem.h | 2 +- examples/graphicsview/diagramscene/main.cpp | 2 +- examples/graphicsview/diagramscene/mainwindow.cpp | 2 +- examples/graphicsview/diagramscene/mainwindow.h | 2 +- examples/graphicsview/dragdroprobot/coloritem.cpp | 2 +- examples/graphicsview/dragdroprobot/coloritem.h | 2 +- examples/graphicsview/dragdroprobot/main.cpp | 2 +- examples/graphicsview/dragdroprobot/robot.cpp | 2 +- examples/graphicsview/dragdroprobot/robot.h | 2 +- examples/graphicsview/elasticnodes/edge.cpp | 2 +- examples/graphicsview/elasticnodes/edge.h | 2 +- examples/graphicsview/elasticnodes/graphwidget.cpp | 2 +- examples/graphicsview/elasticnodes/graphwidget.h | 2 +- examples/graphicsview/elasticnodes/main.cpp | 2 +- examples/graphicsview/elasticnodes/node.cpp | 2 +- examples/graphicsview/elasticnodes/node.h | 2 +- examples/graphicsview/flowlayout/flowlayout.cpp | 2 +- examples/graphicsview/flowlayout/flowlayout.h | 2 +- examples/graphicsview/flowlayout/main.cpp | 2 +- examples/graphicsview/flowlayout/window.cpp | 2 +- examples/graphicsview/flowlayout/window.h | 2 +- .../graphicsview/padnavigator/flippablepad.cpp | 2 +- examples/graphicsview/padnavigator/flippablepad.h | 2 +- examples/graphicsview/padnavigator/main.cpp | 2 +- .../graphicsview/padnavigator/padnavigator.cpp | 2 +- examples/graphicsview/padnavigator/padnavigator.h | 2 +- .../graphicsview/padnavigator/roundrectitem.cpp | 2 +- examples/graphicsview/padnavigator/roundrectitem.h | 2 +- examples/graphicsview/padnavigator/splashitem.cpp | 2 +- examples/graphicsview/padnavigator/splashitem.h | 2 +- .../graphicsview/portedasteroids/animateditem.cpp | 2 +- .../graphicsview/portedasteroids/animateditem.h | 2 +- examples/graphicsview/portedasteroids/ledmeter.cpp | 2 +- examples/graphicsview/portedasteroids/ledmeter.h | 2 +- examples/graphicsview/portedasteroids/main.cpp | 2 +- examples/graphicsview/portedasteroids/sprites.h | 2 +- examples/graphicsview/portedasteroids/toplevel.cpp | 2 +- examples/graphicsview/portedasteroids/toplevel.h | 2 +- examples/graphicsview/portedasteroids/view.cpp | 2 +- examples/graphicsview/portedasteroids/view.h | 2 +- examples/graphicsview/portedcanvas/blendshadow.cpp | 2 +- examples/graphicsview/portedcanvas/canvas.cpp | 2 +- examples/graphicsview/portedcanvas/canvas.h | 2 +- examples/graphicsview/portedcanvas/main.cpp | 2 +- examples/graphicsview/portedcanvas/makeimg.cpp | 2 +- examples/graphicsview/simpleanchorlayout/main.cpp | 2 +- examples/graphicsview/weatheranchorlayout/main.cpp | 2 +- examples/help/contextsensitivehelp/helpbrowser.cpp | 2 +- examples/help/contextsensitivehelp/helpbrowser.h | 2 +- examples/help/contextsensitivehelp/main.cpp | 2 +- .../contextsensitivehelp/wateringconfigdialog.cpp | 2 +- .../contextsensitivehelp/wateringconfigdialog.h | 2 +- examples/help/remotecontrol/main.cpp | 2 +- examples/help/remotecontrol/remotecontrol.cpp | 2 +- examples/help/remotecontrol/remotecontrol.h | 2 +- examples/help/simpletextviewer/assistant.cpp | 2 +- examples/help/simpletextviewer/assistant.h | 2 +- examples/help/simpletextviewer/findfiledialog.cpp | 2 +- examples/help/simpletextviewer/findfiledialog.h | 2 +- examples/help/simpletextviewer/main.cpp | 2 +- examples/help/simpletextviewer/mainwindow.cpp | 2 +- examples/help/simpletextviewer/mainwindow.h | 2 +- examples/help/simpletextviewer/textedit.cpp | 2 +- examples/help/simpletextviewer/textedit.h | 2 +- examples/ipc/localfortuneclient/client.cpp | 2 +- examples/ipc/localfortuneclient/client.h | 2 +- examples/ipc/localfortuneclient/main.cpp | 2 +- examples/ipc/localfortuneserver/main.cpp | 2 +- examples/ipc/localfortuneserver/server.cpp | 2 +- examples/ipc/localfortuneserver/server.h | 2 +- examples/ipc/sharedmemory/dialog.cpp | 2 +- examples/ipc/sharedmemory/dialog.h | 2 +- examples/ipc/sharedmemory/main.cpp | 2 +- examples/itemviews/addressbook/adddialog.cpp | 2 +- examples/itemviews/addressbook/adddialog.h | 2 +- examples/itemviews/addressbook/addresswidget.cpp | 2 +- examples/itemviews/addressbook/addresswidget.h | 2 +- examples/itemviews/addressbook/main.cpp | 2 +- examples/itemviews/addressbook/mainwindow.cpp | 2 +- examples/itemviews/addressbook/mainwindow.h | 2 +- examples/itemviews/addressbook/newaddresstab.cpp | 2 +- examples/itemviews/addressbook/newaddresstab.h | 2 +- examples/itemviews/addressbook/tablemodel.cpp | 2 +- examples/itemviews/addressbook/tablemodel.h | 2 +- examples/itemviews/basicsortfiltermodel/main.cpp | 2 +- examples/itemviews/basicsortfiltermodel/window.cpp | 2 +- examples/itemviews/basicsortfiltermodel/window.h | 2 +- examples/itemviews/chart/main.cpp | 2 +- examples/itemviews/chart/mainwindow.cpp | 2 +- examples/itemviews/chart/mainwindow.h | 2 +- examples/itemviews/chart/pieview.cpp | 2 +- examples/itemviews/chart/pieview.h | 2 +- .../coloreditorfactory/colorlisteditor.cpp | 2 +- .../itemviews/coloreditorfactory/colorlisteditor.h | 2 +- examples/itemviews/coloreditorfactory/main.cpp | 2 +- examples/itemviews/coloreditorfactory/window.cpp | 2 +- examples/itemviews/coloreditorfactory/window.h | 2 +- examples/itemviews/combowidgetmapper/main.cpp | 2 +- examples/itemviews/combowidgetmapper/window.cpp | 2 +- examples/itemviews/combowidgetmapper/window.h | 2 +- examples/itemviews/customsortfiltermodel/main.cpp | 2 +- .../mysortfilterproxymodel.cpp | 2 +- .../customsortfiltermodel/mysortfilterproxymodel.h | 2 +- .../itemviews/customsortfiltermodel/window.cpp | 2 +- examples/itemviews/customsortfiltermodel/window.h | 2 +- examples/itemviews/dirview/main.cpp | 2 +- examples/itemviews/editabletreemodel/main.cpp | 2 +- .../itemviews/editabletreemodel/mainwindow.cpp | 2 +- examples/itemviews/editabletreemodel/mainwindow.h | 2 +- examples/itemviews/editabletreemodel/treeitem.cpp | 2 +- examples/itemviews/editabletreemodel/treeitem.h | 2 +- examples/itemviews/editabletreemodel/treemodel.cpp | 2 +- examples/itemviews/editabletreemodel/treemodel.h | 2 +- examples/itemviews/fetchmore/filelistmodel.cpp | 2 +- examples/itemviews/fetchmore/filelistmodel.h | 2 +- examples/itemviews/fetchmore/main.cpp | 2 +- examples/itemviews/fetchmore/window.cpp | 2 +- examples/itemviews/fetchmore/window.h | 2 +- .../itemviews/frozencolumn/freezetablewidget.cpp | 2 +- .../itemviews/frozencolumn/freezetablewidget.h | 2 +- examples/itemviews/frozencolumn/main.cpp | 2 +- examples/itemviews/pixelator/imagemodel.cpp | 2 +- examples/itemviews/pixelator/imagemodel.h | 2 +- examples/itemviews/pixelator/main.cpp | 2 +- examples/itemviews/pixelator/mainwindow.cpp | 2 +- examples/itemviews/pixelator/mainwindow.h | 2 +- examples/itemviews/pixelator/pixeldelegate.cpp | 2 +- examples/itemviews/pixelator/pixeldelegate.h | 2 +- examples/itemviews/puzzle/main.cpp | 2 +- examples/itemviews/puzzle/mainwindow.cpp | 2 +- examples/itemviews/puzzle/mainwindow.h | 2 +- examples/itemviews/puzzle/piecesmodel.cpp | 2 +- examples/itemviews/puzzle/piecesmodel.h | 2 +- examples/itemviews/puzzle/puzzlewidget.cpp | 2 +- examples/itemviews/puzzle/puzzlewidget.h | 2 +- examples/itemviews/simpledommodel/domitem.cpp | 2 +- examples/itemviews/simpledommodel/domitem.h | 2 +- examples/itemviews/simpledommodel/dommodel.cpp | 2 +- examples/itemviews/simpledommodel/dommodel.h | 2 +- examples/itemviews/simpledommodel/main.cpp | 2 +- examples/itemviews/simpledommodel/mainwindow.cpp | 2 +- examples/itemviews/simpledommodel/mainwindow.h | 2 +- examples/itemviews/simpletreemodel/main.cpp | 2 +- examples/itemviews/simpletreemodel/treeitem.cpp | 2 +- examples/itemviews/simpletreemodel/treeitem.h | 2 +- examples/itemviews/simpletreemodel/treemodel.cpp | 2 +- examples/itemviews/simpletreemodel/treemodel.h | 2 +- examples/itemviews/simplewidgetmapper/main.cpp | 2 +- examples/itemviews/simplewidgetmapper/window.cpp | 2 +- examples/itemviews/simplewidgetmapper/window.h | 2 +- examples/itemviews/spinboxdelegate/delegate.cpp | 2 +- examples/itemviews/spinboxdelegate/delegate.h | 2 +- examples/itemviews/spinboxdelegate/main.cpp | 2 +- examples/itemviews/stardelegate/main.cpp | 2 +- examples/itemviews/stardelegate/stardelegate.cpp | 2 +- examples/itemviews/stardelegate/stardelegate.h | 2 +- examples/itemviews/stardelegate/stareditor.cpp | 2 +- examples/itemviews/stardelegate/stareditor.h | 2 +- examples/itemviews/stardelegate/starrating.cpp | 2 +- examples/itemviews/stardelegate/starrating.h | 2 +- examples/ja_JP/linguist/hellotr/main.cpp | 2 +- examples/layouts/basiclayouts/dialog.cpp | 2 +- examples/layouts/basiclayouts/dialog.h | 2 +- examples/layouts/basiclayouts/main.cpp | 2 +- examples/layouts/borderlayout/borderlayout.cpp | 2 +- examples/layouts/borderlayout/borderlayout.h | 2 +- examples/layouts/borderlayout/main.cpp | 2 +- examples/layouts/borderlayout/window.cpp | 2 +- examples/layouts/borderlayout/window.h | 2 +- examples/layouts/dynamiclayouts/dialog.cpp | 2 +- examples/layouts/dynamiclayouts/dialog.h | 2 +- examples/layouts/dynamiclayouts/main.cpp | 2 +- examples/layouts/flowlayout/flowlayout.cpp | 2 +- examples/layouts/flowlayout/flowlayout.h | 2 +- examples/layouts/flowlayout/main.cpp | 2 +- examples/layouts/flowlayout/window.cpp | 2 +- examples/layouts/flowlayout/window.h | 2 +- examples/linguist/arrowpad/arrowpad.cpp | 2 +- examples/linguist/arrowpad/arrowpad.h | 2 +- examples/linguist/arrowpad/main.cpp | 2 +- examples/linguist/arrowpad/mainwindow.cpp | 2 +- examples/linguist/arrowpad/mainwindow.h | 2 +- examples/linguist/hellotr/main.cpp | 2 +- examples/linguist/trollprint/main.cpp | 2 +- examples/linguist/trollprint/mainwindow.cpp | 2 +- examples/linguist/trollprint/mainwindow.h | 2 +- examples/linguist/trollprint/printpanel.cpp | 2 +- examples/linguist/trollprint/printpanel.h | 2 +- examples/mainwindows/application/main.cpp | 2 +- examples/mainwindows/application/mainwindow.cpp | 2 +- examples/mainwindows/application/mainwindow.h | 2 +- examples/mainwindows/dockwidgets/main.cpp | 2 +- examples/mainwindows/dockwidgets/mainwindow.cpp | 2 +- examples/mainwindows/dockwidgets/mainwindow.h | 2 +- examples/mainwindows/mdi/main.cpp | 2 +- examples/mainwindows/mdi/mainwindow.cpp | 2 +- examples/mainwindows/mdi/mainwindow.h | 2 +- examples/mainwindows/mdi/mdichild.cpp | 2 +- examples/mainwindows/mdi/mdichild.h | 2 +- examples/mainwindows/menus/main.cpp | 2 +- examples/mainwindows/menus/mainwindow.cpp | 2 +- examples/mainwindows/menus/mainwindow.h | 2 +- examples/mainwindows/recentfiles/main.cpp | 2 +- examples/mainwindows/recentfiles/mainwindow.cpp | 2 +- examples/mainwindows/recentfiles/mainwindow.h | 2 +- examples/mainwindows/sdi/main.cpp | 2 +- examples/mainwindows/sdi/mainwindow.cpp | 2 +- examples/mainwindows/sdi/mainwindow.h | 2 +- examples/multimedia/audiodevices/audiodevices.cpp | 2 +- examples/multimedia/audiodevices/audiodevices.h | 2 +- examples/multimedia/audiodevices/main.cpp | 2 +- examples/multimedia/audioinput/audioinput.cpp | 2 +- examples/multimedia/audioinput/audioinput.h | 2 +- examples/multimedia/audioinput/main.cpp | 2 +- examples/multimedia/audiooutput/audiooutput.cpp | 2 +- examples/multimedia/audiooutput/audiooutput.h | 2 +- examples/multimedia/audiooutput/main.cpp | 2 +- examples/multimedia/videographicsitem/main.cpp | 2 +- .../multimedia/videographicsitem/videoitem.cpp | 2 +- examples/multimedia/videographicsitem/videoitem.h | 2 +- .../multimedia/videographicsitem/videoplayer.cpp | 2 +- .../multimedia/videographicsitem/videoplayer.h | 2 +- examples/multimedia/videowidget/main.cpp | 2 +- examples/multimedia/videowidget/videoplayer.cpp | 2 +- examples/multimedia/videowidget/videoplayer.h | 2 +- examples/multimedia/videowidget/videowidget.cpp | 2 +- examples/multimedia/videowidget/videowidget.h | 2 +- .../multimedia/videowidget/videowidgetsurface.cpp | 2 +- .../multimedia/videowidget/videowidgetsurface.h | 2 +- examples/network/bearercloud/bearercloud.cpp | 2 +- examples/network/bearercloud/bearercloud.h | 2 +- examples/network/bearercloud/cloud.cpp | 2 +- examples/network/bearercloud/cloud.h | 2 +- examples/network/bearercloud/main.cpp | 2 +- examples/network/bearermonitor/bearermonitor.cpp | 2 +- examples/network/bearermonitor/bearermonitor.h | 2 +- examples/network/bearermonitor/main.cpp | 2 +- examples/network/bearermonitor/sessionwidget.cpp | 2 +- examples/network/bearermonitor/sessionwidget.h | 2 +- .../blockingfortuneclient/blockingclient.cpp | 2 +- .../network/blockingfortuneclient/blockingclient.h | 2 +- .../blockingfortuneclient/fortunethread.cpp | 2 +- .../network/blockingfortuneclient/fortunethread.h | 2 +- examples/network/blockingfortuneclient/main.cpp | 2 +- examples/network/broadcastreceiver/main.cpp | 2 +- examples/network/broadcastreceiver/receiver.cpp | 2 +- examples/network/broadcastreceiver/receiver.h | 2 +- examples/network/broadcastsender/main.cpp | 2 +- examples/network/broadcastsender/sender.cpp | 2 +- examples/network/broadcastsender/sender.h | 2 +- examples/network/download/main.cpp | 2 +- .../network/downloadmanager/downloadmanager.cpp | 2 +- examples/network/downloadmanager/downloadmanager.h | 2 +- examples/network/downloadmanager/main.cpp | 2 +- .../network/downloadmanager/textprogressbar.cpp | 2 +- examples/network/downloadmanager/textprogressbar.h | 2 +- examples/network/fortuneclient/client.cpp | 2 +- examples/network/fortuneclient/client.h | 2 +- examples/network/fortuneclient/main.cpp | 2 +- examples/network/fortuneserver/main.cpp | 2 +- examples/network/fortuneserver/server.cpp | 2 +- examples/network/fortuneserver/server.h | 2 +- examples/network/googlesuggest/googlesuggest.cpp | 2 +- examples/network/googlesuggest/googlesuggest.h | 2 +- examples/network/googlesuggest/main.cpp | 2 +- examples/network/googlesuggest/searchbox.cpp | 2 +- examples/network/googlesuggest/searchbox.h | 2 +- examples/network/http/httpwindow.cpp | 2 +- examples/network/http/httpwindow.h | 2 +- examples/network/http/main.cpp | 2 +- examples/network/loopback/dialog.cpp | 2 +- examples/network/loopback/dialog.h | 2 +- examples/network/loopback/main.cpp | 2 +- examples/network/network-chat/chatdialog.cpp | 2 +- examples/network/network-chat/chatdialog.h | 2 +- examples/network/network-chat/client.cpp | 2 +- examples/network/network-chat/client.h | 2 +- examples/network/network-chat/connection.cpp | 2 +- examples/network/network-chat/connection.h | 2 +- examples/network/network-chat/main.cpp | 2 +- examples/network/network-chat/peermanager.cpp | 2 +- examples/network/network-chat/peermanager.h | 2 +- examples/network/network-chat/server.cpp | 2 +- examples/network/network-chat/server.h | 2 +- examples/network/qftp/ftpwindow.cpp | 2 +- examples/network/qftp/ftpwindow.h | 2 +- examples/network/qftp/main.cpp | 2 +- .../network/securesocketclient/certificateinfo.cpp | 2 +- .../network/securesocketclient/certificateinfo.h | 2 +- examples/network/securesocketclient/main.cpp | 2 +- examples/network/securesocketclient/sslclient.cpp | 2 +- examples/network/securesocketclient/sslclient.h | 2 +- examples/network/threadedfortuneserver/dialog.cpp | 2 +- examples/network/threadedfortuneserver/dialog.h | 2 +- .../threadedfortuneserver/fortuneserver.cpp | 2 +- .../network/threadedfortuneserver/fortuneserver.h | 2 +- .../threadedfortuneserver/fortunethread.cpp | 2 +- .../network/threadedfortuneserver/fortunethread.h | 2 +- examples/network/threadedfortuneserver/main.cpp | 2 +- examples/network/torrent/addtorrentdialog.cpp | 2 +- examples/network/torrent/addtorrentdialog.h | 2 +- examples/network/torrent/bencodeparser.cpp | 2 +- examples/network/torrent/bencodeparser.h | 2 +- examples/network/torrent/connectionmanager.cpp | 2 +- examples/network/torrent/connectionmanager.h | 2 +- examples/network/torrent/filemanager.cpp | 2 +- examples/network/torrent/filemanager.h | 2 +- examples/network/torrent/main.cpp | 2 +- examples/network/torrent/mainwindow.cpp | 2 +- examples/network/torrent/mainwindow.h | 2 +- examples/network/torrent/metainfo.cpp | 2 +- examples/network/torrent/metainfo.h | 2 +- examples/network/torrent/peerwireclient.cpp | 2 +- examples/network/torrent/peerwireclient.h | 2 +- examples/network/torrent/ratecontroller.cpp | 2 +- examples/network/torrent/ratecontroller.h | 2 +- examples/network/torrent/torrentclient.cpp | 2 +- examples/network/torrent/torrentclient.h | 2 +- examples/network/torrent/torrentserver.cpp | 2 +- examples/network/torrent/torrentserver.h | 2 +- examples/network/torrent/trackerclient.cpp | 2 +- examples/network/torrent/trackerclient.h | 2 +- examples/opengl/2dpainting/glwidget.cpp | 2 +- examples/opengl/2dpainting/glwidget.h | 2 +- examples/opengl/2dpainting/helper.cpp | 2 +- examples/opengl/2dpainting/helper.h | 2 +- examples/opengl/2dpainting/main.cpp | 2 +- examples/opengl/2dpainting/widget.cpp | 2 +- examples/opengl/2dpainting/widget.h | 2 +- examples/opengl/2dpainting/window.cpp | 2 +- examples/opengl/2dpainting/window.h | 2 +- examples/opengl/framebufferobject/glwidget.cpp | 2 +- examples/opengl/framebufferobject/glwidget.h | 2 +- examples/opengl/framebufferobject/main.cpp | 2 +- examples/opengl/framebufferobject2/glwidget.cpp | 2 +- examples/opengl/framebufferobject2/glwidget.h | 2 +- examples/opengl/framebufferobject2/main.cpp | 2 +- examples/opengl/grabber/glwidget.cpp | 2 +- examples/opengl/grabber/glwidget.h | 2 +- examples/opengl/grabber/main.cpp | 2 +- examples/opengl/grabber/mainwindow.cpp | 2 +- examples/opengl/grabber/mainwindow.h | 2 +- examples/opengl/hellogl/glwidget.cpp | 2 +- examples/opengl/hellogl/glwidget.h | 2 +- examples/opengl/hellogl/main.cpp | 2 +- examples/opengl/hellogl/window.cpp | 2 +- examples/opengl/hellogl/window.h | 2 +- examples/opengl/hellogl_es/bubble.cpp | 2 +- examples/opengl/hellogl_es/bubble.h | 2 +- examples/opengl/hellogl_es/glwidget.cpp | 2 +- examples/opengl/hellogl_es/glwidget.h | 2 +- examples/opengl/hellogl_es/main.cpp | 2 +- examples/opengl/hellogl_es/mainwindow.cpp | 2 +- examples/opengl/hellogl_es/mainwindow.h | 2 +- examples/opengl/hellogl_es2/bubble.cpp | 2 +- examples/opengl/hellogl_es2/bubble.h | 2 +- examples/opengl/hellogl_es2/glwidget.cpp | 2 +- examples/opengl/hellogl_es2/glwidget.h | 2 +- examples/opengl/hellogl_es2/main.cpp | 2 +- examples/opengl/hellogl_es2/mainwindow.cpp | 2 +- examples/opengl/hellogl_es2/mainwindow.h | 2 +- examples/opengl/overpainting/bubble.cpp | 2 +- examples/opengl/overpainting/bubble.h | 2 +- examples/opengl/overpainting/glwidget.cpp | 2 +- examples/opengl/overpainting/glwidget.h | 2 +- examples/opengl/overpainting/main.cpp | 2 +- examples/opengl/pbuffers/cube.cpp | 2 +- examples/opengl/pbuffers/cube.h | 2 +- examples/opengl/pbuffers/glwidget.cpp | 2 +- examples/opengl/pbuffers/glwidget.h | 2 +- examples/opengl/pbuffers/main.cpp | 2 +- examples/opengl/pbuffers2/glwidget.cpp | 2 +- examples/opengl/pbuffers2/glwidget.h | 2 +- examples/opengl/pbuffers2/main.cpp | 2 +- examples/opengl/samplebuffers/glwidget.cpp | 2 +- examples/opengl/samplebuffers/glwidget.h | 2 +- examples/opengl/samplebuffers/main.cpp | 2 +- examples/opengl/shared/qtlogo.cpp | 2 +- examples/opengl/shared/qtlogo.h | 2 +- examples/opengl/textures/glwidget.cpp | 2 +- examples/opengl/textures/glwidget.h | 2 +- examples/opengl/textures/main.cpp | 2 +- examples/opengl/textures/window.cpp | 2 +- examples/opengl/textures/window.h | 2 +- examples/openvg/star/main.cpp | 2 +- examples/openvg/star/starwidget.cpp | 2 +- examples/openvg/star/starwidget.h | 2 +- examples/painting/basicdrawing/main.cpp | 2 +- examples/painting/basicdrawing/renderarea.cpp | 2 +- examples/painting/basicdrawing/renderarea.h | 2 +- examples/painting/basicdrawing/window.cpp | 2 +- examples/painting/basicdrawing/window.h | 2 +- .../painting/concentriccircles/circlewidget.cpp | 2 +- examples/painting/concentriccircles/circlewidget.h | 2 +- examples/painting/concentriccircles/main.cpp | 2 +- examples/painting/concentriccircles/window.cpp | 2 +- examples/painting/concentriccircles/window.h | 2 +- examples/painting/fontsampler/main.cpp | 2 +- examples/painting/fontsampler/mainwindow.cpp | 2 +- examples/painting/fontsampler/mainwindow.h | 2 +- .../painting/imagecomposition/imagecomposer.cpp | 2 +- examples/painting/imagecomposition/imagecomposer.h | 2 +- examples/painting/imagecomposition/main.cpp | 2 +- examples/painting/painterpaths/main.cpp | 2 +- examples/painting/painterpaths/renderarea.cpp | 2 +- examples/painting/painterpaths/renderarea.h | 2 +- examples/painting/painterpaths/window.cpp | 2 +- examples/painting/painterpaths/window.h | 2 +- examples/painting/svggenerator/displaywidget.cpp | 2 +- examples/painting/svggenerator/displaywidget.h | 2 +- examples/painting/svggenerator/main.cpp | 2 +- examples/painting/svggenerator/window.cpp | 2 +- examples/painting/svggenerator/window.h | 2 +- examples/painting/svgviewer/main.cpp | 2 +- examples/painting/svgviewer/mainwindow.cpp | 2 +- examples/painting/svgviewer/mainwindow.h | 2 +- examples/painting/svgviewer/svgview.cpp | 2 +- examples/painting/svgviewer/svgview.h | 2 +- examples/painting/transformations/main.cpp | 2 +- examples/painting/transformations/renderarea.cpp | 2 +- examples/painting/transformations/renderarea.h | 2 +- examples/painting/transformations/window.cpp | 2 +- examples/painting/transformations/window.h | 2 +- examples/phonon/capabilities/main.cpp | 2 +- examples/phonon/capabilities/window.cpp | 2 +- examples/phonon/capabilities/window.h | 2 +- examples/phonon/qmusicplayer/main.cpp | 2 +- examples/phonon/qmusicplayer/mainwindow.cpp | 2 +- examples/phonon/qmusicplayer/mainwindow.h | 2 +- examples/qmake/precompile/main.cpp | 2 +- examples/qmake/precompile/mydialog.cpp | 2 +- examples/qmake/precompile/mydialog.h | 2 +- examples/qmake/precompile/myobject.cpp | 2 +- examples/qmake/precompile/myobject.h | 2 +- examples/qmake/precompile/stable.h | 2 +- examples/qmake/precompile/util.cpp | 2 +- examples/qmake/tutorial/hello.cpp | 2 +- examples/qmake/tutorial/hello.h | 2 +- examples/qmake/tutorial/hellounix.cpp | 2 +- examples/qmake/tutorial/hellowin.cpp | 2 +- examples/qmake/tutorial/main.cpp | 2 +- .../qtconcurrent/imagescaling/imagescaling.cpp | 2 +- examples/qtconcurrent/imagescaling/imagescaling.h | 2 +- examples/qtconcurrent/imagescaling/main.cpp | 2 +- examples/qtconcurrent/map/main.cpp | 2 +- examples/qtconcurrent/progressdialog/main.cpp | 2 +- examples/qtconcurrent/runfunction/main.cpp | 2 +- examples/qtconcurrent/wordcount/main.cpp | 2 +- examples/qtestlib/tutorial1/testqstring.cpp | 2 +- examples/qtestlib/tutorial2/testqstring.cpp | 2 +- examples/qtestlib/tutorial3/testgui.cpp | 2 +- examples/qtestlib/tutorial4/testgui.cpp | 2 +- examples/qtestlib/tutorial5/benchmarking.cpp | 2 +- examples/qtestlib/tutorial5/containers.cpp | 2 +- examples/qws/dbscreen/dbscreen.cpp | 2 +- examples/qws/dbscreen/dbscreen.h | 2 +- examples/qws/dbscreen/dbscreendriverplugin.cpp | 2 +- examples/qws/framebuffer/main.c | 2 +- examples/qws/mousecalibration/calibration.cpp | 2 +- examples/qws/mousecalibration/calibration.h | 2 +- examples/qws/mousecalibration/main.cpp | 2 +- examples/qws/mousecalibration/scribblewidget.cpp | 2 +- examples/qws/mousecalibration/scribblewidget.h | 2 +- examples/qws/simpledecoration/analogclock.cpp | 2 +- examples/qws/simpledecoration/analogclock.h | 2 +- examples/qws/simpledecoration/main.cpp | 2 +- examples/qws/simpledecoration/mydecoration.cpp | 2 +- examples/qws/simpledecoration/mydecoration.h | 2 +- examples/qws/svgalib/svgalibpaintdevice.cpp | 2 +- examples/qws/svgalib/svgalibpaintdevice.h | 2 +- examples/qws/svgalib/svgalibpaintengine.cpp | 2 +- examples/qws/svgalib/svgalibpaintengine.h | 2 +- examples/qws/svgalib/svgalibplugin.cpp | 2 +- examples/qws/svgalib/svgalibscreen.cpp | 2 +- examples/qws/svgalib/svgalibscreen.h | 2 +- examples/qws/svgalib/svgalibsurface.cpp | 2 +- examples/qws/svgalib/svgalibsurface.h | 2 +- examples/richtext/calendar/main.cpp | 2 +- examples/richtext/calendar/mainwindow.cpp | 2 +- examples/richtext/calendar/mainwindow.h | 2 +- examples/richtext/orderform/detailsdialog.cpp | 2 +- examples/richtext/orderform/detailsdialog.h | 2 +- examples/richtext/orderform/main.cpp | 2 +- examples/richtext/orderform/mainwindow.cpp | 2 +- examples/richtext/orderform/mainwindow.h | 2 +- .../richtext/syntaxhighlighter/highlighter.cpp | 2 +- examples/richtext/syntaxhighlighter/highlighter.h | 2 +- examples/richtext/syntaxhighlighter/main.cpp | 2 +- examples/richtext/syntaxhighlighter/mainwindow.cpp | 2 +- examples/richtext/syntaxhighlighter/mainwindow.h | 2 +- examples/richtext/textobject/main.cpp | 2 +- examples/richtext/textobject/svgtextobject.cpp | 2 +- examples/richtext/textobject/svgtextobject.h | 2 +- examples/richtext/textobject/window.cpp | 2 +- examples/richtext/textobject/window.h | 2 +- examples/script/calculator/main.cpp | 2 +- examples/script/context2d/context2d.cpp | 2 +- examples/script/context2d/context2d.h | 2 +- examples/script/context2d/domimage.cpp | 2 +- examples/script/context2d/domimage.h | 2 +- examples/script/context2d/environment.cpp | 2 +- examples/script/context2d/environment.h | 2 +- examples/script/context2d/main.cpp | 2 +- examples/script/context2d/qcontext2dcanvas.cpp | 2 +- examples/script/context2d/qcontext2dcanvas.h | 2 +- examples/script/context2d/window.cpp | 2 +- examples/script/context2d/window.h | 2 +- examples/script/customclass/bytearrayclass.cpp | 2 +- examples/script/customclass/bytearrayclass.h | 2 +- examples/script/customclass/bytearrayprototype.cpp | 2 +- examples/script/customclass/bytearrayprototype.h | 2 +- examples/script/customclass/main.cpp | 2 +- examples/script/defaultprototypes/main.cpp | 2 +- examples/script/defaultprototypes/prototypes.cpp | 2 +- examples/script/defaultprototypes/prototypes.h | 2 +- examples/script/helloscript/main.cpp | 2 +- examples/script/marshal/main.cpp | 2 +- examples/script/qscript/main.cpp | 2 +- examples/script/qsdbg/main.cpp | 2 +- examples/script/qsdbg/scriptbreakpointmanager.cpp | 2 +- examples/script/qsdbg/scriptbreakpointmanager.h | 2 +- examples/script/qsdbg/scriptdebugger.cpp | 2 +- examples/script/qsdbg/scriptdebugger.h | 2 +- examples/script/qstetrix/main.cpp | 2 +- examples/script/qstetrix/tetrixboard.cpp | 2 +- examples/script/qstetrix/tetrixboard.h | 2 +- examples/sql/cachedtable/main.cpp | 2 +- examples/sql/cachedtable/tableeditor.cpp | 2 +- examples/sql/cachedtable/tableeditor.h | 2 +- examples/sql/connection.h | 2 +- examples/sql/drilldown/imageitem.cpp | 2 +- examples/sql/drilldown/imageitem.h | 2 +- examples/sql/drilldown/informationwindow.cpp | 2 +- examples/sql/drilldown/informationwindow.h | 2 +- examples/sql/drilldown/main.cpp | 2 +- examples/sql/drilldown/view.cpp | 2 +- examples/sql/drilldown/view.h | 2 +- examples/sql/masterdetail/database.h | 2 +- examples/sql/masterdetail/dialog.cpp | 2 +- examples/sql/masterdetail/dialog.h | 2 +- examples/sql/masterdetail/main.cpp | 2 +- examples/sql/masterdetail/mainwindow.cpp | 2 +- examples/sql/masterdetail/mainwindow.h | 2 +- examples/sql/querymodel/customsqlmodel.cpp | 2 +- examples/sql/querymodel/customsqlmodel.h | 2 +- examples/sql/querymodel/editablesqlmodel.cpp | 2 +- examples/sql/querymodel/editablesqlmodel.h | 2 +- examples/sql/querymodel/main.cpp | 2 +- .../relationaltablemodel/relationaltablemodel.cpp | 2 +- examples/sql/sqlwidgetmapper/main.cpp | 2 +- examples/sql/sqlwidgetmapper/window.cpp | 2 +- examples/sql/sqlwidgetmapper/window.h | 2 +- examples/sql/tablemodel/tablemodel.cpp | 2 +- examples/statemachine/eventtransitions/main.cpp | 2 +- examples/statemachine/factorial/main.cpp | 2 +- examples/statemachine/pingpong/main.cpp | 2 +- examples/statemachine/rogue/main.cpp | 2 +- examples/statemachine/rogue/movementtransition.h | 2 +- examples/statemachine/rogue/window.cpp | 2 +- examples/statemachine/rogue/window.h | 2 +- examples/statemachine/trafficlight/main.cpp | 2 +- examples/statemachine/twowaybutton/main.cpp | 2 +- examples/threads/mandelbrot/main.cpp | 2 +- examples/threads/mandelbrot/mandelbrotwidget.cpp | 2 +- examples/threads/mandelbrot/mandelbrotwidget.h | 2 +- examples/threads/mandelbrot/renderthread.cpp | 2 +- examples/threads/mandelbrot/renderthread.h | 2 +- examples/threads/queuedcustomtype/block.cpp | 2 +- examples/threads/queuedcustomtype/block.h | 2 +- examples/threads/queuedcustomtype/main.cpp | 2 +- examples/threads/queuedcustomtype/renderthread.cpp | 2 +- examples/threads/queuedcustomtype/renderthread.h | 2 +- examples/threads/queuedcustomtype/window.cpp | 2 +- examples/threads/queuedcustomtype/window.h | 2 +- examples/threads/semaphores/semaphores.cpp | 2 +- examples/threads/waitconditions/waitconditions.cpp | 2 +- examples/tools/codecs/main.cpp | 2 +- examples/tools/codecs/mainwindow.cpp | 2 +- examples/tools/codecs/mainwindow.h | 2 +- examples/tools/codecs/previewform.cpp | 2 +- examples/tools/codecs/previewform.h | 2 +- examples/tools/completer/fsmodel.cpp | 2 +- examples/tools/completer/fsmodel.h | 2 +- examples/tools/completer/main.cpp | 2 +- examples/tools/completer/mainwindow.cpp | 2 +- examples/tools/completer/mainwindow.h | 2 +- examples/tools/contiguouscache/main.cpp | 2 +- examples/tools/contiguouscache/randomlistmodel.cpp | 2 +- examples/tools/contiguouscache/randomlistmodel.h | 2 +- examples/tools/customcompleter/main.cpp | 2 +- examples/tools/customcompleter/mainwindow.cpp | 2 +- examples/tools/customcompleter/mainwindow.h | 2 +- examples/tools/customcompleter/textedit.cpp | 2 +- examples/tools/customcompleter/textedit.h | 2 +- examples/tools/customtype/main.cpp | 2 +- examples/tools/customtype/message.cpp | 2 +- examples/tools/customtype/message.h | 2 +- examples/tools/customtypesending/main.cpp | 2 +- examples/tools/customtypesending/message.cpp | 2 +- examples/tools/customtypesending/message.h | 2 +- examples/tools/customtypesending/window.cpp | 2 +- examples/tools/customtypesending/window.h | 2 +- .../tools/echoplugin/echowindow/echointerface.h | 2 +- .../tools/echoplugin/echowindow/echowindow.cpp | 2 +- examples/tools/echoplugin/echowindow/echowindow.h | 2 +- examples/tools/echoplugin/echowindow/main.cpp | 2 +- examples/tools/echoplugin/plugin/echoplugin.cpp | 2 +- examples/tools/echoplugin/plugin/echoplugin.h | 2 +- examples/tools/i18n/languagechooser.cpp | 2 +- examples/tools/i18n/languagechooser.h | 2 +- examples/tools/i18n/main.cpp | 2 +- examples/tools/i18n/mainwindow.cpp | 2 +- examples/tools/i18n/mainwindow.h | 2 +- examples/tools/inputpanel/main.cpp | 2 +- examples/tools/inputpanel/myinputpanel.cpp | 2 +- examples/tools/inputpanel/myinputpanel.h | 2 +- examples/tools/inputpanel/myinputpanelcontext.cpp | 2 +- examples/tools/inputpanel/myinputpanelcontext.h | 2 +- examples/tools/plugandpaint/interfaces.h | 2 +- examples/tools/plugandpaint/main.cpp | 2 +- examples/tools/plugandpaint/mainwindow.cpp | 2 +- examples/tools/plugandpaint/mainwindow.h | 2 +- examples/tools/plugandpaint/paintarea.cpp | 2 +- examples/tools/plugandpaint/paintarea.h | 2 +- examples/tools/plugandpaint/plugindialog.cpp | 2 +- examples/tools/plugandpaint/plugindialog.h | 2 +- .../basictools/basictoolsplugin.cpp | 2 +- .../basictools/basictoolsplugin.h | 2 +- .../extrafilters/extrafiltersplugin.cpp | 2 +- .../extrafilters/extrafiltersplugin.h | 2 +- examples/tools/regexp/main.cpp | 2 +- examples/tools/regexp/regexpdialog.cpp | 2 +- examples/tools/regexp/regexpdialog.h | 2 +- examples/tools/settingseditor/locationdialog.cpp | 2 +- examples/tools/settingseditor/locationdialog.h | 2 +- examples/tools/settingseditor/main.cpp | 2 +- examples/tools/settingseditor/mainwindow.cpp | 2 +- examples/tools/settingseditor/mainwindow.h | 2 +- examples/tools/settingseditor/settingstree.cpp | 2 +- examples/tools/settingseditor/settingstree.h | 2 +- examples/tools/settingseditor/variantdelegate.cpp | 2 +- examples/tools/settingseditor/variantdelegate.h | 2 +- examples/tools/styleplugin/plugin/simplestyle.cpp | 2 +- examples/tools/styleplugin/plugin/simplestyle.h | 2 +- .../tools/styleplugin/plugin/simplestyleplugin.cpp | 2 +- .../tools/styleplugin/plugin/simplestyleplugin.h | 2 +- examples/tools/styleplugin/stylewindow/main.cpp | 2 +- .../tools/styleplugin/stylewindow/stylewindow.cpp | 2 +- .../tools/styleplugin/stylewindow/stylewindow.h | 2 +- examples/tools/treemodelcompleter/main.cpp | 2 +- examples/tools/treemodelcompleter/mainwindow.cpp | 2 +- examples/tools/treemodelcompleter/mainwindow.h | 2 +- .../treemodelcompleter/treemodelcompleter.cpp | 2 +- .../tools/treemodelcompleter/treemodelcompleter.h | 2 +- examples/tools/undoframework/commands.cpp | 2 +- examples/tools/undoframework/commands.h | 2 +- examples/tools/undoframework/diagramitem.cpp | 2 +- examples/tools/undoframework/diagramitem.h | 2 +- examples/tools/undoframework/diagramscene.cpp | 2 +- examples/tools/undoframework/diagramscene.h | 2 +- examples/tools/undoframework/main.cpp | 2 +- examples/tools/undoframework/mainwindow.cpp | 2 +- examples/tools/undoframework/mainwindow.h | 2 +- examples/touch/dials/main.cpp | 2 +- examples/touch/fingerpaint/main.cpp | 2 +- examples/touch/fingerpaint/mainwindow.cpp | 2 +- examples/touch/fingerpaint/mainwindow.h | 2 +- examples/touch/fingerpaint/scribblearea.cpp | 2 +- examples/touch/fingerpaint/scribblearea.h | 2 +- examples/touch/knobs/knob.cpp | 2 +- examples/touch/knobs/knob.h | 2 +- examples/touch/knobs/main.cpp | 2 +- examples/touch/pinchzoom/graphicsview.cpp | 2 +- examples/touch/pinchzoom/graphicsview.h | 2 +- examples/touch/pinchzoom/main.cpp | 2 +- examples/touch/pinchzoom/mouse.cpp | 2 +- examples/touch/pinchzoom/mouse.h | 2 +- .../tutorials/addressbook-fr/part1/addressbook.cpp | 2 +- .../tutorials/addressbook-fr/part1/addressbook.h | 2 +- examples/tutorials/addressbook-fr/part1/main.cpp | 2 +- .../tutorials/addressbook-fr/part2/addressbook.cpp | 2 +- .../tutorials/addressbook-fr/part2/addressbook.h | 2 +- examples/tutorials/addressbook-fr/part2/main.cpp | 2 +- .../tutorials/addressbook-fr/part3/addressbook.cpp | 2 +- .../tutorials/addressbook-fr/part3/addressbook.h | 2 +- examples/tutorials/addressbook-fr/part3/main.cpp | 2 +- .../tutorials/addressbook-fr/part4/addressbook.cpp | 2 +- .../tutorials/addressbook-fr/part4/addressbook.h | 2 +- examples/tutorials/addressbook-fr/part4/main.cpp | 2 +- .../tutorials/addressbook-fr/part5/addressbook.cpp | 2 +- .../tutorials/addressbook-fr/part5/addressbook.h | 2 +- .../tutorials/addressbook-fr/part5/finddialog.cpp | 2 +- .../tutorials/addressbook-fr/part5/finddialog.h | 2 +- examples/tutorials/addressbook-fr/part5/main.cpp | 2 +- .../tutorials/addressbook-fr/part6/addressbook.cpp | 2 +- .../tutorials/addressbook-fr/part6/addressbook.h | 2 +- .../tutorials/addressbook-fr/part6/finddialog.cpp | 2 +- .../tutorials/addressbook-fr/part6/finddialog.h | 2 +- examples/tutorials/addressbook-fr/part6/main.cpp | 2 +- .../tutorials/addressbook-fr/part7/addressbook.cpp | 2 +- .../tutorials/addressbook-fr/part7/addressbook.h | 2 +- .../tutorials/addressbook-fr/part7/finddialog.cpp | 2 +- .../tutorials/addressbook-fr/part7/finddialog.h | 2 +- examples/tutorials/addressbook-fr/part7/main.cpp | 2 +- .../tutorials/addressbook/part1/addressbook.cpp | 2 +- examples/tutorials/addressbook/part1/addressbook.h | 2 +- examples/tutorials/addressbook/part1/main.cpp | 2 +- .../tutorials/addressbook/part2/addressbook.cpp | 2 +- examples/tutorials/addressbook/part2/addressbook.h | 2 +- examples/tutorials/addressbook/part2/main.cpp | 2 +- .../tutorials/addressbook/part3/addressbook.cpp | 2 +- examples/tutorials/addressbook/part3/addressbook.h | 2 +- examples/tutorials/addressbook/part3/main.cpp | 2 +- .../tutorials/addressbook/part4/addressbook.cpp | 2 +- examples/tutorials/addressbook/part4/addressbook.h | 2 +- examples/tutorials/addressbook/part4/main.cpp | 2 +- .../tutorials/addressbook/part5/addressbook.cpp | 2 +- examples/tutorials/addressbook/part5/addressbook.h | 2 +- .../tutorials/addressbook/part5/finddialog.cpp | 2 +- examples/tutorials/addressbook/part5/finddialog.h | 2 +- examples/tutorials/addressbook/part5/main.cpp | 2 +- .../tutorials/addressbook/part6/addressbook.cpp | 2 +- examples/tutorials/addressbook/part6/addressbook.h | 2 +- .../tutorials/addressbook/part6/finddialog.cpp | 2 +- examples/tutorials/addressbook/part6/finddialog.h | 2 +- examples/tutorials/addressbook/part6/main.cpp | 2 +- .../tutorials/addressbook/part7/addressbook.cpp | 2 +- examples/tutorials/addressbook/part7/addressbook.h | 2 +- .../tutorials/addressbook/part7/finddialog.cpp | 2 +- examples/tutorials/addressbook/part7/finddialog.h | 2 +- examples/tutorials/addressbook/part7/main.cpp | 2 +- .../tutorials/gettingStarted/gsQml/core/button.qml | 2 +- .../gettingStarted/gsQml/core/editMenu.qml | 2 +- .../gettingStarted/gsQml/core/fileDialog.qml | 2 +- .../gettingStarted/gsQml/core/fileMenu.qml | 2 +- .../gettingStarted/gsQml/core/menuBar.qml | 2 +- .../tutorials/gettingStarted/gsQml/core/qmldir | 2 +- .../gettingStarted/gsQml/core/textArea.qml | 2 +- .../gsQml/filedialog/dialogPlugin.cpp | 2 +- .../gettingStarted/gsQml/filedialog/dialogPlugin.h | 2 +- .../gettingStarted/gsQml/filedialog/directory.cpp | 2 +- .../gettingStarted/gsQml/filedialog/directory.h | 2 +- .../gettingStarted/gsQml/filedialog/file.cpp | 2 +- .../gettingStarted/gsQml/filedialog/file.h | 2 +- .../gettingStarted/gsQml/parts/part0/Button.qml | 2 +- .../gettingStarted/gsQml/parts/part1/Button.qml | 2 +- .../gettingStarted/gsQml/parts/part1/EditMenu.qml | 2 +- .../gettingStarted/gsQml/parts/part1/FileMenu.qml | 2 +- .../gsQml/parts/part1/SimpleButton.qml | 2 +- .../gettingStarted/gsQml/parts/part2/Button.qml | 2 +- .../gettingStarted/gsQml/parts/part2/EditMenu.qml | 2 +- .../gettingStarted/gsQml/parts/part2/FileMenu.qml | 2 +- .../gettingStarted/gsQml/parts/part2/MenuBar.qml | 2 +- .../gettingStarted/gsQml/parts/part3/Button.qml | 2 +- .../gettingStarted/gsQml/parts/part3/EditMenu.qml | 2 +- .../gettingStarted/gsQml/parts/part3/FileMenu.qml | 2 +- .../gettingStarted/gsQml/parts/part3/MenuBar.qml | 2 +- .../gettingStarted/gsQml/parts/part3/TextArea.qml | 2 +- .../gsQml/parts/part3/TextEditor.qml | 2 +- .../gettingStarted/gsQml/parts/part4/Button.qml | 2 +- .../gettingStarted/gsQml/parts/part4/EditMenu.qml | 2 +- .../gettingStarted/gsQml/parts/part4/FileMenu.qml | 2 +- .../gettingStarted/gsQml/parts/part4/MenuBar.qml | 2 +- .../gsQml/parts/part4/SimpleButton.qml | 2 +- .../gettingStarted/gsQml/parts/part4/TextArea.qml | 2 +- .../gsQml/parts/part4/TextEditor.qml | 2 +- .../gsQml/parts/part5/TextEditor.qml | 2 +- .../gsQml/parts/part5/core/Button.qml | 2 +- .../gsQml/parts/part5/core/EditMenu.qml | 2 +- .../gsQml/parts/part5/core/FileDialog.qml | 2 +- .../gsQml/parts/part5/core/FileMenu.qml | 2 +- .../gsQml/parts/part5/core/MenuBar.qml | 2 +- .../gsQml/parts/part5/core/TextArea.qml | 2 +- .../gsQml/parts/part5/filedialog/dialogPlugin.cpp | 2 +- .../gsQml/parts/part5/filedialog/dialogPlugin.h | 2 +- .../gsQml/parts/part5/filedialog/directory.cpp | 2 +- .../gsQml/parts/part5/filedialog/directory.h | 2 +- .../gsQml/parts/part5/filedialog/file.cpp | 2 +- .../gsQml/parts/part5/filedialog/file.h | 2 +- .../tutorials/gettingStarted/gsQml/texteditor.qml | 2 +- examples/tutorials/modelview/1_readonly/main.cpp | 2 +- .../tutorials/modelview/1_readonly/mymodel.cpp | 2 +- examples/tutorials/modelview/1_readonly/mymodel.h | 2 +- examples/tutorials/modelview/2_formatting/main.cpp | 2 +- .../tutorials/modelview/2_formatting/mymodel.cpp | 2 +- .../tutorials/modelview/2_formatting/mymodel.h | 2 +- .../tutorials/modelview/3_changingmodel/main.cpp | 2 +- .../modelview/3_changingmodel/mymodel.cpp | 2 +- .../tutorials/modelview/3_changingmodel/mymodel.h | 2 +- examples/tutorials/modelview/4_headers/main.cpp | 2 +- examples/tutorials/modelview/4_headers/mymodel.cpp | 2 +- examples/tutorials/modelview/4_headers/mymodel.h | 2 +- examples/tutorials/modelview/5_edit/main.cpp | 2 +- examples/tutorials/modelview/5_edit/mainwindow.cpp | 2 +- examples/tutorials/modelview/5_edit/mainwindow.h | 2 +- examples/tutorials/modelview/5_edit/mymodel.cpp | 2 +- examples/tutorials/modelview/5_edit/mymodel.h | 2 +- examples/tutorials/modelview/6_treeview/main.cpp | 2 +- .../tutorials/modelview/6_treeview/mainwindow.cpp | 2 +- .../tutorials/modelview/6_treeview/mainwindow.h | 2 +- examples/tutorials/modelview/7_selections/main.cpp | 2 +- .../modelview/7_selections/mainwindow.cpp | 2 +- .../tutorials/modelview/7_selections/mainwindow.h | 2 +- examples/tutorials/widgets/childwidget/main.cpp | 2 +- examples/tutorials/widgets/nestedlayouts/main.cpp | 2 +- examples/tutorials/widgets/toplevel/main.cpp | 2 +- examples/tutorials/widgets/windowlayout/main.cpp | 2 +- .../uitools/multipleinheritance/calculatorform.cpp | 2 +- .../uitools/multipleinheritance/calculatorform.h | 2 +- examples/uitools/multipleinheritance/main.cpp | 2 +- examples/uitools/textfinder/main.cpp | 2 +- examples/uitools/textfinder/textfinder.cpp | 2 +- examples/uitools/textfinder/textfinder.h | 2 +- examples/webkit/domtraversal/main.cpp | 2 +- examples/webkit/domtraversal/window.cpp | 2 +- examples/webkit/domtraversal/window.h | 2 +- examples/webkit/fancybrowser/main.cpp | 2 +- examples/webkit/fancybrowser/mainwindow.cpp | 2 +- examples/webkit/fancybrowser/mainwindow.h | 2 +- examples/webkit/formextractor/formextractor.cpp | 2 +- examples/webkit/formextractor/formextractor.h | 2 +- examples/webkit/formextractor/main.cpp | 2 +- examples/webkit/formextractor/mainwindow.cpp | 2 +- examples/webkit/formextractor/mainwindow.h | 2 +- examples/webkit/framecapture/framecapture.cpp | 2 +- examples/webkit/framecapture/framecapture.h | 2 +- examples/webkit/framecapture/main.cpp | 2 +- examples/webkit/googlechat/googlechat.cpp | 2 +- examples/webkit/googlechat/googlechat.h | 2 +- examples/webkit/googlechat/main.cpp | 2 +- examples/webkit/imageanalyzer/imageanalyzer.cpp | 2 +- examples/webkit/imageanalyzer/imageanalyzer.h | 2 +- examples/webkit/imageanalyzer/main.cpp | 2 +- examples/webkit/imageanalyzer/mainwindow.cpp | 2 +- examples/webkit/imageanalyzer/mainwindow.h | 2 +- examples/webkit/previewer/main.cpp | 2 +- examples/webkit/previewer/mainwindow.cpp | 2 +- examples/webkit/previewer/mainwindow.h | 2 +- examples/webkit/previewer/previewer.cpp | 2 +- examples/webkit/previewer/previewer.h | 2 +- examples/webkit/simpleselector/main.cpp | 2 +- examples/webkit/simpleselector/window.cpp | 2 +- examples/webkit/simpleselector/window.h | 2 +- examples/widgets/analogclock/analogclock.cpp | 2 +- examples/widgets/analogclock/analogclock.h | 2 +- examples/widgets/analogclock/main.cpp | 2 +- examples/widgets/calculator/button.cpp | 2 +- examples/widgets/calculator/button.h | 2 +- examples/widgets/calculator/calculator.cpp | 2 +- examples/widgets/calculator/calculator.h | 2 +- examples/widgets/calculator/main.cpp | 2 +- examples/widgets/calendarwidget/main.cpp | 2 +- examples/widgets/calendarwidget/window.cpp | 2 +- examples/widgets/calendarwidget/window.h | 2 +- examples/widgets/charactermap/characterwidget.cpp | 2 +- examples/widgets/charactermap/characterwidget.h | 2 +- examples/widgets/charactermap/main.cpp | 2 +- examples/widgets/charactermap/mainwindow.cpp | 2 +- examples/widgets/charactermap/mainwindow.h | 2 +- examples/widgets/codeeditor/codeeditor.cpp | 2 +- examples/widgets/codeeditor/codeeditor.h | 2 +- examples/widgets/codeeditor/main.cpp | 2 +- examples/widgets/digitalclock/digitalclock.cpp | 2 +- examples/widgets/digitalclock/digitalclock.h | 2 +- examples/widgets/digitalclock/main.cpp | 2 +- examples/widgets/groupbox/main.cpp | 2 +- examples/widgets/groupbox/window.cpp | 2 +- examples/widgets/groupbox/window.h | 2 +- examples/widgets/icons/iconpreviewarea.cpp | 2 +- examples/widgets/icons/iconpreviewarea.h | 2 +- examples/widgets/icons/iconsizespinbox.cpp | 2 +- examples/widgets/icons/iconsizespinbox.h | 2 +- examples/widgets/icons/imagedelegate.cpp | 2 +- examples/widgets/icons/imagedelegate.h | 2 +- examples/widgets/icons/main.cpp | 2 +- examples/widgets/icons/mainwindow.cpp | 2 +- examples/widgets/icons/mainwindow.h | 2 +- examples/widgets/imageviewer/imageviewer.cpp | 2 +- examples/widgets/imageviewer/imageviewer.h | 2 +- examples/widgets/imageviewer/main.cpp | 2 +- examples/widgets/lineedits/main.cpp | 2 +- examples/widgets/lineedits/window.cpp | 2 +- examples/widgets/lineedits/window.h | 2 +- examples/widgets/movie/main.cpp | 2 +- examples/widgets/movie/movieplayer.cpp | 2 +- examples/widgets/movie/movieplayer.h | 2 +- examples/widgets/scribble/main.cpp | 2 +- examples/widgets/scribble/mainwindow.cpp | 2 +- examples/widgets/scribble/mainwindow.h | 2 +- examples/widgets/scribble/scribblearea.cpp | 2 +- examples/widgets/scribble/scribblearea.h | 2 +- examples/widgets/shapedclock/main.cpp | 2 +- examples/widgets/shapedclock/shapedclock.cpp | 2 +- examples/widgets/shapedclock/shapedclock.h | 2 +- examples/widgets/sliders/main.cpp | 2 +- examples/widgets/sliders/slidersgroup.cpp | 2 +- examples/widgets/sliders/slidersgroup.h | 2 +- examples/widgets/sliders/window.cpp | 2 +- examples/widgets/sliders/window.h | 2 +- examples/widgets/softkeys/main.cpp | 2 +- examples/widgets/softkeys/softkeys.cpp | 2 +- examples/widgets/softkeys/softkeys.h | 2 +- examples/widgets/spinboxes/main.cpp | 2 +- examples/widgets/spinboxes/window.cpp | 2 +- examples/widgets/spinboxes/window.h | 2 +- examples/widgets/styles/main.cpp | 2 +- examples/widgets/styles/norwegianwoodstyle.cpp | 2 +- examples/widgets/styles/norwegianwoodstyle.h | 2 +- examples/widgets/styles/widgetgallery.cpp | 2 +- examples/widgets/styles/widgetgallery.h | 2 +- examples/widgets/stylesheet/main.cpp | 2 +- examples/widgets/stylesheet/mainwindow.cpp | 2 +- examples/widgets/stylesheet/mainwindow.h | 2 +- examples/widgets/stylesheet/stylesheeteditor.cpp | 2 +- examples/widgets/stylesheet/stylesheeteditor.h | 2 +- examples/widgets/tablet/main.cpp | 2 +- examples/widgets/tablet/mainwindow.cpp | 2 +- examples/widgets/tablet/mainwindow.h | 2 +- examples/widgets/tablet/tabletapplication.cpp | 2 +- examples/widgets/tablet/tabletapplication.h | 2 +- examples/widgets/tablet/tabletcanvas.cpp | 2 +- examples/widgets/tablet/tabletcanvas.h | 2 +- examples/widgets/tetrix/main.cpp | 2 +- examples/widgets/tetrix/tetrixboard.cpp | 2 +- examples/widgets/tetrix/tetrixboard.h | 2 +- examples/widgets/tetrix/tetrixpiece.cpp | 2 +- examples/widgets/tetrix/tetrixpiece.h | 2 +- examples/widgets/tetrix/tetrixwindow.cpp | 2 +- examples/widgets/tetrix/tetrixwindow.h | 2 +- examples/widgets/tooltips/main.cpp | 2 +- examples/widgets/tooltips/shapeitem.cpp | 2 +- examples/widgets/tooltips/shapeitem.h | 2 +- examples/widgets/tooltips/sortingbox.cpp | 2 +- examples/widgets/tooltips/sortingbox.h | 2 +- examples/widgets/validators/ledwidget.cpp | 2 +- examples/widgets/validators/ledwidget.h | 2 +- examples/widgets/validators/localeselector.cpp | 2 +- examples/widgets/validators/localeselector.h | 2 +- examples/widgets/validators/main.cpp | 2 +- examples/widgets/wiggly/dialog.cpp | 2 +- examples/widgets/wiggly/dialog.h | 2 +- examples/widgets/wiggly/main.cpp | 2 +- examples/widgets/wiggly/wigglywidget.cpp | 2 +- examples/widgets/wiggly/wigglywidget.h | 2 +- examples/widgets/windowflags/controllerwindow.cpp | 2 +- examples/widgets/windowflags/controllerwindow.h | 2 +- examples/widgets/windowflags/main.cpp | 2 +- examples/widgets/windowflags/previewwindow.cpp | 2 +- examples/widgets/windowflags/previewwindow.h | 2 +- examples/xml/dombookmarks/main.cpp | 2 +- examples/xml/dombookmarks/mainwindow.cpp | 2 +- examples/xml/dombookmarks/mainwindow.h | 2 +- examples/xml/dombookmarks/xbeltree.cpp | 2 +- examples/xml/dombookmarks/xbeltree.h | 2 +- examples/xml/htmlinfo/main.cpp | 2 +- examples/xml/rsslisting/main.cpp | 2 +- examples/xml/rsslisting/rsslisting.cpp | 2 +- examples/xml/rsslisting/rsslisting.h | 2 +- examples/xml/saxbookmarks/main.cpp | 2 +- examples/xml/saxbookmarks/mainwindow.cpp | 2 +- examples/xml/saxbookmarks/mainwindow.h | 2 +- examples/xml/saxbookmarks/xbelgenerator.cpp | 2 +- examples/xml/saxbookmarks/xbelgenerator.h | 2 +- examples/xml/saxbookmarks/xbelhandler.cpp | 2 +- examples/xml/saxbookmarks/xbelhandler.h | 2 +- examples/xml/streambookmarks/main.cpp | 2 +- examples/xml/streambookmarks/mainwindow.cpp | 2 +- examples/xml/streambookmarks/mainwindow.h | 2 +- examples/xml/streambookmarks/xbelreader.cpp | 2 +- examples/xml/streambookmarks/xbelreader.h | 2 +- examples/xml/streambookmarks/xbelwriter.cpp | 2 +- examples/xml/streambookmarks/xbelwriter.h | 2 +- examples/xml/xmlstreamlint/main.cpp | 2 +- examples/xmlpatterns/filetree/filetree.cpp | 2 +- examples/xmlpatterns/filetree/filetree.h | 2 +- examples/xmlpatterns/filetree/main.cpp | 2 +- examples/xmlpatterns/filetree/mainwindow.cpp | 2 +- examples/xmlpatterns/filetree/mainwindow.h | 2 +- examples/xmlpatterns/qobjectxmlmodel/main.cpp | 2 +- .../xmlpatterns/qobjectxmlmodel/mainwindow.cpp | 2 +- examples/xmlpatterns/qobjectxmlmodel/mainwindow.h | 2 +- .../qobjectxmlmodel/qobjectxmlmodel.cpp | 2 +- .../xmlpatterns/qobjectxmlmodel/qobjectxmlmodel.h | 2 +- examples/xmlpatterns/recipes/main.cpp | 2 +- examples/xmlpatterns/recipes/querymainwindow.cpp | 2 +- examples/xmlpatterns/recipes/querymainwindow.h | 2 +- examples/xmlpatterns/schema/main.cpp | 2 +- examples/xmlpatterns/schema/mainwindow.cpp | 2 +- examples/xmlpatterns/schema/mainwindow.h | 2 +- .../xmlpatterns/shared/xmlsyntaxhighlighter.cpp | 2 +- examples/xmlpatterns/shared/xmlsyntaxhighlighter.h | 2 +- examples/xmlpatterns/trafficinfo/main.cpp | 2 +- examples/xmlpatterns/trafficinfo/mainwindow.cpp | 2 +- examples/xmlpatterns/trafficinfo/mainwindow.h | 2 +- examples/xmlpatterns/trafficinfo/stationdialog.cpp | 2 +- examples/xmlpatterns/trafficinfo/stationdialog.h | 2 +- examples/xmlpatterns/trafficinfo/stationquery.cpp | 2 +- examples/xmlpatterns/trafficinfo/stationquery.h | 2 +- examples/xmlpatterns/trafficinfo/timequery.cpp | 2 +- examples/xmlpatterns/trafficinfo/timequery.h | 2 +- .../xmlpatterns/xquery/globalVariables/globals.cpp | 2 +- header.BSD | 2 +- header.FDL | 2 +- header.LGPL | 2 +- header.LGPL-ONLY | 2 +- mkspecs/aix-g++-64/qplatformdefs.h | 2 +- mkspecs/aix-g++/qplatformdefs.h | 2 +- mkspecs/aix-xlc-64/qplatformdefs.h | 2 +- mkspecs/aix-xlc/qplatformdefs.h | 2 +- mkspecs/common/aix/qplatformdefs.h | 2 +- mkspecs/common/c89/qplatformdefs.h | 2 +- mkspecs/common/posix/qplatformdefs.h | 2 +- .../common/symbian/appCaptionForTranslation.cpp | 2 +- .../common/symbian/packageNameForTranslation.cpp | 2 +- mkspecs/common/symbian/qplatformdefs.h | 2 +- mkspecs/common/wince/qplatformdefs.h | 2 +- mkspecs/cygwin-g++/qplatformdefs.h | 2 +- mkspecs/darwin-g++/qplatformdefs.h | 2 +- mkspecs/freebsd-g++/qplatformdefs.h | 2 +- mkspecs/freebsd-g++34/qplatformdefs.h | 2 +- mkspecs/freebsd-g++40/qplatformdefs.h | 2 +- mkspecs/freebsd-icc/qplatformdefs.h | 2 +- mkspecs/hpux-acc-64/qplatformdefs.h | 2 +- mkspecs/hpux-acc-o64/qplatformdefs.h | 2 +- mkspecs/hpux-acc/qplatformdefs.h | 2 +- mkspecs/hpux-g++-64/qplatformdefs.h | 2 +- mkspecs/hpux-g++/qplatformdefs.h | 2 +- mkspecs/hpuxi-acc-32/qplatformdefs.h | 2 +- mkspecs/hpuxi-acc-64/qplatformdefs.h | 2 +- mkspecs/hpuxi-g++-64/qplatformdefs.h | 2 +- mkspecs/hurd-g++/qplatformdefs.h | 2 +- mkspecs/irix-cc-64/qplatformdefs.h | 2 +- mkspecs/irix-cc/qplatformdefs.h | 2 +- mkspecs/irix-g++-64/qplatformdefs.h | 2 +- mkspecs/irix-g++/qplatformdefs.h | 2 +- mkspecs/linux-cxx/qplatformdefs.h | 2 +- mkspecs/linux-ecc-64/qplatformdefs.h | 2 +- mkspecs/linux-g++-32/qplatformdefs.h | 2 +- mkspecs/linux-g++-64/qplatformdefs.h | 2 +- mkspecs/linux-g++-maemo/qplatformdefs.h | 2 +- mkspecs/linux-g++/qplatformdefs.h | 2 +- mkspecs/linux-icc-32/qplatformdefs.h | 2 +- mkspecs/linux-icc-64/qplatformdefs.h | 2 +- mkspecs/linux-icc/qplatformdefs.h | 2 +- mkspecs/linux-kcc/qplatformdefs.h | 2 +- mkspecs/linux-llvm/qplatformdefs.h | 2 +- mkspecs/linux-lsb-g++/qplatformdefs.h | 2 +- mkspecs/linux-pgcc/qplatformdefs.h | 2 +- mkspecs/lynxos-g++/qplatformdefs.h | 2 +- mkspecs/macx-g++/qplatformdefs.h | 2 +- mkspecs/macx-g++40/qplatformdefs.h | 2 +- mkspecs/macx-g++42/qplatformdefs.h | 2 +- mkspecs/macx-icc/qplatformdefs.h | 2 +- mkspecs/macx-llvm/qplatformdefs.h | 2 +- mkspecs/macx-pbuilder/qplatformdefs.h | 2 +- mkspecs/macx-xcode/qplatformdefs.h | 2 +- mkspecs/macx-xlc/qplatformdefs.h | 2 +- mkspecs/netbsd-g++/qplatformdefs.h | 2 +- mkspecs/openbsd-g++/qplatformdefs.h | 2 +- mkspecs/qws/freebsd-generic-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-arm-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-arm-gnueabi-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-armv6-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-avr32-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-cellon-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-dm7000-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-dm800-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-generic-g++-32/qplatformdefs.h | 2 +- mkspecs/qws/linux-generic-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-ipaq-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-lsb-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-mips-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-powerpc-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-sh-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-sh4al-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-sharp-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-x86-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-x86_64-g++/qplatformdefs.h | 2 +- mkspecs/qws/linux-zylonite-g++/qplatformdefs.h | 2 +- mkspecs/qws/macx-generic-g++/qplatformdefs.h | 2 +- mkspecs/qws/solaris-generic-g++/qplatformdefs.h | 2 +- mkspecs/sco-cc/qplatformdefs.h | 2 +- mkspecs/sco-g++/qplatformdefs.h | 2 +- mkspecs/solaris-cc-64-stlport/qplatformdefs.h | 2 +- mkspecs/solaris-cc-64/qplatformdefs.h | 2 +- mkspecs/solaris-cc-stlport/qplatformdefs.h | 2 +- mkspecs/solaris-cc/qplatformdefs.h | 2 +- mkspecs/solaris-g++-64/qplatformdefs.h | 2 +- mkspecs/solaris-g++/qplatformdefs.h | 2 +- mkspecs/symbian-abld/qplatformdefs.h | 2 +- .../flm/qt/qmake_emulator_deployment.flm | 2 +- .../flm/qt/qmake_extra_pre_targetdep.flm | 2 +- mkspecs/symbian-sbsv2/flm/qt/qmake_post_link.flm | 2 +- mkspecs/symbian-sbsv2/flm/qt/qmake_store_build.flm | 2 +- mkspecs/symbian-sbsv2/flm/qt/qt.xml | 2 +- mkspecs/symbian-sbsv2/qplatformdefs.h | 2 +- mkspecs/symbian/linux-armcc/qplatformdefs.h | 2 +- mkspecs/symbian/linux-gcce/qplatformdefs.h | 2 +- mkspecs/tru64-cxx/qplatformdefs.h | 2 +- mkspecs/tru64-g++/qplatformdefs.h | 2 +- mkspecs/unixware-cc/qplatformdefs.h | 2 +- mkspecs/unixware-g++/qplatformdefs.h | 2 +- mkspecs/unsupported/linux-host-g++/qplatformdefs.h | 2 +- .../linux-scratchbox2-g++/qplatformdefs.h | 2 +- mkspecs/unsupported/qnx-g++/qplatformdefs.h | 2 +- mkspecs/unsupported/qws/qnx-641/qplatformdefs.h | 2 +- .../qws/qnx-generic-g++/qplatformdefs.h | 2 +- .../unsupported/qws/qnx-i386-g++/qplatformdefs.h | 2 +- .../unsupported/qws/qnx-ppc-g++/qplatformdefs.h | 2 +- .../unsupported/vxworks-ppc-dcc/qplatformdefs.h | 2 +- .../unsupported/vxworks-ppc-g++/qplatformdefs.h | 2 +- .../vxworks-simpentium-dcc/qplatformdefs.h | 2 +- .../vxworks-simpentium-g++/qplatformdefs.h | 2 +- .../unsupported/win32-g++-cross/qplatformdefs.h | 2 +- mkspecs/win32-borland/qplatformdefs.h | 2 +- mkspecs/win32-g++/qplatformdefs.h | 2 +- mkspecs/win32-icc/qplatformdefs.h | 2 +- mkspecs/win32-msvc2003/qplatformdefs.h | 2 +- mkspecs/win32-msvc2005/qplatformdefs.h | 2 +- mkspecs/win32-msvc2008/qplatformdefs.h | 2 +- mkspecs/win32-msvc2010/qplatformdefs.h | 2 +- .../qplatformdefs.h | 2 +- .../qplatformdefs.h | 2 +- .../qplatformdefs.h | 2 +- .../qplatformdefs.h | 2 +- .../qplatformdefs.h | 2 +- .../qplatformdefs.h | 2 +- .../wince50standard-sh4-msvc2005/qplatformdefs.h | 2 +- .../wince50standard-sh4-msvc2008/qplatformdefs.h | 2 +- .../wince50standard-x86-msvc2005/qplatformdefs.h | 2 +- .../wince50standard-x86-msvc2008/qplatformdefs.h | 2 +- .../qplatformdefs.h | 2 +- .../wince60standard-x86-msvc2005/qplatformdefs.h | 2 +- mkspecs/wincewm50pocket-msvc2005/qplatformdefs.h | 2 +- mkspecs/wincewm50pocket-msvc2008/qplatformdefs.h | 2 +- mkspecs/wincewm50smart-msvc2005/qplatformdefs.h | 2 +- mkspecs/wincewm50smart-msvc2008/qplatformdefs.h | 2 +- .../wincewm60professional-msvc2005/qplatformdefs.h | 2 +- .../wincewm60professional-msvc2008/qplatformdefs.h | 2 +- mkspecs/wincewm60standard-msvc2005/qplatformdefs.h | 2 +- mkspecs/wincewm60standard-msvc2008/qplatformdefs.h | 2 +- .../wincewm65professional-msvc2005/qplatformdefs.h | 2 +- .../wincewm65professional-msvc2008/qplatformdefs.h | 2 +- qmake/cachekeys.h | 2 +- qmake/generators/mac/pbuilder_pbx.cpp | 2 +- qmake/generators/mac/pbuilder_pbx.h | 2 +- qmake/generators/makefile.cpp | 2 +- qmake/generators/makefile.h | 2 +- qmake/generators/makefiledeps.cpp | 2 +- qmake/generators/makefiledeps.h | 2 +- qmake/generators/metamakefile.cpp | 2 +- qmake/generators/metamakefile.h | 2 +- qmake/generators/projectgenerator.cpp | 2 +- qmake/generators/projectgenerator.h | 2 +- .../symbian/initprojectdeploy_symbian.cpp | 2 +- .../generators/symbian/initprojectdeploy_symbian.h | 2 +- qmake/generators/symbian/symbian_makefile.h | 2 +- qmake/generators/symbian/symbiancommon.cpp | 2 +- qmake/generators/symbian/symbiancommon.h | 2 +- qmake/generators/symbian/symmake.cpp | 2 +- qmake/generators/symbian/symmake.h | 2 +- qmake/generators/symbian/symmake_abld.cpp | 2 +- qmake/generators/symbian/symmake_abld.h | 2 +- qmake/generators/symbian/symmake_sbsv2.cpp | 2 +- qmake/generators/symbian/symmake_sbsv2.h | 2 +- qmake/generators/unix/unixmake.cpp | 2 +- qmake/generators/unix/unixmake.h | 2 +- qmake/generators/unix/unixmake2.cpp | 2 +- qmake/generators/win32/borland_bmake.cpp | 2 +- qmake/generators/win32/borland_bmake.h | 2 +- qmake/generators/win32/mingw_make.cpp | 2 +- qmake/generators/win32/mingw_make.h | 2 +- qmake/generators/win32/msbuild_objectmodel.cpp | 2 +- qmake/generators/win32/msbuild_objectmodel.h | 2 +- qmake/generators/win32/msvc_nmake.cpp | 2 +- qmake/generators/win32/msvc_nmake.h | 2 +- qmake/generators/win32/msvc_objectmodel.cpp | 2 +- qmake/generators/win32/msvc_objectmodel.h | 2 +- qmake/generators/win32/msvc_vcproj.cpp | 2 +- qmake/generators/win32/msvc_vcproj.h | 2 +- qmake/generators/win32/msvc_vcxproj.cpp | 2 +- qmake/generators/win32/msvc_vcxproj.h | 2 +- qmake/generators/win32/winmakefile.cpp | 2 +- qmake/generators/win32/winmakefile.h | 2 +- qmake/generators/xmloutput.cpp | 2 +- qmake/generators/xmloutput.h | 2 +- qmake/main.cpp | 2 +- qmake/meta.cpp | 2 +- qmake/meta.h | 2 +- qmake/option.cpp | 2 +- qmake/option.h | 2 +- qmake/project.cpp | 2 +- qmake/project.h | 2 +- qmake/property.cpp | 2 +- qmake/property.h | 2 +- qmake/qmake_pch.h | 2 +- src/3rdparty/harfbuzz/src/harfbuzz-greek.c | 2 +- .../wtf/symbian/RegisterFileAllocatorSymbian.cpp | 2 +- .../wtf/symbian/RegisterFileAllocatorSymbian.h | 2 +- .../JavaScriptCore/wtf/symbian/SymbianDefines.h | 2 +- src/3rdparty/s60/eiksoftkeyimage.h | 2 +- .../wtf/symbian/BlockAllocatorSymbian.cpp | 2 +- .../wtf/symbian/BlockAllocatorSymbian.h | 2 +- .../wtf/symbian/RegisterFileAllocatorSymbian.cpp | 2 +- .../wtf/symbian/RegisterFileAllocatorSymbian.h | 2 +- .../JavaScriptCore/wtf/symbian/SymbianDefines.h | 2 +- src/3rdparty/webkit/WebCore/css/StyleMedia.h | 2 +- src/3rdparty/webkit/WebCore/css/StyleMedia.idl | 2 +- src/3rdparty/webkit/WebCore/css/themeQtMaemo5.css | 2 +- .../webkit/WebCore/css/themeQtNoListboxes.css | 2 +- src/3rdparty/webkit/WebCore/dom/CustomEvent.cpp | 2 +- src/3rdparty/webkit/WebCore/dom/CustomEvent.h | 2 +- src/3rdparty/webkit/WebCore/dom/CustomEvent.idl | 2 +- src/3rdparty/webkit/WebCore/dom/SelectElement.h | 2 +- .../webkit/WebCore/html/HTMLProgressElement.cpp | 2 +- .../webkit/WebCore/html/HTMLProgressElement.h | 2 +- .../webkit/WebCore/html/HTMLProgressElement.idl | 2 +- .../webkit/WebCore/html/HTMLSelectElement.cpp | 2 +- .../webkit/WebCore/html/HTMLSelectElement.h | 2 +- .../webkit/WebCore/platform/PopupMenuClient.h | 2 +- .../WebCore/platform/graphics/IntPointHash.h | 2 +- .../webkit/WebCore/platform/graphics/Tile.h | 2 +- .../platform/graphics/TiledBackingStore.cpp | 2 +- .../WebCore/platform/graphics/TiledBackingStore.h | 2 +- .../platform/graphics/TiledBackingStoreClient.h | 2 +- .../platform/graphics/qt/MediaPlayerPrivateQt.cpp | 2 +- .../platform/graphics/qt/MediaPlayerPrivateQt.h | 2 +- .../webkit/WebCore/platform/graphics/qt/TileQt.cpp | 2 +- .../webkit/WebCore/platform/qt/Maemo5Webstyle.cpp | 2 +- .../webkit/WebCore/platform/qt/Maemo5Webstyle.h | 2 +- .../WebCore/platform/qt/QtStyleOptionWebComboBox.h | 2 +- .../webkit/WebCore/rendering/RenderMenuList.cpp | 2 +- .../webkit/WebCore/rendering/RenderMenuList.h | 2 +- .../webkit/WebCore/rendering/RenderProgress.cpp | 2 +- .../WebKit/qt/WebCoreSupport/QtMaemoWebPopup.cpp | 2 +- .../WebKit/qt/WebCoreSupport/QtMaemoWebPopup.h | 2 +- src/activeqt/container/qaxbase.cpp | 2 +- src/activeqt/container/qaxbase.h | 2 +- src/activeqt/container/qaxdump.cpp | 2 +- src/activeqt/container/qaxobject.cpp | 2 +- src/activeqt/container/qaxobject.h | 2 +- src/activeqt/container/qaxscript.cpp | 2 +- src/activeqt/container/qaxscript.h | 2 +- src/activeqt/container/qaxscriptwrapper.cpp | 2 +- src/activeqt/container/qaxselect.cpp | 2 +- src/activeqt/container/qaxselect.h | 2 +- src/activeqt/container/qaxselect.ui | 2 +- src/activeqt/container/qaxwidget.cpp | 2 +- src/activeqt/container/qaxwidget.h | 2 +- src/activeqt/control/qaxaggregated.h | 2 +- src/activeqt/control/qaxbindable.cpp | 2 +- src/activeqt/control/qaxbindable.h | 2 +- src/activeqt/control/qaxfactory.cpp | 2 +- src/activeqt/control/qaxfactory.h | 2 +- src/activeqt/control/qaxmain.cpp | 2 +- src/activeqt/control/qaxserver.cpp | 2 +- src/activeqt/control/qaxserverbase.cpp | 2 +- src/activeqt/control/qaxserverdll.cpp | 2 +- src/activeqt/control/qaxservermain.cpp | 2 +- src/activeqt/shared/qaxtypes.cpp | 2 +- src/activeqt/shared/qaxtypes.h | 2 +- src/corelib/animation/qabstractanimation.cpp | 2 +- src/corelib/animation/qabstractanimation.h | 2 +- src/corelib/animation/qabstractanimation_p.h | 2 +- src/corelib/animation/qanimationgroup.cpp | 2 +- src/corelib/animation/qanimationgroup.h | 2 +- src/corelib/animation/qanimationgroup_p.h | 2 +- src/corelib/animation/qparallelanimationgroup.cpp | 2 +- src/corelib/animation/qparallelanimationgroup.h | 2 +- src/corelib/animation/qparallelanimationgroup_p.h | 2 +- src/corelib/animation/qpauseanimation.cpp | 2 +- src/corelib/animation/qpauseanimation.h | 2 +- src/corelib/animation/qpropertyanimation.cpp | 2 +- src/corelib/animation/qpropertyanimation.h | 2 +- src/corelib/animation/qpropertyanimation_p.h | 2 +- .../animation/qsequentialanimationgroup.cpp | 2 +- src/corelib/animation/qsequentialanimationgroup.h | 2 +- .../animation/qsequentialanimationgroup_p.h | 2 +- src/corelib/animation/qvariantanimation.cpp | 2 +- src/corelib/animation/qvariantanimation.h | 2 +- src/corelib/animation/qvariantanimation_p.h | 2 +- src/corelib/arch/alpha/qatomic_alpha.s | 2 +- src/corelib/arch/arm/qatomic_arm.cpp | 2 +- src/corelib/arch/armv6/qatomic_generic_armv6.cpp | 2 +- src/corelib/arch/generic/qatomic_generic_unix.cpp | 2 +- .../arch/generic/qatomic_generic_windows.cpp | 2 +- src/corelib/arch/ia64/qatomic_ia64.s | 2 +- src/corelib/arch/macosx/qatomic32_ppc.s | 2 +- src/corelib/arch/mips/qatomic_mips32.s | 2 +- src/corelib/arch/mips/qatomic_mips64.s | 2 +- src/corelib/arch/parisc/q_ldcw.s | 2 +- src/corelib/arch/parisc/qatomic_parisc.cpp | 2 +- src/corelib/arch/powerpc/qatomic32.s | 2 +- src/corelib/arch/powerpc/qatomic64.s | 2 +- src/corelib/arch/qatomic_alpha.h | 2 +- src/corelib/arch/qatomic_arch.h | 2 +- src/corelib/arch/qatomic_arm.h | 2 +- src/corelib/arch/qatomic_armv6.h | 2 +- src/corelib/arch/qatomic_avr32.h | 2 +- src/corelib/arch/qatomic_bfin.h | 2 +- src/corelib/arch/qatomic_bootstrap.h | 2 +- src/corelib/arch/qatomic_generic.h | 2 +- src/corelib/arch/qatomic_i386.h | 2 +- src/corelib/arch/qatomic_ia64.h | 2 +- src/corelib/arch/qatomic_macosx.h | 2 +- src/corelib/arch/qatomic_mips.h | 2 +- src/corelib/arch/qatomic_parisc.h | 2 +- src/corelib/arch/qatomic_powerpc.h | 2 +- src/corelib/arch/qatomic_s390.h | 2 +- src/corelib/arch/qatomic_sh.h | 2 +- src/corelib/arch/qatomic_sh4a.h | 2 +- src/corelib/arch/qatomic_sparc.h | 2 +- src/corelib/arch/qatomic_symbian.h | 2 +- src/corelib/arch/qatomic_vxworks.h | 2 +- src/corelib/arch/qatomic_windows.h | 2 +- src/corelib/arch/qatomic_windowsce.h | 2 +- src/corelib/arch/qatomic_x86_64.h | 2 +- src/corelib/arch/sh/qatomic_sh.cpp | 2 +- src/corelib/arch/sparc/qatomic32.s | 2 +- src/corelib/arch/sparc/qatomic64.s | 2 +- src/corelib/arch/sparc/qatomic_sparc.cpp | 2 +- src/corelib/arch/symbian/common_p.h | 2 +- src/corelib/arch/symbian/debugfunction.cpp | 2 +- src/corelib/arch/symbian/dla_p.h | 2 +- src/corelib/arch/symbian/heap_hybrid.cpp | 2 +- src/corelib/arch/symbian/heap_hybrid_p.h | 2 +- src/corelib/arch/symbian/page_alloc_p.h | 2 +- src/corelib/arch/symbian/qatomic_symbian.cpp | 2 +- src/corelib/arch/symbian/qt_heapsetup_symbian.cpp | 2 +- src/corelib/arch/symbian/qt_hybridheap_symbian_p.h | 2 +- src/corelib/arch/symbian/slab_p.h | 2 +- src/corelib/codecs/codecs.qdoc | 2 +- src/corelib/codecs/qfontlaocodec.cpp | 2 +- src/corelib/codecs/qfontlaocodec_p.h | 2 +- src/corelib/codecs/qiconvcodec.cpp | 2 +- src/corelib/codecs/qiconvcodec_p.h | 2 +- src/corelib/codecs/qisciicodec.cpp | 2 +- src/corelib/codecs/qisciicodec_p.h | 2 +- src/corelib/codecs/qlatincodec.cpp | 2 +- src/corelib/codecs/qlatincodec_p.h | 2 +- src/corelib/codecs/qsimplecodec.cpp | 2 +- src/corelib/codecs/qsimplecodec_p.h | 2 +- src/corelib/codecs/qtextcodec.cpp | 2 +- src/corelib/codecs/qtextcodec.h | 2 +- src/corelib/codecs/qtextcodec_p.h | 2 +- src/corelib/codecs/qtextcodec_symbian.cpp | 2 +- src/corelib/codecs/qtextcodecplugin.cpp | 2 +- src/corelib/codecs/qtextcodecplugin.h | 2 +- src/corelib/codecs/qtsciicodec.cpp | 2 +- src/corelib/codecs/qtsciicodec_p.h | 2 +- src/corelib/codecs/qutfcodec.cpp | 2 +- src/corelib/codecs/qutfcodec_p.h | 2 +- src/corelib/concurrent/qfuture.cpp | 2 +- src/corelib/concurrent/qfuture.h | 2 +- src/corelib/concurrent/qfutureinterface.cpp | 2 +- src/corelib/concurrent/qfutureinterface.h | 2 +- src/corelib/concurrent/qfutureinterface_p.h | 2 +- src/corelib/concurrent/qfuturesynchronizer.cpp | 2 +- src/corelib/concurrent/qfuturesynchronizer.h | 2 +- src/corelib/concurrent/qfuturewatcher.cpp | 2 +- src/corelib/concurrent/qfuturewatcher.h | 2 +- src/corelib/concurrent/qfuturewatcher_p.h | 2 +- src/corelib/concurrent/qrunnable.cpp | 2 +- src/corelib/concurrent/qrunnable.h | 2 +- src/corelib/concurrent/qtconcurrentcompilertest.h | 2 +- src/corelib/concurrent/qtconcurrentexception.cpp | 2 +- src/corelib/concurrent/qtconcurrentexception.h | 2 +- src/corelib/concurrent/qtconcurrentfilter.cpp | 2 +- src/corelib/concurrent/qtconcurrentfilter.h | 2 +- src/corelib/concurrent/qtconcurrentfilterkernel.h | 2 +- .../concurrent/qtconcurrentfunctionwrappers.h | 2 +- .../concurrent/qtconcurrentiteratekernel.cpp | 2 +- src/corelib/concurrent/qtconcurrentiteratekernel.h | 2 +- src/corelib/concurrent/qtconcurrentmap.cpp | 2 +- src/corelib/concurrent/qtconcurrentmap.h | 2 +- src/corelib/concurrent/qtconcurrentmapkernel.h | 2 +- src/corelib/concurrent/qtconcurrentmedian.h | 2 +- src/corelib/concurrent/qtconcurrentreducekernel.h | 2 +- src/corelib/concurrent/qtconcurrentresultstore.cpp | 2 +- src/corelib/concurrent/qtconcurrentresultstore.h | 2 +- src/corelib/concurrent/qtconcurrentrun.cpp | 2 +- src/corelib/concurrent/qtconcurrentrun.h | 2 +- src/corelib/concurrent/qtconcurrentrunbase.h | 2 +- .../concurrent/qtconcurrentstoredfunctioncall.h | 2 +- .../concurrent/qtconcurrentthreadengine.cpp | 2 +- src/corelib/concurrent/qtconcurrentthreadengine.h | 2 +- src/corelib/concurrent/qthreadpool.cpp | 2 +- src/corelib/concurrent/qthreadpool.h | 2 +- src/corelib/concurrent/qthreadpool_p.h | 2 +- src/corelib/global/qconfig-dist.h | 2 +- src/corelib/global/qconfig-large.h | 2 +- src/corelib/global/qconfig-medium.h | 2 +- src/corelib/global/qconfig-minimal.h | 2 +- src/corelib/global/qconfig-small.h | 2 +- src/corelib/global/qendian.h | 2 +- src/corelib/global/qendian.qdoc | 2 +- src/corelib/global/qfeatures.h | 2 +- src/corelib/global/qglobal.cpp | 2 +- src/corelib/global/qglobal.h | 2 +- src/corelib/global/qlibraryinfo.cpp | 4 ++-- src/corelib/global/qlibraryinfo.h | 2 +- src/corelib/global/qmalloc.cpp | 2 +- src/corelib/global/qnamespace.h | 2 +- src/corelib/global/qnamespace.qdoc | 2 +- src/corelib/global/qnumeric.cpp | 2 +- src/corelib/global/qnumeric.h | 2 +- src/corelib/global/qnumeric_p.h | 2 +- src/corelib/global/qt_pch.h | 2 +- src/corelib/global/qt_windows.h | 2 +- src/corelib/io/qabstractfileengine.cpp | 2 +- src/corelib/io/qabstractfileengine.h | 2 +- src/corelib/io/qabstractfileengine_p.h | 2 +- src/corelib/io/qbuffer.cpp | 2 +- src/corelib/io/qbuffer.h | 2 +- src/corelib/io/qdatastream.cpp | 2 +- src/corelib/io/qdatastream.h | 2 +- src/corelib/io/qdatastream_p.h | 2 +- src/corelib/io/qdataurl.cpp | 2 +- src/corelib/io/qdataurl_p.h | 2 +- src/corelib/io/qdebug.cpp | 2 +- src/corelib/io/qdebug.h | 2 +- src/corelib/io/qdir.cpp | 2 +- src/corelib/io/qdir.h | 2 +- src/corelib/io/qdiriterator.cpp | 2 +- src/corelib/io/qdiriterator.h | 2 +- src/corelib/io/qfile.cpp | 2 +- src/corelib/io/qfile.h | 2 +- src/corelib/io/qfile_p.h | 2 +- src/corelib/io/qfileinfo.cpp | 2 +- src/corelib/io/qfileinfo.h | 2 +- src/corelib/io/qfileinfo_p.h | 2 +- src/corelib/io/qfilesystemwatcher.cpp | 2 +- src/corelib/io/qfilesystemwatcher.h | 2 +- src/corelib/io/qfilesystemwatcher_dnotify.cpp | 2 +- src/corelib/io/qfilesystemwatcher_dnotify_p.h | 2 +- src/corelib/io/qfilesystemwatcher_fsevents.cpp | 2 +- src/corelib/io/qfilesystemwatcher_fsevents_p.h | 2 +- src/corelib/io/qfilesystemwatcher_inotify.cpp | 2 +- src/corelib/io/qfilesystemwatcher_inotify_p.h | 2 +- src/corelib/io/qfilesystemwatcher_kqueue.cpp | 2 +- src/corelib/io/qfilesystemwatcher_kqueue_p.h | 2 +- src/corelib/io/qfilesystemwatcher_p.h | 2 +- src/corelib/io/qfilesystemwatcher_symbian.cpp | 2 +- src/corelib/io/qfilesystemwatcher_symbian_p.h | 2 +- src/corelib/io/qfilesystemwatcher_win.cpp | 2 +- src/corelib/io/qfilesystemwatcher_win_p.h | 2 +- src/corelib/io/qfsfileengine.cpp | 2 +- src/corelib/io/qfsfileengine.h | 2 +- src/corelib/io/qfsfileengine_iterator.cpp | 2 +- src/corelib/io/qfsfileengine_iterator_p.h | 2 +- src/corelib/io/qfsfileengine_iterator_unix.cpp | 2 +- src/corelib/io/qfsfileengine_iterator_win.cpp | 2 +- src/corelib/io/qfsfileengine_p.h | 2 +- src/corelib/io/qfsfileengine_unix.cpp | 2 +- src/corelib/io/qfsfileengine_win.cpp | 2 +- src/corelib/io/qiodevice.cpp | 2 +- src/corelib/io/qiodevice.h | 2 +- src/corelib/io/qiodevice_p.h | 2 +- src/corelib/io/qnoncontiguousbytedevice.cpp | 2 +- src/corelib/io/qnoncontiguousbytedevice_p.h | 2 +- src/corelib/io/qprocess.cpp | 2 +- src/corelib/io/qprocess.h | 2 +- src/corelib/io/qprocess_p.h | 2 +- src/corelib/io/qprocess_symbian.cpp | 2 +- src/corelib/io/qprocess_unix.cpp | 2 +- src/corelib/io/qprocess_win.cpp | 2 +- src/corelib/io/qresource.cpp | 2 +- src/corelib/io/qresource.h | 2 +- src/corelib/io/qresource_iterator.cpp | 2 +- src/corelib/io/qresource_iterator_p.h | 2 +- src/corelib/io/qresource_p.h | 2 +- src/corelib/io/qsettings.cpp | 2 +- src/corelib/io/qsettings.h | 2 +- src/corelib/io/qsettings_mac.cpp | 2 +- src/corelib/io/qsettings_p.h | 2 +- src/corelib/io/qsettings_win.cpp | 2 +- src/corelib/io/qtemporaryfile.cpp | 2 +- src/corelib/io/qtemporaryfile.h | 2 +- src/corelib/io/qtextstream.cpp | 2 +- src/corelib/io/qtextstream.h | 2 +- src/corelib/io/qurl.cpp | 2 +- src/corelib/io/qurl.h | 2 +- src/corelib/io/qwindowspipewriter.cpp | 2 +- src/corelib/io/qwindowspipewriter_p.h | 2 +- src/corelib/kernel/qabstracteventdispatcher.cpp | 2 +- src/corelib/kernel/qabstracteventdispatcher.h | 2 +- src/corelib/kernel/qabstracteventdispatcher_p.h | 2 +- src/corelib/kernel/qabstractitemmodel.cpp | 2 +- src/corelib/kernel/qabstractitemmodel.h | 2 +- src/corelib/kernel/qabstractitemmodel_p.h | 2 +- src/corelib/kernel/qbasictimer.cpp | 2 +- src/corelib/kernel/qbasictimer.h | 2 +- src/corelib/kernel/qcore_mac.cpp | 2 +- src/corelib/kernel/qcore_mac_p.h | 2 +- src/corelib/kernel/qcore_symbian_p.cpp | 2 +- src/corelib/kernel/qcore_symbian_p.h | 2 +- src/corelib/kernel/qcore_unix.cpp | 2 +- src/corelib/kernel/qcore_unix_p.h | 2 +- src/corelib/kernel/qcoreapplication.cpp | 2 +- src/corelib/kernel/qcoreapplication.h | 2 +- src/corelib/kernel/qcoreapplication_mac.cpp | 2 +- src/corelib/kernel/qcoreapplication_p.h | 2 +- src/corelib/kernel/qcoreapplication_win.cpp | 2 +- src/corelib/kernel/qcorecmdlineargs_p.h | 2 +- src/corelib/kernel/qcoreevent.cpp | 2 +- src/corelib/kernel/qcoreevent.h | 2 +- src/corelib/kernel/qcoreglobaldata.cpp | 2 +- src/corelib/kernel/qcoreglobaldata_p.h | 2 +- src/corelib/kernel/qcrashhandler.cpp | 2 +- src/corelib/kernel/qcrashhandler_p.h | 2 +- src/corelib/kernel/qeventdispatcher_glib.cpp | 2 +- src/corelib/kernel/qeventdispatcher_glib_p.h | 2 +- src/corelib/kernel/qeventdispatcher_symbian.cpp | 2 +- src/corelib/kernel/qeventdispatcher_symbian_p.h | 2 +- src/corelib/kernel/qeventdispatcher_unix.cpp | 2 +- src/corelib/kernel/qeventdispatcher_unix_p.h | 2 +- src/corelib/kernel/qeventdispatcher_win.cpp | 2 +- src/corelib/kernel/qeventdispatcher_win_p.h | 2 +- src/corelib/kernel/qeventloop.cpp | 2 +- src/corelib/kernel/qeventloop.h | 2 +- src/corelib/kernel/qfunctions_p.h | 2 +- src/corelib/kernel/qfunctions_vxworks.cpp | 2 +- src/corelib/kernel/qfunctions_vxworks.h | 2 +- src/corelib/kernel/qfunctions_wince.cpp | 2 +- src/corelib/kernel/qfunctions_wince.h | 2 +- src/corelib/kernel/qmath.cpp | 2 +- src/corelib/kernel/qmath.h | 2 +- src/corelib/kernel/qmath.qdoc | 2 +- src/corelib/kernel/qmetaobject.cpp | 2 +- src/corelib/kernel/qmetaobject.h | 2 +- src/corelib/kernel/qmetaobject_p.h | 2 +- src/corelib/kernel/qmetatype.cpp | 2 +- src/corelib/kernel/qmetatype.h | 2 +- src/corelib/kernel/qmimedata.cpp | 2 +- src/corelib/kernel/qmimedata.h | 2 +- src/corelib/kernel/qobject.cpp | 2 +- src/corelib/kernel/qobject.h | 2 +- src/corelib/kernel/qobject_p.h | 2 +- src/corelib/kernel/qobjectcleanuphandler.cpp | 2 +- src/corelib/kernel/qobjectcleanuphandler.h | 2 +- src/corelib/kernel/qobjectdefs.h | 2 +- src/corelib/kernel/qpointer.cpp | 2 +- src/corelib/kernel/qpointer.h | 2 +- src/corelib/kernel/qsharedmemory.cpp | 2 +- src/corelib/kernel/qsharedmemory.h | 2 +- src/corelib/kernel/qsharedmemory_p.h | 2 +- src/corelib/kernel/qsharedmemory_symbian.cpp | 2 +- src/corelib/kernel/qsharedmemory_unix.cpp | 2 +- src/corelib/kernel/qsharedmemory_win.cpp | 2 +- src/corelib/kernel/qsignalmapper.cpp | 2 +- src/corelib/kernel/qsignalmapper.h | 2 +- src/corelib/kernel/qsocketnotifier.cpp | 2 +- src/corelib/kernel/qsocketnotifier.h | 2 +- src/corelib/kernel/qsystemsemaphore.cpp | 2 +- src/corelib/kernel/qsystemsemaphore.h | 2 +- src/corelib/kernel/qsystemsemaphore_p.h | 2 +- src/corelib/kernel/qsystemsemaphore_symbian.cpp | 2 +- src/corelib/kernel/qsystemsemaphore_unix.cpp | 2 +- src/corelib/kernel/qsystemsemaphore_win.cpp | 2 +- src/corelib/kernel/qtcore_eval.cpp | 6 +++--- src/corelib/kernel/qtimer.cpp | 2 +- src/corelib/kernel/qtimer.h | 2 +- src/corelib/kernel/qtranslator.cpp | 2 +- src/corelib/kernel/qtranslator.h | 2 +- src/corelib/kernel/qtranslator_p.h | 2 +- src/corelib/kernel/qvariant.cpp | 2 +- src/corelib/kernel/qvariant.h | 2 +- src/corelib/kernel/qvariant_p.h | 2 +- src/corelib/kernel/qwineventnotifier_p.cpp | 2 +- src/corelib/kernel/qwineventnotifier_p.h | 2 +- src/corelib/plugin/qfactoryinterface.h | 2 +- src/corelib/plugin/qfactoryloader.cpp | 2 +- src/corelib/plugin/qfactoryloader_p.h | 2 +- src/corelib/plugin/qlibrary.cpp | 2 +- src/corelib/plugin/qlibrary.h | 2 +- src/corelib/plugin/qlibrary_p.h | 2 +- src/corelib/plugin/qlibrary_unix.cpp | 2 +- src/corelib/plugin/qlibrary_win.cpp | 2 +- src/corelib/plugin/qplugin.h | 2 +- src/corelib/plugin/qplugin.qdoc | 2 +- src/corelib/plugin/qpluginloader.cpp | 2 +- src/corelib/plugin/qpluginloader.h | 2 +- src/corelib/plugin/qsystemlibrary.cpp | 2 +- src/corelib/plugin/qsystemlibrary_p.h | 2 +- src/corelib/plugin/quuid.cpp | 2 +- src/corelib/plugin/quuid.h | 2 +- src/corelib/statemachine/qabstractstate.cpp | 2 +- src/corelib/statemachine/qabstractstate.h | 2 +- src/corelib/statemachine/qabstractstate_p.h | 2 +- src/corelib/statemachine/qabstracttransition.cpp | 2 +- src/corelib/statemachine/qabstracttransition.h | 2 +- src/corelib/statemachine/qabstracttransition_p.h | 2 +- src/corelib/statemachine/qeventtransition.cpp | 2 +- src/corelib/statemachine/qeventtransition.h | 2 +- src/corelib/statemachine/qeventtransition_p.h | 2 +- src/corelib/statemachine/qfinalstate.cpp | 2 +- src/corelib/statemachine/qfinalstate.h | 2 +- src/corelib/statemachine/qhistorystate.cpp | 2 +- src/corelib/statemachine/qhistorystate.h | 2 +- src/corelib/statemachine/qhistorystate_p.h | 2 +- src/corelib/statemachine/qsignaleventgenerator_p.h | 2 +- src/corelib/statemachine/qsignaltransition.cpp | 2 +- src/corelib/statemachine/qsignaltransition.h | 2 +- src/corelib/statemachine/qsignaltransition_p.h | 2 +- src/corelib/statemachine/qstate.cpp | 2 +- src/corelib/statemachine/qstate.h | 2 +- src/corelib/statemachine/qstate_p.h | 2 +- src/corelib/statemachine/qstatemachine.cpp | 2 +- src/corelib/statemachine/qstatemachine.h | 2 +- src/corelib/statemachine/qstatemachine_p.h | 2 +- src/corelib/thread/qatomic.cpp | 2 +- src/corelib/thread/qatomic.h | 2 +- src/corelib/thread/qbasicatomic.h | 2 +- src/corelib/thread/qmutex.cpp | 2 +- src/corelib/thread/qmutex.h | 2 +- src/corelib/thread/qmutex_p.h | 2 +- src/corelib/thread/qmutex_unix.cpp | 2 +- src/corelib/thread/qmutex_win.cpp | 2 +- src/corelib/thread/qmutexpool.cpp | 2 +- src/corelib/thread/qmutexpool_p.h | 2 +- src/corelib/thread/qorderedmutexlocker_p.h | 2 +- src/corelib/thread/qreadwritelock.cpp | 2 +- src/corelib/thread/qreadwritelock.h | 2 +- src/corelib/thread/qreadwritelock_p.h | 2 +- src/corelib/thread/qsemaphore.cpp | 2 +- src/corelib/thread/qsemaphore.h | 2 +- src/corelib/thread/qthread.cpp | 2 +- src/corelib/thread/qthread.h | 2 +- src/corelib/thread/qthread_p.h | 2 +- src/corelib/thread/qthread_unix.cpp | 2 +- src/corelib/thread/qthread_win.cpp | 2 +- src/corelib/thread/qthreadstorage.cpp | 2 +- src/corelib/thread/qthreadstorage.h | 2 +- src/corelib/thread/qwaitcondition.h | 2 +- src/corelib/thread/qwaitcondition.qdoc | 2 +- src/corelib/thread/qwaitcondition_unix.cpp | 2 +- src/corelib/thread/qwaitcondition_win.cpp | 2 +- src/corelib/tools/qalgorithms.h | 2 +- src/corelib/tools/qalgorithms.qdoc | 2 +- src/corelib/tools/qbitarray.cpp | 2 +- src/corelib/tools/qbitarray.h | 2 +- src/corelib/tools/qbytearray.cpp | 2 +- src/corelib/tools/qbytearray.h | 2 +- src/corelib/tools/qbytearraymatcher.cpp | 2 +- src/corelib/tools/qbytearraymatcher.h | 2 +- src/corelib/tools/qbytedata_p.h | 2 +- src/corelib/tools/qcache.h | 2 +- src/corelib/tools/qcache.qdoc | 2 +- src/corelib/tools/qchar.cpp | 2 +- src/corelib/tools/qchar.h | 2 +- src/corelib/tools/qcontainerfwd.h | 2 +- src/corelib/tools/qcontiguouscache.cpp | 2 +- src/corelib/tools/qcontiguouscache.h | 2 +- src/corelib/tools/qcryptographichash.cpp | 2 +- src/corelib/tools/qcryptographichash.h | 2 +- src/corelib/tools/qdatetime.cpp | 2 +- src/corelib/tools/qdatetime.h | 2 +- src/corelib/tools/qdatetime_p.h | 2 +- src/corelib/tools/qeasingcurve.cpp | 2 +- src/corelib/tools/qeasingcurve.h | 2 +- src/corelib/tools/qelapsedtimer.cpp | 2 +- src/corelib/tools/qelapsedtimer.h | 2 +- src/corelib/tools/qelapsedtimer_generic.cpp | 2 +- src/corelib/tools/qelapsedtimer_mac.cpp | 2 +- src/corelib/tools/qelapsedtimer_symbian.cpp | 2 +- src/corelib/tools/qelapsedtimer_unix.cpp | 2 +- src/corelib/tools/qelapsedtimer_win.cpp | 2 +- src/corelib/tools/qharfbuzz.cpp | 2 +- src/corelib/tools/qharfbuzz_p.h | 2 +- src/corelib/tools/qhash.cpp | 2 +- src/corelib/tools/qhash.h | 2 +- src/corelib/tools/qiterator.h | 2 +- src/corelib/tools/qiterator.qdoc | 2 +- src/corelib/tools/qline.cpp | 2 +- src/corelib/tools/qline.h | 2 +- src/corelib/tools/qlinkedlist.cpp | 2 +- src/corelib/tools/qlinkedlist.h | 2 +- src/corelib/tools/qlist.cpp | 2 +- src/corelib/tools/qlist.h | 2 +- src/corelib/tools/qlocale.cpp | 2 +- src/corelib/tools/qlocale.h | 2 +- src/corelib/tools/qlocale_data_p.h | 2 +- src/corelib/tools/qlocale_p.h | 2 +- src/corelib/tools/qlocale_symbian.cpp | 2 +- src/corelib/tools/qmap.cpp | 2 +- src/corelib/tools/qmap.h | 2 +- src/corelib/tools/qmargins.cpp | 2 +- src/corelib/tools/qmargins.h | 2 +- src/corelib/tools/qpair.h | 2 +- src/corelib/tools/qpair.qdoc | 2 +- src/corelib/tools/qpodlist_p.h | 2 +- src/corelib/tools/qpoint.cpp | 2 +- src/corelib/tools/qpoint.h | 2 +- src/corelib/tools/qqueue.cpp | 2 +- src/corelib/tools/qqueue.h | 2 +- src/corelib/tools/qrect.cpp | 2 +- src/corelib/tools/qrect.h | 2 +- src/corelib/tools/qregexp.cpp | 2 +- src/corelib/tools/qregexp.h | 2 +- src/corelib/tools/qringbuffer_p.h | 2 +- src/corelib/tools/qscopedpointer.cpp | 2 +- src/corelib/tools/qscopedpointer.h | 2 +- src/corelib/tools/qscopedpointer_p.h | 2 +- src/corelib/tools/qset.h | 2 +- src/corelib/tools/qset.qdoc | 2 +- src/corelib/tools/qshareddata.cpp | 2 +- src/corelib/tools/qshareddata.h | 2 +- src/corelib/tools/qsharedpointer.cpp | 2 +- src/corelib/tools/qsharedpointer.h | 2 +- src/corelib/tools/qsharedpointer_impl.h | 2 +- src/corelib/tools/qsimd.cpp | 2 +- src/corelib/tools/qsimd_p.h | 2 +- src/corelib/tools/qsize.cpp | 2 +- src/corelib/tools/qsize.h | 2 +- src/corelib/tools/qstack.cpp | 2 +- src/corelib/tools/qstack.h | 2 +- src/corelib/tools/qstring.cpp | 2 +- src/corelib/tools/qstring.h | 2 +- src/corelib/tools/qstringbuilder.cpp | 2 +- src/corelib/tools/qstringbuilder.h | 2 +- src/corelib/tools/qstringlist.cpp | 2 +- src/corelib/tools/qstringlist.h | 2 +- src/corelib/tools/qstringmatcher.cpp | 2 +- src/corelib/tools/qstringmatcher.h | 2 +- src/corelib/tools/qtextboundaryfinder.cpp | 2 +- src/corelib/tools/qtextboundaryfinder.h | 2 +- src/corelib/tools/qtimeline.cpp | 2 +- src/corelib/tools/qtimeline.h | 2 +- src/corelib/tools/qtools_p.h | 2 +- src/corelib/tools/qunicodetables.cpp | 2 +- src/corelib/tools/qunicodetables_p.h | 2 +- src/corelib/tools/qvarlengtharray.h | 2 +- src/corelib/tools/qvarlengtharray.qdoc | 2 +- src/corelib/tools/qvector.cpp | 2 +- src/corelib/tools/qvector.h | 2 +- src/corelib/tools/qvsnprintf.cpp | 2 +- src/corelib/xml/make-parser.sh | 2 +- src/corelib/xml/qxmlstream.cpp | 2 +- src/corelib/xml/qxmlstream.g | 2 +- src/corelib/xml/qxmlstream.h | 2 +- src/corelib/xml/qxmlstream_p.h | 2 +- src/corelib/xml/qxmlutils.cpp | 2 +- src/corelib/xml/qxmlutils_p.h | 2 +- src/dbus/qdbus_symbols.cpp | 2 +- src/dbus/qdbus_symbols_p.h | 2 +- src/dbus/qdbusabstractadaptor.cpp | 2 +- src/dbus/qdbusabstractadaptor.h | 2 +- src/dbus/qdbusabstractadaptor_p.h | 2 +- src/dbus/qdbusabstractinterface.cpp | 2 +- src/dbus/qdbusabstractinterface.h | 2 +- src/dbus/qdbusabstractinterface_p.h | 2 +- src/dbus/qdbusargument.cpp | 2 +- src/dbus/qdbusargument.h | 2 +- src/dbus/qdbusargument_p.h | 2 +- src/dbus/qdbusconnection.cpp | 2 +- src/dbus/qdbusconnection.h | 2 +- src/dbus/qdbusconnection_p.h | 2 +- src/dbus/qdbusconnectioninterface.cpp | 2 +- src/dbus/qdbusconnectioninterface.h | 2 +- src/dbus/qdbuscontext.cpp | 2 +- src/dbus/qdbuscontext.h | 2 +- src/dbus/qdbuscontext_p.h | 2 +- src/dbus/qdbusdemarshaller.cpp | 2 +- src/dbus/qdbuserror.cpp | 2 +- src/dbus/qdbuserror.h | 2 +- src/dbus/qdbusextratypes.cpp | 2 +- src/dbus/qdbusextratypes.h | 2 +- src/dbus/qdbusintegrator.cpp | 2 +- src/dbus/qdbusintegrator_p.h | 2 +- src/dbus/qdbusinterface.cpp | 2 +- src/dbus/qdbusinterface.h | 2 +- src/dbus/qdbusinterface_p.h | 2 +- src/dbus/qdbusinternalfilters.cpp | 2 +- src/dbus/qdbusintrospection.cpp | 2 +- src/dbus/qdbusintrospection_p.h | 2 +- src/dbus/qdbusmacros.h | 2 +- src/dbus/qdbusmarshaller.cpp | 2 +- src/dbus/qdbusmessage.cpp | 2 +- src/dbus/qdbusmessage.h | 2 +- src/dbus/qdbusmessage_p.h | 2 +- src/dbus/qdbusmetaobject.cpp | 2 +- src/dbus/qdbusmetaobject_p.h | 2 +- src/dbus/qdbusmetatype.cpp | 2 +- src/dbus/qdbusmetatype.h | 2 +- src/dbus/qdbusmetatype_p.h | 2 +- src/dbus/qdbusmisc.cpp | 2 +- src/dbus/qdbuspendingcall.cpp | 2 +- src/dbus/qdbuspendingcall.h | 2 +- src/dbus/qdbuspendingcall_p.h | 2 +- src/dbus/qdbuspendingreply.cpp | 2 +- src/dbus/qdbuspendingreply.h | 2 +- src/dbus/qdbusreply.cpp | 2 +- src/dbus/qdbusreply.h | 2 +- src/dbus/qdbusserver.cpp | 2 +- src/dbus/qdbusserver.h | 2 +- src/dbus/qdbusservicewatcher.cpp | 2 +- src/dbus/qdbusservicewatcher.h | 2 +- src/dbus/qdbusthreaddebug_p.h | 2 +- src/dbus/qdbusutil.cpp | 2 +- src/dbus/qdbusutil_p.h | 2 +- src/dbus/qdbusxmlgenerator.cpp | 2 +- src/dbus/qdbusxmlparser.cpp | 2 +- src/dbus/qdbusxmlparser_p.h | 2 +- src/declarative/debugger/qdeclarativedebug.cpp | 2 +- src/declarative/debugger/qdeclarativedebug_p.h | 2 +- .../debugger/qdeclarativedebugclient.cpp | 2 +- .../debugger/qdeclarativedebugclient_p.h | 2 +- .../debugger/qdeclarativedebuggerstatus.cpp | 2 +- .../debugger/qdeclarativedebuggerstatus_p.h | 2 +- .../debugger/qdeclarativedebughelper.cpp | 2 +- .../debugger/qdeclarativedebughelper_p.h | 2 +- .../debugger/qdeclarativedebugservice.cpp | 2 +- .../debugger/qdeclarativedebugservice_p.h | 2 +- .../debugger/qdeclarativedebugtrace.cpp | 2 +- .../debugger/qdeclarativedebugtrace_p.h | 2 +- src/declarative/debugger/qpacketprotocol.cpp | 2 +- src/declarative/debugger/qpacketprotocol_p.h | 2 +- .../graphicsitems/qdeclarativeanchors.cpp | 2 +- .../graphicsitems/qdeclarativeanchors_p.h | 2 +- .../graphicsitems/qdeclarativeanchors_p_p.h | 2 +- .../graphicsitems/qdeclarativeanimatedimage.cpp | 2 +- .../graphicsitems/qdeclarativeanimatedimage_p.h | 2 +- .../graphicsitems/qdeclarativeanimatedimage_p_p.h | 2 +- .../graphicsitems/qdeclarativeborderimage.cpp | 2 +- .../graphicsitems/qdeclarativeborderimage_p.h | 2 +- .../graphicsitems/qdeclarativeborderimage_p_p.h | 2 +- .../graphicsitems/qdeclarativeevents.cpp | 2 +- .../graphicsitems/qdeclarativeevents_p_p.h | 2 +- .../graphicsitems/qdeclarativeflickable.cpp | 2 +- .../graphicsitems/qdeclarativeflickable_p.h | 2 +- .../graphicsitems/qdeclarativeflickable_p_p.h | 2 +- .../graphicsitems/qdeclarativeflipable.cpp | 2 +- .../graphicsitems/qdeclarativeflipable_p.h | 2 +- .../graphicsitems/qdeclarativefocuspanel.cpp | 2 +- .../graphicsitems/qdeclarativefocuspanel_p.h | 2 +- .../graphicsitems/qdeclarativefocusscope.cpp | 2 +- .../graphicsitems/qdeclarativefocusscope_p.h | 2 +- .../graphicsitems/qdeclarativegraphicswidget.cpp | 2 +- .../graphicsitems/qdeclarativegraphicswidget_p.h | 2 +- .../graphicsitems/qdeclarativegridview.cpp | 2 +- .../graphicsitems/qdeclarativegridview_p.h | 2 +- .../graphicsitems/qdeclarativeimage.cpp | 2 +- .../graphicsitems/qdeclarativeimage_p.h | 2 +- .../graphicsitems/qdeclarativeimage_p_p.h | 2 +- .../graphicsitems/qdeclarativeimagebase.cpp | 2 +- .../graphicsitems/qdeclarativeimagebase_p.h | 2 +- .../graphicsitems/qdeclarativeimagebase_p_p.h | 2 +- src/declarative/graphicsitems/qdeclarativeitem.cpp | 2 +- src/declarative/graphicsitems/qdeclarativeitem.h | 2 +- src/declarative/graphicsitems/qdeclarativeitem_p.h | 2 +- .../qdeclarativeitemchangelistener_p.h | 2 +- .../graphicsitems/qdeclarativeitemsmodule_p.h | 2 +- .../graphicsitems/qdeclarativelayoutitem.cpp | 2 +- .../graphicsitems/qdeclarativelayoutitem_p.h | 2 +- .../graphicsitems/qdeclarativelistview.cpp | 2 +- .../graphicsitems/qdeclarativelistview_p.h | 2 +- .../graphicsitems/qdeclarativeloader.cpp | 2 +- .../graphicsitems/qdeclarativeloader_p.h | 2 +- .../graphicsitems/qdeclarativeloader_p_p.h | 2 +- .../graphicsitems/qdeclarativemousearea.cpp | 2 +- .../graphicsitems/qdeclarativemousearea_p.h | 2 +- .../graphicsitems/qdeclarativemousearea_p_p.h | 2 +- .../graphicsitems/qdeclarativepainteditem.cpp | 2 +- .../graphicsitems/qdeclarativepainteditem_p.h | 2 +- .../graphicsitems/qdeclarativepainteditem_p_p.h | 2 +- src/declarative/graphicsitems/qdeclarativepath.cpp | 2 +- src/declarative/graphicsitems/qdeclarativepath_p.h | 2 +- .../graphicsitems/qdeclarativepath_p_p.h | 2 +- .../graphicsitems/qdeclarativepathview.cpp | 2 +- .../graphicsitems/qdeclarativepathview_p.h | 2 +- .../graphicsitems/qdeclarativepathview_p_p.h | 2 +- .../graphicsitems/qdeclarativepositioners.cpp | 2 +- .../graphicsitems/qdeclarativepositioners_p.h | 2 +- .../graphicsitems/qdeclarativepositioners_p_p.h | 2 +- .../graphicsitems/qdeclarativerectangle.cpp | 2 +- .../graphicsitems/qdeclarativerectangle_p.h | 2 +- .../graphicsitems/qdeclarativerectangle_p_p.h | 2 +- .../graphicsitems/qdeclarativerepeater.cpp | 2 +- .../graphicsitems/qdeclarativerepeater_p.h | 2 +- .../graphicsitems/qdeclarativerepeater_p_p.h | 2 +- .../graphicsitems/qdeclarativescalegrid.cpp | 2 +- .../graphicsitems/qdeclarativescalegrid_p_p.h | 2 +- src/declarative/graphicsitems/qdeclarativetext.cpp | 2 +- src/declarative/graphicsitems/qdeclarativetext_p.h | 2 +- .../graphicsitems/qdeclarativetext_p_p.h | 2 +- .../graphicsitems/qdeclarativetextedit.cpp | 2 +- .../graphicsitems/qdeclarativetextedit_p.h | 2 +- .../graphicsitems/qdeclarativetextedit_p_p.h | 2 +- .../graphicsitems/qdeclarativetextinput.cpp | 2 +- .../graphicsitems/qdeclarativetextinput_p.h | 2 +- .../graphicsitems/qdeclarativetextinput_p_p.h | 2 +- .../graphicsitems/qdeclarativetextlayout.cpp | 2 +- .../graphicsitems/qdeclarativetextlayout_p.h | 2 +- .../graphicsitems/qdeclarativetranslate.cpp | 2 +- .../graphicsitems/qdeclarativetranslate_p.h | 2 +- .../graphicsitems/qdeclarativevisualitemmodel.cpp | 2 +- .../graphicsitems/qdeclarativevisualitemmodel_p.h | 2 +- src/declarative/qml/parser/qdeclarativejs.g | 6 +++--- src/declarative/qml/parser/qdeclarativejsast.cpp | 2 +- src/declarative/qml/parser/qdeclarativejsast_p.h | 2 +- .../qml/parser/qdeclarativejsastfwd_p.h | 2 +- .../qml/parser/qdeclarativejsastvisitor.cpp | 2 +- .../qml/parser/qdeclarativejsastvisitor_p.h | 2 +- .../qml/parser/qdeclarativejsengine_p.cpp | 2 +- .../qml/parser/qdeclarativejsengine_p.h | 2 +- .../qml/parser/qdeclarativejsglobal_p.h | 2 +- .../qml/parser/qdeclarativejsgrammar.cpp | 2 +- .../qml/parser/qdeclarativejsgrammar_p.h | 2 +- src/declarative/qml/parser/qdeclarativejslexer.cpp | 2 +- src/declarative/qml/parser/qdeclarativejslexer_p.h | 2 +- .../qml/parser/qdeclarativejsmemorypool_p.h | 2 +- .../qml/parser/qdeclarativejsnodepool_p.h | 2 +- .../qml/parser/qdeclarativejsparser.cpp | 2 +- .../qml/parser/qdeclarativejsparser_p.h | 2 +- src/declarative/qml/qbitfield_p.h | 2 +- src/declarative/qml/qdeclarative.h | 2 +- src/declarative/qml/qdeclarativebinding.cpp | 2 +- src/declarative/qml/qdeclarativebinding_p.h | 2 +- src/declarative/qml/qdeclarativebinding_p_p.h | 2 +- src/declarative/qml/qdeclarativeboundsignal.cpp | 2 +- src/declarative/qml/qdeclarativeboundsignal_p.h | 2 +- src/declarative/qml/qdeclarativecleanup.cpp | 2 +- src/declarative/qml/qdeclarativecleanup_p.h | 2 +- .../qml/qdeclarativecompiledbindings.cpp | 2 +- .../qml/qdeclarativecompiledbindings_p.h | 2 +- src/declarative/qml/qdeclarativecompileddata.cpp | 2 +- src/declarative/qml/qdeclarativecompiler.cpp | 2 +- src/declarative/qml/qdeclarativecompiler_p.h | 2 +- src/declarative/qml/qdeclarativecomponent.cpp | 2 +- src/declarative/qml/qdeclarativecomponent.h | 2 +- src/declarative/qml/qdeclarativecomponent_p.h | 2 +- src/declarative/qml/qdeclarativecontext.cpp | 2 +- src/declarative/qml/qdeclarativecontext.h | 2 +- src/declarative/qml/qdeclarativecontext_p.h | 2 +- .../qml/qdeclarativecontextscriptclass.cpp | 2 +- .../qml/qdeclarativecontextscriptclass_p.h | 2 +- src/declarative/qml/qdeclarativecustomparser.cpp | 2 +- src/declarative/qml/qdeclarativecustomparser_p.h | 2 +- src/declarative/qml/qdeclarativecustomparser_p_p.h | 2 +- src/declarative/qml/qdeclarativedata_p.h | 2 +- src/declarative/qml/qdeclarativedirparser.cpp | 2 +- src/declarative/qml/qdeclarativedirparser_p.h | 2 +- src/declarative/qml/qdeclarativedom.cpp | 2 +- src/declarative/qml/qdeclarativedom_p.h | 2 +- src/declarative/qml/qdeclarativeengine.cpp | 2 +- src/declarative/qml/qdeclarativeengine.h | 2 +- src/declarative/qml/qdeclarativeengine_p.h | 2 +- src/declarative/qml/qdeclarativeenginedebug.cpp | 2 +- src/declarative/qml/qdeclarativeenginedebug_p.h | 2 +- src/declarative/qml/qdeclarativeerror.cpp | 2 +- src/declarative/qml/qdeclarativeerror.h | 2 +- src/declarative/qml/qdeclarativeexpression.cpp | 2 +- src/declarative/qml/qdeclarativeexpression.h | 2 +- src/declarative/qml/qdeclarativeexpression_p.h | 2 +- .../qml/qdeclarativeextensioninterface.h | 2 +- .../qml/qdeclarativeextensionplugin.cpp | 2 +- src/declarative/qml/qdeclarativeextensionplugin.h | 2 +- src/declarative/qml/qdeclarativefastproperties.cpp | 2 +- src/declarative/qml/qdeclarativefastproperties_p.h | 2 +- src/declarative/qml/qdeclarativeglobal_p.h | 2 +- .../qml/qdeclarativeglobalscriptclass.cpp | 2 +- .../qml/qdeclarativeglobalscriptclass_p.h | 2 +- src/declarative/qml/qdeclarativeguard_p.h | 2 +- src/declarative/qml/qdeclarativeimageprovider.cpp | 2 +- src/declarative/qml/qdeclarativeimageprovider.h | 2 +- src/declarative/qml/qdeclarativeimport.cpp | 2 +- src/declarative/qml/qdeclarativeimport_p.h | 2 +- src/declarative/qml/qdeclarativeinclude.cpp | 2 +- src/declarative/qml/qdeclarativeinclude_p.h | 2 +- src/declarative/qml/qdeclarativeinfo.cpp | 2 +- src/declarative/qml/qdeclarativeinfo.h | 2 +- src/declarative/qml/qdeclarativeinstruction.cpp | 2 +- src/declarative/qml/qdeclarativeinstruction_p.h | 2 +- src/declarative/qml/qdeclarativeintegercache.cpp | 2 +- src/declarative/qml/qdeclarativeintegercache_p.h | 2 +- src/declarative/qml/qdeclarativelist.h | 2 +- .../qml/qdeclarativelistscriptclass.cpp | 2 +- .../qml/qdeclarativelistscriptclass_p.h | 2 +- src/declarative/qml/qdeclarativemetatype.cpp | 2 +- src/declarative/qml/qdeclarativemetatype_p.h | 2 +- .../qdeclarativenetworkaccessmanagerfactory.cpp | 2 +- .../qml/qdeclarativenetworkaccessmanagerfactory.h | 2 +- src/declarative/qml/qdeclarativenotifier.cpp | 2 +- src/declarative/qml/qdeclarativenotifier_p.h | 2 +- .../qml/qdeclarativeobjectscriptclass.cpp | 2 +- .../qml/qdeclarativeobjectscriptclass_p.h | 2 +- src/declarative/qml/qdeclarativeparser.cpp | 2 +- src/declarative/qml/qdeclarativeparser_p.h | 2 +- src/declarative/qml/qdeclarativeparserstatus.cpp | 2 +- src/declarative/qml/qdeclarativeparserstatus.h | 2 +- src/declarative/qml/qdeclarativeprivate.h | 2 +- src/declarative/qml/qdeclarativeproperty.cpp | 2 +- src/declarative/qml/qdeclarativeproperty.h | 2 +- src/declarative/qml/qdeclarativeproperty_p.h | 2 +- src/declarative/qml/qdeclarativepropertycache.cpp | 2 +- src/declarative/qml/qdeclarativepropertycache_p.h | 2 +- .../qml/qdeclarativepropertyvalueinterceptor.cpp | 2 +- .../qml/qdeclarativepropertyvalueinterceptor.h | 2 +- .../qml/qdeclarativepropertyvaluesource.cpp | 2 +- .../qml/qdeclarativepropertyvaluesource.h | 2 +- .../qml/qdeclarativeproxymetaobject.cpp | 2 +- .../qml/qdeclarativeproxymetaobject_p.h | 2 +- src/declarative/qml/qdeclarativerefcount.cpp | 2 +- src/declarative/qml/qdeclarativerefcount_p.h | 2 +- src/declarative/qml/qdeclarativerewrite.cpp | 2 +- src/declarative/qml/qdeclarativerewrite_p.h | 2 +- src/declarative/qml/qdeclarativescriptparser.cpp | 2 +- src/declarative/qml/qdeclarativescriptparser_p.h | 2 +- src/declarative/qml/qdeclarativescriptstring.cpp | 2 +- src/declarative/qml/qdeclarativescriptstring.h | 2 +- src/declarative/qml/qdeclarativesqldatabase.cpp | 2 +- src/declarative/qml/qdeclarativesqldatabase_p.h | 2 +- .../qml/qdeclarativestringconverters.cpp | 2 +- .../qml/qdeclarativestringconverters_p.h | 2 +- src/declarative/qml/qdeclarativetypeloader.cpp | 2 +- src/declarative/qml/qdeclarativetypeloader_p.h | 2 +- src/declarative/qml/qdeclarativetypenamecache.cpp | 2 +- src/declarative/qml/qdeclarativetypenamecache_p.h | 2 +- .../qml/qdeclarativetypenamescriptclass.cpp | 2 +- .../qml/qdeclarativetypenamescriptclass_p.h | 2 +- .../qml/qdeclarativetypenotavailable_p.h | 2 +- src/declarative/qml/qdeclarativevaluetype.cpp | 2 +- src/declarative/qml/qdeclarativevaluetype_p.h | 2 +- .../qml/qdeclarativevaluetypescriptclass.cpp | 2 +- .../qml/qdeclarativevaluetypescriptclass_p.h | 2 +- src/declarative/qml/qdeclarativevme.cpp | 2 +- src/declarative/qml/qdeclarativevme_p.h | 2 +- src/declarative/qml/qdeclarativevmemetaobject.cpp | 2 +- src/declarative/qml/qdeclarativevmemetaobject_p.h | 2 +- src/declarative/qml/qdeclarativewatcher.cpp | 2 +- src/declarative/qml/qdeclarativewatcher_p.h | 2 +- src/declarative/qml/qdeclarativeworkerscript.cpp | 2 +- src/declarative/qml/qdeclarativeworkerscript_p.h | 2 +- src/declarative/qml/qdeclarativexmlhttprequest.cpp | 2 +- src/declarative/qml/qdeclarativexmlhttprequest_p.h | 2 +- src/declarative/qml/qmetaobjectbuilder.cpp | 2 +- src/declarative/qml/qmetaobjectbuilder_p.h | 2 +- src/declarative/qml/qpodvector_p.h | 2 +- src/declarative/qml/rewriter/textwriter.cpp | 2 +- src/declarative/qml/rewriter/textwriter_p.h | 2 +- src/declarative/util/qdeclarativeanimation.cpp | 2 +- src/declarative/util/qdeclarativeanimation_p.h | 2 +- src/declarative/util/qdeclarativeanimation_p_p.h | 2 +- src/declarative/util/qdeclarativebehavior.cpp | 2 +- src/declarative/util/qdeclarativebehavior_p.h | 2 +- src/declarative/util/qdeclarativebind.cpp | 2 +- src/declarative/util/qdeclarativebind_p.h | 2 +- src/declarative/util/qdeclarativeconnections.cpp | 2 +- src/declarative/util/qdeclarativeconnections_p.h | 2 +- src/declarative/util/qdeclarativefontloader.cpp | 2 +- src/declarative/util/qdeclarativefontloader_p.h | 2 +- src/declarative/util/qdeclarativelistaccessor.cpp | 2 +- src/declarative/util/qdeclarativelistaccessor_p.h | 2 +- src/declarative/util/qdeclarativelistmodel.cpp | 2 +- src/declarative/util/qdeclarativelistmodel_p.h | 2 +- src/declarative/util/qdeclarativelistmodel_p_p.h | 2 +- .../util/qdeclarativelistmodelworkeragent.cpp | 2 +- .../util/qdeclarativelistmodelworkeragent_p.h | 2 +- .../util/qdeclarativenullablevalue_p_p.h | 2 +- .../util/qdeclarativeopenmetaobject.cpp | 2 +- .../util/qdeclarativeopenmetaobject_p.h | 2 +- src/declarative/util/qdeclarativepackage.cpp | 2 +- src/declarative/util/qdeclarativepackage_p.h | 2 +- src/declarative/util/qdeclarativepixmapcache.cpp | 2 +- src/declarative/util/qdeclarativepixmapcache_p.h | 2 +- .../util/qdeclarativepropertychanges.cpp | 2 +- .../util/qdeclarativepropertychanges_p.h | 2 +- src/declarative/util/qdeclarativepropertymap.cpp | 2 +- src/declarative/util/qdeclarativepropertymap.h | 2 +- .../util/qdeclarativesmoothedanimation.cpp | 2 +- .../util/qdeclarativesmoothedanimation_p.h | 2 +- .../util/qdeclarativesmoothedanimation_p_p.h | 2 +- .../util/qdeclarativespringanimation.cpp | 2 +- .../util/qdeclarativespringanimation_p.h | 2 +- src/declarative/util/qdeclarativestate.cpp | 2 +- src/declarative/util/qdeclarativestate_p.h | 2 +- src/declarative/util/qdeclarativestate_p_p.h | 2 +- src/declarative/util/qdeclarativestategroup.cpp | 2 +- src/declarative/util/qdeclarativestategroup_p.h | 2 +- .../util/qdeclarativestateoperations.cpp | 2 +- .../util/qdeclarativestateoperations_p.h | 2 +- src/declarative/util/qdeclarativestyledtext.cpp | 2 +- src/declarative/util/qdeclarativestyledtext_p.h | 2 +- src/declarative/util/qdeclarativesystempalette.cpp | 2 +- src/declarative/util/qdeclarativesystempalette_p.h | 2 +- src/declarative/util/qdeclarativetimeline.cpp | 2 +- src/declarative/util/qdeclarativetimeline_p_p.h | 2 +- src/declarative/util/qdeclarativetimer.cpp | 2 +- src/declarative/util/qdeclarativetimer_p.h | 2 +- src/declarative/util/qdeclarativetransition.cpp | 2 +- src/declarative/util/qdeclarativetransition_p.h | 2 +- .../util/qdeclarativetransitionmanager.cpp | 2 +- .../util/qdeclarativetransitionmanager_p_p.h | 2 +- src/declarative/util/qdeclarativeutilmodule_p.h | 2 +- src/declarative/util/qdeclarativeview.cpp | 2 +- src/declarative/util/qdeclarativeview.h | 2 +- src/declarative/util/qdeclarativexmllistmodel.cpp | 2 +- src/declarative/util/qdeclarativexmllistmodel_p.h | 2 +- src/declarative/util/qlistmodelinterface.cpp | 2 +- src/declarative/util/qlistmodelinterface_p.h | 2 +- src/gui/accessible/qaccessible.cpp | 2 +- src/gui/accessible/qaccessible.h | 2 +- src/gui/accessible/qaccessible2.cpp | 2 +- src/gui/accessible/qaccessible2.h | 2 +- src/gui/accessible/qaccessible_mac.mm | 2 +- src/gui/accessible/qaccessible_mac_carbon.cpp | 2 +- src/gui/accessible/qaccessible_mac_cocoa.mm | 2 +- src/gui/accessible/qaccessible_mac_p.h | 2 +- src/gui/accessible/qaccessible_unix.cpp | 2 +- src/gui/accessible/qaccessible_win.cpp | 2 +- src/gui/accessible/qaccessiblebridge.cpp | 2 +- src/gui/accessible/qaccessiblebridge.h | 2 +- src/gui/accessible/qaccessibleobject.cpp | 2 +- src/gui/accessible/qaccessibleobject.h | 2 +- src/gui/accessible/qaccessibleplugin.cpp | 2 +- src/gui/accessible/qaccessibleplugin.h | 2 +- src/gui/accessible/qaccessiblewidget.cpp | 2 +- src/gui/accessible/qaccessiblewidget.h | 2 +- src/gui/animation/qguivariantanimation.cpp | 2 +- src/gui/dialogs/qabstractpagesetupdialog.cpp | 2 +- src/gui/dialogs/qabstractpagesetupdialog.h | 2 +- src/gui/dialogs/qabstractpagesetupdialog_p.h | 2 +- src/gui/dialogs/qabstractprintdialog.cpp | 2 +- src/gui/dialogs/qabstractprintdialog.h | 2 +- src/gui/dialogs/qabstractprintdialog_p.h | 2 +- src/gui/dialogs/qcolordialog.cpp | 2 +- src/gui/dialogs/qcolordialog.h | 2 +- src/gui/dialogs/qcolordialog_mac.mm | 2 +- src/gui/dialogs/qcolordialog_p.h | 2 +- src/gui/dialogs/qcolordialog_symbian.cpp | 2 +- src/gui/dialogs/qdialog.cpp | 2 +- src/gui/dialogs/qdialog.h | 2 +- src/gui/dialogs/qdialog_p.h | 2 +- src/gui/dialogs/qdialogsbinarycompat_win.cpp | 2 +- src/gui/dialogs/qerrormessage.cpp | 2 +- src/gui/dialogs/qerrormessage.h | 2 +- src/gui/dialogs/qfiledialog.cpp | 2 +- src/gui/dialogs/qfiledialog.h | 2 +- src/gui/dialogs/qfiledialog.ui | 2 +- src/gui/dialogs/qfiledialog_embedded.ui | 2 +- src/gui/dialogs/qfiledialog_mac.mm | 2 +- src/gui/dialogs/qfiledialog_p.h | 2 +- src/gui/dialogs/qfiledialog_symbian.cpp | 2 +- src/gui/dialogs/qfiledialog_win.cpp | 2 +- src/gui/dialogs/qfiledialog_win_p.h | 2 +- src/gui/dialogs/qfileinfogatherer.cpp | 2 +- src/gui/dialogs/qfileinfogatherer_p.h | 2 +- src/gui/dialogs/qfilesystemmodel.cpp | 2 +- src/gui/dialogs/qfilesystemmodel.h | 2 +- src/gui/dialogs/qfilesystemmodel_p.h | 2 +- src/gui/dialogs/qfontdialog.cpp | 2 +- src/gui/dialogs/qfontdialog.h | 2 +- src/gui/dialogs/qfontdialog_mac.mm | 2 +- src/gui/dialogs/qfontdialog_p.h | 2 +- src/gui/dialogs/qfscompleter_p.h | 2 +- src/gui/dialogs/qinputdialog.cpp | 2 +- src/gui/dialogs/qinputdialog.h | 2 +- src/gui/dialogs/qmessagebox.cpp | 4 ++-- src/gui/dialogs/qmessagebox.h | 2 +- src/gui/dialogs/qnspanelproxy_mac.mm | 2 +- src/gui/dialogs/qpagesetupdialog.cpp | 2 +- src/gui/dialogs/qpagesetupdialog.h | 2 +- src/gui/dialogs/qpagesetupdialog_mac.mm | 2 +- src/gui/dialogs/qpagesetupdialog_unix.cpp | 2 +- src/gui/dialogs/qpagesetupdialog_unix_p.h | 2 +- src/gui/dialogs/qpagesetupdialog_win.cpp | 2 +- src/gui/dialogs/qprintdialog.h | 2 +- src/gui/dialogs/qprintdialog.qdoc | 2 +- src/gui/dialogs/qprintdialog_mac.mm | 2 +- src/gui/dialogs/qprintdialog_qws.cpp | 2 +- src/gui/dialogs/qprintdialog_unix.cpp | 2 +- src/gui/dialogs/qprintdialog_win.cpp | 2 +- src/gui/dialogs/qprintpreviewdialog.cpp | 2 +- src/gui/dialogs/qprintpreviewdialog.h | 2 +- src/gui/dialogs/qprogressdialog.cpp | 2 +- src/gui/dialogs/qprogressdialog.h | 2 +- src/gui/dialogs/qsidebar.cpp | 2 +- src/gui/dialogs/qsidebar_p.h | 2 +- src/gui/dialogs/qwizard.cpp | 2 +- src/gui/dialogs/qwizard.h | 2 +- src/gui/dialogs/qwizard_win.cpp | 2 +- src/gui/dialogs/qwizard_win_p.h | 2 +- src/gui/effects/qgraphicseffect.cpp | 2 +- src/gui/effects/qgraphicseffect.h | 2 +- src/gui/effects/qgraphicseffect_p.h | 2 +- src/gui/egl/qegl.cpp | 2 +- src/gui/egl/qegl_p.h | 2 +- src/gui/egl/qegl_qws.cpp | 2 +- src/gui/egl/qegl_stub.cpp | 2 +- src/gui/egl/qegl_symbian.cpp | 2 +- src/gui/egl/qegl_wince.cpp | 2 +- src/gui/egl/qegl_x11.cpp | 2 +- src/gui/egl/qeglcontext_p.h | 2 +- src/gui/egl/qeglproperties.cpp | 2 +- src/gui/egl/qeglproperties_p.h | 2 +- src/gui/egl/qeglproperties_stub.cpp | 2 +- src/gui/embedded/qcopchannel_qws.cpp | 2 +- src/gui/embedded/qcopchannel_qws.h | 2 +- src/gui/embedded/qdecoration_qws.cpp | 2 +- src/gui/embedded/qdecoration_qws.h | 2 +- src/gui/embedded/qdecorationdefault_qws.cpp | 2 +- src/gui/embedded/qdecorationdefault_qws.h | 2 +- src/gui/embedded/qdecorationfactory_qws.cpp | 2 +- src/gui/embedded/qdecorationfactory_qws.h | 2 +- src/gui/embedded/qdecorationplugin_qws.cpp | 2 +- src/gui/embedded/qdecorationplugin_qws.h | 2 +- src/gui/embedded/qdecorationstyled_qws.cpp | 2 +- src/gui/embedded/qdecorationstyled_qws.h | 2 +- src/gui/embedded/qdecorationwindows_qws.cpp | 2 +- src/gui/embedded/qdecorationwindows_qws.h | 2 +- src/gui/embedded/qdirectpainter_qws.cpp | 2 +- src/gui/embedded/qdirectpainter_qws.h | 2 +- src/gui/embedded/qkbd_defaultmap_qws_p.h | 2 +- src/gui/embedded/qkbd_qws.cpp | 2 +- src/gui/embedded/qkbd_qws.h | 2 +- src/gui/embedded/qkbd_qws_p.h | 2 +- src/gui/embedded/qkbddriverfactory_qws.cpp | 2 +- src/gui/embedded/qkbddriverfactory_qws.h | 2 +- src/gui/embedded/qkbddriverplugin_qws.cpp | 2 +- src/gui/embedded/qkbddriverplugin_qws.h | 2 +- src/gui/embedded/qkbdlinuxinput_qws.cpp | 2 +- src/gui/embedded/qkbdlinuxinput_qws.h | 2 +- src/gui/embedded/qkbdqnx_qws.cpp | 2 +- src/gui/embedded/qkbdqnx_qws.h | 2 +- src/gui/embedded/qkbdtty_qws.cpp | 2 +- src/gui/embedded/qkbdtty_qws.h | 2 +- src/gui/embedded/qkbdum_qws.cpp | 2 +- src/gui/embedded/qkbdum_qws.h | 2 +- src/gui/embedded/qkbdvfb_qws.cpp | 2 +- src/gui/embedded/qkbdvfb_qws.h | 2 +- src/gui/embedded/qlock.cpp | 2 +- src/gui/embedded/qlock_p.h | 2 +- src/gui/embedded/qmouse_qws.cpp | 2 +- src/gui/embedded/qmouse_qws.h | 2 +- src/gui/embedded/qmousedriverfactory_qws.cpp | 2 +- src/gui/embedded/qmousedriverfactory_qws.h | 2 +- src/gui/embedded/qmousedriverplugin_qws.cpp | 2 +- src/gui/embedded/qmousedriverplugin_qws.h | 2 +- src/gui/embedded/qmouselinuxinput_qws.cpp | 2 +- src/gui/embedded/qmouselinuxinput_qws.h | 2 +- src/gui/embedded/qmouselinuxtp_qws.cpp | 2 +- src/gui/embedded/qmouselinuxtp_qws.h | 2 +- src/gui/embedded/qmousepc_qws.cpp | 2 +- src/gui/embedded/qmousepc_qws.h | 2 +- src/gui/embedded/qmouseqnx_qws.cpp | 2 +- src/gui/embedded/qmouseqnx_qws.h | 2 +- src/gui/embedded/qmousetslib_qws.cpp | 2 +- src/gui/embedded/qmousetslib_qws.h | 2 +- src/gui/embedded/qmousevfb_qws.cpp | 2 +- src/gui/embedded/qmousevfb_qws.h | 2 +- src/gui/embedded/qscreen_qws.cpp | 2 +- src/gui/embedded/qscreen_qws.h | 2 +- src/gui/embedded/qscreendriverfactory_qws.cpp | 2 +- src/gui/embedded/qscreendriverfactory_qws.h | 2 +- src/gui/embedded/qscreendriverplugin_qws.cpp | 2 +- src/gui/embedded/qscreendriverplugin_qws.h | 2 +- src/gui/embedded/qscreenlinuxfb_qws.cpp | 2 +- src/gui/embedded/qscreenlinuxfb_qws.h | 2 +- src/gui/embedded/qscreenmulti_qws.cpp | 2 +- src/gui/embedded/qscreenmulti_qws_p.h | 2 +- src/gui/embedded/qscreenproxy_qws.cpp | 2 +- src/gui/embedded/qscreenproxy_qws.h | 2 +- src/gui/embedded/qscreenqnx_qws.cpp | 2 +- src/gui/embedded/qscreenqnx_qws.h | 2 +- src/gui/embedded/qscreentransformed_qws.cpp | 2 +- src/gui/embedded/qscreentransformed_qws.h | 2 +- src/gui/embedded/qscreenvfb_qws.cpp | 2 +- src/gui/embedded/qscreenvfb_qws.h | 2 +- src/gui/embedded/qsoundqss_qws.cpp | 2 +- src/gui/embedded/qsoundqss_qws.h | 2 +- src/gui/embedded/qtransportauth_qws.cpp | 2 +- src/gui/embedded/qtransportauth_qws.h | 2 +- src/gui/embedded/qtransportauth_qws_p.h | 2 +- src/gui/embedded/qtransportauthdefs_qws.h | 2 +- src/gui/embedded/qunixsocket.cpp | 2 +- src/gui/embedded/qunixsocket_p.h | 2 +- src/gui/embedded/qunixsocketserver.cpp | 2 +- src/gui/embedded/qunixsocketserver_p.h | 2 +- src/gui/embedded/qvfbhdr.h | 2 +- src/gui/embedded/qwindowsystem_p.h | 2 +- src/gui/embedded/qwindowsystem_qws.cpp | 2 +- src/gui/embedded/qwindowsystem_qws.h | 2 +- src/gui/embedded/qwscommand_qws.cpp | 2 +- src/gui/embedded/qwscommand_qws_p.h | 2 +- src/gui/embedded/qwscursor_qws.cpp | 2 +- src/gui/embedded/qwscursor_qws.h | 2 +- src/gui/embedded/qwsdisplay_qws.h | 2 +- src/gui/embedded/qwsdisplay_qws_p.h | 2 +- src/gui/embedded/qwsembedwidget.cpp | 2 +- src/gui/embedded/qwsembedwidget.h | 2 +- src/gui/embedded/qwsevent_qws.cpp | 2 +- src/gui/embedded/qwsevent_qws.h | 2 +- src/gui/embedded/qwslock.cpp | 2 +- src/gui/embedded/qwslock_p.h | 2 +- src/gui/embedded/qwsmanager_p.h | 2 +- src/gui/embedded/qwsmanager_qws.cpp | 2 +- src/gui/embedded/qwsmanager_qws.h | 2 +- src/gui/embedded/qwsproperty_qws.cpp | 2 +- src/gui/embedded/qwsproperty_qws.h | 2 +- src/gui/embedded/qwsprotocolitem_qws.h | 2 +- src/gui/embedded/qwssharedmemory.cpp | 2 +- src/gui/embedded/qwssharedmemory_p.h | 2 +- src/gui/embedded/qwssignalhandler.cpp | 2 +- src/gui/embedded/qwssignalhandler_p.h | 2 +- src/gui/embedded/qwssocket_qws.cpp | 2 +- src/gui/embedded/qwssocket_qws.h | 2 +- src/gui/embedded/qwsutils_qws.h | 2 +- src/gui/graphicsview/qgraph_p.h | 2 +- src/gui/graphicsview/qgraphicsanchorlayout.cpp | 2 +- src/gui/graphicsview/qgraphicsanchorlayout.h | 2 +- src/gui/graphicsview/qgraphicsanchorlayout_p.cpp | 2 +- src/gui/graphicsview/qgraphicsanchorlayout_p.h | 2 +- src/gui/graphicsview/qgraphicsgridlayout.cpp | 2 +- src/gui/graphicsview/qgraphicsgridlayout.h | 2 +- src/gui/graphicsview/qgraphicsitem.cpp | 2 +- src/gui/graphicsview/qgraphicsitem.h | 2 +- src/gui/graphicsview/qgraphicsitem_p.h | 2 +- src/gui/graphicsview/qgraphicsitemanimation.cpp | 2 +- src/gui/graphicsview/qgraphicsitemanimation.h | 2 +- src/gui/graphicsview/qgraphicslayout.cpp | 2 +- src/gui/graphicsview/qgraphicslayout.h | 2 +- src/gui/graphicsview/qgraphicslayout_p.cpp | 2 +- src/gui/graphicsview/qgraphicslayout_p.h | 2 +- src/gui/graphicsview/qgraphicslayoutitem.cpp | 2 +- src/gui/graphicsview/qgraphicslayoutitem.h | 2 +- src/gui/graphicsview/qgraphicslayoutitem_p.h | 2 +- src/gui/graphicsview/qgraphicslinearlayout.cpp | 2 +- src/gui/graphicsview/qgraphicslinearlayout.h | 2 +- src/gui/graphicsview/qgraphicsproxywidget.cpp | 2 +- src/gui/graphicsview/qgraphicsproxywidget.h | 2 +- src/gui/graphicsview/qgraphicsproxywidget_p.h | 2 +- src/gui/graphicsview/qgraphicsscene.cpp | 2 +- src/gui/graphicsview/qgraphicsscene.h | 2 +- src/gui/graphicsview/qgraphicsscene_bsp.cpp | 2 +- src/gui/graphicsview/qgraphicsscene_bsp_p.h | 2 +- src/gui/graphicsview/qgraphicsscene_p.h | 2 +- .../graphicsview/qgraphicsscenebsptreeindex.cpp | 2 +- .../graphicsview/qgraphicsscenebsptreeindex_p.h | 2 +- src/gui/graphicsview/qgraphicssceneevent.cpp | 2 +- src/gui/graphicsview/qgraphicssceneevent.h | 2 +- src/gui/graphicsview/qgraphicssceneindex.cpp | 2 +- src/gui/graphicsview/qgraphicssceneindex_p.h | 2 +- src/gui/graphicsview/qgraphicsscenelinearindex.cpp | 2 +- src/gui/graphicsview/qgraphicsscenelinearindex_p.h | 2 +- src/gui/graphicsview/qgraphicstransform.cpp | 2 +- src/gui/graphicsview/qgraphicstransform.h | 2 +- src/gui/graphicsview/qgraphicstransform_p.h | 2 +- src/gui/graphicsview/qgraphicsview.cpp | 2 +- src/gui/graphicsview/qgraphicsview.h | 2 +- src/gui/graphicsview/qgraphicsview_p.h | 2 +- src/gui/graphicsview/qgraphicswidget.cpp | 2 +- src/gui/graphicsview/qgraphicswidget.h | 2 +- src/gui/graphicsview/qgraphicswidget_p.cpp | 2 +- src/gui/graphicsview/qgraphicswidget_p.h | 2 +- src/gui/graphicsview/qgridlayoutengine.cpp | 2 +- src/gui/graphicsview/qgridlayoutengine_p.h | 2 +- src/gui/graphicsview/qsimplex_p.cpp | 2 +- src/gui/graphicsview/qsimplex_p.h | 2 +- src/gui/image/qbitmap.cpp | 2 +- src/gui/image/qbitmap.h | 2 +- src/gui/image/qbmphandler.cpp | 2 +- src/gui/image/qbmphandler_p.h | 2 +- src/gui/image/qgifhandler.cpp | 2 +- src/gui/image/qgifhandler_p.h | 2 +- src/gui/image/qicon.cpp | 2 +- src/gui/image/qicon.h | 2 +- src/gui/image/qicon_p.h | 2 +- src/gui/image/qiconengine.cpp | 2 +- src/gui/image/qiconengine.h | 2 +- src/gui/image/qiconengineplugin.cpp | 2 +- src/gui/image/qiconengineplugin.h | 2 +- src/gui/image/qiconloader.cpp | 2 +- src/gui/image/qiconloader_p.h | 2 +- src/gui/image/qimage.cpp | 2 +- src/gui/image/qimage.h | 2 +- src/gui/image/qimage_neon.cpp | 2 +- src/gui/image/qimage_p.h | 2 +- src/gui/image/qimage_sse2.cpp | 2 +- src/gui/image/qimage_ssse3.cpp | 2 +- src/gui/image/qimageiohandler.cpp | 2 +- src/gui/image/qimageiohandler.h | 2 +- src/gui/image/qimagepixmapcleanuphooks.cpp | 2 +- src/gui/image/qimagepixmapcleanuphooks_p.h | 2 +- src/gui/image/qimagereader.cpp | 2 +- src/gui/image/qimagereader.h | 2 +- src/gui/image/qimagewriter.cpp | 2 +- src/gui/image/qimagewriter.h | 2 +- src/gui/image/qjpeghandler.cpp | 2 +- src/gui/image/qjpeghandler_p.h | 2 +- src/gui/image/qmnghandler.cpp | 2 +- src/gui/image/qmnghandler_p.h | 2 +- src/gui/image/qmovie.cpp | 2 +- src/gui/image/qmovie.h | 2 +- src/gui/image/qnativeimage.cpp | 2 +- src/gui/image/qnativeimage_p.h | 2 +- src/gui/image/qpaintengine_pic.cpp | 2 +- src/gui/image/qpaintengine_pic_p.h | 2 +- src/gui/image/qpicture.cpp | 2 +- src/gui/image/qpicture.h | 2 +- src/gui/image/qpicture_p.h | 2 +- src/gui/image/qpictureformatplugin.cpp | 2 +- src/gui/image/qpictureformatplugin.h | 2 +- src/gui/image/qpixmap.cpp | 2 +- src/gui/image/qpixmap.h | 2 +- src/gui/image/qpixmap_mac.cpp | 2 +- src/gui/image/qpixmap_mac_p.h | 2 +- src/gui/image/qpixmap_qws.cpp | 2 +- src/gui/image/qpixmap_raster.cpp | 2 +- src/gui/image/qpixmap_raster_p.h | 2 +- src/gui/image/qpixmap_s60.cpp | 2 +- src/gui/image/qpixmap_s60_p.h | 2 +- src/gui/image/qpixmap_win.cpp | 2 +- src/gui/image/qpixmap_x11.cpp | 2 +- src/gui/image/qpixmap_x11_p.h | 2 +- src/gui/image/qpixmapcache.cpp | 2 +- src/gui/image/qpixmapcache.h | 2 +- src/gui/image/qpixmapcache_p.h | 2 +- src/gui/image/qpixmapdata.cpp | 2 +- src/gui/image/qpixmapdata_p.h | 2 +- src/gui/image/qpixmapdatafactory.cpp | 2 +- src/gui/image/qpixmapdatafactory_p.h | 2 +- src/gui/image/qpixmapfilter.cpp | 2 +- src/gui/image/qpixmapfilter_p.h | 2 +- src/gui/image/qpnghandler.cpp | 2 +- src/gui/image/qpnghandler_p.h | 2 +- src/gui/image/qppmhandler.cpp | 2 +- src/gui/image/qppmhandler_p.h | 2 +- src/gui/image/qtiffhandler.cpp | 2 +- src/gui/image/qtiffhandler_p.h | 2 +- src/gui/image/qxbmhandler.cpp | 2 +- src/gui/image/qxbmhandler_p.h | 2 +- src/gui/image/qxpmhandler.cpp | 2 +- src/gui/image/qxpmhandler_p.h | 2 +- src/gui/inputmethod/qcoefepinputcontext_p.h | 2 +- src/gui/inputmethod/qcoefepinputcontext_s60.cpp | 2 +- src/gui/inputmethod/qinputcontext.cpp | 2 +- src/gui/inputmethod/qinputcontext.h | 2 +- src/gui/inputmethod/qinputcontext_p.h | 2 +- src/gui/inputmethod/qinputcontextfactory.cpp | 2 +- src/gui/inputmethod/qinputcontextfactory.h | 2 +- src/gui/inputmethod/qinputcontextplugin.cpp | 2 +- src/gui/inputmethod/qinputcontextplugin.h | 2 +- src/gui/inputmethod/qmacinputcontext_mac.cpp | 2 +- src/gui/inputmethod/qmacinputcontext_p.h | 2 +- src/gui/inputmethod/qwininputcontext_p.h | 2 +- src/gui/inputmethod/qwininputcontext_win.cpp | 2 +- src/gui/inputmethod/qwsinputcontext_p.h | 2 +- src/gui/inputmethod/qwsinputcontext_qws.cpp | 2 +- src/gui/inputmethod/qximinputcontext_p.h | 2 +- src/gui/inputmethod/qximinputcontext_x11.cpp | 2 +- src/gui/itemviews/qabstractitemdelegate.cpp | 2 +- src/gui/itemviews/qabstractitemdelegate.h | 2 +- src/gui/itemviews/qabstractitemview.cpp | 2 +- src/gui/itemviews/qabstractitemview.h | 2 +- src/gui/itemviews/qabstractitemview_p.h | 2 +- src/gui/itemviews/qabstractproxymodel.cpp | 2 +- src/gui/itemviews/qabstractproxymodel.h | 2 +- src/gui/itemviews/qabstractproxymodel_p.h | 2 +- src/gui/itemviews/qbsptree.cpp | 2 +- src/gui/itemviews/qbsptree_p.h | 2 +- src/gui/itemviews/qcolumnview.cpp | 2 +- src/gui/itemviews/qcolumnview.h | 2 +- src/gui/itemviews/qcolumnview_p.h | 2 +- src/gui/itemviews/qcolumnviewgrip.cpp | 2 +- src/gui/itemviews/qcolumnviewgrip_p.h | 2 +- src/gui/itemviews/qdatawidgetmapper.cpp | 2 +- src/gui/itemviews/qdatawidgetmapper.h | 2 +- src/gui/itemviews/qdirmodel.cpp | 2 +- src/gui/itemviews/qdirmodel.h | 2 +- src/gui/itemviews/qfileiconprovider.cpp | 2 +- src/gui/itemviews/qfileiconprovider.h | 2 +- src/gui/itemviews/qheaderview.cpp | 2 +- src/gui/itemviews/qheaderview.h | 2 +- src/gui/itemviews/qheaderview_p.h | 2 +- src/gui/itemviews/qitemdelegate.cpp | 2 +- src/gui/itemviews/qitemdelegate.h | 2 +- src/gui/itemviews/qitemeditorfactory.cpp | 2 +- src/gui/itemviews/qitemeditorfactory.h | 2 +- src/gui/itemviews/qitemeditorfactory_p.h | 2 +- src/gui/itemviews/qitemselectionmodel.cpp | 2 +- src/gui/itemviews/qitemselectionmodel.h | 2 +- src/gui/itemviews/qitemselectionmodel_p.h | 2 +- src/gui/itemviews/qlistview.cpp | 2 +- src/gui/itemviews/qlistview.h | 2 +- src/gui/itemviews/qlistview_p.h | 2 +- src/gui/itemviews/qlistwidget.cpp | 2 +- src/gui/itemviews/qlistwidget.h | 2 +- src/gui/itemviews/qlistwidget_p.h | 2 +- src/gui/itemviews/qproxymodel.cpp | 2 +- src/gui/itemviews/qproxymodel.h | 2 +- src/gui/itemviews/qproxymodel_p.h | 2 +- src/gui/itemviews/qsortfilterproxymodel.cpp | 2 +- src/gui/itemviews/qsortfilterproxymodel.h | 2 +- src/gui/itemviews/qstandarditemmodel.cpp | 2 +- src/gui/itemviews/qstandarditemmodel.h | 2 +- src/gui/itemviews/qstandarditemmodel_p.h | 2 +- src/gui/itemviews/qstringlistmodel.cpp | 2 +- src/gui/itemviews/qstringlistmodel.h | 2 +- src/gui/itemviews/qstyleditemdelegate.cpp | 2 +- src/gui/itemviews/qstyleditemdelegate.h | 2 +- src/gui/itemviews/qtableview.cpp | 2 +- src/gui/itemviews/qtableview.h | 2 +- src/gui/itemviews/qtableview_p.h | 2 +- src/gui/itemviews/qtablewidget.cpp | 2 +- src/gui/itemviews/qtablewidget.h | 2 +- src/gui/itemviews/qtablewidget_p.h | 2 +- src/gui/itemviews/qtreeview.cpp | 2 +- src/gui/itemviews/qtreeview.h | 2 +- src/gui/itemviews/qtreeview_p.h | 2 +- src/gui/itemviews/qtreewidget.cpp | 2 +- src/gui/itemviews/qtreewidget.h | 2 +- src/gui/itemviews/qtreewidget_p.h | 2 +- src/gui/itemviews/qtreewidgetitemiterator.cpp | 2 +- src/gui/itemviews/qtreewidgetitemiterator.h | 2 +- src/gui/itemviews/qtreewidgetitemiterator_p.h | 2 +- src/gui/itemviews/qwidgetitemdata_p.h | 2 +- src/gui/kernel/qaction.cpp | 2 +- src/gui/kernel/qaction.h | 2 +- src/gui/kernel/qaction_p.h | 2 +- src/gui/kernel/qactiongroup.cpp | 2 +- src/gui/kernel/qactiongroup.h | 2 +- src/gui/kernel/qapplication.cpp | 2 +- src/gui/kernel/qapplication.h | 2 +- src/gui/kernel/qapplication_mac.mm | 2 +- src/gui/kernel/qapplication_p.h | 2 +- src/gui/kernel/qapplication_qws.cpp | 2 +- src/gui/kernel/qapplication_s60.cpp | 2 +- src/gui/kernel/qapplication_win.cpp | 2 +- src/gui/kernel/qapplication_x11.cpp | 2 +- src/gui/kernel/qboxlayout.cpp | 2 +- src/gui/kernel/qboxlayout.h | 2 +- src/gui/kernel/qclipboard.cpp | 2 +- src/gui/kernel/qclipboard.h | 2 +- src/gui/kernel/qclipboard_mac.cpp | 2 +- src/gui/kernel/qclipboard_p.h | 2 +- src/gui/kernel/qclipboard_qws.cpp | 2 +- src/gui/kernel/qclipboard_s60.cpp | 2 +- src/gui/kernel/qclipboard_win.cpp | 2 +- src/gui/kernel/qclipboard_x11.cpp | 2 +- src/gui/kernel/qcocoaapplication_mac.mm | 2 +- src/gui/kernel/qcocoaapplication_mac_p.h | 2 +- src/gui/kernel/qcocoaapplicationdelegate_mac.mm | 2 +- src/gui/kernel/qcocoaapplicationdelegate_mac_p.h | 2 +- src/gui/kernel/qcocoamenuloader_mac.mm | 2 +- src/gui/kernel/qcocoamenuloader_mac_p.h | 2 +- src/gui/kernel/qcocoapanel_mac.mm | 2 +- src/gui/kernel/qcocoapanel_mac_p.h | 2 +- src/gui/kernel/qcocoasharedwindowmethods_mac_p.h | 2 +- src/gui/kernel/qcocoaview_mac.mm | 2 +- src/gui/kernel/qcocoaview_mac_p.h | 2 +- src/gui/kernel/qcocoawindow_mac.mm | 2 +- src/gui/kernel/qcocoawindow_mac_p.h | 2 +- src/gui/kernel/qcocoawindowcustomthemeframe_mac.mm | 2 +- .../kernel/qcocoawindowcustomthemeframe_mac_p.h | 2 +- src/gui/kernel/qcocoawindowdelegate_mac.mm | 2 +- src/gui/kernel/qcocoawindowdelegate_mac_p.h | 2 +- src/gui/kernel/qcursor.cpp | 2 +- src/gui/kernel/qcursor.h | 2 +- src/gui/kernel/qcursor_mac.mm | 2 +- src/gui/kernel/qcursor_p.h | 2 +- src/gui/kernel/qcursor_qws.cpp | 2 +- src/gui/kernel/qcursor_s60.cpp | 2 +- src/gui/kernel/qcursor_win.cpp | 2 +- src/gui/kernel/qcursor_x11.cpp | 2 +- src/gui/kernel/qdesktopwidget.cpp | 2 +- src/gui/kernel/qdesktopwidget.h | 2 +- src/gui/kernel/qdesktopwidget.qdoc | 2 +- src/gui/kernel/qdesktopwidget_mac.mm | 2 +- src/gui/kernel/qdesktopwidget_mac_p.h | 2 +- src/gui/kernel/qdesktopwidget_qws.cpp | 2 +- src/gui/kernel/qdesktopwidget_s60.cpp | 2 +- src/gui/kernel/qdesktopwidget_win.cpp | 2 +- src/gui/kernel/qdesktopwidget_x11.cpp | 2 +- src/gui/kernel/qdnd.cpp | 2 +- src/gui/kernel/qdnd_mac.mm | 2 +- src/gui/kernel/qdnd_p.h | 2 +- src/gui/kernel/qdnd_qws.cpp | 2 +- src/gui/kernel/qdnd_s60.cpp | 2 +- src/gui/kernel/qdnd_win.cpp | 2 +- src/gui/kernel/qdnd_x11.cpp | 2 +- src/gui/kernel/qdrag.cpp | 2 +- src/gui/kernel/qdrag.h | 2 +- src/gui/kernel/qevent.cpp | 2 +- src/gui/kernel/qevent.h | 2 +- src/gui/kernel/qevent_p.h | 2 +- src/gui/kernel/qeventdispatcher_glib_qws.cpp | 2 +- src/gui/kernel/qeventdispatcher_glib_qws_p.h | 2 +- src/gui/kernel/qeventdispatcher_mac.mm | 2 +- src/gui/kernel/qeventdispatcher_mac_p.h | 2 +- src/gui/kernel/qeventdispatcher_qws.cpp | 2 +- src/gui/kernel/qeventdispatcher_qws_p.h | 2 +- src/gui/kernel/qeventdispatcher_s60.cpp | 2 +- src/gui/kernel/qeventdispatcher_s60_p.h | 2 +- src/gui/kernel/qeventdispatcher_x11.cpp | 2 +- src/gui/kernel/qeventdispatcher_x11_p.h | 2 +- src/gui/kernel/qformlayout.cpp | 2 +- src/gui/kernel/qformlayout.h | 2 +- src/gui/kernel/qgesture.cpp | 2 +- src/gui/kernel/qgesture.h | 2 +- src/gui/kernel/qgesture_p.h | 2 +- src/gui/kernel/qgesturemanager.cpp | 2 +- src/gui/kernel/qgesturemanager_p.h | 2 +- src/gui/kernel/qgesturerecognizer.cpp | 2 +- src/gui/kernel/qgesturerecognizer.h | 2 +- src/gui/kernel/qgridlayout.cpp | 2 +- src/gui/kernel/qgridlayout.h | 2 +- src/gui/kernel/qguieventdispatcher_glib.cpp | 2 +- src/gui/kernel/qguieventdispatcher_glib_p.h | 2 +- src/gui/kernel/qguifunctions_wince.cpp | 2 +- src/gui/kernel/qguifunctions_wince.h | 2 +- src/gui/kernel/qguiplatformplugin.cpp | 2 +- src/gui/kernel/qguiplatformplugin_p.h | 2 +- src/gui/kernel/qguivariant.cpp | 2 +- src/gui/kernel/qkde.cpp | 2 +- src/gui/kernel/qkde_p.h | 2 +- src/gui/kernel/qkeymapper.cpp | 2 +- src/gui/kernel/qkeymapper_mac.cpp | 2 +- src/gui/kernel/qkeymapper_p.h | 2 +- src/gui/kernel/qkeymapper_qws.cpp | 2 +- src/gui/kernel/qkeymapper_s60.cpp | 2 +- src/gui/kernel/qkeymapper_win.cpp | 2 +- src/gui/kernel/qkeymapper_x11.cpp | 2 +- src/gui/kernel/qkeymapper_x11_p.cpp | 2 +- src/gui/kernel/qkeysequence.cpp | 2 +- src/gui/kernel/qkeysequence.h | 2 +- src/gui/kernel/qkeysequence_p.h | 2 +- src/gui/kernel/qlayout.cpp | 2 +- src/gui/kernel/qlayout.h | 2 +- src/gui/kernel/qlayout_p.h | 2 +- src/gui/kernel/qlayoutengine.cpp | 2 +- src/gui/kernel/qlayoutengine_p.h | 2 +- src/gui/kernel/qlayoutitem.cpp | 2 +- src/gui/kernel/qlayoutitem.h | 2 +- src/gui/kernel/qmacdefines_mac.h | 2 +- src/gui/kernel/qmacgesturerecognizer_mac.mm | 2 +- src/gui/kernel/qmacgesturerecognizer_mac_p.h | 2 +- src/gui/kernel/qmime.cpp | 2 +- src/gui/kernel/qmime.h | 2 +- src/gui/kernel/qmime_mac.cpp | 2 +- src/gui/kernel/qmime_win.cpp | 2 +- src/gui/kernel/qmotifdnd_x11.cpp | 2 +- src/gui/kernel/qmultitouch_mac.mm | 2 +- src/gui/kernel/qmultitouch_mac_p.h | 2 +- src/gui/kernel/qnsframeview_mac_p.h | 2 +- src/gui/kernel/qnsthemeframe_mac_p.h | 2 +- src/gui/kernel/qnstitledframe_mac_p.h | 2 +- src/gui/kernel/qole_win.cpp | 2 +- src/gui/kernel/qpalette.cpp | 2 +- src/gui/kernel/qpalette.h | 2 +- src/gui/kernel/qsessionmanager.h | 2 +- src/gui/kernel/qsessionmanager_qws.cpp | 2 +- src/gui/kernel/qshortcut.cpp | 2 +- src/gui/kernel/qshortcut.h | 2 +- src/gui/kernel/qshortcutmap.cpp | 2 +- src/gui/kernel/qshortcutmap_p.h | 2 +- src/gui/kernel/qsizepolicy.h | 2 +- src/gui/kernel/qsizepolicy.qdoc | 2 +- src/gui/kernel/qsoftkeymanager.cpp | 2 +- src/gui/kernel/qsoftkeymanager_common_p.h | 2 +- src/gui/kernel/qsoftkeymanager_p.h | 2 +- src/gui/kernel/qsoftkeymanager_s60.cpp | 2 +- src/gui/kernel/qsoftkeymanager_s60_p.h | 2 +- src/gui/kernel/qsound.cpp | 2 +- src/gui/kernel/qsound.h | 2 +- src/gui/kernel/qsound_mac.mm | 2 +- src/gui/kernel/qsound_p.h | 2 +- src/gui/kernel/qsound_qws.cpp | 2 +- src/gui/kernel/qsound_s60.cpp | 2 +- src/gui/kernel/qsound_win.cpp | 2 +- src/gui/kernel/qsound_x11.cpp | 2 +- src/gui/kernel/qstackedlayout.cpp | 2 +- src/gui/kernel/qstackedlayout.h | 2 +- src/gui/kernel/qstandardgestures.cpp | 2 +- src/gui/kernel/qstandardgestures_p.h | 2 +- src/gui/kernel/qt_cocoa_helpers_mac.mm | 2 +- src/gui/kernel/qt_cocoa_helpers_mac_p.h | 2 +- src/gui/kernel/qt_gui_pch.h | 2 +- src/gui/kernel/qt_mac.cpp | 2 +- src/gui/kernel/qt_mac_p.h | 2 +- src/gui/kernel/qt_s60_p.h | 2 +- src/gui/kernel/qt_x11_p.h | 2 +- src/gui/kernel/qtooltip.cpp | 2 +- src/gui/kernel/qtooltip.h | 2 +- src/gui/kernel/qwhatsthis.cpp | 2 +- src/gui/kernel/qwhatsthis.h | 2 +- src/gui/kernel/qwidget.cpp | 2 +- src/gui/kernel/qwidget.h | 2 +- src/gui/kernel/qwidget_mac.mm | 2 +- src/gui/kernel/qwidget_p.h | 2 +- src/gui/kernel/qwidget_qws.cpp | 2 +- src/gui/kernel/qwidget_s60.cpp | 2 +- src/gui/kernel/qwidget_win.cpp | 2 +- src/gui/kernel/qwidget_wince.cpp | 2 +- src/gui/kernel/qwidget_x11.cpp | 2 +- src/gui/kernel/qwidgetaction.cpp | 2 +- src/gui/kernel/qwidgetaction.h | 2 +- src/gui/kernel/qwidgetaction_p.h | 2 +- src/gui/kernel/qwidgetcreate_x11.cpp | 2 +- src/gui/kernel/qwindowdefs.h | 2 +- src/gui/kernel/qwindowdefs_win.h | 2 +- .../kernel/qwinnativepangesturerecognizer_win.cpp | 2 +- .../kernel/qwinnativepangesturerecognizer_win_p.h | 2 +- src/gui/kernel/qx11embed_x11.cpp | 2 +- src/gui/kernel/qx11embed_x11.h | 2 +- src/gui/kernel/qx11info_x11.cpp | 2 +- src/gui/kernel/qx11info_x11.h | 2 +- src/gui/math3d/qgenericmatrix.cpp | 2 +- src/gui/math3d/qgenericmatrix.h | 2 +- src/gui/math3d/qmatrix4x4.cpp | 2 +- src/gui/math3d/qmatrix4x4.h | 2 +- src/gui/math3d/qquaternion.cpp | 2 +- src/gui/math3d/qquaternion.h | 2 +- src/gui/math3d/qvector2d.cpp | 2 +- src/gui/math3d/qvector2d.h | 2 +- src/gui/math3d/qvector3d.cpp | 2 +- src/gui/math3d/qvector3d.h | 2 +- src/gui/math3d/qvector4d.cpp | 2 +- src/gui/math3d/qvector4d.h | 2 +- src/gui/painting/makepsheader.pl | 2 +- src/gui/painting/qbackingstore.cpp | 2 +- src/gui/painting/qbackingstore_p.h | 2 +- src/gui/painting/qbezier.cpp | 2 +- src/gui/painting/qbezier_p.h | 2 +- src/gui/painting/qblendfunctions.cpp | 2 +- src/gui/painting/qblendfunctions_p.h | 2 +- src/gui/painting/qbrush.cpp | 2 +- src/gui/painting/qbrush.h | 2 +- src/gui/painting/qcolor.cpp | 2 +- src/gui/painting/qcolor.h | 2 +- src/gui/painting/qcolor_p.cpp | 2 +- src/gui/painting/qcolor_p.h | 2 +- src/gui/painting/qcolormap.h | 2 +- src/gui/painting/qcolormap.qdoc | 2 +- src/gui/painting/qcolormap_mac.cpp | 2 +- src/gui/painting/qcolormap_qws.cpp | 2 +- src/gui/painting/qcolormap_s60.cpp | 2 +- src/gui/painting/qcolormap_win.cpp | 2 +- src/gui/painting/qcolormap_x11.cpp | 2 +- src/gui/painting/qcssutil.cpp | 2 +- src/gui/painting/qcssutil_p.h | 2 +- src/gui/painting/qcups.cpp | 2 +- src/gui/painting/qcups_p.h | 2 +- src/gui/painting/qdatabuffer_p.h | 2 +- src/gui/painting/qdrawhelper.cpp | 2 +- src/gui/painting/qdrawhelper_arm_simd.cpp | 2 +- src/gui/painting/qdrawhelper_arm_simd_p.h | 2 +- src/gui/painting/qdrawhelper_iwmmxt.cpp | 2 +- src/gui/painting/qdrawhelper_mmx.cpp | 2 +- src/gui/painting/qdrawhelper_mmx3dnow.cpp | 2 +- src/gui/painting/qdrawhelper_mmx_p.h | 2 +- src/gui/painting/qdrawhelper_neon.cpp | 2 +- src/gui/painting/qdrawhelper_neon_asm.S | 2 +- src/gui/painting/qdrawhelper_neon_p.h | 2 +- src/gui/painting/qdrawhelper_p.h | 2 +- src/gui/painting/qdrawhelper_sse.cpp | 2 +- src/gui/painting/qdrawhelper_sse2.cpp | 2 +- src/gui/painting/qdrawhelper_sse3dnow.cpp | 2 +- src/gui/painting/qdrawhelper_sse_p.h | 2 +- src/gui/painting/qdrawhelper_ssse3.cpp | 2 +- src/gui/painting/qdrawhelper_x86_p.h | 2 +- src/gui/painting/qdrawingprimitive_sse2_p.h | 2 +- src/gui/painting/qdrawutil.cpp | 2 +- src/gui/painting/qdrawutil.h | 2 +- src/gui/painting/qemulationpaintengine.cpp | 2 +- src/gui/painting/qemulationpaintengine_p.h | 2 +- src/gui/painting/qfixed_p.h | 2 +- src/gui/painting/qgraphicssystem.cpp | 2 +- src/gui/painting/qgraphicssystem_mac.cpp | 2 +- src/gui/painting/qgraphicssystem_mac_p.h | 2 +- src/gui/painting/qgraphicssystem_p.h | 2 +- src/gui/painting/qgraphicssystem_qws.cpp | 2 +- src/gui/painting/qgraphicssystem_qws_p.h | 2 +- src/gui/painting/qgraphicssystem_raster.cpp | 2 +- src/gui/painting/qgraphicssystem_raster_p.h | 2 +- src/gui/painting/qgraphicssystem_runtime.cpp | 2 +- src/gui/painting/qgraphicssystem_runtime_p.h | 2 +- src/gui/painting/qgraphicssystemfactory.cpp | 2 +- src/gui/painting/qgraphicssystemfactory_p.h | 2 +- src/gui/painting/qgraphicssystemplugin.cpp | 2 +- src/gui/painting/qgraphicssystemplugin_p.h | 2 +- src/gui/painting/qgrayraster.c | 2 +- src/gui/painting/qgrayraster_p.h | 2 +- src/gui/painting/qimagescale.cpp | 2 +- src/gui/painting/qimagescale_p.h | 2 +- src/gui/painting/qmath_p.h | 2 +- src/gui/painting/qmatrix.cpp | 2 +- src/gui/painting/qmatrix.h | 2 +- src/gui/painting/qmemrotate.cpp | 2 +- src/gui/painting/qmemrotate_p.h | 2 +- src/gui/painting/qoutlinemapper.cpp | 2 +- src/gui/painting/qoutlinemapper_p.h | 2 +- src/gui/painting/qpaintbuffer.cpp | 2 +- src/gui/painting/qpaintbuffer_p.h | 2 +- src/gui/painting/qpaintdevice.cpp | 2 +- src/gui/painting/qpaintdevice.h | 2 +- src/gui/painting/qpaintdevice.qdoc | 2 +- src/gui/painting/qpaintdevice_mac.cpp | 2 +- src/gui/painting/qpaintdevice_qws.cpp | 2 +- src/gui/painting/qpaintdevice_win.cpp | 2 +- src/gui/painting/qpaintdevice_x11.cpp | 2 +- src/gui/painting/qpaintengine.cpp | 2 +- src/gui/painting/qpaintengine.h | 2 +- src/gui/painting/qpaintengine_alpha.cpp | 2 +- src/gui/painting/qpaintengine_alpha_p.h | 2 +- src/gui/painting/qpaintengine_mac.cpp | 2 +- src/gui/painting/qpaintengine_mac_p.h | 2 +- src/gui/painting/qpaintengine_p.h | 2 +- src/gui/painting/qpaintengine_preview.cpp | 2 +- src/gui/painting/qpaintengine_preview_p.h | 2 +- src/gui/painting/qpaintengine_raster.cpp | 2 +- src/gui/painting/qpaintengine_raster_p.h | 2 +- src/gui/painting/qpaintengine_s60.cpp | 2 +- src/gui/painting/qpaintengine_s60_p.h | 2 +- src/gui/painting/qpaintengine_x11.cpp | 2 +- src/gui/painting/qpaintengine_x11_p.h | 2 +- src/gui/painting/qpaintengineex.cpp | 2 +- src/gui/painting/qpaintengineex_p.h | 2 +- src/gui/painting/qpainter.cpp | 2 +- src/gui/painting/qpainter.h | 2 +- src/gui/painting/qpainter_p.h | 2 +- src/gui/painting/qpainterpath.cpp | 2 +- src/gui/painting/qpainterpath.h | 2 +- src/gui/painting/qpainterpath_p.h | 2 +- src/gui/painting/qpathclipper.cpp | 2 +- src/gui/painting/qpathclipper_p.h | 2 +- src/gui/painting/qpdf.cpp | 2 +- src/gui/painting/qpdf_p.h | 2 +- src/gui/painting/qpen.cpp | 2 +- src/gui/painting/qpen.h | 2 +- src/gui/painting/qpen_p.h | 2 +- src/gui/painting/qpolygon.cpp | 2 +- src/gui/painting/qpolygon.h | 2 +- src/gui/painting/qpolygonclipper_p.h | 2 +- src/gui/painting/qprintengine.h | 2 +- src/gui/painting/qprintengine_mac.mm | 2 +- src/gui/painting/qprintengine_mac_p.h | 2 +- src/gui/painting/qprintengine_pdf.cpp | 2 +- src/gui/painting/qprintengine_pdf_p.h | 2 +- src/gui/painting/qprintengine_ps.cpp | 2 +- src/gui/painting/qprintengine_ps_p.h | 2 +- src/gui/painting/qprintengine_qws.cpp | 2 +- src/gui/painting/qprintengine_qws_p.h | 2 +- src/gui/painting/qprintengine_win.cpp | 2 +- src/gui/painting/qprintengine_win_p.h | 2 +- src/gui/painting/qprinter.cpp | 2 +- src/gui/painting/qprinter.h | 2 +- src/gui/painting/qprinter_p.h | 2 +- src/gui/painting/qprinterinfo.h | 2 +- src/gui/painting/qprinterinfo.qdoc | 2 +- src/gui/painting/qprinterinfo_mac.cpp | 2 +- src/gui/painting/qprinterinfo_unix.cpp | 2 +- src/gui/painting/qprinterinfo_unix_p.h | 2 +- src/gui/painting/qprinterinfo_win.cpp | 2 +- src/gui/painting/qrasterdefs_p.h | 2 +- src/gui/painting/qrasterizer.cpp | 2 +- src/gui/painting/qrasterizer_p.h | 2 +- src/gui/painting/qregion.cpp | 2 +- src/gui/painting/qregion.h | 2 +- src/gui/painting/qregion_mac.cpp | 2 +- src/gui/painting/qregion_qws.cpp | 2 +- src/gui/painting/qregion_s60.cpp | 2 +- src/gui/painting/qregion_win.cpp | 2 +- src/gui/painting/qregion_x11.cpp | 2 +- src/gui/painting/qrgb.h | 2 +- src/gui/painting/qstroker.cpp | 2 +- src/gui/painting/qstroker_p.h | 2 +- src/gui/painting/qstylepainter.cpp | 2 +- src/gui/painting/qstylepainter.h | 2 +- src/gui/painting/qtessellator.cpp | 2 +- src/gui/painting/qtessellator_p.h | 2 +- src/gui/painting/qtextureglyphcache.cpp | 2 +- src/gui/painting/qtextureglyphcache_p.h | 2 +- src/gui/painting/qtransform.cpp | 2 +- src/gui/painting/qtransform.h | 2 +- src/gui/painting/qvectorpath_p.h | 2 +- src/gui/painting/qwindowsurface.cpp | 2 +- src/gui/painting/qwindowsurface_mac.cpp | 2 +- src/gui/painting/qwindowsurface_mac_p.h | 2 +- src/gui/painting/qwindowsurface_p.h | 2 +- src/gui/painting/qwindowsurface_qws.cpp | 2 +- src/gui/painting/qwindowsurface_qws_p.h | 2 +- src/gui/painting/qwindowsurface_raster.cpp | 2 +- src/gui/painting/qwindowsurface_raster_p.h | 2 +- src/gui/painting/qwindowsurface_s60.cpp | 2 +- src/gui/painting/qwindowsurface_s60_p.h | 2 +- src/gui/painting/qwindowsurface_x11.cpp | 2 +- src/gui/painting/qwindowsurface_x11_p.h | 2 +- src/gui/painting/qwmatrix.h | 2 +- src/gui/s60framework/qs60mainapplication.cpp | 2 +- src/gui/s60framework/qs60mainapplication.h | 2 +- src/gui/s60framework/qs60mainapplication_p.h | 2 +- src/gui/s60framework/qs60mainappui.cpp | 2 +- src/gui/s60framework/qs60mainappui.h | 2 +- src/gui/s60framework/qs60maindocument.cpp | 2 +- src/gui/s60framework/qs60maindocument.h | 2 +- src/gui/s60framework/s60main.rss | 2 +- src/gui/statemachine/qbasickeyeventtransition.cpp | 2 +- src/gui/statemachine/qbasickeyeventtransition_p.h | 2 +- .../statemachine/qbasicmouseeventtransition.cpp | 2 +- .../statemachine/qbasicmouseeventtransition_p.h | 2 +- src/gui/statemachine/qguistatemachine.cpp | 2 +- src/gui/statemachine/qkeyeventtransition.cpp | 2 +- src/gui/statemachine/qkeyeventtransition.h | 2 +- src/gui/statemachine/qmouseeventtransition.cpp | 2 +- src/gui/statemachine/qmouseeventtransition.h | 2 +- src/gui/styles/qcdestyle.cpp | 2 +- src/gui/styles/qcdestyle.h | 2 +- src/gui/styles/qcleanlooksstyle.cpp | 2 +- src/gui/styles/qcleanlooksstyle.h | 2 +- src/gui/styles/qcleanlooksstyle_p.h | 2 +- src/gui/styles/qcommonstyle.cpp | 2 +- src/gui/styles/qcommonstyle.h | 2 +- src/gui/styles/qcommonstyle_p.h | 2 +- src/gui/styles/qcommonstylepixmaps_p.h | 2 +- src/gui/styles/qgtkpainter.cpp | 2 +- src/gui/styles/qgtkpainter_p.h | 2 +- src/gui/styles/qgtkstyle.cpp | 2 +- src/gui/styles/qgtkstyle.h | 2 +- src/gui/styles/qgtkstyle_p.cpp | 2 +- src/gui/styles/qgtkstyle_p.h | 2 +- src/gui/styles/qmacstyle.qdoc | 2 +- src/gui/styles/qmacstyle_mac.h | 2 +- src/gui/styles/qmacstyle_mac.mm | 2 +- src/gui/styles/qmacstyle_mac_p.h | 2 +- src/gui/styles/qmacstylepixmaps_mac_p.h | 2 +- src/gui/styles/qmotifstyle.cpp | 2 +- src/gui/styles/qmotifstyle.h | 2 +- src/gui/styles/qmotifstyle_p.h | 2 +- src/gui/styles/qplastiquestyle.cpp | 2 +- src/gui/styles/qplastiquestyle.h | 2 +- src/gui/styles/qproxystyle.cpp | 2 +- src/gui/styles/qproxystyle.h | 2 +- src/gui/styles/qproxystyle_p.h | 2 +- src/gui/styles/qs60style.cpp | 2 +- src/gui/styles/qs60style.h | 2 +- src/gui/styles/qs60style_p.h | 2 +- src/gui/styles/qs60style_s60.cpp | 2 +- src/gui/styles/qs60style_simulated.cpp | 2 +- src/gui/styles/qstyle.cpp | 2 +- src/gui/styles/qstyle.h | 2 +- src/gui/styles/qstyle_p.h | 2 +- src/gui/styles/qstylefactory.cpp | 2 +- src/gui/styles/qstylefactory.h | 2 +- src/gui/styles/qstylehelper.cpp | 2 +- src/gui/styles/qstylehelper_p.h | 2 +- src/gui/styles/qstyleoption.cpp | 2 +- src/gui/styles/qstyleoption.h | 2 +- src/gui/styles/qstyleplugin.cpp | 2 +- src/gui/styles/qstyleplugin.h | 2 +- src/gui/styles/qstylesheetstyle.cpp | 2 +- src/gui/styles/qstylesheetstyle_default.cpp | 2 +- src/gui/styles/qstylesheetstyle_p.h | 2 +- src/gui/styles/qwindowscestyle.cpp | 2 +- src/gui/styles/qwindowscestyle.h | 2 +- src/gui/styles/qwindowscestyle_p.h | 2 +- src/gui/styles/qwindowsmobilestyle.cpp | 2 +- src/gui/styles/qwindowsmobilestyle.h | 2 +- src/gui/styles/qwindowsmobilestyle_p.h | 2 +- src/gui/styles/qwindowsstyle.cpp | 2 +- src/gui/styles/qwindowsstyle.h | 2 +- src/gui/styles/qwindowsstyle_p.h | 2 +- src/gui/styles/qwindowsvistastyle.cpp | 2 +- src/gui/styles/qwindowsvistastyle.h | 2 +- src/gui/styles/qwindowsvistastyle_p.h | 2 +- src/gui/styles/qwindowsxpstyle.cpp | 2 +- src/gui/styles/qwindowsxpstyle.h | 2 +- src/gui/styles/qwindowsxpstyle_p.h | 2 +- src/gui/symbian/qsymbianevent.cpp | 2 +- src/gui/symbian/qsymbianevent.h | 2 +- src/gui/text/qabstractfontengine_p.h | 2 +- src/gui/text/qabstractfontengine_qws.cpp | 2 +- src/gui/text/qabstractfontengine_qws.h | 2 +- src/gui/text/qabstracttextdocumentlayout.cpp | 2 +- src/gui/text/qabstracttextdocumentlayout.h | 2 +- src/gui/text/qabstracttextdocumentlayout_p.h | 2 +- src/gui/text/qcssparser.cpp | 2 +- src/gui/text/qcssparser_p.h | 2 +- src/gui/text/qcssscanner.cpp | 2 +- src/gui/text/qfont.cpp | 2 +- src/gui/text/qfont.h | 2 +- src/gui/text/qfont_mac.cpp | 2 +- src/gui/text/qfont_p.h | 2 +- src/gui/text/qfont_qws.cpp | 2 +- src/gui/text/qfont_s60.cpp | 2 +- src/gui/text/qfont_win.cpp | 2 +- src/gui/text/qfont_x11.cpp | 2 +- src/gui/text/qfontdatabase.cpp | 2 +- src/gui/text/qfontdatabase.h | 2 +- src/gui/text/qfontdatabase_mac.cpp | 2 +- src/gui/text/qfontdatabase_qws.cpp | 2 +- src/gui/text/qfontdatabase_s60.cpp | 2 +- src/gui/text/qfontdatabase_win.cpp | 2 +- src/gui/text/qfontdatabase_x11.cpp | 2 +- src/gui/text/qfontengine.cpp | 2 +- src/gui/text/qfontengine_ft.cpp | 2 +- src/gui/text/qfontengine_ft_p.h | 2 +- src/gui/text/qfontengine_mac.mm | 2 +- src/gui/text/qfontengine_p.h | 2 +- src/gui/text/qfontengine_qpf.cpp | 2 +- src/gui/text/qfontengine_qpf_p.h | 2 +- src/gui/text/qfontengine_qws.cpp | 2 +- src/gui/text/qfontengine_s60.cpp | 2 +- src/gui/text/qfontengine_s60_p.h | 2 +- src/gui/text/qfontengine_win.cpp | 2 +- src/gui/text/qfontengine_win_p.h | 2 +- src/gui/text/qfontengine_x11.cpp | 2 +- src/gui/text/qfontengine_x11_p.h | 2 +- src/gui/text/qfontengineglyphcache_p.h | 2 +- src/gui/text/qfontinfo.h | 2 +- src/gui/text/qfontmetrics.cpp | 2 +- src/gui/text/qfontmetrics.h | 2 +- src/gui/text/qfontsubset.cpp | 2 +- src/gui/text/qfontsubset_p.h | 2 +- src/gui/text/qfragmentmap.cpp | 2 +- src/gui/text/qfragmentmap_p.h | 2 +- src/gui/text/qpfutil.cpp | 2 +- src/gui/text/qstatictext.cpp | 2 +- src/gui/text/qstatictext.h | 2 +- src/gui/text/qstatictext_p.h | 2 +- src/gui/text/qsyntaxhighlighter.cpp | 2 +- src/gui/text/qsyntaxhighlighter.h | 2 +- src/gui/text/qtextcontrol.cpp | 2 +- src/gui/text/qtextcontrol_p.h | 2 +- src/gui/text/qtextcontrol_p_p.h | 2 +- src/gui/text/qtextcursor.cpp | 2 +- src/gui/text/qtextcursor.h | 2 +- src/gui/text/qtextcursor_p.h | 2 +- src/gui/text/qtextdocument.cpp | 2 +- src/gui/text/qtextdocument.h | 2 +- src/gui/text/qtextdocument_p.cpp | 2 +- src/gui/text/qtextdocument_p.h | 2 +- src/gui/text/qtextdocumentfragment.cpp | 2 +- src/gui/text/qtextdocumentfragment.h | 2 +- src/gui/text/qtextdocumentfragment_p.h | 2 +- src/gui/text/qtextdocumentlayout.cpp | 2 +- src/gui/text/qtextdocumentlayout_p.h | 2 +- src/gui/text/qtextdocumentwriter.cpp | 2 +- src/gui/text/qtextdocumentwriter.h | 2 +- src/gui/text/qtextengine.cpp | 2 +- src/gui/text/qtextengine_mac.cpp | 2 +- src/gui/text/qtextengine_p.h | 2 +- src/gui/text/qtextformat.cpp | 2 +- src/gui/text/qtextformat.h | 2 +- src/gui/text/qtextformat_p.h | 2 +- src/gui/text/qtexthtmlparser.cpp | 2 +- src/gui/text/qtexthtmlparser_p.h | 2 +- src/gui/text/qtextimagehandler.cpp | 2 +- src/gui/text/qtextimagehandler_p.h | 2 +- src/gui/text/qtextlayout.cpp | 2 +- src/gui/text/qtextlayout.h | 2 +- src/gui/text/qtextlist.cpp | 2 +- src/gui/text/qtextlist.h | 2 +- src/gui/text/qtextobject.cpp | 2 +- src/gui/text/qtextobject.h | 2 +- src/gui/text/qtextobject_p.h | 2 +- src/gui/text/qtextodfwriter.cpp | 2 +- src/gui/text/qtextodfwriter_p.h | 2 +- src/gui/text/qtextoption.cpp | 2 +- src/gui/text/qtextoption.h | 2 +- src/gui/text/qtexttable.cpp | 2 +- src/gui/text/qtexttable.h | 2 +- src/gui/text/qtexttable_p.h | 2 +- src/gui/text/qzip.cpp | 2 +- src/gui/text/qzipreader_p.h | 2 +- src/gui/text/qzipwriter_p.h | 2 +- src/gui/util/qcompleter.cpp | 2 +- src/gui/util/qcompleter.h | 2 +- src/gui/util/qcompleter_p.h | 2 +- src/gui/util/qdesktopservices.cpp | 2 +- src/gui/util/qdesktopservices.h | 2 +- src/gui/util/qdesktopservices_mac.cpp | 2 +- src/gui/util/qdesktopservices_qws.cpp | 2 +- src/gui/util/qdesktopservices_s60.cpp | 2 +- src/gui/util/qdesktopservices_win.cpp | 2 +- src/gui/util/qdesktopservices_x11.cpp | 2 +- src/gui/util/qsystemtrayicon.cpp | 2 +- src/gui/util/qsystemtrayicon.h | 2 +- src/gui/util/qsystemtrayicon_mac.mm | 2 +- src/gui/util/qsystemtrayicon_p.h | 2 +- src/gui/util/qsystemtrayicon_qws.cpp | 2 +- src/gui/util/qsystemtrayicon_win.cpp | 2 +- src/gui/util/qsystemtrayicon_wince.cpp | 2 +- src/gui/util/qsystemtrayicon_x11.cpp | 2 +- src/gui/util/qundogroup.cpp | 2 +- src/gui/util/qundogroup.h | 2 +- src/gui/util/qundostack.cpp | 2 +- src/gui/util/qundostack.h | 2 +- src/gui/util/qundostack_p.h | 2 +- src/gui/util/qundoview.cpp | 2 +- src/gui/util/qundoview.h | 2 +- src/gui/widgets/qabstractbutton.cpp | 2 +- src/gui/widgets/qabstractbutton.h | 2 +- src/gui/widgets/qabstractbutton_p.h | 2 +- src/gui/widgets/qabstractscrollarea.cpp | 2 +- src/gui/widgets/qabstractscrollarea.h | 2 +- src/gui/widgets/qabstractscrollarea_p.h | 2 +- src/gui/widgets/qabstractslider.cpp | 2 +- src/gui/widgets/qabstractslider.h | 2 +- src/gui/widgets/qabstractslider_p.h | 2 +- src/gui/widgets/qabstractspinbox.cpp | 2 +- src/gui/widgets/qabstractspinbox.h | 2 +- src/gui/widgets/qabstractspinbox_p.h | 2 +- src/gui/widgets/qbuttongroup.cpp | 2 +- src/gui/widgets/qbuttongroup.h | 2 +- src/gui/widgets/qcalendartextnavigator_p.h | 2 +- src/gui/widgets/qcalendarwidget.cpp | 2 +- src/gui/widgets/qcalendarwidget.h | 2 +- src/gui/widgets/qcheckbox.cpp | 2 +- src/gui/widgets/qcheckbox.h | 2 +- src/gui/widgets/qcocoamenu_mac.mm | 2 +- src/gui/widgets/qcocoamenu_mac_p.h | 2 +- src/gui/widgets/qcocoatoolbardelegate_mac.mm | 2 +- src/gui/widgets/qcocoatoolbardelegate_mac_p.h | 2 +- src/gui/widgets/qcombobox.cpp | 2 +- src/gui/widgets/qcombobox.h | 2 +- src/gui/widgets/qcombobox_p.h | 2 +- src/gui/widgets/qcommandlinkbutton.cpp | 2 +- src/gui/widgets/qcommandlinkbutton.h | 2 +- src/gui/widgets/qdatetimeedit.cpp | 2 +- src/gui/widgets/qdatetimeedit.h | 2 +- src/gui/widgets/qdatetimeedit_p.h | 2 +- src/gui/widgets/qdial.cpp | 2 +- src/gui/widgets/qdial.h | 2 +- src/gui/widgets/qdialogbuttonbox.cpp | 2 +- src/gui/widgets/qdialogbuttonbox.h | 2 +- src/gui/widgets/qdockarealayout.cpp | 2 +- src/gui/widgets/qdockarealayout_p.h | 2 +- src/gui/widgets/qdockwidget.cpp | 2 +- src/gui/widgets/qdockwidget.h | 2 +- src/gui/widgets/qdockwidget_p.h | 2 +- src/gui/widgets/qeffects.cpp | 2 +- src/gui/widgets/qeffects_p.h | 2 +- src/gui/widgets/qfocusframe.cpp | 2 +- src/gui/widgets/qfocusframe.h | 2 +- src/gui/widgets/qfontcombobox.cpp | 2 +- src/gui/widgets/qfontcombobox.h | 2 +- src/gui/widgets/qframe.cpp | 2 +- src/gui/widgets/qframe.h | 2 +- src/gui/widgets/qframe_p.h | 2 +- src/gui/widgets/qgroupbox.cpp | 2 +- src/gui/widgets/qgroupbox.h | 2 +- src/gui/widgets/qlabel.cpp | 2 +- src/gui/widgets/qlabel.h | 2 +- src/gui/widgets/qlabel_p.h | 2 +- src/gui/widgets/qlcdnumber.cpp | 2 +- src/gui/widgets/qlcdnumber.h | 2 +- src/gui/widgets/qlinecontrol.cpp | 2 +- src/gui/widgets/qlinecontrol_p.h | 2 +- src/gui/widgets/qlineedit.cpp | 2 +- src/gui/widgets/qlineedit.h | 2 +- src/gui/widgets/qlineedit_p.cpp | 2 +- src/gui/widgets/qlineedit_p.h | 2 +- src/gui/widgets/qmaccocoaviewcontainer_mac.h | 2 +- src/gui/widgets/qmaccocoaviewcontainer_mac.mm | 2 +- src/gui/widgets/qmacnativewidget_mac.h | 2 +- src/gui/widgets/qmacnativewidget_mac.mm | 2 +- src/gui/widgets/qmainwindow.cpp | 2 +- src/gui/widgets/qmainwindow.h | 2 +- src/gui/widgets/qmainwindowlayout.cpp | 2 +- src/gui/widgets/qmainwindowlayout_mac.mm | 2 +- src/gui/widgets/qmainwindowlayout_p.h | 2 +- src/gui/widgets/qmdiarea.cpp | 2 +- src/gui/widgets/qmdiarea.h | 2 +- src/gui/widgets/qmdiarea_p.h | 2 +- src/gui/widgets/qmdisubwindow.cpp | 2 +- src/gui/widgets/qmdisubwindow.h | 2 +- src/gui/widgets/qmdisubwindow_p.h | 2 +- src/gui/widgets/qmenu.cpp | 2 +- src/gui/widgets/qmenu.h | 2 +- src/gui/widgets/qmenu_mac.mm | 2 +- src/gui/widgets/qmenu_p.h | 2 +- src/gui/widgets/qmenu_symbian.cpp | 2 +- src/gui/widgets/qmenu_wince.cpp | 2 +- src/gui/widgets/qmenu_wince_resource_p.h | 2 +- src/gui/widgets/qmenubar.cpp | 2 +- src/gui/widgets/qmenubar.h | 2 +- src/gui/widgets/qmenubar_p.h | 2 +- src/gui/widgets/qmenudata.cpp | 2 +- src/gui/widgets/qmenudata.h | 2 +- src/gui/widgets/qplaintextedit.cpp | 2 +- src/gui/widgets/qplaintextedit.h | 2 +- src/gui/widgets/qplaintextedit_p.h | 2 +- src/gui/widgets/qprintpreviewwidget.cpp | 2 +- src/gui/widgets/qprintpreviewwidget.h | 2 +- src/gui/widgets/qprogressbar.cpp | 2 +- src/gui/widgets/qprogressbar.h | 2 +- src/gui/widgets/qpushbutton.cpp | 2 +- src/gui/widgets/qpushbutton.h | 2 +- src/gui/widgets/qpushbutton_p.h | 2 +- src/gui/widgets/qradiobutton.cpp | 2 +- src/gui/widgets/qradiobutton.h | 2 +- src/gui/widgets/qrubberband.cpp | 2 +- src/gui/widgets/qrubberband.h | 2 +- src/gui/widgets/qscrollarea.cpp | 2 +- src/gui/widgets/qscrollarea.h | 2 +- src/gui/widgets/qscrollarea_p.h | 2 +- src/gui/widgets/qscrollbar.cpp | 2 +- src/gui/widgets/qscrollbar.h | 2 +- src/gui/widgets/qsizegrip.cpp | 2 +- src/gui/widgets/qsizegrip.h | 2 +- src/gui/widgets/qslider.cpp | 2 +- src/gui/widgets/qslider.h | 2 +- src/gui/widgets/qspinbox.cpp | 2 +- src/gui/widgets/qspinbox.h | 2 +- src/gui/widgets/qsplashscreen.cpp | 2 +- src/gui/widgets/qsplashscreen.h | 2 +- src/gui/widgets/qsplitter.cpp | 2 +- src/gui/widgets/qsplitter.h | 2 +- src/gui/widgets/qsplitter_p.h | 2 +- src/gui/widgets/qstackedwidget.cpp | 2 +- src/gui/widgets/qstackedwidget.h | 2 +- src/gui/widgets/qstatusbar.cpp | 2 +- src/gui/widgets/qstatusbar.h | 2 +- src/gui/widgets/qtabbar.cpp | 2 +- src/gui/widgets/qtabbar.h | 2 +- src/gui/widgets/qtabbar_p.h | 2 +- src/gui/widgets/qtabwidget.cpp | 2 +- src/gui/widgets/qtabwidget.h | 2 +- src/gui/widgets/qtextbrowser.cpp | 2 +- src/gui/widgets/qtextbrowser.h | 2 +- src/gui/widgets/qtextedit.cpp | 2 +- src/gui/widgets/qtextedit.h | 2 +- src/gui/widgets/qtextedit_p.h | 2 +- src/gui/widgets/qtoolbar.cpp | 2 +- src/gui/widgets/qtoolbar.h | 2 +- src/gui/widgets/qtoolbar_p.h | 2 +- src/gui/widgets/qtoolbararealayout.cpp | 2 +- src/gui/widgets/qtoolbararealayout_p.h | 2 +- src/gui/widgets/qtoolbarextension.cpp | 2 +- src/gui/widgets/qtoolbarextension_p.h | 2 +- src/gui/widgets/qtoolbarlayout.cpp | 2 +- src/gui/widgets/qtoolbarlayout_p.h | 2 +- src/gui/widgets/qtoolbarseparator.cpp | 2 +- src/gui/widgets/qtoolbarseparator_p.h | 2 +- src/gui/widgets/qtoolbox.cpp | 2 +- src/gui/widgets/qtoolbox.h | 2 +- src/gui/widgets/qtoolbutton.cpp | 2 +- src/gui/widgets/qtoolbutton.h | 2 +- src/gui/widgets/qvalidator.cpp | 2 +- src/gui/widgets/qvalidator.h | 2 +- src/gui/widgets/qwidgetanimator.cpp | 2 +- src/gui/widgets/qwidgetanimator_p.h | 2 +- src/gui/widgets/qwidgetresizehandler.cpp | 2 +- src/gui/widgets/qwidgetresizehandler_p.h | 2 +- src/gui/widgets/qworkspace.cpp | 2 +- src/gui/widgets/qworkspace.h | 2 +- src/imports/folderlistmodel/plugin.cpp | 2 +- .../qdeclarativefolderlistmodel.cpp | 2 +- .../folderlistmodel/qdeclarativefolderlistmodel.h | 2 +- src/imports/gestures/plugin.cpp | 2 +- src/imports/gestures/qdeclarativegesturearea.cpp | 2 +- src/imports/gestures/qdeclarativegesturearea_p.h | 2 +- src/imports/particles/qdeclarativeparticles.cpp | 2 +- src/imports/particles/qdeclarativeparticles_p.h | 2 +- src/multimedia/audio/qaudio.cpp | 2 +- src/multimedia/audio/qaudio.h | 2 +- src/multimedia/audio/qaudio_mac.cpp | 2 +- src/multimedia/audio/qaudio_mac_p.h | 2 +- src/multimedia/audio/qaudio_symbian_p.cpp | 2 +- src/multimedia/audio/qaudio_symbian_p.h | 2 +- src/multimedia/audio/qaudiodevicefactory.cpp | 2 +- src/multimedia/audio/qaudiodevicefactory_p.h | 2 +- src/multimedia/audio/qaudiodeviceinfo.cpp | 2 +- src/multimedia/audio/qaudiodeviceinfo.h | 2 +- src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp | 2 +- src/multimedia/audio/qaudiodeviceinfo_alsa_p.h | 2 +- src/multimedia/audio/qaudiodeviceinfo_mac_p.cpp | 2 +- src/multimedia/audio/qaudiodeviceinfo_mac_p.h | 2 +- .../audio/qaudiodeviceinfo_symbian_p.cpp | 2 +- src/multimedia/audio/qaudiodeviceinfo_symbian_p.h | 2 +- src/multimedia/audio/qaudiodeviceinfo_win32_p.cpp | 2 +- src/multimedia/audio/qaudiodeviceinfo_win32_p.h | 2 +- src/multimedia/audio/qaudioengine.cpp | 2 +- src/multimedia/audio/qaudioengine.h | 2 +- src/multimedia/audio/qaudioengineplugin.cpp | 2 +- src/multimedia/audio/qaudioengineplugin.h | 2 +- src/multimedia/audio/qaudioformat.cpp | 2 +- src/multimedia/audio/qaudioformat.h | 2 +- src/multimedia/audio/qaudioinput.cpp | 2 +- src/multimedia/audio/qaudioinput.h | 2 +- src/multimedia/audio/qaudioinput_alsa_p.cpp | 2 +- src/multimedia/audio/qaudioinput_alsa_p.h | 2 +- src/multimedia/audio/qaudioinput_mac_p.cpp | 2 +- src/multimedia/audio/qaudioinput_mac_p.h | 2 +- src/multimedia/audio/qaudioinput_symbian_p.cpp | 2 +- src/multimedia/audio/qaudioinput_symbian_p.h | 2 +- src/multimedia/audio/qaudioinput_win32_p.cpp | 2 +- src/multimedia/audio/qaudioinput_win32_p.h | 2 +- src/multimedia/audio/qaudiooutput.cpp | 2 +- src/multimedia/audio/qaudiooutput.h | 2 +- src/multimedia/audio/qaudiooutput_alsa_p.cpp | 2 +- src/multimedia/audio/qaudiooutput_alsa_p.h | 2 +- src/multimedia/audio/qaudiooutput_mac_p.cpp | 2 +- src/multimedia/audio/qaudiooutput_mac_p.h | 2 +- src/multimedia/audio/qaudiooutput_symbian_p.cpp | 2 +- src/multimedia/audio/qaudiooutput_symbian_p.h | 2 +- src/multimedia/audio/qaudiooutput_win32_p.cpp | 2 +- src/multimedia/audio/qaudiooutput_win32_p.h | 2 +- src/multimedia/video/qabstractvideobuffer.cpp | 2 +- src/multimedia/video/qabstractvideobuffer.h | 2 +- src/multimedia/video/qabstractvideobuffer_p.h | 2 +- src/multimedia/video/qabstractvideosurface.cpp | 2 +- src/multimedia/video/qabstractvideosurface.h | 2 +- src/multimedia/video/qabstractvideosurface_p.h | 2 +- src/multimedia/video/qimagevideobuffer.cpp | 2 +- src/multimedia/video/qimagevideobuffer_p.h | 2 +- src/multimedia/video/qmemoryvideobuffer.cpp | 2 +- src/multimedia/video/qmemoryvideobuffer_p.h | 2 +- src/multimedia/video/qvideoframe.cpp | 2 +- src/multimedia/video/qvideoframe.h | 2 +- src/multimedia/video/qvideosurfaceformat.cpp | 2 +- src/multimedia/video/qvideosurfaceformat.h | 2 +- src/network/access/qabstractnetworkcache.cpp | 2 +- src/network/access/qabstractnetworkcache.h | 2 +- src/network/access/qabstractnetworkcache_p.h | 2 +- src/network/access/qfilenetworkreply.cpp | 2 +- src/network/access/qfilenetworkreply_p.h | 2 +- src/network/access/qftp.cpp | 2 +- src/network/access/qftp.h | 2 +- src/network/access/qhttp.cpp | 2 +- src/network/access/qhttp.h | 2 +- src/network/access/qhttpnetworkconnection.cpp | 2 +- src/network/access/qhttpnetworkconnection_p.h | 2 +- .../access/qhttpnetworkconnectionchannel.cpp | 2 +- .../access/qhttpnetworkconnectionchannel_p.h | 2 +- src/network/access/qhttpnetworkheader.cpp | 2 +- src/network/access/qhttpnetworkheader_p.h | 2 +- src/network/access/qhttpnetworkreply.cpp | 2 +- src/network/access/qhttpnetworkreply_p.h | 2 +- src/network/access/qhttpnetworkrequest.cpp | 2 +- src/network/access/qhttpnetworkrequest_p.h | 2 +- src/network/access/qnetworkaccessbackend.cpp | 2 +- src/network/access/qnetworkaccessbackend_p.h | 2 +- src/network/access/qnetworkaccesscache.cpp | 2 +- src/network/access/qnetworkaccesscache_p.h | 2 +- src/network/access/qnetworkaccesscachebackend.cpp | 2 +- src/network/access/qnetworkaccesscachebackend_p.h | 2 +- src/network/access/qnetworkaccessdatabackend.cpp | 2 +- src/network/access/qnetworkaccessdatabackend_p.h | 2 +- .../access/qnetworkaccessdebugpipebackend.cpp | 2 +- .../access/qnetworkaccessdebugpipebackend_p.h | 2 +- src/network/access/qnetworkaccessfilebackend.cpp | 2 +- src/network/access/qnetworkaccessfilebackend_p.h | 2 +- src/network/access/qnetworkaccessftpbackend.cpp | 2 +- src/network/access/qnetworkaccessftpbackend_p.h | 2 +- src/network/access/qnetworkaccesshttpbackend.cpp | 2 +- src/network/access/qnetworkaccesshttpbackend_p.h | 2 +- src/network/access/qnetworkaccessmanager.cpp | 2 +- src/network/access/qnetworkaccessmanager.h | 2 +- src/network/access/qnetworkaccessmanager_p.h | 2 +- src/network/access/qnetworkcookie.cpp | 2 +- src/network/access/qnetworkcookie.h | 2 +- src/network/access/qnetworkcookie_p.h | 2 +- src/network/access/qnetworkcookiejar.cpp | 2 +- src/network/access/qnetworkcookiejar.h | 2 +- src/network/access/qnetworkcookiejar_p.h | 2 +- src/network/access/qnetworkdiskcache.cpp | 2 +- src/network/access/qnetworkdiskcache.h | 2 +- src/network/access/qnetworkdiskcache_p.h | 2 +- src/network/access/qnetworkreply.cpp | 2 +- src/network/access/qnetworkreply.h | 2 +- src/network/access/qnetworkreply_p.h | 2 +- src/network/access/qnetworkreplyimpl.cpp | 2 +- src/network/access/qnetworkreplyimpl_p.h | 2 +- src/network/access/qnetworkrequest.cpp | 2 +- src/network/access/qnetworkrequest.h | 2 +- src/network/access/qnetworkrequest_p.h | 2 +- src/network/bearer/qbearerengine.cpp | 2 +- src/network/bearer/qbearerengine_p.h | 2 +- src/network/bearer/qbearerplugin.cpp | 2 +- src/network/bearer/qbearerplugin_p.h | 2 +- src/network/bearer/qnetworkconfigmanager.cpp | 2 +- src/network/bearer/qnetworkconfigmanager.h | 2 +- src/network/bearer/qnetworkconfigmanager_p.cpp | 2 +- src/network/bearer/qnetworkconfigmanager_p.h | 2 +- src/network/bearer/qnetworkconfiguration.cpp | 2 +- src/network/bearer/qnetworkconfiguration.h | 2 +- src/network/bearer/qnetworkconfiguration_p.h | 2 +- src/network/bearer/qnetworksession.cpp | 2 +- src/network/bearer/qnetworksession.h | 2 +- src/network/bearer/qnetworksession_p.h | 2 +- src/network/kernel/qauthenticator.cpp | 2 +- src/network/kernel/qauthenticator.h | 2 +- src/network/kernel/qauthenticator_p.h | 2 +- src/network/kernel/qhostaddress.cpp | 2 +- src/network/kernel/qhostaddress.h | 2 +- src/network/kernel/qhostaddress_p.h | 2 +- src/network/kernel/qhostinfo.cpp | 2 +- src/network/kernel/qhostinfo.h | 2 +- src/network/kernel/qhostinfo_p.h | 2 +- src/network/kernel/qhostinfo_unix.cpp | 2 +- src/network/kernel/qhostinfo_win.cpp | 2 +- src/network/kernel/qnetworkinterface.cpp | 2 +- src/network/kernel/qnetworkinterface.h | 2 +- src/network/kernel/qnetworkinterface_p.h | 2 +- src/network/kernel/qnetworkinterface_symbian.cpp | 2 +- src/network/kernel/qnetworkinterface_unix.cpp | 2 +- src/network/kernel/qnetworkinterface_win.cpp | 2 +- src/network/kernel/qnetworkinterface_win_p.h | 2 +- src/network/kernel/qnetworkproxy.cpp | 2 +- src/network/kernel/qnetworkproxy.h | 2 +- src/network/kernel/qnetworkproxy_generic.cpp | 2 +- src/network/kernel/qnetworkproxy_mac.cpp | 2 +- src/network/kernel/qnetworkproxy_win.cpp | 2 +- src/network/kernel/qurlinfo.cpp | 2 +- src/network/kernel/qurlinfo.h | 2 +- src/network/socket/qabstractsocket.cpp | 2 +- src/network/socket/qabstractsocket.h | 2 +- src/network/socket/qabstractsocket_p.h | 2 +- src/network/socket/qabstractsocketengine.cpp | 2 +- src/network/socket/qabstractsocketengine_p.h | 2 +- src/network/socket/qhttpsocketengine.cpp | 2 +- src/network/socket/qhttpsocketengine_p.h | 2 +- src/network/socket/qlocalserver.cpp | 2 +- src/network/socket/qlocalserver.h | 2 +- src/network/socket/qlocalserver_p.h | 2 +- src/network/socket/qlocalserver_tcp.cpp | 2 +- src/network/socket/qlocalserver_unix.cpp | 2 +- src/network/socket/qlocalserver_win.cpp | 2 +- src/network/socket/qlocalsocket.cpp | 2 +- src/network/socket/qlocalsocket.h | 2 +- src/network/socket/qlocalsocket_p.h | 2 +- src/network/socket/qlocalsocket_tcp.cpp | 2 +- src/network/socket/qlocalsocket_unix.cpp | 2 +- src/network/socket/qlocalsocket_win.cpp | 2 +- src/network/socket/qnativesocketengine.cpp | 2 +- src/network/socket/qnativesocketengine_p.h | 2 +- src/network/socket/qnativesocketengine_unix.cpp | 2 +- src/network/socket/qnativesocketengine_win.cpp | 2 +- src/network/socket/qnet_unix_p.h | 2 +- src/network/socket/qsocks5socketengine.cpp | 2 +- src/network/socket/qsocks5socketengine_p.h | 2 +- src/network/socket/qtcpserver.cpp | 2 +- src/network/socket/qtcpserver.h | 2 +- src/network/socket/qtcpsocket.cpp | 2 +- src/network/socket/qtcpsocket.h | 2 +- src/network/socket/qtcpsocket_p.h | 2 +- src/network/socket/qudpsocket.cpp | 2 +- src/network/socket/qudpsocket.h | 2 +- src/network/ssl/qssl.cpp | 2 +- src/network/ssl/qssl.h | 2 +- src/network/ssl/qsslcertificate.cpp | 2 +- src/network/ssl/qsslcertificate.h | 2 +- src/network/ssl/qsslcertificate_p.h | 2 +- src/network/ssl/qsslcipher.cpp | 2 +- src/network/ssl/qsslcipher.h | 2 +- src/network/ssl/qsslcipher_p.h | 2 +- src/network/ssl/qsslconfiguration.cpp | 2 +- src/network/ssl/qsslconfiguration.h | 2 +- src/network/ssl/qsslconfiguration_p.h | 2 +- src/network/ssl/qsslerror.cpp | 2 +- src/network/ssl/qsslerror.h | 2 +- src/network/ssl/qsslkey.cpp | 2 +- src/network/ssl/qsslkey.h | 2 +- src/network/ssl/qsslkey_p.h | 2 +- src/network/ssl/qsslsocket.cpp | 2 +- src/network/ssl/qsslsocket.h | 2 +- src/network/ssl/qsslsocket_openssl.cpp | 2 +- src/network/ssl/qsslsocket_openssl_p.h | 2 +- src/network/ssl/qsslsocket_openssl_symbols.cpp | 2 +- src/network/ssl/qsslsocket_openssl_symbols_p.h | 2 +- src/network/ssl/qsslsocket_p.h | 2 +- src/opengl/gl2paintengineex/qgl2pexvertexarray.cpp | 2 +- src/opengl/gl2paintengineex/qgl2pexvertexarray_p.h | 2 +- .../gl2paintengineex/qglcustomshaderstage.cpp | 2 +- .../gl2paintengineex/qglcustomshaderstage_p.h | 2 +- .../gl2paintengineex/qglengineshadermanager.cpp | 2 +- .../gl2paintengineex/qglengineshadermanager_p.h | 2 +- .../gl2paintengineex/qglengineshadersource_p.h | 2 +- src/opengl/gl2paintengineex/qglgradientcache.cpp | 2 +- src/opengl/gl2paintengineex/qglgradientcache_p.h | 2 +- .../gl2paintengineex/qpaintengineex_opengl2.cpp | 2 +- .../gl2paintengineex/qpaintengineex_opengl2_p.h | 2 +- .../gl2paintengineex/qtextureglyphcache_gl.cpp | 2 +- .../gl2paintengineex/qtextureglyphcache_gl_p.h | 2 +- .../gl2paintengineex/qtriangulatingstroker.cpp | 2 +- .../gl2paintengineex/qtriangulatingstroker_p.h | 2 +- src/opengl/gl2paintengineex/qtriangulator.cpp | 2 +- src/opengl/gl2paintengineex/qtriangulator_p.h | 2 +- src/opengl/qgl.cpp | 2 +- src/opengl/qgl.h | 2 +- src/opengl/qgl_egl.cpp | 2 +- src/opengl/qgl_egl_p.h | 2 +- src/opengl/qgl_mac.mm | 2 +- src/opengl/qgl_p.h | 2 +- src/opengl/qgl_qws.cpp | 2 +- src/opengl/qgl_symbian.cpp | 2 +- src/opengl/qgl_win.cpp | 2 +- src/opengl/qgl_wince.cpp | 2 +- src/opengl/qgl_x11.cpp | 2 +- src/opengl/qgl_x11egl.cpp | 2 +- src/opengl/qglbuffer.cpp | 2 +- src/opengl/qglbuffer.h | 2 +- src/opengl/qglcolormap.cpp | 2 +- src/opengl/qglcolormap.h | 2 +- src/opengl/qglextensions.cpp | 2 +- src/opengl/qglextensions_p.h | 2 +- src/opengl/qglframebufferobject.cpp | 2 +- src/opengl/qglframebufferobject.h | 2 +- src/opengl/qglframebufferobject_p.h | 2 +- src/opengl/qglpaintdevice.cpp | 2 +- src/opengl/qglpaintdevice_p.h | 2 +- src/opengl/qglpixelbuffer.cpp | 2 +- src/opengl/qglpixelbuffer.h | 2 +- src/opengl/qglpixelbuffer_egl.cpp | 2 +- src/opengl/qglpixelbuffer_mac.mm | 2 +- src/opengl/qglpixelbuffer_p.h | 2 +- src/opengl/qglpixelbuffer_win.cpp | 2 +- src/opengl/qglpixelbuffer_x11.cpp | 2 +- src/opengl/qglpixmapfilter.cpp | 2 +- src/opengl/qglpixmapfilter_p.h | 2 +- src/opengl/qglscreen_qws.cpp | 2 +- src/opengl/qglscreen_qws.h | 2 +- src/opengl/qglshaderprogram.cpp | 2 +- src/opengl/qglshaderprogram.h | 2 +- src/opengl/qglwindowsurface_qws.cpp | 2 +- src/opengl/qglwindowsurface_qws_p.h | 2 +- src/opengl/qgraphicsshadereffect.cpp | 2 +- src/opengl/qgraphicsshadereffect_p.h | 2 +- src/opengl/qgraphicssystem_gl.cpp | 2 +- src/opengl/qgraphicssystem_gl_p.h | 2 +- src/opengl/qpaintengine_opengl.cpp | 2 +- src/opengl/qpaintengine_opengl_p.h | 2 +- src/opengl/qpixmapdata_gl.cpp | 2 +- src/opengl/qpixmapdata_gl_p.h | 2 +- src/opengl/qpixmapdata_x11gl_egl.cpp | 2 +- src/opengl/qpixmapdata_x11gl_p.h | 2 +- src/opengl/qwindowsurface_gl.cpp | 2 +- src/opengl/qwindowsurface_gl_p.h | 2 +- src/opengl/qwindowsurface_x11gl.cpp | 2 +- src/opengl/qwindowsurface_x11gl_p.h | 2 +- src/opengl/util/fragmentprograms_p.h | 2 +- src/opengl/util/generator.cpp | 4 ++-- src/opengl/util/glsl_to_include.sh | 2 +- src/openvg/qpaintengine_vg.cpp | 2 +- src/openvg/qpaintengine_vg_p.h | 2 +- src/openvg/qpixmapdata_vg.cpp | 2 +- src/openvg/qpixmapdata_vg_p.h | 2 +- src/openvg/qpixmapfilter_vg.cpp | 2 +- src/openvg/qpixmapfilter_vg_p.h | 2 +- src/openvg/qvg.h | 2 +- src/openvg/qvg_p.h | 2 +- src/openvg/qvg_symbian.cpp | 2 +- src/openvg/qvgcompositionhelper_p.h | 2 +- src/openvg/qvgfontglyphcache_p.h | 2 +- src/openvg/qvgimagepool.cpp | 2 +- src/openvg/qvgimagepool_p.h | 2 +- src/openvg/qwindowsurface_vg.cpp | 2 +- src/openvg/qwindowsurface_vg_p.h | 2 +- src/openvg/qwindowsurface_vgegl.cpp | 2 +- src/openvg/qwindowsurface_vgegl_p.h | 2 +- src/plugins/accessible/compat/main.cpp | 2 +- src/plugins/accessible/compat/q3complexwidgets.cpp | 2 +- src/plugins/accessible/compat/q3complexwidgets.h | 2 +- src/plugins/accessible/compat/q3simplewidgets.cpp | 2 +- src/plugins/accessible/compat/q3simplewidgets.h | 2 +- .../accessible/compat/qaccessiblecompat.cpp | 2 +- src/plugins/accessible/compat/qaccessiblecompat.h | 2 +- src/plugins/accessible/widgets/complexwidgets.cpp | 2 +- src/plugins/accessible/widgets/complexwidgets.h | 2 +- src/plugins/accessible/widgets/main.cpp | 2 +- src/plugins/accessible/widgets/qaccessiblemenu.cpp | 2 +- src/plugins/accessible/widgets/qaccessiblemenu.h | 2 +- .../accessible/widgets/qaccessiblewidgets.cpp | 2 +- .../accessible/widgets/qaccessiblewidgets.h | 2 +- src/plugins/accessible/widgets/rangecontrols.cpp | 2 +- src/plugins/accessible/widgets/rangecontrols.h | 2 +- src/plugins/accessible/widgets/simplewidgets.cpp | 2 +- src/plugins/accessible/widgets/simplewidgets.h | 2 +- src/plugins/bearer/connman/main.cpp | 2 +- src/plugins/bearer/connman/qconnmanengine.cpp | 2 +- src/plugins/bearer/connman/qconnmanengine.h | 2 +- .../bearer/connman/qconnmanservice_linux.cpp | 2 +- .../bearer/connman/qconnmanservice_linux_p.h | 2 +- src/plugins/bearer/connman/qofonoservice_linux.cpp | 2 +- src/plugins/bearer/connman/qofonoservice_linux_p.h | 2 +- src/plugins/bearer/corewlan/main.cpp | 2 +- src/plugins/bearer/corewlan/qcorewlanengine.h | 2 +- src/plugins/bearer/corewlan/qcorewlanengine.mm | 2 +- src/plugins/bearer/generic/main.cpp | 2 +- src/plugins/bearer/generic/qgenericengine.cpp | 2 +- src/plugins/bearer/generic/qgenericengine.h | 2 +- src/plugins/bearer/icd/dbusdispatcher.cpp | 2 +- src/plugins/bearer/icd/dbusdispatcher.h | 2 +- src/plugins/bearer/icd/iapconf.cpp | 2 +- src/plugins/bearer/icd/iapconf.h | 2 +- src/plugins/bearer/icd/iapmonitor.cpp | 2 +- src/plugins/bearer/icd/iapmonitor.h | 2 +- src/plugins/bearer/icd/maemo_icd.cpp | 2 +- src/plugins/bearer/icd/maemo_icd.h | 2 +- src/plugins/bearer/icd/main.cpp | 2 +- src/plugins/bearer/icd/proxyconf.cpp | 2 +- src/plugins/bearer/icd/proxyconf.h | 2 +- src/plugins/bearer/icd/qicdengine.cpp | 2 +- src/plugins/bearer/icd/qicdengine.h | 2 +- src/plugins/bearer/icd/qnetworksession_impl.cpp | 2 +- src/plugins/bearer/icd/qnetworksession_impl.h | 2 +- src/plugins/bearer/icd/wlan-utils.h | 2 +- src/plugins/bearer/nativewifi/main.cpp | 2 +- src/plugins/bearer/nativewifi/platformdefs.h | 2 +- .../bearer/nativewifi/qnativewifiengine.cpp | 2 +- src/plugins/bearer/nativewifi/qnativewifiengine.h | 2 +- src/plugins/bearer/networkmanager/main.cpp | 2 +- .../networkmanager/qnetworkmanagerengine.cpp | 2 +- .../bearer/networkmanager/qnetworkmanagerengine.h | 2 +- .../networkmanager/qnetworkmanagerservice.cpp | 2 +- .../bearer/networkmanager/qnetworkmanagerservice.h | 2 +- .../bearer/networkmanager/qnmdbushelper.cpp | 2 +- src/plugins/bearer/networkmanager/qnmdbushelper.h | 2 +- src/plugins/bearer/nla/main.cpp | 2 +- src/plugins/bearer/nla/qnlaengine.cpp | 2 +- src/plugins/bearer/nla/qnlaengine.h | 2 +- src/plugins/bearer/platformdefs_win.h | 2 +- src/plugins/bearer/qbearerengine_impl.h | 2 +- src/plugins/bearer/qnetworksession_impl.cpp | 2 +- src/plugins/bearer/qnetworksession_impl.h | 2 +- src/plugins/bearer/symbian/main.cpp | 2 +- .../bearer/symbian/qnetworksession_impl.cpp | 2 +- src/plugins/bearer/symbian/qnetworksession_impl.h | 2 +- src/plugins/bearer/symbian/symbianengine.cpp | 2 +- src/plugins/bearer/symbian/symbianengine.h | 2 +- src/plugins/codecs/cn/main.cpp | 2 +- src/plugins/codecs/cn/qgb18030codec.cpp | 2 +- src/plugins/codecs/cn/qgb18030codec.h | 2 +- src/plugins/codecs/jp/main.cpp | 2 +- src/plugins/codecs/jp/qeucjpcodec.cpp | 2 +- src/plugins/codecs/jp/qeucjpcodec.h | 2 +- src/plugins/codecs/jp/qfontjpcodec.cpp | 2 +- src/plugins/codecs/jp/qfontjpcodec.h | 2 +- src/plugins/codecs/jp/qjiscodec.cpp | 2 +- src/plugins/codecs/jp/qjiscodec.h | 2 +- src/plugins/codecs/jp/qjpunicode.cpp | 2 +- src/plugins/codecs/jp/qjpunicode.h | 2 +- src/plugins/codecs/jp/qsjiscodec.cpp | 2 +- src/plugins/codecs/jp/qsjiscodec.h | 2 +- src/plugins/codecs/kr/cp949codetbl.h | 2 +- src/plugins/codecs/kr/main.cpp | 2 +- src/plugins/codecs/kr/qeuckrcodec.cpp | 2 +- src/plugins/codecs/kr/qeuckrcodec.h | 2 +- src/plugins/codecs/tw/main.cpp | 2 +- src/plugins/codecs/tw/qbig5codec.cpp | 2 +- src/plugins/codecs/tw/qbig5codec.h | 2 +- src/plugins/decorations/default/main.cpp | 2 +- src/plugins/decorations/styled/main.cpp | 2 +- src/plugins/decorations/windows/main.cpp | 2 +- src/plugins/gfxdrivers/ahi/qscreenahi_qws.cpp | 2 +- src/plugins/gfxdrivers/ahi/qscreenahi_qws.h | 2 +- src/plugins/gfxdrivers/ahi/qscreenahiplugin.cpp | 2 +- .../gfxdrivers/directfb/qdirectfbkeyboard.cpp | 2 +- .../gfxdrivers/directfb/qdirectfbkeyboard.h | 2 +- src/plugins/gfxdrivers/directfb/qdirectfbmouse.cpp | 2 +- src/plugins/gfxdrivers/directfb/qdirectfbmouse.h | 2 +- .../gfxdrivers/directfb/qdirectfbpaintdevice.cpp | 2 +- .../gfxdrivers/directfb/qdirectfbpaintdevice.h | 2 +- .../gfxdrivers/directfb/qdirectfbpaintengine.cpp | 2 +- .../gfxdrivers/directfb/qdirectfbpaintengine.h | 2 +- .../gfxdrivers/directfb/qdirectfbpixmap.cpp | 2 +- src/plugins/gfxdrivers/directfb/qdirectfbpixmap.h | 2 +- .../gfxdrivers/directfb/qdirectfbscreen.cpp | 2 +- src/plugins/gfxdrivers/directfb/qdirectfbscreen.h | 2 +- .../gfxdrivers/directfb/qdirectfbscreenplugin.cpp | 2 +- .../gfxdrivers/directfb/qdirectfbwindowsurface.cpp | 2 +- .../gfxdrivers/directfb/qdirectfbwindowsurface.h | 2 +- src/plugins/gfxdrivers/linuxfb/main.cpp | 2 +- .../gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.c | 2 +- .../gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable.h | 2 +- .../gfxdrivers/powervr/QWSWSEGL/pvrqwsdrawable_p.h | 2 +- .../gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c | 2 +- .../powervr/pvreglscreen/pvreglscreen.cpp | 2 +- .../gfxdrivers/powervr/pvreglscreen/pvreglscreen.h | 2 +- .../powervr/pvreglscreen/pvreglscreenplugin.cpp | 2 +- .../powervr/pvreglscreen/pvreglwindowsurface.cpp | 2 +- .../powervr/pvreglscreen/pvreglwindowsurface.h | 2 +- src/plugins/gfxdrivers/qvfb/main.cpp | 2 +- src/plugins/gfxdrivers/transformed/main.cpp | 2 +- src/plugins/gfxdrivers/vnc/main.cpp | 2 +- src/plugins/gfxdrivers/vnc/qscreenvnc_p.h | 2 +- src/plugins/gfxdrivers/vnc/qscreenvnc_qws.cpp | 2 +- src/plugins/gfxdrivers/vnc/qscreenvnc_qws.h | 2 +- src/plugins/graphicssystems/meego/dithering.cpp | 2 +- .../graphicssystems/meego/qmeegoextensions.cpp | 2 +- .../graphicssystems/meego/qmeegoextensions.h | 2 +- .../graphicssystems/meego/qmeegographicssystem.cpp | 2 +- .../graphicssystems/meego/qmeegographicssystem.h | 2 +- .../meego/qmeegographicssystemplugin.cpp | 2 +- .../meego/qmeegographicssystemplugin.h | 2 +- .../graphicssystems/meego/qmeegolivepixmapdata.cpp | 2 +- .../graphicssystems/meego/qmeegolivepixmapdata.h | 2 +- .../graphicssystems/meego/qmeegopixmapdata.cpp | 2 +- .../graphicssystems/meego/qmeegopixmapdata.h | 2 +- .../meego/qmeegorasterpixmapdata.cpp | 2 +- .../graphicssystems/meego/qmeegorasterpixmapdata.h | 2 +- src/plugins/graphicssystems/opengl/main.cpp | 2 +- src/plugins/graphicssystems/openvg/main.cpp | 2 +- .../graphicssystems/openvg/qgraphicssystem_vg.cpp | 2 +- .../graphicssystems/openvg/qgraphicssystem_vg_p.h | 2 +- src/plugins/graphicssystems/shivavg/main.cpp | 2 +- .../shivavg/shivavggraphicssystem.cpp | 2 +- .../shivavg/shivavggraphicssystem.h | 2 +- .../shivavg/shivavgwindowsurface.cpp | 2 +- .../graphicssystems/shivavg/shivavgwindowsurface.h | 2 +- src/plugins/graphicssystems/trace/main.cpp | 2 +- .../trace/qgraphicssystem_trace.cpp | 2 +- .../trace/qgraphicssystem_trace_p.h | 2 +- src/plugins/iconengines/svgiconengine/main.cpp | 2 +- .../iconengines/svgiconengine/qsvgiconengine.cpp | 2 +- .../iconengines/svgiconengine/qsvgiconengine.h | 2 +- src/plugins/imageformats/gif/main.cpp | 2 +- src/plugins/imageformats/ico/main.cpp | 2 +- src/plugins/imageformats/ico/qicohandler.cpp | 2 +- src/plugins/imageformats/ico/qicohandler.h | 2 +- src/plugins/imageformats/jpeg/main.cpp | 2 +- src/plugins/imageformats/mng/main.cpp | 2 +- src/plugins/imageformats/svg/main.cpp | 2 +- src/plugins/imageformats/svg/qsvgiohandler.cpp | 2 +- src/plugins/imageformats/svg/qsvgiohandler.h | 2 +- src/plugins/imageformats/tiff/main.cpp | 2 +- .../inputmethods/imsw-multi/qmultiinputcontext.cpp | 2 +- .../inputmethods/imsw-multi/qmultiinputcontext.h | 2 +- .../imsw-multi/qmultiinputcontextplugin.cpp | 2 +- .../imsw-multi/qmultiinputcontextplugin.h | 2 +- src/plugins/kbddrivers/linuxinput/main.cpp | 2 +- src/plugins/mousedrivers/linuxtp/main.cpp | 2 +- src/plugins/mousedrivers/pc/main.cpp | 2 +- src/plugins/mousedrivers/tslib/main.cpp | 2 +- src/plugins/s60/src/qcoreapplication_3_1.cpp | 2 +- src/plugins/s60/src/qcoreapplication_3_2.cpp | 2 +- src/plugins/s60/src/qdesktopservices_3_1.cpp | 2 +- src/plugins/s60/src/qdesktopservices_3_2.cpp | 2 +- src/plugins/s60/src/qlocale_3_1.cpp | 2 +- src/plugins/s60/src/qlocale_3_2.cpp | 2 +- src/plugins/script/qtdbus/main.cpp | 2 +- src/plugins/script/qtdbus/main.h | 2 +- src/plugins/sqldrivers/db2/main.cpp | 2 +- src/plugins/sqldrivers/ibase/main.cpp | 2 +- src/plugins/sqldrivers/mysql/main.cpp | 2 +- src/plugins/sqldrivers/oci/main.cpp | 2 +- src/plugins/sqldrivers/odbc/main.cpp | 2 +- src/plugins/sqldrivers/psql/main.cpp | 2 +- src/plugins/sqldrivers/sqlite/smain.cpp | 2 +- src/plugins/sqldrivers/sqlite2/smain.cpp | 2 +- src/plugins/sqldrivers/tds/main.cpp | 2 +- src/qt3support/canvas/q3canvas.cpp | 2 +- src/qt3support/canvas/q3canvas.h | 2 +- src/qt3support/dialogs/q3filedialog.cpp | 2 +- src/qt3support/dialogs/q3filedialog.h | 2 +- src/qt3support/dialogs/q3filedialog_mac.cpp | 2 +- src/qt3support/dialogs/q3filedialog_win.cpp | 2 +- src/qt3support/dialogs/q3progressdialog.cpp | 2 +- src/qt3support/dialogs/q3progressdialog.h | 2 +- src/qt3support/dialogs/q3tabdialog.cpp | 2 +- src/qt3support/dialogs/q3tabdialog.h | 2 +- src/qt3support/dialogs/q3wizard.cpp | 2 +- src/qt3support/dialogs/q3wizard.h | 2 +- src/qt3support/itemviews/q3iconview.cpp | 2 +- src/qt3support/itemviews/q3iconview.h | 2 +- src/qt3support/itemviews/q3listbox.cpp | 2 +- src/qt3support/itemviews/q3listbox.h | 2 +- src/qt3support/itemviews/q3listview.cpp | 2 +- src/qt3support/itemviews/q3listview.h | 2 +- src/qt3support/itemviews/q3table.cpp | 2 +- src/qt3support/itemviews/q3table.h | 2 +- src/qt3support/network/q3dns.cpp | 2 +- src/qt3support/network/q3dns.h | 2 +- src/qt3support/network/q3ftp.cpp | 2 +- src/qt3support/network/q3ftp.h | 2 +- src/qt3support/network/q3http.cpp | 2 +- src/qt3support/network/q3http.h | 2 +- src/qt3support/network/q3localfs.cpp | 2 +- src/qt3support/network/q3localfs.h | 2 +- src/qt3support/network/q3network.cpp | 2 +- src/qt3support/network/q3network.h | 2 +- src/qt3support/network/q3networkprotocol.cpp | 2 +- src/qt3support/network/q3networkprotocol.h | 2 +- src/qt3support/network/q3serversocket.cpp | 2 +- src/qt3support/network/q3serversocket.h | 2 +- src/qt3support/network/q3socket.cpp | 2 +- src/qt3support/network/q3socket.h | 2 +- src/qt3support/network/q3socketdevice.cpp | 2 +- src/qt3support/network/q3socketdevice.h | 2 +- src/qt3support/network/q3socketdevice_unix.cpp | 2 +- src/qt3support/network/q3socketdevice_win.cpp | 2 +- src/qt3support/network/q3url.cpp | 2 +- src/qt3support/network/q3url.h | 2 +- src/qt3support/network/q3urloperator.cpp | 2 +- src/qt3support/network/q3urloperator.h | 2 +- src/qt3support/other/q3accel.cpp | 2 +- src/qt3support/other/q3accel.h | 2 +- src/qt3support/other/q3boxlayout.cpp | 2 +- src/qt3support/other/q3boxlayout.h | 2 +- src/qt3support/other/q3dragobject.cpp | 2 +- src/qt3support/other/q3dragobject.h | 2 +- src/qt3support/other/q3dropsite.cpp | 2 +- src/qt3support/other/q3dropsite.h | 2 +- src/qt3support/other/q3gridlayout.h | 2 +- src/qt3support/other/q3membuf.cpp | 2 +- src/qt3support/other/q3membuf_p.h | 2 +- src/qt3support/other/q3mimefactory.cpp | 2 +- src/qt3support/other/q3mimefactory.h | 2 +- src/qt3support/other/q3polygonscanner.cpp | 2 +- src/qt3support/other/q3polygonscanner.h | 2 +- src/qt3support/other/q3process.cpp | 2 +- src/qt3support/other/q3process.h | 2 +- src/qt3support/other/q3process_unix.cpp | 2 +- src/qt3support/other/q3process_win.cpp | 2 +- src/qt3support/other/qiconset.h | 2 +- src/qt3support/other/qt_compat_pch.h | 2 +- src/qt3support/painting/q3paintdevicemetrics.cpp | 2 +- src/qt3support/painting/q3paintdevicemetrics.h | 2 +- src/qt3support/painting/q3paintengine_svg.cpp | 2 +- src/qt3support/painting/q3paintengine_svg_p.h | 2 +- src/qt3support/painting/q3painter.cpp | 2 +- src/qt3support/painting/q3painter.h | 2 +- src/qt3support/painting/q3picture.cpp | 2 +- src/qt3support/painting/q3picture.h | 2 +- src/qt3support/painting/q3pointarray.cpp | 2 +- src/qt3support/painting/q3pointarray.h | 2 +- src/qt3support/sql/q3databrowser.cpp | 2 +- src/qt3support/sql/q3databrowser.h | 2 +- src/qt3support/sql/q3datatable.cpp | 2 +- src/qt3support/sql/q3datatable.h | 2 +- src/qt3support/sql/q3dataview.cpp | 2 +- src/qt3support/sql/q3dataview.h | 2 +- src/qt3support/sql/q3editorfactory.cpp | 2 +- src/qt3support/sql/q3editorfactory.h | 2 +- src/qt3support/sql/q3sqlcursor.cpp | 2 +- src/qt3support/sql/q3sqlcursor.h | 2 +- src/qt3support/sql/q3sqleditorfactory.cpp | 2 +- src/qt3support/sql/q3sqleditorfactory.h | 2 +- src/qt3support/sql/q3sqlfieldinfo.h | 2 +- src/qt3support/sql/q3sqlfieldinfo.qdoc | 2 +- src/qt3support/sql/q3sqlform.cpp | 2 +- src/qt3support/sql/q3sqlform.h | 2 +- src/qt3support/sql/q3sqlmanager_p.cpp | 2 +- src/qt3support/sql/q3sqlmanager_p.h | 2 +- src/qt3support/sql/q3sqlpropertymap.cpp | 2 +- src/qt3support/sql/q3sqlpropertymap.h | 2 +- src/qt3support/sql/q3sqlrecordinfo.h | 2 +- src/qt3support/sql/q3sqlrecordinfo.qdoc | 2 +- src/qt3support/sql/q3sqlselectcursor.cpp | 2 +- src/qt3support/sql/q3sqlselectcursor.h | 2 +- src/qt3support/text/q3multilineedit.cpp | 2 +- src/qt3support/text/q3multilineedit.h | 2 +- src/qt3support/text/q3richtext.cpp | 2 +- src/qt3support/text/q3richtext_p.cpp | 2 +- src/qt3support/text/q3richtext_p.h | 2 +- src/qt3support/text/q3simplerichtext.cpp | 2 +- src/qt3support/text/q3simplerichtext.h | 2 +- src/qt3support/text/q3stylesheet.cpp | 2 +- src/qt3support/text/q3stylesheet.h | 2 +- src/qt3support/text/q3syntaxhighlighter.cpp | 2 +- src/qt3support/text/q3syntaxhighlighter.h | 2 +- src/qt3support/text/q3syntaxhighlighter_p.h | 2 +- src/qt3support/text/q3textbrowser.cpp | 2 +- src/qt3support/text/q3textbrowser.h | 2 +- src/qt3support/text/q3textedit.cpp | 2 +- src/qt3support/text/q3textedit.h | 2 +- src/qt3support/text/q3textstream.cpp | 2 +- src/qt3support/text/q3textstream.h | 2 +- src/qt3support/text/q3textview.cpp | 2 +- src/qt3support/text/q3textview.h | 2 +- src/qt3support/tools/q3asciicache.h | 2 +- src/qt3support/tools/q3asciicache.qdoc | 2 +- src/qt3support/tools/q3asciidict.h | 2 +- src/qt3support/tools/q3asciidict.qdoc | 2 +- src/qt3support/tools/q3cache.h | 2 +- src/qt3support/tools/q3cache.qdoc | 2 +- src/qt3support/tools/q3cleanuphandler.h | 2 +- src/qt3support/tools/q3cstring.cpp | 2 +- src/qt3support/tools/q3cstring.h | 2 +- src/qt3support/tools/q3deepcopy.cpp | 2 +- src/qt3support/tools/q3deepcopy.h | 2 +- src/qt3support/tools/q3dict.h | 2 +- src/qt3support/tools/q3dict.qdoc | 2 +- src/qt3support/tools/q3garray.cpp | 2 +- src/qt3support/tools/q3garray.h | 2 +- src/qt3support/tools/q3gcache.cpp | 2 +- src/qt3support/tools/q3gcache.h | 2 +- src/qt3support/tools/q3gdict.cpp | 2 +- src/qt3support/tools/q3gdict.h | 2 +- src/qt3support/tools/q3glist.cpp | 2 +- src/qt3support/tools/q3glist.h | 2 +- src/qt3support/tools/q3gvector.cpp | 2 +- src/qt3support/tools/q3gvector.h | 2 +- src/qt3support/tools/q3intcache.h | 2 +- src/qt3support/tools/q3intcache.qdoc | 2 +- src/qt3support/tools/q3intdict.h | 2 +- src/qt3support/tools/q3intdict.qdoc | 2 +- src/qt3support/tools/q3memarray.h | 2 +- src/qt3support/tools/q3memarray.qdoc | 2 +- src/qt3support/tools/q3objectdict.h | 2 +- src/qt3support/tools/q3ptrcollection.cpp | 2 +- src/qt3support/tools/q3ptrcollection.h | 2 +- src/qt3support/tools/q3ptrdict.h | 2 +- src/qt3support/tools/q3ptrdict.qdoc | 2 +- src/qt3support/tools/q3ptrlist.h | 2 +- src/qt3support/tools/q3ptrlist.qdoc | 2 +- src/qt3support/tools/q3ptrqueue.h | 2 +- src/qt3support/tools/q3ptrqueue.qdoc | 2 +- src/qt3support/tools/q3ptrstack.h | 2 +- src/qt3support/tools/q3ptrstack.qdoc | 2 +- src/qt3support/tools/q3ptrvector.h | 2 +- src/qt3support/tools/q3ptrvector.qdoc | 2 +- src/qt3support/tools/q3semaphore.cpp | 2 +- src/qt3support/tools/q3semaphore.h | 2 +- src/qt3support/tools/q3shared.cpp | 2 +- src/qt3support/tools/q3shared.h | 2 +- src/qt3support/tools/q3signal.cpp | 2 +- src/qt3support/tools/q3signal.h | 2 +- src/qt3support/tools/q3sortedlist.h | 2 +- src/qt3support/tools/q3strlist.h | 2 +- src/qt3support/tools/q3strvec.h | 2 +- src/qt3support/tools/q3tl.h | 2 +- src/qt3support/tools/q3valuelist.h | 2 +- src/qt3support/tools/q3valuelist.qdoc | 2 +- src/qt3support/tools/q3valuestack.h | 2 +- src/qt3support/tools/q3valuestack.qdoc | 2 +- src/qt3support/tools/q3valuevector.h | 2 +- src/qt3support/tools/q3valuevector.qdoc | 2 +- src/qt3support/widgets/q3action.cpp | 2 +- src/qt3support/widgets/q3action.h | 2 +- src/qt3support/widgets/q3button.cpp | 2 +- src/qt3support/widgets/q3button.h | 2 +- src/qt3support/widgets/q3buttongroup.cpp | 2 +- src/qt3support/widgets/q3buttongroup.h | 2 +- src/qt3support/widgets/q3combobox.cpp | 2 +- src/qt3support/widgets/q3combobox.h | 2 +- src/qt3support/widgets/q3datetimeedit.cpp | 2 +- src/qt3support/widgets/q3datetimeedit.h | 2 +- src/qt3support/widgets/q3dockarea.cpp | 2 +- src/qt3support/widgets/q3dockarea.h | 2 +- src/qt3support/widgets/q3dockwindow.cpp | 2 +- src/qt3support/widgets/q3dockwindow.h | 2 +- src/qt3support/widgets/q3frame.cpp | 2 +- src/qt3support/widgets/q3frame.h | 2 +- src/qt3support/widgets/q3grid.cpp | 2 +- src/qt3support/widgets/q3grid.h | 2 +- src/qt3support/widgets/q3gridview.cpp | 2 +- src/qt3support/widgets/q3gridview.h | 2 +- src/qt3support/widgets/q3groupbox.cpp | 2 +- src/qt3support/widgets/q3groupbox.h | 2 +- src/qt3support/widgets/q3hbox.cpp | 2 +- src/qt3support/widgets/q3hbox.h | 2 +- src/qt3support/widgets/q3header.cpp | 2 +- src/qt3support/widgets/q3header.h | 2 +- src/qt3support/widgets/q3hgroupbox.cpp | 2 +- src/qt3support/widgets/q3hgroupbox.h | 2 +- src/qt3support/widgets/q3mainwindow.cpp | 2 +- src/qt3support/widgets/q3mainwindow.h | 2 +- src/qt3support/widgets/q3mainwindow_p.h | 2 +- src/qt3support/widgets/q3popupmenu.cpp | 2 +- src/qt3support/widgets/q3popupmenu.h | 2 +- src/qt3support/widgets/q3progressbar.cpp | 2 +- src/qt3support/widgets/q3progressbar.h | 2 +- src/qt3support/widgets/q3rangecontrol.cpp | 2 +- src/qt3support/widgets/q3rangecontrol.h | 2 +- src/qt3support/widgets/q3scrollview.cpp | 2 +- src/qt3support/widgets/q3scrollview.h | 2 +- src/qt3support/widgets/q3spinwidget.cpp | 2 +- src/qt3support/widgets/q3titlebar.cpp | 2 +- src/qt3support/widgets/q3titlebar_p.h | 2 +- src/qt3support/widgets/q3toolbar.cpp | 2 +- src/qt3support/widgets/q3toolbar.h | 2 +- src/qt3support/widgets/q3vbox.cpp | 2 +- src/qt3support/widgets/q3vbox.h | 2 +- src/qt3support/widgets/q3vgroupbox.cpp | 2 +- src/qt3support/widgets/q3vgroupbox.h | 2 +- src/qt3support/widgets/q3whatsthis.cpp | 2 +- src/qt3support/widgets/q3whatsthis.h | 2 +- src/qt3support/widgets/q3widgetstack.cpp | 2 +- src/qt3support/widgets/q3widgetstack.h | 2 +- src/qt_targets.pri | 2 +- src/s60main/qts60main.cpp | 2 +- src/s60main/qts60main_mcrt0.cpp | 2 +- src/script/api/qscriptable.cpp | 2 +- src/script/api/qscriptable.h | 2 +- src/script/api/qscriptable_p.h | 2 +- src/script/api/qscriptclass.cpp | 2 +- src/script/api/qscriptclass.h | 2 +- src/script/api/qscriptclasspropertyiterator.cpp | 2 +- src/script/api/qscriptclasspropertyiterator.h | 2 +- src/script/api/qscriptcontext.cpp | 2 +- src/script/api/qscriptcontext.h | 2 +- src/script/api/qscriptcontext_p.h | 2 +- src/script/api/qscriptcontextinfo.cpp | 2 +- src/script/api/qscriptcontextinfo.h | 2 +- src/script/api/qscriptengine.cpp | 2 +- src/script/api/qscriptengine.h | 2 +- src/script/api/qscriptengine_p.h | 2 +- src/script/api/qscriptengineagent.cpp | 2 +- src/script/api/qscriptengineagent.h | 2 +- src/script/api/qscriptengineagent_p.h | 2 +- src/script/api/qscriptextensioninterface.h | 2 +- src/script/api/qscriptextensionplugin.cpp | 2 +- src/script/api/qscriptextensionplugin.h | 2 +- src/script/api/qscriptprogram.cpp | 2 +- src/script/api/qscriptprogram.h | 2 +- src/script/api/qscriptprogram_p.h | 2 +- src/script/api/qscriptstring.cpp | 2 +- src/script/api/qscriptstring.h | 2 +- src/script/api/qscriptstring_p.h | 2 +- src/script/api/qscriptvalue.cpp | 2 +- src/script/api/qscriptvalue.h | 2 +- src/script/api/qscriptvalue_p.h | 2 +- src/script/api/qscriptvalueiterator.cpp | 2 +- src/script/api/qscriptvalueiterator.h | 2 +- src/script/bridge/qscriptactivationobject.cpp | 2 +- src/script/bridge/qscriptactivationobject_p.h | 2 +- src/script/bridge/qscriptclassobject.cpp | 2 +- src/script/bridge/qscriptclassobject_p.h | 2 +- src/script/bridge/qscriptdeclarativeclass.cpp | 2 +- src/script/bridge/qscriptdeclarativeclass_p.h | 2 +- src/script/bridge/qscriptdeclarativeobject.cpp | 2 +- src/script/bridge/qscriptdeclarativeobject_p.h | 2 +- src/script/bridge/qscriptfunction.cpp | 2 +- src/script/bridge/qscriptfunction_p.h | 2 +- src/script/bridge/qscriptglobalobject.cpp | 2 +- src/script/bridge/qscriptglobalobject_p.h | 2 +- src/script/bridge/qscriptobject.cpp | 2 +- src/script/bridge/qscriptobject_p.h | 2 +- src/script/bridge/qscriptqobject.cpp | 2 +- src/script/bridge/qscriptqobject_p.h | 2 +- src/script/bridge/qscriptstaticscopeobject.cpp | 2 +- src/script/bridge/qscriptstaticscopeobject_p.h | 2 +- src/script/bridge/qscriptvariant.cpp | 2 +- src/script/bridge/qscriptvariant_p.h | 2 +- src/script/parser/make-parser.sh | 2 +- src/script/parser/qscript.g | 6 +++--- src/script/parser/qscriptast.cpp | 2 +- src/script/parser/qscriptast_p.h | 2 +- src/script/parser/qscriptastfwd_p.h | 2 +- src/script/parser/qscriptastvisitor.cpp | 2 +- src/script/parser/qscriptastvisitor_p.h | 2 +- src/script/parser/qscriptgrammar.cpp | 2 +- src/script/parser/qscriptgrammar_p.h | 2 +- src/script/parser/qscriptlexer.cpp | 2 +- src/script/parser/qscriptlexer_p.h | 2 +- src/script/parser/qscriptparser.cpp | 2 +- src/script/parser/qscriptparser_p.h | 2 +- src/script/parser/qscriptsyntaxchecker.cpp | 2 +- src/script/parser/qscriptsyntaxchecker_p.h | 2 +- .../debugging/qscriptbreakpointdata.cpp | 2 +- .../debugging/qscriptbreakpointdata_p.h | 2 +- .../debugging/qscriptbreakpointsmodel.cpp | 2 +- .../debugging/qscriptbreakpointsmodel_p.h | 2 +- .../debugging/qscriptbreakpointswidget.cpp | 2 +- .../debugging/qscriptbreakpointswidget_p.h | 2 +- .../qscriptbreakpointswidgetinterface.cpp | 2 +- .../qscriptbreakpointswidgetinterface_p.h | 2 +- .../qscriptbreakpointswidgetinterface_p_p.h | 2 +- .../qscriptcompletionproviderinterface_p.h | 2 +- .../debugging/qscriptcompletiontask.cpp | 2 +- .../debugging/qscriptcompletiontask_p.h | 2 +- .../debugging/qscriptcompletiontaskinterface.cpp | 2 +- .../debugging/qscriptcompletiontaskinterface_p.h | 2 +- .../debugging/qscriptcompletiontaskinterface_p_p.h | 2 +- src/scripttools/debugging/qscriptdebugger.cpp | 2 +- src/scripttools/debugging/qscriptdebugger_p.h | 2 +- src/scripttools/debugging/qscriptdebuggeragent.cpp | 2 +- src/scripttools/debugging/qscriptdebuggeragent_p.h | 2 +- .../debugging/qscriptdebuggeragent_p_p.h | 2 +- .../debugging/qscriptdebuggerbackend.cpp | 2 +- .../debugging/qscriptdebuggerbackend_p.h | 2 +- .../debugging/qscriptdebuggerbackend_p_p.h | 2 +- .../debugging/qscriptdebuggercodefinderwidget.cpp | 2 +- .../debugging/qscriptdebuggercodefinderwidget_p.h | 2 +- .../qscriptdebuggercodefinderwidgetinterface.cpp | 2 +- .../qscriptdebuggercodefinderwidgetinterface_p.h | 2 +- .../qscriptdebuggercodefinderwidgetinterface_p_p.h | 2 +- .../debugging/qscriptdebuggercodeview.cpp | 2 +- .../debugging/qscriptdebuggercodeview_p.h | 2 +- .../debugging/qscriptdebuggercodeviewinterface.cpp | 2 +- .../debugging/qscriptdebuggercodeviewinterface_p.h | 2 +- .../qscriptdebuggercodeviewinterface_p_p.h | 2 +- .../debugging/qscriptdebuggercodewidget.cpp | 2 +- .../debugging/qscriptdebuggercodewidget_p.h | 2 +- .../qscriptdebuggercodewidgetinterface.cpp | 2 +- .../qscriptdebuggercodewidgetinterface_p.h | 2 +- .../qscriptdebuggercodewidgetinterface_p_p.h | 2 +- .../debugging/qscriptdebuggercommand.cpp | 2 +- .../debugging/qscriptdebuggercommand_p.h | 2 +- .../debugging/qscriptdebuggercommandexecutor.cpp | 2 +- .../debugging/qscriptdebuggercommandexecutor_p.h | 2 +- .../qscriptdebuggercommandschedulerfrontend.cpp | 2 +- .../qscriptdebuggercommandschedulerfrontend_p.h | 2 +- .../qscriptdebuggercommandschedulerinterface_p.h | 2 +- .../qscriptdebuggercommandschedulerjob.cpp | 2 +- .../qscriptdebuggercommandschedulerjob_p.h | 2 +- .../qscriptdebuggercommandschedulerjob_p_p.h | 2 +- .../debugging/qscriptdebuggerconsole.cpp | 2 +- .../debugging/qscriptdebuggerconsole_p.h | 2 +- .../debugging/qscriptdebuggerconsolecommand.cpp | 2 +- .../debugging/qscriptdebuggerconsolecommand_p.h | 2 +- .../debugging/qscriptdebuggerconsolecommand_p_p.h | 2 +- .../qscriptdebuggerconsolecommandgroupdata.cpp | 2 +- .../qscriptdebuggerconsolecommandgroupdata_p.h | 2 +- .../debugging/qscriptdebuggerconsolecommandjob.cpp | 2 +- .../debugging/qscriptdebuggerconsolecommandjob_p.h | 2 +- .../qscriptdebuggerconsolecommandjob_p_p.h | 2 +- .../qscriptdebuggerconsolecommandmanager.cpp | 2 +- .../qscriptdebuggerconsolecommandmanager_p.h | 2 +- .../qscriptdebuggerconsoleglobalobject.cpp | 2 +- .../qscriptdebuggerconsoleglobalobject_p.h | 2 +- .../qscriptdebuggerconsolehistorianinterface_p.h | 2 +- .../debugging/qscriptdebuggerconsolewidget.cpp | 2 +- .../debugging/qscriptdebuggerconsolewidget_p.h | 2 +- .../qscriptdebuggerconsolewidgetinterface.cpp | 2 +- .../qscriptdebuggerconsolewidgetinterface_p.h | 2 +- .../qscriptdebuggerconsolewidgetinterface_p_p.h | 2 +- src/scripttools/debugging/qscriptdebuggerevent.cpp | 2 +- src/scripttools/debugging/qscriptdebuggerevent_p.h | 2 +- .../qscriptdebuggereventhandlerinterface_p.h | 2 +- .../debugging/qscriptdebuggerfrontend.cpp | 2 +- .../debugging/qscriptdebuggerfrontend_p.h | 2 +- .../debugging/qscriptdebuggerfrontend_p_p.h | 2 +- src/scripttools/debugging/qscriptdebuggerjob.cpp | 2 +- src/scripttools/debugging/qscriptdebuggerjob_p.h | 2 +- src/scripttools/debugging/qscriptdebuggerjob_p_p.h | 2 +- .../qscriptdebuggerjobschedulerinterface_p.h | 2 +- .../debugging/qscriptdebuggerlocalsmodel.cpp | 2 +- .../debugging/qscriptdebuggerlocalsmodel_p.h | 2 +- .../debugging/qscriptdebuggerlocalswidget.cpp | 2 +- .../debugging/qscriptdebuggerlocalswidget_p.h | 2 +- .../qscriptdebuggerlocalswidgetinterface.cpp | 2 +- .../qscriptdebuggerlocalswidgetinterface_p.h | 2 +- .../qscriptdebuggerlocalswidgetinterface_p_p.h | 2 +- .../qscriptdebuggerobjectsnapshotdelta_p.h | 2 +- .../debugging/qscriptdebuggerresponse.cpp | 2 +- .../debugging/qscriptdebuggerresponse_p.h | 2 +- .../qscriptdebuggerresponsehandlerinterface_p.h | 2 +- .../qscriptdebuggerscriptedconsolecommand.cpp | 2 +- .../qscriptdebuggerscriptedconsolecommand_p.h | 2 +- .../debugging/qscriptdebuggerscriptsmodel.cpp | 2 +- .../debugging/qscriptdebuggerscriptsmodel_p.h | 2 +- .../debugging/qscriptdebuggerscriptswidget.cpp | 2 +- .../debugging/qscriptdebuggerscriptswidget_p.h | 2 +- .../qscriptdebuggerscriptswidgetinterface.cpp | 2 +- .../qscriptdebuggerscriptswidgetinterface_p.h | 2 +- .../qscriptdebuggerscriptswidgetinterface_p_p.h | 2 +- .../debugging/qscriptdebuggerstackmodel.cpp | 2 +- .../debugging/qscriptdebuggerstackmodel_p.h | 2 +- .../debugging/qscriptdebuggerstackwidget.cpp | 2 +- .../debugging/qscriptdebuggerstackwidget_p.h | 2 +- .../qscriptdebuggerstackwidgetinterface.cpp | 2 +- .../qscriptdebuggerstackwidgetinterface_p.h | 2 +- .../qscriptdebuggerstackwidgetinterface_p_p.h | 2 +- .../qscriptdebuggerstandardwidgetfactory.cpp | 2 +- .../qscriptdebuggerstandardwidgetfactory_p.h | 2 +- src/scripttools/debugging/qscriptdebuggervalue.cpp | 2 +- src/scripttools/debugging/qscriptdebuggervalue_p.h | 2 +- .../debugging/qscriptdebuggervalueproperty.cpp | 2 +- .../debugging/qscriptdebuggervalueproperty_p.h | 2 +- .../qscriptdebuggerwidgetfactoryinterface_p.h | 2 +- .../debugging/qscriptdebugoutputwidget.cpp | 2 +- .../debugging/qscriptdebugoutputwidget_p.h | 2 +- .../qscriptdebugoutputwidgetinterface.cpp | 2 +- .../qscriptdebugoutputwidgetinterface_p.h | 2 +- .../qscriptdebugoutputwidgetinterface_p_p.h | 2 +- src/scripttools/debugging/qscriptedit.cpp | 2 +- src/scripttools/debugging/qscriptedit_p.h | 2 +- .../debugging/qscriptenginedebugger.cpp | 2 +- src/scripttools/debugging/qscriptenginedebugger.h | 2 +- .../debugging/qscriptenginedebuggerfrontend.cpp | 2 +- .../debugging/qscriptenginedebuggerfrontend_p.h | 2 +- .../debugging/qscripterrorlogwidget.cpp | 2 +- .../debugging/qscripterrorlogwidget_p.h | 2 +- .../debugging/qscripterrorlogwidgetinterface.cpp | 2 +- .../debugging/qscripterrorlogwidgetinterface_p.h | 2 +- .../debugging/qscripterrorlogwidgetinterface_p_p.h | 2 +- .../debugging/qscriptmessagehandlerinterface_p.h | 2 +- .../debugging/qscriptobjectsnapshot.cpp | 2 +- .../debugging/qscriptobjectsnapshot_p.h | 2 +- src/scripttools/debugging/qscriptscriptdata.cpp | 2 +- src/scripttools/debugging/qscriptscriptdata_p.h | 2 +- .../debugging/qscriptstdmessagehandler.cpp | 2 +- .../debugging/qscriptstdmessagehandler_p.h | 2 +- .../debugging/qscriptsyntaxhighlighter.cpp | 2 +- .../debugging/qscriptsyntaxhighlighter_p.h | 2 +- .../debugging/qscripttooltipproviderinterface_p.h | 2 +- src/scripttools/debugging/qscriptvalueproperty.cpp | 2 +- src/scripttools/debugging/qscriptvalueproperty_p.h | 2 +- src/scripttools/debugging/qscriptxmlparser.cpp | 2 +- src/scripttools/debugging/qscriptxmlparser_p.h | 2 +- src/sql/drivers/db2/qsql_db2.cpp | 2 +- src/sql/drivers/db2/qsql_db2.h | 2 +- src/sql/drivers/ibase/qsql_ibase.cpp | 2 +- src/sql/drivers/ibase/qsql_ibase.h | 2 +- src/sql/drivers/mysql/qsql_mysql.cpp | 2 +- src/sql/drivers/mysql/qsql_mysql.h | 2 +- src/sql/drivers/oci/qsql_oci.cpp | 2 +- src/sql/drivers/oci/qsql_oci.h | 2 +- src/sql/drivers/odbc/qsql_odbc.cpp | 2 +- src/sql/drivers/odbc/qsql_odbc.h | 2 +- src/sql/drivers/psql/qsql_psql.cpp | 2 +- src/sql/drivers/psql/qsql_psql.h | 2 +- src/sql/drivers/sqlite/qsql_sqlite.cpp | 2 +- src/sql/drivers/sqlite/qsql_sqlite.h | 2 +- src/sql/drivers/sqlite2/qsql_sqlite2.cpp | 2 +- src/sql/drivers/sqlite2/qsql_sqlite2.h | 2 +- src/sql/drivers/tds/qsql_tds.cpp | 2 +- src/sql/drivers/tds/qsql_tds.h | 2 +- src/sql/kernel/qsql.h | 2 +- src/sql/kernel/qsql.qdoc | 2 +- src/sql/kernel/qsqlcachedresult.cpp | 2 +- src/sql/kernel/qsqlcachedresult_p.h | 2 +- src/sql/kernel/qsqldatabase.cpp | 2 +- src/sql/kernel/qsqldatabase.h | 2 +- src/sql/kernel/qsqldriver.cpp | 2 +- src/sql/kernel/qsqldriver.h | 2 +- src/sql/kernel/qsqldriverplugin.cpp | 2 +- src/sql/kernel/qsqldriverplugin.h | 2 +- src/sql/kernel/qsqlerror.cpp | 2 +- src/sql/kernel/qsqlerror.h | 2 +- src/sql/kernel/qsqlfield.cpp | 2 +- src/sql/kernel/qsqlfield.h | 2 +- src/sql/kernel/qsqlindex.cpp | 2 +- src/sql/kernel/qsqlindex.h | 2 +- src/sql/kernel/qsqlnulldriver_p.h | 2 +- src/sql/kernel/qsqlquery.cpp | 2 +- src/sql/kernel/qsqlquery.h | 2 +- src/sql/kernel/qsqlrecord.cpp | 2 +- src/sql/kernel/qsqlrecord.h | 2 +- src/sql/kernel/qsqlresult.cpp | 2 +- src/sql/kernel/qsqlresult.h | 2 +- src/sql/models/qsqlquerymodel.cpp | 2 +- src/sql/models/qsqlquerymodel.h | 2 +- src/sql/models/qsqlquerymodel_p.h | 2 +- src/sql/models/qsqlrelationaldelegate.cpp | 2 +- src/sql/models/qsqlrelationaldelegate.h | 2 +- src/sql/models/qsqlrelationaltablemodel.cpp | 2 +- src/sql/models/qsqlrelationaltablemodel.h | 2 +- src/sql/models/qsqltablemodel.cpp | 2 +- src/sql/models/qsqltablemodel.h | 2 +- src/sql/models/qsqltablemodel_p.h | 2 +- src/svg/qgraphicssvgitem.cpp | 2 +- src/svg/qgraphicssvgitem.h | 2 +- src/svg/qsvgfont.cpp | 2 +- src/svg/qsvgfont_p.h | 2 +- src/svg/qsvggenerator.cpp | 2 +- src/svg/qsvggenerator.h | 2 +- src/svg/qsvggraphics.cpp | 2 +- src/svg/qsvggraphics_p.h | 2 +- src/svg/qsvghandler.cpp | 2 +- src/svg/qsvghandler_p.h | 2 +- src/svg/qsvgnode.cpp | 2 +- src/svg/qsvgnode_p.h | 2 +- src/svg/qsvgrenderer.cpp | 2 +- src/svg/qsvgrenderer.h | 2 +- src/svg/qsvgstructure.cpp | 2 +- src/svg/qsvgstructure_p.h | 2 +- src/svg/qsvgstyle.cpp | 2 +- src/svg/qsvgstyle_p.h | 2 +- src/svg/qsvgtinydocument.cpp | 2 +- src/svg/qsvgtinydocument_p.h | 2 +- src/svg/qsvgwidget.cpp | 2 +- src/svg/qsvgwidget.h | 2 +- src/testlib/qabstracttestlogger.cpp | 2 +- src/testlib/qabstracttestlogger_p.h | 2 +- src/testlib/qasciikey.cpp | 2 +- src/testlib/qbenchmark.cpp | 2 +- src/testlib/qbenchmark.h | 2 +- src/testlib/qbenchmark_p.h | 2 +- src/testlib/qbenchmarkevent.cpp | 2 +- src/testlib/qbenchmarkevent_p.h | 2 +- src/testlib/qbenchmarkmeasurement.cpp | 2 +- src/testlib/qbenchmarkmeasurement_p.h | 2 +- src/testlib/qbenchmarkmetric.cpp | 2 +- src/testlib/qbenchmarkmetric.h | 2 +- src/testlib/qbenchmarkmetric_p.h | 2 +- src/testlib/qbenchmarkvalgrind.cpp | 2 +- src/testlib/qbenchmarkvalgrind_p.h | 2 +- src/testlib/qplaintestlogger.cpp | 2 +- src/testlib/qplaintestlogger_p.h | 2 +- src/testlib/qsignaldumper.cpp | 2 +- src/testlib/qsignaldumper_p.h | 2 +- src/testlib/qsignalspy.h | 2 +- src/testlib/qsignalspy.qdoc | 2 +- src/testlib/qtest.h | 2 +- src/testlib/qtest_global.h | 2 +- src/testlib/qtest_gui.h | 2 +- src/testlib/qtestaccessible.h | 2 +- src/testlib/qtestassert.h | 2 +- src/testlib/qtestbasicstreamer.cpp | 2 +- src/testlib/qtestbasicstreamer.h | 2 +- src/testlib/qtestcase.cpp | 2 +- src/testlib/qtestcase.h | 2 +- src/testlib/qtestcoreelement.h | 2 +- src/testlib/qtestcorelist.h | 2 +- src/testlib/qtestdata.cpp | 2 +- src/testlib/qtestdata.h | 2 +- src/testlib/qtestelement.cpp | 2 +- src/testlib/qtestelement.h | 2 +- src/testlib/qtestelementattribute.cpp | 2 +- src/testlib/qtestelementattribute.h | 2 +- src/testlib/qtestevent.h | 2 +- src/testlib/qtestevent.qdoc | 2 +- src/testlib/qtesteventloop.h | 2 +- src/testlib/qtestfilelogger.cpp | 2 +- src/testlib/qtestfilelogger.h | 2 +- src/testlib/qtestkeyboard.h | 2 +- src/testlib/qtestlightxmlstreamer.cpp | 2 +- src/testlib/qtestlightxmlstreamer.h | 2 +- src/testlib/qtestlog.cpp | 2 +- src/testlib/qtestlog_p.h | 2 +- src/testlib/qtestlogger.cpp | 2 +- src/testlib/qtestlogger_p.h | 2 +- src/testlib/qtestmouse.h | 2 +- src/testlib/qtestresult.cpp | 2 +- src/testlib/qtestresult_p.h | 2 +- src/testlib/qtestspontaneevent.h | 2 +- src/testlib/qtestsystem.h | 2 +- src/testlib/qtesttable.cpp | 2 +- src/testlib/qtesttable_p.h | 2 +- src/testlib/qtesttouch.h | 2 +- src/testlib/qtestxmlstreamer.cpp | 2 +- src/testlib/qtestxmlstreamer.h | 2 +- src/testlib/qtestxunitstreamer.cpp | 2 +- src/testlib/qtestxunitstreamer.h | 2 +- src/testlib/qxmltestlogger.cpp | 2 +- src/testlib/qxmltestlogger_p.h | 2 +- src/tools/idc/main.cpp | 2 +- src/tools/moc/generator.cpp | 2 +- src/tools/moc/generator.h | 2 +- src/tools/moc/keywords.cpp | 2 +- src/tools/moc/main.cpp | 2 +- src/tools/moc/moc.cpp | 2 +- src/tools/moc/moc.h | 2 +- src/tools/moc/mwerks_mac.cpp | 2 +- src/tools/moc/mwerks_mac.h | 2 +- src/tools/moc/outputrevision.h | 2 +- src/tools/moc/parser.cpp | 2 +- src/tools/moc/parser.h | 2 +- src/tools/moc/ppkeywords.cpp | 2 +- src/tools/moc/preprocessor.cpp | 2 +- src/tools/moc/preprocessor.h | 2 +- src/tools/moc/symbols.h | 2 +- src/tools/moc/token.cpp | 2 +- src/tools/moc/token.h | 2 +- src/tools/moc/util/generate.sh | 2 +- src/tools/moc/util/generate_keywords.cpp | 2 +- src/tools/moc/util/licenseheader.txt | 2 +- src/tools/moc/utils.h | 2 +- src/tools/rcc/main.cpp | 2 +- src/tools/rcc/rcc.cpp | 2 +- src/tools/rcc/rcc.h | 2 +- src/tools/uic/cpp/cppextractimages.cpp | 2 +- src/tools/uic/cpp/cppextractimages.h | 2 +- src/tools/uic/cpp/cppwritedeclaration.cpp | 2 +- src/tools/uic/cpp/cppwritedeclaration.h | 2 +- src/tools/uic/cpp/cppwriteicondata.cpp | 2 +- src/tools/uic/cpp/cppwriteicondata.h | 2 +- src/tools/uic/cpp/cppwriteicondeclaration.cpp | 2 +- src/tools/uic/cpp/cppwriteicondeclaration.h | 2 +- src/tools/uic/cpp/cppwriteiconinitialization.cpp | 2 +- src/tools/uic/cpp/cppwriteiconinitialization.h | 2 +- src/tools/uic/cpp/cppwriteincludes.cpp | 2 +- src/tools/uic/cpp/cppwriteincludes.h | 2 +- src/tools/uic/cpp/cppwriteinitialization.cpp | 2 +- src/tools/uic/cpp/cppwriteinitialization.h | 2 +- src/tools/uic/customwidgetsinfo.cpp | 2 +- src/tools/uic/customwidgetsinfo.h | 2 +- src/tools/uic/databaseinfo.cpp | 2 +- src/tools/uic/databaseinfo.h | 2 +- src/tools/uic/driver.cpp | 2 +- src/tools/uic/driver.h | 2 +- src/tools/uic/globaldefs.h | 2 +- src/tools/uic/main.cpp | 2 +- src/tools/uic/option.h | 2 +- src/tools/uic/treewalker.cpp | 2 +- src/tools/uic/treewalker.h | 2 +- src/tools/uic/ui4.cpp | 2 +- src/tools/uic/ui4.h | 2 +- src/tools/uic/uic.cpp | 2 +- src/tools/uic/uic.h | 2 +- src/tools/uic/utils.h | 2 +- src/tools/uic/validator.cpp | 2 +- src/tools/uic/validator.h | 2 +- src/tools/uic3/converter.cpp | 2 +- src/tools/uic3/deps.cpp | 2 +- src/tools/uic3/domtool.cpp | 2 +- src/tools/uic3/domtool.h | 2 +- src/tools/uic3/embed.cpp | 2 +- src/tools/uic3/form.cpp | 2 +- src/tools/uic3/main.cpp | 2 +- src/tools/uic3/object.cpp | 2 +- src/tools/uic3/parser.cpp | 2 +- src/tools/uic3/parser.h | 2 +- src/tools/uic3/qt3to4.cpp | 2 +- src/tools/uic3/qt3to4.h | 2 +- src/tools/uic3/subclassing.cpp | 2 +- src/tools/uic3/ui3reader.cpp | 2 +- src/tools/uic3/ui3reader.h | 2 +- src/tools/uic3/uic.cpp | 2 +- src/tools/uic3/uic.h | 2 +- src/tools/uic3/widgetinfo.cpp | 2 +- src/tools/uic3/widgetinfo.h | 2 +- src/winmain/qtmain_win.cpp | 2 +- src/xml/dom/qdom.cpp | 2 +- src/xml/dom/qdom.h | 2 +- src/xml/sax/qxml.cpp | 2 +- src/xml/sax/qxml.h | 2 +- src/xml/stream/qxmlstream.h | 2 +- src/xmlpatterns/Mainpage.dox | 2 +- src/xmlpatterns/acceltree/qacceliterators.cpp | 2 +- src/xmlpatterns/acceltree/qacceliterators_p.h | 2 +- src/xmlpatterns/acceltree/qacceltree.cpp | 2 +- src/xmlpatterns/acceltree/qacceltree_p.h | 2 +- src/xmlpatterns/acceltree/qacceltreebuilder.cpp | 2 +- src/xmlpatterns/acceltree/qacceltreebuilder_p.h | 2 +- .../acceltree/qacceltreeresourceloader.cpp | 2 +- .../acceltree/qacceltreeresourceloader_p.h | 2 +- .../acceltree/qcompressedwhitespace.cpp | 2 +- .../acceltree/qcompressedwhitespace_p.h | 2 +- src/xmlpatterns/api/qabstractmessagehandler.cpp | 2 +- src/xmlpatterns/api/qabstractmessagehandler.h | 2 +- src/xmlpatterns/api/qabstracturiresolver.cpp | 2 +- src/xmlpatterns/api/qabstracturiresolver.h | 2 +- .../api/qabstractxmlforwarditerator.cpp | 2 +- .../api/qabstractxmlforwarditerator_p.h | 2 +- src/xmlpatterns/api/qabstractxmlnodemodel.cpp | 2 +- src/xmlpatterns/api/qabstractxmlnodemodel.h | 2 +- src/xmlpatterns/api/qabstractxmlnodemodel_p.h | 2 +- src/xmlpatterns/api/qabstractxmlreceiver.cpp | 2 +- src/xmlpatterns/api/qabstractxmlreceiver.h | 2 +- src/xmlpatterns/api/qabstractxmlreceiver_p.h | 2 +- src/xmlpatterns/api/qcoloringmessagehandler.cpp | 2 +- src/xmlpatterns/api/qcoloringmessagehandler_p.h | 2 +- src/xmlpatterns/api/qcoloroutput.cpp | 2 +- src/xmlpatterns/api/qcoloroutput_p.h | 2 +- src/xmlpatterns/api/qdeviceresourceloader_p.h | 2 +- src/xmlpatterns/api/qiodevicedelegate.cpp | 2 +- src/xmlpatterns/api/qiodevicedelegate_p.h | 2 +- src/xmlpatterns/api/qnetworkaccessdelegator.cpp | 2 +- src/xmlpatterns/api/qnetworkaccessdelegator_p.h | 2 +- src/xmlpatterns/api/qreferencecountedvalue_p.h | 2 +- src/xmlpatterns/api/qresourcedelegator.cpp | 2 +- src/xmlpatterns/api/qresourcedelegator_p.h | 2 +- src/xmlpatterns/api/qsimplexmlnodemodel.cpp | 2 +- src/xmlpatterns/api/qsimplexmlnodemodel.h | 2 +- src/xmlpatterns/api/qsourcelocation.cpp | 2 +- src/xmlpatterns/api/qsourcelocation.h | 2 +- src/xmlpatterns/api/quriloader.cpp | 2 +- src/xmlpatterns/api/quriloader_p.h | 2 +- src/xmlpatterns/api/qvariableloader.cpp | 2 +- src/xmlpatterns/api/qvariableloader_p.h | 2 +- src/xmlpatterns/api/qxmlformatter.cpp | 2 +- src/xmlpatterns/api/qxmlformatter.h | 2 +- src/xmlpatterns/api/qxmlname.cpp | 2 +- src/xmlpatterns/api/qxmlname.h | 2 +- src/xmlpatterns/api/qxmlnamepool.cpp | 2 +- src/xmlpatterns/api/qxmlnamepool.h | 2 +- src/xmlpatterns/api/qxmlpatternistcli_p.h | 2 +- src/xmlpatterns/api/qxmlquery.cpp | 2 +- src/xmlpatterns/api/qxmlquery.h | 2 +- src/xmlpatterns/api/qxmlquery_p.h | 2 +- src/xmlpatterns/api/qxmlresultitems.cpp | 2 +- src/xmlpatterns/api/qxmlresultitems.h | 2 +- src/xmlpatterns/api/qxmlresultitems_p.h | 2 +- src/xmlpatterns/api/qxmlserializer.cpp | 2 +- src/xmlpatterns/api/qxmlserializer.h | 2 +- src/xmlpatterns/api/qxmlserializer_p.h | 2 +- src/xmlpatterns/data/qabstractdatetime.cpp | 2 +- src/xmlpatterns/data/qabstractdatetime_p.h | 2 +- src/xmlpatterns/data/qabstractduration.cpp | 2 +- src/xmlpatterns/data/qabstractduration_p.h | 2 +- src/xmlpatterns/data/qabstractfloat.cpp | 2 +- src/xmlpatterns/data/qabstractfloat_p.h | 2 +- src/xmlpatterns/data/qabstractfloatcasters.cpp | 2 +- src/xmlpatterns/data/qabstractfloatcasters_p.h | 2 +- .../data/qabstractfloatmathematician.cpp | 2 +- .../data/qabstractfloatmathematician_p.h | 2 +- src/xmlpatterns/data/qanyuri.cpp | 2 +- src/xmlpatterns/data/qanyuri_p.h | 2 +- src/xmlpatterns/data/qatomiccaster.cpp | 2 +- src/xmlpatterns/data/qatomiccaster_p.h | 2 +- src/xmlpatterns/data/qatomiccasters.cpp | 2 +- src/xmlpatterns/data/qatomiccasters_p.h | 2 +- src/xmlpatterns/data/qatomiccomparator.cpp | 2 +- src/xmlpatterns/data/qatomiccomparator_p.h | 2 +- src/xmlpatterns/data/qatomiccomparators.cpp | 2 +- src/xmlpatterns/data/qatomiccomparators_p.h | 2 +- src/xmlpatterns/data/qatomicmathematician.cpp | 2 +- src/xmlpatterns/data/qatomicmathematician_p.h | 2 +- src/xmlpatterns/data/qatomicmathematicians.cpp | 2 +- src/xmlpatterns/data/qatomicmathematicians_p.h | 2 +- src/xmlpatterns/data/qatomicstring.cpp | 2 +- src/xmlpatterns/data/qatomicstring_p.h | 2 +- src/xmlpatterns/data/qatomicvalue.cpp | 2 +- src/xmlpatterns/data/qbase64binary.cpp | 2 +- src/xmlpatterns/data/qbase64binary_p.h | 2 +- src/xmlpatterns/data/qboolean.cpp | 2 +- src/xmlpatterns/data/qboolean_p.h | 2 +- src/xmlpatterns/data/qcommonvalues.cpp | 2 +- src/xmlpatterns/data/qcommonvalues_p.h | 2 +- src/xmlpatterns/data/qdate.cpp | 2 +- src/xmlpatterns/data/qdate_p.h | 2 +- src/xmlpatterns/data/qdaytimeduration.cpp | 2 +- src/xmlpatterns/data/qdaytimeduration_p.h | 2 +- src/xmlpatterns/data/qdecimal.cpp | 2 +- src/xmlpatterns/data/qdecimal_p.h | 2 +- src/xmlpatterns/data/qderivedinteger_p.h | 2 +- src/xmlpatterns/data/qderivedstring_p.h | 2 +- src/xmlpatterns/data/qduration.cpp | 2 +- src/xmlpatterns/data/qduration_p.h | 2 +- src/xmlpatterns/data/qgday.cpp | 2 +- src/xmlpatterns/data/qgday_p.h | 2 +- src/xmlpatterns/data/qgmonth.cpp | 2 +- src/xmlpatterns/data/qgmonth_p.h | 2 +- src/xmlpatterns/data/qgmonthday.cpp | 2 +- src/xmlpatterns/data/qgmonthday_p.h | 2 +- src/xmlpatterns/data/qgyear.cpp | 2 +- src/xmlpatterns/data/qgyear_p.h | 2 +- src/xmlpatterns/data/qgyearmonth.cpp | 2 +- src/xmlpatterns/data/qgyearmonth_p.h | 2 +- src/xmlpatterns/data/qhexbinary.cpp | 2 +- src/xmlpatterns/data/qhexbinary_p.h | 2 +- src/xmlpatterns/data/qinteger.cpp | 2 +- src/xmlpatterns/data/qinteger_p.h | 2 +- src/xmlpatterns/data/qitem.cpp | 2 +- src/xmlpatterns/data/qitem_p.h | 2 +- src/xmlpatterns/data/qnodebuilder.cpp | 2 +- src/xmlpatterns/data/qnodebuilder_p.h | 2 +- src/xmlpatterns/data/qnodemodel.cpp | 2 +- src/xmlpatterns/data/qqnamevalue.cpp | 2 +- src/xmlpatterns/data/qqnamevalue_p.h | 2 +- src/xmlpatterns/data/qresourceloader.cpp | 2 +- src/xmlpatterns/data/qresourceloader_p.h | 2 +- src/xmlpatterns/data/qschemadatetime.cpp | 2 +- src/xmlpatterns/data/qschemadatetime_p.h | 2 +- src/xmlpatterns/data/qschemanumeric.cpp | 2 +- src/xmlpatterns/data/qschemanumeric_p.h | 2 +- src/xmlpatterns/data/qschematime.cpp | 2 +- src/xmlpatterns/data/qschematime_p.h | 2 +- src/xmlpatterns/data/qsequencereceiver.cpp | 2 +- src/xmlpatterns/data/qsequencereceiver_p.h | 2 +- src/xmlpatterns/data/qsorttuple.cpp | 2 +- src/xmlpatterns/data/qsorttuple_p.h | 2 +- src/xmlpatterns/data/quntypedatomic.cpp | 2 +- src/xmlpatterns/data/quntypedatomic_p.h | 2 +- src/xmlpatterns/data/qvalidationerror.cpp | 2 +- src/xmlpatterns/data/qvalidationerror_p.h | 2 +- src/xmlpatterns/data/qyearmonthduration.cpp | 2 +- src/xmlpatterns/data/qyearmonthduration_p.h | 2 +- src/xmlpatterns/documentationGroups.dox | 2 +- src/xmlpatterns/environment/createReportContext.sh | 2 +- .../environment/createReportContext.xsl | 4 ++-- .../environment/qcurrentitemcontext.cpp | 2 +- .../environment/qcurrentitemcontext_p.h | 2 +- .../environment/qdelegatingdynamiccontext.cpp | 2 +- .../environment/qdelegatingdynamiccontext_p.h | 2 +- .../environment/qdelegatingstaticcontext.cpp | 2 +- .../environment/qdelegatingstaticcontext_p.h | 2 +- src/xmlpatterns/environment/qdynamiccontext.cpp | 2 +- src/xmlpatterns/environment/qdynamiccontext_p.h | 2 +- src/xmlpatterns/environment/qfocus.cpp | 2 +- src/xmlpatterns/environment/qfocus_p.h | 2 +- .../environment/qgenericdynamiccontext.cpp | 2 +- .../environment/qgenericdynamiccontext_p.h | 2 +- .../environment/qgenericstaticcontext.cpp | 2 +- .../environment/qgenericstaticcontext_p.h | 2 +- .../environment/qreceiverdynamiccontext.cpp | 2 +- .../environment/qreceiverdynamiccontext_p.h | 2 +- src/xmlpatterns/environment/qreportcontext.cpp | 2 +- src/xmlpatterns/environment/qreportcontext_p.h | 2 +- src/xmlpatterns/environment/qstackcontextbase.cpp | 2 +- src/xmlpatterns/environment/qstackcontextbase_p.h | 2 +- .../environment/qstaticbaseuricontext.cpp | 2 +- .../environment/qstaticbaseuricontext_p.h | 2 +- .../environment/qstaticcompatibilitycontext.cpp | 2 +- .../environment/qstaticcompatibilitycontext_p.h | 2 +- src/xmlpatterns/environment/qstaticcontext.cpp | 2 +- src/xmlpatterns/environment/qstaticcontext_p.h | 2 +- .../environment/qstaticcurrentcontext.cpp | 2 +- .../environment/qstaticcurrentcontext_p.h | 2 +- .../environment/qstaticfocuscontext.cpp | 2 +- .../environment/qstaticfocuscontext_p.h | 2 +- .../environment/qstaticnamespacecontext.cpp | 2 +- .../environment/qstaticnamespacecontext_p.h | 2 +- src/xmlpatterns/expr/qandexpression.cpp | 2 +- src/xmlpatterns/expr/qandexpression_p.h | 2 +- src/xmlpatterns/expr/qapplytemplate.cpp | 2 +- src/xmlpatterns/expr/qapplytemplate_p.h | 2 +- src/xmlpatterns/expr/qargumentreference.cpp | 2 +- src/xmlpatterns/expr/qargumentreference_p.h | 2 +- src/xmlpatterns/expr/qarithmeticexpression.cpp | 2 +- src/xmlpatterns/expr/qarithmeticexpression_p.h | 2 +- src/xmlpatterns/expr/qattributeconstructor.cpp | 2 +- src/xmlpatterns/expr/qattributeconstructor_p.h | 2 +- src/xmlpatterns/expr/qattributenamevalidator.cpp | 2 +- src/xmlpatterns/expr/qattributenamevalidator_p.h | 2 +- src/xmlpatterns/expr/qaxisstep.cpp | 2 +- src/xmlpatterns/expr/qaxisstep_p.h | 2 +- src/xmlpatterns/expr/qcachecells_p.h | 2 +- src/xmlpatterns/expr/qcallsite.cpp | 2 +- src/xmlpatterns/expr/qcallsite_p.h | 2 +- src/xmlpatterns/expr/qcalltargetdescription.cpp | 2 +- src/xmlpatterns/expr/qcalltargetdescription_p.h | 2 +- src/xmlpatterns/expr/qcalltemplate.cpp | 2 +- src/xmlpatterns/expr/qcalltemplate_p.h | 2 +- src/xmlpatterns/expr/qcastableas.cpp | 2 +- src/xmlpatterns/expr/qcastableas_p.h | 2 +- src/xmlpatterns/expr/qcastas.cpp | 2 +- src/xmlpatterns/expr/qcastas_p.h | 2 +- src/xmlpatterns/expr/qcastingplatform.cpp | 2 +- src/xmlpatterns/expr/qcastingplatform_p.h | 2 +- src/xmlpatterns/expr/qcollationchecker.cpp | 2 +- src/xmlpatterns/expr/qcollationchecker_p.h | 2 +- src/xmlpatterns/expr/qcombinenodes.cpp | 2 +- src/xmlpatterns/expr/qcombinenodes_p.h | 2 +- src/xmlpatterns/expr/qcommentconstructor.cpp | 2 +- src/xmlpatterns/expr/qcommentconstructor_p.h | 2 +- src/xmlpatterns/expr/qcomparisonplatform.cpp | 2 +- src/xmlpatterns/expr/qcomparisonplatform_p.h | 2 +- .../expr/qcomputednamespaceconstructor.cpp | 2 +- .../expr/qcomputednamespaceconstructor_p.h | 2 +- src/xmlpatterns/expr/qcontextitem.cpp | 2 +- src/xmlpatterns/expr/qcontextitem_p.h | 2 +- src/xmlpatterns/expr/qcopyof.cpp | 2 +- src/xmlpatterns/expr/qcopyof_p.h | 2 +- src/xmlpatterns/expr/qcurrentitemstore.cpp | 2 +- src/xmlpatterns/expr/qcurrentitemstore_p.h | 2 +- src/xmlpatterns/expr/qdocumentconstructor.cpp | 2 +- src/xmlpatterns/expr/qdocumentconstructor_p.h | 2 +- src/xmlpatterns/expr/qdocumentcontentvalidator.cpp | 2 +- src/xmlpatterns/expr/qdocumentcontentvalidator_p.h | 2 +- src/xmlpatterns/expr/qdynamiccontextstore.cpp | 2 +- src/xmlpatterns/expr/qdynamiccontextstore_p.h | 2 +- src/xmlpatterns/expr/qelementconstructor.cpp | 2 +- src/xmlpatterns/expr/qelementconstructor_p.h | 2 +- src/xmlpatterns/expr/qemptycontainer.cpp | 2 +- src/xmlpatterns/expr/qemptycontainer_p.h | 2 +- src/xmlpatterns/expr/qemptysequence.cpp | 2 +- src/xmlpatterns/expr/qemptysequence_p.h | 2 +- src/xmlpatterns/expr/qevaluationcache.cpp | 2 +- src/xmlpatterns/expr/qevaluationcache_p.h | 2 +- src/xmlpatterns/expr/qexpression.cpp | 2 +- src/xmlpatterns/expr/qexpression_p.h | 2 +- src/xmlpatterns/expr/qexpressiondispatch_p.h | 2 +- src/xmlpatterns/expr/qexpressionfactory.cpp | 2 +- src/xmlpatterns/expr/qexpressionfactory_p.h | 2 +- src/xmlpatterns/expr/qexpressionsequence.cpp | 2 +- src/xmlpatterns/expr/qexpressionsequence_p.h | 2 +- .../expr/qexpressionvariablereference.cpp | 2 +- .../expr/qexpressionvariablereference_p.h | 2 +- src/xmlpatterns/expr/qexternalvariableloader.cpp | 2 +- src/xmlpatterns/expr/qexternalvariableloader_p.h | 2 +- .../expr/qexternalvariablereference.cpp | 2 +- .../expr/qexternalvariablereference_p.h | 2 +- src/xmlpatterns/expr/qfirstitempredicate.cpp | 2 +- src/xmlpatterns/expr/qfirstitempredicate_p.h | 2 +- src/xmlpatterns/expr/qforclause.cpp | 2 +- src/xmlpatterns/expr/qforclause_p.h | 2 +- src/xmlpatterns/expr/qgeneralcomparison.cpp | 2 +- src/xmlpatterns/expr/qgeneralcomparison_p.h | 2 +- src/xmlpatterns/expr/qgenericpredicate.cpp | 2 +- src/xmlpatterns/expr/qgenericpredicate_p.h | 2 +- src/xmlpatterns/expr/qifthenclause.cpp | 2 +- src/xmlpatterns/expr/qifthenclause_p.h | 2 +- src/xmlpatterns/expr/qinstanceof.cpp | 2 +- src/xmlpatterns/expr/qinstanceof_p.h | 2 +- src/xmlpatterns/expr/qletclause.cpp | 2 +- src/xmlpatterns/expr/qletclause_p.h | 2 +- src/xmlpatterns/expr/qliteral.cpp | 2 +- src/xmlpatterns/expr/qliteral_p.h | 2 +- src/xmlpatterns/expr/qliteralsequence.cpp | 2 +- src/xmlpatterns/expr/qliteralsequence_p.h | 2 +- src/xmlpatterns/expr/qnamespaceconstructor.cpp | 2 +- src/xmlpatterns/expr/qnamespaceconstructor_p.h | 2 +- src/xmlpatterns/expr/qncnameconstructor.cpp | 2 +- src/xmlpatterns/expr/qncnameconstructor_p.h | 2 +- src/xmlpatterns/expr/qnodecomparison.cpp | 2 +- src/xmlpatterns/expr/qnodecomparison_p.h | 2 +- src/xmlpatterns/expr/qnodesort.cpp | 2 +- src/xmlpatterns/expr/qnodesort_p.h | 2 +- src/xmlpatterns/expr/qoperandsiterator_p.h | 2 +- src/xmlpatterns/expr/qoptimizationpasses.cpp | 2 +- src/xmlpatterns/expr/qoptimizationpasses_p.h | 2 +- src/xmlpatterns/expr/qoptimizerblocks.cpp | 2 +- src/xmlpatterns/expr/qoptimizerblocks_p.h | 2 +- src/xmlpatterns/expr/qoptimizerframework.cpp | 2 +- src/xmlpatterns/expr/qoptimizerframework_p.h | 2 +- src/xmlpatterns/expr/qorderby.cpp | 2 +- src/xmlpatterns/expr/qorderby_p.h | 2 +- src/xmlpatterns/expr/qorexpression.cpp | 2 +- src/xmlpatterns/expr/qorexpression_p.h | 2 +- src/xmlpatterns/expr/qpaircontainer.cpp | 2 +- src/xmlpatterns/expr/qpaircontainer_p.h | 2 +- src/xmlpatterns/expr/qparentnodeaxis.cpp | 2 +- src/xmlpatterns/expr/qparentnodeaxis_p.h | 2 +- src/xmlpatterns/expr/qpath.cpp | 2 +- src/xmlpatterns/expr/qpath_p.h | 2 +- .../expr/qpositionalvariablereference.cpp | 2 +- .../expr/qpositionalvariablereference_p.h | 2 +- .../expr/qprocessinginstructionconstructor.cpp | 2 +- .../expr/qprocessinginstructionconstructor_p.h | 2 +- src/xmlpatterns/expr/qqnameconstructor.cpp | 2 +- src/xmlpatterns/expr/qqnameconstructor_p.h | 2 +- src/xmlpatterns/expr/qquantifiedexpression.cpp | 2 +- src/xmlpatterns/expr/qquantifiedexpression_p.h | 2 +- src/xmlpatterns/expr/qrangeexpression.cpp | 2 +- src/xmlpatterns/expr/qrangeexpression_p.h | 2 +- src/xmlpatterns/expr/qrangevariablereference.cpp | 2 +- src/xmlpatterns/expr/qrangevariablereference_p.h | 2 +- src/xmlpatterns/expr/qreturnorderby.cpp | 2 +- src/xmlpatterns/expr/qreturnorderby_p.h | 2 +- src/xmlpatterns/expr/qsimplecontentconstructor.cpp | 2 +- src/xmlpatterns/expr/qsimplecontentconstructor_p.h | 2 +- src/xmlpatterns/expr/qsinglecontainer.cpp | 2 +- src/xmlpatterns/expr/qsinglecontainer_p.h | 2 +- src/xmlpatterns/expr/qsourcelocationreflection.cpp | 2 +- src/xmlpatterns/expr/qsourcelocationreflection_p.h | 2 +- src/xmlpatterns/expr/qstaticbaseuristore.cpp | 2 +- src/xmlpatterns/expr/qstaticbaseuristore_p.h | 2 +- src/xmlpatterns/expr/qstaticcompatibilitystore.cpp | 2 +- src/xmlpatterns/expr/qstaticcompatibilitystore_p.h | 2 +- src/xmlpatterns/expr/qtemplate.cpp | 2 +- src/xmlpatterns/expr/qtemplate_p.h | 2 +- src/xmlpatterns/expr/qtemplateinvoker.cpp | 2 +- src/xmlpatterns/expr/qtemplateinvoker_p.h | 2 +- src/xmlpatterns/expr/qtemplatemode.cpp | 2 +- src/xmlpatterns/expr/qtemplatemode_p.h | 2 +- .../expr/qtemplateparameterreference.cpp | 2 +- .../expr/qtemplateparameterreference_p.h | 2 +- src/xmlpatterns/expr/qtemplatepattern_p.h | 2 +- src/xmlpatterns/expr/qtextnodeconstructor.cpp | 2 +- src/xmlpatterns/expr/qtextnodeconstructor_p.h | 2 +- src/xmlpatterns/expr/qtreatas.cpp | 2 +- src/xmlpatterns/expr/qtreatas_p.h | 2 +- src/xmlpatterns/expr/qtriplecontainer.cpp | 2 +- src/xmlpatterns/expr/qtriplecontainer_p.h | 2 +- src/xmlpatterns/expr/qtruthpredicate.cpp | 2 +- src/xmlpatterns/expr/qtruthpredicate_p.h | 2 +- src/xmlpatterns/expr/qunaryexpression.cpp | 2 +- src/xmlpatterns/expr/qunaryexpression_p.h | 2 +- src/xmlpatterns/expr/qunlimitedcontainer.cpp | 2 +- src/xmlpatterns/expr/qunlimitedcontainer_p.h | 2 +- .../expr/qunresolvedvariablereference.cpp | 2 +- .../expr/qunresolvedvariablereference_p.h | 2 +- src/xmlpatterns/expr/quserfunction.cpp | 2 +- src/xmlpatterns/expr/quserfunction_p.h | 2 +- src/xmlpatterns/expr/quserfunctioncallsite.cpp | 2 +- src/xmlpatterns/expr/quserfunctioncallsite_p.h | 2 +- src/xmlpatterns/expr/qvalidate.cpp | 2 +- src/xmlpatterns/expr/qvalidate_p.h | 2 +- src/xmlpatterns/expr/qvaluecomparison.cpp | 2 +- src/xmlpatterns/expr/qvaluecomparison_p.h | 2 +- src/xmlpatterns/expr/qvariabledeclaration.cpp | 2 +- src/xmlpatterns/expr/qvariabledeclaration_p.h | 2 +- src/xmlpatterns/expr/qvariablereference.cpp | 2 +- src/xmlpatterns/expr/qvariablereference_p.h | 2 +- src/xmlpatterns/expr/qwithparam_p.h | 2 +- .../expr/qxsltsimplecontentconstructor.cpp | 2 +- .../expr/qxsltsimplecontentconstructor_p.h | 2 +- .../functions/qabstractfunctionfactory.cpp | 2 +- .../functions/qabstractfunctionfactory_p.h | 2 +- src/xmlpatterns/functions/qaccessorfns.cpp | 2 +- src/xmlpatterns/functions/qaccessorfns_p.h | 2 +- src/xmlpatterns/functions/qaggregatefns.cpp | 2 +- src/xmlpatterns/functions/qaggregatefns_p.h | 2 +- src/xmlpatterns/functions/qaggregator.cpp | 2 +- src/xmlpatterns/functions/qaggregator_p.h | 2 +- src/xmlpatterns/functions/qassemblestringfns.cpp | 2 +- src/xmlpatterns/functions/qassemblestringfns_p.h | 2 +- src/xmlpatterns/functions/qbooleanfns.cpp | 2 +- src/xmlpatterns/functions/qbooleanfns_p.h | 2 +- src/xmlpatterns/functions/qcomparescaseaware.cpp | 2 +- src/xmlpatterns/functions/qcomparescaseaware_p.h | 2 +- src/xmlpatterns/functions/qcomparestringfns.cpp | 2 +- src/xmlpatterns/functions/qcomparestringfns_p.h | 2 +- src/xmlpatterns/functions/qcomparingaggregator.cpp | 2 +- src/xmlpatterns/functions/qcomparingaggregator_p.h | 2 +- .../functions/qconstructorfunctionsfactory.cpp | 2 +- .../functions/qconstructorfunctionsfactory_p.h | 2 +- src/xmlpatterns/functions/qcontextfns.cpp | 2 +- src/xmlpatterns/functions/qcontextfns_p.h | 2 +- src/xmlpatterns/functions/qcontextnodechecker.cpp | 2 +- src/xmlpatterns/functions/qcontextnodechecker_p.h | 2 +- src/xmlpatterns/functions/qcurrentfn.cpp | 2 +- src/xmlpatterns/functions/qcurrentfn_p.h | 2 +- src/xmlpatterns/functions/qdatetimefn.cpp | 2 +- src/xmlpatterns/functions/qdatetimefn_p.h | 2 +- src/xmlpatterns/functions/qdatetimefns.cpp | 2 +- src/xmlpatterns/functions/qdatetimefns_p.h | 2 +- src/xmlpatterns/functions/qdeepequalfn.cpp | 2 +- src/xmlpatterns/functions/qdeepequalfn_p.h | 2 +- src/xmlpatterns/functions/qdocumentfn.cpp | 2 +- src/xmlpatterns/functions/qdocumentfn_p.h | 2 +- src/xmlpatterns/functions/qelementavailablefn.cpp | 2 +- src/xmlpatterns/functions/qelementavailablefn_p.h | 2 +- src/xmlpatterns/functions/qerrorfn.cpp | 2 +- src/xmlpatterns/functions/qerrorfn_p.h | 2 +- src/xmlpatterns/functions/qfunctionargument.cpp | 2 +- src/xmlpatterns/functions/qfunctionargument_p.h | 2 +- src/xmlpatterns/functions/qfunctionavailablefn.cpp | 2 +- src/xmlpatterns/functions/qfunctionavailablefn_p.h | 2 +- src/xmlpatterns/functions/qfunctioncall.cpp | 2 +- src/xmlpatterns/functions/qfunctioncall_p.h | 2 +- src/xmlpatterns/functions/qfunctionfactory.cpp | 2 +- src/xmlpatterns/functions/qfunctionfactory_p.h | 2 +- .../functions/qfunctionfactorycollection.cpp | 2 +- .../functions/qfunctionfactorycollection_p.h | 2 +- src/xmlpatterns/functions/qfunctionsignature.cpp | 2 +- src/xmlpatterns/functions/qfunctionsignature_p.h | 2 +- src/xmlpatterns/functions/qgenerateidfn.cpp | 2 +- src/xmlpatterns/functions/qgenerateidfn_p.h | 2 +- src/xmlpatterns/functions/qnodefns.cpp | 2 +- src/xmlpatterns/functions/qnodefns_p.h | 2 +- src/xmlpatterns/functions/qnumericfns.cpp | 2 +- src/xmlpatterns/functions/qnumericfns_p.h | 2 +- src/xmlpatterns/functions/qpatternmatchingfns.cpp | 2 +- src/xmlpatterns/functions/qpatternmatchingfns_p.h | 2 +- src/xmlpatterns/functions/qpatternplatform.cpp | 2 +- src/xmlpatterns/functions/qpatternplatform_p.h | 2 +- src/xmlpatterns/functions/qqnamefns.cpp | 2 +- src/xmlpatterns/functions/qqnamefns_p.h | 2 +- src/xmlpatterns/functions/qresolveurifn.cpp | 2 +- src/xmlpatterns/functions/qresolveurifn_p.h | 2 +- src/xmlpatterns/functions/qsequencefns.cpp | 2 +- src/xmlpatterns/functions/qsequencefns_p.h | 2 +- .../functions/qsequencegeneratingfns.cpp | 2 +- .../functions/qsequencegeneratingfns_p.h | 2 +- .../functions/qstaticbaseuricontainer_p.h | 2 +- .../functions/qstaticnamespacescontainer.cpp | 2 +- .../functions/qstaticnamespacescontainer_p.h | 2 +- src/xmlpatterns/functions/qstringvaluefns.cpp | 2 +- src/xmlpatterns/functions/qstringvaluefns_p.h | 2 +- src/xmlpatterns/functions/qsubstringfns.cpp | 2 +- src/xmlpatterns/functions/qsubstringfns_p.h | 2 +- src/xmlpatterns/functions/qsystempropertyfn.cpp | 2 +- src/xmlpatterns/functions/qsystempropertyfn_p.h | 2 +- src/xmlpatterns/functions/qtimezonefns.cpp | 2 +- src/xmlpatterns/functions/qtimezonefns_p.h | 2 +- src/xmlpatterns/functions/qtracefn.cpp | 2 +- src/xmlpatterns/functions/qtracefn_p.h | 2 +- src/xmlpatterns/functions/qtypeavailablefn.cpp | 2 +- src/xmlpatterns/functions/qtypeavailablefn_p.h | 2 +- .../functions/qunparsedentitypublicidfn.cpp | 2 +- .../functions/qunparsedentitypublicidfn_p.h | 2 +- src/xmlpatterns/functions/qunparsedentityurifn.cpp | 2 +- src/xmlpatterns/functions/qunparsedentityurifn_p.h | 2 +- .../functions/qunparsedtextavailablefn.cpp | 2 +- .../functions/qunparsedtextavailablefn_p.h | 2 +- src/xmlpatterns/functions/qunparsedtextfn.cpp | 2 +- src/xmlpatterns/functions/qunparsedtextfn_p.h | 2 +- .../functions/qxpath10corefunctions.cpp | 2 +- .../functions/qxpath10corefunctions_p.h | 2 +- .../functions/qxpath20corefunctions.cpp | 2 +- .../functions/qxpath20corefunctions_p.h | 2 +- src/xmlpatterns/functions/qxslt20corefunctions.cpp | 2 +- src/xmlpatterns/functions/qxslt20corefunctions_p.h | 2 +- src/xmlpatterns/iterators/qcachingiterator.cpp | 2 +- src/xmlpatterns/iterators/qcachingiterator_p.h | 2 +- src/xmlpatterns/iterators/qdeduplicateiterator.cpp | 2 +- src/xmlpatterns/iterators/qdeduplicateiterator_p.h | 2 +- src/xmlpatterns/iterators/qdistinctiterator.cpp | 2 +- src/xmlpatterns/iterators/qdistinctiterator_p.h | 2 +- src/xmlpatterns/iterators/qemptyiterator_p.h | 2 +- src/xmlpatterns/iterators/qexceptiterator.cpp | 2 +- src/xmlpatterns/iterators/qexceptiterator_p.h | 2 +- src/xmlpatterns/iterators/qindexofiterator.cpp | 2 +- src/xmlpatterns/iterators/qindexofiterator_p.h | 2 +- src/xmlpatterns/iterators/qinsertioniterator.cpp | 2 +- src/xmlpatterns/iterators/qinsertioniterator_p.h | 2 +- src/xmlpatterns/iterators/qintersectiterator.cpp | 2 +- src/xmlpatterns/iterators/qintersectiterator_p.h | 2 +- src/xmlpatterns/iterators/qitemmappingiterator_p.h | 2 +- src/xmlpatterns/iterators/qrangeiterator.cpp | 2 +- src/xmlpatterns/iterators/qrangeiterator_p.h | 2 +- src/xmlpatterns/iterators/qremovaliterator.cpp | 2 +- src/xmlpatterns/iterators/qremovaliterator_p.h | 2 +- .../iterators/qsequencemappingiterator_p.h | 2 +- src/xmlpatterns/iterators/qsingletoniterator_p.h | 2 +- src/xmlpatterns/iterators/qsubsequenceiterator.cpp | 2 +- src/xmlpatterns/iterators/qsubsequenceiterator_p.h | 2 +- .../iterators/qtocodepointsiterator.cpp | 2 +- .../iterators/qtocodepointsiterator_p.h | 2 +- src/xmlpatterns/iterators/qunioniterator.cpp | 2 +- src/xmlpatterns/iterators/qunioniterator_p.h | 2 +- src/xmlpatterns/janitors/qargumentconverter.cpp | 2 +- src/xmlpatterns/janitors/qargumentconverter_p.h | 2 +- src/xmlpatterns/janitors/qatomizer.cpp | 2 +- src/xmlpatterns/janitors/qatomizer_p.h | 2 +- src/xmlpatterns/janitors/qcardinalityverifier.cpp | 2 +- src/xmlpatterns/janitors/qcardinalityverifier_p.h | 2 +- src/xmlpatterns/janitors/qebvextractor.cpp | 2 +- src/xmlpatterns/janitors/qebvextractor_p.h | 2 +- src/xmlpatterns/janitors/qitemverifier.cpp | 2 +- src/xmlpatterns/janitors/qitemverifier_p.h | 2 +- .../janitors/quntypedatomicconverter.cpp | 2 +- .../janitors/quntypedatomicconverter_p.h | 2 +- src/xmlpatterns/parser/TokenLookup.gperf | 2 +- src/xmlpatterns/parser/createParser.sh | 2 +- src/xmlpatterns/parser/createTokenLookup.sh | 4 ++-- src/xmlpatterns/parser/createXSLTTokenLookup.sh | 2 +- src/xmlpatterns/parser/qmaintainingreader.cpp | 2 +- src/xmlpatterns/parser/qmaintainingreader_p.h | 2 +- src/xmlpatterns/parser/qparsercontext.cpp | 2 +- src/xmlpatterns/parser/qparsercontext_p.h | 2 +- src/xmlpatterns/parser/qquerytransformparser.cpp | 2 +- src/xmlpatterns/parser/qquerytransformparser_p.h | 2 +- src/xmlpatterns/parser/qtokenizer_p.h | 2 +- src/xmlpatterns/parser/qtokenlookup.cpp | 2 +- src/xmlpatterns/parser/qtokenrevealer.cpp | 2 +- src/xmlpatterns/parser/qtokenrevealer_p.h | 2 +- src/xmlpatterns/parser/qtokensource.cpp | 2 +- src/xmlpatterns/parser/qtokensource_p.h | 2 +- src/xmlpatterns/parser/querytransformparser.ypp | 4 ++-- src/xmlpatterns/parser/qxquerytokenizer.cpp | 2 +- src/xmlpatterns/parser/qxquerytokenizer_p.h | 2 +- src/xmlpatterns/parser/qxslttokenizer.cpp | 2 +- src/xmlpatterns/parser/qxslttokenizer_p.h | 2 +- src/xmlpatterns/parser/qxslttokenlookup.cpp | 2 +- src/xmlpatterns/parser/qxslttokenlookup.xml | 2 +- src/xmlpatterns/parser/qxslttokenlookup_p.h | 2 +- src/xmlpatterns/parser/trolltechHeader.txt | 2 +- src/xmlpatterns/projection/qdocumentprojector.cpp | 2 +- src/xmlpatterns/projection/qdocumentprojector_p.h | 2 +- .../projection/qprojectedexpression_p.h | 2 +- src/xmlpatterns/qtokenautomaton/exampleFile.xml | 2 +- src/xmlpatterns/schema/qxsdschemachecker_setup.cpp | 2 +- src/xmlpatterns/schema/qxsdschemaparser.cpp | 2 +- src/xmlpatterns/schema/qxsdschemaparser_setup.cpp | 2 +- src/xmlpatterns/type/qabstractnodetest.cpp | 2 +- src/xmlpatterns/type/qabstractnodetest_p.h | 2 +- src/xmlpatterns/type/qanyitemtype.cpp | 2 +- src/xmlpatterns/type/qanyitemtype_p.h | 2 +- src/xmlpatterns/type/qanynodetype.cpp | 2 +- src/xmlpatterns/type/qanynodetype_p.h | 2 +- src/xmlpatterns/type/qanysimpletype.cpp | 2 +- src/xmlpatterns/type/qanysimpletype_p.h | 2 +- src/xmlpatterns/type/qanytype.cpp | 2 +- src/xmlpatterns/type/qanytype_p.h | 2 +- src/xmlpatterns/type/qatomiccasterlocator.cpp | 2 +- src/xmlpatterns/type/qatomiccasterlocator_p.h | 2 +- src/xmlpatterns/type/qatomiccasterlocators.cpp | 2 +- src/xmlpatterns/type/qatomiccasterlocators_p.h | 2 +- src/xmlpatterns/type/qatomiccomparatorlocator.cpp | 2 +- src/xmlpatterns/type/qatomiccomparatorlocator_p.h | 2 +- src/xmlpatterns/type/qatomiccomparatorlocators.cpp | 2 +- src/xmlpatterns/type/qatomiccomparatorlocators_p.h | 2 +- .../type/qatomicmathematicianlocator.cpp | 2 +- .../type/qatomicmathematicianlocator_p.h | 2 +- .../type/qatomicmathematicianlocators.cpp | 2 +- .../type/qatomicmathematicianlocators_p.h | 2 +- src/xmlpatterns/type/qatomictype.cpp | 2 +- src/xmlpatterns/type/qatomictype_p.h | 2 +- src/xmlpatterns/type/qatomictypedispatch_p.h | 2 +- src/xmlpatterns/type/qbasictypesfactory.cpp | 2 +- src/xmlpatterns/type/qbasictypesfactory_p.h | 2 +- src/xmlpatterns/type/qbuiltinatomictype.cpp | 2 +- src/xmlpatterns/type/qbuiltinatomictype_p.h | 2 +- src/xmlpatterns/type/qbuiltinatomictypes.cpp | 2 +- src/xmlpatterns/type/qbuiltinatomictypes_p.h | 2 +- src/xmlpatterns/type/qbuiltinnodetype.cpp | 2 +- src/xmlpatterns/type/qbuiltinnodetype_p.h | 2 +- src/xmlpatterns/type/qbuiltintypes.cpp | 2 +- src/xmlpatterns/type/qbuiltintypes_p.h | 2 +- src/xmlpatterns/type/qcardinality.cpp | 2 +- src/xmlpatterns/type/qcardinality_p.h | 2 +- src/xmlpatterns/type/qcommonsequencetypes.cpp | 2 +- src/xmlpatterns/type/qcommonsequencetypes_p.h | 2 +- src/xmlpatterns/type/qebvtype.cpp | 2 +- src/xmlpatterns/type/qebvtype_p.h | 2 +- src/xmlpatterns/type/qemptysequencetype.cpp | 2 +- src/xmlpatterns/type/qemptysequencetype_p.h | 2 +- src/xmlpatterns/type/qgenericsequencetype.cpp | 2 +- src/xmlpatterns/type/qgenericsequencetype_p.h | 2 +- src/xmlpatterns/type/qitemtype.cpp | 2 +- src/xmlpatterns/type/qitemtype_p.h | 2 +- src/xmlpatterns/type/qlocalnametest.cpp | 2 +- src/xmlpatterns/type/qlocalnametest_p.h | 2 +- src/xmlpatterns/type/qmultiitemtype.cpp | 2 +- src/xmlpatterns/type/qmultiitemtype_p.h | 2 +- src/xmlpatterns/type/qnamespacenametest.cpp | 2 +- src/xmlpatterns/type/qnamespacenametest_p.h | 2 +- src/xmlpatterns/type/qnonetype.cpp | 2 +- src/xmlpatterns/type/qnonetype_p.h | 2 +- src/xmlpatterns/type/qnumerictype.cpp | 2 +- src/xmlpatterns/type/qnumerictype_p.h | 2 +- src/xmlpatterns/type/qprimitives_p.h | 2 +- src/xmlpatterns/type/qqnametest.cpp | 2 +- src/xmlpatterns/type/qqnametest_p.h | 2 +- src/xmlpatterns/type/qschemacomponent.cpp | 2 +- src/xmlpatterns/type/qschemacomponent_p.h | 2 +- src/xmlpatterns/type/qschematype.cpp | 2 +- src/xmlpatterns/type/qschematype_p.h | 2 +- src/xmlpatterns/type/qschematypefactory.cpp | 2 +- src/xmlpatterns/type/qschematypefactory_p.h | 2 +- src/xmlpatterns/type/qsequencetype.cpp | 2 +- src/xmlpatterns/type/qsequencetype_p.h | 2 +- src/xmlpatterns/type/qtypechecker.cpp | 2 +- src/xmlpatterns/type/qtypechecker_p.h | 2 +- src/xmlpatterns/type/quntyped.cpp | 2 +- src/xmlpatterns/type/quntyped_p.h | 2 +- src/xmlpatterns/type/qxsltnodetest.cpp | 2 +- src/xmlpatterns/type/qxsltnodetest_p.h | 2 +- src/xmlpatterns/utils/qautoptr.cpp | 2 +- src/xmlpatterns/utils/qautoptr_p.h | 2 +- src/xmlpatterns/utils/qcommonnamespaces_p.h | 2 +- src/xmlpatterns/utils/qcppcastinghelper_p.h | 2 +- src/xmlpatterns/utils/qdebug_p.h | 2 +- .../utils/qdelegatingnamespaceresolver.cpp | 2 +- .../utils/qdelegatingnamespaceresolver_p.h | 2 +- .../utils/qgenericnamespaceresolver.cpp | 2 +- .../utils/qgenericnamespaceresolver_p.h | 2 +- src/xmlpatterns/utils/qnamepool.cpp | 2 +- src/xmlpatterns/utils/qnamepool_p.h | 2 +- src/xmlpatterns/utils/qnamespacebinding_p.h | 2 +- src/xmlpatterns/utils/qnamespaceresolver.cpp | 2 +- src/xmlpatterns/utils/qnamespaceresolver_p.h | 2 +- src/xmlpatterns/utils/qnodenamespaceresolver.cpp | 2 +- src/xmlpatterns/utils/qnodenamespaceresolver_p.h | 2 +- src/xmlpatterns/utils/qoutputvalidator.cpp | 2 +- src/xmlpatterns/utils/qoutputvalidator_p.h | 2 +- src/xmlpatterns/utils/qpatternistlocale.cpp | 2 +- src/xmlpatterns/utils/qpatternistlocale_p.h | 2 +- src/xmlpatterns/utils/qxpathhelper.cpp | 2 +- src/xmlpatterns/utils/qxpathhelper_p.h | 2 +- tests/arthur/common/framework.cpp | 2 +- tests/arthur/common/framework.h | 2 +- tests/arthur/common/paintcommands.cpp | 2 +- tests/arthur/common/paintcommands.h | 2 +- tests/arthur/common/qengines.cpp | 2 +- tests/arthur/common/qengines.h | 2 +- tests/arthur/common/xmldata.cpp | 2 +- tests/arthur/common/xmldata.h | 2 +- tests/arthur/datagenerator/datagenerator.cpp | 2 +- tests/arthur/datagenerator/datagenerator.h | 2 +- tests/arthur/datagenerator/main.cpp | 2 +- tests/arthur/datagenerator/xmlgenerator.cpp | 2 +- tests/arthur/datagenerator/xmlgenerator.h | 2 +- tests/arthur/htmlgenerator/htmlgenerator.cpp | 2 +- tests/arthur/htmlgenerator/htmlgenerator.h | 2 +- tests/arthur/htmlgenerator/main.cpp | 2 +- tests/arthur/lance/interactivewidget.cpp | 2 +- tests/arthur/lance/interactivewidget.h | 2 +- tests/arthur/lance/main.cpp | 2 +- tests/arthur/lance/widgets.h | 2 +- tests/arthur/performancediff/main.cpp | 2 +- tests/arthur/performancediff/performancediff.cpp | 2 +- tests/arthur/performancediff/performancediff.h | 2 +- tests/arthur/shower/main.cpp | 2 +- tests/arthur/shower/shower.cpp | 2 +- tests/arthur/shower/shower.h | 2 +- tests/auto/atwrapper/atWrapper.cpp | 2 +- tests/auto/atwrapper/atWrapper.h | 2 +- tests/auto/atwrapper/atWrapperAutotest.cpp | 2 +- tests/auto/bic/gen.sh | 2 +- tests/auto/bic/qbic.cpp | 2 +- tests/auto/bic/qbic.h | 2 +- tests/auto/bic/tst_bic.cpp | 2 +- tests/auto/checkxmlfiles/tst_checkxmlfiles.cpp | 2 +- tests/auto/collections/tst_collections.cpp | 2 +- tests/auto/compiler/baseclass.cpp | 2 +- tests/auto/compiler/baseclass.h | 2 +- tests/auto/compiler/derivedclass.cpp | 2 +- tests/auto/compiler/derivedclass.h | 2 +- tests/auto/compiler/tst_compiler.cpp | 2 +- tests/auto/compilerwarnings/test_cpp.txt | 2 +- .../auto/compilerwarnings/tst_compilerwarnings.cpp | 2 +- tests/auto/declarative/examples/tst_examples.cpp | 2 +- .../auto/declarative/moduleqt47/tst_moduleqt47.cpp | 2 +- .../declarative/parserstress/tst_parserstress.cpp | 2 +- .../tst_qdeclarativeanchors.cpp | 2 +- .../tst_qdeclarativeanimatedimage.cpp | 2 +- .../tst_qdeclarativeanimations.cpp | 2 +- .../tst_qdeclarativebehaviors.cpp | 2 +- .../tst_qdeclarativebinding.cpp | 2 +- .../tst_qdeclarativeborderimage.cpp | 2 +- .../tst_qdeclarativecomponent.cpp | 2 +- .../tst_qdeclarativeconnection.cpp | 2 +- .../tst_qdeclarativecontext.cpp | 2 +- .../qdeclarativedebug/tst_qdeclarativedebug.cpp | 2 +- .../tst_qdeclarativedebugclient.cpp | 2 +- .../private_headers/qdeclarativedebughelper_p.h | 2 +- .../tst_qdeclarativedebughelper.cpp | 2 +- .../tst_qdeclarativedebugservice.cpp | 2 +- .../qdeclarativedom/tst_qdeclarativedom.cpp | 2 +- .../qdeclarativeecmascript/testtypes.cpp | 2 +- .../declarative/qdeclarativeecmascript/testtypes.h | 2 +- .../tst_qdeclarativeecmascript.cpp | 2 +- .../qdeclarativeengine/tst_qdeclarativeengine.cpp | 2 +- .../qdeclarativeerror/tst_qdeclarativeerror.cpp | 2 +- .../tst_qdeclarativeflickable.cpp | 2 +- .../tst_qdeclarativeflipable.cpp | 2 +- .../tst_qdeclarativefocusscope.cpp | 2 +- .../tst_qdeclarativefolderlistmodel.cpp | 2 +- .../tst_qdeclarativefontloader.cpp | 2 +- .../tst_qdeclarativegridview.cpp | 2 +- .../qdeclarativeimage/tst_qdeclarativeimage.cpp | 2 +- .../qdeclarativeinfo/tst_qdeclarativeinfo.cpp | 2 +- .../tst_qdeclarativeinstruction.cpp | 2 +- .../qdeclarativeitem/tst_qdeclarativeitem.cpp | 2 +- .../declarative/qdeclarativelanguage/testtypes.cpp | 2 +- .../declarative/qdeclarativelanguage/testtypes.h | 2 +- .../tst_qdeclarativelanguage.cpp | 2 +- .../tst_qdeclarativelayoutitem.cpp | 2 +- .../tst_qdeclarativelistmodel.cpp | 2 +- .../tst_qdeclarativelistreference.cpp | 2 +- .../qdeclarativelistview/incrementalmodel.cpp | 2 +- .../qdeclarativelistview/incrementalmodel.h | 2 +- .../tst_qdeclarativelistview.cpp | 2 +- .../qdeclarativeloader/tst_qdeclarativeloader.cpp | 2 +- .../tst_qdeclarativemetatype.cpp | 2 +- .../qdeclarativemoduleplugin/plugin/plugin.cpp | 2 +- .../pluginWrongCase/plugin.cpp | 2 +- .../tst_qdeclarativemoduleplugin.cpp | 2 +- .../tst_qdeclarativeparticles.cpp | 2 +- .../tst_qdeclarativepathview.cpp | 2 +- .../tst_qdeclarativepixmapcache.cpp | 2 +- .../tst_qdeclarativepositioners.cpp | 2 +- .../tst_qdeclarativeproperty.cpp | 2 +- .../tst_qdeclarativepropertymap.cpp | 2 +- .../qdeclarativeqt/tst_qdeclarativeqt.cpp | 2 +- .../tst_qdeclarativerepeater.cpp | 2 +- .../tst_qdeclarativescriptdebugging.cpp | 2 +- .../tst_qdeclarativesmoothedanimation.cpp | 2 +- .../tst_qdeclarativespringanimation.cpp | 2 +- .../tst_qdeclarativesqldatabase.cpp | 2 +- .../qdeclarativestates/tst_qdeclarativestates.cpp | 2 +- .../tst_qdeclarativestyledtext.cpp | 2 +- .../tst_qdeclarativesystempalette.cpp | 2 +- .../qdeclarativetext/tst_qdeclarativetext.cpp | 2 +- .../tst_qdeclarativetextedit.cpp | 2 +- .../tst_qdeclarativetextinput.cpp | 2 +- .../qdeclarativetimer/tst_qdeclarativetimer.cpp | 2 +- .../qdeclarativevaluetypes/testtypes.cpp | 2 +- .../declarative/qdeclarativevaluetypes/testtypes.h | 2 +- .../tst_qdeclarativevaluetypes.cpp | 2 +- .../qdeclarativeview/tst_qdeclarativeview.cpp | 2 +- .../qdeclarativeviewer/tst_qdeclarativeviewer.cpp | 2 +- .../tst_qdeclarativevisualdatamodel.cpp | 2 +- .../tst_qdeclarativewebview.cpp | 2 +- .../tst_qdeclarativeworkerscript.cpp | 2 +- .../tst_qdeclarativexmlhttprequest.cpp | 2 +- .../tst_qdeclarativexmllistmodel.cpp | 2 +- .../qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp | 2 +- tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 2 +- .../qpacketprotocol/tst_qpacketprotocol.cpp | 2 +- tests/auto/declarative/runall.sh | 2 +- tests/auto/declarative/shared/debugutil.cpp | 2 +- tests/auto/declarative/shared/debugutil_p.h | 2 +- tests/auto/declarative/shared/testhttpserver.cpp | 2 +- tests/auto/declarative/shared/testhttpserver.h | 2 +- tests/auto/exceptionsafety/tst_exceptionsafety.cpp | 2 +- tests/auto/exceptionsafety_objects/oomsimulator.h | 2 +- .../tst_exceptionsafety_objects.cpp | 2 +- tests/auto/gestures/tst_gestures.cpp | 2 +- tests/auto/guiapplauncher/tst_guiapplauncher.cpp | 2 +- tests/auto/guiapplauncher/windowmanager.cpp | 2 +- tests/auto/guiapplauncher/windowmanager.h | 2 +- tests/auto/headers/headersclean.cpp | 2 +- tests/auto/headers/tst_headers.cpp | 2 +- tests/auto/languagechange/tst_languagechange.cpp | 2 +- tests/auto/linguist/lconvert/data/makeplurals.pl | 2 +- tests/auto/linguist/lconvert/tst_lconvert.cpp | 2 +- tests/auto/linguist/lrelease/tst_lrelease.cpp | 2 +- .../lupdate/testdata/good/backslashes/src/main.cpp | 2 +- .../lupdate/testdata/good/cmdline_order/a.h | 2 +- .../lupdate/testdata/good/cmdline_order/b.h | 2 +- .../lupdate/testdata/good/codecforsrc/main.cpp | 2 +- .../lupdate/testdata/good/codecfortr/main.cpp | 2 +- .../lupdate/testdata/good/codecfortr1/main.cpp | 2 +- .../lupdate/testdata/good/codecfortr2/main.cpp | 2 +- .../lupdate/testdata/good/codecfortr3/main.cpp | 2 +- .../lupdate/testdata/good/codecfortr4/main.cpp | 2 +- .../lupdate/testdata/good/from_subdir/src/main.cpp | 2 +- .../lupdate/testdata/good/from_subdir/src/main.h | 2 +- .../lupdate/testdata/good/heuristics/main.cpp | 2 +- .../lupdate/testdata/good/lacksqobject/main.cpp | 2 +- .../lupdate/testdata/good/merge_ordering/foo.cpp | 2 +- .../testdata/good/merge_versions/project.ui | 2 +- .../testdata/good/merge_whitespace/main.cpp | 2 +- .../lupdate/testdata/good/mergecpp/finddialog.cpp | 2 +- .../good/mergecpp_noobsolete/finddialog.cpp | 2 +- .../testdata/good/mergecpp_obsolete/finddialog.cpp | 2 +- .../lupdate/testdata/good/mergeui/project.ui | 2 +- .../good/multiple_locations/finddialog.cpp | 2 +- .../testdata/good/multiple_locations/main.cpp | 2 +- .../lupdate/testdata/good/namespaces/main.cpp | 2 +- .../testdata/good/parse_special_chars/main.cpp | 2 +- .../lupdate/testdata/good/parsecontexts/main.cpp | 2 +- .../lupdate/testdata/good/parsecpp/finddialog.cpp | 2 +- .../lupdate/testdata/good/parsecpp/main.cpp | 2 +- .../lupdate/testdata/good/parsecpp2/main.cpp | 2 +- .../lupdate/testdata/good/parsecpp2/main.h | 2 +- .../lupdate/testdata/good/parsecpp2/main2.cpp | 2 +- .../lupdate/testdata/good/parsecpp2/main3.cpp | 2 +- .../lupdate/testdata/good/parsejava/main.java | 2 +- .../lupdate/testdata/good/parseui/project.ui | 2 +- .../linguist/lupdate/testdata/good/prefix/main.cpp | 2 +- .../lupdate/testdata/good/preprocess/main.cpp | 2 +- .../lupdate/testdata/good/proparsing/main.cpp | 2 +- .../lupdate/testdata/good/proparsing/main_mac.cpp | 2 +- .../lupdate/testdata/good/proparsing/main_unix.cpp | 2 +- .../lupdate/testdata/good/proparsing/main_win.cpp | 2 +- .../vpaths/dependpath/main_dependpath.cpp | 2 +- .../testdata/good/proparsing/wildcard/main1.cpp | 2 +- .../testdata/good/proparsing/wildcard/mainfile.cpp | 2 +- .../lupdate/testdata/good/proparsing/wildcard1.cpp | 2 +- .../testdata/good/proparsing/wildcard99.cpp | 2 +- .../linguist/lupdate/testdata/good/proparsing2/a | 2 +- .../lupdate/testdata/good/proparsing2/a.cpp | 2 +- .../linguist/lupdate/testdata/good/proparsing2/b | 2 +- .../lupdate/testdata/good/proparsing2/b.cpp | 2 +- .../linguist/lupdate/testdata/good/proparsing2/e | 2 +- .../lupdate/testdata/good/proparsing2/f/g.cpp | 2 +- .../lupdate/testdata/good/proparsing2/spaces/z | 2 +- .../testdata/good/proparsing2/variable_with_spaces | 2 +- .../lupdate/testdata/good/proparsing2/with | 2 +- .../linguist/lupdate/testdata/good/proparsing2/x/d | 2 +- .../lupdate/testdata/good/proparsing2/x/variable | 2 +- .../testdata/good/proparsingpaths/file1.cpp | 2 +- .../testdata/good/proparsingpaths/filter.cpp | 2 +- .../testdata/good/proparsingpaths/sub/subfile1.cpp | 2 +- .../good/proparsingpaths/sub/subfilter.cpp | 2 +- .../testdata/good/proparsingpri/common/main.cpp | 2 +- .../testdata/good/proparsingpri/mac/main_mac.cpp | 2 +- .../good/proparsingpri/relativity/relativity.cpp | 2 +- .../testdata/good/proparsingpri/unix/main_unix.cpp | 2 +- .../testdata/good/proparsingpri/win/main_win.cpp | 2 +- .../testdata/good/proparsingsubdirs/sub1/main.cpp | 2 +- .../testdata/good/proparsingsubs/common/main.cpp | 2 +- .../testdata/good/proparsingsubs/mac/main_mac.cpp | 2 +- .../good/proparsingsubs/unix/main_unix.cpp | 2 +- .../testdata/good/proparsingsubs/win/main_win.cpp | 2 +- .../lupdate/testdata/good/reloutput/main.cpp | 2 +- .../lupdate/testdata/good/respfile/source1.cpp | 2 +- .../lupdate/testdata/good/respfile/source2.cpp | 2 +- .../lupdate/testdata/recursivescan/main.cpp | 2 +- .../lupdate/testdata/recursivescan/project.ui | 2 +- .../testdata/recursivescan/sub/filetypes/main.c++ | 2 +- .../testdata/recursivescan/sub/filetypes/main.cpp | 2 +- .../testdata/recursivescan/sub/filetypes/main.cxx | 2 +- .../testdata/recursivescan/sub/finddialog.cpp | 2 +- .../lupdate/testdata/subdirs_full/subdir1/main.cpp | 2 +- .../testdata/subdirs_full/subdir2/subsub1/main.cpp | 2 +- .../testdata/subdirs_full/subdir2/subsub2/main.cpp | 2 +- .../lupdate/testdata/subdirs_part/subdir1/main.cpp | 2 +- .../testdata/subdirs_part/subdir2/subsub1/main.cpp | 2 +- .../testdata/subdirs_part/subdir2/subsub2/main.cpp | 2 +- tests/auto/linguist/lupdate/tst_lupdate.cpp | 2 +- tests/auto/macgui/guitest.cpp | 2 +- tests/auto/macgui/guitest.h | 2 +- tests/auto/macgui/tst_macgui.cpp | 2 +- tests/auto/macnativeevents/expectedeventlist.cpp | 2 +- tests/auto/macnativeevents/expectedeventlist.h | 2 +- tests/auto/macnativeevents/nativeeventlist.cpp | 2 +- tests/auto/macnativeevents/nativeeventlist.h | 2 +- tests/auto/macnativeevents/qnativeevents.cpp | 2 +- tests/auto/macnativeevents/qnativeevents.h | 2 +- tests/auto/macnativeevents/qnativeevents_mac.cpp | 2 +- tests/auto/macnativeevents/tst_macnativeevents.cpp | 2 +- tests/auto/macplist/app/main.cpp | 2 +- tests/auto/macplist/tst_macplist.cpp | 2 +- tests/auto/maketestselftest/checktest/main.cpp | 2 +- .../auto/maketestselftest/tst_maketestselftest.cpp | 2 +- tests/auto/mediaobject/dummy/audiooutput.cpp | 2 +- tests/auto/mediaobject/dummy/audiooutput.h | 2 +- tests/auto/mediaobject/dummy/backend.cpp | 2 +- tests/auto/mediaobject/dummy/backend.h | 2 +- tests/auto/mediaobject/dummy/mediaobject.cpp | 2 +- tests/auto/mediaobject/dummy/mediaobject.h | 2 +- tests/auto/mediaobject/dummy/videowidget.cpp | 2 +- tests/auto/mediaobject/dummy/videowidget.h | 2 +- tests/auto/mediaobject/qtesthelper.h | 2 +- tests/auto/mediaobject/tst_mediaobject.cpp | 2 +- tests/auto/mediaobject_wince_ds9/dummy.cpp | 2 +- .../moc/Test.framework/Headers/testinterface.h | 2 +- tests/auto/moc/assign-namespace.h | 2 +- tests/auto/moc/backslash-newlines.h | 2 +- tests/auto/moc/c-comments.h | 2 +- tests/auto/moc/cstyle-enums.h | 2 +- tests/auto/moc/dir-in-include-path.h | 2 +- tests/auto/moc/error-on-wrong-notify.h | 2 +- tests/auto/moc/escapes-in-string-literals.h | 2 +- tests/auto/moc/extraqualification.h | 2 +- tests/auto/moc/forgotten-qinterface.h | 2 +- tests/auto/moc/gadgetwithnoenums.h | 2 +- tests/auto/moc/interface-from-framework.h | 2 +- tests/auto/moc/macro-on-cmdline.h | 2 +- tests/auto/moc/namespaced-flags.h | 2 +- tests/auto/moc/no-keywords.h | 2 +- tests/auto/moc/oldstyle-casts.h | 2 +- tests/auto/moc/parse-boost.h | 2 +- tests/auto/moc/pure-virtual-signals.h | 2 +- tests/auto/moc/qinvokable.h | 2 +- tests/auto/moc/qprivateslots.h | 2 +- tests/auto/moc/single_function_keyword.h | 2 +- tests/auto/moc/slots-with-void-template.h | 2 +- tests/auto/moc/task189996.h | 2 +- tests/auto/moc/task192552.h | 2 +- tests/auto/moc/task234909.h | 2 +- tests/auto/moc/task240368.h | 2 +- tests/auto/moc/task87883.h | 2 +- tests/auto/moc/template-gtgt.h | 2 +- tests/auto/moc/testproject/Plugin/Plugin.h | 2 +- tests/auto/moc/trigraphs.h | 2 +- tests/auto/moc/tst_moc.cpp | 2 +- tests/auto/moc/using-namespaces.h | 2 +- .../auto/moc/warn-on-multiple-qobject-subclasses.h | 2 +- tests/auto/moc/warn-on-property-without-read.h | 2 +- tests/auto/moc/win-newlines.h | 2 +- tests/auto/modeltest/modeltest.cpp | 2 +- tests/auto/modeltest/modeltest.h | 2 +- tests/auto/modeltest/tst_modeltest.cpp | 2 +- tests/auto/network-settings.h | 2 +- tests/auto/networkselftest/tst_networkselftest.cpp | 2 +- .../tst_patternistexamplefiletree.cpp | 2 +- .../patternistexamples/tst_patternistexamples.cpp | 2 +- .../patternistheaders/tst_patternistheaders.cpp | 2 +- tests/auto/platformquirks.h | 2 +- tests/auto/q3accel/tst_q3accel.cpp | 2 +- tests/auto/q3action/tst_q3action.cpp | 2 +- tests/auto/q3actiongroup/tst_q3actiongroup.cpp | 2 +- tests/auto/q3buttongroup/clickLock/main.cpp | 2 +- tests/auto/q3buttongroup/tst_q3buttongroup.cpp | 2 +- tests/auto/q3canvas/tst_q3canvas.cpp | 2 +- tests/auto/q3checklistitem/tst_q3checklistitem.cpp | 2 +- tests/auto/q3combobox/tst_q3combobox.cpp | 2 +- tests/auto/q3cstring/tst_q3cstring.cpp | 2 +- tests/auto/q3databrowser/tst_q3databrowser.cpp | 2 +- tests/auto/q3dateedit/tst_q3dateedit.cpp | 2 +- tests/auto/q3datetimeedit/tst_q3datetimeedit.cpp | 2 +- tests/auto/q3deepcopy/tst_q3deepcopy.cpp | 2 +- tests/auto/q3dict/tst_q3dict.cpp | 2 +- tests/auto/q3dns/tst_q3dns.cpp | 2 +- tests/auto/q3dockwindow/tst_q3dockwindow.cpp | 2 +- tests/auto/q3filedialog/tst_q3filedialog.cpp | 2 +- tests/auto/q3frame/tst_q3frame.cpp | 2 +- tests/auto/q3groupbox/tst_q3groupbox.cpp | 2 +- tests/auto/q3hbox/tst_q3hbox.cpp | 2 +- tests/auto/q3header/tst_q3header.cpp | 2 +- tests/auto/q3iconview/tst_q3iconview.cpp | 2 +- tests/auto/q3listbox/tst_qlistbox.cpp | 2 +- tests/auto/q3listview/tst_q3listview.cpp | 2 +- .../tst_q3listviewitemiterator.cpp | 2 +- tests/auto/q3mainwindow/tst_q3mainwindow.cpp | 2 +- tests/auto/q3popupmenu/tst_q3popupmenu.cpp | 2 +- tests/auto/q3process/cat/main.cpp | 2 +- tests/auto/q3process/echo/main.cpp | 2 +- tests/auto/q3process/tst_q3process.cpp | 2 +- tests/auto/q3progressbar/tst_q3progressbar.cpp | 2 +- .../auto/q3progressdialog/tst_q3progressdialog.cpp | 2 +- tests/auto/q3ptrlist/tst_q3ptrlist.cpp | 2 +- tests/auto/q3richtext/tst_q3richtext.cpp | 2 +- tests/auto/q3scrollview/tst_qscrollview.cpp | 2 +- tests/auto/q3semaphore/tst_q3semaphore.cpp | 2 +- tests/auto/q3serversocket/tst_q3serversocket.cpp | 2 +- tests/auto/q3socket/tst_qsocket.cpp | 2 +- tests/auto/q3socketdevice/tst_q3socketdevice.cpp | 2 +- tests/auto/q3sqlcursor/tst_q3sqlcursor.cpp | 2 +- .../q3sqlselectcursor/tst_q3sqlselectcursor.cpp | 2 +- tests/auto/q3stylesheet/tst_q3stylesheet.cpp | 2 +- tests/auto/q3tabdialog/tst_q3tabdialog.cpp | 2 +- tests/auto/q3table/tst_q3table.cpp | 2 +- tests/auto/q3textbrowser/tst_q3textbrowser.cpp | 2 +- tests/auto/q3textedit/tst_q3textedit.cpp | 2 +- tests/auto/q3textstream/tst_q3textstream.cpp | 2 +- tests/auto/q3timeedit/tst_q3timeedit.cpp | 2 +- tests/auto/q3toolbar/tst_q3toolbar.cpp | 2 +- tests/auto/q3uridrag/tst_q3uridrag.cpp | 2 +- tests/auto/q3urloperator/tst_q3urloperator.cpp | 2 +- tests/auto/q3valuelist/tst_q3valuelist.cpp | 2 +- tests/auto/q3valuevector/tst_q3valuevector.cpp | 2 +- tests/auto/q3widgetstack/tst_q3widgetstack.cpp | 2 +- tests/auto/q_func_info/tst_q_func_info.cpp | 2 +- tests/auto/qabstractbutton/tst_qabstractbutton.cpp | 2 +- .../qabstractitemmodel/tst_qabstractitemmodel.cpp | 2 +- .../qabstractitemview/tst_qabstractitemview.cpp | 2 +- .../tst_qabstractmessagehandler.cpp | 2 +- .../tst_qabstractnetworkcache.cpp | 2 +- .../tst_qabstractprintdialog.cpp | 2 +- .../tst_qabstractproxymodel.cpp | 2 +- .../tst_qabstractscrollarea.cpp | 2 +- tests/auto/qabstractslider/tst_qabstractslider.cpp | 2 +- tests/auto/qabstractsocket/tst_qabstractsocket.cpp | 2 +- .../auto/qabstractspinbox/tst_qabstractspinbox.cpp | 2 +- .../tst_qabstracttextdocumentlayout.cpp | 2 +- tests/auto/qabstracturiresolver/TestURIResolver.h | 2 +- .../tst_qabstracturiresolver.cpp | 2 +- .../tst_qabstractvideobuffer.cpp | 2 +- .../tst_qabstractvideosurface.cpp | 2 +- .../tst_qabstractxmlforwarditerator.cpp | 2 +- tests/auto/qabstractxmlnodemodel/LoadingModel.cpp | 2 +- tests/auto/qabstractxmlnodemodel/LoadingModel.h | 2 +- tests/auto/qabstractxmlnodemodel/TestNodeModel.h | 2 +- .../tst_qabstractxmlnodemodel.cpp | 2 +- .../qabstractxmlreceiver/TestAbstractXmlReceiver.h | 2 +- .../tst_qabstractxmlreceiver.cpp | 2 +- tests/auto/qaccessibility/tst_qaccessibility.cpp | 2 +- .../qaccessibility_mac/tst_qaccessibility_mac.cpp | 2 +- tests/auto/qaction/tst_qaction.cpp | 2 +- tests/auto/qactiongroup/tst_qactiongroup.cpp | 2 +- tests/auto/qalgorithms/tst_qalgorithms.cpp | 2 +- tests/auto/qanimationgroup/tst_qanimationgroup.cpp | 2 +- .../qapplication/desktopsettingsaware/main.cpp | 2 +- tests/auto/qapplication/modal/base.cpp | 2 +- tests/auto/qapplication/modal/base.h | 2 +- tests/auto/qapplication/modal/main.cpp | 2 +- tests/auto/qapplication/tst_qapplication.cpp | 2 +- tests/auto/qapplication/wincmdline/main.cpp | 2 +- .../tst_qapplicationargumentparser.cpp | 2 +- tests/auto/qatomicint/tst_qatomicint.cpp | 2 +- tests/auto/qatomicpointer/tst_qatomicpointer.cpp | 2 +- .../auto/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp | 2 +- tests/auto/qaudioformat/tst_qaudioformat.cpp | 2 +- tests/auto/qaudioinput/tst_qaudioinput.cpp | 2 +- tests/auto/qaudiooutput/tst_qaudiooutput.cpp | 2 +- tests/auto/qauthenticator/tst_qauthenticator.cpp | 2 +- tests/auto/qautoptr/tst_qautoptr.cpp | 2 +- tests/auto/qbearertestcommon.h | 2 +- tests/auto/qbitarray/tst_qbitarray.cpp | 2 +- tests/auto/qboxlayout/tst_qboxlayout.cpp | 2 +- tests/auto/qbrush/tst_qbrush.cpp | 2 +- tests/auto/qbuffer/tst_qbuffer.cpp | 2 +- tests/auto/qbuttongroup/tst_qbuttongroup.cpp | 2 +- tests/auto/qbytearray/tst_qbytearray.cpp | 2 +- .../qbytearraymatcher/tst_qbytearraymatcher.cpp | 2 +- tests/auto/qcache/tst_qcache.cpp | 2 +- tests/auto/qcalendarwidget/tst_qcalendarwidget.cpp | 2 +- tests/auto/qchar/tst_qchar.cpp | 2 +- tests/auto/qcheckbox/tst_qcheckbox.cpp | 2 +- tests/auto/qclipboard/copier/main.cpp | 2 +- tests/auto/qclipboard/paster/main.cpp | 2 +- tests/auto/qclipboard/tst_qclipboard.cpp | 2 +- tests/auto/qcolor/tst_qcolor.cpp | 2 +- tests/auto/qcolordialog/tst_qcolordialog.cpp | 2 +- tests/auto/qcolumnview/tst_qcolumnview.cpp | 2 +- tests/auto/qcombobox/tst_qcombobox.cpp | 2 +- .../qcommandlinkbutton/tst_qcommandlinkbutton.cpp | 2 +- tests/auto/qcompleter/tst_qcompleter.cpp | 2 +- tests/auto/qcomplextext/bidireorderstring.h | 2 +- tests/auto/qcomplextext/tst_qcomplextext.cpp | 2 +- .../auto/qcontiguouscache/tst_qcontiguouscache.cpp | 2 +- tests/auto/qcopchannel/testSend/main.cpp | 2 +- tests/auto/qcopchannel/tst_qcopchannel.cpp | 2 +- .../auto/qcoreapplication/tst_qcoreapplication.cpp | 2 +- .../qcryptographichash/tst_qcryptographichash.cpp | 2 +- tests/auto/qcssparser/tst_qcssparser.cpp | 2 +- tests/auto/qdatastream/tst_qdatastream.cpp | 2 +- .../qdatawidgetmapper/tst_qdatawidgetmapper.cpp | 2 +- tests/auto/qdate/tst_qdate.cpp | 2 +- tests/auto/qdatetime/tst_qdatetime.cpp | 2 +- tests/auto/qdatetimeedit/tst_qdatetimeedit.cpp | 2 +- .../tst_qdbusabstractadaptor.cpp | 2 +- tests/auto/qdbusabstractinterface/interface.cpp | 2 +- tests/auto/qdbusabstractinterface/interface.h | 2 +- tests/auto/qdbusabstractinterface/pinger.cpp | 4 ++-- tests/auto/qdbusabstractinterface/pinger.h | 4 ++-- .../tst_qdbusabstractinterface.cpp | 2 +- tests/auto/qdbusconnection/tst_qdbusconnection.cpp | 2 +- tests/auto/qdbuscontext/tst_qdbuscontext.cpp | 2 +- tests/auto/qdbusinterface/tst_qdbusinterface.cpp | 2 +- tests/auto/qdbuslocalcalls/tst_qdbuslocalcalls.cpp | 2 +- tests/auto/qdbusmarshall/common.h | 2 +- tests/auto/qdbusmarshall/dummy.cpp | 2 +- tests/auto/qdbusmarshall/qpong/qpong.cpp | 2 +- tests/auto/qdbusmarshall/tst_qdbusmarshall.cpp | 2 +- tests/auto/qdbusmetaobject/tst_qdbusmetaobject.cpp | 2 +- tests/auto/qdbusmetatype/tst_qdbusmetatype.cpp | 2 +- .../auto/qdbuspendingcall/tst_qdbuspendingcall.cpp | 2 +- .../qdbuspendingreply/tst_qdbuspendingreply.cpp | 2 +- tests/auto/qdbusperformance/server/server.cpp | 2 +- tests/auto/qdbusperformance/serverobject.h | 2 +- .../auto/qdbusperformance/tst_qdbusperformance.cpp | 2 +- tests/auto/qdbusreply/tst_qdbusreply.cpp | 2 +- .../tst_qdbusservicewatcher.cpp | 2 +- tests/auto/qdbusthreading/tst_qdbusthreading.cpp | 2 +- tests/auto/qdbusxmlparser/tst_qdbusxmlparser.cpp | 2 +- tests/auto/qdebug/tst_qdebug.cpp | 2 +- .../auto/qdesktopservices/tst_qdesktopservices.cpp | 2 +- tests/auto/qdesktopwidget/tst_qdesktopwidget.cpp | 2 +- tests/auto/qdial/tst_qdial.cpp | 2 +- tests/auto/qdialog/tst_qdialog.cpp | 2 +- .../auto/qdialogbuttonbox/tst_qdialogbuttonbox.cpp | 2 +- tests/auto/qdir/testdir/dir/qrc_qdir.cpp | 2 +- tests/auto/qdir/testdir/dir/tst_qdir.cpp | 2 +- tests/auto/qdir/tst_qdir.cpp | 2 +- .../auto/qdirectpainter/runDirectPainter/main.cpp | 2 +- tests/auto/qdirectpainter/tst_qdirectpainter.cpp | 2 +- tests/auto/qdiriterator/tst_qdiriterator.cpp | 2 +- tests/auto/qdirmodel/tst_qdirmodel.cpp | 2 +- tests/auto/qdockwidget/tst_qdockwidget.cpp | 2 +- tests/auto/qdom/tst_qdom.cpp | 2 +- tests/auto/qdoublespinbox/tst_qdoublespinbox.cpp | 2 +- .../auto/qdoublevalidator/tst_qdoublevalidator.cpp | 2 +- tests/auto/qdrag/tst_qdrag.cpp | 2 +- tests/auto/qeasingcurve/tst_qeasingcurve.cpp | 2 +- tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp | 2 +- tests/auto/qerrormessage/tst_qerrormessage.cpp | 2 +- tests/auto/qevent/tst_qevent.cpp | 2 +- tests/auto/qeventloop/tst_qeventloop.cpp | 2 +- .../tst_qexplicitlyshareddatapointer.cpp | 2 +- tests/auto/qfile/largefile/tst_largefile.cpp | 2 +- tests/auto/qfile/stdinprocess/main.cpp | 2 +- tests/auto/qfile/tst_qfile.cpp | 2 +- tests/auto/qfiledialog/tst_qfiledialog.cpp | 2 +- tests/auto/qfiledialog2/tst_qfiledialog2.cpp | 2 +- .../qfileiconprovider/tst_qfileiconprovider.cpp | 2 +- tests/auto/qfileinfo/tst_qfileinfo.cpp | 2 +- .../auto/qfilesystemmodel/tst_qfilesystemmodel.cpp | 2 +- .../qfilesystemwatcher/tst_qfilesystemwatcher.cpp | 2 +- tests/auto/qflags/tst_qflags.cpp | 2 +- tests/auto/qfocusevent/tst_qfocusevent.cpp | 2 +- tests/auto/qfocusframe/tst_qfocusframe.cpp | 2 +- tests/auto/qfont/tst_qfont.cpp | 2 +- tests/auto/qfontcombobox/tst_qfontcombobox.cpp | 2 +- tests/auto/qfontdatabase/tst_qfontdatabase.cpp | 2 +- tests/auto/qfontdialog/tst_qfontdialog.cpp | 2 +- .../qfontdialog/tst_qfontdialog_mac_helpers.mm | 2 +- tests/auto/qfontmetrics/tst_qfontmetrics.cpp | 2 +- tests/auto/qformlayout/tst_qformlayout.cpp | 2 +- tests/auto/qftp/tst_qftp.cpp | 2 +- tests/auto/qfuture/tst_qfuture.cpp | 2 +- tests/auto/qfuture/versioncheck.h | 2 +- tests/auto/qfuturewatcher/tst_qfuturewatcher.cpp | 2 +- tests/auto/qgetputenv/tst_qgetputenv.cpp | 2 +- tests/auto/qgl/tst_qgl.cpp | 2 +- tests/auto/qglbuffer/tst_qglbuffer.cpp | 2 +- tests/auto/qglobal/tst_qglobal.cpp | 2 +- tests/auto/qglthreads/tst_qglthreads.cpp | 2 +- tests/auto/qglthreads/tst_qglthreads.h | 2 +- .../tst_qgraphicsanchorlayout.cpp | 2 +- .../tst_qgraphicsanchorlayout1.cpp | 2 +- tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp | 2 +- .../tst_qgraphicseffectsource.cpp | 2 +- .../tst_qgraphicsgridlayout.cpp | 2 +- tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp | 2 +- .../tst_qgraphicsitemanimation.cpp | 2 +- tests/auto/qgraphicslayout/tst_qgraphicslayout.cpp | 2 +- .../tst_qgraphicslayoutitem.cpp | 2 +- .../tst_qgraphicslinearlayout.cpp | 2 +- tests/auto/qgraphicsobject/tst_qgraphicsobject.cpp | 2 +- .../tst_qgraphicspixmapitem.cpp | 2 +- .../tst_qgraphicspolygonitem.cpp | 2 +- .../tst_qgraphicsproxywidget.cpp | 2 +- tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp | 2 +- .../tst_qgraphicssceneindex.cpp | 2 +- .../qgraphicstransform/tst_qgraphicstransform.cpp | 2 +- tests/auto/qgraphicsview/tst_qgraphicsview.cpp | 2 +- tests/auto/qgraphicsview/tst_qgraphicsview_2.cpp | 2 +- tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp | 2 +- tests/auto/qgridlayout/tst_qgridlayout.cpp | 2 +- tests/auto/qgroupbox/tst_qgroupbox.cpp | 2 +- tests/auto/qguivariant/tst_qguivariant.cpp | 2 +- tests/auto/qhash/tst_qhash.cpp | 2 +- tests/auto/qheaderview/tst_qheaderview.cpp | 2 +- .../qhelpcontentmodel/tst_qhelpcontentmodel.cpp | 2 +- tests/auto/qhelpenginecore/tst_qhelpenginecore.cpp | 2 +- tests/auto/qhelpgenerator/tst_qhelpgenerator.cpp | 2 +- tests/auto/qhelpindexmodel/tst_qhelpindexmodel.cpp | 2 +- .../auto/qhelpprojectdata/tst_qhelpprojectdata.cpp | 2 +- tests/auto/qhostaddress/tst_qhostaddress.cpp | 2 +- tests/auto/qhostinfo/tst_qhostinfo.cpp | 2 +- tests/auto/qhttp/dummyserver.h | 2 +- tests/auto/qhttp/tst_qhttp.cpp | 2 +- .../tst_qhttpnetworkconnection.cpp | 2 +- .../qhttpnetworkreply/tst_qhttpnetworkreply.cpp | 2 +- .../qhttpsocketengine/tst_qhttpsocketengine.cpp | 2 +- tests/auto/qicoimageformat/tst_qicoimageformat.cpp | 2 +- tests/auto/qicon/tst_qicon.cpp | 2 +- tests/auto/qimage/tst_qimage.cpp | 2 +- tests/auto/qimageiohandler/tst_qimageiohandler.cpp | 2 +- tests/auto/qimagereader/tst_qimagereader.cpp | 2 +- tests/auto/qimagewriter/tst_qimagewriter.cpp | 2 +- tests/auto/qinputcontext/tst_qinputcontext.cpp | 2 +- tests/auto/qinputdialog/tst_qinputdialog.cpp | 2 +- tests/auto/qintvalidator/tst_qintvalidator.cpp | 2 +- tests/auto/qiodevice/tst_qiodevice.cpp | 2 +- tests/auto/qitemdelegate/tst_qitemdelegate.cpp | 2 +- .../qitemeditorfactory/tst_qitemeditorfactory.cpp | 2 +- tests/auto/qitemmodel/modelstotest.cpp | 2 +- tests/auto/qitemmodel/tst_qitemmodel.cpp | 4 ++-- .../tst_qitemselectionmodel.cpp | 2 +- tests/auto/qitemview/tst_qitemview.cpp | 2 +- tests/auto/qitemview/viewstotest.cpp | 2 +- tests/auto/qkeysequence/tst_qkeysequence.cpp | 2 +- tests/auto/qlabel/tst_qlabel.cpp | 2 +- tests/auto/qlayout/tst_qlayout.cpp | 2 +- tests/auto/qlcdnumber/tst_qlcdnumber.cpp | 2 +- tests/auto/qlibrary/lib/mylib.c | 2 +- tests/auto/qlibrary/lib2/mylib.c | 2 +- tests/auto/qlibrary/tst_qlibrary.cpp | 2 +- tests/auto/qline/tst_qline.cpp | 2 +- tests/auto/qlineedit/tst_qlineedit.cpp | 2 +- tests/auto/qlist/tst_qlist.cpp | 2 +- tests/auto/qlistview/tst_qlistview.cpp | 2 +- tests/auto/qlistwidget/tst_qlistwidget.cpp | 2 +- tests/auto/qlocale/syslocaleapp/syslocaleapp.cpp | 2 +- tests/auto/qlocale/tst_qlocale.cpp | 2 +- tests/auto/qlocalsocket/example/client/main.cpp | 2 +- tests/auto/qlocalsocket/example/server/main.cpp | 2 +- tests/auto/qlocalsocket/lackey/main.cpp | 2 +- tests/auto/qlocalsocket/tst_qlocalsocket.cpp | 2 +- tests/auto/qmacstyle/tst_qmacstyle.cpp | 2 +- tests/auto/qmainwindow/tst_qmainwindow.cpp | 2 +- tests/auto/qmake/testcompiler.cpp | 2 +- tests/auto/qmake/testcompiler.h | 2 +- tests/auto/qmake/testdata/findDeps/main.cpp | 2 +- tests/auto/qmake/testdata/findDeps/object1.h | 2 +- tests/auto/qmake/testdata/findDeps/object2.h | 2 +- tests/auto/qmake/testdata/findDeps/object3.h | 2 +- tests/auto/qmake/testdata/findDeps/object4.h | 2 +- tests/auto/qmake/testdata/findDeps/object5.h | 2 +- tests/auto/qmake/testdata/findDeps/object6.h | 2 +- tests/auto/qmake/testdata/findDeps/object7.h | 2 +- tests/auto/qmake/testdata/findDeps/object8.h | 2 +- tests/auto/qmake/testdata/findDeps/object9.h | 2 +- tests/auto/qmake/testdata/findMocs/main.cpp | 2 +- tests/auto/qmake/testdata/findMocs/object1.h | 2 +- tests/auto/qmake/testdata/findMocs/object2.h | 2 +- tests/auto/qmake/testdata/findMocs/object3.h | 2 +- tests/auto/qmake/testdata/findMocs/object4.h | 2 +- tests/auto/qmake/testdata/findMocs/object5.h | 2 +- tests/auto/qmake/testdata/findMocs/object6.h | 2 +- tests/auto/qmake/testdata/findMocs/object7.h | 2 +- tests/auto/qmake/testdata/functions/1.cpp | 2 +- tests/auto/qmake/testdata/functions/2.cpp | 2 +- tests/auto/qmake/testdata/functions/one/1.cpp | 2 +- tests/auto/qmake/testdata/functions/one/2.cpp | 2 +- .../qmake/testdata/functions/three/wildcard21.cpp | 2 +- .../qmake/testdata/functions/three/wildcard22.cpp | 2 +- tests/auto/qmake/testdata/functions/two/1.cpp | 2 +- tests/auto/qmake/testdata/functions/two/2.cpp | 2 +- tests/auto/qmake/testdata/functions/wildcard21.cpp | 2 +- tests/auto/qmake/testdata/functions/wildcard22.cpp | 2 +- tests/auto/qmake/testdata/include_dir/main.cpp | 2 +- .../auto/qmake/testdata/include_dir/test_file.cpp | 2 +- tests/auto/qmake/testdata/include_dir/test_file.h | 2 +- .../auto/qmake/testdata/include_function/main.cpp | 2 +- tests/auto/qmake/testdata/install_depends/main.cpp | 2 +- .../qmake/testdata/install_depends/test_file.cpp | 2 +- .../qmake/testdata/install_depends/test_file.h | 2 +- tests/auto/qmake/testdata/one_space/main.cpp | 2 +- tests/auto/qmake/testdata/quotedfilenames/main.cpp | 2 +- tests/auto/qmake/testdata/shadow_files/main.cpp | 2 +- .../auto/qmake/testdata/shadow_files/test_file.cpp | 2 +- tests/auto/qmake/testdata/shadow_files/test_file.h | 2 +- tests/auto/qmake/testdata/simple_app/main.cpp | 2 +- tests/auto/qmake/testdata/simple_app/test_file.cpp | 2 +- tests/auto/qmake/testdata/simple_app/test_file.h | 2 +- tests/auto/qmake/testdata/simple_dll/simple.cpp | 2 +- tests/auto/qmake/testdata/simple_dll/simple.h | 2 +- tests/auto/qmake/testdata/simple_lib/simple.cpp | 2 +- tests/auto/qmake/testdata/simple_lib/simple.h | 2 +- .../qmake/testdata/subdirs/simple_app/main.cpp | 2 +- .../testdata/subdirs/simple_app/test_file.cpp | 2 +- .../qmake/testdata/subdirs/simple_app/test_file.h | 2 +- .../qmake/testdata/subdirs/simple_dll/simple.cpp | 2 +- .../qmake/testdata/subdirs/simple_dll/simple.h | 2 +- tests/auto/qmake/tst_qmake.cpp | 2 +- tests/auto/qmap/tst_qmap.cpp | 2 +- tests/auto/qmargins/tst_qmargins.cpp | 2 +- tests/auto/qmath/tst_qmath.cpp | 2 +- tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp | 2 +- tests/auto/qmdiarea/tst_qmdiarea.cpp | 2 +- tests/auto/qmdisubwindow/tst_qmdisubwindow.cpp | 2 +- tests/auto/qmenu/tst_qmenu.cpp | 2 +- tests/auto/qmenubar/tst_qmenubar.cpp | 2 +- tests/auto/qmessagebox/tst_qmessagebox.cpp | 2 +- tests/auto/qmetaobject/tst_qmetaobject.cpp | 2 +- tests/auto/qmetatype/tst_qmetatype.cpp | 2 +- tests/auto/qmimedata/tst_qmimedata.cpp | 2 +- tests/auto/qmouseevent/tst_qmouseevent.cpp | 2 +- .../qmouseevent_modal/tst_qmouseevent_modal.cpp | 2 +- tests/auto/qmovie/tst_qmovie.cpp | 2 +- tests/auto/qmultiscreen/tst_qmultiscreen.cpp | 2 +- tests/auto/qmutex/tst_qmutex.cpp | 2 +- tests/auto/qmutexlocker/tst_qmutexlocker.cpp | 2 +- .../tst_qnativesocketengine.cpp | 2 +- .../tst_qnetworkaccessmanager.cpp | 2 +- ...t_qnetworkaccessmanager_and_qprogressdialog.cpp | 2 +- .../tst_qnetworkaddressentry.cpp | 2 +- .../tst_qnetworkcachemetadata.cpp | 2 +- .../tst_qnetworkconfiguration.cpp | 2 +- .../tst_qnetworkconfigurationmanager.cpp | 2 +- tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp | 2 +- .../qnetworkcookiejar/tst_qnetworkcookiejar.cpp | 2 +- .../qnetworkdiskcache/tst_qnetworkdiskcache.cpp | 2 +- .../qnetworkinterface/tst_qnetworkinterface.cpp | 2 +- tests/auto/qnetworkproxy/tst_qnetworkproxy.cpp | 2 +- tests/auto/qnetworkreply/echo/main.cpp | 2 +- tests/auto/qnetworkreply/tst_qnetworkreply.cpp | 2 +- tests/auto/qnetworkrequest/tst_qnetworkrequest.cpp | 2 +- tests/auto/qnetworksession/lackey/main.cpp | 2 +- .../qnetworksession/test/tst_qnetworksession.cpp | 2 +- tests/auto/qnumeric/tst_qnumeric.cpp | 2 +- tests/auto/qobject/moc_oldnormalizeobject.cpp | 2 +- tests/auto/qobject/oldnormalizeobject.h | 2 +- tests/auto/qobject/signalbug.cpp | 2 +- tests/auto/qobject/signalbug.h | 2 +- tests/auto/qobject/tst_qobject.cpp | 2 +- .../qobjectperformance/tst_qobjectperformance.cpp | 2 +- tests/auto/qobjectrace/tst_qobjectrace.cpp | 2 +- tests/auto/qpaintengine/tst_qpaintengine.cpp | 2 +- tests/auto/qpainter/tst_qpainter.cpp | 2 +- tests/auto/qpainter/utils/createImages/main.cpp | 2 +- tests/auto/qpainterpath/tst_qpainterpath.cpp | 2 +- .../tst_qpainterpathstroker.cpp | 2 +- tests/auto/qpalette/tst_qpalette.cpp | 2 +- .../tst_qparallelanimationgroup.cpp | 2 +- tests/auto/qpathclipper/pathcompare.h | 2 +- tests/auto/qpathclipper/paths.cpp | 2 +- tests/auto/qpathclipper/paths.h | 2 +- tests/auto/qpathclipper/tst_qpathclipper.cpp | 2 +- tests/auto/qpauseanimation/tst_qpauseanimation.cpp | 2 +- tests/auto/qpen/tst_qpen.cpp | 2 +- tests/auto/qpicture/tst_qpicture.cpp | 2 +- tests/auto/qpixmap/tst_qpixmap.cpp | 2 +- tests/auto/qpixmapcache/tst_qpixmapcache.cpp | 2 +- tests/auto/qpixmapfilter/tst_qpixmapfilter.cpp | 2 +- tests/auto/qplaintextedit/tst_qplaintextedit.cpp | 2 +- tests/auto/qplugin/debugplugin/main.cpp | 2 +- tests/auto/qplugin/releaseplugin/main.cpp | 2 +- tests/auto/qplugin/tst_qplugin.cpp | 2 +- .../qpluginloader/almostplugin/almostplugin.cpp | 2 +- .../auto/qpluginloader/almostplugin/almostplugin.h | 2 +- tests/auto/qpluginloader/lib/mylib.c | 2 +- .../auto/qpluginloader/theplugin/plugininterface.h | 2 +- tests/auto/qpluginloader/theplugin/theplugin.cpp | 2 +- tests/auto/qpluginloader/theplugin/theplugin.h | 2 +- tests/auto/qpluginloader/tst_qpluginloader.cpp | 2 +- tests/auto/qpoint/tst_qpoint.cpp | 2 +- tests/auto/qpointer/tst_qpointer.cpp | 2 +- tests/auto/qpolygon/tst_qpolygon.cpp | 2 +- tests/auto/qprinter/tst_qprinter.cpp | 2 +- tests/auto/qprinterinfo/tst_qprinterinfo.cpp | 2 +- tests/auto/qprocess/fileWriterProcess/main.cpp | 2 +- tests/auto/qprocess/testDetached/main.cpp | 2 +- tests/auto/qprocess/testExitCodes/main.cpp | 2 +- tests/auto/qprocess/testGuiProcess/main.cpp | 2 +- tests/auto/qprocess/testProcessCrash/main.cpp | 2 +- .../qprocess/testProcessDeadWhileReading/main.cpp | 2 +- tests/auto/qprocess/testProcessEOF/main.cpp | 2 +- tests/auto/qprocess/testProcessEcho/main.cpp | 2 +- tests/auto/qprocess/testProcessEcho2/main.cpp | 2 +- tests/auto/qprocess/testProcessEcho3/main.cpp | 2 +- .../auto/qprocess/testProcessEchoGui/main_win.cpp | 2 +- .../auto/qprocess/testProcessEnvironment/main.cpp | 2 +- tests/auto/qprocess/testProcessLoopback/main.cpp | 2 +- tests/auto/qprocess/testProcessNormal/main.cpp | 2 +- tests/auto/qprocess/testProcessOutput/main.cpp | 2 +- tests/auto/qprocess/testProcessSpacesArgs/main.cpp | 2 +- .../auto/qprocess/testSetWorkingDirectory/main.cpp | 2 +- tests/auto/qprocess/testSoftExit/main_unix.cpp | 2 +- tests/auto/qprocess/testSoftExit/main_win.cpp | 2 +- tests/auto/qprocess/testSpaceInName/main.cpp | 2 +- tests/auto/qprocess/tst_qprocess.cpp | 2 +- .../tst_qprocessenvironment.cpp | 2 +- tests/auto/qprogressbar/tst_qprogressbar.cpp | 2 +- tests/auto/qprogressdialog/tst_qprogressdialog.cpp | 2 +- .../qpropertyanimation/tst_qpropertyanimation.cpp | 2 +- tests/auto/qpushbutton/tst_qpushbutton.cpp | 2 +- tests/auto/qquaternion/tst_qquaternion.cpp | 2 +- tests/auto/qqueue/tst_qqueue.cpp | 2 +- tests/auto/qradiobutton/tst_qradiobutton.cpp | 2 +- tests/auto/qrand/tst_qrand.cpp | 2 +- tests/auto/qreadlocker/tst_qreadlocker.cpp | 2 +- tests/auto/qreadwritelock/tst_qreadwritelock.cpp | 2 +- tests/auto/qrect/tst_qrect.cpp | 2 +- tests/auto/qregexp/tst_qregexp.cpp | 2 +- .../auto/qregexpvalidator/tst_qregexpvalidator.cpp | 2 +- tests/auto/qregion/tst_qregion.cpp | 2 +- tests/auto/qresourceengine/tst_qresourceengine.cpp | 2 +- tests/auto/qringbuffer/tst_qringbuffer.cpp | 2 +- .../tst_qs60mainapplication.cpp | 2 +- tests/auto/qscopedpointer/tst_qscopedpointer.cpp | 2 +- tests/auto/qscriptable/tst_qscriptable.cpp | 2 +- tests/auto/qscriptclass/tst_qscriptclass.cpp | 2 +- tests/auto/qscriptcontext/tst_qscriptcontext.cpp | 2 +- .../qscriptcontextinfo/tst_qscriptcontextinfo.cpp | 2 +- tests/auto/qscriptengine/tst_qscriptengine.cpp | 2 +- .../qscriptengineagent/tst_qscriptengineagent.cpp | 2 +- .../tst_qscriptenginedebugger.cpp | 2 +- .../qscriptextqobject/tst_qscriptextqobject.cpp | 2 +- .../qscriptjstestsuite/tst_qscriptjstestsuite.cpp | 2 +- tests/auto/qscriptstring/tst_qscriptstring.cpp | 2 +- .../qscriptv8testsuite/tst_qscriptv8testsuite.cpp | 2 +- tests/auto/qscriptvalue/testgen/gen.py | 4 ++-- tests/auto/qscriptvalue/testgen/main.cpp | 2 +- tests/auto/qscriptvalue/testgen/testgenerator.cpp | 4 ++-- tests/auto/qscriptvalue/testgen/testgenerator.h | 2 +- tests/auto/qscriptvalue/tst_qscriptvalue.cpp | 2 +- tests/auto/qscriptvalue/tst_qscriptvalue.h | 2 +- .../tst_qscriptvalue_generated_cast.cpp | 2 +- .../tst_qscriptvalue_generated_comparison.cpp | 2 +- .../tst_qscriptvalue_generated_init.cpp | 2 +- .../tst_qscriptvalue_generated_isXXX.cpp | 2 +- .../tst_qscriptvalue_generated_toXXX.cpp | 2 +- .../tst_qscriptvalueiterator.cpp | 2 +- tests/auto/qscrollarea/tst_qscrollarea.cpp | 2 +- tests/auto/qscrollbar/tst_qscrollbar.cpp | 2 +- tests/auto/qsemaphore/tst_qsemaphore.cpp | 2 +- .../tst_qsequentialanimationgroup.cpp | 2 +- tests/auto/qset/tst_qset.cpp | 2 +- tests/auto/qsettings/tst_qsettings.cpp | 2 +- tests/auto/qsharedpointer/externaltests.cpp | 2 +- tests/auto/qsharedpointer/externaltests.h | 2 +- tests/auto/qsharedpointer/forwarddeclaration.cpp | 2 +- tests/auto/qsharedpointer/forwarddeclared.cpp | 2 +- tests/auto/qsharedpointer/forwarddeclared.h | 2 +- tests/auto/qsharedpointer/tst_qsharedpointer.cpp | 2 +- tests/auto/qsharedpointer/wrapper.cpp | 2 +- tests/auto/qsharedpointer/wrapper.h | 2 +- .../tst_qsharedpointer_and_qwidget.cpp | 2 +- tests/auto/qshortcut/tst_qshortcut.cpp | 2 +- tests/auto/qsidebar/tst_qsidebar.cpp | 2 +- tests/auto/qsignalmapper/tst_qsignalmapper.cpp | 2 +- tests/auto/qsignalspy/tst_qsignalspy.cpp | 2 +- .../auto/qsimplexmlnodemodel/TestSimpleNodeModel.h | 2 +- .../tst_qsimplexmlnodemodel.cpp | 2 +- tests/auto/qsize/tst_qsize.cpp | 2 +- tests/auto/qsizef/tst_qsizef.cpp | 2 +- tests/auto/qsizegrip/tst_qsizegrip.cpp | 2 +- tests/auto/qslider/tst_qslider.cpp | 2 +- tests/auto/qsocketnotifier/tst_qsocketnotifier.cpp | 2 +- .../tst_qsocks5socketengine.cpp | 2 +- tests/auto/qsoftkeymanager/tst_qsoftkeymanager.cpp | 2 +- .../tst_qsortfilterproxymodel.cpp | 2 +- tests/auto/qsound/tst_qsound.cpp | 2 +- tests/auto/qsourcelocation/tst_qsourcelocation.cpp | 2 +- tests/auto/qspinbox/tst_qspinbox.cpp | 2 +- tests/auto/qsplitter/tst_qsplitter.cpp | 2 +- tests/auto/qsql/tst_qsql.cpp | 2 +- tests/auto/qsqldatabase/tst_databases.h | 2 +- tests/auto/qsqldatabase/tst_qsqldatabase.cpp | 2 +- tests/auto/qsqldriver/tst_qsqldriver.cpp | 2 +- tests/auto/qsqlerror/tst_qsqlerror.cpp | 2 +- tests/auto/qsqlfield/tst_qsqlfield.cpp | 2 +- tests/auto/qsqlquery/tst_qsqlquery.cpp | 2 +- tests/auto/qsqlquerymodel/tst_qsqlquerymodel.cpp | 2 +- tests/auto/qsqlrecord/tst_qsqlrecord.cpp | 2 +- .../tst_qsqlrelationaltablemodel.cpp | 2 +- tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp | 2 +- tests/auto/qsqlthread/tst_qsqlthread.cpp | 2 +- .../certificates/gencertificates.sh | 2 +- tests/auto/qsslcertificate/tst_qsslcertificate.cpp | 2 +- tests/auto/qsslcipher/tst_qsslcipher.cpp | 2 +- tests/auto/qsslerror/tst_qsslerror.cpp | 2 +- tests/auto/qsslkey/keys/genkeys.sh | 2 +- tests/auto/qsslkey/tst_qsslkey.cpp | 2 +- tests/auto/qsslsocket/tst_qsslsocket.cpp | 2 +- tests/auto/qstackedlayout/tst_qstackedlayout.cpp | 2 +- tests/auto/qstackedwidget/tst_qstackedwidget.cpp | 2 +- tests/auto/qstandarditem/tst_qstandarditem.cpp | 2 +- .../qstandarditemmodel/tst_qstandarditemmodel.cpp | 2 +- tests/auto/qstate/tst_qstate.cpp | 2 +- tests/auto/qstatemachine/tst_qstatemachine.cpp | 2 +- tests/auto/qstatictext/tst_qstatictext.cpp | 2 +- tests/auto/qstatusbar/tst_qstatusbar.cpp | 2 +- tests/auto/qstl/tst_qstl.cpp | 2 +- tests/auto/qstring/double_data.h | 2 +- tests/auto/qstring/tst_qstring.cpp | 2 +- tests/auto/qstringbuilder1/stringbuilder.cpp | 2 +- tests/auto/qstringbuilder1/tst_qstringbuilder1.cpp | 2 +- tests/auto/qstringbuilder2/tst_qstringbuilder2.cpp | 2 +- tests/auto/qstringbuilder3/tst_qstringbuilder3.cpp | 2 +- tests/auto/qstringbuilder4/tst_qstringbuilder4.cpp | 2 +- tests/auto/qstringlist/tst_qstringlist.cpp | 2 +- tests/auto/qstringlistmodel/qmodellistener.h | 2 +- .../auto/qstringlistmodel/tst_qstringlistmodel.cpp | 2 +- tests/auto/qstringmatcher/tst_qstringmatcher.cpp | 2 +- tests/auto/qstyle/tst_qstyle.cpp | 2 +- tests/auto/qstyleoption/tst_qstyleoption.cpp | 2 +- .../auto/qstylesheetstyle/tst_qstylesheetstyle.cpp | 2 +- tests/auto/qsvgdevice/tst_qsvgdevice.cpp | 2 +- tests/auto/qsvggenerator/tst_qsvggenerator.cpp | 2 +- tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp | 2 +- .../qsyntaxhighlighter/tst_qsyntaxhighlighter.cpp | 2 +- tests/auto/qsystemtrayicon/tst_qsystemtrayicon.cpp | 2 +- tests/auto/qtabbar/tst_qtabbar.cpp | 2 +- tests/auto/qtableview/tst_qtableview.cpp | 2 +- tests/auto/qtablewidget/tst_qtablewidget.cpp | 2 +- tests/auto/qtabwidget/tst_qtabwidget.cpp | 2 +- .../qtconcurrentfilter/tst_qtconcurrentfilter.cpp | 2 +- .../tst_qtconcurrentiteratekernel.cpp | 2 +- tests/auto/qtconcurrentmap/functions.h | 2 +- tests/auto/qtconcurrentmap/tst_qtconcurrentmap.cpp | 2 +- tests/auto/qtconcurrentrun/tst_qtconcurrentrun.cpp | 2 +- .../tst_qtconcurrentthreadengine.cpp | 2 +- tests/auto/qtcpserver/crashingServer/main.cpp | 2 +- tests/auto/qtcpserver/tst_qtcpserver.cpp | 2 +- tests/auto/qtcpsocket/stressTest/Test.cpp | 2 +- tests/auto/qtcpsocket/stressTest/Test.h | 2 +- tests/auto/qtcpsocket/stressTest/main.cpp | 2 +- tests/auto/qtcpsocket/tst_qtcpsocket.cpp | 2 +- tests/auto/qtemporaryfile/tst_qtemporaryfile.cpp | 2 +- tests/auto/qtessellator/XrenderFake.h | 2 +- tests/auto/qtessellator/arc.cpp | 2 +- tests/auto/qtessellator/arc.h | 2 +- tests/auto/qtessellator/dataparser.cpp | 2 +- tests/auto/qtessellator/dataparser.h | 2 +- tests/auto/qtessellator/oldtessellator.cpp | 2 +- tests/auto/qtessellator/oldtessellator.h | 2 +- tests/auto/qtessellator/qnum.h | 2 +- tests/auto/qtessellator/sample_data.h | 2 +- tests/auto/qtessellator/simple.cpp | 2 +- tests/auto/qtessellator/simple.h | 2 +- tests/auto/qtessellator/testtessellator.cpp | 2 +- tests/auto/qtessellator/testtessellator.h | 2 +- tests/auto/qtessellator/tst_tessellator.cpp | 2 +- tests/auto/qtessellator/utils.cpp | 2 +- tests/auto/qtessellator/utils.h | 2 +- tests/auto/qtextblock/tst_qtextblock.cpp | 2 +- .../tst_qtextboundaryfinder.cpp | 2 +- tests/auto/qtextbrowser/tst_qtextbrowser.cpp | 2 +- tests/auto/qtextcodec/echo/main.cpp | 2 +- tests/auto/qtextcodec/tst_qtextcodec.cpp | 2 +- tests/auto/qtextcursor/tst_qtextcursor.cpp | 2 +- tests/auto/qtextdocument/common.h | 2 +- tests/auto/qtextdocument/tst_qtextdocument.cpp | 2 +- .../tst_qtextdocumentfragment.cpp | 2 +- .../tst_qtextdocumentlayout.cpp | 2 +- tests/auto/qtextedit/tst_qtextedit.cpp | 2 +- tests/auto/qtextformat/tst_qtextformat.cpp | 2 +- tests/auto/qtextlayout/tst_qtextlayout.cpp | 2 +- tests/auto/qtextlist/tst_qtextlist.cpp | 2 +- tests/auto/qtextobject/tst_qtextobject.cpp | 2 +- tests/auto/qtextodfwriter/tst_qtextodfwriter.cpp | 2 +- tests/auto/qtextpiecetable/tst_qtextpiecetable.cpp | 2 +- tests/auto/qtextscriptengine/generate/main.cpp | 2 +- .../qtextscriptengine/tst_qtextscriptengine.cpp | 2 +- .../auto/qtextstream/readAllStdinProcess/main.cpp | 2 +- .../auto/qtextstream/readLineStdinProcess/main.cpp | 2 +- tests/auto/qtextstream/stdinProcess/main.cpp | 2 +- tests/auto/qtextstream/tst_qtextstream.cpp | 2 +- tests/auto/qtexttable/tst_qtexttable.cpp | 2 +- tests/auto/qthread/tst_qthread.cpp | 2 +- tests/auto/qthreadonce/qthreadonce.cpp | 2 +- tests/auto/qthreadonce/qthreadonce.h | 2 +- tests/auto/qthreadonce/tst_qthreadonce.cpp | 2 +- tests/auto/qthreadpool/tst_qthreadpool.cpp | 2 +- tests/auto/qthreadstorage/crashOnExit.cpp | 2 +- tests/auto/qthreadstorage/tst_qthreadstorage.cpp | 2 +- tests/auto/qtime/tst_qtime.cpp | 2 +- tests/auto/qtimeline/tst_qtimeline.cpp | 2 +- tests/auto/qtimer/tst_qtimer.cpp | 2 +- tests/auto/qtipc/lackey/main.cpp | 2 +- .../qsharedmemory/qsystemlock/tst_qsystemlock.cpp | 2 +- tests/auto/qtipc/qsharedmemory/src/qsystemlock.cpp | 2 +- tests/auto/qtipc/qsharedmemory/src/qsystemlock.h | 2 +- tests/auto/qtipc/qsharedmemory/src/qsystemlock_p.h | 2 +- .../qtipc/qsharedmemory/src/qsystemlock_unix.cpp | 2 +- .../qtipc/qsharedmemory/src/qsystemlock_win.cpp | 2 +- .../auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp | 2 +- .../qsystemsemaphore/tst_qsystemsemaphore.cpp | 2 +- tests/auto/qtmd5/tst_qtmd5.cpp | 2 +- tests/auto/qtokenautomaton/generateTokenizers.sh | 2 +- .../qtokenautomaton/tokenizers/basic/basic.cpp | 2 +- .../auto/qtokenautomaton/tokenizers/basic/basic.h | 2 +- .../tokenizers/basicNamespace/basicNamespace.cpp | 2 +- .../tokenizers/basicNamespace/basicNamespace.h | 2 +- .../tokenizers/boilerplate/boilerplate.cpp | 2 +- .../tokenizers/boilerplate/boilerplate.h | 2 +- .../tokenizers/boilerplate/boilerplate.xml | 2 +- .../tokenizers/noNamespace/noNamespace.cpp | 2 +- .../tokenizers/noNamespace/noNamespace.h | 2 +- .../tokenizers/noToString/noToString.cpp | 2 +- .../tokenizers/noToString/noToString.h | 2 +- .../tokenizers/withNamespace/withNamespace.cpp | 2 +- .../tokenizers/withNamespace/withNamespace.h | 2 +- tests/auto/qtokenautomaton/tst_qtokenautomaton.cpp | 2 +- tests/auto/qtoolbar/tst_qtoolbar.cpp | 2 +- tests/auto/qtoolbox/tst_qtoolbox.cpp | 2 +- tests/auto/qtoolbutton/tst_qtoolbutton.cpp | 2 +- tests/auto/qtooltip/tst_qtooltip.cpp | 2 +- tests/auto/qtouchevent/tst_qtouchevent.cpp | 2 +- tests/auto/qtransform/tst_qtransform.cpp | 2 +- .../qtransformedscreen/tst_qtransformedscreen.cpp | 2 +- tests/auto/qtranslator/tst_qtranslator.cpp | 2 +- tests/auto/qtreeview/tst_qtreeview.cpp | 2 +- tests/auto/qtreewidget/tst_qtreewidget.cpp | 2 +- .../tst_qtreewidgetitemiterator.cpp | 2 +- tests/auto/qudpsocket/clientserver/main.cpp | 2 +- tests/auto/qudpsocket/tst_qudpsocket.cpp | 2 +- tests/auto/qudpsocket/udpServer/main.cpp | 2 +- tests/auto/qundogroup/tst_qundogroup.cpp | 2 +- tests/auto/qundostack/tst_qundostack.cpp | 2 +- tests/auto/qurl/idna-test.c | 2 +- tests/auto/qurl/tst_qurl.cpp | 2 +- tests/auto/quuid/testProcessUniqueness/main.cpp | 2 +- tests/auto/quuid/tst_quuid.cpp | 2 +- tests/auto/qvariant/tst_qvariant.cpp | 2 +- tests/auto/qvarlengtharray/tst_qvarlengtharray.cpp | 2 +- tests/auto/qvector/tst_qvector.cpp | 2 +- tests/auto/qvectornd/tst_qvectornd.cpp | 2 +- tests/auto/qvideoframe/tst_qvideoframe.cpp | 2 +- .../tst_qvideosurfaceformat.cpp | 2 +- tests/auto/qwaitcondition/tst_qwaitcondition.cpp | 2 +- tests/auto/qwebelement/dummy.cpp | 2 +- tests/auto/qwebframe/dummy.cpp | 2 +- tests/auto/qwebhistory/dummy.cpp | 2 +- tests/auto/qwebhistoryinterface/dummy.cpp | 2 +- tests/auto/qwebpage/dummy.cpp | 2 +- tests/auto/qwidget/tst_qwidget.cpp | 2 +- tests/auto/qwidget/tst_qwidget_mac_helpers.h | 2 +- tests/auto/qwidget/tst_qwidget_mac_helpers.mm | 2 +- tests/auto/qwidget_window/tst_qwidget_window.cpp | 2 +- tests/auto/qwidgetaction/tst_qwidgetaction.cpp | 2 +- tests/auto/qwindowsurface/tst_qwindowsurface.cpp | 2 +- .../qwineventnotifier/tst_qwineventnotifier.cpp | 2 +- tests/auto/qwizard/tst_qwizard.cpp | 2 +- tests/auto/qwmatrix/tst_qwmatrix.cpp | 2 +- tests/auto/qworkspace/tst_qworkspace.cpp | 2 +- tests/auto/qwritelocker/tst_qwritelocker.cpp | 2 +- tests/auto/qwsembedwidget/tst_qwsembedwidget.cpp | 2 +- tests/auto/qwsinputmethod/tst_qwsinputmethod.cpp | 2 +- tests/auto/qwswindowsystem/tst_qwswindowsystem.cpp | 2 +- tests/auto/qx11info/tst_qx11info.cpp | 2 +- tests/auto/qxml/tst_qxml.cpp | 2 +- tests/auto/qxmlformatter/tst_qxmlformatter.cpp | 2 +- tests/auto/qxmlinputsource/tst_qxmlinputsource.cpp | 2 +- tests/auto/qxmlitem/tst_qxmlitem.cpp | 2 +- tests/auto/qxmlname/tst_qxmlname.cpp | 2 +- tests/auto/qxmlnamepool/tst_qxmlnamepool.cpp | 2 +- .../qxmlnodemodelindex/tst_qxmlnodemodelindex.cpp | 2 +- tests/auto/qxmlquery/MessageSilencer.h | 2 +- tests/auto/qxmlquery/MessageValidator.cpp | 2 +- tests/auto/qxmlquery/MessageValidator.h | 2 +- tests/auto/qxmlquery/NetworkOverrider.h | 2 +- tests/auto/qxmlquery/PushBaseliner.h | 2 +- tests/auto/qxmlquery/TestFundament.cpp | 2 +- tests/auto/qxmlquery/TestFundament.h | 2 +- tests/auto/qxmlquery/tst_qxmlquery.cpp | 2 +- tests/auto/qxmlresultitems/tst_qxmlresultitems.cpp | 2 +- tests/auto/qxmlschema/tst_qxmlschema.cpp | 2 +- .../tst_qxmlschemavalidator.cpp | 2 +- tests/auto/qxmlserializer/tst_qxmlserializer.cpp | 2 +- tests/auto/qxmlsimplereader/generate_ref_files.sh | 2 +- tests/auto/qxmlsimplereader/parser/main.cpp | 2 +- tests/auto/qxmlsimplereader/parser/parser.cpp | 2 +- tests/auto/qxmlsimplereader/parser/parser.h | 2 +- .../auto/qxmlsimplereader/tst_qxmlsimplereader.cpp | 2 +- tests/auto/qxmlstream/qc14n.h | 2 +- tests/auto/qxmlstream/setupSuite.sh | 2 +- tests/auto/qxmlstream/tst_qxmlstream.cpp | 2 +- tests/auto/qzip/tst_qzip.cpp | 2 +- tests/auto/rcc/tst_rcc.cpp | 2 +- tests/auto/selftests/alive/qtestalive.cpp | 2 +- tests/auto/selftests/alive/tst_alive.cpp | 2 +- tests/auto/selftests/assert/tst_assert.cpp | 2 +- tests/auto/selftests/badxml/tst_badxml.cpp | 2 +- .../benchlibcallgrind/tst_benchlibcallgrind.cpp | 2 +- .../tst_benchlibeventcounter.cpp | 2 +- .../benchliboptions/tst_benchliboptions.cpp | 2 +- .../tst_benchlibtickcounter.cpp | 2 +- .../benchlibwalltime/tst_benchlibwalltime.cpp | 2 +- tests/auto/selftests/cmptest/tst_cmptest.cpp | 2 +- .../commandlinedata/tst_commandlinedata.cpp | 2 +- tests/auto/selftests/crashes/tst_crashes.cpp | 2 +- tests/auto/selftests/datatable/tst_datatable.cpp | 2 +- tests/auto/selftests/datetime/tst_datetime.cpp | 2 +- .../selftests/differentexec/tst_differentexec.cpp | 2 +- .../exceptionthrow/tst_exceptionthrow.cpp | 2 +- tests/auto/selftests/expectfail/tst_expectfail.cpp | 2 +- tests/auto/selftests/failinit/tst_failinit.cpp | 2 +- .../selftests/failinitdata/tst_failinitdata.cpp | 2 +- tests/auto/selftests/fetchbogus/tst_fetchbogus.cpp | 2 +- tests/auto/selftests/globaldata/tst_globaldata.cpp | 2 +- tests/auto/selftests/longstring/tst_longstring.cpp | 2 +- tests/auto/selftests/maxwarnings/maxwarnings.cpp | 2 +- tests/auto/selftests/multiexec/tst_multiexec.cpp | 2 +- .../qexecstringlist/tst_qexecstringlist.cpp | 2 +- tests/auto/selftests/singleskip/tst_singleskip.cpp | 2 +- tests/auto/selftests/skip/tst_skip.cpp | 2 +- tests/auto/selftests/skipglobal/tst_skipglobal.cpp | 2 +- tests/auto/selftests/skipinit/tst_skipinit.cpp | 2 +- .../selftests/skipinitdata/tst_skipinitdata.cpp | 2 +- tests/auto/selftests/sleep/tst_sleep.cpp | 2 +- tests/auto/selftests/strcmp/tst_strcmp.cpp | 2 +- tests/auto/selftests/subtest/tst_subtest.cpp | 2 +- tests/auto/selftests/tst_selftests.cpp | 2 +- .../waitwithoutgui/tst_waitwithoutgui.cpp | 2 +- tests/auto/selftests/warnings/tst_warnings.cpp | 2 +- .../orientationchange/tst_orientationchange.cpp | 2 +- .../qmainexceptions/tst_qmainexceptions.cpp | 2 +- tests/auto/symbols/tst_symbols.cpp | 2 +- tests/auto/test.pl | 2 +- tests/auto/uic/baseline/batchtranslation.ui | 2 +- tests/auto/uic/baseline/batchtranslation.ui.h | 2 +- tests/auto/uic/baseline/config.ui | 2 +- tests/auto/uic/baseline/config.ui.h | 2 +- tests/auto/uic/baseline/config_fromuic3.ui | 2 +- tests/auto/uic/baseline/config_fromuic3.ui.h | 2 +- tests/auto/uic/baseline/finddialog.ui | 2 +- tests/auto/uic/baseline/finddialog.ui.h | 2 +- tests/auto/uic/baseline/formwindowsettings.ui | 2 +- tests/auto/uic/baseline/formwindowsettings.ui.h | 2 +- tests/auto/uic/baseline/helpdialog.ui | 2 +- tests/auto/uic/baseline/helpdialog.ui.h | 2 +- tests/auto/uic/baseline/listwidgeteditor.ui | 2 +- tests/auto/uic/baseline/listwidgeteditor.ui.h | 2 +- tests/auto/uic/baseline/mainwindowbase.ui | 2 +- tests/auto/uic/baseline/mainwindowbase.ui.h | 2 +- tests/auto/uic/baseline/newactiondialog.ui | 2 +- tests/auto/uic/baseline/newactiondialog.ui.h | 2 +- tests/auto/uic/baseline/newform.ui | 2 +- tests/auto/uic/baseline/newform.ui.h | 2 +- tests/auto/uic/baseline/orderdialog.ui | 2 +- tests/auto/uic/baseline/orderdialog.ui.h | 2 +- tests/auto/uic/baseline/paletteeditor.ui | 2 +- tests/auto/uic/baseline/paletteeditor.ui.h | 2 +- .../auto/uic/baseline/paletteeditoradvancedbase.ui | 2 +- .../uic/baseline/paletteeditoradvancedbase.ui.h | 2 +- tests/auto/uic/baseline/phrasebookbox.ui | 2 +- tests/auto/uic/baseline/phrasebookbox.ui.h | 2 +- tests/auto/uic/baseline/plugindialog.ui | 2 +- tests/auto/uic/baseline/plugindialog.ui.h | 2 +- tests/auto/uic/baseline/previewwidget.ui | 2 +- tests/auto/uic/baseline/previewwidget.ui.h | 2 +- tests/auto/uic/baseline/previewwidgetbase.ui | 2 +- tests/auto/uic/baseline/previewwidgetbase.ui.h | 2 +- tests/auto/uic/baseline/qfiledialog.ui | 2 +- tests/auto/uic/baseline/qfiledialog.ui.h | 2 +- tests/auto/uic/baseline/qtgradientdialog.ui | 2 +- tests/auto/uic/baseline/qtgradientdialog.ui.h | 2 +- tests/auto/uic/baseline/qtgradienteditor.ui | 2 +- tests/auto/uic/baseline/qtgradienteditor.ui.h | 2 +- tests/auto/uic/baseline/qtgradientviewdialog.ui | 2 +- tests/auto/uic/baseline/qtgradientviewdialog.ui.h | 2 +- tests/auto/uic/baseline/saveformastemplate.ui | 2 +- tests/auto/uic/baseline/saveformastemplate.ui.h | 2 +- tests/auto/uic/baseline/statistics.ui | 2 +- tests/auto/uic/baseline/statistics.ui.h | 2 +- tests/auto/uic/baseline/stringlisteditor.ui | 2 +- tests/auto/uic/baseline/stringlisteditor.ui.h | 2 +- tests/auto/uic/baseline/tabbedbrowser.ui | 2 +- tests/auto/uic/baseline/tabbedbrowser.ui.h | 2 +- tests/auto/uic/baseline/tablewidgeteditor.ui | 2 +- tests/auto/uic/baseline/tablewidgeteditor.ui.h | 2 +- tests/auto/uic/baseline/translatedialog.ui | 2 +- tests/auto/uic/baseline/translatedialog.ui.h | 2 +- tests/auto/uic/baseline/treewidgeteditor.ui | 2 +- tests/auto/uic/baseline/treewidgeteditor.ui.h | 2 +- tests/auto/uic/baseline/trpreviewtool.ui | 2 +- tests/auto/uic/baseline/trpreviewtool.ui.h | 2 +- tests/auto/uic/tst_uic.cpp | 2 +- tests/auto/uic3/baseline/about.ui | 4 ++-- tests/auto/uic3/baseline/about.ui.4 | 4 ++-- tests/auto/uic3/baseline/actioneditor.ui | 2 +- tests/auto/uic3/baseline/actioneditor.ui.4 | 2 +- tests/auto/uic3/baseline/config.ui | 2 +- tests/auto/uic3/baseline/config.ui.4 | 2 +- tests/auto/uic3/baseline/configtoolboxdialog.ui | 2 +- tests/auto/uic3/baseline/configtoolboxdialog.ui.4 | 2 +- tests/auto/uic3/baseline/connectiondialog.ui | 2 +- tests/auto/uic3/baseline/connectiondialog.ui.4 | 2 +- tests/auto/uic3/baseline/createtemplate.ui | 2 +- tests/auto/uic3/baseline/createtemplate.ui.4 | 2 +- tests/auto/uic3/baseline/customwidgeteditor.ui | 2 +- tests/auto/uic3/baseline/customwidgeteditor.ui.4 | 2 +- tests/auto/uic3/baseline/dbconnection.ui | 2 +- tests/auto/uic3/baseline/dbconnection.ui.4 | 2 +- tests/auto/uic3/baseline/dbconnectioneditor.ui | 2 +- tests/auto/uic3/baseline/dbconnectioneditor.ui.4 | 2 +- tests/auto/uic3/baseline/dbconnections.ui | 2 +- tests/auto/uic3/baseline/dbconnections.ui.4 | 2 +- tests/auto/uic3/baseline/editfunctions.ui | 2 +- tests/auto/uic3/baseline/editfunctions.ui.4 | 2 +- tests/auto/uic3/baseline/finddialog.ui | 2 +- tests/auto/uic3/baseline/finddialog.ui.4 | 2 +- tests/auto/uic3/baseline/formsettings.ui | 2 +- tests/auto/uic3/baseline/formsettings.ui.4 | 2 +- tests/auto/uic3/baseline/gotolinedialog.ui | 2 +- tests/auto/uic3/baseline/gotolinedialog.ui.4 | 2 +- tests/auto/uic3/baseline/helpdialog.ui | 2 +- tests/auto/uic3/baseline/helpdialog.ui.4 | 2 +- tests/auto/uic3/baseline/iconvieweditor.ui | 2 +- tests/auto/uic3/baseline/iconvieweditor.ui.4 | 2 +- tests/auto/uic3/baseline/listboxeditor.ui | 2 +- tests/auto/uic3/baseline/listboxeditor.ui.4 | 2 +- tests/auto/uic3/baseline/listeditor.ui | 2 +- tests/auto/uic3/baseline/listeditor.ui.4 | 2 +- tests/auto/uic3/baseline/listvieweditor.ui | 2 +- tests/auto/uic3/baseline/listvieweditor.ui.4 | 2 +- tests/auto/uic3/baseline/mainfilesettings.ui | 2 +- tests/auto/uic3/baseline/mainfilesettings.ui.4 | 2 +- tests/auto/uic3/baseline/mainwindowbase.ui | 2 +- tests/auto/uic3/baseline/mainwindowbase.ui.4 | 2 +- tests/auto/uic3/baseline/mainwindowwizard.ui | 2 +- tests/auto/uic3/baseline/mainwindowwizard.ui.4 | 2 +- tests/auto/uic3/baseline/multilineeditor.ui | 2 +- tests/auto/uic3/baseline/multilineeditor.ui.4 | 2 +- tests/auto/uic3/baseline/newform.ui | 2 +- tests/auto/uic3/baseline/newform.ui.4 | 2 +- tests/auto/uic3/baseline/paletteeditor.ui | 2 +- tests/auto/uic3/baseline/paletteeditor.ui.4 | 2 +- tests/auto/uic3/baseline/paletteeditoradvanced.ui | 2 +- .../auto/uic3/baseline/paletteeditoradvanced.ui.4 | 2 +- .../uic3/baseline/paletteeditoradvancedbase.ui | 2 +- .../uic3/baseline/paletteeditoradvancedbase.ui.4 | 2 +- tests/auto/uic3/baseline/pixmapcollectioneditor.ui | 2 +- .../auto/uic3/baseline/pixmapcollectioneditor.ui.4 | 2 +- tests/auto/uic3/baseline/pixmapfunction.ui | 2 +- tests/auto/uic3/baseline/pixmapfunction.ui.4 | 2 +- tests/auto/uic3/baseline/preferences.ui | 2 +- tests/auto/uic3/baseline/preferences.ui.4 | 2 +- tests/auto/uic3/baseline/previewwidget.ui | 2 +- tests/auto/uic3/baseline/previewwidget.ui.4 | 2 +- tests/auto/uic3/baseline/previewwidgetbase.ui | 2 +- tests/auto/uic3/baseline/previewwidgetbase.ui.4 | 2 +- tests/auto/uic3/baseline/projectsettings.ui | 2 +- tests/auto/uic3/baseline/projectsettings.ui.4 | 2 +- tests/auto/uic3/baseline/qactivexselect.ui | 2 +- tests/auto/uic3/baseline/qactivexselect.ui.4 | 2 +- tests/auto/uic3/baseline/replacedialog.ui | 2 +- tests/auto/uic3/baseline/replacedialog.ui.4 | 2 +- tests/auto/uic3/baseline/richtextfontdialog.ui | 2 +- tests/auto/uic3/baseline/richtextfontdialog.ui.4 | 2 +- tests/auto/uic3/baseline/settingsdialog.ui | 2 +- tests/auto/uic3/baseline/settingsdialog.ui.4 | 2 +- tests/auto/uic3/baseline/sqlformwizard.ui | 2 +- tests/auto/uic3/baseline/sqlformwizard.ui.4 | 2 +- tests/auto/uic3/baseline/startdialog.ui | 2 +- tests/auto/uic3/baseline/startdialog.ui.4 | 2 +- tests/auto/uic3/baseline/statistics.ui | 2 +- tests/auto/uic3/baseline/statistics.ui.4 | 2 +- tests/auto/uic3/baseline/tabbedbrowser.ui | 2 +- tests/auto/uic3/baseline/tabbedbrowser.ui.4 | 2 +- tests/auto/uic3/baseline/tableeditor.ui | 2 +- tests/auto/uic3/baseline/tableeditor.ui.4 | 2 +- tests/auto/uic3/baseline/topicchooser.ui | 2 +- tests/auto/uic3/baseline/topicchooser.ui.4 | 2 +- tests/auto/uic3/baseline/variabledialog.ui | 2 +- tests/auto/uic3/baseline/variabledialog.ui.4 | 2 +- tests/auto/uic3/baseline/wizardeditor.ui | 2 +- tests/auto/uic3/baseline/wizardeditor.ui.4 | 2 +- tests/auto/uic3/tst_uic3.cpp | 2 +- tests/auto/uiloader/baseline/batchtranslation.ui | 2 +- tests/auto/uiloader/baseline/config.ui | 2 +- tests/auto/uiloader/baseline/finddialog.ui | 2 +- tests/auto/uiloader/baseline/formwindowsettings.ui | 2 +- tests/auto/uiloader/baseline/helpdialog.ui | 2 +- tests/auto/uiloader/baseline/listwidgeteditor.ui | 2 +- tests/auto/uiloader/baseline/mainwindowbase.ui | 2 +- tests/auto/uiloader/baseline/newactiondialog.ui | 2 +- tests/auto/uiloader/baseline/newform.ui | 2 +- tests/auto/uiloader/baseline/orderdialog.ui | 2 +- tests/auto/uiloader/baseline/paletteeditor.ui | 2 +- .../uiloader/baseline/paletteeditoradvancedbase.ui | 2 +- tests/auto/uiloader/baseline/phrasebookbox.ui | 2 +- tests/auto/uiloader/baseline/plugindialog.ui | 2 +- tests/auto/uiloader/baseline/previewwidget.ui | 2 +- tests/auto/uiloader/baseline/previewwidgetbase.ui | 2 +- tests/auto/uiloader/baseline/qfiledialog.ui | 2 +- tests/auto/uiloader/baseline/qtgradientdialog.ui | 2 +- tests/auto/uiloader/baseline/qtgradienteditor.ui | 2 +- .../auto/uiloader/baseline/qtgradientviewdialog.ui | 2 +- tests/auto/uiloader/baseline/saveformastemplate.ui | 2 +- tests/auto/uiloader/baseline/statistics.ui | 2 +- tests/auto/uiloader/baseline/stringlisteditor.ui | 2 +- tests/auto/uiloader/baseline/tabbedbrowser.ui | 2 +- tests/auto/uiloader/baseline/tablewidgeteditor.ui | 2 +- tests/auto/uiloader/baseline/translatedialog.ui | 2 +- tests/auto/uiloader/baseline/treewidgeteditor.ui | 2 +- tests/auto/uiloader/baseline/trpreviewtool.ui | 2 +- tests/auto/uiloader/tst_screenshot/main.cpp | 2 +- tests/auto/uiloader/uiloader/tst_uiloader.cpp | 2 +- tests/auto/uiloader/uiloader/uiloader.cpp | 2 +- tests/auto/uiloader/uiloader/uiloader.h | 2 +- tests/auto/utf8/tst_utf8.cpp | 2 +- tests/auto/windowsmobile/test/ddhelper.cpp | 2 +- tests/auto/windowsmobile/test/ddhelper.h | 2 +- .../auto/windowsmobile/test/tst_windowsmobile.cpp | 2 +- tests/auto/windowsmobile/testQMenuBar/main.cpp | 2 +- tests/auto/xmlpatterns/tst_xmlpatterns.cpp | 2 +- .../xmlpatternsdiagnosticsts/TestSuite/validate.sh | 2 +- .../tst_xmlpatternsdiagnosticsts.cpp | 2 +- .../xmlpatternsschema/tst_xmlpatternsschema.cpp | 2 +- .../xmlpatternsschemats/TESTSUITE/updateSuite.sh | 2 +- .../tst_xmlpatternsschemats.cpp | 2 +- tests/auto/xmlpatternssdk/ASTItem.cpp | 2 +- tests/auto/xmlpatternssdk/ASTItem.h | 2 +- .../auto/xmlpatternssdk/DebugExpressionFactory.cpp | 2 +- tests/auto/xmlpatternssdk/DebugExpressionFactory.h | 2 +- tests/auto/xmlpatternssdk/ErrorHandler.cpp | 2 +- tests/auto/xmlpatternssdk/ErrorHandler.h | 2 +- tests/auto/xmlpatternssdk/ErrorItem.cpp | 2 +- tests/auto/xmlpatternssdk/ErrorItem.h | 2 +- tests/auto/xmlpatternssdk/ExitCode.h | 2 +- tests/auto/xmlpatternssdk/ExpressionInfo.cpp | 2 +- tests/auto/xmlpatternssdk/ExpressionInfo.h | 2 +- tests/auto/xmlpatternssdk/ExpressionNamer.cpp | 2 +- tests/auto/xmlpatternssdk/ExpressionNamer.h | 2 +- tests/auto/xmlpatternssdk/ExternalSourceLoader.cpp | 2 +- tests/auto/xmlpatternssdk/ExternalSourceLoader.h | 2 +- tests/auto/xmlpatternssdk/Global.cpp | 2 +- tests/auto/xmlpatternssdk/Global.h | 2 +- tests/auto/xmlpatternssdk/ResultThreader.cpp | 2 +- tests/auto/xmlpatternssdk/ResultThreader.h | 2 +- tests/auto/xmlpatternssdk/TestBaseLine.cpp | 2 +- tests/auto/xmlpatternssdk/TestBaseLine.h | 2 +- tests/auto/xmlpatternssdk/TestCase.cpp | 2 +- tests/auto/xmlpatternssdk/TestCase.h | 2 +- tests/auto/xmlpatternssdk/TestContainer.cpp | 2 +- tests/auto/xmlpatternssdk/TestContainer.h | 2 +- tests/auto/xmlpatternssdk/TestGroup.cpp | 2 +- tests/auto/xmlpatternssdk/TestGroup.h | 2 +- tests/auto/xmlpatternssdk/TestItem.h | 2 +- tests/auto/xmlpatternssdk/TestResult.cpp | 2 +- tests/auto/xmlpatternssdk/TestResult.h | 2 +- tests/auto/xmlpatternssdk/TestResultHandler.cpp | 2 +- tests/auto/xmlpatternssdk/TestResultHandler.h | 2 +- tests/auto/xmlpatternssdk/TestSuite.cpp | 2 +- tests/auto/xmlpatternssdk/TestSuite.h | 2 +- tests/auto/xmlpatternssdk/TestSuiteHandler.cpp | 2 +- tests/auto/xmlpatternssdk/TestSuiteHandler.h | 2 +- tests/auto/xmlpatternssdk/TestSuiteResult.cpp | 2 +- tests/auto/xmlpatternssdk/TestSuiteResult.h | 2 +- tests/auto/xmlpatternssdk/TreeItem.cpp | 2 +- tests/auto/xmlpatternssdk/TreeItem.h | 2 +- tests/auto/xmlpatternssdk/TreeModel.cpp | 2 +- tests/auto/xmlpatternssdk/TreeModel.h | 2 +- tests/auto/xmlpatternssdk/Worker.cpp | 2 +- tests/auto/xmlpatternssdk/Worker.h | 2 +- tests/auto/xmlpatternssdk/XMLWriter.cpp | 2 +- tests/auto/xmlpatternssdk/XMLWriter.h | 2 +- tests/auto/xmlpatternssdk/XQTSTestCase.cpp | 2 +- tests/auto/xmlpatternssdk/XQTSTestCase.h | 2 +- tests/auto/xmlpatternssdk/XSDTSTestCase.cpp | 2 +- tests/auto/xmlpatternssdk/XSDTSTestCase.h | 2 +- tests/auto/xmlpatternssdk/XSDTestSuiteHandler.cpp | 2 +- tests/auto/xmlpatternssdk/XSDTestSuiteHandler.h | 2 +- tests/auto/xmlpatternssdk/XSLTTestSuiteHandler.cpp | 2 +- tests/auto/xmlpatternssdk/XSLTTestSuiteHandler.h | 2 +- .../xmlpatternssdk/docs/XMLIndenterExample.cpp | 2 +- .../auto/xmlpatternssdk/docs/XMLWriterExample.cpp | 2 +- tests/auto/xmlpatternssdk/tests/XMLWriterTest.cpp | 2 +- tests/auto/xmlpatternssdk/tests/XMLWriterTest.h | 2 +- .../tst_xmlpatternsvalidator.cpp | 2 +- tests/auto/xmlpatternsview/tst_xmlpatternsview.cpp | 2 +- .../view/FunctionSignaturesView.cpp | 2 +- .../xmlpatternsview/view/FunctionSignaturesView.h | 2 +- tests/auto/xmlpatternsview/view/MainWindow.cpp | 2 +- tests/auto/xmlpatternsview/view/MainWindow.h | 2 +- tests/auto/xmlpatternsview/view/TestCaseView.cpp | 2 +- tests/auto/xmlpatternsview/view/TestCaseView.h | 2 +- tests/auto/xmlpatternsview/view/TestResultView.cpp | 2 +- tests/auto/xmlpatternsview/view/TestResultView.h | 2 +- tests/auto/xmlpatternsview/view/TreeSortFilter.cpp | 2 +- tests/auto/xmlpatternsview/view/TreeSortFilter.h | 2 +- tests/auto/xmlpatternsview/view/UserTestCase.cpp | 2 +- tests/auto/xmlpatternsview/view/UserTestCase.h | 2 +- tests/auto/xmlpatternsview/view/XDTItemItem.cpp | 2 +- tests/auto/xmlpatternsview/view/XDTItemItem.h | 2 +- tests/auto/xmlpatternsview/view/main.cpp | 2 +- tests/auto/xmlpatternsxqts/summarizeBaseline.sh | 2 +- tests/auto/xmlpatternsxqts/tst_suitetest.cpp | 2 +- tests/auto/xmlpatternsxqts/tst_suitetest.h | 2 +- tests/auto/xmlpatternsxqts/tst_xmlpatternsxqts.cpp | 2 +- tests/auto/xmlpatternsxslts/XSLTS/updateSuite.sh | 2 +- .../auto/xmlpatternsxslts/tst_xmlpatternsxslts.cpp | 2 +- .../benchmarks/corelib/codecs/qtextcodec/main.cpp | 2 +- .../corelib/io/qdir/10000/bench_qdir_10000.cpp | 2 +- .../corelib/io/qdir/tree/bench_qdir_tree.cpp | 2 +- tests/benchmarks/corelib/io/qdiriterator/main.cpp | 2 +- .../io/qdiriterator/qfilesystemiterator.cpp | 2 +- .../corelib/io/qdiriterator/qfilesystemiterator.h | 2 +- tests/benchmarks/corelib/io/qfile/main.cpp | 2 +- tests/benchmarks/corelib/io/qfileinfo/main.cpp | 2 +- tests/benchmarks/corelib/io/qiodevice/main.cpp | 2 +- .../benchmarks/corelib/io/qtemporaryfile/main.cpp | 2 +- tests/benchmarks/corelib/io/qurl/main.cpp | 2 +- tests/benchmarks/corelib/kernel/events/main.cpp | 2 +- .../benchmarks/corelib/kernel/qmetaobject/main.cpp | 2 +- .../corelib/kernel/qmetatype/tst_qmetatype.cpp | 2 +- tests/benchmarks/corelib/kernel/qobject/main.cpp | 2 +- tests/benchmarks/corelib/kernel/qobject/object.cpp | 2 +- tests/benchmarks/corelib/kernel/qobject/object.h | 2 +- .../tst_qtimer_vs_qmetaobject.cpp | 2 +- .../corelib/kernel/qvariant/tst_qvariant.cpp | 2 +- .../benchmarks/corelib/plugin/quuid/tst_quuid.cpp | 2 +- .../thread/qthreadstorage/tst_qthreadstorage.cpp | 2 +- .../corelib/tools/containers-associative/main.cpp | 2 +- .../corelib/tools/containers-sequential/main.cpp | 2 +- tests/benchmarks/corelib/tools/qbytearray/main.cpp | 2 +- tests/benchmarks/corelib/tools/qrect/main.cpp | 2 +- tests/benchmarks/corelib/tools/qregexp/main.cpp | 2 +- tests/benchmarks/corelib/tools/qstring/data.h | 2 +- .../corelib/tools/qstring/generatelist.pl | 2 +- tests/benchmarks/corelib/tools/qstring/main.cpp | 2 +- .../corelib/tools/qstringbuilder/main.cpp | 2 +- .../benchmarks/corelib/tools/qstringlist/main.cpp | 2 +- tests/benchmarks/corelib/tools/qvector/main.cpp | 2 +- .../benchmarks/corelib/tools/qvector/outofline.cpp | 2 +- .../benchmarks/corelib/tools/qvector/qrawvector.h | 2 +- tests/benchmarks/declarative/binding/testtypes.cpp | 2 +- tests/benchmarks/declarative/binding/testtypes.h | 2 +- .../benchmarks/declarative/binding/tst_binding.cpp | 2 +- .../declarative/compilation/data/BoomBlock.qml | 2 +- .../declarative/compilation/tst_compilation.cpp | 2 +- .../benchmarks/declarative/creation/data/item.qml | 2 +- .../declarative/creation/data/qobject.qml | 2 +- .../declarative/creation/tst_creation.cpp | 2 +- .../declarative/painting/paintbenchmark.cpp | 2 +- .../declarative/pointers/tst_pointers.cpp | 2 +- .../qdeclarativecomponent/data/myqmlobject.qml | 2 +- .../data/myqmlobject_binding.qml | 2 +- .../qdeclarativecomponent/data/object.qml | 2 +- .../qdeclarativecomponent/data/object_id.qml | 2 +- .../data/samegame/BoomBlock.qml | 2 +- .../data/synthesized_properties.2.qml | 2 +- .../data/synthesized_properties.qml | 2 +- .../qdeclarativecomponent/testtypes.cpp | 2 +- .../declarative/qdeclarativecomponent/testtypes.h | 2 +- .../tst_qdeclarativecomponent.cpp | 2 +- .../qdeclarativeimage/tst_qdeclarativeimage.cpp | 2 +- .../qdeclarativemetaproperty/data/object.qml | 2 +- .../data/synthesized_object.qml | 2 +- .../tst_qdeclarativemetaproperty.cpp | 2 +- tests/benchmarks/declarative/qmltime/example.qml | 2 +- tests/benchmarks/declarative/qmltime/qmltime.cpp | 2 +- .../declarative/qmltime/tests/anchors/empty.qml | 2 +- .../declarative/qmltime/tests/anchors/fill.qml | 2 +- .../declarative/qmltime/tests/anchors/null.qml | 2 +- .../declarative/qmltime/tests/animation/large.qml | 2 +- .../qmltime/tests/animation/largeNoProps.qml | 2 +- .../qmltime/tests/item_creation/children.qml | 2 +- .../qmltime/tests/item_creation/data.qml | 2 +- .../qmltime/tests/item_creation/no_creation.qml | 2 +- .../qmltime/tests/item_creation/resources.qml | 2 +- .../declarative/qmltime/tests/loader/Loaded.qml | 2 +- .../qmltime/tests/loader/component_loader.qml | 2 +- .../qmltime/tests/loader/empty_loader.qml | 2 +- .../declarative/qmltime/tests/loader/no_loader.qml | 2 +- .../qmltime/tests/loader/source_loader.qml | 2 +- .../tests/positioner_creation/no_positioner.qml | 2 +- .../tests/positioner_creation/null_positioner.qml | 2 +- .../tests/positioner_creation/positioner.qml | 2 +- .../qmltime/tests/vmemetaobject/null.qml | 2 +- .../qmltime/tests/vmemetaobject/property.qml | 2 +- .../declarative/script/data/CustomObject.qml | 2 +- tests/benchmarks/declarative/script/data/block.qml | 2 +- tests/benchmarks/declarative/script/data/global.js | 2 +- .../declarative/script/data/global_prop.qml | 2 +- .../declarative/script/data/signal_args.qml | 2 +- .../declarative/script/data/signal_qml.qml | 2 +- .../declarative/script/data/signal_unconnected.qml | 2 +- .../declarative/script/data/signal_unusedArgs.qml | 2 +- .../declarative/script/data/slot_complex.qml | 2 +- .../declarative/script/data/slot_complex_js.qml | 2 +- .../declarative/script/data/slot_simple.qml | 2 +- .../declarative/script/data/slot_simple_js.qml | 2 +- tests/benchmarks/declarative/script/tst_script.cpp | 2 +- .../declarative/typeimports/data/QmlTestType1.qml | 2 +- .../declarative/typeimports/data/QmlTestType2.qml | 2 +- .../declarative/typeimports/data/QmlTestType3.qml | 2 +- .../declarative/typeimports/data/QmlTestType4.qml | 2 +- .../declarative/typeimports/data/cpp.qml | 2 +- .../declarative/typeimports/data/qml.qml | 2 +- .../declarative/typeimports/tst_typeimports.cpp | 2 +- .../gui/animation/qanimation/dummyanimation.cpp | 2 +- .../gui/animation/qanimation/dummyanimation.h | 2 +- .../gui/animation/qanimation/dummyobject.cpp | 2 +- .../gui/animation/qanimation/dummyobject.h | 2 +- tests/benchmarks/gui/animation/qanimation/main.cpp | 2 +- .../gui/animation/qanimation/rectanimation.cpp | 2 +- .../gui/animation/qanimation/rectanimation.h | 2 +- .../functional/GraphicsViewBenchmark/main.cpp | 2 +- .../widgets/abstractitemcontainer.cpp | 2 +- .../widgets/abstractitemcontainer.h | 2 +- .../widgets/abstractitemview.cpp | 2 +- .../widgets/abstractitemview.h | 2 +- .../widgets/abstractscrollarea.cpp | 2 +- .../widgets/abstractscrollarea.h | 2 +- .../widgets/abstractviewitem.cpp | 2 +- .../widgets/abstractviewitem.h | 2 +- .../widgets/backgrounditem.cpp | 2 +- .../GraphicsViewBenchmark/widgets/backgrounditem.h | 2 +- .../GraphicsViewBenchmark/widgets/button.cpp | 2 +- .../GraphicsViewBenchmark/widgets/button.h | 2 +- .../GraphicsViewBenchmark/widgets/commandline.cpp | 2 +- .../GraphicsViewBenchmark/widgets/commandline.h | 2 +- .../GraphicsViewBenchmark/widgets/dummydatagen.cpp | 2 +- .../GraphicsViewBenchmark/widgets/dummydatagen.h | 2 +- .../GraphicsViewBenchmark/widgets/gvbwidget.cpp | 2 +- .../GraphicsViewBenchmark/widgets/gvbwidget.h | 2 +- .../GraphicsViewBenchmark/widgets/iconitem.cpp | 2 +- .../GraphicsViewBenchmark/widgets/iconitem.h | 2 +- .../widgets/itemrecyclinglist.cpp | 2 +- .../widgets/itemrecyclinglist.h | 2 +- .../widgets/itemrecyclinglistview.cpp | 2 +- .../widgets/itemrecyclinglistview.h | 2 +- .../GraphicsViewBenchmark/widgets/label.cpp | 2 +- .../GraphicsViewBenchmark/widgets/label.h | 2 +- .../GraphicsViewBenchmark/widgets/listitem.cpp | 2 +- .../GraphicsViewBenchmark/widgets/listitem.h | 2 +- .../widgets/listitemcache.cpp | 2 +- .../GraphicsViewBenchmark/widgets/listitemcache.h | 2 +- .../widgets/listitemcontainer.cpp | 2 +- .../widgets/listitemcontainer.h | 2 +- .../GraphicsViewBenchmark/widgets/listmodel.cpp | 2 +- .../GraphicsViewBenchmark/widgets/listmodel.h | 2 +- .../GraphicsViewBenchmark/widgets/listwidget.cpp | 2 +- .../GraphicsViewBenchmark/widgets/listwidget.h | 2 +- .../GraphicsViewBenchmark/widgets/mainview.cpp | 2 +- .../GraphicsViewBenchmark/widgets/mainview.h | 2 +- .../GraphicsViewBenchmark/widgets/menu.cpp | 2 +- .../GraphicsViewBenchmark/widgets/menu.h | 2 +- .../widgets/recycledlistitem.cpp | 2 +- .../widgets/recycledlistitem.h | 2 +- .../widgets/resourcemoninterface.h | 2 +- .../GraphicsViewBenchmark/widgets/scrollbar.cpp | 2 +- .../GraphicsViewBenchmark/widgets/scrollbar.h | 2 +- .../GraphicsViewBenchmark/widgets/scroller.cpp | 2 +- .../GraphicsViewBenchmark/widgets/scroller.h | 2 +- .../GraphicsViewBenchmark/widgets/scroller_p.h | 2 +- .../GraphicsViewBenchmark/widgets/settings.cpp | 2 +- .../GraphicsViewBenchmark/widgets/settings.h | 2 +- .../GraphicsViewBenchmark/widgets/simplelist.cpp | 2 +- .../GraphicsViewBenchmark/widgets/simplelist.h | 2 +- .../widgets/simplelistview.cpp | 2 +- .../GraphicsViewBenchmark/widgets/simplelistview.h | 2 +- .../GraphicsViewBenchmark/widgets/theme.cpp | 2 +- .../GraphicsViewBenchmark/widgets/theme.h | 2 +- .../GraphicsViewBenchmark/widgets/themeevent.cpp | 2 +- .../GraphicsViewBenchmark/widgets/themeevent.h | 2 +- .../GraphicsViewBenchmark/widgets/topbar.cpp | 2 +- .../GraphicsViewBenchmark/widgets/topbar.h | 2 +- .../GraphicsViewBenchmark/widgets/webview.cpp | 2 +- .../GraphicsViewBenchmark/widgets/webview.h | 2 +- .../GraphicsViewBenchmark/widgets/webview_p.h | 2 +- .../tst_qgraphicsanchorlayout.cpp | 2 +- .../qgraphicsitem/tst_qgraphicsitem.cpp | 2 +- .../tst_qgraphicslinearlayout.cpp | 2 +- .../qgraphicsscene/tst_qgraphicsscene.cpp | 2 +- .../qgraphicsview/benchapps/chipTest/chip.cpp | 2 +- .../qgraphicsview/benchapps/chipTest/chip.h | 2 +- .../qgraphicsview/benchapps/chipTest/main.cpp | 2 +- .../benchapps/chipTest/mainwindow.cpp | 2 +- .../qgraphicsview/benchapps/chipTest/mainwindow.h | 2 +- .../qgraphicsview/benchapps/chipTest/view.cpp | 2 +- .../qgraphicsview/benchapps/chipTest/view.h | 2 +- .../qgraphicsview/benchapps/moveItems/main.cpp | 2 +- .../qgraphicsview/benchapps/scrolltest/main.cpp | 2 +- .../graphicsview/qgraphicsview/chiptester/chip.cpp | 2 +- .../graphicsview/qgraphicsview/chiptester/chip.h | 2 +- .../qgraphicsview/chiptester/chiptester.cpp | 2 +- .../qgraphicsview/chiptester/chiptester.h | 2 +- .../qgraphicsview/tst_qgraphicsview.cpp | 2 +- .../qgraphicswidget/tst_qgraphicswidget.cpp | 2 +- tests/benchmarks/gui/image/blendbench/main.cpp | 2 +- .../qimageconversion/tst_qimageconversion.cpp | 2 +- .../gui/image/qimagereader/tst_qimagereader.cpp | 2 +- tests/benchmarks/gui/image/qpixmap/tst_qpixmap.cpp | 2 +- .../gui/image/qpixmapcache/tst_qpixmapcache.cpp | 2 +- .../gui/itemviews/qtableview/tst_qtableview.cpp | 2 +- tests/benchmarks/gui/kernel/qapplication/main.cpp | 2 +- .../benchmarks/gui/kernel/qwidget/tst_qwidget.cpp | 2 +- .../gui/math3d/qmatrix4x4/tst_qmatrix4x4.cpp | 2 +- .../gui/math3d/qquaternion/tst_qquaternion.cpp | 2 +- .../gui/painting/qpainter/tst_qpainter.cpp | 2 +- tests/benchmarks/gui/painting/qregion/main.cpp | 2 +- .../gui/painting/qtbench/benchmarktests.h | 2 +- .../gui/painting/qtbench/tst_qtbench.cpp | 2 +- .../gui/painting/qtracebench/tst_qtracebench.cpp | 2 +- .../gui/painting/qtransform/tst_qtransform.cpp | 2 +- .../gui/styles/qstylesheetstyle/main.cpp | 2 +- tests/benchmarks/gui/text/qfontmetrics/main.cpp | 2 +- tests/benchmarks/gui/text/qtext/main.cpp | 2 +- .../access/qfile_vs_qnetworkaccessmanager/main.cpp | 2 +- .../access/qnetworkreply/tst_qnetworkreply.cpp | 2 +- tests/benchmarks/network/kernel/qhostinfo/main.cpp | 2 +- .../network/socket/qtcpserver/tst_qtcpserver.cpp | 2 +- .../network/ssl/qsslsocket/tst_qsslsocket.cpp | 2 +- tests/benchmarks/opengl/main.cpp | 2 +- .../benchmarks/plugins/imageformats/jpeg/jpeg.cpp | 2 +- .../script/qscriptclass/tst_qscriptclass.cpp | 2 +- .../script/qscriptengine/tst_qscriptengine.cpp | 2 +- .../script/qscriptvalue/tst_qscriptvalue.cpp | 2 +- .../tst_qscriptvalueiterator.cpp | 2 +- .../svg/qsvgrenderer/tst_qsvgrenderer.cpp | 2 +- tests/manual/bearerex/bearerex.cpp | 2 +- tests/manual/bearerex/bearerex.h | 2 +- tests/manual/bearerex/datatransferer.cpp | 2 +- tests/manual/bearerex/datatransferer.h | 2 +- tests/manual/bearerex/main.cpp | 2 +- tests/manual/bearerex/xqlistwidget.cpp | 2 +- tests/manual/bearerex/xqlistwidget.h | 2 +- tests/manual/gestures/graphicsview/gestures.cpp | 2 +- tests/manual/gestures/graphicsview/gestures.h | 2 +- tests/manual/gestures/graphicsview/imageitem.cpp | 2 +- tests/manual/gestures/graphicsview/imageitem.h | 2 +- tests/manual/gestures/graphicsview/main.cpp | 2 +- .../graphicsview/mousepangesturerecognizer.cpp | 2 +- .../graphicsview/mousepangesturerecognizer.h | 2 +- tests/manual/gestures/scrollarea/main.cpp | 2 +- .../scrollarea/mousepangesturerecognizer.cpp | 2 +- .../scrollarea/mousepangesturerecognizer.h | 2 +- tests/manual/inputmethodhints/inputmethodhints.cpp | 2 +- tests/manual/inputmethodhints/inputmethodhints.h | 2 +- tests/manual/inputmethodhints/main.cpp | 2 +- tests/manual/keypadnavigation/main.cpp | 2 +- .../tst_network_remote_stresstest.cpp | 2 +- tests/manual/network_stresstest/minihttpserver.cpp | 2 +- tests/manual/network_stresstest/minihttpserver.h | 2 +- .../network_stresstest/tst_network_stresstest.cpp | 2 +- tests/manual/qcursor/allcursors/main.cpp | 2 +- tests/manual/qcursor/allcursors/mainwindow.cpp | 2 +- tests/manual/qcursor/allcursors/mainwindow.h | 2 +- tests/manual/qcursor/grab_override/main.cpp | 2 +- tests/manual/qcursor/grab_override/mainwindow.cpp | 2 +- tests/manual/qcursor/grab_override/mainwindow.h | 2 +- tests/manual/qdesktopwidget/main.cpp | 2 +- tests/manual/qgraphicsitemgroup/customitem.cpp | 2 +- tests/manual/qgraphicsitemgroup/customitem.h | 2 +- tests/manual/qgraphicsitemgroup/main.cpp | 2 +- tests/manual/qgraphicsitemgroup/widget.cpp | 2 +- tests/manual/qgraphicsitemgroup/widget.h | 2 +- tests/manual/qhttpnetworkconnection/main.cpp | 2 +- tests/manual/qimagereader/main.cpp | 2 +- tests/manual/qnetworkreply/main.cpp | 2 +- .../qtabletevent/device_information/main.cpp | 2 +- .../device_information/tabletwidget.cpp | 2 +- .../qtabletevent/device_information/tabletwidget.h | 2 +- .../manual/qtabletevent/event_compression/main.cpp | 2 +- .../event_compression/mousestatwidget.cpp | 2 +- .../event_compression/mousestatwidget.h | 2 +- tests/manual/qtabletevent/regular_widgets/main.cpp | 2 +- tests/manual/qtbug-8933/main.cpp | 2 +- tests/manual/qtbug-8933/widget.cpp | 2 +- tests/manual/qtbug-8933/widget.h | 2 +- tests/manual/qtouchevent/main.cpp | 2 +- tests/manual/qtouchevent/touchwidget.cpp | 2 +- tests/manual/qtouchevent/touchwidget.h | 2 +- tests/manual/qwidget_zorder/main.cpp | 2 +- tests/manual/repaint/mainwindow/main.cpp | 2 +- tests/manual/repaint/scrollarea/main.cpp | 2 +- tests/manual/repaint/shared/shared.h | 2 +- tests/manual/repaint/splitter/main.cpp | 2 +- tests/manual/repaint/tableview/main.cpp | 2 +- tests/manual/repaint/task141091/main.cpp | 2 +- tests/manual/repaint/toplevel/main.cpp | 2 +- tests/manual/repaint/widget/main.cpp | 2 +- tests/manual/textrendering/glyphshaping/main.cpp | 2 +- .../manual/textrendering/textperformance/main.cpp | 2 +- tests/manual/windowflags/controllerwindow.cpp | 2 +- tests/manual/windowflags/controllerwindow.h | 2 +- tests/manual/windowflags/main.cpp | 2 +- tests/manual/windowflags/previewwindow.cpp | 2 +- tests/manual/windowflags/previewwindow.h | 2 +- tests/shared/filesystem.h | 2 +- tests/shared/util.h | 2 +- tools/activeqt/dumpcpp/main.cpp | 2 +- tools/activeqt/dumpdoc/main.cpp | 2 +- tools/activeqt/testcon/ambientproperties.cpp | 2 +- tools/activeqt/testcon/ambientproperties.h | 2 +- tools/activeqt/testcon/ambientproperties.ui | 2 +- tools/activeqt/testcon/changeproperties.cpp | 2 +- tools/activeqt/testcon/changeproperties.h | 2 +- tools/activeqt/testcon/changeproperties.ui | 2 +- tools/activeqt/testcon/controlinfo.cpp | 2 +- tools/activeqt/testcon/controlinfo.h | 2 +- tools/activeqt/testcon/controlinfo.ui | 2 +- tools/activeqt/testcon/docuwindow.cpp | 2 +- tools/activeqt/testcon/docuwindow.h | 2 +- tools/activeqt/testcon/invokemethod.cpp | 2 +- tools/activeqt/testcon/invokemethod.h | 2 +- tools/activeqt/testcon/invokemethod.ui | 2 +- tools/activeqt/testcon/main.cpp | 2 +- tools/activeqt/testcon/mainwindow.cpp | 2 +- tools/activeqt/testcon/mainwindow.h | 2 +- tools/activeqt/testcon/mainwindow.ui | 2 +- tools/activeqt/testcon/scripts/perlscript.pl | 2 +- tools/activeqt/testcon/scripts/pythonscript.py | 2 +- tools/activeqt/testcon/testcon.rc | 2 +- tools/assistant/lib/fulltextsearch/qanalyzer.cpp | 2 +- tools/assistant/lib/fulltextsearch/qanalyzer_p.h | 2 +- .../lib/fulltextsearch/qclucene-config_p.h | 2 +- .../lib/fulltextsearch/qclucene_global_p.h | 2 +- tools/assistant/lib/fulltextsearch/qdocument.cpp | 2 +- tools/assistant/lib/fulltextsearch/qdocument_p.h | 2 +- tools/assistant/lib/fulltextsearch/qfield.cpp | 2 +- tools/assistant/lib/fulltextsearch/qfield_p.h | 2 +- tools/assistant/lib/fulltextsearch/qfilter.cpp | 2 +- tools/assistant/lib/fulltextsearch/qfilter_p.h | 2 +- tools/assistant/lib/fulltextsearch/qhits.cpp | 2 +- tools/assistant/lib/fulltextsearch/qhits_p.h | 2 +- .../assistant/lib/fulltextsearch/qindexreader.cpp | 2 +- .../assistant/lib/fulltextsearch/qindexreader_p.h | 2 +- .../assistant/lib/fulltextsearch/qindexwriter.cpp | 2 +- .../assistant/lib/fulltextsearch/qindexwriter_p.h | 2 +- tools/assistant/lib/fulltextsearch/qquery.cpp | 2 +- tools/assistant/lib/fulltextsearch/qquery_p.h | 2 +- .../assistant/lib/fulltextsearch/qqueryparser.cpp | 2 +- .../assistant/lib/fulltextsearch/qqueryparser_p.h | 2 +- tools/assistant/lib/fulltextsearch/qreader.cpp | 2 +- tools/assistant/lib/fulltextsearch/qreader_p.h | 2 +- tools/assistant/lib/fulltextsearch/qsearchable.cpp | 2 +- tools/assistant/lib/fulltextsearch/qsearchable_p.h | 2 +- tools/assistant/lib/fulltextsearch/qsort.cpp | 2 +- tools/assistant/lib/fulltextsearch/qsort_p.h | 2 +- tools/assistant/lib/fulltextsearch/qterm.cpp | 2 +- tools/assistant/lib/fulltextsearch/qterm_p.h | 2 +- tools/assistant/lib/fulltextsearch/qtoken.cpp | 2 +- tools/assistant/lib/fulltextsearch/qtoken_p.h | 2 +- tools/assistant/lib/fulltextsearch/qtokenizer.cpp | 2 +- tools/assistant/lib/fulltextsearch/qtokenizer_p.h | 2 +- .../assistant/lib/fulltextsearch/qtokenstream.cpp | 2 +- .../assistant/lib/fulltextsearch/qtokenstream_p.h | 2 +- tools/assistant/lib/qclucenefieldnames.cpp | 2 +- tools/assistant/lib/qclucenefieldnames_p.h | 2 +- tools/assistant/lib/qhelp_global.cpp | 2 +- tools/assistant/lib/qhelp_global.h | 2 +- tools/assistant/lib/qhelpcollectionhandler.cpp | 2 +- tools/assistant/lib/qhelpcollectionhandler_p.h | 2 +- tools/assistant/lib/qhelpcontentwidget.cpp | 2 +- tools/assistant/lib/qhelpcontentwidget.h | 2 +- tools/assistant/lib/qhelpdatainterface.cpp | 2 +- tools/assistant/lib/qhelpdatainterface_p.h | 2 +- tools/assistant/lib/qhelpdbreader.cpp | 2 +- tools/assistant/lib/qhelpdbreader_p.h | 2 +- tools/assistant/lib/qhelpengine.cpp | 2 +- tools/assistant/lib/qhelpengine.h | 2 +- tools/assistant/lib/qhelpengine_p.h | 2 +- tools/assistant/lib/qhelpenginecore.cpp | 2 +- tools/assistant/lib/qhelpenginecore.h | 2 +- tools/assistant/lib/qhelpgenerator.cpp | 2 +- tools/assistant/lib/qhelpgenerator_p.h | 2 +- tools/assistant/lib/qhelpindexwidget.cpp | 2 +- tools/assistant/lib/qhelpindexwidget.h | 2 +- tools/assistant/lib/qhelpprojectdata.cpp | 2 +- tools/assistant/lib/qhelpprojectdata_p.h | 2 +- tools/assistant/lib/qhelpsearchengine.cpp | 2 +- tools/assistant/lib/qhelpsearchengine.h | 2 +- tools/assistant/lib/qhelpsearchindex_default.cpp | 2 +- tools/assistant/lib/qhelpsearchindex_default_p.h | 2 +- tools/assistant/lib/qhelpsearchindexreader.cpp | 2 +- .../lib/qhelpsearchindexreader_clucene.cpp | 2 +- .../lib/qhelpsearchindexreader_clucene_p.h | 2 +- .../lib/qhelpsearchindexreader_default.cpp | 2 +- .../lib/qhelpsearchindexreader_default_p.h | 2 +- tools/assistant/lib/qhelpsearchindexreader_p.h | 2 +- .../lib/qhelpsearchindexwriter_clucene.cpp | 2 +- .../lib/qhelpsearchindexwriter_clucene_p.h | 2 +- .../lib/qhelpsearchindexwriter_default.cpp | 2 +- .../lib/qhelpsearchindexwriter_default_p.h | 2 +- tools/assistant/lib/qhelpsearchquerywidget.cpp | 2 +- tools/assistant/lib/qhelpsearchquerywidget.h | 2 +- tools/assistant/lib/qhelpsearchresultwidget.cpp | 2 +- tools/assistant/lib/qhelpsearchresultwidget.h | 2 +- tools/assistant/tools/assistant/aboutdialog.cpp | 2 +- tools/assistant/tools/assistant/aboutdialog.h | 2 +- tools/assistant/tools/assistant/assistant.rc | 2 +- tools/assistant/tools/assistant/bookmarkdialog.cpp | 2 +- tools/assistant/tools/assistant/bookmarkdialog.h | 2 +- .../tools/assistant/bookmarkfiltermodel.cpp | 2 +- .../tools/assistant/bookmarkfiltermodel.h | 2 +- tools/assistant/tools/assistant/bookmarkitem.cpp | 2 +- tools/assistant/tools/assistant/bookmarkitem.h | 2 +- .../assistant/tools/assistant/bookmarkmanager.cpp | 2 +- tools/assistant/tools/assistant/bookmarkmanager.h | 2 +- .../tools/assistant/bookmarkmanagerwidget.cpp | 2 +- .../tools/assistant/bookmarkmanagerwidget.h | 2 +- tools/assistant/tools/assistant/bookmarkmodel.cpp | 2 +- tools/assistant/tools/assistant/bookmarkmodel.h | 2 +- tools/assistant/tools/assistant/centralwidget.cpp | 2 +- tools/assistant/tools/assistant/centralwidget.h | 2 +- tools/assistant/tools/assistant/cmdlineparser.cpp | 2 +- tools/assistant/tools/assistant/cmdlineparser.h | 2 +- tools/assistant/tools/assistant/contentwindow.cpp | 2 +- tools/assistant/tools/assistant/contentwindow.h | 2 +- tools/assistant/tools/assistant/doc/assistant.qdoc | 2 +- .../assistant/tools/assistant/filternamedialog.cpp | 2 +- tools/assistant/tools/assistant/filternamedialog.h | 2 +- tools/assistant/tools/assistant/findwidget.cpp | 2 +- tools/assistant/tools/assistant/findwidget.h | 2 +- .../tools/assistant/helpenginewrapper.cpp | 2 +- .../assistant/tools/assistant/helpenginewrapper.h | 2 +- tools/assistant/tools/assistant/helpviewer.cpp | 2 +- tools/assistant/tools/assistant/helpviewer.h | 2 +- tools/assistant/tools/assistant/helpviewer_qtb.cpp | 2 +- tools/assistant/tools/assistant/helpviewer_qtb.h | 2 +- tools/assistant/tools/assistant/helpviewer_qwv.cpp | 2 +- tools/assistant/tools/assistant/helpviewer_qwv.h | 2 +- tools/assistant/tools/assistant/indexwindow.cpp | 2 +- tools/assistant/tools/assistant/indexwindow.h | 2 +- tools/assistant/tools/assistant/installdialog.cpp | 2 +- tools/assistant/tools/assistant/installdialog.h | 2 +- tools/assistant/tools/assistant/main.cpp | 2 +- tools/assistant/tools/assistant/mainwindow.cpp | 4 ++-- tools/assistant/tools/assistant/mainwindow.h | 2 +- .../tools/assistant/preferencesdialog.cpp | 2 +- .../assistant/tools/assistant/preferencesdialog.h | 2 +- tools/assistant/tools/assistant/qtdocinstaller.cpp | 2 +- tools/assistant/tools/assistant/qtdocinstaller.h | 2 +- tools/assistant/tools/assistant/remotecontrol.cpp | 2 +- tools/assistant/tools/assistant/remotecontrol.h | 2 +- .../assistant/tools/assistant/remotecontrol_win.h | 2 +- tools/assistant/tools/assistant/searchwidget.cpp | 2 +- tools/assistant/tools/assistant/searchwidget.h | 2 +- tools/assistant/tools/assistant/topicchooser.cpp | 2 +- tools/assistant/tools/assistant/topicchooser.h | 2 +- tools/assistant/tools/assistant/tracer.h | 2 +- tools/assistant/tools/assistant/xbelsupport.cpp | 2 +- tools/assistant/tools/assistant/xbelsupport.h | 2 +- .../assistant/tools/qcollectiongenerator/main.cpp | 2 +- tools/assistant/tools/qhelpconverter/adpreader.cpp | 2 +- tools/assistant/tools/qhelpconverter/adpreader.h | 2 +- .../tools/qhelpconverter/conversionwizard.cpp | 2 +- .../tools/qhelpconverter/conversionwizard.h | 2 +- tools/assistant/tools/qhelpconverter/filespage.cpp | 2 +- tools/assistant/tools/qhelpconverter/filespage.h | 2 +- .../assistant/tools/qhelpconverter/filterpage.cpp | 2 +- tools/assistant/tools/qhelpconverter/filterpage.h | 2 +- .../assistant/tools/qhelpconverter/finishpage.cpp | 2 +- tools/assistant/tools/qhelpconverter/finishpage.h | 2 +- .../assistant/tools/qhelpconverter/generalpage.cpp | 2 +- tools/assistant/tools/qhelpconverter/generalpage.h | 2 +- .../assistant/tools/qhelpconverter/helpwindow.cpp | 2 +- tools/assistant/tools/qhelpconverter/helpwindow.h | 2 +- .../tools/qhelpconverter/identifierpage.cpp | 2 +- .../tools/qhelpconverter/identifierpage.h | 2 +- tools/assistant/tools/qhelpconverter/inputpage.cpp | 2 +- tools/assistant/tools/qhelpconverter/inputpage.h | 2 +- tools/assistant/tools/qhelpconverter/main.cpp | 2 +- .../assistant/tools/qhelpconverter/outputpage.cpp | 2 +- tools/assistant/tools/qhelpconverter/outputpage.h | 2 +- tools/assistant/tools/qhelpconverter/pathpage.cpp | 2 +- tools/assistant/tools/qhelpconverter/pathpage.h | 2 +- .../assistant/tools/qhelpconverter/qhcpwriter.cpp | 2 +- tools/assistant/tools/qhelpconverter/qhcpwriter.h | 2 +- tools/assistant/tools/qhelpconverter/qhpwriter.cpp | 2 +- tools/assistant/tools/qhelpconverter/qhpwriter.h | 2 +- tools/assistant/tools/qhelpgenerator/main.cpp | 2 +- .../tools/shared/collectionconfiguration.cpp | 2 +- .../tools/shared/collectionconfiguration.h | 2 +- tools/assistant/tools/shared/helpgenerator.cpp | 2 +- tools/assistant/tools/shared/helpgenerator.h | 2 +- tools/checksdk/cesdkhandler.cpp | 2 +- tools/checksdk/cesdkhandler.h | 2 +- tools/checksdk/main.cpp | 2 +- tools/configure/configure_pch.h | 2 +- tools/configure/configureapp.cpp | 2 +- tools/configure/configureapp.h | 2 +- tools/configure/environment.cpp | 2 +- tools/configure/environment.h | 2 +- tools/configure/main.cpp | 2 +- tools/configure/tools.cpp | 2 +- tools/configure/tools.h | 2 +- tools/designer/data/generate_header.xsl | 2 +- tools/designer/data/generate_impl.xsl | 2 +- .../src/components/buddyeditor/buddyeditor.cpp | 2 +- .../src/components/buddyeditor/buddyeditor.h | 2 +- .../components/buddyeditor/buddyeditor_global.h | 2 +- .../buddyeditor/buddyeditor_instance.cpp | 2 +- .../components/buddyeditor/buddyeditor_plugin.cpp | 2 +- .../components/buddyeditor/buddyeditor_plugin.h | 2 +- .../components/buddyeditor/buddyeditor_tool.cpp | 2 +- .../src/components/buddyeditor/buddyeditor_tool.h | 2 +- .../components/formeditor/brushmanagerproxy.cpp | 2 +- .../src/components/formeditor/brushmanagerproxy.h | 2 +- .../formeditor/default_actionprovider.cpp | 2 +- .../components/formeditor/default_actionprovider.h | 2 +- .../components/formeditor/default_container.cpp | 2 +- .../src/components/formeditor/default_container.h | 2 +- .../formeditor/default_layoutdecoration.cpp | 2 +- .../formeditor/default_layoutdecoration.h | 2 +- .../components/formeditor/deviceprofiledialog.cpp | 2 +- .../components/formeditor/deviceprofiledialog.h | 2 +- .../src/components/formeditor/dpi_chooser.cpp | 2 +- .../src/components/formeditor/dpi_chooser.h | 2 +- .../components/formeditor/embeddedoptionspage.cpp | 2 +- .../components/formeditor/embeddedoptionspage.h | 2 +- .../src/components/formeditor/formeditor.cpp | 2 +- .../src/components/formeditor/formeditor.h | 2 +- .../src/components/formeditor/formeditor_global.h | 2 +- .../formeditor/formeditor_optionspage.cpp | 2 +- .../components/formeditor/formeditor_optionspage.h | 2 +- .../src/components/formeditor/formwindow.cpp | 2 +- .../src/components/formeditor/formwindow.h | 2 +- .../components/formeditor/formwindow_dnditem.cpp | 2 +- .../src/components/formeditor/formwindow_dnditem.h | 2 +- .../formeditor/formwindow_widgetstack.cpp | 2 +- .../components/formeditor/formwindow_widgetstack.h | 2 +- .../src/components/formeditor/formwindowcursor.cpp | 2 +- .../src/components/formeditor/formwindowcursor.h | 2 +- .../components/formeditor/formwindowmanager.cpp | 2 +- .../src/components/formeditor/formwindowmanager.h | 2 +- .../components/formeditor/formwindowsettings.cpp | 2 +- .../src/components/formeditor/formwindowsettings.h | 2 +- .../components/formeditor/formwindowsettings.ui | 2 +- .../src/components/formeditor/iconcache.cpp | 2 +- .../designer/src/components/formeditor/iconcache.h | 2 +- .../formeditor/itemview_propertysheet.cpp | 2 +- .../components/formeditor/itemview_propertysheet.h | 2 +- .../components/formeditor/layout_propertysheet.cpp | 2 +- .../components/formeditor/layout_propertysheet.h | 2 +- .../components/formeditor/line_propertysheet.cpp | 2 +- .../src/components/formeditor/line_propertysheet.h | 2 +- .../components/formeditor/previewactiongroup.cpp | 2 +- .../src/components/formeditor/previewactiongroup.h | 2 +- .../components/formeditor/qdesigner_resource.cpp | 2 +- .../src/components/formeditor/qdesigner_resource.h | 2 +- .../components/formeditor/qdesignerundostack.cpp | 2 +- .../src/components/formeditor/qdesignerundostack.h | 2 +- .../formeditor/qlayoutwidget_propertysheet.cpp | 2 +- .../formeditor/qlayoutwidget_propertysheet.h | 2 +- .../formeditor/qmainwindow_container.cpp | 2 +- .../components/formeditor/qmainwindow_container.h | 2 +- .../components/formeditor/qmdiarea_container.cpp | 2 +- .../src/components/formeditor/qmdiarea_container.h | 2 +- .../src/components/formeditor/qtbrushmanager.cpp | 2 +- .../src/components/formeditor/qtbrushmanager.h | 2 +- .../components/formeditor/qwizard_container.cpp | 2 +- .../src/components/formeditor/qwizard_container.h | 2 +- .../components/formeditor/qworkspace_container.cpp | 2 +- .../components/formeditor/qworkspace_container.h | 2 +- .../components/formeditor/spacer_propertysheet.cpp | 2 +- .../components/formeditor/spacer_propertysheet.h | 2 +- .../components/formeditor/templateoptionspage.cpp | 2 +- .../components/formeditor/templateoptionspage.h | 2 +- .../components/formeditor/tool_widgeteditor.cpp | 2 +- .../src/components/formeditor/tool_widgeteditor.h | 2 +- .../src/components/formeditor/widgetselection.cpp | 2 +- .../src/components/formeditor/widgetselection.h | 2 +- tools/designer/src/components/lib/lib_pch.h | 2 +- .../src/components/lib/qdesigner_components.cpp | 2 +- .../components/objectinspector/objectinspector.cpp | 2 +- .../components/objectinspector/objectinspector.h | 2 +- .../objectinspector/objectinspector_global.h | 2 +- .../objectinspector/objectinspectormodel.cpp | 2 +- .../objectinspector/objectinspectormodel_p.h | 2 +- .../propertyeditor/brushpropertymanager.cpp | 2 +- .../propertyeditor/brushpropertymanager.h | 2 +- .../propertyeditor/designerpropertymanager.cpp | 2 +- .../propertyeditor/designerpropertymanager.h | 2 +- .../src/components/propertyeditor/fontmapping.xml | 2 +- .../propertyeditor/fontpropertymanager.cpp | 2 +- .../propertyeditor/fontpropertymanager.h | 2 +- .../propertyeditor/newdynamicpropertydialog.cpp | 2 +- .../propertyeditor/newdynamicpropertydialog.h | 2 +- .../components/propertyeditor/paletteeditor.cpp | 2 +- .../src/components/propertyeditor/paletteeditor.h | 2 +- .../src/components/propertyeditor/paletteeditor.ui | 2 +- .../propertyeditor/paletteeditorbutton.cpp | 2 +- .../propertyeditor/paletteeditorbutton.h | 2 +- .../src/components/propertyeditor/previewframe.cpp | 2 +- .../src/components/propertyeditor/previewframe.h | 2 +- .../components/propertyeditor/previewwidget.cpp | 2 +- .../src/components/propertyeditor/previewwidget.h | 2 +- .../src/components/propertyeditor/previewwidget.ui | 2 +- .../components/propertyeditor/propertyeditor.cpp | 2 +- .../src/components/propertyeditor/propertyeditor.h | 2 +- .../propertyeditor/propertyeditor_global.h | 2 +- .../propertyeditor/qlonglongvalidator.cpp | 2 +- .../components/propertyeditor/qlonglongvalidator.h | 2 +- .../components/propertyeditor/stringlisteditor.cpp | 2 +- .../components/propertyeditor/stringlisteditor.h | 2 +- .../components/propertyeditor/stringlisteditor.ui | 2 +- .../propertyeditor/stringlisteditorbutton.cpp | 2 +- .../propertyeditor/stringlisteditorbutton.h | 2 +- .../components/signalsloteditor/connectdialog.cpp | 2 +- .../components/signalsloteditor/connectdialog_p.h | 2 +- .../signalsloteditor/signalslot_utils.cpp | 2 +- .../signalsloteditor/signalslot_utils_p.h | 2 +- .../signalsloteditor/signalsloteditor.cpp | 2 +- .../components/signalsloteditor/signalsloteditor.h | 2 +- .../signalsloteditor/signalsloteditor_global.h | 2 +- .../signalsloteditor/signalsloteditor_instance.cpp | 2 +- .../signalsloteditor/signalsloteditor_p.h | 2 +- .../signalsloteditor/signalsloteditor_plugin.cpp | 2 +- .../signalsloteditor/signalsloteditor_plugin.h | 2 +- .../signalsloteditor/signalsloteditor_tool.cpp | 2 +- .../signalsloteditor/signalsloteditor_tool.h | 2 +- .../signalsloteditor/signalsloteditorwindow.cpp | 2 +- .../signalsloteditor/signalsloteditorwindow.h | 2 +- .../components/tabordereditor/tabordereditor.cpp | 2 +- .../src/components/tabordereditor/tabordereditor.h | 2 +- .../tabordereditor/tabordereditor_global.h | 2 +- .../tabordereditor/tabordereditor_instance.cpp | 2 +- .../tabordereditor/tabordereditor_plugin.cpp | 2 +- .../tabordereditor/tabordereditor_plugin.h | 2 +- .../tabordereditor/tabordereditor_tool.cpp | 2 +- .../tabordereditor/tabordereditor_tool.h | 2 +- .../src/components/taskmenu/button_taskmenu.cpp | 2 +- .../src/components/taskmenu/button_taskmenu.h | 2 +- .../src/components/taskmenu/combobox_taskmenu.cpp | 2 +- .../src/components/taskmenu/combobox_taskmenu.h | 2 +- .../taskmenu/containerwidget_taskmenu.cpp | 2 +- .../components/taskmenu/containerwidget_taskmenu.h | 2 +- .../src/components/taskmenu/groupbox_taskmenu.cpp | 2 +- .../src/components/taskmenu/groupbox_taskmenu.h | 2 +- .../src/components/taskmenu/inplace_editor.cpp | 2 +- .../src/components/taskmenu/inplace_editor.h | 2 +- .../components/taskmenu/inplace_widget_helper.cpp | 2 +- .../components/taskmenu/inplace_widget_helper.h | 2 +- .../src/components/taskmenu/itemlisteditor.cpp | 2 +- .../src/components/taskmenu/itemlisteditor.h | 2 +- .../src/components/taskmenu/itemlisteditor.ui | 2 +- .../src/components/taskmenu/label_taskmenu.cpp | 2 +- .../src/components/taskmenu/label_taskmenu.h | 2 +- .../src/components/taskmenu/layouttaskmenu.cpp | 2 +- .../src/components/taskmenu/layouttaskmenu.h | 2 +- .../src/components/taskmenu/lineedit_taskmenu.cpp | 2 +- .../src/components/taskmenu/lineedit_taskmenu.h | 2 +- .../components/taskmenu/listwidget_taskmenu.cpp | 2 +- .../src/components/taskmenu/listwidget_taskmenu.h | 2 +- .../src/components/taskmenu/listwidgeteditor.cpp | 2 +- .../src/components/taskmenu/listwidgeteditor.h | 2 +- .../src/components/taskmenu/menutaskmenu.cpp | 2 +- .../src/components/taskmenu/menutaskmenu.h | 2 +- .../components/taskmenu/tablewidget_taskmenu.cpp | 2 +- .../src/components/taskmenu/tablewidget_taskmenu.h | 2 +- .../src/components/taskmenu/tablewidgeteditor.cpp | 2 +- .../src/components/taskmenu/tablewidgeteditor.h | 2 +- .../src/components/taskmenu/tablewidgeteditor.ui | 2 +- .../src/components/taskmenu/taskmenu_component.cpp | 2 +- .../src/components/taskmenu/taskmenu_component.h | 2 +- .../src/components/taskmenu/taskmenu_global.h | 2 +- .../src/components/taskmenu/textedit_taskmenu.cpp | 2 +- .../src/components/taskmenu/textedit_taskmenu.h | 2 +- .../src/components/taskmenu/toolbar_taskmenu.cpp | 2 +- .../src/components/taskmenu/toolbar_taskmenu.h | 2 +- .../components/taskmenu/treewidget_taskmenu.cpp | 2 +- .../src/components/taskmenu/treewidget_taskmenu.h | 2 +- .../src/components/taskmenu/treewidgeteditor.cpp | 2 +- .../src/components/taskmenu/treewidgeteditor.h | 2 +- .../src/components/taskmenu/treewidgeteditor.ui | 2 +- .../src/components/widgetbox/widgetbox.cpp | 2 +- .../designer/src/components/widgetbox/widgetbox.h | 2 +- .../src/components/widgetbox/widgetbox.xml | 2 +- .../src/components/widgetbox/widgetbox_dnditem.cpp | 2 +- .../src/components/widgetbox/widgetbox_dnditem.h | 2 +- .../src/components/widgetbox/widgetbox_global.h | 2 +- .../widgetbox/widgetboxcategorylistview.cpp | 2 +- .../widgetbox/widgetboxcategorylistview.h | 2 +- .../components/widgetbox/widgetboxtreewidget.cpp | 2 +- .../src/components/widgetbox/widgetboxtreewidget.h | 2 +- tools/designer/src/designer/appfontdialog.cpp | 2 +- tools/designer/src/designer/appfontdialog.h | 2 +- tools/designer/src/designer/assistantclient.cpp | 2 +- tools/designer/src/designer/assistantclient.h | 2 +- tools/designer/src/designer/designer.rc | 2 +- tools/designer/src/designer/designer_enums.h | 2 +- tools/designer/src/designer/main.cpp | 2 +- tools/designer/src/designer/mainwindow.cpp | 2 +- tools/designer/src/designer/mainwindow.h | 2 +- tools/designer/src/designer/newform.cpp | 2 +- tools/designer/src/designer/newform.h | 2 +- tools/designer/src/designer/preferencesdialog.cpp | 2 +- tools/designer/src/designer/preferencesdialog.h | 2 +- tools/designer/src/designer/qdesigner.cpp | 2 +- tools/designer/src/designer/qdesigner.h | 2 +- tools/designer/src/designer/qdesigner_actions.cpp | 2 +- tools/designer/src/designer/qdesigner_actions.h | 2 +- .../src/designer/qdesigner_appearanceoptions.cpp | 2 +- .../src/designer/qdesigner_appearanceoptions.h | 2 +- .../designer/src/designer/qdesigner_formwindow.cpp | 2 +- tools/designer/src/designer/qdesigner_formwindow.h | 2 +- tools/designer/src/designer/qdesigner_pch.h | 2 +- tools/designer/src/designer/qdesigner_server.cpp | 2 +- tools/designer/src/designer/qdesigner_server.h | 2 +- tools/designer/src/designer/qdesigner_settings.cpp | 2 +- tools/designer/src/designer/qdesigner_settings.h | 2 +- .../designer/src/designer/qdesigner_toolwindow.cpp | 2 +- tools/designer/src/designer/qdesigner_toolwindow.h | 2 +- .../designer/src/designer/qdesigner_workbench.cpp | 2 +- tools/designer/src/designer/qdesigner_workbench.h | 2 +- tools/designer/src/designer/saveformastemplate.cpp | 2 +- tools/designer/src/designer/saveformastemplate.h | 2 +- tools/designer/src/designer/saveformastemplate.ui | 2 +- tools/designer/src/designer/versiondialog.cpp | 4 ++-- tools/designer/src/designer/versiondialog.h | 2 +- .../src/lib/components/qdesigner_components.h | 2 +- .../lib/components/qdesigner_components_global.h | 2 +- .../src/lib/extension/default_extensionfactory.cpp | 2 +- .../src/lib/extension/default_extensionfactory.h | 2 +- tools/designer/src/lib/extension/extension.cpp | 2 +- tools/designer/src/lib/extension/extension.h | 2 +- .../designer/src/lib/extension/extension_global.h | 2 +- .../src/lib/extension/qextensionmanager.cpp | 2 +- .../designer/src/lib/extension/qextensionmanager.h | 2 +- tools/designer/src/lib/lib_pch.h | 2 +- .../designer/src/lib/sdk/abstractactioneditor.cpp | 2 +- tools/designer/src/lib/sdk/abstractactioneditor.h | 2 +- tools/designer/src/lib/sdk/abstractbrushmanager.h | 2 +- tools/designer/src/lib/sdk/abstractdialoggui.cpp | 2 +- tools/designer/src/lib/sdk/abstractdialoggui_p.h | 2 +- tools/designer/src/lib/sdk/abstractdnditem.h | 2 +- tools/designer/src/lib/sdk/abstractdnditem.qdoc | 2 +- tools/designer/src/lib/sdk/abstractformeditor.cpp | 2 +- tools/designer/src/lib/sdk/abstractformeditor.h | 2 +- .../src/lib/sdk/abstractformeditorplugin.cpp | 2 +- .../src/lib/sdk/abstractformeditorplugin.h | 2 +- tools/designer/src/lib/sdk/abstractformwindow.cpp | 2 +- tools/designer/src/lib/sdk/abstractformwindow.h | 2 +- .../src/lib/sdk/abstractformwindowcursor.cpp | 2 +- .../src/lib/sdk/abstractformwindowcursor.h | 2 +- .../src/lib/sdk/abstractformwindowmanager.cpp | 2 +- .../src/lib/sdk/abstractformwindowmanager.h | 2 +- .../src/lib/sdk/abstractformwindowtool.cpp | 2 +- .../designer/src/lib/sdk/abstractformwindowtool.h | 2 +- tools/designer/src/lib/sdk/abstracticoncache.h | 2 +- tools/designer/src/lib/sdk/abstracticoncache.qdoc | 2 +- tools/designer/src/lib/sdk/abstractintegration.cpp | 2 +- tools/designer/src/lib/sdk/abstractintegration.h | 2 +- .../designer/src/lib/sdk/abstractintrospection.cpp | 2 +- .../designer/src/lib/sdk/abstractintrospection_p.h | 2 +- tools/designer/src/lib/sdk/abstractlanguage.h | 2 +- .../designer/src/lib/sdk/abstractmetadatabase.cpp | 2 +- tools/designer/src/lib/sdk/abstractmetadatabase.h | 2 +- .../designer/src/lib/sdk/abstractnewformwidget.cpp | 2 +- .../designer/src/lib/sdk/abstractnewformwidget_p.h | 2 +- .../src/lib/sdk/abstractobjectinspector.cpp | 2 +- .../designer/src/lib/sdk/abstractobjectinspector.h | 2 +- tools/designer/src/lib/sdk/abstractoptionspage_p.h | 2 +- .../src/lib/sdk/abstractpromotioninterface.cpp | 2 +- .../src/lib/sdk/abstractpromotioninterface.h | 2 +- .../src/lib/sdk/abstractpropertyeditor.cpp | 2 +- .../designer/src/lib/sdk/abstractpropertyeditor.h | 2 +- .../src/lib/sdk/abstractresourcebrowser.cpp | 2 +- .../designer/src/lib/sdk/abstractresourcebrowser.h | 2 +- tools/designer/src/lib/sdk/abstractsettings_p.h | 2 +- tools/designer/src/lib/sdk/abstractwidgetbox.cpp | 2 +- tools/designer/src/lib/sdk/abstractwidgetbox.h | 2 +- .../src/lib/sdk/abstractwidgetdatabase.cpp | 2 +- .../designer/src/lib/sdk/abstractwidgetdatabase.h | 2 +- .../designer/src/lib/sdk/abstractwidgetfactory.cpp | 2 +- tools/designer/src/lib/sdk/abstractwidgetfactory.h | 2 +- tools/designer/src/lib/sdk/dynamicpropertysheet.h | 2 +- .../designer/src/lib/sdk/dynamicpropertysheet.qdoc | 2 +- tools/designer/src/lib/sdk/extrainfo.cpp | 2 +- tools/designer/src/lib/sdk/extrainfo.h | 2 +- tools/designer/src/lib/sdk/layoutdecoration.h | 2 +- tools/designer/src/lib/sdk/layoutdecoration.qdoc | 2 +- tools/designer/src/lib/sdk/membersheet.h | 2 +- tools/designer/src/lib/sdk/membersheet.qdoc | 2 +- tools/designer/src/lib/sdk/propertysheet.h | 2 +- tools/designer/src/lib/sdk/propertysheet.qdoc | 2 +- tools/designer/src/lib/sdk/script.cpp | 2 +- tools/designer/src/lib/sdk/script_p.h | 2 +- tools/designer/src/lib/sdk/sdk_global.h | 2 +- tools/designer/src/lib/sdk/taskmenu.h | 2 +- tools/designer/src/lib/sdk/taskmenu.qdoc | 2 +- tools/designer/src/lib/shared/actioneditor.cpp | 2 +- tools/designer/src/lib/shared/actioneditor_p.h | 2 +- tools/designer/src/lib/shared/actionprovider_p.h | 2 +- tools/designer/src/lib/shared/actionrepository.cpp | 2 +- tools/designer/src/lib/shared/actionrepository_p.h | 2 +- tools/designer/src/lib/shared/codedialog.cpp | 2 +- tools/designer/src/lib/shared/codedialog_p.h | 2 +- tools/designer/src/lib/shared/connectionedit.cpp | 2 +- tools/designer/src/lib/shared/connectionedit_p.h | 2 +- tools/designer/src/lib/shared/csshighlighter.cpp | 2 +- tools/designer/src/lib/shared/csshighlighter_p.h | 2 +- tools/designer/src/lib/shared/deviceprofile.cpp | 2 +- tools/designer/src/lib/shared/deviceprofile_p.h | 2 +- tools/designer/src/lib/shared/dialoggui.cpp | 2 +- tools/designer/src/lib/shared/dialoggui_p.h | 2 +- tools/designer/src/lib/shared/extensionfactory_p.h | 2 +- tools/designer/src/lib/shared/filterwidget.cpp | 2 +- tools/designer/src/lib/shared/filterwidget_p.h | 2 +- tools/designer/src/lib/shared/formlayoutmenu.cpp | 2 +- tools/designer/src/lib/shared/formlayoutmenu_p.h | 2 +- tools/designer/src/lib/shared/formwindowbase.cpp | 2 +- tools/designer/src/lib/shared/formwindowbase_p.h | 2 +- tools/designer/src/lib/shared/grid.cpp | 2 +- tools/designer/src/lib/shared/grid_p.h | 2 +- tools/designer/src/lib/shared/gridpanel.cpp | 2 +- tools/designer/src/lib/shared/gridpanel_p.h | 2 +- tools/designer/src/lib/shared/htmlhighlighter.cpp | 2 +- tools/designer/src/lib/shared/htmlhighlighter_p.h | 2 +- tools/designer/src/lib/shared/iconloader.cpp | 2 +- tools/designer/src/lib/shared/iconloader_p.h | 2 +- tools/designer/src/lib/shared/iconselector.cpp | 2 +- tools/designer/src/lib/shared/iconselector_p.h | 2 +- tools/designer/src/lib/shared/invisible_widget.cpp | 2 +- tools/designer/src/lib/shared/invisible_widget_p.h | 2 +- tools/designer/src/lib/shared/layout.cpp | 2 +- tools/designer/src/lib/shared/layout_p.h | 2 +- tools/designer/src/lib/shared/layoutinfo.cpp | 2 +- tools/designer/src/lib/shared/layoutinfo_p.h | 2 +- tools/designer/src/lib/shared/metadatabase.cpp | 2 +- tools/designer/src/lib/shared/metadatabase_p.h | 2 +- tools/designer/src/lib/shared/morphmenu.cpp | 2 +- tools/designer/src/lib/shared/morphmenu_p.h | 2 +- tools/designer/src/lib/shared/newactiondialog.cpp | 2 +- tools/designer/src/lib/shared/newactiondialog.ui | 2 +- tools/designer/src/lib/shared/newactiondialog_p.h | 2 +- tools/designer/src/lib/shared/newformwidget.cpp | 2 +- tools/designer/src/lib/shared/newformwidget.ui | 2 +- tools/designer/src/lib/shared/newformwidget_p.h | 2 +- tools/designer/src/lib/shared/orderdialog.cpp | 2 +- tools/designer/src/lib/shared/orderdialog.ui | 2 +- tools/designer/src/lib/shared/orderdialog_p.h | 2 +- tools/designer/src/lib/shared/plaintexteditor.cpp | 2 +- tools/designer/src/lib/shared/plaintexteditor_p.h | 2 +- tools/designer/src/lib/shared/plugindialog.cpp | 2 +- tools/designer/src/lib/shared/plugindialog.ui | 2 +- tools/designer/src/lib/shared/plugindialog_p.h | 2 +- tools/designer/src/lib/shared/pluginmanager.cpp | 2 +- tools/designer/src/lib/shared/pluginmanager_p.h | 2 +- .../src/lib/shared/previewconfigurationwidget.cpp | 2 +- .../src/lib/shared/previewconfigurationwidget_p.h | 2 +- tools/designer/src/lib/shared/previewmanager.cpp | 2 +- tools/designer/src/lib/shared/previewmanager_p.h | 2 +- tools/designer/src/lib/shared/promotionmodel.cpp | 2 +- tools/designer/src/lib/shared/promotionmodel_p.h | 2 +- .../designer/src/lib/shared/promotiontaskmenu.cpp | 2 +- .../designer/src/lib/shared/promotiontaskmenu_p.h | 2 +- tools/designer/src/lib/shared/propertylineedit.cpp | 2 +- tools/designer/src/lib/shared/propertylineedit_p.h | 2 +- .../designer/src/lib/shared/qdesigner_command.cpp | 2 +- .../designer/src/lib/shared/qdesigner_command2.cpp | 2 +- .../designer/src/lib/shared/qdesigner_command2_p.h | 2 +- .../designer/src/lib/shared/qdesigner_command_p.h | 2 +- .../designer/src/lib/shared/qdesigner_dnditem.cpp | 2 +- .../designer/src/lib/shared/qdesigner_dnditem_p.h | 2 +- .../src/lib/shared/qdesigner_dockwidget.cpp | 2 +- .../src/lib/shared/qdesigner_dockwidget_p.h | 2 +- .../src/lib/shared/qdesigner_formbuilder.cpp | 2 +- .../src/lib/shared/qdesigner_formbuilder_p.h | 2 +- .../src/lib/shared/qdesigner_formeditorcommand.cpp | 2 +- .../src/lib/shared/qdesigner_formeditorcommand_p.h | 2 +- .../src/lib/shared/qdesigner_formwindowcommand.cpp | 2 +- .../src/lib/shared/qdesigner_formwindowcommand_p.h | 2 +- .../src/lib/shared/qdesigner_formwindowmanager.cpp | 2 +- .../src/lib/shared/qdesigner_formwindowmanager_p.h | 2 +- .../src/lib/shared/qdesigner_integration.cpp | 2 +- .../src/lib/shared/qdesigner_integration_p.h | 2 +- .../src/lib/shared/qdesigner_introspection.cpp | 2 +- .../src/lib/shared/qdesigner_introspection_p.h | 2 +- .../src/lib/shared/qdesigner_membersheet.cpp | 2 +- .../src/lib/shared/qdesigner_membersheet_p.h | 2 +- tools/designer/src/lib/shared/qdesigner_menu.cpp | 2 +- tools/designer/src/lib/shared/qdesigner_menu_p.h | 2 +- .../designer/src/lib/shared/qdesigner_menubar.cpp | 2 +- .../designer/src/lib/shared/qdesigner_menubar_p.h | 2 +- .../src/lib/shared/qdesigner_objectinspector.cpp | 2 +- .../src/lib/shared/qdesigner_objectinspector_p.h | 2 +- .../src/lib/shared/qdesigner_promotion.cpp | 2 +- .../src/lib/shared/qdesigner_promotion_p.h | 2 +- .../src/lib/shared/qdesigner_promotiondialog.cpp | 2 +- .../src/lib/shared/qdesigner_promotiondialog_p.h | 2 +- .../src/lib/shared/qdesigner_propertycommand.cpp | 2 +- .../src/lib/shared/qdesigner_propertycommand_p.h | 2 +- .../src/lib/shared/qdesigner_propertyeditor.cpp | 2 +- .../src/lib/shared/qdesigner_propertyeditor_p.h | 2 +- .../src/lib/shared/qdesigner_propertysheet.cpp | 2 +- .../src/lib/shared/qdesigner_propertysheet_p.h | 2 +- .../src/lib/shared/qdesigner_qsettings.cpp | 2 +- .../src/lib/shared/qdesigner_qsettings_p.h | 2 +- .../src/lib/shared/qdesigner_stackedbox.cpp | 2 +- .../src/lib/shared/qdesigner_stackedbox_p.h | 2 +- .../src/lib/shared/qdesigner_tabwidget.cpp | 2 +- .../src/lib/shared/qdesigner_tabwidget_p.h | 2 +- .../designer/src/lib/shared/qdesigner_taskmenu.cpp | 2 +- .../designer/src/lib/shared/qdesigner_taskmenu_p.h | 2 +- .../designer/src/lib/shared/qdesigner_toolbar.cpp | 2 +- .../designer/src/lib/shared/qdesigner_toolbar_p.h | 2 +- .../designer/src/lib/shared/qdesigner_toolbox.cpp | 2 +- .../designer/src/lib/shared/qdesigner_toolbox_p.h | 2 +- tools/designer/src/lib/shared/qdesigner_utils.cpp | 2 +- tools/designer/src/lib/shared/qdesigner_utils_p.h | 2 +- tools/designer/src/lib/shared/qdesigner_widget.cpp | 2 +- tools/designer/src/lib/shared/qdesigner_widget_p.h | 2 +- .../src/lib/shared/qdesigner_widgetbox.cpp | 2 +- .../src/lib/shared/qdesigner_widgetbox_p.h | 2 +- .../src/lib/shared/qdesigner_widgetitem.cpp | 2 +- .../src/lib/shared/qdesigner_widgetitem_p.h | 2 +- tools/designer/src/lib/shared/qlayout_widget.cpp | 2 +- tools/designer/src/lib/shared/qlayout_widget_p.h | 2 +- .../designer/src/lib/shared/qscripthighlighter.cpp | 2 +- .../designer/src/lib/shared/qscripthighlighter_p.h | 2 +- tools/designer/src/lib/shared/qsimpleresource.cpp | 2 +- tools/designer/src/lib/shared/qsimpleresource_p.h | 2 +- .../src/lib/shared/qtresourceeditordialog.cpp | 2 +- .../src/lib/shared/qtresourceeditordialog_p.h | 2 +- tools/designer/src/lib/shared/qtresourcemodel.cpp | 2 +- tools/designer/src/lib/shared/qtresourcemodel_p.h | 2 +- tools/designer/src/lib/shared/qtresourceview.cpp | 2 +- tools/designer/src/lib/shared/qtresourceview_p.h | 2 +- tools/designer/src/lib/shared/richtexteditor.cpp | 2 +- tools/designer/src/lib/shared/richtexteditor_p.h | 2 +- tools/designer/src/lib/shared/scriptcommand.cpp | 2 +- tools/designer/src/lib/shared/scriptcommand_p.h | 2 +- tools/designer/src/lib/shared/scriptdialog.cpp | 2 +- tools/designer/src/lib/shared/scriptdialog_p.h | 2 +- .../designer/src/lib/shared/scripterrordialog.cpp | 2 +- .../designer/src/lib/shared/scripterrordialog_p.h | 2 +- tools/designer/src/lib/shared/shared_enums_p.h | 2 +- tools/designer/src/lib/shared/shared_global_p.h | 2 +- tools/designer/src/lib/shared/shared_settings.cpp | 2 +- tools/designer/src/lib/shared/shared_settings_p.h | 2 +- tools/designer/src/lib/shared/sheet_delegate.cpp | 2 +- tools/designer/src/lib/shared/sheet_delegate_p.h | 2 +- tools/designer/src/lib/shared/signalslotdialog.cpp | 2 +- tools/designer/src/lib/shared/signalslotdialog_p.h | 2 +- tools/designer/src/lib/shared/spacer_widget.cpp | 2 +- tools/designer/src/lib/shared/spacer_widget_p.h | 2 +- tools/designer/src/lib/shared/stylesheeteditor.cpp | 2 +- tools/designer/src/lib/shared/stylesheeteditor_p.h | 2 +- .../designer/src/lib/shared/textpropertyeditor.cpp | 2 +- .../designer/src/lib/shared/textpropertyeditor_p.h | 2 +- tools/designer/src/lib/shared/widgetdatabase.cpp | 2 +- tools/designer/src/lib/shared/widgetdatabase_p.h | 2 +- tools/designer/src/lib/shared/widgetfactory.cpp | 2 +- tools/designer/src/lib/shared/widgetfactory_p.h | 2 +- tools/designer/src/lib/shared/zoomwidget.cpp | 2 +- tools/designer/src/lib/shared/zoomwidget_p.h | 2 +- .../designer/src/lib/uilib/abstractformbuilder.cpp | 2 +- tools/designer/src/lib/uilib/abstractformbuilder.h | 2 +- tools/designer/src/lib/uilib/container.h | 2 +- tools/designer/src/lib/uilib/container.qdoc | 2 +- tools/designer/src/lib/uilib/customwidget.h | 2 +- tools/designer/src/lib/uilib/customwidget.qdoc | 2 +- tools/designer/src/lib/uilib/formbuilder.cpp | 2 +- tools/designer/src/lib/uilib/formbuilder.h | 2 +- tools/designer/src/lib/uilib/formbuilderextra.cpp | 2 +- tools/designer/src/lib/uilib/formbuilderextra_p.h | 2 +- tools/designer/src/lib/uilib/formscriptrunner.cpp | 2 +- tools/designer/src/lib/uilib/formscriptrunner_p.h | 2 +- tools/designer/src/lib/uilib/properties.cpp | 2 +- tools/designer/src/lib/uilib/properties_p.h | 2 +- .../designer/src/lib/uilib/qdesignerexportwidget.h | 2 +- tools/designer/src/lib/uilib/resourcebuilder.cpp | 2 +- tools/designer/src/lib/uilib/resourcebuilder_p.h | 2 +- tools/designer/src/lib/uilib/textbuilder.cpp | 2 +- tools/designer/src/lib/uilib/textbuilder_p.h | 2 +- tools/designer/src/lib/uilib/ui4.cpp | 2 +- tools/designer/src/lib/uilib/ui4_p.h | 2 +- tools/designer/src/lib/uilib/uilib_global.h | 2 +- .../src/plugins/activeqt/qaxwidgetextrainfo.cpp | 2 +- .../src/plugins/activeqt/qaxwidgetextrainfo.h | 2 +- .../src/plugins/activeqt/qaxwidgetplugin.cpp | 2 +- .../src/plugins/activeqt/qaxwidgetplugin.h | 2 +- .../plugins/activeqt/qaxwidgetpropertysheet.cpp | 2 +- .../src/plugins/activeqt/qaxwidgetpropertysheet.h | 2 +- .../src/plugins/activeqt/qaxwidgettaskmenu.cpp | 2 +- .../src/plugins/activeqt/qaxwidgettaskmenu.h | 2 +- .../src/plugins/activeqt/qdesigneraxwidget.cpp | 2 +- .../src/plugins/activeqt/qdesigneraxwidget.h | 2 +- .../src/plugins/phononwidgets/phononcollection.cpp | 2 +- .../src/plugins/phononwidgets/seeksliderplugin.cpp | 2 +- .../src/plugins/phononwidgets/seeksliderplugin.h | 2 +- .../plugins/phononwidgets/videoplayerplugin.cpp | 2 +- .../src/plugins/phononwidgets/videoplayerplugin.h | 2 +- .../plugins/phononwidgets/videoplayertaskmenu.cpp | 2 +- .../plugins/phononwidgets/videoplayertaskmenu.h | 2 +- .../plugins/phononwidgets/volumesliderplugin.cpp | 2 +- .../src/plugins/phononwidgets/volumesliderplugin.h | 2 +- .../qdeclarativeview/qdeclarativeview_plugin.cpp | 2 +- .../qdeclarativeview/qdeclarativeview_plugin.h | 2 +- .../src/plugins/qwebview/qwebview_plugin.cpp | 2 +- .../src/plugins/qwebview/qwebview_plugin.h | 2 +- tools/designer/src/plugins/tools/view3d/view3d.cpp | 2 +- tools/designer/src/plugins/tools/view3d/view3d.h | 2 +- .../src/plugins/tools/view3d/view3d_global.h | 2 +- .../src/plugins/tools/view3d/view3d_plugin.cpp | 2 +- .../src/plugins/tools/view3d/view3d_plugin.h | 2 +- .../src/plugins/tools/view3d/view3d_tool.cpp | 2 +- .../src/plugins/tools/view3d/view3d_tool.h | 2 +- .../widgets/q3iconview/q3iconview_extrainfo.cpp | 2 +- .../widgets/q3iconview/q3iconview_extrainfo.h | 2 +- .../widgets/q3iconview/q3iconview_plugin.cpp | 2 +- .../plugins/widgets/q3iconview/q3iconview_plugin.h | 2 +- .../widgets/q3listbox/q3listbox_extrainfo.cpp | 2 +- .../widgets/q3listbox/q3listbox_extrainfo.h | 2 +- .../plugins/widgets/q3listbox/q3listbox_plugin.cpp | 2 +- .../plugins/widgets/q3listbox/q3listbox_plugin.h | 2 +- .../widgets/q3listview/q3listview_extrainfo.cpp | 2 +- .../widgets/q3listview/q3listview_extrainfo.h | 2 +- .../widgets/q3listview/q3listview_plugin.cpp | 2 +- .../plugins/widgets/q3listview/q3listview_plugin.h | 2 +- .../q3mainwindow/q3mainwindow_container.cpp | 2 +- .../widgets/q3mainwindow/q3mainwindow_container.h | 2 +- .../widgets/q3mainwindow/q3mainwindow_plugin.cpp | 2 +- .../widgets/q3mainwindow/q3mainwindow_plugin.h | 2 +- .../plugins/widgets/q3table/q3table_extrainfo.cpp | 2 +- .../plugins/widgets/q3table/q3table_extrainfo.h | 2 +- .../src/plugins/widgets/q3table/q3table_plugin.cpp | 2 +- .../src/plugins/widgets/q3table/q3table_plugin.h | 2 +- .../widgets/q3textedit/q3textedit_extrainfo.cpp | 2 +- .../widgets/q3textedit/q3textedit_extrainfo.h | 2 +- .../widgets/q3textedit/q3textedit_plugin.cpp | 2 +- .../plugins/widgets/q3textedit/q3textedit_plugin.h | 2 +- .../widgets/q3toolbar/q3toolbar_extrainfo.cpp | 2 +- .../widgets/q3toolbar/q3toolbar_extrainfo.h | 2 +- .../plugins/widgets/q3toolbar/q3toolbar_plugin.cpp | 2 +- .../plugins/widgets/q3toolbar/q3toolbar_plugin.h | 2 +- .../plugins/widgets/q3widgets/q3widget_plugins.cpp | 2 +- .../plugins/widgets/q3widgets/q3widget_plugins.h | 2 +- .../q3widgetstack/q3widgetstack_container.cpp | 2 +- .../q3widgetstack/q3widgetstack_container.h | 2 +- .../widgets/q3widgetstack/q3widgetstack_plugin.cpp | 2 +- .../widgets/q3widgetstack/q3widgetstack_plugin.h | 2 +- .../q3widgetstack/qdesigner_q3widgetstack.cpp | 2 +- .../q3widgetstack/qdesigner_q3widgetstack_p.h | 2 +- .../widgets/q3wizard/q3wizard_container.cpp | 2 +- .../plugins/widgets/q3wizard/q3wizard_container.h | 2 +- .../plugins/widgets/q3wizard/q3wizard_plugin.cpp | 2 +- .../src/plugins/widgets/q3wizard/q3wizard_plugin.h | 2 +- .../src/plugins/widgets/qt3supportwidgets.cpp | 2 +- tools/designer/src/uitools/quiloader.cpp | 2 +- tools/designer/src/uitools/quiloader.h | 2 +- tools/designer/src/uitools/quiloader_p.h | 2 +- tools/kmap2qmap/main.cpp | 2 +- tools/linguist/lconvert/main.cpp | 2 +- tools/linguist/linguist/batchtranslation.ui | 2 +- tools/linguist/linguist/batchtranslationdialog.cpp | 2 +- tools/linguist/linguist/batchtranslationdialog.h | 2 +- tools/linguist/linguist/errorsview.cpp | 2 +- tools/linguist/linguist/errorsview.h | 2 +- tools/linguist/linguist/finddialog.cpp | 2 +- tools/linguist/linguist/finddialog.h | 2 +- tools/linguist/linguist/finddialog.ui | 2 +- tools/linguist/linguist/formpreviewview.cpp | 2 +- tools/linguist/linguist/formpreviewview.h | 2 +- tools/linguist/linguist/globals.cpp | 2 +- tools/linguist/linguist/globals.h | 2 +- tools/linguist/linguist/linguist.rc | 2 +- tools/linguist/linguist/main.cpp | 2 +- tools/linguist/linguist/mainwindow.cpp | 4 ++-- tools/linguist/linguist/mainwindow.h | 2 +- tools/linguist/linguist/mainwindow.ui | 2 +- tools/linguist/linguist/messageeditor.cpp | 2 +- tools/linguist/linguist/messageeditor.h | 2 +- tools/linguist/linguist/messageeditorwidgets.cpp | 2 +- tools/linguist/linguist/messageeditorwidgets.h | 2 +- tools/linguist/linguist/messagehighlighter.cpp | 2 +- tools/linguist/linguist/messagehighlighter.h | 2 +- tools/linguist/linguist/messagemodel.cpp | 2 +- tools/linguist/linguist/messagemodel.h | 2 +- tools/linguist/linguist/phrase.cpp | 2 +- tools/linguist/linguist/phrase.h | 2 +- tools/linguist/linguist/phrasebookbox.cpp | 2 +- tools/linguist/linguist/phrasebookbox.h | 2 +- tools/linguist/linguist/phrasebookbox.ui | 2 +- tools/linguist/linguist/phrasemodel.cpp | 2 +- tools/linguist/linguist/phrasemodel.h | 2 +- tools/linguist/linguist/phraseview.cpp | 2 +- tools/linguist/linguist/phraseview.h | 2 +- tools/linguist/linguist/printout.cpp | 2 +- tools/linguist/linguist/printout.h | 2 +- tools/linguist/linguist/recentfiles.cpp | 2 +- tools/linguist/linguist/recentfiles.h | 2 +- tools/linguist/linguist/sourcecodeview.cpp | 2 +- tools/linguist/linguist/sourcecodeview.h | 2 +- tools/linguist/linguist/statistics.cpp | 2 +- tools/linguist/linguist/statistics.h | 2 +- tools/linguist/linguist/statistics.ui | 2 +- tools/linguist/linguist/translatedialog.cpp | 2 +- tools/linguist/linguist/translatedialog.h | 2 +- tools/linguist/linguist/translatedialog.ui | 2 +- .../linguist/translationsettingsdialog.cpp | 2 +- .../linguist/linguist/translationsettingsdialog.h | 2 +- tools/linguist/lrelease/lrelease.1 | 2 +- tools/linguist/lrelease/main.cpp | 2 +- tools/linguist/lupdate/cpp.cpp | 2 +- tools/linguist/lupdate/java.cpp | 2 +- tools/linguist/lupdate/lupdate.1 | 2 +- tools/linguist/lupdate/lupdate.h | 2 +- tools/linguist/lupdate/main.cpp | 2 +- tools/linguist/lupdate/merge.cpp | 2 +- tools/linguist/lupdate/qdeclarative.cpp | 2 +- tools/linguist/lupdate/qscript.cpp | 2 +- tools/linguist/lupdate/qscript.g | 2 +- tools/linguist/lupdate/ui.cpp | 2 +- tools/linguist/shared/abstractproitemvisitor.h | 2 +- tools/linguist/shared/numerus.cpp | 2 +- tools/linguist/shared/po.cpp | 2 +- tools/linguist/shared/profileevaluator.cpp | 2 +- tools/linguist/shared/profileevaluator.h | 2 +- tools/linguist/shared/proitems.cpp | 2 +- tools/linguist/shared/proitems.h | 2 +- tools/linguist/shared/proparserutils.h | 2 +- tools/linguist/shared/qm.cpp | 2 +- tools/linguist/shared/qph.cpp | 2 +- tools/linguist/shared/simtexth.cpp | 2 +- tools/linguist/shared/simtexth.h | 2 +- tools/linguist/shared/translator.cpp | 2 +- tools/linguist/shared/translator.h | 2 +- tools/linguist/shared/translatormessage.cpp | 2 +- tools/linguist/shared/translatormessage.h | 2 +- tools/linguist/shared/ts.cpp | 2 +- tools/linguist/shared/xliff.cpp | 2 +- tools/linguist/tests/data/main.cpp | 2 +- tools/linguist/tests/tst_linguist.cpp | 2 +- tools/linguist/tests/tst_linguist.h | 2 +- tools/linguist/tests/tst_lupdate.cpp | 2 +- tools/linguist/tests/tst_simtexth.cpp | 2 +- tools/macdeployqt/macchangeqt/main.cpp | 2 +- tools/macdeployqt/macdeployqt/main.cpp | 2 +- tools/macdeployqt/shared/shared.cpp | 2 +- tools/macdeployqt/shared/shared.h | 2 +- tools/macdeployqt/tests/tst_deployment_mac.cpp | 2 +- tools/makeqpf/main.cpp | 2 +- tools/makeqpf/mainwindow.cpp | 2 +- tools/makeqpf/mainwindow.h | 2 +- tools/makeqpf/qpf2.cpp | 2 +- tools/makeqpf/qpf2.h | 2 +- tools/pixeltool/main.cpp | 2 +- tools/pixeltool/qpixeltool.cpp | 2 +- tools/pixeltool/qpixeltool.h | 2 +- tools/porting/src/ast.cpp | 2 +- tools/porting/src/ast.h | 2 +- tools/porting/src/codemodel.cpp | 2 +- tools/porting/src/codemodel.h | 2 +- tools/porting/src/codemodelattributes.cpp | 2 +- tools/porting/src/codemodelattributes.h | 2 +- tools/porting/src/codemodelwalker.cpp | 2 +- tools/porting/src/codemodelwalker.h | 2 +- tools/porting/src/cpplexer.cpp | 2 +- tools/porting/src/cpplexer.h | 2 +- tools/porting/src/errors.cpp | 2 +- tools/porting/src/errors.h | 2 +- tools/porting/src/fileporter.cpp | 2 +- tools/porting/src/fileporter.h | 2 +- tools/porting/src/filewriter.cpp | 2 +- tools/porting/src/filewriter.h | 2 +- tools/porting/src/list.h | 2 +- tools/porting/src/logger.cpp | 2 +- tools/porting/src/logger.h | 2 +- tools/porting/src/parser.cpp | 2 +- tools/porting/src/parser.h | 2 +- tools/porting/src/port.cpp | 2 +- tools/porting/src/portingrules.cpp | 2 +- tools/porting/src/portingrules.h | 2 +- tools/porting/src/preprocessorcontrol.cpp | 2 +- tools/porting/src/preprocessorcontrol.h | 2 +- tools/porting/src/projectporter.cpp | 2 +- tools/porting/src/projectporter.h | 2 +- tools/porting/src/proparser.cpp | 2 +- tools/porting/src/proparser.h | 2 +- tools/porting/src/q3porting.xml | 2 +- tools/porting/src/qtsimplexml.cpp | 2 +- tools/porting/src/qtsimplexml.h | 2 +- tools/porting/src/replacetoken.cpp | 2 +- tools/porting/src/replacetoken.h | 2 +- tools/porting/src/rpp.cpp | 2 +- tools/porting/src/rpp.h | 2 +- tools/porting/src/rppexpressionbuilder.cpp | 2 +- tools/porting/src/rppexpressionbuilder.h | 2 +- tools/porting/src/rpplexer.cpp | 2 +- tools/porting/src/rpplexer.h | 2 +- tools/porting/src/rpptreeevaluator.cpp | 2 +- tools/porting/src/rpptreeevaluator.h | 2 +- tools/porting/src/rpptreewalker.cpp | 2 +- tools/porting/src/rpptreewalker.h | 2 +- tools/porting/src/semantic.cpp | 2 +- tools/porting/src/semantic.h | 2 +- tools/porting/src/smallobject.cpp | 2 +- tools/porting/src/smallobject.h | 2 +- tools/porting/src/textreplacement.cpp | 2 +- tools/porting/src/textreplacement.h | 2 +- tools/porting/src/tokenengine.cpp | 2 +- tools/porting/src/tokenengine.h | 2 +- tools/porting/src/tokenizer.cpp | 2 +- tools/porting/src/tokenizer.h | 2 +- tools/porting/src/tokenreplacements.cpp | 2 +- tools/porting/src/tokenreplacements.h | 2 +- tools/porting/src/tokens.h | 2 +- tools/porting/src/tokenstreamadapter.h | 2 +- tools/porting/src/translationunit.cpp | 2 +- tools/porting/src/translationunit.h | 2 +- tools/porting/src/treewalker.cpp | 2 +- tools/porting/src/treewalker.h | 2 +- tools/qconfig/feature.cpp | 2 +- tools/qconfig/feature.h | 2 +- tools/qconfig/featuretreemodel.cpp | 2 +- tools/qconfig/featuretreemodel.h | 2 +- tools/qconfig/graphics.h | 2 +- tools/qconfig/main.cpp | 4 ++-- tools/qdbus/qdbus/qdbus.cpp | 2 +- tools/qdbus/qdbuscpp2xml/qdbuscpp2xml.cpp | 4 ++-- tools/qdbus/qdbusviewer/main.cpp | 2 +- tools/qdbus/qdbusviewer/propertydialog.cpp | 2 +- tools/qdbus/qdbusviewer/propertydialog.h | 2 +- tools/qdbus/qdbusviewer/qdbusmodel.cpp | 2 +- tools/qdbus/qdbusviewer/qdbusmodel.h | 2 +- tools/qdbus/qdbusviewer/qdbusviewer.cpp | 4 ++-- tools/qdbus/qdbusviewer/qdbusviewer.h | 2 +- tools/qdbus/qdbusxml2cpp/qdbusxml2cpp.cpp | 4 ++-- tools/qdoc3/apigenerator.cpp | 2 +- tools/qdoc3/apigenerator.h | 2 +- tools/qdoc3/archiveextractor.cpp | 2 +- tools/qdoc3/archiveextractor.h | 2 +- tools/qdoc3/atom.cpp | 2 +- tools/qdoc3/atom.h | 2 +- tools/qdoc3/bookgenerator.cpp | 2 +- tools/qdoc3/bookgenerator.h | 2 +- tools/qdoc3/ccodeparser.cpp | 2 +- tools/qdoc3/ccodeparser.h | 2 +- tools/qdoc3/codechunk.cpp | 2 +- tools/qdoc3/codechunk.h | 2 +- tools/qdoc3/codemarker.cpp | 2 +- tools/qdoc3/codemarker.h | 2 +- tools/qdoc3/codeparser.cpp | 2 +- tools/qdoc3/codeparser.h | 2 +- tools/qdoc3/command.cpp | 2 +- tools/qdoc3/command.h | 2 +- tools/qdoc3/config.cpp | 2 +- tools/qdoc3/config.h | 2 +- tools/qdoc3/cppcodemarker.cpp | 2 +- tools/qdoc3/cppcodemarker.h | 2 +- tools/qdoc3/cppcodeparser.cpp | 2 +- tools/qdoc3/cppcodeparser.h | 2 +- tools/qdoc3/cpptoqsconverter.cpp | 2 +- tools/qdoc3/cpptoqsconverter.h | 2 +- tools/qdoc3/dcfsection.cpp | 2 +- tools/qdoc3/dcfsection.h | 2 +- tools/qdoc3/ditaxmlgenerator.cpp | 2 +- tools/qdoc3/ditaxmlgenerator.h | 2 +- tools/qdoc3/doc.cpp | 2 +- tools/qdoc3/doc.h | 2 +- tools/qdoc3/doc/examples/main.cpp | 2 +- tools/qdoc3/doc/qdoc-manual.qdoc | 2 +- tools/qdoc3/editdistance.cpp | 2 +- tools/qdoc3/editdistance.h | 2 +- tools/qdoc3/generator.cpp | 2 +- tools/qdoc3/generator.h | 2 +- tools/qdoc3/helpprojectwriter.cpp | 2 +- tools/qdoc3/helpprojectwriter.h | 2 +- tools/qdoc3/htmlgenerator.cpp | 2 +- tools/qdoc3/htmlgenerator.h | 2 +- tools/qdoc3/jambiapiparser.cpp | 2 +- tools/qdoc3/jambiapiparser.h | 2 +- tools/qdoc3/javacodemarker.cpp | 2 +- tools/qdoc3/javacodemarker.h | 2 +- tools/qdoc3/javadocgenerator.cpp | 2 +- tools/qdoc3/javadocgenerator.h | 2 +- tools/qdoc3/linguistgenerator.cpp | 2 +- tools/qdoc3/linguistgenerator.h | 2 +- tools/qdoc3/location.cpp | 2 +- tools/qdoc3/location.h | 2 +- tools/qdoc3/loutgenerator.cpp | 2 +- tools/qdoc3/loutgenerator.h | 2 +- tools/qdoc3/main.cpp | 2 +- tools/qdoc3/mangenerator.cpp | 2 +- tools/qdoc3/mangenerator.h | 2 +- tools/qdoc3/node.cpp | 2 +- tools/qdoc3/node.h | 2 +- tools/qdoc3/openedlist.cpp | 2 +- tools/qdoc3/openedlist.h | 2 +- tools/qdoc3/pagegenerator.cpp | 2 +- tools/qdoc3/pagegenerator.h | 2 +- tools/qdoc3/plaincodemarker.cpp | 2 +- tools/qdoc3/plaincodemarker.h | 2 +- tools/qdoc3/polyarchiveextractor.cpp | 2 +- tools/qdoc3/polyarchiveextractor.h | 2 +- tools/qdoc3/polyuncompressor.cpp | 2 +- tools/qdoc3/polyuncompressor.h | 2 +- tools/qdoc3/qsakernelparser.cpp | 2 +- tools/qdoc3/qsakernelparser.h | 2 +- tools/qdoc3/qscodemarker.cpp | 2 +- tools/qdoc3/qscodemarker.h | 2 +- tools/qdoc3/qscodeparser.cpp | 2 +- tools/qdoc3/qscodeparser.h | 2 +- tools/qdoc3/quoter.cpp | 2 +- tools/qdoc3/quoter.h | 2 +- tools/qdoc3/separator.cpp | 2 +- tools/qdoc3/separator.h | 2 +- tools/qdoc3/sgmlgenerator.cpp | 2 +- tools/qdoc3/sgmlgenerator.h | 2 +- tools/qdoc3/text.cpp | 2 +- tools/qdoc3/text.h | 2 +- tools/qdoc3/tokenizer.cpp | 2 +- tools/qdoc3/tokenizer.h | 2 +- tools/qdoc3/tr.h | 2 +- tools/qdoc3/tree.cpp | 2 +- tools/qdoc3/tree.h | 2 +- tools/qdoc3/uncompressor.cpp | 2 +- tools/qdoc3/uncompressor.h | 2 +- tools/qdoc3/webxmlgenerator.cpp | 2 +- tools/qdoc3/webxmlgenerator.h | 2 +- tools/qdoc3/yyindent.cpp | 2 +- tools/qev/qev.cpp | 2 +- .../qmeegographicssystemhelper/qmeegofencesync.cpp | 2 +- tools/qmeegographicssystemhelper/qmeegofencesync.h | 2 +- .../qmeegographicssystemhelper/qmeegofencesync_p.h | 2 +- .../qmeegographicssystemhelper.cpp | 2 +- .../qmeegographicssystemhelper.h | 2 +- .../qmeegolivepixmap.cpp | 2 +- .../qmeegographicssystemhelper/qmeegolivepixmap.h | 2 +- .../qmeegolivepixmap_p.h | 2 +- .../qmeegooverlaywidget.cpp | 2 +- .../qmeegooverlaywidget.h | 2 +- tools/qmeegographicssystemhelper/qmeegoruntime.cpp | 2 +- tools/qmeegographicssystemhelper/qmeegoruntime.h | 2 +- .../qmeegoswitchevent.cpp | 2 +- .../qmeegographicssystemhelper/qmeegoswitchevent.h | 2 +- tools/qml/browser/Browser.qml | 2 +- tools/qml/deviceorientation.cpp | 2 +- tools/qml/deviceorientation.h | 2 +- tools/qml/deviceorientation_harmattan.cpp | 2 +- tools/qml/deviceorientation_maemo5.cpp | 2 +- tools/qml/deviceorientation_symbian.cpp | 2 +- tools/qml/loggerwidget.cpp | 2 +- tools/qml/loggerwidget.h | 2 +- tools/qml/main.cpp | 2 +- tools/qml/proxysettings.cpp | 2 +- tools/qml/proxysettings.h | 2 +- tools/qml/qdeclarativetester.cpp | 2 +- tools/qml/qdeclarativetester.h | 2 +- tools/qml/qmlruntime.cpp | 2 +- tools/qml/qmlruntime.h | 2 +- tools/qml/startup/Logo.qml | 2 +- tools/qml/startup/startup.qml | 2 +- tools/qml/texteditautoresizer_maemo5.h | 2 +- tools/qtconcurrent/codegenerator/example/main.cpp | 2 +- .../codegenerator/src/codegenerator.cpp | 2 +- .../qtconcurrent/codegenerator/src/codegenerator.h | 2 +- tools/qtconcurrent/generaterun/main.cpp | 6 +++--- tools/qtconfig/colorbutton.cpp | 2 +- tools/qtconfig/colorbutton.h | 2 +- tools/qtconfig/main.cpp | 2 +- tools/qtconfig/mainwindow.cpp | 4 ++-- tools/qtconfig/mainwindow.h | 2 +- tools/qtconfig/mainwindowbase.cpp | 2 +- tools/qtconfig/mainwindowbase.h | 2 +- tools/qtconfig/mainwindowbase.ui | 2 +- tools/qtconfig/paletteeditoradvanced.cpp | 2 +- tools/qtconfig/paletteeditoradvanced.h | 2 +- tools/qtconfig/paletteeditoradvancedbase.cpp | 2 +- tools/qtconfig/paletteeditoradvancedbase.h | 2 +- tools/qtconfig/paletteeditoradvancedbase.ui | 2 +- tools/qtconfig/previewframe.cpp | 2 +- tools/qtconfig/previewframe.h | 2 +- tools/qtconfig/previewwidget.cpp | 2 +- tools/qtconfig/previewwidget.h | 2 +- tools/qtconfig/previewwidgetbase.cpp | 2 +- tools/qtconfig/previewwidgetbase.h | 2 +- tools/qtconfig/previewwidgetbase.ui | 2 +- tools/qtestlib/updater/main.cpp | 2 +- tools/qtestlib/wince/cetcpsync/main.cpp | 2 +- .../wince/cetcpsync/qtcesterconnection.cpp | 2 +- .../qtestlib/wince/cetcpsync/qtcesterconnection.h | 2 +- .../qtestlib/wince/cetcpsync/remoteconnection.cpp | 2 +- tools/qtestlib/wince/cetcpsync/remoteconnection.h | 2 +- tools/qtestlib/wince/cetcpsyncserver/commands.cpp | 2 +- tools/qtestlib/wince/cetcpsyncserver/commands.h | 2 +- .../wince/cetcpsyncserver/connectionmanager.cpp | 2 +- .../wince/cetcpsyncserver/connectionmanager.h | 2 +- tools/qtestlib/wince/cetcpsyncserver/main.cpp | 2 +- .../wince/cetcpsyncserver/transfer_global.h | 2 +- .../qtestlib/wince/cetest/activesyncconnection.cpp | 2 +- tools/qtestlib/wince/cetest/activesyncconnection.h | 2 +- .../qtestlib/wince/cetest/cetcpsyncconnection.cpp | 2 +- tools/qtestlib/wince/cetest/cetcpsyncconnection.h | 2 +- tools/qtestlib/wince/cetest/deployment.cpp | 2 +- tools/qtestlib/wince/cetest/deployment.h | 2 +- tools/qtestlib/wince/cetest/main.cpp | 2 +- tools/qtestlib/wince/cetest/remoteconnection.cpp | 2 +- tools/qtestlib/wince/cetest/remoteconnection.h | 2 +- tools/qtestlib/wince/remotelib/commands.cpp | 2 +- tools/qtestlib/wince/remotelib/commands.h | 2 +- tools/qttracereplay/main.cpp | 2 +- tools/qvfb/config.ui | 2 +- tools/qvfb/gammaview.h | 2 +- tools/qvfb/main.cpp | 2 +- tools/qvfb/qanimationwriter.cpp | 2 +- tools/qvfb/qanimationwriter.h | 2 +- tools/qvfb/qtopiakeysym.h | 2 +- tools/qvfb/qvfb.cpp | 2 +- tools/qvfb/qvfb.h | 2 +- tools/qvfb/qvfbmmap.cpp | 2 +- tools/qvfb/qvfbmmap.h | 2 +- tools/qvfb/qvfbprotocol.cpp | 2 +- tools/qvfb/qvfbprotocol.h | 2 +- tools/qvfb/qvfbratedlg.cpp | 2 +- tools/qvfb/qvfbratedlg.h | 2 +- tools/qvfb/qvfbshmem.cpp | 2 +- tools/qvfb/qvfbshmem.h | 2 +- tools/qvfb/qvfbview.cpp | 2 +- tools/qvfb/qvfbview.h | 2 +- tools/qvfb/qvfbx11view.cpp | 2 +- tools/qvfb/qvfbx11view.h | 2 +- tools/qvfb/x11keyfaker.cpp | 2 +- tools/qvfb/x11keyfaker.h | 2 +- tools/runonphone/main.cpp | 2 +- tools/runonphone/ossignalconverter.cpp | 2 +- tools/runonphone/ossignalconverter.h | 2 +- tools/runonphone/ossignalconverter_p.h | 2 +- tools/runonphone/serenum.h | 2 +- tools/runonphone/serenum_stub.cpp | 2 +- tools/runonphone/serenum_unix.cpp | 2 +- tools/runonphone/serenum_win.cpp | 2 +- .../runonphone/symbianutils/bluetoothlistener.cpp | 2 +- tools/runonphone/symbianutils/bluetoothlistener.h | 2 +- .../symbianutils/bluetoothlistener_gui.cpp | 2 +- .../symbianutils/bluetoothlistener_gui.h | 2 +- tools/runonphone/symbianutils/callback.h | 2 +- .../symbianutils/communicationstarter.cpp | 2 +- .../runonphone/symbianutils/communicationstarter.h | 2 +- tools/runonphone/symbianutils/json.cpp | 2 +- tools/runonphone/symbianutils/json.h | 2 +- tools/runonphone/symbianutils/launcher.cpp | 2 +- tools/runonphone/symbianutils/launcher.h | 2 +- .../symbianutils/symbiandevicemanager.cpp | 2 +- .../runonphone/symbianutils/symbiandevicemanager.h | 2 +- .../runonphone/symbianutils/symbianutils_global.h | 2 +- tools/runonphone/symbianutils/tcftrkdevice.cpp | 2 +- tools/runonphone/symbianutils/tcftrkdevice.h | 2 +- tools/runonphone/symbianutils/tcftrkmessage.cpp | 2 +- tools/runonphone/symbianutils/tcftrkmessage.h | 2 +- tools/runonphone/symbianutils/trkdevice.cpp | 2 +- tools/runonphone/symbianutils/trkdevice.h | 2 +- tools/runonphone/symbianutils/trkutils.cpp | 2 +- tools/runonphone/symbianutils/trkutils.h | 2 +- tools/runonphone/symbianutils/trkutils_p.h | 2 +- tools/runonphone/trksignalhandler.cpp | 2 +- tools/runonphone/trksignalhandler.h | 2 +- tools/shared/deviceskin/deviceskin.cpp | 2 +- tools/shared/deviceskin/deviceskin.h | 2 +- tools/shared/findwidget/abstractfindwidget.cpp | 2 +- tools/shared/findwidget/abstractfindwidget.h | 2 +- tools/shared/findwidget/itemviewfindwidget.cpp | 2 +- tools/shared/findwidget/itemviewfindwidget.h | 2 +- tools/shared/findwidget/texteditfindwidget.cpp | 2 +- tools/shared/findwidget/texteditfindwidget.h | 2 +- tools/shared/fontpanel/fontpanel.cpp | 2 +- tools/shared/fontpanel/fontpanel.h | 2 +- tools/shared/qtgradienteditor/qtcolorbutton.cpp | 2 +- tools/shared/qtgradienteditor/qtcolorbutton.h | 2 +- tools/shared/qtgradienteditor/qtcolorline.cpp | 2 +- tools/shared/qtgradienteditor/qtcolorline.h | 2 +- tools/shared/qtgradienteditor/qtgradientdialog.cpp | 2 +- tools/shared/qtgradienteditor/qtgradientdialog.h | 2 +- tools/shared/qtgradienteditor/qtgradientdialog.ui | 2 +- tools/shared/qtgradienteditor/qtgradienteditor.cpp | 2 +- tools/shared/qtgradienteditor/qtgradienteditor.h | 2 +- tools/shared/qtgradienteditor/qtgradienteditor.ui | 2 +- .../shared/qtgradienteditor/qtgradientmanager.cpp | 2 +- tools/shared/qtgradienteditor/qtgradientmanager.h | 2 +- .../qtgradienteditor/qtgradientstopscontroller.cpp | 2 +- .../qtgradienteditor/qtgradientstopscontroller.h | 2 +- .../qtgradienteditor/qtgradientstopsmodel.cpp | 2 +- .../shared/qtgradienteditor/qtgradientstopsmodel.h | 2 +- .../qtgradienteditor/qtgradientstopswidget.cpp | 2 +- .../qtgradienteditor/qtgradientstopswidget.h | 2 +- tools/shared/qtgradienteditor/qtgradientutils.cpp | 2 +- tools/shared/qtgradienteditor/qtgradientutils.h | 2 +- tools/shared/qtgradienteditor/qtgradientview.cpp | 2 +- tools/shared/qtgradienteditor/qtgradientview.h | 2 +- .../qtgradienteditor/qtgradientviewdialog.cpp | 2 +- .../shared/qtgradienteditor/qtgradientviewdialog.h | 2 +- .../qtgradienteditor/qtgradientviewdialog.ui | 2 +- tools/shared/qtgradienteditor/qtgradientwidget.cpp | 2 +- tools/shared/qtgradienteditor/qtgradientwidget.h | 2 +- .../qtpropertybrowser/qtbuttonpropertybrowser.cpp | 2 +- .../qtpropertybrowser/qtbuttonpropertybrowser.h | 2 +- tools/shared/qtpropertybrowser/qteditorfactory.cpp | 2 +- tools/shared/qtpropertybrowser/qteditorfactory.h | 2 +- .../qtgroupboxpropertybrowser.cpp | 2 +- .../qtpropertybrowser/qtgroupboxpropertybrowser.h | 2 +- .../shared/qtpropertybrowser/qtpropertybrowser.cpp | 2 +- tools/shared/qtpropertybrowser/qtpropertybrowser.h | 2 +- .../qtpropertybrowser/qtpropertybrowserutils.cpp | 2 +- .../qtpropertybrowser/qtpropertybrowserutils_p.h | 2 +- .../shared/qtpropertybrowser/qtpropertymanager.cpp | 2 +- tools/shared/qtpropertybrowser/qtpropertymanager.h | 2 +- .../qtpropertybrowser/qttreepropertybrowser.cpp | 2 +- .../qtpropertybrowser/qttreepropertybrowser.h | 2 +- .../shared/qtpropertybrowser/qtvariantproperty.cpp | 2 +- tools/shared/qtpropertybrowser/qtvariantproperty.h | 2 +- tools/shared/qttoolbardialog/qttoolbardialog.cpp | 2 +- tools/shared/qttoolbardialog/qttoolbardialog.h | 2 +- tools/shared/symbian/epocroot.cpp | 2 +- tools/shared/symbian/epocroot_p.h | 2 +- tools/shared/windows/registry.cpp | 2 +- tools/shared/windows/registry_p.h | 2 +- tools/xmlpatterns/main.cpp | 2 +- tools/xmlpatterns/main.h | 2 +- tools/xmlpatterns/qapplicationargument.cpp | 2 +- tools/xmlpatterns/qapplicationargument_p.h | 2 +- tools/xmlpatterns/qapplicationargumentparser.cpp | 2 +- tools/xmlpatterns/qapplicationargumentparser_p.h | 2 +- tools/xmlpatternsvalidator/main.cpp | 2 +- tools/xmlpatternsvalidator/main.h | 2 +- translations/assistant_de.ts | 4 ++-- translations/assistant_ja.ts | 4 ++-- translations/assistant_ru.ts | 4 ++-- translations/assistant_sl.ts | 2 +- translations/assistant_uk.ts | 4 ++-- translations/check-ts.pl | 2 +- translations/designer_de.ts | 2 +- translations/designer_fr.ts | 4 ++-- translations/designer_hu.ts | 2 +- translations/designer_ja.ts | 4 ++-- translations/designer_pl.ts | 2 +- translations/designer_ru.ts | 4 ++-- translations/designer_sl.ts | 2 +- translations/designer_uk.ts | 4 ++-- translations/designer_zh_CN.ts | 2 +- translations/designer_zh_TW.ts | 4 ++-- translations/linguist_de.ts | 2 +- translations/linguist_fr.ts | 2 +- translations/linguist_hu.ts | 4 ++-- translations/linguist_ja.ts | 4 ++-- translations/linguist_pl.ts | 2 +- translations/linguist_ru.ts | 4 ++-- translations/linguist_sl.ts | 2 +- translations/linguist_uk.ts | 4 ++-- translations/linguist_zh_CN.ts | 4 ++-- translations/linguist_zh_TW.ts | 8 ++++---- translations/qt_ar.ts | 2 +- translations/qt_da.ts | 2 +- translations/qt_de.ts | 2 +- translations/qt_es.ts | 2 +- translations/qt_fr.ts | 8 ++++---- translations/qt_gl.ts | 4 ++-- translations/qt_he.ts | 2 +- translations/qt_ja.ts | 4 ++-- translations/qt_pl.ts | 4 ++-- translations/qt_pt.ts | 2 +- translations/qt_ru.ts | 4 ++-- translations/qt_sk.ts | 2 +- translations/qt_sl.ts | 2 +- translations/qt_sv.ts | 2 +- translations/qt_uk.ts | 4 ++-- translations/qt_zh_CN.ts | 2 +- translations/qt_zh_TW.ts | 2 +- translations/qtconfig_hu.ts | 4 ++-- translations/qtconfig_ja.ts | 4 ++-- translations/qtconfig_pl.ts | 2 +- translations/qtconfig_ru.ts | 4 ++-- translations/qtconfig_sl.ts | 2 +- translations/qtconfig_uk.ts | 4 ++-- translations/qtconfig_zh_CN.ts | 2 +- translations/qtconfig_zh_TW.ts | 2 +- util/fixnonlatin1/main.cpp | 2 +- util/gencmap/gencmap.cpp | 2 +- util/lexgen/configfile.cpp | 2 +- util/lexgen/configfile.h | 2 +- util/lexgen/generator.cpp | 2 +- util/lexgen/generator.h | 2 +- util/lexgen/global.h | 2 +- util/lexgen/main.cpp | 2 +- util/lexgen/nfa.cpp | 2 +- util/lexgen/nfa.h | 2 +- util/lexgen/re2nfa.cpp | 2 +- util/lexgen/re2nfa.h | 2 +- util/lexgen/tests/tst_lexgen.cpp | 2 +- util/lexgen/tokenizer.cpp | 2 +- util/local_database/cldr2qlocalexml.py | 2 +- util/local_database/dateconverter.py | 2 +- util/local_database/enumdata.py | 2 +- util/local_database/qlocalexml2cpp.py | 2 +- util/local_database/testlocales/localemodel.cpp | 2 +- util/local_database/testlocales/localemodel.h | 2 +- util/local_database/testlocales/localewidget.cpp | 2 +- util/local_database/testlocales/localewidget.h | 2 +- util/local_database/testlocales/main.cpp | 2 +- util/local_database/xpathlite.py | 2 +- util/network/cookiejar-generateTLDs/main.cpp | 2 +- util/normalize/main.cpp | 2 +- util/plugintest/main.cpp | 2 +- util/qlalr/compress.cpp | 2 +- util/qlalr/compress.h | 2 +- util/qlalr/cppgenerator.cpp | 4 ++-- util/qlalr/cppgenerator.h | 2 +- util/qlalr/doc/src/qlalr.qdoc | 2 +- util/qlalr/dotgraph.cpp | 2 +- util/qlalr/dotgraph.h | 2 +- util/qlalr/examples/dummy-xml/ll/dummy-xml-ll.cpp | 2 +- util/qlalr/examples/dummy-xml/xml.g | 2 +- util/qlalr/examples/glsl/build.sh | 2 +- util/qlalr/examples/glsl/glsl-lex.l | 2 +- util/qlalr/examples/glsl/glsl.g | 2 +- util/qlalr/examples/lambda/lambda.g | 2 +- util/qlalr/examples/lambda/main.cpp | 2 +- util/qlalr/examples/qparser/calc.g | 2 +- util/qlalr/examples/qparser/calc.l | 2 +- util/qlalr/examples/qparser/qparser.cpp | 2 +- util/qlalr/examples/qparser/qparser.h | 2 +- util/qlalr/grammar.cpp | 2 +- util/qlalr/grammar_p.h | 2 +- util/qlalr/lalr.cpp | 2 +- util/qlalr/lalr.g | 6 +++--- util/qlalr/lalr.h | 2 +- util/qlalr/main.cpp | 2 +- util/qlalr/parsetable.cpp | 2 +- util/qlalr/parsetable.h | 2 +- util/qlalr/recognizer.cpp | 2 +- util/qlalr/recognizer.h | 2 +- util/s60pixelmetrics/bld.inf | 2 +- util/s60pixelmetrics/pixel_metrics.cpp | 2 +- util/s60pixelmetrics/pixel_metrics.h | 2 +- util/s60pixelmetrics/pm_mapper.hrh | 2 +- util/s60pixelmetrics/pm_mapper.mmp | 2 +- util/s60pixelmetrics/pm_mapper.pkg | 2 +- util/s60pixelmetrics/pm_mapper.rss | 2 +- util/s60pixelmetrics/pm_mapper_reg.rss | 2 +- util/s60pixelmetrics/pm_mapperapp.cpp | 2 +- util/s60pixelmetrics/pm_mapperapp.h | 2 +- util/s60pixelmetrics/pm_mapperview.cpp | 2 +- util/s60pixelmetrics/pm_mapperview.h | 2 +- util/s60theme/main.cpp | 2 +- util/s60theme/s60themeconvert.cpp | 2 +- util/s60theme/s60themeconvert.h | 2 +- util/scripts/make_qfeatures_dot_h | 4 ++-- util/unicode/codecs/big5/main.cpp | 2 +- util/unicode/main.cpp | 4 ++-- util/unicode/writingSystems.sh | 2 +- util/xkbdatagen/main.cpp | 4 ++-- 10433 files changed, 10520 insertions(+), 10520 deletions(-) diff --git a/LICENSE.LGPL b/LICENSE.LGPL index 170f02d..a0e8eb8 100644 --- a/LICENSE.LGPL +++ b/LICENSE.LGPL @@ -1,6 +1,6 @@ GNU LESSER GENERAL PUBLIC LICENSE - The Qt GUI Toolkit is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + The Qt GUI Toolkit is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). Contact: Nokia Corporation (qt-info@nokia.com) You may use, distribute and copy the Qt GUI Toolkit under the terms of diff --git a/bin/createpackage.bat b/bin/createpackage.bat index 3960d13..a946278 100755 --- a/bin/createpackage.bat +++ b/bin/createpackage.bat @@ -1,6 +1,6 @@ ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: -:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +:: Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). :: All rights reserved. :: Contact: Nokia Corporation (qt-info@nokia.com) :: diff --git a/bin/createpackage.pl b/bin/createpackage.pl index 87ed29e..df91876 100755 --- a/bin/createpackage.pl +++ b/bin/createpackage.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl ############################################################################# ## -## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl index c3fb89f..91ab4b8 100755 --- a/bin/patch_capabilities.pl +++ b/bin/patch_capabilities.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl ############################################################################# ## -## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## diff --git a/bin/setcepaths.bat b/bin/setcepaths.bat index bbabfee..139ea68 100755 --- a/bin/setcepaths.bat +++ b/bin/setcepaths.bat @@ -1,6 +1,6 @@ ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: -:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +:: Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). :: All rights reserved. :: Contact: Nokia Corporation (qt-info@nokia.com) :: diff --git a/bin/syncqt b/bin/syncqt index 6c5729a..b8f1ee7 100755 --- a/bin/syncqt +++ b/bin/syncqt @@ -3,7 +3,7 @@ # # Synchronizes Qt header files - internal development tool. # -# Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +# Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). # Contact: Nokia Corporation (qt-info@nokia.com) # ###################################################################### diff --git a/bin/syncqt.bat b/bin/syncqt.bat index bd89c2c..dd0da87 100755 --- a/bin/syncqt.bat +++ b/bin/syncqt.bat @@ -1,6 +1,6 @@ ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: -:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +:: Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). :: All rights reserved. :: Contact: Nokia Corporation (qt-info@nokia.com) :: diff --git a/config.tests/mac/corewlan/corewlantest.mm b/config.tests/mac/corewlan/corewlantest.mm index ee6f661..3b63607 100644 --- a/config.tests/mac/corewlan/corewlantest.mm +++ b/config.tests/mac/corewlan/corewlantest.mm @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/mac/crc/main.cpp b/config.tests/mac/crc/main.cpp index 69270f0..8d44e0a 100644 --- a/config.tests/mac/crc/main.cpp +++ b/config.tests/mac/crc/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/mac/xcodeversion.cpp b/config.tests/mac/xcodeversion.cpp index f41acce..dc7e5fc 100644 --- a/config.tests/mac/xcodeversion.cpp +++ b/config.tests/mac/xcodeversion.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/qws/ahi/ahi.cpp b/config.tests/qws/ahi/ahi.cpp index f368722..330d28b 100644 --- a/config.tests/qws/ahi/ahi.cpp +++ b/config.tests/qws/ahi/ahi.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/qws/directfb/directfb.cpp b/config.tests/qws/directfb/directfb.cpp index afdf563..df6576b 100644 --- a/config.tests/qws/directfb/directfb.cpp +++ b/config.tests/qws/directfb/directfb.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/qws/sound/sound.cpp b/config.tests/qws/sound/sound.cpp index d4c132f..2a5d24d 100644 --- a/config.tests/qws/sound/sound.cpp +++ b/config.tests/qws/sound/sound.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/qws/svgalib/svgalib.cpp b/config.tests/qws/svgalib/svgalib.cpp index f678a69..985c9ae 100644 --- a/config.tests/qws/svgalib/svgalib.cpp +++ b/config.tests/qws/svgalib/svgalib.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/symbian/audio/audio.cpp b/config.tests/symbian/audio/audio.cpp index 4ffc728..c749bbe 100644 --- a/config.tests/symbian/audio/audio.cpp +++ b/config.tests/symbian/audio/audio.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/symbian/simple/main.cpp b/config.tests/symbian/simple/main.cpp index 9227c42..d2f35f3 100644 --- a/config.tests/symbian/simple/main.cpp +++ b/config.tests/symbian/simple/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/3dnow/3dnow.cpp b/config.tests/unix/3dnow/3dnow.cpp index 0516fbc..a56e209 100644 --- a/config.tests/unix/3dnow/3dnow.cpp +++ b/config.tests/unix/3dnow/3dnow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/alsa/alsatest.cpp b/config.tests/unix/alsa/alsatest.cpp index 566b625..d3292f6 100644 --- a/config.tests/unix/alsa/alsatest.cpp +++ b/config.tests/unix/alsa/alsatest.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/avx/avx.cpp b/config.tests/unix/avx/avx.cpp index 65a0eb8..9ff139c 100644 --- a/config.tests/unix/avx/avx.cpp +++ b/config.tests/unix/avx/avx.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/clock-gettime/clock-gettime.cpp b/config.tests/unix/clock-gettime/clock-gettime.cpp index 096f41c..52696f1 100644 --- a/config.tests/unix/clock-gettime/clock-gettime.cpp +++ b/config.tests/unix/clock-gettime/clock-gettime.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/clock-monotonic/clock-monotonic.cpp b/config.tests/unix/clock-monotonic/clock-monotonic.cpp index 03244d1..ec045aa 100644 --- a/config.tests/unix/clock-monotonic/clock-monotonic.cpp +++ b/config.tests/unix/clock-monotonic/clock-monotonic.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/cups/cups.cpp b/config.tests/unix/cups/cups.cpp index 2f17c1c..09b8edf 100644 --- a/config.tests/unix/cups/cups.cpp +++ b/config.tests/unix/cups/cups.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/db2/db2.cpp b/config.tests/unix/db2/db2.cpp index c7cf551..e03712c 100644 --- a/config.tests/unix/db2/db2.cpp +++ b/config.tests/unix/db2/db2.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/dbus/dbus.cpp b/config.tests/unix/dbus/dbus.cpp index aca2b20..88e8a5e 100644 --- a/config.tests/unix/dbus/dbus.cpp +++ b/config.tests/unix/dbus/dbus.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/doubleformat/doubleformattest.cpp b/config.tests/unix/doubleformat/doubleformattest.cpp index 2c51d0c..f7b9000 100644 --- a/config.tests/unix/doubleformat/doubleformattest.cpp +++ b/config.tests/unix/doubleformat/doubleformattest.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/egl/egl.cpp b/config.tests/unix/egl/egl.cpp index b03c173..db6956a 100644 --- a/config.tests/unix/egl/egl.cpp +++ b/config.tests/unix/egl/egl.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/egl4gles1/egl4gles1.cpp b/config.tests/unix/egl4gles1/egl4gles1.cpp index 0024fb5..e146680 100644 --- a/config.tests/unix/egl4gles1/egl4gles1.cpp +++ b/config.tests/unix/egl4gles1/egl4gles1.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/endian/endiantest.cpp b/config.tests/unix/endian/endiantest.cpp index 907056e..296f890 100644 --- a/config.tests/unix/endian/endiantest.cpp +++ b/config.tests/unix/endian/endiantest.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/floatmath/floatmath.cpp b/config.tests/unix/floatmath/floatmath.cpp index 3d57636..e076a5c 100644 --- a/config.tests/unix/floatmath/floatmath.cpp +++ b/config.tests/unix/floatmath/floatmath.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/freetype/freetype.cpp b/config.tests/unix/freetype/freetype.cpp index e0963b2..3c157e1 100644 --- a/config.tests/unix/freetype/freetype.cpp +++ b/config.tests/unix/freetype/freetype.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/getaddrinfo/getaddrinfotest.cpp b/config.tests/unix/getaddrinfo/getaddrinfotest.cpp index df6ae10..4b97dc9 100644 --- a/config.tests/unix/getaddrinfo/getaddrinfotest.cpp +++ b/config.tests/unix/getaddrinfo/getaddrinfotest.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/getifaddrs/getifaddrs.cpp b/config.tests/unix/getifaddrs/getifaddrs.cpp index e545e90..f8cdf0a 100644 --- a/config.tests/unix/getifaddrs/getifaddrs.cpp +++ b/config.tests/unix/getifaddrs/getifaddrs.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/glib/glib.cpp b/config.tests/unix/glib/glib.cpp index 084e5b2..6784454 100644 --- a/config.tests/unix/glib/glib.cpp +++ b/config.tests/unix/glib/glib.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp b/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp index 5569651..722522d 100644 --- a/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp +++ b/config.tests/unix/gnu-libiconv/gnu-libiconv.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/gstreamer/gstreamer.cpp b/config.tests/unix/gstreamer/gstreamer.cpp index 55e4bd6..43d9b98 100644 --- a/config.tests/unix/gstreamer/gstreamer.cpp +++ b/config.tests/unix/gstreamer/gstreamer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/ibase/ibase.cpp b/config.tests/unix/ibase/ibase.cpp index b83428e..aaba0f9 100644 --- a/config.tests/unix/ibase/ibase.cpp +++ b/config.tests/unix/ibase/ibase.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/icd/icd.cpp b/config.tests/unix/icd/icd.cpp index 08ef115..593540f 100644 --- a/config.tests/unix/icd/icd.cpp +++ b/config.tests/unix/icd/icd.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/iconv/iconv.cpp b/config.tests/unix/iconv/iconv.cpp index e6d79a5..568b6bd 100644 --- a/config.tests/unix/iconv/iconv.cpp +++ b/config.tests/unix/iconv/iconv.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/inotify/inotifytest.cpp b/config.tests/unix/inotify/inotifytest.cpp index 92523fc..a08df3f 100644 --- a/config.tests/unix/inotify/inotifytest.cpp +++ b/config.tests/unix/inotify/inotifytest.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/iodbc/iodbc.cpp b/config.tests/unix/iodbc/iodbc.cpp index c50efa6..6b4cc3d 100644 --- a/config.tests/unix/iodbc/iodbc.cpp +++ b/config.tests/unix/iodbc/iodbc.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/ipv6/ipv6test.cpp b/config.tests/unix/ipv6/ipv6test.cpp index 4243f2d..d33c534 100644 --- a/config.tests/unix/ipv6/ipv6test.cpp +++ b/config.tests/unix/ipv6/ipv6test.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/ipv6ifname/ipv6ifname.cpp b/config.tests/unix/ipv6ifname/ipv6ifname.cpp index 4f592b3..7bde426 100644 --- a/config.tests/unix/ipv6ifname/ipv6ifname.cpp +++ b/config.tests/unix/ipv6ifname/ipv6ifname.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/iwmmxt/iwmmxt.cpp b/config.tests/unix/iwmmxt/iwmmxt.cpp index 0066490..25d042a 100644 --- a/config.tests/unix/iwmmxt/iwmmxt.cpp +++ b/config.tests/unix/iwmmxt/iwmmxt.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/javascriptcore-jit/hwcap_test.cpp b/config.tests/unix/javascriptcore-jit/hwcap_test.cpp index ca488a6..0ee717a 100644 --- a/config.tests/unix/javascriptcore-jit/hwcap_test.cpp +++ b/config.tests/unix/javascriptcore-jit/hwcap_test.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/libjpeg/libjpeg.cpp b/config.tests/unix/libjpeg/libjpeg.cpp index b2b77e0..efff11c 100644 --- a/config.tests/unix/libjpeg/libjpeg.cpp +++ b/config.tests/unix/libjpeg/libjpeg.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/libmng/libmng.cpp b/config.tests/unix/libmng/libmng.cpp index e4b6dcd..d3c0f68 100644 --- a/config.tests/unix/libmng/libmng.cpp +++ b/config.tests/unix/libmng/libmng.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/libpng/libpng.cpp b/config.tests/unix/libpng/libpng.cpp index 174293c..835e99f 100644 --- a/config.tests/unix/libpng/libpng.cpp +++ b/config.tests/unix/libpng/libpng.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/libtiff/libtiff.cpp b/config.tests/unix/libtiff/libtiff.cpp index 115b332..cad731d 100644 --- a/config.tests/unix/libtiff/libtiff.cpp +++ b/config.tests/unix/libtiff/libtiff.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/mmx/mmx.cpp b/config.tests/unix/mmx/mmx.cpp index d91f184..25dc64d 100644 --- a/config.tests/unix/mmx/mmx.cpp +++ b/config.tests/unix/mmx/mmx.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/mremap/mremap.cpp b/config.tests/unix/mremap/mremap.cpp index 28b42f9..8fdc9a4 100644 --- a/config.tests/unix/mremap/mremap.cpp +++ b/config.tests/unix/mremap/mremap.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/mysql/mysql.cpp b/config.tests/unix/mysql/mysql.cpp index 8073cdb..457f93d 100644 --- a/config.tests/unix/mysql/mysql.cpp +++ b/config.tests/unix/mysql/mysql.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/neon/neon.cpp b/config.tests/unix/neon/neon.cpp index 9e4dc20..d868197 100644 --- a/config.tests/unix/neon/neon.cpp +++ b/config.tests/unix/neon/neon.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/nis/nis.cpp b/config.tests/unix/nis/nis.cpp index fead9fd..ccbd88b 100644 --- a/config.tests/unix/nis/nis.cpp +++ b/config.tests/unix/nis/nis.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/oci/oci.cpp b/config.tests/unix/oci/oci.cpp index 0e7eb2a..37821a2 100644 --- a/config.tests/unix/oci/oci.cpp +++ b/config.tests/unix/oci/oci.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/odbc/odbc.cpp b/config.tests/unix/odbc/odbc.cpp index 98f3571..32c1dcc 100644 --- a/config.tests/unix/odbc/odbc.cpp +++ b/config.tests/unix/odbc/odbc.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/opengles1/opengles1.cpp b/config.tests/unix/opengles1/opengles1.cpp index 85312a5..caef9a9 100644 --- a/config.tests/unix/opengles1/opengles1.cpp +++ b/config.tests/unix/opengles1/opengles1.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/opengles2/opengles2.cpp b/config.tests/unix/opengles2/opengles2.cpp index b75e333..caf02e6 100644 --- a/config.tests/unix/opengles2/opengles2.cpp +++ b/config.tests/unix/opengles2/opengles2.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/openssl/openssl.cpp b/config.tests/unix/openssl/openssl.cpp index 6cff58b..39f59b2 100644 --- a/config.tests/unix/openssl/openssl.cpp +++ b/config.tests/unix/openssl/openssl.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/openvg/openvg.cpp b/config.tests/unix/openvg/openvg.cpp index fe4de70..6cf0472 100644 --- a/config.tests/unix/openvg/openvg.cpp +++ b/config.tests/unix/openvg/openvg.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/psql/psql.cpp b/config.tests/unix/psql/psql.cpp index 9d1b0d1..3292442 100644 --- a/config.tests/unix/psql/psql.cpp +++ b/config.tests/unix/psql/psql.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/ptrsize/ptrsizetest.cpp b/config.tests/unix/ptrsize/ptrsizetest.cpp index bcd199f..d24799d 100644 --- a/config.tests/unix/ptrsize/ptrsizetest.cpp +++ b/config.tests/unix/ptrsize/ptrsizetest.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/pulseaudio/pulseaudio.cpp b/config.tests/unix/pulseaudio/pulseaudio.cpp index ba5405b..b8d5ef5 100644 --- a/config.tests/unix/pulseaudio/pulseaudio.cpp +++ b/config.tests/unix/pulseaudio/pulseaudio.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/shivavg/shivavg.cpp b/config.tests/unix/shivavg/shivavg.cpp index eae6608..65c0fee 100644 --- a/config.tests/unix/shivavg/shivavg.cpp +++ b/config.tests/unix/shivavg/shivavg.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/sqlite/sqlite.cpp b/config.tests/unix/sqlite/sqlite.cpp index 4890c5f..ac35001 100644 --- a/config.tests/unix/sqlite/sqlite.cpp +++ b/config.tests/unix/sqlite/sqlite.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/sqlite2/sqlite2.cpp b/config.tests/unix/sqlite2/sqlite2.cpp index 8fd0e1f..e5d9d04 100644 --- a/config.tests/unix/sqlite2/sqlite2.cpp +++ b/config.tests/unix/sqlite2/sqlite2.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/sse/sse.cpp b/config.tests/unix/sse/sse.cpp index d8683da..e130a83 100644 --- a/config.tests/unix/sse/sse.cpp +++ b/config.tests/unix/sse/sse.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/sse2/sse2.cpp b/config.tests/unix/sse2/sse2.cpp index a48e2ce..255854f 100644 --- a/config.tests/unix/sse2/sse2.cpp +++ b/config.tests/unix/sse2/sse2.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/sse3/sse3.cpp b/config.tests/unix/sse3/sse3.cpp index b159acf..a28981c 100644 --- a/config.tests/unix/sse3/sse3.cpp +++ b/config.tests/unix/sse3/sse3.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/sse4_1/sse4_1.cpp b/config.tests/unix/sse4_1/sse4_1.cpp index e9bec9e..b5928d9 100644 --- a/config.tests/unix/sse4_1/sse4_1.cpp +++ b/config.tests/unix/sse4_1/sse4_1.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/sse4_2/sse4_2.cpp b/config.tests/unix/sse4_2/sse4_2.cpp index 005b2c5..733f1a5 100644 --- a/config.tests/unix/sse4_2/sse4_2.cpp +++ b/config.tests/unix/sse4_2/sse4_2.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/ssse3/ssse3.cpp b/config.tests/unix/ssse3/ssse3.cpp index 37fd479..fbfe793 100644 --- a/config.tests/unix/ssse3/ssse3.cpp +++ b/config.tests/unix/ssse3/ssse3.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/stdint/main.cpp b/config.tests/unix/stdint/main.cpp index 846e2d2..eeaa814 100644 --- a/config.tests/unix/stdint/main.cpp +++ b/config.tests/unix/stdint/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/stl/stltest.cpp b/config.tests/unix/stl/stltest.cpp index 382f5cb..597f7d0 100644 --- a/config.tests/unix/stl/stltest.cpp +++ b/config.tests/unix/stl/stltest.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/tds/tds.cpp b/config.tests/unix/tds/tds.cpp index 50a3fb2..4705e28 100644 --- a/config.tests/unix/tds/tds.cpp +++ b/config.tests/unix/tds/tds.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/tslib/tslib.cpp b/config.tests/unix/tslib/tslib.cpp index 4da32fe..1aecf65 100644 --- a/config.tests/unix/tslib/tslib.cpp +++ b/config.tests/unix/tslib/tslib.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/unix/zlib/zlib.cpp b/config.tests/unix/zlib/zlib.cpp index 86c2b6b..c4dc663 100644 --- a/config.tests/unix/zlib/zlib.cpp +++ b/config.tests/unix/zlib/zlib.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/fontconfig/fontconfig.cpp b/config.tests/x11/fontconfig/fontconfig.cpp index 85dbc73..0e856de 100644 --- a/config.tests/x11/fontconfig/fontconfig.cpp +++ b/config.tests/x11/fontconfig/fontconfig.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/glxfbconfig/glxfbconfig.cpp b/config.tests/x11/glxfbconfig/glxfbconfig.cpp index 4a4b23a..f111784 100644 --- a/config.tests/x11/glxfbconfig/glxfbconfig.cpp +++ b/config.tests/x11/glxfbconfig/glxfbconfig.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/mitshm/mitshm.cpp b/config.tests/x11/mitshm/mitshm.cpp index d78cadd..de80e3a 100644 --- a/config.tests/x11/mitshm/mitshm.cpp +++ b/config.tests/x11/mitshm/mitshm.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/notype/notypetest.cpp b/config.tests/x11/notype/notypetest.cpp index b1e0583..4002313 100644 --- a/config.tests/x11/notype/notypetest.cpp +++ b/config.tests/x11/notype/notypetest.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/opengl/opengl.cpp b/config.tests/x11/opengl/opengl.cpp index 3802365..527e28d 100644 --- a/config.tests/x11/opengl/opengl.cpp +++ b/config.tests/x11/opengl/opengl.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/sm/sm.cpp b/config.tests/x11/sm/sm.cpp index dec4020..6dd8183 100644 --- a/config.tests/x11/sm/sm.cpp +++ b/config.tests/x11/sm/sm.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xcursor/xcursor.cpp b/config.tests/x11/xcursor/xcursor.cpp index 9a810bf..f979b7b 100644 --- a/config.tests/x11/xcursor/xcursor.cpp +++ b/config.tests/x11/xcursor/xcursor.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xfixes/xfixes.cpp b/config.tests/x11/xfixes/xfixes.cpp index 930caa8..afa54bd 100644 --- a/config.tests/x11/xfixes/xfixes.cpp +++ b/config.tests/x11/xfixes/xfixes.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xinerama/xinerama.cpp b/config.tests/x11/xinerama/xinerama.cpp index cae7987..d686d99 100644 --- a/config.tests/x11/xinerama/xinerama.cpp +++ b/config.tests/x11/xinerama/xinerama.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xinput/xinput.cpp b/config.tests/x11/xinput/xinput.cpp index 9532472..92a3d41 100644 --- a/config.tests/x11/xinput/xinput.cpp +++ b/config.tests/x11/xinput/xinput.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xkb/xkb.cpp b/config.tests/x11/xkb/xkb.cpp index f9f98c4..84e272e 100644 --- a/config.tests/x11/xkb/xkb.cpp +++ b/config.tests/x11/xkb/xkb.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xlib/xlib.cpp b/config.tests/x11/xlib/xlib.cpp index 07a931a..234b221 100644 --- a/config.tests/x11/xlib/xlib.cpp +++ b/config.tests/x11/xlib/xlib.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xrandr/xrandr.cpp b/config.tests/x11/xrandr/xrandr.cpp index fa5f869..0c93f01 100644 --- a/config.tests/x11/xrandr/xrandr.cpp +++ b/config.tests/x11/xrandr/xrandr.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xrender/xrender.cpp b/config.tests/x11/xrender/xrender.cpp index 3f532c1..d99f9c2 100644 --- a/config.tests/x11/xrender/xrender.cpp +++ b/config.tests/x11/xrender/xrender.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xshape/xshape.cpp b/config.tests/x11/xshape/xshape.cpp index 08d74cb..1b3972c 100644 --- a/config.tests/x11/xshape/xshape.cpp +++ b/config.tests/x11/xshape/xshape.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xsync/xsync.cpp b/config.tests/x11/xsync/xsync.cpp index 9d3818b..795eef2 100644 --- a/config.tests/x11/xsync/xsync.cpp +++ b/config.tests/x11/xsync/xsync.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/config.tests/x11/xvideo/xvideo.cpp b/config.tests/x11/xvideo/xvideo.cpp index 515dc00..9cf0662 100644 --- a/config.tests/x11/xvideo/xvideo.cpp +++ b/config.tests/x11/xvideo/xvideo.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/configure b/configure index aa8d047..0394be9 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #!/bin/sh ############################################################################# ## -## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## diff --git a/demos/affine/main.cpp b/demos/affine/main.cpp index 85da546..24dd65c 100644 --- a/demos/affine/main.cpp +++ b/demos/affine/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/affine/xform.cpp b/demos/affine/xform.cpp index 0d9422c..724b640 100644 --- a/demos/affine/xform.cpp +++ b/demos/affine/xform.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/affine/xform.h b/demos/affine/xform.h index 5966157..80e672b 100644 --- a/demos/affine/xform.h +++ b/demos/affine/xform.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/arthurplugin/plugin.cpp b/demos/arthurplugin/plugin.cpp index 2096895..336e88d 100644 --- a/demos/arthurplugin/plugin.cpp +++ b/demos/arthurplugin/plugin.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/books/bookdelegate.cpp b/demos/books/bookdelegate.cpp index f44fbe4..eb5d95b 100644 --- a/demos/books/bookdelegate.cpp +++ b/demos/books/bookdelegate.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/books/bookdelegate.h b/demos/books/bookdelegate.h index 4e9f462..bb1d824 100644 --- a/demos/books/bookdelegate.h +++ b/demos/books/bookdelegate.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/books/bookwindow.cpp b/demos/books/bookwindow.cpp index c801283..23e64c2 100644 --- a/demos/books/bookwindow.cpp +++ b/demos/books/bookwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/books/bookwindow.h b/demos/books/bookwindow.h index a6b3f5f..96545d7 100644 --- a/demos/books/bookwindow.h +++ b/demos/books/bookwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/books/initdb.h b/demos/books/initdb.h index aa64959..5351ad5 100644 --- a/demos/books/initdb.h +++ b/demos/books/initdb.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/books/main.cpp b/demos/books/main.cpp index 7fd0bae..3481c9a 100644 --- a/demos/books/main.cpp +++ b/demos/books/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/basic.fsh b/demos/boxes/basic.fsh index 0ba381d..175b718 100644 --- a/demos/boxes/basic.fsh +++ b/demos/boxes/basic.fsh @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/basic.vsh b/demos/boxes/basic.vsh index 6ead8ce..989b571 100644 --- a/demos/boxes/basic.vsh +++ b/demos/boxes/basic.vsh @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/dotted.fsh b/demos/boxes/dotted.fsh index eb3497c..8f4621d 100644 --- a/demos/boxes/dotted.fsh +++ b/demos/boxes/dotted.fsh @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/fresnel.fsh b/demos/boxes/fresnel.fsh index 38ce69a..02d6b0c 100644 --- a/demos/boxes/fresnel.fsh +++ b/demos/boxes/fresnel.fsh @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/glass.fsh b/demos/boxes/glass.fsh index 100a94d..9dad845 100644 --- a/demos/boxes/glass.fsh +++ b/demos/boxes/glass.fsh @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/glbuffers.cpp b/demos/boxes/glbuffers.cpp index 694d05b..c27a765 100644 --- a/demos/boxes/glbuffers.cpp +++ b/demos/boxes/glbuffers.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/glbuffers.h b/demos/boxes/glbuffers.h index 67a4ea6..d874af7 100644 --- a/demos/boxes/glbuffers.h +++ b/demos/boxes/glbuffers.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/glextensions.cpp b/demos/boxes/glextensions.cpp index f7feb5e..1021594 100644 --- a/demos/boxes/glextensions.cpp +++ b/demos/boxes/glextensions.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/glextensions.h b/demos/boxes/glextensions.h index afeb90d..342e5d8 100644 --- a/demos/boxes/glextensions.h +++ b/demos/boxes/glextensions.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/gltrianglemesh.h b/demos/boxes/gltrianglemesh.h index 4c5beba..d0afa35 100644 --- a/demos/boxes/gltrianglemesh.h +++ b/demos/boxes/gltrianglemesh.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/granite.fsh b/demos/boxes/granite.fsh index 5e808f2..025153b 100644 --- a/demos/boxes/granite.fsh +++ b/demos/boxes/granite.fsh @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/main.cpp b/demos/boxes/main.cpp index 6280dc0..568031e 100644 --- a/demos/boxes/main.cpp +++ b/demos/boxes/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/marble.fsh b/demos/boxes/marble.fsh index e5b57e0..fbd1f5c 100644 --- a/demos/boxes/marble.fsh +++ b/demos/boxes/marble.fsh @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/qtbox.cpp b/demos/boxes/qtbox.cpp index 3aaf985..f761b52 100644 --- a/demos/boxes/qtbox.cpp +++ b/demos/boxes/qtbox.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/qtbox.h b/demos/boxes/qtbox.h index 5bda7d1..71c1304 100644 --- a/demos/boxes/qtbox.h +++ b/demos/boxes/qtbox.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/reflection.fsh b/demos/boxes/reflection.fsh index f9c1170..50b0a4a 100644 --- a/demos/boxes/reflection.fsh +++ b/demos/boxes/reflection.fsh @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/refraction.fsh b/demos/boxes/refraction.fsh index 74700e9..c846d6a 100644 --- a/demos/boxes/refraction.fsh +++ b/demos/boxes/refraction.fsh @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/roundedbox.cpp b/demos/boxes/roundedbox.cpp index 4a3fd96..913cc54 100644 --- a/demos/boxes/roundedbox.cpp +++ b/demos/boxes/roundedbox.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/roundedbox.h b/demos/boxes/roundedbox.h index 508df75..a19f1a3 100644 --- a/demos/boxes/roundedbox.h +++ b/demos/boxes/roundedbox.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/scene.cpp b/demos/boxes/scene.cpp index 97953f2..9b94dc0 100644 --- a/demos/boxes/scene.cpp +++ b/demos/boxes/scene.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/scene.h b/demos/boxes/scene.h index 79daea9..d1c6526 100644 --- a/demos/boxes/scene.h +++ b/demos/boxes/scene.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/trackball.cpp b/demos/boxes/trackball.cpp index 7bfbf6f..8a6a014 100644 --- a/demos/boxes/trackball.cpp +++ b/demos/boxes/trackball.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/trackball.h b/demos/boxes/trackball.h index ba233e7..e43b00d 100644 --- a/demos/boxes/trackball.h +++ b/demos/boxes/trackball.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/boxes/wood.fsh b/demos/boxes/wood.fsh index c7bd4fc..8e47b69 100644 --- a/demos/boxes/wood.fsh +++ b/demos/boxes/wood.fsh @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/autosaver.cpp b/demos/browser/autosaver.cpp index 380eef8..1691471 100644 --- a/demos/browser/autosaver.cpp +++ b/demos/browser/autosaver.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/autosaver.h b/demos/browser/autosaver.h index be7fefa..2485cd3 100644 --- a/demos/browser/autosaver.h +++ b/demos/browser/autosaver.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/bookmarks.cpp b/demos/browser/bookmarks.cpp index 48fb148..730e35b 100644 --- a/demos/browser/bookmarks.cpp +++ b/demos/browser/bookmarks.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/bookmarks.h b/demos/browser/bookmarks.h index 167d405..d990430 100644 --- a/demos/browser/bookmarks.h +++ b/demos/browser/bookmarks.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/browserapplication.cpp b/demos/browser/browserapplication.cpp index ed95d32..41845fa 100644 --- a/demos/browser/browserapplication.cpp +++ b/demos/browser/browserapplication.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/browserapplication.h b/demos/browser/browserapplication.h index 88b4f2b..f9e121d 100644 --- a/demos/browser/browserapplication.h +++ b/demos/browser/browserapplication.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/browsermainwindow.cpp b/demos/browser/browsermainwindow.cpp index 50c2cf8..0b6db0c 100644 --- a/demos/browser/browsermainwindow.cpp +++ b/demos/browser/browsermainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/browsermainwindow.h b/demos/browser/browsermainwindow.h index 848085f..0080d88 100644 --- a/demos/browser/browsermainwindow.h +++ b/demos/browser/browsermainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/chasewidget.cpp b/demos/browser/chasewidget.cpp index 2e7bc71..284fbf5 100644 --- a/demos/browser/chasewidget.cpp +++ b/demos/browser/chasewidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/chasewidget.h b/demos/browser/chasewidget.h index 336aacd..4c2d805 100644 --- a/demos/browser/chasewidget.h +++ b/demos/browser/chasewidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/cookiejar.cpp b/demos/browser/cookiejar.cpp index 835b61b..5657255 100644 --- a/demos/browser/cookiejar.cpp +++ b/demos/browser/cookiejar.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/cookiejar.h b/demos/browser/cookiejar.h index 6a45c9b..3d8e707 100644 --- a/demos/browser/cookiejar.h +++ b/demos/browser/cookiejar.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/data/browser.svg b/demos/browser/data/browser.svg index e7ee2c5..0aefed4 100644 --- a/demos/browser/data/browser.svg +++ b/demos/browser/data/browser.svg @@ -276,7 +276,7 @@ - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). diff --git a/demos/browser/downloadmanager.cpp b/demos/browser/downloadmanager.cpp index ab68209..718556a 100644 --- a/demos/browser/downloadmanager.cpp +++ b/demos/browser/downloadmanager.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/downloadmanager.h b/demos/browser/downloadmanager.h index 415269f..59bb51d 100644 --- a/demos/browser/downloadmanager.h +++ b/demos/browser/downloadmanager.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/edittableview.cpp b/demos/browser/edittableview.cpp index 675307b..4c331fa 100644 --- a/demos/browser/edittableview.cpp +++ b/demos/browser/edittableview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/edittableview.h b/demos/browser/edittableview.h index 18f1379..1de0190 100644 --- a/demos/browser/edittableview.h +++ b/demos/browser/edittableview.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/edittreeview.cpp b/demos/browser/edittreeview.cpp index 0ee5e5e..aff1281 100644 --- a/demos/browser/edittreeview.cpp +++ b/demos/browser/edittreeview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/edittreeview.h b/demos/browser/edittreeview.h index a1a97e0..ac0777a 100644 --- a/demos/browser/edittreeview.h +++ b/demos/browser/edittreeview.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/history.cpp b/demos/browser/history.cpp index 386d65c..6e34eed 100644 --- a/demos/browser/history.cpp +++ b/demos/browser/history.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/history.h b/demos/browser/history.h index 9771dda..b003982 100644 --- a/demos/browser/history.h +++ b/demos/browser/history.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/main.cpp b/demos/browser/main.cpp index 036a0cd..ff6be67 100644 --- a/demos/browser/main.cpp +++ b/demos/browser/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/modelmenu.cpp b/demos/browser/modelmenu.cpp index fe5e750..8722f1b 100644 --- a/demos/browser/modelmenu.cpp +++ b/demos/browser/modelmenu.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/modelmenu.h b/demos/browser/modelmenu.h index ff2dbce..9a21491 100644 --- a/demos/browser/modelmenu.h +++ b/demos/browser/modelmenu.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/networkaccessmanager.cpp b/demos/browser/networkaccessmanager.cpp index 70a9305..9e717bb 100644 --- a/demos/browser/networkaccessmanager.cpp +++ b/demos/browser/networkaccessmanager.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/networkaccessmanager.h b/demos/browser/networkaccessmanager.h index e213034..76fc198 100644 --- a/demos/browser/networkaccessmanager.h +++ b/demos/browser/networkaccessmanager.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/searchlineedit.cpp b/demos/browser/searchlineedit.cpp index 239c5e7..56336dd 100644 --- a/demos/browser/searchlineedit.cpp +++ b/demos/browser/searchlineedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/searchlineedit.h b/demos/browser/searchlineedit.h index 5eb423e..d748636 100644 --- a/demos/browser/searchlineedit.h +++ b/demos/browser/searchlineedit.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/settings.cpp b/demos/browser/settings.cpp index fba781b..2bc9a7f 100644 --- a/demos/browser/settings.cpp +++ b/demos/browser/settings.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/settings.h b/demos/browser/settings.h index 136d3e2..0230dda 100644 --- a/demos/browser/settings.h +++ b/demos/browser/settings.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/squeezelabel.cpp b/demos/browser/squeezelabel.cpp index abe97f1..3c34a5a 100644 --- a/demos/browser/squeezelabel.cpp +++ b/demos/browser/squeezelabel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/squeezelabel.h b/demos/browser/squeezelabel.h index 43c019e..bc25580 100644 --- a/demos/browser/squeezelabel.h +++ b/demos/browser/squeezelabel.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/tabwidget.cpp b/demos/browser/tabwidget.cpp index cf1cd56..6fa1d25 100644 --- a/demos/browser/tabwidget.cpp +++ b/demos/browser/tabwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/tabwidget.h b/demos/browser/tabwidget.h index ce823ce..296655e 100644 --- a/demos/browser/tabwidget.h +++ b/demos/browser/tabwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/toolbarsearch.cpp b/demos/browser/toolbarsearch.cpp index f8540ad..c696bb7 100644 --- a/demos/browser/toolbarsearch.cpp +++ b/demos/browser/toolbarsearch.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/toolbarsearch.h b/demos/browser/toolbarsearch.h index 00f52f9..deb7a6e 100644 --- a/demos/browser/toolbarsearch.h +++ b/demos/browser/toolbarsearch.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/urllineedit.cpp b/demos/browser/urllineedit.cpp index 9f68a88..60a0979 100644 --- a/demos/browser/urllineedit.cpp +++ b/demos/browser/urllineedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/urllineedit.h b/demos/browser/urllineedit.h index 6cf5872..fd06260 100644 --- a/demos/browser/urllineedit.h +++ b/demos/browser/urllineedit.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/webview.cpp b/demos/browser/webview.cpp index 2cbd2f1..dcb9e92 100644 --- a/demos/browser/webview.cpp +++ b/demos/browser/webview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/webview.h b/demos/browser/webview.h index f81d8af..8c93f54 100644 --- a/demos/browser/webview.h +++ b/demos/browser/webview.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/xbel.cpp b/demos/browser/xbel.cpp index 9e93cf7..9ebd5db 100644 --- a/demos/browser/xbel.cpp +++ b/demos/browser/xbel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/browser/xbel.h b/demos/browser/xbel.h index 607f35b..94321c0 100644 --- a/demos/browser/xbel.h +++ b/demos/browser/xbel.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/chip/chip.cpp b/demos/chip/chip.cpp index 5478142..6f3b529 100644 --- a/demos/chip/chip.cpp +++ b/demos/chip/chip.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/chip/chip.h b/demos/chip/chip.h index a34efe8..dca63b7 100644 --- a/demos/chip/chip.h +++ b/demos/chip/chip.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/chip/main.cpp b/demos/chip/main.cpp index 2307542..a4353bf 100644 --- a/demos/chip/main.cpp +++ b/demos/chip/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/chip/mainwindow.cpp b/demos/chip/mainwindow.cpp index db56c59..825c388 100644 --- a/demos/chip/mainwindow.cpp +++ b/demos/chip/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/chip/mainwindow.h b/demos/chip/mainwindow.h index 2983d59..9c8ac03 100644 --- a/demos/chip/mainwindow.h +++ b/demos/chip/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/chip/view.cpp b/demos/chip/view.cpp index 7af3074..a80bf82 100644 --- a/demos/chip/view.cpp +++ b/demos/chip/view.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/chip/view.h b/demos/chip/view.h index 8047b8b..fc819df 100644 --- a/demos/chip/view.h +++ b/demos/chip/view.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/composition/composition.cpp b/demos/composition/composition.cpp index deca5dc..15f5529 100644 --- a/demos/composition/composition.cpp +++ b/demos/composition/composition.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/composition/composition.h b/demos/composition/composition.h index f5a9fc3..e1b5ed7 100644 --- a/demos/composition/composition.h +++ b/demos/composition/composition.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/composition/main.cpp b/demos/composition/main.cpp index aa8c139..f68d75f 100644 --- a/demos/composition/main.cpp +++ b/demos/composition/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/calculator/Core/Button.qml b/demos/declarative/calculator/Core/Button.qml index f37de48..997a169 100644 --- a/demos/declarative/calculator/Core/Button.qml +++ b/demos/declarative/calculator/Core/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/calculator/Core/Display.qml b/demos/declarative/calculator/Core/Display.qml index f928d3a..c75bc24 100644 --- a/demos/declarative/calculator/Core/Display.qml +++ b/demos/declarative/calculator/Core/Display.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/calculator/calculator.qml b/demos/declarative/calculator/calculator.qml index 3e1c650..13f228d 100644 --- a/demos/declarative/calculator/calculator.qml +++ b/demos/declarative/calculator/calculator.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/common/Progress.qml b/demos/declarative/flickr/common/Progress.qml index b928554..2bb4f1a 100644 --- a/demos/declarative/flickr/common/Progress.qml +++ b/demos/declarative/flickr/common/Progress.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/common/RssModel.qml b/demos/declarative/flickr/common/RssModel.qml index 0c1c834..172fdf3 100644 --- a/demos/declarative/flickr/common/RssModel.qml +++ b/demos/declarative/flickr/common/RssModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/common/ScrollBar.qml b/demos/declarative/flickr/common/ScrollBar.qml index dfe3cbf..1a9f6d8 100644 --- a/demos/declarative/flickr/common/ScrollBar.qml +++ b/demos/declarative/flickr/common/ScrollBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/common/Slider.qml b/demos/declarative/flickr/common/Slider.qml index edccc7d..2d35ee4 100644 --- a/demos/declarative/flickr/common/Slider.qml +++ b/demos/declarative/flickr/common/Slider.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/flickr-90.qml b/demos/declarative/flickr/flickr-90.qml index 31b1d91..a3db5c3 100644 --- a/demos/declarative/flickr/flickr-90.qml +++ b/demos/declarative/flickr/flickr-90.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/flickr.qml b/demos/declarative/flickr/flickr.qml index 740ee35..11470a8 100644 --- a/demos/declarative/flickr/flickr.qml +++ b/demos/declarative/flickr/flickr.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/mobile/Button.qml b/demos/declarative/flickr/mobile/Button.qml index 74a7dbb..5390115 100644 --- a/demos/declarative/flickr/mobile/Button.qml +++ b/demos/declarative/flickr/mobile/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/mobile/GridDelegate.qml b/demos/declarative/flickr/mobile/GridDelegate.qml index 8f01292..06e0b85 100644 --- a/demos/declarative/flickr/mobile/GridDelegate.qml +++ b/demos/declarative/flickr/mobile/GridDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/mobile/ImageDetails.qml b/demos/declarative/flickr/mobile/ImageDetails.qml index 9d1464e..1f49160 100644 --- a/demos/declarative/flickr/mobile/ImageDetails.qml +++ b/demos/declarative/flickr/mobile/ImageDetails.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/mobile/ListDelegate.qml b/demos/declarative/flickr/mobile/ListDelegate.qml index 0773547..89dfb54 100644 --- a/demos/declarative/flickr/mobile/ListDelegate.qml +++ b/demos/declarative/flickr/mobile/ListDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/mobile/TitleBar.qml b/demos/declarative/flickr/mobile/TitleBar.qml index f283307..ec5a5c0 100644 --- a/demos/declarative/flickr/mobile/TitleBar.qml +++ b/demos/declarative/flickr/mobile/TitleBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/flickr/mobile/ToolBar.qml b/demos/declarative/flickr/mobile/ToolBar.qml index d8abb14..2412612 100644 --- a/demos/declarative/flickr/mobile/ToolBar.qml +++ b/demos/declarative/flickr/mobile/ToolBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/minehunt/MinehuntCore/Explosion.qml b/demos/declarative/minehunt/MinehuntCore/Explosion.qml index f04d033..33eabf0 100644 --- a/demos/declarative/minehunt/MinehuntCore/Explosion.qml +++ b/demos/declarative/minehunt/MinehuntCore/Explosion.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/minehunt/MinehuntCore/Tile.qml b/demos/declarative/minehunt/MinehuntCore/Tile.qml index 1853ed9..247be8c 100644 --- a/demos/declarative/minehunt/MinehuntCore/Tile.qml +++ b/demos/declarative/minehunt/MinehuntCore/Tile.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/minehunt/main.cpp b/demos/declarative/minehunt/main.cpp index 2b286ef..23b49d6 100644 --- a/demos/declarative/minehunt/main.cpp +++ b/demos/declarative/minehunt/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/minehunt/minehunt.cpp b/demos/declarative/minehunt/minehunt.cpp index aaaaaac..4da66ac 100644 --- a/demos/declarative/minehunt/minehunt.cpp +++ b/demos/declarative/minehunt/minehunt.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/minehunt/minehunt.h b/demos/declarative/minehunt/minehunt.h index 962cf3d..a276b59 100644 --- a/demos/declarative/minehunt/minehunt.h +++ b/demos/declarative/minehunt/minehunt.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/minehunt/minehunt.qml b/demos/declarative/minehunt/minehunt.qml index eb67b06..1a69c95 100644 --- a/demos/declarative/minehunt/minehunt.qml +++ b/demos/declarative/minehunt/minehunt.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/photoviewer/PhotoViewerCore/AlbumDelegate.qml b/demos/declarative/photoviewer/PhotoViewerCore/AlbumDelegate.qml index 9001033..9fcd68b 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/AlbumDelegate.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/AlbumDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/photoviewer/PhotoViewerCore/BusyIndicator.qml b/demos/declarative/photoviewer/PhotoViewerCore/BusyIndicator.qml index 7b28930..c6e7606 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/BusyIndicator.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/BusyIndicator.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/photoviewer/PhotoViewerCore/Button.qml b/demos/declarative/photoviewer/PhotoViewerCore/Button.qml index 29f2bb7..19cb7bf 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/Button.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml b/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml index 06f8062..641e6a8 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/EditableButton.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/photoviewer/PhotoViewerCore/PhotoDelegate.qml b/demos/declarative/photoviewer/PhotoViewerCore/PhotoDelegate.qml index 5948b5d..73b8fa7 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/PhotoDelegate.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/PhotoDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/photoviewer/PhotoViewerCore/ProgressBar.qml b/demos/declarative/photoviewer/PhotoViewerCore/ProgressBar.qml index a0756ae..5498c6e 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/ProgressBar.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/ProgressBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/photoviewer/PhotoViewerCore/RssModel.qml b/demos/declarative/photoviewer/PhotoViewerCore/RssModel.qml index 15bb67f..01361a6 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/RssModel.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/RssModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/photoviewer/PhotoViewerCore/Tag.qml b/demos/declarative/photoviewer/PhotoViewerCore/Tag.qml index 9358975..cb93b58 100644 --- a/demos/declarative/photoviewer/PhotoViewerCore/Tag.qml +++ b/demos/declarative/photoviewer/PhotoViewerCore/Tag.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/photoviewer/photoviewer.qml b/demos/declarative/photoviewer/photoviewer.qml index 0f59c64..468f2c8 100644 --- a/demos/declarative/photoviewer/photoviewer.qml +++ b/demos/declarative/photoviewer/photoviewer.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/rssnews/content/BusyIndicator.qml b/demos/declarative/rssnews/content/BusyIndicator.qml index e305cbe..bc13180 100644 --- a/demos/declarative/rssnews/content/BusyIndicator.qml +++ b/demos/declarative/rssnews/content/BusyIndicator.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/rssnews/content/CategoryDelegate.qml b/demos/declarative/rssnews/content/CategoryDelegate.qml index c4fa8cc..29f2a04 100644 --- a/demos/declarative/rssnews/content/CategoryDelegate.qml +++ b/demos/declarative/rssnews/content/CategoryDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/rssnews/content/NewsDelegate.qml b/demos/declarative/rssnews/content/NewsDelegate.qml index cf88f4e..333e018 100644 --- a/demos/declarative/rssnews/content/NewsDelegate.qml +++ b/demos/declarative/rssnews/content/NewsDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/rssnews/content/RssFeeds.qml b/demos/declarative/rssnews/content/RssFeeds.qml index 37c4b69..970719a 100644 --- a/demos/declarative/rssnews/content/RssFeeds.qml +++ b/demos/declarative/rssnews/content/RssFeeds.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/rssnews/content/ScrollBar.qml b/demos/declarative/rssnews/content/ScrollBar.qml index f20f0aa..79f362d 100644 --- a/demos/declarative/rssnews/content/ScrollBar.qml +++ b/demos/declarative/rssnews/content/ScrollBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/rssnews/rssnews.qml b/demos/declarative/rssnews/rssnews.qml index f6fe188..3eaa1a4 100644 --- a/demos/declarative/rssnews/rssnews.qml +++ b/demos/declarative/rssnews/rssnews.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/samegame/SamegameCore/BoomBlock.qml b/demos/declarative/samegame/SamegameCore/BoomBlock.qml index afda29c..da51230 100644 --- a/demos/declarative/samegame/SamegameCore/BoomBlock.qml +++ b/demos/declarative/samegame/SamegameCore/BoomBlock.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/samegame/SamegameCore/Button.qml b/demos/declarative/samegame/SamegameCore/Button.qml index 140b196..aea4e53 100644 --- a/demos/declarative/samegame/SamegameCore/Button.qml +++ b/demos/declarative/samegame/SamegameCore/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/samegame/SamegameCore/Dialog.qml b/demos/declarative/samegame/SamegameCore/Dialog.qml index e1f3900..b11c65c 100644 --- a/demos/declarative/samegame/SamegameCore/Dialog.qml +++ b/demos/declarative/samegame/SamegameCore/Dialog.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/samegame/samegame.qml b/demos/declarative/samegame/samegame.qml index ab49c04..ebb8e4a 100644 --- a/demos/declarative/samegame/samegame.qml +++ b/demos/declarative/samegame/samegame.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/snake/content/Button.qml b/demos/declarative/snake/content/Button.qml index cf4519d..420b446 100644 --- a/demos/declarative/snake/content/Button.qml +++ b/demos/declarative/snake/content/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/snake/content/Cookie.qml b/demos/declarative/snake/content/Cookie.qml index b4af9fe..a076978 100644 --- a/demos/declarative/snake/content/Cookie.qml +++ b/demos/declarative/snake/content/Cookie.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/snake/content/HighScoreModel.qml b/demos/declarative/snake/content/HighScoreModel.qml index e3a4704..b46e564 100644 --- a/demos/declarative/snake/content/HighScoreModel.qml +++ b/demos/declarative/snake/content/HighScoreModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/snake/content/Link.qml b/demos/declarative/snake/content/Link.qml index 16b6e1e..82f1d92 100644 --- a/demos/declarative/snake/content/Link.qml +++ b/demos/declarative/snake/content/Link.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/snake/content/Skull.qml b/demos/declarative/snake/content/Skull.qml index 1a3ff7e..fcd0495 100644 --- a/demos/declarative/snake/content/Skull.qml +++ b/demos/declarative/snake/content/Skull.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/snake/snake.qml b/demos/declarative/snake/snake.qml index af86aac..e8b7da2 100644 --- a/demos/declarative/snake/snake.qml +++ b/demos/declarative/snake/snake.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/TwitterCore/Button.qml b/demos/declarative/twitter/TwitterCore/Button.qml index a1fc2a2..95cf5eb 100644 --- a/demos/declarative/twitter/TwitterCore/Button.qml +++ b/demos/declarative/twitter/TwitterCore/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/TwitterCore/FatDelegate.qml b/demos/declarative/twitter/TwitterCore/FatDelegate.qml index 896abbe..eafa92b 100644 --- a/demos/declarative/twitter/TwitterCore/FatDelegate.qml +++ b/demos/declarative/twitter/TwitterCore/FatDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/TwitterCore/Input.qml b/demos/declarative/twitter/TwitterCore/Input.qml index b15f0d5..711f145 100644 --- a/demos/declarative/twitter/TwitterCore/Input.qml +++ b/demos/declarative/twitter/TwitterCore/Input.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/TwitterCore/Loading.qml b/demos/declarative/twitter/TwitterCore/Loading.qml index afeafa0..82a50be 100644 --- a/demos/declarative/twitter/TwitterCore/Loading.qml +++ b/demos/declarative/twitter/TwitterCore/Loading.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml b/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml index bc8e0de..390cfea 100644 --- a/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml +++ b/demos/declarative/twitter/TwitterCore/MultiTitleBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/TwitterCore/RssModel.qml b/demos/declarative/twitter/TwitterCore/RssModel.qml index 276df62..a436a71 100644 --- a/demos/declarative/twitter/TwitterCore/RssModel.qml +++ b/demos/declarative/twitter/TwitterCore/RssModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/TwitterCore/SearchView.qml b/demos/declarative/twitter/TwitterCore/SearchView.qml index effab30..5277a13 100644 --- a/demos/declarative/twitter/TwitterCore/SearchView.qml +++ b/demos/declarative/twitter/TwitterCore/SearchView.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/TwitterCore/TitleBar.qml b/demos/declarative/twitter/TwitterCore/TitleBar.qml index 19da491..c2d5a8e 100644 --- a/demos/declarative/twitter/TwitterCore/TitleBar.qml +++ b/demos/declarative/twitter/TwitterCore/TitleBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/TwitterCore/ToolBar.qml b/demos/declarative/twitter/TwitterCore/ToolBar.qml index 4ef92ff..8a2eba4 100644 --- a/demos/declarative/twitter/TwitterCore/ToolBar.qml +++ b/demos/declarative/twitter/TwitterCore/ToolBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/TwitterCore/UserModel.qml b/demos/declarative/twitter/TwitterCore/UserModel.qml index 013b827..58e15a7 100644 --- a/demos/declarative/twitter/TwitterCore/UserModel.qml +++ b/demos/declarative/twitter/TwitterCore/UserModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/twitter/twitter.qml b/demos/declarative/twitter/twitter.qml index 74bab37..d5336fd 100644 --- a/demos/declarative/twitter/twitter.qml +++ b/demos/declarative/twitter/twitter.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/webbrowser/content/Button.qml b/demos/declarative/webbrowser/content/Button.qml index 2da1c11..fc549cd 100644 --- a/demos/declarative/webbrowser/content/Button.qml +++ b/demos/declarative/webbrowser/content/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/webbrowser/content/FlickableWebView.qml b/demos/declarative/webbrowser/content/FlickableWebView.qml index 6f4e09c..737d11f 100644 --- a/demos/declarative/webbrowser/content/FlickableWebView.qml +++ b/demos/declarative/webbrowser/content/FlickableWebView.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/webbrowser/content/Header.qml b/demos/declarative/webbrowser/content/Header.qml index 88e3000..740fe5e 100644 --- a/demos/declarative/webbrowser/content/Header.qml +++ b/demos/declarative/webbrowser/content/Header.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/webbrowser/content/ScrollBar.qml b/demos/declarative/webbrowser/content/ScrollBar.qml index 19309fa..e787730 100644 --- a/demos/declarative/webbrowser/content/ScrollBar.qml +++ b/demos/declarative/webbrowser/content/ScrollBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/webbrowser/content/UrlInput.qml b/demos/declarative/webbrowser/content/UrlInput.qml index 0468b64..f34fe45 100644 --- a/demos/declarative/webbrowser/content/UrlInput.qml +++ b/demos/declarative/webbrowser/content/UrlInput.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/declarative/webbrowser/webbrowser.qml b/demos/declarative/webbrowser/webbrowser.qml index a21fa0b..84afc91 100644 --- a/demos/declarative/webbrowser/webbrowser.qml +++ b/demos/declarative/webbrowser/webbrowser.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/deform/main.cpp b/demos/deform/main.cpp index bef075a..e2d4c04 100644 --- a/demos/deform/main.cpp +++ b/demos/deform/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/deform/pathdeform.cpp b/demos/deform/pathdeform.cpp index 636d103..15a79b6 100644 --- a/demos/deform/pathdeform.cpp +++ b/demos/deform/pathdeform.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/deform/pathdeform.h b/demos/deform/pathdeform.h index cc6ca1b..1305543 100644 --- a/demos/deform/pathdeform.h +++ b/demos/deform/pathdeform.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/AddressBar.cpp b/demos/embedded/anomaly/src/AddressBar.cpp index f83876e..67b9c54 100644 --- a/demos/embedded/anomaly/src/AddressBar.cpp +++ b/demos/embedded/anomaly/src/AddressBar.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/AddressBar.h b/demos/embedded/anomaly/src/AddressBar.h index 4999e96..a4cabc4 100644 --- a/demos/embedded/anomaly/src/AddressBar.h +++ b/demos/embedded/anomaly/src/AddressBar.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/BookmarksView.cpp b/demos/embedded/anomaly/src/BookmarksView.cpp index d6e6035..1a03f14 100644 --- a/demos/embedded/anomaly/src/BookmarksView.cpp +++ b/demos/embedded/anomaly/src/BookmarksView.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/BookmarksView.h b/demos/embedded/anomaly/src/BookmarksView.h index 86cd214..f9fb9d9 100644 --- a/demos/embedded/anomaly/src/BookmarksView.h +++ b/demos/embedded/anomaly/src/BookmarksView.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/BrowserView.cpp b/demos/embedded/anomaly/src/BrowserView.cpp index 73d0b70..34bea3b 100644 --- a/demos/embedded/anomaly/src/BrowserView.cpp +++ b/demos/embedded/anomaly/src/BrowserView.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/BrowserView.h b/demos/embedded/anomaly/src/BrowserView.h index 8981582..0dc83fc 100644 --- a/demos/embedded/anomaly/src/BrowserView.h +++ b/demos/embedded/anomaly/src/BrowserView.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/BrowserWindow.cpp b/demos/embedded/anomaly/src/BrowserWindow.cpp index 9d90254..be7432b 100644 --- a/demos/embedded/anomaly/src/BrowserWindow.cpp +++ b/demos/embedded/anomaly/src/BrowserWindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/BrowserWindow.h b/demos/embedded/anomaly/src/BrowserWindow.h index d70ea7f..2f4793d 100644 --- a/demos/embedded/anomaly/src/BrowserWindow.h +++ b/demos/embedded/anomaly/src/BrowserWindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/ControlStrip.cpp b/demos/embedded/anomaly/src/ControlStrip.cpp index c9c81c0..2a51a74 100644 --- a/demos/embedded/anomaly/src/ControlStrip.cpp +++ b/demos/embedded/anomaly/src/ControlStrip.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/ControlStrip.h b/demos/embedded/anomaly/src/ControlStrip.h index b6003a1..f72e488 100644 --- a/demos/embedded/anomaly/src/ControlStrip.h +++ b/demos/embedded/anomaly/src/ControlStrip.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/HomeView.cpp b/demos/embedded/anomaly/src/HomeView.cpp index 8052172..b69e6a6 100644 --- a/demos/embedded/anomaly/src/HomeView.cpp +++ b/demos/embedded/anomaly/src/HomeView.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/HomeView.h b/demos/embedded/anomaly/src/HomeView.h index 4844dd7..9b68cb7 100644 --- a/demos/embedded/anomaly/src/HomeView.h +++ b/demos/embedded/anomaly/src/HomeView.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/Main.cpp b/demos/embedded/anomaly/src/Main.cpp index 78bc9b1..cfb2851 100644 --- a/demos/embedded/anomaly/src/Main.cpp +++ b/demos/embedded/anomaly/src/Main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/TitleBar.cpp b/demos/embedded/anomaly/src/TitleBar.cpp index da68dcb..e9244d1 100644 --- a/demos/embedded/anomaly/src/TitleBar.cpp +++ b/demos/embedded/anomaly/src/TitleBar.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/TitleBar.h b/demos/embedded/anomaly/src/TitleBar.h index b5ec288..8cee108 100644 --- a/demos/embedded/anomaly/src/TitleBar.h +++ b/demos/embedded/anomaly/src/TitleBar.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/ZoomStrip.cpp b/demos/embedded/anomaly/src/ZoomStrip.cpp index 3bf8129..69b44ba 100644 --- a/demos/embedded/anomaly/src/ZoomStrip.cpp +++ b/demos/embedded/anomaly/src/ZoomStrip.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/ZoomStrip.h b/demos/embedded/anomaly/src/ZoomStrip.h index baef922..80ceaf6 100644 --- a/demos/embedded/anomaly/src/ZoomStrip.h +++ b/demos/embedded/anomaly/src/ZoomStrip.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/flickcharm.cpp b/demos/embedded/anomaly/src/flickcharm.cpp index 9ad7c40..3524301 100644 --- a/demos/embedded/anomaly/src/flickcharm.cpp +++ b/demos/embedded/anomaly/src/flickcharm.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/flickcharm.h b/demos/embedded/anomaly/src/flickcharm.h index 1164028..77b3bcc 100644 --- a/demos/embedded/anomaly/src/flickcharm.h +++ b/demos/embedded/anomaly/src/flickcharm.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/webview.cpp b/demos/embedded/anomaly/src/webview.cpp index 5cb913b..b794b7c 100644 --- a/demos/embedded/anomaly/src/webview.cpp +++ b/demos/embedded/anomaly/src/webview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/anomaly/src/webview.h b/demos/embedded/anomaly/src/webview.h index ecd9f5a..a73ab56 100644 --- a/demos/embedded/anomaly/src/webview.h +++ b/demos/embedded/anomaly/src/webview.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/desktopservices/contenttab.cpp b/demos/embedded/desktopservices/contenttab.cpp index 8b344ce..c847979 100644 --- a/demos/embedded/desktopservices/contenttab.cpp +++ b/demos/embedded/desktopservices/contenttab.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/desktopservices/contenttab.h b/demos/embedded/desktopservices/contenttab.h index 72c7f4c..ec9aa8a 100644 --- a/demos/embedded/desktopservices/contenttab.h +++ b/demos/embedded/desktopservices/contenttab.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/desktopservices/desktopwidget.cpp b/demos/embedded/desktopservices/desktopwidget.cpp index ff3cb09..c265279 100644 --- a/demos/embedded/desktopservices/desktopwidget.cpp +++ b/demos/embedded/desktopservices/desktopwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/desktopservices/desktopwidget.h b/demos/embedded/desktopservices/desktopwidget.h index 6781c05..3de8a6e 100644 --- a/demos/embedded/desktopservices/desktopwidget.h +++ b/demos/embedded/desktopservices/desktopwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/desktopservices/linktab.cpp b/demos/embedded/desktopservices/linktab.cpp index 62251bd..70621a3 100644 --- a/demos/embedded/desktopservices/linktab.cpp +++ b/demos/embedded/desktopservices/linktab.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/desktopservices/linktab.h b/demos/embedded/desktopservices/linktab.h index 785432c..310e4bf 100644 --- a/demos/embedded/desktopservices/linktab.h +++ b/demos/embedded/desktopservices/linktab.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/desktopservices/main.cpp b/demos/embedded/desktopservices/main.cpp index baa33ab..b174f92 100644 --- a/demos/embedded/desktopservices/main.cpp +++ b/demos/embedded/desktopservices/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/digiflip/digiflip.cpp b/demos/embedded/digiflip/digiflip.cpp index 96c3d61..d756f21 100644 --- a/demos/embedded/digiflip/digiflip.cpp +++ b/demos/embedded/digiflip/digiflip.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp index cebbc12..297806a 100644 --- a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp +++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.h b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.h index e183048..851c471 100644 --- a/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.h +++ b/demos/embedded/embeddedsvgviewer/embeddedsvgviewer.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/embeddedsvgviewer/main.cpp b/demos/embedded/embeddedsvgviewer/main.cpp index e46b667..7b13b69 100644 --- a/demos/embedded/embeddedsvgviewer/main.cpp +++ b/demos/embedded/embeddedsvgviewer/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/flickable/flickable.cpp b/demos/embedded/flickable/flickable.cpp index fbc6a06..e2d240d 100644 --- a/demos/embedded/flickable/flickable.cpp +++ b/demos/embedded/flickable/flickable.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/flickable/flickable.h b/demos/embedded/flickable/flickable.h index 0e04620..69c379c 100644 --- a/demos/embedded/flickable/flickable.h +++ b/demos/embedded/flickable/flickable.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/flickable/main.cpp b/demos/embedded/flickable/main.cpp index d519f80..431a99b 100644 --- a/demos/embedded/flickable/main.cpp +++ b/demos/embedded/flickable/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/flightinfo/flightinfo.cpp b/demos/embedded/flightinfo/flightinfo.cpp index 425d6aa..6f7c039 100644 --- a/demos/embedded/flightinfo/flightinfo.cpp +++ b/demos/embedded/flightinfo/flightinfo.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/fluidlauncher/demoapplication.cpp b/demos/embedded/fluidlauncher/demoapplication.cpp index f628855..8de5058 100644 --- a/demos/embedded/fluidlauncher/demoapplication.cpp +++ b/demos/embedded/fluidlauncher/demoapplication.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/fluidlauncher/demoapplication.h b/demos/embedded/fluidlauncher/demoapplication.h index 9c619a0..f2a3244 100644 --- a/demos/embedded/fluidlauncher/demoapplication.h +++ b/demos/embedded/fluidlauncher/demoapplication.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/fluidlauncher/fluidlauncher.cpp b/demos/embedded/fluidlauncher/fluidlauncher.cpp index 19eb8d2..2ba8950 100644 --- a/demos/embedded/fluidlauncher/fluidlauncher.cpp +++ b/demos/embedded/fluidlauncher/fluidlauncher.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/fluidlauncher/fluidlauncher.h b/demos/embedded/fluidlauncher/fluidlauncher.h index 9346aa3..30d2778 100644 --- a/demos/embedded/fluidlauncher/fluidlauncher.h +++ b/demos/embedded/fluidlauncher/fluidlauncher.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/fluidlauncher/main.cpp b/demos/embedded/fluidlauncher/main.cpp index 7ff3663..b895fb5 100644 --- a/demos/embedded/fluidlauncher/main.cpp +++ b/demos/embedded/fluidlauncher/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/fluidlauncher/pictureflow.cpp b/demos/embedded/fluidlauncher/pictureflow.cpp index d606269..dd00b59 100644 --- a/demos/embedded/fluidlauncher/pictureflow.cpp +++ b/demos/embedded/fluidlauncher/pictureflow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/fluidlauncher/pictureflow.h b/demos/embedded/fluidlauncher/pictureflow.h index 835d81b..c25a340 100644 --- a/demos/embedded/fluidlauncher/pictureflow.h +++ b/demos/embedded/fluidlauncher/pictureflow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/fluidlauncher/slideshow.cpp b/demos/embedded/fluidlauncher/slideshow.cpp index 0ce5eb6..e96c493 100644 --- a/demos/embedded/fluidlauncher/slideshow.cpp +++ b/demos/embedded/fluidlauncher/slideshow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/fluidlauncher/slideshow.h b/demos/embedded/fluidlauncher/slideshow.h index 1393505..ec0cf11 100644 --- a/demos/embedded/fluidlauncher/slideshow.h +++ b/demos/embedded/fluidlauncher/slideshow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/lightmaps/lightmaps.cpp b/demos/embedded/lightmaps/lightmaps.cpp index 2eb1733..dfbef06 100644 --- a/demos/embedded/lightmaps/lightmaps.cpp +++ b/demos/embedded/lightmaps/lightmaps.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/qmlcalculator/qmlcalculator.cpp b/demos/embedded/qmlcalculator/qmlcalculator.cpp index 6c41e61..55b3a1e 100644 --- a/demos/embedded/qmlcalculator/qmlcalculator.cpp +++ b/demos/embedded/qmlcalculator/qmlcalculator.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/qmlclocks/qmlclocks.cpp b/demos/embedded/qmlclocks/qmlclocks.cpp index a09801b..8c4a64d 100644 --- a/demos/embedded/qmlclocks/qmlclocks.cpp +++ b/demos/embedded/qmlclocks/qmlclocks.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/qmldialcontrol/qmldialcontrol.cpp b/demos/embedded/qmldialcontrol/qmldialcontrol.cpp index 56b21d7..cb6c966 100644 --- a/demos/embedded/qmldialcontrol/qmldialcontrol.cpp +++ b/demos/embedded/qmldialcontrol/qmldialcontrol.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/qmleasing/qmleasing.cpp b/demos/embedded/qmleasing/qmleasing.cpp index 713fe67..f0a23b6 100644 --- a/demos/embedded/qmleasing/qmleasing.cpp +++ b/demos/embedded/qmleasing/qmleasing.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/qmlflickr/qmlflickr.cpp b/demos/embedded/qmlflickr/qmlflickr.cpp index c05806c..307d35c 100644 --- a/demos/embedded/qmlflickr/qmlflickr.cpp +++ b/demos/embedded/qmlflickr/qmlflickr.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp b/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp index d9cf67c..5682fd6 100644 --- a/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp +++ b/demos/embedded/qmlphotoviewer/qmlphotoviewer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/qmltwitter/qmltwitter.cpp b/demos/embedded/qmltwitter/qmltwitter.cpp index 30c4601..3833e50 100644 --- a/demos/embedded/qmltwitter/qmltwitter.cpp +++ b/demos/embedded/qmltwitter/qmltwitter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/raycasting/raycasting.cpp b/demos/embedded/raycasting/raycasting.cpp index 21aa2c3..8ca4f8b 100644 --- a/demos/embedded/raycasting/raycasting.cpp +++ b/demos/embedded/raycasting/raycasting.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/styledemo/main.cpp b/demos/embedded/styledemo/main.cpp index e06ee7d..395d405 100644 --- a/demos/embedded/styledemo/main.cpp +++ b/demos/embedded/styledemo/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/styledemo/stylewidget.cpp b/demos/embedded/styledemo/stylewidget.cpp index df8c5b0..c40e908 100644 --- a/demos/embedded/styledemo/stylewidget.cpp +++ b/demos/embedded/styledemo/stylewidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/styledemo/stylewidget.h b/demos/embedded/styledemo/stylewidget.h index 6415d2f..6339f7a 100644 --- a/demos/embedded/styledemo/stylewidget.h +++ b/demos/embedded/styledemo/stylewidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embedded/weatherinfo/weatherinfo.cpp b/demos/embedded/weatherinfo/weatherinfo.cpp index 3e0226a..2ab18ef 100644 --- a/demos/embedded/weatherinfo/weatherinfo.cpp +++ b/demos/embedded/weatherinfo/weatherinfo.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embeddeddialogs/customproxy.cpp b/demos/embeddeddialogs/customproxy.cpp index bd56f5a..5eb62a5 100644 --- a/demos/embeddeddialogs/customproxy.cpp +++ b/demos/embeddeddialogs/customproxy.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embeddeddialogs/customproxy.h b/demos/embeddeddialogs/customproxy.h index 3804a8a..67d2152 100644 --- a/demos/embeddeddialogs/customproxy.h +++ b/demos/embeddeddialogs/customproxy.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embeddeddialogs/embeddeddialog.cpp b/demos/embeddeddialogs/embeddeddialog.cpp index be4a57f..e359afe 100644 --- a/demos/embeddeddialogs/embeddeddialog.cpp +++ b/demos/embeddeddialogs/embeddeddialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embeddeddialogs/embeddeddialog.h b/demos/embeddeddialogs/embeddeddialog.h index a9baa85..54263f6 100644 --- a/demos/embeddeddialogs/embeddeddialog.h +++ b/demos/embeddeddialogs/embeddeddialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/embeddeddialogs/main.cpp b/demos/embeddeddialogs/main.cpp index f827769..01f1ca9 100644 --- a/demos/embeddeddialogs/main.cpp +++ b/demos/embeddeddialogs/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/gradients/gradients.cpp b/demos/gradients/gradients.cpp index 6449ef5..8dfc684 100644 --- a/demos/gradients/gradients.cpp +++ b/demos/gradients/gradients.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/gradients/gradients.h b/demos/gradients/gradients.h index f8c4f8b..bdd5c71 100644 --- a/demos/gradients/gradients.h +++ b/demos/gradients/gradients.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/gradients/main.cpp b/demos/gradients/main.cpp index 8291e85..ccb78bf 100644 --- a/demos/gradients/main.cpp +++ b/demos/gradients/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/interview/main.cpp b/demos/interview/main.cpp index cc6c952..85d0e96 100644 --- a/demos/interview/main.cpp +++ b/demos/interview/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/interview/model.cpp b/demos/interview/model.cpp index 840bc60..12796d5 100644 --- a/demos/interview/model.cpp +++ b/demos/interview/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/interview/model.h b/demos/interview/model.h index c7c15f7..74ebff7 100644 --- a/demos/interview/model.h +++ b/demos/interview/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/macmainwindow/macmainwindow.h b/demos/macmainwindow/macmainwindow.h index 2f9b5ac..4c2c638 100644 --- a/demos/macmainwindow/macmainwindow.h +++ b/demos/macmainwindow/macmainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/macmainwindow/macmainwindow.mm b/demos/macmainwindow/macmainwindow.mm index a429271..6aed242 100644 --- a/demos/macmainwindow/macmainwindow.mm +++ b/demos/macmainwindow/macmainwindow.mm @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/macmainwindow/main.cpp b/demos/macmainwindow/main.cpp index ff1e9a8..0b513f8 100644 --- a/demos/macmainwindow/main.cpp +++ b/demos/macmainwindow/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/mainwindow/colorswatch.cpp b/demos/mainwindow/colorswatch.cpp index aab4f03..9d821f6 100644 --- a/demos/mainwindow/colorswatch.cpp +++ b/demos/mainwindow/colorswatch.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/mainwindow/colorswatch.h b/demos/mainwindow/colorswatch.h index 90036a7..18547e0 100644 --- a/demos/mainwindow/colorswatch.h +++ b/demos/mainwindow/colorswatch.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/mainwindow/main.cpp b/demos/mainwindow/main.cpp index d5849b2..7e136da 100644 --- a/demos/mainwindow/main.cpp +++ b/demos/mainwindow/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/mainwindow/mainwindow.cpp b/demos/mainwindow/mainwindow.cpp index 350cefa..4888686 100644 --- a/demos/mainwindow/mainwindow.cpp +++ b/demos/mainwindow/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/mainwindow/mainwindow.h b/demos/mainwindow/mainwindow.h index a900d95..fec3233 100644 --- a/demos/mainwindow/mainwindow.h +++ b/demos/mainwindow/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/mainwindow/toolbar.cpp b/demos/mainwindow/toolbar.cpp index dd12419..c569401 100644 --- a/demos/mainwindow/toolbar.cpp +++ b/demos/mainwindow/toolbar.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/mainwindow/toolbar.h b/demos/mainwindow/toolbar.h index b46c33c..1cca1fc 100644 --- a/demos/mainwindow/toolbar.h +++ b/demos/mainwindow/toolbar.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/pathstroke/main.cpp b/demos/pathstroke/main.cpp index 534b233..2909a0c 100644 --- a/demos/pathstroke/main.cpp +++ b/demos/pathstroke/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/pathstroke/pathstroke.cpp b/demos/pathstroke/pathstroke.cpp index 257d02a..c52f231 100644 --- a/demos/pathstroke/pathstroke.cpp +++ b/demos/pathstroke/pathstroke.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/pathstroke/pathstroke.h b/demos/pathstroke/pathstroke.h index fd8b937..c35c9e8 100644 --- a/demos/pathstroke/pathstroke.h +++ b/demos/pathstroke/pathstroke.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qmediaplayer/main.cpp b/demos/qmediaplayer/main.cpp index 9f15e43..af2a330 100644 --- a/demos/qmediaplayer/main.cpp +++ b/demos/qmediaplayer/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qmediaplayer/mediaplayer.cpp b/demos/qmediaplayer/mediaplayer.cpp index 5bf7d6d..126031e 100644 --- a/demos/qmediaplayer/mediaplayer.cpp +++ b/demos/qmediaplayer/mediaplayer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qmediaplayer/mediaplayer.h b/demos/qmediaplayer/mediaplayer.h index 73450fe..7803321 100644 --- a/demos/qmediaplayer/mediaplayer.h +++ b/demos/qmediaplayer/mediaplayer.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/colors.cpp b/demos/qtdemo/colors.cpp index 802d77d..27cbf5e 100644 --- a/demos/qtdemo/colors.cpp +++ b/demos/qtdemo/colors.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/colors.h b/demos/qtdemo/colors.h index 1e0b795..8e8862a 100644 --- a/demos/qtdemo/colors.h +++ b/demos/qtdemo/colors.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/demoitem.cpp b/demos/qtdemo/demoitem.cpp index 0a5f41b..5343de6 100644 --- a/demos/qtdemo/demoitem.cpp +++ b/demos/qtdemo/demoitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/demoitem.h b/demos/qtdemo/demoitem.h index d1a445a..2816483 100644 --- a/demos/qtdemo/demoitem.h +++ b/demos/qtdemo/demoitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/demoitemanimation.cpp b/demos/qtdemo/demoitemanimation.cpp index e5ebd5c..820b572 100644 --- a/demos/qtdemo/demoitemanimation.cpp +++ b/demos/qtdemo/demoitemanimation.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/demoitemanimation.h b/demos/qtdemo/demoitemanimation.h index 3493960..3aeb58c 100644 --- a/demos/qtdemo/demoitemanimation.h +++ b/demos/qtdemo/demoitemanimation.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/demoscene.cpp b/demos/qtdemo/demoscene.cpp index 0befbab..449ec84 100644 --- a/demos/qtdemo/demoscene.cpp +++ b/demos/qtdemo/demoscene.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/demoscene.h b/demos/qtdemo/demoscene.h index 77f440b..fb5048b 100644 --- a/demos/qtdemo/demoscene.h +++ b/demos/qtdemo/demoscene.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/demotextitem.cpp b/demos/qtdemo/demotextitem.cpp index 98bdbd0..13cbff7 100644 --- a/demos/qtdemo/demotextitem.cpp +++ b/demos/qtdemo/demotextitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/demotextitem.h b/demos/qtdemo/demotextitem.h index f5c5d41..cf93f30 100644 --- a/demos/qtdemo/demotextitem.h +++ b/demos/qtdemo/demotextitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/dockitem.cpp b/demos/qtdemo/dockitem.cpp index 2e486e5..9b4b3dd 100644 --- a/demos/qtdemo/dockitem.cpp +++ b/demos/qtdemo/dockitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/dockitem.h b/demos/qtdemo/dockitem.h index c05c675..08bb18c 100644 --- a/demos/qtdemo/dockitem.h +++ b/demos/qtdemo/dockitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/examplecontent.cpp b/demos/qtdemo/examplecontent.cpp index 65c078d..64737c3 100644 --- a/demos/qtdemo/examplecontent.cpp +++ b/demos/qtdemo/examplecontent.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/examplecontent.h b/demos/qtdemo/examplecontent.h index c98e9ec..90f6b4e 100644 --- a/demos/qtdemo/examplecontent.h +++ b/demos/qtdemo/examplecontent.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/guide.cpp b/demos/qtdemo/guide.cpp index 56f2afa..f46eeec 100644 --- a/demos/qtdemo/guide.cpp +++ b/demos/qtdemo/guide.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/guide.h b/demos/qtdemo/guide.h index 583be7f..3c77e5e 100644 --- a/demos/qtdemo/guide.h +++ b/demos/qtdemo/guide.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/guidecircle.cpp b/demos/qtdemo/guidecircle.cpp index 575f475..27ca663 100644 --- a/demos/qtdemo/guidecircle.cpp +++ b/demos/qtdemo/guidecircle.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/guidecircle.h b/demos/qtdemo/guidecircle.h index a0bc194..fef1544 100644 --- a/demos/qtdemo/guidecircle.h +++ b/demos/qtdemo/guidecircle.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/guideline.cpp b/demos/qtdemo/guideline.cpp index 830c62f..ee30997 100644 --- a/demos/qtdemo/guideline.cpp +++ b/demos/qtdemo/guideline.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/guideline.h b/demos/qtdemo/guideline.h index ae17475..cd41ba3 100644 --- a/demos/qtdemo/guideline.h +++ b/demos/qtdemo/guideline.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/headingitem.cpp b/demos/qtdemo/headingitem.cpp index 1b9f8c2..ddf19fb 100644 --- a/demos/qtdemo/headingitem.cpp +++ b/demos/qtdemo/headingitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/headingitem.h b/demos/qtdemo/headingitem.h index 4e11562..311249f 100644 --- a/demos/qtdemo/headingitem.h +++ b/demos/qtdemo/headingitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/imageitem.cpp b/demos/qtdemo/imageitem.cpp index 8d09ffc..1950691 100644 --- a/demos/qtdemo/imageitem.cpp +++ b/demos/qtdemo/imageitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/imageitem.h b/demos/qtdemo/imageitem.h index fc100f8..3baaa8d 100644 --- a/demos/qtdemo/imageitem.h +++ b/demos/qtdemo/imageitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/itemcircleanimation.cpp b/demos/qtdemo/itemcircleanimation.cpp index 50962cf..aebe74a 100644 --- a/demos/qtdemo/itemcircleanimation.cpp +++ b/demos/qtdemo/itemcircleanimation.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/itemcircleanimation.h b/demos/qtdemo/itemcircleanimation.h index 7276f7f..a804a30 100644 --- a/demos/qtdemo/itemcircleanimation.h +++ b/demos/qtdemo/itemcircleanimation.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/letteritem.cpp b/demos/qtdemo/letteritem.cpp index 401593b..6942180 100644 --- a/demos/qtdemo/letteritem.cpp +++ b/demos/qtdemo/letteritem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/letteritem.h b/demos/qtdemo/letteritem.h index 78db744..19cefa1 100644 --- a/demos/qtdemo/letteritem.h +++ b/demos/qtdemo/letteritem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/main.cpp b/demos/qtdemo/main.cpp index a967d84..1ec195d 100644 --- a/demos/qtdemo/main.cpp +++ b/demos/qtdemo/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/mainwindow.cpp b/demos/qtdemo/mainwindow.cpp index e39802a..fe0c5ca 100644 --- a/demos/qtdemo/mainwindow.cpp +++ b/demos/qtdemo/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/mainwindow.h b/demos/qtdemo/mainwindow.h index 460f941..3fe11cb 100644 --- a/demos/qtdemo/mainwindow.h +++ b/demos/qtdemo/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/menucontent.cpp b/demos/qtdemo/menucontent.cpp index 13295c2..96089a7 100644 --- a/demos/qtdemo/menucontent.cpp +++ b/demos/qtdemo/menucontent.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/menucontent.h b/demos/qtdemo/menucontent.h index e9ddba1..d33f9f5 100644 --- a/demos/qtdemo/menucontent.h +++ b/demos/qtdemo/menucontent.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/menumanager.cpp b/demos/qtdemo/menumanager.cpp index ea9146e..3f01d26 100644 --- a/demos/qtdemo/menumanager.cpp +++ b/demos/qtdemo/menumanager.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/menumanager.h b/demos/qtdemo/menumanager.h index 93fb998..1d9fc2c 100644 --- a/demos/qtdemo/menumanager.h +++ b/demos/qtdemo/menumanager.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/qmlShell.qml b/demos/qtdemo/qmlShell.qml index 8ca06f1..f000ac3 100644 --- a/demos/qtdemo/qmlShell.qml +++ b/demos/qtdemo/qmlShell.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/qtdemo.rc b/demos/qtdemo/qtdemo.rc index 2c0694f..aeaaa6b 100644 --- a/demos/qtdemo/qtdemo.rc +++ b/demos/qtdemo/qtdemo.rc @@ -18,7 +18,7 @@ BEGIN VALUE "CompanyName", "Nokia Corporation and/or its subsidiary(-ies)" VALUE "FileDescription", "Qt Examples and Demos" VALUE "FileVersion", "1.0.0.0" - VALUE "LegalCopyright", "Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)." + VALUE "LegalCopyright", "Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies)." VALUE "InternalName", "qtdemo" VALUE "OriginalFilename", "qtdemo.exe" VALUE "ProductName", "Qt Examples and Demos" diff --git a/demos/qtdemo/scanitem.cpp b/demos/qtdemo/scanitem.cpp index ef10dc1..72d2c8f 100644 --- a/demos/qtdemo/scanitem.cpp +++ b/demos/qtdemo/scanitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/scanitem.h b/demos/qtdemo/scanitem.h index 0bc213b..6c3623a 100644 --- a/demos/qtdemo/scanitem.h +++ b/demos/qtdemo/scanitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/score.cpp b/demos/qtdemo/score.cpp index cd2f3d3..74e3100 100644 --- a/demos/qtdemo/score.cpp +++ b/demos/qtdemo/score.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/score.h b/demos/qtdemo/score.h index 78d4017..e1f6642 100644 --- a/demos/qtdemo/score.h +++ b/demos/qtdemo/score.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/textbutton.cpp b/demos/qtdemo/textbutton.cpp index cf0b225..b0576e3 100644 --- a/demos/qtdemo/textbutton.cpp +++ b/demos/qtdemo/textbutton.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/qtdemo/textbutton.h b/demos/qtdemo/textbutton.h index 039f923..7a5f0bf 100644 --- a/demos/qtdemo/textbutton.h +++ b/demos/qtdemo/textbutton.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/shared/arthurstyle.cpp b/demos/shared/arthurstyle.cpp index 4be9079..9671f80 100644 --- a/demos/shared/arthurstyle.cpp +++ b/demos/shared/arthurstyle.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/shared/arthurstyle.h b/demos/shared/arthurstyle.h index 9f16a0f..9e3ada9 100644 --- a/demos/shared/arthurstyle.h +++ b/demos/shared/arthurstyle.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/shared/arthurwidgets.cpp b/demos/shared/arthurwidgets.cpp index 4182ff1..0180e90 100644 --- a/demos/shared/arthurwidgets.cpp +++ b/demos/shared/arthurwidgets.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/shared/arthurwidgets.h b/demos/shared/arthurwidgets.h index 034c04c..6757111 100644 --- a/demos/shared/arthurwidgets.h +++ b/demos/shared/arthurwidgets.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/shared/hoverpoints.cpp b/demos/shared/hoverpoints.cpp index ae745a2..272f895 100644 --- a/demos/shared/hoverpoints.cpp +++ b/demos/shared/hoverpoints.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/shared/hoverpoints.h b/demos/shared/hoverpoints.h index f78fd9a..9c10632 100644 --- a/demos/shared/hoverpoints.h +++ b/demos/shared/hoverpoints.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp b/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp index 50ab36d..2e66bc0 100644 --- a/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp +++ b/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp @@ -1,6 +1,6 @@ /*************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the examples of the Qt Toolkit. diff --git a/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h b/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h index 48d614e..39a1d57 100644 --- a/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h +++ b/demos/spectrum/3rdparty/fftreal/fftreal_wrapper.h @@ -1,6 +1,6 @@ /*************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** This file is part of the examples of the Qt Toolkit. diff --git a/demos/spectrum/app/engine.cpp b/demos/spectrum/app/engine.cpp index cd847fe..8376f29 100644 --- a/demos/spectrum/app/engine.cpp +++ b/demos/spectrum/app/engine.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/engine.h b/demos/spectrum/app/engine.h index c97083e..51c63b3 100644 --- a/demos/spectrum/app/engine.h +++ b/demos/spectrum/app/engine.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/frequencyspectrum.cpp b/demos/spectrum/app/frequencyspectrum.cpp index 3057428..b4a4843 100644 --- a/demos/spectrum/app/frequencyspectrum.cpp +++ b/demos/spectrum/app/frequencyspectrum.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/frequencyspectrum.h b/demos/spectrum/app/frequencyspectrum.h index d974a44..8b2acf2 100644 --- a/demos/spectrum/app/frequencyspectrum.h +++ b/demos/spectrum/app/frequencyspectrum.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/levelmeter.cpp b/demos/spectrum/app/levelmeter.cpp index 819b98d..35dd388 100644 --- a/demos/spectrum/app/levelmeter.cpp +++ b/demos/spectrum/app/levelmeter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/levelmeter.h b/demos/spectrum/app/levelmeter.h index 683dba7..79aa124 100644 --- a/demos/spectrum/app/levelmeter.h +++ b/demos/spectrum/app/levelmeter.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/main.cpp b/demos/spectrum/app/main.cpp index fb5183e..c4fa6a9 100644 --- a/demos/spectrum/app/main.cpp +++ b/demos/spectrum/app/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/mainwidget.cpp b/demos/spectrum/app/mainwidget.cpp index 4b53bbe..2bb35c5 100644 --- a/demos/spectrum/app/mainwidget.cpp +++ b/demos/spectrum/app/mainwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/mainwidget.h b/demos/spectrum/app/mainwidget.h index 13131c0..14c62a2 100644 --- a/demos/spectrum/app/mainwidget.h +++ b/demos/spectrum/app/mainwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/progressbar.cpp b/demos/spectrum/app/progressbar.cpp index 0ac76f1..4660510 100644 --- a/demos/spectrum/app/progressbar.cpp +++ b/demos/spectrum/app/progressbar.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/progressbar.h b/demos/spectrum/app/progressbar.h index e715cf5..b12f1c5 100644 --- a/demos/spectrum/app/progressbar.h +++ b/demos/spectrum/app/progressbar.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/settingsdialog.cpp b/demos/spectrum/app/settingsdialog.cpp index b5e8459..0fc620d 100644 --- a/demos/spectrum/app/settingsdialog.cpp +++ b/demos/spectrum/app/settingsdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/settingsdialog.h b/demos/spectrum/app/settingsdialog.h index 796b4af..71d1796 100644 --- a/demos/spectrum/app/settingsdialog.h +++ b/demos/spectrum/app/settingsdialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/spectrograph.cpp b/demos/spectrum/app/spectrograph.cpp index 3ec0804..fbde248 100644 --- a/demos/spectrum/app/spectrograph.cpp +++ b/demos/spectrum/app/spectrograph.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/spectrograph.h b/demos/spectrum/app/spectrograph.h index fa4a6cf..bfcefd8 100644 --- a/demos/spectrum/app/spectrograph.h +++ b/demos/spectrum/app/spectrograph.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/spectrum.h b/demos/spectrum/app/spectrum.h index cac320e..e51f047 100644 --- a/demos/spectrum/app/spectrum.h +++ b/demos/spectrum/app/spectrum.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/spectrumanalyser.cpp b/demos/spectrum/app/spectrumanalyser.cpp index 2fa17b1..8c3212d 100644 --- a/demos/spectrum/app/spectrumanalyser.cpp +++ b/demos/spectrum/app/spectrumanalyser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/spectrumanalyser.h b/demos/spectrum/app/spectrumanalyser.h index ab4abe1..663c213 100644 --- a/demos/spectrum/app/spectrumanalyser.h +++ b/demos/spectrum/app/spectrumanalyser.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/tonegenerator.cpp b/demos/spectrum/app/tonegenerator.cpp index 470eb4c..f3cad99 100644 --- a/demos/spectrum/app/tonegenerator.cpp +++ b/demos/spectrum/app/tonegenerator.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/tonegenerator.h b/demos/spectrum/app/tonegenerator.h index bf31179..d2aadb2 100644 --- a/demos/spectrum/app/tonegenerator.h +++ b/demos/spectrum/app/tonegenerator.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/tonegeneratordialog.cpp b/demos/spectrum/app/tonegeneratordialog.cpp index 01e1198..5e5cd63 100644 --- a/demos/spectrum/app/tonegeneratordialog.cpp +++ b/demos/spectrum/app/tonegeneratordialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/tonegeneratordialog.h b/demos/spectrum/app/tonegeneratordialog.h index c2aa892..788a0ea 100644 --- a/demos/spectrum/app/tonegeneratordialog.h +++ b/demos/spectrum/app/tonegeneratordialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/utils.cpp b/demos/spectrum/app/utils.cpp index 49a7626..d922cb5 100644 --- a/demos/spectrum/app/utils.cpp +++ b/demos/spectrum/app/utils.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/utils.h b/demos/spectrum/app/utils.h index 4e29030..9c85c61 100644 --- a/demos/spectrum/app/utils.h +++ b/demos/spectrum/app/utils.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/waveform.cpp b/demos/spectrum/app/waveform.cpp index bd854c0..b524881 100644 --- a/demos/spectrum/app/waveform.cpp +++ b/demos/spectrum/app/waveform.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/waveform.h b/demos/spectrum/app/waveform.h index 1c54c86..a3b706d 100644 --- a/demos/spectrum/app/waveform.h +++ b/demos/spectrum/app/waveform.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/wavfile.cpp b/demos/spectrum/app/wavfile.cpp index 44c3ac5..7c17ba9 100644 --- a/demos/spectrum/app/wavfile.cpp +++ b/demos/spectrum/app/wavfile.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spectrum/app/wavfile.h b/demos/spectrum/app/wavfile.h index 935e935..b974c47 100644 --- a/demos/spectrum/app/wavfile.h +++ b/demos/spectrum/app/wavfile.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spreadsheet/main.cpp b/demos/spreadsheet/main.cpp index a85bbed..e197e75 100644 --- a/demos/spreadsheet/main.cpp +++ b/demos/spreadsheet/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spreadsheet/printview.cpp b/demos/spreadsheet/printview.cpp index b8504055..7c4dc83 100644 --- a/demos/spreadsheet/printview.cpp +++ b/demos/spreadsheet/printview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spreadsheet/printview.h b/demos/spreadsheet/printview.h index f5f8369..67ac96b 100644 --- a/demos/spreadsheet/printview.h +++ b/demos/spreadsheet/printview.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spreadsheet/spreadsheet.cpp b/demos/spreadsheet/spreadsheet.cpp index 519afe9..000c789 100644 --- a/demos/spreadsheet/spreadsheet.cpp +++ b/demos/spreadsheet/spreadsheet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spreadsheet/spreadsheet.h b/demos/spreadsheet/spreadsheet.h index 081ffa0..5685c5a 100644 --- a/demos/spreadsheet/spreadsheet.h +++ b/demos/spreadsheet/spreadsheet.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spreadsheet/spreadsheetdelegate.cpp b/demos/spreadsheet/spreadsheetdelegate.cpp index 9b61599..f4aedaa 100644 --- a/demos/spreadsheet/spreadsheetdelegate.cpp +++ b/demos/spreadsheet/spreadsheetdelegate.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spreadsheet/spreadsheetdelegate.h b/demos/spreadsheet/spreadsheetdelegate.h index 1a74c52..1d7e1e0 100644 --- a/demos/spreadsheet/spreadsheetdelegate.h +++ b/demos/spreadsheet/spreadsheetdelegate.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spreadsheet/spreadsheetitem.cpp b/demos/spreadsheet/spreadsheetitem.cpp index e1f0143..2a67d9d 100644 --- a/demos/spreadsheet/spreadsheetitem.cpp +++ b/demos/spreadsheet/spreadsheetitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/spreadsheet/spreadsheetitem.h b/demos/spreadsheet/spreadsheetitem.h index b1742bf..13566a7 100644 --- a/demos/spreadsheet/spreadsheetitem.h +++ b/demos/spreadsheet/spreadsheetitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sqlbrowser/browser.cpp b/demos/sqlbrowser/browser.cpp index fe699c7..479eaaa 100644 --- a/demos/sqlbrowser/browser.cpp +++ b/demos/sqlbrowser/browser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sqlbrowser/browser.h b/demos/sqlbrowser/browser.h index 81aa7f3..7043338 100644 --- a/demos/sqlbrowser/browser.h +++ b/demos/sqlbrowser/browser.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sqlbrowser/connectionwidget.cpp b/demos/sqlbrowser/connectionwidget.cpp index 02d4f92..6d213f3 100644 --- a/demos/sqlbrowser/connectionwidget.cpp +++ b/demos/sqlbrowser/connectionwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sqlbrowser/connectionwidget.h b/demos/sqlbrowser/connectionwidget.h index a727106..70b17d0 100644 --- a/demos/sqlbrowser/connectionwidget.h +++ b/demos/sqlbrowser/connectionwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sqlbrowser/main.cpp b/demos/sqlbrowser/main.cpp index c35a397..875dd48 100644 --- a/demos/sqlbrowser/main.cpp +++ b/demos/sqlbrowser/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sqlbrowser/qsqlconnectiondialog.cpp b/demos/sqlbrowser/qsqlconnectiondialog.cpp index 54dfa02..3d3e408 100644 --- a/demos/sqlbrowser/qsqlconnectiondialog.cpp +++ b/demos/sqlbrowser/qsqlconnectiondialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sqlbrowser/qsqlconnectiondialog.h b/demos/sqlbrowser/qsqlconnectiondialog.h index 6cec4e5..0c81f29 100644 --- a/demos/sqlbrowser/qsqlconnectiondialog.h +++ b/demos/sqlbrowser/qsqlconnectiondialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/animationmanager.cpp b/demos/sub-attaq/animationmanager.cpp index 3e8094a..ab0c8dc 100644 --- a/demos/sub-attaq/animationmanager.cpp +++ b/demos/sub-attaq/animationmanager.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/animationmanager.h b/demos/sub-attaq/animationmanager.h index 984ee1f..62b0576 100644 --- a/demos/sub-attaq/animationmanager.h +++ b/demos/sub-attaq/animationmanager.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/boat.cpp b/demos/sub-attaq/boat.cpp index 1c5c8cd..f32fc3c 100644 --- a/demos/sub-attaq/boat.cpp +++ b/demos/sub-attaq/boat.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/boat.h b/demos/sub-attaq/boat.h index 843b985..b50ebb7 100644 --- a/demos/sub-attaq/boat.h +++ b/demos/sub-attaq/boat.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/boat_p.h b/demos/sub-attaq/boat_p.h index 89591e1..010dd0a 100644 --- a/demos/sub-attaq/boat_p.h +++ b/demos/sub-attaq/boat_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/bomb.cpp b/demos/sub-attaq/bomb.cpp index 936aef3..15a22f3 100644 --- a/demos/sub-attaq/bomb.cpp +++ b/demos/sub-attaq/bomb.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/bomb.h b/demos/sub-attaq/bomb.h index 117d81b..8c9be56 100644 --- a/demos/sub-attaq/bomb.h +++ b/demos/sub-attaq/bomb.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/graphicsscene.cpp b/demos/sub-attaq/graphicsscene.cpp index dd55c1d..d01c94f 100644 --- a/demos/sub-attaq/graphicsscene.cpp +++ b/demos/sub-attaq/graphicsscene.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/graphicsscene.h b/demos/sub-attaq/graphicsscene.h index 8330f7e..215ee71 100644 --- a/demos/sub-attaq/graphicsscene.h +++ b/demos/sub-attaq/graphicsscene.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/main.cpp b/demos/sub-attaq/main.cpp index 2db8538..54f11e6 100644 --- a/demos/sub-attaq/main.cpp +++ b/demos/sub-attaq/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/mainwindow.cpp b/demos/sub-attaq/mainwindow.cpp index 25e1f61..1ded808 100644 --- a/demos/sub-attaq/mainwindow.cpp +++ b/demos/sub-attaq/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/mainwindow.h b/demos/sub-attaq/mainwindow.h index 630f41a..532a39a 100644 --- a/demos/sub-attaq/mainwindow.h +++ b/demos/sub-attaq/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/pixmapitem.cpp b/demos/sub-attaq/pixmapitem.cpp index 4b7a383..d1eb8f9 100644 --- a/demos/sub-attaq/pixmapitem.cpp +++ b/demos/sub-attaq/pixmapitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/pixmapitem.h b/demos/sub-attaq/pixmapitem.h index 2a89ffb..8b615e7 100644 --- a/demos/sub-attaq/pixmapitem.h +++ b/demos/sub-attaq/pixmapitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/progressitem.cpp b/demos/sub-attaq/progressitem.cpp index c07c41b..a6f6b1b 100644 --- a/demos/sub-attaq/progressitem.cpp +++ b/demos/sub-attaq/progressitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/progressitem.h b/demos/sub-attaq/progressitem.h index c7a915b..d4778cb 100644 --- a/demos/sub-attaq/progressitem.h +++ b/demos/sub-attaq/progressitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/qanimationstate.cpp b/demos/sub-attaq/qanimationstate.cpp index 047b0ad..e272dfd 100644 --- a/demos/sub-attaq/qanimationstate.cpp +++ b/demos/sub-attaq/qanimationstate.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/qanimationstate.h b/demos/sub-attaq/qanimationstate.h index 104ae7e..b90f4a5 100644 --- a/demos/sub-attaq/qanimationstate.h +++ b/demos/sub-attaq/qanimationstate.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/states.cpp b/demos/sub-attaq/states.cpp index f9321eb..e939641 100644 --- a/demos/sub-attaq/states.cpp +++ b/demos/sub-attaq/states.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/states.h b/demos/sub-attaq/states.h index 2c6fa90..3a3c516 100644 --- a/demos/sub-attaq/states.h +++ b/demos/sub-attaq/states.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/submarine.cpp b/demos/sub-attaq/submarine.cpp index f450550..5044414 100644 --- a/demos/sub-attaq/submarine.cpp +++ b/demos/sub-attaq/submarine.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/submarine.h b/demos/sub-attaq/submarine.h index 3e8dccd..8bdd320 100644 --- a/demos/sub-attaq/submarine.h +++ b/demos/sub-attaq/submarine.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/submarine_p.h b/demos/sub-attaq/submarine_p.h index 03fa16c..59b7c1d 100644 --- a/demos/sub-attaq/submarine_p.h +++ b/demos/sub-attaq/submarine_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/textinformationitem.cpp b/demos/sub-attaq/textinformationitem.cpp index d8d9668..6bf5127 100644 --- a/demos/sub-attaq/textinformationitem.cpp +++ b/demos/sub-attaq/textinformationitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/textinformationitem.h b/demos/sub-attaq/textinformationitem.h index b179483..5a9b52c 100644 --- a/demos/sub-attaq/textinformationitem.h +++ b/demos/sub-attaq/textinformationitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/torpedo.cpp b/demos/sub-attaq/torpedo.cpp index ff25a11..d6adb27 100644 --- a/demos/sub-attaq/torpedo.cpp +++ b/demos/sub-attaq/torpedo.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/sub-attaq/torpedo.h b/demos/sub-attaq/torpedo.h index 06d3ad1..89e11d8 100644 --- a/demos/sub-attaq/torpedo.h +++ b/demos/sub-attaq/torpedo.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/textedit/main.cpp b/demos/textedit/main.cpp index 74ff1f8..8e0645e 100644 --- a/demos/textedit/main.cpp +++ b/demos/textedit/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/textedit/textedit.cpp b/demos/textedit/textedit.cpp index 9fa1949..2ae1327 100644 --- a/demos/textedit/textedit.cpp +++ b/demos/textedit/textedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/textedit/textedit.h b/demos/textedit/textedit.h index 1e85424..b53f8c1 100644 --- a/demos/textedit/textedit.h +++ b/demos/textedit/textedit.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/textedit/textedit.qdoc b/demos/textedit/textedit.qdoc index c27589e..411ed78 100644 --- a/demos/textedit/textedit.qdoc +++ b/demos/textedit/textedit.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/undo/commands.cpp b/demos/undo/commands.cpp index 259f950..82117d5 100644 --- a/demos/undo/commands.cpp +++ b/demos/undo/commands.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/undo/commands.h b/demos/undo/commands.h index c26ecb9..60cf061 100644 --- a/demos/undo/commands.h +++ b/demos/undo/commands.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/undo/document.cpp b/demos/undo/document.cpp index d914bf9..73187af 100644 --- a/demos/undo/document.cpp +++ b/demos/undo/document.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/undo/document.h b/demos/undo/document.h index 8fae92e..c85e6dd 100644 --- a/demos/undo/document.h +++ b/demos/undo/document.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/undo/main.cpp b/demos/undo/main.cpp index f0d0f3c..ef11dc5 100644 --- a/demos/undo/main.cpp +++ b/demos/undo/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/undo/mainwindow.cpp b/demos/undo/mainwindow.cpp index cae4291..3dca631 100644 --- a/demos/undo/mainwindow.cpp +++ b/demos/undo/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/demos/undo/mainwindow.h b/demos/undo/mainwindow.h index 0752eee..4b74a5e 100644 --- a/demos/undo/mainwindow.h +++ b/demos/undo/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/bughowto.qdoc b/doc/src/bughowto.qdoc index 1793fce..c2272f8 100644 --- a/doc/src/bughowto.qdoc +++ b/doc/src/bughowto.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/classes.qdoc b/doc/src/classes.qdoc index 66009f5..a1b5282 100644 --- a/doc/src/classes.qdoc +++ b/doc/src/classes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/classes/exportedfunctions.qdoc b/doc/src/classes/exportedfunctions.qdoc index ac6a970..8b73714 100644 --- a/doc/src/classes/exportedfunctions.qdoc +++ b/doc/src/classes/exportedfunctions.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/classes/phonon-api.qdoc b/doc/src/classes/phonon-api.qdoc index 6c9c8de..c9f7a66 100644 --- a/doc/src/classes/phonon-api.qdoc +++ b/doc/src/classes/phonon-api.qdoc @@ -1,7 +1,7 @@ /* This file is part of the KDE project Copyright (C) 2005-2007 Matthias Kretz - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). Contact: Nokia Corporation (qt-info@nokia.com) This library is free software; you can redistribute it and/or diff --git a/doc/src/classes/phonon-namespace.qdoc b/doc/src/classes/phonon-namespace.qdoc index c53f69b..26752f2 100644 --- a/doc/src/classes/phonon-namespace.qdoc +++ b/doc/src/classes/phonon-namespace.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/classes/qpatternistdummy.cpp b/doc/src/classes/qpatternistdummy.cpp index cc287d9..ccd9af7 100644 --- a/doc/src/classes/qpatternistdummy.cpp +++ b/doc/src/classes/qpatternistdummy.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/credits.qdoc b/doc/src/credits.qdoc index 20aa366..1fad65a 100644 --- a/doc/src/credits.qdoc +++ b/doc/src/credits.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/advtutorial.qdoc b/doc/src/declarative/advtutorial.qdoc index 04d7f07..6cd1f22 100644 --- a/doc/src/declarative/advtutorial.qdoc +++ b/doc/src/declarative/advtutorial.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/anchor-layout.qdoc b/doc/src/declarative/anchor-layout.qdoc index f5d5697..f03d9ee 100644 --- a/doc/src/declarative/anchor-layout.qdoc +++ b/doc/src/declarative/anchor-layout.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/animation.qdoc b/doc/src/declarative/animation.qdoc index 208a1c4..59bf8f6 100644 --- a/doc/src/declarative/animation.qdoc +++ b/doc/src/declarative/animation.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc index e9d3a44..463e4a3 100644 --- a/doc/src/declarative/basictypes.qdoc +++ b/doc/src/declarative/basictypes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/codingconventions.qdoc b/doc/src/declarative/codingconventions.qdoc index 3f92d46..52f8089 100644 --- a/doc/src/declarative/codingconventions.qdoc +++ b/doc/src/declarative/codingconventions.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc index 41b9952..491e499 100644 --- a/doc/src/declarative/declarativeui.qdoc +++ b/doc/src/declarative/declarativeui.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/dynamicobjects.qdoc b/doc/src/declarative/dynamicobjects.qdoc index fcc9fd4..073e0c4 100644 --- a/doc/src/declarative/dynamicobjects.qdoc +++ b/doc/src/declarative/dynamicobjects.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc index eaa6a82..40d67e7 100644 --- a/doc/src/declarative/elements.qdoc +++ b/doc/src/declarative/elements.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/example-slideswitch.qdoc b/doc/src/declarative/example-slideswitch.qdoc index a62f670..2b82b2f 100644 --- a/doc/src/declarative/example-slideswitch.qdoc +++ b/doc/src/declarative/example-slideswitch.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/examples.qdoc b/doc/src/declarative/examples.qdoc index 224d346..e03557b 100644 --- a/doc/src/declarative/examples.qdoc +++ b/doc/src/declarative/examples.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/extending-tutorial.qdoc b/doc/src/declarative/extending-tutorial.qdoc index c998c5c..4caa631 100644 --- a/doc/src/declarative/extending-tutorial.qdoc +++ b/doc/src/declarative/extending-tutorial.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc index ff519f6..915123f 100644 --- a/doc/src/declarative/extending.qdoc +++ b/doc/src/declarative/extending.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/focus.qdoc b/doc/src/declarative/focus.qdoc index ae72c3c..599d63c 100644 --- a/doc/src/declarative/focus.qdoc +++ b/doc/src/declarative/focus.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/globalobject.qdoc b/doc/src/declarative/globalobject.qdoc index ffc84f9..8671b48 100644 --- a/doc/src/declarative/globalobject.qdoc +++ b/doc/src/declarative/globalobject.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/integrating.qdoc b/doc/src/declarative/integrating.qdoc index 7028585..f0d3a37 100644 --- a/doc/src/declarative/integrating.qdoc +++ b/doc/src/declarative/integrating.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/javascriptblocks.qdoc b/doc/src/declarative/javascriptblocks.qdoc index 68cb392..d221205 100644 --- a/doc/src/declarative/javascriptblocks.qdoc +++ b/doc/src/declarative/javascriptblocks.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc index 8d23170..1dca28c 100644 --- a/doc/src/declarative/modules.qdoc +++ b/doc/src/declarative/modules.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/network.qdoc b/doc/src/declarative/network.qdoc index a19ca6b..675a0aa 100644 --- a/doc/src/declarative/network.qdoc +++ b/doc/src/declarative/network.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/pics/flipable.gif b/doc/src/declarative/pics/flipable.gif index da37b2b..6af46c3 100644 Binary files a/doc/src/declarative/pics/flipable.gif and b/doc/src/declarative/pics/flipable.gif differ diff --git a/doc/src/declarative/positioners.qdoc b/doc/src/declarative/positioners.qdoc index 9265732..387f390 100644 --- a/doc/src/declarative/positioners.qdoc +++ b/doc/src/declarative/positioners.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/propertybinding.qdoc b/doc/src/declarative/propertybinding.qdoc index 3bf85de..2fa95d4 100644 --- a/doc/src/declarative/propertybinding.qdoc +++ b/doc/src/declarative/propertybinding.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qdeclarativedebugging.qdoc b/doc/src/declarative/qdeclarativedebugging.qdoc index 9e0a969..6902c30 100644 --- a/doc/src/declarative/qdeclarativedebugging.qdoc +++ b/doc/src/declarative/qdeclarativedebugging.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qdeclarativedocument.qdoc b/doc/src/declarative/qdeclarativedocument.qdoc index 8af24a6..b94e32e 100644 --- a/doc/src/declarative/qdeclarativedocument.qdoc +++ b/doc/src/declarative/qdeclarativedocument.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qdeclarativei18n.qdoc b/doc/src/declarative/qdeclarativei18n.qdoc index 0d5fbcc..9ca8938 100644 --- a/doc/src/declarative/qdeclarativei18n.qdoc +++ b/doc/src/declarative/qdeclarativei18n.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qdeclarativeintro.qdoc b/doc/src/declarative/qdeclarativeintro.qdoc index 20db248..61241c5 100644 --- a/doc/src/declarative/qdeclarativeintro.qdoc +++ b/doc/src/declarative/qdeclarativeintro.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qdeclarativemodels.qdoc b/doc/src/declarative/qdeclarativemodels.qdoc index e11cd56..0b4b67d 100644 --- a/doc/src/declarative/qdeclarativemodels.qdoc +++ b/doc/src/declarative/qdeclarativemodels.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qdeclarativeperformance.qdoc b/doc/src/declarative/qdeclarativeperformance.qdoc index ab8759e..36b4878 100644 --- a/doc/src/declarative/qdeclarativeperformance.qdoc +++ b/doc/src/declarative/qdeclarativeperformance.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qdeclarativesecurity.qdoc b/doc/src/declarative/qdeclarativesecurity.qdoc index 01d6c56..8aa031d 100644 --- a/doc/src/declarative/qdeclarativesecurity.qdoc +++ b/doc/src/declarative/qdeclarativesecurity.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qdeclarativestates.qdoc b/doc/src/declarative/qdeclarativestates.qdoc index b663d43..c6160c5 100644 --- a/doc/src/declarative/qdeclarativestates.qdoc +++ b/doc/src/declarative/qdeclarativestates.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qml-intro.qdoc b/doc/src/declarative/qml-intro.qdoc index e02ce8f..563dc3b 100644 --- a/doc/src/declarative/qml-intro.qdoc +++ b/doc/src/declarative/qml-intro.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qmlinuse.qdoc b/doc/src/declarative/qmlinuse.qdoc index 1127b4c..3ab1634 100644 --- a/doc/src/declarative/qmlinuse.qdoc +++ b/doc/src/declarative/qmlinuse.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qmlruntime.qdoc b/doc/src/declarative/qmlruntime.qdoc index dfc0ad9..f6604fb 100644 --- a/doc/src/declarative/qmlruntime.qdoc +++ b/doc/src/declarative/qmlruntime.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qmlviewer.qdoc b/doc/src/declarative/qmlviewer.qdoc index 82f1fec..cfb762c 100644 --- a/doc/src/declarative/qmlviewer.qdoc +++ b/doc/src/declarative/qmlviewer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc index 8ee7247..4213f66 100644 --- a/doc/src/declarative/qtbinding.qdoc +++ b/doc/src/declarative/qtbinding.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qtdeclarative.qdoc b/doc/src/declarative/qtdeclarative.qdoc index b0c6e06..05dac52 100644 --- a/doc/src/declarative/qtdeclarative.qdoc +++ b/doc/src/declarative/qtdeclarative.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/qtprogrammers.qdoc b/doc/src/declarative/qtprogrammers.qdoc index 0c14093..7895c9f 100644 --- a/doc/src/declarative/qtprogrammers.qdoc +++ b/doc/src/declarative/qtprogrammers.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/scope.qdoc b/doc/src/declarative/scope.qdoc index 7e75380..3317037 100644 --- a/doc/src/declarative/scope.qdoc +++ b/doc/src/declarative/scope.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/tutorial.qdoc b/doc/src/declarative/tutorial.qdoc index d8139b4..b9ae913 100644 --- a/doc/src/declarative/tutorial.qdoc +++ b/doc/src/declarative/tutorial.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/declarative/whatsnew.qdoc b/doc/src/declarative/whatsnew.qdoc index df0e999..a3ba522 100644 --- a/doc/src/declarative/whatsnew.qdoc +++ b/doc/src/declarative/whatsnew.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/affine.qdoc b/doc/src/demos/affine.qdoc index f8b3fd2..4b402f1 100644 --- a/doc/src/demos/affine.qdoc +++ b/doc/src/demos/affine.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/anomaly.qdoc b/doc/src/demos/anomaly.qdoc index 403a516..7aca712 100644 --- a/doc/src/demos/anomaly.qdoc +++ b/doc/src/demos/anomaly.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/arthurplugin.qdoc b/doc/src/demos/arthurplugin.qdoc index 1c28bfe..31ff2bc 100644 --- a/doc/src/demos/arthurplugin.qdoc +++ b/doc/src/demos/arthurplugin.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/books.qdoc b/doc/src/demos/books.qdoc index f712fb2..837f9f0 100644 --- a/doc/src/demos/books.qdoc +++ b/doc/src/demos/books.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/boxes.qdoc b/doc/src/demos/boxes.qdoc index 67657ce..24bc21b 100644 --- a/doc/src/demos/boxes.qdoc +++ b/doc/src/demos/boxes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/browser.qdoc b/doc/src/demos/browser.qdoc index 6286f76..ea1e7f0 100644 --- a/doc/src/demos/browser.qdoc +++ b/doc/src/demos/browser.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/chip.qdoc b/doc/src/demos/chip.qdoc index 7573b2e..3d04532 100644 --- a/doc/src/demos/chip.qdoc +++ b/doc/src/demos/chip.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/composition.qdoc b/doc/src/demos/composition.qdoc index b642abc..9ceb6b5 100644 --- a/doc/src/demos/composition.qdoc +++ b/doc/src/demos/composition.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/deform.qdoc b/doc/src/demos/deform.qdoc index 6e7938f..d5d9942 100644 --- a/doc/src/demos/deform.qdoc +++ b/doc/src/demos/deform.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/desktopservices.qdoc b/doc/src/demos/desktopservices.qdoc index 1da3244..71197c2 100644 --- a/doc/src/demos/desktopservices.qdoc +++ b/doc/src/demos/desktopservices.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/digiflip.qdoc b/doc/src/demos/digiflip.qdoc index 174c337..8008ca4 100644 --- a/doc/src/demos/digiflip.qdoc +++ b/doc/src/demos/digiflip.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/embeddeddialogs.qdoc b/doc/src/demos/embeddeddialogs.qdoc index 3be0e65..96e8781 100644 --- a/doc/src/demos/embeddeddialogs.qdoc +++ b/doc/src/demos/embeddeddialogs.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/embeddedsvgviewer.qdoc b/doc/src/demos/embeddedsvgviewer.qdoc index a866ef5..fbf15e2 100644 --- a/doc/src/demos/embeddedsvgviewer.qdoc +++ b/doc/src/demos/embeddedsvgviewer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/flickable.qdoc b/doc/src/demos/flickable.qdoc index 1e1cb33..0f336bb 100644 --- a/doc/src/demos/flickable.qdoc +++ b/doc/src/demos/flickable.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/flightinfo.qdoc b/doc/src/demos/flightinfo.qdoc index f31d298..81eae6c 100644 --- a/doc/src/demos/flightinfo.qdoc +++ b/doc/src/demos/flightinfo.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/fluidlauncher.qdoc b/doc/src/demos/fluidlauncher.qdoc index 9619077..ec57373 100644 --- a/doc/src/demos/fluidlauncher.qdoc +++ b/doc/src/demos/fluidlauncher.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/gradients.qdoc b/doc/src/demos/gradients.qdoc index de79b8c..ca991fc 100644 --- a/doc/src/demos/gradients.qdoc +++ b/doc/src/demos/gradients.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/interview.qdoc b/doc/src/demos/interview.qdoc index ea4ff9f..a4f6ee4 100644 --- a/doc/src/demos/interview.qdoc +++ b/doc/src/demos/interview.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/lightmaps.qdoc b/doc/src/demos/lightmaps.qdoc index 02a3362..1f28cd0 100644 --- a/doc/src/demos/lightmaps.qdoc +++ b/doc/src/demos/lightmaps.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/macmainwindow.qdoc b/doc/src/demos/macmainwindow.qdoc index dd95530..060ce40 100644 --- a/doc/src/demos/macmainwindow.qdoc +++ b/doc/src/demos/macmainwindow.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/mainwindow.qdoc b/doc/src/demos/mainwindow.qdoc index 97ebf84..d6dd358 100644 --- a/doc/src/demos/mainwindow.qdoc +++ b/doc/src/demos/mainwindow.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/mediaplayer.qdoc b/doc/src/demos/mediaplayer.qdoc index b20cb5d..11fc110 100644 --- a/doc/src/demos/mediaplayer.qdoc +++ b/doc/src/demos/mediaplayer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/pathstroke.qdoc b/doc/src/demos/pathstroke.qdoc index ecb442d..dd34b1d 100644 --- a/doc/src/demos/pathstroke.qdoc +++ b/doc/src/demos/pathstroke.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/qtdemo.qdoc b/doc/src/demos/qtdemo.qdoc index 65afa51..cc101db 100644 --- a/doc/src/demos/qtdemo.qdoc +++ b/doc/src/demos/qtdemo.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/raycasting.qdoc b/doc/src/demos/raycasting.qdoc index 5cbf55d..e4a9dc3 100644 --- a/doc/src/demos/raycasting.qdoc +++ b/doc/src/demos/raycasting.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/spectrum.qdoc b/doc/src/demos/spectrum.qdoc index 0d3823b..beb381d 100644 --- a/doc/src/demos/spectrum.qdoc +++ b/doc/src/demos/spectrum.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/spreadsheet.qdoc b/doc/src/demos/spreadsheet.qdoc index a77ba9e..35d41ec 100644 --- a/doc/src/demos/spreadsheet.qdoc +++ b/doc/src/demos/spreadsheet.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/sqlbrowser.qdoc b/doc/src/demos/sqlbrowser.qdoc index 57e7bc2..74ebe6c 100644 --- a/doc/src/demos/sqlbrowser.qdoc +++ b/doc/src/demos/sqlbrowser.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/styledemo.qdoc b/doc/src/demos/styledemo.qdoc index 21e2381..c4e16d1 100644 --- a/doc/src/demos/styledemo.qdoc +++ b/doc/src/demos/styledemo.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/sub-attaq.qdoc b/doc/src/demos/sub-attaq.qdoc index 1d53a18..868ade3 100644 --- a/doc/src/demos/sub-attaq.qdoc +++ b/doc/src/demos/sub-attaq.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/textedit.qdoc b/doc/src/demos/textedit.qdoc index 40410c7..3dce23f 100644 --- a/doc/src/demos/textedit.qdoc +++ b/doc/src/demos/textedit.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/undo.qdoc b/doc/src/demos/undo.qdoc index c66def9..4905d5c 100644 --- a/doc/src/demos/undo.qdoc +++ b/doc/src/demos/undo.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/demos/weatherinfo.qdoc b/doc/src/demos/weatherinfo.qdoc index 8e7bd67..ed759c2 100644 --- a/doc/src/demos/weatherinfo.qdoc +++ b/doc/src/demos/weatherinfo.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/deployment/deployment-plugins.qdoc b/doc/src/deployment/deployment-plugins.qdoc index 0885163..12a3b0c 100644 --- a/doc/src/deployment/deployment-plugins.qdoc +++ b/doc/src/deployment/deployment-plugins.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc index c078316..4817058 100644 --- a/doc/src/deployment/deployment.qdoc +++ b/doc/src/deployment/deployment.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/deployment/qt-conf.qdoc b/doc/src/deployment/qt-conf.qdoc index 920eba6..7fec747 100644 --- a/doc/src/deployment/qt-conf.qdoc +++ b/doc/src/deployment/qt-conf.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/deployment/qtconfig.qdoc b/doc/src/deployment/qtconfig.qdoc index e429599..58552bd 100644 --- a/doc/src/deployment/qtconfig.qdoc +++ b/doc/src/deployment/qtconfig.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/activeqt-dumpcpp.qdoc b/doc/src/development/activeqt-dumpcpp.qdoc index 843d40d..504b3b4 100644 --- a/doc/src/development/activeqt-dumpcpp.qdoc +++ b/doc/src/development/activeqt-dumpcpp.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/activeqt-dumpdoc.qdoc b/doc/src/development/activeqt-dumpdoc.qdoc index 26450e3..517a260 100644 --- a/doc/src/development/activeqt-dumpdoc.qdoc +++ b/doc/src/development/activeqt-dumpdoc.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/activeqt-idc.qdoc b/doc/src/development/activeqt-idc.qdoc index 7a0ff66..a076212 100644 --- a/doc/src/development/activeqt-idc.qdoc +++ b/doc/src/development/activeqt-idc.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/activeqt-testcon.qdoc b/doc/src/development/activeqt-testcon.qdoc index 86d4097..e7e56c8 100644 --- a/doc/src/development/activeqt-testcon.qdoc +++ b/doc/src/development/activeqt-testcon.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/assistant-manual.qdoc b/doc/src/development/assistant-manual.qdoc index 6924767..8d3c667 100644 --- a/doc/src/development/assistant-manual.qdoc +++ b/doc/src/development/assistant-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/debug.qdoc b/doc/src/development/debug.qdoc index 91a83cf..044ad0d 100644 --- a/doc/src/development/debug.qdoc +++ b/doc/src/development/debug.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/designer-manual.qdoc b/doc/src/development/designer-manual.qdoc index df82fba..9a6220f 100644 --- a/doc/src/development/designer-manual.qdoc +++ b/doc/src/development/designer-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -2854,7 +2854,7 @@ pixmap property in the property editor. Designer source code. \legalese - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). \BR + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). \BR Copyright (C) 2005 Bjoern Bergstroem Permission is hereby granted, free of charge, to any person obtaining diff --git a/doc/src/development/developing-on-mac.qdoc b/doc/src/development/developing-on-mac.qdoc index 5ea4d22..571bac8 100644 --- a/doc/src/development/developing-on-mac.qdoc +++ b/doc/src/development/developing-on-mac.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/developing-with-qt.qdoc b/doc/src/development/developing-with-qt.qdoc index 6793abd..3971f3e 100644 --- a/doc/src/development/developing-with-qt.qdoc +++ b/doc/src/development/developing-with-qt.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/moc.qdoc b/doc/src/development/moc.qdoc index 6ecaf09..fc0165b 100644 --- a/doc/src/development/moc.qdoc +++ b/doc/src/development/moc.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc index c0ed940..b81d387 100644 --- a/doc/src/development/qmake-manual.qdoc +++ b/doc/src/development/qmake-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/qmsdev.qdoc b/doc/src/development/qmsdev.qdoc index 07b77cf..1d08838 100644 --- a/doc/src/development/qmsdev.qdoc +++ b/doc/src/development/qmsdev.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/qtestlib.qdoc b/doc/src/development/qtestlib.qdoc index afe6e34..34429ae 100644 --- a/doc/src/development/qtestlib.qdoc +++ b/doc/src/development/qtestlib.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/rcc.qdoc b/doc/src/development/rcc.qdoc index 2bbac6a..ad33a9d 100644 --- a/doc/src/development/rcc.qdoc +++ b/doc/src/development/rcc.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/tools-list.qdoc b/doc/src/development/tools-list.qdoc index c362bdf..ea8472f 100644 --- a/doc/src/development/tools-list.qdoc +++ b/doc/src/development/tools-list.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/development/uic.qdoc b/doc/src/development/uic.qdoc index ec8b3d6..f9df47f 100644 --- a/doc/src/development/uic.qdoc +++ b/doc/src/development/uic.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/diagrams/contentspropagation/customwidget.py b/doc/src/diagrams/contentspropagation/customwidget.py index 52a484f..9269089 100755 --- a/doc/src/diagrams/contentspropagation/customwidget.py +++ b/doc/src/diagrams/contentspropagation/customwidget.py @@ -1,7 +1,7 @@ #!/usr/bin/env python ############################################################################# ## -## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## diff --git a/doc/src/diagrams/contentspropagation/standardwidgets.py b/doc/src/diagrams/contentspropagation/standardwidgets.py index 3ceabf5..981fd7e 100755 --- a/doc/src/diagrams/contentspropagation/standardwidgets.py +++ b/doc/src/diagrams/contentspropagation/standardwidgets.py @@ -1,7 +1,7 @@ #!/usr/bin/env python ############################################################################# ## -## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## diff --git a/doc/src/diagrams/programs/easingcurve/main.cpp b/doc/src/diagrams/programs/easingcurve/main.cpp index 533860f..22aa29c 100644 --- a/doc/src/diagrams/programs/easingcurve/main.cpp +++ b/doc/src/diagrams/programs/easingcurve/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/diagrams/programs/mdiarea.py b/doc/src/diagrams/programs/mdiarea.py index bc8864e..013fd2d 100644 --- a/doc/src/diagrams/programs/mdiarea.py +++ b/doc/src/diagrams/programs/mdiarea.py @@ -1,7 +1,7 @@ #!/usr/bin/env python ############################################################################# ## -## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## diff --git a/doc/src/diagrams/programs/qpen-dashpattern.py b/doc/src/diagrams/programs/qpen-dashpattern.py index 1b38d23..8c466a7 100644 --- a/doc/src/diagrams/programs/qpen-dashpattern.py +++ b/doc/src/diagrams/programs/qpen-dashpattern.py @@ -1,7 +1,7 @@ #!/usr/bin/env python ############################################################################# ## -## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## diff --git a/doc/src/diagrams/programs/standard_views.py b/doc/src/diagrams/programs/standard_views.py index 6236a3f..c5b5d70 100644 --- a/doc/src/diagrams/programs/standard_views.py +++ b/doc/src/diagrams/programs/standard_views.py @@ -1,7 +1,7 @@ #!/usr/bin/env python ############################################################################# ## -## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ## All rights reserved. ## Contact: Nokia Corporation (qt-info@nokia.com) ## diff --git a/doc/src/examples/2dpainting.qdoc b/doc/src/examples/2dpainting.qdoc index 079fa13..e90788e 100644 --- a/doc/src/examples/2dpainting.qdoc +++ b/doc/src/examples/2dpainting.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/activeqt/comapp.qdoc b/doc/src/examples/activeqt/comapp.qdoc index f1884ef..4e4b9cb 100644 --- a/doc/src/examples/activeqt/comapp.qdoc +++ b/doc/src/examples/activeqt/comapp.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/activeqt/dotnet.qdoc b/doc/src/examples/activeqt/dotnet.qdoc index 55853d9..ec13ce8 100644 --- a/doc/src/examples/activeqt/dotnet.qdoc +++ b/doc/src/examples/activeqt/dotnet.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/activeqt/hierarchy.qdoc b/doc/src/examples/activeqt/hierarchy.qdoc index 7905e8a..eb6cc71 100644 --- a/doc/src/examples/activeqt/hierarchy.qdoc +++ b/doc/src/examples/activeqt/hierarchy.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/activeqt/menus.qdoc b/doc/src/examples/activeqt/menus.qdoc index ed91a3e..5cbf063 100644 --- a/doc/src/examples/activeqt/menus.qdoc +++ b/doc/src/examples/activeqt/menus.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/activeqt/multiple.qdoc b/doc/src/examples/activeqt/multiple.qdoc index 036f80e..1f58dcc 100644 --- a/doc/src/examples/activeqt/multiple.qdoc +++ b/doc/src/examples/activeqt/multiple.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/activeqt/opengl.qdoc b/doc/src/examples/activeqt/opengl.qdoc index 2c55e1e..4f64eff 100644 --- a/doc/src/examples/activeqt/opengl.qdoc +++ b/doc/src/examples/activeqt/opengl.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/activeqt/qutlook.qdoc b/doc/src/examples/activeqt/qutlook.qdoc index 845305f..e701c59 100644 --- a/doc/src/examples/activeqt/qutlook.qdoc +++ b/doc/src/examples/activeqt/qutlook.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/activeqt/simple.qdoc b/doc/src/examples/activeqt/simple.qdoc index 9860326..b0e942f 100644 --- a/doc/src/examples/activeqt/simple.qdoc +++ b/doc/src/examples/activeqt/simple.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/activeqt/webbrowser.qdoc b/doc/src/examples/activeqt/webbrowser.qdoc index 3b66c57..ac9cec5 100644 --- a/doc/src/examples/activeqt/webbrowser.qdoc +++ b/doc/src/examples/activeqt/webbrowser.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/activeqt/wrapper.qdoc b/doc/src/examples/activeqt/wrapper.qdoc index 4bf7901..980757c 100644 --- a/doc/src/examples/activeqt/wrapper.qdoc +++ b/doc/src/examples/activeqt/wrapper.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/addressbook.qdoc b/doc/src/examples/addressbook.qdoc index 8de1778..018ce70 100644 --- a/doc/src/examples/addressbook.qdoc +++ b/doc/src/examples/addressbook.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/analogclock.qdoc b/doc/src/examples/analogclock.qdoc index 45e78c3..f213998 100644 --- a/doc/src/examples/analogclock.qdoc +++ b/doc/src/examples/analogclock.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/animatedtiles.qdoc b/doc/src/examples/animatedtiles.qdoc index 5a99d21..00fe999 100644 --- a/doc/src/examples/animatedtiles.qdoc +++ b/doc/src/examples/animatedtiles.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/appchooser.qdoc b/doc/src/examples/appchooser.qdoc index f9c4a8d..ce8bfa6 100644 --- a/doc/src/examples/appchooser.qdoc +++ b/doc/src/examples/appchooser.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/application.qdoc b/doc/src/examples/application.qdoc index b69009f..f6a7b99 100644 --- a/doc/src/examples/application.qdoc +++ b/doc/src/examples/application.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/arrowpad.qdoc b/doc/src/examples/arrowpad.qdoc index 647f20e..bb22f83 100644 --- a/doc/src/examples/arrowpad.qdoc +++ b/doc/src/examples/arrowpad.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/audiodevices.qdoc b/doc/src/examples/audiodevices.qdoc index aa04f60..b812968 100644 --- a/doc/src/examples/audiodevices.qdoc +++ b/doc/src/examples/audiodevices.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/audioinput.qdoc b/doc/src/examples/audioinput.qdoc index b7f390b..7ca01a5 100644 --- a/doc/src/examples/audioinput.qdoc +++ b/doc/src/examples/audioinput.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/audiooutput.qdoc b/doc/src/examples/audiooutput.qdoc index 618db27..358c404 100644 --- a/doc/src/examples/audiooutput.qdoc +++ b/doc/src/examples/audiooutput.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/basicdrawing.qdoc b/doc/src/examples/basicdrawing.qdoc index d0b5294..7df061d 100644 --- a/doc/src/examples/basicdrawing.qdoc +++ b/doc/src/examples/basicdrawing.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/basicgraphicslayouts.qdoc b/doc/src/examples/basicgraphicslayouts.qdoc index 5951873..11b99f3 100644 --- a/doc/src/examples/basicgraphicslayouts.qdoc +++ b/doc/src/examples/basicgraphicslayouts.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/basiclayouts.qdoc b/doc/src/examples/basiclayouts.qdoc index cbc9297..c6e2ae1 100644 --- a/doc/src/examples/basiclayouts.qdoc +++ b/doc/src/examples/basiclayouts.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/basicsortfiltermodel.qdoc b/doc/src/examples/basicsortfiltermodel.qdoc index 8d00e03..58dbf36 100644 --- a/doc/src/examples/basicsortfiltermodel.qdoc +++ b/doc/src/examples/basicsortfiltermodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/bearercloud.qdoc b/doc/src/examples/bearercloud.qdoc index bf5da41..ddf145c 100644 --- a/doc/src/examples/bearercloud.qdoc +++ b/doc/src/examples/bearercloud.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/bearermonitor.qdoc b/doc/src/examples/bearermonitor.qdoc index 1a15bc3..cc4a782 100644 --- a/doc/src/examples/bearermonitor.qdoc +++ b/doc/src/examples/bearermonitor.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/blockingfortuneclient.qdoc b/doc/src/examples/blockingfortuneclient.qdoc index be8a9ba..7c28298 100644 --- a/doc/src/examples/blockingfortuneclient.qdoc +++ b/doc/src/examples/blockingfortuneclient.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/blurpicker.qdoc b/doc/src/examples/blurpicker.qdoc index 7be5863..205041c 100644 --- a/doc/src/examples/blurpicker.qdoc +++ b/doc/src/examples/blurpicker.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/borderlayout.qdoc b/doc/src/examples/borderlayout.qdoc index 5ccc95f..c81f9ec 100644 --- a/doc/src/examples/borderlayout.qdoc +++ b/doc/src/examples/borderlayout.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/broadcastreceiver.qdoc b/doc/src/examples/broadcastreceiver.qdoc index 13555e7..ea3c331 100644 --- a/doc/src/examples/broadcastreceiver.qdoc +++ b/doc/src/examples/broadcastreceiver.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/broadcastsender.qdoc b/doc/src/examples/broadcastsender.qdoc index b7140b9..3ceb333 100644 --- a/doc/src/examples/broadcastsender.qdoc +++ b/doc/src/examples/broadcastsender.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/cachedtable.qdoc b/doc/src/examples/cachedtable.qdoc index 31cc40f..d8b3f13 100644 --- a/doc/src/examples/cachedtable.qdoc +++ b/doc/src/examples/cachedtable.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/calculator.qdoc b/doc/src/examples/calculator.qdoc index a85e0b0..653a645 100644 --- a/doc/src/examples/calculator.qdoc +++ b/doc/src/examples/calculator.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/calculatorbuilder.qdoc b/doc/src/examples/calculatorbuilder.qdoc index 03acb93..31dcf1f 100644 --- a/doc/src/examples/calculatorbuilder.qdoc +++ b/doc/src/examples/calculatorbuilder.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/calculatorform.qdoc b/doc/src/examples/calculatorform.qdoc index 9ee6e3c..203998f 100644 --- a/doc/src/examples/calculatorform.qdoc +++ b/doc/src/examples/calculatorform.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/calendar.qdoc b/doc/src/examples/calendar.qdoc index 1395a3f..8acef03 100644 --- a/doc/src/examples/calendar.qdoc +++ b/doc/src/examples/calendar.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/calendarwidget.qdoc b/doc/src/examples/calendarwidget.qdoc index a65145f..da19564 100644 --- a/doc/src/examples/calendarwidget.qdoc +++ b/doc/src/examples/calendarwidget.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/capabilitiesexample.qdoc b/doc/src/examples/capabilitiesexample.qdoc index 2eab2c0..ccc23ed 100644 --- a/doc/src/examples/capabilitiesexample.qdoc +++ b/doc/src/examples/capabilitiesexample.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/charactermap.qdoc b/doc/src/examples/charactermap.qdoc index b9dd0c0..1324517 100644 --- a/doc/src/examples/charactermap.qdoc +++ b/doc/src/examples/charactermap.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/chart.qdoc b/doc/src/examples/chart.qdoc index 4021d46..7bed1e8 100644 --- a/doc/src/examples/chart.qdoc +++ b/doc/src/examples/chart.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/classwizard.qdoc b/doc/src/examples/classwizard.qdoc index 18da08e..16a1039 100644 --- a/doc/src/examples/classwizard.qdoc +++ b/doc/src/examples/classwizard.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/codecs.qdoc b/doc/src/examples/codecs.qdoc index fc948e8..fd73c7b 100644 --- a/doc/src/examples/codecs.qdoc +++ b/doc/src/examples/codecs.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/codeeditor.qdoc b/doc/src/examples/codeeditor.qdoc index 6c7b914..23a2fd4 100644 --- a/doc/src/examples/codeeditor.qdoc +++ b/doc/src/examples/codeeditor.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/collidingmice-example.qdoc b/doc/src/examples/collidingmice-example.qdoc index af364ff..7939039 100644 --- a/doc/src/examples/collidingmice-example.qdoc +++ b/doc/src/examples/collidingmice-example.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/coloreditorfactory.qdoc b/doc/src/examples/coloreditorfactory.qdoc index 5a419e4..804b022 100644 --- a/doc/src/examples/coloreditorfactory.qdoc +++ b/doc/src/examples/coloreditorfactory.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/combowidgetmapper.qdoc b/doc/src/examples/combowidgetmapper.qdoc index 3a396c9..1a9bf5a 100644 --- a/doc/src/examples/combowidgetmapper.qdoc +++ b/doc/src/examples/combowidgetmapper.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/completer.qdoc b/doc/src/examples/completer.qdoc index d56f4e6..348c203 100644 --- a/doc/src/examples/completer.qdoc +++ b/doc/src/examples/completer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/complexpingpong.qdoc b/doc/src/examples/complexpingpong.qdoc index a49568d..fb6db7b 100644 --- a/doc/src/examples/complexpingpong.qdoc +++ b/doc/src/examples/complexpingpong.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/concentriccircles.qdoc b/doc/src/examples/concentriccircles.qdoc index 03fb5ec..dc17871 100644 --- a/doc/src/examples/concentriccircles.qdoc +++ b/doc/src/examples/concentriccircles.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/configdialog.qdoc b/doc/src/examples/configdialog.qdoc index 1c936b9..ff4c8a6 100644 --- a/doc/src/examples/configdialog.qdoc +++ b/doc/src/examples/configdialog.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/containerextension.qdoc b/doc/src/examples/containerextension.qdoc index 64c607e..818547c 100644 --- a/doc/src/examples/containerextension.qdoc +++ b/doc/src/examples/containerextension.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/context2d.qdoc b/doc/src/examples/context2d.qdoc index 9501cc0..f10e1ec 100644 --- a/doc/src/examples/context2d.qdoc +++ b/doc/src/examples/context2d.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/contextsensitivehelp.qdoc b/doc/src/examples/contextsensitivehelp.qdoc index 79baf3c..41791a3 100644 --- a/doc/src/examples/contextsensitivehelp.qdoc +++ b/doc/src/examples/contextsensitivehelp.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/contiguouscache.qdoc b/doc/src/examples/contiguouscache.qdoc index cb8bd08..2200b92 100644 --- a/doc/src/examples/contiguouscache.qdoc +++ b/doc/src/examples/contiguouscache.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/customcompleter.qdoc b/doc/src/examples/customcompleter.qdoc index 9f49780..d1f555f 100644 --- a/doc/src/examples/customcompleter.qdoc +++ b/doc/src/examples/customcompleter.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/customsortfiltermodel.qdoc b/doc/src/examples/customsortfiltermodel.qdoc index 98fcd05..e8cd5ed 100644 --- a/doc/src/examples/customsortfiltermodel.qdoc +++ b/doc/src/examples/customsortfiltermodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/customtype.qdoc b/doc/src/examples/customtype.qdoc index 1033038..963cac5 100644 --- a/doc/src/examples/customtype.qdoc +++ b/doc/src/examples/customtype.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/customtypesending.qdoc b/doc/src/examples/customtypesending.qdoc index 83f0e85..ce4f42d 100644 --- a/doc/src/examples/customtypesending.qdoc +++ b/doc/src/examples/customtypesending.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/customwidgetplugin.qdoc b/doc/src/examples/customwidgetplugin.qdoc index c0c6180..f972500 100644 --- a/doc/src/examples/customwidgetplugin.qdoc +++ b/doc/src/examples/customwidgetplugin.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dbscreen.qdoc b/doc/src/examples/dbscreen.qdoc index 36c7bde..cfcdecd 100644 --- a/doc/src/examples/dbscreen.qdoc +++ b/doc/src/examples/dbscreen.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dbus-chat.qdoc b/doc/src/examples/dbus-chat.qdoc index 1627593..8d10a72 100644 --- a/doc/src/examples/dbus-chat.qdoc +++ b/doc/src/examples/dbus-chat.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dbus-listnames.qdoc b/doc/src/examples/dbus-listnames.qdoc index 0f634d3..8d6726a 100644 --- a/doc/src/examples/dbus-listnames.qdoc +++ b/doc/src/examples/dbus-listnames.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dbus-pingpong.qdoc b/doc/src/examples/dbus-pingpong.qdoc index 47f624d..c82b5a9 100644 --- a/doc/src/examples/dbus-pingpong.qdoc +++ b/doc/src/examples/dbus-pingpong.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dbus-remotecontrolledcar.qdoc b/doc/src/examples/dbus-remotecontrolledcar.qdoc index 93179e6..503ca73 100644 --- a/doc/src/examples/dbus-remotecontrolledcar.qdoc +++ b/doc/src/examples/dbus-remotecontrolledcar.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/defaultprototypes.qdoc b/doc/src/examples/defaultprototypes.qdoc index d4075db..5a2b69e 100644 --- a/doc/src/examples/defaultprototypes.qdoc +++ b/doc/src/examples/defaultprototypes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/delayedencoding.qdoc b/doc/src/examples/delayedencoding.qdoc index f674dcb..665ba15 100644 --- a/doc/src/examples/delayedencoding.qdoc +++ b/doc/src/examples/delayedencoding.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/diagramscene.qdoc b/doc/src/examples/diagramscene.qdoc index d5cc4e3..fca31ca 100644 --- a/doc/src/examples/diagramscene.qdoc +++ b/doc/src/examples/diagramscene.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/digitalclock.qdoc b/doc/src/examples/digitalclock.qdoc index e550a52..027abc7 100644 --- a/doc/src/examples/digitalclock.qdoc +++ b/doc/src/examples/digitalclock.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dirview.qdoc b/doc/src/examples/dirview.qdoc index b36d81f..25e148b 100644 --- a/doc/src/examples/dirview.qdoc +++ b/doc/src/examples/dirview.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dockwidgets.qdoc b/doc/src/examples/dockwidgets.qdoc index 1f31a12..98c1216 100644 --- a/doc/src/examples/dockwidgets.qdoc +++ b/doc/src/examples/dockwidgets.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dombookmarks.qdoc b/doc/src/examples/dombookmarks.qdoc index 5cb6777..78e63fe 100644 --- a/doc/src/examples/dombookmarks.qdoc +++ b/doc/src/examples/dombookmarks.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/domtraversal.qdoc b/doc/src/examples/domtraversal.qdoc index 66546df..40777125 100644 --- a/doc/src/examples/domtraversal.qdoc +++ b/doc/src/examples/domtraversal.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/draganddroppuzzle.qdoc b/doc/src/examples/draganddroppuzzle.qdoc index 8f99c93..50c2f3d 100644 --- a/doc/src/examples/draganddroppuzzle.qdoc +++ b/doc/src/examples/draganddroppuzzle.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dragdroprobot.qdoc b/doc/src/examples/dragdroprobot.qdoc index 7e4c06f..bcf0fe7 100644 --- a/doc/src/examples/dragdroprobot.qdoc +++ b/doc/src/examples/dragdroprobot.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/draggableicons.qdoc b/doc/src/examples/draggableicons.qdoc index 589ba27..e940d42 100644 --- a/doc/src/examples/draggableicons.qdoc +++ b/doc/src/examples/draggableicons.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/draggabletext.qdoc b/doc/src/examples/draggabletext.qdoc index 2195a8f..d4ea385 100644 --- a/doc/src/examples/draggabletext.qdoc +++ b/doc/src/examples/draggabletext.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/drilldown.qdoc b/doc/src/examples/drilldown.qdoc index 8160bed..bc45db3 100644 --- a/doc/src/examples/drilldown.qdoc +++ b/doc/src/examples/drilldown.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dropsite.qdoc b/doc/src/examples/dropsite.qdoc index 7145c0e..d8c17e1 100644 --- a/doc/src/examples/dropsite.qdoc +++ b/doc/src/examples/dropsite.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/dynamiclayouts.qdoc b/doc/src/examples/dynamiclayouts.qdoc index f691321..b0fa933 100644 --- a/doc/src/examples/dynamiclayouts.qdoc +++ b/doc/src/examples/dynamiclayouts.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/easing.qdoc b/doc/src/examples/easing.qdoc index 8116791..b8d70ee 100644 --- a/doc/src/examples/easing.qdoc +++ b/doc/src/examples/easing.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/echoplugin.qdoc b/doc/src/examples/echoplugin.qdoc index dec85be..7c56b21 100644 --- a/doc/src/examples/echoplugin.qdoc +++ b/doc/src/examples/echoplugin.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/editabletreemodel.qdoc b/doc/src/examples/editabletreemodel.qdoc index fc0743a..042b745 100644 --- a/doc/src/examples/editabletreemodel.qdoc +++ b/doc/src/examples/editabletreemodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/elasticnodes.qdoc b/doc/src/examples/elasticnodes.qdoc index c33a4a1..d6676e8 100644 --- a/doc/src/examples/elasticnodes.qdoc +++ b/doc/src/examples/elasticnodes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/eventtransitions.qdoc b/doc/src/examples/eventtransitions.qdoc index cf59e1b..be6e814 100644 --- a/doc/src/examples/eventtransitions.qdoc +++ b/doc/src/examples/eventtransitions.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/extension.qdoc b/doc/src/examples/extension.qdoc index 23c1eb4..e66c89c 100644 --- a/doc/src/examples/extension.qdoc +++ b/doc/src/examples/extension.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/factorial.qdoc b/doc/src/examples/factorial.qdoc index 085d469..bad1a77 100644 --- a/doc/src/examples/factorial.qdoc +++ b/doc/src/examples/factorial.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/fademessage.qdoc b/doc/src/examples/fademessage.qdoc index 15f7ce4..b8a09e8 100644 --- a/doc/src/examples/fademessage.qdoc +++ b/doc/src/examples/fademessage.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/fancybrowser.qdoc b/doc/src/examples/fancybrowser.qdoc index 44683a3..4121904 100644 --- a/doc/src/examples/fancybrowser.qdoc +++ b/doc/src/examples/fancybrowser.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/fetchmore.qdoc b/doc/src/examples/fetchmore.qdoc index 8781d61..7aa8b45 100644 --- a/doc/src/examples/fetchmore.qdoc +++ b/doc/src/examples/fetchmore.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/filetree.qdoc b/doc/src/examples/filetree.qdoc index 11492e6..718d0c8 100644 --- a/doc/src/examples/filetree.qdoc +++ b/doc/src/examples/filetree.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/findfiles.qdoc b/doc/src/examples/findfiles.qdoc index a46dda0..2226fe2 100644 --- a/doc/src/examples/findfiles.qdoc +++ b/doc/src/examples/findfiles.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/fingerpaint.qdoc b/doc/src/examples/fingerpaint.qdoc index 264a226..eaef4eb 100644 --- a/doc/src/examples/fingerpaint.qdoc +++ b/doc/src/examples/fingerpaint.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/flowlayout.qdoc b/doc/src/examples/flowlayout.qdoc index c786b13..64a86c3 100644 --- a/doc/src/examples/flowlayout.qdoc +++ b/doc/src/examples/flowlayout.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/fontsampler.qdoc b/doc/src/examples/fontsampler.qdoc index 7b38f58..d6bd9ba 100644 --- a/doc/src/examples/fontsampler.qdoc +++ b/doc/src/examples/fontsampler.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/formextractor.qdoc b/doc/src/examples/formextractor.qdoc index b199b70..1134c85 100644 --- a/doc/src/examples/formextractor.qdoc +++ b/doc/src/examples/formextractor.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/fortuneclient.qdoc b/doc/src/examples/fortuneclient.qdoc index fa75e3e..1c8b504 100644 --- a/doc/src/examples/fortuneclient.qdoc +++ b/doc/src/examples/fortuneclient.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/fortuneserver.qdoc b/doc/src/examples/fortuneserver.qdoc index 3708146..8007b3d 100644 --- a/doc/src/examples/fortuneserver.qdoc +++ b/doc/src/examples/fortuneserver.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/framebufferobject.qdoc b/doc/src/examples/framebufferobject.qdoc index 9f5d2dc..eff11a9 100644 --- a/doc/src/examples/framebufferobject.qdoc +++ b/doc/src/examples/framebufferobject.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/framebufferobject2.qdoc b/doc/src/examples/framebufferobject2.qdoc index 0b2dbe9..7f5a634 100644 --- a/doc/src/examples/framebufferobject2.qdoc +++ b/doc/src/examples/framebufferobject2.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/fridgemagnets.qdoc b/doc/src/examples/fridgemagnets.qdoc index ac67b55..98811b8 100644 --- a/doc/src/examples/fridgemagnets.qdoc +++ b/doc/src/examples/fridgemagnets.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/frozencolumn.qdoc b/doc/src/examples/frozencolumn.qdoc index e8deddd..5840444 100644 --- a/doc/src/examples/frozencolumn.qdoc +++ b/doc/src/examples/frozencolumn.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/ftp.qdoc b/doc/src/examples/ftp.qdoc index 087ac5a..4fa2cfd 100644 --- a/doc/src/examples/ftp.qdoc +++ b/doc/src/examples/ftp.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/globalVariables.qdoc b/doc/src/examples/globalVariables.qdoc index 8468abb..4629801 100644 --- a/doc/src/examples/globalVariables.qdoc +++ b/doc/src/examples/globalVariables.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/googlechat.qdoc b/doc/src/examples/googlechat.qdoc index a751ae5..aebf375 100644 --- a/doc/src/examples/googlechat.qdoc +++ b/doc/src/examples/googlechat.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/googlesuggest.qdoc b/doc/src/examples/googlesuggest.qdoc index 63fabf8..45d5fbb 100644 --- a/doc/src/examples/googlesuggest.qdoc +++ b/doc/src/examples/googlesuggest.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/grabber.qdoc b/doc/src/examples/grabber.qdoc index 19501a5..d5e2512 100644 --- a/doc/src/examples/grabber.qdoc +++ b/doc/src/examples/grabber.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/graphicsview-anchorlayout.qdoc b/doc/src/examples/graphicsview-anchorlayout.qdoc index 61e7f55..e1832dc 100644 --- a/doc/src/examples/graphicsview-anchorlayout.qdoc +++ b/doc/src/examples/graphicsview-anchorlayout.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/graphicsview-flowlayout.qdoc b/doc/src/examples/graphicsview-flowlayout.qdoc index 6320780..3459057 100644 --- a/doc/src/examples/graphicsview-flowlayout.qdoc +++ b/doc/src/examples/graphicsview-flowlayout.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/graphicsview-simpleanchorlayout.qdoc b/doc/src/examples/graphicsview-simpleanchorlayout.qdoc index c8d332b..08fb266 100644 --- a/doc/src/examples/graphicsview-simpleanchorlayout.qdoc +++ b/doc/src/examples/graphicsview-simpleanchorlayout.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/graphicsview-weatheranchorlayout.qdoc b/doc/src/examples/graphicsview-weatheranchorlayout.qdoc index f77e3f5..4c62f98 100644 --- a/doc/src/examples/graphicsview-weatheranchorlayout.qdoc +++ b/doc/src/examples/graphicsview-weatheranchorlayout.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/groupbox.qdoc b/doc/src/examples/groupbox.qdoc index f8a1ffd..87dd92e 100644 --- a/doc/src/examples/groupbox.qdoc +++ b/doc/src/examples/groupbox.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/hellogl.qdoc b/doc/src/examples/hellogl.qdoc index c8b82b3..b66eae9 100644 --- a/doc/src/examples/hellogl.qdoc +++ b/doc/src/examples/hellogl.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/hellogl_es.qdoc b/doc/src/examples/hellogl_es.qdoc index d96d3de..63ecadd 100644 --- a/doc/src/examples/hellogl_es.qdoc +++ b/doc/src/examples/hellogl_es.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/helloscript.qdoc b/doc/src/examples/helloscript.qdoc index 842e393..4b3ede5 100644 --- a/doc/src/examples/helloscript.qdoc +++ b/doc/src/examples/helloscript.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/hellotr.qdoc b/doc/src/examples/hellotr.qdoc index 5d794c6..384765e 100644 --- a/doc/src/examples/hellotr.qdoc +++ b/doc/src/examples/hellotr.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/htmlinfo.qdoc b/doc/src/examples/htmlinfo.qdoc index a4e11bd..a0d47cb 100644 --- a/doc/src/examples/htmlinfo.qdoc +++ b/doc/src/examples/htmlinfo.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/http.qdoc b/doc/src/examples/http.qdoc index 2c86edd..cff42e2 100644 --- a/doc/src/examples/http.qdoc +++ b/doc/src/examples/http.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/i18n.qdoc b/doc/src/examples/i18n.qdoc index 0698dbe..b24b635 100644 --- a/doc/src/examples/i18n.qdoc +++ b/doc/src/examples/i18n.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/icons.qdoc b/doc/src/examples/icons.qdoc index 21a308d..4210859 100644 --- a/doc/src/examples/icons.qdoc +++ b/doc/src/examples/icons.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/imagecomposition.qdoc b/doc/src/examples/imagecomposition.qdoc index f2b6083..884ffbe 100644 --- a/doc/src/examples/imagecomposition.qdoc +++ b/doc/src/examples/imagecomposition.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/imagegestures.qdoc b/doc/src/examples/imagegestures.qdoc index 8bdfaf4..febeaa3 100644 --- a/doc/src/examples/imagegestures.qdoc +++ b/doc/src/examples/imagegestures.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/imageviewer.qdoc b/doc/src/examples/imageviewer.qdoc index 8cf16d7..70f71c8 100644 --- a/doc/src/examples/imageviewer.qdoc +++ b/doc/src/examples/imageviewer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/inputpanel.qdoc b/doc/src/examples/inputpanel.qdoc index ea83171..5305108 100644 --- a/doc/src/examples/inputpanel.qdoc +++ b/doc/src/examples/inputpanel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/itemviewspuzzle.qdoc b/doc/src/examples/itemviewspuzzle.qdoc index ed5e736..70aa1ba 100644 --- a/doc/src/examples/itemviewspuzzle.qdoc +++ b/doc/src/examples/itemviewspuzzle.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/licensewizard.qdoc b/doc/src/examples/licensewizard.qdoc index b29abb7..0b33534 100644 --- a/doc/src/examples/licensewizard.qdoc +++ b/doc/src/examples/licensewizard.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/lighting.qdoc b/doc/src/examples/lighting.qdoc index 3e222e1..f50a413 100644 --- a/doc/src/examples/lighting.qdoc +++ b/doc/src/examples/lighting.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/lineedits.qdoc b/doc/src/examples/lineedits.qdoc index fc38bf9..9b4abdc 100644 --- a/doc/src/examples/lineedits.qdoc +++ b/doc/src/examples/lineedits.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/localfortuneclient.qdoc b/doc/src/examples/localfortuneclient.qdoc index 295b8c8..0a65966 100644 --- a/doc/src/examples/localfortuneclient.qdoc +++ b/doc/src/examples/localfortuneclient.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/localfortuneserver.qdoc b/doc/src/examples/localfortuneserver.qdoc index 4bfc20c..ca25e96 100644 --- a/doc/src/examples/localfortuneserver.qdoc +++ b/doc/src/examples/localfortuneserver.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/loopback.qdoc b/doc/src/examples/loopback.qdoc index 0e2e808..06916b3 100644 --- a/doc/src/examples/loopback.qdoc +++ b/doc/src/examples/loopback.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/mandelbrot.qdoc b/doc/src/examples/mandelbrot.qdoc index 44e8e66..7a1ea37 100644 --- a/doc/src/examples/mandelbrot.qdoc +++ b/doc/src/examples/mandelbrot.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/masterdetail.qdoc b/doc/src/examples/masterdetail.qdoc index 5bfdb4d..1a8519e 100644 --- a/doc/src/examples/masterdetail.qdoc +++ b/doc/src/examples/masterdetail.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/mdi.qdoc b/doc/src/examples/mdi.qdoc index ea388db..f4a2224 100644 --- a/doc/src/examples/mdi.qdoc +++ b/doc/src/examples/mdi.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/menus.qdoc b/doc/src/examples/menus.qdoc index 9e82da3..7868d6d 100644 --- a/doc/src/examples/menus.qdoc +++ b/doc/src/examples/menus.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/mousecalibration.qdoc b/doc/src/examples/mousecalibration.qdoc index bb9301c..9edc11b 100644 --- a/doc/src/examples/mousecalibration.qdoc +++ b/doc/src/examples/mousecalibration.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/moveblocks.qdoc b/doc/src/examples/moveblocks.qdoc index eee5ac3..7377ae0 100644 --- a/doc/src/examples/moveblocks.qdoc +++ b/doc/src/examples/moveblocks.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/movie.qdoc b/doc/src/examples/movie.qdoc index 478104ef..bbf3411 100644 --- a/doc/src/examples/movie.qdoc +++ b/doc/src/examples/movie.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/multipleinheritance.qdoc b/doc/src/examples/multipleinheritance.qdoc index 54c2ba4..aff80b7 100644 --- a/doc/src/examples/multipleinheritance.qdoc +++ b/doc/src/examples/multipleinheritance.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/musicplayerexample.qdoc b/doc/src/examples/musicplayerexample.qdoc index 9805bbb..6f559fb 100644 --- a/doc/src/examples/musicplayerexample.qdoc +++ b/doc/src/examples/musicplayerexample.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/network-chat.qdoc b/doc/src/examples/network-chat.qdoc index c5dba3f..42fbe74 100644 --- a/doc/src/examples/network-chat.qdoc +++ b/doc/src/examples/network-chat.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/network-download.qdoc b/doc/src/examples/network-download.qdoc index ecd45e6..ba07ced 100644 --- a/doc/src/examples/network-download.qdoc +++ b/doc/src/examples/network-download.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/network-downloadmanager.qdoc b/doc/src/examples/network-downloadmanager.qdoc index fbd3bca..2783409 100644 --- a/doc/src/examples/network-downloadmanager.qdoc +++ b/doc/src/examples/network-downloadmanager.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/openvg-star.qdoc b/doc/src/examples/openvg-star.qdoc index 7b6193e..bf0460f 100644 --- a/doc/src/examples/openvg-star.qdoc +++ b/doc/src/examples/openvg-star.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/orderform.qdoc b/doc/src/examples/orderform.qdoc index e78790a..d6b421d 100644 --- a/doc/src/examples/orderform.qdoc +++ b/doc/src/examples/orderform.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/overpainting.qdoc b/doc/src/examples/overpainting.qdoc index f930d6b..6b7be8c 100644 --- a/doc/src/examples/overpainting.qdoc +++ b/doc/src/examples/overpainting.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/padnavigator.qdoc b/doc/src/examples/padnavigator.qdoc index 2bdad8d..76c1596 100644 --- a/doc/src/examples/padnavigator.qdoc +++ b/doc/src/examples/padnavigator.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/painterpaths.qdoc b/doc/src/examples/painterpaths.qdoc index dbc3563..076437c 100644 --- a/doc/src/examples/painterpaths.qdoc +++ b/doc/src/examples/painterpaths.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/pbuffers.qdoc b/doc/src/examples/pbuffers.qdoc index a8257e1..6390bde 100644 --- a/doc/src/examples/pbuffers.qdoc +++ b/doc/src/examples/pbuffers.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/pbuffers2.qdoc b/doc/src/examples/pbuffers2.qdoc index 5a0bba3..de82c30 100644 --- a/doc/src/examples/pbuffers2.qdoc +++ b/doc/src/examples/pbuffers2.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/pinchzoom.qdoc b/doc/src/examples/pinchzoom.qdoc index 60fac29..3cca892 100644 --- a/doc/src/examples/pinchzoom.qdoc +++ b/doc/src/examples/pinchzoom.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/pingpong.qdoc b/doc/src/examples/pingpong.qdoc index 2b27db7..5fc8009 100644 --- a/doc/src/examples/pingpong.qdoc +++ b/doc/src/examples/pingpong.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/pixelator.qdoc b/doc/src/examples/pixelator.qdoc index d40316e..8092314 100644 --- a/doc/src/examples/pixelator.qdoc +++ b/doc/src/examples/pixelator.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/plugandpaint.qdoc b/doc/src/examples/plugandpaint.qdoc index 19053da..d685d0c 100644 --- a/doc/src/examples/plugandpaint.qdoc +++ b/doc/src/examples/plugandpaint.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/portedasteroids.qdoc b/doc/src/examples/portedasteroids.qdoc index 6307931..ed622e6 100644 --- a/doc/src/examples/portedasteroids.qdoc +++ b/doc/src/examples/portedasteroids.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/portedcanvas.qdoc b/doc/src/examples/portedcanvas.qdoc index 9e4b004..3363a2d 100644 --- a/doc/src/examples/portedcanvas.qdoc +++ b/doc/src/examples/portedcanvas.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/previewer.qdoc b/doc/src/examples/previewer.qdoc index c7140f7..5807c6d 100644 --- a/doc/src/examples/previewer.qdoc +++ b/doc/src/examples/previewer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-calculator.qdoc b/doc/src/examples/qml-calculator.qdoc index 1bc5f79..565ccc0 100644 --- a/doc/src/examples/qml-calculator.qdoc +++ b/doc/src/examples/qml-calculator.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc index 0834527..46af110 100644 --- a/doc/src/examples/qml-examples.qdoc +++ b/doc/src/examples/qml-examples.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-extending.qdoc b/doc/src/examples/qml-extending.qdoc index 789b8f6..7d70368 100644 --- a/doc/src/examples/qml-extending.qdoc +++ b/doc/src/examples/qml-extending.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-flickr.qdoc b/doc/src/examples/qml-flickr.qdoc index 6d47675..636e4d9 100644 --- a/doc/src/examples/qml-flickr.qdoc +++ b/doc/src/examples/qml-flickr.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-folderlistmodel.qdoc b/doc/src/examples/qml-folderlistmodel.qdoc index 1592d7b..c9d248e 100644 --- a/doc/src/examples/qml-folderlistmodel.qdoc +++ b/doc/src/examples/qml-folderlistmodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-minehunt.qdoc b/doc/src/examples/qml-minehunt.qdoc index 6e7ce4f..87f5d93 100644 --- a/doc/src/examples/qml-minehunt.qdoc +++ b/doc/src/examples/qml-minehunt.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-photoviewer.qdoc b/doc/src/examples/qml-photoviewer.qdoc index 032284e..335d150 100644 --- a/doc/src/examples/qml-photoviewer.qdoc +++ b/doc/src/examples/qml-photoviewer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-rssnews.qdoc b/doc/src/examples/qml-rssnews.qdoc index e7da263..0473d1d 100644 --- a/doc/src/examples/qml-rssnews.qdoc +++ b/doc/src/examples/qml-rssnews.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-samegame.qdoc b/doc/src/examples/qml-samegame.qdoc index 588a51c..332f0d9 100644 --- a/doc/src/examples/qml-samegame.qdoc +++ b/doc/src/examples/qml-samegame.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-snake.qdoc b/doc/src/examples/qml-snake.qdoc index c4c1125..2fe8ee7 100644 --- a/doc/src/examples/qml-snake.qdoc +++ b/doc/src/examples/qml-snake.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-twitter.qdoc b/doc/src/examples/qml-twitter.qdoc index 73e3f49..7f21e34 100644 --- a/doc/src/examples/qml-twitter.qdoc +++ b/doc/src/examples/qml-twitter.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qml-webbrowser.qdoc b/doc/src/examples/qml-webbrowser.qdoc index a7d543f..c7c4b26 100644 --- a/doc/src/examples/qml-webbrowser.qdoc +++ b/doc/src/examples/qml-webbrowser.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qobjectxmlmodel.qdoc b/doc/src/examples/qobjectxmlmodel.qdoc index cddc1d1..4356cc6 100644 --- a/doc/src/examples/qobjectxmlmodel.qdoc +++ b/doc/src/examples/qobjectxmlmodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qtconcurrent-imagescaling.qdoc b/doc/src/examples/qtconcurrent-imagescaling.qdoc index 4ee7e75..ce84a45 100644 --- a/doc/src/examples/qtconcurrent-imagescaling.qdoc +++ b/doc/src/examples/qtconcurrent-imagescaling.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qtconcurrent-map.qdoc b/doc/src/examples/qtconcurrent-map.qdoc index ee4608a..a92b6b9 100644 --- a/doc/src/examples/qtconcurrent-map.qdoc +++ b/doc/src/examples/qtconcurrent-map.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qtconcurrent-progressdialog.qdoc b/doc/src/examples/qtconcurrent-progressdialog.qdoc index b5e01ed..aa81c13 100644 --- a/doc/src/examples/qtconcurrent-progressdialog.qdoc +++ b/doc/src/examples/qtconcurrent-progressdialog.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qtconcurrent-runfunction.qdoc b/doc/src/examples/qtconcurrent-runfunction.qdoc index 5b431cf..1d72ff5 100644 --- a/doc/src/examples/qtconcurrent-runfunction.qdoc +++ b/doc/src/examples/qtconcurrent-runfunction.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qtconcurrent-wordcount.qdoc b/doc/src/examples/qtconcurrent-wordcount.qdoc index b02017e..0ae1a5d 100644 --- a/doc/src/examples/qtconcurrent-wordcount.qdoc +++ b/doc/src/examples/qtconcurrent-wordcount.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qtscriptcalculator.qdoc b/doc/src/examples/qtscriptcalculator.qdoc index 590f56c..893fe5f 100644 --- a/doc/src/examples/qtscriptcalculator.qdoc +++ b/doc/src/examples/qtscriptcalculator.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qtscriptcustomclass.qdoc b/doc/src/examples/qtscriptcustomclass.qdoc index 71d0ace..f2b4f36 100644 --- a/doc/src/examples/qtscriptcustomclass.qdoc +++ b/doc/src/examples/qtscriptcustomclass.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qtscripttetrix.qdoc b/doc/src/examples/qtscripttetrix.qdoc index c308b1b..e9d9610 100644 --- a/doc/src/examples/qtscripttetrix.qdoc +++ b/doc/src/examples/qtscripttetrix.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/querymodel.qdoc b/doc/src/examples/querymodel.qdoc index ff538dc..384eb3b 100644 --- a/doc/src/examples/querymodel.qdoc +++ b/doc/src/examples/querymodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/queuedcustomtype.qdoc b/doc/src/examples/queuedcustomtype.qdoc index fec1600..3df7e4d 100644 --- a/doc/src/examples/queuedcustomtype.qdoc +++ b/doc/src/examples/queuedcustomtype.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/qxmlstreambookmarks.qdoc b/doc/src/examples/qxmlstreambookmarks.qdoc index e3c5ccb..6946b26 100644 --- a/doc/src/examples/qxmlstreambookmarks.qdoc +++ b/doc/src/examples/qxmlstreambookmarks.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/recentfiles.qdoc b/doc/src/examples/recentfiles.qdoc index 501d12e..2df0f46 100644 --- a/doc/src/examples/recentfiles.qdoc +++ b/doc/src/examples/recentfiles.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/recipes.qdoc b/doc/src/examples/recipes.qdoc index f01eaf4..f34fe3b 100644 --- a/doc/src/examples/recipes.qdoc +++ b/doc/src/examples/recipes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/regexp.qdoc b/doc/src/examples/regexp.qdoc index 1759394..30610c0 100644 --- a/doc/src/examples/regexp.qdoc +++ b/doc/src/examples/regexp.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/relationaltablemodel.qdoc b/doc/src/examples/relationaltablemodel.qdoc index 68c2d37..37c319a 100644 --- a/doc/src/examples/relationaltablemodel.qdoc +++ b/doc/src/examples/relationaltablemodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/remotecontrol.qdoc b/doc/src/examples/remotecontrol.qdoc index f148cb2..97621cc 100644 --- a/doc/src/examples/remotecontrol.qdoc +++ b/doc/src/examples/remotecontrol.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/rogue.qdoc b/doc/src/examples/rogue.qdoc index 5b49a50..94539ad 100644 --- a/doc/src/examples/rogue.qdoc +++ b/doc/src/examples/rogue.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/rsslisting.qdoc b/doc/src/examples/rsslisting.qdoc index 878ad49..ca29c04 100644 --- a/doc/src/examples/rsslisting.qdoc +++ b/doc/src/examples/rsslisting.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/samplebuffers.qdoc b/doc/src/examples/samplebuffers.qdoc index a000f06..59891ae 100644 --- a/doc/src/examples/samplebuffers.qdoc +++ b/doc/src/examples/samplebuffers.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/saxbookmarks.qdoc b/doc/src/examples/saxbookmarks.qdoc index 6b8aa02..de4f386 100644 --- a/doc/src/examples/saxbookmarks.qdoc +++ b/doc/src/examples/saxbookmarks.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/schema.qdoc b/doc/src/examples/schema.qdoc index abe0f63..1cc4ed3 100644 --- a/doc/src/examples/schema.qdoc +++ b/doc/src/examples/schema.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/screenshot.qdoc b/doc/src/examples/screenshot.qdoc index 1bc5092..3875f04 100644 --- a/doc/src/examples/screenshot.qdoc +++ b/doc/src/examples/screenshot.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/scribble.qdoc b/doc/src/examples/scribble.qdoc index cfb36e6..de60eab 100644 --- a/doc/src/examples/scribble.qdoc +++ b/doc/src/examples/scribble.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/script-marshal.qdoc b/doc/src/examples/script-marshal.qdoc index 279036d..5344b33 100644 --- a/doc/src/examples/script-marshal.qdoc +++ b/doc/src/examples/script-marshal.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/script-qscript.qdoc b/doc/src/examples/script-qscript.qdoc index 0ec0d01..a871616 100644 --- a/doc/src/examples/script-qscript.qdoc +++ b/doc/src/examples/script-qscript.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/script-qsdbg.qdoc b/doc/src/examples/script-qsdbg.qdoc index 50b52f7..df31c7f 100644 --- a/doc/src/examples/script-qsdbg.qdoc +++ b/doc/src/examples/script-qsdbg.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/sdi.qdoc b/doc/src/examples/sdi.qdoc index 75c063f..247a216 100644 --- a/doc/src/examples/sdi.qdoc +++ b/doc/src/examples/sdi.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/securesocketclient.qdoc b/doc/src/examples/securesocketclient.qdoc index 2356e86..0482bda 100644 --- a/doc/src/examples/securesocketclient.qdoc +++ b/doc/src/examples/securesocketclient.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/semaphores.qdoc b/doc/src/examples/semaphores.qdoc index d315c19..1610b8c 100644 --- a/doc/src/examples/semaphores.qdoc +++ b/doc/src/examples/semaphores.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/settingseditor.qdoc b/doc/src/examples/settingseditor.qdoc index 8429bcd..3a3099c 100644 --- a/doc/src/examples/settingseditor.qdoc +++ b/doc/src/examples/settingseditor.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/shapedclock.qdoc b/doc/src/examples/shapedclock.qdoc index adb4441..58a3575 100644 --- a/doc/src/examples/shapedclock.qdoc +++ b/doc/src/examples/shapedclock.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/sharedmemory.qdoc b/doc/src/examples/sharedmemory.qdoc index 6fd0947..6ceed14 100644 --- a/doc/src/examples/sharedmemory.qdoc +++ b/doc/src/examples/sharedmemory.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/simpledecoration.qdoc b/doc/src/examples/simpledecoration.qdoc index 74d6c0e..d379fd3 100644 --- a/doc/src/examples/simpledecoration.qdoc +++ b/doc/src/examples/simpledecoration.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/simpledommodel.qdoc b/doc/src/examples/simpledommodel.qdoc index 82ecac5..ea380bd 100644 --- a/doc/src/examples/simpledommodel.qdoc +++ b/doc/src/examples/simpledommodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/simpleselector.qdoc b/doc/src/examples/simpleselector.qdoc index f66ced5..9f6eda2 100644 --- a/doc/src/examples/simpleselector.qdoc +++ b/doc/src/examples/simpleselector.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/simpletextviewer.qdoc b/doc/src/examples/simpletextviewer.qdoc index 50ced54..7e6fc71 100644 --- a/doc/src/examples/simpletextviewer.qdoc +++ b/doc/src/examples/simpletextviewer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/simpletreemodel.qdoc b/doc/src/examples/simpletreemodel.qdoc index c09c216..3b842f0 100644 --- a/doc/src/examples/simpletreemodel.qdoc +++ b/doc/src/examples/simpletreemodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/simplewidgetmapper.qdoc b/doc/src/examples/simplewidgetmapper.qdoc index 686263a..22ca9e7 100644 --- a/doc/src/examples/simplewidgetmapper.qdoc +++ b/doc/src/examples/simplewidgetmapper.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/sipdialog.qdoc b/doc/src/examples/sipdialog.qdoc index 16081f0..7c2a3ee 100644 --- a/doc/src/examples/sipdialog.qdoc +++ b/doc/src/examples/sipdialog.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/sliders.qdoc b/doc/src/examples/sliders.qdoc index 5d878fe..c202ccb 100644 --- a/doc/src/examples/sliders.qdoc +++ b/doc/src/examples/sliders.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/spinboxdelegate.qdoc b/doc/src/examples/spinboxdelegate.qdoc index 61eff51..bb62dd2 100644 --- a/doc/src/examples/spinboxdelegate.qdoc +++ b/doc/src/examples/spinboxdelegate.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/spinboxes.qdoc b/doc/src/examples/spinboxes.qdoc index 865335e..fde9e37 100644 --- a/doc/src/examples/spinboxes.qdoc +++ b/doc/src/examples/spinboxes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/sqlwidgetmapper.qdoc b/doc/src/examples/sqlwidgetmapper.qdoc index d642909..af978c5 100644 --- a/doc/src/examples/sqlwidgetmapper.qdoc +++ b/doc/src/examples/sqlwidgetmapper.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/standarddialogs.qdoc b/doc/src/examples/standarddialogs.qdoc index dbe21b9..540e4c5 100644 --- a/doc/src/examples/standarddialogs.qdoc +++ b/doc/src/examples/standarddialogs.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/stardelegate.qdoc b/doc/src/examples/stardelegate.qdoc index c895667..3514a6f 100644 --- a/doc/src/examples/stardelegate.qdoc +++ b/doc/src/examples/stardelegate.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/states.qdoc b/doc/src/examples/states.qdoc index 573cda0..d83f231 100644 --- a/doc/src/examples/states.qdoc +++ b/doc/src/examples/states.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/stickman.qdoc b/doc/src/examples/stickman.qdoc index 46301a8..a2c1255 100644 --- a/doc/src/examples/stickman.qdoc +++ b/doc/src/examples/stickman.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/styleplugin.qdoc b/doc/src/examples/styleplugin.qdoc index 9d84a14..b676b96 100644 --- a/doc/src/examples/styleplugin.qdoc +++ b/doc/src/examples/styleplugin.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/styles.qdoc b/doc/src/examples/styles.qdoc index b9f48da..93c3df7 100644 --- a/doc/src/examples/styles.qdoc +++ b/doc/src/examples/styles.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/stylesheet.qdoc b/doc/src/examples/stylesheet.qdoc index d08c2a4..5bcb1d1 100644 --- a/doc/src/examples/stylesheet.qdoc +++ b/doc/src/examples/stylesheet.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/svgalib.qdoc b/doc/src/examples/svgalib.qdoc index 3e3e4d5..b69bead 100644 --- a/doc/src/examples/svgalib.qdoc +++ b/doc/src/examples/svgalib.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/svggenerator.qdoc b/doc/src/examples/svggenerator.qdoc index ae968b9..5b3ea00 100644 --- a/doc/src/examples/svggenerator.qdoc +++ b/doc/src/examples/svggenerator.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/svgviewer.qdoc b/doc/src/examples/svgviewer.qdoc index e528054..c9ddb08 100644 --- a/doc/src/examples/svgviewer.qdoc +++ b/doc/src/examples/svgviewer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/syntaxhighlighter.qdoc b/doc/src/examples/syntaxhighlighter.qdoc index 722dcca..4018be8 100644 --- a/doc/src/examples/syntaxhighlighter.qdoc +++ b/doc/src/examples/syntaxhighlighter.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/systray.qdoc b/doc/src/examples/systray.qdoc index 8b9de81..28ac46e 100644 --- a/doc/src/examples/systray.qdoc +++ b/doc/src/examples/systray.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/tabdialog.qdoc b/doc/src/examples/tabdialog.qdoc index da447c4..543ec4d 100644 --- a/doc/src/examples/tabdialog.qdoc +++ b/doc/src/examples/tabdialog.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/tablemodel.qdoc b/doc/src/examples/tablemodel.qdoc index 04a13cc..0d4dffb 100644 --- a/doc/src/examples/tablemodel.qdoc +++ b/doc/src/examples/tablemodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/tablet.qdoc b/doc/src/examples/tablet.qdoc index 58af376..f4cb3e9 100644 --- a/doc/src/examples/tablet.qdoc +++ b/doc/src/examples/tablet.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/taskmenuextension.qdoc b/doc/src/examples/taskmenuextension.qdoc index d89b68c..0200c2f 100644 --- a/doc/src/examples/taskmenuextension.qdoc +++ b/doc/src/examples/taskmenuextension.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/tetrix.qdoc b/doc/src/examples/tetrix.qdoc index ec46507..00bc092 100644 --- a/doc/src/examples/tetrix.qdoc +++ b/doc/src/examples/tetrix.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/textfinder.qdoc b/doc/src/examples/textfinder.qdoc index a04df00..31fe785 100644 --- a/doc/src/examples/textfinder.qdoc +++ b/doc/src/examples/textfinder.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/textobject.qdoc b/doc/src/examples/textobject.qdoc index e655206..a2e3de0 100644 --- a/doc/src/examples/textobject.qdoc +++ b/doc/src/examples/textobject.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/textures.qdoc b/doc/src/examples/textures.qdoc index d18268b..143b0df 100644 --- a/doc/src/examples/textures.qdoc +++ b/doc/src/examples/textures.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/threadedfortuneserver.qdoc b/doc/src/examples/threadedfortuneserver.qdoc index c0c4815..285d7fd 100644 --- a/doc/src/examples/threadedfortuneserver.qdoc +++ b/doc/src/examples/threadedfortuneserver.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/tooltips.qdoc b/doc/src/examples/tooltips.qdoc index f7737b9..5558fd2 100644 --- a/doc/src/examples/tooltips.qdoc +++ b/doc/src/examples/tooltips.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/torrent.qdoc b/doc/src/examples/torrent.qdoc index 3c0d108..779e0b2 100644 --- a/doc/src/examples/torrent.qdoc +++ b/doc/src/examples/torrent.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/touch-dials.qdoc b/doc/src/examples/touch-dials.qdoc index c6fc326..d83bcf9 100644 --- a/doc/src/examples/touch-dials.qdoc +++ b/doc/src/examples/touch-dials.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/touch-knobs.qdoc b/doc/src/examples/touch-knobs.qdoc index 08c2d0c..5d32326 100644 --- a/doc/src/examples/touch-knobs.qdoc +++ b/doc/src/examples/touch-knobs.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/trafficinfo.qdoc b/doc/src/examples/trafficinfo.qdoc index e60c1cd..c8ef3b0 100644 --- a/doc/src/examples/trafficinfo.qdoc +++ b/doc/src/examples/trafficinfo.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/trafficlight.qdoc b/doc/src/examples/trafficlight.qdoc index 3d381d9..25cb198 100644 --- a/doc/src/examples/trafficlight.qdoc +++ b/doc/src/examples/trafficlight.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/transformations.qdoc b/doc/src/examples/transformations.qdoc index e60ab39..ad4962f 100644 --- a/doc/src/examples/transformations.qdoc +++ b/doc/src/examples/transformations.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/treemodelcompleter.qdoc b/doc/src/examples/treemodelcompleter.qdoc index b473831..6e9840a 100644 --- a/doc/src/examples/treemodelcompleter.qdoc +++ b/doc/src/examples/treemodelcompleter.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/trivialwizard.qdoc b/doc/src/examples/trivialwizard.qdoc index 381d969..ceea18d 100644 --- a/doc/src/examples/trivialwizard.qdoc +++ b/doc/src/examples/trivialwizard.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/trollprint.qdoc b/doc/src/examples/trollprint.qdoc index d08b047..3a77a71 100644 --- a/doc/src/examples/trollprint.qdoc +++ b/doc/src/examples/trollprint.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/twowaybutton.qdoc b/doc/src/examples/twowaybutton.qdoc index 5fffe6d..e5fe439 100644 --- a/doc/src/examples/twowaybutton.qdoc +++ b/doc/src/examples/twowaybutton.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/undoframework.qdoc b/doc/src/examples/undoframework.qdoc index c497acc..c5bc279 100644 --- a/doc/src/examples/undoframework.qdoc +++ b/doc/src/examples/undoframework.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/videographicsitem.qdoc b/doc/src/examples/videographicsitem.qdoc index 3bb1f9a..83c421f 100644 --- a/doc/src/examples/videographicsitem.qdoc +++ b/doc/src/examples/videographicsitem.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/videowidget.qdoc b/doc/src/examples/videowidget.qdoc index ab1a1c1..2ea8b7a 100644 --- a/doc/src/examples/videowidget.qdoc +++ b/doc/src/examples/videowidget.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/waitconditions.qdoc b/doc/src/examples/waitconditions.qdoc index 75f60bd..f43d5e7 100644 --- a/doc/src/examples/waitconditions.qdoc +++ b/doc/src/examples/waitconditions.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/webkit-bridge-imageanalyzer.qdoc b/doc/src/examples/webkit-bridge-imageanalyzer.qdoc index cee2659..c05ae92 100644 --- a/doc/src/examples/webkit-bridge-imageanalyzer.qdoc +++ b/doc/src/examples/webkit-bridge-imageanalyzer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/webkit-framecapture.qdoc b/doc/src/examples/webkit-framecapture.qdoc index 96e70d5..2376c44 100644 --- a/doc/src/examples/webkit-framecapture.qdoc +++ b/doc/src/examples/webkit-framecapture.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/widgets-softkeys.qdoc b/doc/src/examples/widgets-softkeys.qdoc index 1958872..e6a8d00 100644 --- a/doc/src/examples/widgets-softkeys.qdoc +++ b/doc/src/examples/widgets-softkeys.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/widgets-validators.qdoc b/doc/src/examples/widgets-validators.qdoc index c6b3711..a6a20c8 100644 --- a/doc/src/examples/widgets-validators.qdoc +++ b/doc/src/examples/widgets-validators.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/wiggly.qdoc b/doc/src/examples/wiggly.qdoc index 1b3f1ff..d3452c3 100644 --- a/doc/src/examples/wiggly.qdoc +++ b/doc/src/examples/wiggly.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/windowflags.qdoc b/doc/src/examples/windowflags.qdoc index cfee598..06fae10 100644 --- a/doc/src/examples/windowflags.qdoc +++ b/doc/src/examples/windowflags.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/worldtimeclockbuilder.qdoc b/doc/src/examples/worldtimeclockbuilder.qdoc index 27d846f..f346d41 100644 --- a/doc/src/examples/worldtimeclockbuilder.qdoc +++ b/doc/src/examples/worldtimeclockbuilder.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/worldtimeclockplugin.qdoc b/doc/src/examples/worldtimeclockplugin.qdoc index d485ec3..61a214c 100644 --- a/doc/src/examples/worldtimeclockplugin.qdoc +++ b/doc/src/examples/worldtimeclockplugin.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/examples/xmlstreamlint.qdoc b/doc/src/examples/xmlstreamlint.qdoc index fa05874..c3ba356 100644 --- a/doc/src/examples/xmlstreamlint.qdoc +++ b/doc/src/examples/xmlstreamlint.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/external-resources.qdoc b/doc/src/external-resources.qdoc index 9bc3b1c..4003e56 100644 --- a/doc/src/external-resources.qdoc +++ b/doc/src/external-resources.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/files-and-resources/datastreamformat.qdoc b/doc/src/files-and-resources/datastreamformat.qdoc index d014f20..086c74e 100644 --- a/doc/src/files-and-resources/datastreamformat.qdoc +++ b/doc/src/files-and-resources/datastreamformat.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/files-and-resources/resources.qdoc b/doc/src/files-and-resources/resources.qdoc index 0376d0c..ecf343d 100644 --- a/doc/src/files-and-resources/resources.qdoc +++ b/doc/src/files-and-resources/resources.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/accessible.qdoc b/doc/src/frameworks-technologies/accessible.qdoc index eb14310..1d15dbd 100644 --- a/doc/src/frameworks-technologies/accessible.qdoc +++ b/doc/src/frameworks-technologies/accessible.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/activeqt-container.qdoc b/doc/src/frameworks-technologies/activeqt-container.qdoc index 4e11abd..436f375 100644 --- a/doc/src/frameworks-technologies/activeqt-container.qdoc +++ b/doc/src/frameworks-technologies/activeqt-container.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/activeqt-server.qdoc b/doc/src/frameworks-technologies/activeqt-server.qdoc index 0f683f7..9af2b65 100644 --- a/doc/src/frameworks-technologies/activeqt-server.qdoc +++ b/doc/src/frameworks-technologies/activeqt-server.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/activeqt.qdoc b/doc/src/frameworks-technologies/activeqt.qdoc index c49dcad..ba4a92f 100644 --- a/doc/src/frameworks-technologies/activeqt.qdoc +++ b/doc/src/frameworks-technologies/activeqt.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/animation.qdoc b/doc/src/frameworks-technologies/animation.qdoc index f78162d..854c7ed 100644 --- a/doc/src/frameworks-technologies/animation.qdoc +++ b/doc/src/frameworks-technologies/animation.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/containers.qdoc b/doc/src/frameworks-technologies/containers.qdoc index aa618d6..991588e 100644 --- a/doc/src/frameworks-technologies/containers.qdoc +++ b/doc/src/frameworks-technologies/containers.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/dbus-adaptors.qdoc b/doc/src/frameworks-technologies/dbus-adaptors.qdoc index 3132d2d..7494f2d 100644 --- a/doc/src/frameworks-technologies/dbus-adaptors.qdoc +++ b/doc/src/frameworks-technologies/dbus-adaptors.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/dbus-intro.qdoc b/doc/src/frameworks-technologies/dbus-intro.qdoc index 2f7fa12..c8d955e 100644 --- a/doc/src/frameworks-technologies/dbus-intro.qdoc +++ b/doc/src/frameworks-technologies/dbus-intro.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/desktop-integration.qdoc b/doc/src/frameworks-technologies/desktop-integration.qdoc index d48f8c7..76c4553 100644 --- a/doc/src/frameworks-technologies/desktop-integration.qdoc +++ b/doc/src/frameworks-technologies/desktop-integration.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/dnd.qdoc b/doc/src/frameworks-technologies/dnd.qdoc index 356bf9b..aa3e9d5 100644 --- a/doc/src/frameworks-technologies/dnd.qdoc +++ b/doc/src/frameworks-technologies/dnd.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/eventsandfilters.qdoc b/doc/src/frameworks-technologies/eventsandfilters.qdoc index fb51976..be9f2f1 100644 --- a/doc/src/frameworks-technologies/eventsandfilters.qdoc +++ b/doc/src/frameworks-technologies/eventsandfilters.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/gestures.qdoc b/doc/src/frameworks-technologies/gestures.qdoc index 06d3431..df1a73f 100644 --- a/doc/src/frameworks-technologies/gestures.qdoc +++ b/doc/src/frameworks-technologies/gestures.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/graphicsview.qdoc b/doc/src/frameworks-technologies/graphicsview.qdoc index 21d3f42..f689446 100644 --- a/doc/src/frameworks-technologies/graphicsview.qdoc +++ b/doc/src/frameworks-technologies/graphicsview.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/implicit-sharing.qdoc b/doc/src/frameworks-technologies/implicit-sharing.qdoc index fcfcf7f..8938d9e 100644 --- a/doc/src/frameworks-technologies/implicit-sharing.qdoc +++ b/doc/src/frameworks-technologies/implicit-sharing.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/ipc.qdoc b/doc/src/frameworks-technologies/ipc.qdoc index e73f649..f0f5f4b 100644 --- a/doc/src/frameworks-technologies/ipc.qdoc +++ b/doc/src/frameworks-technologies/ipc.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/model-view-programming.qdoc b/doc/src/frameworks-technologies/model-view-programming.qdoc index cc98432..92067b9 100644 --- a/doc/src/frameworks-technologies/model-view-programming.qdoc +++ b/doc/src/frameworks-technologies/model-view-programming.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/phonon.qdoc b/doc/src/frameworks-technologies/phonon.qdoc index 9620136..1456eae6 100644 --- a/doc/src/frameworks-technologies/phonon.qdoc +++ b/doc/src/frameworks-technologies/phonon.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/plugins-howto.qdoc b/doc/src/frameworks-technologies/plugins-howto.qdoc index 8e4cbe4..3dc2996 100644 --- a/doc/src/frameworks-technologies/plugins-howto.qdoc +++ b/doc/src/frameworks-technologies/plugins-howto.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/qthelp.qdoc b/doc/src/frameworks-technologies/qthelp.qdoc index 14874ef..42bc482 100644 --- a/doc/src/frameworks-technologies/qthelp.qdoc +++ b/doc/src/frameworks-technologies/qthelp.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/qundo.qdoc b/doc/src/frameworks-technologies/qundo.qdoc index 08ed0e4..7216a99 100644 --- a/doc/src/frameworks-technologies/qundo.qdoc +++ b/doc/src/frameworks-technologies/qundo.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/richtext.qdoc b/doc/src/frameworks-technologies/richtext.qdoc index f065531..7a5a6a6 100644 --- a/doc/src/frameworks-technologies/richtext.qdoc +++ b/doc/src/frameworks-technologies/richtext.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/statemachine.qdoc b/doc/src/frameworks-technologies/statemachine.qdoc index a0cd005..75ac974 100644 --- a/doc/src/frameworks-technologies/statemachine.qdoc +++ b/doc/src/frameworks-technologies/statemachine.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/templates.qdoc b/doc/src/frameworks-technologies/templates.qdoc index 346f043..7f0ca1f 100644 --- a/doc/src/frameworks-technologies/templates.qdoc +++ b/doc/src/frameworks-technologies/templates.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/threads.qdoc b/doc/src/frameworks-technologies/threads.qdoc index 2a0cc1a..a70e109 100644 --- a/doc/src/frameworks-technologies/threads.qdoc +++ b/doc/src/frameworks-technologies/threads.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/frameworks-technologies/unicode.qdoc b/doc/src/frameworks-technologies/unicode.qdoc index 061b61e..b4a9347 100644 --- a/doc/src/frameworks-technologies/unicode.qdoc +++ b/doc/src/frameworks-technologies/unicode.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/getting-started/demos.qdoc b/doc/src/getting-started/demos.qdoc index 2fe39a2..48a5fca 100644 --- a/doc/src/getting-started/demos.qdoc +++ b/doc/src/getting-started/demos.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/getting-started/examples.qdoc b/doc/src/getting-started/examples.qdoc index 851e161..67000e2 100644 --- a/doc/src/getting-started/examples.qdoc +++ b/doc/src/getting-started/examples.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/getting-started/gettingstarted.qdoc b/doc/src/getting-started/gettingstarted.qdoc index 162dba1..2b8078e 100644 --- a/doc/src/getting-started/gettingstarted.qdoc +++ b/doc/src/getting-started/gettingstarted.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc index e3977bb..13f1192 100644 --- a/doc/src/getting-started/gettingstartedqml.qdoc +++ b/doc/src/getting-started/gettingstartedqml.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/getting-started/gettingstartedqt.qdoc b/doc/src/getting-started/gettingstartedqt.qdoc index 945d7c3..2800be0 100644 --- a/doc/src/getting-started/gettingstartedqt.qdoc +++ b/doc/src/getting-started/gettingstartedqt.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/getting-started/how-to-learn-qt.qdoc b/doc/src/getting-started/how-to-learn-qt.qdoc index e9f462c..5c1e5ca 100644 --- a/doc/src/getting-started/how-to-learn-qt.qdoc +++ b/doc/src/getting-started/how-to-learn-qt.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/getting-started/installation.qdoc b/doc/src/getting-started/installation.qdoc index 4941325..4b4dab5 100644 --- a/doc/src/getting-started/installation.qdoc +++ b/doc/src/getting-started/installation.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/getting-started/known-issues.qdoc b/doc/src/getting-started/known-issues.qdoc index d0044f3..69539a7 100644 --- a/doc/src/getting-started/known-issues.qdoc +++ b/doc/src/getting-started/known-issues.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/getting-started/tutorials.qdoc b/doc/src/getting-started/tutorials.qdoc index 2c5ebaf..5cde056 100644 --- a/doc/src/getting-started/tutorials.qdoc +++ b/doc/src/getting-started/tutorials.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/HWacceleration.qdoc b/doc/src/howtos/HWacceleration.qdoc index 3eb1e74..7cc3346 100644 --- a/doc/src/howtos/HWacceleration.qdoc +++ b/doc/src/howtos/HWacceleration.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/accelerators.qdoc b/doc/src/howtos/accelerators.qdoc index 68d2a85..5a50aa4 100644 --- a/doc/src/howtos/accelerators.qdoc +++ b/doc/src/howtos/accelerators.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/appicon.qdoc b/doc/src/howtos/appicon.qdoc index 9b9fedc..86934bc 100644 --- a/doc/src/howtos/appicon.qdoc +++ b/doc/src/howtos/appicon.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/custom-types.qdoc b/doc/src/howtos/custom-types.qdoc index 086a1d7..3a5444a 100644 --- a/doc/src/howtos/custom-types.qdoc +++ b/doc/src/howtos/custom-types.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/exceptionsafety.qdoc b/doc/src/howtos/exceptionsafety.qdoc index 49d99de..c4b5ebc 100644 --- a/doc/src/howtos/exceptionsafety.qdoc +++ b/doc/src/howtos/exceptionsafety.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/guibooks.qdoc b/doc/src/howtos/guibooks.qdoc index d74f08f..38accb7 100644 --- a/doc/src/howtos/guibooks.qdoc +++ b/doc/src/howtos/guibooks.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/openvg.qdoc b/doc/src/howtos/openvg.qdoc index de3c1e1..9ef2f9a 100644 --- a/doc/src/howtos/openvg.qdoc +++ b/doc/src/howtos/openvg.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/qtdesigner.qdoc b/doc/src/howtos/qtdesigner.qdoc index ab7e26b..7630537 100644 --- a/doc/src/howtos/qtdesigner.qdoc +++ b/doc/src/howtos/qtdesigner.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/restoring-geometry.qdoc b/doc/src/howtos/restoring-geometry.qdoc index c6b7e37..005a29e 100644 --- a/doc/src/howtos/restoring-geometry.qdoc +++ b/doc/src/howtos/restoring-geometry.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/session.qdoc b/doc/src/howtos/session.qdoc index 7980cde..e66c880 100644 --- a/doc/src/howtos/session.qdoc +++ b/doc/src/howtos/session.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/sharedlibrary.qdoc b/doc/src/howtos/sharedlibrary.qdoc index 04364eb..5b47618 100644 --- a/doc/src/howtos/sharedlibrary.qdoc +++ b/doc/src/howtos/sharedlibrary.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/timers.qdoc b/doc/src/howtos/timers.qdoc index 22270c1..8cff5c4 100644 --- a/doc/src/howtos/timers.qdoc +++ b/doc/src/howtos/timers.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/howtos/unix-signal-handlers.qdoc b/doc/src/howtos/unix-signal-handlers.qdoc index ca34bfb..2fa558e 100644 --- a/doc/src/howtos/unix-signal-handlers.qdoc +++ b/doc/src/howtos/unix-signal-handlers.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc index 57fc18a..3bef2ad 100644 --- a/doc/src/index.qdoc +++ b/doc/src/index.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/internationalization/i18n.qdoc b/doc/src/internationalization/i18n.qdoc index c58cc91..e22f953 100644 --- a/doc/src/internationalization/i18n.qdoc +++ b/doc/src/internationalization/i18n.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/internationalization/linguist-manual.qdoc b/doc/src/internationalization/linguist-manual.qdoc index 57b98b8..0caea77 100644 --- a/doc/src/internationalization/linguist-manual.qdoc +++ b/doc/src/internationalization/linguist-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/ja_JP/development/designer-manual.qdoc b/doc/src/ja_JP/development/designer-manual.qdoc index f71da3c..ea965c1 100644 --- a/doc/src/ja_JP/development/designer-manual.qdoc +++ b/doc/src/ja_JP/development/designer-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/ja_JP/development/qmake-manual.qdoc b/doc/src/ja_JP/development/qmake-manual.qdoc index 699fa93..a6cfe3d 100644 --- a/doc/src/ja_JP/development/qmake-manual.qdoc +++ b/doc/src/ja_JP/development/qmake-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/ja_JP/development/qtestlib.qdoc b/doc/src/ja_JP/development/qtestlib.qdoc index f0ff60d..c1001dc 100644 --- a/doc/src/ja_JP/development/qtestlib.qdoc +++ b/doc/src/ja_JP/development/qtestlib.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/ja_JP/examples/arrowpad.qdoc b/doc/src/ja_JP/examples/arrowpad.qdoc index 3cb798b..9085654 100644 --- a/doc/src/ja_JP/examples/arrowpad.qdoc +++ b/doc/src/ja_JP/examples/arrowpad.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/ja_JP/examples/hellotr.qdoc b/doc/src/ja_JP/examples/hellotr.qdoc index b0ed8e8..b9e536d 100644 --- a/doc/src/ja_JP/examples/hellotr.qdoc +++ b/doc/src/ja_JP/examples/hellotr.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/ja_JP/examples/trollprint.qdoc b/doc/src/ja_JP/examples/trollprint.qdoc index b0397a3..dfe7eaa 100644 --- a/doc/src/ja_JP/examples/trollprint.qdoc +++ b/doc/src/ja_JP/examples/trollprint.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/ja_JP/getting-started/tutorials.qdoc b/doc/src/ja_JP/getting-started/tutorials.qdoc index fc461ba..4e2d47b 100644 --- a/doc/src/ja_JP/getting-started/tutorials.qdoc +++ b/doc/src/ja_JP/getting-started/tutorials.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/ja_JP/snippets/code/doc_src_examples_hellotr.qdoc b/doc/src/ja_JP/snippets/code/doc_src_examples_hellotr.qdoc index e05cd12..5fcb328 100644 --- a/doc/src/ja_JP/snippets/code/doc_src_examples_hellotr.qdoc +++ b/doc/src/ja_JP/snippets/code/doc_src_examples_hellotr.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/ja_JP/tutorials/addressbook.qdoc b/doc/src/ja_JP/tutorials/addressbook.qdoc index 522aeb2..a6ac549 100644 --- a/doc/src/ja_JP/tutorials/addressbook.qdoc +++ b/doc/src/ja_JP/tutorials/addressbook.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/ja_JP/tutorials/widgets-tutorial.qdoc b/doc/src/ja_JP/tutorials/widgets-tutorial.qdoc index a5c3e18..1065912 100644 --- a/doc/src/ja_JP/tutorials/widgets-tutorial.qdoc +++ b/doc/src/ja_JP/tutorials/widgets-tutorial.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/legal/3rdparty.qdoc b/doc/src/legal/3rdparty.qdoc index 9cc83a6..2c8cbef 100644 --- a/doc/src/legal/3rdparty.qdoc +++ b/doc/src/legal/3rdparty.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/legal/commercialeditions.qdoc b/doc/src/legal/commercialeditions.qdoc index c3a5d60..37aed3f 100644 --- a/doc/src/legal/commercialeditions.qdoc +++ b/doc/src/legal/commercialeditions.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/legal/editions.qdoc b/doc/src/legal/editions.qdoc index 7be33b3..99d6ba1 100644 --- a/doc/src/legal/editions.qdoc +++ b/doc/src/legal/editions.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/legal/gpl.qdoc b/doc/src/legal/gpl.qdoc index 31a8855..d6b7c39 100644 --- a/doc/src/legal/gpl.qdoc +++ b/doc/src/legal/gpl.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -30,7 +30,7 @@ \ingroup licensing \brief About the GPL license used for Qt. -The Qt GUI Toolkit is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).\br +The Qt GUI Toolkit is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).\br Contact: Nokia Corporation (qt-info@nokia.com) Qt is available under the GPL. @@ -47,7 +47,7 @@ Reference: \l{GNU General Public License} \ingroup licensing \brief About the LGPL license used for Qt. -The Qt GUI Toolkit is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).\br +The Qt GUI Toolkit is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).\br Contact: Nokia Corporation (qt-info@nokia.com) Qt is available under the LGPL. diff --git a/doc/src/legal/licenses.qdoc b/doc/src/legal/licenses.qdoc index 631ff40..c07f7ea 100644 --- a/doc/src/legal/licenses.qdoc +++ b/doc/src/legal/licenses.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/legal/opensourceedition.qdoc b/doc/src/legal/opensourceedition.qdoc index 602e6d3..8e761cb 100644 --- a/doc/src/legal/opensourceedition.qdoc +++ b/doc/src/legal/opensourceedition.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/legal/trademarks.qdoc b/doc/src/legal/trademarks.qdoc index 3bf783f..61b6eb9 100644 --- a/doc/src/legal/trademarks.qdoc +++ b/doc/src/legal/trademarks.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/modules.qdoc b/doc/src/modules.qdoc index f781f81..9dbf7a7 100644 --- a/doc/src/modules.qdoc +++ b/doc/src/modules.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -551,7 +551,7 @@ Copyright (C) 2004-2009 Matthias Kretz \BR Copyright (C) 2008 Ian Monroe \BR Copyright (C) 2007-2008 Trolltech ASA \BR - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). \BR + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). \BR Contact: Nokia Corporation (qt-info@nokia.com) This library is free software; you can redistribute it and/or @@ -697,7 +697,7 @@ \legalese Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team \BR - Changes are Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). + Changes are Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -762,7 +762,7 @@ the following license. \legalese - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).\br + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).\br All rights reserved. Contact: Nokia Corporation (qt-info@nokia.com)\br @@ -811,7 +811,7 @@ the following license. \legalese - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).\br + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).\br All rights reserved. Contact: Nokia Corporation (qt-info@nokia.com)\br @@ -903,7 +903,7 @@ the following license. \legalese - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).\br + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).\br All rights reserved. Contact: Nokia Corporation (qt-info@nokia.com) @@ -941,7 +941,7 @@ distributed under the following license. \legalese - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).\br + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).\br All rights reserved.\br Contact: Nokia Corporation (qt-info@nokia.com) diff --git a/doc/src/network-programming/bearermanagement.qdoc b/doc/src/network-programming/bearermanagement.qdoc index 12da55b..708a72f 100644 --- a/doc/src/network-programming/bearermanagement.qdoc +++ b/doc/src/network-programming/bearermanagement.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/network-programming/qtnetwork.qdoc b/doc/src/network-programming/qtnetwork.qdoc index 8b84dcb..540dda9 100644 --- a/doc/src/network-programming/qtnetwork.qdoc +++ b/doc/src/network-programming/qtnetwork.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/network-programming/ssl.qdoc b/doc/src/network-programming/ssl.qdoc index 85ea7ef..898ca5d 100644 --- a/doc/src/network-programming/ssl.qdoc +++ b/doc/src/network-programming/ssl.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/objectmodel/metaobjects.qdoc b/doc/src/objectmodel/metaobjects.qdoc index 1fd3f52..099a6a9 100644 --- a/doc/src/objectmodel/metaobjects.qdoc +++ b/doc/src/objectmodel/metaobjects.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/objectmodel/object.qdoc b/doc/src/objectmodel/object.qdoc index 95492e6..2112b10 100644 --- a/doc/src/objectmodel/object.qdoc +++ b/doc/src/objectmodel/object.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/objectmodel/objecttrees.qdoc b/doc/src/objectmodel/objecttrees.qdoc index ef20694..ba677b9 100644 --- a/doc/src/objectmodel/objecttrees.qdoc +++ b/doc/src/objectmodel/objecttrees.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/objectmodel/properties.qdoc b/doc/src/objectmodel/properties.qdoc index c960366..7d1ecec 100644 --- a/doc/src/objectmodel/properties.qdoc +++ b/doc/src/objectmodel/properties.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/objectmodel/signalsandslots.qdoc b/doc/src/objectmodel/signalsandslots.qdoc index 01f42f6..4c018b5 100644 --- a/doc/src/objectmodel/signalsandslots.qdoc +++ b/doc/src/objectmodel/signalsandslots.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/overviews.qdoc b/doc/src/overviews.qdoc index b9bd3b4..61de954 100644 --- a/doc/src/overviews.qdoc +++ b/doc/src/overviews.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/painting-and-printing/coordsys.qdoc b/doc/src/painting-and-printing/coordsys.qdoc index 0bae71b..a8febae 100644 --- a/doc/src/painting-and-printing/coordsys.qdoc +++ b/doc/src/painting-and-printing/coordsys.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/painting-and-printing/paintsystem.qdoc b/doc/src/painting-and-printing/paintsystem.qdoc index 0aaca46..d93fb95 100644 --- a/doc/src/painting-and-printing/paintsystem.qdoc +++ b/doc/src/painting-and-printing/paintsystem.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/painting-and-printing/printing.qdoc b/doc/src/painting-and-printing/printing.qdoc index 6750864..ccd42eb 100644 --- a/doc/src/painting-and-printing/printing.qdoc +++ b/doc/src/painting-and-printing/printing.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/atomic-operations.qdoc b/doc/src/platforms/atomic-operations.qdoc index 6a6dde2..aeda974 100644 --- a/doc/src/platforms/atomic-operations.qdoc +++ b/doc/src/platforms/atomic-operations.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/compiler-notes.qdoc b/doc/src/platforms/compiler-notes.qdoc index fb534df..8e54cc6 100644 --- a/doc/src/platforms/compiler-notes.qdoc +++ b/doc/src/platforms/compiler-notes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-HwAcc-LinuxEmbedded.qdoc b/doc/src/platforms/emb-HwAcc-LinuxEmbedded.qdoc index 2cde4ba..574b906 100644 --- a/doc/src/platforms/emb-HwAcc-LinuxEmbedded.qdoc +++ b/doc/src/platforms/emb-HwAcc-LinuxEmbedded.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-HwAcc-WinCE.qdoc b/doc/src/platforms/emb-HwAcc-WinCE.qdoc index 5dda1c3..0f2a492 100644 --- a/doc/src/platforms/emb-HwAcc-WinCE.qdoc +++ b/doc/src/platforms/emb-HwAcc-WinCE.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-accel.qdoc b/doc/src/platforms/emb-accel.qdoc index c8854f7..c987522 100644 --- a/doc/src/platforms/emb-accel.qdoc +++ b/doc/src/platforms/emb-accel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-architecture.qdoc b/doc/src/platforms/emb-architecture.qdoc index dcaa319..20c486c 100644 --- a/doc/src/platforms/emb-architecture.qdoc +++ b/doc/src/platforms/emb-architecture.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-charinput.qdoc b/doc/src/platforms/emb-charinput.qdoc index 03cc340..0ef0151 100644 --- a/doc/src/platforms/emb-charinput.qdoc +++ b/doc/src/platforms/emb-charinput.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-crosscompiling.qdoc b/doc/src/platforms/emb-crosscompiling.qdoc index f28ea7a..87b9f89 100644 --- a/doc/src/platforms/emb-crosscompiling.qdoc +++ b/doc/src/platforms/emb-crosscompiling.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-deployment.qdoc b/doc/src/platforms/emb-deployment.qdoc index 9a36097..aaf4e2a 100644 --- a/doc/src/platforms/emb-deployment.qdoc +++ b/doc/src/platforms/emb-deployment.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-differences.qdoc b/doc/src/platforms/emb-differences.qdoc index e9aa0eb..89d4291 100644 --- a/doc/src/platforms/emb-differences.qdoc +++ b/doc/src/platforms/emb-differences.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-directfb-EmbLinux.qdoc b/doc/src/platforms/emb-directfb-EmbLinux.qdoc index bcc06dc..1540b7a 100644 --- a/doc/src/platforms/emb-directfb-EmbLinux.qdoc +++ b/doc/src/platforms/emb-directfb-EmbLinux.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-displaymanagement.qdoc b/doc/src/platforms/emb-displaymanagement.qdoc index bba594f..7bbe36a 100644 --- a/doc/src/platforms/emb-displaymanagement.qdoc +++ b/doc/src/platforms/emb-displaymanagement.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-envvars.qdoc b/doc/src/platforms/emb-envvars.qdoc index 3f318eb..020ef49 100644 --- a/doc/src/platforms/emb-envvars.qdoc +++ b/doc/src/platforms/emb-envvars.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-features.qdoc b/doc/src/platforms/emb-features.qdoc index a362867..e94d388 100644 --- a/doc/src/platforms/emb-features.qdoc +++ b/doc/src/platforms/emb-features.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-fonts.qdoc b/doc/src/platforms/emb-fonts.qdoc index 04aa4e4..b9d3378 100644 --- a/doc/src/platforms/emb-fonts.qdoc +++ b/doc/src/platforms/emb-fonts.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-framebuffer-howto.qdoc b/doc/src/platforms/emb-framebuffer-howto.qdoc index f8b7ff9..aad1e25 100644 --- a/doc/src/platforms/emb-framebuffer-howto.qdoc +++ b/doc/src/platforms/emb-framebuffer-howto.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-install.qdoc b/doc/src/platforms/emb-install.qdoc index b5b408a..88bbae0 100644 --- a/doc/src/platforms/emb-install.qdoc +++ b/doc/src/platforms/emb-install.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-kmap2qmap.qdoc b/doc/src/platforms/emb-kmap2qmap.qdoc index 91983ef..087801a 100644 --- a/doc/src/platforms/emb-kmap2qmap.qdoc +++ b/doc/src/platforms/emb-kmap2qmap.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-makeqpf.qdoc b/doc/src/platforms/emb-makeqpf.qdoc index af24d7e..bd18ea5 100644 --- a/doc/src/platforms/emb-makeqpf.qdoc +++ b/doc/src/platforms/emb-makeqpf.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-opengl-EmbLinux.qdoc b/doc/src/platforms/emb-opengl-EmbLinux.qdoc index c53c3af..92293c2 100644 --- a/doc/src/platforms/emb-opengl-EmbLinux.qdoc +++ b/doc/src/platforms/emb-opengl-EmbLinux.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-openvg-EmbLinux.qdoc b/doc/src/platforms/emb-openvg-EmbLinux.qdoc index 267eada..06315d8 100644 --- a/doc/src/platforms/emb-openvg-EmbLinux.qdoc +++ b/doc/src/platforms/emb-openvg-EmbLinux.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-performance.qdoc b/doc/src/platforms/emb-performance.qdoc index 368b06e..1ae35bc 100644 --- a/doc/src/platforms/emb-performance.qdoc +++ b/doc/src/platforms/emb-performance.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-pointer.qdoc b/doc/src/platforms/emb-pointer.qdoc index 506e9e0..b580077 100644 --- a/doc/src/platforms/emb-pointer.qdoc +++ b/doc/src/platforms/emb-pointer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-porting.qdoc b/doc/src/platforms/emb-porting.qdoc index 8b1f5f0..640448f 100644 --- a/doc/src/platforms/emb-porting.qdoc +++ b/doc/src/platforms/emb-porting.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-qvfb.qdoc b/doc/src/platforms/emb-qvfb.qdoc index 418d2d2..b83da4a 100644 --- a/doc/src/platforms/emb-qvfb.qdoc +++ b/doc/src/platforms/emb-qvfb.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-running.qdoc b/doc/src/platforms/emb-running.qdoc index 12222a6..166bc0b 100644 --- a/doc/src/platforms/emb-running.qdoc +++ b/doc/src/platforms/emb-running.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/emb-vnc.qdoc b/doc/src/platforms/emb-vnc.qdoc index 45b47d9..b96062a 100644 --- a/doc/src/platforms/emb-vnc.qdoc +++ b/doc/src/platforms/emb-vnc.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/mac-differences.qdoc b/doc/src/platforms/mac-differences.qdoc index 8436043..251e900 100644 --- a/doc/src/platforms/mac-differences.qdoc +++ b/doc/src/platforms/mac-differences.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/platform-notes-rtos.qdoc b/doc/src/platforms/platform-notes-rtos.qdoc index 8c30701..776f510 100644 --- a/doc/src/platforms/platform-notes-rtos.qdoc +++ b/doc/src/platforms/platform-notes-rtos.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc index b745867..e7d7cb4 100644 --- a/doc/src/platforms/platform-notes.qdoc +++ b/doc/src/platforms/platform-notes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/qt-embedded-linux.qdoc b/doc/src/platforms/qt-embedded-linux.qdoc index cd20917..04a9548 100644 --- a/doc/src/platforms/qt-embedded-linux.qdoc +++ b/doc/src/platforms/qt-embedded-linux.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/qt-embedded.qdoc b/doc/src/platforms/qt-embedded.qdoc index 8beb59d..7cf05fa 100644 --- a/doc/src/platforms/qt-embedded.qdoc +++ b/doc/src/platforms/qt-embedded.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/qtmac-as-native.qdoc b/doc/src/platforms/qtmac-as-native.qdoc index 61acebb..3b9e91b 100644 --- a/doc/src/platforms/qtmac-as-native.qdoc +++ b/doc/src/platforms/qtmac-as-native.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc index 3a7d590..b58d1d7 100644 --- a/doc/src/platforms/supported-platforms.qdoc +++ b/doc/src/platforms/supported-platforms.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/symbian-exceptionsafety.qdoc b/doc/src/platforms/symbian-exceptionsafety.qdoc index ffbf117..65ec9a8 100644 --- a/doc/src/platforms/symbian-exceptionsafety.qdoc +++ b/doc/src/platforms/symbian-exceptionsafety.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc index cce2be3..58a7e69 100644 --- a/doc/src/platforms/symbian-introduction.qdoc +++ b/doc/src/platforms/symbian-introduction.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/wince-customization.qdoc b/doc/src/platforms/wince-customization.qdoc index b3b9170..a59dd6f 100644 --- a/doc/src/platforms/wince-customization.qdoc +++ b/doc/src/platforms/wince-customization.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/wince-introduction.qdoc b/doc/src/platforms/wince-introduction.qdoc index 2e9da59..777e562 100644 --- a/doc/src/platforms/wince-introduction.qdoc +++ b/doc/src/platforms/wince-introduction.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/wince-opengl.qdoc b/doc/src/platforms/wince-opengl.qdoc index a33e9f6..1121011 100644 --- a/doc/src/platforms/wince-opengl.qdoc +++ b/doc/src/platforms/wince-opengl.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/wince-openvg.qdoc b/doc/src/platforms/wince-openvg.qdoc index c15b1bd..a14bca3 100644 --- a/doc/src/platforms/wince-openvg.qdoc +++ b/doc/src/platforms/wince-openvg.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/wince-signing.qdoc b/doc/src/platforms/wince-signing.qdoc index 49e11a0..c0b7482 100644 --- a/doc/src/platforms/wince-signing.qdoc +++ b/doc/src/platforms/wince-signing.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/winsystem.qdoc b/doc/src/platforms/winsystem.qdoc index 64e35c5..474a449 100644 --- a/doc/src/platforms/winsystem.qdoc +++ b/doc/src/platforms/winsystem.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/platforms/x11overlays.qdoc b/doc/src/platforms/x11overlays.qdoc index 7a35cd2..02ae72e 100644 --- a/doc/src/platforms/x11overlays.qdoc +++ b/doc/src/platforms/x11overlays.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/porting-qsa.qdoc b/doc/src/porting/porting-qsa.qdoc index 93a83f4..ea83e97 100644 --- a/doc/src/porting/porting-qsa.qdoc +++ b/doc/src/porting/porting-qsa.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/porting4-canvas.qdoc b/doc/src/porting/porting4-canvas.qdoc index d9e58ba..445f66d 100644 --- a/doc/src/porting/porting4-canvas.qdoc +++ b/doc/src/porting/porting4-canvas.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/porting4-designer.qdoc b/doc/src/porting/porting4-designer.qdoc index 0de6cf0..d84af3f 100644 --- a/doc/src/porting/porting4-designer.qdoc +++ b/doc/src/porting/porting4-designer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/porting4-dnd.qdoc b/doc/src/porting/porting4-dnd.qdoc index 66403d0..92b9fc1 100644 --- a/doc/src/porting/porting4-dnd.qdoc +++ b/doc/src/porting/porting4-dnd.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/porting4-overview.qdoc b/doc/src/porting/porting4-overview.qdoc index f949460..7337fc9 100644 --- a/doc/src/porting/porting4-overview.qdoc +++ b/doc/src/porting/porting4-overview.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/porting4.qdoc b/doc/src/porting/porting4.qdoc index 8b03187..b5fdbee 100644 --- a/doc/src/porting/porting4.qdoc +++ b/doc/src/porting/porting4.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt3to4.qdoc b/doc/src/porting/qt3to4.qdoc index 26eeee4..336601f 100644 --- a/doc/src/porting/qt3to4.qdoc +++ b/doc/src/porting/qt3to4.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -148,7 +148,7 @@ \brief License information for contributions to the qt3to4 source code. \legalese - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). \BR + Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). \BR Copyright (C) 2005 Roberto Raggi Permission is hereby granted, free of charge, to any person obtaining diff --git a/doc/src/porting/qt4-accessibility.qdoc b/doc/src/porting/qt4-accessibility.qdoc index 634dda4..6e56942 100644 --- a/doc/src/porting/qt4-accessibility.qdoc +++ b/doc/src/porting/qt4-accessibility.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt4-arthur.qdoc b/doc/src/porting/qt4-arthur.qdoc index 1d6819d..434aa29 100644 --- a/doc/src/porting/qt4-arthur.qdoc +++ b/doc/src/porting/qt4-arthur.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt4-designer.qdoc b/doc/src/porting/qt4-designer.qdoc index ea5147a..a5d9a23 100644 --- a/doc/src/porting/qt4-designer.qdoc +++ b/doc/src/porting/qt4-designer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt4-interview.qdoc b/doc/src/porting/qt4-interview.qdoc index 973740a..af070ba 100644 --- a/doc/src/porting/qt4-interview.qdoc +++ b/doc/src/porting/qt4-interview.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt4-mainwindow.qdoc b/doc/src/porting/qt4-mainwindow.qdoc index 73c9b2b..1eff2c2 100644 --- a/doc/src/porting/qt4-mainwindow.qdoc +++ b/doc/src/porting/qt4-mainwindow.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt4-network.qdoc b/doc/src/porting/qt4-network.qdoc index 52afb6a..475aba1 100644 --- a/doc/src/porting/qt4-network.qdoc +++ b/doc/src/porting/qt4-network.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt4-scribe.qdoc b/doc/src/porting/qt4-scribe.qdoc index 0ab1edf..1b582b9 100644 --- a/doc/src/porting/qt4-scribe.qdoc +++ b/doc/src/porting/qt4-scribe.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt4-sql.qdoc b/doc/src/porting/qt4-sql.qdoc index b2de58f..bafaacb 100644 --- a/doc/src/porting/qt4-sql.qdoc +++ b/doc/src/porting/qt4-sql.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt4-styles.qdoc b/doc/src/porting/qt4-styles.qdoc index 4eb06c9..76b0b1c 100644 --- a/doc/src/porting/qt4-styles.qdoc +++ b/doc/src/porting/qt4-styles.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt4-threads.qdoc b/doc/src/porting/qt4-threads.qdoc index 3dd3594..5675c11 100644 --- a/doc/src/porting/qt4-threads.qdoc +++ b/doc/src/porting/qt4-threads.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/porting/qt4-tulip.qdoc b/doc/src/porting/qt4-tulip.qdoc index 48d2a9e..161c373 100644 --- a/doc/src/porting/qt4-tulip.qdoc +++ b/doc/src/porting/qt4-tulip.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/qt-resources.qdoc b/doc/src/qt-resources.qdoc index 70a8c79..c8c32e8 100644 --- a/doc/src/qt-resources.qdoc +++ b/doc/src/qt-resources.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/qt-webpages.qdoc b/doc/src/qt-webpages.qdoc index 0a03157..e476b68 100644 --- a/doc/src/qt-webpages.qdoc +++ b/doc/src/qt-webpages.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc index 7325e27..6effbfa 100644 --- a/doc/src/qt4-intro.qdoc +++ b/doc/src/qt4-intro.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/scripting/ecmascript.qdoc b/doc/src/scripting/ecmascript.qdoc index b08c3ae..7d59759 100644 --- a/doc/src/scripting/ecmascript.qdoc +++ b/doc/src/scripting/ecmascript.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/scripting/qtscriptdebugger-manual.qdoc b/doc/src/scripting/qtscriptdebugger-manual.qdoc index a19d8d4..b9b8442 100644 --- a/doc/src/scripting/qtscriptdebugger-manual.qdoc +++ b/doc/src/scripting/qtscriptdebugger-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/scripting/qtscriptextensions.qdoc b/doc/src/scripting/qtscriptextensions.qdoc index 5825c0a..888cf73 100644 --- a/doc/src/scripting/qtscriptextensions.qdoc +++ b/doc/src/scripting/qtscriptextensions.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/scripting/scripting.qdoc b/doc/src/scripting/scripting.qdoc index a5f3d76..79fed97 100644 --- a/doc/src/scripting/scripting.qdoc +++ b/doc/src/scripting/scripting.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/accessibilityfactorysnippet.cpp b/doc/src/snippets/accessibilityfactorysnippet.cpp index 54ee211..a378db7 100644 --- a/doc/src/snippets/accessibilityfactorysnippet.cpp +++ b/doc/src/snippets/accessibilityfactorysnippet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/accessibilitypluginsnippet.cpp b/doc/src/snippets/accessibilitypluginsnippet.cpp index 9ffe2bc..a7e25f0 100644 --- a/doc/src/snippets/accessibilitypluginsnippet.cpp +++ b/doc/src/snippets/accessibilitypluginsnippet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/accessibilityslidersnippet.cpp b/doc/src/snippets/accessibilityslidersnippet.cpp index 466579d..843cd1f 100644 --- a/doc/src/snippets/accessibilityslidersnippet.cpp +++ b/doc/src/snippets/accessibilityslidersnippet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/alphachannel.cpp b/doc/src/snippets/alphachannel.cpp index c5df429..d5ec20e 100644 --- a/doc/src/snippets/alphachannel.cpp +++ b/doc/src/snippets/alphachannel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/animation/sequential/main.cpp b/doc/src/snippets/animation/sequential/main.cpp index 0da9eb0..2a32a71 100644 --- a/doc/src/snippets/animation/sequential/main.cpp +++ b/doc/src/snippets/animation/sequential/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/animation/sequential/tracer.cpp b/doc/src/snippets/animation/sequential/tracer.cpp index 44b0b24..4a0f48e 100644 --- a/doc/src/snippets/animation/sequential/tracer.cpp +++ b/doc/src/snippets/animation/sequential/tracer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/animation/sequential/tracer.h b/doc/src/snippets/animation/sequential/tracer.h index bed885d..b534686 100644 --- a/doc/src/snippets/animation/sequential/tracer.h +++ b/doc/src/snippets/animation/sequential/tracer.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/audio/main.cpp b/doc/src/snippets/audio/main.cpp index 3337e3d..e3244cd 100644 --- a/doc/src/snippets/audio/main.cpp +++ b/doc/src/snippets/audio/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/audioeffects.cpp b/doc/src/snippets/audioeffects.cpp index 2ab0ac0..d8a39f2 100644 --- a/doc/src/snippets/audioeffects.cpp +++ b/doc/src/snippets/audioeffects.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/brush/brush.cpp b/doc/src/snippets/brush/brush.cpp index 5fabc7b..57a2192 100644 --- a/doc/src/snippets/brush/brush.cpp +++ b/doc/src/snippets/brush/brush.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/brush/gradientcreationsnippet.cpp b/doc/src/snippets/brush/gradientcreationsnippet.cpp index 22e1225..783c4c2 100644 --- a/doc/src/snippets/brush/gradientcreationsnippet.cpp +++ b/doc/src/snippets/brush/gradientcreationsnippet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/brushstyles/main.cpp b/doc/src/snippets/brushstyles/main.cpp index d324d77..cc608b7 100644 --- a/doc/src/snippets/brushstyles/main.cpp +++ b/doc/src/snippets/brushstyles/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/brushstyles/renderarea.cpp b/doc/src/snippets/brushstyles/renderarea.cpp index 00e0773..72dd627 100644 --- a/doc/src/snippets/brushstyles/renderarea.cpp +++ b/doc/src/snippets/brushstyles/renderarea.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/brushstyles/renderarea.h b/doc/src/snippets/brushstyles/renderarea.h index bcb55a5..8be0bff 100644 --- a/doc/src/snippets/brushstyles/renderarea.h +++ b/doc/src/snippets/brushstyles/renderarea.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/brushstyles/stylewidget.cpp b/doc/src/snippets/brushstyles/stylewidget.cpp index 9d00a5f..2acb719 100644 --- a/doc/src/snippets/brushstyles/stylewidget.cpp +++ b/doc/src/snippets/brushstyles/stylewidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/brushstyles/stylewidget.h b/doc/src/snippets/brushstyles/stylewidget.h index f6f62ae..872bc0e 100644 --- a/doc/src/snippets/brushstyles/stylewidget.h +++ b/doc/src/snippets/brushstyles/stylewidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/buffer/buffer.cpp b/doc/src/snippets/buffer/buffer.cpp index 40c12ef..a5e9108 100644 --- a/doc/src/snippets/buffer/buffer.cpp +++ b/doc/src/snippets/buffer/buffer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/clipboard/clipwindow.cpp b/doc/src/snippets/clipboard/clipwindow.cpp index 4113fac..e8c52e6 100644 --- a/doc/src/snippets/clipboard/clipwindow.cpp +++ b/doc/src/snippets/clipboard/clipwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/clipboard/clipwindow.h b/doc/src/snippets/clipboard/clipwindow.h index 8e13664..eb029cd 100644 --- a/doc/src/snippets/clipboard/clipwindow.h +++ b/doc/src/snippets/clipboard/clipwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/clipboard/main.cpp b/doc/src/snippets/clipboard/main.cpp index d10643e..3706170 100644 --- a/doc/src/snippets/clipboard/main.cpp +++ b/doc/src/snippets/clipboard/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc.src.qtscripttools.qdoc b/doc/src/snippets/code/doc.src.qtscripttools.qdoc index c08e2e5..76840b3 100644 --- a/doc/src/snippets/code/doc.src.qtscripttools.qdoc +++ b/doc/src/snippets/code/doc.src.qtscripttools.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc b/doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc index 3fa0d5c..0c29b1c 100644 --- a/doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc +++ b/doc/src/snippets/code/doc_src_activeqt-dumpcpp.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_appicon.qdoc b/doc/src/snippets/code/doc_src_appicon.qdoc index 4f83a06..06bf861 100644 --- a/doc/src/snippets/code/doc_src_appicon.qdoc +++ b/doc/src/snippets/code/doc_src_appicon.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_assistant-manual.qdoc b/doc/src/snippets/code/doc_src_assistant-manual.qdoc index 95a7db0..3bdb145 100644 --- a/doc/src/snippets/code/doc_src_assistant-manual.qdoc +++ b/doc/src/snippets/code/doc_src_assistant-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_atomic-operations.qdoc b/doc/src/snippets/code/doc_src_atomic-operations.qdoc index 414b832..b8864a7 100644 --- a/doc/src/snippets/code/doc_src_atomic-operations.qdoc +++ b/doc/src/snippets/code/doc_src_atomic-operations.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_compiler-notes.qdoc b/doc/src/snippets/code/doc_src_compiler-notes.qdoc index fc94e80..7205cc2 100644 --- a/doc/src/snippets/code/doc_src_compiler-notes.qdoc +++ b/doc/src/snippets/code/doc_src_compiler-notes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_containers.qdoc b/doc/src/snippets/code/doc_src_containers.qdoc index 1f86f60..fa300f9 100644 --- a/doc/src/snippets/code/doc_src_containers.qdoc +++ b/doc/src/snippets/code/doc_src_containers.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_coordsys.qdoc b/doc/src/snippets/code/doc_src_coordsys.qdoc index edb1b41..1ebb215 100644 --- a/doc/src/snippets/code/doc_src_coordsys.qdoc +++ b/doc/src/snippets/code/doc_src_coordsys.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_debug.qdoc b/doc/src/snippets/code/doc_src_debug.qdoc index c603969..40a5ac2 100644 --- a/doc/src/snippets/code/doc_src_debug.qdoc +++ b/doc/src/snippets/code/doc_src_debug.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_deployment.qdoc b/doc/src/snippets/code/doc_src_deployment.qdoc index 83d468e..c5f4644 100644 --- a/doc/src/snippets/code/doc_src_deployment.qdoc +++ b/doc/src/snippets/code/doc_src_deployment.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_designer-manual.qdoc b/doc/src/snippets/code/doc_src_designer-manual.qdoc index f80b61f..90e34a4 100644 --- a/doc/src/snippets/code/doc_src_designer-manual.qdoc +++ b/doc/src/snippets/code/doc_src_designer-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_dnd.qdoc b/doc/src/snippets/code/doc_src_dnd.qdoc index 33209ff..d5dc721 100644 --- a/doc/src/snippets/code/doc_src_dnd.qdoc +++ b/doc/src/snippets/code/doc_src_dnd.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-charinput.qdoc b/doc/src/snippets/code/doc_src_emb-charinput.qdoc index 9700b41..2840b96 100644 --- a/doc/src/snippets/code/doc_src_emb-charinput.qdoc +++ b/doc/src/snippets/code/doc_src_emb-charinput.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-crosscompiling.qdoc b/doc/src/snippets/code/doc_src_emb-crosscompiling.qdoc index 31745d8..09ef2ba 100644 --- a/doc/src/snippets/code/doc_src_emb-crosscompiling.qdoc +++ b/doc/src/snippets/code/doc_src_emb-crosscompiling.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-envvars.qdoc b/doc/src/snippets/code/doc_src_emb-envvars.qdoc index 818d316..525cf3b 100644 --- a/doc/src/snippets/code/doc_src_emb-envvars.qdoc +++ b/doc/src/snippets/code/doc_src_emb-envvars.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-features.qdoc b/doc/src/snippets/code/doc_src_emb-features.qdoc index 78b2750..19df8f9 100644 --- a/doc/src/snippets/code/doc_src_emb-features.qdoc +++ b/doc/src/snippets/code/doc_src_emb-features.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-fonts.qdoc b/doc/src/snippets/code/doc_src_emb-fonts.qdoc index 79183ed..a669a51 100644 --- a/doc/src/snippets/code/doc_src_emb-fonts.qdoc +++ b/doc/src/snippets/code/doc_src_emb-fonts.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-install.qdoc b/doc/src/snippets/code/doc_src_emb-install.qdoc index 328e3ad..8d6b36a 100644 --- a/doc/src/snippets/code/doc_src_emb-install.qdoc +++ b/doc/src/snippets/code/doc_src_emb-install.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-performance.qdoc b/doc/src/snippets/code/doc_src_emb-performance.qdoc index e060555..8c129fd 100644 --- a/doc/src/snippets/code/doc_src_emb-performance.qdoc +++ b/doc/src/snippets/code/doc_src_emb-performance.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-pointer.qdoc b/doc/src/snippets/code/doc_src_emb-pointer.qdoc index b051a98..4ec1335 100644 --- a/doc/src/snippets/code/doc_src_emb-pointer.qdoc +++ b/doc/src/snippets/code/doc_src_emb-pointer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-qvfb.qdoc b/doc/src/snippets/code/doc_src_emb-qvfb.qdoc index 7b30f46..01537b8 100644 --- a/doc/src/snippets/code/doc_src_emb-qvfb.qdoc +++ b/doc/src/snippets/code/doc_src_emb-qvfb.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-running.qdoc b/doc/src/snippets/code/doc_src_emb-running.qdoc index 7a100b8..04bb087 100644 --- a/doc/src/snippets/code/doc_src_emb-running.qdoc +++ b/doc/src/snippets/code/doc_src_emb-running.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_emb-vnc.qdoc b/doc/src/snippets/code/doc_src_emb-vnc.qdoc index e61360f..b189743 100644 --- a/doc/src/snippets/code/doc_src_emb-vnc.qdoc +++ b/doc/src/snippets/code/doc_src_emb-vnc.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_activeqt_comapp.qdoc b/doc/src/snippets/code/doc_src_examples_activeqt_comapp.qdoc index d2c6b18..40ee834 100644 --- a/doc/src/snippets/code/doc_src_examples_activeqt_comapp.qdoc +++ b/doc/src/snippets/code/doc_src_examples_activeqt_comapp.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_activeqt_dotnet.qdoc b/doc/src/snippets/code/doc_src_examples_activeqt_dotnet.qdoc index fd4a77c..74c869e 100644 --- a/doc/src/snippets/code/doc_src_examples_activeqt_dotnet.qdoc +++ b/doc/src/snippets/code/doc_src_examples_activeqt_dotnet.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_activeqt_menus.qdoc b/doc/src/snippets/code/doc_src_examples_activeqt_menus.qdoc index 6dcb915..a6f42aa 100644 --- a/doc/src/snippets/code/doc_src_examples_activeqt_menus.qdoc +++ b/doc/src/snippets/code/doc_src_examples_activeqt_menus.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_application.qdoc b/doc/src/snippets/code/doc_src_examples_application.qdoc index a7cbc26..08e0747 100644 --- a/doc/src/snippets/code/doc_src_examples_application.qdoc +++ b/doc/src/snippets/code/doc_src_examples_application.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_arrowpad.qdoc b/doc/src/snippets/code/doc_src_examples_arrowpad.qdoc index 3ce36bd..933f419 100644 --- a/doc/src/snippets/code/doc_src_examples_arrowpad.qdoc +++ b/doc/src/snippets/code/doc_src_examples_arrowpad.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_containerextension.qdoc b/doc/src/snippets/code/doc_src_examples_containerextension.qdoc index cea9dac..7fe0394 100644 --- a/doc/src/snippets/code/doc_src_examples_containerextension.qdoc +++ b/doc/src/snippets/code/doc_src_examples_containerextension.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_customwidgetplugin.qdoc b/doc/src/snippets/code/doc_src_examples_customwidgetplugin.qdoc index cea9dac..7fe0394 100644 --- a/doc/src/snippets/code/doc_src_examples_customwidgetplugin.qdoc +++ b/doc/src/snippets/code/doc_src_examples_customwidgetplugin.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_dropsite.qdoc b/doc/src/snippets/code/doc_src_examples_dropsite.qdoc index 59540c3..d7bffc0 100644 --- a/doc/src/snippets/code/doc_src_examples_dropsite.qdoc +++ b/doc/src/snippets/code/doc_src_examples_dropsite.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_editabletreemodel.qdoc b/doc/src/snippets/code/doc_src_examples_editabletreemodel.qdoc index 8d455e3..a69a7bf 100644 --- a/doc/src/snippets/code/doc_src_examples_editabletreemodel.qdoc +++ b/doc/src/snippets/code/doc_src_examples_editabletreemodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_hellotr.qdoc b/doc/src/snippets/code/doc_src_examples_hellotr.qdoc index a11c35b..9dbcb0a 100644 --- a/doc/src/snippets/code/doc_src_examples_hellotr.qdoc +++ b/doc/src/snippets/code/doc_src_examples_hellotr.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_icons.qdoc b/doc/src/snippets/code/doc_src_examples_icons.qdoc index cbd54b3..7684224 100644 --- a/doc/src/snippets/code/doc_src_examples_icons.qdoc +++ b/doc/src/snippets/code/doc_src_examples_icons.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_imageviewer.qdoc b/doc/src/snippets/code/doc_src_examples_imageviewer.qdoc index b2454c5..84f822f 100644 --- a/doc/src/snippets/code/doc_src_examples_imageviewer.qdoc +++ b/doc/src/snippets/code/doc_src_examples_imageviewer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_qtscriptcustomclass.qdoc b/doc/src/snippets/code/doc_src_examples_qtscriptcustomclass.qdoc index c8028db..b62236c 100644 --- a/doc/src/snippets/code/doc_src_examples_qtscriptcustomclass.qdoc +++ b/doc/src/snippets/code/doc_src_examples_qtscriptcustomclass.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_simpledommodel.qdoc b/doc/src/snippets/code/doc_src_examples_simpledommodel.qdoc index edd60f2..1abcdc2 100644 --- a/doc/src/snippets/code/doc_src_examples_simpledommodel.qdoc +++ b/doc/src/snippets/code/doc_src_examples_simpledommodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_simpletreemodel.qdoc b/doc/src/snippets/code/doc_src_examples_simpletreemodel.qdoc index 6e3340b..1084d23 100644 --- a/doc/src/snippets/code/doc_src_examples_simpletreemodel.qdoc +++ b/doc/src/snippets/code/doc_src_examples_simpletreemodel.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_svgalib.qdoc b/doc/src/snippets/code/doc_src_examples_svgalib.qdoc index c99091c..3c34818 100644 --- a/doc/src/snippets/code/doc_src_examples_svgalib.qdoc +++ b/doc/src/snippets/code/doc_src_examples_svgalib.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_taskmenuextension.qdoc b/doc/src/snippets/code/doc_src_examples_taskmenuextension.qdoc index cea9dac..7fe0394 100644 --- a/doc/src/snippets/code/doc_src_examples_taskmenuextension.qdoc +++ b/doc/src/snippets/code/doc_src_examples_taskmenuextension.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_textfinder.qdoc b/doc/src/snippets/code/doc_src_examples_textfinder.qdoc index 190007b..d99f8ce 100644 --- a/doc/src/snippets/code/doc_src_examples_textfinder.qdoc +++ b/doc/src/snippets/code/doc_src_examples_textfinder.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_trollprint.qdoc b/doc/src/snippets/code/doc_src_examples_trollprint.qdoc index f47487b..4b508e9 100644 --- a/doc/src/snippets/code/doc_src_examples_trollprint.qdoc +++ b/doc/src/snippets/code/doc_src_examples_trollprint.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_tutorial.qdoc b/doc/src/snippets/code/doc_src_examples_tutorial.qdoc index 9b43296..b0e990f 100644 --- a/doc/src/snippets/code/doc_src_examples_tutorial.qdoc +++ b/doc/src/snippets/code/doc_src_examples_tutorial.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_examples_worldtimeclockplugin.qdoc b/doc/src/snippets/code/doc_src_examples_worldtimeclockplugin.qdoc index cea9dac..7fe0394 100644 --- a/doc/src/snippets/code/doc_src_examples_worldtimeclockplugin.qdoc +++ b/doc/src/snippets/code/doc_src_examples_worldtimeclockplugin.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_exportedfunctions.qdoc b/doc/src/snippets/code/doc_src_exportedfunctions.qdoc index dda5539..64a08a6 100644 --- a/doc/src/snippets/code/doc_src_exportedfunctions.qdoc +++ b/doc/src/snippets/code/doc_src_exportedfunctions.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_fdl.qdoc b/doc/src/snippets/code/doc_src_fdl.qdoc index b55e663..2417478 100644 --- a/doc/src/snippets/code/doc_src_fdl.qdoc +++ b/doc/src/snippets/code/doc_src_fdl.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_gpl.qdoc b/doc/src/snippets/code/doc_src_gpl.qdoc index 5c1468c..397c148 100644 --- a/doc/src/snippets/code/doc_src_gpl.qdoc +++ b/doc/src/snippets/code/doc_src_gpl.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_graphicsview.qdoc b/doc/src/snippets/code/doc_src_graphicsview.qdoc index ea97af5..00ebab3 100644 --- a/doc/src/snippets/code/doc_src_graphicsview.qdoc +++ b/doc/src/snippets/code/doc_src_graphicsview.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_groups.qdoc b/doc/src/snippets/code/doc_src_groups.qdoc index 4d05325..2d5fd97 100644 --- a/doc/src/snippets/code/doc_src_groups.qdoc +++ b/doc/src/snippets/code/doc_src_groups.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_i18n.qdoc b/doc/src/snippets/code/doc_src_i18n.qdoc index 75f2269..f54ce37 100644 --- a/doc/src/snippets/code/doc_src_i18n.qdoc +++ b/doc/src/snippets/code/doc_src_i18n.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_installation.qdoc b/doc/src/snippets/code/doc_src_installation.qdoc index 2e59db9..0374320 100644 --- a/doc/src/snippets/code/doc_src_installation.qdoc +++ b/doc/src/snippets/code/doc_src_installation.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_introtodbus.qdoc b/doc/src/snippets/code/doc_src_introtodbus.qdoc index a795e57..01897fe 100644 --- a/doc/src/snippets/code/doc_src_introtodbus.qdoc +++ b/doc/src/snippets/code/doc_src_introtodbus.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_layout.qdoc b/doc/src/snippets/code/doc_src_layout.qdoc index fd99957..47db36b 100644 --- a/doc/src/snippets/code/doc_src_layout.qdoc +++ b/doc/src/snippets/code/doc_src_layout.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_lgpl.qdoc b/doc/src/snippets/code/doc_src_lgpl.qdoc index 8f21642..11fd0ff 100644 --- a/doc/src/snippets/code/doc_src_lgpl.qdoc +++ b/doc/src/snippets/code/doc_src_lgpl.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_licenses.qdoc b/doc/src/snippets/code/doc_src_licenses.qdoc index f3e2ced..c1b25fe 100644 --- a/doc/src/snippets/code/doc_src_licenses.qdoc +++ b/doc/src/snippets/code/doc_src_licenses.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_linguist-manual.qdoc b/doc/src/snippets/code/doc_src_linguist-manual.qdoc index 294afe0..5975c9a 100644 --- a/doc/src/snippets/code/doc_src_linguist-manual.qdoc +++ b/doc/src/snippets/code/doc_src_linguist-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_mac-differences.qdoc b/doc/src/snippets/code/doc_src_mac-differences.qdoc index 17577a6..570bdac 100644 --- a/doc/src/snippets/code/doc_src_mac-differences.qdoc +++ b/doc/src/snippets/code/doc_src_mac-differences.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_moc.qdoc b/doc/src/snippets/code/doc_src_moc.qdoc index c9ae852..ef85b1b 100644 --- a/doc/src/snippets/code/doc_src_moc.qdoc +++ b/doc/src/snippets/code/doc_src_moc.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_model-view-programming.qdoc b/doc/src/snippets/code/doc_src_model-view-programming.qdoc index 1f0c0e5..05c2e1d 100644 --- a/doc/src/snippets/code/doc_src_model-view-programming.qdoc +++ b/doc/src/snippets/code/doc_src_model-view-programming.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_modules.qdoc b/doc/src/snippets/code/doc_src_modules.qdoc index 4b2a204..643a94d 100644 --- a/doc/src/snippets/code/doc_src_modules.qdoc +++ b/doc/src/snippets/code/doc_src_modules.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_objecttrees.qdoc b/doc/src/snippets/code/doc_src_objecttrees.qdoc index 06c921c..cd92a49 100644 --- a/doc/src/snippets/code/doc_src_objecttrees.qdoc +++ b/doc/src/snippets/code/doc_src_objecttrees.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_phonon-api.qdoc b/doc/src/snippets/code/doc_src_phonon-api.qdoc index e0ef158..d7a989b 100644 --- a/doc/src/snippets/code/doc_src_phonon-api.qdoc +++ b/doc/src/snippets/code/doc_src_phonon-api.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_phonon.qdoc b/doc/src/snippets/code/doc_src_phonon.qdoc index 9a3130e..61ee189 100644 --- a/doc/src/snippets/code/doc_src_phonon.qdoc +++ b/doc/src/snippets/code/doc_src_phonon.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_platform-notes.qdoc b/doc/src/snippets/code/doc_src_platform-notes.qdoc index 8aba8ec..33f691d 100644 --- a/doc/src/snippets/code/doc_src_platform-notes.qdoc +++ b/doc/src/snippets/code/doc_src_platform-notes.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_plugins-howto.qdoc b/doc/src/snippets/code/doc_src_plugins-howto.qdoc index fa883ba..e80faee 100644 --- a/doc/src/snippets/code/doc_src_plugins-howto.qdoc +++ b/doc/src/snippets/code/doc_src_plugins-howto.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_porting-qsa.qdoc b/doc/src/snippets/code/doc_src_porting-qsa.qdoc index ac12de2..bb0b7fd 100644 --- a/doc/src/snippets/code/doc_src_porting-qsa.qdoc +++ b/doc/src/snippets/code/doc_src_porting-qsa.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_porting4-canvas.qdoc b/doc/src/snippets/code/doc_src_porting4-canvas.qdoc index f9954d3..8004163 100644 --- a/doc/src/snippets/code/doc_src_porting4-canvas.qdoc +++ b/doc/src/snippets/code/doc_src_porting4-canvas.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_porting4-designer.qdoc b/doc/src/snippets/code/doc_src_porting4-designer.qdoc index 6b244d7..2c043f5 100644 --- a/doc/src/snippets/code/doc_src_porting4-designer.qdoc +++ b/doc/src/snippets/code/doc_src_porting4-designer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_porting4.qdoc b/doc/src/snippets/code/doc_src_porting4.qdoc index 7a39f2e..730f71f 100644 --- a/doc/src/snippets/code/doc_src_porting4.qdoc +++ b/doc/src/snippets/code/doc_src_porting4.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_properties.qdoc b/doc/src/snippets/code/doc_src_properties.qdoc index a4ed409..1238bc5 100644 --- a/doc/src/snippets/code/doc_src_properties.qdoc +++ b/doc/src/snippets/code/doc_src_properties.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_q3asciidict.qdoc b/doc/src/snippets/code/doc_src_q3asciidict.qdoc index 9b9cb13..4b32817 100644 --- a/doc/src/snippets/code/doc_src_q3asciidict.qdoc +++ b/doc/src/snippets/code/doc_src_q3asciidict.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_q3dict.qdoc b/doc/src/snippets/code/doc_src_q3dict.qdoc index 6a2ded0..9c51cae 100644 --- a/doc/src/snippets/code/doc_src_q3dict.qdoc +++ b/doc/src/snippets/code/doc_src_q3dict.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_q3intdict.qdoc b/doc/src/snippets/code/doc_src_q3intdict.qdoc index 99b57dd..0f15b6f 100644 --- a/doc/src/snippets/code/doc_src_q3intdict.qdoc +++ b/doc/src/snippets/code/doc_src_q3intdict.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_q3memarray.qdoc b/doc/src/snippets/code/doc_src_q3memarray.qdoc index 4b9e72c..8e5e008 100644 --- a/doc/src/snippets/code/doc_src_q3memarray.qdoc +++ b/doc/src/snippets/code/doc_src_q3memarray.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_q3ptrdict.qdoc b/doc/src/snippets/code/doc_src_q3ptrdict.qdoc index 0b040fe..e64d874 100644 --- a/doc/src/snippets/code/doc_src_q3ptrdict.qdoc +++ b/doc/src/snippets/code/doc_src_q3ptrdict.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_q3ptrlist.qdoc b/doc/src/snippets/code/doc_src_q3ptrlist.qdoc index 615cf1f..4f97c65 100644 --- a/doc/src/snippets/code/doc_src_q3ptrlist.qdoc +++ b/doc/src/snippets/code/doc_src_q3ptrlist.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_q3valuelist.qdoc b/doc/src/snippets/code/doc_src_q3valuelist.qdoc index faf4faa..38ee9f6 100644 --- a/doc/src/snippets/code/doc_src_q3valuelist.qdoc +++ b/doc/src/snippets/code/doc_src_q3valuelist.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_q3valuestack.qdoc b/doc/src/snippets/code/doc_src_q3valuestack.qdoc index 39850f6..50827e6 100644 --- a/doc/src/snippets/code/doc_src_q3valuestack.qdoc +++ b/doc/src/snippets/code/doc_src_q3valuestack.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_q3valuevector.qdoc b/doc/src/snippets/code/doc_src_q3valuevector.qdoc index bca262d..8af1568 100644 --- a/doc/src/snippets/code/doc_src_q3valuevector.qdoc +++ b/doc/src/snippets/code/doc_src_q3valuevector.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qalgorithms.qdoc b/doc/src/snippets/code/doc_src_qalgorithms.qdoc index f5a73c6..0438105 100644 --- a/doc/src/snippets/code/doc_src_qalgorithms.qdoc +++ b/doc/src/snippets/code/doc_src_qalgorithms.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qaxcontainer.qdoc b/doc/src/snippets/code/doc_src_qaxcontainer.qdoc index 57761f8..93aa60b 100644 --- a/doc/src/snippets/code/doc_src_qaxcontainer.qdoc +++ b/doc/src/snippets/code/doc_src_qaxcontainer.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qaxserver.qdoc b/doc/src/snippets/code/doc_src_qaxserver.qdoc index d1ca7fc..c5906e9 100644 --- a/doc/src/snippets/code/doc_src_qaxserver.qdoc +++ b/doc/src/snippets/code/doc_src_qaxserver.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qcache.qdoc b/doc/src/snippets/code/doc_src_qcache.qdoc index 163b726..81fa3cf 100644 --- a/doc/src/snippets/code/doc_src_qcache.qdoc +++ b/doc/src/snippets/code/doc_src_qcache.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qdbusadaptors.qdoc b/doc/src/snippets/code/doc_src_qdbusadaptors.qdoc index 5d6ba76..abb31a1 100644 --- a/doc/src/snippets/code/doc_src_qdbusadaptors.qdoc +++ b/doc/src/snippets/code/doc_src_qdbusadaptors.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qiterator.qdoc b/doc/src/snippets/code/doc_src_qiterator.qdoc index 1a179cb..82b1bd3 100644 --- a/doc/src/snippets/code/doc_src_qiterator.qdoc +++ b/doc/src/snippets/code/doc_src_qiterator.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qmake-manual.qdoc b/doc/src/snippets/code/doc_src_qmake-manual.qdoc index 4f74e9c..fb71e39 100644 --- a/doc/src/snippets/code/doc_src_qmake-manual.qdoc +++ b/doc/src/snippets/code/doc_src_qmake-manual.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qnamespace.qdoc b/doc/src/snippets/code/doc_src_qnamespace.qdoc index 5cefd03..a1bd0b7 100644 --- a/doc/src/snippets/code/doc_src_qnamespace.qdoc +++ b/doc/src/snippets/code/doc_src_qnamespace.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qpair.qdoc b/doc/src/snippets/code/doc_src_qpair.qdoc index 0cda5cb..a9a061e 100644 --- a/doc/src/snippets/code/doc_src_qpair.qdoc +++ b/doc/src/snippets/code/doc_src_qpair.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qplugin.qdoc b/doc/src/snippets/code/doc_src_qplugin.qdoc index 8222fdb..fdacc08 100644 --- a/doc/src/snippets/code/doc_src_qplugin.qdoc +++ b/doc/src/snippets/code/doc_src_qplugin.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qset.qdoc b/doc/src/snippets/code/doc_src_qset.qdoc index c6e1933..4a4953d 100644 --- a/doc/src/snippets/code/doc_src_qset.qdoc +++ b/doc/src/snippets/code/doc_src_qset.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qsignalspy.qdoc b/doc/src/snippets/code/doc_src_qsignalspy.qdoc index 7ca778b..12462e2 100644 --- a/doc/src/snippets/code/doc_src_qsignalspy.qdoc +++ b/doc/src/snippets/code/doc_src_qsignalspy.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt-conf.qdoc b/doc/src/snippets/code/doc_src_qt-conf.qdoc index d51ab2d..f558013 100644 --- a/doc/src/snippets/code/doc_src_qt-conf.qdoc +++ b/doc/src/snippets/code/doc_src_qt-conf.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt-embedded-displaymanagement.qdoc b/doc/src/snippets/code/doc_src_qt-embedded-displaymanagement.qdoc index 8b4b9b9..e837dfa 100644 --- a/doc/src/snippets/code/doc_src_qt-embedded-displaymanagement.qdoc +++ b/doc/src/snippets/code/doc_src_qt-embedded-displaymanagement.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt3support.qdoc b/doc/src/snippets/code/doc_src_qt3support.qdoc index e674651..9e0f682 100644 --- a/doc/src/snippets/code/doc_src_qt3support.qdoc +++ b/doc/src/snippets/code/doc_src_qt3support.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt3to4.qdoc b/doc/src/snippets/code/doc_src_qt3to4.qdoc index cb64174..8ef0780 100644 --- a/doc/src/snippets/code/doc_src_qt3to4.qdoc +++ b/doc/src/snippets/code/doc_src_qt3to4.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt4-accessibility.qdoc b/doc/src/snippets/code/doc_src_qt4-accessibility.qdoc index fd402a5..efbbc5a 100644 --- a/doc/src/snippets/code/doc_src_qt4-accessibility.qdoc +++ b/doc/src/snippets/code/doc_src_qt4-accessibility.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt4-arthur.qdoc b/doc/src/snippets/code/doc_src_qt4-arthur.qdoc index 9f28430..6268309 100644 --- a/doc/src/snippets/code/doc_src_qt4-arthur.qdoc +++ b/doc/src/snippets/code/doc_src_qt4-arthur.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt4-intro.qdoc b/doc/src/snippets/code/doc_src_qt4-intro.qdoc index f5c2058..45da7d0 100644 --- a/doc/src/snippets/code/doc_src_qt4-intro.qdoc +++ b/doc/src/snippets/code/doc_src_qt4-intro.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt4-mainwindow.qdoc b/doc/src/snippets/code/doc_src_qt4-mainwindow.qdoc index d494594..d0c758e 100644 --- a/doc/src/snippets/code/doc_src_qt4-mainwindow.qdoc +++ b/doc/src/snippets/code/doc_src_qt4-mainwindow.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt4-sql.qdoc b/doc/src/snippets/code/doc_src_qt4-sql.qdoc index bba93c3..cbcfb2d 100644 --- a/doc/src/snippets/code/doc_src_qt4-sql.qdoc +++ b/doc/src/snippets/code/doc_src_qt4-sql.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt4-styles.qdoc b/doc/src/snippets/code/doc_src_qt4-styles.qdoc index e8ad555..effe3cd 100644 --- a/doc/src/snippets/code/doc_src_qt4-styles.qdoc +++ b/doc/src/snippets/code/doc_src_qt4-styles.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qt4-tulip.qdoc b/doc/src/snippets/code/doc_src_qt4-tulip.qdoc index f29d3ba..83b1210 100644 --- a/doc/src/snippets/code/doc_src_qt4-tulip.qdoc +++ b/doc/src/snippets/code/doc_src_qt4-tulip.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtcore.qdoc b/doc/src/snippets/code/doc_src_qtcore.qdoc index 6681a1b..35916ea 100644 --- a/doc/src/snippets/code/doc_src_qtcore.qdoc +++ b/doc/src/snippets/code/doc_src_qtcore.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtdbus.qdoc b/doc/src/snippets/code/doc_src_qtdbus.qdoc index 55d829a..20ff513 100644 --- a/doc/src/snippets/code/doc_src_qtdbus.qdoc +++ b/doc/src/snippets/code/doc_src_qtdbus.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtdesigner.qdoc b/doc/src/snippets/code/doc_src_qtdesigner.qdoc index 441b172..a37b77f 100644 --- a/doc/src/snippets/code/doc_src_qtdesigner.qdoc +++ b/doc/src/snippets/code/doc_src_qtdesigner.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtestevent.qdoc b/doc/src/snippets/code/doc_src_qtestevent.qdoc index d114b1f..fd1c819 100644 --- a/doc/src/snippets/code/doc_src_qtestevent.qdoc +++ b/doc/src/snippets/code/doc_src_qtestevent.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtestlib.qdoc b/doc/src/snippets/code/doc_src_qtestlib.qdoc index 3ff978a..80b7d92 100644 --- a/doc/src/snippets/code/doc_src_qtestlib.qdoc +++ b/doc/src/snippets/code/doc_src_qtestlib.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtgui.qdoc b/doc/src/snippets/code/doc_src_qtgui.qdoc index 683bfb1..370529a 100644 --- a/doc/src/snippets/code/doc_src_qtgui.qdoc +++ b/doc/src/snippets/code/doc_src_qtgui.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qthelp.qdoc b/doc/src/snippets/code/doc_src_qthelp.qdoc index 27a32d9..4ad2100 100644 --- a/doc/src/snippets/code/doc_src_qthelp.qdoc +++ b/doc/src/snippets/code/doc_src_qthelp.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtmac-as-native.qdoc b/doc/src/snippets/code/doc_src_qtmac-as-native.qdoc index d9617c3..63d305e 100644 --- a/doc/src/snippets/code/doc_src_qtmac-as-native.qdoc +++ b/doc/src/snippets/code/doc_src_qtmac-as-native.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtmultimedia.qdoc b/doc/src/snippets/code/doc_src_qtmultimedia.qdoc index 53bb93d..76fb9cd 100644 --- a/doc/src/snippets/code/doc_src_qtmultimedia.qdoc +++ b/doc/src/snippets/code/doc_src_qtmultimedia.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtnetwork.qdoc b/doc/src/snippets/code/doc_src_qtnetwork.qdoc index 0ff923c..42d1808 100644 --- a/doc/src/snippets/code/doc_src_qtnetwork.qdoc +++ b/doc/src/snippets/code/doc_src_qtnetwork.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtopengl.qdoc b/doc/src/snippets/code/doc_src_qtopengl.qdoc index 5d3ef6d..555d571 100644 --- a/doc/src/snippets/code/doc_src_qtopengl.qdoc +++ b/doc/src/snippets/code/doc_src_qtopengl.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtscript.qdoc b/doc/src/snippets/code/doc_src_qtscript.qdoc index 8effdf3..a168d5b 100644 --- a/doc/src/snippets/code/doc_src_qtscript.qdoc +++ b/doc/src/snippets/code/doc_src_qtscript.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtscriptextensions.qdoc b/doc/src/snippets/code/doc_src_qtscriptextensions.qdoc index 44398db..456077d 100644 --- a/doc/src/snippets/code/doc_src_qtscriptextensions.qdoc +++ b/doc/src/snippets/code/doc_src_qtscriptextensions.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtsql.qdoc b/doc/src/snippets/code/doc_src_qtsql.qdoc index 706cb2b..1bc7518 100644 --- a/doc/src/snippets/code/doc_src_qtsql.qdoc +++ b/doc/src/snippets/code/doc_src_qtsql.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtsvg.qdoc b/doc/src/snippets/code/doc_src_qtsvg.qdoc index f19151d..57db6de 100644 --- a/doc/src/snippets/code/doc_src_qtsvg.qdoc +++ b/doc/src/snippets/code/doc_src_qtsvg.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qttest.qdoc b/doc/src/snippets/code/doc_src_qttest.qdoc index 0733db6..354d188 100644 --- a/doc/src/snippets/code/doc_src_qttest.qdoc +++ b/doc/src/snippets/code/doc_src_qttest.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtuiloader.qdoc b/doc/src/snippets/code/doc_src_qtuiloader.qdoc index 26316ef..b8d8019 100644 --- a/doc/src/snippets/code/doc_src_qtuiloader.qdoc +++ b/doc/src/snippets/code/doc_src_qtuiloader.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtxml.qdoc b/doc/src/snippets/code/doc_src_qtxml.qdoc index c9e2c16..6576815 100644 --- a/doc/src/snippets/code/doc_src_qtxml.qdoc +++ b/doc/src/snippets/code/doc_src_qtxml.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc b/doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc index e138382..560cc53 100644 --- a/doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc +++ b/doc/src/snippets/code/doc_src_qtxmlpatterns.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_qvarlengtharray.qdoc b/doc/src/snippets/code/doc_src_qvarlengtharray.qdoc index 8993c9e..a938330 100644 --- a/doc/src/snippets/code/doc_src_qvarlengtharray.qdoc +++ b/doc/src/snippets/code/doc_src_qvarlengtharray.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_rcc.qdoc b/doc/src/snippets/code/doc_src_rcc.qdoc index 38404b3..903446b 100644 --- a/doc/src/snippets/code/doc_src_rcc.qdoc +++ b/doc/src/snippets/code/doc_src_rcc.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_resources.qdoc b/doc/src/snippets/code/doc_src_resources.qdoc index cfaf5ea..c524ae7 100644 --- a/doc/src/snippets/code/doc_src_resources.qdoc +++ b/doc/src/snippets/code/doc_src_resources.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_richtext.qdoc b/doc/src/snippets/code/doc_src_richtext.qdoc index 0b0efd5..e031d77 100644 --- a/doc/src/snippets/code/doc_src_richtext.qdoc +++ b/doc/src/snippets/code/doc_src_richtext.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_session.qdoc b/doc/src/snippets/code/doc_src_session.qdoc index fa07cd6..074ba85 100644 --- a/doc/src/snippets/code/doc_src_session.qdoc +++ b/doc/src/snippets/code/doc_src_session.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_sql-driver.qdoc b/doc/src/snippets/code/doc_src_sql-driver.qdoc index b20e614..482e38c 100644 --- a/doc/src/snippets/code/doc_src_sql-driver.qdoc +++ b/doc/src/snippets/code/doc_src_sql-driver.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_styles.qdoc b/doc/src/snippets/code/doc_src_styles.qdoc index 2300747..a2a6fa9 100644 --- a/doc/src/snippets/code/doc_src_styles.qdoc +++ b/doc/src/snippets/code/doc_src_styles.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_stylesheet.qdoc b/doc/src/snippets/code/doc_src_stylesheet.qdoc index b3b10ba..49e2581 100644 --- a/doc/src/snippets/code/doc_src_stylesheet.qdoc +++ b/doc/src/snippets/code/doc_src_stylesheet.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_symbian-introduction.qdoc b/doc/src/snippets/code/doc_src_symbian-introduction.qdoc index a2ea686..fb9a5df 100644 --- a/doc/src/snippets/code/doc_src_symbian-introduction.qdoc +++ b/doc/src/snippets/code/doc_src_symbian-introduction.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_uic.qdoc b/doc/src/snippets/code/doc_src_uic.qdoc index 371194d..7573c93 100644 --- a/doc/src/snippets/code/doc_src_uic.qdoc +++ b/doc/src/snippets/code/doc_src_uic.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_unicode.qdoc b/doc/src/snippets/code/doc_src_unicode.qdoc index 0ca665e..4415cf2 100644 --- a/doc/src/snippets/code/doc_src_unicode.qdoc +++ b/doc/src/snippets/code/doc_src_unicode.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_unix-signal-handlers.qdoc b/doc/src/snippets/code/doc_src_unix-signal-handlers.qdoc index 832a25f..fd5f386 100644 --- a/doc/src/snippets/code/doc_src_unix-signal-handlers.qdoc +++ b/doc/src/snippets/code/doc_src_unix-signal-handlers.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_wince-customization.qdoc b/doc/src/snippets/code/doc_src_wince-customization.qdoc index 01ca335..657786f 100644 --- a/doc/src/snippets/code/doc_src_wince-customization.qdoc +++ b/doc/src/snippets/code/doc_src_wince-customization.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_wince-introduction.qdoc b/doc/src/snippets/code/doc_src_wince-introduction.qdoc index 686f910..2c7e62c 100644 --- a/doc/src/snippets/code/doc_src_wince-introduction.qdoc +++ b/doc/src/snippets/code/doc_src_wince-introduction.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/doc_src_wince-opengl.qdoc b/doc/src/snippets/code/doc_src_wince-opengl.qdoc index 65b2641..8b12e4f 100644 --- a/doc/src/snippets/code/doc_src_wince-opengl.qdoc +++ b/doc/src/snippets/code/doc_src_wince-opengl.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src.gui.text.qtextdocumentwriter.cpp b/doc/src/snippets/code/src.gui.text.qtextdocumentwriter.cpp index 8aca6e6..d7b9827 100644 --- a/doc/src/snippets/code/src.gui.text.qtextdocumentwriter.cpp +++ b/doc/src/snippets/code/src.gui.text.qtextdocumentwriter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src.qdbus.qdbuspendingcall.cpp b/doc/src/snippets/code/src.qdbus.qdbuspendingcall.cpp index c565a1b..623c526 100644 --- a/doc/src/snippets/code/src.qdbus.qdbuspendingcall.cpp +++ b/doc/src/snippets/code/src.qdbus.qdbuspendingcall.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src.qdbus.qdbuspendingreply.cpp b/doc/src/snippets/code/src.qdbus.qdbuspendingreply.cpp index dee7d69..31e240a 100644 --- a/doc/src/snippets/code/src.qdbus.qdbuspendingreply.cpp +++ b/doc/src/snippets/code/src.qdbus.qdbuspendingreply.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src.scripttools.qscriptenginedebugger.cpp b/doc/src/snippets/code/src.scripttools.qscriptenginedebugger.cpp index 55872b4..b17f465 100644 --- a/doc/src/snippets/code/src.scripttools.qscriptenginedebugger.cpp +++ b/doc/src/snippets/code/src.scripttools.qscriptenginedebugger.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_activeqt_container_qaxbase.cpp b/doc/src/snippets/code/src_activeqt_container_qaxbase.cpp index 556baf0..5df221e 100644 --- a/doc/src/snippets/code/src_activeqt_container_qaxbase.cpp +++ b/doc/src/snippets/code/src_activeqt_container_qaxbase.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_activeqt_container_qaxscript.cpp b/doc/src/snippets/code/src_activeqt_container_qaxscript.cpp index 10ef861..ff911d1 100644 --- a/doc/src/snippets/code/src_activeqt_container_qaxscript.cpp +++ b/doc/src/snippets/code/src_activeqt_container_qaxscript.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_activeqt_control_qaxbindable.cpp b/doc/src/snippets/code/src_activeqt_control_qaxbindable.cpp index 06e14cf..d3202ff 100644 --- a/doc/src/snippets/code/src_activeqt_control_qaxbindable.cpp +++ b/doc/src/snippets/code/src_activeqt_control_qaxbindable.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_activeqt_control_qaxfactory.cpp b/doc/src/snippets/code/src_activeqt_control_qaxfactory.cpp index fe8ed91..6747f87 100644 --- a/doc/src/snippets/code/src_activeqt_control_qaxfactory.cpp +++ b/doc/src/snippets/code/src_activeqt_control_qaxfactory.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp b/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp index 5168f42..698c0b6 100644 --- a/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp +++ b/doc/src/snippets/code/src_corelib_codecs_qtextcodec.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_codecs_qtextcodecplugin.cpp b/doc/src/snippets/code/src_corelib_codecs_qtextcodecplugin.cpp index 6562b70..684884f 100644 --- a/doc/src/snippets/code/src_corelib_codecs_qtextcodecplugin.cpp +++ b/doc/src/snippets/code/src_corelib_codecs_qtextcodecplugin.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_concurrent_qfuture.cpp b/doc/src/snippets/code/src_corelib_concurrent_qfuture.cpp index 0ac7ba8..7e106bf 100644 --- a/doc/src/snippets/code/src_corelib_concurrent_qfuture.cpp +++ b/doc/src/snippets/code/src_corelib_concurrent_qfuture.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_concurrent_qfuturesynchronizer.cpp b/doc/src/snippets/code/src_corelib_concurrent_qfuturesynchronizer.cpp index e8ed006..291e2f4 100644 --- a/doc/src/snippets/code/src_corelib_concurrent_qfuturesynchronizer.cpp +++ b/doc/src/snippets/code/src_corelib_concurrent_qfuturesynchronizer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_concurrent_qfuturewatcher.cpp b/doc/src/snippets/code/src_corelib_concurrent_qfuturewatcher.cpp index e44e76f..9f12e93 100644 --- a/doc/src/snippets/code/src_corelib_concurrent_qfuturewatcher.cpp +++ b/doc/src/snippets/code/src_corelib_concurrent_qfuturewatcher.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentexception.cpp b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentexception.cpp index 31ce673..85f3551 100644 --- a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentexception.cpp +++ b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentexception.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentfilter.cpp b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentfilter.cpp index aaa07a3..d18f1e5 100644 --- a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentfilter.cpp +++ b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentfilter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentmap.cpp b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentmap.cpp index 91c04e1..c48ce1e 100644 --- a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentmap.cpp +++ b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentmap.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp index cea6553..2494eb2 100644 --- a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp +++ b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_concurrent_qthreadpool.cpp b/doc/src/snippets/code/src_corelib_concurrent_qthreadpool.cpp index 0dfeead..6262cb1 100644 --- a/doc/src/snippets/code/src_corelib_concurrent_qthreadpool.cpp +++ b/doc/src/snippets/code/src_corelib_concurrent_qthreadpool.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_global_qglobal.cpp b/doc/src/snippets/code/src_corelib_global_qglobal.cpp index 85dd5a0..0b54cef 100644 --- a/doc/src/snippets/code/src_corelib_global_qglobal.cpp +++ b/doc/src/snippets/code/src_corelib_global_qglobal.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qabstractfileengine.cpp b/doc/src/snippets/code/src_corelib_io_qabstractfileengine.cpp index a19cfd4..74ef79f 100644 --- a/doc/src/snippets/code/src_corelib_io_qabstractfileengine.cpp +++ b/doc/src/snippets/code/src_corelib_io_qabstractfileengine.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qdatastream.cpp b/doc/src/snippets/code/src_corelib_io_qdatastream.cpp index 2a5bac2..cd9632c 100644 --- a/doc/src/snippets/code/src_corelib_io_qdatastream.cpp +++ b/doc/src/snippets/code/src_corelib_io_qdatastream.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qdir.cpp b/doc/src/snippets/code/src_corelib_io_qdir.cpp index 3964a95..51262f7 100644 --- a/doc/src/snippets/code/src_corelib_io_qdir.cpp +++ b/doc/src/snippets/code/src_corelib_io_qdir.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qdiriterator.cpp b/doc/src/snippets/code/src_corelib_io_qdiriterator.cpp index 777f3e0..e7a93d4 100644 --- a/doc/src/snippets/code/src_corelib_io_qdiriterator.cpp +++ b/doc/src/snippets/code/src_corelib_io_qdiriterator.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qfile.cpp b/doc/src/snippets/code/src_corelib_io_qfile.cpp index e63278a..158971e 100644 --- a/doc/src/snippets/code/src_corelib_io_qfile.cpp +++ b/doc/src/snippets/code/src_corelib_io_qfile.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qfileinfo.cpp b/doc/src/snippets/code/src_corelib_io_qfileinfo.cpp index 5ddeda6..85e0005 100644 --- a/doc/src/snippets/code/src_corelib_io_qfileinfo.cpp +++ b/doc/src/snippets/code/src_corelib_io_qfileinfo.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qiodevice.cpp b/doc/src/snippets/code/src_corelib_io_qiodevice.cpp index 9337442..1e2a976 100644 --- a/doc/src/snippets/code/src_corelib_io_qiodevice.cpp +++ b/doc/src/snippets/code/src_corelib_io_qiodevice.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qprocess.cpp b/doc/src/snippets/code/src_corelib_io_qprocess.cpp index 6ba271a..64fb17a 100644 --- a/doc/src/snippets/code/src_corelib_io_qprocess.cpp +++ b/doc/src/snippets/code/src_corelib_io_qprocess.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qsettings.cpp b/doc/src/snippets/code/src_corelib_io_qsettings.cpp index 4277fa0..5abb0e3 100644 --- a/doc/src/snippets/code/src_corelib_io_qsettings.cpp +++ b/doc/src/snippets/code/src_corelib_io_qsettings.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qtemporaryfile.cpp b/doc/src/snippets/code/src_corelib_io_qtemporaryfile.cpp index 0c6b0b3..1fb1ccd 100644 --- a/doc/src/snippets/code/src_corelib_io_qtemporaryfile.cpp +++ b/doc/src/snippets/code/src_corelib_io_qtemporaryfile.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qtextstream.cpp b/doc/src/snippets/code/src_corelib_io_qtextstream.cpp index 8ede76f..b3483a9 100644 --- a/doc/src/snippets/code/src_corelib_io_qtextstream.cpp +++ b/doc/src/snippets/code/src_corelib_io_qtextstream.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_io_qurl.cpp b/doc/src/snippets/code/src_corelib_io_qurl.cpp index 083c6aa..18f36da 100644 --- a/doc/src/snippets/code/src_corelib_io_qurl.cpp +++ b/doc/src/snippets/code/src_corelib_io_qurl.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp b/doc/src/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp index d692912..8f0a5c7 100644 --- a/doc/src/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp +++ b/doc/src/snippets/code/src_corelib_kernel_qabstracteventdispatcher.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp b/doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp index 59e6ae0..5919c01 100644 --- a/doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp +++ b/doc/src/snippets/code/src_corelib_kernel_qabstractitemmodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp b/doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp index fb62347..0e6c16f 100644 --- a/doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp +++ b/doc/src/snippets/code/src_corelib_kernel_qcoreapplication.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_kernel_qmetaobject.cpp b/doc/src/snippets/code/src_corelib_kernel_qmetaobject.cpp index 53cd9bd..7a752b1 100644 --- a/doc/src/snippets/code/src_corelib_kernel_qmetaobject.cpp +++ b/doc/src/snippets/code/src_corelib_kernel_qmetaobject.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp b/doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp index 82dc13b..35e6feb 100644 --- a/doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp +++ b/doc/src/snippets/code/src_corelib_kernel_qmetatype.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_kernel_qmimedata.cpp b/doc/src/snippets/code/src_corelib_kernel_qmimedata.cpp index 9ae9385..fcfc662 100644 --- a/doc/src/snippets/code/src_corelib_kernel_qmimedata.cpp +++ b/doc/src/snippets/code/src_corelib_kernel_qmimedata.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_kernel_qobject.cpp b/doc/src/snippets/code/src_corelib_kernel_qobject.cpp index 29dc20f..afb9460 100644 --- a/doc/src/snippets/code/src_corelib_kernel_qobject.cpp +++ b/doc/src/snippets/code/src_corelib_kernel_qobject.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_kernel_qsystemsemaphore.cpp b/doc/src/snippets/code/src_corelib_kernel_qsystemsemaphore.cpp index d38de46..1f5c5ac 100644 --- a/doc/src/snippets/code/src_corelib_kernel_qsystemsemaphore.cpp +++ b/doc/src/snippets/code/src_corelib_kernel_qsystemsemaphore.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_kernel_qtimer.cpp b/doc/src/snippets/code/src_corelib_kernel_qtimer.cpp index 359c1cc..ef06fd8 100644 --- a/doc/src/snippets/code/src_corelib_kernel_qtimer.cpp +++ b/doc/src/snippets/code/src_corelib_kernel_qtimer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp b/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp index 472c90e..a57d722 100644 --- a/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp +++ b/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_plugin_qlibrary.cpp b/doc/src/snippets/code/src_corelib_plugin_qlibrary.cpp index 1b63bf3..8943e92 100644 --- a/doc/src/snippets/code/src_corelib_plugin_qlibrary.cpp +++ b/doc/src/snippets/code/src_corelib_plugin_qlibrary.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_plugin_quuid.cpp b/doc/src/snippets/code/src_corelib_plugin_quuid.cpp index bf45727..88cdb54 100644 --- a/doc/src/snippets/code/src_corelib_plugin_quuid.cpp +++ b/doc/src/snippets/code/src_corelib_plugin_quuid.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_statemachine_qstatemachine.cpp b/doc/src/snippets/code/src_corelib_statemachine_qstatemachine.cpp index a77dd48..9909b1b 100644 --- a/doc/src/snippets/code/src_corelib_statemachine_qstatemachine.cpp +++ b/doc/src/snippets/code/src_corelib_statemachine_qstatemachine.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_thread_qatomic.cpp b/doc/src/snippets/code/src_corelib_thread_qatomic.cpp index 84a493a..a70c187 100644 --- a/doc/src/snippets/code/src_corelib_thread_qatomic.cpp +++ b/doc/src/snippets/code/src_corelib_thread_qatomic.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_thread_qmutex.cpp b/doc/src/snippets/code/src_corelib_thread_qmutex.cpp index 1b68efd..7800a4d 100644 --- a/doc/src/snippets/code/src_corelib_thread_qmutex.cpp +++ b/doc/src/snippets/code/src_corelib_thread_qmutex.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_thread_qmutexpool.cpp b/doc/src/snippets/code/src_corelib_thread_qmutexpool.cpp index d1d1a6f..5163fe5 100644 --- a/doc/src/snippets/code/src_corelib_thread_qmutexpool.cpp +++ b/doc/src/snippets/code/src_corelib_thread_qmutexpool.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp b/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp index 2e5d4e5..9b325a7 100644 --- a/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp +++ b/doc/src/snippets/code/src_corelib_thread_qreadwritelock.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_thread_qsemaphore.cpp b/doc/src/snippets/code/src_corelib_thread_qsemaphore.cpp index 7d45466..72a15de 100644 --- a/doc/src/snippets/code/src_corelib_thread_qsemaphore.cpp +++ b/doc/src/snippets/code/src_corelib_thread_qsemaphore.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_thread_qthread.cpp b/doc/src/snippets/code/src_corelib_thread_qthread.cpp index d58c9c3..2b2422f 100644 --- a/doc/src/snippets/code/src_corelib_thread_qthread.cpp +++ b/doc/src/snippets/code/src_corelib_thread_qthread.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp b/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp index d0302b1..49574cb 100644 --- a/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp +++ b/doc/src/snippets/code/src_corelib_thread_qwaitcondition_unix.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qbitarray.cpp b/doc/src/snippets/code/src_corelib_tools_qbitarray.cpp index a2ecbda..11621dc 100644 --- a/doc/src/snippets/code/src_corelib_tools_qbitarray.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qbitarray.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qbytearray.cpp b/doc/src/snippets/code/src_corelib_tools_qbytearray.cpp index eb1a6fc..4f3d8dd 100644 --- a/doc/src/snippets/code/src_corelib_tools_qbytearray.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qbytearray.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qdatetime.cpp b/doc/src/snippets/code/src_corelib_tools_qdatetime.cpp index 008d929..3c53394 100644 --- a/doc/src/snippets/code/src_corelib_tools_qdatetime.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qdatetime.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qeasingcurve.cpp b/doc/src/snippets/code/src_corelib_tools_qeasingcurve.cpp index 73979db..59ae1b5 100644 --- a/doc/src/snippets/code/src_corelib_tools_qeasingcurve.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qeasingcurve.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qhash.cpp b/doc/src/snippets/code/src_corelib_tools_qhash.cpp index af433de..a6bedb9 100644 --- a/doc/src/snippets/code/src_corelib_tools_qhash.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qhash.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qlinkedlist.cpp b/doc/src/snippets/code/src_corelib_tools_qlinkedlist.cpp index 6d4bdc6..2bfafc8 100644 --- a/doc/src/snippets/code/src_corelib_tools_qlinkedlist.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qlinkedlist.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qlistdata.cpp b/doc/src/snippets/code/src_corelib_tools_qlistdata.cpp index 59094ae..f580ba1 100644 --- a/doc/src/snippets/code/src_corelib_tools_qlistdata.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qlistdata.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qlocale.cpp b/doc/src/snippets/code/src_corelib_tools_qlocale.cpp index 80660f0..674b6f6 100644 --- a/doc/src/snippets/code/src_corelib_tools_qlocale.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qlocale.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qmap.cpp b/doc/src/snippets/code/src_corelib_tools_qmap.cpp index 91f4685..1371543 100644 --- a/doc/src/snippets/code/src_corelib_tools_qmap.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qmap.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qpoint.cpp b/doc/src/snippets/code/src_corelib_tools_qpoint.cpp index e643def..f5c6ec9 100644 --- a/doc/src/snippets/code/src_corelib_tools_qpoint.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qpoint.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qqueue.cpp b/doc/src/snippets/code/src_corelib_tools_qqueue.cpp index 2be3917..6b5509a 100644 --- a/doc/src/snippets/code/src_corelib_tools_qqueue.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qqueue.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qrect.cpp b/doc/src/snippets/code/src_corelib_tools_qrect.cpp index 15349ec..3a3d0de 100644 --- a/doc/src/snippets/code/src_corelib_tools_qrect.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qrect.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qregexp.cpp b/doc/src/snippets/code/src_corelib_tools_qregexp.cpp index d2b551b..ccb6382 100644 --- a/doc/src/snippets/code/src_corelib_tools_qregexp.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qregexp.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp b/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp index 0bd5fdf..be28d56 100644 --- a/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qscopedpointer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qsize.cpp b/doc/src/snippets/code/src_corelib_tools_qsize.cpp index 44ebd3c..701627e 100644 --- a/doc/src/snippets/code/src_corelib_tools_qsize.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qsize.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qstring.cpp b/doc/src/snippets/code/src_corelib_tools_qstring.cpp index d0d00f1..0cd1801 100644 --- a/doc/src/snippets/code/src_corelib_tools_qstring.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qstring.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qtimeline.cpp b/doc/src/snippets/code/src_corelib_tools_qtimeline.cpp index f44137a..3374995 100644 --- a/doc/src/snippets/code/src_corelib_tools_qtimeline.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qtimeline.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_tools_qvector.cpp b/doc/src/snippets/code/src_corelib_tools_qvector.cpp index b3bc848..fc46d91 100644 --- a/doc/src/snippets/code/src_corelib_tools_qvector.cpp +++ b/doc/src/snippets/code/src_corelib_tools_qvector.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_corelib_xml_qxmlstream.cpp b/doc/src/snippets/code/src_corelib_xml_qxmlstream.cpp index 97da6ca..fe08cea 100644 --- a/doc/src/snippets/code/src_corelib_xml_qxmlstream.cpp +++ b/doc/src/snippets/code/src_corelib_xml_qxmlstream.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_accessible_qaccessible.cpp b/doc/src/snippets/code/src_gui_accessible_qaccessible.cpp index 8434d81..6d22734 100644 --- a/doc/src/snippets/code/src_gui_accessible_qaccessible.cpp +++ b/doc/src/snippets/code/src_gui_accessible_qaccessible.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_dialogs_qabstractprintdialog.cpp b/doc/src/snippets/code/src_gui_dialogs_qabstractprintdialog.cpp index d1df8ad..bc5d296 100644 --- a/doc/src/snippets/code/src_gui_dialogs_qabstractprintdialog.cpp +++ b/doc/src/snippets/code/src_gui_dialogs_qabstractprintdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp b/doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp index 7772290..ef14632 100644 --- a/doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp +++ b/doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_dialogs_qfontdialog.cpp b/doc/src/snippets/code/src_gui_dialogs_qfontdialog.cpp index 6987421..ef906d7 100644 --- a/doc/src/snippets/code/src_gui_dialogs_qfontdialog.cpp +++ b/doc/src/snippets/code/src_gui_dialogs_qfontdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_dialogs_qmessagebox.cpp b/doc/src/snippets/code/src_gui_dialogs_qmessagebox.cpp index 8b4dfb2..7db6e26 100644 --- a/doc/src/snippets/code/src_gui_dialogs_qmessagebox.cpp +++ b/doc/src/snippets/code/src_gui_dialogs_qmessagebox.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_dialogs_qwizard.cpp b/doc/src/snippets/code/src_gui_dialogs_qwizard.cpp index f0e2b3b..0a8c033 100644 --- a/doc/src/snippets/code/src_gui_dialogs_qwizard.cpp +++ b/doc/src/snippets/code/src_gui_dialogs_qwizard.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp b/doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp index 5f221dd..1fa1717 100644 --- a/doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp +++ b/doc/src/snippets/code/src_gui_effects_qgraphicseffect.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_embedded_qcopchannel_qws.cpp b/doc/src/snippets/code/src_gui_embedded_qcopchannel_qws.cpp index 7e2b152..38d17e8 100644 --- a/doc/src/snippets/code/src_gui_embedded_qcopchannel_qws.cpp +++ b/doc/src/snippets/code/src_gui_embedded_qcopchannel_qws.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_embedded_qmouse_qws.cpp b/doc/src/snippets/code/src_gui_embedded_qmouse_qws.cpp index e86faaf..31db870 100644 --- a/doc/src/snippets/code/src_gui_embedded_qmouse_qws.cpp +++ b/doc/src/snippets/code/src_gui_embedded_qmouse_qws.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_embedded_qmousetslib_qws.cpp b/doc/src/snippets/code/src_gui_embedded_qmousetslib_qws.cpp index f475814..dc5a773 100644 --- a/doc/src/snippets/code/src_gui_embedded_qmousetslib_qws.cpp +++ b/doc/src/snippets/code/src_gui_embedded_qmousetslib_qws.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_embedded_qscreen_qws.cpp b/doc/src/snippets/code/src_gui_embedded_qscreen_qws.cpp index 7b67420..cb902e5 100644 --- a/doc/src/snippets/code/src_gui_embedded_qscreen_qws.cpp +++ b/doc/src/snippets/code/src_gui_embedded_qscreen_qws.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_embedded_qtransportauth_qws.cpp b/doc/src/snippets/code/src_gui_embedded_qtransportauth_qws.cpp index ec00f17..0d5294b 100644 --- a/doc/src/snippets/code/src_gui_embedded_qtransportauth_qws.cpp +++ b/doc/src/snippets/code/src_gui_embedded_qtransportauth_qws.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_embedded_qwindowsystem_qws.cpp b/doc/src/snippets/code/src_gui_embedded_qwindowsystem_qws.cpp index 20900fc..defa56a 100644 --- a/doc/src/snippets/code/src_gui_embedded_qwindowsystem_qws.cpp +++ b/doc/src/snippets/code/src_gui_embedded_qwindowsystem_qws.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsgridlayout.cpp b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsgridlayout.cpp index 877d028..fb4178b 100644 --- a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsgridlayout.cpp +++ b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsgridlayout.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp index 83301a1..c4cf674 100644 --- a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp +++ b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_graphicsview_qgraphicslinearlayout.cpp b/doc/src/snippets/code/src_gui_graphicsview_qgraphicslinearlayout.cpp index 64a4962..492827a 100644 --- a/doc/src/snippets/code/src_gui_graphicsview_qgraphicslinearlayout.cpp +++ b/doc/src/snippets/code/src_gui_graphicsview_qgraphicslinearlayout.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsproxywidget.cpp b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsproxywidget.cpp index acda469..470b150 100644 --- a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsproxywidget.cpp +++ b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsproxywidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsscene.cpp b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsscene.cpp index fbb49eb..383a8ef 100644 --- a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsscene.cpp +++ b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsscene.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_graphicsview_qgraphicssceneevent.cpp b/doc/src/snippets/code/src_gui_graphicsview_qgraphicssceneevent.cpp index ac75dc2..9ad042b 100644 --- a/doc/src/snippets/code/src_gui_graphicsview_qgraphicssceneevent.cpp +++ b/doc/src/snippets/code/src_gui_graphicsview_qgraphicssceneevent.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsview.cpp b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsview.cpp index ec8d17c..0fffc4b 100644 --- a/doc/src/snippets/code/src_gui_graphicsview_qgraphicsview.cpp +++ b/doc/src/snippets/code/src_gui_graphicsview_qgraphicsview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_graphicsview_qgraphicswidget.cpp b/doc/src/snippets/code/src_gui_graphicsview_qgraphicswidget.cpp index 2bfa3f8..aed1787 100644 --- a/doc/src/snippets/code/src_gui_graphicsview_qgraphicswidget.cpp +++ b/doc/src/snippets/code/src_gui_graphicsview_qgraphicswidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_image_qbitmap.cpp b/doc/src/snippets/code/src_gui_image_qbitmap.cpp index 9bda7f9..7b38843 100644 --- a/doc/src/snippets/code/src_gui_image_qbitmap.cpp +++ b/doc/src/snippets/code/src_gui_image_qbitmap.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_image_qicon.cpp b/doc/src/snippets/code/src_gui_image_qicon.cpp index 9633ef1..cf6469e 100644 --- a/doc/src/snippets/code/src_gui_image_qicon.cpp +++ b/doc/src/snippets/code/src_gui_image_qicon.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_image_qimage.cpp b/doc/src/snippets/code/src_gui_image_qimage.cpp index ccf17ac..cbfdf14 100644 --- a/doc/src/snippets/code/src_gui_image_qimage.cpp +++ b/doc/src/snippets/code/src_gui_image_qimage.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_image_qimagereader.cpp b/doc/src/snippets/code/src_gui_image_qimagereader.cpp index a66d5e7..f4c64c1 100644 --- a/doc/src/snippets/code/src_gui_image_qimagereader.cpp +++ b/doc/src/snippets/code/src_gui_image_qimagereader.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_image_qimagewriter.cpp b/doc/src/snippets/code/src_gui_image_qimagewriter.cpp index 444cdf5..e44442b 100644 --- a/doc/src/snippets/code/src_gui_image_qimagewriter.cpp +++ b/doc/src/snippets/code/src_gui_image_qimagewriter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_image_qmovie.cpp b/doc/src/snippets/code/src_gui_image_qmovie.cpp index 76e2b59..4efbac5 100644 --- a/doc/src/snippets/code/src_gui_image_qmovie.cpp +++ b/doc/src/snippets/code/src_gui_image_qmovie.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_image_qpixmap.cpp b/doc/src/snippets/code/src_gui_image_qpixmap.cpp index 5916303..11e0212 100644 --- a/doc/src/snippets/code/src_gui_image_qpixmap.cpp +++ b/doc/src/snippets/code/src_gui_image_qpixmap.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_image_qpixmapcache.cpp b/doc/src/snippets/code/src_gui_image_qpixmapcache.cpp index 0c736d7..08973b8 100644 --- a/doc/src/snippets/code/src_gui_image_qpixmapcache.cpp +++ b/doc/src/snippets/code/src_gui_image_qpixmapcache.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_image_qpixmapfilter.cpp b/doc/src/snippets/code/src_gui_image_qpixmapfilter.cpp index 7812bc8..2d9c78f 100644 --- a/doc/src/snippets/code/src_gui_image_qpixmapfilter.cpp +++ b/doc/src/snippets/code/src_gui_image_qpixmapfilter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_itemviews_qabstractitemview.cpp b/doc/src/snippets/code/src_gui_itemviews_qabstractitemview.cpp index d316e03..75ada3a 100644 --- a/doc/src/snippets/code/src_gui_itemviews_qabstractitemview.cpp +++ b/doc/src/snippets/code/src_gui_itemviews_qabstractitemview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_itemviews_qdatawidgetmapper.cpp b/doc/src/snippets/code/src_gui_itemviews_qdatawidgetmapper.cpp index 9d6ba61..a3b90e2 100644 --- a/doc/src/snippets/code/src_gui_itemviews_qdatawidgetmapper.cpp +++ b/doc/src/snippets/code/src_gui_itemviews_qdatawidgetmapper.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_itemviews_qitemeditorfactory.cpp b/doc/src/snippets/code/src_gui_itemviews_qitemeditorfactory.cpp index e316f83..bef6711 100644 --- a/doc/src/snippets/code/src_gui_itemviews_qitemeditorfactory.cpp +++ b/doc/src/snippets/code/src_gui_itemviews_qitemeditorfactory.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_itemviews_qitemselectionmodel.cpp b/doc/src/snippets/code/src_gui_itemviews_qitemselectionmodel.cpp index ea1a109..1277506 100644 --- a/doc/src/snippets/code/src_gui_itemviews_qitemselectionmodel.cpp +++ b/doc/src/snippets/code/src_gui_itemviews_qitemselectionmodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_itemviews_qstandarditemmodel.cpp b/doc/src/snippets/code/src_gui_itemviews_qstandarditemmodel.cpp index 3a93bbb..6005179 100644 --- a/doc/src/snippets/code/src_gui_itemviews_qstandarditemmodel.cpp +++ b/doc/src/snippets/code/src_gui_itemviews_qstandarditemmodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_itemviews_qtablewidget.cpp b/doc/src/snippets/code/src_gui_itemviews_qtablewidget.cpp index de219cd..4035ca8 100644 --- a/doc/src/snippets/code/src_gui_itemviews_qtablewidget.cpp +++ b/doc/src/snippets/code/src_gui_itemviews_qtablewidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_itemviews_qtreewidget.cpp b/doc/src/snippets/code/src_gui_itemviews_qtreewidget.cpp index 375f981..4f5bc37 100644 --- a/doc/src/snippets/code/src_gui_itemviews_qtreewidget.cpp +++ b/doc/src/snippets/code/src_gui_itemviews_qtreewidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qaction.cpp b/doc/src/snippets/code/src_gui_kernel_qaction.cpp index d05dfd7..bfc613b 100644 --- a/doc/src/snippets/code/src_gui_kernel_qaction.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qaction.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qapplication.cpp b/doc/src/snippets/code/src_gui_kernel_qapplication.cpp index 766b249..bb0cdde 100644 --- a/doc/src/snippets/code/src_gui_kernel_qapplication.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qapplication.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qapplication_x11.cpp b/doc/src/snippets/code/src_gui_kernel_qapplication_x11.cpp index 68e897f..a73f65d 100644 --- a/doc/src/snippets/code/src_gui_kernel_qapplication_x11.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qapplication_x11.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qclipboard.cpp b/doc/src/snippets/code/src_gui_kernel_qclipboard.cpp index 4b6cda6..dd052d7 100644 --- a/doc/src/snippets/code/src_gui_kernel_qclipboard.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qclipboard.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qevent.cpp b/doc/src/snippets/code/src_gui_kernel_qevent.cpp index 87d0fa0..d0627b2 100644 --- a/doc/src/snippets/code/src_gui_kernel_qevent.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qevent.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qformlayout.cpp b/doc/src/snippets/code/src_gui_kernel_qformlayout.cpp index a4de94e..94e6b1b 100644 --- a/doc/src/snippets/code/src_gui_kernel_qformlayout.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qformlayout.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp b/doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp index 59bb6d1..1672dc7 100644 --- a/doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qkeysequence.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qlayout.cpp b/doc/src/snippets/code/src_gui_kernel_qlayout.cpp index 2a784dc..35da7cd 100644 --- a/doc/src/snippets/code/src_gui_kernel_qlayout.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qlayout.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qlayoutitem.cpp b/doc/src/snippets/code/src_gui_kernel_qlayoutitem.cpp index 2cd5a3d..306b822 100644 --- a/doc/src/snippets/code/src_gui_kernel_qlayoutitem.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qlayoutitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qshortcut.cpp b/doc/src/snippets/code/src_gui_kernel_qshortcut.cpp index e4705e8..16bdda8 100644 --- a/doc/src/snippets/code/src_gui_kernel_qshortcut.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qshortcut.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qshortcutmap.cpp b/doc/src/snippets/code/src_gui_kernel_qshortcutmap.cpp index f321412..db8edb4 100644 --- a/doc/src/snippets/code/src_gui_kernel_qshortcutmap.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qshortcutmap.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qsound.cpp b/doc/src/snippets/code/src_gui_kernel_qsound.cpp index 1f5f9a6..ebaeead 100644 --- a/doc/src/snippets/code/src_gui_kernel_qsound.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qsound.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_kernel_qwidget.cpp b/doc/src/snippets/code/src_gui_kernel_qwidget.cpp index dabc8f8..d142d56 100644 --- a/doc/src/snippets/code/src_gui_kernel_qwidget.cpp +++ b/doc/src/snippets/code/src_gui_kernel_qwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_painting_qbrush.cpp b/doc/src/snippets/code/src_gui_painting_qbrush.cpp index ea05e44..c2ce61e 100644 --- a/doc/src/snippets/code/src_gui_painting_qbrush.cpp +++ b/doc/src/snippets/code/src_gui_painting_qbrush.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_painting_qcolor.cpp b/doc/src/snippets/code/src_gui_painting_qcolor.cpp index 9eefc4f..31434f2 100644 --- a/doc/src/snippets/code/src_gui_painting_qcolor.cpp +++ b/doc/src/snippets/code/src_gui_painting_qcolor.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_painting_qdrawutil.cpp b/doc/src/snippets/code/src_gui_painting_qdrawutil.cpp index e110d73..6822d81 100644 --- a/doc/src/snippets/code/src_gui_painting_qdrawutil.cpp +++ b/doc/src/snippets/code/src_gui_painting_qdrawutil.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_painting_qmatrix.cpp b/doc/src/snippets/code/src_gui_painting_qmatrix.cpp index fd143eb..63dfd6d 100644 --- a/doc/src/snippets/code/src_gui_painting_qmatrix.cpp +++ b/doc/src/snippets/code/src_gui_painting_qmatrix.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_painting_qpainter.cpp b/doc/src/snippets/code/src_gui_painting_qpainter.cpp index 639d867..da566ed 100644 --- a/doc/src/snippets/code/src_gui_painting_qpainter.cpp +++ b/doc/src/snippets/code/src_gui_painting_qpainter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_painting_qpainterpath.cpp b/doc/src/snippets/code/src_gui_painting_qpainterpath.cpp index ef34861..b2a9dcf 100644 --- a/doc/src/snippets/code/src_gui_painting_qpainterpath.cpp +++ b/doc/src/snippets/code/src_gui_painting_qpainterpath.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_painting_qpen.cpp b/doc/src/snippets/code/src_gui_painting_qpen.cpp index f35c13d..6973e0c 100644 --- a/doc/src/snippets/code/src_gui_painting_qpen.cpp +++ b/doc/src/snippets/code/src_gui_painting_qpen.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_painting_qregion.cpp b/doc/src/snippets/code/src_gui_painting_qregion.cpp index c7da238..660138d 100644 --- a/doc/src/snippets/code/src_gui_painting_qregion.cpp +++ b/doc/src/snippets/code/src_gui_painting_qregion.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_painting_qregion_unix.cpp b/doc/src/snippets/code/src_gui_painting_qregion_unix.cpp index 9cd936a..2eddeea 100644 --- a/doc/src/snippets/code/src_gui_painting_qregion_unix.cpp +++ b/doc/src/snippets/code/src_gui_painting_qregion_unix.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_painting_qtransform.cpp b/doc/src/snippets/code/src_gui_painting_qtransform.cpp index 40cf761..24b1a35 100644 --- a/doc/src/snippets/code/src_gui_painting_qtransform.cpp +++ b/doc/src/snippets/code/src_gui_painting_qtransform.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_qproxystyle.cpp b/doc/src/snippets/code/src_gui_qproxystyle.cpp index 31d8c59..b4cd0b6 100644 --- a/doc/src/snippets/code/src_gui_qproxystyle.cpp +++ b/doc/src/snippets/code/src_gui_qproxystyle.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_styles_qstyle.cpp b/doc/src/snippets/code/src_gui_styles_qstyle.cpp index 9e4cb61..40fb230 100644 --- a/doc/src/snippets/code/src_gui_styles_qstyle.cpp +++ b/doc/src/snippets/code/src_gui_styles_qstyle.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_styles_qstyleoption.cpp b/doc/src/snippets/code/src_gui_styles_qstyleoption.cpp index e632b34..ba65d3f 100644 --- a/doc/src/snippets/code/src_gui_styles_qstyleoption.cpp +++ b/doc/src/snippets/code/src_gui_styles_qstyleoption.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_text_qfont.cpp b/doc/src/snippets/code/src_gui_text_qfont.cpp index ec6195b..5694d6a 100644 --- a/doc/src/snippets/code/src_gui_text_qfont.cpp +++ b/doc/src/snippets/code/src_gui_text_qfont.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_text_qfontmetrics.cpp b/doc/src/snippets/code/src_gui_text_qfontmetrics.cpp index 09fc22c..3be333d 100644 --- a/doc/src/snippets/code/src_gui_text_qfontmetrics.cpp +++ b/doc/src/snippets/code/src_gui_text_qfontmetrics.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp b/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp index 04e0c90..a273f33 100644 --- a/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp +++ b/doc/src/snippets/code/src_gui_text_qsyntaxhighlighter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_text_qtextcursor.cpp b/doc/src/snippets/code/src_gui_text_qtextcursor.cpp index 723c5e7..9e99c4b 100644 --- a/doc/src/snippets/code/src_gui_text_qtextcursor.cpp +++ b/doc/src/snippets/code/src_gui_text_qtextcursor.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_text_qtextdocument.cpp b/doc/src/snippets/code/src_gui_text_qtextdocument.cpp index 2d041b7..775cc0f 100644 --- a/doc/src/snippets/code/src_gui_text_qtextdocument.cpp +++ b/doc/src/snippets/code/src_gui_text_qtextdocument.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_text_qtextlayout.cpp b/doc/src/snippets/code/src_gui_text_qtextlayout.cpp index dd08d68..feb5219 100644 --- a/doc/src/snippets/code/src_gui_text_qtextlayout.cpp +++ b/doc/src/snippets/code/src_gui_text_qtextlayout.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_util_qcompleter.cpp b/doc/src/snippets/code/src_gui_util_qcompleter.cpp index 4420e90..bfc1b54 100644 --- a/doc/src/snippets/code/src_gui_util_qcompleter.cpp +++ b/doc/src/snippets/code/src_gui_util_qcompleter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_util_qdesktopservices.cpp b/doc/src/snippets/code/src_gui_util_qdesktopservices.cpp index 6ea3f9b..c878b71 100644 --- a/doc/src/snippets/code/src_gui_util_qdesktopservices.cpp +++ b/doc/src/snippets/code/src_gui_util_qdesktopservices.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_util_qundostack.cpp b/doc/src/snippets/code/src_gui_util_qundostack.cpp index f8c5f76..2eccd71 100644 --- a/doc/src/snippets/code/src_gui_util_qundostack.cpp +++ b/doc/src/snippets/code/src_gui_util_qundostack.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qabstractbutton.cpp b/doc/src/snippets/code/src_gui_widgets_qabstractbutton.cpp index 2d306e6..3bfe1d2 100644 --- a/doc/src/snippets/code/src_gui_widgets_qabstractbutton.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qabstractbutton.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qabstractspinbox.cpp b/doc/src/snippets/code/src_gui_widgets_qabstractspinbox.cpp index a2cc06d..3a73308 100644 --- a/doc/src/snippets/code/src_gui_widgets_qabstractspinbox.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qabstractspinbox.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qcalendarwidget.cpp b/doc/src/snippets/code/src_gui_widgets_qcalendarwidget.cpp index e5d8d3a..336a406 100644 --- a/doc/src/snippets/code/src_gui_widgets_qcalendarwidget.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qcalendarwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qcheckbox.cpp b/doc/src/snippets/code/src_gui_widgets_qcheckbox.cpp index 892a8b7..785d0cf 100644 --- a/doc/src/snippets/code/src_gui_widgets_qcheckbox.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qcheckbox.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qdatetimeedit.cpp b/doc/src/snippets/code/src_gui_widgets_qdatetimeedit.cpp index d803879..73253f7 100644 --- a/doc/src/snippets/code/src_gui_widgets_qdatetimeedit.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qdatetimeedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qdockwidget.cpp b/doc/src/snippets/code/src_gui_widgets_qdockwidget.cpp index 5e5884b..fd1d817 100644 --- a/doc/src/snippets/code/src_gui_widgets_qdockwidget.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qdockwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qframe.cpp b/doc/src/snippets/code/src_gui_widgets_qframe.cpp index ec2325d..5fb45c1 100644 --- a/doc/src/snippets/code/src_gui_widgets_qframe.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qframe.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qgroupbox.cpp b/doc/src/snippets/code/src_gui_widgets_qgroupbox.cpp index e09c14b..0f4a5b8 100644 --- a/doc/src/snippets/code/src_gui_widgets_qgroupbox.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qgroupbox.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qlabel.cpp b/doc/src/snippets/code/src_gui_widgets_qlabel.cpp index f31851f..cda00fa 100644 --- a/doc/src/snippets/code/src_gui_widgets_qlabel.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qlabel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qlineedit.cpp b/doc/src/snippets/code/src_gui_widgets_qlineedit.cpp index c35c37f..7b9e183 100644 --- a/doc/src/snippets/code/src_gui_widgets_qlineedit.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qlineedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qmainwindow.cpp b/doc/src/snippets/code/src_gui_widgets_qmainwindow.cpp index fef0e31..d465c70 100644 --- a/doc/src/snippets/code/src_gui_widgets_qmainwindow.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qmainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qmenu.cpp b/doc/src/snippets/code/src_gui_widgets_qmenu.cpp index 34e3f52..f2dd1cc 100644 --- a/doc/src/snippets/code/src_gui_widgets_qmenu.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qmenu.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qmenubar.cpp b/doc/src/snippets/code/src_gui_widgets_qmenubar.cpp index 88b2029..98eafb4 100644 --- a/doc/src/snippets/code/src_gui_widgets_qmenubar.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qmenubar.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qplaintextedit.cpp b/doc/src/snippets/code/src_gui_widgets_qplaintextedit.cpp index afe22fb..4b0219d 100644 --- a/doc/src/snippets/code/src_gui_widgets_qplaintextedit.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qplaintextedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qpushbutton.cpp b/doc/src/snippets/code/src_gui_widgets_qpushbutton.cpp index 7844d70..099d087 100644 --- a/doc/src/snippets/code/src_gui_widgets_qpushbutton.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qpushbutton.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qradiobutton.cpp b/doc/src/snippets/code/src_gui_widgets_qradiobutton.cpp index 1ba318c..3dc031c 100644 --- a/doc/src/snippets/code/src_gui_widgets_qradiobutton.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qradiobutton.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qrubberband.cpp b/doc/src/snippets/code/src_gui_widgets_qrubberband.cpp index 454c6e5..3289344 100644 --- a/doc/src/snippets/code/src_gui_widgets_qrubberband.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qrubberband.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qscrollarea.cpp b/doc/src/snippets/code/src_gui_widgets_qscrollarea.cpp index 713942f..64f8d29 100644 --- a/doc/src/snippets/code/src_gui_widgets_qscrollarea.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qscrollarea.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qspinbox.cpp b/doc/src/snippets/code/src_gui_widgets_qspinbox.cpp index 637d4f4..d4022d7 100644 --- a/doc/src/snippets/code/src_gui_widgets_qspinbox.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qspinbox.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qsplashscreen.cpp b/doc/src/snippets/code/src_gui_widgets_qsplashscreen.cpp index 8496347..c8ee298 100644 --- a/doc/src/snippets/code/src_gui_widgets_qsplashscreen.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qsplashscreen.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qsplitter.cpp b/doc/src/snippets/code/src_gui_widgets_qsplitter.cpp index be6ae05..05f907a 100644 --- a/doc/src/snippets/code/src_gui_widgets_qsplitter.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qsplitter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qstatusbar.cpp b/doc/src/snippets/code/src_gui_widgets_qstatusbar.cpp index b7fc818..12e962c 100644 --- a/doc/src/snippets/code/src_gui_widgets_qstatusbar.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qstatusbar.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qtextbrowser.cpp b/doc/src/snippets/code/src_gui_widgets_qtextbrowser.cpp index d76e4d1..8ad9deb 100644 --- a/doc/src/snippets/code/src_gui_widgets_qtextbrowser.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qtextbrowser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qtextedit.cpp b/doc/src/snippets/code/src_gui_widgets_qtextedit.cpp index 43e6ee2..5ee24a0 100644 --- a/doc/src/snippets/code/src_gui_widgets_qtextedit.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qtextedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qvalidator.cpp b/doc/src/snippets/code/src_gui_widgets_qvalidator.cpp index a8215c9..4a104dd 100644 --- a/doc/src/snippets/code/src_gui_widgets_qvalidator.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qvalidator.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_gui_widgets_qworkspace.cpp b/doc/src/snippets/code/src_gui_widgets_qworkspace.cpp index 1ff4fc8..fd1a43b 100644 --- a/doc/src/snippets/code/src_gui_widgets_qworkspace.cpp +++ b/doc/src/snippets/code/src_gui_widgets_qworkspace.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_access_qftp.cpp b/doc/src/snippets/code/src_network_access_qftp.cpp index 3936948..621d10d 100644 --- a/doc/src/snippets/code/src_network_access_qftp.cpp +++ b/doc/src/snippets/code/src_network_access_qftp.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_access_qhttp.cpp b/doc/src/snippets/code/src_network_access_qhttp.cpp index 5c32b45..374f1f2 100644 --- a/doc/src/snippets/code/src_network_access_qhttp.cpp +++ b/doc/src/snippets/code/src_network_access_qhttp.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_access_qnetworkaccessmanager.cpp b/doc/src/snippets/code/src_network_access_qnetworkaccessmanager.cpp index 6bdcc6f..327d58f 100644 --- a/doc/src/snippets/code/src_network_access_qnetworkaccessmanager.cpp +++ b/doc/src/snippets/code/src_network_access_qnetworkaccessmanager.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_access_qnetworkdiskcache.cpp b/doc/src/snippets/code/src_network_access_qnetworkdiskcache.cpp index b4daa25..8d775bb 100644 --- a/doc/src/snippets/code/src_network_access_qnetworkdiskcache.cpp +++ b/doc/src/snippets/code/src_network_access_qnetworkdiskcache.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_access_qnetworkreply.cpp b/doc/src/snippets/code/src_network_access_qnetworkreply.cpp index c08506f..01f66bc 100644 --- a/doc/src/snippets/code/src_network_access_qnetworkreply.cpp +++ b/doc/src/snippets/code/src_network_access_qnetworkreply.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_access_qnetworkrequest.cpp b/doc/src/snippets/code/src_network_access_qnetworkrequest.cpp index 605db7e..685eb0c 100644 --- a/doc/src/snippets/code/src_network_access_qnetworkrequest.cpp +++ b/doc/src/snippets/code/src_network_access_qnetworkrequest.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_bearer_qnetworkconfigmanager.cpp b/doc/src/snippets/code/src_network_bearer_qnetworkconfigmanager.cpp index 4989e34..af1a3e8 100644 --- a/doc/src/snippets/code/src_network_bearer_qnetworkconfigmanager.cpp +++ b/doc/src/snippets/code/src_network_bearer_qnetworkconfigmanager.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_kernel_qhostaddress.cpp b/doc/src/snippets/code/src_network_kernel_qhostaddress.cpp index 9e2db15..bd20386 100644 --- a/doc/src/snippets/code/src_network_kernel_qhostaddress.cpp +++ b/doc/src/snippets/code/src_network_kernel_qhostaddress.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_kernel_qhostinfo.cpp b/doc/src/snippets/code/src_network_kernel_qhostinfo.cpp index 99deb20..97d58ef 100644 --- a/doc/src/snippets/code/src_network_kernel_qhostinfo.cpp +++ b/doc/src/snippets/code/src_network_kernel_qhostinfo.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_kernel_qnetworkproxy.cpp b/doc/src/snippets/code/src_network_kernel_qnetworkproxy.cpp index 6071c73..393674c 100644 --- a/doc/src/snippets/code/src_network_kernel_qnetworkproxy.cpp +++ b/doc/src/snippets/code/src_network_kernel_qnetworkproxy.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_socket_qabstractsocket.cpp b/doc/src/snippets/code/src_network_socket_qabstractsocket.cpp index 691a99e..8021b80 100644 --- a/doc/src/snippets/code/src_network_socket_qabstractsocket.cpp +++ b/doc/src/snippets/code/src_network_socket_qabstractsocket.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_socket_qlocalsocket_unix.cpp b/doc/src/snippets/code/src_network_socket_qlocalsocket_unix.cpp index afdf46c..9a6e5c2 100644 --- a/doc/src/snippets/code/src_network_socket_qlocalsocket_unix.cpp +++ b/doc/src/snippets/code/src_network_socket_qlocalsocket_unix.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_socket_qnativesocketengine.cpp b/doc/src/snippets/code/src_network_socket_qnativesocketengine.cpp index 1b6d32c..85cf4d7 100644 --- a/doc/src/snippets/code/src_network_socket_qnativesocketengine.cpp +++ b/doc/src/snippets/code/src_network_socket_qnativesocketengine.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_socket_qtcpserver.cpp b/doc/src/snippets/code/src_network_socket_qtcpserver.cpp index 27cfc89..6dca8b6 100644 --- a/doc/src/snippets/code/src_network_socket_qtcpserver.cpp +++ b/doc/src/snippets/code/src_network_socket_qtcpserver.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_socket_qudpsocket.cpp b/doc/src/snippets/code/src_network_socket_qudpsocket.cpp index a4d3037..47f00b6 100644 --- a/doc/src/snippets/code/src_network_socket_qudpsocket.cpp +++ b/doc/src/snippets/code/src_network_socket_qudpsocket.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_ssl_qsslcertificate.cpp b/doc/src/snippets/code/src_network_ssl_qsslcertificate.cpp index 937dbb9..679f41e 100644 --- a/doc/src/snippets/code/src_network_ssl_qsslcertificate.cpp +++ b/doc/src/snippets/code/src_network_ssl_qsslcertificate.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_ssl_qsslconfiguration.cpp b/doc/src/snippets/code/src_network_ssl_qsslconfiguration.cpp index cb0d1b9..7e078d3 100644 --- a/doc/src/snippets/code/src_network_ssl_qsslconfiguration.cpp +++ b/doc/src/snippets/code/src_network_ssl_qsslconfiguration.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_network_ssl_qsslsocket.cpp b/doc/src/snippets/code/src_network_ssl_qsslsocket.cpp index e120c70..d415bae 100644 --- a/doc/src/snippets/code/src_network_ssl_qsslsocket.cpp +++ b/doc/src/snippets/code/src_network_ssl_qsslsocket.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_opengl_qgl.cpp b/doc/src/snippets/code/src_opengl_qgl.cpp index 0663429..6ef049a 100644 --- a/doc/src/snippets/code/src_opengl_qgl.cpp +++ b/doc/src/snippets/code/src_opengl_qgl.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_opengl_qglcolormap.cpp b/doc/src/snippets/code/src_opengl_qglcolormap.cpp index 4847105..3bd780b 100644 --- a/doc/src/snippets/code/src_opengl_qglcolormap.cpp +++ b/doc/src/snippets/code/src_opengl_qglcolormap.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_opengl_qglpixelbuffer.cpp b/doc/src/snippets/code/src_opengl_qglpixelbuffer.cpp index 790a16e..6825ebf 100644 --- a/doc/src/snippets/code/src_opengl_qglpixelbuffer.cpp +++ b/doc/src/snippets/code/src_opengl_qglpixelbuffer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_opengl_qglshaderprogram.cpp b/doc/src/snippets/code/src_opengl_qglshaderprogram.cpp index e57c824..aa5225a 100644 --- a/doc/src/snippets/code/src_opengl_qglshaderprogram.cpp +++ b/doc/src/snippets/code/src_opengl_qglshaderprogram.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qdbus_qdbusabstractinterface.cpp b/doc/src/snippets/code/src_qdbus_qdbusabstractinterface.cpp index 0aaf678..ba1b902 100644 --- a/doc/src/snippets/code/src_qdbus_qdbusabstractinterface.cpp +++ b/doc/src/snippets/code/src_qdbus_qdbusabstractinterface.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qdbus_qdbusargument.cpp b/doc/src/snippets/code/src_qdbus_qdbusargument.cpp index 7716301..125dc33 100644 --- a/doc/src/snippets/code/src_qdbus_qdbusargument.cpp +++ b/doc/src/snippets/code/src_qdbus_qdbusargument.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qdbus_qdbuscontext.cpp b/doc/src/snippets/code/src_qdbus_qdbuscontext.cpp index 1fd7abd..312b8bb 100644 --- a/doc/src/snippets/code/src_qdbus_qdbuscontext.cpp +++ b/doc/src/snippets/code/src_qdbus_qdbuscontext.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qdbus_qdbusinterface.cpp b/doc/src/snippets/code/src_qdbus_qdbusinterface.cpp index 384c3b0..425a736 100644 --- a/doc/src/snippets/code/src_qdbus_qdbusinterface.cpp +++ b/doc/src/snippets/code/src_qdbus_qdbusinterface.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qdbus_qdbusmetatype.cpp b/doc/src/snippets/code/src_qdbus_qdbusmetatype.cpp index 545d0e1..3774c10 100644 --- a/doc/src/snippets/code/src_qdbus_qdbusmetatype.cpp +++ b/doc/src/snippets/code/src_qdbus_qdbusmetatype.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qdbus_qdbusreply.cpp b/doc/src/snippets/code/src_qdbus_qdbusreply.cpp index a0b27e0..2e6b33a 100644 --- a/doc/src/snippets/code/src_qdbus_qdbusreply.cpp +++ b/doc/src/snippets/code/src_qdbus_qdbusreply.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_canvas_q3canvas.cpp b/doc/src/snippets/code/src_qt3support_canvas_q3canvas.cpp index 17af998..5476f0a 100644 --- a/doc/src/snippets/code/src_qt3support_canvas_q3canvas.cpp +++ b/doc/src/snippets/code/src_qt3support_canvas_q3canvas.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_dialogs_q3filedialog.cpp b/doc/src/snippets/code/src_qt3support_dialogs_q3filedialog.cpp index 329ee53..80b8eac 100644 --- a/doc/src/snippets/code/src_qt3support_dialogs_q3filedialog.cpp +++ b/doc/src/snippets/code/src_qt3support_dialogs_q3filedialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp b/doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp index b14f98d..c7022a0 100644 --- a/doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp +++ b/doc/src/snippets/code/src_qt3support_dialogs_q3progressdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_itemviews_q3iconview.cpp b/doc/src/snippets/code/src_qt3support_itemviews_q3iconview.cpp index f0d1ad5..d4e1cb1 100644 --- a/doc/src/snippets/code/src_qt3support_itemviews_q3iconview.cpp +++ b/doc/src/snippets/code/src_qt3support_itemviews_q3iconview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_itemviews_q3listview.cpp b/doc/src/snippets/code/src_qt3support_itemviews_q3listview.cpp index 33e1a37..07559cc 100644 --- a/doc/src/snippets/code/src_qt3support_itemviews_q3listview.cpp +++ b/doc/src/snippets/code/src_qt3support_itemviews_q3listview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_itemviews_q3table.cpp b/doc/src/snippets/code/src_qt3support_itemviews_q3table.cpp index 8d9d39c..1c7bba0 100644 --- a/doc/src/snippets/code/src_qt3support_itemviews_q3table.cpp +++ b/doc/src/snippets/code/src_qt3support_itemviews_q3table.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_network_q3dns.cpp b/doc/src/snippets/code/src_qt3support_network_q3dns.cpp index f141fb6..6464a1d 100644 --- a/doc/src/snippets/code/src_qt3support_network_q3dns.cpp +++ b/doc/src/snippets/code/src_qt3support_network_q3dns.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_network_q3ftp.cpp b/doc/src/snippets/code/src_qt3support_network_q3ftp.cpp index f8be277..552ffcc 100644 --- a/doc/src/snippets/code/src_qt3support_network_q3ftp.cpp +++ b/doc/src/snippets/code/src_qt3support_network_q3ftp.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_network_q3http.cpp b/doc/src/snippets/code/src_qt3support_network_q3http.cpp index 62eab46..0ddc18f 100644 --- a/doc/src/snippets/code/src_qt3support_network_q3http.cpp +++ b/doc/src/snippets/code/src_qt3support_network_q3http.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_network_q3localfs.cpp b/doc/src/snippets/code/src_qt3support_network_q3localfs.cpp index 6fff494..ba9e0f4 100644 --- a/doc/src/snippets/code/src_qt3support_network_q3localfs.cpp +++ b/doc/src/snippets/code/src_qt3support_network_q3localfs.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_network_q3networkprotocol.cpp b/doc/src/snippets/code/src_qt3support_network_q3networkprotocol.cpp index 699070b..219a75c 100644 --- a/doc/src/snippets/code/src_qt3support_network_q3networkprotocol.cpp +++ b/doc/src/snippets/code/src_qt3support_network_q3networkprotocol.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_network_q3socket.cpp b/doc/src/snippets/code/src_qt3support_network_q3socket.cpp index 0d405ce..4fdda94 100644 --- a/doc/src/snippets/code/src_qt3support_network_q3socket.cpp +++ b/doc/src/snippets/code/src_qt3support_network_q3socket.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_network_q3socketdevice.cpp b/doc/src/snippets/code/src_qt3support_network_q3socketdevice.cpp index 3660d16..7f2c905 100644 --- a/doc/src/snippets/code/src_qt3support_network_q3socketdevice.cpp +++ b/doc/src/snippets/code/src_qt3support_network_q3socketdevice.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_network_q3url.cpp b/doc/src/snippets/code/src_qt3support_network_q3url.cpp index e360c2a..6365fe5 100644 --- a/doc/src/snippets/code/src_qt3support_network_q3url.cpp +++ b/doc/src/snippets/code/src_qt3support_network_q3url.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_network_q3urloperator.cpp b/doc/src/snippets/code/src_qt3support_network_q3urloperator.cpp index 6681a05..12d40a6 100644 --- a/doc/src/snippets/code/src_qt3support_network_q3urloperator.cpp +++ b/doc/src/snippets/code/src_qt3support_network_q3urloperator.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_other_q3accel.cpp b/doc/src/snippets/code/src_qt3support_other_q3accel.cpp index c60106f..4bbd401 100644 --- a/doc/src/snippets/code/src_qt3support_other_q3accel.cpp +++ b/doc/src/snippets/code/src_qt3support_other_q3accel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_other_q3mimefactory.cpp b/doc/src/snippets/code/src_qt3support_other_q3mimefactory.cpp index 6d986b2..e2505f4 100644 --- a/doc/src/snippets/code/src_qt3support_other_q3mimefactory.cpp +++ b/doc/src/snippets/code/src_qt3support_other_q3mimefactory.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_other_q3process.cpp b/doc/src/snippets/code/src_qt3support_other_q3process.cpp index 5a7fbf6..fece6e3 100644 --- a/doc/src/snippets/code/src_qt3support_other_q3process.cpp +++ b/doc/src/snippets/code/src_qt3support_other_q3process.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_other_q3process_unix.cpp b/doc/src/snippets/code/src_qt3support_other_q3process_unix.cpp index 10a9e67..cc5e977 100644 --- a/doc/src/snippets/code/src_qt3support_other_q3process_unix.cpp +++ b/doc/src/snippets/code/src_qt3support_other_q3process_unix.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_painting_q3paintdevicemetrics.cpp b/doc/src/snippets/code/src_qt3support_painting_q3paintdevicemetrics.cpp index bd7c25b..f89fb92 100644 --- a/doc/src/snippets/code/src_qt3support_painting_q3paintdevicemetrics.cpp +++ b/doc/src/snippets/code/src_qt3support_painting_q3paintdevicemetrics.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_painting_q3painter.cpp b/doc/src/snippets/code/src_qt3support_painting_q3painter.cpp index c000c2d..352719e 100644 --- a/doc/src/snippets/code/src_qt3support_painting_q3painter.cpp +++ b/doc/src/snippets/code/src_qt3support_painting_q3painter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_painting_q3picture.cpp b/doc/src/snippets/code/src_qt3support_painting_q3picture.cpp index 1652ed4..8164a77 100644 --- a/doc/src/snippets/code/src_qt3support_painting_q3picture.cpp +++ b/doc/src/snippets/code/src_qt3support_painting_q3picture.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_sql_q3databrowser.cpp b/doc/src/snippets/code/src_qt3support_sql_q3databrowser.cpp index 58a429d..52557d4 100644 --- a/doc/src/snippets/code/src_qt3support_sql_q3databrowser.cpp +++ b/doc/src/snippets/code/src_qt3support_sql_q3databrowser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_sql_q3datatable.cpp b/doc/src/snippets/code/src_qt3support_sql_q3datatable.cpp index 804f78c..117fe27 100644 --- a/doc/src/snippets/code/src_qt3support_sql_q3datatable.cpp +++ b/doc/src/snippets/code/src_qt3support_sql_q3datatable.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_sql_q3dataview.cpp b/doc/src/snippets/code/src_qt3support_sql_q3dataview.cpp index 25904a1..df95c9e 100644 --- a/doc/src/snippets/code/src_qt3support_sql_q3dataview.cpp +++ b/doc/src/snippets/code/src_qt3support_sql_q3dataview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_sql_q3sqlcursor.cpp b/doc/src/snippets/code/src_qt3support_sql_q3sqlcursor.cpp index ec48831..e4a0c28 100644 --- a/doc/src/snippets/code/src_qt3support_sql_q3sqlcursor.cpp +++ b/doc/src/snippets/code/src_qt3support_sql_q3sqlcursor.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_sql_q3sqlform.cpp b/doc/src/snippets/code/src_qt3support_sql_q3sqlform.cpp index 5737756..177eef4 100644 --- a/doc/src/snippets/code/src_qt3support_sql_q3sqlform.cpp +++ b/doc/src/snippets/code/src_qt3support_sql_q3sqlform.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_sql_q3sqlmanager_p.cpp b/doc/src/snippets/code/src_qt3support_sql_q3sqlmanager_p.cpp index 785cf81..ee5ace9 100644 --- a/doc/src/snippets/code/src_qt3support_sql_q3sqlmanager_p.cpp +++ b/doc/src/snippets/code/src_qt3support_sql_q3sqlmanager_p.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_sql_q3sqlpropertymap.cpp b/doc/src/snippets/code/src_qt3support_sql_q3sqlpropertymap.cpp index 54862a1..425ebff 100644 --- a/doc/src/snippets/code/src_qt3support_sql_q3sqlpropertymap.cpp +++ b/doc/src/snippets/code/src_qt3support_sql_q3sqlpropertymap.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_sql_q3sqlselectcursor.cpp b/doc/src/snippets/code/src_qt3support_sql_q3sqlselectcursor.cpp index 64d93b2..b8ecadf 100644 --- a/doc/src/snippets/code/src_qt3support_sql_q3sqlselectcursor.cpp +++ b/doc/src/snippets/code/src_qt3support_sql_q3sqlselectcursor.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_text_q3simplerichtext.cpp b/doc/src/snippets/code/src_qt3support_text_q3simplerichtext.cpp index 3264275..0910b9a 100644 --- a/doc/src/snippets/code/src_qt3support_text_q3simplerichtext.cpp +++ b/doc/src/snippets/code/src_qt3support_text_q3simplerichtext.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_text_q3textbrowser.cpp b/doc/src/snippets/code/src_qt3support_text_q3textbrowser.cpp index 98441416..8f0c1f6 100644 --- a/doc/src/snippets/code/src_qt3support_text_q3textbrowser.cpp +++ b/doc/src/snippets/code/src_qt3support_text_q3textbrowser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_text_q3textedit.cpp b/doc/src/snippets/code/src_qt3support_text_q3textedit.cpp index 79b2e64..95dfef7 100644 --- a/doc/src/snippets/code/src_qt3support_text_q3textedit.cpp +++ b/doc/src/snippets/code/src_qt3support_text_q3textedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_text_q3textstream.cpp b/doc/src/snippets/code/src_qt3support_text_q3textstream.cpp index 3d518ed..700c7cd 100644 --- a/doc/src/snippets/code/src_qt3support_text_q3textstream.cpp +++ b/doc/src/snippets/code/src_qt3support_text_q3textstream.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_tools_q3cstring.cpp b/doc/src/snippets/code/src_qt3support_tools_q3cstring.cpp index 4274986..af7887f 100644 --- a/doc/src/snippets/code/src_qt3support_tools_q3cstring.cpp +++ b/doc/src/snippets/code/src_qt3support_tools_q3cstring.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_tools_q3deepcopy.cpp b/doc/src/snippets/code/src_qt3support_tools_q3deepcopy.cpp index 3a6c870..c2ddf62 100644 --- a/doc/src/snippets/code/src_qt3support_tools_q3deepcopy.cpp +++ b/doc/src/snippets/code/src_qt3support_tools_q3deepcopy.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_tools_q3garray.cpp b/doc/src/snippets/code/src_qt3support_tools_q3garray.cpp index 820a521..623035b 100644 --- a/doc/src/snippets/code/src_qt3support_tools_q3garray.cpp +++ b/doc/src/snippets/code/src_qt3support_tools_q3garray.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_tools_q3signal.cpp b/doc/src/snippets/code/src_qt3support_tools_q3signal.cpp index ea5d9ba..9f6dd58 100644 --- a/doc/src/snippets/code/src_qt3support_tools_q3signal.cpp +++ b/doc/src/snippets/code/src_qt3support_tools_q3signal.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_widgets_q3combobox.cpp b/doc/src/snippets/code/src_qt3support_widgets_q3combobox.cpp index bf2372f..6a495e8 100644 --- a/doc/src/snippets/code/src_qt3support_widgets_q3combobox.cpp +++ b/doc/src/snippets/code/src_qt3support_widgets_q3combobox.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_widgets_q3datetimeedit.cpp b/doc/src/snippets/code/src_qt3support_widgets_q3datetimeedit.cpp index 8e7e77a..a84c898 100644 --- a/doc/src/snippets/code/src_qt3support_widgets_q3datetimeedit.cpp +++ b/doc/src/snippets/code/src_qt3support_widgets_q3datetimeedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_widgets_q3dockarea.cpp b/doc/src/snippets/code/src_qt3support_widgets_q3dockarea.cpp index d4ef2ca..e11d058 100644 --- a/doc/src/snippets/code/src_qt3support_widgets_q3dockarea.cpp +++ b/doc/src/snippets/code/src_qt3support_widgets_q3dockarea.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_widgets_q3dockwindow.cpp b/doc/src/snippets/code/src_qt3support_widgets_q3dockwindow.cpp index f856fd1..345e825 100644 --- a/doc/src/snippets/code/src_qt3support_widgets_q3dockwindow.cpp +++ b/doc/src/snippets/code/src_qt3support_widgets_q3dockwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_widgets_q3gridview.cpp b/doc/src/snippets/code/src_qt3support_widgets_q3gridview.cpp index 9039f95..bb4e473 100644 --- a/doc/src/snippets/code/src_qt3support_widgets_q3gridview.cpp +++ b/doc/src/snippets/code/src_qt3support_widgets_q3gridview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_widgets_q3header.cpp b/doc/src/snippets/code/src_qt3support_widgets_q3header.cpp index bb5af53..2ce3577 100644 --- a/doc/src/snippets/code/src_qt3support_widgets_q3header.cpp +++ b/doc/src/snippets/code/src_qt3support_widgets_q3header.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_widgets_q3mainwindow.cpp b/doc/src/snippets/code/src_qt3support_widgets_q3mainwindow.cpp index ac73a55..1777095 100644 --- a/doc/src/snippets/code/src_qt3support_widgets_q3mainwindow.cpp +++ b/doc/src/snippets/code/src_qt3support_widgets_q3mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_widgets_q3scrollview.cpp b/doc/src/snippets/code/src_qt3support_widgets_q3scrollview.cpp index 57f746a..cff871a 100644 --- a/doc/src/snippets/code/src_qt3support_widgets_q3scrollview.cpp +++ b/doc/src/snippets/code/src_qt3support_widgets_q3scrollview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qt3support_widgets_q3whatsthis.cpp b/doc/src/snippets/code/src_qt3support_widgets_q3whatsthis.cpp index f98a4ac..e919901 100644 --- a/doc/src/snippets/code/src_qt3support_widgets_q3whatsthis.cpp +++ b/doc/src/snippets/code/src_qt3support_widgets_q3whatsthis.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_qtestlib_qtestcase.cpp b/doc/src/snippets/code/src_qtestlib_qtestcase.cpp index adb0c34..986026f 100644 --- a/doc/src/snippets/code/src_qtestlib_qtestcase.cpp +++ b/doc/src/snippets/code/src_qtestlib_qtestcase.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_script_qscriptable.cpp b/doc/src/snippets/code/src_script_qscriptable.cpp index d96583b..997f14f 100644 --- a/doc/src/snippets/code/src_script_qscriptable.cpp +++ b/doc/src/snippets/code/src_script_qscriptable.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_script_qscriptclass.cpp b/doc/src/snippets/code/src_script_qscriptclass.cpp index 96004b9..dde13cf 100644 --- a/doc/src/snippets/code/src_script_qscriptclass.cpp +++ b/doc/src/snippets/code/src_script_qscriptclass.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_script_qscriptcontext.cpp b/doc/src/snippets/code/src_script_qscriptcontext.cpp index dfb8ac2..09c58cf 100644 --- a/doc/src/snippets/code/src_script_qscriptcontext.cpp +++ b/doc/src/snippets/code/src_script_qscriptcontext.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_script_qscriptengine.cpp b/doc/src/snippets/code/src_script_qscriptengine.cpp index 3afeddf..2c02973 100644 --- a/doc/src/snippets/code/src_script_qscriptengine.cpp +++ b/doc/src/snippets/code/src_script_qscriptengine.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_script_qscriptengineagent.cpp b/doc/src/snippets/code/src_script_qscriptengineagent.cpp index 2149dd0..361a287 100644 --- a/doc/src/snippets/code/src_script_qscriptengineagent.cpp +++ b/doc/src/snippets/code/src_script_qscriptengineagent.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_script_qscriptvalue.cpp b/doc/src/snippets/code/src_script_qscriptvalue.cpp index 41e0121..e02a523 100644 --- a/doc/src/snippets/code/src_script_qscriptvalue.cpp +++ b/doc/src/snippets/code/src_script_qscriptvalue.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_script_qscriptvalueiterator.cpp b/doc/src/snippets/code/src_script_qscriptvalueiterator.cpp index b5ae9d1..f72e918 100644 --- a/doc/src/snippets/code/src_script_qscriptvalueiterator.cpp +++ b/doc/src/snippets/code/src_script_qscriptvalueiterator.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp b/doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp index 3a565ea..50ea67c 100644 --- a/doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp +++ b/doc/src/snippets/code/src_sql_kernel_qsqldatabase.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp b/doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp index 1115f8a..d49b6e0 100644 --- a/doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp +++ b/doc/src/snippets/code/src_sql_kernel_qsqldriver.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_sql_kernel_qsqlerror.cpp b/doc/src/snippets/code/src_sql_kernel_qsqlerror.cpp index d3adcea..cb45abf 100644 --- a/doc/src/snippets/code/src_sql_kernel_qsqlerror.cpp +++ b/doc/src/snippets/code/src_sql_kernel_qsqlerror.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_sql_kernel_qsqlindex.cpp b/doc/src/snippets/code/src_sql_kernel_qsqlindex.cpp index a19381a..bf04f2b 100644 --- a/doc/src/snippets/code/src_sql_kernel_qsqlindex.cpp +++ b/doc/src/snippets/code/src_sql_kernel_qsqlindex.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_sql_kernel_qsqlquery.cpp b/doc/src/snippets/code/src_sql_kernel_qsqlquery.cpp index d19cdae..c739a9f 100644 --- a/doc/src/snippets/code/src_sql_kernel_qsqlquery.cpp +++ b/doc/src/snippets/code/src_sql_kernel_qsqlquery.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_sql_kernel_qsqlresult.cpp b/doc/src/snippets/code/src_sql_kernel_qsqlresult.cpp index b70b90a..96bb9fb 100644 --- a/doc/src/snippets/code/src_sql_kernel_qsqlresult.cpp +++ b/doc/src/snippets/code/src_sql_kernel_qsqlresult.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_sql_models_qsqlquerymodel.cpp b/doc/src/snippets/code/src_sql_models_qsqlquerymodel.cpp index f2f20fa..0d85803 100644 --- a/doc/src/snippets/code/src_sql_models_qsqlquerymodel.cpp +++ b/doc/src/snippets/code/src_sql_models_qsqlquerymodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_svg_qgraphicssvgitem.cpp b/doc/src/snippets/code/src_svg_qgraphicssvgitem.cpp index 22cc963..ac775fd 100644 --- a/doc/src/snippets/code/src_svg_qgraphicssvgitem.cpp +++ b/doc/src/snippets/code/src_svg_qgraphicssvgitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xml_dom_qdom.cpp b/doc/src/snippets/code/src_xml_dom_qdom.cpp index 732a0ed..e49bcf4 100644 --- a/doc/src/snippets/code/src_xml_dom_qdom.cpp +++ b/doc/src/snippets/code/src_xml_dom_qdom.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xml_sax_qxml.cpp b/doc/src/snippets/code/src_xml_sax_qxml.cpp index 31472ac..7cd7a33 100644 --- a/doc/src/snippets/code/src_xml_sax_qxml.cpp +++ b/doc/src/snippets/code/src_xml_sax_qxml.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qabstracturiresolver.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qabstracturiresolver.cpp index d36b59c..0b30c4d 100644 --- a/doc/src/snippets/code/src_xmlpatterns_api_qabstracturiresolver.cpp +++ b/doc/src/snippets/code/src_xmlpatterns_api_qabstracturiresolver.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlforwarditerator.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlforwarditerator.cpp index ee40075..5c1a4a0 100644 --- a/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlforwarditerator.cpp +++ b/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlforwarditerator.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlnodemodel.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlnodemodel.cpp index fe112c1..443f825 100644 --- a/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlnodemodel.cpp +++ b/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlnodemodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlreceiver.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlreceiver.cpp index d3df948..0325851 100644 --- a/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlreceiver.cpp +++ b/doc/src/snippets/code/src_xmlpatterns_api_qabstractxmlreceiver.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qsimplexmlnodemodel.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qsimplexmlnodemodel.cpp index 86c1d85..71363cf 100644 --- a/doc/src/snippets/code/src_xmlpatterns_api_qsimplexmlnodemodel.cpp +++ b/doc/src/snippets/code/src_xmlpatterns_api_qsimplexmlnodemodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qxmlformatter.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qxmlformatter.cpp index b425beb..4512d99 100644 --- a/doc/src/snippets/code/src_xmlpatterns_api_qxmlformatter.cpp +++ b/doc/src/snippets/code/src_xmlpatterns_api_qxmlformatter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qxmlname.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qxmlname.cpp index f73d2fe..37274f4 100644 --- a/doc/src/snippets/code/src_xmlpatterns_api_qxmlname.cpp +++ b/doc/src/snippets/code/src_xmlpatterns_api_qxmlname.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp index 139e0a3..d446af7 100644 --- a/doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp +++ b/doc/src/snippets/code/src_xmlpatterns_api_qxmlquery.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qxmlresultitems.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qxmlresultitems.cpp index 6a157d0..c495c0b 100644 --- a/doc/src/snippets/code/src_xmlpatterns_api_qxmlresultitems.cpp +++ b/doc/src/snippets/code/src_xmlpatterns_api_qxmlresultitems.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/src_xmlpatterns_api_qxmlserializer.cpp b/doc/src/snippets/code/src_xmlpatterns_api_qxmlserializer.cpp index d3df948..0325851 100644 --- a/doc/src/snippets/code/src_xmlpatterns_api_qxmlserializer.cpp +++ b/doc/src/snippets/code/src_xmlpatterns_api_qxmlserializer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_assistant_compat_lib_qassistantclient.cpp b/doc/src/snippets/code/tools_assistant_compat_lib_qassistantclient.cpp index 612695a..1a38c86 100644 --- a/doc/src/snippets/code/tools_assistant_compat_lib_qassistantclient.cpp +++ b/doc/src/snippets/code/tools_assistant_compat_lib_qassistantclient.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_extension_default_extensionfactory.cpp b/doc/src/snippets/code/tools_designer_src_lib_extension_default_extensionfactory.cpp index 0bba403..df2db07 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_extension_default_extensionfactory.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_extension_default_extensionfactory.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_extension_extension.cpp b/doc/src/snippets/code/tools_designer_src_lib_extension_extension.cpp index ff91c22..2a4659c 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_extension_extension.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_extension_extension.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_extension_qextensionmanager.cpp b/doc/src/snippets/code/tools_designer_src_lib_extension_qextensionmanager.cpp index f601acc..ebbd975 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_extension_qextensionmanager.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_extension_qextensionmanager.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformeditor.cpp b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformeditor.cpp index 2d267a6..3c11a8e 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformeditor.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformeditor.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindow.cpp b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindow.cpp index bb4cc97..99f0b1a 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindow.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp index f1d4b73..be9b0d1 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowcursor.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp index 2807082..3403e08 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractformwindowmanager.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractobjectinspector.cpp b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractobjectinspector.cpp index 2d267a6..3c11a8e 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractobjectinspector.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractobjectinspector.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp index c07b452..27e0aeb 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractpropertyeditor.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractwidgetbox.cpp b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractwidgetbox.cpp index 289c41a..2dcea38 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractwidgetbox.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_sdk_abstractwidgetbox.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_uilib_abstractformbuilder.cpp b/doc/src/snippets/code/tools_designer_src_lib_uilib_abstractformbuilder.cpp index 4aab81c..d9582d5 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_uilib_abstractformbuilder.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_uilib_abstractformbuilder.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_designer_src_lib_uilib_formbuilder.cpp b/doc/src/snippets/code/tools_designer_src_lib_uilib_formbuilder.cpp index c72e2cc..d256dec 100644 --- a/doc/src/snippets/code/tools_designer_src_lib_uilib_formbuilder.cpp +++ b/doc/src/snippets/code/tools_designer_src_lib_uilib_formbuilder.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_patternist_qapplicationargumentparser.cpp b/doc/src/snippets/code/tools_patternist_qapplicationargumentparser.cpp index 7e6f060..4092c82 100644 --- a/doc/src/snippets/code/tools_patternist_qapplicationargumentparser.cpp +++ b/doc/src/snippets/code/tools_patternist_qapplicationargumentparser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_shared_qtgradienteditor_qtgradientdialog.cpp b/doc/src/snippets/code/tools_shared_qtgradienteditor_qtgradientdialog.cpp index 662e92f..46332a8 100644 --- a/doc/src/snippets/code/tools_shared_qtgradienteditor_qtgradientdialog.cpp +++ b/doc/src/snippets/code/tools_shared_qtgradienteditor_qtgradientdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_shared_qtpropertybrowser_qtpropertybrowser.cpp b/doc/src/snippets/code/tools_shared_qtpropertybrowser_qtpropertybrowser.cpp index fe4df33..ac86b3a 100644 --- a/doc/src/snippets/code/tools_shared_qtpropertybrowser_qtpropertybrowser.cpp +++ b/doc/src/snippets/code/tools_shared_qtpropertybrowser_qtpropertybrowser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_shared_qtpropertybrowser_qtvariantproperty.cpp b/doc/src/snippets/code/tools_shared_qtpropertybrowser_qtvariantproperty.cpp index ca00d90..d96ebfb 100644 --- a/doc/src/snippets/code/tools_shared_qtpropertybrowser_qtvariantproperty.cpp +++ b/doc/src/snippets/code/tools_shared_qtpropertybrowser_qtvariantproperty.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/code/tools_shared_qttoolbardialog_qttoolbardialog.cpp b/doc/src/snippets/code/tools_shared_qttoolbardialog_qttoolbardialog.cpp index 94b7b18..9beda79 100644 --- a/doc/src/snippets/code/tools_shared_qttoolbardialog_qttoolbardialog.cpp +++ b/doc/src/snippets/code/tools_shared_qttoolbardialog_qttoolbardialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/colors/main.cpp b/doc/src/snippets/colors/main.cpp index 120d6e7..4b894e3 100644 --- a/doc/src/snippets/colors/main.cpp +++ b/doc/src/snippets/colors/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/colors/window.cpp b/doc/src/snippets/colors/window.cpp index 14d8a82..9ce1a77 100644 --- a/doc/src/snippets/colors/window.cpp +++ b/doc/src/snippets/colors/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/colors/window.h b/doc/src/snippets/colors/window.h index 0d75432..bae003e 100644 --- a/doc/src/snippets/colors/window.h +++ b/doc/src/snippets/colors/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/coordsys/coordsys.cpp b/doc/src/snippets/coordsys/coordsys.cpp index fd46768..c87ee65 100644 --- a/doc/src/snippets/coordsys/coordsys.cpp +++ b/doc/src/snippets/coordsys/coordsys.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/customstyle/customstyle.cpp b/doc/src/snippets/customstyle/customstyle.cpp index 078489a..b2e9072 100644 --- a/doc/src/snippets/customstyle/customstyle.cpp +++ b/doc/src/snippets/customstyle/customstyle.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/customstyle/customstyle.h b/doc/src/snippets/customstyle/customstyle.h index 2c56f5e..6a87d75 100644 --- a/doc/src/snippets/customstyle/customstyle.h +++ b/doc/src/snippets/customstyle/customstyle.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/customstyle/main.cpp b/doc/src/snippets/customstyle/main.cpp index b784b0c..17731af 100644 --- a/doc/src/snippets/customstyle/main.cpp +++ b/doc/src/snippets/customstyle/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/customviewstyle.cpp b/doc/src/snippets/customviewstyle.cpp index 359e75d..b040f75 100644 --- a/doc/src/snippets/customviewstyle.cpp +++ b/doc/src/snippets/customviewstyle.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/SelfDestroyingRect.qml b/doc/src/snippets/declarative/SelfDestroyingRect.qml index f89588b..0d2a284 100644 --- a/doc/src/snippets/declarative/SelfDestroyingRect.qml +++ b/doc/src/snippets/declarative/SelfDestroyingRect.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/Sprite.qml b/doc/src/snippets/declarative/Sprite.qml index 3bcd599..ab145d6 100644 --- a/doc/src/snippets/declarative/Sprite.qml +++ b/doc/src/snippets/declarative/Sprite.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/anchoranimation.qml b/doc/src/snippets/declarative/anchoranimation.qml index d8235f6..4d026e3 100644 --- a/doc/src/snippets/declarative/anchoranimation.qml +++ b/doc/src/snippets/declarative/anchoranimation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/anchorchanges.qml b/doc/src/snippets/declarative/anchorchanges.qml index 66c31c5..1b80a10 100644 --- a/doc/src/snippets/declarative/anchorchanges.qml +++ b/doc/src/snippets/declarative/anchorchanges.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/animatedimage.qml b/doc/src/snippets/declarative/animatedimage.qml index a9b58c5..bfe8ace 100644 --- a/doc/src/snippets/declarative/animatedimage.qml +++ b/doc/src/snippets/declarative/animatedimage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/animation-behavioral.qml b/doc/src/snippets/declarative/animation-behavioral.qml index 0462e9a..93cf2fa 100644 --- a/doc/src/snippets/declarative/animation-behavioral.qml +++ b/doc/src/snippets/declarative/animation-behavioral.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/animation-easing.qml b/doc/src/snippets/declarative/animation-easing.qml index 3438737..64ba44c 100644 --- a/doc/src/snippets/declarative/animation-easing.qml +++ b/doc/src/snippets/declarative/animation-easing.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/animation-elements.qml b/doc/src/snippets/declarative/animation-elements.qml index 7843b75..d9bfc28 100644 --- a/doc/src/snippets/declarative/animation-elements.qml +++ b/doc/src/snippets/declarative/animation-elements.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/animation-groups.qml b/doc/src/snippets/declarative/animation-groups.qml index 57cc8c2..f29ea48 100644 --- a/doc/src/snippets/declarative/animation-groups.qml +++ b/doc/src/snippets/declarative/animation-groups.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/animation-propertyvaluesource.qml b/doc/src/snippets/declarative/animation-propertyvaluesource.qml index ba56afd..6f93967 100644 --- a/doc/src/snippets/declarative/animation-propertyvaluesource.qml +++ b/doc/src/snippets/declarative/animation-propertyvaluesource.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/animation-signalhandler.qml b/doc/src/snippets/declarative/animation-signalhandler.qml index 16f27c6..416417f 100644 --- a/doc/src/snippets/declarative/animation-signalhandler.qml +++ b/doc/src/snippets/declarative/animation-signalhandler.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/animation-standalone.qml b/doc/src/snippets/declarative/animation-standalone.qml index 1ff4073..0bf3020 100644 --- a/doc/src/snippets/declarative/animation-standalone.qml +++ b/doc/src/snippets/declarative/animation-standalone.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/animation-transitions.qml b/doc/src/snippets/declarative/animation-transitions.qml index 025fc90..62bef23 100644 --- a/doc/src/snippets/declarative/animation-transitions.qml +++ b/doc/src/snippets/declarative/animation-transitions.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/behavior.qml b/doc/src/snippets/declarative/behavior.qml index 7e2d1e7..c2eff68 100644 --- a/doc/src/snippets/declarative/behavior.qml +++ b/doc/src/snippets/declarative/behavior.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/borderimage/borderimage-defaults.qml b/doc/src/snippets/declarative/borderimage/borderimage-defaults.qml index 1888f4e..1d712e8 100644 --- a/doc/src/snippets/declarative/borderimage/borderimage-defaults.qml +++ b/doc/src/snippets/declarative/borderimage/borderimage-defaults.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/borderimage/borderimage-scaled.qml b/doc/src/snippets/declarative/borderimage/borderimage-scaled.qml index ba30491..333c2f1 100644 --- a/doc/src/snippets/declarative/borderimage/borderimage-scaled.qml +++ b/doc/src/snippets/declarative/borderimage/borderimage-scaled.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml b/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml index 98a4175..22a2edf 100644 --- a/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml +++ b/doc/src/snippets/declarative/borderimage/borderimage-tiled.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/borderimage/normal-image.qml b/doc/src/snippets/declarative/borderimage/normal-image.qml index f8e3c60..f3b19af 100644 --- a/doc/src/snippets/declarative/borderimage/normal-image.qml +++ b/doc/src/snippets/declarative/borderimage/normal-image.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/codingconventions/dotproperties.qml b/doc/src/snippets/declarative/codingconventions/dotproperties.qml index 98cb09c..7243ec2 100644 --- a/doc/src/snippets/declarative/codingconventions/dotproperties.qml +++ b/doc/src/snippets/declarative/codingconventions/dotproperties.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/codingconventions/javascript-imports.qml b/doc/src/snippets/declarative/codingconventions/javascript-imports.qml index 931349f..ba22967 100644 --- a/doc/src/snippets/declarative/codingconventions/javascript-imports.qml +++ b/doc/src/snippets/declarative/codingconventions/javascript-imports.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/codingconventions/javascript.qml b/doc/src/snippets/declarative/codingconventions/javascript.qml index 6c94626..8ca289f 100644 --- a/doc/src/snippets/declarative/codingconventions/javascript.qml +++ b/doc/src/snippets/declarative/codingconventions/javascript.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/codingconventions/lists.qml b/doc/src/snippets/declarative/codingconventions/lists.qml index a7f3c8f..4b63b55 100644 --- a/doc/src/snippets/declarative/codingconventions/lists.qml +++ b/doc/src/snippets/declarative/codingconventions/lists.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/codingconventions/photo.qml b/doc/src/snippets/declarative/codingconventions/photo.qml index 2eba035..61e7eb7 100644 --- a/doc/src/snippets/declarative/codingconventions/photo.qml +++ b/doc/src/snippets/declarative/codingconventions/photo.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/codingconventions/private.qml b/doc/src/snippets/declarative/codingconventions/private.qml index 1d3dda8..909f5fa 100644 --- a/doc/src/snippets/declarative/codingconventions/private.qml +++ b/doc/src/snippets/declarative/codingconventions/private.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/coloranimation.qml b/doc/src/snippets/declarative/coloranimation.qml index 452599e..8e15824 100644 --- a/doc/src/snippets/declarative/coloranimation.qml +++ b/doc/src/snippets/declarative/coloranimation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/column/column.qml b/doc/src/snippets/declarative/column/column.qml index 18e95e9..b3546f4 100644 --- a/doc/src/snippets/declarative/column/column.qml +++ b/doc/src/snippets/declarative/column/column.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/column/vertical-positioner-transition.qml b/doc/src/snippets/declarative/column/vertical-positioner-transition.qml index cd2fdcc..3cedeec 100644 --- a/doc/src/snippets/declarative/column/vertical-positioner-transition.qml +++ b/doc/src/snippets/declarative/column/vertical-positioner-transition.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/column/vertical-positioner.qml b/doc/src/snippets/declarative/column/vertical-positioner.qml index 693734b..6dc264c 100644 --- a/doc/src/snippets/declarative/column/vertical-positioner.qml +++ b/doc/src/snippets/declarative/column/vertical-positioner.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/comments.qml b/doc/src/snippets/declarative/comments.qml index 97659a5..fb58cc8 100644 --- a/doc/src/snippets/declarative/comments.qml +++ b/doc/src/snippets/declarative/comments.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/component.qml b/doc/src/snippets/declarative/component.qml index ed55803..a42d1ea 100644 --- a/doc/src/snippets/declarative/component.qml +++ b/doc/src/snippets/declarative/component.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/createComponent-simple.qml b/doc/src/snippets/declarative/createComponent-simple.qml index f052529..e3ade7c 100644 --- a/doc/src/snippets/declarative/createComponent-simple.qml +++ b/doc/src/snippets/declarative/createComponent-simple.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/createComponent.qml b/doc/src/snippets/declarative/createComponent.qml index 619c02d..e67710d 100644 --- a/doc/src/snippets/declarative/createComponent.qml +++ b/doc/src/snippets/declarative/createComponent.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/createQmlObject.qml b/doc/src/snippets/declarative/createQmlObject.qml index cfcffe1..4ac9d70 100644 --- a/doc/src/snippets/declarative/createQmlObject.qml +++ b/doc/src/snippets/declarative/createQmlObject.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/dynamicObjects-destroy.qml b/doc/src/snippets/declarative/dynamicObjects-destroy.qml index 665f631..b8a2306 100644 --- a/doc/src/snippets/declarative/dynamicObjects-destroy.qml +++ b/doc/src/snippets/declarative/dynamicObjects-destroy.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/flickable.qml b/doc/src/snippets/declarative/flickable.qml index 80e7301..4e8d56c 100644 --- a/doc/src/snippets/declarative/flickable.qml +++ b/doc/src/snippets/declarative/flickable.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/flickableScrollbar.qml b/doc/src/snippets/declarative/flickableScrollbar.qml index 18ea45a..a7ecc91 100644 --- a/doc/src/snippets/declarative/flickableScrollbar.qml +++ b/doc/src/snippets/declarative/flickableScrollbar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/flipable/flipable.qml b/doc/src/snippets/declarative/flipable/flipable.qml index 8d48bd9..bad9736 100644 --- a/doc/src/snippets/declarative/flipable/flipable.qml +++ b/doc/src/snippets/declarative/flipable/flipable.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/flow-diagram.qml b/doc/src/snippets/declarative/flow-diagram.qml index c970164..489b461 100644 --- a/doc/src/snippets/declarative/flow-diagram.qml +++ b/doc/src/snippets/declarative/flow-diagram.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/flow.qml b/doc/src/snippets/declarative/flow.qml index 167cbdb..32478da 100644 --- a/doc/src/snippets/declarative/flow.qml +++ b/doc/src/snippets/declarative/flow.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focus/advancedFocus.qml b/doc/src/snippets/declarative/focus/advancedFocus.qml index 274f54f..fda37c1 100644 --- a/doc/src/snippets/declarative/focus/advancedFocus.qml +++ b/doc/src/snippets/declarative/focus/advancedFocus.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focus/basicwidget.qml b/doc/src/snippets/declarative/focus/basicwidget.qml index 71e75ff..b74c1cd 100644 --- a/doc/src/snippets/declarative/focus/basicwidget.qml +++ b/doc/src/snippets/declarative/focus/basicwidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focus/clickablewidget.qml b/doc/src/snippets/declarative/focus/clickablewidget.qml index 34b0d87..684384d 100644 --- a/doc/src/snippets/declarative/focus/clickablewidget.qml +++ b/doc/src/snippets/declarative/focus/clickablewidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focus/focusColumn.qml b/doc/src/snippets/declarative/focus/focusColumn.qml index 42ee3da..e6a6fcf 100644 --- a/doc/src/snippets/declarative/focus/focusColumn.qml +++ b/doc/src/snippets/declarative/focus/focusColumn.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focus/focusscopewidget.qml b/doc/src/snippets/declarative/focus/focusscopewidget.qml index 48e5750..7421a63 100644 --- a/doc/src/snippets/declarative/focus/focusscopewidget.qml +++ b/doc/src/snippets/declarative/focus/focusscopewidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focus/myclickablewidget.qml b/doc/src/snippets/declarative/focus/myclickablewidget.qml index 3294662..4777dd1 100644 --- a/doc/src/snippets/declarative/focus/myclickablewidget.qml +++ b/doc/src/snippets/declarative/focus/myclickablewidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focus/myfocusscopewidget.qml b/doc/src/snippets/declarative/focus/myfocusscopewidget.qml index 231ae3a..c87a47e 100644 --- a/doc/src/snippets/declarative/focus/myfocusscopewidget.qml +++ b/doc/src/snippets/declarative/focus/myfocusscopewidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focus/mywidget.qml b/doc/src/snippets/declarative/focus/mywidget.qml index bea723d..86d2d0f 100644 --- a/doc/src/snippets/declarative/focus/mywidget.qml +++ b/doc/src/snippets/declarative/focus/mywidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focus/rectangle.qml b/doc/src/snippets/declarative/focus/rectangle.qml index 01d1f0c..5cd680e 100644 --- a/doc/src/snippets/declarative/focus/rectangle.qml +++ b/doc/src/snippets/declarative/focus/rectangle.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focus/widget.qml b/doc/src/snippets/declarative/focus/widget.qml index cef34c5..a5053d9 100644 --- a/doc/src/snippets/declarative/focus/widget.qml +++ b/doc/src/snippets/declarative/focus/widget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/focusscopes.qml b/doc/src/snippets/declarative/focusscopes.qml index 4713c0c..5e02f30 100644 --- a/doc/src/snippets/declarative/focusscopes.qml +++ b/doc/src/snippets/declarative/focusscopes.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/folderlistmodel.qml b/doc/src/snippets/declarative/folderlistmodel.qml index d1cd34b..3bddefb 100644 --- a/doc/src/snippets/declarative/folderlistmodel.qml +++ b/doc/src/snippets/declarative/folderlistmodel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/gradient.qml b/doc/src/snippets/declarative/gradient.qml index 47165a4..0d47e6e 100644 --- a/doc/src/snippets/declarative/gradient.qml +++ b/doc/src/snippets/declarative/gradient.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/grid/grid-items.qml b/doc/src/snippets/declarative/grid/grid-items.qml index 62a444d..3c60d12 100644 --- a/doc/src/snippets/declarative/grid/grid-items.qml +++ b/doc/src/snippets/declarative/grid/grid-items.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/grid/grid-no-spacing.qml b/doc/src/snippets/declarative/grid/grid-no-spacing.qml index a6ca305..7c8b0f8 100644 --- a/doc/src/snippets/declarative/grid/grid-no-spacing.qml +++ b/doc/src/snippets/declarative/grid/grid-no-spacing.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/grid/grid-spacing.qml b/doc/src/snippets/declarative/grid/grid-spacing.qml index c03cdad..8914ce3 100644 --- a/doc/src/snippets/declarative/grid/grid-spacing.qml +++ b/doc/src/snippets/declarative/grid/grid-spacing.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/grid/grid.qml b/doc/src/snippets/declarative/grid/grid.qml index 837ae60..758edde 100644 --- a/doc/src/snippets/declarative/grid/grid.qml +++ b/doc/src/snippets/declarative/grid/grid.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/gridview/ContactModel.qml b/doc/src/snippets/declarative/gridview/ContactModel.qml index c3c3962..10195fa 100644 --- a/doc/src/snippets/declarative/gridview/ContactModel.qml +++ b/doc/src/snippets/declarative/gridview/ContactModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/gridview/gridview.qml b/doc/src/snippets/declarative/gridview/gridview.qml index 87d70de..11bb45b 100644 --- a/doc/src/snippets/declarative/gridview/gridview.qml +++ b/doc/src/snippets/declarative/gridview/gridview.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/image.qml b/doc/src/snippets/declarative/image.qml index 4c66ec1..97b62e9 100644 --- a/doc/src/snippets/declarative/image.qml +++ b/doc/src/snippets/declarative/image.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/integrating-javascript/connectjs.qml b/doc/src/snippets/declarative/integrating-javascript/connectjs.qml index d84b827..c58633e 100644 --- a/doc/src/snippets/declarative/integrating-javascript/connectjs.qml +++ b/doc/src/snippets/declarative/integrating-javascript/connectjs.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/integrating-javascript/includejs/app.qml b/doc/src/snippets/declarative/integrating-javascript/includejs/app.qml index 2ecc475..8a94628 100644 --- a/doc/src/snippets/declarative/integrating-javascript/includejs/app.qml +++ b/doc/src/snippets/declarative/integrating-javascript/includejs/app.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js b/doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js index 0a01e9e..667d21a 100644 --- a/doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js +++ b/doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/integrating-javascript/includejs/script.js b/doc/src/snippets/declarative/integrating-javascript/includejs/script.js index 7380412..867f46f 100644 --- a/doc/src/snippets/declarative/integrating-javascript/includejs/script.js +++ b/doc/src/snippets/declarative/integrating-javascript/includejs/script.js @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/integrating-javascript/script.js b/doc/src/snippets/declarative/integrating-javascript/script.js index f7099f8..1e3d1e0 100644 --- a/doc/src/snippets/declarative/integrating-javascript/script.js +++ b/doc/src/snippets/declarative/integrating-javascript/script.js @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/keynavigation.qml b/doc/src/snippets/declarative/keynavigation.qml index e11cdf1..986be382 100644 --- a/doc/src/snippets/declarative/keynavigation.qml +++ b/doc/src/snippets/declarative/keynavigation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/keys/keys-handler.qml b/doc/src/snippets/declarative/keys/keys-handler.qml index be0eedb..d72f9ca 100644 --- a/doc/src/snippets/declarative/keys/keys-handler.qml +++ b/doc/src/snippets/declarative/keys/keys-handler.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/keys/keys-pressed.qml b/doc/src/snippets/declarative/keys/keys-pressed.qml index 90a4e37..9f31ab7 100644 --- a/doc/src/snippets/declarative/keys/keys-pressed.qml +++ b/doc/src/snippets/declarative/keys/keys-pressed.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/listmodel-modify.qml b/doc/src/snippets/declarative/listmodel-modify.qml index d85da6c..accac93 100644 --- a/doc/src/snippets/declarative/listmodel-modify.qml +++ b/doc/src/snippets/declarative/listmodel-modify.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/listmodel-nested.qml b/doc/src/snippets/declarative/listmodel-nested.qml index 36c5d66..227ba21 100644 --- a/doc/src/snippets/declarative/listmodel-nested.qml +++ b/doc/src/snippets/declarative/listmodel-nested.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/listmodel-simple.qml b/doc/src/snippets/declarative/listmodel-simple.qml index c8e83eb..5120e79 100644 --- a/doc/src/snippets/declarative/listmodel-simple.qml +++ b/doc/src/snippets/declarative/listmodel-simple.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/listmodel.qml b/doc/src/snippets/declarative/listmodel.qml index f5b6cd6..4b717ff 100644 --- a/doc/src/snippets/declarative/listmodel.qml +++ b/doc/src/snippets/declarative/listmodel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/listview/ContactModel.qml b/doc/src/snippets/declarative/listview/ContactModel.qml index d421ffc..0fbeb2b 100644 --- a/doc/src/snippets/declarative/listview/ContactModel.qml +++ b/doc/src/snippets/declarative/listview/ContactModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/listview/listview-snippet.qml b/doc/src/snippets/declarative/listview/listview-snippet.qml index f2a260d..f73dec9 100644 --- a/doc/src/snippets/declarative/listview/listview-snippet.qml +++ b/doc/src/snippets/declarative/listview/listview-snippet.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/listview/listview.qml b/doc/src/snippets/declarative/listview/listview.qml index 370429e..59dad4a 100644 --- a/doc/src/snippets/declarative/listview/listview.qml +++ b/doc/src/snippets/declarative/listview/listview.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/loader/KeyReader.qml b/doc/src/snippets/declarative/loader/KeyReader.qml index e53700c..34eaef9 100644 --- a/doc/src/snippets/declarative/loader/KeyReader.qml +++ b/doc/src/snippets/declarative/loader/KeyReader.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/loader/MyItem.qml b/doc/src/snippets/declarative/loader/MyItem.qml index 199c64a..6524f22 100644 --- a/doc/src/snippets/declarative/loader/MyItem.qml +++ b/doc/src/snippets/declarative/loader/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/loader/connections.qml b/doc/src/snippets/declarative/loader/connections.qml index 18f4259..3adaf24 100644 --- a/doc/src/snippets/declarative/loader/connections.qml +++ b/doc/src/snippets/declarative/loader/connections.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/loader/focus.qml b/doc/src/snippets/declarative/loader/focus.qml index 4b3042a..a5a85ed 100644 --- a/doc/src/snippets/declarative/loader/focus.qml +++ b/doc/src/snippets/declarative/loader/focus.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/loader/simple.qml b/doc/src/snippets/declarative/loader/simple.qml index 556ce60..aa31dfc 100644 --- a/doc/src/snippets/declarative/loader/simple.qml +++ b/doc/src/snippets/declarative/loader/simple.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/loader/sizeitem.qml b/doc/src/snippets/declarative/loader/sizeitem.qml index 6ace8d6..31fb7dd 100644 --- a/doc/src/snippets/declarative/loader/sizeitem.qml +++ b/doc/src/snippets/declarative/loader/sizeitem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/loader/sizeloader.qml b/doc/src/snippets/declarative/loader/sizeloader.qml index eac7d57..055cbc7 100644 --- a/doc/src/snippets/declarative/loader/sizeloader.qml +++ b/doc/src/snippets/declarative/loader/sizeloader.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/mousearea/mousearea-snippet.qml b/doc/src/snippets/declarative/mousearea/mousearea-snippet.qml index e2a4ee9..3c2e143 100644 --- a/doc/src/snippets/declarative/mousearea/mousearea-snippet.qml +++ b/doc/src/snippets/declarative/mousearea/mousearea-snippet.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/mousearea/mousearea.qml b/doc/src/snippets/declarative/mousearea/mousearea.qml index 7cd0a77..e3cbebb 100644 --- a/doc/src/snippets/declarative/mousearea/mousearea.qml +++ b/doc/src/snippets/declarative/mousearea/mousearea.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/mousearea/mouseareadragfilter.qml b/doc/src/snippets/declarative/mousearea/mouseareadragfilter.qml index 8f9fd47..9de57e3 100644 --- a/doc/src/snippets/declarative/mousearea/mouseareadragfilter.qml +++ b/doc/src/snippets/declarative/mousearea/mouseareadragfilter.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/numberanimation.qml b/doc/src/snippets/declarative/numberanimation.qml index 8f64493..e395e1e 100644 --- a/doc/src/snippets/declarative/numberanimation.qml +++ b/doc/src/snippets/declarative/numberanimation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/parallelanimation.qml b/doc/src/snippets/declarative/parallelanimation.qml index 0badc03..32487ef 100644 --- a/doc/src/snippets/declarative/parallelanimation.qml +++ b/doc/src/snippets/declarative/parallelanimation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/parentanimation.qml b/doc/src/snippets/declarative/parentanimation.qml index fa49d7a..449c0aa 100644 --- a/doc/src/snippets/declarative/parentanimation.qml +++ b/doc/src/snippets/declarative/parentanimation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/parentchange.qml b/doc/src/snippets/declarative/parentchange.qml index e73bbb3..7fbb213 100644 --- a/doc/src/snippets/declarative/parentchange.qml +++ b/doc/src/snippets/declarative/parentchange.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/pathview/ContactModel.qml b/doc/src/snippets/declarative/pathview/ContactModel.qml index 07db8dc..22430b7 100644 --- a/doc/src/snippets/declarative/pathview/ContactModel.qml +++ b/doc/src/snippets/declarative/pathview/ContactModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/pathview/pathattributes.qml b/doc/src/snippets/declarative/pathview/pathattributes.qml index be933e0..28395f3 100644 --- a/doc/src/snippets/declarative/pathview/pathattributes.qml +++ b/doc/src/snippets/declarative/pathview/pathattributes.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/pathview/pathview.qml b/doc/src/snippets/declarative/pathview/pathview.qml index e5e90a4..84fad9c 100644 --- a/doc/src/snippets/declarative/pathview/pathview.qml +++ b/doc/src/snippets/declarative/pathview/pathview.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/propertyaction.qml b/doc/src/snippets/declarative/propertyaction.qml index acb5c43..dd21d14 100644 --- a/doc/src/snippets/declarative/propertyaction.qml +++ b/doc/src/snippets/declarative/propertyaction.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/propertyanimation.qml b/doc/src/snippets/declarative/propertyanimation.qml index 1f1cbaf..d0a009a 100644 --- a/doc/src/snippets/declarative/propertyanimation.qml +++ b/doc/src/snippets/declarative/propertyanimation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/propertychanges.qml b/doc/src/snippets/declarative/propertychanges.qml index 00f6bfe..3334bbc 100644 --- a/doc/src/snippets/declarative/propertychanges.qml +++ b/doc/src/snippets/declarative/propertychanges.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml b/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml index 4aa318c..660a6b1 100644 --- a/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml +++ b/doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-data-models/listelements.qml b/doc/src/snippets/declarative/qml-data-models/listelements.qml index 44fb056..dfc61e7 100644 --- a/doc/src/snippets/declarative/qml-data-models/listelements.qml +++ b/doc/src/snippets/declarative/qml-data-models/listelements.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml b/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml index 53f844a..f3946b2 100644 --- a/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml +++ b/doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-documents/inline-component.qml b/doc/src/snippets/declarative/qml-documents/inline-component.qml index eef68a3..11a8f96 100644 --- a/doc/src/snippets/declarative/qml-documents/inline-component.qml +++ b/doc/src/snippets/declarative/qml-documents/inline-component.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-documents/inline-text-component.qml b/doc/src/snippets/declarative/qml-documents/inline-text-component.qml index 593862d..1d86764 100644 --- a/doc/src/snippets/declarative/qml-documents/inline-text-component.qml +++ b/doc/src/snippets/declarative/qml-documents/inline-text-component.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-documents/non-trivial.qml b/doc/src/snippets/declarative/qml-documents/non-trivial.qml index ba567b5..c2dd5e1 100644 --- a/doc/src/snippets/declarative/qml-documents/non-trivial.qml +++ b/doc/src/snippets/declarative/qml-documents/non-trivial.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-documents/qmldocuments.qml b/doc/src/snippets/declarative/qml-documents/qmldocuments.qml index 20efc35..2d08d65 100644 --- a/doc/src/snippets/declarative/qml-documents/qmldocuments.qml +++ b/doc/src/snippets/declarative/qml-documents/qmldocuments.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/components/Button.qml b/doc/src/snippets/declarative/qml-extending-types/components/Button.qml index 43fe0e2..04e9728 100644 --- a/doc/src/snippets/declarative/qml-extending-types/components/Button.qml +++ b/doc/src/snippets/declarative/qml-extending-types/components/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/components/application.qml b/doc/src/snippets/declarative/qml-extending-types/components/application.qml index 0c3b0df..0b18eab 100644 --- a/doc/src/snippets/declarative/qml-extending-types/components/application.qml +++ b/doc/src/snippets/declarative/qml-extending-types/components/application.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/methods/app.qml b/doc/src/snippets/declarative/qml-extending-types/methods/app.qml index 3b5f008..6a65f01 100644 --- a/doc/src/snippets/declarative/qml-extending-types/methods/app.qml +++ b/doc/src/snippets/declarative/qml-extending-types/methods/app.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml b/doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml index e37db9c..6245a8e 100644 --- a/doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml +++ b/doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml index aab2748..bc33e5c 100644 --- a/doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml +++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias.qml index 1bda447..e19632e 100644 --- a/doc/src/snippets/declarative/qml-extending-types/properties/alias.qml +++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml index 7f50674..f263454 100644 --- a/doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml +++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml index 3592e60..1f9d6c5 100644 --- a/doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml +++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/application.qml b/doc/src/snippets/declarative/qml-extending-types/properties/application.qml index 4978f05..c6fb3b8 100644 --- a/doc/src/snippets/declarative/qml-extending-types/properties/application.qml +++ b/doc/src/snippets/declarative/qml-extending-types/properties/application.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml b/doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml index 1d1b325..444392f 100644 --- a/doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml +++ b/doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/Button.qml b/doc/src/snippets/declarative/qml-extending-types/signals/Button.qml index 9272572..fd78ec1 100644 --- a/doc/src/snippets/declarative/qml-extending-types/signals/Button.qml +++ b/doc/src/snippets/declarative/qml-extending-types/signals/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/basic.qml b/doc/src/snippets/declarative/qml-extending-types/signals/basic.qml index 272c972..04af70e 100644 --- a/doc/src/snippets/declarative/qml-extending-types/signals/basic.qml +++ b/doc/src/snippets/declarative/qml-extending-types/signals/basic.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml b/doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml index 4b1f217..52f77f2 100644 --- a/doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml +++ b/doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml b/doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml index ae14281..a5df041 100644 --- a/doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml +++ b/doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml b/doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml index 742ab18..932c6cf 100644 --- a/doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml +++ b/doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml b/doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml index f513f5f..69eb91a 100644 --- a/doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml +++ b/doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/anchors1.qml b/doc/src/snippets/declarative/qml-intro/anchors1.qml index 077eab2..b958138 100644 --- a/doc/src/snippets/declarative/qml-intro/anchors1.qml +++ b/doc/src/snippets/declarative/qml-intro/anchors1.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/anchors2.qml b/doc/src/snippets/declarative/qml-intro/anchors2.qml index 79f180d..2c4ce11 100644 --- a/doc/src/snippets/declarative/qml-intro/anchors2.qml +++ b/doc/src/snippets/declarative/qml-intro/anchors2.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/anchors3.qml b/doc/src/snippets/declarative/qml-intro/anchors3.qml index db42e6b..24851af 100644 --- a/doc/src/snippets/declarative/qml-intro/anchors3.qml +++ b/doc/src/snippets/declarative/qml-intro/anchors3.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/hello-world1.qml b/doc/src/snippets/declarative/qml-intro/hello-world1.qml index 176f4f4..81ad333 100644 --- a/doc/src/snippets/declarative/qml-intro/hello-world1.qml +++ b/doc/src/snippets/declarative/qml-intro/hello-world1.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/hello-world2.qml b/doc/src/snippets/declarative/qml-intro/hello-world2.qml index 98f04ec..2564e25 100644 --- a/doc/src/snippets/declarative/qml-intro/hello-world2.qml +++ b/doc/src/snippets/declarative/qml-intro/hello-world2.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/hello-world3.qml b/doc/src/snippets/declarative/qml-intro/hello-world3.qml index abf684c..03358d0 100644 --- a/doc/src/snippets/declarative/qml-intro/hello-world3.qml +++ b/doc/src/snippets/declarative/qml-intro/hello-world3.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/hello-world4.qml b/doc/src/snippets/declarative/qml-intro/hello-world4.qml index de794ca..832e37d 100644 --- a/doc/src/snippets/declarative/qml-intro/hello-world4.qml +++ b/doc/src/snippets/declarative/qml-intro/hello-world4.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/hello-world5.qml b/doc/src/snippets/declarative/qml-intro/hello-world5.qml index 95ec6c8..7357282 100644 --- a/doc/src/snippets/declarative/qml-intro/hello-world5.qml +++ b/doc/src/snippets/declarative/qml-intro/hello-world5.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/number-animation1.qml b/doc/src/snippets/declarative/qml-intro/number-animation1.qml index aa5c109..ccf2d36 100644 --- a/doc/src/snippets/declarative/qml-intro/number-animation1.qml +++ b/doc/src/snippets/declarative/qml-intro/number-animation1.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/number-animation2.qml b/doc/src/snippets/declarative/qml-intro/number-animation2.qml index 9c6a4bc..7be22b5 100644 --- a/doc/src/snippets/declarative/qml-intro/number-animation2.qml +++ b/doc/src/snippets/declarative/qml-intro/number-animation2.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/rectangle.qml b/doc/src/snippets/declarative/qml-intro/rectangle.qml index ccfa514..b25accc 100644 --- a/doc/src/snippets/declarative/qml-intro/rectangle.qml +++ b/doc/src/snippets/declarative/qml-intro/rectangle.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml b/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml index 3ff1905..c789bbe 100644 --- a/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml +++ b/doc/src/snippets/declarative/qml-intro/sequential-animation1.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml b/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml index 47c8d6a..b2b1a57 100644 --- a/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml +++ b/doc/src/snippets/declarative/qml-intro/sequential-animation2.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml b/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml index 530907a..d840575 100644 --- a/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml +++ b/doc/src/snippets/declarative/qml-intro/sequential-animation3.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/states1.qml b/doc/src/snippets/declarative/qml-intro/states1.qml index e63551a..270d6c3 100644 --- a/doc/src/snippets/declarative/qml-intro/states1.qml +++ b/doc/src/snippets/declarative/qml-intro/states1.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qml-intro/transformations1.qml b/doc/src/snippets/declarative/qml-intro/transformations1.qml index 2fea733..7be79c8 100644 --- a/doc/src/snippets/declarative/qml-intro/transformations1.qml +++ b/doc/src/snippets/declarative/qml-intro/transformations1.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/context-advanced/MyItem.qml b/doc/src/snippets/declarative/qtbinding/context-advanced/MyItem.qml index 607651a..319dff2 100644 --- a/doc/src/snippets/declarative/qtbinding/context-advanced/MyItem.qml +++ b/doc/src/snippets/declarative/qtbinding/context-advanced/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/context-advanced/applicationdata.h b/doc/src/snippets/declarative/qtbinding/context-advanced/applicationdata.h index 930e381..0a6d2e0 100644 --- a/doc/src/snippets/declarative/qtbinding/context-advanced/applicationdata.h +++ b/doc/src/snippets/declarative/qtbinding/context-advanced/applicationdata.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/context-advanced/connections.qml b/doc/src/snippets/declarative/qtbinding/context-advanced/connections.qml index 749bea3..1b16da0 100644 --- a/doc/src/snippets/declarative/qtbinding/context-advanced/connections.qml +++ b/doc/src/snippets/declarative/qtbinding/context-advanced/connections.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/context-advanced/main.cpp b/doc/src/snippets/declarative/qtbinding/context-advanced/main.cpp index b92215b..fd5f780 100644 --- a/doc/src/snippets/declarative/qtbinding/context-advanced/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/context-advanced/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/context/MyItem.qml b/doc/src/snippets/declarative/qtbinding/context/MyItem.qml index faa42dc..8137f24 100644 --- a/doc/src/snippets/declarative/qtbinding/context/MyItem.qml +++ b/doc/src/snippets/declarative/qtbinding/context/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/context/main.cpp b/doc/src/snippets/declarative/qtbinding/context/main.cpp index bbe9956..f4149ac 100644 --- a/doc/src/snippets/declarative/qtbinding/context/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/context/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/enums/imageviewer.h b/doc/src/snippets/declarative/qtbinding/enums/imageviewer.h index 8aaddee..743a69b 100644 --- a/doc/src/snippets/declarative/qtbinding/enums/imageviewer.h +++ b/doc/src/snippets/declarative/qtbinding/enums/imageviewer.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/enums/main.cpp b/doc/src/snippets/declarative/qtbinding/enums/main.cpp index 9243f4b..3603c34 100644 --- a/doc/src/snippets/declarative/qtbinding/enums/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/enums/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/enums/standalone.qml b/doc/src/snippets/declarative/qtbinding/enums/standalone.qml index ad6c14c..5721870 100644 --- a/doc/src/snippets/declarative/qtbinding/enums/standalone.qml +++ b/doc/src/snippets/declarative/qtbinding/enums/standalone.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/functions-cpp/MyItem.qml b/doc/src/snippets/declarative/qtbinding/functions-cpp/MyItem.qml index 8d8cd56..efad92a 100644 --- a/doc/src/snippets/declarative/qtbinding/functions-cpp/MyItem.qml +++ b/doc/src/snippets/declarative/qtbinding/functions-cpp/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp b/doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp index 91d6aec..48db128 100644 --- a/doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/functions-cpp/myclass.h b/doc/src/snippets/declarative/qtbinding/functions-cpp/myclass.h index 76c628e..e428b2d 100644 --- a/doc/src/snippets/declarative/qtbinding/functions-cpp/myclass.h +++ b/doc/src/snippets/declarative/qtbinding/functions-cpp/myclass.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/functions-qml/MyItem.qml b/doc/src/snippets/declarative/qtbinding/functions-qml/MyItem.qml index 6161d6e..8709332 100644 --- a/doc/src/snippets/declarative/qtbinding/functions-qml/MyItem.qml +++ b/doc/src/snippets/declarative/qtbinding/functions-qml/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/functions-qml/main.cpp b/doc/src/snippets/declarative/qtbinding/functions-qml/main.cpp index 3e9e51e..8f377ec 100644 --- a/doc/src/snippets/declarative/qtbinding/functions-qml/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/functions-qml/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/loading/MyItem.qml b/doc/src/snippets/declarative/qtbinding/loading/MyItem.qml index 40138f6..bbce1c1 100644 --- a/doc/src/snippets/declarative/qtbinding/loading/MyItem.qml +++ b/doc/src/snippets/declarative/qtbinding/loading/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/loading/main.cpp b/doc/src/snippets/declarative/qtbinding/loading/main.cpp index bd400b0..13947b0 100644 --- a/doc/src/snippets/declarative/qtbinding/loading/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/loading/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h b/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h index cec9757..d61c955 100644 --- a/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h +++ b/doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/newelements/main.cpp b/doc/src/snippets/declarative/qtbinding/newelements/main.cpp index 57994ca..fbe8bec 100644 --- a/doc/src/snippets/declarative/qtbinding/newelements/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/newelements/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/newelements/standalone.qml b/doc/src/snippets/declarative/qtbinding/newelements/standalone.qml index 7345f21..e800ef4 100644 --- a/doc/src/snippets/declarative/qtbinding/newelements/standalone.qml +++ b/doc/src/snippets/declarative/qtbinding/newelements/standalone.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/properties-cpp/MyItem.qml b/doc/src/snippets/declarative/qtbinding/properties-cpp/MyItem.qml index 9db4b93..36f23dc 100644 --- a/doc/src/snippets/declarative/qtbinding/properties-cpp/MyItem.qml +++ b/doc/src/snippets/declarative/qtbinding/properties-cpp/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/properties-cpp/applicationdata.h b/doc/src/snippets/declarative/qtbinding/properties-cpp/applicationdata.h index 763a451..f317d40 100644 --- a/doc/src/snippets/declarative/qtbinding/properties-cpp/applicationdata.h +++ b/doc/src/snippets/declarative/qtbinding/properties-cpp/applicationdata.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/properties-cpp/main.cpp b/doc/src/snippets/declarative/qtbinding/properties-cpp/main.cpp index 36b508d..b3a4ed5 100644 --- a/doc/src/snippets/declarative/qtbinding/properties-cpp/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/properties-cpp/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/properties-qml/MyItem.qml b/doc/src/snippets/declarative/qtbinding/properties-qml/MyItem.qml index a43ded8..e4e1002 100644 --- a/doc/src/snippets/declarative/qtbinding/properties-qml/MyItem.qml +++ b/doc/src/snippets/declarative/qtbinding/properties-qml/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/properties-qml/main.cpp b/doc/src/snippets/declarative/qtbinding/properties-qml/main.cpp index d8daff8..4dc416a 100644 --- a/doc/src/snippets/declarative/qtbinding/properties-qml/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/properties-qml/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/resources/main.cpp b/doc/src/snippets/declarative/qtbinding/resources/main.cpp index 09aaa99..b297716 100644 --- a/doc/src/snippets/declarative/qtbinding/resources/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/resources/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/resources/main.qml b/doc/src/snippets/declarative/qtbinding/resources/main.qml index 43029cf..00cbb86 100644 --- a/doc/src/snippets/declarative/qtbinding/resources/main.qml +++ b/doc/src/snippets/declarative/qtbinding/resources/main.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/signals-cpp/MyItem.qml b/doc/src/snippets/declarative/qtbinding/signals-cpp/MyItem.qml index d900830..618b90a 100644 --- a/doc/src/snippets/declarative/qtbinding/signals-cpp/MyItem.qml +++ b/doc/src/snippets/declarative/qtbinding/signals-cpp/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h b/doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h index 7288d11..aed5f01 100644 --- a/doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h +++ b/doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/signals-cpp/main.cpp b/doc/src/snippets/declarative/qtbinding/signals-cpp/main.cpp index e5dd33c..9da0072 100644 --- a/doc/src/snippets/declarative/qtbinding/signals-cpp/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/signals-cpp/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/signals-cpp/standalone.qml b/doc/src/snippets/declarative/qtbinding/signals-cpp/standalone.qml index 4027b19..d2f2fb9 100644 --- a/doc/src/snippets/declarative/qtbinding/signals-cpp/standalone.qml +++ b/doc/src/snippets/declarative/qtbinding/signals-cpp/standalone.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/signals-qml/MyItem.qml b/doc/src/snippets/declarative/qtbinding/signals-qml/MyItem.qml index e4b6ced..1275919 100644 --- a/doc/src/snippets/declarative/qtbinding/signals-qml/MyItem.qml +++ b/doc/src/snippets/declarative/qtbinding/signals-qml/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/signals-qml/main.cpp b/doc/src/snippets/declarative/qtbinding/signals-qml/main.cpp index f1d03c4..cede454 100644 --- a/doc/src/snippets/declarative/qtbinding/signals-qml/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/signals-qml/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/signals-qml/myclass.h b/doc/src/snippets/declarative/qtbinding/signals-qml/myclass.h index c326a54..810b20a 100644 --- a/doc/src/snippets/declarative/qtbinding/signals-qml/myclass.h +++ b/doc/src/snippets/declarative/qtbinding/signals-qml/myclass.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml b/doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml index dd59fed..dc7880a 100644 --- a/doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml +++ b/doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp b/doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp index 9986264..84b0a2d 100644 --- a/doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp +++ b/doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/qtobject.qml b/doc/src/snippets/declarative/qtobject.qml index e6e98c2..1ac8653 100644 --- a/doc/src/snippets/declarative/qtobject.qml +++ b/doc/src/snippets/declarative/qtobject.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/rectangle/rect-border-width.qml b/doc/src/snippets/declarative/rectangle/rect-border-width.qml index 3b2a4e5..f34582c 100644 --- a/doc/src/snippets/declarative/rectangle/rect-border-width.qml +++ b/doc/src/snippets/declarative/rectangle/rect-border-width.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/rectangle/rectangle-colors.qml b/doc/src/snippets/declarative/rectangle/rectangle-colors.qml index df364bc..da41f3c 100644 --- a/doc/src/snippets/declarative/rectangle/rectangle-colors.qml +++ b/doc/src/snippets/declarative/rectangle/rectangle-colors.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/rectangle/rectangle-gradient.qml b/doc/src/snippets/declarative/rectangle/rectangle-gradient.qml index d727e84..67647db 100644 --- a/doc/src/snippets/declarative/rectangle/rectangle-gradient.qml +++ b/doc/src/snippets/declarative/rectangle/rectangle-gradient.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/rectangle/rectangle-smooth.qml b/doc/src/snippets/declarative/rectangle/rectangle-smooth.qml index 4cb1050..a7f93e8 100644 --- a/doc/src/snippets/declarative/rectangle/rectangle-smooth.qml +++ b/doc/src/snippets/declarative/rectangle/rectangle-smooth.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/rectangle/rectangle.qml b/doc/src/snippets/declarative/rectangle/rectangle.qml index 7bb7c58..971f1e6 100644 --- a/doc/src/snippets/declarative/rectangle/rectangle.qml +++ b/doc/src/snippets/declarative/rectangle/rectangle.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml b/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml index 4835cfe..e1b4461 100644 --- a/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml +++ b/doc/src/snippets/declarative/repeaters/repeater-grid-index.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/repeaters/repeater.qml b/doc/src/snippets/declarative/repeaters/repeater.qml index f3a5505..ad39c7b 100644 --- a/doc/src/snippets/declarative/repeaters/repeater.qml +++ b/doc/src/snippets/declarative/repeaters/repeater.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/rotation.qml b/doc/src/snippets/declarative/rotation.qml index 7366775..8ce53ec 100644 --- a/doc/src/snippets/declarative/rotation.qml +++ b/doc/src/snippets/declarative/rotation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/rotationanimation.qml b/doc/src/snippets/declarative/rotationanimation.qml index c907287..479642a 100644 --- a/doc/src/snippets/declarative/rotationanimation.qml +++ b/doc/src/snippets/declarative/rotationanimation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/row.qml b/doc/src/snippets/declarative/row.qml index 4e4bdd3..e6cf061 100644 --- a/doc/src/snippets/declarative/row.qml +++ b/doc/src/snippets/declarative/row.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/row/row.qml b/doc/src/snippets/declarative/row/row.qml index b19bdc2..5d39047 100644 --- a/doc/src/snippets/declarative/row/row.qml +++ b/doc/src/snippets/declarative/row/row.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/sequentialanimation.qml b/doc/src/snippets/declarative/sequentialanimation.qml index c8788ac..cafe437 100644 --- a/doc/src/snippets/declarative/sequentialanimation.qml +++ b/doc/src/snippets/declarative/sequentialanimation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/smoothedanimation.qml b/doc/src/snippets/declarative/smoothedanimation.qml index 06e1555..27898f3 100644 --- a/doc/src/snippets/declarative/smoothedanimation.qml +++ b/doc/src/snippets/declarative/smoothedanimation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/springanimation.qml b/doc/src/snippets/declarative/springanimation.qml index 2051dbe..8b29773b 100644 --- a/doc/src/snippets/declarative/springanimation.qml +++ b/doc/src/snippets/declarative/springanimation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/state-when.qml b/doc/src/snippets/declarative/state-when.qml index 583f3ba..6a868f5 100644 --- a/doc/src/snippets/declarative/state-when.qml +++ b/doc/src/snippets/declarative/state-when.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/state.qml b/doc/src/snippets/declarative/state.qml index 07fd21b..2e493bf 100644 --- a/doc/src/snippets/declarative/state.qml +++ b/doc/src/snippets/declarative/state.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/states.qml b/doc/src/snippets/declarative/states.qml index ee110aa..c3b7197 100644 --- a/doc/src/snippets/declarative/states.qml +++ b/doc/src/snippets/declarative/states.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/systempalette.qml b/doc/src/snippets/declarative/systempalette.qml index 53410a1..a3ee7c0 100644 --- a/doc/src/snippets/declarative/systempalette.qml +++ b/doc/src/snippets/declarative/systempalette.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/text/onLinkActivated.qml b/doc/src/snippets/declarative/text/onLinkActivated.qml index e9fd431..10195f2 100644 --- a/doc/src/snippets/declarative/text/onLinkActivated.qml +++ b/doc/src/snippets/declarative/text/onLinkActivated.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/texteditor.qml b/doc/src/snippets/declarative/texteditor.qml index 5596140..2ed57a7 100644 --- a/doc/src/snippets/declarative/texteditor.qml +++ b/doc/src/snippets/declarative/texteditor.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/transition-from-to.qml b/doc/src/snippets/declarative/transition-from-to.qml index 4fe39c5..5fde653 100644 --- a/doc/src/snippets/declarative/transition-from-to.qml +++ b/doc/src/snippets/declarative/transition-from-to.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/transition-reversible.qml b/doc/src/snippets/declarative/transition-reversible.qml index e3fec2f..c67fd80 100644 --- a/doc/src/snippets/declarative/transition-reversible.qml +++ b/doc/src/snippets/declarative/transition-reversible.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/transition.qml b/doc/src/snippets/declarative/transition.qml index 9154c3c..0546554 100644 --- a/doc/src/snippets/declarative/transition.qml +++ b/doc/src/snippets/declarative/transition.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/visualdatamodel.qml b/doc/src/snippets/declarative/visualdatamodel.qml index e9ad800..7b42087 100644 --- a/doc/src/snippets/declarative/visualdatamodel.qml +++ b/doc/src/snippets/declarative/visualdatamodel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/visualdatamodel_rootindex/main.cpp b/doc/src/snippets/declarative/visualdatamodel_rootindex/main.cpp index 8d8004d..1f6179b 100644 --- a/doc/src/snippets/declarative/visualdatamodel_rootindex/main.cpp +++ b/doc/src/snippets/declarative/visualdatamodel_rootindex/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/visualdatamodel_rootindex/view.qml b/doc/src/snippets/declarative/visualdatamodel_rootindex/view.qml index bceaac8..12abf82 100644 --- a/doc/src/snippets/declarative/visualdatamodel_rootindex/view.qml +++ b/doc/src/snippets/declarative/visualdatamodel_rootindex/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/workerscript.qml b/doc/src/snippets/declarative/workerscript.qml index 95e787c..06d15f9 100644 --- a/doc/src/snippets/declarative/workerscript.qml +++ b/doc/src/snippets/declarative/workerscript.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/declarative/xmlrole.qml b/doc/src/snippets/declarative/xmlrole.qml index efa59eb..fbae782 100644 --- a/doc/src/snippets/declarative/xmlrole.qml +++ b/doc/src/snippets/declarative/xmlrole.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/autoconnection/imagedialog.cpp b/doc/src/snippets/designer/autoconnection/imagedialog.cpp index 3fa8d1a..099b9cb 100644 --- a/doc/src/snippets/designer/autoconnection/imagedialog.cpp +++ b/doc/src/snippets/designer/autoconnection/imagedialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/autoconnection/imagedialog.h b/doc/src/snippets/designer/autoconnection/imagedialog.h index 15cc222..3990289 100644 --- a/doc/src/snippets/designer/autoconnection/imagedialog.h +++ b/doc/src/snippets/designer/autoconnection/imagedialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/autoconnection/main.cpp b/doc/src/snippets/designer/autoconnection/main.cpp index f34e083..5312244 100644 --- a/doc/src/snippets/designer/autoconnection/main.cpp +++ b/doc/src/snippets/designer/autoconnection/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/imagedialog/main.cpp b/doc/src/snippets/designer/imagedialog/main.cpp index 8f8e672..1089586 100644 --- a/doc/src/snippets/designer/imagedialog/main.cpp +++ b/doc/src/snippets/designer/imagedialog/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/multipleinheritance/imagedialog.cpp b/doc/src/snippets/designer/multipleinheritance/imagedialog.cpp index d74ce99..aef1e2f 100644 --- a/doc/src/snippets/designer/multipleinheritance/imagedialog.cpp +++ b/doc/src/snippets/designer/multipleinheritance/imagedialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/multipleinheritance/imagedialog.h b/doc/src/snippets/designer/multipleinheritance/imagedialog.h index 2ad56c8..9321058 100644 --- a/doc/src/snippets/designer/multipleinheritance/imagedialog.h +++ b/doc/src/snippets/designer/multipleinheritance/imagedialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/multipleinheritance/main.cpp b/doc/src/snippets/designer/multipleinheritance/main.cpp index f34e083..5312244 100644 --- a/doc/src/snippets/designer/multipleinheritance/main.cpp +++ b/doc/src/snippets/designer/multipleinheritance/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/noautoconnection/imagedialog.cpp b/doc/src/snippets/designer/noautoconnection/imagedialog.cpp index 99d5f99..fd3bfa3 100644 --- a/doc/src/snippets/designer/noautoconnection/imagedialog.cpp +++ b/doc/src/snippets/designer/noautoconnection/imagedialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/noautoconnection/imagedialog.h b/doc/src/snippets/designer/noautoconnection/imagedialog.h index d6db965..45b2431 100644 --- a/doc/src/snippets/designer/noautoconnection/imagedialog.h +++ b/doc/src/snippets/designer/noautoconnection/imagedialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/noautoconnection/main.cpp b/doc/src/snippets/designer/noautoconnection/main.cpp index f34e083..5312244 100644 --- a/doc/src/snippets/designer/noautoconnection/main.cpp +++ b/doc/src/snippets/designer/noautoconnection/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/singleinheritance/imagedialog.cpp b/doc/src/snippets/designer/singleinheritance/imagedialog.cpp index a9a5dc4..71fd1c4 100644 --- a/doc/src/snippets/designer/singleinheritance/imagedialog.cpp +++ b/doc/src/snippets/designer/singleinheritance/imagedialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/singleinheritance/imagedialog.h b/doc/src/snippets/designer/singleinheritance/imagedialog.h index 872aaec..17402a7 100644 --- a/doc/src/snippets/designer/singleinheritance/imagedialog.h +++ b/doc/src/snippets/designer/singleinheritance/imagedialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/designer/singleinheritance/main.cpp b/doc/src/snippets/designer/singleinheritance/main.cpp index f34e083..5312244 100644 --- a/doc/src/snippets/designer/singleinheritance/main.cpp +++ b/doc/src/snippets/designer/singleinheritance/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dialogs/dialogs.cpp b/doc/src/snippets/dialogs/dialogs.cpp index cdff368..de9a2d1 100644 --- a/doc/src/snippets/dialogs/dialogs.cpp +++ b/doc/src/snippets/dialogs/dialogs.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dockwidgets/main.cpp b/doc/src/snippets/dockwidgets/main.cpp index cb05153..0778da8 100644 --- a/doc/src/snippets/dockwidgets/main.cpp +++ b/doc/src/snippets/dockwidgets/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dockwidgets/mainwindow.cpp b/doc/src/snippets/dockwidgets/mainwindow.cpp index 5c07568..10b7531 100644 --- a/doc/src/snippets/dockwidgets/mainwindow.cpp +++ b/doc/src/snippets/dockwidgets/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dockwidgets/mainwindow.h b/doc/src/snippets/dockwidgets/mainwindow.h index 294f64a..47954b2 100644 --- a/doc/src/snippets/dockwidgets/mainwindow.h +++ b/doc/src/snippets/dockwidgets/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/draganddrop/dragwidget.cpp b/doc/src/snippets/draganddrop/dragwidget.cpp index f998fe3..8cfebf0 100644 --- a/doc/src/snippets/draganddrop/dragwidget.cpp +++ b/doc/src/snippets/draganddrop/dragwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/draganddrop/dragwidget.h b/doc/src/snippets/draganddrop/dragwidget.h index 9c0eb35..6b7c36e 100644 --- a/doc/src/snippets/draganddrop/dragwidget.h +++ b/doc/src/snippets/draganddrop/dragwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/draganddrop/main.cpp b/doc/src/snippets/draganddrop/main.cpp index ef2cb3a..ea8fb20 100644 --- a/doc/src/snippets/draganddrop/main.cpp +++ b/doc/src/snippets/draganddrop/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/draganddrop/mainwindow.cpp b/doc/src/snippets/draganddrop/mainwindow.cpp index b1840c9..28d2efc 100644 --- a/doc/src/snippets/draganddrop/mainwindow.cpp +++ b/doc/src/snippets/draganddrop/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/draganddrop/mainwindow.h b/doc/src/snippets/draganddrop/mainwindow.h index 11417d3..048d92c 100644 --- a/doc/src/snippets/draganddrop/mainwindow.h +++ b/doc/src/snippets/draganddrop/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dragging/main.cpp b/doc/src/snippets/dragging/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/dragging/main.cpp +++ b/doc/src/snippets/dragging/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dragging/mainwindow.cpp b/doc/src/snippets/dragging/mainwindow.cpp index 3f36672..0b3f642 100644 --- a/doc/src/snippets/dragging/mainwindow.cpp +++ b/doc/src/snippets/dragging/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dragging/mainwindow.h b/doc/src/snippets/dragging/mainwindow.h index 85e9468..e2dbbb7 100644 --- a/doc/src/snippets/dragging/mainwindow.h +++ b/doc/src/snippets/dragging/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dropactions/main.cpp b/doc/src/snippets/dropactions/main.cpp index fc665f7..582eaa6 100644 --- a/doc/src/snippets/dropactions/main.cpp +++ b/doc/src/snippets/dropactions/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dropactions/window.cpp b/doc/src/snippets/dropactions/window.cpp index eba00ad..6978b9ea 100644 --- a/doc/src/snippets/dropactions/window.cpp +++ b/doc/src/snippets/dropactions/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dropactions/window.h b/doc/src/snippets/dropactions/window.h index 00b3e50..4d0074d 100644 --- a/doc/src/snippets/dropactions/window.h +++ b/doc/src/snippets/dropactions/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/droparea.cpp b/doc/src/snippets/droparea.cpp index bb49dd7..6556f05 100644 --- a/doc/src/snippets/droparea.cpp +++ b/doc/src/snippets/droparea.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dropevents/main.cpp b/doc/src/snippets/dropevents/main.cpp index e0b83c1..0a58856 100644 --- a/doc/src/snippets/dropevents/main.cpp +++ b/doc/src/snippets/dropevents/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dropevents/window.cpp b/doc/src/snippets/dropevents/window.cpp index 015497b..b4fba54 100644 --- a/doc/src/snippets/dropevents/window.cpp +++ b/doc/src/snippets/dropevents/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/dropevents/window.h b/doc/src/snippets/dropevents/window.h index 00b3e50..4d0074d 100644 --- a/doc/src/snippets/dropevents/window.h +++ b/doc/src/snippets/dropevents/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/droprectangle/main.cpp b/doc/src/snippets/droprectangle/main.cpp index fc665f7..582eaa6 100644 --- a/doc/src/snippets/droprectangle/main.cpp +++ b/doc/src/snippets/droprectangle/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/droprectangle/window.cpp b/doc/src/snippets/droprectangle/window.cpp index 918023d..9b82d0e 100644 --- a/doc/src/snippets/droprectangle/window.cpp +++ b/doc/src/snippets/droprectangle/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/droprectangle/window.h b/doc/src/snippets/droprectangle/window.h index 1856f96..f06a3e2 100644 --- a/doc/src/snippets/droprectangle/window.h +++ b/doc/src/snippets/droprectangle/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/eventfilters/filterobject.cpp b/doc/src/snippets/eventfilters/filterobject.cpp index 9ee79d2..7e28af9 100644 --- a/doc/src/snippets/eventfilters/filterobject.cpp +++ b/doc/src/snippets/eventfilters/filterobject.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/eventfilters/filterobject.h b/doc/src/snippets/eventfilters/filterobject.h index 346551c..f5c36f0 100644 --- a/doc/src/snippets/eventfilters/filterobject.h +++ b/doc/src/snippets/eventfilters/filterobject.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/eventfilters/main.cpp b/doc/src/snippets/eventfilters/main.cpp index d4d6e64..0f1b6f8 100644 --- a/doc/src/snippets/eventfilters/main.cpp +++ b/doc/src/snippets/eventfilters/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/events/events.cpp b/doc/src/snippets/events/events.cpp index 95e52f0..528ac59 100644 --- a/doc/src/snippets/events/events.cpp +++ b/doc/src/snippets/events/events.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/explicitlysharedemployee/employee.cpp b/doc/src/snippets/explicitlysharedemployee/employee.cpp index 5a8adc9..91784a3 100644 --- a/doc/src/snippets/explicitlysharedemployee/employee.cpp +++ b/doc/src/snippets/explicitlysharedemployee/employee.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/explicitlysharedemployee/employee.h b/doc/src/snippets/explicitlysharedemployee/employee.h index 75cc58c..5b0ce95 100644 --- a/doc/src/snippets/explicitlysharedemployee/employee.h +++ b/doc/src/snippets/explicitlysharedemployee/employee.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/explicitlysharedemployee/main.cpp b/doc/src/snippets/explicitlysharedemployee/main.cpp index 0174e68..66f1aef 100644 --- a/doc/src/snippets/explicitlysharedemployee/main.cpp +++ b/doc/src/snippets/explicitlysharedemployee/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/file/file.cpp b/doc/src/snippets/file/file.cpp index e9cb6a6..ede4aa9 100644 --- a/doc/src/snippets/file/file.cpp +++ b/doc/src/snippets/file/file.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/filedialogurls.cpp b/doc/src/snippets/filedialogurls.cpp index 2023fc2..2b6cdaa 100644 --- a/doc/src/snippets/filedialogurls.cpp +++ b/doc/src/snippets/filedialogurls.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/fileinfo/main.cpp b/doc/src/snippets/fileinfo/main.cpp index e5a8092..d0fc9f5 100644 --- a/doc/src/snippets/fileinfo/main.cpp +++ b/doc/src/snippets/fileinfo/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/graphicssceneadditemsnippet.cpp b/doc/src/snippets/graphicssceneadditemsnippet.cpp index d505133..2c2c0d0 100644 --- a/doc/src/snippets/graphicssceneadditemsnippet.cpp +++ b/doc/src/snippets/graphicssceneadditemsnippet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/i18n-non-qt-class/main.cpp b/doc/src/snippets/i18n-non-qt-class/main.cpp index cede699..727bbf5 100644 --- a/doc/src/snippets/i18n-non-qt-class/main.cpp +++ b/doc/src/snippets/i18n-non-qt-class/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/i18n-non-qt-class/myclass.cpp b/doc/src/snippets/i18n-non-qt-class/myclass.cpp index f151b4d..dce3908 100644 --- a/doc/src/snippets/i18n-non-qt-class/myclass.cpp +++ b/doc/src/snippets/i18n-non-qt-class/myclass.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/i18n-non-qt-class/myclass.h b/doc/src/snippets/i18n-non-qt-class/myclass.h index 50eb030..ec49eab 100644 --- a/doc/src/snippets/i18n-non-qt-class/myclass.h +++ b/doc/src/snippets/i18n-non-qt-class/myclass.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/image/image.cpp b/doc/src/snippets/image/image.cpp index 11115ab..62d8308 100644 --- a/doc/src/snippets/image/image.cpp +++ b/doc/src/snippets/image/image.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/image/supportedformat.cpp b/doc/src/snippets/image/supportedformat.cpp index 290a9c3..55800d3 100644 --- a/doc/src/snippets/image/supportedformat.cpp +++ b/doc/src/snippets/image/supportedformat.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/inherited-slot/button.cpp b/doc/src/snippets/inherited-slot/button.cpp index e2700a8..aad3546 100644 --- a/doc/src/snippets/inherited-slot/button.cpp +++ b/doc/src/snippets/inherited-slot/button.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/inherited-slot/button.h b/doc/src/snippets/inherited-slot/button.h index e8ac2aa..e75d7f3 100644 --- a/doc/src/snippets/inherited-slot/button.h +++ b/doc/src/snippets/inherited-slot/button.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/inherited-slot/main.cpp b/doc/src/snippets/inherited-slot/main.cpp index e5276b5..6d7432a 100644 --- a/doc/src/snippets/inherited-slot/main.cpp +++ b/doc/src/snippets/inherited-slot/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/itemselection/main.cpp b/doc/src/snippets/itemselection/main.cpp index 64f291d..5d32189 100644 --- a/doc/src/snippets/itemselection/main.cpp +++ b/doc/src/snippets/itemselection/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/itemselection/model.cpp b/doc/src/snippets/itemselection/model.cpp index 847f2bf..88fe0a8 100644 --- a/doc/src/snippets/itemselection/model.cpp +++ b/doc/src/snippets/itemselection/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/itemselection/model.h b/doc/src/snippets/itemselection/model.h index caad8f3..1ad5fd07a 100644 --- a/doc/src/snippets/itemselection/model.h +++ b/doc/src/snippets/itemselection/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/javastyle.cpp b/doc/src/snippets/javastyle.cpp index 6b89cb8..1cf7e55 100644 --- a/doc/src/snippets/javastyle.cpp +++ b/doc/src/snippets/javastyle.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/layouts/layouts.cpp b/doc/src/snippets/layouts/layouts.cpp index 58440f5..2fdde84 100644 --- a/doc/src/snippets/layouts/layouts.cpp +++ b/doc/src/snippets/layouts/layouts.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/mainwindowsnippet.cpp b/doc/src/snippets/mainwindowsnippet.cpp index 95f79a3..70e638e 100644 --- a/doc/src/snippets/mainwindowsnippet.cpp +++ b/doc/src/snippets/mainwindowsnippet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/matrix/matrix.cpp b/doc/src/snippets/matrix/matrix.cpp index f72555e..c7eb0b5 100644 --- a/doc/src/snippets/matrix/matrix.cpp +++ b/doc/src/snippets/matrix/matrix.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/mdiareasnippets.cpp b/doc/src/snippets/mdiareasnippets.cpp index b56dc78..9d626a3 100644 --- a/doc/src/snippets/mdiareasnippets.cpp +++ b/doc/src/snippets/mdiareasnippets.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/medianodesnippet.cpp b/doc/src/snippets/medianodesnippet.cpp index 83165ef..cc42c6f 100644 --- a/doc/src/snippets/medianodesnippet.cpp +++ b/doc/src/snippets/medianodesnippet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/moc/main.cpp b/doc/src/snippets/moc/main.cpp index 97941d0..1896926 100644 --- a/doc/src/snippets/moc/main.cpp +++ b/doc/src/snippets/moc/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/moc/myclass1.h b/doc/src/snippets/moc/myclass1.h index 60c933f..cee0ee1 100644 --- a/doc/src/snippets/moc/myclass1.h +++ b/doc/src/snippets/moc/myclass1.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/moc/myclass2.h b/doc/src/snippets/moc/myclass2.h index daea23c..63454c8 100644 --- a/doc/src/snippets/moc/myclass2.h +++ b/doc/src/snippets/moc/myclass2.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/moc/myclass3.h b/doc/src/snippets/moc/myclass3.h index c8dcf33..1a314b0 100644 --- a/doc/src/snippets/moc/myclass3.h +++ b/doc/src/snippets/moc/myclass3.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/modelview-subclasses/main.cpp b/doc/src/snippets/modelview-subclasses/main.cpp index f70a7de..deb30f6 100644 --- a/doc/src/snippets/modelview-subclasses/main.cpp +++ b/doc/src/snippets/modelview-subclasses/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/modelview-subclasses/model.cpp b/doc/src/snippets/modelview-subclasses/model.cpp index b1f977b..f8e1b70 100644 --- a/doc/src/snippets/modelview-subclasses/model.cpp +++ b/doc/src/snippets/modelview-subclasses/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/modelview-subclasses/model.h b/doc/src/snippets/modelview-subclasses/model.h index 6ff20cb..1e204f6 100644 --- a/doc/src/snippets/modelview-subclasses/model.h +++ b/doc/src/snippets/modelview-subclasses/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/modelview-subclasses/view.cpp b/doc/src/snippets/modelview-subclasses/view.cpp index 6f58ecd..bbbd41e 100644 --- a/doc/src/snippets/modelview-subclasses/view.cpp +++ b/doc/src/snippets/modelview-subclasses/view.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/modelview-subclasses/view.h b/doc/src/snippets/modelview-subclasses/view.h index 0722b77..cbceca7 100644 --- a/doc/src/snippets/modelview-subclasses/view.h +++ b/doc/src/snippets/modelview-subclasses/view.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/modelview-subclasses/window.cpp b/doc/src/snippets/modelview-subclasses/window.cpp index 384b22c..d662a8a 100644 --- a/doc/src/snippets/modelview-subclasses/window.cpp +++ b/doc/src/snippets/modelview-subclasses/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/modelview-subclasses/window.h b/doc/src/snippets/modelview-subclasses/window.h index 9bb85a0..f8a9387 100644 --- a/doc/src/snippets/modelview-subclasses/window.h +++ b/doc/src/snippets/modelview-subclasses/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/myscrollarea.cpp b/doc/src/snippets/myscrollarea.cpp index 37f7f8d..93b487d 100644 --- a/doc/src/snippets/myscrollarea.cpp +++ b/doc/src/snippets/myscrollarea.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/network/tcpwait.cpp b/doc/src/snippets/network/tcpwait.cpp index 7536ae6..02cecb4 100644 --- a/doc/src/snippets/network/tcpwait.cpp +++ b/doc/src/snippets/network/tcpwait.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/ntfsp.cpp b/doc/src/snippets/ntfsp.cpp index 8a91158..5d45712 100644 --- a/doc/src/snippets/ntfsp.cpp +++ b/doc/src/snippets/ntfsp.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/painterpath/painterpath.cpp b/doc/src/snippets/painterpath/painterpath.cpp index 6043851..b8fe39a 100644 --- a/doc/src/snippets/painterpath/painterpath.cpp +++ b/doc/src/snippets/painterpath/painterpath.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/persistentindexes/main.cpp b/doc/src/snippets/persistentindexes/main.cpp index 09eedd6..bbba710 100644 --- a/doc/src/snippets/persistentindexes/main.cpp +++ b/doc/src/snippets/persistentindexes/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/persistentindexes/mainwindow.cpp b/doc/src/snippets/persistentindexes/mainwindow.cpp index cf806dc..b433ccb 100644 --- a/doc/src/snippets/persistentindexes/mainwindow.cpp +++ b/doc/src/snippets/persistentindexes/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/persistentindexes/mainwindow.h b/doc/src/snippets/persistentindexes/mainwindow.h index 448d0c3..2253d60 100644 --- a/doc/src/snippets/persistentindexes/mainwindow.h +++ b/doc/src/snippets/persistentindexes/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/persistentindexes/model.cpp b/doc/src/snippets/persistentindexes/model.cpp index a6bf545..d3629ee 100644 --- a/doc/src/snippets/persistentindexes/model.cpp +++ b/doc/src/snippets/persistentindexes/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/persistentindexes/model.h b/doc/src/snippets/persistentindexes/model.h index 02b77a1..143775e 100644 --- a/doc/src/snippets/persistentindexes/model.h +++ b/doc/src/snippets/persistentindexes/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/phonon.cpp b/doc/src/snippets/phonon.cpp index 63c976c..6e6fdcc 100644 --- a/doc/src/snippets/phonon.cpp +++ b/doc/src/snippets/phonon.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/phonon/samplebackend/main.cpp b/doc/src/snippets/phonon/samplebackend/main.cpp index 262f4d3..11903a6 100644 --- a/doc/src/snippets/phonon/samplebackend/main.cpp +++ b/doc/src/snippets/phonon/samplebackend/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/phononeffectparameter.cpp b/doc/src/snippets/phononeffectparameter.cpp index c4f7392..f65d242 100644 --- a/doc/src/snippets/phononeffectparameter.cpp +++ b/doc/src/snippets/phononeffectparameter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/phononobjectdescription.cpp b/doc/src/snippets/phononobjectdescription.cpp index 81dff84..aabd4c8 100644 --- a/doc/src/snippets/phononobjectdescription.cpp +++ b/doc/src/snippets/phononobjectdescription.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/picture/picture.cpp b/doc/src/snippets/picture/picture.cpp index 5283978..3cead76 100644 --- a/doc/src/snippets/picture/picture.cpp +++ b/doc/src/snippets/picture/picture.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/plaintextlayout/main.cpp b/doc/src/snippets/plaintextlayout/main.cpp index 2f81936..96485dc 100644 --- a/doc/src/snippets/plaintextlayout/main.cpp +++ b/doc/src/snippets/plaintextlayout/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/plaintextlayout/window.cpp b/doc/src/snippets/plaintextlayout/window.cpp index 66aa744..71def18 100644 --- a/doc/src/snippets/plaintextlayout/window.cpp +++ b/doc/src/snippets/plaintextlayout/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/plaintextlayout/window.h b/doc/src/snippets/plaintextlayout/window.h index edefa6c..4ca638d 100644 --- a/doc/src/snippets/plaintextlayout/window.h +++ b/doc/src/snippets/plaintextlayout/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/pointer/pointer.cpp b/doc/src/snippets/pointer/pointer.cpp index 3f13fc8..b4ff383 100644 --- a/doc/src/snippets/pointer/pointer.cpp +++ b/doc/src/snippets/pointer/pointer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/polygon/polygon.cpp b/doc/src/snippets/polygon/polygon.cpp index 177e830..8b81db6 100644 --- a/doc/src/snippets/polygon/polygon.cpp +++ b/doc/src/snippets/polygon/polygon.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/porting4-dropevents/main.cpp b/doc/src/snippets/porting4-dropevents/main.cpp index 2111749..90ba757 100644 --- a/doc/src/snippets/porting4-dropevents/main.cpp +++ b/doc/src/snippets/porting4-dropevents/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/porting4-dropevents/window.cpp b/doc/src/snippets/porting4-dropevents/window.cpp index 807e928..d883b14 100644 --- a/doc/src/snippets/porting4-dropevents/window.cpp +++ b/doc/src/snippets/porting4-dropevents/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/porting4-dropevents/window.h b/doc/src/snippets/porting4-dropevents/window.h index 83a1aeb..0e19cc8 100644 --- a/doc/src/snippets/porting4-dropevents/window.h +++ b/doc/src/snippets/porting4-dropevents/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/printing-qprinter/errors.cpp b/doc/src/snippets/printing-qprinter/errors.cpp index 9826d71..ff3ea90 100644 --- a/doc/src/snippets/printing-qprinter/errors.cpp +++ b/doc/src/snippets/printing-qprinter/errors.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/printing-qprinter/main.cpp b/doc/src/snippets/printing-qprinter/main.cpp index 0b0f159..804c225 100644 --- a/doc/src/snippets/printing-qprinter/main.cpp +++ b/doc/src/snippets/printing-qprinter/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/printing-qprinter/object.cpp b/doc/src/snippets/printing-qprinter/object.cpp index 73d8a4a..0ee8dbd 100644 --- a/doc/src/snippets/printing-qprinter/object.cpp +++ b/doc/src/snippets/printing-qprinter/object.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/printing-qprinter/object.h b/doc/src/snippets/printing-qprinter/object.h index 5eae825..310c00e 100644 --- a/doc/src/snippets/printing-qprinter/object.h +++ b/doc/src/snippets/printing-qprinter/object.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/process/process.cpp b/doc/src/snippets/process/process.cpp index daea6da..a545b73 100644 --- a/doc/src/snippets/process/process.cpp +++ b/doc/src/snippets/process/process.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qabstractsliderisnippet.cpp b/doc/src/snippets/qabstractsliderisnippet.cpp index 39df352..6b684e9 100644 --- a/doc/src/snippets/qabstractsliderisnippet.cpp +++ b/doc/src/snippets/qabstractsliderisnippet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qcalendarwidget/main.cpp b/doc/src/snippets/qcalendarwidget/main.cpp index 13bd2a7..aa635e0 100644 --- a/doc/src/snippets/qcalendarwidget/main.cpp +++ b/doc/src/snippets/qcalendarwidget/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qcolumnview/main.cpp b/doc/src/snippets/qcolumnview/main.cpp index 606b2e2..c39a4bb 100644 --- a/doc/src/snippets/qcolumnview/main.cpp +++ b/doc/src/snippets/qcolumnview/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qdbusextratypes/qdbusextratypes.cpp b/doc/src/snippets/qdbusextratypes/qdbusextratypes.cpp index 1392d78..1ab3488 100644 --- a/doc/src/snippets/qdbusextratypes/qdbusextratypes.cpp +++ b/doc/src/snippets/qdbusextratypes/qdbusextratypes.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qdebug/qdebugsnippet.cpp b/doc/src/snippets/qdebug/qdebugsnippet.cpp index 65dc3ae..8e668d1 100644 --- a/doc/src/snippets/qdebug/qdebugsnippet.cpp +++ b/doc/src/snippets/qdebug/qdebugsnippet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qdir-filepaths/main.cpp b/doc/src/snippets/qdir-filepaths/main.cpp index 92a13a5..5065bed 100644 --- a/doc/src/snippets/qdir-filepaths/main.cpp +++ b/doc/src/snippets/qdir-filepaths/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qdir-listfiles/main.cpp b/doc/src/snippets/qdir-listfiles/main.cpp index e292c64..cdce0d5 100644 --- a/doc/src/snippets/qdir-listfiles/main.cpp +++ b/doc/src/snippets/qdir-listfiles/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qdir-namefilters/main.cpp b/doc/src/snippets/qdir-namefilters/main.cpp index 53e9689..a72bab1 100644 --- a/doc/src/snippets/qdir-namefilters/main.cpp +++ b/doc/src/snippets/qdir-namefilters/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qelapsedtimer/main.cpp b/doc/src/snippets/qelapsedtimer/main.cpp index b136633..3e5b520 100644 --- a/doc/src/snippets/qelapsedtimer/main.cpp +++ b/doc/src/snippets/qelapsedtimer/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qfontdatabase/main.cpp b/doc/src/snippets/qfontdatabase/main.cpp index 1b8ff42..24ed688 100644 --- a/doc/src/snippets/qfontdatabase/main.cpp +++ b/doc/src/snippets/qfontdatabase/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qgl-namespace/main.cpp b/doc/src/snippets/qgl-namespace/main.cpp index e848129..7831961 100644 --- a/doc/src/snippets/qgl-namespace/main.cpp +++ b/doc/src/snippets/qgl-namespace/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlabel/main.cpp b/doc/src/snippets/qlabel/main.cpp index d249dd8..a87f161 100644 --- a/doc/src/snippets/qlabel/main.cpp +++ b/doc/src/snippets/qlabel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlineargradient/main.cpp b/doc/src/snippets/qlineargradient/main.cpp index 13458e6..fef9b3d 100644 --- a/doc/src/snippets/qlineargradient/main.cpp +++ b/doc/src/snippets/qlineargradient/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlineargradient/paintwidget.cpp b/doc/src/snippets/qlineargradient/paintwidget.cpp index b7cdad6..e86dfc9 100644 --- a/doc/src/snippets/qlineargradient/paintwidget.cpp +++ b/doc/src/snippets/qlineargradient/paintwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlineargradient/paintwidget.h b/doc/src/snippets/qlineargradient/paintwidget.h index 1e76215..95849a7 100644 --- a/doc/src/snippets/qlineargradient/paintwidget.h +++ b/doc/src/snippets/qlineargradient/paintwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistview-dnd/main.cpp b/doc/src/snippets/qlistview-dnd/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/qlistview-dnd/main.cpp +++ b/doc/src/snippets/qlistview-dnd/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistview-dnd/mainwindow.cpp b/doc/src/snippets/qlistview-dnd/mainwindow.cpp index 0092384..1f3cff0 100644 --- a/doc/src/snippets/qlistview-dnd/mainwindow.cpp +++ b/doc/src/snippets/qlistview-dnd/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistview-dnd/mainwindow.h b/doc/src/snippets/qlistview-dnd/mainwindow.h index 52ef051..191d6a0 100644 --- a/doc/src/snippets/qlistview-dnd/mainwindow.h +++ b/doc/src/snippets/qlistview-dnd/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistview-dnd/model.cpp b/doc/src/snippets/qlistview-dnd/model.cpp index bca71ee..b9f6542 100644 --- a/doc/src/snippets/qlistview-dnd/model.cpp +++ b/doc/src/snippets/qlistview-dnd/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistview-dnd/model.h b/doc/src/snippets/qlistview-dnd/model.h index 4ffacc9..8d3931d 100644 --- a/doc/src/snippets/qlistview-dnd/model.h +++ b/doc/src/snippets/qlistview-dnd/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistview-using/main.cpp b/doc/src/snippets/qlistview-using/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/qlistview-using/main.cpp +++ b/doc/src/snippets/qlistview-using/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistview-using/mainwindow.cpp b/doc/src/snippets/qlistview-using/mainwindow.cpp index 3070a03..26fca8c 100644 --- a/doc/src/snippets/qlistview-using/mainwindow.cpp +++ b/doc/src/snippets/qlistview-using/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistview-using/mainwindow.h b/doc/src/snippets/qlistview-using/mainwindow.h index 077a037..8ea66d7 100644 --- a/doc/src/snippets/qlistview-using/mainwindow.h +++ b/doc/src/snippets/qlistview-using/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistview-using/model.cpp b/doc/src/snippets/qlistview-using/model.cpp index 5a0eb34..1fb31cb 100644 --- a/doc/src/snippets/qlistview-using/model.cpp +++ b/doc/src/snippets/qlistview-using/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistview-using/model.h b/doc/src/snippets/qlistview-using/model.h index bcfac0f..1403e8a 100644 --- a/doc/src/snippets/qlistview-using/model.h +++ b/doc/src/snippets/qlistview-using/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistwidget-dnd/main.cpp b/doc/src/snippets/qlistwidget-dnd/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/qlistwidget-dnd/main.cpp +++ b/doc/src/snippets/qlistwidget-dnd/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistwidget-dnd/mainwindow.cpp b/doc/src/snippets/qlistwidget-dnd/mainwindow.cpp index cbf35b4..6d4cd0a 100644 --- a/doc/src/snippets/qlistwidget-dnd/mainwindow.cpp +++ b/doc/src/snippets/qlistwidget-dnd/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistwidget-dnd/mainwindow.h b/doc/src/snippets/qlistwidget-dnd/mainwindow.h index 24a043e..90ebd28 100644 --- a/doc/src/snippets/qlistwidget-dnd/mainwindow.h +++ b/doc/src/snippets/qlistwidget-dnd/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistwidget-using/main.cpp b/doc/src/snippets/qlistwidget-using/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/qlistwidget-using/main.cpp +++ b/doc/src/snippets/qlistwidget-using/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistwidget-using/mainwindow.cpp b/doc/src/snippets/qlistwidget-using/mainwindow.cpp index 3fce35b..0ec9c70 100644 --- a/doc/src/snippets/qlistwidget-using/mainwindow.cpp +++ b/doc/src/snippets/qlistwidget-using/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qlistwidget-using/mainwindow.h b/doc/src/snippets/qlistwidget-using/mainwindow.h index d85333c..536997b 100644 --- a/doc/src/snippets/qlistwidget-using/mainwindow.h +++ b/doc/src/snippets/qlistwidget-using/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmacnativewidget/main.mm b/doc/src/snippets/qmacnativewidget/main.mm index 369f919..a57dc19 100644 --- a/doc/src/snippets/qmacnativewidget/main.mm +++ b/doc/src/snippets/qmacnativewidget/main.mm @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmake/delegate.h b/doc/src/snippets/qmake/delegate.h index 26aee47..395fc44 100644 --- a/doc/src/snippets/qmake/delegate.h +++ b/doc/src/snippets/qmake/delegate.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmake/main.cpp b/doc/src/snippets/qmake/main.cpp index 26aee47..395fc44 100644 --- a/doc/src/snippets/qmake/main.cpp +++ b/doc/src/snippets/qmake/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmake/model.cpp b/doc/src/snippets/qmake/model.cpp index 26aee47..395fc44 100644 --- a/doc/src/snippets/qmake/model.cpp +++ b/doc/src/snippets/qmake/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmake/model.h b/doc/src/snippets/qmake/model.h index 26aee47..395fc44 100644 --- a/doc/src/snippets/qmake/model.h +++ b/doc/src/snippets/qmake/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmake/paintwidget_mac.cpp b/doc/src/snippets/qmake/paintwidget_mac.cpp index 26aee47..395fc44 100644 --- a/doc/src/snippets/qmake/paintwidget_mac.cpp +++ b/doc/src/snippets/qmake/paintwidget_mac.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmake/paintwidget_unix.cpp b/doc/src/snippets/qmake/paintwidget_unix.cpp index 598f588..3bc6b8b 100644 --- a/doc/src/snippets/qmake/paintwidget_unix.cpp +++ b/doc/src/snippets/qmake/paintwidget_unix.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmake/paintwidget_win.cpp b/doc/src/snippets/qmake/paintwidget_win.cpp index 26aee47..395fc44 100644 --- a/doc/src/snippets/qmake/paintwidget_win.cpp +++ b/doc/src/snippets/qmake/paintwidget_win.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmake/view.h b/doc/src/snippets/qmake/view.h index 26aee47..395fc44 100644 --- a/doc/src/snippets/qmake/view.h +++ b/doc/src/snippets/qmake/view.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmetaobject-invokable/main.cpp b/doc/src/snippets/qmetaobject-invokable/main.cpp index cae4a6a..0ad9873 100644 --- a/doc/src/snippets/qmetaobject-invokable/main.cpp +++ b/doc/src/snippets/qmetaobject-invokable/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmetaobject-invokable/window.cpp b/doc/src/snippets/qmetaobject-invokable/window.cpp index 623ab6e..4d9103c 100644 --- a/doc/src/snippets/qmetaobject-invokable/window.cpp +++ b/doc/src/snippets/qmetaobject-invokable/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qmetaobject-invokable/window.h b/doc/src/snippets/qmetaobject-invokable/window.h index a50de8a..db030a8 100644 --- a/doc/src/snippets/qmetaobject-invokable/window.h +++ b/doc/src/snippets/qmetaobject-invokable/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qprocess-environment/main.cpp b/doc/src/snippets/qprocess-environment/main.cpp index 905e2f0..974095f 100644 --- a/doc/src/snippets/qprocess-environment/main.cpp +++ b/doc/src/snippets/qprocess-environment/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qprocess/qprocess-simpleexecution.cpp b/doc/src/snippets/qprocess/qprocess-simpleexecution.cpp index 1825cd4..a5d097f 100644 --- a/doc/src/snippets/qprocess/qprocess-simpleexecution.cpp +++ b/doc/src/snippets/qprocess/qprocess-simpleexecution.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsignalmapper/buttonwidget.cpp b/doc/src/snippets/qsignalmapper/buttonwidget.cpp index ae080e1..35f3055 100644 --- a/doc/src/snippets/qsignalmapper/buttonwidget.cpp +++ b/doc/src/snippets/qsignalmapper/buttonwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsignalmapper/buttonwidget.h b/doc/src/snippets/qsignalmapper/buttonwidget.h index 776833f..095fc2c 100644 --- a/doc/src/snippets/qsignalmapper/buttonwidget.h +++ b/doc/src/snippets/qsignalmapper/buttonwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsignalmapper/main.cpp b/doc/src/snippets/qsignalmapper/main.cpp index 611d349..309ff52 100644 --- a/doc/src/snippets/qsignalmapper/main.cpp +++ b/doc/src/snippets/qsignalmapper/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsignalmapper/mainwindow.h b/doc/src/snippets/qsignalmapper/mainwindow.h index e150010..32ab92a 100644 --- a/doc/src/snippets/qsignalmapper/mainwindow.h +++ b/doc/src/snippets/qsignalmapper/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsortfilterproxymodel-details/main.cpp b/doc/src/snippets/qsortfilterproxymodel-details/main.cpp index 61360d1..9de0cea 100644 --- a/doc/src/snippets/qsortfilterproxymodel-details/main.cpp +++ b/doc/src/snippets/qsortfilterproxymodel-details/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsortfilterproxymodel/main.cpp b/doc/src/snippets/qsortfilterproxymodel/main.cpp index 52ee55c..5b1f8c0 100644 --- a/doc/src/snippets/qsortfilterproxymodel/main.cpp +++ b/doc/src/snippets/qsortfilterproxymodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsplashscreen/main.cpp b/doc/src/snippets/qsplashscreen/main.cpp index b9ae1e3..0a4ebb5 100644 --- a/doc/src/snippets/qsplashscreen/main.cpp +++ b/doc/src/snippets/qsplashscreen/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsplashscreen/mainwindow.cpp b/doc/src/snippets/qsplashscreen/mainwindow.cpp index d133f70..e330ee6 100644 --- a/doc/src/snippets/qsplashscreen/mainwindow.cpp +++ b/doc/src/snippets/qsplashscreen/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsplashscreen/mainwindow.h b/doc/src/snippets/qsplashscreen/mainwindow.h index 4d749ee..f83002b 100644 --- a/doc/src/snippets/qsplashscreen/mainwindow.h +++ b/doc/src/snippets/qsplashscreen/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsql-namespace/main.cpp b/doc/src/snippets/qsql-namespace/main.cpp index 29facfd..a0667a4 100644 --- a/doc/src/snippets/qsql-namespace/main.cpp +++ b/doc/src/snippets/qsql-namespace/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstack/main.cpp b/doc/src/snippets/qstack/main.cpp index fc06eb4..8b6982e 100644 --- a/doc/src/snippets/qstack/main.cpp +++ b/doc/src/snippets/qstack/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstackedlayout/main.cpp b/doc/src/snippets/qstackedlayout/main.cpp index 4fc7982..ca415e8 100644 --- a/doc/src/snippets/qstackedlayout/main.cpp +++ b/doc/src/snippets/qstackedlayout/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstackedwidget/main.cpp b/doc/src/snippets/qstackedwidget/main.cpp index 387fc75..7e72bfa 100644 --- a/doc/src/snippets/qstackedwidget/main.cpp +++ b/doc/src/snippets/qstackedwidget/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstandarditemmodel/main.cpp b/doc/src/snippets/qstandarditemmodel/main.cpp index 50fec8a..dbe30ad 100644 --- a/doc/src/snippets/qstandarditemmodel/main.cpp +++ b/doc/src/snippets/qstandarditemmodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstatustipevent/main.cpp b/doc/src/snippets/qstatustipevent/main.cpp index ba732f2..b609db8 100644 --- a/doc/src/snippets/qstatustipevent/main.cpp +++ b/doc/src/snippets/qstatustipevent/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstring/main.cpp b/doc/src/snippets/qstring/main.cpp index f16b1b4..9aac79d 100644 --- a/doc/src/snippets/qstring/main.cpp +++ b/doc/src/snippets/qstring/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstring/stringbuilder.cpp b/doc/src/snippets/qstring/stringbuilder.cpp index 4617fab..8ff1dd8 100644 --- a/doc/src/snippets/qstring/stringbuilder.cpp +++ b/doc/src/snippets/qstring/stringbuilder.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstringlist/main.cpp b/doc/src/snippets/qstringlist/main.cpp index 9ada319..3d56987 100644 --- a/doc/src/snippets/qstringlist/main.cpp +++ b/doc/src/snippets/qstringlist/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstringlistmodel/main.cpp b/doc/src/snippets/qstringlistmodel/main.cpp index 9cb987f..a64ba2b 100644 --- a/doc/src/snippets/qstringlistmodel/main.cpp +++ b/doc/src/snippets/qstringlistmodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstyleoption/main.cpp b/doc/src/snippets/qstyleoption/main.cpp index ddfe396..c3ef729 100644 --- a/doc/src/snippets/qstyleoption/main.cpp +++ b/doc/src/snippets/qstyleoption/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qstyleplugin/main.cpp b/doc/src/snippets/qstyleplugin/main.cpp index cab810d..2c444d5 100644 --- a/doc/src/snippets/qstyleplugin/main.cpp +++ b/doc/src/snippets/qstyleplugin/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qsvgwidget/main.cpp b/doc/src/snippets/qsvgwidget/main.cpp index d79d518..0b44f8b 100644 --- a/doc/src/snippets/qsvgwidget/main.cpp +++ b/doc/src/snippets/qsvgwidget/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qt-namespace/main.cpp b/doc/src/snippets/qt-namespace/main.cpp index 5fe379d..85e6adf 100644 --- a/doc/src/snippets/qt-namespace/main.cpp +++ b/doc/src/snippets/qt-namespace/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtablewidget-dnd/main.cpp b/doc/src/snippets/qtablewidget-dnd/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/qtablewidget-dnd/main.cpp +++ b/doc/src/snippets/qtablewidget-dnd/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtablewidget-dnd/mainwindow.cpp b/doc/src/snippets/qtablewidget-dnd/mainwindow.cpp index 143f23d..3b9f9de 100644 --- a/doc/src/snippets/qtablewidget-dnd/mainwindow.cpp +++ b/doc/src/snippets/qtablewidget-dnd/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtablewidget-dnd/mainwindow.h b/doc/src/snippets/qtablewidget-dnd/mainwindow.h index d8c6ce7..d59b8b2 100644 --- a/doc/src/snippets/qtablewidget-dnd/mainwindow.h +++ b/doc/src/snippets/qtablewidget-dnd/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtablewidget-resizing/main.cpp b/doc/src/snippets/qtablewidget-resizing/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/qtablewidget-resizing/main.cpp +++ b/doc/src/snippets/qtablewidget-resizing/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtablewidget-resizing/mainwindow.cpp b/doc/src/snippets/qtablewidget-resizing/mainwindow.cpp index f76d91c..e26031f 100644 --- a/doc/src/snippets/qtablewidget-resizing/mainwindow.cpp +++ b/doc/src/snippets/qtablewidget-resizing/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtablewidget-resizing/mainwindow.h b/doc/src/snippets/qtablewidget-resizing/mainwindow.h index 6667d64..f2f83b6 100644 --- a/doc/src/snippets/qtablewidget-resizing/mainwindow.h +++ b/doc/src/snippets/qtablewidget-resizing/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtablewidget-using/main.cpp b/doc/src/snippets/qtablewidget-using/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/qtablewidget-using/main.cpp +++ b/doc/src/snippets/qtablewidget-using/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtablewidget-using/mainwindow.cpp b/doc/src/snippets/qtablewidget-using/mainwindow.cpp index 860e0bc..79a01f5 100644 --- a/doc/src/snippets/qtablewidget-using/mainwindow.cpp +++ b/doc/src/snippets/qtablewidget-using/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtablewidget-using/mainwindow.h b/doc/src/snippets/qtablewidget-using/mainwindow.h index 29c2c8e..d242d14 100644 --- a/doc/src/snippets/qtablewidget-using/mainwindow.h +++ b/doc/src/snippets/qtablewidget-using/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtcast/qtcast.cpp b/doc/src/snippets/qtcast/qtcast.cpp index 20b1507..68cff32 100644 --- a/doc/src/snippets/qtcast/qtcast.cpp +++ b/doc/src/snippets/qtcast/qtcast.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtcast/qtcast.h b/doc/src/snippets/qtcast/qtcast.h index fcb1858..608a26b 100644 --- a/doc/src/snippets/qtcast/qtcast.h +++ b/doc/src/snippets/qtcast/qtcast.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtest-namespace/main.cpp b/doc/src/snippets/qtest-namespace/main.cpp index d198818..b9bf8cd 100644 --- a/doc/src/snippets/qtest-namespace/main.cpp +++ b/doc/src/snippets/qtest-namespace/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreeview-dnd/dragdropmodel.cpp b/doc/src/snippets/qtreeview-dnd/dragdropmodel.cpp index 620a716..190ea7e 100644 --- a/doc/src/snippets/qtreeview-dnd/dragdropmodel.cpp +++ b/doc/src/snippets/qtreeview-dnd/dragdropmodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreeview-dnd/dragdropmodel.h b/doc/src/snippets/qtreeview-dnd/dragdropmodel.h index 934774f..ed01540 100644 --- a/doc/src/snippets/qtreeview-dnd/dragdropmodel.h +++ b/doc/src/snippets/qtreeview-dnd/dragdropmodel.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreeview-dnd/main.cpp b/doc/src/snippets/qtreeview-dnd/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/qtreeview-dnd/main.cpp +++ b/doc/src/snippets/qtreeview-dnd/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreeview-dnd/mainwindow.cpp b/doc/src/snippets/qtreeview-dnd/mainwindow.cpp index 038720c..4496042 100644 --- a/doc/src/snippets/qtreeview-dnd/mainwindow.cpp +++ b/doc/src/snippets/qtreeview-dnd/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreeview-dnd/mainwindow.h b/doc/src/snippets/qtreeview-dnd/mainwindow.h index 5b5083e..8b3e6db 100644 --- a/doc/src/snippets/qtreeview-dnd/mainwindow.h +++ b/doc/src/snippets/qtreeview-dnd/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreeview-dnd/treeitem.cpp b/doc/src/snippets/qtreeview-dnd/treeitem.cpp index bec1a02..f3482a1 100644 --- a/doc/src/snippets/qtreeview-dnd/treeitem.cpp +++ b/doc/src/snippets/qtreeview-dnd/treeitem.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreeview-dnd/treeitem.h b/doc/src/snippets/qtreeview-dnd/treeitem.h index 90b14a0..25dceca 100644 --- a/doc/src/snippets/qtreeview-dnd/treeitem.h +++ b/doc/src/snippets/qtreeview-dnd/treeitem.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreeview-dnd/treemodel.cpp b/doc/src/snippets/qtreeview-dnd/treemodel.cpp index 6221396..2b27105 100644 --- a/doc/src/snippets/qtreeview-dnd/treemodel.cpp +++ b/doc/src/snippets/qtreeview-dnd/treemodel.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreeview-dnd/treemodel.h b/doc/src/snippets/qtreeview-dnd/treemodel.h index 2e18f4e..11baf6a 100644 --- a/doc/src/snippets/qtreeview-dnd/treemodel.h +++ b/doc/src/snippets/qtreeview-dnd/treemodel.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreewidget-using/main.cpp b/doc/src/snippets/qtreewidget-using/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/qtreewidget-using/main.cpp +++ b/doc/src/snippets/qtreewidget-using/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreewidget-using/mainwindow.cpp b/doc/src/snippets/qtreewidget-using/mainwindow.cpp index 3bcc37d..a7e8277 100644 --- a/doc/src/snippets/qtreewidget-using/mainwindow.cpp +++ b/doc/src/snippets/qtreewidget-using/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreewidget-using/mainwindow.h b/doc/src/snippets/qtreewidget-using/mainwindow.h index 76e6c56..53e17ab 100644 --- a/doc/src/snippets/qtreewidget-using/mainwindow.h +++ b/doc/src/snippets/qtreewidget-using/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreewidgetitemiterator-using/main.cpp b/doc/src/snippets/qtreewidgetitemiterator-using/main.cpp index 8dbd6b0..ed82162 100644 --- a/doc/src/snippets/qtreewidgetitemiterator-using/main.cpp +++ b/doc/src/snippets/qtreewidgetitemiterator-using/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.cpp b/doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.cpp index 367f81e..497540e 100644 --- a/doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.cpp +++ b/doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.h b/doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.h index 76e6c56..53e17ab 100644 --- a/doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.h +++ b/doc/src/snippets/qtreewidgetitemiterator-using/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtscript/evaluation/main.cpp b/doc/src/snippets/qtscript/evaluation/main.cpp index 024818e..e7efd8e 100644 --- a/doc/src/snippets/qtscript/evaluation/main.cpp +++ b/doc/src/snippets/qtscript/evaluation/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtscript/registeringobjects/main.cpp b/doc/src/snippets/qtscript/registeringobjects/main.cpp index ccf4e91..1911442 100644 --- a/doc/src/snippets/qtscript/registeringobjects/main.cpp +++ b/doc/src/snippets/qtscript/registeringobjects/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtscript/registeringobjects/myobject.cpp b/doc/src/snippets/qtscript/registeringobjects/myobject.cpp index 91c6b9c..353b27b 100644 --- a/doc/src/snippets/qtscript/registeringobjects/myobject.cpp +++ b/doc/src/snippets/qtscript/registeringobjects/myobject.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtscript/registeringobjects/myobject.h b/doc/src/snippets/qtscript/registeringobjects/myobject.h index bc92f0d..f0c5a29 100644 --- a/doc/src/snippets/qtscript/registeringobjects/myobject.h +++ b/doc/src/snippets/qtscript/registeringobjects/myobject.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtscript/registeringvalues/main.cpp b/doc/src/snippets/qtscript/registeringvalues/main.cpp index 3ea4bf7..3defc1f 100644 --- a/doc/src/snippets/qtscript/registeringvalues/main.cpp +++ b/doc/src/snippets/qtscript/registeringvalues/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qtscript/scriptedslot/main.cpp b/doc/src/snippets/qtscript/scriptedslot/main.cpp index a166158..802ba75 100644 --- a/doc/src/snippets/qtscript/scriptedslot/main.cpp +++ b/doc/src/snippets/qtscript/scriptedslot/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/quiloader/main.cpp b/doc/src/snippets/quiloader/main.cpp index 9a116b8..2b9acd2 100644 --- a/doc/src/snippets/quiloader/main.cpp +++ b/doc/src/snippets/quiloader/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/quiloader/mywidget.cpp b/doc/src/snippets/quiloader/mywidget.cpp index 595def6..989a5ef 100644 --- a/doc/src/snippets/quiloader/mywidget.cpp +++ b/doc/src/snippets/quiloader/mywidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/quiloader/mywidget.h b/doc/src/snippets/quiloader/mywidget.h index f64afe9..2bf666b 100644 --- a/doc/src/snippets/quiloader/mywidget.h +++ b/doc/src/snippets/quiloader/mywidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qx11embedcontainer/main.cpp b/doc/src/snippets/qx11embedcontainer/main.cpp index 919cb36..38d6d28 100644 --- a/doc/src/snippets/qx11embedcontainer/main.cpp +++ b/doc/src/snippets/qx11embedcontainer/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qx11embedwidget/embedwidget.cpp b/doc/src/snippets/qx11embedwidget/embedwidget.cpp index 7e8726f..4259959 100644 --- a/doc/src/snippets/qx11embedwidget/embedwidget.cpp +++ b/doc/src/snippets/qx11embedwidget/embedwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qx11embedwidget/embedwidget.h b/doc/src/snippets/qx11embedwidget/embedwidget.h index c1f2829..f9fb284 100644 --- a/doc/src/snippets/qx11embedwidget/embedwidget.h +++ b/doc/src/snippets/qx11embedwidget/embedwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qx11embedwidget/main.cpp b/doc/src/snippets/qx11embedwidget/main.cpp index 26d1583..4f82399 100644 --- a/doc/src/snippets/qx11embedwidget/main.cpp +++ b/doc/src/snippets/qx11embedwidget/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qxmlquery/bindingExample.cpp b/doc/src/snippets/qxmlquery/bindingExample.cpp index 7e58013..62e19be 100644 --- a/doc/src/snippets/qxmlquery/bindingExample.cpp +++ b/doc/src/snippets/qxmlquery/bindingExample.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qxmlschema/main.cpp b/doc/src/snippets/qxmlschema/main.cpp index 795b606..ddc1c16 100644 --- a/doc/src/snippets/qxmlschema/main.cpp +++ b/doc/src/snippets/qxmlschema/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qxmlschemavalidator/main.cpp b/doc/src/snippets/qxmlschemavalidator/main.cpp index 0c6822d..bf88e71 100644 --- a/doc/src/snippets/qxmlschemavalidator/main.cpp +++ b/doc/src/snippets/qxmlschemavalidator/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/qxmlstreamwriter/main.cpp b/doc/src/snippets/qxmlstreamwriter/main.cpp index 30e1092..2e7deff 100644 --- a/doc/src/snippets/qxmlstreamwriter/main.cpp +++ b/doc/src/snippets/qxmlstreamwriter/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/reading-selections/main.cpp b/doc/src/snippets/reading-selections/main.cpp index 6b44d34..eadba84 100644 --- a/doc/src/snippets/reading-selections/main.cpp +++ b/doc/src/snippets/reading-selections/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/reading-selections/model.cpp b/doc/src/snippets/reading-selections/model.cpp index cee0144..3d08f43 100644 --- a/doc/src/snippets/reading-selections/model.cpp +++ b/doc/src/snippets/reading-selections/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/reading-selections/model.h b/doc/src/snippets/reading-selections/model.h index caad8f3..1ad5fd07a 100644 --- a/doc/src/snippets/reading-selections/model.h +++ b/doc/src/snippets/reading-selections/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/reading-selections/window.cpp b/doc/src/snippets/reading-selections/window.cpp index c53c83a..6cb9688 100644 --- a/doc/src/snippets/reading-selections/window.cpp +++ b/doc/src/snippets/reading-selections/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/reading-selections/window.h b/doc/src/snippets/reading-selections/window.h index 04c5416..d7230ef 100644 --- a/doc/src/snippets/reading-selections/window.h +++ b/doc/src/snippets/reading-selections/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/scribe-overview/main.cpp b/doc/src/snippets/scribe-overview/main.cpp index 32c7350..9443d0b 100644 --- a/doc/src/snippets/scribe-overview/main.cpp +++ b/doc/src/snippets/scribe-overview/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/scriptdebugger.cpp b/doc/src/snippets/scriptdebugger.cpp index b5b3a97..2630706 100644 --- a/doc/src/snippets/scriptdebugger.cpp +++ b/doc/src/snippets/scriptdebugger.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/seekslider.cpp b/doc/src/snippets/seekslider.cpp index 6c786df..eec7aad 100644 --- a/doc/src/snippets/seekslider.cpp +++ b/doc/src/snippets/seekslider.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/separations/finalwidget.cpp b/doc/src/snippets/separations/finalwidget.cpp index a53126b..8d2b7fe 100644 --- a/doc/src/snippets/separations/finalwidget.cpp +++ b/doc/src/snippets/separations/finalwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/separations/finalwidget.h b/doc/src/snippets/separations/finalwidget.h index 7961170..465a5a7 100644 --- a/doc/src/snippets/separations/finalwidget.h +++ b/doc/src/snippets/separations/finalwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/separations/main.cpp b/doc/src/snippets/separations/main.cpp index dc8210f..9663168 100644 --- a/doc/src/snippets/separations/main.cpp +++ b/doc/src/snippets/separations/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/separations/screenwidget.cpp b/doc/src/snippets/separations/screenwidget.cpp index d48c4e0..1394f8b 100644 --- a/doc/src/snippets/separations/screenwidget.cpp +++ b/doc/src/snippets/separations/screenwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/separations/screenwidget.h b/doc/src/snippets/separations/screenwidget.h index cedaae1..86f3680 100644 --- a/doc/src/snippets/separations/screenwidget.h +++ b/doc/src/snippets/separations/screenwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/separations/separations.qdoc b/doc/src/snippets/separations/separations.qdoc index 9860a36..d961e2d 100644 --- a/doc/src/snippets/separations/separations.qdoc +++ b/doc/src/snippets/separations/separations.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/separations/viewer.cpp b/doc/src/snippets/separations/viewer.cpp index 0c3423f..df6857b 100644 --- a/doc/src/snippets/separations/viewer.cpp +++ b/doc/src/snippets/separations/viewer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/separations/viewer.h b/doc/src/snippets/separations/viewer.h index ce4b234..9d0f985 100644 --- a/doc/src/snippets/separations/viewer.h +++ b/doc/src/snippets/separations/viewer.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/settings/settings.cpp b/doc/src/snippets/settings/settings.cpp index 16de55c..2cbe180 100644 --- a/doc/src/snippets/settings/settings.cpp +++ b/doc/src/snippets/settings/settings.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/shareddirmodel/main.cpp b/doc/src/snippets/shareddirmodel/main.cpp index 9457ce0..1cd2bde 100644 --- a/doc/src/snippets/shareddirmodel/main.cpp +++ b/doc/src/snippets/shareddirmodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/sharedemployee/employee.cpp b/doc/src/snippets/sharedemployee/employee.cpp index 6a25cbe..4380400 100644 --- a/doc/src/snippets/sharedemployee/employee.cpp +++ b/doc/src/snippets/sharedemployee/employee.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/sharedemployee/employee.h b/doc/src/snippets/sharedemployee/employee.h index 2c9ba6f..981e007 100644 --- a/doc/src/snippets/sharedemployee/employee.h +++ b/doc/src/snippets/sharedemployee/employee.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/sharedemployee/main.cpp b/doc/src/snippets/sharedemployee/main.cpp index 645cebe..a8f53a7 100644 --- a/doc/src/snippets/sharedemployee/main.cpp +++ b/doc/src/snippets/sharedemployee/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/sharedtablemodel/main.cpp b/doc/src/snippets/sharedtablemodel/main.cpp index 94dea16..aafc626 100644 --- a/doc/src/snippets/sharedtablemodel/main.cpp +++ b/doc/src/snippets/sharedtablemodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/sharedtablemodel/model.cpp b/doc/src/snippets/sharedtablemodel/model.cpp index e9dace6..08d8323 100644 --- a/doc/src/snippets/sharedtablemodel/model.cpp +++ b/doc/src/snippets/sharedtablemodel/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/sharedtablemodel/model.h b/doc/src/snippets/sharedtablemodel/model.h index caad8f3..1ad5fd07a 100644 --- a/doc/src/snippets/sharedtablemodel/model.h +++ b/doc/src/snippets/sharedtablemodel/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/signalmapper/filereader.cpp b/doc/src/snippets/signalmapper/filereader.cpp index 08f4d06..d7be2e8 100644 --- a/doc/src/snippets/signalmapper/filereader.cpp +++ b/doc/src/snippets/signalmapper/filereader.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/signalmapper/filereader.h b/doc/src/snippets/signalmapper/filereader.h index 600f7cf..b6ac6b3 100644 --- a/doc/src/snippets/signalmapper/filereader.h +++ b/doc/src/snippets/signalmapper/filereader.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/signalmapper/main.cpp b/doc/src/snippets/signalmapper/main.cpp index a1dd49d..bca39e5 100644 --- a/doc/src/snippets/signalmapper/main.cpp +++ b/doc/src/snippets/signalmapper/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/signalsandslots/lcdnumber.cpp b/doc/src/snippets/signalsandslots/lcdnumber.cpp index 7e2667c..2d99ff6 100644 --- a/doc/src/snippets/signalsandslots/lcdnumber.cpp +++ b/doc/src/snippets/signalsandslots/lcdnumber.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/signalsandslots/lcdnumber.h b/doc/src/snippets/signalsandslots/lcdnumber.h index f2d618f..3706387 100644 --- a/doc/src/snippets/signalsandslots/lcdnumber.h +++ b/doc/src/snippets/signalsandslots/lcdnumber.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/signalsandslots/signalsandslots.cpp b/doc/src/snippets/signalsandslots/signalsandslots.cpp index 95e3de7..4262232 100644 --- a/doc/src/snippets/signalsandslots/signalsandslots.cpp +++ b/doc/src/snippets/signalsandslots/signalsandslots.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/signalsandslots/signalsandslots.h b/doc/src/snippets/signalsandslots/signalsandslots.h index 9325fd6..0671181 100644 --- a/doc/src/snippets/signalsandslots/signalsandslots.h +++ b/doc/src/snippets/signalsandslots/signalsandslots.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/simplemodel-use/main.cpp b/doc/src/snippets/simplemodel-use/main.cpp index 931d685..bfbe574 100644 --- a/doc/src/snippets/simplemodel-use/main.cpp +++ b/doc/src/snippets/simplemodel-use/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/splitter/splitter.cpp b/doc/src/snippets/splitter/splitter.cpp index 6fe79a7..b72eb02 100644 --- a/doc/src/snippets/splitter/splitter.cpp +++ b/doc/src/snippets/splitter/splitter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/splitterhandle/main.cpp b/doc/src/snippets/splitterhandle/main.cpp index 8f8d5ab..e62e1f0 100644 --- a/doc/src/snippets/splitterhandle/main.cpp +++ b/doc/src/snippets/splitterhandle/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/splitterhandle/splitter.cpp b/doc/src/snippets/splitterhandle/splitter.cpp index 24ea24e..6f76c57 100644 --- a/doc/src/snippets/splitterhandle/splitter.cpp +++ b/doc/src/snippets/splitterhandle/splitter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/splitterhandle/splitter.h b/doc/src/snippets/splitterhandle/splitter.h index a78fbe3..505c431 100644 --- a/doc/src/snippets/splitterhandle/splitter.h +++ b/doc/src/snippets/splitterhandle/splitter.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/sqldatabase/sqldatabase.cpp b/doc/src/snippets/sqldatabase/sqldatabase.cpp index a027a84..4f428c7 100644 --- a/doc/src/snippets/sqldatabase/sqldatabase.cpp +++ b/doc/src/snippets/sqldatabase/sqldatabase.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/statemachine/eventtest.cpp b/doc/src/snippets/statemachine/eventtest.cpp index fa21018..7fcb5dc 100644 --- a/doc/src/snippets/statemachine/eventtest.cpp +++ b/doc/src/snippets/statemachine/eventtest.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/statemachine/main.cpp b/doc/src/snippets/statemachine/main.cpp index 0492be2..4a00c45 100644 --- a/doc/src/snippets/statemachine/main.cpp +++ b/doc/src/snippets/statemachine/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/statemachine/main2.cpp b/doc/src/snippets/statemachine/main2.cpp index a748f0f..a664c6f 100644 --- a/doc/src/snippets/statemachine/main2.cpp +++ b/doc/src/snippets/statemachine/main2.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/statemachine/main3.cpp b/doc/src/snippets/statemachine/main3.cpp index e40b828..3622e3b 100644 --- a/doc/src/snippets/statemachine/main3.cpp +++ b/doc/src/snippets/statemachine/main3.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/statemachine/main4.cpp b/doc/src/snippets/statemachine/main4.cpp index 52d97b4..6e23be3 100644 --- a/doc/src/snippets/statemachine/main4.cpp +++ b/doc/src/snippets/statemachine/main4.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/statemachine/main5.cpp b/doc/src/snippets/statemachine/main5.cpp index 101d0b1..f75c3d0 100644 --- a/doc/src/snippets/statemachine/main5.cpp +++ b/doc/src/snippets/statemachine/main5.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/streaming/main.cpp b/doc/src/snippets/streaming/main.cpp index 26021bf..fb5c215 100644 --- a/doc/src/snippets/streaming/main.cpp +++ b/doc/src/snippets/streaming/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/stringlistmodel/main.cpp b/doc/src/snippets/stringlistmodel/main.cpp index d25d5b6..cd2ac3f 100644 --- a/doc/src/snippets/stringlistmodel/main.cpp +++ b/doc/src/snippets/stringlistmodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/stringlistmodel/model.cpp b/doc/src/snippets/stringlistmodel/model.cpp index 21b0b9c..c097ced 100644 --- a/doc/src/snippets/stringlistmodel/model.cpp +++ b/doc/src/snippets/stringlistmodel/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/stringlistmodel/model.h b/doc/src/snippets/stringlistmodel/model.h index 64b60ac..35e5d60 100644 --- a/doc/src/snippets/stringlistmodel/model.h +++ b/doc/src/snippets/stringlistmodel/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/styles/styles.cpp b/doc/src/snippets/styles/styles.cpp index 5c3e839..23ab71b 100644 --- a/doc/src/snippets/styles/styles.cpp +++ b/doc/src/snippets/styles/styles.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/stylesheet/common-mistakes.cpp b/doc/src/snippets/stylesheet/common-mistakes.cpp index e7f6a61..8de7f79 100644 --- a/doc/src/snippets/stylesheet/common-mistakes.cpp +++ b/doc/src/snippets/stylesheet/common-mistakes.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textblock-formats/main.cpp b/doc/src/snippets/textblock-formats/main.cpp index 4ddcd78..5f8f4d2 100644 --- a/doc/src/snippets/textblock-formats/main.cpp +++ b/doc/src/snippets/textblock-formats/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textblock-fragments/main.cpp b/doc/src/snippets/textblock-fragments/main.cpp index cd4429c..6e40492 100644 --- a/doc/src/snippets/textblock-fragments/main.cpp +++ b/doc/src/snippets/textblock-fragments/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textblock-fragments/mainwindow.cpp b/doc/src/snippets/textblock-fragments/mainwindow.cpp index 8da87b0..91bed61 100644 --- a/doc/src/snippets/textblock-fragments/mainwindow.cpp +++ b/doc/src/snippets/textblock-fragments/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textblock-fragments/mainwindow.h b/doc/src/snippets/textblock-fragments/mainwindow.h index da0bb05..e10c351 100644 --- a/doc/src/snippets/textblock-fragments/mainwindow.h +++ b/doc/src/snippets/textblock-fragments/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textblock-fragments/xmlwriter.cpp b/doc/src/snippets/textblock-fragments/xmlwriter.cpp index 7a29016..9f66d9a 100644 --- a/doc/src/snippets/textblock-fragments/xmlwriter.cpp +++ b/doc/src/snippets/textblock-fragments/xmlwriter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textblock-fragments/xmlwriter.h b/doc/src/snippets/textblock-fragments/xmlwriter.h index 725e5ad..4a3d95b 100644 --- a/doc/src/snippets/textblock-fragments/xmlwriter.h +++ b/doc/src/snippets/textblock-fragments/xmlwriter.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-blocks/main.cpp b/doc/src/snippets/textdocument-blocks/main.cpp index cd4429c..6e40492 100644 --- a/doc/src/snippets/textdocument-blocks/main.cpp +++ b/doc/src/snippets/textdocument-blocks/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-blocks/mainwindow.cpp b/doc/src/snippets/textdocument-blocks/mainwindow.cpp index a413b3f..39e427d 100644 --- a/doc/src/snippets/textdocument-blocks/mainwindow.cpp +++ b/doc/src/snippets/textdocument-blocks/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-blocks/mainwindow.h b/doc/src/snippets/textdocument-blocks/mainwindow.h index da0bb05..e10c351 100644 --- a/doc/src/snippets/textdocument-blocks/mainwindow.h +++ b/doc/src/snippets/textdocument-blocks/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-blocks/xmlwriter.cpp b/doc/src/snippets/textdocument-blocks/xmlwriter.cpp index af51260..f4d1d62 100644 --- a/doc/src/snippets/textdocument-blocks/xmlwriter.cpp +++ b/doc/src/snippets/textdocument-blocks/xmlwriter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-blocks/xmlwriter.h b/doc/src/snippets/textdocument-blocks/xmlwriter.h index 7b67bb8..f47ff41 100644 --- a/doc/src/snippets/textdocument-blocks/xmlwriter.h +++ b/doc/src/snippets/textdocument-blocks/xmlwriter.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-charformats/main.cpp b/doc/src/snippets/textdocument-charformats/main.cpp index da28c80..ef845a0 100644 --- a/doc/src/snippets/textdocument-charformats/main.cpp +++ b/doc/src/snippets/textdocument-charformats/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-css/main.cpp b/doc/src/snippets/textdocument-css/main.cpp index da0266d..8c26745 100644 --- a/doc/src/snippets/textdocument-css/main.cpp +++ b/doc/src/snippets/textdocument-css/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-cursors/main.cpp b/doc/src/snippets/textdocument-cursors/main.cpp index 66e44e0..0cee030 100644 --- a/doc/src/snippets/textdocument-cursors/main.cpp +++ b/doc/src/snippets/textdocument-cursors/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-find/main.cpp b/doc/src/snippets/textdocument-find/main.cpp index 5173994..f65058a 100644 --- a/doc/src/snippets/textdocument-find/main.cpp +++ b/doc/src/snippets/textdocument-find/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-frames/main.cpp b/doc/src/snippets/textdocument-frames/main.cpp index 0a7288f..7377862 100644 --- a/doc/src/snippets/textdocument-frames/main.cpp +++ b/doc/src/snippets/textdocument-frames/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-frames/mainwindow.cpp b/doc/src/snippets/textdocument-frames/mainwindow.cpp index e7ca426..8f4e3d6 100644 --- a/doc/src/snippets/textdocument-frames/mainwindow.cpp +++ b/doc/src/snippets/textdocument-frames/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-frames/mainwindow.h b/doc/src/snippets/textdocument-frames/mainwindow.h index 50eaf2c..e9373b5 100644 --- a/doc/src/snippets/textdocument-frames/mainwindow.h +++ b/doc/src/snippets/textdocument-frames/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-frames/xmlwriter.cpp b/doc/src/snippets/textdocument-frames/xmlwriter.cpp index f76d87e..31f08f3 100644 --- a/doc/src/snippets/textdocument-frames/xmlwriter.cpp +++ b/doc/src/snippets/textdocument-frames/xmlwriter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-frames/xmlwriter.h b/doc/src/snippets/textdocument-frames/xmlwriter.h index 8fec709..7006261 100644 --- a/doc/src/snippets/textdocument-frames/xmlwriter.h +++ b/doc/src/snippets/textdocument-frames/xmlwriter.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-imagedrop/main.cpp b/doc/src/snippets/textdocument-imagedrop/main.cpp index 9121be8..24cd2de 100644 --- a/doc/src/snippets/textdocument-imagedrop/main.cpp +++ b/doc/src/snippets/textdocument-imagedrop/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-imagedrop/textedit.cpp b/doc/src/snippets/textdocument-imagedrop/textedit.cpp index 63e8ce4..735dbe5 100644 --- a/doc/src/snippets/textdocument-imagedrop/textedit.cpp +++ b/doc/src/snippets/textdocument-imagedrop/textedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-imagedrop/textedit.h b/doc/src/snippets/textdocument-imagedrop/textedit.h index 6d2a2d7..9e0492b 100644 --- a/doc/src/snippets/textdocument-imagedrop/textedit.h +++ b/doc/src/snippets/textdocument-imagedrop/textedit.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-imageformat/main.cpp b/doc/src/snippets/textdocument-imageformat/main.cpp index 410c8a9..8bc897f 100644 --- a/doc/src/snippets/textdocument-imageformat/main.cpp +++ b/doc/src/snippets/textdocument-imageformat/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-images/main.cpp b/doc/src/snippets/textdocument-images/main.cpp index 3de533d..ba3d48d 100644 --- a/doc/src/snippets/textdocument-images/main.cpp +++ b/doc/src/snippets/textdocument-images/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-listitems/main.cpp b/doc/src/snippets/textdocument-listitems/main.cpp index cd4429c..6e40492 100644 --- a/doc/src/snippets/textdocument-listitems/main.cpp +++ b/doc/src/snippets/textdocument-listitems/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-listitems/mainwindow.cpp b/doc/src/snippets/textdocument-listitems/mainwindow.cpp index c7ae885..a467fbc 100644 --- a/doc/src/snippets/textdocument-listitems/mainwindow.cpp +++ b/doc/src/snippets/textdocument-listitems/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-listitems/mainwindow.h b/doc/src/snippets/textdocument-listitems/mainwindow.h index c53ecca..600c94d 100644 --- a/doc/src/snippets/textdocument-listitems/mainwindow.h +++ b/doc/src/snippets/textdocument-listitems/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-lists/main.cpp b/doc/src/snippets/textdocument-lists/main.cpp index cd4429c..6e40492 100644 --- a/doc/src/snippets/textdocument-lists/main.cpp +++ b/doc/src/snippets/textdocument-lists/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-lists/mainwindow.cpp b/doc/src/snippets/textdocument-lists/mainwindow.cpp index eb80e75..bcbfce7 100644 --- a/doc/src/snippets/textdocument-lists/mainwindow.cpp +++ b/doc/src/snippets/textdocument-lists/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-lists/mainwindow.h b/doc/src/snippets/textdocument-lists/mainwindow.h index 1a7dd33..a56bbee 100644 --- a/doc/src/snippets/textdocument-lists/mainwindow.h +++ b/doc/src/snippets/textdocument-lists/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-printing/main.cpp b/doc/src/snippets/textdocument-printing/main.cpp index cd4429c..6e40492 100644 --- a/doc/src/snippets/textdocument-printing/main.cpp +++ b/doc/src/snippets/textdocument-printing/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-printing/mainwindow.cpp b/doc/src/snippets/textdocument-printing/mainwindow.cpp index 79c6d7b..2ea4977 100644 --- a/doc/src/snippets/textdocument-printing/mainwindow.cpp +++ b/doc/src/snippets/textdocument-printing/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-printing/mainwindow.h b/doc/src/snippets/textdocument-printing/mainwindow.h index d480817..a0928ef 100644 --- a/doc/src/snippets/textdocument-printing/mainwindow.h +++ b/doc/src/snippets/textdocument-printing/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-resources/main.cpp b/doc/src/snippets/textdocument-resources/main.cpp index 8244d78..19a7469 100644 --- a/doc/src/snippets/textdocument-resources/main.cpp +++ b/doc/src/snippets/textdocument-resources/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-selections/main.cpp b/doc/src/snippets/textdocument-selections/main.cpp index cd4429c..6e40492 100644 --- a/doc/src/snippets/textdocument-selections/main.cpp +++ b/doc/src/snippets/textdocument-selections/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-selections/mainwindow.cpp b/doc/src/snippets/textdocument-selections/mainwindow.cpp index 9af9441..71f479b 100644 --- a/doc/src/snippets/textdocument-selections/mainwindow.cpp +++ b/doc/src/snippets/textdocument-selections/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-selections/mainwindow.h b/doc/src/snippets/textdocument-selections/mainwindow.h index 4e3304b..508acc3 100644 --- a/doc/src/snippets/textdocument-selections/mainwindow.h +++ b/doc/src/snippets/textdocument-selections/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-tables/main.cpp b/doc/src/snippets/textdocument-tables/main.cpp index e86dd51..04b5b15 100644 --- a/doc/src/snippets/textdocument-tables/main.cpp +++ b/doc/src/snippets/textdocument-tables/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-tables/mainwindow.cpp b/doc/src/snippets/textdocument-tables/mainwindow.cpp index 6b9a3c9..c432f4c 100644 --- a/doc/src/snippets/textdocument-tables/mainwindow.cpp +++ b/doc/src/snippets/textdocument-tables/mainwindow.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-tables/mainwindow.h b/doc/src/snippets/textdocument-tables/mainwindow.h index 9833e6b..70a67e2 100644 --- a/doc/src/snippets/textdocument-tables/mainwindow.h +++ b/doc/src/snippets/textdocument-tables/mainwindow.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-tables/xmlwriter.cpp b/doc/src/snippets/textdocument-tables/xmlwriter.cpp index 238258f..d1d6798 100644 --- a/doc/src/snippets/textdocument-tables/xmlwriter.cpp +++ b/doc/src/snippets/textdocument-tables/xmlwriter.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-tables/xmlwriter.h b/doc/src/snippets/textdocument-tables/xmlwriter.h index d8485b9..7da6a03 100644 --- a/doc/src/snippets/textdocument-tables/xmlwriter.h +++ b/doc/src/snippets/textdocument-tables/xmlwriter.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocument-texttable/main.cpp b/doc/src/snippets/textdocument-texttable/main.cpp index 84226ea..1e3b7c2 100644 --- a/doc/src/snippets/textdocument-texttable/main.cpp +++ b/doc/src/snippets/textdocument-texttable/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/textdocumentendsnippet.cpp b/doc/src/snippets/textdocumentendsnippet.cpp index c3f9fef..3b28700 100644 --- a/doc/src/snippets/textdocumentendsnippet.cpp +++ b/doc/src/snippets/textdocumentendsnippet.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/threads/threads.cpp b/doc/src/snippets/threads/threads.cpp index d8d1270..31f325d 100644 --- a/doc/src/snippets/threads/threads.cpp +++ b/doc/src/snippets/threads/threads.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/threads/threads.h b/doc/src/snippets/threads/threads.h index 45f43ed..9826208 100644 --- a/doc/src/snippets/threads/threads.h +++ b/doc/src/snippets/threads/threads.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/timeline/main.cpp b/doc/src/snippets/timeline/main.cpp index f45d06c..b652069 100644 --- a/doc/src/snippets/timeline/main.cpp +++ b/doc/src/snippets/timeline/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/timers/timers.cpp b/doc/src/snippets/timers/timers.cpp index a152134..015ab27 100644 --- a/doc/src/snippets/timers/timers.cpp +++ b/doc/src/snippets/timers/timers.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/transform/main.cpp b/doc/src/snippets/transform/main.cpp index d801edc..b1e3d74 100644 --- a/doc/src/snippets/transform/main.cpp +++ b/doc/src/snippets/transform/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/uitools/calculatorform/main.cpp b/doc/src/snippets/uitools/calculatorform/main.cpp index 7b224a3..0866b7c 100644 --- a/doc/src/snippets/uitools/calculatorform/main.cpp +++ b/doc/src/snippets/uitools/calculatorform/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/updating-selections/main.cpp b/doc/src/snippets/updating-selections/main.cpp index 6b44d34..eadba84 100644 --- a/doc/src/snippets/updating-selections/main.cpp +++ b/doc/src/snippets/updating-selections/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/updating-selections/model.cpp b/doc/src/snippets/updating-selections/model.cpp index e9dace6..08d8323 100644 --- a/doc/src/snippets/updating-selections/model.cpp +++ b/doc/src/snippets/updating-selections/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/updating-selections/model.h b/doc/src/snippets/updating-selections/model.h index caad8f3..1ad5fd07a 100644 --- a/doc/src/snippets/updating-selections/model.h +++ b/doc/src/snippets/updating-selections/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/updating-selections/window.cpp b/doc/src/snippets/updating-selections/window.cpp index d472480..c5d8b3b 100644 --- a/doc/src/snippets/updating-selections/window.cpp +++ b/doc/src/snippets/updating-selections/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/updating-selections/window.h b/doc/src/snippets/updating-selections/window.h index f0e3738..c24ed8e 100644 --- a/doc/src/snippets/updating-selections/window.h +++ b/doc/src/snippets/updating-selections/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/videomedia.cpp b/doc/src/snippets/videomedia.cpp index b0c4055..5cd6252 100644 --- a/doc/src/snippets/videomedia.cpp +++ b/doc/src/snippets/videomedia.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/volumeslider.cpp b/doc/src/snippets/volumeslider.cpp index dc166ef..5b9b6b5 100644 --- a/doc/src/snippets/volumeslider.cpp +++ b/doc/src/snippets/volumeslider.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/whatsthis/whatsthis.cpp b/doc/src/snippets/whatsthis/whatsthis.cpp index 6758f89..608fa3e 100644 --- a/doc/src/snippets/whatsthis/whatsthis.cpp +++ b/doc/src/snippets/whatsthis/whatsthis.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/widget-mask/main.cpp b/doc/src/snippets/widget-mask/main.cpp index dd29551..2d7defc 100644 --- a/doc/src/snippets/widget-mask/main.cpp +++ b/doc/src/snippets/widget-mask/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/widgetdelegate.cpp b/doc/src/snippets/widgetdelegate.cpp index 5fd1863..c6d3963 100644 --- a/doc/src/snippets/widgetdelegate.cpp +++ b/doc/src/snippets/widgetdelegate.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/widgetprinting.cpp b/doc/src/snippets/widgetprinting.cpp index 47839d8..a6ea3cb 100644 --- a/doc/src/snippets/widgetprinting.cpp +++ b/doc/src/snippets/widgetprinting.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/widgets-tutorial/childwidget/main.cpp b/doc/src/snippets/widgets-tutorial/childwidget/main.cpp index 3c577d3..19c275d 100644 --- a/doc/src/snippets/widgets-tutorial/childwidget/main.cpp +++ b/doc/src/snippets/widgets-tutorial/childwidget/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/widgets-tutorial/nestedlayouts/main.cpp b/doc/src/snippets/widgets-tutorial/nestedlayouts/main.cpp index 35d2fa7..d230947 100644 --- a/doc/src/snippets/widgets-tutorial/nestedlayouts/main.cpp +++ b/doc/src/snippets/widgets-tutorial/nestedlayouts/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/widgets-tutorial/template.cpp b/doc/src/snippets/widgets-tutorial/template.cpp index 81439ad..e2a2f61 100644 --- a/doc/src/snippets/widgets-tutorial/template.cpp +++ b/doc/src/snippets/widgets-tutorial/template.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/widgets-tutorial/toplevel/main.cpp b/doc/src/snippets/widgets-tutorial/toplevel/main.cpp index 5936c45..cd5e55f 100644 --- a/doc/src/snippets/widgets-tutorial/toplevel/main.cpp +++ b/doc/src/snippets/widgets-tutorial/toplevel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/widgets-tutorial/windowlayout/main.cpp b/doc/src/snippets/widgets-tutorial/windowlayout/main.cpp index 1d42b77..5bccd7f 100644 --- a/doc/src/snippets/widgets-tutorial/windowlayout/main.cpp +++ b/doc/src/snippets/widgets-tutorial/windowlayout/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/xml/prettyprint/main.cpp b/doc/src/snippets/xml/prettyprint/main.cpp index bbadb52..04fe0e4 100644 --- a/doc/src/snippets/xml/prettyprint/main.cpp +++ b/doc/src/snippets/xml/prettyprint/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/xml/rsslisting/handler.cpp b/doc/src/snippets/xml/rsslisting/handler.cpp index 8c71303..fe9ef5c 100644 --- a/doc/src/snippets/xml/rsslisting/handler.cpp +++ b/doc/src/snippets/xml/rsslisting/handler.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/xml/rsslisting/handler.h b/doc/src/snippets/xml/rsslisting/handler.h index 1cbcf64..ca5b548 100644 --- a/doc/src/snippets/xml/rsslisting/handler.h +++ b/doc/src/snippets/xml/rsslisting/handler.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/xml/rsslisting/main.cpp b/doc/src/snippets/xml/rsslisting/main.cpp index c1d25b8..d6e7adc 100644 --- a/doc/src/snippets/xml/rsslisting/main.cpp +++ b/doc/src/snippets/xml/rsslisting/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/xml/rsslisting/rsslisting.cpp b/doc/src/snippets/xml/rsslisting/rsslisting.cpp index fc5df8b..5047d08 100644 --- a/doc/src/snippets/xml/rsslisting/rsslisting.cpp +++ b/doc/src/snippets/xml/rsslisting/rsslisting.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/xml/rsslisting/rsslisting.h b/doc/src/snippets/xml/rsslisting/rsslisting.h index 65db42c..948cf5f 100644 --- a/doc/src/snippets/xml/rsslisting/rsslisting.h +++ b/doc/src/snippets/xml/rsslisting/rsslisting.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/xml/simpleparse/handler.cpp b/doc/src/snippets/xml/simpleparse/handler.cpp index 2a69a48..6363319 100644 --- a/doc/src/snippets/xml/simpleparse/handler.cpp +++ b/doc/src/snippets/xml/simpleparse/handler.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/xml/simpleparse/handler.h b/doc/src/snippets/xml/simpleparse/handler.h index 3334e3f..ca76d95 100644 --- a/doc/src/snippets/xml/simpleparse/handler.h +++ b/doc/src/snippets/xml/simpleparse/handler.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/snippets/xml/simpleparse/main.cpp b/doc/src/snippets/xml/simpleparse/main.cpp index 30afcbc..5d9994d 100644 --- a/doc/src/snippets/xml/simpleparse/main.cpp +++ b/doc/src/snippets/xml/simpleparse/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/sql-programming/qsqldatatype-table.qdoc b/doc/src/sql-programming/qsqldatatype-table.qdoc index 3ec2fea..e0cb991 100644 --- a/doc/src/sql-programming/qsqldatatype-table.qdoc +++ b/doc/src/sql-programming/qsqldatatype-table.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/sql-programming/sql-driver.qdoc b/doc/src/sql-programming/sql-driver.qdoc index 9c99ad2..1476491 100644 --- a/doc/src/sql-programming/sql-driver.qdoc +++ b/doc/src/sql-programming/sql-driver.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/sql-programming/sql-programming.qdoc b/doc/src/sql-programming/sql-programming.qdoc index 3624d1e..184dafa 100644 --- a/doc/src/sql-programming/sql-programming.qdoc +++ b/doc/src/sql-programming/sql-programming.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/tutorials/addressbook-fr.qdoc b/doc/src/tutorials/addressbook-fr.qdoc index fe27488..7badaef 100644 --- a/doc/src/tutorials/addressbook-fr.qdoc +++ b/doc/src/tutorials/addressbook-fr.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/tutorials/addressbook.qdoc b/doc/src/tutorials/addressbook.qdoc index 1c71f97..cbc918f 100644 --- a/doc/src/tutorials/addressbook.qdoc +++ b/doc/src/tutorials/addressbook.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/tutorials/modelview.qdoc b/doc/src/tutorials/modelview.qdoc index a355e43..88cda72 100644 --- a/doc/src/tutorials/modelview.qdoc +++ b/doc/src/tutorials/modelview.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/tutorials/widgets-tutorial.qdoc b/doc/src/tutorials/widgets-tutorial.qdoc index df911a5..2125edc 100644 --- a/doc/src/tutorials/widgets-tutorial.qdoc +++ b/doc/src/tutorials/widgets-tutorial.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/focus.qdoc b/doc/src/widgets-and-layouts/focus.qdoc index 9948782..446b374 100644 --- a/doc/src/widgets-and-layouts/focus.qdoc +++ b/doc/src/widgets-and-layouts/focus.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/gallery-cde.qdoc b/doc/src/widgets-and-layouts/gallery-cde.qdoc index 69287b9..ac8dd8c 100644 --- a/doc/src/widgets-and-layouts/gallery-cde.qdoc +++ b/doc/src/widgets-and-layouts/gallery-cde.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/gallery-cleanlooks.qdoc b/doc/src/widgets-and-layouts/gallery-cleanlooks.qdoc index 59e2934..2300a54 100644 --- a/doc/src/widgets-and-layouts/gallery-cleanlooks.qdoc +++ b/doc/src/widgets-and-layouts/gallery-cleanlooks.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/gallery-gtk.qdoc b/doc/src/widgets-and-layouts/gallery-gtk.qdoc index b2f8458..5446af3 100644 --- a/doc/src/widgets-and-layouts/gallery-gtk.qdoc +++ b/doc/src/widgets-and-layouts/gallery-gtk.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/gallery-macintosh.qdoc b/doc/src/widgets-and-layouts/gallery-macintosh.qdoc index 44d7eb9..9049e11 100644 --- a/doc/src/widgets-and-layouts/gallery-macintosh.qdoc +++ b/doc/src/widgets-and-layouts/gallery-macintosh.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/gallery-motif.qdoc b/doc/src/widgets-and-layouts/gallery-motif.qdoc index b9c95c8..c65b49a 100644 --- a/doc/src/widgets-and-layouts/gallery-motif.qdoc +++ b/doc/src/widgets-and-layouts/gallery-motif.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/gallery-plastique.qdoc b/doc/src/widgets-and-layouts/gallery-plastique.qdoc index 5f2a1ec..f49627f 100644 --- a/doc/src/widgets-and-layouts/gallery-plastique.qdoc +++ b/doc/src/widgets-and-layouts/gallery-plastique.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/gallery-windows.qdoc b/doc/src/widgets-and-layouts/gallery-windows.qdoc index fe38745..59a30bd 100644 --- a/doc/src/widgets-and-layouts/gallery-windows.qdoc +++ b/doc/src/widgets-and-layouts/gallery-windows.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/gallery-windowsvista.qdoc b/doc/src/widgets-and-layouts/gallery-windowsvista.qdoc index e017a2c..5ca4a52 100644 --- a/doc/src/widgets-and-layouts/gallery-windowsvista.qdoc +++ b/doc/src/widgets-and-layouts/gallery-windowsvista.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/gallery-windowsxp.qdoc b/doc/src/widgets-and-layouts/gallery-windowsxp.qdoc index f3c53ee..11d6159 100644 --- a/doc/src/widgets-and-layouts/gallery-windowsxp.qdoc +++ b/doc/src/widgets-and-layouts/gallery-windowsxp.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/gallery.qdoc b/doc/src/widgets-and-layouts/gallery.qdoc index d11d9c8..ec33226 100644 --- a/doc/src/widgets-and-layouts/gallery.qdoc +++ b/doc/src/widgets-and-layouts/gallery.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/layout.qdoc b/doc/src/widgets-and-layouts/layout.qdoc index 10077f9..c3db5fa 100644 --- a/doc/src/widgets-and-layouts/layout.qdoc +++ b/doc/src/widgets-and-layouts/layout.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/styles.qdoc b/doc/src/widgets-and-layouts/styles.qdoc index cd0b86d..8231fcb 100644 --- a/doc/src/widgets-and-layouts/styles.qdoc +++ b/doc/src/widgets-and-layouts/styles.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/stylesheet.qdoc b/doc/src/widgets-and-layouts/stylesheet.qdoc index 6343e6a..9938a77 100644 --- a/doc/src/widgets-and-layouts/stylesheet.qdoc +++ b/doc/src/widgets-and-layouts/stylesheet.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/widgets-and-layouts/widgets.qdoc b/doc/src/widgets-and-layouts/widgets.qdoc index 6d1d5ee..66872b6 100644 --- a/doc/src/widgets-and-layouts/widgets.qdoc +++ b/doc/src/widgets-and-layouts/widgets.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/windows-and-dialogs/dialogs.qdoc b/doc/src/windows-and-dialogs/dialogs.qdoc index fef728f..895b19f 100644 --- a/doc/src/windows-and-dialogs/dialogs.qdoc +++ b/doc/src/windows-and-dialogs/dialogs.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/windows-and-dialogs/mainwindow.qdoc b/doc/src/windows-and-dialogs/mainwindow.qdoc index 9d3ac30..bf3e3a8 100644 --- a/doc/src/windows-and-dialogs/mainwindow.qdoc +++ b/doc/src/windows-and-dialogs/mainwindow.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/xml-processing/xml-patterns.qdoc b/doc/src/xml-processing/xml-patterns.qdoc index 2a38302..d0b6485 100644 --- a/doc/src/xml-processing/xml-patterns.qdoc +++ b/doc/src/xml-processing/xml-patterns.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/xml-processing/xml-processing.qdoc b/doc/src/xml-processing/xml-processing.qdoc index 85f3c7b..63539c7 100644 --- a/doc/src/xml-processing/xml-processing.qdoc +++ b/doc/src/xml-processing/xml-processing.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/xml-processing/xquery-introduction.qdoc b/doc/src/xml-processing/xquery-introduction.qdoc index 5f9743a..76d99dc 100644 --- a/doc/src/xml-processing/xquery-introduction.qdoc +++ b/doc/src/xml-processing/xquery-introduction.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/zh_CN/bughowto.qdoc b/doc/src/zh_CN/bughowto.qdoc index 13f5c70..872ff00 100644 --- a/doc/src/zh_CN/bughowto.qdoc +++ b/doc/src/zh_CN/bughowto.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/zh_CN/getting-started/how-to-learn-qt.qdoc b/doc/src/zh_CN/getting-started/how-to-learn-qt.qdoc index d942ee6..478bd64 100644 --- a/doc/src/zh_CN/getting-started/how-to-learn-qt.qdoc +++ b/doc/src/zh_CN/getting-started/how-to-learn-qt.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/zh_CN/getting-started/tutorials.qdoc b/doc/src/zh_CN/getting-started/tutorials.qdoc index b9ff7dd..d8f009e 100644 --- a/doc/src/zh_CN/getting-started/tutorials.qdoc +++ b/doc/src/zh_CN/getting-started/tutorials.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/zh_CN/tutorials/addressbook.qdoc b/doc/src/zh_CN/tutorials/addressbook.qdoc index cbd02d7..30dd93f 100644 --- a/doc/src/zh_CN/tutorials/addressbook.qdoc +++ b/doc/src/zh_CN/tutorials/addressbook.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/doc/src/zh_CN/tutorials/widgets-tutorial.qdoc b/doc/src/zh_CN/tutorials/widgets-tutorial.qdoc index 66e6c10..b80f94e 100644 --- a/doc/src/zh_CN/tutorials/widgets-tutorial.qdoc +++ b/doc/src/zh_CN/tutorials/widgets-tutorial.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/comapp/main.cpp b/examples/activeqt/comapp/main.cpp index cb0b57c..66af248 100644 --- a/examples/activeqt/comapp/main.cpp +++ b/examples/activeqt/comapp/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/dotnet/wrapper/lib/networker.cpp b/examples/activeqt/dotnet/wrapper/lib/networker.cpp index 2ef4699..a40297b 100644 --- a/examples/activeqt/dotnet/wrapper/lib/networker.cpp +++ b/examples/activeqt/dotnet/wrapper/lib/networker.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/dotnet/wrapper/lib/networker.h b/examples/activeqt/dotnet/wrapper/lib/networker.h index 6d43922..ef61085 100644 --- a/examples/activeqt/dotnet/wrapper/lib/networker.h +++ b/examples/activeqt/dotnet/wrapper/lib/networker.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/dotnet/wrapper/lib/tools.cpp b/examples/activeqt/dotnet/wrapper/lib/tools.cpp index 48c40ed..5a0fb20 100644 --- a/examples/activeqt/dotnet/wrapper/lib/tools.cpp +++ b/examples/activeqt/dotnet/wrapper/lib/tools.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/dotnet/wrapper/lib/tools.h b/examples/activeqt/dotnet/wrapper/lib/tools.h index fa69514..96b9230 100644 --- a/examples/activeqt/dotnet/wrapper/lib/tools.h +++ b/examples/activeqt/dotnet/wrapper/lib/tools.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/dotnet/wrapper/lib/worker.cpp b/examples/activeqt/dotnet/wrapper/lib/worker.cpp index 5277a0f..c55e85f 100644 --- a/examples/activeqt/dotnet/wrapper/lib/worker.cpp +++ b/examples/activeqt/dotnet/wrapper/lib/worker.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/dotnet/wrapper/lib/worker.h b/examples/activeqt/dotnet/wrapper/lib/worker.h index e5be5f6..0b4b0e2 100644 --- a/examples/activeqt/dotnet/wrapper/lib/worker.h +++ b/examples/activeqt/dotnet/wrapper/lib/worker.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/hierarchy/main.cpp b/examples/activeqt/hierarchy/main.cpp index b3b6f33..0f23b71 100644 --- a/examples/activeqt/hierarchy/main.cpp +++ b/examples/activeqt/hierarchy/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/hierarchy/objects.cpp b/examples/activeqt/hierarchy/objects.cpp index 918f219..eff9b84 100644 --- a/examples/activeqt/hierarchy/objects.cpp +++ b/examples/activeqt/hierarchy/objects.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/hierarchy/objects.h b/examples/activeqt/hierarchy/objects.h index fb7099c..f840a17 100644 --- a/examples/activeqt/hierarchy/objects.h +++ b/examples/activeqt/hierarchy/objects.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/menus/main.cpp b/examples/activeqt/menus/main.cpp index 46153a4..7d19e1f 100644 --- a/examples/activeqt/menus/main.cpp +++ b/examples/activeqt/menus/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/menus/menus.cpp b/examples/activeqt/menus/menus.cpp index 9203c59..f1e8718 100644 --- a/examples/activeqt/menus/menus.cpp +++ b/examples/activeqt/menus/menus.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/menus/menus.h b/examples/activeqt/menus/menus.h index 5399044..55aa995 100644 --- a/examples/activeqt/menus/menus.h +++ b/examples/activeqt/menus/menus.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/multiple/ax1.h b/examples/activeqt/multiple/ax1.h index 7bcd216..79c5109 100644 --- a/examples/activeqt/multiple/ax1.h +++ b/examples/activeqt/multiple/ax1.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/multiple/ax2.h b/examples/activeqt/multiple/ax2.h index 39422a6..3069bcf 100644 --- a/examples/activeqt/multiple/ax2.h +++ b/examples/activeqt/multiple/ax2.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/multiple/main.cpp b/examples/activeqt/multiple/main.cpp index b316ae4..d7ecdc6 100644 --- a/examples/activeqt/multiple/main.cpp +++ b/examples/activeqt/multiple/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/multiple/multipleax.rc b/examples/activeqt/multiple/multipleax.rc index c0f024d..b16b3a9 100644 --- a/examples/activeqt/multiple/multipleax.rc +++ b/examples/activeqt/multiple/multipleax.rc @@ -18,7 +18,7 @@ BEGIN VALUE "CompanyName", "Nokia Corporation and/or its subsidiary(-ies)" VALUE "FileDescription", "Multiple Example (ActiveQt)" VALUE "FileVersion", "1.0.0.0" - VALUE "LegalCopyright", "Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)." + VALUE "LegalCopyright", "Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies)." VALUE "InternalName", "multipleax.dll" VALUE "OriginalFilename", "multipleax.dll" VALUE "ProductName", "Multiple Example (ActiveQt)" diff --git a/examples/activeqt/opengl/glbox.cpp b/examples/activeqt/opengl/glbox.cpp index 0534cea..bf16232 100644 --- a/examples/activeqt/opengl/glbox.cpp +++ b/examples/activeqt/opengl/glbox.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/opengl/glbox.h b/examples/activeqt/opengl/glbox.h index d1c1901..e4740fc 100644 --- a/examples/activeqt/opengl/glbox.h +++ b/examples/activeqt/opengl/glbox.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/opengl/globjwin.cpp b/examples/activeqt/opengl/globjwin.cpp index ff5b61a..2626125 100644 --- a/examples/activeqt/opengl/globjwin.cpp +++ b/examples/activeqt/opengl/globjwin.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/opengl/globjwin.h b/examples/activeqt/opengl/globjwin.h index a1a3e39..5f660af 100644 --- a/examples/activeqt/opengl/globjwin.h +++ b/examples/activeqt/opengl/globjwin.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/opengl/main.cpp b/examples/activeqt/opengl/main.cpp index 3b6f067..4a16bac 100644 --- a/examples/activeqt/opengl/main.cpp +++ b/examples/activeqt/opengl/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/qutlook/addressview.cpp b/examples/activeqt/qutlook/addressview.cpp index b03808b..45ce662 100644 --- a/examples/activeqt/qutlook/addressview.cpp +++ b/examples/activeqt/qutlook/addressview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/qutlook/addressview.h b/examples/activeqt/qutlook/addressview.h index ab9f7f9..e1a0b85 100644 --- a/examples/activeqt/qutlook/addressview.h +++ b/examples/activeqt/qutlook/addressview.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/qutlook/main.cpp b/examples/activeqt/qutlook/main.cpp index 7acdec0..da5b656 100644 --- a/examples/activeqt/qutlook/main.cpp +++ b/examples/activeqt/qutlook/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/simple/main.cpp b/examples/activeqt/simple/main.cpp index 9251d63..7d6d340 100644 --- a/examples/activeqt/simple/main.cpp +++ b/examples/activeqt/simple/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/webbrowser/main.cpp b/examples/activeqt/webbrowser/main.cpp index 4ce10e3..4928380 100644 --- a/examples/activeqt/webbrowser/main.cpp +++ b/examples/activeqt/webbrowser/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/webbrowser/webaxwidget.h b/examples/activeqt/webbrowser/webaxwidget.h index 59a0fa4..b03ce12 100644 --- a/examples/activeqt/webbrowser/webaxwidget.h +++ b/examples/activeqt/webbrowser/webaxwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/wrapper/main.cpp b/examples/activeqt/wrapper/main.cpp index ee6cd88..49756d7 100644 --- a/examples/activeqt/wrapper/main.cpp +++ b/examples/activeqt/wrapper/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/activeqt/wrapper/wrapperax.rc b/examples/activeqt/wrapper/wrapperax.rc index 5799437..0ccf606 100644 --- a/examples/activeqt/wrapper/wrapperax.rc +++ b/examples/activeqt/wrapper/wrapperax.rc @@ -18,7 +18,7 @@ BEGIN VALUE "CompanyName", "Nokia Corporation and/or its subsidiary(-ies)" VALUE "FileDescription", "Wrapper Example (ActiveQt)" VALUE "FileVersion", "1.0.0.0" - VALUE "LegalCopyright", "Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)." + VALUE "LegalCopyright", "Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies)." VALUE "InternalName", "wrapperax.dll" VALUE "OriginalFilename", "wrapperax.dll" VALUE "ProductName", "Wrapper Example (ActiveQt)" diff --git a/examples/animation/animatedtiles/main.cpp b/examples/animation/animatedtiles/main.cpp index 0659e14..1badb4f 100644 --- a/examples/animation/animatedtiles/main.cpp +++ b/examples/animation/animatedtiles/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/appchooser/main.cpp b/examples/animation/appchooser/main.cpp index 14dd755..86ec073 100644 --- a/examples/animation/appchooser/main.cpp +++ b/examples/animation/appchooser/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/easing/animation.h b/examples/animation/easing/animation.h index 3cfb82e..f0aef65 100644 --- a/examples/animation/easing/animation.h +++ b/examples/animation/easing/animation.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/easing/main.cpp b/examples/animation/easing/main.cpp index 3cdc46a..def1db2 100644 --- a/examples/animation/easing/main.cpp +++ b/examples/animation/easing/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/easing/window.cpp b/examples/animation/easing/window.cpp index a555024..54fc8dd 100644 --- a/examples/animation/easing/window.cpp +++ b/examples/animation/easing/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/easing/window.h b/examples/animation/easing/window.h index 3173382..bbdf14e 100644 --- a/examples/animation/easing/window.h +++ b/examples/animation/easing/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/moveblocks/main.cpp b/examples/animation/moveblocks/main.cpp index b033e12..3194c1b 100644 --- a/examples/animation/moveblocks/main.cpp +++ b/examples/animation/moveblocks/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/states/main.cpp b/examples/animation/states/main.cpp index 199c059..1565489 100644 --- a/examples/animation/states/main.cpp +++ b/examples/animation/states/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/animation.cpp b/examples/animation/stickman/animation.cpp index b2a7c0a..af7144b 100644 --- a/examples/animation/stickman/animation.cpp +++ b/examples/animation/stickman/animation.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/animation.h b/examples/animation/stickman/animation.h index 4475191..51edda6 100644 --- a/examples/animation/stickman/animation.h +++ b/examples/animation/stickman/animation.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/graphicsview.cpp b/examples/animation/stickman/graphicsview.cpp index dea99c6..23036ef 100644 --- a/examples/animation/stickman/graphicsview.cpp +++ b/examples/animation/stickman/graphicsview.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/graphicsview.h b/examples/animation/stickman/graphicsview.h index ad9827d..9cf87b6 100644 --- a/examples/animation/stickman/graphicsview.h +++ b/examples/animation/stickman/graphicsview.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/lifecycle.cpp b/examples/animation/stickman/lifecycle.cpp index 02cdb71..4abcdc2 100644 --- a/examples/animation/stickman/lifecycle.cpp +++ b/examples/animation/stickman/lifecycle.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/lifecycle.h b/examples/animation/stickman/lifecycle.h index 760bdb9..1bf3661 100644 --- a/examples/animation/stickman/lifecycle.h +++ b/examples/animation/stickman/lifecycle.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/main.cpp b/examples/animation/stickman/main.cpp index 84a7654..08df766 100644 --- a/examples/animation/stickman/main.cpp +++ b/examples/animation/stickman/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/node.cpp b/examples/animation/stickman/node.cpp index d193b94..3077dff 100644 --- a/examples/animation/stickman/node.cpp +++ b/examples/animation/stickman/node.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/node.h b/examples/animation/stickman/node.h index 54b2e27..cefb3a8 100644 --- a/examples/animation/stickman/node.h +++ b/examples/animation/stickman/node.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/stickman.cpp b/examples/animation/stickman/stickman.cpp index f733895..8b47457 100644 --- a/examples/animation/stickman/stickman.cpp +++ b/examples/animation/stickman/stickman.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/animation/stickman/stickman.h b/examples/animation/stickman/stickman.h index 311fff9..eeebbef 100644 --- a/examples/animation/stickman/stickman.h +++ b/examples/animation/stickman/stickman.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/complexpingpong/complexping.cpp b/examples/dbus/complexpingpong/complexping.cpp index 4525d83..4e17486 100644 --- a/examples/dbus/complexpingpong/complexping.cpp +++ b/examples/dbus/complexpingpong/complexping.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/complexpingpong/complexping.h b/examples/dbus/complexpingpong/complexping.h index e0678fe..bf54e63 100644 --- a/examples/dbus/complexpingpong/complexping.h +++ b/examples/dbus/complexpingpong/complexping.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/complexpingpong/complexpong.cpp b/examples/dbus/complexpingpong/complexpong.cpp index abfdc4f..f16afd3 100644 --- a/examples/dbus/complexpingpong/complexpong.cpp +++ b/examples/dbus/complexpingpong/complexpong.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/complexpingpong/complexpong.h b/examples/dbus/complexpingpong/complexpong.h index 7211228..cc05972 100644 --- a/examples/dbus/complexpingpong/complexpong.h +++ b/examples/dbus/complexpingpong/complexpong.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/complexpingpong/ping-common.h b/examples/dbus/complexpingpong/ping-common.h index 913c90a..5325173 100644 --- a/examples/dbus/complexpingpong/ping-common.h +++ b/examples/dbus/complexpingpong/ping-common.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/dbus-chat/chat.cpp b/examples/dbus/dbus-chat/chat.cpp index a10cb87..5cc12ca 100644 --- a/examples/dbus/dbus-chat/chat.cpp +++ b/examples/dbus/dbus-chat/chat.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/dbus-chat/chat.h b/examples/dbus/dbus-chat/chat.h index 1f439c2..c7d7b6d 100644 --- a/examples/dbus/dbus-chat/chat.h +++ b/examples/dbus/dbus-chat/chat.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/dbus-chat/chat_adaptor.cpp b/examples/dbus/dbus-chat/chat_adaptor.cpp index 53b00a3..553e6e1 100644 --- a/examples/dbus/dbus-chat/chat_adaptor.cpp +++ b/examples/dbus/dbus-chat/chat_adaptor.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ ** This file was generated by qdbusxml2cpp version 0.7 ** Command line was: qdbusxml2cpp -i chat_adaptor.h -a :chat_adaptor.cpp com.trolltech.chat.xml ** -** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** ** This is an auto-generated file. ** Do not edit! All changes made to it will be lost. diff --git a/examples/dbus/dbus-chat/chat_adaptor.h b/examples/dbus/dbus-chat/chat_adaptor.h index 386a4a6..2558ceb 100644 --- a/examples/dbus/dbus-chat/chat_adaptor.h +++ b/examples/dbus/dbus-chat/chat_adaptor.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ ** This file was generated by qdbusxml2cpp version 0.7 ** Command line was: qdbusxml2cpp -a chat_adaptor.h: com.trolltech.chat.xml ** -** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** ** This is an auto-generated file. ** This file may have been hand-edited. Look for HAND-EDIT comments diff --git a/examples/dbus/dbus-chat/chat_interface.cpp b/examples/dbus/dbus-chat/chat_interface.cpp index 14697ef..ea47250 100644 --- a/examples/dbus/dbus-chat/chat_interface.cpp +++ b/examples/dbus/dbus-chat/chat_interface.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ ** This file was generated by qdbusxml2cpp version 0.7 ** Command line was: qdbusxml2cpp -i chat_interface.h -p :chat_interface.cpp com.trolltech.chat.xml ** -** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** ** This is an auto-generated file. ** This file may have been hand-edited. Look for HAND-EDIT comments diff --git a/examples/dbus/dbus-chat/chat_interface.h b/examples/dbus/dbus-chat/chat_interface.h index 44a950c..8db1b4f 100644 --- a/examples/dbus/dbus-chat/chat_interface.h +++ b/examples/dbus/dbus-chat/chat_interface.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ ** This file was generated by qdbusxml2cpp version 0.7 ** Command line was: qdbusxml2cpp -p chat_interface.h: com.trolltech.chat.xml ** -** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** ** This is an auto-generated file. ** Do not edit! All changes made to it will be lost. diff --git a/examples/dbus/listnames/listnames.cpp b/examples/dbus/listnames/listnames.cpp index de8e9b6..40bb032 100644 --- a/examples/dbus/listnames/listnames.cpp +++ b/examples/dbus/listnames/listnames.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/pingpong/ping-common.h b/examples/dbus/pingpong/ping-common.h index 913c90a..5325173 100644 --- a/examples/dbus/pingpong/ping-common.h +++ b/examples/dbus/pingpong/ping-common.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/pingpong/ping.cpp b/examples/dbus/pingpong/ping.cpp index bd3ed18..67aaf57 100644 --- a/examples/dbus/pingpong/ping.cpp +++ b/examples/dbus/pingpong/ping.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/pingpong/pong.cpp b/examples/dbus/pingpong/pong.cpp index 2b6285f..a7c0ad3 100644 --- a/examples/dbus/pingpong/pong.cpp +++ b/examples/dbus/pingpong/pong.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/pingpong/pong.h b/examples/dbus/pingpong/pong.h index 98f7ed2..1b53f11 100644 --- a/examples/dbus/pingpong/pong.h +++ b/examples/dbus/pingpong/pong.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/remotecontrolledcar/car/car.cpp b/examples/dbus/remotecontrolledcar/car/car.cpp index 69463b9..50f8f24 100644 --- a/examples/dbus/remotecontrolledcar/car/car.cpp +++ b/examples/dbus/remotecontrolledcar/car/car.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/remotecontrolledcar/car/car.h b/examples/dbus/remotecontrolledcar/car/car.h index c611018..3db41d7 100644 --- a/examples/dbus/remotecontrolledcar/car/car.h +++ b/examples/dbus/remotecontrolledcar/car/car.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/remotecontrolledcar/car/car_adaptor.cpp b/examples/dbus/remotecontrolledcar/car/car_adaptor.cpp index 72f69cf..4ced1f5 100644 --- a/examples/dbus/remotecontrolledcar/car/car_adaptor.cpp +++ b/examples/dbus/remotecontrolledcar/car/car_adaptor.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ ** This file was generated by qdbusxml2cpp version 0.7 ** Command line was: qdbusxml2cpp -i car_adaptor.h -a :car_adaptor.cpp car.xml ** -** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** ** This is an auto-generated file. ** Do not edit! All changes made to it will be lost. diff --git a/examples/dbus/remotecontrolledcar/car/car_adaptor.h b/examples/dbus/remotecontrolledcar/car/car_adaptor.h index 90282cd..c31779f 100644 --- a/examples/dbus/remotecontrolledcar/car/car_adaptor.h +++ b/examples/dbus/remotecontrolledcar/car/car_adaptor.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ ** This file was generated by qdbusxml2cpp version 0.7 ** Command line was: qdbusxml2cpp -a car_adaptor.h: car.xml ** -** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** ** This is an auto-generated file. ** This file may have been hand-edited. Look for HAND-EDIT comments diff --git a/examples/dbus/remotecontrolledcar/car/main.cpp b/examples/dbus/remotecontrolledcar/car/main.cpp index 159b334..342a2b0 100644 --- a/examples/dbus/remotecontrolledcar/car/main.cpp +++ b/examples/dbus/remotecontrolledcar/car/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/remotecontrolledcar/controller/car_interface.cpp b/examples/dbus/remotecontrolledcar/controller/car_interface.cpp index f5dde85..e1e6ae4 100644 --- a/examples/dbus/remotecontrolledcar/controller/car_interface.cpp +++ b/examples/dbus/remotecontrolledcar/controller/car_interface.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ ** This file was generated by qdbusxml2cpp version 0.7 ** Command line was: qdbusxml2cpp -i car_interface.h -p :car_interface.cpp car.xml ** -** qqdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** qqdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** ** This is an auto-generated file. ** This file may have been hand-edited. Look for HAND-EDIT comments diff --git a/examples/dbus/remotecontrolledcar/controller/car_interface.h b/examples/dbus/remotecontrolledcar/controller/car_interface.h index d34fdee..e7e3774 100644 --- a/examples/dbus/remotecontrolledcar/controller/car_interface.h +++ b/examples/dbus/remotecontrolledcar/controller/car_interface.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -40,7 +40,7 @@ ** This file was generated by qdbusxml2cpp version 0.7 ** Command line was: qdbusxml2cpp -p car_interface.h: car.xml ** -** qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** qdbusxml2cpp is Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** ** This is an auto-generated file. ** Do not edit! All changes made to it will be lost. diff --git a/examples/dbus/remotecontrolledcar/controller/controller.cpp b/examples/dbus/remotecontrolledcar/controller/controller.cpp index f836bcb..8691aaf 100644 --- a/examples/dbus/remotecontrolledcar/controller/controller.cpp +++ b/examples/dbus/remotecontrolledcar/controller/controller.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/remotecontrolledcar/controller/controller.h b/examples/dbus/remotecontrolledcar/controller/controller.h index e24ea06..3fe172e 100644 --- a/examples/dbus/remotecontrolledcar/controller/controller.h +++ b/examples/dbus/remotecontrolledcar/controller/controller.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dbus/remotecontrolledcar/controller/main.cpp b/examples/dbus/remotecontrolledcar/controller/main.cpp index 7479cbd..5b53611 100644 --- a/examples/dbus/remotecontrolledcar/controller/main.cpp +++ b/examples/dbus/remotecontrolledcar/controller/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/animation/basics/color-animation.qml b/examples/declarative/animation/basics/color-animation.qml index 809f391..2609166 100644 --- a/examples/declarative/animation/basics/color-animation.qml +++ b/examples/declarative/animation/basics/color-animation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/animation/basics/property-animation.qml b/examples/declarative/animation/basics/property-animation.qml index 0a5b353..f678280 100644 --- a/examples/declarative/animation/basics/property-animation.qml +++ b/examples/declarative/animation/basics/property-animation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/animation/behaviors/SideRect.qml b/examples/declarative/animation/behaviors/SideRect.qml index 9517421..1ba681e 100644 --- a/examples/declarative/animation/behaviors/SideRect.qml +++ b/examples/declarative/animation/behaviors/SideRect.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/animation/behaviors/behavior-example.qml b/examples/declarative/animation/behaviors/behavior-example.qml index 3e050ab..55c912a 100644 --- a/examples/declarative/animation/behaviors/behavior-example.qml +++ b/examples/declarative/animation/behaviors/behavior-example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/animation/behaviors/wigglytext.qml b/examples/declarative/animation/behaviors/wigglytext.qml index 6cd93ab..0a2d028 100644 --- a/examples/declarative/animation/behaviors/wigglytext.qml +++ b/examples/declarative/animation/behaviors/wigglytext.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/animation/easing/content/QuitButton.qml b/examples/declarative/animation/easing/content/QuitButton.qml index cbbf916..39f8f77 100644 --- a/examples/declarative/animation/easing/content/QuitButton.qml +++ b/examples/declarative/animation/easing/content/QuitButton.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/animation/easing/easing.qml b/examples/declarative/animation/easing/easing.qml index fd974d9..1092ee5 100644 --- a/examples/declarative/animation/easing/easing.qml +++ b/examples/declarative/animation/easing/easing.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/animation/states/states.qml b/examples/declarative/animation/states/states.qml index a9046eb..76aa93f 100644 --- a/examples/declarative/animation/states/states.qml +++ b/examples/declarative/animation/states/states.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/animation/states/transitions.qml b/examples/declarative/animation/states/transitions.qml index ea73b82..531f309 100644 --- a/examples/declarative/animation/states/transitions.qml +++ b/examples/declarative/animation/states/transitions.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml index eda9a43..e25b420 100644 --- a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml +++ b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider.cpp b/examples/declarative/cppextensions/imageprovider/imageprovider.cpp index 18d027e..730ce4b 100644 --- a/examples/declarative/cppextensions/imageprovider/imageprovider.cpp +++ b/examples/declarative/cppextensions/imageprovider/imageprovider.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/networkaccessmanagerfactory/main.cpp b/examples/declarative/cppextensions/networkaccessmanagerfactory/main.cpp index 13212ca..665feac 100644 --- a/examples/declarative/cppextensions/networkaccessmanagerfactory/main.cpp +++ b/examples/declarative/cppextensions/networkaccessmanagerfactory/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/networkaccessmanagerfactory/view.qml b/examples/declarative/cppextensions/networkaccessmanagerfactory/view.qml index 07c2f5a..e002ef6 100644 --- a/examples/declarative/cppextensions/networkaccessmanagerfactory/view.qml +++ b/examples/declarative/cppextensions/networkaccessmanagerfactory/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml index f416c8b..465f164 100644 --- a/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml +++ b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/plugins/plugin.cpp b/examples/declarative/cppextensions/plugins/plugin.cpp index 01d5361..056e093 100644 --- a/examples/declarative/cppextensions/plugins/plugin.cpp +++ b/examples/declarative/cppextensions/plugins/plugin.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/plugins/plugins.qml b/examples/declarative/cppextensions/plugins/plugins.qml index 3aa0995..a61af15 100644 --- a/examples/declarative/cppextensions/plugins/plugins.qml +++ b/examples/declarative/cppextensions/plugins/plugins.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qml b/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qml index 5f442af..de4d161 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qml +++ b/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/main.cpp b/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/main.cpp index 20a83e7..db94dea 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/main.cpp +++ b/examples/declarative/cppextensions/qgraphicslayouts/layoutitem/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.cpp b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.cpp index 79d3f4c..3a073d0 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.cpp +++ b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.h b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.h index a9818a0..905f2f2 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.h +++ b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout.qml b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout.qml index 5a83937..6780a5a 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout.qml +++ b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.cpp b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.cpp index e8b2daa..75f43ca 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.cpp +++ b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.h b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.h index 985b335..e423bd0 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.h +++ b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout.qml b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout.qml index becbbfa..a7d79e5 100644 --- a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout.qml +++ b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/qwidgets/qwidgets.cpp b/examples/declarative/cppextensions/qwidgets/qwidgets.cpp index 47d3932..172f895 100644 --- a/examples/declarative/cppextensions/qwidgets/qwidgets.cpp +++ b/examples/declarative/cppextensions/qwidgets/qwidgets.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/qwidgets/qwidgets.qml b/examples/declarative/cppextensions/qwidgets/qwidgets.qml index 6ad937b..5046dd7 100644 --- a/examples/declarative/cppextensions/qwidgets/qwidgets.qml +++ b/examples/declarative/cppextensions/qwidgets/qwidgets.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/adding/example.qml b/examples/declarative/cppextensions/referenceexamples/adding/example.qml index de9a5c6..65819b2 100644 --- a/examples/declarative/cppextensions/referenceexamples/adding/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/adding/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/adding/main.cpp b/examples/declarative/cppextensions/referenceexamples/adding/main.cpp index 19cf034..3a32c65 100644 --- a/examples/declarative/cppextensions/referenceexamples/adding/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/adding/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/adding/person.cpp b/examples/declarative/cppextensions/referenceexamples/adding/person.cpp index 336600b..a6b47aa 100644 --- a/examples/declarative/cppextensions/referenceexamples/adding/person.cpp +++ b/examples/declarative/cppextensions/referenceexamples/adding/person.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/adding/person.h b/examples/declarative/cppextensions/referenceexamples/adding/person.h index e6defbb..b85c601 100644 --- a/examples/declarative/cppextensions/referenceexamples/adding/person.h +++ b/examples/declarative/cppextensions/referenceexamples/adding/person.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.cpp index 2b830d4..713c85c 100644 --- a/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.cpp +++ b/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.h index f2a3802..eaec771 100644 --- a/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.h +++ b/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/attached/example.qml b/examples/declarative/cppextensions/referenceexamples/attached/example.qml index ad21879..4e6b580 100644 --- a/examples/declarative/cppextensions/referenceexamples/attached/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/attached/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/attached/main.cpp b/examples/declarative/cppextensions/referenceexamples/attached/main.cpp index 65cbc93..1a22d51 100644 --- a/examples/declarative/cppextensions/referenceexamples/attached/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/attached/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/attached/person.cpp b/examples/declarative/cppextensions/referenceexamples/attached/person.cpp index 27d5e64..3be06bd 100644 --- a/examples/declarative/cppextensions/referenceexamples/attached/person.cpp +++ b/examples/declarative/cppextensions/referenceexamples/attached/person.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/attached/person.h b/examples/declarative/cppextensions/referenceexamples/attached/person.h index e8da6bb..5db160f 100644 --- a/examples/declarative/cppextensions/referenceexamples/attached/person.h +++ b/examples/declarative/cppextensions/referenceexamples/attached/person.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.cpp index 121fe8c..bfdc2f7 100644 --- a/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.cpp +++ b/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.h index 9b04bb8..59249df 100644 --- a/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.h +++ b/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/binding/example.qml b/examples/declarative/cppextensions/referenceexamples/binding/example.qml index b8731a4..e2e7cb3 100644 --- a/examples/declarative/cppextensions/referenceexamples/binding/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/binding/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.cpp b/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.cpp index 0950b0c..761039b 100644 --- a/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.cpp +++ b/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.h b/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.h index 9052f6e..e288d75 100644 --- a/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.h +++ b/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/binding/main.cpp b/examples/declarative/cppextensions/referenceexamples/binding/main.cpp index 150f961..55f186d 100644 --- a/examples/declarative/cppextensions/referenceexamples/binding/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/binding/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/binding/person.cpp b/examples/declarative/cppextensions/referenceexamples/binding/person.cpp index c7fa0a3..28a5e6d 100644 --- a/examples/declarative/cppextensions/referenceexamples/binding/person.cpp +++ b/examples/declarative/cppextensions/referenceexamples/binding/person.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/binding/person.h b/examples/declarative/cppextensions/referenceexamples/binding/person.h index 58ba9cc..94d3eb4 100644 --- a/examples/declarative/cppextensions/referenceexamples/binding/person.h +++ b/examples/declarative/cppextensions/referenceexamples/binding/person.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.cpp index f80fe20..227602f 100644 --- a/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.cpp +++ b/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.h index a470866..d1aaee8 100644 --- a/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.h +++ b/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/coercion/example.qml b/examples/declarative/cppextensions/referenceexamples/coercion/example.qml index 8ad5af8..c12b95f 100644 --- a/examples/declarative/cppextensions/referenceexamples/coercion/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/coercion/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp b/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp index 5b16f99..01b39a3 100644 --- a/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/coercion/person.cpp b/examples/declarative/cppextensions/referenceexamples/coercion/person.cpp index 2b1b77a..add92f0 100644 --- a/examples/declarative/cppextensions/referenceexamples/coercion/person.cpp +++ b/examples/declarative/cppextensions/referenceexamples/coercion/person.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/coercion/person.h b/examples/declarative/cppextensions/referenceexamples/coercion/person.h index 6266678..db314a3 100644 --- a/examples/declarative/cppextensions/referenceexamples/coercion/person.h +++ b/examples/declarative/cppextensions/referenceexamples/coercion/person.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.cpp index f80fe20..227602f 100644 --- a/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.cpp +++ b/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.h index 48a2599..2392ff0 100644 --- a/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.h +++ b/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/default/example.qml b/examples/declarative/cppextensions/referenceexamples/default/example.qml index 79b9c59..b5895ae 100644 --- a/examples/declarative/cppextensions/referenceexamples/default/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/default/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/default/main.cpp b/examples/declarative/cppextensions/referenceexamples/default/main.cpp index bfba642..4823291 100644 --- a/examples/declarative/cppextensions/referenceexamples/default/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/default/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/default/person.cpp b/examples/declarative/cppextensions/referenceexamples/default/person.cpp index b4d92ff..2d1005d 100644 --- a/examples/declarative/cppextensions/referenceexamples/default/person.cpp +++ b/examples/declarative/cppextensions/referenceexamples/default/person.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/default/person.h b/examples/declarative/cppextensions/referenceexamples/default/person.h index 0178ebb..9006fca 100644 --- a/examples/declarative/cppextensions/referenceexamples/default/person.h +++ b/examples/declarative/cppextensions/referenceexamples/default/person.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/extended/example.qml b/examples/declarative/cppextensions/referenceexamples/extended/example.qml index afc941b..21dad36 100644 --- a/examples/declarative/cppextensions/referenceexamples/extended/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/extended/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/extended/lineedit.cpp b/examples/declarative/cppextensions/referenceexamples/extended/lineedit.cpp index 4df0191..713a6a7 100644 --- a/examples/declarative/cppextensions/referenceexamples/extended/lineedit.cpp +++ b/examples/declarative/cppextensions/referenceexamples/extended/lineedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/extended/lineedit.h b/examples/declarative/cppextensions/referenceexamples/extended/lineedit.h index 8c22302..f7a0827 100644 --- a/examples/declarative/cppextensions/referenceexamples/extended/lineedit.h +++ b/examples/declarative/cppextensions/referenceexamples/extended/lineedit.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/extended/main.cpp b/examples/declarative/cppextensions/referenceexamples/extended/main.cpp index 08c8440..414106c 100644 --- a/examples/declarative/cppextensions/referenceexamples/extended/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/extended/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.cpp index f80fe20..227602f 100644 --- a/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.cpp +++ b/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.h index 83a6bb1..47ed8f5 100644 --- a/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.h +++ b/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/grouped/example.qml b/examples/declarative/cppextensions/referenceexamples/grouped/example.qml index ba1f9ab..81e44d0 100644 --- a/examples/declarative/cppextensions/referenceexamples/grouped/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/grouped/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp b/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp index 6f7f13f..ea7d0ae 100644 --- a/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/grouped/person.cpp b/examples/declarative/cppextensions/referenceexamples/grouped/person.cpp index 27d5e64..3be06bd 100644 --- a/examples/declarative/cppextensions/referenceexamples/grouped/person.cpp +++ b/examples/declarative/cppextensions/referenceexamples/grouped/person.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/grouped/person.h b/examples/declarative/cppextensions/referenceexamples/grouped/person.h index fef9fdd..5efbd80 100644 --- a/examples/declarative/cppextensions/referenceexamples/grouped/person.h +++ b/examples/declarative/cppextensions/referenceexamples/grouped/person.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.cpp index 801c7ba..cd6dc66 100644 --- a/examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.cpp +++ b/examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.h index b89a30e..e49bffd 100644 --- a/examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.h +++ b/examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/methods/example.qml b/examples/declarative/cppextensions/referenceexamples/methods/example.qml index f3616c7..868473a 100644 --- a/examples/declarative/cppextensions/referenceexamples/methods/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/methods/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/methods/main.cpp b/examples/declarative/cppextensions/referenceexamples/methods/main.cpp index d974647..90e1fad 100644 --- a/examples/declarative/cppextensions/referenceexamples/methods/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/methods/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/methods/person.cpp b/examples/declarative/cppextensions/referenceexamples/methods/person.cpp index beffe78..600b05f 100644 --- a/examples/declarative/cppextensions/referenceexamples/methods/person.cpp +++ b/examples/declarative/cppextensions/referenceexamples/methods/person.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/methods/person.h b/examples/declarative/cppextensions/referenceexamples/methods/person.h index 8c950da..8545a3e 100644 --- a/examples/declarative/cppextensions/referenceexamples/methods/person.h +++ b/examples/declarative/cppextensions/referenceexamples/methods/person.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.cpp index 0b42656..637f354 100644 --- a/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.cpp +++ b/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h index 20a596b..0227bb6 100644 --- a/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h +++ b/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/properties/example.qml b/examples/declarative/cppextensions/referenceexamples/properties/example.qml index d8c88d5..200492e 100644 --- a/examples/declarative/cppextensions/referenceexamples/properties/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/properties/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/properties/main.cpp b/examples/declarative/cppextensions/referenceexamples/properties/main.cpp index d974647..90e1fad 100644 --- a/examples/declarative/cppextensions/referenceexamples/properties/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/properties/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/properties/person.cpp b/examples/declarative/cppextensions/referenceexamples/properties/person.cpp index beffe78..600b05f 100644 --- a/examples/declarative/cppextensions/referenceexamples/properties/person.cpp +++ b/examples/declarative/cppextensions/referenceexamples/properties/person.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/properties/person.h b/examples/declarative/cppextensions/referenceexamples/properties/person.h index 8c950da..8545a3e 100644 --- a/examples/declarative/cppextensions/referenceexamples/properties/person.h +++ b/examples/declarative/cppextensions/referenceexamples/properties/person.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.cpp index 391e5ae..fefbb97 100644 --- a/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.cpp +++ b/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.h index 6042d02..51972fc 100644 --- a/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.h +++ b/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/signal/example.qml b/examples/declarative/cppextensions/referenceexamples/signal/example.qml index 1e6f2db..49ea43b 100644 --- a/examples/declarative/cppextensions/referenceexamples/signal/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/signal/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/signal/main.cpp b/examples/declarative/cppextensions/referenceexamples/signal/main.cpp index ad87bee..32bae71 100644 --- a/examples/declarative/cppextensions/referenceexamples/signal/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/signal/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/signal/person.cpp b/examples/declarative/cppextensions/referenceexamples/signal/person.cpp index 27d5e64..3be06bd 100644 --- a/examples/declarative/cppextensions/referenceexamples/signal/person.cpp +++ b/examples/declarative/cppextensions/referenceexamples/signal/person.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/signal/person.h b/examples/declarative/cppextensions/referenceexamples/signal/person.h index e8da6bb..5db160f 100644 --- a/examples/declarative/cppextensions/referenceexamples/signal/person.h +++ b/examples/declarative/cppextensions/referenceexamples/signal/person.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.cpp index 54adae0..8535633 100644 --- a/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.cpp +++ b/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.h index 1a87f9e..dfe3bd6 100644 --- a/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.h +++ b/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/valuesource/example.qml b/examples/declarative/cppextensions/referenceexamples/valuesource/example.qml index 11d29d9..7c6abef 100644 --- a/examples/declarative/cppextensions/referenceexamples/valuesource/example.qml +++ b/examples/declarative/cppextensions/referenceexamples/valuesource/example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.cpp b/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.cpp index ac5ac5a..82b55e7 100644 --- a/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.cpp +++ b/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h b/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h index fb114ec..b3cd3f4 100644 --- a/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h +++ b/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp b/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp index aa77665..c0f0ba7 100644 --- a/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp +++ b/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/valuesource/person.cpp b/examples/declarative/cppextensions/referenceexamples/valuesource/person.cpp index 27d5e64..3be06bd 100644 --- a/examples/declarative/cppextensions/referenceexamples/valuesource/person.cpp +++ b/examples/declarative/cppextensions/referenceexamples/valuesource/person.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/cppextensions/referenceexamples/valuesource/person.h b/examples/declarative/cppextensions/referenceexamples/valuesource/person.h index e8da6bb..5db160f 100644 --- a/examples/declarative/cppextensions/referenceexamples/valuesource/person.h +++ b/examples/declarative/cppextensions/referenceexamples/valuesource/person.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/i18n/i18n.qml b/examples/declarative/i18n/i18n.qml index 219deda..3e24f65 100644 --- a/examples/declarative/i18n/i18n.qml +++ b/examples/declarative/i18n/i18n.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/imageelements/borderimage/borderimage.qml b/examples/declarative/imageelements/borderimage/borderimage.qml index 53e35f9..2ff18c8 100644 --- a/examples/declarative/imageelements/borderimage/borderimage.qml +++ b/examples/declarative/imageelements/borderimage/borderimage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/imageelements/borderimage/content/MyBorderImage.qml b/examples/declarative/imageelements/borderimage/content/MyBorderImage.qml index 96495cb..8ace6e1 100644 --- a/examples/declarative/imageelements/borderimage/content/MyBorderImage.qml +++ b/examples/declarative/imageelements/borderimage/content/MyBorderImage.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml b/examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml index 839ecf1..722beae 100644 --- a/examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml +++ b/examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/imageelements/borderimage/shadows.qml b/examples/declarative/imageelements/borderimage/shadows.qml index d547f63..b48ab84 100644 --- a/examples/declarative/imageelements/borderimage/shadows.qml +++ b/examples/declarative/imageelements/borderimage/shadows.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/imageelements/image/ImageCell.qml b/examples/declarative/imageelements/image/ImageCell.qml index e8a6c55..46a432f 100644 --- a/examples/declarative/imageelements/image/ImageCell.qml +++ b/examples/declarative/imageelements/image/ImageCell.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/imageelements/image/image.qml b/examples/declarative/imageelements/image/image.qml index f00fc18..abaa095 100644 --- a/examples/declarative/imageelements/image/image.qml +++ b/examples/declarative/imageelements/image/image.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml index 79273ad..d43daf0 100644 --- a/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml +++ b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/keyinteraction/focus/Core/GridMenu.qml b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml index 263adad..f3894fb 100644 --- a/examples/declarative/keyinteraction/focus/Core/GridMenu.qml +++ b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/keyinteraction/focus/Core/ListMenu.qml b/examples/declarative/keyinteraction/focus/Core/ListMenu.qml index cefc9a3..29650dc 100644 --- a/examples/declarative/keyinteraction/focus/Core/ListMenu.qml +++ b/examples/declarative/keyinteraction/focus/Core/ListMenu.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml b/examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml index 7b63cd8..88c3624 100644 --- a/examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml +++ b/examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/keyinteraction/focus/focus.qml b/examples/declarative/keyinteraction/focus/focus.qml index e2115d8..9cb1fef 100644 --- a/examples/declarative/keyinteraction/focus/focus.qml +++ b/examples/declarative/keyinteraction/focus/focus.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/abstractitemmodel/main.cpp b/examples/declarative/modelviews/abstractitemmodel/main.cpp index dc563ad..f60c9b8 100644 --- a/examples/declarative/modelviews/abstractitemmodel/main.cpp +++ b/examples/declarative/modelviews/abstractitemmodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/abstractitemmodel/model.cpp b/examples/declarative/modelviews/abstractitemmodel/model.cpp index eab6728..9da0729 100644 --- a/examples/declarative/modelviews/abstractitemmodel/model.cpp +++ b/examples/declarative/modelviews/abstractitemmodel/model.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/abstractitemmodel/model.h b/examples/declarative/modelviews/abstractitemmodel/model.h index 34a9091..41573fb 100644 --- a/examples/declarative/modelviews/abstractitemmodel/model.h +++ b/examples/declarative/modelviews/abstractitemmodel/model.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/abstractitemmodel/view.qml b/examples/declarative/modelviews/abstractitemmodel/view.qml index d1ab302..0363e9a 100644 --- a/examples/declarative/modelviews/abstractitemmodel/view.qml +++ b/examples/declarative/modelviews/abstractitemmodel/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/gridview/gridview-example.qml b/examples/declarative/modelviews/gridview/gridview-example.qml index 85fefda..85bd2f1 100644 --- a/examples/declarative/modelviews/gridview/gridview-example.qml +++ b/examples/declarative/modelviews/gridview/gridview-example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/listview/content/PetsModel.qml b/examples/declarative/modelviews/listview/content/PetsModel.qml index 5220763..d7375a7 100644 --- a/examples/declarative/modelviews/listview/content/PetsModel.qml +++ b/examples/declarative/modelviews/listview/content/PetsModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/listview/content/PressAndHoldButton.qml b/examples/declarative/modelviews/listview/content/PressAndHoldButton.qml index d6808a4..b79b5cb 100644 --- a/examples/declarative/modelviews/listview/content/PressAndHoldButton.qml +++ b/examples/declarative/modelviews/listview/content/PressAndHoldButton.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/listview/content/RecipesModel.qml b/examples/declarative/modelviews/listview/content/RecipesModel.qml index 6056b90..893d639 100644 --- a/examples/declarative/modelviews/listview/content/RecipesModel.qml +++ b/examples/declarative/modelviews/listview/content/RecipesModel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/listview/content/TextButton.qml b/examples/declarative/modelviews/listview/content/TextButton.qml index f26d775..9eef671 100644 --- a/examples/declarative/modelviews/listview/content/TextButton.qml +++ b/examples/declarative/modelviews/listview/content/TextButton.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/listview/dynamiclist.qml b/examples/declarative/modelviews/listview/dynamiclist.qml index f25f0fa..350a337 100644 --- a/examples/declarative/modelviews/listview/dynamiclist.qml +++ b/examples/declarative/modelviews/listview/dynamiclist.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/listview/expandingdelegates.qml b/examples/declarative/modelviews/listview/expandingdelegates.qml index bd3d3a9..d961aba 100644 --- a/examples/declarative/modelviews/listview/expandingdelegates.qml +++ b/examples/declarative/modelviews/listview/expandingdelegates.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/listview/highlight.qml b/examples/declarative/modelviews/listview/highlight.qml index 249c73b..e9e269f 100644 --- a/examples/declarative/modelviews/listview/highlight.qml +++ b/examples/declarative/modelviews/listview/highlight.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/listview/highlightranges.qml b/examples/declarative/modelviews/listview/highlightranges.qml index 58d37a3..cad40e7 100644 --- a/examples/declarative/modelviews/listview/highlightranges.qml +++ b/examples/declarative/modelviews/listview/highlightranges.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/listview/sections.qml b/examples/declarative/modelviews/listview/sections.qml index 3248899..30c5a48 100644 --- a/examples/declarative/modelviews/listview/sections.qml +++ b/examples/declarative/modelviews/listview/sections.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/objectlistmodel/dataobject.cpp b/examples/declarative/modelviews/objectlistmodel/dataobject.cpp index ce7465a..b472f13 100644 --- a/examples/declarative/modelviews/objectlistmodel/dataobject.cpp +++ b/examples/declarative/modelviews/objectlistmodel/dataobject.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/objectlistmodel/dataobject.h b/examples/declarative/modelviews/objectlistmodel/dataobject.h index 22e5de2..b2d34b7 100644 --- a/examples/declarative/modelviews/objectlistmodel/dataobject.h +++ b/examples/declarative/modelviews/objectlistmodel/dataobject.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/objectlistmodel/main.cpp b/examples/declarative/modelviews/objectlistmodel/main.cpp index 89c22a1..812d8ad 100644 --- a/examples/declarative/modelviews/objectlistmodel/main.cpp +++ b/examples/declarative/modelviews/objectlistmodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/objectlistmodel/view.qml b/examples/declarative/modelviews/objectlistmodel/view.qml index fd9d149..264289f 100644 --- a/examples/declarative/modelviews/objectlistmodel/view.qml +++ b/examples/declarative/modelviews/objectlistmodel/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/package/Delegate.qml b/examples/declarative/modelviews/package/Delegate.qml index 57048f4..24abc5d 100644 --- a/examples/declarative/modelviews/package/Delegate.qml +++ b/examples/declarative/modelviews/package/Delegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/package/view.qml b/examples/declarative/modelviews/package/view.qml index cbe8f06..1715ba1 100644 --- a/examples/declarative/modelviews/package/view.qml +++ b/examples/declarative/modelviews/package/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/parallax/parallax.qml b/examples/declarative/modelviews/parallax/parallax.qml index 0d07522..5fa24ad 100644 --- a/examples/declarative/modelviews/parallax/parallax.qml +++ b/examples/declarative/modelviews/parallax/parallax.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/parallax/qml/ParallaxView.qml b/examples/declarative/modelviews/parallax/qml/ParallaxView.qml index 96e3db9..9ad636f 100644 --- a/examples/declarative/modelviews/parallax/qml/ParallaxView.qml +++ b/examples/declarative/modelviews/parallax/qml/ParallaxView.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/parallax/qml/Smiley.qml b/examples/declarative/modelviews/parallax/qml/Smiley.qml index cac0a17..c964f50 100644 --- a/examples/declarative/modelviews/parallax/qml/Smiley.qml +++ b/examples/declarative/modelviews/parallax/qml/Smiley.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/pathview/pathview-example.qml b/examples/declarative/modelviews/pathview/pathview-example.qml index baf7575..bddab8f 100644 --- a/examples/declarative/modelviews/pathview/pathview-example.qml +++ b/examples/declarative/modelviews/pathview/pathview-example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/stringlistmodel/main.cpp b/examples/declarative/modelviews/stringlistmodel/main.cpp index bf46c63..b3452ba 100644 --- a/examples/declarative/modelviews/stringlistmodel/main.cpp +++ b/examples/declarative/modelviews/stringlistmodel/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/stringlistmodel/view.qml b/examples/declarative/modelviews/stringlistmodel/view.qml index 0a90ee6..9c65d80 100644 --- a/examples/declarative/modelviews/stringlistmodel/view.qml +++ b/examples/declarative/modelviews/stringlistmodel/view.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml b/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml index f6564f7..4ea7e5b 100644 --- a/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml +++ b/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/webview/alerts.qml b/examples/declarative/modelviews/webview/alerts.qml index 4aa4a3b..5acf0e0 100644 --- a/examples/declarative/modelviews/webview/alerts.qml +++ b/examples/declarative/modelviews/webview/alerts.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/webview/autosize.qml b/examples/declarative/modelviews/webview/autosize.qml index 7e10403..d7d6764 100644 --- a/examples/declarative/modelviews/webview/autosize.qml +++ b/examples/declarative/modelviews/webview/autosize.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/webview/content/Mapping/Map.qml b/examples/declarative/modelviews/webview/content/Mapping/Map.qml index 9a86579..e88ce8b 100644 --- a/examples/declarative/modelviews/webview/content/Mapping/Map.qml +++ b/examples/declarative/modelviews/webview/content/Mapping/Map.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/webview/googlemaps.qml b/examples/declarative/modelviews/webview/googlemaps.qml index aed0ddd..85641f4 100644 --- a/examples/declarative/modelviews/webview/googlemaps.qml +++ b/examples/declarative/modelviews/webview/googlemaps.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/webview/inlinehtml.qml b/examples/declarative/modelviews/webview/inlinehtml.qml index afc1fa9..1b0c15e 100644 --- a/examples/declarative/modelviews/webview/inlinehtml.qml +++ b/examples/declarative/modelviews/webview/inlinehtml.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/modelviews/webview/newwindows.qml b/examples/declarative/modelviews/webview/newwindows.qml index 52f7a0b..07954f4 100644 --- a/examples/declarative/modelviews/webview/newwindows.qml +++ b/examples/declarative/modelviews/webview/newwindows.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/positioners/Button.qml b/examples/declarative/positioners/Button.qml index 32e5993..25907c0 100644 --- a/examples/declarative/positioners/Button.qml +++ b/examples/declarative/positioners/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/positioners/positioners.qml b/examples/declarative/positioners/positioners.qml index 6ae265e..7d6d8fe 100644 --- a/examples/declarative/positioners/positioners.qml +++ b/examples/declarative/positioners/positioners.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/screenorientation/Core/Bubble.qml b/examples/declarative/screenorientation/Core/Bubble.qml index dea1e19..273e703 100644 --- a/examples/declarative/screenorientation/Core/Bubble.qml +++ b/examples/declarative/screenorientation/Core/Bubble.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/screenorientation/Core/Button.qml b/examples/declarative/screenorientation/Core/Button.qml index bc73118..e2ee162 100644 --- a/examples/declarative/screenorientation/Core/Button.qml +++ b/examples/declarative/screenorientation/Core/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/screenorientation/Core/screenorientation.js b/examples/declarative/screenorientation/Core/screenorientation.js index 68aedd4..4e0cc28 100644 --- a/examples/declarative/screenorientation/Core/screenorientation.js +++ b/examples/declarative/screenorientation/Core/screenorientation.js @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/screenorientation/screenorientation.qml b/examples/declarative/screenorientation/screenorientation.qml index 6c3f929..5e71516 100644 --- a/examples/declarative/screenorientation/screenorientation.qml +++ b/examples/declarative/screenorientation/screenorientation.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/sqllocalstorage/hello.qml b/examples/declarative/sqllocalstorage/hello.qml index 5f9b9e0..489dd50 100644 --- a/examples/declarative/sqllocalstorage/hello.qml +++ b/examples/declarative/sqllocalstorage/hello.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/text/fonts/availableFonts.qml b/examples/declarative/text/fonts/availableFonts.qml index 4966a41..58073ac 100644 --- a/examples/declarative/text/fonts/availableFonts.qml +++ b/examples/declarative/text/fonts/availableFonts.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/text/fonts/banner.qml b/examples/declarative/text/fonts/banner.qml index d722468..7d5ce2e 100644 --- a/examples/declarative/text/fonts/banner.qml +++ b/examples/declarative/text/fonts/banner.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/text/fonts/fonts.qml b/examples/declarative/text/fonts/fonts.qml index ae48f24..8dd6b19 100644 --- a/examples/declarative/text/fonts/fonts.qml +++ b/examples/declarative/text/fonts/fonts.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/text/fonts/hello.qml b/examples/declarative/text/fonts/hello.qml index 3aaf0fe..ad8e6f2 100644 --- a/examples/declarative/text/fonts/hello.qml +++ b/examples/declarative/text/fonts/hello.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/text/textselection/textselection.qml b/examples/declarative/text/textselection/textselection.qml index f343be5..6db7a85 100644 --- a/examples/declarative/text/textselection/textselection.qml +++ b/examples/declarative/text/textselection/textselection.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/threading/threadedlistmodel/dataloader.js b/examples/declarative/threading/threadedlistmodel/dataloader.js index f3d0a2f..dffcd56 100644 --- a/examples/declarative/threading/threadedlistmodel/dataloader.js +++ b/examples/declarative/threading/threadedlistmodel/dataloader.js @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/threading/threadedlistmodel/threadedlistmodel.qmlproject b/examples/declarative/threading/threadedlistmodel/threadedlistmodel.qmlproject index de3bf1d..fe2dc29 100644 --- a/examples/declarative/threading/threadedlistmodel/threadedlistmodel.qmlproject +++ b/examples/declarative/threading/threadedlistmodel/threadedlistmodel.qmlproject @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/threading/threadedlistmodel/timedisplay.qml b/examples/declarative/threading/threadedlistmodel/timedisplay.qml index 01411f4..42d1345 100644 --- a/examples/declarative/threading/threadedlistmodel/timedisplay.qml +++ b/examples/declarative/threading/threadedlistmodel/timedisplay.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/threading/workerscript/workerscript.qml b/examples/declarative/threading/workerscript/workerscript.qml index 2b03233..f3ba481 100644 --- a/examples/declarative/threading/workerscript/workerscript.qml +++ b/examples/declarative/threading/workerscript/workerscript.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/touchinteraction/gestures/experimental-gestures.qml b/examples/declarative/touchinteraction/gestures/experimental-gestures.qml index 6a4cb3d..c607194 100644 --- a/examples/declarative/touchinteraction/gestures/experimental-gestures.qml +++ b/examples/declarative/touchinteraction/gestures/experimental-gestures.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/touchinteraction/mousearea/mousearea-example.qml b/examples/declarative/touchinteraction/mousearea/mousearea-example.qml index 8dacc05..889a6d0 100644 --- a/examples/declarative/touchinteraction/mousearea/mousearea-example.qml +++ b/examples/declarative/touchinteraction/mousearea/mousearea-example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/clocks/clocks.qml b/examples/declarative/toys/clocks/clocks.qml index 3354f11..85723c0 100644 --- a/examples/declarative/toys/clocks/clocks.qml +++ b/examples/declarative/toys/clocks/clocks.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/clocks/content/Clock.qml b/examples/declarative/toys/clocks/content/Clock.qml index 09e8393..9bf96dc 100644 --- a/examples/declarative/toys/clocks/content/Clock.qml +++ b/examples/declarative/toys/clocks/content/Clock.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/clocks/content/QuitButton.qml b/examples/declarative/toys/clocks/content/QuitButton.qml index cbbf916..39f8f77 100644 --- a/examples/declarative/toys/clocks/content/QuitButton.qml +++ b/examples/declarative/toys/clocks/content/QuitButton.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/corkboards/Day.qml b/examples/declarative/toys/corkboards/Day.qml index 6afa12e..ad992a1 100644 --- a/examples/declarative/toys/corkboards/Day.qml +++ b/examples/declarative/toys/corkboards/Day.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/corkboards/corkboards.qml b/examples/declarative/toys/corkboards/corkboards.qml index 14bc5f0..9d03415 100644 --- a/examples/declarative/toys/corkboards/corkboards.qml +++ b/examples/declarative/toys/corkboards/corkboards.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/dynamicscene/dynamicscene.qml b/examples/declarative/toys/dynamicscene/dynamicscene.qml index 5f14e1d..cfc4b74 100644 --- a/examples/declarative/toys/dynamicscene/dynamicscene.qml +++ b/examples/declarative/toys/dynamicscene/dynamicscene.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/dynamicscene/qml/Button.qml b/examples/declarative/toys/dynamicscene/qml/Button.qml index 8da799e..8cb9b58 100644 --- a/examples/declarative/toys/dynamicscene/qml/Button.qml +++ b/examples/declarative/toys/dynamicscene/qml/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml b/examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml index 7391412..26db159 100644 --- a/examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml +++ b/examples/declarative/toys/dynamicscene/qml/GenericSceneItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/dynamicscene/qml/PaletteItem.qml b/examples/declarative/toys/dynamicscene/qml/PaletteItem.qml index cf5395f..10680f3 100644 --- a/examples/declarative/toys/dynamicscene/qml/PaletteItem.qml +++ b/examples/declarative/toys/dynamicscene/qml/PaletteItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml b/examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml index 6536df3..5b6fbb3 100644 --- a/examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml +++ b/examples/declarative/toys/dynamicscene/qml/PerspectiveItem.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/dynamicscene/qml/Sun.qml b/examples/declarative/toys/dynamicscene/qml/Sun.qml index 5b28b39..d632461 100644 --- a/examples/declarative/toys/dynamicscene/qml/Sun.qml +++ b/examples/declarative/toys/dynamicscene/qml/Sun.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/tic-tac-toe/content/Button.qml b/examples/declarative/toys/tic-tac-toe/content/Button.qml index 403d587..35de2cc 100644 --- a/examples/declarative/toys/tic-tac-toe/content/Button.qml +++ b/examples/declarative/toys/tic-tac-toe/content/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/tic-tac-toe/content/TicTac.qml b/examples/declarative/toys/tic-tac-toe/content/TicTac.qml index 7e50736..dd4de5e 100644 --- a/examples/declarative/toys/tic-tac-toe/content/TicTac.qml +++ b/examples/declarative/toys/tic-tac-toe/content/TicTac.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml b/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml index c60f2df..87e3e2e 100644 --- a/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml +++ b/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/toys/tvtennis/tvtennis.qml b/examples/declarative/toys/tvtennis/tvtennis.qml index 805666d..2401f27 100644 --- a/examples/declarative/toys/tvtennis/tvtennis.qml +++ b/examples/declarative/toys/tvtennis/tvtennis.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter1-basics/app.qml b/examples/declarative/tutorials/extending/chapter1-basics/app.qml index 85bd779..f42ec1e 100644 --- a/examples/declarative/tutorials/extending/chapter1-basics/app.qml +++ b/examples/declarative/tutorials/extending/chapter1-basics/app.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter1-basics/main.cpp b/examples/declarative/tutorials/extending/chapter1-basics/main.cpp index a5dbab3..2ab2e2b 100644 --- a/examples/declarative/tutorials/extending/chapter1-basics/main.cpp +++ b/examples/declarative/tutorials/extending/chapter1-basics/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter1-basics/piechart.cpp b/examples/declarative/tutorials/extending/chapter1-basics/piechart.cpp index 3b9ef71..bfc1645 100644 --- a/examples/declarative/tutorials/extending/chapter1-basics/piechart.cpp +++ b/examples/declarative/tutorials/extending/chapter1-basics/piechart.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter1-basics/piechart.h b/examples/declarative/tutorials/extending/chapter1-basics/piechart.h index aae7b26..c873f6a 100644 --- a/examples/declarative/tutorials/extending/chapter1-basics/piechart.h +++ b/examples/declarative/tutorials/extending/chapter1-basics/piechart.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter2-methods/app.qml b/examples/declarative/tutorials/extending/chapter2-methods/app.qml index 185b830..e2f34c7 100644 --- a/examples/declarative/tutorials/extending/chapter2-methods/app.qml +++ b/examples/declarative/tutorials/extending/chapter2-methods/app.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter2-methods/main.cpp b/examples/declarative/tutorials/extending/chapter2-methods/main.cpp index a5dbab3..2ab2e2b 100644 --- a/examples/declarative/tutorials/extending/chapter2-methods/main.cpp +++ b/examples/declarative/tutorials/extending/chapter2-methods/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter2-methods/piechart.cpp b/examples/declarative/tutorials/extending/chapter2-methods/piechart.cpp index 11ff7c8..78970e5 100644 --- a/examples/declarative/tutorials/extending/chapter2-methods/piechart.cpp +++ b/examples/declarative/tutorials/extending/chapter2-methods/piechart.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter2-methods/piechart.h b/examples/declarative/tutorials/extending/chapter2-methods/piechart.h index 246fd9f..bfcbd80 100644 --- a/examples/declarative/tutorials/extending/chapter2-methods/piechart.h +++ b/examples/declarative/tutorials/extending/chapter2-methods/piechart.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/app.qml b/examples/declarative/tutorials/extending/chapter3-bindings/app.qml index a4822d3..b4ad5ef 100644 --- a/examples/declarative/tutorials/extending/chapter3-bindings/app.qml +++ b/examples/declarative/tutorials/extending/chapter3-bindings/app.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/main.cpp b/examples/declarative/tutorials/extending/chapter3-bindings/main.cpp index a5dbab3..2ab2e2b 100644 --- a/examples/declarative/tutorials/extending/chapter3-bindings/main.cpp +++ b/examples/declarative/tutorials/extending/chapter3-bindings/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/piechart.cpp b/examples/declarative/tutorials/extending/chapter3-bindings/piechart.cpp index 85a9762..375025e 100644 --- a/examples/declarative/tutorials/extending/chapter3-bindings/piechart.cpp +++ b/examples/declarative/tutorials/extending/chapter3-bindings/piechart.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter3-bindings/piechart.h b/examples/declarative/tutorials/extending/chapter3-bindings/piechart.h index 164cebb..feff9c4 100644 --- a/examples/declarative/tutorials/extending/chapter3-bindings/piechart.h +++ b/examples/declarative/tutorials/extending/chapter3-bindings/piechart.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml index 80af476..187095a 100644 --- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml +++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp index fd518a2..dcb3481 100644 --- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp +++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.cpp b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.cpp index 7098854..b1f4278 100644 --- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.cpp +++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h index 448ca7b..d7f4473 100644 --- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h +++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.cpp b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.cpp index 7a420fd..f36c8ce 100644 --- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.cpp +++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.h b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.h index 085a9b8..6e5707f 100644 --- a/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.h +++ b/examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml b/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml index 58b099f..0fc8558 100644 --- a/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml +++ b/examples/declarative/tutorials/extending/chapter5-listproperties/app.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/main.cpp b/examples/declarative/tutorials/extending/chapter5-listproperties/main.cpp index f73c49f..5a50567 100644 --- a/examples/declarative/tutorials/extending/chapter5-listproperties/main.cpp +++ b/examples/declarative/tutorials/extending/chapter5-listproperties/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.cpp b/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.cpp index 2515b64..ea70ff2 100644 --- a/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.cpp +++ b/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.h b/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.h index 4424251..ad15a24 100644 --- a/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.h +++ b/examples/declarative/tutorials/extending/chapter5-listproperties/piechart.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.cpp b/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.cpp index 65120f5..16f4bae 100644 --- a/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.cpp +++ b/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.h b/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.h index 7cd0c74..877f54b 100644 --- a/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.h +++ b/examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/app.qml b/examples/declarative/tutorials/extending/chapter6-plugins/app.qml index 639da94..a8e13b2 100644 --- a/examples/declarative/tutorials/extending/chapter6-plugins/app.qml +++ b/examples/declarative/tutorials/extending/chapter6-plugins/app.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp b/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp index c4d8b61..be0d834 100644 --- a/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp +++ b/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h b/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h index c055e8b..8cb6ded 100644 --- a/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h +++ b/examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/piechart.cpp b/examples/declarative/tutorials/extending/chapter6-plugins/piechart.cpp index 4e6ee5c..27086f1 100644 --- a/examples/declarative/tutorials/extending/chapter6-plugins/piechart.cpp +++ b/examples/declarative/tutorials/extending/chapter6-plugins/piechart.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/piechart.h b/examples/declarative/tutorials/extending/chapter6-plugins/piechart.h index d6e4439..1338cad 100644 --- a/examples/declarative/tutorials/extending/chapter6-plugins/piechart.h +++ b/examples/declarative/tutorials/extending/chapter6-plugins/piechart.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.cpp b/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.cpp index 65120f5..16f4bae 100644 --- a/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.cpp +++ b/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.h b/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.h index a3afd25..83b728a 100644 --- a/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.h +++ b/examples/declarative/tutorials/extending/chapter6-plugins/pieslice.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/helloworld/Cell.qml b/examples/declarative/tutorials/helloworld/Cell.qml index 76055ab..39f8591 100644 --- a/examples/declarative/tutorials/helloworld/Cell.qml +++ b/examples/declarative/tutorials/helloworld/Cell.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/helloworld/tutorial1.qml b/examples/declarative/tutorials/helloworld/tutorial1.qml index 83b57b8..de70995 100644 --- a/examples/declarative/tutorials/helloworld/tutorial1.qml +++ b/examples/declarative/tutorials/helloworld/tutorial1.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/helloworld/tutorial2.qml b/examples/declarative/tutorials/helloworld/tutorial2.qml index 1bfab92..88f347a 100644 --- a/examples/declarative/tutorials/helloworld/tutorial2.qml +++ b/examples/declarative/tutorials/helloworld/tutorial2.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/helloworld/tutorial3.qml b/examples/declarative/tutorials/helloworld/tutorial3.qml index cc06865..282af9c 100644 --- a/examples/declarative/tutorials/helloworld/tutorial3.qml +++ b/examples/declarative/tutorials/helloworld/tutorial3.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame1/Block.qml b/examples/declarative/tutorials/samegame/samegame1/Block.qml index b4c4399..645e2f0 100644 --- a/examples/declarative/tutorials/samegame/samegame1/Block.qml +++ b/examples/declarative/tutorials/samegame/samegame1/Block.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame1/Button.qml b/examples/declarative/tutorials/samegame/samegame1/Button.qml index a3df028..a9aa938 100644 --- a/examples/declarative/tutorials/samegame/samegame1/Button.qml +++ b/examples/declarative/tutorials/samegame/samegame1/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame1/samegame.qml b/examples/declarative/tutorials/samegame/samegame1/samegame.qml index 5cc13fd..f022789 100644 --- a/examples/declarative/tutorials/samegame/samegame1/samegame.qml +++ b/examples/declarative/tutorials/samegame/samegame1/samegame.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame2/Block.qml b/examples/declarative/tutorials/samegame/samegame2/Block.qml index 804c30f..9da8267 100644 --- a/examples/declarative/tutorials/samegame/samegame2/Block.qml +++ b/examples/declarative/tutorials/samegame/samegame2/Block.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame2/Button.qml b/examples/declarative/tutorials/samegame/samegame2/Button.qml index cbf1b54..aef0a1e 100644 --- a/examples/declarative/tutorials/samegame/samegame2/Button.qml +++ b/examples/declarative/tutorials/samegame/samegame2/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame2/samegame.qml b/examples/declarative/tutorials/samegame/samegame2/samegame.qml index 11f6229..24391e5 100644 --- a/examples/declarative/tutorials/samegame/samegame2/samegame.qml +++ b/examples/declarative/tutorials/samegame/samegame2/samegame.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame3/Block.qml b/examples/declarative/tutorials/samegame/samegame3/Block.qml index 784a6f4..f76b2ef 100644 --- a/examples/declarative/tutorials/samegame/samegame3/Block.qml +++ b/examples/declarative/tutorials/samegame/samegame3/Block.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame3/Button.qml b/examples/declarative/tutorials/samegame/samegame3/Button.qml index cbf1b54..aef0a1e 100644 --- a/examples/declarative/tutorials/samegame/samegame3/Button.qml +++ b/examples/declarative/tutorials/samegame/samegame3/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame3/Dialog.qml b/examples/declarative/tutorials/samegame/samegame3/Dialog.qml index 8554d86..0af4e2c 100644 --- a/examples/declarative/tutorials/samegame/samegame3/Dialog.qml +++ b/examples/declarative/tutorials/samegame/samegame3/Dialog.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame3/samegame.qml b/examples/declarative/tutorials/samegame/samegame3/samegame.qml index 972b778..068fa8b 100644 --- a/examples/declarative/tutorials/samegame/samegame3/samegame.qml +++ b/examples/declarative/tutorials/samegame/samegame3/samegame.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml b/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml index 326b1b8..0305e9b 100644 --- a/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml +++ b/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame4/content/Button.qml b/examples/declarative/tutorials/samegame/samegame4/content/Button.qml index cbf1b54..aef0a1e 100644 --- a/examples/declarative/tutorials/samegame/samegame4/content/Button.qml +++ b/examples/declarative/tutorials/samegame/samegame4/content/Button.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame4/content/Dialog.qml b/examples/declarative/tutorials/samegame/samegame4/content/Dialog.qml index c390202..6276fcf 100644 --- a/examples/declarative/tutorials/samegame/samegame4/content/Dialog.qml +++ b/examples/declarative/tutorials/samegame/samegame4/content/Dialog.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/tutorials/samegame/samegame4/samegame.qml b/examples/declarative/tutorials/samegame/samegame4/samegame.qml index e830635..157cd13 100644 --- a/examples/declarative/tutorials/samegame/samegame4/samegame.qml +++ b/examples/declarative/tutorials/samegame/samegame4/samegame.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/dialcontrol/content/Dial.qml b/examples/declarative/ui-components/dialcontrol/content/Dial.qml index 2f1d27a..5b37992 100644 --- a/examples/declarative/ui-components/dialcontrol/content/Dial.qml +++ b/examples/declarative/ui-components/dialcontrol/content/Dial.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml b/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml index cbbf916..39f8f77 100644 --- a/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml +++ b/examples/declarative/ui-components/dialcontrol/content/QuitButton.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/dialcontrol/dialcontrol.qml b/examples/declarative/ui-components/dialcontrol/dialcontrol.qml index c66dcdd..9168f81 100644 --- a/examples/declarative/ui-components/dialcontrol/dialcontrol.qml +++ b/examples/declarative/ui-components/dialcontrol/dialcontrol.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/flipable/content/Card.qml b/examples/declarative/ui-components/flipable/content/Card.qml index 32c4ed1..6374dd8 100644 --- a/examples/declarative/ui-components/flipable/content/Card.qml +++ b/examples/declarative/ui-components/flipable/content/Card.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/flipable/flipable.qml b/examples/declarative/ui-components/flipable/flipable.qml index 51867f9..6d0235e 100644 --- a/examples/declarative/ui-components/flipable/flipable.qml +++ b/examples/declarative/ui-components/flipable/flipable.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/progressbar/content/ProgressBar.qml b/examples/declarative/ui-components/progressbar/content/ProgressBar.qml index e92342a..75dc488 100644 --- a/examples/declarative/ui-components/progressbar/content/ProgressBar.qml +++ b/examples/declarative/ui-components/progressbar/content/ProgressBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/progressbar/main.qml b/examples/declarative/ui-components/progressbar/main.qml index a805a7e..313aaa3 100644 --- a/examples/declarative/ui-components/progressbar/main.qml +++ b/examples/declarative/ui-components/progressbar/main.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/scrollbar/ScrollBar.qml b/examples/declarative/ui-components/scrollbar/ScrollBar.qml index faa501a..63dd0bd 100644 --- a/examples/declarative/ui-components/scrollbar/ScrollBar.qml +++ b/examples/declarative/ui-components/scrollbar/ScrollBar.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/scrollbar/main.qml b/examples/declarative/ui-components/scrollbar/main.qml index b5c1a8f..f282dc4 100644 --- a/examples/declarative/ui-components/scrollbar/main.qml +++ b/examples/declarative/ui-components/scrollbar/main.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/searchbox/SearchBox.qml b/examples/declarative/ui-components/searchbox/SearchBox.qml index f54954a..de190d3 100644 --- a/examples/declarative/ui-components/searchbox/SearchBox.qml +++ b/examples/declarative/ui-components/searchbox/SearchBox.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/searchbox/main.qml b/examples/declarative/ui-components/searchbox/main.qml index 09b1829..fbcafa2 100644 --- a/examples/declarative/ui-components/searchbox/main.qml +++ b/examples/declarative/ui-components/searchbox/main.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/slideswitch/content/Switch.qml b/examples/declarative/ui-components/slideswitch/content/Switch.qml index 06d7a2b..311b162 100644 --- a/examples/declarative/ui-components/slideswitch/content/Switch.qml +++ b/examples/declarative/ui-components/slideswitch/content/Switch.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/slideswitch/slideswitch.qml b/examples/declarative/ui-components/slideswitch/slideswitch.qml index 0472f9f..0a869b5 100644 --- a/examples/declarative/ui-components/slideswitch/slideswitch.qml +++ b/examples/declarative/ui-components/slideswitch/slideswitch.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/spinner/content/Spinner.qml b/examples/declarative/ui-components/spinner/content/Spinner.qml index 853c787..73b6431 100644 --- a/examples/declarative/ui-components/spinner/content/Spinner.qml +++ b/examples/declarative/ui-components/spinner/content/Spinner.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/spinner/main.qml b/examples/declarative/ui-components/spinner/main.qml index 416950f..89333ec 100644 --- a/examples/declarative/ui-components/spinner/main.qml +++ b/examples/declarative/ui-components/spinner/main.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/tabwidget/TabWidget.qml b/examples/declarative/ui-components/tabwidget/TabWidget.qml index 2a74c46..ac2dea3 100644 --- a/examples/declarative/ui-components/tabwidget/TabWidget.qml +++ b/examples/declarative/ui-components/tabwidget/TabWidget.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/ui-components/tabwidget/main.qml b/examples/declarative/ui-components/tabwidget/main.qml index 842ef1a..9367862 100644 --- a/examples/declarative/ui-components/tabwidget/main.qml +++ b/examples/declarative/ui-components/tabwidget/main.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/declarative/xml/xmlhttprequest/xmlhttprequest-example.qml b/examples/declarative/xml/xmlhttprequest/xmlhttprequest-example.qml index 78f93b5..9cbdcaf 100644 --- a/examples/declarative/xml/xmlhttprequest/xmlhttprequest-example.qml +++ b/examples/declarative/xml/xmlhttprequest/xmlhttprequest-example.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/calculatorbuilder/calculatorform.cpp b/examples/designer/calculatorbuilder/calculatorform.cpp index 34c869e..ddfdca2 100644 --- a/examples/designer/calculatorbuilder/calculatorform.cpp +++ b/examples/designer/calculatorbuilder/calculatorform.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/calculatorbuilder/calculatorform.h b/examples/designer/calculatorbuilder/calculatorform.h index 27bfdee..f891823 100644 --- a/examples/designer/calculatorbuilder/calculatorform.h +++ b/examples/designer/calculatorbuilder/calculatorform.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/calculatorbuilder/main.cpp b/examples/designer/calculatorbuilder/main.cpp index 87a85bf..b5cab6b 100644 --- a/examples/designer/calculatorbuilder/main.cpp +++ b/examples/designer/calculatorbuilder/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/calculatorform/calculatorform.cpp b/examples/designer/calculatorform/calculatorform.cpp index 784a748..ef9022f 100644 --- a/examples/designer/calculatorform/calculatorform.cpp +++ b/examples/designer/calculatorform/calculatorform.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/calculatorform/calculatorform.h b/examples/designer/calculatorform/calculatorform.h index ce511b2..9406995 100644 --- a/examples/designer/calculatorform/calculatorform.h +++ b/examples/designer/calculatorform/calculatorform.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/calculatorform/main.cpp b/examples/designer/calculatorform/main.cpp index 55b731a..2dd1fc1 100644 --- a/examples/designer/calculatorform/main.cpp +++ b/examples/designer/calculatorform/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/containerextension/multipagewidget.cpp b/examples/designer/containerextension/multipagewidget.cpp index 4fac692..5b44f36 100644 --- a/examples/designer/containerextension/multipagewidget.cpp +++ b/examples/designer/containerextension/multipagewidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/containerextension/multipagewidget.h b/examples/designer/containerextension/multipagewidget.h index afe2624..b2f3b7d 100644 --- a/examples/designer/containerextension/multipagewidget.h +++ b/examples/designer/containerextension/multipagewidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/containerextension/multipagewidgetcontainerextension.cpp b/examples/designer/containerextension/multipagewidgetcontainerextension.cpp index 81c3262..fe81534 100644 --- a/examples/designer/containerextension/multipagewidgetcontainerextension.cpp +++ b/examples/designer/containerextension/multipagewidgetcontainerextension.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/containerextension/multipagewidgetcontainerextension.h b/examples/designer/containerextension/multipagewidgetcontainerextension.h index 362a893..dfb10c6 100644 --- a/examples/designer/containerextension/multipagewidgetcontainerextension.h +++ b/examples/designer/containerextension/multipagewidgetcontainerextension.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/containerextension/multipagewidgetextensionfactory.cpp b/examples/designer/containerextension/multipagewidgetextensionfactory.cpp index 942d8ce..36f3c8f 100644 --- a/examples/designer/containerextension/multipagewidgetextensionfactory.cpp +++ b/examples/designer/containerextension/multipagewidgetextensionfactory.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/containerextension/multipagewidgetextensionfactory.h b/examples/designer/containerextension/multipagewidgetextensionfactory.h index df578bf..2ed2946 100644 --- a/examples/designer/containerextension/multipagewidgetextensionfactory.h +++ b/examples/designer/containerextension/multipagewidgetextensionfactory.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/containerextension/multipagewidgetplugin.cpp b/examples/designer/containerextension/multipagewidgetplugin.cpp index ec1f123..60aab4f 100644 --- a/examples/designer/containerextension/multipagewidgetplugin.cpp +++ b/examples/designer/containerextension/multipagewidgetplugin.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/containerextension/multipagewidgetplugin.h b/examples/designer/containerextension/multipagewidgetplugin.h index b1341e1..3d9ac52 100644 --- a/examples/designer/containerextension/multipagewidgetplugin.h +++ b/examples/designer/containerextension/multipagewidgetplugin.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/customwidgetplugin/analogclock.cpp b/examples/designer/customwidgetplugin/analogclock.cpp index 03a3765..4a91e0d 100644 --- a/examples/designer/customwidgetplugin/analogclock.cpp +++ b/examples/designer/customwidgetplugin/analogclock.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/customwidgetplugin/analogclock.h b/examples/designer/customwidgetplugin/analogclock.h index f15b09c..db42d5a 100644 --- a/examples/designer/customwidgetplugin/analogclock.h +++ b/examples/designer/customwidgetplugin/analogclock.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/customwidgetplugin/customwidgetplugin.cpp b/examples/designer/customwidgetplugin/customwidgetplugin.cpp index bf4ded4..d6ab592 100644 --- a/examples/designer/customwidgetplugin/customwidgetplugin.cpp +++ b/examples/designer/customwidgetplugin/customwidgetplugin.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/customwidgetplugin/customwidgetplugin.h b/examples/designer/customwidgetplugin/customwidgetplugin.h index ff2c3ce..72f916b 100644 --- a/examples/designer/customwidgetplugin/customwidgetplugin.h +++ b/examples/designer/customwidgetplugin/customwidgetplugin.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/taskmenuextension/tictactoe.cpp b/examples/designer/taskmenuextension/tictactoe.cpp index 8fb755f..6a25893 100644 --- a/examples/designer/taskmenuextension/tictactoe.cpp +++ b/examples/designer/taskmenuextension/tictactoe.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/taskmenuextension/tictactoe.h b/examples/designer/taskmenuextension/tictactoe.h index 4066e11..53ccf04 100644 --- a/examples/designer/taskmenuextension/tictactoe.h +++ b/examples/designer/taskmenuextension/tictactoe.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/taskmenuextension/tictactoedialog.cpp b/examples/designer/taskmenuextension/tictactoedialog.cpp index 20b2759..5af3c6f 100644 --- a/examples/designer/taskmenuextension/tictactoedialog.cpp +++ b/examples/designer/taskmenuextension/tictactoedialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/taskmenuextension/tictactoedialog.h b/examples/designer/taskmenuextension/tictactoedialog.h index 387d72d..163ab89 100644 --- a/examples/designer/taskmenuextension/tictactoedialog.h +++ b/examples/designer/taskmenuextension/tictactoedialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/taskmenuextension/tictactoeplugin.cpp b/examples/designer/taskmenuextension/tictactoeplugin.cpp index 9cf6e3b..45c078c 100644 --- a/examples/designer/taskmenuextension/tictactoeplugin.cpp +++ b/examples/designer/taskmenuextension/tictactoeplugin.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/taskmenuextension/tictactoeplugin.h b/examples/designer/taskmenuextension/tictactoeplugin.h index 517c316..6bd6065 100644 --- a/examples/designer/taskmenuextension/tictactoeplugin.h +++ b/examples/designer/taskmenuextension/tictactoeplugin.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/taskmenuextension/tictactoetaskmenu.cpp b/examples/designer/taskmenuextension/tictactoetaskmenu.cpp index 1c0cb74..79fe88e 100644 --- a/examples/designer/taskmenuextension/tictactoetaskmenu.cpp +++ b/examples/designer/taskmenuextension/tictactoetaskmenu.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/taskmenuextension/tictactoetaskmenu.h b/examples/designer/taskmenuextension/tictactoetaskmenu.h index 6dced74..8e203d0 100644 --- a/examples/designer/taskmenuextension/tictactoetaskmenu.h +++ b/examples/designer/taskmenuextension/tictactoetaskmenu.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/worldtimeclockbuilder/main.cpp b/examples/designer/worldtimeclockbuilder/main.cpp index b4b872a..6803941 100644 --- a/examples/designer/worldtimeclockbuilder/main.cpp +++ b/examples/designer/worldtimeclockbuilder/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/worldtimeclockplugin/worldtimeclock.cpp b/examples/designer/worldtimeclockplugin/worldtimeclock.cpp index eccb309..088c6e9 100644 --- a/examples/designer/worldtimeclockplugin/worldtimeclock.cpp +++ b/examples/designer/worldtimeclockplugin/worldtimeclock.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/worldtimeclockplugin/worldtimeclock.h b/examples/designer/worldtimeclockplugin/worldtimeclock.h index 8d1edf6..dc5933c 100644 --- a/examples/designer/worldtimeclockplugin/worldtimeclock.h +++ b/examples/designer/worldtimeclockplugin/worldtimeclock.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/worldtimeclockplugin/worldtimeclockplugin.cpp b/examples/designer/worldtimeclockplugin/worldtimeclockplugin.cpp index 2a15428..88b8d45 100644 --- a/examples/designer/worldtimeclockplugin/worldtimeclockplugin.cpp +++ b/examples/designer/worldtimeclockplugin/worldtimeclockplugin.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/designer/worldtimeclockplugin/worldtimeclockplugin.h b/examples/designer/worldtimeclockplugin/worldtimeclockplugin.h index 7a1b947..91c4b52 100644 --- a/examples/designer/worldtimeclockplugin/worldtimeclockplugin.h +++ b/examples/designer/worldtimeclockplugin/worldtimeclockplugin.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/desktop/screenshot/main.cpp b/examples/desktop/screenshot/main.cpp index 2cfbb6e..c2930f7 100644 --- a/examples/desktop/screenshot/main.cpp +++ b/examples/desktop/screenshot/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/desktop/screenshot/screenshot.cpp b/examples/desktop/screenshot/screenshot.cpp index 303f4d8..0d7a188 100644 --- a/examples/desktop/screenshot/screenshot.cpp +++ b/examples/desktop/screenshot/screenshot.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/desktop/screenshot/screenshot.h b/examples/desktop/screenshot/screenshot.h index 425a0e5..03e0508 100644 --- a/examples/desktop/screenshot/screenshot.h +++ b/examples/desktop/screenshot/screenshot.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/desktop/systray/main.cpp b/examples/desktop/systray/main.cpp index 7c40123..6c84e58 100644 --- a/examples/desktop/systray/main.cpp +++ b/examples/desktop/systray/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/desktop/systray/window.cpp b/examples/desktop/systray/window.cpp index a3ade55..4091358 100644 --- a/examples/desktop/systray/window.cpp +++ b/examples/desktop/systray/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/desktop/systray/window.h b/examples/desktop/systray/window.h index 504fd1e..537a8a2 100644 --- a/examples/desktop/systray/window.h +++ b/examples/desktop/systray/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/classwizard/classwizard.cpp b/examples/dialogs/classwizard/classwizard.cpp index e16407c..5247d7e 100644 --- a/examples/dialogs/classwizard/classwizard.cpp +++ b/examples/dialogs/classwizard/classwizard.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/classwizard/classwizard.h b/examples/dialogs/classwizard/classwizard.h index 0e65961..c2833ae 100644 --- a/examples/dialogs/classwizard/classwizard.h +++ b/examples/dialogs/classwizard/classwizard.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/classwizard/main.cpp b/examples/dialogs/classwizard/main.cpp index 652f1ef..8609c0f 100644 --- a/examples/dialogs/classwizard/main.cpp +++ b/examples/dialogs/classwizard/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/configdialog/configdialog.cpp b/examples/dialogs/configdialog/configdialog.cpp index 38f47a9..0e1de0c 100644 --- a/examples/dialogs/configdialog/configdialog.cpp +++ b/examples/dialogs/configdialog/configdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/configdialog/configdialog.h b/examples/dialogs/configdialog/configdialog.h index c2946de..3835daf 100644 --- a/examples/dialogs/configdialog/configdialog.h +++ b/examples/dialogs/configdialog/configdialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/configdialog/main.cpp b/examples/dialogs/configdialog/main.cpp index cc0c4bf..3b7b8c1 100644 --- a/examples/dialogs/configdialog/main.cpp +++ b/examples/dialogs/configdialog/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/configdialog/pages.cpp b/examples/dialogs/configdialog/pages.cpp index 0397991..f69ec53 100644 --- a/examples/dialogs/configdialog/pages.cpp +++ b/examples/dialogs/configdialog/pages.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/configdialog/pages.h b/examples/dialogs/configdialog/pages.h index 9b8a0c1..ef35b3d 100644 --- a/examples/dialogs/configdialog/pages.h +++ b/examples/dialogs/configdialog/pages.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/extension/finddialog.cpp b/examples/dialogs/extension/finddialog.cpp index 4569c81..313e8e4 100644 --- a/examples/dialogs/extension/finddialog.cpp +++ b/examples/dialogs/extension/finddialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/extension/finddialog.h b/examples/dialogs/extension/finddialog.h index 0702415..0727bc2 100644 --- a/examples/dialogs/extension/finddialog.h +++ b/examples/dialogs/extension/finddialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/extension/main.cpp b/examples/dialogs/extension/main.cpp index c606585..d487faa 100644 --- a/examples/dialogs/extension/main.cpp +++ b/examples/dialogs/extension/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/findfiles/main.cpp b/examples/dialogs/findfiles/main.cpp index ab53c16..f2079f5 100644 --- a/examples/dialogs/findfiles/main.cpp +++ b/examples/dialogs/findfiles/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/findfiles/window.cpp b/examples/dialogs/findfiles/window.cpp index 2611154..3d6c0fd 100644 --- a/examples/dialogs/findfiles/window.cpp +++ b/examples/dialogs/findfiles/window.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/findfiles/window.h b/examples/dialogs/findfiles/window.h index 839a934..73b0652 100644 --- a/examples/dialogs/findfiles/window.h +++ b/examples/dialogs/findfiles/window.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/licensewizard/licensewizard.cpp b/examples/dialogs/licensewizard/licensewizard.cpp index b5dac9d..19a0c06 100644 --- a/examples/dialogs/licensewizard/licensewizard.cpp +++ b/examples/dialogs/licensewizard/licensewizard.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/licensewizard/licensewizard.h b/examples/dialogs/licensewizard/licensewizard.h index f5b2d0b..432c046 100644 --- a/examples/dialogs/licensewizard/licensewizard.h +++ b/examples/dialogs/licensewizard/licensewizard.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/licensewizard/main.cpp b/examples/dialogs/licensewizard/main.cpp index f2e6bfa..59e59ac 100644 --- a/examples/dialogs/licensewizard/main.cpp +++ b/examples/dialogs/licensewizard/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/sipdialog/dialog.cpp b/examples/dialogs/sipdialog/dialog.cpp index abe7aef..c6d5a17 100644 --- a/examples/dialogs/sipdialog/dialog.cpp +++ b/examples/dialogs/sipdialog/dialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/sipdialog/dialog.h b/examples/dialogs/sipdialog/dialog.h index dbf56b5..a97c208 100644 --- a/examples/dialogs/sipdialog/dialog.h +++ b/examples/dialogs/sipdialog/dialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/sipdialog/main.cpp b/examples/dialogs/sipdialog/main.cpp index f9e5f44..bd37e33 100644 --- a/examples/dialogs/sipdialog/main.cpp +++ b/examples/dialogs/sipdialog/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/standarddialogs/dialog.cpp b/examples/dialogs/standarddialogs/dialog.cpp index bf4f453..0b7728e 100644 --- a/examples/dialogs/standarddialogs/dialog.cpp +++ b/examples/dialogs/standarddialogs/dialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/standarddialogs/dialog.h b/examples/dialogs/standarddialogs/dialog.h index dd8922c..9af17d1 100644 --- a/examples/dialogs/standarddialogs/dialog.h +++ b/examples/dialogs/standarddialogs/dialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/standarddialogs/main.cpp b/examples/dialogs/standarddialogs/main.cpp index 96350d1..2aec376 100644 --- a/examples/dialogs/standarddialogs/main.cpp +++ b/examples/dialogs/standarddialogs/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/tabdialog/main.cpp b/examples/dialogs/tabdialog/main.cpp index 35951ac..87265c3 100644 --- a/examples/dialogs/tabdialog/main.cpp +++ b/examples/dialogs/tabdialog/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/tabdialog/tabdialog.cpp b/examples/dialogs/tabdialog/tabdialog.cpp index 7156ef6..62c921c 100644 --- a/examples/dialogs/tabdialog/tabdialog.cpp +++ b/examples/dialogs/tabdialog/tabdialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/tabdialog/tabdialog.h b/examples/dialogs/tabdialog/tabdialog.h index e55d6c2..6ae1e15 100644 --- a/examples/dialogs/tabdialog/tabdialog.h +++ b/examples/dialogs/tabdialog/tabdialog.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/dialogs/trivialwizard/trivialwizard.cpp b/examples/dialogs/trivialwizard/trivialwizard.cpp index 40d8342..2a5c0ae 100644 --- a/examples/dialogs/trivialwizard/trivialwizard.cpp +++ b/examples/dialogs/trivialwizard/trivialwizard.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** diff --git a/examples/draganddrop/delayedencoding/images/example.svg b/examples/draganddrop/delayedencoding/images/example.svg index 05798be..e3505d7 100644 --- a/examples/draganddrop/delayedencoding/images/example.svg +++ b/examples/draganddrop/delayedencoding/images/example.svg @@ -1,7 +1,7 @@ new velocity:" << releaseVelocity; } -void QScrollerPrivate::pushSegment(ScrollType type, qreal deltaTime, qreal startPos, qreal endPos, QEasingCurve::Type curve, Qt::Orientation orientation, qreal maxProgress) +void QScrollerPrivate::pushSegment(ScrollType type, qreal deltaTime, qreal stopProgress, qreal startPos, qreal deltaPos, qreal stopPos, QEasingCurve::Type curve, Qt::Orientation orientation) { - if (startPos == endPos) + if (startPos == stopPos || deltaPos == 0) return; ScrollSegment s; if (orientation == Qt::Horizontal && !xSegments.isEmpty()) - s.startTime = xSegments.last().startTime + xSegments.last().deltaTime; + s.startTime = xSegments.last().startTime + xSegments.last().deltaTime * xSegments.last().stopProgress; else if (orientation == Qt::Vertical && !ySegments.isEmpty()) - s.startTime = ySegments.last().startTime + ySegments.last().deltaTime; + s.startTime = ySegments.last().startTime + ySegments.last().deltaTime * ySegments.last().stopProgress; else s.startTime = monotonicTimer.elapsed(); s.startPos = startPos; - s.deltaPos = endPos - startPos; + s.deltaPos = deltaPos; + s.stopPos = stopPos; s.deltaTime = deltaTime * 1000; - s.maxProgress = maxProgress; + s.stopProgress = stopProgress; s.curve.setType(curve); s.type = type; @@ -1143,23 +1158,17 @@ void QScrollerPrivate::recalcScrollingSegments(bool forceRecalc) */ qreal QScrollerPrivate::scrollingSegmentsEndPos(Qt::Orientation orientation) const { - const QQueue *segments; - qreal endPos; - if (orientation == Qt::Horizontal) { - segments = &xSegments; - endPos = contentPosition.x() + overshootPosition.x(); + if (xSegments.isEmpty()) + return contentPosition.x() + overshootPosition.x(); + else + return xSegments.last().stopPos; } else { - segments = &ySegments; - endPos = contentPosition.y() + overshootPosition.y(); - } - - if (!segments->isEmpty()) { - const ScrollSegment &last = segments->last(); - endPos = last.startPos + last.deltaPos; + if (ySegments.isEmpty()) + return contentPosition.y() + overshootPosition.y(); + else + return ySegments.last().stopPos; } - - return endPos; } /*! \internal @@ -1185,23 +1194,23 @@ bool QScrollerPrivate::scrollingSegmentsValid(Qt::Orientation orientation) return true; const ScrollSegment &last = segments->last(); - qreal endPos = last.startPos + last.deltaPos; + qreal stopPos = last.stopPos; if (last.type == ScrollTypeScrollTo) return true; // scrollTo is always valid if (last.type == ScrollTypeOvershoot && - endPos != minPos && endPos != maxPos) + (stopPos != minPos && stopPos != maxPos)) return false; - if (endPos < minPos || endPos > maxPos) + if (stopPos < minPos || stopPos > maxPos) return false; - if (endPos == minPos || endPos == maxPos) // the begin and the end of the list are always ok + if (stopPos == minPos || stopPos == maxPos) // the begin and the end of the list are always ok return true; - qreal nextSnap = nextSnapPos(endPos, 0, orientation); - if (!qIsNaN(nextSnap) && endPos != nextSnap) + qreal nextSnap = nextSnapPos(stopPos, 0, orientation); + if (!qIsNaN(nextSnap) && stopPos != nextSnap) return false; return true; @@ -1214,11 +1223,10 @@ void QScrollerPrivate::createScrollToSegments(qreal v, qreal deltaTime, qreal en { Q_UNUSED(v); - if (orientation == Qt::Horizontal) { + if (orientation == Qt::Horizontal) xSegments.clear(); - } else { + else ySegments.clear(); - } qScrollerDebug() << "+++ createScrollToSegments: t:" << deltaTime << "ep:" << endPos << "o:" << int(orientation); @@ -1226,10 +1234,10 @@ void QScrollerPrivate::createScrollToSegments(qreal v, qreal deltaTime, qreal en qreal startPos = (orientation == Qt::Horizontal) ? contentPosition.x() + overshootPosition.x() : contentPosition.y() + overshootPosition.y(); - qreal deltaPos = endPos - startPos; + qreal deltaPos = (endPos - startPos) / 2; - pushSegment(type, deltaTime * 0.3, startPos, startPos + deltaPos * 0.5, QEasingCurve::InQuad, orientation); - pushSegment(type, deltaTime * 0.7, startPos + deltaPos * 0.5, endPos, sp->scrollingCurve.type(), orientation); + pushSegment(type, deltaTime * 0.3, 1.0, startPos, deltaPos, startPos + deltaPos, QEasingCurve::InQuad, orientation); + pushSegment(type, deltaTime * 0.7, 1.0, startPos + deltaPos, deltaPos, endPos, sp->scrollingCurve.type(), orientation); } /*! \internal @@ -1298,17 +1306,13 @@ void QScrollerPrivate::createScrollingSegments(qreal v, qreal startPos, qreal pp if (nextSnap < lowerSnapPos || qIsNaN(lowerSnapPos)) lowerSnapPos = nextSnap; - // -- check if we end in overshoot + // -- check if are in overshoot and end in overshoot if ((startPos < minPos && endPos < minPos) || (startPos > maxPos && endPos > maxPos)) { qreal stopPos = endPos < minPos ? minPos : maxPos; - qreal oDistance = viewSize * sp->overshootScrollDistanceFactor * v / sp->maximumVelocity; qreal oDeltaTime = sp->overshootScrollTime; - if (qAbs(v) > sp->minimumVelocity) - pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.5, startPos, startPos + oDistance, sp->scrollingCurve.type(), orientation); - pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.3, startPos + oDistance, stopPos + oDistance * 0.3, QEasingCurve::InQuad, orientation); - pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.2, stopPos + oDistance * 0.3, stopPos, QEasingCurve::OutQuad, orientation); + pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.7, 1.0, startPos, stopPos - startPos, stopPos, sp->scrollingCurve.type(), orientation); return; } @@ -1337,8 +1341,9 @@ void QScrollerPrivate::createScrollingSegments(qreal v, qreal startPos, qreal pp endPos = higherSnapPos; deltaPos = endPos - startPos; - pushSegment(ScrollTypeFlick, sp->snapTime * 0.3, startPos, startPos + deltaPos * 0.3, QEasingCurve::InQuad, orientation); - pushSegment(ScrollTypeFlick, sp->snapTime * 0.7, startPos + deltaPos * 0.3, endPos, sp->scrollingCurve.type(), orientation); + qreal midPos = startPos + deltaPos * 0.3; + pushSegment(ScrollTypeFlick, sp->snapTime * 0.3, 1.0, startPos, midPos - startPos, midPos, QEasingCurve::InQuad, orientation); + pushSegment(ScrollTypeFlick, sp->snapTime * 0.7, 1.0, midPos, endPos - midPos, endPos, sp->scrollingCurve.type(), orientation); return; } @@ -1365,28 +1370,33 @@ void QScrollerPrivate::createScrollingSegments(qreal v, qreal startPos, qreal pp qScrollerDebug() << "Overshoot: delta:" << (stopPos - startPos); - qreal maxProgress = progressForValue(sp->scrollingCurve, qAbs((stopPos - startPos) / deltaPos)); - qScrollerDebug() << "Overshoot maxp:" << maxProgress; + qreal stopProgress = progressForValue(sp->scrollingCurve, qAbs((stopPos - startPos) / deltaPos)); - pushSegment(ScrollTypeFlick, deltaTime * maxProgress, startPos, stopPos, sp->scrollingCurve.type(), orientation, maxProgress); + if (!canOvershoot) { + qScrollerDebug() << "Overshoot stopp:" << stopProgress; - if (canOvershoot) { - qreal endV = qSign(v) * deltaTime * sp->decelerationFactor * qreal(0.5) * differentialForProgress(sp->scrollingCurve, maxProgress); - qScrollerDebug() << "Overshoot: velocity" << endV; - qScrollerDebug() << "Overshoot: maxVelocity" << sp->maximumVelocity; - qScrollerDebug() << "Overshoot: viewsize" << viewSize; - qScrollerDebug() << "Overshoot: factor" << sp->overshootScrollDistanceFactor; - - qreal oDistance = viewSize * sp->overshootScrollDistanceFactor * endV / sp->maximumVelocity; + pushSegment(ScrollTypeFlick, deltaTime, stopProgress, startPos, endPos, stopPos, sp->scrollingCurve.type(), orientation); + } else { qreal oDeltaTime = sp->overshootScrollTime; + qreal oStopProgress = qMin(stopProgress + oDeltaTime * 0.3 / deltaTime, qreal(1)); + qreal oDistance = startPos + deltaPos * sp->scrollingCurve.valueForProgress(oStopProgress) - stopPos; + qreal oMaxDistance = qSign(oDistance) * (viewSize * sp->overshootScrollDistanceFactor); - pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.3, stopPos, stopPos + oDistance, sp->scrollingCurve.type(), orientation); - pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.7, stopPos + oDistance, stopPos, sp->scrollingCurve.type(), orientation); + qScrollerDebug() << "1 oDistance:" << oDistance << "Max:" << oMaxDistance << "stopP/oStopP" << stopProgress << oStopProgress; + + if (qAbs(oDistance) > qAbs(oMaxDistance)) { + oStopProgress = progressForValue(sp->scrollingCurve, qAbs((stopPos + oMaxDistance - startPos) / deltaPos)); + oDistance = oMaxDistance; + qScrollerDebug() << "2 oDistance:" << oDistance << "Max:" << oMaxDistance << "stopP/oStopP" << stopProgress << oStopProgress; + } + + pushSegment(ScrollTypeFlick, deltaTime, oStopProgress, startPos, deltaPos, stopPos + oDistance, sp->scrollingCurve.type(), orientation); + pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.7, 1.0, stopPos + oDistance, -oDistance, stopPos, sp->scrollingCurve.type(), orientation); } return; } - pushSegment(ScrollTypeFlick, deltaTime, startPos, endPos, sp->scrollingCurve.type(), orientation); + pushSegment(ScrollTypeFlick, deltaTime, 1.0, startPos, deltaPos, endPos, sp->scrollingCurve.type(), orientation); } @@ -1810,13 +1820,18 @@ qreal QScrollerPrivate::nextSegmentPosition(QQueue &segments, qin while (!segments.isEmpty()) { const ScrollSegment s = segments.head(); - if ((s.startTime + s.deltaTime) <= now) { + if ((s.startTime + s.deltaTime * s.stopProgress) <= now) { segments.dequeue(); - pos = s.startPos + s.deltaPos; + pos = s.stopPos; } else if (s.startTime <= now) { - qreal progress = qreal(now - s.startTime) / (qreal(s.deltaTime) / s.maxProgress); - pos = s.startPos + s.deltaPos * s.curve.valueForProgress(progress) / s.curve.valueForProgress(s.maxProgress); - break; + qreal progress = qreal(now - s.startTime) / qreal(s.deltaTime); + pos = s.startPos + s.deltaPos * s.curve.valueForProgress(progress); + if (s.deltaPos > 0 ? pos > s.stopPos : pos < s.stopPos) { + segments.dequeue(); + pos = s.stopPos; + } else { + break; + } } else { break; } diff --git a/src/gui/util/qscroller_p.h b/src/gui/util/qscroller_p.h index 98f34f7..d16eef9 100644 --- a/src/gui/util/qscroller_p.h +++ b/src/gui/util/qscroller_p.h @@ -98,7 +98,8 @@ public: qreal startPos; qreal deltaPos; QEasingCurve curve; - qreal maxProgress; + qreal stopProgress; // whatever is.. + qreal stopPos; // ..reached first ScrollType type; }; @@ -122,7 +123,7 @@ public: void setDpiFromWidget(QWidget *widget); void updateVelocity(const QPointF &deltaPixelRaw, qint64 deltaTime); - void pushSegment(ScrollType type, qreal deltaTime, qreal startPos, qreal endPos, QEasingCurve::Type curve, Qt::Orientation orientation, qreal maxProgress = 1.0); + void pushSegment(ScrollType type, qreal deltaTime, qreal stopProgress, qreal startPos, qreal deltaPos, qreal stopPos, QEasingCurve::Type curve, Qt::Orientation orientation); void recalcScrollingSegments(bool forceRecalc = false); qreal scrollingSegmentsEndPos(Qt::Orientation orientation) const; bool scrollingSegmentsValid(Qt::Orientation orientation); -- cgit v0.12 From 64ec011c6132496eb9555c1d09e7fd4ddf472837 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Mon, 24 Jan 2011 18:39:25 +0100 Subject: Use qreal everywhere to avoid double/float errors on embedded platforms. Reviewed-by: Ralf Engels --- src/gui/util/qscroller.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/gui/util/qscroller.cpp b/src/gui/util/qscroller.cpp index 7173270..815b3d1 100644 --- a/src/gui/util/qscroller.cpp +++ b/src/gui/util/qscroller.cpp @@ -1236,8 +1236,8 @@ void QScrollerPrivate::createScrollToSegments(qreal v, qreal deltaTime, qreal en : contentPosition.y() + overshootPosition.y(); qreal deltaPos = (endPos - startPos) / 2; - pushSegment(type, deltaTime * 0.3, 1.0, startPos, deltaPos, startPos + deltaPos, QEasingCurve::InQuad, orientation); - pushSegment(type, deltaTime * 0.7, 1.0, startPos + deltaPos, deltaPos, endPos, sp->scrollingCurve.type(), orientation); + pushSegment(type, deltaTime * qreal(0.3), qreal(1.0), startPos, deltaPos, startPos + deltaPos, QEasingCurve::InQuad, orientation); + pushSegment(type, deltaTime * qreal(0.7), qreal(1.0), startPos + deltaPos, deltaPos, endPos, sp->scrollingCurve.type(), orientation); } /*! \internal @@ -1312,7 +1312,7 @@ void QScrollerPrivate::createScrollingSegments(qreal v, qreal startPos, qreal pp qreal stopPos = endPos < minPos ? minPos : maxPos; qreal oDeltaTime = sp->overshootScrollTime; - pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.7, 1.0, startPos, stopPos - startPos, stopPos, sp->scrollingCurve.type(), orientation); + pushSegment(ScrollTypeOvershoot, oDeltaTime * qreal(0.7), qreal(1.0), startPos, stopPos - startPos, stopPos, sp->scrollingCurve.type(), orientation); return; } @@ -1341,9 +1341,9 @@ void QScrollerPrivate::createScrollingSegments(qreal v, qreal startPos, qreal pp endPos = higherSnapPos; deltaPos = endPos - startPos; - qreal midPos = startPos + deltaPos * 0.3; - pushSegment(ScrollTypeFlick, sp->snapTime * 0.3, 1.0, startPos, midPos - startPos, midPos, QEasingCurve::InQuad, orientation); - pushSegment(ScrollTypeFlick, sp->snapTime * 0.7, 1.0, midPos, endPos - midPos, endPos, sp->scrollingCurve.type(), orientation); + qreal midPos = startPos + deltaPos * qreal(0.3); + pushSegment(ScrollTypeFlick, sp->snapTime * qreal(0.3), qreal(1.0), startPos, midPos - startPos, midPos, QEasingCurve::InQuad, orientation); + pushSegment(ScrollTypeFlick, sp->snapTime * qreal(0.7), qreal(1.0), midPos, endPos - midPos, endPos, sp->scrollingCurve.type(), orientation); return; } @@ -1378,7 +1378,7 @@ void QScrollerPrivate::createScrollingSegments(qreal v, qreal startPos, qreal pp pushSegment(ScrollTypeFlick, deltaTime, stopProgress, startPos, endPos, stopPos, sp->scrollingCurve.type(), orientation); } else { qreal oDeltaTime = sp->overshootScrollTime; - qreal oStopProgress = qMin(stopProgress + oDeltaTime * 0.3 / deltaTime, qreal(1)); + qreal oStopProgress = qMin(stopProgress + oDeltaTime * qreal(0.3) / deltaTime, qreal(1)); qreal oDistance = startPos + deltaPos * sp->scrollingCurve.valueForProgress(oStopProgress) - stopPos; qreal oMaxDistance = qSign(oDistance) * (viewSize * sp->overshootScrollDistanceFactor); @@ -1391,12 +1391,12 @@ void QScrollerPrivate::createScrollingSegments(qreal v, qreal startPos, qreal pp } pushSegment(ScrollTypeFlick, deltaTime, oStopProgress, startPos, deltaPos, stopPos + oDistance, sp->scrollingCurve.type(), orientation); - pushSegment(ScrollTypeOvershoot, oDeltaTime * 0.7, 1.0, stopPos + oDistance, -oDistance, stopPos, sp->scrollingCurve.type(), orientation); + pushSegment(ScrollTypeOvershoot, oDeltaTime * qreal(0.7), qreal(1.0), stopPos + oDistance, -oDistance, stopPos, sp->scrollingCurve.type(), orientation); } return; } - pushSegment(ScrollTypeFlick, deltaTime, 1.0, startPos, deltaPos, endPos, sp->scrollingCurve.type(), orientation); + pushSegment(ScrollTypeFlick, deltaTime, qreal(1.0), startPos, deltaPos, endPos, sp->scrollingCurve.type(), orientation); } -- cgit v0.12 From 81492e56aba5b5761500543665012a85d6835513 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Mon, 24 Jan 2011 18:46:40 +0100 Subject: Various small fixes for the QScroller examples Reviewed-By: TrustMe --- examples/scroller/graphicsview/main.cpp | 12 ++++++++---- examples/scroller/plot/main.cpp | 9 ++++----- examples/scroller/plot/plot.pro | 5 ----- examples/scroller/plot/plotwidget.cpp | 2 +- examples/scroller/plot/plotwidget.h | 2 +- examples/scroller/plot/settingswidget.cpp | 2 +- examples/scroller/plot/settingswidget.h | 2 +- examples/scroller/wheel/main.cpp | 16 ++++++++++------ examples/scroller/wheel/wheel.pro | 5 ----- examples/scroller/wheel/wheelwidget.cpp | 2 +- examples/scroller/wheel/wheelwidget.h | 2 +- 11 files changed, 28 insertions(+), 31 deletions(-) diff --git a/examples/scroller/graphicsview/main.cpp b/examples/scroller/graphicsview/main.cpp index e28978f..77d00f0 100644 --- a/examples/scroller/graphicsview/main.cpp +++ b/examples/scroller/graphicsview/main.cpp @@ -279,14 +279,18 @@ protected: int main(int argc, char *argv[]) { - QApplication app(argc, argv); - bool useTouch = (app.arguments().contains(QLatin1String("--touch"))); - MainWindow mw(useTouch); + QApplication a(argc, argv); + bool touch = (a.arguments().contains(QLatin1String("--touch"))); + MainWindow mw(touch); +#ifdef Q_WS_S60 + mw.showMaximized(); +#else mw.show(); +#endif #ifdef Q_WS_MAC mw.raise(); #endif - return app.exec(); + return a.exec(); } #include "main.moc" diff --git a/examples/scroller/plot/main.cpp b/examples/scroller/plot/main.cpp index acf83ee..6166505 100644 --- a/examples/scroller/plot/main.cpp +++ b/examples/scroller/plot/main.cpp @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtGui module of the Qt Toolkit. +** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage @@ -208,15 +208,14 @@ int main(int argc, char **argv) if (a.arguments().contains(QLatin1String("--touch"))) touch = true; - MainWindow *mw = new MainWindow(smallscreen, touch); + MainWindow mw(smallscreen, touch); if (smallscreen) - mw->showMaximized(); + mw.showMaximized(); else - mw->show(); + mw.show(); #if defined(Q_WS_MAC) mw->raise(); #endif - return a.exec(); } diff --git a/examples/scroller/plot/plot.pro b/examples/scroller/plot/plot.pro index 8c37b04..04fdf70 100644 --- a/examples/scroller/plot/plot.pro +++ b/examples/scroller/plot/plot.pro @@ -11,8 +11,3 @@ target.path = $$[QT_INSTALL_EXAMPLES]/scroller/plot sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS plot.pro sources.path = $$[QT_INSTALL_EXAMPLES]/scroller/plot INSTALLS += target sources - -symbian { - TARGET.UID3 = 0xA000CF66 - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) -} diff --git a/examples/scroller/plot/plotwidget.cpp b/examples/scroller/plot/plotwidget.cpp index 5f0df67..a03f613 100644 --- a/examples/scroller/plot/plotwidget.cpp +++ b/examples/scroller/plot/plotwidget.cpp @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtGui module of the Qt Toolkit. +** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/examples/scroller/plot/plotwidget.h b/examples/scroller/plot/plotwidget.h index 4987ebc..c96ceac 100644 --- a/examples/scroller/plot/plotwidget.h +++ b/examples/scroller/plot/plotwidget.h @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtGui module of the Qt Toolkit. +** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/examples/scroller/plot/settingswidget.cpp b/examples/scroller/plot/settingswidget.cpp index 840e3fc..1929eb6 100644 --- a/examples/scroller/plot/settingswidget.cpp +++ b/examples/scroller/plot/settingswidget.cpp @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtGui module of the Qt Toolkit. +** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/examples/scroller/plot/settingswidget.h b/examples/scroller/plot/settingswidget.h index 0ea201d..13edbf4 100644 --- a/examples/scroller/plot/settingswidget.h +++ b/examples/scroller/plot/settingswidget.h @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtGui module of the Qt Toolkit. +** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/examples/scroller/wheel/main.cpp b/examples/scroller/wheel/main.cpp index 4264377..203c930 100644 --- a/examples/scroller/wheel/main.cpp +++ b/examples/scroller/wheel/main.cpp @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtGui module of the Qt Toolkit. +** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage @@ -107,12 +107,16 @@ private: int main(int argc, char **argv) { QApplication a(argc, argv); - bool touch = a.arguments().contains(QLatin1String("--touch")); - - MainWindow *mw = new MainWindow(touch); - mw->show(); - + MainWindow mw(touch); +#ifdef Q_WS_S60 + mw.showMaximized(); +#else + mw.show(); +#endif +#ifdef Q_WS_MAC + mw.raise(); +#endif return a.exec(); } diff --git a/examples/scroller/wheel/wheel.pro b/examples/scroller/wheel/wheel.pro index 1f9b789..48fe171 100644 --- a/examples/scroller/wheel/wheel.pro +++ b/examples/scroller/wheel/wheel.pro @@ -9,8 +9,3 @@ target.path = $$[QT_INSTALL_EXAMPLES]/scroller/wheel sources.files = $$SOURCES $$HEADERS $$RESOURCES $$FORMS wheel.pro sources.path = $$[QT_INSTALL_EXAMPLES]/scroller/wheel INSTALLS += target sources - -symbian { - TARGET.UID3 = 0xA000CF66 - include($$QT_SOURCE_TREE/examples/symbianpkgrules.pri) -} diff --git a/examples/scroller/wheel/wheelwidget.cpp b/examples/scroller/wheel/wheelwidget.cpp index 64a459b..0449f53 100644 --- a/examples/scroller/wheel/wheelwidget.cpp +++ b/examples/scroller/wheel/wheelwidget.cpp @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtGui module of the Qt Toolkit. +** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage diff --git a/examples/scroller/wheel/wheelwidget.h b/examples/scroller/wheel/wheelwidget.h index c50f951..8f49169 100644 --- a/examples/scroller/wheel/wheelwidget.h +++ b/examples/scroller/wheel/wheelwidget.h @@ -4,7 +4,7 @@ ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the QtGui module of the Qt Toolkit. +** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage -- cgit v0.12 From b668857b3749b39c3a61e0a25e750740b74df552 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Mon, 24 Jan 2011 23:21:44 +0100 Subject: Fixed spelling. Reviewed-by: TrustMe --- src/gui/util/qscroller.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/util/qscroller.cpp b/src/gui/util/qscroller.cpp index 815b3d1..d60f44e 100644 --- a/src/gui/util/qscroller.cpp +++ b/src/gui/util/qscroller.cpp @@ -1012,7 +1012,7 @@ QPointF QScrollerPrivate::realDpi(int screen) // as 2 screens in QDesktopWidget, but libXRandR will only see 1 screen. // (although with the combined size of the Xinerama screens). // Additionally, libXrandr will simply crash when calling XRRSizes - // for (the non-existant) screen 1 in this scenario. + // for (the non-existent) screen 1 in this scenario. Window root = RootWindow(X11->display, screen == -1 ? X11->defaultScreen : screen); int randrscreen = (root != XNone) ? X11->ptrXRRRootToScreen(X11->display, root) : -1; -- cgit v0.12 From 7052bcc0c6da28f9554f560fef36a5ae3d1e26fd Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 24 Jan 2011 20:28:56 +0100 Subject: remove the completely insane quote nesting from split_value_list() "foo 'bar "whee"' baz" would be actually treated like nested quotes. of course, this makes utterly no sense, as both the layers below and above couldn't do anything with that. and it would break actually useful things like quoting an apostrophe. Reviewed-by: mariusSO --- qmake/project.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/qmake/project.cpp b/qmake/project.cpp index f314b8b..cbe3a94 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -287,7 +287,7 @@ static QStringList split_value_list(const QString &vals) { QString build; QStringList ret; - QStack quote; + ushort quote = 0; const ushort LPAREN = '('; const ushort RPAREN = ')'; @@ -303,17 +303,17 @@ static QStringList split_value_list(const QString &vals) if(x != (int)vals_len-1 && unicode == BACKSLASH && (vals_data[x+1].unicode() == SINGLEQUOTE || vals_data[x+1].unicode() == DOUBLEQUOTE)) { build += vals_data[x++]; //get that 'escape' - } else if(!quote.isEmpty() && unicode == quote.top()) { - quote.pop(); - } else if(unicode == SINGLEQUOTE || unicode == DOUBLEQUOTE) { - quote.push(unicode); + } else if(quote && unicode == quote) { + quote = 0; + } else if(!quote && (unicode == SINGLEQUOTE || unicode == DOUBLEQUOTE)) { + quote = unicode; } else if(unicode == RPAREN) { --parens; } else if(unicode == LPAREN) { ++parens; } - if(!parens && quote.isEmpty() && (vals_data[x] == Option::field_sep)) { + if(!parens && !quote && (vals_data[x] == Option::field_sep)) { ret << build; build.clear(); } else { -- cgit v0.12 From 9e0f4a89564997856c784aed6611b91a9f9f184a Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 24 Jan 2011 20:44:22 +0100 Subject: remove the somewhat bizarre unquoting of the last argument in split_arg_list() the last argument would be unquoted, but only if currently in a quote. that means that an invalid construct like "foo"" would be reduced to another invalid construct foo". this doesn't sound overly useful ... Reviewed-by: mariusSO --- qmake/project.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/qmake/project.cpp b/qmake/project.cpp index cbe3a94..4053b3d 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -254,11 +254,6 @@ static QStringList split_arg_list(QString params) while(x && params_data[x-1].unicode() == SPACE) --x; QString mid(params_data+last, x-last); - if(quote) { - if(mid[0] == quote && mid[(int)mid.length()-1] == quote) - mid = mid.mid(1, mid.length()-2); - quote = 0; - } args << mid; break; } -- cgit v0.12 From 1f28efe4125397f2a61af421dbeb9f6954ca2a9c Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 25 Jan 2011 13:17:08 +0100 Subject: slightly reorganize split_arg_list() cut down code duplication Reviewed-by: mariusSO --- qmake/project.cpp | 59 ++++++++++++++++++++++++++----------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/qmake/project.cpp b/qmake/project.cpp index 4053b3d..d690770 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -241,41 +241,38 @@ static QStringList split_arg_list(QString params) const ushort SPACE = ' '; //const ushort TAB = '\t'; - ushort unicode; const QChar *params_data = params.data(); const int params_len = params.length(); - int last = 0; - while(last < params_len && (params_data[last].unicode() == SPACE - /*|| params_data[last].unicode() == TAB*/)) - ++last; - for(int x = last, parens = 0; x <= params_len; x++) { - unicode = params_data[x].unicode(); - if(x == params_len) { - while(x && params_data[x-1].unicode() == SPACE) - --x; - QString mid(params_data+last, x-last); - args << mid; - break; - } - if(unicode == LPAREN) { - --parens; - } else if(unicode == RPAREN) { - ++parens; - } else if(quote && unicode == quote) { - quote = 0; - } else if(!quote && (unicode == SINGLEQUOTE || unicode == DOUBLEQUOTE)) { - quote = unicode; - } - if(!parens && !quote && unicode == COMMA) { - QString mid = params.mid(last, x - last).trimmed(); - args << mid; - last = x+1; - while(last < params_len && (params_data[last].unicode() == SPACE - /*|| params_data[last].unicode() == TAB*/)) - ++last; + for(int last = 0; ;) { + while(last < params_len && (params_data[last].unicode() == SPACE + /*|| params_data[last].unicode() == TAB*/)) + ++last; + for(int x = last, parens = 0; ; x++) { + if(x == params_len) { + while(x && params_data[x-1].unicode() == SPACE) + --x; + QString mid(params_data+last, x-last); + args << mid; + return args; + } + ushort unicode = params_data[x].unicode(); + if(unicode == LPAREN) { + --parens; + } else if(unicode == RPAREN) { + ++parens; + } else if(quote && unicode == quote) { + quote = 0; + } else if(!quote && (unicode == SINGLEQUOTE || unicode == DOUBLEQUOTE)) { + quote = unicode; + } + if(!parens && !quote && unicode == COMMA) { + QString mid = params.mid(last, x - last).trimmed(); + args << mid; + last = x+1; + break; + } } } - return args; } static QStringList split_value_list(const QString &vals) -- cgit v0.12 From 005e39a2aab88d47044fa2108a6d04bd490b169e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 25 Jan 2011 13:23:24 +0100 Subject: cleanup split_arg_list() some more unify the code paths for last and intermediate arguments. as a side effect, this should be somewhat more efficient. Reviewed-by: mariusSO --- qmake/project.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/qmake/project.cpp b/qmake/project.cpp index d690770..7951d11 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -249,10 +249,9 @@ static QStringList split_arg_list(QString params) ++last; for(int x = last, parens = 0; ; x++) { if(x == params_len) { - while(x && params_data[x-1].unicode() == SPACE) + while(x > last && params_data[x-1].unicode() == SPACE) --x; - QString mid(params_data+last, x-last); - args << mid; + args << params.mid(last, x - last); return args; } ushort unicode = params_data[x].unicode(); @@ -266,9 +265,11 @@ static QStringList split_arg_list(QString params) quote = unicode; } if(!parens && !quote && unicode == COMMA) { - QString mid = params.mid(last, x - last).trimmed(); - args << mid; + int prev = last; last = x+1; + while(x > prev && params_data[x-1].unicode() == SPACE) + --x; + args << params.mid(prev, x - prev); break; } } -- cgit v0.12 From 648dbc62e9c4e3fc15613c86bbf3c33029d56366 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 25 Jan 2011 13:59:20 +0100 Subject: interpret backslash escaping of quotes in split_arg_list() split_value_list() interprets them, too, but this is useless if the higher layer doesn't and is thus confused by unmatched quotes. note the top-level parsing layer doesn't support escapes, but that's ok, because there function calls are "isolated" by non-escapable parenthesis counting (and the RHS of assignments is not subject to any parsing at all). Reviewed-by: mariusSO --- qmake/project.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/qmake/project.cpp b/qmake/project.cpp index 7951d11..88d5962 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -237,6 +237,7 @@ static QStringList split_arg_list(QString params) const ushort RPAREN = ')'; const ushort SINGLEQUOTE = '\''; const ushort DOUBLEQUOTE = '"'; + const ushort BACKSLASH = '\\'; const ushort COMMA = ','; const ushort SPACE = ' '; //const ushort TAB = '\t'; @@ -255,14 +256,17 @@ static QStringList split_arg_list(QString params) return args; } ushort unicode = params_data[x].unicode(); - if(unicode == LPAREN) { - --parens; - } else if(unicode == RPAREN) { - ++parens; + if(x != (int)params_len-1 && unicode == BACKSLASH && + (params_data[x+1].unicode() == SINGLEQUOTE || params_data[x+1].unicode() == DOUBLEQUOTE)) { + x++; //get that 'escape' } else if(quote && unicode == quote) { quote = 0; } else if(!quote && (unicode == SINGLEQUOTE || unicode == DOUBLEQUOTE)) { quote = unicode; + } else if(unicode == RPAREN) { + --parens; + } else if(unicode == LPAREN) { + ++parens; } if(!parens && !quote && unicode == COMMA) { int prev = last; -- cgit v0.12 From e881b19ba3f2f4bfda460e1a043f461fb0517d70 Mon Sep 17 00:00:00 2001 From: Sergey Belyashov Date: Tue, 25 Jan 2011 20:41:07 +0100 Subject: Added scrollbars support to the Linguist form preview. Merge-request: 1030 Reviewed-by: Oswald Buddenhagen --- tools/linguist/linguist/formpreviewview.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/linguist/linguist/formpreviewview.cpp b/tools/linguist/linguist/formpreviewview.cpp index d46cf76..a2a6002 100644 --- a/tools/linguist/linguist/formpreviewview.cpp +++ b/tools/linguist/linguist/formpreviewview.cpp @@ -463,6 +463,8 @@ FormPreviewView::FormPreviewView(QWidget *parent, MultiDataModel *dataModel) m_mdiArea = new QMdiArea(this); m_mdiArea->addSubWindow(m_mdiSubWindow); setCentralWidget(m_mdiArea); + m_mdiArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); + m_mdiArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); } void FormPreviewView::setSourceContext(int model, MessageItem *messageItem) -- cgit v0.12 From 88c1670a658d55257d50181d741afe562e44344b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 26 Jan 2011 13:37:45 +0100 Subject: Fixed hslHue / hslHueF returning the wrong value for achromatic QColors. Made toHsl() work the same way as toHsv(), ensuring the hue gets set to USHRT_MAX and not 0. Task-number: QTBUG-16530 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/gui/painting/qcolor.cpp | 2 +- tests/auto/qcolor/tst_qcolor.cpp | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/gui/painting/qcolor.cpp b/src/gui/painting/qcolor.cpp index dea3a72..173fb71 100644 --- a/src/gui/painting/qcolor.cpp +++ b/src/gui/painting/qcolor.cpp @@ -1781,7 +1781,7 @@ QColor QColor::toHsl() const color.ct.ahsl.lightness = qRound(lightness * USHRT_MAX); if (qFuzzyIsNull(delta)) { // achromatic case, hue is undefined - color.ct.ahsl.hue = 0; + color.ct.ahsl.hue = USHRT_MAX; color.ct.ahsl.saturation = 0; } else { // chromatic case diff --git a/tests/auto/qcolor/tst_qcolor.cpp b/tests/auto/qcolor/tst_qcolor.cpp index fcd608b..d42c26c 100644 --- a/tests/auto/qcolor/tst_qcolor.cpp +++ b/tests/auto/qcolor/tst_qcolor.cpp @@ -148,6 +148,8 @@ private slots: void specConstructor_data(); void specConstructor(); + void achromaticHslHue(); + #ifdef Q_WS_X11 void allowX11ColorNames(); void setallowX11ColorNames(); @@ -1459,6 +1461,14 @@ void tst_QColor::specConstructor() QCOMPARE(color.spec(), spec); } +void tst_QColor::achromaticHslHue() +{ + QColor color = Qt::black; + + QColor hsl = color.toHsl(); + QCOMPARE(hsl.hslHue(), -1); +} + #ifdef Q_WS_X11 void tst_QColor::allowX11ColorNames() { -- cgit v0.12